cover_image

在量子計算時代保障 Sui 的安全

Kurt Pan XPTY
2025年04月15日 10:24

原文:https://blog.sui.io/post-quantum-computing-cryptography-security/

作者:Mysten Labs

譯者:Kurt Pan

儘管量子計算威脅著區塊鏈的密碼學安全,但開發者現在可以採取措施保護他們的 Sui 應用。



量子計算的出現對依靠密碼技術保證安全的系統帶來了嚴峻挑戰。區塊鏈依賴密碼技術來管理身份、確保交易安全及維護數據完整性,但量子計算能夠破壞傳統的密碼模型,因此區塊鏈面臨著特殊的風險。

不過,Sui 在設計時就強調密碼技術的靈活性,使其能夠適應抗量子密碼技術。此外,開發者現已能實施切實可行的過渡策略,以確保 Sui 在量子時代仍然安全、可信且具備韌性。


量子計算風險

量子計算利用如 Shor 算法等強大量子算法,對傳統密碼方法(例如 RSA 密碼和橢圓曲線密碼 [ECC])構成了重大威脅,因為這些算法能夠高效地破解這些系統。對於像 Sui 這樣的區塊鏈生態系統來說,應對此威脅是一個精心規劃、多年努力的過程。

  • https://en.wikipedia.org/wiki/Shor%27s_algorithm
  • https://x.com/kostascrypto/status/1800401504546803893

近期的技術突破,特別是谷歌的 Willow 量子電腦(運行於 105 個量子位元),標誌著邁向制造出足以破解經典密碼系統量子機器的進展正在加速。美國國家標準與技術研究院(NIST)已要求在 2035 年前過渡到抗量子密碼標準,並計劃在 2030 年前淘汰經典算法。包括 Sui 在內的區塊鏈平台必須主動準備採用抗量子技術。

  • https://blog.google/technology/research/google-willow-quantum-chip/
  • https://www.nist.gov/

這一轉變對加密尤為緊迫,因為存在「先儲存後解密」攻擊:攻擊者今天儲存密碼數據,待量子電腦成熟後再進行解密。必須立即採取行動,以確保敏感的區塊鏈數據在長遠來看依然安全。


後量子密碼背景知識

量子計算

傳統電腦使用布爾門對位元進行運算,而量子電腦則利用量子位元(qubits)結合特殊的量子門以及相當於布爾門的結構來運作。量子門可以創造出指數級狀態的疊加,從而實現平行運算;但為了將計算結果轉換成經典結果,必須執行「測量」,而測量只能對量子狀態進行採樣。量子計算正是巧妙地利用這些特性來解決非平凡問題的一種方式。

傳統密碼技術現狀

量子算法主要可以分為兩種類型,其代表為 Simon/Shor 算法和 Grover 算法:

  • 週期性尋找:尋找函數的週期性,這對計算基於群的函數的離散對數尤其有用,因為群運算中的指數運算本質上是週期性的。利用此功能可破解 RSA 及基於橢圓曲線的密碼技術。

  • 搜尋:在特定點尋找函數的原像。在密碼中,此算法被用於逆轉哈希函數和破解對稱加密演算法。

值得注意的是,週期性尋找算法提供指數級加速,而搜尋算法只提供二次加速。因此,雖然 RSA 和橢圓曲線密碼必須徹底捨棄,但對於哈希函數和對稱密鑰加密來說,將安全參數加倍(例如從 128 位安全提升至 256 位安全)通常被認為已經足夠。

總體而言,公鑰加密及簽名必須從現有如 RSA 及 ECDSA 等算法徹底轉向全新的算法。NIST 推薦了基於格的一些算法,其中主要包括:

  • ML-DSA(即 Crystals Dilithium,用於簽名)

  • ML-KEM(即 Crystals Kyber,用於公鑰加密)

  • https://csrc.nist.gov/Projects/post-quantum-cryptography/selected-algorithms

