浅谈密码技术中的DES加密算法
- 格式:doc
- 大小:26.50 KB
- 文档页数:5
浅谈密码技术中的DES加密算法
摘要:随着计算机网络技术和计算机通信技术的快速发展,计算机密码学得到了前所未有的重视并且得到了迅速的发展,已成不计算机安全的一个重要的研究方向。
关键词:加密技术DES算法
密码学已经成为提高计算机安全的一个重要的研究方向,同时也成为计算机安全课程教学中的一个更为主要的内容。
密码技术是实现密秘通信的手段,是隐蔽文字、图像和声音的一种特种符号。
这些特种符号通常按照通信双方约定好的方法把原来的信息进行隐蔽,不为第三方所知的通信方式就叫密码通信。
在计算机中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传播出去,使信息在传输过程中即使被窃取或截获,窃取者也没有办法了解信息的内容,从而达到保证信息的安全性。
数据加密的一般模型如图1所示。
在图1中,把未加密的原始数据称为明文数据,用M表示;把经过加密算法加密的数据称为密文数据,用C表示;加密算法用E表示;解密算法则用D表示。
即M经过E加密后得到C,表示为C=E(M)。
接收到C后,由公式M=D(C)得于M。
在众多的加密算法中,DES算法是由IBM公司研制,由美国联邦定为加密标准。
DES算法的工作原理是公开加密和解密的算法,DES算法对密钥进行保密。
只有掌握与发送方相同的密钥之后才能解
读出由DES算法所加密的密文数据。
所以想要破解DES的密文的实际是搜索密钥的编码。
如要破解56位长度的密钥,如果用穷举法进行搜索,运算次数为。
DES密钥的生成如下:
(1)取得密钥
从用户处取得一个64位(本文如未特指,均指二进制位))长的密码key ,去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥。
(2)等分密钥
DES加密算法
把在1步中生成的56位输入密钥分成均等的A,B两部分,每部分为28位,参照表1和表2把输入密钥的位值填入相应的位置. 按照表1所示A的第一位为输入的64位密钥的第57位,A的第2位为64位密钥的第49位,...,依此类推,A的最后一位是64位密钥的第36位。
(3)密钥移位
DES算法的密钥是经过16次迭代得到一组密钥的,把在1.1.2步中生成的A,B视为迭代的起始密钥,表3显示在第i次迭代时密钥循环左移的位数. 比如在第1次迭代时密钥循环左移1位,第3次迭代时密钥循环左移2位.
第9次迭代时密钥循环左移1位,第14次迭代时密钥循环左移2位.
DES加密算法的实现
利用算法核心代码封装的接口函数编写一个针对文本文件的加密解密工具。
选择把密文以16进制的形式写入文件的方法。
当然也可以直接写入文件。
例如: 密文为:12345678
在内存中显示为:
31 32 33 34 35 36 37 38
那么就把以3132333435363738的形式写入文件.
为了解密的方便,密文中的每个字节用两个字节表示,也即在内存中显示为0x9A的内容,就以9A的形式写入文件中.当内存中显示的内
容为0x0?(?代表0~F)形式时,需要以0?的形式写入文件。
这样可以避开前面提及的问题,只是在解密时先按照两两组合的原则,顺序把从文件中读取的数据转换成待解的密文。
例:
读出的数据是:
3132333435363738
得到复原的过程如下:
31->1
32->2
33->3
….
38->8
最终得真正的密文12345678,这样就可以调用DES算法解密函数从密文得到明文。
DES算法是对固定大小(64位)的数据块进行加密解密操作的,对于那些不够64位的数据块是需要采用填充机制补位到64位长,为了方便使用,数据位的填充是对用户而言是透明的,利用该工具进行加密
解密操作时,用户只需输入操作的类型、读取数据的文件名、写入操作结果的文件名、密钥等信息。
DES算法具有极高安全性,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
而56位长的密钥的穷举空间为256,这意味着如果计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。
由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES 运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。
因此,在实际应用中,我们应避开使用第8,16,24, (64)
位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。
如果不了解这一点,把密钥Key的8,16,24,…..?.64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。