2008年第1期
福建电脑
浅析DES数据加密算法
林新平
(汕头职业技术学院广东汕头515078)
【摘要】:数据加密可以分为对称密钥加密和非对称密钥加密,其中DES算法属于对称密钥加密。本文简单的描述了DES算法,阐述了其基本的加密原理。
【关键词】:加密;DES算法
1.引言
跨入21世纪,人类社会已经进入了信息时代,信息已经成为最重要的资源,信息的保密问题就越来越重要了。无论是个人信息通信还是电子商务的发展,都迫切需要保证信息传输的安全以及保证信息的安全。其中,数据加密是信息安全的核心。数据加密就是把信息隐藏起来,使隐藏后的信息在传输的过程
中,即使被窃取或截获,窃取者也不能了解信息的内容,从而保证了信息传输的安全以及信息的安全。数据加密技术是一门学科,它集合了数学、计算机科学、电子与通信等学科于一身。
加密技术发展到今天,主要分为对称加密和非对称加密。其中,对称加密是指使用同样的密钥对数据进行加密和解密。本文讨论的DES算法就是对称加密的一种加密技术,而且也是最重要的一种加密技术之一。
2.DES算法简介
DES(DataEncryptionStandard),又称数据加密标准,是美国IBM公司于20世纪70年代中期的一个密码算法发展而来的,并于1977年被美国国家标准局公布为美国数据加密标准。
生意赚钱
该加密算法能达到以下四个要求:其一是,提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;其二是,具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又便于理解和掌握;其三是,DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;最后,实现经济,运行有效,并且适用于多种完全不同的应用。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是
DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有加密和解密2种。Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
3.DES算法的加密过程
DES使用56位密钥对64位数据块进行加密,需要进行16轮编码。在每轮编码时,一个48位的密钥值由56位的完整密钥通过置换得出来。在每轮编码过程中,64位数据和每轮密钥值被输入一个成为"S"的盒中,由一
个压码函数对数位进行编码。另
外,在每轮编码开始、过后以及
每轮之间,64位数据被以一种特
别的方式置换,打乱数位顺序。
在每一步处理中都要从56位的
主密钥中得出一个唯一的轮次
多幸运韩安旭
密钥。最后,输入的64位原始数
据被转换成64位看起来被完全对教师的评价用语
打乱了的输出数据,但可以用解
密算法将其转换成输入时的状
态。
DES加密过程如下图所示:
4.DES算法的加密原理
DES算法的加密过程大致可分成四步:初始置换、迭代过程、子密钥生成和逆置换。首先,对64位数据分组(明文)作为输入数据按规定的初始置换(初始置换矩阵如下表)重排,再分为两个32位的分组,分别记为L0和R0。接着,R0与子密钥K1经过F函数的运算,得到32位的输出,再与L0作逐位进行异或运算(Xor),得到R1,而下一轮的L1则是上一轮的R0,如此迭代
16轮,最后一轮得到的R16与L16不必再迭代,直接联结成64位的数据,然后再作一轮逆置换,得到64位的最终输出。
第一步,初始置换
初始置换功能是把输入的64位数据块按位重新组合,搅乱数据的原来的顺序后,并把输出分为L0,R0两部分,每部分32位,其置换规则如下表
初始置换表
也就是将原来的第58位换到第1位,第50位换到第2位,……以此类推,最后一位是原来的第7位。L0和R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。例如:置换前的输入值是D1D2D3……D64,则经过置换后的结果是L0=D58D50……D8,R0=D57D49……D7。
第二步,迭代过程
迭代过程是DES算法的第二步,它将第一步得到的结果分为两半L0和R0,设密钥K=K1K2……K64,Ki的取值为0或者1,i取值为大于等于1并小于等于64的整数。DES加密算法过程与密钥K一起作用的16轮乘积变换可以形式的表示为:Li=Ri-1少儿识字
Ri=Li-1!F(Ri-1,Ki)
其中Li,Ri的长度均为32位。符号为模2加,F是由密钥K分解产生并经变化后的一个48位子密钥。DES最后一轮左半部分右半部分并未交换,而是直接将R16L16并在一块作为最后置换的输入。对R16L16进行逆初始置换的目的就是为了使加解密统一使用一个算法。
迭代过程如下图:
第三步,子密钥的生成
使用者所持有的初始密钥是64位。初始密钥首先经过密钥置换A(如下表所示),生成一个56位的密钥,接着,将这56位的密钥分成两个28位的分组C0和D0,再分别经过一个循环左
图1:DES
加密过程
58
2008年第1期福建电脑
(上接第55页)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
方案二
四.图像压缩仿真实验及结论
本实验采用128×128标准测试图象(图1),小波类型采用db9,直接设定阈值压缩。图像质量评价规则采用峰值信噪比PSNR,定义如下:
其中
17uoo游戏交易平台pi为原图像点值,pi*为重建图像点值。
根据方案一、二对实验图像进行MATLAB仿真实验处理,
为了对比压缩效果,对原始图像还进行了单纯小波变换压缩。结果见表1。
图1原始图像128128表一
方案一
方案二
小波变换
图2标准图象有损压缩对比实验
仿真结果显示,在相同信噪比的情况下,方案一、方案二的压缩率基本高于单纯用小波变换的结果。在高信噪比的情况下方案一优于方案二,在低信噪比的情况下方案二优于方案一。总之,本文提出的奇异值分解(SVD)与小波变换结合的图像压缩算法是比较有效的。
参考文献:
西班牙英语
1.王璟瑞等基于小波变换的图象压缩方法计量与测试技术2005年02期
2.彭晓钦等基于小波变换的静止图象压缩技术研究桂林电子工业学院学报1998年3月第三期
3.黄建华等小波变换在图像压缩中的应用研究辽宁工学院学报2006年12月第6期
4.陈耀明小波变换在图像数据压缩中的应用现代电子技术2007年第6期
5.Yeung,E.4.Imagecompressionusingwavelets。ElectricalandComputerEngineering,1997.IEEE1997CanadianConferenceonVolume1,25-28May1997Page(s):241-244
6.Mercier,G.Despeckle-basedSARimagecompression.GeoscienceandRemoteSensingSymposium,2001.IGARSS'01.IEEE2001
International
移函数,得到C1和D1。C1和D1连接成一个56位的数据,再按照密钥置换B(如下表所示)做重排动作,得到了子密钥K1。C1和D1,再分别经过一个循环左移函数得到C2和D2,C2和D2连接成56位数据,再按照密钥置换B做重排动作,这样就产生
了子密钥K2。
依次下去就产生了子密钥K3,K4,……,K16。值得注意的是,密钥置换A的输入为64位,输出为56位;而密钥置换B的输入为56位,输出为48位。第四步,逆置换
这是DES算法的最后一步,逆置换的作用是把初始置换后已处于混乱状态的64位数据,变换到原来的正常位置。例如,明文中第58位数据在初始置换后处于第1位,而通过逆置换后,又将第1位换回到第58位。逆置换如下表:
新来的女老师
5.结束语
DES算法具有极高的安全性,到目前为止,除了用穷举法对DES算法进行攻击外,还没有发现更有效的方法,而DES的密钥长度是56,那么它的穷举空间为2的56次方,这意味着如果一台计算机的速度是每秒钟检测100万个密钥,则搜索完全部
密钥也需要2285年的时间,这是难以实现的。
随着硬件的发展,计算机速度的提高,这是,我们可以把DES密钥的长度增长,可
以达到更高的保密程度。
DES算法对大量明文数据加密具有极高的安全性,但对少量明文数据加密的安全性较差。本文通过分析DES算法对明文的实质加密过程,可以看出,在应用DES算法的某些领域,DES算法应用还存在不足,破译者较易得出明文,将严重影响DES算法的安全强度,必须进一步加强安全防范。
在上述情况下,为提高安全性能,可在明文(口令密码)初始置换之前用传统的加密法进行加密,使明文变得无含义,生成第二明文,然后对第二明文进行DES加密。
参考文献:
妻子英语1.胡铮.《网络与信息安全》.清华大学出版社.2006.5
2.靳冰赖宏慧贾玉珍.DES加密算法安全分析.网络与安全技术.2007年第2期
3.徐超汉柯宗贵.《计算机网络安全实用技术》.电子工业出版社.2005.3
4.蔡立军.《网络安全技术》.清华大学出版社北京交通大学出版社.2006.
9
5.邓亚平.《
计算机网络安全》.人民邮电出版社.2004.96.林柏钢.《网络与信息安全教程》.机械工业出版社.2004.7
7.李少芳.DES加密过程探讨.计算机与现代化.2006年第8
期
59