【精品】DES算法及其JAVA程序设计

【精品】DES算法及其JAVA程序设计

ID:41732706

大小:343.69 KB

页数:28页

时间:2019-08-30

【精品】DES算法及其JAVA程序设计_第1页
【精品】DES算法及其JAVA程序设计_第2页
【精品】DES算法及其JAVA程序设计_第3页
【精品】DES算法及其JAVA程序设计_第4页
【精品】DES算法及其JAVA程序设计_第5页
资源描述:

《【精品】DES算法及其JAVA程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第2章DES算法及其JAVA程序设计本章的目的是详细讲解现代常规加密的原理。为此我们讨论目前使用最广泛的数据加密标准DES(DataEncryptionStandard)算法。2.1DES算法原理64bits明文56bits密钥64bits密文图2・1DES加密算法DES属于分组加密算法,即对固定长度的一组明文进行加密。DES的加密算法如图2.1所示。加密函数有两个输入:明文和密仞。在这里,明文的长度为64bitSo密钥的长度为56bitso64bits的明文经过初始置换TP后,用同一个函数进行16次循环变换,最后一个循环

2、的输出左边和右边两个部分经过交换后再通过一个置换1P的逆变换生成了64bits的密文。图2.1的右半部分为密钥的变换。56bits密钥首先通过一个置换函数,接着对于16个循环的每一个,都通过一个循环左移操作和一个置换操作产生出一个子密钥。每一个循环的置换函数相同,由于密钥的重复移位,使产生的子密钥不相同。初始置换及其逆置换123456785850423426181029101112131415166052443628201241718192021222324625446383022146252627282930313264

3、5648403224168333435363738394057,194133251791414243444546474859I5143352719113495051525354555661I5345372921135575859606162636463I5547393123157图2.2(a)IP置换1234567840848165624643291011121314151639747155523633117181920212223243864614542262302526272829303132=>37545135321

4、6129333435363738394036444125220602841424344454647483534311511959274950515253545556342421050185826575859606162636433141949175725图2.2(b)IP逆置换初始置换IP及其逆置换分别如图2・2Q)和2・2(b)所示。初始置换及其逆置换的关系为,如果输入64bits的二进制数X经过置换/P再经过逆置换""后,X将恢复原先的数值X=ip-}(IP(X)).图2.2(a)、(b)的关系见表2.1(a)、(b)

5、0表2.1DES的置换表(a)初始置.换IP5850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563LL5547393123157(b)逆初始置换〃口408481656246432397471555236331386461454226230375451353216129364441252206028353431151195927342421050185826331419

6、49175725(c)扩展置换E3212345456789891011121312131415161716171819202120212223242524252627282928293031321(d)置换函数P1672021291228171152326518311028241432273919133062211425下面分析16个循环的详细过程。图2.3给出了一个循坏的内部结构。先分析图形的左半部分。每个64bits的中间结果的左右两个部分被当成两个独立的32bits数值处理,分别标记为厶(左)和R(右)o&=尺一

7、S

8、㊉F(Rt,KJ输入尺•一I的长度是32bito这个输入傀_]先被扩展到48bit,扩展操作由表2.1(c)定义,所得到的48bits再和置换选择2的输出K,(48bits)进行异或。得到的48bits结果再经过一个置换函数S产生32bits的输出,最后按照表2.1(d)进行置换32bits32bits28bits28bits图2・3加密算法的轮结构S合子作用如图2.4所示。替代由一组共8个S盒子完成,其小每一个都接受6个比特作为输入并产生4个比特作为输出。这些变换是由表2.2定义。表2.2的使用方法如下:盒子的输入的笫一

9、和最后一个比特构成一个2位二进制数,用来选择由S表中的行,中间的4个比特则选出列。被上述行和列所选择的单元的十进制数码转换为一个dbits的二进制表示就产生了输出。例如,在S7中,对于输入110010,行是10(第2行)而列是1001(第9列)。第2行第9列的数是15,因此输出是1111。R(32bit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。