📄 ibm的mars加密算法实现(下).htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0041)http://www.supfly.net/x00/2006-01/669.htm -->
<HTML lang=gb2312 xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>IBM的MARS加密算法实现(下)</TITLE><!-----------------------------------
Powered by DvNews
http://www.xmlasp.net/
----------------------------------->
<META http-equiv=content-type content=text/html;charset=gb2312><LINK
href="favicon.ico" type=image/x-icon rel=icon><LINK href="favicon.ico"
type=image/x-icon rel="shortcut icon">
<META content="" name=description>
<META content=动网asp.net新闻文章系统 name=keywords><LINK
href="IBM的MARS加密算法实现(下).files/style.css" type=text/css rel=stylesheet>
<SCRIPT src="IBM的MARS加密算法实现(下).files/flash.js" type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
var thumbWidth=120;var thumbHeight=0;
var thumbHWidth=thumbWidth;var thumbHHeight=thumbHeight;
var urlPrefix = "../../";
</SCRIPT>
<SCRIPT src="IBM的MARS加密算法实现(下).files/thumbnail.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src="IBM的MARS加密算法实现(下).files/scroll.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src="IBM的MARS加密算法实现(下).files/imgResize.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javaScript src="IBM的MARS加密算法实现(下).files/vcode.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><SPAN id=printScript>
<SCRIPT language=javascript type=text/javascript>
<!--
function ContentSize(size)
{
var obj=document.getElementById("BodyLabel");
obj.style.fontSize=size+"px";
}
-->
</SCRIPT>
</SPAN>
<SCRIPT language=javascript src="IBM的MARS加密算法实现(下).files/print.js"
type=text/javascript></SCRIPT>
<STYLE type=text/css>#Table_01 .STYLEa {
BACKGROUND-IMAGE: url(/body.jpg)
}
</STYLE>
<BR>
<TABLE id=Table_01 cellSpacing=0 cellPadding=0 width=800 align=center
border=0><TBODY>
<TR>
<TD><IMG alt="" src="IBM的MARS加密算法实现(下).files/www.jpg"
width=800></TD></TR></TBODY></TABLE>
<DIV class=twidthback align=center>
<DIV class=twidth align=center>
<TABLE id=navbar cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m>
<SCRIPT language=javascript1.2 src="IBM的MARS加密算法实现(下).files/popmenu.js"
type=text/javascript></SCRIPT>
<SPAN id=dlSortNav><SPAN><A onmouseover=showmenu(event,6,1,false)
onmouseout=delayhidemenu() href="http://www.supfly.net/xCpp"
target=_blank>C/C++ 程序设计</A> </SPAN><SPAN><IMG alt=""
src="IBM的MARS加密算法实现(下).files/navbar_separator.gif" align=absMiddle>
</SPAN><SPAN><A onmouseover=showmenu(event,23,1,false)
onmouseout=delayhidemenu() href="http://www.supfly.net/xicpc">ACM/ICPC</A>
</SPAN><SPAN><IMG alt=""
src="IBM的MARS加密算法实现(下).files/navbar_separator.gif" align=absMiddle>
</SPAN><SPAN><A onmouseover=showmenu(event,26,1,false)
onmouseout=delayhidemenu() href="http://www.supfly.net/xVSdev">Visual
Studio开发</A> </SPAN><SPAN><IMG alt=""
src="IBM的MARS加密算法实现(下).files/navbar_separator.gif" align=absMiddle>
</SPAN><SPAN><A onmouseover=showmenu(event,9,1,false)
onmouseout=delayhidemenu() href="http://www.supfly.net/xwebs">Web技术</A>
</SPAN><SPAN><IMG alt=""
src="IBM的MARS加密算法实现(下).files/navbar_separator.gif" align=absMiddle>
</SPAN><SPAN><A onmouseover=showmenu(event,10,1,false)
onmouseout=delayhidemenu() href="http://www.supfly.net/xnetgood">网文收藏</A>
</SPAN></SPAN></TD>
<TD class=r></TD></TR></TBODY></TABLE>
<TABLE id=navsub cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD class=l></TD>
<TD class=m> <A
href="http://www.supfly.net/default.htm">[超级苍蝇飞飞飞]首页</A> → <A
href="http://www.supfly.net/xVSdev">Visual Studio开发</A> → <A
href="http://www.supfly.net/xVCdev">VisualC++/C#</A> </TD>
<TD class=r></TD></TR></TBODY></TABLE>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=tl></TD>
<TD class=tm><SPAN class=tt>阅读文章</SPAN>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-8699830403346602";
google_alternate_color = "F0F0F0";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
google_ad_channel ="";
google_color_border = "F0F0F0";
google_color_bg = "F0F0F0";
google_color_link = "666666";
google_color_url = "666666";
google_color_text = "666666";
//--></SCRIPT>
<SCRIPT src="IBM的MARS加密算法实现(下).files/show_ads.js" type=text/javascript>
</SCRIPT>
</TD>
<TD class=tr></TD></TR></TBODY></TABLE>
<DIV id=printBody>
<TABLE id=middle
style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; TEXT-ALIGN: left"
cellSpacing=0 cellPadding=0 align=center>
<TBODY>
<TR>
<TD class=ml></TD>
<TD class=mm vAlign=top>
<FORM name=myform action=../../search.aspx method=get>
<TABLE style="WORD-BREAK: keep-all" align=center>
<TBODY>
<TR>
<TD align=middle height=30>文章搜索:<SELECT size=1 name=Where><OPTION
value=title selected>标题</OPTION><OPTION
value=content>内容</OPTION><OPTION
value=author>作者</OPTION></SELECT><SELECT size=1 name=cid><OPTION
value=0 selected>选择分类</OPTION><OPTION value=6>├C/C++
程序设计</OPTION><OPTION value=11>│├教程/技巧</OPTION><OPTION
value=28>│├算法/数据结构</OPTION><OPTION
value=8>│├STL标准模板库</OPTION><OPTION
value=20>│└GoogleCodeJam</OPTION><OPTION
value=23>├ACM/ICPC</OPTION><OPTION value=24>│├解题报告</OPTION><OPTION
value=25>│└ACM经验</OPTION><OPTION value=26>├Visual
Studio开发</OPTION><OPTION value=27>│├VisualC++/C#</OPTION><OPTION
value=31>│├COM技术</OPTION><OPTION value=32>│├.NET平台</OPTION><OPTION
value=33>│└界面/资源</OPTION><OPTION value=9>├Web技术</OPTION><OPTION
value=14>│├网页设计</OPTION><OPTION
value=12>│├WEB标准及重构</OPTION><OPTION
value=30>│├XML/SOAP</OPTION><OPTION
value=17>│└网页特效</OPTION><OPTION value=10>└网文收藏</OPTION><OPTION
value=13> └信手拈来</OPTION></SELECT> <INPUT class=inputbg maxLength=50
size=10 name=Keyword>
<SCRIPT language=javascript type=text/javascript>function proLoadimg(){var i=new Image;i.src='../../pic/search_over.gif';}proLoadimg();</SCRIPT>
<INPUT onmouseover="this.src='../../pic/search_over.gif'"
onmouseout="this.src='../../pic/search.gif'" type=image alt=搜索
src="IBM的MARS加密算法实现(下).files/search.gif"
align=top></TD></TR></TBODY></TABLE></FORM><BR>
<DIV align=center>
<H1 class=aTitle>IBM的MARS加密算法实现(下)</H1></DIV>
<TABLE width="97%" align=center>
<TBODY>
<TR>
<TD width=120>[日期:<SPAN id=TimeLabel>2006-01-01</SPAN>]</TD>
<TD align=middle>来源:<SPAN id=SourceLabel><A
href="http://www.vckbase.com/document/viewdoc/?id=402"
target=_blank></A></SPAN> 作者:<SPAN id=AuthorLabel></SPAN></TD>
<TD align=right width=100>[字体:<A
href="javascript:ContentSize(16)">大</A> <A
href="javascript:ContentSize(14)">中</A> <A
href="javascript:ContentSize(12)">小</A>] </TD></TR></TBODY></TABLE>
<DIV class=content id=BodyLabel
style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"><!--DVNEWS_AD_BEGIN--><BR>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-8699830403346602";
google_alternate_color = "FFFFFF";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "CCCCCC";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_url = "666666";
google_color_text = "333333";
//--></SCRIPT>
<SCRIPT src="IBM的MARS加密算法实现(下).files/show_ads.js" type=text/javascript>
</SCRIPT>
<!--DVNEWS_AD_END-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<P align=center><B>IBM的MARS加密算法实现(下)</B><BR>作者:<A
href="mailto:hitwz@163.com">西安 吴真</A></P>
<P><A
href="http://www.vckbase.com/document/viewdoc.asp?id=401">IBM的MARS加密算法实现(上)</A><BR><B><BR>2.3
密文解密</B><BR>用于密文解密的40个子密钥的生成和明文加密时的40个子密钥的生成方法相同.<BR><BR><B>2.3.1
第一步前向混合</B><BR>输入的128位密文分成四块D[0],D[1],D[2],D[3],选取生成的40个密钥的最后四个分别与上述四块数据进行加操作,<BR>D[0]
+= K[36];<BR>D[1] += K[37];<BR>D[2] += K[38];<BR>D[3] +=
K[39];<BR>结果作为第一轮操作的输入数据.<BR>第一轮:<BR></P>
<TABLE cellSpacing=1 cellPadding=0 width=400 bgColor=#000000
border=0>
<TBODY>
<TR align=middle bgColor=#ffffff>
<TD colSpan=4>D[0]</TD>
<TD width=81>D[1]</TD>
<TD width=110>D[2]</TD>
<TD width=67>D[3]</TD></TR>
<TR align=middle bgColor=#ffffff>
<TD width=30>b0</TD>
<TD width=34>b1</TD>
<TD width=37>b2</TD>
<TD width=41>b3</TD>
<TD width=81>FirstTarget</TD>
<TD width=110>SecondTarget</TD>
<TD
width=67>ThirdTarget</TD></TR></TBODY></TABLE><BR>把D[0],D[1],D[2],D[3]合并成128位的数据,循环左移32位后分成四块D[0],D[1],D[2],D[3]其中D[0]作为源数据(Source),剩下的3个作为目标数据,把D[0]循环右移24位后的结果返回给D[0]<BR>把32位的源数据D[0]分成8位的四块b0,b1,b2,b3<BR>
<TABLE cellSpacing=1 cellPadding=0 width=554 bgColor=#000000
border=0>
<TBODY>
<TR align=middle bgColor=#ffffff>
<TD width=51> </TD>
<TD width=27>b0</TD>
<TD width=29>b1</TD>
<TD width=31>b2</TD>
<TD width=34>b3</TD>
<TD width=132>FirstTarget</TD>
<TD width=112>SecondTarget</TD>
<TD width=129>ThirdTarget</TD></TR>
<TR align=middle bgColor=#ffffff>
<TD width=51>移动前</TD>
<TD colSpan=4>D[0]</TD>
<TD width=132>D[1]</TD>
<TD width=112>D[2]</TD>
<TD width=129>D[3]</TD></TR>
<TR align=middle bgColor=#ffffff>
<TD width=51>移动后</TD>
<TD colSpan=4>D[1]</TD>
<TD width=132>D[2]</TD>
<TD width=112>D[3]</TD>
<TD
width=129>D[0]</TD></TR></TBODY></TABLE><BR>b0和b2作为数组下标从S1中寻找s-box替换数:S1[b0],S1[b2]<BR>b1和b3作为数组下标从S0中寻找s-box替换数:S0[b1],S0[b3]<BR>对FirstTarget的操作:<BR>FirstTarget按位异或S1[b0]的结果返回给FirstTarget<BR>对SecondTarget的操作:<BR>SecondTarget加上S0[b3]的结果返回给SecondTarget<BR>对ThirdTarget的操作:<BR>ThirdTarget按位异或S0[b1]后加上S1[b2]的结果返回给ThirdTarget.<BR>本步骤共进行8轮,在第一轮和第五轮中操作结尾处添加将Source加上FirstTarget的结果返回给Source的操作.在第二轮和第六轮中操作结尾处添加将Source加上ThirdTarget的结果返回给Source的操作<BR><BR><B>2.3.2第二步密码核</B><BR>把输入的128位数据循环左移32位后分成四块D[0],D[1],D[2],D[3],其中D[0]作为源数据(Source),剩下的3个作为目标数据,
把Source循环右移13位的结果返回给Source,<BR>
<TABLE cellSpacing=1 cellPadding=0 width=400 bgColor=#000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -