1、01fr第3章 分组密码和数据加密标准DES精简104第3章分密组密码算法DES 教学内容要点:(2课时)1. 分组加密 42. Feistel(费斯妥)分组密码 63. 数据加密标准(DES)的历史 154. DES算法的入口参数 185. DES算法加密过程 196. 变换密钥 257. 处理64位的数据 318. 轮函数Round说明 379. DES算法的解密过程 4510. 雪崩效应 4611. DES算法的强度(安全性)争议 4812. 对密钥长度的攻击 4813. DES的未来 5214. 差分分析方法和线性分析方法(提及) 5315. 作业 5416. 课后资料 56说明:分组
2、加密“分组加密(block cipher):一次处理固定比特长度的分组,每次处理都有复杂的数据处理过程。现代常规分组加密算法有:1. DES 2. IDEA 3. RC5 4. RC6 5. AES在近代密码史上,典型的影响相当大的分组密码算法是DES算法,它们和所有早已退出的算法由于安全与强度的原因已近退出历史舞台,但它们曾做出了重要贡献,对它们的学习对后面算法的理解和密码算法的发展及其理由有积极意义。本章将详解DES和略解其它分组算法。现在来看看现代分组密码,其中一个最广泛使用的加密算法 提供保密/认证服务(基于密码的消息验证码:确保消息未被改动),重点DES (数据加密标准);分组密码一
3、直得以广泛使用的理由在于:它处理速度很快,且安全性高。学习目的此外也在于以DES为例来说明让大家了解现代分组密码的设计原则。分组密码以固定长度的分组来处理模块,每个然后加/解密;像在一个非常大的字符集合上进行替代运算。64位或更长;1. Feistel(费斯妥)分组密码许多对称的分组加密算法,都是基于结构称为Feistel分组密码,如:IBM的LUCIFER卖给英国公司Lloyd公司的现金发放卡上;此外DES算法。它由分组密码操作上n位明文块经过产生n位密文区块。任意可逆的替代映射密码查找表:对较大的分组是不切合实际,但是,从实现和性能的观点。一般而言,一个n位通用分组密码替代表的规模,关键是
4、N*2n 。对于64位的块,这是一个理想的长度挫败统计分析攻击的统计,表的大小是64 264 = 270 = 1021位。这实际是密钥的长度,这太长了,实现推广困难很大。在考虑这些困难, Feistel指出,现在需要的对应较n是一个近似的理想分组密码系统,建立起来的组件,很容易实现。Feistel是指一个n位通用替代是一个理想的分组密码,因为它允许的最大数量的加密映射(从明文到密文块)。 4位输入产生的一个16个可能的输出,这是对应的密码替换成一个独特的16个可能的输出,每个代表了4位密文。该加密和解密映射可以定义一个表格所示,如图3.1 。它描绘了一个微小的4位替代;它表明,每一个可能的输入
5、可任意映射到任何输出-这就是为什么它的复杂性的增长如此迅速。(Claude Shannons 1949 paper )申农的1949年论文的关键思想,引导了现代分组密码的发展。重要的是,他建议交替使用S -盒分和P 盒(形式的S-P网络SPN),形成一个复杂的实用密码。他还介绍了思想的混乱和扩散(confusion and diffusion),它们分别由S -盒和P-盒(与S -盒)提供。 扩散和混乱是香农引入的两个基本构件。对于密码操作来讲是替代和排列;对于于消息的信息量(统计特征)来说是混乱和扩散每个分组密码涉及转变块明文到密文区块,其中的转变取决于关键。例子:一滴红墨水滴入太平洋;(海
6、水依然是蓝色的);要重新将红墨水分离是不可能的。扩散力求使明文和密文的统计之间的关系尽可能复杂以挫败企图推断。混乱力求使密文和加密金钥统计之间的关系一样复杂可能再次挫败企图。 例子:一幅扑克牌从6楼以天女撒花的方式扔下一楼;54位同学一个去检一张;按学号收集起来;这个顺序是乱的。没有规律;实验可重复;实验现象重复的概率几乎为零;服从某种概率分布。这是“乱”;无序可言因此,成功的扩散和混乱成为现代的分组密码的本质属性,他们已成为现代化的分组密码的设计。体的实现取决于Feistel网络的选择下列参数和设计的基石:Horst Feistel 设计出 基于可逆替代乘积密码feistel cipher;
7、实出了香农的S-P网络思想。这个结构称为费斯妥结构或费斯妥网络,它有以下几个主要参数:block size块大小-增加规模提高安全性,但放缓速度;钥长度key size -规模日益提高的安全,使详尽关键搜寻难度,但可能会减缓密码轮数number of rounds -越来越多改善安全,但放缓密码subkey generation algorithm子钥生成算法-更加复杂的分析可以作出努力,但放缓密码轮功能-更加复杂的分析可以作出努力,但放缓密码fast software en/decryption快速软件加/解密-最近关心的实际使用ease of analysis便于分析-更容易验证与测试的力
8、量2. 数据加密标准(DES)的历史美国国家标准局NBS,1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准(DES),于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法称为DES算法的公告。加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点:1DES能提供高质量的数据保护;2DES具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;3DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以密钥的保密为基础; 4实现经济,运行有效,并且适用于多种完全不同的应用。使用最广泛的私钥分组密码,是数据加密标准( DES
9、 )。这是在1977年通过了国家标准局作为联邦信息处理标准第46条第(文件号:FIPSPUB46 )。加密数据加密64位分组使用56位密钥。该加密得到广泛使用。它也一直受到很大争议的安全。1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard)。其前身是费斯妥(Festel)加密算法。斯妥是IBM Lucifer魔王的作者,德国人,1943年移民美国,战后在空军的研究中心研究密码,1960年转到密特(Mitre)公司又遭阻,后来到IBM ,但遭美国国家安全局(NSA)阻挠,谣传NSA限制其钥匙长度不可超过
10、56位,DES56位有效密钥。3. DES算法的入口参数DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据,称其这一个DES字或DES分组;Mode为DES的工作方式,有两种:加密或解密。4. DES算法加密过程学习密码算法的3个层面:第1层境界:知道如何执行(手工执行);第2层境界:还要知道如何描述(计算机算法操作符和自然语言);第3层境界:用某种语言平台来实现(用计算机来提高效率)两个过程:变换密钥得到16*48bits的子密钥.处理64bits数据得到64bits密文/或明文概
11、述DES的一般描述2第1步:从64位输入密钥出发经过16轮变化生成16个48子密钥位过程:(1次选排之后,循环左移-选排16次);一个子密钥的生成流程.(简单来讲:一次选排,循左,二次选排(三部曲)。第2步:从64位数据出发,利用16子子密钥经过16轮变化得到64位数据输出;如果加密:则16轮变化按增序序使用16个子钥,如果解密;则减序使用16个子钥;(初始排列;轮处理;逆初始排列)例子:11010111;实始排列号43126578;得到:10111011;从新编号;其逆排列为:34216578;图示总结:DES的一轮数据处理的流程图:详细解说:5. 变换密钥表1:密钥位编号012345678
12、91011121314151617181920212223242526272829303132333445363738394041424344454647484950515253545556575859606162631-1、 变换密钥:,:从64中选56位去奇偶校验位(8k位,0k7,通常奇偶校验位是字节的最高位);:将数据照某常表1排列。用小写k表示子钥;常表156排列(Permuted 1 ,P1)574941332517915850423426181025951433527191136052443663554739312315762544638302214661534537292113
13、528201241-2、将密钥分为两个部分,左边的28位称为,右边的28位称为,。1-3 ,进入下步。:循环左移位。见表(循环移位表)。循环移位表:16轮左移轮数与位数函数Bit(I)I12345678910111213141516不累加移位1122222212222221累加左移位数1246810121415171921232527281-4、,得到子密钥。I+;17则跳至1-3,否则结束。:从56中选48位,照某常表2中选取。:将数据照某常表2排列。常表256选48选择排列)(Permuted Choice ,PC)1417112415328156211023191242681672720
14、132415231374755304051453348444939563453464250362932过和图示总结:6. 处理64位的数据2-1、。(M表示消息)取得64位的数据,如果数据长度不足64位,应该将其填充为64位(例如补零),:初始排列,照某常表1进行初始排列。数据位编号:常表:输入的64位数据12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364初始排列(Initial Permutation (I
15、P))58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 2-2、数据分为两部分,开始的32位称为,最后的32位称为,。2-3轮函数(输出为两个;以向量坐标的形式);2-4、左右互换并合并:R16L162-8、此分组的输出。:初始排列,照某常表6进行排列。(末选排)注意:左右互换了。解
16、密过程:只有一处不同,即子密钥的使用顺序不同,加密从k0用到k15;而解密是从k15用到k0;(算法演示)7. 轮函数Round说明2-3、。(向左赋值)2-4、。:从32中照某常表2选取48位。:照某常表3排列。(开始进入F处理)32-48位扩展(Expansion (E))32123454567898910111213121314151617161718192021202122232425242526272829282930313212-5、,将得到32位输出: 。(F处理结束):照S盒常表4进行置换:,j从1执行到8。例题:试写0x4142434445464748的S盒输出?2-6、。:
17、照某表常表5进行排列。(选排)2-7、, YES, 8. DES算法的解密过程解密过程与加密是一样的,只是子钥使用的顺序列取反。9. 雪崩效应任何加密算法都必须有的品质:一个小小的明文或密钥改变都对应产生一个重大的密文改变。特别是,改变一个位元的明文或一个位的密钥应该产生的变化在许多比特的密文。如果变化很小,这可能提供了一种方法,使用得差分分析攻击有效;DES表现出强大的雪崩效应,因为可以看到表3.5 。10. DES算法的强度(安全性)争议1F函数(S-Box)设计原理未知2密钥长度的争论3DES的破译 4弱密钥与半弱密钥5DES的替代算法AES。11. 对密钥长度的攻击理论上:关于DES算
18、法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有个。 1天=24*3600*365=31536000107P4CPU=1GHz109 101*Hz能执行1条指令,判断1个密钥,工执行103条指令;要求1年能破译的话要CPU1017-(7+9-1-3)= 105块CPU。1早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片,再用若干芯片做成一台机器。要求它一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要2000万美元,如今大大降低。2在CRYPTO93上,Session和Wiener给出了一个非常详
19、细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,所以16次加密能同时完成。花费10万美元,平均用1.5天左右就可找到DES密钥。实践上:1美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元。21998年7月电子前沿基金会(EFF)使用一台25万美圆的电脑在56小时内破译了56比特密钥的DES。31999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。41990年,以色列密码学家Eli Biham和Adi Shamir提
20、出了差分密码分析法,可对DES进行选择明文攻击,线性密码分析比差分密码分析更有效。说明:发生了破解事件,并不代表着算法攻破;只有对任意量的密文在可以接受的代价找出明文;才是成功破解;有人中奖了并不是谁都可以中奖。将偶然的东西当成必然性来大量推广是不对的。12. DES的未来DES已经逐渐退出舞台,NIST推出了DES的替代算法AES(Advanced Encryption Standard).它在安全性等方面比DES有质的提高。在第5章会讲到。13. 差分分析方法和线性分析方法(提及)分析方法并不等于已破解;而是从另一角度来说明破解的代价。它们是对DES算法最有效的分析方法另一个值得关注的是可
21、能性,密码有可能利用的特点,加密算法。关注的焦点一直在八个替代表格,或S -盒,用来在每个迭代。这些技术运用一些深层次的结构,通过收集密码信息加密,以便最终可以恢复一些/所有子钥位,这样可以缩小密钥搜索范围;如差分方法可以将密钥搜索简化到247;虽然大大缩小了,但其不具实践上的意义。在较小的范围进行强力攻击。一般来说这些都是统计攻击依靠大量的信息收集其成功的可能性。攻击这种形式包括差分密码分析和线性密码分析。14. 作业1 试描述DES算法的子密钥生成过程和数据处理过程。2 什么是分组密码,分组密码和流密码有什么区别?一个密码系统由哪些元素所组成。何谓对称密码和公钥密码?4,已知在进行S盒替代之前有输入为ASCII字符串:自身学号的最后6个字符(48bits)。写出其ASCII码的二进制表示,查8个S盒,试用十六进制表示出S盒替代后的输出(8个字符)。15. 课后资料
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1