纯Rust实现后量子密码算法SLH-DSA:代码胜出,安全升级

本文介绍了Trail of Bits团队使用Rust语言实现的SLH-DSA后量子数字签名算法,该实现已并入RustCrypto项目。文章详细探讨了SLH-DSA的安全优势、实现特点及未来优化方向,为后量子密码迁移提供技术支撑。

我们编写了代码,代码胜出

本周,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

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计