我們很高興地宣布,AWS-LC FIPS 3.0 已被納入美國國家標準技術研究院 (NIST) 的密碼模組驗證計畫 (CMVP) 的處理清單中。這次最新的 AWS-LC 驗證引入了模組格基密鑰封裝機制 (ML-KEM),這是一種新的 FIPS 標準化後量子密碼算法。這是增強我們最敏感客戶工作流程長期機密性的重要一步,包括美國聯邦政府的通信。
這次驗證使 AWS LibCrypto (AWS-LC) 成為首個在 FIPS 模組中提供後量子算法支持的開源密碼模組。需要 FIPS 驗證的密碼模組的組織,例如那些在 FedRAMP、FISMA、HIPAA 和其他聯邦合規框架下運營的組織,現在可以在 AWS-LC 中使用這些算法。
這項公告是 AWS-LC 長期承諾的一部分,即持續驗證以獲得新的 FIPS 140-3 證書。AWS-LC 在 2023 年 10 月獲得了其首個 AWS-LC-FIPS 1.0 證書。隨後的版本 AWS-LC-FIPS 2.0 在 2024 年 10 月獲得認證。在這篇文章中,我們討論了我們的 FIPS 驗證後量子密碼算法 ML-KEM,AWS-LC FIPS 2.0 和 3.0 中現有算法的性能改進,以及 3.0 版本新增的算法支持。我們還討論了如何使用新算法實現混合後量子密碼套件,以及今天可以設置的配置選項來幫助抵禦未來的威脅。
FIPS 後量子密碼學
大型量子計算機對我們今天在公鑰密碼學下保護的數據的長期機密性構成威脅。在所謂的「現在記錄,後來解密」攻擊中,對手會記錄當前的互聯網流量,捕獲密鑰交換和加密通信。然後,當一台足夠強大的量子計算機可用時,對手可以通過解決基礎的難題來追溯性地恢復共享秘密和加密密鑰。
ML-KEM 是 NIST 正在標準化的新密鑰封裝機制之一,旨在保護公鑰密碼學的使用免受量子威脅。就像 RSA、Diffie-Hellman (DH) 或橢圓曲線 Diffie-Hellman (ECDH) 密鑰交換一樣,它通過在兩方之間建立共享秘密來工作。然而,與 RSA 或 DH 不同,ML-KEM 的密鑰交換基於一個被認為對量子計算機難以解決的基礎問題。
今天,我們還不知道如何製造這樣一台大型量子計算機。在製造這樣一台計算機之前,需要大量的科學研究。然而,您可以通過將後量子算法(如 ML-KEM)引入您的密鑰交換協議來減輕「現在記錄,後來解密」攻擊的風險。我們建議採用混合密鑰交換方法,將傳統密鑰交換方法(如 ECDH)與 ML-KEM 結合起來,以對抗當前和未來的對手。在這篇文章的後面,我們將向您展示如何在今天實施混合後量子密碼套件,以保護未來的威脅。
AWS-LC FIPS 3.0 包括 ML-KEM 算法的所有三個提供的參數集:ML-KEM-512、ML-KEM-768 和 ML-KEM-1024。這三個參數集提供了不同級別的安全強度,如 NIST 所規定(參見 FIPS 203 [9, Sect. 5.6] 或後量子安全評估標準)。ML-KEM-768 建議用於通用用途,ML-KEM-1024 專為需要更高安全級別或遵循明確指令(如商業國家安全算法套件 (CNSA) 2.0) 的應用而設計,適用於國家安全系統的擁有者和運營者。
算法 | NIST 安全類別 | 公鑰 (B) | 私鑰 (B) | 密文 (B) |
---|---|---|---|---|
ML-KEM-512 | 1 | 800 | 1632 | 768 |
ML-KEM-768 | 3 | 1184 | 2400 | 1088 |
ML-KEM-1024 | 5 | 1568 | 3168 | 1568 |
表 1. ML-KEM 的三個參數集的安全強度類別、公鑰、私鑰和密文大小(以字節為單位)
與 s2n-tls 的整合
ML-KEM 現在可以通過混合密鑰交換在我們的開源 TLS 實現 s2n-tls 中使用,用於 TLS 1.3(draft-ietf-tls-hybrid-design)。我們還為 TLS 1.3(draft-kwiatkowski-tls-ecdhe-mlkem)添加了混合 ECDHE-ML-KEM 密鑰協議的支持,以及 Curve x25519 和 ML-KEM-768 的新密鑰共享標識符。
在 FIPS 140 批准的模式下進行混合密鑰建立時,一個組件算法必須是 NIST 批准的機制(詳見 NIST 後量子常見問題)。隨著 ML-KEM 被添加到 NIST 批准的算法列表中,您現在可以在混合密碼套件中包括非 FIPS 標準化的算法,如 Curve x25519。通過配置您的 TLS 密碼套件以使用 ML-KEM-768 和 x25519(draft-kwiatkowski-tls-ecdhe-mlkem),您可以首次在 FIPS 驗證的密碼模組中使用 x25519。這可以通過 AWS-LC 提供的高度優化和功能驗證的 Curve x25519 實現來促進更高效的密鑰交換。
新算法和新實現
我們對 AWS-LC FIPS 的持續驗證承諾的兩個重要部分是將新算法作為批准的密碼服務納入其中,以及對現有算法的新實現,這些實現提供了性能改進和功能正確性。
新算法
我們致力於持續驗證新算法,以便建設者可以通過包括批准的密碼算法的最新修訂版和支持新原語來採用 FIPS 驗證的密碼學。驗證新算法的最新標準化修訂有助於確保我們的密碼工具包提供高保證的實現,達到全球公認的標準合規性。
在 AWS-LC FIPS 3.0 中,我們將安全哈希算法標準 SHA-3 的最新成員添加到模組中。SHA-3 家族是一種密碼原語,用於支持各種算法。在 AWS-LC FIPS 3.0 中,我們將 ECDSA 和 RSA 簽名生成和驗證與 SHA-3 以及後量子算法 ML-KEM 集成。在 AWS-LC 中,ML-KEM 調用我們的 FIPS 驗證的 SHA-3 函數,這些函數提供了 SHA-3 和 SHAKE 哈希程序的優化實現。這意味著隨著我們不斷完善和優化我們的 AWS-LC SHA-3 實現,我們將繼續看到使用此原語的算法(如 ML-KEM)的性能提升。
EdDSA 是一種基於橢圓曲線的數字簽名算法,使用曲線 Ed25519。它被添加到 NIST 更新的數字簽名標準 (DSS),FIPS 186-5。這種簽名算法現在作為 AWS-LC 3.0 FIPS 模組的一部分提供。對於密鑰協議,單步密鑰導出函數 (SSKDF) 用於從共享秘密中導出密鑰(SP 800-56Cr2),可在基於摘要和基於 HMAC 的規範中使用。例如,可以在使用 ECDH 時從 KMS 生成的共享秘密中導出密鑰。可以使用基於 HMAC 的計數器模式的密鑰導出函數 (KBKDF)—SP 800-108r1—從該原始密鑰中導出進一步的密鑰。
性能改進
我們專注於提高在傳輸協議(如 TLS 協議)中廣泛使用的公鑰密碼算法的性能。例如,在 Graviton2 上,位長 2048 的 RSA 簽名速度提高了 81%,3072 的提高了 33%,4096 的提高了 94%,並增加了主要操作的功能正確性形式驗證。使用英特爾的 AVX512 整數融合乘加 (IFMA) 指令(從第 3 代英特爾至強開始提供),英特爾開發人員貢獻了一個使用這些指令和寬 AVX512 寄存器的 RSA 實現,其速度是現有實現的兩倍。
我們將 EdDSA 簽名的吞吐量平均提高了 108%,驗證提高了 37%。這個平均值是在三個環境中取得的:Graviton2、Graviton3 和英特爾 Ice Lake(英特爾至強白金 8375C CPU)。這種性能提升是通過集成 s2n-bignum 庫中每個目標的核心操作的匯編實現實現的。除此之外,核心操作的謹慎恆定時間實現是如何證明每一個都功能正確的原因。
在接下來的圖 1 中,我們強調了與 AWS-LC FIPS 1.0 相比,2.0 和 3.0 版本中的性能改進百分比。2.0 中實現的改進在 3.0 中得以維持,並未在圖中重複。圖中還包括對稱密鑰的改進。在 AES-256-GCM 中,這在 TLS 中廣泛用於在會話建立後加密通信,平均在英特爾 Ice Lake 和 Graviton4 上加密 16 KB 消息的速度提高了 115%。在 AES-256-XTS 中,這用於磁盤存儲,加密 256 B 輸入在英特爾 Ice Lake 上快了 360%,在 Graviton4 上快了 90%。

