应用密码学第11讲--idea算法

上传人:tian****1990 文档编号:81767532 上传时间:2019-02-22 格式:PPT 页数:26 大小:556.50KB
返回 下载 相关 举报
应用密码学第11讲--idea算法_第1页
第1页 / 共26页
应用密码学第11讲--idea算法_第2页
第2页 / 共26页
应用密码学第11讲--idea算法_第3页
第3页 / 共26页
应用密码学第11讲--idea算法_第4页
第4页 / 共26页
应用密码学第11讲--idea算法_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《应用密码学第11讲--idea算法》由会员分享,可在线阅读,更多相关《应用密码学第11讲--idea算法(26页珍藏版)》请在金锄头文库上搜索。

1、IDEA分组密码算法,IDEA分组密码算法概述,Xuejia Lai和James Massey于1990年提出了PES (Proposed Encryption Standard,推荐加密标准)分组密码算法。为了抗击差分密码分析,设计者于1991年对PES作了改进,并将改进后的算法称为IPES(Improved Proposed Encryption Standard,改进型推荐加密标准)。IPES于1992年改名为IDEA(International Data Encryption Algorithm,国际数 据加密标准)。,算法的描述,分组长度:64比特 密钥长度:128比特 迭代圈数:8

2、圈(每圈6个子密钥),附加一个输出变换(4 个子密钥)。 子密钥长度:16比特。52个子密钥由128比特初始密钥通过 密钥生成算法生成。 使用的三种基本运算:按位模2加;模216加法,模216+1乘法。 整个运算过程全部在16位子分组上进行,因此该算法对16位处理器尤其有效。,将待加密的64比特明文数据X分成4个16位子块 ,作为算法第一圈的输入,每圈有6个16比特圈子密钥参与变换,经过8圈迭代后得4个16比特子块,再通过一个输出变换得算法的输出 ,级连起来即为密文Y。,(一)加密算法,所用符号的含义: xi(i=1, 2, 3, 4)是16比特明文子分组; yi(i=1, 2, 3, 4)是

3、16比特密文子分组; zi (i=1,52)16比特圈子密钥; wi,j (i=1,2,.,8; j=1, 2, 3, 4 )是16比特中间结果; 表示16比特的逐位异或运算; 表示16比特整数的模216加法运算; 表示16比特整数的模216+1乘法运算,其中全零子块用216代替。,IDEA加密总体方案流程图,IDEA第一圈的细节,Fz5,z6,IDEA的输出变换,(二)子密钥生成算法,首先将128比特初始密钥从左到右分成8个16比特子块,并将所得的 8 个子块直接作为加密算法中最前面的8个子密钥,然后将上述128比特密钥循环左移25位,将其从左到右分成8个16比特子块,得到随后的8个子密钥,

4、重复这个过程,直到产生52个16比特子密钥为止。,(三)脱密算法,这里z-1表示z的模216+1乘法逆, -z表示 z的模216加法逆。,脱密密钥 与加密密钥 的对应关系为:,脱密算法与加密算法是相同的,只是在脱密过程中使用脱密密钥。,IDEA加、脱密子密钥的关系,64bit明文X,子加密过程,输出变换,循环8,循环1,循环1,子加密过程,变 换,子加密过程,变 换,输出变换,64bit密文Y,循环1,子加密过程,变 换,64bit密文Y,循环8,(四)IDEA加、脱密变换的相似性,图示的变换是IDEA的圈变换中的一部分,称为共处理变换。,设该变换的输入为:,输出为:,要证明IDEA加、脱密算

5、法的相似性,只需证明共处理变换的4个输入子块经过两次共处理变换后的输出仍然是它本身即可。,若记乘加结构输出的左16比特为LMA,右16比特为RMA,则有下面4个式子:,由于,则:,这说明当共处理变换以 作为输入,而子密钥 不变时,其输出为 。 至此证明了IDEA分组密码加、脱密变换的相似性。,二、IDEA算法的设计原理,IDEA是一种使用128比特密钥以64比特分组为单位加密数据的分组密码,其设计目标可以归结为两方面:一方面与密码强度有关,另一方面与使用的方便性有关。,(一)密码强度,IDEA的下列特性与其密码强度有关: 分组长度:分组长度应足够大,以抵抗统计分析。使用64比特的分组大小通常认

6、为已经足够强,另外使用密码反馈操作方式可以进一步加强算法这方面的强度。 密钥长度:密钥长度应足够长,以抵抗密钥穷尽攻击,通过使用128比特的长度,在将来的很长时间里IDEA似乎在这方面都是安全的。,关于混乱: 密文应以一种复杂的方式依赖于明文和密钥,这样做的目的是使确定密文的统计特性和明文的统计特性的依赖关系非常复杂。IDEA通过使用三种不同的操作达到该目的,而DES主要靠异或运算及小的非线性S盒代替来实现。,关于扩散: 每个明文比特都应该影响每个密文比特,并且,每个密钥比特都应该影响每个密文比特。单个明文比特应扩散到许多密文比特才能隐藏明文的统计特性。 在IDEA中,扩散是由乘加结构(MA)

7、实现的。MA的输入有两部分,一部分是由明文导出的两个16比特数值,另一部分是两个16比特子密钥。计算机进行的彻底检查证明,第一圈输出的每一比特依赖于输入(明文部分和密钥部分)的每一比特。经8圈循环之后,可提供非常有效的扩散。,(二)实现方面的考虑,IDEA的设计考虑到了方便硬件和软件实现。通常由超大规模集成电路进行的硬件实现的设计目标是取得高速度,而软件实现则有灵活和低价的优点。,使用子分组:密码操作应该在对于软件来说很自然的子分组上进行,具有这种特性的子分组包括8,16或32比特,IDEA使用16比特子分组。 使用简单操作:密码操作应该容易使用加法、移位等基本操作编程实现。IDEA的三种操作

8、符合该要求,其中最困难的模乘法也可以容易地用简单的基本操作构成。,1、便于软件实现的原则:,模216+1乘法的具体运算过程如下:,(1)如果a=0,则,(2)若a、b为两个非零整数,则有,其中 表示ab除以216所得的商。,我们不妨用(ab)h表示32比特数ab的高16位,(ab)l表示32比特数ab的低16位,则有,则,其中,加密和解密过程类似:加密和解密应该只在使用密钥的方式上有所不同,以便于同一个设备既可用于加密又可用于解密。和DES一样,IDEA具有满足该要求的结构。 规则的结构:为便于VLSI(very large scale integration,超大规模集成)实现,密码应该具有一种模块化结构。IDEA是由重复使用两种基本的模块化(变换子块和加密子块)构件而构成的。,2、便于硬件实现的设计原则:,下节内容,分组密码小结,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号