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

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

ID:42994798

大小:556.50 KB

页数:26页

时间:2019-09-27

应用密码学第11讲-IDEA算法_第1页
应用密码学第11讲-IDEA算法_第2页
应用密码学第11讲-IDEA算法_第3页
应用密码学第11讲-IDEA算法_第4页
应用密码学第11讲-IDEA算法_第5页
资源描述:

《应用密码学第11讲-IDEA算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IDEA分组密码算法IDEA分组密码算法概述XuejiaLai和JamesMassey于1990年提出了PES(ProposedEncryptionStandard,推荐加密标准)分组密码算法。为了抗击差分密码分析,设计者于1991年对PES作了改进,并将改进后的算法称为IPES(ImprovedProposedEncryptionStandard,改进型推荐加密标准)。IPES于1992年改名为IDEA(InternationalDataEncryptionAlgorithm,国际数据加密标准)。算法的描述分组长度: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)是16

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

4、上述128比特密钥循环左移25位,将其从左到右分成8个16比特子块,得到随后的8个子密钥,重复这个过程,直到产生52个16比特子密钥为止。(三)脱密算法这里z-1表示z的模216+1乘法逆,-z表示z的模216加法逆。脱密密钥与加密密钥的对应关系为:脱密算法与加密算法是相同的,只是在脱密过程中使用脱密密钥。IDEA加、脱密子密钥的关系64bit明文X子加密过程输出变换循环8变换64bit密文Y循环1循环1子加密过程变换循环8输出变换子加密过程变换输出变换64bit密文Y循环1子加密过程变换64bit密文Y循环8(四)IDEA加、脱密变换的相似性图示的变换是ID

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

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

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

8、特性的子分组包括8,16或32比特,I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。