我们编写了代码,代码赢得了胜利
本周,NIST正式宣布了三项指定FIPS批准的后量子密码算法标准。无状态基于哈希的数字签名算法(SLH-DSA)是这些标准化算法之一。Trail of Bits密码学团队一直期待这一公告,我们兴奋地分享自己的公告:我们构建了SLH-DSA的开源纯Rust实现,并已合并到RustCrypto中。
速度、内存安全、零成本抽象和先进的类型系统使Rust成为密码学库的优秀语言。向后量子密码学过渡是对未来的投资;这些算法将在未来几十年用于关键软件。如果您正在进行这种投资,应该使用Rust构建的密码学,这就是为什么我们将目标锁定在RustCrypto上。
由于Trail of Bits支持开源社区并鼓励采用后量子算法,我们将我们的实现贡献给RustCrypto项目,并在那里维护它。然而,安全地过渡到后量子密码学将是一个多年、复杂的过程,我们致力于在这个库之外帮助行业完成这一过渡。如果您的公司正在思考如何最有效、最安全地进行PQC过渡,请与我们的密码学专家交流,我们将确保您安全并领先于潮流。
为什么SLH-DSA被选为最终候选算法?
之前被称为SPHINCS+的SLH-DSA是一种高度保守的抗量子签名方案。与依赖格问题硬度的标准(如ML-DSA(Dilithium))不同,SLH-DSA依赖于SHA2或SHA3的安全性,这些算法已经过广泛研究,并被确信能够抵抗经典和量子攻击。虽然专家认为ML-DSA是安全的,但其对量子攻击者的抵抗性更难分析,并且可能随着日益先进的攻击而某天减弱。此外,与LMS等有状态的基于哈希方案不同,SLH-DSA可以安全地作为现有签名方案(如ECDSA、EdDSA和RSA-PSS)的直接替代品。
基于哈希的签名方案的强大安全特性伴随着性能成本。由于其较大的签名大小和较长的签名时间,SLH-DSA最适合消息不频繁且密钥寿命较长的用例,例如固件签名。
实现优势
我们的SLH-DSA Rust crate支持no-std且不使用堆分配,使其适用于任何平台,包括嵌入式设备。为了增强对代码库正确性的信心,我们整合了NIST提供的所有已知答案测试向量。此外,代码库由Trail of Bits密码学团队中未实现该代码库的其他密码学家进行了独立审查。
该实现支持所有12个FIPS批准的参数集。它还提供了RustCrypto签名crate中定义的trait API,允许在使用RSA或椭圆曲线密码学的Rust项目中进行直接替换。
未来工作
在我们公开发布此代码库时,我们对其安全性和正确性充满信心。然而,这并不意味着该项目已完成。我们计划对代码库进行多项改进以提高其性能。例如,我们计划支持具有特定内存约束的嵌入式设备的自定义分配器。我们还将继续与用户合作改进可用性和文档。
缓解向后量子世界的过渡
我们的密码学团队一直在为后量子迁移做大量准备。在您的组织计划或执行其后量子密码学过渡时,您应该与我们的专家交流。无论您需要关于过渡计划的早期建议,希望获得关于包含PQC的新系统设计的反馈,需要构建新的PQC库,还是需要对现有PQC库进行安全审查,我们的密码学团队都可以帮助您。
同时,请查看代码并给我们反馈!您的输入对于帮助确保该库能够安全有效地被尽可能多的人使用至关重要。我们仍处于后量子密码学过渡的第一阶段,像这样的开源实现将在我们继续这一旅程中发挥关键作用。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News