圖 1:AWS-LC FIPS 2.0 和 3.0 版本中的性能改進圖
如何在今天使用 ML-KEM
您可以配置 s2n-tls 和 AWS-LC TLS 庫,以啟用 ML-KEM 的混合後量子安全性,方法是啟用 X25519MLKEM768 和 SecP256r1MLKEM768 進行密鑰交換。我們已經在 AWS-LC libssl 和 s2n-tls 中集成了這兩種混合算法的支持,使用每個庫現有的 TLS 配置 API。要協商 TLS 連接,請使用以下命令之一:
AWS-LC 客戶端 CLI 示例
./aws-lc/build/tool/bssl s_client -curves X25519MLKEM768:SecP256r1MLKEM768:X25519 -connect <hostname>:<port>
S2N-tls 客戶端 CLI 示例
./s2n/build/bin/s2nc -c default_pq -i <hostname> <port>
結論
在這篇文章中,我們描述了通過我們的開源密碼庫 AWS-LC 提供給我們的客戶和產品的密碼學的持續開發、優化和驗證。我們介紹了 FIPS 驗證的後量子算法的添加,並提供了配置選項,以便今天開始使用這些算法來抵禦未來的威脅。
AWS-LC-FIPS 3.0 是我們承諾的一部分,即在我們添加新的算法到 FIPS 範圍內時,並在現有算法上提高性能和形式驗證標準時,持續驗證 AWS-LC 的新版本。通過這一承諾,我們繼續支持更廣泛的開發者社區,包括 Rust、Java 和 Python 開發者,通過提供對 Rust 的 AWS Libcrypto (aws-lc-rs) 和 ACCP 2.0 庫的集成。我們促進了對 CPython 的集成,以便您可以基於 AWS-LC 構建並將其用於 Python 標準庫中的所有密碼學。我們啟用了 rustls 提供 FIPS 支持。
如果您對這篇文章有反饋,請在下方的評論部分提交評論。如果您對這篇文章有疑問,請聯繫 AWS 支持。
新聞來源
本文由 AI 台灣 使用 AI 編撰,內容僅供參考,請自行進行事實查核。加入 AI TAIWAN Google News,隨時掌握最新 AI 資訊!