DES加密算法迭代改进.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DES加密算法迭代改进

DES加密算法迭代改进   摘 要:针对DES算法容易遭受穷举、选择明文等方法攻击的缺陷,本文提出了一种新的基于迭代算法的改进方案。通过对密文字符流的迭代加密来提高抵抗某些攻击的能力,在保障DES算法效率的前提下,很好地提高了DES算法的安全性。   关键词:DES算法;迭代;加/解密;字符流   0 引言   随着计算机技术的飞速发展以及Internet的普及,网络通信中的信息安全问题已经刻不容缓,如何保护信息资源已受到人们极大的关注。数据加密技术在过去几十年中得到了极大的发展,虽然DES(Data Encryption Standard)加密算法作为世界标准加密形式存在着多年的历史,但这并不影响其在数据加密领域中的主要的地位。目前,包括加解密芯片、ATM柜员机、无线WIFI服务、POS系统等,DES仍以它高强度的保密性能为大众服务。   1 DES算法特点及缺陷   DES数据加密标准主要用于民用加密,其前身是由IBM公司的一个研究小组研制的Lucifer密码算法,标准的DES算法是一种以64位为加/解密分组模块的分组加密算法,该算法从算法入口模块输入64位一组的明文,经过运算,从算法的另一端输出64位的密文。DES算法的主要特点如下:   1)DES算法是典型的对称加解密算法,它有效的密钥长度是56位(密钥每个字符的第8位都用作奇偶校验)。由于DES是对称加解密算法,所以保密性依赖于密钥。   2)DES对逆向明文攻击的抵抗性较弱。所谓逆向明文攻击,即选择性明文攻击,是指破解者有选择性的输入一组明文,通过DES加密得出相应的密文,通过对明文和密文的对比分析,得出一些有用的算法信息。在最坏情况下,攻击者可以直接获得解密用的钥匙。因此,改进后的算法应该能够对相同的明文得出不同的密文模块,从而减小被线性分析直接得出密钥的风险。   3)DES算法实现依靠S盒替代函数,而DES算法所用的S盒的设计原理未公开,其中可能有隐患,它是DES算法的核心,易被差分密码攻击。差分密码分析用于DES攻击首要的步骤便是获得明文数据,同样地,要尽最大可能对DES加密函数模块进行保护。   2 基于迭代改进的DES加/解密算法   2.1 基本的DES加密算法流程   DES算法的入口参数有三个:Key??Data和Mode。其中,Key为8个字节共64位,为DES算法的工作密钥;Data也为8个字节64位,为要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。DES加密过程如图1所示:   在上述加密过程中,密钥是整个算法的关键,16轮迭代算法过程正是采用原始密钥E扩展得出的16个子密钥作为F函数的输入参数,迭代过程决定了密钥的强弱程度,其大致流程如图2所示。   不难看出,函数是16轮迭代的核心部分,其实现的原理是首先将输入的右32位数据通过E扩展将结果与子密钥进行异或,然后把结果送入S盒,最后把S盒的输出进行P置换得到密文结果。   2.2 DES算法分析以及迭代改进   在初始的DES加密算法中,只要使用的密钥Key不变,扩展生成的子密钥的使用顺序是不变的,所以对不同明文的加密过程完全一样,这是原DES算法上较大的缺陷。这样,攻击者除了可以用穷举攻击法暴力破解外,还可以通过选择明文等其他方法进行攻击。解决问题的最好方法就是每一次加密均采用不同的密钥,而这又会产生密钥种类繁杂难以记忆等缺点,因此,较好的解决办法是用算法对原密钥进行重新编码生成,达到“一次一密”的效果。这种方案除非解密的一方知道完整的密钥,否则破解几乎是不可能的。   迭代改进正是基于对原密钥和新产生的密文进行综合考虑、处理的结果。一方面,个人只需掌握一个密钥,方便记忆;另一方面,每轮用于F函数过程处理的子密钥的最终数值取决于:1)E扩展生成的初始子密钥,2)上一轮加密产生的密文模块的数值。两个函数再进行一轮异或运算,得出最终用于加密的子密钥。具体过程如下:   第一轮——   1010(假设为原明文数据之一)   0110(假设为第一轮加密密钥)   = 1100(第一轮的密文,同时也是下一轮加密密钥的一部分)   第二轮——   0011(假设为第二轮初始加密密钥)   1100(第一轮的密文)   = 1010(第二轮的加密密钥)⊕1001(假设为原明文数据之二)=0011(二轮密文)   第三轮——   0101(假设为第三轮初始加密密钥)   1100(第二轮的密文)   = 1001(第三轮的加密密钥)……   通俗地说,就是对已经加密了的密文再进行一次依靠上一轮产生了的正确结果的密文的加密,即每一轮的加/解密都要依靠上一轮正确的结果。在解密时,只要上一轮的密文没有正确解密,那么接下来的密文就都不可能正确的解密,即克服了DES等典型分组加密算

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档