最近,如谷歌的 Willow 所帶來的技術進步引發了對量子技術如何迅速破解密碼學的憂慮。然而,雖然 Willow 使用的是 105 個量子位元,但真正破解密碼實際上需要數百萬個量子位元。

具體的時間表應遵循 NIST 的後量子時間表,該計劃在 2030 年前逐步淘汰許多經典算法,並在 2035 年全面廢除它們。


Sui 中的密碼技術

目前在 Sui 以及許多其他區塊鏈中使用的主要經典密碼原語包括:

  • 用於簽名的 ECDSA 和 EdDSA
  • 用於對象 ID、帳戶、交易摘要等的哈希函數
  • 由 zkLogin 使用的 RSA 簽名(大多數 OpenID 提供商用 RSA 來簽署 JSON 網頁令牌)
  • 用於隨機信標及簽名的 BLS12-381 曲線
  • 作為 TLS 一部分的公鑰加密或密鑰交換

簽名

Sui 過渡到後量子密碼技術需要在安全性、效率和實際部署考量之間取得平衡。NIST 在其後量子標準化過程中推薦了幾種簽名方案,包括 CRYSTALS-DilithiumFALCON 和 **SPHINCS+**。這些方案均旨在抵抗量子電腦的攻擊,以防現行 Sui 使用的基於 ECC 的簽名方案(如 Ed25519)遭到破壞。

NIST 推薦與安全假設

NIST 選定了三種主要簽名方案,它們各有權衡之處:

  • CRYSTALS-Dilithium:基於模LWE格問題的困難性,安全性高且驗證效率高,但簽名尺寸相對較大。

  • FALCON:同樣基於格理論,採用 NTRU 假設,提供緊湊的簽名及較快的驗證速度,但需要大量浮點運算以實現快速傅立葉高斯抽樣。

  • **SPHINCS+**:一種無狀態基於哈希的方案,僅依賴密碼哈希函數的安全性,但簽名尺寸明顯較大且簽名與驗證速度較慢。

下表列出了這些方案在不同安全級別下的參數(與 Ed25519 比較):

安全級別(相較於 Ed25519)簽名方案公鑰大小簽名大小驗證時間
128 位
ML-DSA
1312 B
2420 B
0.5 倍

Falcon
897 B
666 B
0.5 倍

SPHINCS+
64 B
7856 B
2.8 倍
192 位
ML-DSA
1952 B
3293 B

Falcon

SPHINCS+
48 B
16224 B
256 位
ML-DSA
2592 B
4595 B

Falcon
1793 B
1280 B

SPHINCS+
64 B
29792 B
  • https://blog.cloudflare.com/nist-post-quantum-surprise/ 對於像 Sui 這類強調高吞吐量與低延遲簽名驗證的區塊鏈來說,基於格的方案(如 Dilithium 或 FALCON)比 SPHINCS+ 更為實用。

簽名的批次驗證

Sui 的一個重要優化是實現對來自不同密鑰的多個簽名進行批次驗證,以提升效率。儘管基於 ECC 的簽名支持高效的批次驗證,但目前考慮的後量子簽名方案在批次驗證的優化上尚未成熟:

  • Dilithium 支援針對單個密鑰多消息的批次驗證加速,通過將矩陣向量運算優化為矩陣運算,可比獨立驗證提高 20% 至 50% 的速度。
    • https://eprint.iacr.org/2024/1397.pdf
  • FALCON 因其結構化隨機性,面臨批次驗證上的挑戰。
  • SPHINCS+ 由於缺乏代數結構,不易於實現批次驗證。

過渡策略

從前量子簽名方案平滑過渡到後量子簽名方案的策略包括:

  • 主動策略(於帳戶創建時採用)

    • 在生成地址時,後量子簽署一個前量子公鑰,實現從使用前量子密鑰向後量子密鑰的轉換。
    • 採用帶有前量子公鑰到期時間的 前量子-後量子 1-2 多重簽名。該多重簽名地址必須為兩個公鑰的後量子哈希值。
  • 自適應策略(針對現有地址)

    • https://x.com/kostascrypto/status/1406097524323061764
    • 執行標準的所有權轉移,將前量子地址轉換為後量子地址。
    • 在轉換過程中,從用於前量子簽名的相同種子隨機性中構造後量子密鑰對,並發布一個後量子零知識證明來證明所用種子隨機性一致。

