多重加密与三重DES
-
双重DES
-
C = E ( K 2 , E ( K 1 , P ) ) P = D ( K 1 , D ( K 2 , C ) ) C = E(K_2,E(K_1,P))\\ P = D(K_1,D(K_2,C)) C=E(K2,E(K1,P))P=D(K1,D(K2,C))
-
中间相遇攻击:对所有双重加密都有效
根据
C = E ( K 2 , E ( K 1 , P ) ) X = E ( K 1 , P ) = D ( K 2 , C ) C = E(K_2,E(K_1,P))\\ X=E(K_1,P) = D(K_2,C) C=E(K2,E(K1,P))X=E(K1,P)=D(K2,C)- 先将P用所有可能的密钥K_1进行加密,得到2^56个X
- 其次将C按照所有可能的密钥K_2进行解密,得到的每一个值与表内的X进行比较,如有相等则攻击成功
-
-
使用两个密钥的三重DES:加密过程为:加密-解密-加密
- C = E ( K 1 , D ( K 2 , E ( K 1 , P ) ) ) P = D ( K 1 , E ( K 2 , D ( K 1 , C ) ) ) C = E(K_1,D(K_2,E(K_1,P)))\\ P = D(K_1,E(K_2,D(K_1,C))) C=E(K1,D(K2,E(K1,P)))P=D(K1,E(K2,D(K1,C)))
分组密码的工作模式
- 电码本(ECB):用相同的密钥分别对明文分组独立加密,eg:单个数据的安全传输
- 密文分组连接(CBC):加密算法的输入是上一个密文组和下一个明文组的异或,eg:面向分组的通用传输、认证
-
密文反馈(CFB):一次处理s位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文
eg:面向数据流的通用传输、认证
-
输出反馈(OFB):与CFB类似,只是加密算法的输入是上一次加密的输出且使用整个分组,eg:噪声信道的数据流
-
计数器(CTR):每个明文分组都与一个经过加密计数器相异或。对每个后续分组计数器递增,eg:面向分组的通用传输、用于高速需求