《网络信息安全第六章课件.ppt》由会员分享,可在线阅读,更多相关《网络信息安全第六章课件.ppt(55页珍藏版)》请在三一办公上搜索。
1、2022/12/4,现代密码学理论与实践-06,1/57,本章要点,多重加密是将一个加密算法多次使用的技术,明文通过加密算法转化为密文,然后将该密文作为输入重新执行加密算法,该过程可以重复多次。三重DES(3DES)在三个阶段使用DES算法,共用到两组或三组密钥。选择工作模式是一项增强密码算法或者使算法适应具体应用的技术。对称密码有5种工作模式,电码本模式、密文分组链接模式、密文反馈模式、输出反馈模式和计数器模式。流密码是一种对称密码算法,其输出密文是由输入明文逐位或者逐字节产生的,RC4是应用最广泛的一种流密码。,2022/12/4,现代密码学理论与实践-06,2/57,6.1 多重加密与三
2、重DES算法,寻找代替DES的新密码的理由是显然的密钥的穷举攻击是可行的AES是一种新的安全的密码在AES之前,还可以用DES进行多次加密,且使用多个密钥三重DES(Triple-DES)被广泛接受,2022/12/4,现代密码学理论与实践-06,3/57,6.1.1 双重DES,多次加密的最简单形式是进行两次加密,每次使用不同的密钥C = EK2(EK1(P)P = DK1(DK2(C)这种方法的密钥长度是56x2=112位虽然双重DES对应的映射与单DES对应的映射不同,但是有中途相遇攻击 “meet-in-the-middle”只要连续使用密码两次,这种攻击总是有效因为X = EK1(P
3、) = DK2(C)用所有可能的密钥加密明文P并把结果存储起来然后用所有可能的密钥解密密文C,寻找匹配的X值因此复杂度只有O(256),2022/12/4,现代密码学理论与实践-06,4/57,双重DES和三重DES,双重DES (Double DES)给定明文P和加密密钥K1和K2,加密:C=EK2EK1P解密:P=DK1DK2C密钥长度为56x2=112位存在中途相遇攻击问题,2022/12/4,现代密码学理论与实践-06,5/57,这种攻击对使用两次加密的分组密码都有效 C=EK2EK1P,则X=EK1P=DK2C若已知(P, C),则对256个可能的K1加密P,结果存入表中,按X值排序
4、对256个可能的K2解密C,在表中寻找匹配如果产生匹配,则用一个新的明文密文对检测所得两个密钥如果两密钥产生正确的密文,则接受为正确密钥对任意给定的明文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差不多。,中途相遇攻击(Meet-in-the-Mi
5、ddle Attack),2022/12/4,现代密码学理论与实践-06,6/57,6.1.2 使用两个密钥的三重DES,使用两个密钥进行三次加密:E-D-E sequenceC=EK1DK2EK1P如果K1=K2,则相当于单次DES已被用于密钥管理标准ANSI X9.17和ISO8732当前还没有对三重DES的可行攻击方法,2022/12/4,现代密码学理论与实践-06,7/57,6.1.3 使用三个密钥的三重DES,虽然对于使用两个密钥的Triple-DES还没有实际的成功攻击,但是仍然令人有些担心因此可以考虑使用三个密钥的Triple-DES,这样,密钥的长度就是168位C = EK3D
6、K2EK1P使用三个密钥的Triple-DES如今已被广泛采用,如PGP, S/MIME当然还有使用更多重DES的,如5DES,2022/12/4,现代密码学理论与实践-06,8/57,6.2 分组密码的工作模式,2022/12/4,现代密码学理论与实践-06,9/57,电子密码本模式Electronic Codebook, ECB,明文分成64的分组进行加密,必要时填充,每个分组用同一密钥加密,同样明文分组加密得相同密文,2022/12/4,现代密码学理论与实践-06,10/57,ECB模式特别适合数据较少的情况,如安全传输DES密钥一段明文消息中若有几个相同的明文组,则密文也将出现几个相同
7、的片段对于很长的消息,ECB是不安全的,如果消息是非常结构化的,密码分析可能利用其结构特征来破解ECB的弱点来源于其加密过的密文分组是互相独立的,ECB模式的局限性,2022/12/4,现代密码学理论与实践-06,11/57,密文分组链接模式Cipher Block Chaining (CBC),加密输入是当前明文分组和前一密文分组的异或,形成一条链,使用相同的密钥, 这样每个明文分组的加密函数输入与明文分组之间不再有固定的关系,2022/12/4,现代密码学理论与实践-06,12/57,CBC的优点和局限,每个密文分组依赖于所有明文分组 明文消息中的任何一点变化都会影响所有的密文分组 发送方
8、和接收方需要共享初始向量Initial Value(IV)如果IV被明文传送,则攻击者可以改变第一个分组的某些位,然后预先改变IV中的某些位,则接收者收到的P1也就相应改变了 因此,IV必须是一个固定的值或者必须用ECB方式在消息之前加密传送在消息的最后,还要处理不够长度的分组 可以填充已知非数据值,或者在最后一块补上填充位长度eg. b1 b2 b3 0 0 0 0 5 - 3 data bytes, then 5 bytes pad+count,2022/12/4,现代密码学理论与实践-06,13/57,CBC的优点和局限,两种计算IV的方法:用加密函数加密一个时变值,所用密钥和明文加密所
9、用密钥相同。这个时变值对每次加密运算来说必须唯一。例如:时变值可以是一个计数器,一个时间戳或者消息数目。第二种方法是用随机数发生器产生一个随机数分组。,2022/12/4,现代密码学理论与实践-06,14/57,是一种将DES转化成流密码的技术,不再要求报文被填充成整个分组,可以实时运行,如果要传输一个字符流,每个字符都可以使用面向字符的流密码加密后立即传输。加密:加密函数的输入是一个64位的移位寄存器,产生初始向量IV。加密函数高端j位与明文P1的第一单元异或,产生j位密文C1进入移位寄存器低端,继续加密,与P2输入异或,如此重复直到所有明文单元都完成加密。解密:采用相同方案,但是使用加密函
10、数而非解密函数。,密码反馈模式Cipher FeedBack (CFB),2022/12/4,现代密码学理论与实践-06,15/57,2022/12/4,现代密码学理论与实践-06,16/57,密码反馈模式Cipher FeedBack (CFB),解密:采用相同方案,但是使用加密函数而非解密函数。设MSNs(X)表示X的最左边s位。则,2022/12/4,现代密码学理论与实践-06,17/57,CFB模式的优点和局限,当数据以位或字节形式到达时使用都是适当的 最通用的是流密码形式,2022/12/4,现代密码学理论与实践-06,18/57,输出反馈模式Output FeedBack (OFB
11、)结构上类似CFB,但是OFB中加密函数输出被反馈回移位寄存器,CFB中是密文单元被反馈回移位寄存器。优点是传输中的比特差错不会传播,缺点是比CFB更容易受报文流篡改攻击。,输出反馈模式Output FeedBack (OFB),2022/12/4,现代密码学理论与实践-06,19/57,2022/12/4,现代密码学理论与实践-06,20/57,OFB的优点和局限,OFB的一个优点是传输过程中在某位上发生的错误不会影响到其他位。比如,C1中有1位发生了错误,只会影响到P1的恢复,后续的明文单元不受影响。OFB的缺点是,抗消息流篡改攻击的能力不如CFB。即密文中的某位取反,恢复出的明文相应位也
12、取反,2022/12/4,现代密码学理论与实践-06,21/57,Counter (CTR)是一种新模式,虽然早就提出来了与OFB很像,但是加密的是计数器的值而不是任何反馈回来的值每一个明文分组都必须使用一个不同的密钥和计数器值,决不要重复使用Ci = Pi XOR Oi Oi = DESK1(i)可以用于高速网络加密中,计数器模式Counter (CRT),2022/12/4,现代密码学理论与实践-06,22/57,Counter (CTR),2022/12/4,现代密码学理论与实践-06,23/57,CTR的优点和局限,高效可以做并行加密对高速链路的突发数据加密尤其有效可以对被加密的分组进
13、行随机存取相当安全简洁必须决不重复使用密钥和计数器值,2022/12/4,现代密码学理论与实践-06,24/57,6.3 流密码和RC4,按位处理明文消息(as a stream) 典型做法是用一个伪随机流密钥与明文按位异或流密钥的随机性完全摧毁了明文消息的统计特性Ci = Mi XOR StreamKeyi 不能重复使用流密钥,不然系统可能被破解,2022/12/4,现代密码学理论与实践-06,25/57,流密码的结构,2022/12/4,现代密码学理论与实践-06,26/57,流密码设计方面的一些考虑,无重复的长周期 统计上是随机的 依赖于足够长的密钥线性复杂性要大对于相关性要有免疫性 扰
14、乱扩散采用高度非线性的布尔函数,2022/12/4,现代密码学理论与实践-06,27/57,6.3.2 RC4算法,由RSA在1987提出Ron Rivest设计,简单且高效密钥长度可变,面向字节的流密码使用广泛(web SSL/TLS, wireless WEP) 对所有8位的值以密钥实现随机置换 用置换加密输入消息,每次一个字节,2022/12/4,现代密码学理论与实践-06,28/57,RC4密钥安排,从数组S开始,S为0.255 使用密钥充分进行变换 S形成密码的内在状态internal state密钥k的长度为l字节 for i = 0 to 255 doSi = ij = 0for
15、 i = 0 to 255 do j = (j + Si + ki mod l) (mod 256) swap (Si, Sj),2022/12/4,现代密码学理论与实践-06,29/57,RC4的加密,加密过程是继续进行数组值的置换如果密钥K的长度是256字节,则将K赋予临时向量T,否则将K的值keylen赋予T的前keylen个元素与消息的下一个字节异或,进行加解密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) C
16、i = Mi XOR St,2022/12/4,现代密码学理论与实践-06,30/57,2022/12/4,现代密码学理论与实践-06,31/57,RC4的安全性,可以抵御已知的各种攻击 加密结果是非常“非线性”的RC4是流密码,决不重复使用密钥用于为802.11无线局域网提供安全性的WEP协议,易受一种特殊攻击,问题不在RC4本身,而是RC4中输入的密钥的产生途径有漏洞,2022/12/4,现代密码学理论与实践-06,32/57,RC5,RC5是Ronald Rivest设计的一种对称加密算法,具有如下特点适于软件和硬件实现快速:设计成面向字的简单算法,加快运算速度可用于字长不同的处理器迭代
17、次数可变密钥长度可变简单,易于实现和确定算法强度对存储量要求低安全性高与数据相关的循环,2022/12/4,现代密码学理论与实践-06,33/57,RC5密码,RC5 实际上是一个系列的密码RC5-w/r/bw = word size in bits (16/32/64) nb data=2wr = number of rounds (0.255)b = number of bytes in key (0.255)常见的版本形式是 RC5-32/12/16i.e., 32-bit words so encrypts 64-bit data blocksusing 12 roundswith 1
18、6 bytes (128-bit) secret key,2022/12/4,现代密码学理论与实践-06,34/57,RC5 Key Expansion,RC5使用2r+2子密钥字(w-bits)子密钥存储在数组Si, i=0.t-1密钥产生过程包括将S初始化成一个固定长度的伪随机数,基于常数e和phi字节密钥复制到c-word数组L对L和S的混合操作最终形成S数组,2022/12/4,现代密码学理论与实践-06,35/57,RC5 Key Expansion,2022/12/4,现代密码学理论与实践-06,36/57,RC5 Encryption,将输入分成A和B两部分L0 = A + S0
19、;R0 = B + S1;for i = 1 to r doLi = (Li-1 XOR Ri-1) Ri-1) + S2 x i;Ri = (Ri-1 XOR Li) Li) + S2 x i + 1;每一轮就像是2DES的轮非线性主要来自于循环移位 需要适当的轮数(e.g. 12-16),2022/12/4,现代密码学理论与实践-06,37/57,2022/12/4,现代密码学理论与实践-06,38/57,RC5 Modes,RFC2040 定义了RC5使用的4种模式RC5 Block Cipher, ECB模式RC5-CBC, CBC模式RC5-CBC-PAD, CBC加字节填充的模式R
20、C5-CTS, CBC模式的一种变形,采样密文挪用方法使得密文大小保持与原始态一致,2022/12/4,现代密码学理论与实践-06,39/57,RC5密文挪用模式,2022/12/4,现代密码学理论与实践-06,40/57,分组密码的特点,变长的密钥、分组大小、轮数混合各种操作,数据和密钥依赖循环移位密码依赖S盒更加复杂的密钥处理过程每一轮都对全部数据进行操作多样性的非线性功能,2022/12/4,现代密码学理论与实践-06,41/57,Blowfish,1993年由Bruce Schneier提出,对称分组密码,特性:快速:在32位处理器上加密每字节18时钟周期紧凑:可在少于5K的内存上运行
21、简单:结构简单、容易实现可变的安全性:密钥长度可变,从32位到448位子密钥和S盒的产生使用32位可变到448位的密钥,存储在K数组中:Kj,用来产生18个32-bit的子密钥,存储在P数组中:Pj, 4个8x32的包含1024个32位项的S盒,存储在Si,j,Blowfish,2022/12/4,现代密码学理论与实践-06,42/57,产生P数组和S数组的步骤用常数的小数部分初始化P数组和4个S盒对P数组和K数组逐位异或使用当前的P和S数组对64位分组加密,把P1和P2用加密的输出替代使用当前的P和S数组对第三步的输出加密,用所得密文替代P3和P4重复这个过程以更新P和S数组的所有元素,每一
22、步都使用不断变化的Blowfish算法的输出,总共执行512次加密算法Blowfish对密钥经常变化的应用不适合,也不适合存储空间有限的应用,Blowfish Key Schedule,2022/12/4,现代密码学理论与实践-06,43/57,Blowfish的加密两个基本操作: 模232的加和逐位异或数据被分成左右两部分L0 这里:Fa,b,c,d=(S1,a + S2,b)XOR S3,c)+S4,a,Blowfish Encryption,2022/12/4,现代密码学理论与实践-06,44/57,2022/12/4,现代密码学理论与实践-06,45/57,2022/12/4,现代密码
23、学理论与实践-06,46/57,Blowfish的S盒依赖于密钥,子密钥和S盒通过重复使用Blowfish本身产生,使得各比特彻底纠缠在一起,密码分析非常困难在每一循环中对数据的两部分进行操作,增大了密码强度通过选择适当的密钥长度(最长448位),对穷举攻击来说,Blowfish几乎是不可破的Blowfish的算法执行是很快的所以,Blowfish可能是最难破译的常规加密算法。,讨 论,2022/12/4,现代密码学理论与实践-06,47/57,国际数据加密算法IDEA (International Data Encryption Algorithm)1990年由瑞士苏黎世联邦工业大学的Lai
24、 Xuejia和James Messey提出,1992年最终完成。算法形式同DES,用循环加密方式。设计原理使用128位密钥加密64位明文分组,穷举分析需要1038次试探,目前尚无破译方法。算法本身倾向于软件实现,加密速度快。 密码强度分组长度:64位密钥长度:128位扰乱:密文以复杂交错的方式依赖明文和密钥扩散:每个明文比特都应该影响每个密文比特,国际数据加密算法IDEA,2022/12/4,现代密码学理论与实践-06,48/57,扰乱(IDEA的三种基本操作)IDEA的基本操作是将两个16位的值映射成一个16位的值逐位异或,整数模216(65536)加整数模216+1(65537)乘例如:
25、0000010000= 10001因为:216 x 215 mod (216+1) = 215 + 1扩散由乘积/相加(MA)结构的算法基本构件提供实现考虑方便软件和硬件的实现,硬件实现速度高,软件灵活低价,国际数据加密算法IDEA,2022/12/4,现代密码学理论与实践-06,49/57,2022/12/4,现代密码学理论与实践-06,50/57,IDEA加密,2022/12/4,现代密码学理论与实践-06,51/57,IDEA单个循环,2022/12/4,现代密码学理论与实践-06,52/57,IDEA子密钥的产生,2022/12/4,现代密码学理论与实践-06,53/57,2022/12/4,现代密码学理论与实践-06,54/57,几种分组密码在奔腾机上的速度,2022/12/4,现代密码学理论与实践-06,55/57,Summary,We have considered:some other modern symmetric block ciphersTriple-DESBlowfishRC5Briefly introduced stream ciphersRC4IDEA,
链接地址:https://www.31ppt.com/p-1549894.html