网站大量收购独家精品文档,联系QQ:2885784924

一种多组分密码算法.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种多组分密码算法 信息加密技术是信息安全最有效的方法之一,可以通过不同的加密算法进行。加密算法的选择直接影响信息的安全性。IDEA加密算法是已公开的可用算法中速度快且安全性强的分组密码算法,具有良好的应用前景。具有极强的抗攻击能力。本文主要对IDEA算法思想进行深入的分析和研究,并在此基础上阐述了改算法的实现原理和过程,尤其对该算法的密钥扩展和加密过程进行了详细的描述,并在C#环境下设计、实现IDEA对称加解密算法。 1 概念算法的总结 1.1 迭代算法设计 IDEA算法是一个分组长度为64比特的分组密码算法,密钥长度为128比特,由8轮迭代操作实现。每个迭代都由三种函数:mod(216)加法、mod(216+1)乘法和逐位异或算法组成。整个算法包括子密钥产生、数据加密过程、数据解密过程三部分。该算法规定明文和密文块均为64比特,密钥长度为128比特,加解密相同,只是密钥各异。 1.1.1 子密钥的扩展 IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥输出变换,所以总共需要52个子密钥,这52个子密钥都是从128比特密钥中扩展出来的。 输入的明文为8个字符(即64比特),将64比特数据块分成X1,,X2,,X,3,X,4四个子块,每一子块16比特。这4个子块将作为第一轮迭代的输入,全部共8轮迭代。在每一轮中,这4个子块相互异或、相加和相乘,且与6个16比特子密钥相异或、相加和相乘。最后在输出变换中4个子块与4个子密钥进行运算。加密过程如图1所示。 1.1.2 相关算法的加密 和加密密钥一样,解密密钥也需要扩展,不同的是解密密钥是由加密密钥加法逆或乘法逆构成的,且两者一一对应。 IDEA算法的解密过程和加密过程一样,只是加密用加密密钥EK,解密用的是解密密钥DK。输入的密文同样为8个字符(即64比特),将64比特数据块分成Y1,,Y2,,Y,3,Y,4四个子块,每一子块16比特。这4个子块将作为第一轮迭代的输入,全部共8轮迭代。解密过程如图2。 IDEA算法结构图如图3。 2 概念算法的编程实现 2.1 扩展密钥串 在算法中,实际上是将128比特密钥扩展为832比特。每一个字节用0补足16位。具体是如何扩展的呢?在前面的扩展思想中已经知道密钥串分8个子块,循环左移7次,其中第7次循环是取前4个,所以最终形成832比特(16*8*6+16*4)。扩展密钥数组为m_nKeyEncryptBox,部分代码如下。 2.2 子密钥的生成 IDEA加密算法和解密算法是相同的,其处理为:将64比特输入分成4个16比特的子块A、B、C、D,然后进行8轮循环,在第j轮循环中,子密钥为:key[6*i]-key[6*i+5],其中,i=0……7。部分代码如下。 2.3 加密密钥生活 解密密钥也需要扩展,不过,它与加密密钥扩展不同,它不需要从密钥串中变换而来。IDEA解密密钥扩展数组m_nKeyDecryptBox是由加密密钥数组m_nKeyEncryptBox处理而来的。其具体处理步骤为:首先由m_nKeyEncryptBox到m_nKeyEncryptBox[3四个加密密钥数组元素处理成四个解密密钥数组元素m_nKeyDecryptBox到m_nKeyDecryptBox,然后进行8轮迭代。在第m轮中,由六个加密密钥数组元素m_nKeyEncryptBox[4+6*m]到m_nKeyEncryptBox[9+6*m]生成六个解密密钥数组元素m_nKeyDecryptBox[47-6*m]到m_nKeyDecryptBox[42-6*m]。最终生成832比特的加密密钥数组m_nKeyDecryptBox。部分代码如下。 2.4 分组迭代的流程 在IDEA算法的加密和解密过程中,每一轮迭代都是由分组数据之间,分组数据和密钥间进行模加、模乘和逐位异或运算组成的。其中,模乘的核心代码如下。 2.5 钥扩展部分mn开发 模乘逆元算法是在解密密钥扩展时的主要算法,解密密钥扩展数组m_nKeyDecryptBox是由加密密钥数组m_nKeyEncryptBox通过加法逆或乘法逆处理而来的。模乘逆元算法的核心代码如下。 2.6 用于安装界面 演示界面如图4。 5 加解密技术的应用 IDEA算法加密速度快,密钥产生方法简单。该算法若采用搜索破译,需要2128大约1038试探,8轮迭代使得没有任何捷径破译。对于差分和线性攻击是安全的。若将字节有16byte增至32byte,密钥长度相应长256byte。采用模加和模乘,则更加可以进一步强化IDEA算法。目前,正将该算法作为独立的加解密芯片嵌入军用数码保护器系统。本文主要是对IDEA算法的设计思想和原理进行深入的研究和运用所学的知识进行设计和实现其主要加解密功能。

文档评论(0)

lmzwkyc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档