3 DES加密链用3个不同DES密钥$K_1$、$K_2$、$K_3$ (每个8-八进制,每八位忽略1位)共同构成3 DES的密钥(24-八进制和168位密钥),将明文$P$ (64-位)转换为密文$C$ (64位),如方程所定义的:$$C\gets\operatorname{E_3}(K_1|K_2|K_3,P)=\operatorname{E}(K_3,\operatorname{D}(K_2,\operatorname{E})(K_1),)$$,其中$\operatorname{E}$和$\operatorname{D}$是DES加密和解密,$\operatorname{E_3}$是新定义的3 DES加密。我们将严格地说明,在其中应用解密(在前面的步骤中使用与密钥$K_2$无关的密钥$K_1$ )是很好的定义(对于典型的非对称密码是不成立的)。
解密操作$\operatorname{D_3}$由方程定义:$$P\gets\operatorname{D_3}(K_1|K_2|K_3,C)=\operatorname{D}(K_1,\operatorname{E}(K_2,\operatorname{D}(K_3,C))。我们将严格地展示它回到原来的纯文本。
对于任何分组密码,我们的证明都是成立的,而不看DES的内部。
预告片:
- DES解密撤销加密;也就是说,对于任何密钥$K$和任何64位块$X$,使用密钥$K$解密$\operatorname{E}(K,X)$是非常明确的,$\operatorname{D}(K,\operatorname{E}(K,X))=X$。这是任何分组密码的基本性质。
- DES加密撤销解密,并且对任何输入都有很好的定义;也就是说,对于任何密钥$K$和任何64位块$Y$,$\operatorname{E}(K,\operatorname{D}(K,Y))=Y$。
证明:
- 对于任何密钥$K$,使用64位块$X$的密钥$K$进行加密都会给出64位块。这是可逆的,因此不同的$X$和$X'$给出了不同的结果:$\operatorname{E}(K,X)$和$\operatorname{E}(K,X')$。对立面证明:
- 如果结果相同,则$\operatorname{E}(K,X)=\operatorname{E}(K,X')$
- 将密钥$K$解密应用于这个公共数量是很明确的,我们得到了$\operatorname{D}(K,\operatorname{E}(K,X))=\operatorname{D}(\operatorname{E}(K,X'))$
- 应用两次,我们得到$X=X'$,通过对位完成证明。
- 因此,对于任何密钥$K$,64位块的有限集都是通过$K$加密完全达到的,任何64位块$Y$都是由某些$X$实现的,$\operatorname{E}(K,X)=Y$。证明可以是一个计数参数,或者考虑到前一步证明了$X\to Y=\operatorname{E}(K,X)$是一个从有限集到同一有限集的内射函数,从而证明了双射。
- 应用属性,可以得到具有键$Y$的解密$K$是很好的定义,$\operatorname{D}(K,Y)=X$。
- 通过用密钥$K$加密双方,得到上述$X$还验证了$\operatorname{E}(K,\operatorname{D}(K,Y))=\operatorname{E}(K,X)$。
- 右手边与$Y$匹配。因此,$\operatorname{E}(K,\operatorname{D}(K,Y))=Y$,完成了
证明3 3DES解密$\operatorname{D_3}$撤消3 3DES加密$\operatorname{E_3}$:
- 用公式中定义的$C$替换$$\operatorname{D_3}(K_1|K_2|K_3,\operatorname{E_3}(K_1|K_2|K_3,P))\ =\operatorname{D}(K_1,\operatorname{E}(K_2,\operatorname{D}(K_3,\operatorname{E}(K_3,\operatorname{D}(K_2,\operatorname{E}(K_1,P)
- 应用$K=K_3$和$X=\operatorname{D}(K_2,\operatorname{E}(K_1,P))$,得到$$\operatorname{D_3}(K_1|K_2|K_3,\operatorname{E_3}(K_1|K_2|K_3,P))\ =\operatorname{D}(K_1,\operatorname{E}(K_2,\operatorname{D}(K_2,\operatorname{E}(K_1,P)$$
- 应用$K=K_2$和$Y=\operatorname{E}(K_1,P)$,得到$$\operatorname{D_3}(K_1|K_2|K_3,\operatorname{E_3}(K_1|K_2|K_3,P))=\operatorname{D}(K_1,\operatorname{E}(K_1,P))$$
- 应用$K=K_1$和$X=P$,我们得到所需的$$\operatorname{D_3}(K_1|K_2|K_3,\operatorname{E_3}(K_1|K_2|K_3,P))=P$
因此,3 DES解密是3 DES加密,DES解密是DES加密;3 DES和DES之间的主要外部区别是较大的密钥。
由于明文比在DES中转换得更彻底,并且使用更大的密钥,所以在不知道密钥的情况下逆转加密操作在3 DES中比在DES中更困难。
有关中间有解密的原因,请参见这个答案。