资源描述
单击此处编辑母版文本样式,单击此处编辑母版标题样式,*,1.,概述,对称密码技术是最普及的数据加密标准和方法。其中,DES,算法应用最为广泛。,DES,算法的特点是什么?,密钥如何安全传递共享?,密钥,1,DES(Data Encryption Standard),算法,一种用,56,位密钥来加密,64,位数据的方法。,发明人,:,IBM,公司,W.Tuchman,和,C.Meyer.,基础:,1967,年美国,Horst Feistel,提出的理论;,产生:,美国国家标准局,1973,年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于,1973,年,5,月,15,日和,1974,年,8,月,27,日先后两次向公众发出了征求加密算法的公告,最终选定,DES,。,1.,概述,2,DES,技术特点,分组加密算法:明文和密文为,64,位分组长度;,对称算法:加密和解密除密钥编排不同外,使用同一算法;,DES,的安全性不依赖于算法的保密,安全性仅以加密密钥的,保密为基础;,密钥可为任意的,56,位数,,具有复杂性,使得破译的开销超过,可能获得的利益;,采用替代和置换的组合,共,16,轮;,只使用了标准的算术和逻辑运算,易于实现,1.,概述,3,2.DES,的基本工作流程,DES,的基本工作原理,用,56,位的密钥对,64,位长的数据块进行,16,轮加密处理由此得到,64,位长的密文。,4,2.DES,的基本工作流程,5,16,轮加密开始先进行 初始置换,16,轮加密结束后进行 逆置换,置换和逆置换,2.DES,的基本工作流程,6,2.DES,的基本工作流程,7,Single Round of DES Algorithm,2.DES,的基本工作流程,8,扩展置换:,将输入的,32,位块扩展到,48,位的输出块,作用:,它产生了与密钥同长度的数据进行异或运算,它产生了更长的结果,使得在代替运算时能进行压缩,操作:,先把,32,位分成,8,个,4,位的块,,第,i,块向左,向右各扩展一位,其中左扩展位与第,i-1,块 的最右一位相同,右扩展位与第,i+1,块的最左一位相同。,3.,单轮加密详述,9,3.,单轮加密详述,10,压缩替代,S,(经过异或操作后),密钥与扩展分组异或以后,将,48,位的结果进行代替运 算。替代由,8,个代替盒(,S,盒)完成。,48,位块通过,S,盒压缩到,32,位块。,48,位的输入被分为,8,个,6,位的分组,每一分组对应一个,S,盒代替操作:每一个,S,盒都有,6,位输入,,4,位输出,且这,8,个,S,盒是不同的。,3.,单轮加密详述,key,11,S,盒操作,3.,单轮加密详述,每个,S,盒是一个,4,行、,16,列的表。盒中的每一项都是一个,4bit,的数。,S,盒的,6bit,输入确定了其对应的输出在哪一行哪一列。,假定将,S,盒的,6bit,的输入标记为,b1,、,b2,、,b3,、,b4,、,b5,、,b6,,则,b1,和,b6,对应,0,到,3,,由此可选择表中的一行。,b2,到,b5,对应,0,到,15,,由此可选择表中的一列。,12,DES,中其它算法都是线性的,而,S,盒运算则是非线性的,,S,盒不易于分析,它提供了更好的安全性;所以,,S,盒是算法的关键所在。,提供了密码算法所必须的混淆作用;,改变,S,盒的一个输入位至少要引起两位的输出改变,;,3.,单轮加密详述,13,P,盒置换:,P,置换使得一个,S,盒的输出对下一轮多个,S,盒产生影响,形成雪崩效应:,明文或密钥的一点小的变动都引起密文的较大变化,将,P,盒置换的结果与最初的,64,位分组的左半部分异或,接着开始另一轮。,3.,单轮加密详述,14,雪崩效应,Avalanche Effect,明文或密钥的一比特的变化,引起密文许多比特的改变。如果变化太小,就可能找到一种方法减小有待搜索的明文和密文空间的大小。,如果用同样密钥加密只差一比特的两个明文:,000000000000000.00000000,100000000000000.00000000,3,次循环以后密文有,21,个比特不同;,16,次循环后有,34,个比特不同。,如果用只差一比特的两个密钥加密同样明文:,3,次循环以后密文有,14,个比特不同,,16,次循环后有,35,个比特不同,3.,单轮加密详述,15,已知主密钥为,64,位(其中每个字节的第,8,位作为奇偶校验位)。略去奇偶校验位,,DES,的密钥由,64,位减至,56,位,对这,56,位密钥进行如下置换(置换选择,1,),经置换后的,56,位密钥,被分成左右两部分,每部分,28,位。,57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4,4.,子密钥生成,L,R,16,循环左移,每轮中,这两部分分别循环左移,l,位或,2,位。下表给出了每轮移动的位数,。,轮,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,位数,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,4.,子密钥生成,17,压缩置换(也称为置换选择,2,):,将,56,位密钥压缩成,48,位。,置换,:例如,原第,14,位在输出时移到了第,1,位。,压缩:,第,9,、,18,、,22,、,25,以及第,35,、,38,、,43,、,54,均被略,去。,14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32,4.,子密钥生成,18,4.,子密钥生成,19,5.DES,解密,在经过所有的替代、置换、异或和循环移动之后,获得了这样一个非常有用的性质:加密和解密可使用相同的算法,。,DES,解密结构与其加密结构是对称相似的,使得能用相同的函数来加密或解密每个分组。,二者的唯一不同之处是密钥的次序相反。这就是说,如果各轮的加密密钥分别是,K1,,,K2,,,K3,,,K16,,那么解密密钥就是,K16,,,K15,,,K14,,,K1,。为各轮产生密钥的算法也是循环的。密钥向右移动,每次移动位数为,0,,,1,,,2,,,2,,,2,,,2,,,2,,,2,,,1,,,2,,,2,,,2,,,2,,,2,,,2,,,1,。,20,5.DES,解密,21,子密钥,子密钥,子密钥,IP,IP,5.DES,解密,子密钥,子密钥,子密钥,子密钥,22,已知明文,m=computer,,密钥,k=program,,用,ASCII,码,表示为:,m=01100011 01101111 01101101 01110000,01110101 01110100 01100101 01110010,k=01110000 01110010 01101111 01100111,01110010 01100001 01101101,因为,k,只有,56,位,必须插入第,8,,,16,,,24,,,32,,,40,,,48,,,56,,,64,位奇偶校验位,合成,64,位。而这,8,位对加密过程没有影响。,6.DES,举例,23,m,经过,IP,置换后得到,L,0,=11111111 10111000 01110110 01010111,R,0,=00000000 11111111 00000110 10000011,密钥,k,通过,PC-1,得到,C,0,=11101100 10011001 00011011 1011,D,0,=10110100 01011000 10001110 0110,再各自左移一位,通过,PC-2,得到,48,位,k,1,=00111101 10001111 11001101 00110111,00111111 00000110,R,0,(,32,位)经,E,作用扩展为,48,位,,,10000000 00010111 11111110 10000000,11010100 00000110,6.DES,举例,24,再和,k,1,作异或运算得到(分成,8,组),101111 011001 100000 110011,101101 111110 101101 001110,通过,S,盒后输出位,32,比特,,01110110 00110100 00100110 10100001,S,盒的输出又经过,P,置换得到,01000100 00100000 10011110 10011111,计算,L1,和,R1,结果是:,00000000 11111111 00000110 10000011,10111011 10011000 11101000 11001000,迭代,16,次以后,得到密文:,01011000 10101000 01000001 10111000,01101001 11111110 10101110 00110011,6.DES,举例,25,
展开阅读全文