《其他分组密码算法综述》由会员分享,可在线阅读,更多相关《其他分组密码算法综述(14页珍藏版)》请在金锄头文库上搜索。
1、89 其他分组密码算法综述8.9.1 IDEA8.9.1 IDEA算法算法算法算法 瑞士的瑞士的瑞士的瑞士的XuejiaXuejia Lai Lai和和和和James MasseyJames Massey于于于于19901990年年年年公布了公布了公布了公布了IDEAIDEA密码算法第一版,称为密码算法第一版,称为密码算法第一版,称为密码算法第一版,称为PES PES (Proposed Encryption Standard)(Proposed Encryption Standard)。为抗击为抗击为抗击为抗击差分密码攻击,他们增强了算法的强度,差分密码攻击,他们增强了算法的强度,差分密码攻
2、击,他们增强了算法的强度,差分密码攻击,他们增强了算法的强度,称称称称IPESIPES(Improved PES)Improved PES),并于并于并于并于19921992年改年改年改年改名为名为名为名为IDEAIDEA(International Data Encryption International Data Encryption AlgorithmAlgorithm,国际数据加密算法。)国际数据加密算法。)国际数据加密算法。)国际数据加密算法。)n nIDEA是一个分组长度为是一个分组长度为64位的位的分组密码算法,密钥长度为分组密码算法,密钥长度为128位(抗强力攻击能力比位(抗
3、强力攻击能力比DES强),强),同一算法既可加密也可解密。同一算法既可加密也可解密。n nIDEA的的“混淆混淆”和和“扩散扩散”设计设计原则来自三种运算,它们易于软、原则来自三种运算,它们易于软、硬件实现(加密速度快):硬件实现(加密速度快):n n异或运算(异或运算( )n n整数模整数模216加(加( + )n n整数模整数模216+1乘(乘( )(IDEA的的S盒)盒)n n扩散由称为扩散由称为MA结构的算法基本构件提供。结构的算法基本构件提供。Z6F2F1Z5G1G2n n实现上的考虑实现上的考虑l l使用子分组:使用子分组:使用子分组:使用子分组:16bit16bit的子分组;的子
4、分组;的子分组;的子分组;l l使用简单操作(易于加法、移位等使用简单操作(易于加法、移位等使用简单操作(易于加法、移位等使用简单操作(易于加法、移位等操作实现)操作实现)操作实现)操作实现)l l加密解密过程类似;加密解密过程类似;加密解密过程类似;加密解密过程类似;l l规则的结构(便于规则的结构(便于规则的结构(便于规则的结构(便于VLSIVLSI实现)。实现)。实现)。实现)。 IDEA加密的总体方案图加密的总体方案图循环循环2循环循环8循环循环1输出变换输出变换64位密文位密文64位明文位明文Z1Z6Z7Z12Z43Z48Z49Z52子密钥生成器子密钥生成器128位密钥位密钥Z1Z5
5、216 IDEA IDEA的密钥产生的密钥产生的密钥产生的密钥产生56个个16bit的子密钥从的子密钥从128bit的密钥的密钥中生成中生成n n前前8个子密钥直接从密钥中取出;个子密钥直接从密钥中取出;n n对密钥进行对密钥进行25bit的循环左移,接的循环左移,接下来的密钥就从中取出;下来的密钥就从中取出;n n重复进行直到重复进行直到52个子密钥都产生个子密钥都产生出来。出来。IDEAIDEA的解密的解密的解密的解密n n加密解密实质相同,但使用不同的密钥;加密解密实质相同,但使用不同的密钥;n n解密密钥以如下方法从加密子密钥中导解密密钥以如下方法从加密子密钥中导出:出:l l解密循环
6、解密循环解密循环解密循环I I的头的头的头的头4 4个子密钥从加密循环个子密钥从加密循环个子密钥从加密循环个子密钥从加密循环1010I I的的的的头头头头4 4个子密钥中导出;解密密钥第个子密钥中导出;解密密钥第个子密钥中导出;解密密钥第个子密钥中导出;解密密钥第1 1、4 4个子个子个子个子密钥对应于密钥对应于密钥对应于密钥对应于1 1、4 4加密子密钥的乘法逆元;加密子密钥的乘法逆元;加密子密钥的乘法逆元;加密子密钥的乘法逆元;2 2、3 3对应对应对应对应2 2、3 3的加法逆元;的加法逆元;的加法逆元;的加法逆元;l l对前对前对前对前8 8个循环来说,循环个循环来说,循环个循环来说,
7、循环个循环来说,循环I I的最后两个子密钥的最后两个子密钥的最后两个子密钥的最后两个子密钥等于加密循环等于加密循环等于加密循环等于加密循环9 9I I的最后两个子密钥;的最后两个子密钥;的最后两个子密钥;的最后两个子密钥;n nIDEA是是PGP的一部分;的一部分;n nIDEA能抗差分分析和相关分析;能抗差分分析和相关分析;n nIDEA似乎没有似乎没有DES意义下的弱密意义下的弱密钥;钥;n nBruce Schneier 认为认为IDEA是是DES的最好替代,但问题是的最好替代,但问题是IDEA太新,许多问题没解决。太新,许多问题没解决。892 RC6算法 n n解密过程:把解密过程:把
8、128128比特明文放入比特明文放入4 4个个3232比特的寄存器比特的寄存器A A、B B、C C、D D之中。之中。,For i=r to 1 doFor i=r to 1 do, 即为明文。即为明文。 n n密钥扩展方案:n n在密钥扩展中用到了两个常数P32和Q32, (十六进制), (十六进制)。首先,将种子密钥K输入c个w比特字的阵列 ,若不够,用0字节填充,其中c为8b/w的整数部分。 n nRC6RC6算法在加密过程中不需要查找表,加之算法在加密过程中不需要查找表,加之算法中的乘法运算也可以用平方代替,所以算法中的乘法运算也可以用平方代替,所以该算法对内存的要求很低。这使得该算
9、法对内存的要求很低。这使得RC6RC6特别特别适合在单片机上实现。比如适合在单片机上实现。比如ICIC卡,它内部集卡,它内部集成的高速缓存,代价高昂,算法所需的内存成的高速缓存,代价高昂,算法所需的内存少,就能大大降低制作成本。少,就能大大降低制作成本。n nRC6RC6的简单性是非常吸引人的,尤其是便于的简单性是非常吸引人的,尤其是便于在有限的时间范围内进行安全性分析。就目在有限的时间范围内进行安全性分析。就目前的分析,对前的分析,对RC6RC6算法最有效的攻击是强力算法最有效的攻击是强力攻击。当然由于分组长度和密钥长度都至少攻击。当然由于分组长度和密钥长度都至少是是128128比特,穷举法
10、并不可行。对比特,穷举法并不可行。对2020轮的轮的RC6RC6,用线性分析法至少需要,用线性分析法至少需要21552155个明文,个明文,用差分分析法至少需要用差分分析法至少需要22382238个明文。个明文。 小结n n分组密码是现代密码学的重要分支之一,也分组密码是现代密码学的重要分支之一,也是许多其他密码组件的基础。分组密码可以是许多其他密码组件的基础。分组密码可以转化为流密码,也可被用来构造其他组件转化为流密码,也可被用来构造其他组件 n nDESDES是分组密码的典型代表,也是第一个被是分组密码的典型代表,也是第一个被公布出来的标准算法公布出来的标准算法n n破密技术的快速演进已直接影响了破密技术的快速演进已直接影响了DESDES密码密码系统的安全性,为此,美国和欧洲先后启动系统的安全性,为此,美国和欧洲先后启动AESAES和和NESSIENESSIE项目项目n nFeistelFeistel网络和网络和SPSP网络网络n n如何设计效率高的线性变换层如何设计效率高的线性变换层n n密码抗差分和线性分析密码抗差分和线性分析 n n评估阶段比设计阶段更费力,评估阶段比设计阶段更费力,NESSIENESSIE的成的成就在于发展了一套密码体制的评估方法。就在于发展了一套密码体制的评估方法。