资源预览内容
第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
第9页 / 共60页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
B密码编码学与网络安全密码编码学与网络安全电子工业2006 - 2007B第3章 对称算法DES3.1 分组密码算法原理3.2 DES算法3.3 DES强度3.4 差分分析和线性分析3.5 分组密码设计原理* 3.A DES in /etc/passwd* 3.B DES in OpenSSLB密码技术发展1918,William F. Friedman,The Index of Coincidence and Its Applications in Cryptography1949,Claude Shannon,The Communication Theory of Secrecy Systems1967,David Kahn,The Codebreakers1970s,NBS/NIST,DES 90s, AES1976,Diffie, Hellman,New Directory in Cryptography1984,C.H. Bennett,Quantum Cryptography: Public Key Distribution and Coin Tossing1985,N. Koblitz,Elliptic Curve Cryptosystem2000,AESB3.1 分组密码算法原理分组密码算法 Block Cipher明文被分为固定长度的块,对每个分组用相同的算法和密钥加解密分组一般为n64比特,或更长 密文分组和明文分组同样长对某个密钥可以构造一个明密文对照表Codebook 所以分组的长得至少64比特才好密钥空间2k 可逆映射个数!B序列密码算法流密码算法 Stream Cipher每次可以加密一个比特适合比如远程终端输入等应用流密码可用伪随机数发生器实现密钥做为随机数种子,产生密钥流keystream XOR One-time PadB比较基本区别粒度 8字节分组 vs. 1比特或1字节各自适应不同的应用数据格式Padding对相同的明文分组,总是输出相同的密文分组;而流密码却输出不同的密文比特流密码一般快很多分组密码多些,是主流分组密码也可以用作流模式安全性对比BBlock Cipher Principles0000 11100001 01000010 11010011 00010100 00100101 11110110 10110111 10001000 00111001 10101010 01101011 11001100 01011101 10011110 00001111 01110000 11100001 00110010 01000011 10000100 00010101 11000110 10100111 11111000 01111001 11011010 10011011 01101100 10111101 00101110 0000 乘积密码: 重复使用代替和置换,实现混乱和扩散.BFeistel加密框架明文分组的长n2w分左右两半L0 R0密钥K产生子钥:Kk1,k2,kr r是轮数,比如16轮是异或函数XORpxx = p函数F是散列混乱函数可以是手工精心构造的查表函数BFeistel网络 BFeistel解密 BFeistel for Loop加密计算序列L0左半 R0右半L1R0 R1L0FL2R1 R2L1FL3R3 R3L2FLiRi-1 RiLi-1FLnRn-1 RnLn-1F密文即Ln,Rn解密计算B2轮解密举例假设n2轮,C L2,R2加密明文半半L0+R0L1R0 R1L0FL2R1R2L1F解密密文半半L2R2R1L2L1R2FR0L1L0R1F明文L0R0L1R2FL1FFL1L0R1FL0FFL0BFeistel伪代码明文明文m长度长度n2t,记为记为m0m1,每个长度为每个长度为t密钥密钥k产生产生r个子密钥个子密钥k1,k2 ,.,kr加密加密Em:for i=2 to r+1 do0, 1mimi-2 XOR fi, i+1 - ki得密文得密文mr,mr+1r, r+1 - kr解密解密Dfor i=r to 1 domi-1mi+1 XOR f或或for i=r-1 to 0 domimi+2 XOR f mi XOR f XOR f mi唯一的非线性唯一的非线性结构就是结构就是F F可以重复使用可以重复使用两个变量即可两个变量即可BFeistel参数特性分组大小密钥大小循环次数一般仅几轮是不够的,得十几轮才好,如16轮子钥产生算法越复杂越好轮函数Round关键其他考虑速度尤其是软件实现的速度便于分析使用简洁的结构BFeistel类算法举例DES、CAST、Blowfish/、RC6不是Feistel结构的AES、IDEA* 绝大数分组密码属于或类似Feistel结构多轮每轮有XOR或能恢复的操作轮函数B3.2 DESData Encryption Standard1971 IBM Horst Feistel Lucifer DES,key由128bit56bit1973 NBS,77 NIST FIPS-46NBS/NIST、IBM、NSA1994 最后一次延长到1999年AES取代之参数Feistel体制分组密码分组大小 64bit,密钥大小 56bit,轮数 16轮S-Boxes*B DES B密钥置换选择-1Key Permuted Choice One 57 49 41 33 25 17 9 8 1 58 50 42 34 26 18 1610 2 59 51 43 35 27 2419 11 3 60 52 44 36 3263 55 47 39 31 23 15 40 7 62 54 46 38 30 22 4814 6 61 53 45 37 29 5621 13 5 28 20 12 4 6478K的56比特重新排列,成为C0D0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4849 50 51 52 53 54 55 5657 58 59 60 61 62 63 64BKeyi C0D0 C15D15 BPC-214 17 11 24 1 5 3 2814 17 11 24 1 5 3 2815 6 21 10 23 19 12 415 6 21 10 23 19 12 426 8 16 7 27 20 13 226 8 16 7 27 20 13 241 52 31 37 47 55 30 4041 52 31 37 47 55 30 4051 45 33 48 44 49 39 5651 45 33 48 44 49 39 5634 53 46 42 50 36 29 3234 53 46 42 50 36 29 328686未入选的:未入选的:9 9、1818、2222等等每轮从每轮从5656比特中选取比特中选取4848比特即为比特即为Ki,Ki,并同时左移并同时左移Bits rotated 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1Bits rotated 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1B初始置换及逆置换Initial Permutation IP/IP-158 50 42 34 26 18 10 258 50 42 34 26 18 10 260 52 44 36 28 20 12 460 52 44 36 28 20 12 462 54 46 38 30 22 14 662 54 46 38 30 22 14 664 56 48 40 32 24 16 864 56 48 40 32 24 16 857 49 41 33 25 17 9 157 49 41 33 25 17 9 159 51 43 35 27 19 11 359 51 43 35 27 19 11 361 53 45 37 29 21 13 561 53 45 37 29 21 13 563 55 47 39 31 23 15 763 55 47 39 31 23 15 740 8 48 16 56 24 64 3240 8 48 16 56 24 64 3239 7 47 15 55 23 63 3139 7 47 15 55 23 63 3138 6 46 14 54 22 62 3038 6 46 14 54 22 62 3037 5 45 13 53 21 61 2937 5 45 13 53 21 61 2936 4 44 12 52 20 60 2836 4 44 12 52 20 60 2835 3 43 11 51 19 59 2735 3 43 11 51 19 59 2734 2 42 10 50 18 58 2634 2 42 10 50 18 58 2633 1 41 9 49 17 57 2533 1 41 9 49 17 57 25初始明文按照IP重排;16轮后的密文按照IP-1重排即为最后密文oddevenB 轮 One Round B扩展置换 Expansion Permutation 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1Ri的32bit 48bit两边的是重复选中的68B轮函数 Round Function B S盒 S-Boxes:1/4两边两边2比特选择行号比特选择行号中间中间4比特选择列号比特选择列号BS-Boxes:5-8B从S盒出来后重排:Permutation FunctionP 8416 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 919 13 30 6 22 11 4 25B DESReview B一个DES计算实例p=0123456789ABCDEFk=133457799BBCDFF1 c=85E813540F0AB405B使用OpenSSL库的DES函数明文 64bitplaintxt 8字节Key 56bitpassword 取低7bits8 手工运算vs. void DES_ecb_encrypt;密文 8B 32 97 23 0f 81 3e da afB3.3 DES安全强度对DES的争议集中在密钥空间太小 Key space从Lucifer的2128降到DES的256 DES Challenge III, 22 hours 15 minutesS盒 S-BoxesS盒的设计准则?陷门? trapdoors by NSA Form surprise to suspicion从惊喜到怀疑B密钥大小 Key Size256 710161Mkeys/Second means 1000 yearsSpecial machine designedWiener Cost/time table Recent newsin 1997 on Internet in a few months in 1998 on dedicated h/w in a few days in 1999 above combined in 22hrs 15 minsDeep Crack by EFFB穷举攻击Cost/Time表Key search machine unitexpected search time$ 100,00035 hours$ 1,000,0003.5 hours$10,000,00021 minswiener93efficient.pdfA
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号