分组密码的工作模式之 多重加密与三重DES算法

DES在穷举攻击下相对脆弱,使用DES进行多次加密且使用多个**的方式是能够保护已有软硬件的投资的较好方式。本文从简单的双重**开始,直到最广泛应用的三重DES(3DES)算法。

  1. 双重DES
    给定明文P及**K1,K2,密文C的生成如下:

    C = E( K2, E( K1, P ) )

    解密时逆序使用这两个**:

    P = E( K1, E( K2, C ) )

    在这种情况下有人发问:对所有56位**,给定K1, K2,可能存在**K3使得:

    E(K2, E( k1, P ) ) == E( K3, P )

    如果这种说法成立的话,那么多重加密是没有意义的。书中给出了证明这种说法错误的解释,奈何我没看懂。先贴上记下:

    对称密码 之 分组密码的多重加密
    注:非常感谢西电睿思论坛某同学的解释,现贴如下:
    对称密码 之 分组密码的多重加密
    双重DES加密图解:
    对称密码 之 分组密码的多重加密
    对应攻击方法

    • 中间相遇攻击
      这种攻击不依赖于DES的任何特殊性质,对所有分组密码都有效。

    假设:C = E( K2, E(K1, P ) )
    则有:X = E( K1, P ) = D( K2, C )
    于是,攻击就很显而易见了:
    简单来说就是你知道一对对应的明文(P)和密文(C),那么用所有可能的**K1对明文P加密并存到一个表中,然后用所有可能的**K2对密文C解密,将每次解密结果和表中的值一一比较,如果相等就用这一对K1,K2对新的明密文验证,如果成功则得到正确的**对。
    经验证该种**方法比攻击单DES付出的代价高不了多少。


  2. 2. 使用两个**的三重DES
    具体过程为加密-解密-加密(EDE):

C = E( K1, D( K2, E( K1, P ) ) )
P = D( K1, E( K2, D( K1, C ) ) )

  • 对应攻击方法
    暂时还没有可行的攻击方法。

    3. 使用三个**的三重DES
    三**的三重DES**长度位168位,定义为:

    C= E( K3, D ( K2, E( K1, P ) ) )

    想要和单DES兼容只需设K3=K2,或者令K1=k2即可。
    图解如下:
    对称密码 之 分组密码的多重加密

总结:
该部分简单介绍了多重加密和已经广泛应用的三重DES算法。该系列仅限于普及知识点,若想深入了解还需继续阅读相关书籍。加油吧!

相关文章:

  • 2021-06-10
  • 2021-10-02
  • 2021-08-19
  • 2021-12-09
  • 2022-03-01
  • 2022-12-23
  • 2021-08-16
  • 2022-12-23
猜你喜欢
  • 2021-04-18
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2022-12-23
  • 2021-07-23
  • 2022-01-10
相关资源
相似解决方案