一套密码算法从学术论文中的数学构造走向全球数十亿设备上的实际部署,中间必须经历一段漫长却至关重要的旅程——标准化。在这段旅程里,算法不仅要接受密码分析者日以继夜的攻击检验,还要在性能、实现复杂度、专利自由度、侧信道抵抗力等多个维度上经受反复权衡。标准化的成功与否,往往决定了一套优秀算法能否真正惠及产业界与普通用户。本文将系统梳理当今世界最重要的几大密码学标准化体系——美国国家标准与技术研究院(NIST)、互联网工程任务组(IETF)、国际标准化组织(ISO/IEC)以及中国密码标准体系,回顾若干里程碑式标准的诞生历程,并展望后量子时代的标准化前景。
一、为什么密码学需要标准化
初学者有时会产生一个疑问:既然密码算法的安全性来自数学证明与密码分析,为什么还需要一个看似繁琐的标准化过程?答案至少可以从三个层面来理解。
互操作性(interoperability)是第一要务。 现代通信网络本质上是全球性的:一封电子邮件从北京发出,经过多个中继节点到达纽约,发送方和接收方的软件可能来自不同厂商、运行在不同操作系统上。如果双方各自选用不同的加密算法或密钥协商协议,通信就无法建立。标准化为所有参与者提供了一份共同的”技术契约”:只要双方都遵循同一份标准文档实现,就一定能顺利互通。传输层安全协议(TLS)就是最好的例子——全球数以百万计的网站和浏览器之所以能在几毫秒内完成安全握手,正是因为它们共同遵守了同一套 RFC 文档中规定的密码套件与握手流程。
笔者认为,NIST 与 IETF 的标准化路径代表了关于「信任如何运作」的两种截然不同的哲学。NIST 模式本质上是权威认证型——由一个具有公信力的国家机构组织评审、作出选择、发布标准,信任的来源是机构的专业声誉和评审过程的严谨性。IETF 模式则是社区共识型——没有任何单一机构拥有最终决定权,标准的合法性来源于「在公开辩论中幸存下来」这一事实本身。这两种模式各有优劣:NIST 模式效率更高、权威性更强,但容易受到政治干预(Dual_EC_DRBG 事件是最刺痛的例证);IETF 模式更抗审查、更难被少数人操控,但决策过程冗长,且「粗略共识」有时会被强势参与者所左右。理解这一哲学差异,有助于我们在选择标准时做出更明智的判断——不存在一种万能的标准化模式,关键是在具体场景下选择信任模型最匹配的标准体系。
合规性(regulatory compliance)是第二驱动力。 许多行业和政府部门在法律或监管层面要求使用经过标准化认可的密码算法。例如,美国联邦政府要求其信息系统使用 NIST 发布的联邦信息处理标准(FIPS)中认可的算法;中国的《密码法》则要求商用密码产品使用经国家密码管理局批准的密码算法。未经标准化的算法,无论其学术评价多高,都可能因合规问题而无法在关键领域部署。标准化在某种意义上充当了”质量认证”的角色——通过长期的公开评审,为算法的安全性提供了一层额外的社会信任。
避免私有算法(proprietary algorithms)的陷阱是第三个重要原因。 密码学界有一条广为人知的原则——柯克霍夫原则(Kerckhoffs’ principle):系统的安全性不应依赖于算法的保密。历史上,不少厂商曾试图通过自行设计并保密的专有算法来实现”安全”,结果一旦算法被逆向工程,往往被发现漏洞百出。标准化流程天然地要求算法公开,接受全世界密码学家的审视,这正是柯克霍夫原则在制度层面的体现。公开的标准化竞赛更是把”千锤百炼”发挥到了极致:候选算法在数年的评审期内暴露在上百位研究者的放大镜下,只有经受住考验的方案才能最终胜出。
二、NIST 标准化流程
美国国家标准与技术研究院(National Institute of Standards and Technology, NIST)是全球密码学标准化领域影响力最大的机构之一。NIST 发布的密码学标准主要通过两类文件载体:联邦信息处理标准(Federal Information Processing Standards, FIPS)和特别出版物(Special Publications, SP)。FIPS 具有强制性——美国联邦政府机构在处理非机密但敏感的信息时,必须使用 FIPS 认证的算法和模块。SP 800 系列则提供推荐性指南,但在实践中同样被全球工业界广泛采纳。
NIST 的标准化流程通常包含以下几个阶段。首先是需求识别:当现有标准即将到期、出现新的安全威胁或技术发展催生新需求时,NIST 会启动新一轮标准化工作。随后是公开征集(Call for Proposals)阶段:NIST 向全球密码学界发出邀请,任何个人或团队均可提交候选算法。接下来进入评审(Evaluation)阶段:NIST 组织多轮评审会议,候选算法接受安全性分析、性能测试和实现评估。最后是标准发布:NIST 选出获胜方案,将其写入 FIPS 或 SP 文档,并经过公开评论期后正式发布。
这一”公开竞赛”模式自 1997 年 AES 征集以来已成为 NIST 的标志性做法,并被 SHA-3 竞赛和后量子密码(PQC)标准化所延续。竞赛模式的核心价值在于透明性和开放性:所有候选算法的设计文档、安全性证明、参考实现均向公众公开;评审过程通过研讨会和公开评论进行;最终选择的理由以详细报告的形式公布。这种做法有效地防止了暗箱操作,也最大限度地汇聚了全球密码学界的智慧。
NIST 还通过密码算法验证计划(Cryptographic Algorithm Validation Program, CAVP)和密码模块验证计划(Cryptographic Module Validation Program, CMVP)为标准的实施提供测试与认证。任何商用密码产品在声称符合 FIPS 140-2(现已更新为 FIPS 140-3)之前,必须通过第三方实验室的严格测试。
三、AES 竞赛回顾
高级加密标准(Advanced Encryption Standard, AES)的诞生是密码学标准化史上最具代表性的事件之一。1997 年 1 月,NIST 宣布启动征集 DES(Data Encryption Standard)的替代算法。彼时 DES 已服役二十余年,其 56 比特密钥在日益增长的计算能力面前已不堪一击——1998 年电子前沿基金会(EFF)制造的”DES Cracker”专用硬件仅用不到三天就完成了暴力破解。
NIST 对候选算法提出了明确要求:必须是分组密码(block cipher),支持 128 比特分组长度和 128、192、256 三种密钥长度;算法必须免费、无专利限制地向全世界公开使用。这些要求既保证了标准的实用性,也确保了其可及性。
截至 1998 年 6 月,NIST 共收到 15 个候选方案,来自全球多个国家的研究团队。候选算法的多样性令人瞩目:有基于 Feistel 结构的传统设计(如 MARS、Twofish),有基于替换-置换网络(Substitution-Permutation Network, SPN)的新颖方案(如 Rijndael、Serpent),也有独辟蹊径的设计(如 DEAL、HPC)。
第一轮评审历时一年。NIST 在 1999 年 8 月的第二次 AES 候选算法会议上宣布了进入决赛的 5 个方案:MARS(由 IBM 提交)、RC6(由 RSA 实验室提交)、Rijndael(由比利时密码学家 Joan Daemen 和 Vincent Rijmen 提交)、Serpent(由 Ross Anderson、Eli Biham 和 Lars Knudsen 提交)以及 Twofish(由 Bruce Schneier 等人提交)。这 5 个方案均未被发现严重的安全缺陷,评审的焦点因此转向了性能、实现灵活性和算法结构的优雅性。
2000 年 10 月 2 日,NIST 宣布 Rijndael 为 AES 的获胜算法。选择 Rijndael 的主要理由包括:在软件和硬件实现中均展现出优异的性能;结构清晰简洁,有利于安全性分析;在各种平台(从 8 比特智能卡到 64 比特服务器)上都能高效运行;密钥调度(key schedule)简单且可逆。2001 年 11 月,AES 以 FIPS 197 的编号正式发布。
AES 竞赛留下了宝贵的经验。第一,公开竞赛模式被证明行之有效——它不仅产出了一个优秀的标准,还极大地推动了分组密码的学术研究。第二,评审标准的多维性至关重要:安全性是必要条件,但性能、实现复杂度和知识产权状况同样影响最终决策。第三,透明的评审过程赢得了国际社会的广泛信任,使 AES 迅速成为全球通用的加密标准。时至今日,AES 仍然是应用最广泛的对称加密算法,每天保护着数以万亿计的网络通信。
四、SHA-3 竞赛回顾
如果说 AES 竞赛奠定了公开征集模式的基础,那么 SHA-3 竞赛则将其推向了更大的规模和更深的技术纵深。
2004 年至 2005 年间,中国密码学家王小云等人对 SHA-1 和 MD5 发表了具有里程碑意义的碰撞攻击成果,使整个 SHA 系列的长期安全性受到质疑。虽然 SHA-2 系列(SHA-256、SHA-512 等)在结构上与 SHA-1 有所不同且当时仍被认为安全,但 NIST 出于前瞻性考虑,决定启动新一轮哈希函数标准化竞赛,以备万一。
2007 年 11 月,NIST 正式发布 SHA-3 竞赛的征集公告。与 AES 竞赛相比,SHA-3 竞赛的规模显著扩大:截至 2008 年 10 月的截止日期,共收到 64 份有效提交。这些方案覆盖了几乎所有已知的哈希函数设计范式——从经典的 Merkle-Damgard 结构到创新的海绵结构(sponge construction)、树形哈希(tree hashing)乃至基于分组密码的构造。
竞赛历经三轮筛选。第一轮(2009 年)将 64 个候选缩减为 14 个;第二轮(2010 年)进一步缩减为 5 个决赛方案:BLAKE、Grostl、JH、Keccak 和 Skein。这 5 个方案在安全性上均经受住了密集的密码分析,决赛阶段的比较更多集中在性能特征、结构新颖性和安全裕度(security margin)等方面。
2012 年 10 月,NIST 宣布 Keccak 为 SHA-3 标准。Keccak 的核心是海绵结构——一种与 Merkle-Damgard 截然不同的设计范式。海绵结构通过”吸收”(absorbing)和”挤出”(squeezing)两个阶段处理输入和输出,其内部状态宽达 1600 比特,由一个简洁的置换函数 Keccak-f 反复迭代。选择 Keccak 的理由中,一个特别重要的考量是多样性:SHA-2 基于 Merkle-Damgard 结构且使用 Davies-Meyer 压缩函数,如果 SHA-3 也采用类似的内部结构,那么当某种攻击方法同时威胁两者时,系统将失去冗余保护。Keccak 的海绵结构在设计理念上与 SHA-2 完全正交,从而为标准体系提供了真正的算法多样性。
SHA-3 于 2015 年以 FIPS 202 的编号正式发布,定义了 SHA3-224、SHA3-256、SHA3-384、SHA3-512 四种固定输出长度的哈希函数以及 SHAKE128、SHAKE256 两种可扩展输出函数(extendable-output function, XOF)。海绵结构的影响远不止 SHA-3 本身:它催生了一系列基于海绵的认证加密方案和轻量级密码算法,深刻改变了密码学设计的思维方式。
五、IETF 与 RFC 流程
互联网工程任务组(Internet Engineering Task Force, IETF)是互联网协议标准化的核心机构。与 NIST 关注单个算法的标准化不同,IETF 更侧重于将密码算法整合进网络协议中,其产出的请求评论文档(Request for Comments, RFC)定义了互联网世界运行的基本规则。
IETF 的工作以工作组(Working Group, WG)为单位进行。在密码学领域,密码论坛研究组(Crypto Forum Research Group, CFRG)扮演着特殊角色:它隶属于互联网研究任务组(IRTF)而非 IETF 本身,但负责为 IETF 工作组提供密码学方面的技术建议。当 IETF 需要选择新的椭圆曲线或认证加密方案时,通常会先由 CFRG 进行技术评估,再将推荐结果传递给相应的工作组。Curve25519 和 Curve448 的选定就是 CFRG 工作的典型成果。
一份 RFC 的诞生通常遵循以下路径。首先,个人或小组撰写互联网草案(Internet-Draft, I-D)并提交给相关工作组。草案在工作组邮件列表和会议上经历反复讨论和修改。当工作组达成”粗略共识”(rough consensus)——IETF 标志性的决策方式——后,草案进入工作组最终征求意见(Working Group Last Call, WGLC)阶段。通过后,草案被提交给负责该领域的区域主管(Area Director)进行审查,再经过 IETF 全体最终征求意见(IETF Last Call)。最终由互联网工程指导组(IESG)投票决定是否批准发布为 RFC。整个流程强调开放参与和粗略共识,任何人都可以通过订阅邮件列表参与讨论。
TLS 1.3(RFC 8446)的开发历程是 IETF 密码学标准化的经典案例。从 2014 年 TLS 工作组开始讨论到 2018 年 8 月正式发布,历时四年,经历了 28 个草案版本。TLS 1.3 的设计目标明确:削减握手延迟(引入 1-RTT 和 0-RTT 模式)、移除不安全的遗留特性(如 RSA 密钥传输、CBC 模式密码套件、压缩)、简化协议状态机。在此过程中,CFRG 为 TLS 1.3 推荐了 X25519 密钥交换和 ChaCha20-Poly1305 认证加密等现代密码原语。值得一提的是,TLS 1.3 在标准化过程中曾遭遇来自企业网络安全厂商的阻力——这些厂商希望保留 RSA 密钥传输以便进行合法的网络监控,但 IETF 社区最终坚持了前向保密(forward secrecy)原则,拒绝在安全性上妥协。这一决定体现了 IETF 标准化过程中技术社区共识对商业诉求的平衡能力。
六、ISO/IEC JTC 1/SC 27
国际标准化组织(International Organization for Standardization, ISO)与国际电工委员会(International Electrotechnical Commission, IEC)联合成立的第一联合技术委员会(JTC 1)下设的第 27 分委员会(SC 27)是国际层面密码学标准化的重要力量。SC 27 的正式名称为”信息安全、网络安全和隐私保护”,其工作涵盖密码算法、安全机制、安全评估等多个领域。
与 NIST 和 IETF 不同,ISO/IEC 的标准制定遵循一套严格的投票驱动流程。标准提案首先经过新工作项目(New Work Item Proposal, NWIP)投票,需要获得足够多成员国的支持才能立项。此后,标准草案经历工作草案(Working Draft, WD)、委员会草案(Committee Draft, CD)、国际标准草案(Draft International Standard, DIS)和最终国际标准草案(Final Draft International Standard, FDIS)等多个阶段,每个阶段都需要成员国的投票和评论。整个流程通常需要三到五年,有时更长。
在密码算法标准化方面,ISO/IEC 的做法与 NIST 的竞赛模式有显著不同。ISO/IEC 通常不自行征集新算法,而是对已在其他标准体系(如 NIST FIPS、各国国家标准)中得到认可的算法进行国际标准化整合。例如,ISO/IEC 18033 系列标准涵盖了多种加密算法,包括 AES(同时也是 FIPS 197)、Camellia(日本标准算法)和 SM4(中国标准算法)。ISO/IEC 19772 标准则定义了认证加密(Authenticated Encryption with Associated Data, AEAD)的通用框架和六种具体方案。这种做法使 ISO/IEC 标准在国际贸易和跨国合规场景中发挥着独特的桥梁作用——各国可以将本国标准算法纳入 ISO 框架,从而在国际上获得更广泛的认可。
ISO/IEC 与各国标准之间存在复杂的相互关系。一方面,各国标准化机构(如中国的 SAC、美国的 ANSI、德国的 DIN)作为 ISO 的成员体(member body)参与投票和提案;另一方面,国际标准发布后,各国往往将其等同采用(identical adoption)为本国标准。这种双向互动既促进了标准的全球协调,也为各国在标准制定中争取话语权提供了舞台。
七、中国密码标准体系
中国拥有独立且日益完善的密码标准体系。2019 年颁布的《中华人民共和国密码法》将密码分为核心密码、普通密码和商用密码三类,其中商用密码的标准化由国家密码管理局(现为国家密码管理总局)和全国信息安全标准化技术委员会(TC260)及其下设的密码技术工作组共同推动。
中国密码标准的编号体系分为两个主要层级。GM/T 标准是密码行业标准,由国家密码管理局发布,“GM”代表”国密”;GB/T 标准则是推荐性国家标准,由国家标准化管理委员会(SAC)发布,具有更高的法律效力和更广泛的适用范围。近年来,越来越多的 GM/T 标准被提升为 GB/T 标准,反映了密码标准在国家标准体系中地位的上升。
中国自主设计的密码算法构成了标准体系的核心。SM2 是基于椭圆曲线的公钥密码算法,涵盖数字签名、密钥交换和公钥加密三项功能,于 2010 年发布为行业标准(GM/T 0003),后提升为国家标准(GB/T 32918)。SM3 是密码杂凑算法,输出 256 比特摘要,其设计吸收了 SHA-2 的若干构造思想但在压缩函数细节上有独创之处,于 2010 年发布后同样提升为国家标准(GB/T 32905)。SM4 是分组密码算法,128 比特密钥和分组长度,最初作为无线局域网(WLAN)安全标准的加密组件而设计,后扩展为通用分组密码标准(GB/T 32907)。SM9 是基于标识的密码算法(Identity-Based Cryptography, IBC),利用双线性配对(bilinear pairing)实现了无需证书管理的加密和签名方案。
中国密码标准与国际标准的对接工作持续推进。SM2、SM3、SM4、SM9 等算法已被纳入多项 ISO/IEC 标准——例如 SM4 被纳入 ISO/IEC 18033-3:2010/Amd 1:2021,SM2 和 SM9 的相关技术被纳入 ISO/IEC 14888 系列和 ISO/IEC 11770 系列。在 IETF 层面,SM2、SM3、SM4 在 TLS 1.3 中的使用也已通过 RFC 8998 等文档进行了标准化。这些国际化努力使得中国密码算法能够在全球互操作环境中得到支持。
笔者认为,中国的国密标准体系是「主权密码学」(sovereign cryptography)最重要的当代案例研究。所谓主权密码学,是指一个国家出于安全自主可控的考量,自主设计、标准化并强制部署一套独立于国际主流标准的密码算法体系。这种做法的合理性显而易见——对于关系国家安全的信息系统,依赖他国设计和控制的密码算法存在不可接受的供应链风险。Dual_EC_DRBG 事件已经证明,即使是最受尊重的国际标准化机构也可能被情报机构渗透。但主权密码学也面临独特的挑战:算法设计过程的公开性和国际审查的深度往往不如 NIST 竞赛模式,这使得国际密码学界对其安全性的信心建立较慢。从长远来看,中国密码标准通过 ISO 国际化和 IETF RFC 化的双轨策略,正在逐步弥合这一信任差距。这一过程本身就是密码学标准化领域最有价值的社会学实验之一。
以下示例展示了如何通过 openssl 命令行查看
FIPS 模式状态及可用的标准算法,以及使用 GmSSL
工具进行国密算法操作:
# 检查 OpenSSL 是否启用了 FIPS 模式
openssl version -a | grep FIPS
# 列出 OpenSSL 支持的所有对称加密算法(含 AES、ChaCha20 等标准算法)
openssl list -cipher-algorithms
# 列出所有摘要算法(含 SHA-2、SHA-3 系列)
openssl list -digest-algorithms
# 使用 GmSSL 进行 SM3 哈希计算
echo -n "hello" | gmssl sm3
# 使用 GmSSL 进行 SM4-CBC 加密
gmssl sm4_encrypt -key 0123456789abcdef0123456789abcdef -iv 00000000000000000000000000000000 -in plain.txt -out cipher.bin八、后量子密码标准化
后量子密码(Post-Quantum Cryptography, PQC)标准化是当前密码学标准化领域最为紧迫和备受瞩目的议题。量子计算机一旦达到足够的规模,将能利用肖尔算法(Shor’s algorithm)在多项式时间内破解 RSA、椭圆曲线密码(ECC)等当前广泛使用的公钥算法。虽然大规模容错量子计算机尚未出现,但考虑到标准化和迁移所需的漫长时间(通常需要十年以上),以及”现在收集、将来解密”(harvest now, decrypt later)攻击的现实威胁,提前启动标准化工作势在必行。
NIST 于 2016 年正式启动后量子密码标准化进程,向全球征集抗量子攻击的公钥加密和数字签名方案。截至 2017 年 11 月的截止日期,共收到 82 份有效提交(其中 69 份通过完整性审查进入第一轮)。这些方案基于多种数学难题:格(lattice)问题、编码(code-based)问题、多变量多项式(multivariate)问题、哈希函数(hash-based)签名以及同源(isogeny)问题等。
经过三轮严格筛选,NIST 于 2022 年 7 月宣布了首批标准化算法。在密钥封装机制(Key Encapsulation Mechanism, KEM)方面,CRYSTALS-Kyber(现更名为 ML-KEM,基于模块格上的学习含误差问题)被选为主要标准。在数字签名方面,CRYSTALS-Dilithium(现更名为 ML-DSA,同样基于模块格)和 FALCON(基于 NTRU 格上的快速傅里叶采样)被选为基于格的签名标准,而 SPHINCS+(现更名为 SLH-DSA,基于无状态哈希签名)则作为基于保守数学假设的备选签名标准入选。
2024 年 8 月,NIST 正式发布了三项后量子密码标准:FIPS 203(ML-KEM)、FIPS 204(ML-DSA)和 FIPS 205(SLH-DSA)。FALCON 的标准化(预计编号为 FIPS 206)也在推进中。与此同时,NIST 还在进行第四轮评审和额外的签名方案征集,以确保标准体系具有足够的算法多样性。
后量子标准化的迁移时间线已成为各国政府和企业关注的焦点。美国白宫于 2022 年发布备忘录,要求联邦机构制定向后量子密码迁移的计划。NIST 也建议到 2035 年前逐步淘汰传统公钥算法。这一迁移涉及的范围之广、复杂度之高前所未有——从 TLS、SSH、IPsec 等网络协议到代码签名、数字证书、安全芯片,几乎所有使用公钥密码的系统都需要更新。实际迁移中,混合模式(hybrid mode)被普遍推荐作为过渡方案:在同一个协议握手中同时运行传统算法和后量子算法,只有两者同时被攻破时安全性才会丧失。
| 标准化机构 | 代表性文件 | 决策机制 | 开放程度 | 典型周期 | 审查机制 | 采纳路径 | 密码学领域代表成果 | 适用范围 |
|---|---|---|---|---|---|---|---|---|
| NIST | FIPS、SP 800 系列 | 公开竞赛 + 专家评审 + 公众评论 | 高:任何人可提交候选方案,所有评审材料公开 | 3-7 年 | 多轮公开评审会议、密码分析社区自由参与、最终报告详述选择理由 | 美国联邦强制(FIPS)→ 全球工业界自愿采纳 → 事实上的全球标准 | AES (FIPS 197)、SHA-3 (FIPS 202)、ML-KEM (FIPS 203) | 美国联邦政府(事实上的全球标准) |
| IETF | RFC | 粗略共识 + 工作组讨论 + IESG 批准 | 极高:任何人可订阅邮件列表参与讨论,无需机构背景 | 2-5 年 | 工作组邮件列表公开辩论、WGLC + IETF Last Call 双重审查、CFRG 提供密码学技术建议 | 草案 → 工作组共识 → IESG 批准 → 协议实现者自愿遵循 | TLS 1.3 (RFC 8446)、ChaCha20-Poly1305 (RFC 8439)、X25519 (RFC 7748) | 互联网协议,全球适用 |
| ISO/IEC JTC 1/SC 27 | ISO/IEC 标准 | 成员国投票驱动,多阶段草案审查 | 中等:参与需通过国家标准化机构,标准文档需付费获取 | 3-5 年 | NWIP → WD → CD → DIS → FDIS 多阶段投票,成员国可提出技术评论 | 国际标准发布 → 各国等同采用为国家标准 → 跨国贸易合规依据 | ISO/IEC 18033(加密)、ISO/IEC 19772(AEAD)、ISO/IEC 14888(签名) | 国际贸易与跨国合规 |
| 中国密标委/TC260 | GM/T、GB/T | 行业主管部门主导 + 专家评审 + 国标委审批 | 较低:算法设计由指定机构完成,标准制定以行业专家评审为主 | 2-4 年 | 行业标准(GM/T)经专家委员会评审;提升为国家标准(GB/T)需经国标委审批和公示 | 国家密码管理局发布 GM/T → 提升为 GB/T 国家标准 → 通过 ISO 纳入国际标准体系 | SM2 (GB/T 32918)、SM3 (GB/T 32905)、SM4 (GB/T 32907)、SM9 (GB/T 38635) | 中国境内商用密码应用 |
九、标准化的挑战与争议
密码学标准化并非总是一帆风顺的。历史上最严重的标准化丑闻当属 Dual_EC_DRBG 事件。Dual_EC_DRBG 是 NIST 于 2006 年在 SP 800-90A 中发布的一种基于椭圆曲线的伪随机数生成器。早在标准发布后不久,微软研究员 Dan Shumow 和 Niels Ferguson 就在 2007 年的 CRYPTO 学术会议上指出,Dual_EC_DRBG 中的某些预设参数可能隐藏了后门:如果参数的生成者知道两个椭圆曲线基点之间的离散对数关系,就能从输出中恢复内部状态,从而预测所有后续的随机数。
2013 年,斯诺登泄露的文件表明美国国家安全局(NSA)确实参与了 Dual_EC_DRBG 的设计,且该后门可能是有意为之。这一事件对 NIST 的公信力造成了严重打击。NIST 随后启动了对其密码标准流程的全面审查,并于 2014 年从 SP 800-90A 中移除了 Dual_EC_DRBG。RSA Security 公司此前曾将 Dual_EC_DRBG 设为其 BSAFE 密码库的默认随机数生成器(据报道与 NSA 的一项价值 1000 万美元的合同有关),此事曝光后也引发了广泛的信任危机。
笔者认为,Dual_EC_DRBG 丑闻是密码学标准化历史上最重要的一课,其影响远超事件本身。它揭示了一个深层悖论:密码学标准化的全部价值建立在信任之上——用户信任标准制定机构的中立性和专业性,因此愿意将自己的安全性「外包」给标准。而 Dual_EC_DRBG 事件证明,这种信任一旦被滥用,其破坏力远大于任何技术层面的攻击。从密码工程的角度看,这一事件催生了三条持久的教训:第一,任何密码学标准中的「看似随意的常数」都必须附有可验证的生成过程(nothing-up-my-sleeve numbers);第二,标准化流程必须建立对情报机构影响的制度性防火墙;第三,也是最根本的——密码学社区的健康依赖于一种「有建设性的偏执」文化,既不盲信权威,也不陷入阴谋论,而是通过持续的公开审查来维持信任的动态平衡。
Dual_EC_DRBG 事件的教训是深刻的:标准化流程的开放性和透明性不仅是一种价值理念,更是防止恶意行为者渗透的制度保障。具体而言,算法中任何看似”随意”的常数(nothing-up-my-sleeve numbers)都应附有可验证的生成过程;公开评审的深度和广度应足以发现可疑的设计选择;标准化机构应建立对政府情报机构影响的制度性防火墙。
算法敏捷性(algorithm agility)与简洁性之间的张力是标准化面临的另一个持续挑战。所谓算法敏捷性,是指协议能够灵活切换底层密码算法的能力——当某个算法被发现存在缺陷时,系统可以迅速迁移到替代算法。TLS 协议的密码套件协商机制就是算法敏捷性的典型体现。然而,过度的算法敏捷性也有代价:它增加了协议的复杂性,扩大了攻击面(降级攻击就利用了协议支持多种算法这一特性),也使得安全性分析和形式化验证变得更加困难。TLS 1.3 在设计中大刀阔斧地削减了支持的密码套件数量(从 TLS 1.2 时代的数百种减少到仅五种),正是对这一张力的回应。
标准化过程中的知识产权问题同样棘手。理想情况下,标准化的密码算法应当不受专利限制,以便全球自由实现。AES 竞赛明确要求候选算法免费许可,这一做法被后续竞赛所继承。然而在实践中,某些算法的底层技术可能涉及第三方专利,这使得专利审查成为标准化评审的重要环节。ISO/IEC 标准对专利的处理更为复杂——其政策允许包含受专利保护的技术,但要求专利持有者承诺以”合理且非歧视性”(Reasonable and Non-Discriminatory, RAND)的条款进行许可。这一政策虽然灵活,但也可能在实际部署中造成成本和法律上的不确定性。
标准化流程的时间跨度也常常引发讨论。从 AES 竞赛的四年到后量子标准化的八年以上,严谨的评审需要时间,但技术演进和安全威胁不等人。在量子计算威胁日益逼近的当下,如何在充分评审与及时部署之间找到平衡,是标准化社区面临的现实考验。
展望未来,密码学标准化将面对更多新挑战:后量子迁移的全球协调、轻量级密码(lightweight cryptography)在物联网场景中的标准化、同态加密(homomorphic encryption)和安全多方计算(secure multi-party computation)等高级密码原语的实用化标准、以及人工智能辅助密码分析对标准安全裕度评估的影响。无论技术如何演变,标准化的核心原则不会改变——公开、透明、充分评��,让密码学的力量以可信赖的方式守护数字世界的安全。
密码学百科系列 · 第 54 篇