资源描述:
《这也就是说原来设想的密钥突间为》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章IDEA算法及实现些特别选定的密文可以测试和观察出密钥所含的线性因子,而且在这8轮的迭代中,线性因子不断地扩展进入密钥,最后可得出其中的55位密钥的值,具体为第26-40,72-83和99-122,这也就是说原来设想的密钥突间为2128,但现在有251个为弱密钥,最后密钥空间为2'.纵观IDEA加密解密的整个过程,可以发现在整个加解密过程中并没有直接使用这个128比特的密钥,而是使用由它产生的那52个子密钥(共52X16=832比特),并且一在整个迭代过程中没有两个子密钥直接进行运算,也就是说这52个子密钥是相对独立的(笔者己在机器上实现了整个算法,并且任意改变其中的
2、一个或多个子密钥均不影响加密,只要解密子密钥由对应的加密子密钥生成就可以进行解密)。那么,就可以在保证安全的前提下改进IDEA算法,直接从大量密钥中选取52子密钥而不是用标准的方法去生成,简化了整个的加密算法,并且在算法中除去了标推IDEA中的弱密钥。这就是为什么当初在密钥存储器中是按照52X16=104X8Bits进行分页的原因。把这种改进以后的IDEA算法称为DSIDEA(DirectSelectionIDEA).4.2.2性能分析DSIDEA算法没有改变标准IDEA算法的加密过程,而是在用户密钥与子密钥的生成上给予了加强。用户可以随意输入密钥,通过该算法可以形成较强的
3、子密钥;同时也可以满足对密钥强度要求较高的用户,做到密钥空间为52X16=832位(而不是128位),因而安全性不会低于标准的IDEA算法。由于子密钥可以任意给定,所以理论上子密钥空间是无限大的,想要破解一段加密的信息,理论上是不可能的。一组子密钥就可以达到理想的程度,对于给定一个子密钥集合,其抗攻击的能力是可想而知的。4.2.3IDEA算法的MCS51汇编实现程序流程如图4-5所示。需要说明的是随机数产生器,随机产生器产生的数据交给8031,8031利用这个数去密钥存储器取得52X16=832位数据,用于数据块的加密。同样解密里8031利用这个随机数去密钥存储器中取出与加
4、密密钥相同的内容,然后按照IDEA算法计算出解密子密钥,再通过工DEA算法即可解密内容。第四章IDEA算法及实现图4-5程序结构图为了排除IDEA算法存在的弱密钥,子密钥不是从128位密钥中生成而是直接从大量的密钥选取,使得子密钥很简单。故用汇编实现IDEA算法的关键与难点就在于算法中定义的运算的实现。通过16位加法运算,16位加法逆运算,16位乘法运算,16位除法运算,16位取余运算的实现来定义模216-1-1乘法运算和模216+1位乘法的逆运算。另外的一种运算双字节逐位异或实现相对就很简单T。众所周知,MCS51系列微处理器是8位的,用来处理多字节运算是很困难的,但是M
5、CS51微处理器内部有一个布尔处理器,还有一块可以位寻址的缓冲区,所以进行多字节的运算可以转换为位操作来进行。.16位加法运算参加加法运算的两个数分别存储在R1,RO和R3,R2中,其中RO和R2存低位字节,R1和R3存储高位字节。最后结果存储在Rl和RO中。计算过程如下:MOVA,ROADDA,R2MOVRO,AMOVA,RIADDCA,R3;带进位加MOVR1,A第四章IDEA算法及实现.16位加法逆运算设参加加法逆元运算的数存储在R0,R1中,最后结果也存储在R0,Rl计算过程如下:CLRCMOVR2,#FFHMOVR3,#FFHMOVA,R3SUBBA,RIMOVR
6、l,AMOVA,R2SUBBA,ROMOVR0,ACLRCINCRlJNCNEXTINCRONEXT:NOP.16位乘法运算设R7,R6为被乘数,R5,R4为乘数,结果保存在R3,R2,R1,RO四个寄存器中,其中R0,R4,R6保存低字节的内容。则计算过程如下:(R7X28+R6)X(R5X28+R4)=R7XR5X2"+R7XR5X28+R6XR5X28+R6XR4R6XR41{IIR6XR5I—}I一一一刁R7XR过III1R7XR5I—〕「一一刁R1RO图4-6乘法运算结果存储示意一48.第四章IDEA算法及实现JNCMULLMUTIPLE:MOVA,R3MOVA,
7、R6;R6XR4ADDA,#1MOVB,R4MOVR3,AN江JLABMUL1:MOVRO,AMOVA,R6;R6XR5X28MOVR1,BMOVB,R5MOVA,R7;R7XRSX216MULABMOVBASADDA,R1MULA丑MOVRI,AMOVR2,AMOVA,BMOVR3,BADDCA,R2MOVA,R7;R7XR4X28MOVR2,AMOVB,R4刀闪CMUL2MULABMOVA,R3ADDA,RlADDA,#1MOVRI冰MOVR3,AMOVA,BMUL2:ADDCA,R2NOPMOVR2,A.16