章节摘要:本章跟着"香农两公理如何变成工业标准"这条线走:IBM 的 Lucifer 项目长成 1977 年的 DES——64 位分组、56 位密钥、16 轮 Feistel;四分之一个世纪后它被算力逼退,3DES 过渡,2001 年 AES 以 SPN 结构与 10/12/14 轮接棒。与此同时,工作模式、流密码、消息认证码与密钥管理这些"标准之外的标准"逐一成型,共同构成今天 TLS 流量底下的对称密码栈。
这一章的主线:对称密码的每一次换代,都是"密钥长度输给摩尔定律、结构输给新攻击"的再平衡。
起点是 1970 年代初的 IBM 托马斯·沃森研究中心。霍斯特·费斯托(Horst Feistel)主持的 Lucifer 项目把香农的混淆与扩散做成可量产的电路:把数据对半劈开,每轮只改一半、另一半当"证据",轮函数可以任意复杂而加解密完全对称——这就是 Feistel 网络。几经简化(密钥从 128 位砍到 56 位,据说有国家安全局的参与),1977 年它以 DES 之名成为美国联邦标准,也是人类历史上第一个公开规范、面向大众的加密算法。此后二十余年,银行清算、提款机网络、企业专线,全世界的金融动脉都流经这 16 轮轮函数。
DES 的分组(64 位)与结构始终挺立,倒下的先是密钥:1998 年,电子前哨基金会花约 25 万美元造的专用机 Deep Crack 用 56 小时穷举破开一把 DES 密钥,次年与分布式计算联手把时间压到 22 小时出头——香农的唯一解距离公式在算力面前兑现。过渡方案 3DES 把密钥 Effective 强度拉到约 112 位续命二十年;真正的继任者由一场全球竞赛选出:1997 年 NIST 发起征集,比利时人 Daemen 与 Rijmen 的 Rijndael 在 15 个候选中胜出,2001 年成为 AES——128 位分组,128/192/256 位密钥对应 10/12/14 轮,内部不再是 Feistel 而是替换与线性混合交替的 SPN 网络。今天 TLS 流量的加密层,AES 与 ChaCha20 各据半壁。
标准本身只解决"一个分组怎么变",工程还必须回答"一整条消息怎么变"(工作模式)、"海量小包怎么变"(流密码)、"变了之后有没有人动过手脚"(消息认证码)、"钥匙本身从哪来、放哪里"(密钥管理)。本章后三节沿这条工程链展开。
本章的认知转折发生在 1998 年 7 月。此前,"56 位密钥够不够用"是产业界吵了二十年的估算题——估算总被"攻击成本会降"的预言稀释;Deep Crack 交付的是一张收据:25 万美元、56 小时、无歧义的明文。密码标准第一次以实验方式宣告退役周期,"密钥长度的安全边际要按未来二十年的算力规划"自此成为 NIST 之类标准机构的通则,AES 128/192/256 的三档设计正是这条通则的产物。
最终落点是一条双轮驱动的换代规律:结构缺陷(如 ECB 的模式泄露)靠设计与协议补,算力侵蚀(如 DES 的 56 位密钥)靠参数加宽补;两者各自累积,共同决定一套对称密码的寿命。下一章的公钥革命将补齐对称密码永远补不上的那块板——密钥分发。
对称密码还剩最后一块死穴:钥匙怎么安全地送到千里之外的对方手里——3.1 节会算出 n 方全互联的密钥数量公式,数字大得不可运营。下一章的 Diffie-Hellman 与 RSA 将用数学难题做杠杆,把"送钥匙"变成"公开协商",撬开整个互联网的加密时代。