哈希函數

NIST 的後量子標準化程序主要聚焦於公鑰密碼,但哈希函數也需特別注意,因為 Grover 算法會使其實際安全性降低:原像抗性大約降低一半,而碰撞抗性則降低約三分之一(參考相關的 BHT 算法)。因此,為了在後量子環境下確保具有 128 位的原像抗性,建議使用至少 256 位輸出之哈希函數;同時,為了提供 128 位的碰撞抗性,則建議使用 384 位輸出。

  • https://arxiv.org/pdf/quant-ph/9705002

哈希函數的兩大安全屬性

  • 第二原像抗性:給定輸入 x 以及其哈希輸出 y = H(x),應難以找到任何不同於 x 的 x′ 使 H(x′) = y。和原像抗性一樣,平均需要 2^(n–1) 次查詢才能破解;而使用量子電腦,Grover 算法則需要 O(2^(n/2)) 次查詢。因此,為了達到 128 位安全性,需要 256 位的輸出。由於認證地址需要第二原像抗性,以防攻擊者構造出不同的驗證密鑰。

  • 碰撞抗性:應難以找到兩個不同輸入 x ≠ x′ 使 H(x) = H(x′)。通用生日攻擊需要 O(2^(n/2)) 次查詢才能找到碰撞,從而使安全性降低約一半;而基於 Grover 的 BHT 算法約需要 O(2^(n/3)) 時間。Sui 中用於生成摘要的 256 位數據需擴展到 384 位,從而提供 128 位的安全性來防止系統分叉。

需注意的是,這些理論安全等級是上限,實際上可能因為哈希函數的具體結構而降低。

過渡策略

在 Sui 中,哈希函數主要用作壓縮方案來承諾公開數據,目標在於存儲優化而非隱私保護(例如交易摘要、檢查點摘要,甚至地址生成也涉及將公鑰及其他輸入壓縮成固定長度的字串)。在這種情況下,過渡較為簡單,因可以驗證前量子哈希與後量子哈希的公開原像是否一致。


公鑰加密與密鑰交換

在現代區塊鏈中,儘管加密技術不像簽名方案那麼核心,但在以下幾方面仍具有重要作用:

  • 保護交易金額與地址隱私
  • 通過加密交易防範 MEV 攻擊

對稱密鑰加密

由於 AES 等標準密碼算法基於非代數結構,它們通常僅受到相對低強度的量子攻擊(例如 Grover 算法)。標準的防護措施是將密鑰長度翻倍,以達到預期的安全等級。

公鑰加密

公鑰加密方案(例如 ElGamal 與 RSA)依賴群代數,因此能在量子多項式時間內被 Shor 算法破解。為了應對量子攻擊,已經提出基於格的方案,其依賴於帶有噪聲的代數運算。這些方案的安全性基於在高維格中尋找短向量或接近向量的量子困難性假設。

NIST 已將 CRYSTALS DILITHIUM 構造標準化作為公鑰封裝機制,也即 ML-KEM。Dilithium 在操作中使用模格,其基礎困難性假設為 Module-LWE,該假設介於普通 LWE(使用無結構格)和 Ring-LWE(使用由多項式環形成的格)之間。雖然 Ring-LWE 在公鑰及密文尺寸上具有較好表現,但也容易受到利用環結構的攻擊(例如子空間攻擊)。相對地,Module-LWE 採用環上的模,結構性較低。下表列出 ML-KEM 在不同安全等級下的參數:

安全等級公鑰大小密文大小(針對 32 字節消息)
128 位
800 B
768 B
192 位
1184 B
1088 B
256 位
1568 B
1088 B

收割攻擊

