对称分组加密算法原理


本文只关注一个核心任务 —— 如何把 64 位的明文,用 64 位的密钥,加密成 64 位的密文,并执行解密,需要理解这个过程。

DES已经很少使用了,主要是想学习它的Feistel network (费斯妥网络)。

其实,了解这些加密的流程没啥用,这些是无用的信息。我认为要理解每个步骤背后的数学原理,数学观点上证明它这个步骤是安全的,这个才是通用的、有用的知识。

一些基础概念

对称加密
双方拥有同一个密钥,加密、解密是同一个密钥完成,该秘钥不对第三方公开。

分组密码
分组密码是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。

分组长度
DES 加密算法中,明文和密文为 64 位分组。密钥的长度为 64 位,但是密钥的每个第八位设置为奇偶校验位,因此密钥的实际长度为56位。

步骤拆分

DES 加密流程大致分为 4 个步骤:
(1)初始置换
(2)生成子密钥
(3)迭代过程
(4)逆置换

分了那么多步骤,其实就是为了达成如下效果:

  • 用一个公开的、可逆但计算上难以逆推的复杂算法,把明文经过密钥控制的非线性变换打乱;
  • 算法即使公开,没有正确密钥也很难从密文反推出原文。

\[\boxed{\text{公开算法}+\text{秘密密钥}\rightarrow\text{巨大密钥空间}+\text{计算困难的逆过程}} \]

posted on 2025-07-02 15:44  Mysticbinary  阅读(92)  评论(0)    收藏  举报