1、网络信息安全,中国科学技术大学 肖 明 军 ,2,第二章 信息加密技术(2),教学目的: 熟悉并掌握以下内容:密码理论、现代加密技术及其应用、网络加密技术。 重点与难点: 重点分析DES算法、RSA算法、MD5算法原理和应用。同时分析密钥交换技术、密码分析与攻击的方法和网络加密技术。 难点是密钥管理与交换技术,3,第二章 信息加密技术(2),本节学习目标: 掌握常用加密算法及其相关知识 对称加密算法:DES、IDEA 非对称加密算法:RSA,4,现代常用加密算法,1 DES算法 2 IDEA算法 3 RSA公开密钥密码算法,5,对称密钥算法简介,加密和解密使用相同的密钥:KE=KD 密钥必须使用秘密的信道分配,发送方,接收方,m,m,加密 E,解密 D,c= Ek (m),m= Dk (c),密钥分配(秘密信道),k,k,6,对称密钥算法简介(Cont.),常用对称密钥密码算法 DES (Data Encryption Standard )及其各种变形 IDEA (International Data Encryption Algorithm) RC2, RC4, RC5 AES(Ad
2、vanced Encryption Standard) CAST-128 Blowfish,7,1 DES算法,DES是对称密钥加密的算法, DES算法大致可以分成四个部分: (1)初始置换 (2)迭代过程 (3)逆置换和 (4)子密钥生成,8,DES算法原理,IBM 公司,70年代初提出 DES是一种对称密钥算法,密钥长度为56bits (加上奇偶校验,通常写成64bits) 是一种分组加密算法,64 bits为一个分组 使用标准的算术和逻辑运算,9,DES 加密过程,首先把明文分成以64 bit为单位的块m,对于每个m, 执行如下操作 DES(m)=IP-1 p T16 T15 . T2 T1 IP(m) 初始置换, IP 16轮迭代,Ti , i=1,2,16 末置换,IP-1,10,Round16,IP-1,Permuted Choice1,Left Circular Shift,Left Circular Shift,Left Circular Shift,Permuted Choice2,Permuted Choice2,Permuted Choice2,DES算法概要,1
3、1,初始置换(IP),初始置换(IP),M=m1m2,m62m63m64,M=m58m50,m23m15m7,IP(M),12,Ki ( 48bits),一轮迭代,E盒置换、和密钥的异或、S盒代替以及P盒置换共同实现了f,13,扩展置换( E-盒置换 ),将Ri从32位扩展到48位,便于和密钥操作 目的:输入的一位影响下一步的两个替换,使得输出对输入的依赖性传播得更快,密文的每一位都依赖于明文的每一位,32 1 2 3 4 5 4 5 6 7 8 9 8 9. 31 32 1,1 2 3 4 5 6 7 8 9 10 11 12 13 14 46 47 48,14,S-盒代替,将48比特压缩成32比特,15,S-盒代替,输入6比特: b1b2b3b4b5b6 输出4比特:S(b1b6 , b2b3b4b5),S1,b1 b2 b3 b4 b5 b6,举例: S 1(100110) = 1000,16,S-盒代替,S-盒代替是DES算法的关键部分,算法其他部分都是线性的,易于分析,而S-盒是非线性的,比其他步骤提供了更好的安全性。 S-盒的引入长期以来引发了大量的猜测,人们怀疑美国国家安
4、全局在S-盒上做了手脚。后来的分析结果表明, S-盒的设计是为了抗差分密码分析。,17,Ki ( 48bits),一轮迭代,18,P-盒置换,32比特输入,32比特输出 P-盒置换的结果和最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始新的一轮。,P-盒的输出:,p:为了保证加密和解密的对称性,1-15轮左右部分交换顺序,第16轮不交换,19,PC-1,C0,D0,LS1,LS1,C1,D1,LS2,LS2,C2,D2,LS16,LS16,C16,D16,PC-2,K1(48bits),密钥 K, 64 bits,28,28,PC-2,K2(48bits),PC-2,K16(48bits),子密钥生成,20,子密钥生成,PC1选位 其中第8、16、24、32、40、48、56 、 64用做奇偶校验位,实际密钥长度为56位。 置换后得56位,前28位为C0,后28位为D0,21,Ci,Di,移位(LS),移位(LS),压缩置换(PC),Ci+1,Di+1,Ki,子密钥生成,22,子密钥生成,拆分:56 bits 的密钥分成两部分,Ci , Di , 各28bits 循环左移
5、:根据迭代的轮数,分别左移一位或两位,压缩置换(置换选择):从56bits中选择48bits,23,末置换,末置换,初始置换,IP-1(IP(M)=M,24,DES解密过程,DES解密过程与加密过程完全相似,只不过将16次迭代的子密钥顺序倒过来,即 m = DES-1(c)= IP-1 p T1T2.T15 T16 IP(c) 可以证明, DES -1(DES (m) )=m,25,DES解密过程,DES -1(DES (m) )=m 证明:T(L, R)=(R, Lf(R,K) TpT(L,R)=Tp(R, Lf(R,K) =T(Lf(R,K), R) =(R, Lf(R,K)f(R,K) =(R, L)=p(L, R) DES -1(DES(m)= IP-1pT1T2.T15T16IP IP-1pT16T15.T2T1IP(m)=IP-1pT1 T2 .T15T16pT16T15.T2T1IP(m) =IP-1pT1 T2 .T15pT15.T2T1IP(m)=.=IP-1p pIP(m)=IP-1IP(m)=m,26,DES加密实例,明文信息为:Message=american
6、其ASCAII码二进制形式为: Message-Bits=01100001 01101101 01100101 01110010 01101001 01100011 01100001 01101110 设密钥为:Key=cryptogr 其ASCAII码二进制形式为: Key-bits=01100011 01110010 01111001 01110000 01110100 01101111 01100111 01110010,27,1密钥生成过程,密钥生成过程如下: PC-1(Key-Bits)=00000000111111111111111110011110001101110000001001001110, C0=0000000011111111111111111001, D0=1110001101110000001001001110, C1=0000000111111111111111110010 D1=1100011011100000010010011101 K1=PC-2(C1D1)=1111000010111110011011101101110111011110001111
7、00,28,2加密过程,1初始置换L0R0IP (Message-Bits) 第1轮: L0=11111111000010001000011001110111, R0=00000000111111111001001010101000, K1=111100001011111001101110110111011101111000111100 E(R0)=000000000001011111111111110010100101010101010000 E(R0) K1=111100001010100110010001000101111000101101101100 S(E(R0) K1)=01011011100101000010000110101110 P(S(E(R0) K1)=01001100000010101111010110100011 L1=R0,R1=1011001100000100111001111010100,29,3输出置换,Cipher=IP-1(R16L16) Cipher=101110010100111101111111001111111001110110101011
8、0101110010001001,30,Time to break a code (106 decryptions/s),31,软硬件实现的速度,硬件实现 商业DES芯片或者FPGA实现 目前可支持1.5Gbps以上的加解密速度 软件实现 80486, CPU 66Hz, 每秒加密43000个DES分组, 336K Bytes/s HP 9000/887, CPU 125 Hz, 每秒加密196,000个分组, 1.53M Bytes/s,32,IDEA算法简介,1990年,Xuejia Lai(赖学家), James Massey, International Data Encryption Algorithm(IDEA) 设计原则:不同代数群的混合运算 “依我看来,该算法是目前一公开的最好和最安全的分组密码算法” 应用密码学,p226 目前已经成为PGP的一部分,33,IDEA算法简介(cont.),分组长度64bits, 密钥长度128bits 同一算法即可以加密,也可用于解密 该算法的设计原则是一种“来自于三个代数群的混合运算” 异或 模216加 模2161乘(可以看作是IDE
9、A的S-盒) 软件实现IDEA比DES快两倍 安全性:弱密钥有251, 1/277 赢得彩票头等奖并在同一天被闪电杀死的可能性 1/255,34,IDEA算法简介(cont.),IDEA算法描述 64位数据分组被分成4个16位子分组:X1,X2,X3,X4。这四个子分组成为算法的第一轮输入,总共8轮。 每一轮中,4个分组相互间相异或、相加、相乘,且与6个16位子密钥相异或、相加、相乘。 轮与轮之间,第二和第三个子分组交换。 最后在输出变换中4个子分组与4个子密钥进行运算,35,IDEA算法简介(cont.),IDEA算法每一轮的描述 X1和第一个子密钥相乘 X2和第二个字密钥相加 X3和第三个字密钥相加 X4和第四个子密钥相乘 将第1步和第3步的结果相异或 将第2步和第4步的结果相异或 将第5步的结果与第五个子密钥相乘 将第6步和第7步的结果相加 将第8步的结果与第六个子密钥相乘 将第7步和第9步的结果相加 将第1步和第9步的结果相异或 将第3步和第9步的结果相异或 将第2步和第10步的结果相异或 将第4步和第10步的结果相异或,36,IDEA算法简介(cont.),每一轮输出的是第11、12、13和14步的结果形成的4个分组,将中间的两个分组交换(最后一轮除外)后,即为下一轮的输入 最终的输出变换: X1和第一个子密钥相乘 X2和第二个子密钥相加 X3和第三个子密钥相加 X4和第四个子密钥相乘 最后这4个子分组重新连接即为密文,37,IDEA算法简介(cont.),密钥产生 总共有52个子密钥(8轮,每轮6个,输出变换4个) 首先,将128位密钥分成8个16位子密钥(第一轮的6个和第二轮的前2个) 然后,密钥向左环移25后再分成8个子密钥,开始4个用于第二轮,后4个用于第三轮 密钥再次向左环移25位产生另外8
《-微软用户-网络信息安全》由会员繁星分享,可在线阅读,更多相关《-微软用户-网络信息安全》请在金锄头文库上搜索。