即使當前量子電腦尚未實用,攻擊者也可能先將現有的 前量子密文儲存起來,期望未來獲得強大量子電腦後進行解密。這對於需要數十年保密的極高機密數據來說是不被接受的情形。僅將公開儲存的前量子密文重新用後量子密碼密鑰密碼並不足夠,因為攻擊者可能已先行複製這些密文;這與簽名方案不同,後者可以通過層疊簽名來加強未來防止量子偽造能力。

過渡策略

  1. 對於要求短期隱私保護的密文,可以在一段時間內繼續使用前量子密碼。例如:用於防止 MEV 攻擊的加密交易及短期內公開的加密 NFT。
  2. 對於低價值或於短時間後其價值變得微不足道的數據,也可較長時間繼續使用前量子密碼,如加密新聞內容及娛樂媒體。
  3. 對於涉及高價值、高度機密數據,尤其是需要在 2030 年後持續保密的數據,則應盡快採用後量子密碼。由於收割攻擊的風險,僅發佈前量子密文再轉換為後量子密文並非安全的策略。

PQ-TLS

當前 TLS 協議是建立 Web 端點間安全通道的通用協議,它同時使用簽名和加密方案,因此也面臨上述量子攻擊的威脅。OpenSSL 3 擁有靈活的架構,允許整合由 Open Quantum Safe 提供的後量子算法,其 oqs-provider 庫實現了包括 ML-DSA、ML-KEM、Falcon 及 SPHINCS 等多種 PQ 算法。亞馬遜已針對其 KMS 採用了客製化的 PQ-TLS 實作——在等待標準化過程中,此實作支援所有運行相同軟體的端點。

  • https://github.com/open-quantum-safe/oqs-provider/
  • https://aws.amazon.com/blogs/security/round-2-post-quantum-tls-is-now-supported-in-aws-kms/

零知識證明系統

現代零知識證明系統大致可分為兩大類:

線性 PCPs

例如 Pinocchio 與 Groth16 等證明系統,可在概念上拆分為線性交互式證明(LIP)與僅用於加密的線性部分。LIP 部分具有信息論保障,因此不受量子攻擊影響;而線性加密部分則透過基於配對友好橢圓曲線的密碼雙線性映射實現,使該系統易受到量子離散對數攻擊。

  • 優點:證明短小、驗證速度快
  • 缺點:依賴特定電路的公共參考字串(CRS),且規模隨電路大小超線性增長;需要進行專門儀式以避免信任單一的 CRS 生成者
  • 量子過渡:例如 [ACL+22] 與 [JPR23] 的構造採用基於格的原語來實現線性密碼部分,以應對量子攻擊,但該領域的研究仍處於初步階段。
    • https://eprint.iacr.org/2022/941
    • https://eprint.iacr.org/2023/1858

IOPs

例如 PLONK 與 STARK 的證明系統,可在概念上拆解為:

  • 用於交換多項式的交互協議;
  • 用於壓縮多項式的密碼學多項式承諾方案;
  • 透過 Fiat-Shamir 啟發式方法將交互折疊成一個密碼哈希函數。

其中,哈希函數可經由加倍密鑰長度來達到量子抗性,但多項式承諾部分則需更細緻的設計。

  • 優點:根據具體多項式承諾方案,有可能達成透明或電路獨立的 CRS
  • 缺點:證明體積較大、驗證速度較慢
  • 量子過渡:基於群的多項式承諾方案(例如 [KZG10])易受到量子離散對數攻擊;而基於哈希函數的承諾方案(例如 FRI 及其變體)則可能實現後量子安全。

(zk)SNARKs 的理想目標

  1. 實現電路獨立的設置以避免昂貴的儀式
  2. 快速驗證(O(λ)),證明過程時間為 O(|C| log(|C|)·poly(λ)),證明體積為 O(λ)
  3. 能夠抵抗量子攻擊

目前我們尚無任何構造能同時滿足上述三項要求。

生產系統

