本节摘要:本章把全书三千年的攻防教训收拢成一张可执行的工程清单——库的选型、随机源、算法敏捷、密钥生命周期——再展开双轨合规的现实版图(FIPS 与国密),最后处理密码学最纠缠的公共议题:出口管制的历史、后门争论的技术真相,以及工程师在双重用途技术面前的位置。
先收工程账。以下条目每一条都对应着本书的一处血案或实证,可以当作发布前的验收单:
def audit_tls_config(ctx_like) -> dict: """配置审计的思路示例:把本节的清单变成可执行的检查项""" report = {} report["最低协议版本"] = getattr(ctx_like, "minimum_version", "未知") report["协议版本是否达标"] = str(report["最低协议版本"]).endswith(("TLSv1_2", "TLSv1_3")) report["压缩已禁用"] = bool(getattr(ctx_like, "options", 0) & 1 << 0) report["旧算法白名单"] = "应仅保留 AEAD 套件,出现 CBC 或 RC4 即失败" return report class FakeContext: # 模拟一个待检的 TLS 配置对象 minimum_version = "TLSv1_2" options = 1 for k, v in audit_tls_config(FakeContext()).items(): print(k, "->", v)
工程清单之上还有制度层。国际赛道,FIPS 140-3 是密码模块的事实认证标准(加密库、HSM 按安全级别验证),北美市场采购常见硬门槛;欧盟以通用准则(CC)与电子身份法规并行。国内监管行业(政务、金融、关键基础设施)则要求国密算法体系:SM2 椭圆曲线公钥算法(256 位曲线,对应 ECC 的位置)、SM3 哈希(256 位输出,对应 SHA-256)、SM4 分组密码(128 位分组与密钥,对应 AES-128),以及标识密码 SM9。TLS 国密改造、带国密证书的网关与浏览器生态已经成型,双栈部署(国际算法与国密并存、按合规域切换)是当前最务实的架构。两条轨道的共同趋势值得注意:哈希都取 256 位、曲线都取 256 位、分组都是 128 位——第七章的量子账在两套体系里同样成立。
| 用途 | 国际算法 | 国密算法 | 备注 |
|---|---|---|---|
| 公钥加密与签名 | RSA、ECDSA、EdDSA | SM2 | 曲线参数不同,安全强度同级 |
| 哈希 | SHA-256 / SHA-3 | SM3 | 输出同为 256 位 |
| 分组加密 | AES-128/256 | SM4 | 分组与密钥均为 128 位 |
| 密钥交换 | ECDHE、ML-KEM | SM2 密钥交换 | 后量子迁移两轨并行推进 |
密码学从来不只是数学。20 世纪 90 年代的密码战争里,强加密被当作军用品实施出口管制,6.3 节的齐默曼调查案是标志性冲突;1993 年美国官方推出带"密钥托管"后门的 Clipper 芯片,因行业与学界抵制三年后流产;1999 年伯恩斯坦案裁定代码受言论自由保护,出口管制随后松绑——个人加密权经三场官司落定。2013 年的斯诺登文件揭出另一面:美国标准局 2006 年发布、国际标准组织背书的随机数算法 Dual_EC_DRBG 被证实内藏后门(据称某方持有可反推内部状态的陷门参数),罗德岛一家路由器厂商早于官方三年独立发现并拒绝采用——"先知先觉"四个字令整个行业脊背发凉。
技术社区对后门的共识由此凝成一句可检验的工程判断:为执法者留的门,无法只让执法者走。2015 年朱诺网络设备的后门让全球防火墙设备可被第三方解密,2016 年圣贝纳迪诺案中 FBI 与苹果关于解锁 iPhone 的对抗把争论推向立法层,此后的各类"合法访问"提案反复遭遇同一份技术证词:掌握陷门的数学能力无法按主体发放。作为工程师,这条公案的工程结论其实早已写进本书第 2 章——反射板的便利成了恩尼格玛的死因;任何"看起来两全"的后门,都是某个人还没找到的反射板。
💡 关键直觉:全书的攻防史指向同一个词——过程。凯撒死于穷举,恩尼格玛死于结构性线索,DES 死于算力兑现,MD5 死于内部捷径,量子之剑悬向公钥地基。保密从来不是一种状态,而是一种持续被攻击检验、持续自我更换的过程。本书教你认得每一种死法,是为了让系统活得比对手的想象力更久。
全书至此收束。从凯撒的 25 把钥匙到 ML-KEM 的格上迷雾,密码学始终在回答同一个问题:在不完美的世界里,信任如何被数学托付。下一场更替正在路上——愿你已经在读它的第一章。