跳转至

3DES

原来的DES算法太弱鸡了,然后又了3DES

2DES

双重DES,加密C=E(K_2,E(K_1,P)),解密P=D(K_1,D(K_2,C)),密钥长度56*2=112位,缺点:中间相遇攻击。

3DES

使用三个密钥进行三次加密,攻击代价为2^112数量级,需要56*3=128位密钥,也可以使用两个密钥,这是加密算法为C=E(K_1,D(K_2,E(K_1,P)),注意第二部位解密操作,这样设计是为了和DES兼容,解密:P=D(K_1,E(K_2,D(K_1,C))
攻击思路还是中间相遇攻击,PGP和S/MIME使用了三个密钥的3DES

分组密码模式

分组密码加密每次使用b位固定长度来进行加密,输出b位的密文,加密明文如果大于了b位,则就需要分组,这其中会引发很多安全问题。目前定义了5种“工作模式”。这些可以适用于任何分组密码,例如AES和3DES。

电码本(ECB)

最简单,使用相同密钥对明文独立加密。
应用:单个分组安全传输,加密一个固定长度密钥。

缺点:明文相同的分组,密文也会相同。可以使用已知明文攻击

密文分组链接(CBC)

输出的是上一个加密后的分组和当前明文分组的异或结果。第一个分组可以使用初始向量(IV)进行异或。IV被更改,则解密出的明文也被篡改。
认证,面向分组的通用传输。 缺点:不能并行计算,依赖于上一个分组的加密结果。

密文反馈(CFB)

流密码:密文和明文等长。 一次处理s位,上一块密文作为加密算发的输入,产生的伪随机数和下一组明文异或。初始化b位移位寄存器,值为IV,加密函数输出最左边s位和明文第一个分段P1异或后得到C1,发送C1,移位寄存器左移s位,C1填入移位寄存器最右边s位。直到明文单元都被加密完。
MSB_s(X)是X的最左边s位。则C_1=P_1 \oplus MSB_s(E(K,IV))P_1=C_1 \oplus MSB_s(E(K,IV)) 用处:面向数据流的通用传输

输出反馈(OFB)

加密算法按输入是上一次加密的输出,使用整个分组。和CFB相似,使用整个明文和密文分组进行运算,而CFB仅使用s位子集。加密标示如下:C_j=P_j\oplus E(K,(C_{j-1} \oplus P_{j-1}))。 优点:某位出现错误,不会影响其他位。 缺点:抗篡改不行。

噪音信道上的数据流传输(卫星通信)

计数器(CTR)

每个明文分组和一个经过加密的计数器作异或,计数器递增。加密:C_j=P_j \oplus E(K,T_j),最后一组长度可能小于一个分组,那么我们仅可以使用相应的位数即可,不需要填充一个分组,即C_N=P_N \oplus MSB_u(E(K,T_N))
用途和优点 :面向分组的通用传输,用于高速需求,可并行计算,随机访问,和其他模式一样安全。


评论