⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ibm的mars加密算法实现(上).htm

📁 IBM的MARS加密算法实现.rar 虽非原创
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!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/670.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>&nbsp; <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=401" 
            target=_blank></A></SPAN>&nbsp; 作者:<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><A 
            href="http://www.vckbase.com/code/downcode.asp?id=1603">下载MARS加密算法实现代码</A> 

            <P><B>一、背景知识</B><BR><BR>1977年颁布的数据加密标准DES算法。其56位长的密码空间在芯片技术和计算技术高速发展的今天,越来越不适应安全需求。1997年9月美国国家标准技术研究所(NIST)提出了征求新的加密标准---AES 
            (Advanced Encryption 
            Standard)的建议,作为一种取代DES的二十世纪加密标准技术。其目标是:(1)执行速度快;(2)易于设计;(3)从大型计算机到智能IC卡(CPU卡)都可实现。1998年8月第一次AES会议(AES1)上,宣布了来自12个国家的15种候选AES算法。于1999年8月第二次AES会议(ARD2)上,从中筛选出5个候选算法:<BR><BR>Algorithm 
            Author(s)<BR>(1) MARS IBM (US)<BR>(2) RC6 RSA 
            Laboratories(US)<BR>(3) Rijndael John Danemen,Vincent 
            Rijmen(Belgium)<BR>(4) Serpent Ross Anderson(UK),Eli 
            Bihan(Israel),Lars Knudsen(Nornay)<BR>(5) Twofish Bruce 
            Schneier,John Kelsey,Doug Whiting,David Wagner,Chris Hall,Nids 
            Ferguson<BR><BR>经过大量的分析及评估后,NIST队伍最终选择了Rijndael。这是在考虑安全,性能,效率,易用和灵活等诸多方面做的一种权衡选择,正如NIST在其报告中称:"所有这五种算法对AES都很安全".本文将介绍一下由IBM公司提出的MARS算法的原理和部分笔者编写的算法实现代码.<BR><BR><B>二、算法原理</B><BR><BR>密钥增加作为预白化处理,经8轮无密钥的向前混合,8轮有密钥的向前变换,8轮有密钥的向后变换,8轮无密钥的向后混合,以及作为后白化处理的密钥减法。16轮有密钥的转换称为密码核(cryptographic 
            core),无密钥的迭代使用两个8x32 bit 
            S-boxes、加、异或操作。此外,有密钥的迭代使用32-bit密钥乘法、数据相倚旋转和密钥加法。混合与核心迭代都被修改为Feistel结构的迭代,其中,1/4的数据块用于标识其它3/4的数据块。 
            <BR>约定:<BR>D[] 
            :存放4个32位明文的容器,在加密操作完成后用于存放密文<BR>K[]:存放40个32位密钥的容器<BR>S[]:s-box,512个32位的不同数组成,其中前256个由S0指出,后256个由S1指出<BR>所有的数组下标从0开始计数.<BR>本文中提及的加法是模232加,减法是模232减,乘法是模232乘<BR>&lt;&lt;&lt;表示循环左移<BR>^ 
            表示按位异或<BR>%取模 
            <BR><B><BR>2.1密钥的生成</B><BR>MARS算法支持128~448位变长密钥,定义一个临时容器ULONG32 
            T[15]用于存放用户输入的密钥,<BR>T[0,1…n] = K[0,1…n]<BR>T[n] = n ;<BR>T[n+1,…14] 
            = 0 ;<BR>其中n是用户输入密钥的长度(4字节为单位).<BR>然后按照下面的算法进行操作:<BR><PRE>for ( j = 0 ; j &lt; 4 ; j++)
{
for ( i = 0; i &lt; 15 ;i++)
{
/*T[i] ^= ((T[(i-7)%15]^T[(i-2)%15])&lt;&lt;&lt;3)^(4*i+j);*/
}
for ( r = 0 ; r &lt; 4 ; r++)
{
for ( i = 0; i &lt; 15 ;i++)
{
/*T[i] = T[i]+ S[low 9 bits of T[(i-1)%15]])&lt;&lt;&lt;9;*/
}
}
for ( i = 0 ; i &lt; 10 ; i++)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -