微软宣布更新SymCrypt加密库,新增对PQC算法的支持

转载链接:https://mp.weixin.qq.com/s/aWXzPTWhxFpJVP1s0iwAtw

2024年9月9日,微软(Microsoft)在其博客中宣布,已开始在其开源核心加密库SymCrypt中引入后量子算法的支持。目前,微软已经发布了包含ML-KEMXMSS算法的SymCrypt更新,并计划在接下来的几个月内推出其他算法。微软表示,这是他们为迎接量子时代并帮助客户防范未来量子威胁所迈出的重要一步。

SymCrypt是什么?

SymCrypt是Microsoft的主要加密库,用于Azure、Microsoft 365、Windows 11、Windows 10、Windows Server 2025、Windows Server 2022、Azure Stack HCI和 Azure Linux等产品和服务。这些产品和服务使用SymCrypt为电子邮件安全、云存储、Web浏览、远程访问和设备管理等场景提供加密安全。

SymCrypt通常使用对称和非对称算法为加密、解密、签名、验证、哈希和密钥交换提供一致的接口。该库于2006年开始提供操作和算法,开发人员可以使用它们在他们创建的应用中安全地实现安全加密、解密、签名、验证、散列和密钥交换。它旨在实现跨多个平台和架构的快速、安全和可移植性。在Windows操作系统中,SymCrypt加密库嵌入在经过多次FIPS 140验证的加密基元库 (bcryptprimitives.dll和cng.sys) 。SymCrypt还作为基于Linux的操作系统的加密模块经过了FIPS 140验证。

PQC算法

2024年8月13日,NIST 发布首批 3 个最终确定的后量子加密标准:

  • FIPS 203,基于模块晶格的密钥封装机制标准
  • FIPS 204,基于模块点阵的数字签名标准
  • FIPS 205,基于哈希的无状态数字签名标准

其中:

  • FIPS 203,旨在作为通用加密的主要标准。它的优点之一是双方可以轻松交换的相对较小的加密密钥,以及它的运行速度。该标准基于 CRYSTALS-Kyber 算法,该算法已更名为 ML-KEM,是 Module-Lattice-Based Key-Encapsulation Mechanism 的缩写。
  • FIPS 204,旨在作为保护数字签名的主要标准。该标准使用 CRYSTALS-Dilithium 算法,该算法已更名为 ML-DSA,即 Module-Lattice-Based Digital Signature Algorithm 的缩写。
  • FIPS 205,也是为数字签名设计的。该标准采用 Sphincs+ 算法,该算法已更名为 SLH-DSA,即无状态基于哈希的数字签名算法的缩写。该标准基于与 ML-DSA 不同的数学方法,旨在作为 ML-DSA 被证明易受攻击的备用方法。

将PQC标准引入SymCrypt

微软表示,随着NIST发布首批后量子加密标准,首先已经将ML-KEM(FIPS 203)算法引入 SymCrypt

在接下来的几个月内,微软还将集成基于格的数字签名方案 ML-DSA(FIPS 204)和基于无状态哈希的签名方案 SLH-DSA(FIPS 205)。

此外,NIST于2020年发布了SP 800-208指南,推荐具有状态哈希的签名方案,这些方案能够抵御量子计算威胁。NIST指出,这类算法并不适用于所有场景,因为其安全性依赖于对状态的严格管理,但在固件签名等特定应用中极为有效。

根据该建议,微软已将扩展的Merkle签名方案 (XMSS) 添加至SymCrypt,并计划在不久后引入 Leighton-Micali 签名方案(LMS)及其他算法。

“PQC算法【抗量子密码算法】经过NIST精心挑选,具备高安全性、高性能以及良好的兼容性。这些算法经过优化,提升了速度和效率,并通过了严格的安全性和稳健性测试。多个行业标准组织正在积极推动这些算法的应用,以确保其兼容现有标准和协议,如传输层安全性(TLS)、安全套接字外壳(SSH)和互联网协议安全性(IPSec)。同时,它们还能够与经典算法,如RSA、椭圆曲线Diffie-Hellman(ECDH)和椭圆曲线数字签名算法(ECDSA)在混合模式下共存。”微软强调,随着PQC标准的不断发展,他们将进一步将其他算法引入SymCrypt,以确保合规性、安全性和兼容性。

在Windows平台上,建议通过Cryptography API: Next Generation (CNG)来使用SymCrypt,而在Linux平台上,用户可以选择直接调用SymCrypt API,或通过OpenSSL的SymCrypt引擎(SCOSSL)或SymCrypt Rust Wrapper来使用。

在接下来的几个月内,这些接口将增加对PQC算法的支持,使客户能够在各自的环境和应用程序中进行测试和实验。

使用PQC算法保护TLS通信是一个快速发展的领域。虽然NIST算法的最终确定标志着这一领域的重大进展,但要实现广泛应用,仍需完成量子安全密钥交换和量子安全签名认证这两个关键标准。

微软表示,他们正在与IETF密切合作,开发并标准化这些关键标准,适用于TLS和其他IETF协议。

随着这些标准的最终敲定,微软将在Windows TLS堆栈(Schannel)和Linux上的OpenSSL SymCrypt引擎中提供这些标准。

此外,微软首席产品经理Aabha Thipsay强调:“PQC 算法为密码学的未来提供了一种有希望的解决方案,但它们也有一些缺点。例如,与传统算法相比,这些算法通常需要更大的密钥大小、更长的计算时间和更多的带宽。因此,在实际应用中实施PQC需要仔细优化并与现有系统和标准集成。

未来展望

微软表示,PQC算法仍处于较新的阶段,因此不应将第一代PQC算法视为最终解决方案,而应把它视作一个不断发展的领域。

这突显了“加密敏捷性”的重要性,即设计能够适应不同算法的解决方案,或随着PQC标准的发展而升级到未来算法。

微软提倡构建加密敏捷的解决方案,并推广使用混合PQC操作模式的解决方案。“随着PQC算法和标准的成熟,我们预计将逐步转向纯PQC部署。

“为底层加密引擎添加后量子算法支持是迈向量子安全的第一步。随着我们在更多系统组件和应用程序中启用PQC支持,我们将能够实现受PQC保护的端到端服务场景,并让客户在其环境和应用程序中进行试验和应用。”

同时,微软表示,向PQC的过渡是一个复杂而长期的过程,需要认真规划和关注。“我们建议组织首先创建正在使用的加密资产清单,以更好地了解现状并制定基于风险的PQC过渡计划。”

请登录后发表评论

    没有回复内容