ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:173.28KB ,
资源ID:12837756      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12837756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DES的设计思路.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DES的设计思路.docx

1、DES的设计思路DES算法的研究孙东波新疆师范大学数理信息学院数学 04-3班摘要:本文以简洁通俗的语言介绍了 DES的可逆正确性的原因, 以及由此所引起的 DES的各个部分的讨论,并找出了几个置换的数学表达式。详细的讨论了 DES的设计思想,并简要介绍了基于DES的Blowfish算法。关键词:可逆正确性;数学表达式; Blowfish算法;DES algorithm researchSun Dong boXinjia ng Normal Uni versity In stitute of Mathematics of mathematical in formatio n classes 0

2、4-3 Abstract: The simple com mon Ian guage on the DES of the correct ness of the reas ons for theirreversible, and the resulting caused by DES in various parts of the discussion, and find a few replacement of the mathematical expression. The detailed discussion DES design concept, and introduced bri

3、efly based on the DES Blowfish algorithm.Key words: reversible correct ness; mathematical expressi on; Blowfish algorithm;DES算法的研究DES简介:1973年美国国家标准局(national bureau of standards ,NBS 认识到建立数据加密标准的迫切性,开始征集联邦数据加密标准。 1975年3月17日NBS 公布了 IBM公司提供的密码算法,经过两年多的公开讨论之后,1977年1月15 日NBS宣布批准其作为联邦信息处理标准 46号(即FIPS-46)

4、,同年7月15日 开始生效。这一算法被命名为数据加密标准 (data encryption standard ,DES), 供商业和非国防性政府部门使用。本文主要讨论以下内容:1、 DES的加密为什么是同样的过程,即其可逆正确性的原因。2、 以SDES为例说明函数F中的几个问题。3、 DES中有关置换函数的规律。4、 DES的设计思想。5、 在DES基础上的blowfish算法。由于DES算法规模过大,故先用SDES来讨论,之后再推广到DES中去。1、可逆正确性的原因(以 SDES为例)我们知道任何算法的解密过程都必须是原算法的严格的逆才可以,但是DES的解密过程与加密过程用相同的步骤相同的流

5、程,唯一的区别就是在解密时要先用K2后用K1。为什么会出现这种现象呢?首先请看下页的 SDES的流程图以及对照表:由下表可以知道SDES中的解密过程是严格成立的。因为任何数与其自身 进行模2加后的结果都是0。(主要表现在解密是函数 F上)。正由于其可逆是完 全成立的,故F函数中的运算可以随意定义。DES中的解密也和SDES中的一 样,只不过是经过16轮的迭代,子密钥多几个而已,它们都因为模 2加和严格的逆而使得其加密和解密使用同一个流程。密文加密解密(AL,AF为记号) 逆序对应L0=IP(明文)明文=IP-1(AL2,AR2)IP-1=(IP) -1R0=IP(明文)AL2=AL1 f( A

6、L1,K1)AL2=L0 f(R0,K1) f(R0,K1)=L0L仁R0AR2=AR1AR2=L1=R0R仁 L0 f(R0,K1)AL1=AL0 f ( AR0,K2)AL1=L1 f(R1,K2) L f(R1,K2)=L1R2=R1AL1=AR0AL1=AR0=R2;AL1=R1L2=L1 f(R1,K2)AR0=IP(密文)AL0=L2;AR0=R2.、.、 -1密文=IP (L2,R2)AL0=IP(密文)-1 -1IP=(IP )2、f函数R0/R1E/P扩展置换4 1 2 3 2 3 4 1SDES中的F函数的运算过程如上图所示。首先是R0或R1进行扩展置换, 然后再与Kn进行

7、逐位异或运算,然后结果从中间分成两组,分别进入相应的 S盒,S盒的输入有4位,首尾合在一起构成相应的行,中间决定列,然后找出相 应的正确的输出。两组输出再进行 P4置换后成为F的最终的输出结果。S盒的 查询分布由下表给出。S盒所呈现出来的原因这里先不作讨论,放在后面 DES中的S盒的分布一起讨论。S盒的分布S100011011S200011011000100111000000110110111100100011000011110001001111011100100111101001011100100113、DES中的几个问题首先看流程图:K2K16逆初始置换IPL16R1611密文DES的加密

8、过程如上图所示,我们可以看到它与 SDES相差不大,其区别 就是DES比SDES多了 14轮的迭代。它与SDES 一样,都有Li=Ri-iRi=Li-i f ( Ri-i , Ki)i=1, 2 16 的结构。所以其解密正确性毋庸置疑。其IP置换以及IP逆置换由下表给出,观察这两个表我们不难看出 IP表的规律 为:n为任一个元素的数值,n=8X+Y,Y|1,8;Y=2z+a,a 0,1。那么n的对 应的位置为(8-x)行(z+5a洌。直观的看就是按从上到下从右到左的顺序把 1-64初始置换IP逆初始置换IP 158504234261810240848165624643260 :52443628

9、 :2012439747155523633162 154463830 1221463864614542262306456484032241683754513532161295749413325179136444125220602859514335271911335343115119592761534537292113534242105018582663554739312315733141949175725排成一个8$的方阵,列不动,把该列中双号元素提上,单号元素压下既成该主密钥KPC-1IP矩阵。C0D0LS1LS1C1D1PC-2 K1LS2LS2C2D2PC-2K2LS16LS16C2C2

10、PC-2K16IP-1的规律为:设n为任意一个元素,n=8x+y,y 1 , 8,x=4z+b,z 0,1,那 么元素n所对应的位置是(9- y)行,(2+2b-z)列。直观的看就是把1-64这64 个数字按从下到上从左到右的顺序排成 88的方阵。然后行不变,把1, 2, 3, 4列插到5, 6, 7, 8相应列的后面这就成了 IP-1的方阵。主密钥K生成子密钥Kn的过程如上图所示;首先主密钥K经过PC-1置换 去掉逢8的位。这些位是奇偶校验位,它用于检查密钥 K在产生和分配过程中可能发生的错误。并重新排列,再从中间分为两部分 C0和D0,再进行循环左移变换LSn,再进行PC-2变换取其中的4

11、8位形成子密钥Kn。PC-1, PC-2以及循 环左移的位数如下表所示:循环序号12345678910111213141516左 移 位 数1122222212222221PC-1, PC-2 表选择置换PC-1选择置换PC-25749413325仃914171124151r 585042p426183P 28 1156:2110 :101 2595135 |27231 191241 268 119113605244361672720132635547393123154152313747557:625446:3830 :2230r 40 :5145:3348 :141 66153(4537 1

12、294449 139561 3453 1211352820124464250362932循环位表:我们看循环左移的这个表,会发现这个表咼度对称且所有左移位数之和为28,就是说C0,D0经过16轮的循环左移之后,又回到了初始的状态。这就意味 着这16轮左移把所有可能的情况都包括了。对于任意一个 n阶的有序元素集,最多经过n次循环左(右)移后一定能出现和原来一样的序列,所以 DES最多可以选择28轮迭代能产生最多28个不同的子密钥Kn。这28个子密钥可以是全 部循环1位的,也可以是循环移动a位的,只要a满足(a, n) =1,也就是说循 环左移位数与n是互素的。观察PC-1置换,不难发现,其有如下

13、规律:Co、Do分别按从左到右,从上到下的顺序排列,并按模除 8余同且从大到小排列的顺序排列出来。 Co是模1、2、3,Do是模7、& 5;模4按相同的从大到小的顺序排在空缺的位置上 即可。Ri-1EPi J J J J IiS1 S2 S3 S4 S5 S6 S7 S8亍十十t wEP置换置换函数P321234516720214567r 89 :29122817891011P1213 n1152326121314151617518311016171819202128241420212223r 2425 13227392425262728291913306282930313212211425D

14、ES中的f函数如上图所示,32位的Ri-i经EP扩展置换后变成48位的。然后 与48位的子密钥Ki进行模2力,其结果按从左到右每6位一组进入相应的S 盒。这6位首尾放一起作为行,中间4位作为列,来查S盒表。S盒表的结构由 于太大,参见毛明著大众密码学的 P88-P89页或陈鲁生著现代密码学的P47页的表。每个S盒的输出为4位,共有32位,进入P盒置换后,作为函数f 得输出。观察EP置换,可以发现其满足以下规律。设 科为第i行第j列元素,贝UAij= (4 (i-1) +(j-1) mod(32)Aij=32(i=1 且 j=1,或 i=8,j=5)直观的看,就是按1-32按顺序排成84的矩阵,

15、然后在该矩阵的左边盒右边各 添加相邻的小一列和大一列元素而成(SDES中也有类似的情况)。4、DES设计思想DES是一个数据加密的方法,加密的原因就是让人难以破译,最好是不能 破译。这就要求我们把明文的统计特性隐藏在密文中, 以防统计密码分析的攻击。另外,明文分组和密钥都要具有一定的长度, 以防穷举者的攻击。总之要使明文密文有最大限度的可能性,使密码破译者不知如何下手,只有用阶数很大的穷举 方法来解密。DES采用Feistel结构,而Feistel结构是几乎所有分组密码所常用的对称加密算法。Feistel结构的共性就是Li=Ri-1Ri=Li-1+f(R i-1,Ki)所以由前面的讨论可知 F

16、eistel结构是可逆的。DES是在Feistel结构的基础上加 一个初始置换IP和逆初始置换IP-1在首尾。我们可以看到他们两个也是互逆的, 所以IP、IP-1也是可以自由定义的。综上所述,DES中IP、IP-1可以自由定义,但必须是互逆的。函数 f也可 以自由定义,但必须使得其输出的结果能与 Ln进行相异或,确切的说,就是能使这个程序继续下去。F函数的一个条件就是对于相同的 Rn-1和Kn再次输入f 中要有相同的输出,不能变化,否则解密就不能再用这个流程了。对 f函数内的EP扩展置换也是可以自主定义的,但条件是其扩展(缩小)后的位数要与子密 钥Kn位数相同,以便继续下一步;进入 S盒后,S

17、盒也可以自由定义,条件是 尽可能的使其呈现出随机性,S盒的构造一般是用布尔函数来确定的, 具体S盒的规律和性质已超出本文的范围, 这里暂不作讨论;置换函数P也是可以自由定 义条件是使运算的输出尽可能出现随机性。我们现在用的 DES中,S盒是通用的,若第一轮到第十六轮分别用不同的 S盒的话,那么解密时不仅要调整子密钥的使用顺序,同时还要调整S盒的调用顺序,以便能达到使其逆成立。在主密钥生成子密钥的过程中PC-1,PC-2以及每一轮的循环左(右)移位数都可以自主 定义,主要限制是要让主密钥的位数运用要尽量均衡, 不能只用主密钥的一部分, 而弃用其他位置的元素,这样才能给密码攻击者造成最大的困难。我

18、们可以看到DES中有这么多可以修改的地方,所以它被称为数据加密标 准,也就是说它给我们提供了一种数据加密的流程, 一种模式。基于它的影响上世纪后期又出现了 IDEA (International Data Encryption Abgorithm 国际数据加密 算法)、三重DES、Blowfish、CAST128、RC2、RC5等常规加密算法。这些算 法的密码难度都比DES要高,其中以Blowfish的破译最为困难。下面就简要的 介绍下Blowfish的流程。5、 Blowfish 算法我们可以看到Blowfish的主加密过程和主解密过程和 DES大同小异,Blowfish 进行16轮的f函数

19、运算,但却用了 18个子密钥,又不影响其可逆解密的进行。DES有IP和IP-1来打乱原明文的排列,而 Blowfish却没有。因为这一步产生的 复杂度相对于Blowfish的子密钥、f函数、S盒而言,可谓九牛之一毛,所以可 省略。其f函数的构造如下图所示f函数如上图所示,其中 代表逐位异或,+代表模232相加。我们发现Blowfish所采用的4个S盒进行操作运算后,又进行了之间的运算作为输出。这就使得雪 崩效应一下增加了很多倍。但是我们发现其S盒的输入为8位而输出却为32位。 所以它的S盒并不像DES那样简单。事实上Blowfish的S盒的构造依靠主密钥。 下面就简要的介绍一下Blowfish

20、由主密钥生成子密钥以及S盒的过程。首先把主密钥放在一个 K数组中K1、K2 Kj(1呼14),子密钥放在数组P中,P1、P2 P18;有4个S盒,每个有256个32Bit的项,(8X32)的形式,S1,0、S1,1 S1,255,S2,0,S2,1, S2,255或表示为 Sij i 1,4j 0,255 其步骤如下:1n的小数部分初始化P数组,然后顺次初始化4个S盒。这样小数部分的最 左边32比特就成了 P1,再 32比特为P2,依次下去,第19个32比特成S1,0, 第1042个32比特为S4,2552对P数组和K数组进行逐位异或,需要是用 K数组。也就是说,把主密钥 K 数组首尾连接成一

21、个圈,把 P数组展成一列,然后K数组在P数组上滚一边, 逐位异或后,其结果为刷新后的 P数组。3使用当前的P和S数组对全零的64比特分组进行加法,把P1、P2用加密的 输出取代4使用当前最新的P和S数组对第三步的输出也就是 P1P2进行加密,并用所得 密文取代P3P4o再用最新的P数组和S数组对最新的输出进行加密,用其结果 取代下两个32比特的P数组。5重复上面的过程,直到所有的P数组和S数组全部更新为止。这里实际是把P, S数组的连在P数组之后,依次进行下去的,最后的结果是P和S数组都不是n 的小数部分形式。这样就产生了最终的子密钥 Pi和相应的S盒。这个过程需要加密算法执行 521次,也就

22、是说,在加密一组明文之前首先要运行 521次,这对解密者来说可谓是难于上青天。但是 Blowfish不适合密钥经常改变的应用,为了快速期间, 它的P数组和S数组可以预先存放好,而不是每次使用都从密钥中导出。到此为止,我们可以看到Blowfish设计的巧妙之处,它采用DES的主加密流程, 但使用的S盒却是从主密钥中导出的,并且环环相扣,雪崩效应可谓达到了顶点, 它使用两种运算逐位异或和模 232加,使得密码强度大大增强,故有没有DES中 的IP和IP-1的置换扰乱对它来说意义不大。所以到现在为止 Blowfish没有发现实际可用的弱点。参考文献:1毛明著大众密码学北京高等教育出版社,2005年1月2william stallings 密码编码学与网络安全:原理与实践 第二版杨明等译北京电子工业出版社,2001年4月3陈鲁生 沈世镒现代密码学北京科学出版社,2002年

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1