現今生產環境下的零知識證明系統包括 Polygon 的 Plonky3、StarkWare 的 STARKs(以及由 Mysten Labs 密碼學家共同開發的 Winterfell)、Succinct SP1 以及 Nexus zkVM,這些系統在效率、可擴展性及安全性方面各有所長。

  • https://github.com/facebook/winterfell

從安全角度看,StarkWare 與 Plonky3 完全依賴哈希函數,因此能夠平順過渡至後量子安全;SP1 也採用後量子安全原語,但其可選的最終遞歸部分轉換為緊湊型 Groth16 證明仍然不具備後量子抗性;Nexus zkVM 由於以往依賴類似 Nova/Hypernova 的基於累積的方案而遺存使用橢圓曲線,不過最近已轉向採用 Circle STARKs。

  • https://starkware.co/blog/quantum-computing-is-starknet-prepared/
  • https://github.com/Plonky3/Plonky3/blob/ac78957680f65455009b6be5f5c8fc99dfea26e9/examples/src/proofs.rs
  • https://github.com/nexus-xyz/nexus-zkvm/tree/main/sdk

zkLogin

Sui 的 zkLogin 在 OIDC JSON 網頁令牌(JWT)上使用 Groth16 證明,而這些 JWT 又由 RSA 簽名保障安全。Groth16 證明與 RSA 簽名均容易受到量子攻擊,一旦其中任一環節被攻破,zkLogin 的安全性就會遭到破壞。

  • https://sui.io/zklogin

對於零知識證明部分,我們必須轉換至後量子系統,前文中已討論數種可供選擇的方案。除了需要具備後量子安全性外,還須考量使用者體驗:要求證明生成器低內存、快速生成,以及驗證端能夠高效驗證。至於 JWT 簽名,將由 OIDC 標準化流程決定。

  • https://link.springer.com/chapter/10.1007/978-3-031-20974-1_20

zkLogin 過渡策略:

zkLogin 地址由包括使用者 Web2 ID 以及嚴格保密的 salt 值等多個欄位所構成,目前為 256 位,短期內僅依賴第二原像抗性,因此可繼續視作後量子安全。

  • 我們需要調整至 PQ-JWT 及 PQ-zkSNARK,同時保持地址不變。
  • zkLogin 證明電路內部的某些哈希需要具備碰撞抗性,因此應將其輸出擴展至 384 位以達成量子安全。

如 DKG 等協議

目前常見的隨機信標多採用基於門限 BLS 簽名的方式,此方式利用橢圓曲線,因此容易遭受量子離散對數攻擊。相關的 DKG 協議亦大量使用橢圓曲線運算。為了降低量子攻擊風險,研究人員已設計出基於對稱及格原語的隨機信標,例如 HashRand、基於格的 PVSS 及 HERB。從 前量子過渡到後量子雖需要改變 DKG 協議,但由於此協議屬於內部實作,可在不改變鏈上 API 前提下隨時進行調整。

  • https://eprint.iacr.org/2023/1755.pdf
  • https://eprint.iacr.org/2021/1397.pdf
  • https://eprint.iacr.org/2019/1320.pdf

應用層用例

許多基於 Sui 架構的智慧合約在應用層中使用上述密碼原語。舉例來說,原生橋接及時間鎖密碼等預言機應用,這些應用都需要過渡至前述類似的後量子替代方案。


其他 Web3 努力

其他 Web3 基金會或公司也正在進行或規劃推出後量子產品:

  • 以太坊、Algorand 與 Cardano 都正在積極規劃升級以實現抗量子安全。
    • https://ethresear.ch/t/tasklist-for-post-quantum-eth/21296
    • https://algorand.co/technology/post-quantum
    • https://www.mitrade.com/insights/news/live-news/article-3-655119-20250222
  • Solana 最近推出一項量子安全功能——Winternitz Vault,採用基於哈希的一次性簽名來保護資金免受未來量子威脅。類似功能亦可以在 Move 語言中實現。
    • https://www.onesafe.io/blog/solana-quantum-resistant-winternitz-vault