1、2022-5-31现代密码学理论与实践-061/57本章要点本章要点l多重加密是将一个加密算法多次使用的技术,明文通过加密算法转化为密文,然后将该密文作为输入重新执行加密算法,该过程可以重复多次。l三重DES(3DES)在三个阶段使用DES算法,共用到两组或三组密钥。l选择工作模式是一项增强密码算法或者使算法适应具体应用的技术。l对称密码有5种工作模式,电码本模式、密文分组链接模式、密文反馈模式、输出反馈模式和计数器模式。l流密码是一种对称密码算法,其输出密文是由输入明文逐位或者逐字节产生的,RC4是应用最广泛的一种流密码。2022-5-31现代密码学理论与实践-062/576.1 多重加密与
2、三重多重加密与三重DES算法算法l寻找代替DES的新密码的理由是显然的l密钥的穷举攻击是可行的lAES是一种新的安全的密码l在AES之前,还可以用DES进行多次加密,且使用多个密钥l三重DES(Triple-DES)被广泛接受2022-5-31现代密码学理论与实践-063/576.1.1 双重双重DESl多次加密的最简单形式是进行两次加密,每次使用不同的密钥lC = EK2(EK1(P)lP = DK1(DK2(C)l这种方法的密钥长度是56x2=112位l虽然双重DES对应的映射与单DES对应的映射不同,但是有中途相遇攻击 “meet-in-the-middle”l只要连续使用密码两次,这种
3、攻击总是有效l因为X = EK1(P) = DK2(C)l用所有可能的密钥加密明文P并把结果存储起来l然后用所有可能的密钥解密密文C,寻找匹配的X值l因此复杂度只有O(256)2022-5-31现代密码学理论与实践-064/57双重双重DES和三重和三重DESl双重DES (Double DES)给定明文P和加密密钥K1和K2,加密:C=EK2EK1P解密:P=DK1DK2C密钥长度为56x2=112位存在中途相遇攻击问题2022-5-31现代密码学理论与实践-065/57l这种攻击对使用两次加密的分组密码都有效 C=EK2EK1P,则X=EK1P=DK2Cl若已知(P, C),则l对256个
4、可能的K1加密P,结果存入表中,按X值排序l对256个可能的K2解密C,在表中寻找匹配l如果产生匹配,则用一个新的明文密文对检测所得两个密钥l如果两密钥产生正确的密文,则接受为正确密钥l对任意给定的明文P,双重DES产生的密文有264可能,密钥空间为2112。对给定明文P,可产生给定密文C的密钥的个数平均为2112/264=248。上述攻击过程对第一个(P,C)对将产生248个错误的结果,而对第二个(P,C)对,错误结果的概率就降为248-64 =2-16,即中途相遇攻击使用两组已知明密文对就可以检测到正确密钥的概率是1-2-16,攻击双重DES,工作量仅为256,与攻击单DES所需的255差
5、不多。中途相遇攻击中途相遇攻击(Meet-in-the-Middle Attack)2022-5-31现代密码学理论与实践-066/576.1.2 使用两个密钥的三重使用两个密钥的三重DESl使用两个密钥进行三次加密:E-D-E sequencelC=EK1DK2EK1Pl如果K1=K2,则相当于单次DESl已被用于密钥管理标准ANSI X9.17和ISO8732l当前还没有对三重DES的可行攻击方法2022-5-31现代密码学理论与实践-067/576.1.3 使用三个密钥的三重使用三个密钥的三重DESl虽然对于使用两个密钥的Triple-DES还没有实际的成功攻击,但是仍然令人有些担心l因
6、此可以考虑使用三个密钥的Triple-DES,这样,密钥的长度就是168位lC = EK3DK2EK1Pl使用三个密钥的Triple-DES如今已被广泛采用,如PGP, S/MIMEl当然还有使用更多重DES的,如5DES2022-5-31现代密码学理论与实践-068/576.2 分组密码的工作模式分组密码的工作模式2022-5-31现代密码学理论与实践-069/57电子密码本模式电子密码本模式Electronic Codebook, ECBl明文分成64的分组进行加密,必要时填充,每个分组用同一密钥加密,同样明文分组加密得相同密文2022-5-31现代密码学理论与实践-0610/57lECB
7、模式特别适合数据较少的情况,如安全传输DES密钥l一段明文消息中若有几个相同的明文组,则密文也将出现几个相同的片段l对于很长的消息,ECB是不安全的,如果消息是非常结构化的,密码分析可能利用其结构特征来破解lECB的弱点来源于其加密过的密文分组是互相独立的 ECB模式的局限性模式的局限性2022-5-31现代密码学理论与实践-0611/57密文分组链接模式密文分组链接模式Cipher Block Chaining (CBC)l加密输入是当前明文分组和前一密文分组的异或,形成一条链,使用相同的密钥, 这样每个明文分组的加密函数输入与明文分组之间不再有固定的关系2022-5-31现代密码学理论与实
8、践-0612/57CBC的优点和局限的优点和局限l每个密文分组依赖于所有明文分组 l明文消息中的任何一点变化都会影响所有的密文分组 l发送方和接收方需要共享初始向量Initial Value(IV)l如果IV被明文传送,则攻击者可以改变第一个分组的某些位,然后预先改变IV中的某些位,则接收者收到的P1也就相应改变了 l因此,IV必须是一个固定的值或者必须用ECB方式在消息之前加密传送l在消息的最后,还要处理不够长度的分组 l可以填充已知非数据值,或者在最后一块补上填充位长度leg. b1 b2 b3 0 0 0 0 5 - 3 data bytes, then 5 bytes pad+coun
9、t 2022-5-31现代密码学理论与实践-0613/57CBC的优点和局限的优点和局限l两种计算IV的方法:l用加密函数加密一个时变值,所用密钥和明文加密所用密钥相同。这个时变值对每次加密运算来说必须唯一。例如:时变值可以是一个计数器,一个时间戳或者消息数目。1.第二种方法是用随机数发生器产生一个随机数分组。11111111(,)(,) (,) (,) CE KIVPPIVD K CX ibXiP iIV iD K CiXORP iIV iD K Ci用表示 位 的第 位,则使用的性质,我们将上式重写为2022-5-31现代密码学理论与实践-0614/57l是一种将DES转化成流密码的技术,
10、不再要求报文被填充成整个分组,可以实时运行,如果要传输一个字符流,每个字符都可以使用面向字符的流密码加密后立即传输。l加密:加密函数的输入是一个64位的移位寄存器,产生初始向量IV。加密函数高端j位与明文P1的第一单元异或,产生j位密文C1进入移位寄存器低端,继续加密,与P2输入异或,如此重复直到所有明文单元都完成加密。l解密:采用相同方案,但是使用加密函数而非解密函数。密码反馈模式密码反馈模式Cipher FeedBack (CFB)2022-5-31现代密码学理论与实践-0615/572022-5-31现代密码学理论与实践-0616/57密码反馈模式密码反馈模式Cipher FeedBac
11、k (CFB)l解密:采用相同方案,但是使用加密函数而非解密函数。设MSNs(X)表示X的最左边s位。则1111 (,) (,)ssCPMSB E K IVPCMSB E K IV从而有2022-5-31现代密码学理论与实践-0617/57CFB模式的优点和局限模式的优点和局限l当数据以位或字节形式到达时使用都是适当的 l最通用的是流密码形式 2022-5-31现代密码学理论与实践-0618/57l输出反馈模式Output FeedBack (OFB)l结构上类似CFB,但是OFB中加密函数输出被反馈回移位寄存器,CFB中是密文单元被反馈回移位寄存器。优点是传输中的比特差错不会传播,缺点是比C
12、FB更容易受报文流篡改攻击。输出反馈模式输出反馈模式Output FeedBack (OFB)2022-5-31现代密码学理论与实践-0619/572022-5-31现代密码学理论与实践-0620/57OFB的优点和局限的优点和局限lOFB的一个优点是传输过程中在某位上发生的错误不会影响到其他位。比如,C1中有1位发生了错误,只会影响到P1的恢复,后续的明文单元不受影响。lOFB的缺点是,抗消息流篡改攻击的能力不如CFB。即密文中的某位取反,恢复出的明文相应位也取反2022-5-31现代密码学理论与实践-0621/57lCounter (CTR)l是一种新模式,虽然早就提出来了l与OFB很像,
13、但是加密的是计数器的值而不是任何反馈回来的值l每一个明文分组都必须使用一个不同的密钥和计数器值,决不要重复使用Ci = Pi XOR Oi Oi = DESK1(i)l可以用于高速网络加密中计数器模式计数器模式Counter (CRT)2022-5-31现代密码学理论与实践-0622/57Counter (CTR)2022-5-31现代密码学理论与实践-0623/57CTR的优点和局限的优点和局限l高效l可以做并行加密l对高速链路的突发数据加密尤其有效l可以对被加密的分组进行随机存取l相当安全l简洁l必须决不重复使用密钥和计数器值2022-5-31现代密码学理论与实践-0624/576.3 流
14、密码和流密码和RC4l按位处理明文消息(as a stream) l典型做法是用一个伪随机流密钥与明文按位异或l流密钥的随机性完全摧毁了明文消息的统计特性lCi = Mi XOR StreamKeyi l不能重复使用流密钥,不然系统可能被破解2022-5-31现代密码学理论与实践-0625/57流密码的结构流密码的结构2022-5-31现代密码学理论与实践-0626/57流密码设计方面的一些考虑流密码设计方面的一些考虑l无重复的长周期 l统计上是随机的 l依赖于足够长的密钥l线性复杂性要大l对于相关性要有免疫性 l扰乱l扩散l采用高度非线性的布尔函数 2022-5-31现代密码学理论与实践-0
15、627/576.3.2 RC4算法算法l由RSA在1987提出lRon Rivest设计,简单且高效l密钥长度可变,面向字节的流密码l使用广泛(web SSL/TLS, wireless WEP) l对所有8位的值以密钥实现随机置换 l用置换加密输入消息,每次一个字节 2022-5-31现代密码学理论与实践-0628/57RC4密钥安排密钥安排 l从数组S开始,S为0.255 l使用密钥充分进行变换 lS形成密码的内在状态internal statel密钥k的长度为l字节 for i = 0 to 255 doSi = ij = 0for i = 0 to 255 do j = (j + Si
16、 + ki mod l) (mod 256) swap (Si, Sj)2022-5-31现代密码学理论与实践-0629/57RC4的加密l加密过程是继续进行数组值的置换l如果密钥K的长度是256字节,则将K赋予临时向量T,否则将K的值keylen赋予T的前keylen个元素l与消息的下一个字节异或,进行加解密i = j = 0 for each message byte Mii = (i + 1) (mod 256)j = (j + Si) (mod 256)swap(Si, Sj)t = (Si + Sj) (mod 256) Ci = Mi XOR St 2022-5-31现代密码学理论
17、与实践-0630/572022-5-31现代密码学理论与实践-0631/57RC4的安全性l可以抵御已知的各种攻击 l加密结果是非常“非线性”的lRC4是流密码,决不重复使用密钥l用于为802.11无线局域网提供安全性的WEP协议,易受一种特殊攻击,问题不在RC4本身,而是RC4中输入的密钥的产生途径有漏洞 2022-5-31现代密码学理论与实践-0632/57RC5lRC5是Ronald Rivest设计的一种对称加密算法,具有如下特点l适于软件和硬件实现l快速:设计成面向字的简单算法,加快运算速度l可用于字长不同的处理器l迭代次数可变l密钥长度可变l简单,易于实现和确定算法强度l对存储量要
18、求低l安全性高l与数据相关的循环2022-5-31现代密码学理论与实践-0633/57RC5密码密码lRC5 实际上是一个系列的密码RC5-w/r/blw = word size in bits (16/32/64) nb data=2wlr = number of rounds (0.255)lb = number of bytes in key (0.255)l常见的版本形式是 RC5-32/12/16li.e., 32-bit words so encrypts 64-bit data blockslusing 12 roundslwith 16 bytes (128-bit) secr
19、et key2022-5-31现代密码学理论与实践-0634/57RC5 Key ExpansionlRC5使用2r+2子密钥字(w-bits)l子密钥存储在数组Si, i=0.t-1l密钥产生过程包括l将S初始化成一个固定长度的伪随机数,基于常数e和phil字节密钥复制到c-word数组Ll对L和S的混合操作最终形成S数组2022-5-31现代密码学理论与实践-0635/57RC5 Key Expansion2022-5-31现代密码学理论与实践-0636/57RC5 Encryptionl将输入分成A和B两部分L0 = A + S0;R0 = B + S1;for i = 1 to r d
20、oLi = (Li-1 XOR Ri-1) Ri-1) + S2 x i;Ri = (Ri-1 XOR Li) Li) + S2 x i + 1;l每一轮就像是2DES的轮l非线性主要来自于循环移位 l需要适当的轮数(e.g. 12-16) 2022-5-31现代密码学理论与实践-0637/572022-5-31现代密码学理论与实践-0638/57RC5 ModeslRFC2040 定义了RC5使用的4种模式lRC5 Block Cipher, ECB模式lRC5-CBC, CBC模式lRC5-CBC-PAD, CBC加字节填充的模式lRC5-CTS, CBC模式的一种变形,采样密文挪用方法使
21、得密文大小保持与原始态一致2022-5-31现代密码学理论与实践-0639/57RC5密文挪用模式密文挪用模式2022-5-31现代密码学理论与实践-0640/57分组密码的特点分组密码的特点l变长的密钥、分组大小、轮数l混合各种操作,数据和密钥依赖循环移位l密码依赖S盒l更加复杂的密钥处理过程l每一轮都对全部数据进行操作l多样性的非线性功能2022-5-31现代密码学理论与实践-0641/57lBlowfish,1993年由Bruce Schneier提出,对称分组密码,特性:l快速:在32位处理器上加密每字节18时钟周期l紧凑:可在少于5K的内存上运行l简单:结构简单、容易实现l可变的安全
22、性:密钥长度可变,从32位到448位l子密钥和S盒的产生l使用32位可变到448位的密钥,存储在K数组中:Kj,用来产生18个32-bit的子密钥,存储在P数组中:Pj, l4个8x32的包含1024个32位项的S盒,存储在Si,jBlowfish2022-5-31现代密码学理论与实践-0642/57l产生P数组和S数组的步骤l用常数的小数部分初始化P数组和4个S盒l对P数组和K数组逐位异或l使用当前的P和S数组对64位分组加密,把P1和P2用加密的输出替代l使用当前的P和S数组对第三步的输出加密,用所得密文替代P3和P4l重复这个过程以更新P和S数组的所有元素,每一步都使用不断变化的Blow
23、fish算法的输出,总共执行512次加密算法lBlowfish对密钥经常变化的应用不适合,也不适合存储空间有限的应用Blowfish Key Schedule2022-5-31现代密码学理论与实践-0643/57lBlowfish的加密l两个基本操作: 模232的加和逐位异或l数据被分成左右两部分L0 & R0for i = 1 to 16 doRi = Li-1 XOR Pi;Li = FRi XOR Ri-1;L17 = R16 XOR P18;R17 = L16 XOR i17;这里:Fa,b,c,d=(S1,a + S2,b)XOR S3,c)+S4,aBlowfish Encrypt
24、ion2022-5-31现代密码学理论与实践-0644/572022-5-31现代密码学理论与实践-0645/572022-5-31现代密码学理论与实践-0646/57lBlowfish的S盒依赖于密钥,子密钥和S盒通过重复使用Blowfish本身产生,使得各比特彻底纠缠在一起,密码分析非常困难l在每一循环中对数据的两部分进行操作,增大了密码强度l通过选择适当的密钥长度(最长448位),对穷举攻击来说,Blowfish几乎是不可破的lBlowfish的算法执行是很快的所以,Blowfish可能是最难破译的常规加密算法。讨讨 论论2022-5-31现代密码学理论与实践-0647/57l国际数据加
25、密算法IDEA (International Data Encryption Algorithm)1990年由瑞士苏黎世联邦工业大学的Lai Xuejia和James Messey提出,1992年最终完成。算法形式同DES,用循环加密方式。l设计原理l使用128位密钥加密64位明文分组,穷举分析需要1038次试探,目前尚无破译方法。算法本身倾向于软件实现,加密速度快。 l密码强度l分组长度:64位l密钥长度:128位l扰乱:密文以复杂交错的方式依赖明文和密钥l扩散:每个明文比特都应该影响每个密文比特国际数据加密算法国际数据加密算法IDEA2022-5-31现代密码学理论与实践-0648/57l
26、扰乱(IDEA的三种基本操作)IDEA的基本操作是将两个16位的值映射成一个16位的值l逐位异或,l整数模216(65536)加l整数模216+1(65537)乘例如:00000 10000= 10001因为:216 x 215 mod (216+1) = 215 + 1l扩散由乘积/相加(MA)结构的算法基本构件提供l实现考虑方便软件和硬件的实现,硬件实现速度高,软件灵活低价国际数据加密算法国际数据加密算法IDEA2022-5-31现代密码学理论与实践-0649/572022-5-31现代密码学理论与实践-0650/57IDEA加密加密2022-5-31现代密码学理论与实践-0651/57IDEA单个循环单个循环2022-5-31现代密码学理论与实践-0652/57IDEA子密钥的产子密钥的产生生2022-5-31现代密码学理论与实践-0653/572022-5-31现代密码学理论与实践-0654/57几种分组密码在奔腾机上的速度几种分组密码在奔腾机上的速度2022-5-31现代密码学理论与实践-0655/57SummarylWe have considered:lsome other modern symmetric block cipherslTriple-DESlBlowfishlRC5lBriefly introduced stream cipherslRC4lIDEA