[毕业设计 论文 精品]DES算法的安全性及其应用 翻译中文.doc
-
资源ID:3932724
资源大小:117.50KB
全文页数:7页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
[毕业设计 论文 精品]DES算法的安全性及其应用 翻译中文.doc
算法的安全性及其应用摘要 :对DES算法的加密进行分析,提出DES算法安全性问题,介绍了DES算法的应用,指出密钥的长度、多重DES算法、算法的安全管理、弱密钥等安全性问题必须给予重视。关键词 : DES算法 ; 密钥 ; 加密 ; 安全性 ; 应用.数据加密标准(Data Encryption standard , DES)是美国国家标准局研究,除美国国防部以外其他部门的计算机系统的数据加密标准,属于分组密码的一种,在具体的应用中还无法将这种加密算法完全破解掉,因此也被美国政府作为限制出口的一种技术,它目前仍被广泛使用,具有较高的安全性。1.DES算法概述DES是一个对称算法:加密和解密用的是同一算法(除密钥编排不同以外),既可用于加密又可用于解密。它的核技术是:在相信复杂函数可以通过简单函数迭代若干圈得到的原则下,利用F函数及对合等运算,充分利用非线性运算。DES以64位为分组对数据加密。每组64位,最后一组若不足64位以“0”补齐。密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略,所以密钥的长度为56位,密钥可以是任意的56位的数,且可在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们,所有的保密性依赖于密钥。2.DES算法的加密分析2.1 DES算法的基本思想DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分(L0)和右半部分(R0),各32位长。R0与子密钥K1进行F函数的运算,输出32位的数,然后与L0执行异或操作得到R1,L1则是上一轮的R0,如此经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完成了。2.2 初始置换初始置换在第一轮运算前执行,对输入分组实施如表1所示的变换(此表应从左向右、从上向下读)。例如,初始位置把明文的第58位换到第1位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置等等。初始置换和对应的末置换并不影响DES的安全性。它的主要目的是为了更容易地将明文与密文数据以字节大放入DES芯片中。2.3 子密钥的生成子密钥的产生如图1所示1。将64位密钥进行密钥置换,不考虑每个字节的第8位,DES密钥由64位减至56位,56位密钥被分成两部分,前28位为C0,后28位为D0。C0,D0。接着,根据轮数,C0和D0分别经过LSi循环左移1位或2位。16次循环左移的位数依据下列规则进行:循环左移位数 ,经过循环左移得到的Ci,Di经过压缩置换即得到子密钥Ki(,16)。压缩置换也称作置换选择,就是从56位中选出48位,表2定义了压缩置换。例如,处在第33位位置的那一位在输出时移到了第35位的位置,而处在第 18位位置的那一位被略去。2.4 16轮迭代过程 算法有16次迭代,迭代如图2所示2。从图中可得到 ,。 函数的实现原理是将进行扩展置换后其结果与进行异或,并把输出内容执行S盒替代与P盒转换后得到,其原理如图3所示3。 扩展置换也叫做E盒,它将数据右半部分从32位扩展到48位,改变了位的次序,重复了某些位,比原输入长了16位,数据位仍取决于原输入。扩展置换的48位输出按顺序分成8组,每组6位,分别输入8个S子盒,每个子盒输出4 位,共32位。假设将S盒的6位的输入标记为b1、b2、b3、b4、b5、b6,则b1和b6组合构成了一个2位的数,从0到3,它对应着S表中的一行。从b2 到 b5构成了一个4位的数,从0到15,对应着表中的一列,行列交汇处的数据就是该S盒的输出。每个S盒被看作一个4位输入的代替函数:b2到b5直接输入,输出结果为4位,b1和b6位来自临近的分组,它们从特定的S盒的4个代替函数中选择一个。这是该算法的关键步骤,所有其他的运算都是线性的,易于分析,而S盒是非线性的,它比DES其他任何一步提供了更好的安全性。P盒转换是把每个输入位映射到输出位,任意一位不能被映射两次,也不能被略去。2.5 末置换末置换是初始置换的逆过程,DES在最后一轮后,左半部分和右半部分并未交换,而是将R16和L16并在一起形成一个分组作为末置换的输入。3 DES算法安全性问题3.1 DES算法密钥的长度最初的罗斯福密码中密钥长度为128位,的加密单位仅有64位二进制,而且其中某些位还要用于奇偶校验或其他通讯开销,有效密钥只有56位, 这对于数据传输来说太小,各次迭代中使用的密钥KI是递推产生的,这种相关性必然降低了密码体制的安全性。因此,人们会对56位密钥的安全性产生质疑,那么56位密钥是否足够,已成为人们争论的焦点之一。至今,最有效的破解DES算法的方法是穷举搜约是228,493,000年。但是,仍有学者认为在可预见的将来用穷举法寻找正确密钥已趋于可行,所以若要安全保护10年以上的数据最好不用DES算法。近年来有人提出用差分和线性攻击方案来破解DES算法,虽然,从理论上来说破译的性能高于穷举搜索法,但要有超高速计算机提供支持,以致于美国国家保密局和计算机科学技术学会组织各界专家研究DES密码体制的安全性问题后,得出乐观的结论:没有任何可以破译DES密码体制的系统分析法。若使用穷举法,则在1990年以前基本上不可能产生出每天能破译一个DES密钥的专用计算机。即使届时能制造出这样的专用机,它的破译成功率也只会在0.1到0.2之间,而且造价可能高达几千万美元。根据目前的计算技术和DES的分析情况,16圈DES(采用16轮迭代)仍然是安全的,但提醒使用者不要使用低于16圈的DES,特别是10圈以下的DES。尽管如此,我们仍然需要考虑对DES算法进行改进,使密钥长度增加些,以实现更好的保密功能。3.2 多重DES算法针对DES算法上的缺陷,各国专家们都在研究如何增强DES算法的安全性,现在已发展出几十种改进的DES,经过比较,笔者认为多重DES具有较高的可行性。为了增加密钥的长度,采用多重DES加密技术,将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。针对DES算法,专家们的共识是采用3重DES加密算法。3重DES方法需要执行3次常规的DES加密步骤,但最常用的3重DES算法中仅仅用两个56位DES密钥。假设这两个密钥为K1与K2,其算法的步骤是:)用密钥K1进行DES加密;待添加的隐藏文字内容3)用步骤1的结果使用密钥K2进行DES解密;)用步骤2的结果使用密钥K1进行DES加密。这个过程称为EDE(加密解密加密)。三重DES可使加密密钥长度扩展到128位,其中有效112位。三重DES的112位密钥长度在可以预见的将来可认为是合适的、安全的,据称,目前尚无人找到针对此方案的攻击方法。因为要破译它可能需要尝试256个不同的56位密钥直到找到正确的密钥。但是三重DES的时间是DES算法的3倍,时间开销较大。 3.3 避开DES算法漏洞,实现安全管理在DES密钥KEY的使用、管理及密钥更换的过程中,应绝对避开DES算法的应用误区,即:绝对不能把KEY的第 、 位作为有效数据位,来对KEY进行管理。从上述DES算法的描述中知道,每个字节的第8位作为奇偶校验位以确保密钥不发生错误,这8位不参与DES运算。因此,特别推荐给金融银行界及非金融业界的领导及决策者们,尤其是负责管理密钥的人,要对此点予以高度重视。有的银行金融交易网络,利用定期更换DES密钥KEY的办法来进一步提高系统的安全性和可靠性,如果忽略了上述应用误区,那么,更换新密钥将是徒劳的,将威胁到金融交易网络的安全运行,所以更换密钥一定要保证新KEY与旧KEY真正的不同即除了第 、 位以外其它位数据发生了变化,这样才能保证DES算法安全可靠发挥作用,须务必对此保持高度重视。现代密码学的特征是算法可以公开。保密的关键是如何保护好自己的密钥,而破密的关键则是如何能破解得到密钥。统的安全主管者,要根据本系统实际所使用的密钥长度与其所保护的信息的敏感程度、重要程度以及系统实际所处安全环境的恶劣程度,在留有足够的安全系数的条件下来确定其密钥和证书更换周期的长短。同时,将已废弃的密钥和证书放入黑库归档,以备后用。密钥更换周期的正确安全策略是系统能够安全运行的保障,是系统的安全管理者最重要、最核心的日常工作任务。3.4 弱密钥在DES算法中存在12个半弱密钥和4个弱密钥。由于在子密钥的产生过程中,密钥被分成了2个部分,如果这2个部分分成了全0或全1,那么每轮产生的子密钥都是相同的,当密钥是全0或全1,或者一半是1或0时,就会产生弱密钥或半弱密钥,DES算法的安全性就会变差。在设定密钥时应避免弱密钥或半弱密钥的出现。4.DES算法的应用自DES算法颁布之后,引起了学术界和企业界的广泛重视。许多厂家很快生产出实现DES算法的硬件产品,广大用户在市场上买到高速而又廉价的DES 硬件产品之后,开始用它加密自己的重要数据,从而大大推广了密码技术的使用。DES算法的入口参数有3个:KEY、DATA、MODE。其中KEY为8个字节共64位,是DES算法的工作密钥;DATA也为8个字节64位,是要被加密或被解密的数据;MODE为DES的工作方式,有两种:加密和解密。DES算法是这样工作的:如MODE为加密,则用KEY去把数据DATA 进行加密,生成DATA的密码形式(64位)作为DES的输出结果;如MODE为解密,则用KEY去把密码形式的数据DATA解密,还原为DATA的明码形式(64 位)作为DES的输出结果。在通信网络的两端,双方约定了一致的 KEY,在通信的源点用KEY对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的KEY对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据在公共通信网中传输的安全性和可靠性3。通过定期在通信网络的源端和目的端同时改用新的KEY,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。在.NET开发系统中,微软公司提供了DES公用密钥的加密类,使用它,我们可以自己编制自己的标准DES加密算法。在任何一个单位,程序员只要设计此程序就能对零散离散文件进行加密传输,而如果要和其他单位交换数据,由于使用的公用算法,只需要向对方提供密钥及算法说明即可,使用非常方便。参考文献 :卢开澄计算机密码学计算机网络中的数据保密与安全:第 版北京:清华大学出版社,冯登国,吴文玲分组密码的设计与分析北京:清华大学出版社,