原文:https://blog.sui.io/post-quantum-computing-cryptography-security/
作者:Mysten Labs
譯者:Kurt Pan
儘管量子計算威脅著區塊鏈的密碼學安全,但開發者現在可以採取措施保護他們的 Sui 應用。

量子計算的出現對依靠密碼技術保證安全的系統帶來了嚴峻挑戰。區塊鏈依賴密碼技術來管理身份、確保交易安全及維護數據完整性,但量子計算能夠破壞傳統的密碼模型,因此區塊鏈面臨著特殊的風險。
不過,Sui 在設計時就強調密碼技術的靈活性,使其能夠適應抗量子密碼技術。此外,開發者現已能實施切實可行的過渡策略,以確保 Sui 在量子時代仍然安全、可信且具備韌性。
量子計算利用如 Shor 算法等強大量子算法,對傳統密碼方法(例如 RSA 密碼和橢圓曲線密碼 [ECC])構成了重大威脅,因為這些算法能夠高效地破解這些系統。對於像 Sui 這樣的區塊鏈生態系統來說,應對此威脅是一個精心規劃、多年努力的過程。
近期的技術突破,特別是谷歌的 Willow 量子電腦(運行於 105 個量子位元),標誌著邁向制造出足以破解經典密碼系統量子機器的進展正在加速。美國國家標準與技術研究院(NIST)已要求在 2035 年前過渡到抗量子密碼標準,並計劃在 2030 年前淘汰經典算法。包括 Sui 在內的區塊鏈平台必須主動準備採用抗量子技術。
這一轉變對加密尤為緊迫,因為存在「先儲存後解密」攻擊:攻擊者今天儲存密碼數據,待量子電腦成熟後再進行解密。必須立即採取行動,以確保敏感的區塊鏈數據在長遠來看依然安全。
傳統電腦使用布爾門對位元進行運算,而量子電腦則利用量子位元(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 過渡到後量子密碼技術需要在安全性、效率和實際部署考量之間取得平衡。NIST 在其後量子標準化過程中推薦了幾種簽名方案,包括 CRYSTALS-Dilithium、FALCON 和 **SPHINCS+**。這些方案均旨在抵抗量子電腦的攻擊,以防現行 Sui 使用的基於 ECC 的簽名方案(如 Ed25519)遭到破壞。
NIST 選定了三種主要簽名方案,它們各有權衡之處:
CRYSTALS-Dilithium:基於模LWE格問題的困難性,安全性高且驗證效率高,但簽名尺寸相對較大。
FALCON:同樣基於格理論,採用 NTRU 假設,提供緊湊的簽名及較快的驗證速度,但需要大量浮點運算以實現快速傅立葉高斯抽樣。
**SPHINCS+**:一種無狀態基於哈希的方案,僅依賴密碼哈希函數的安全性,但簽名尺寸明顯較大且簽名與驗證速度較慢。
下表列出了這些方案在不同安全級別下的參數(與 Ed25519 比較):
| 安全級別(相較於 Ed25519) | 簽名方案 | 公鑰大小 | 簽名大小 | 驗證時間 |
|---|---|---|---|---|
| 128 位 | ||||
| 192 位 | ||||
| 256 位 | ||||
Sui 的一個重要優化是實現對來自不同密鑰的多個簽名進行批次驗證,以提升效率。儘管基於 ECC 的簽名支持高效的批次驗證,但目前考慮的後量子簽名方案在批次驗證的優化上尚未成熟:
從前量子簽名方案平滑過渡到後量子簽名方案的策略包括:
主動策略(於帳戶創建時採用):
自適應策略(針對現有地址):
NIST 的後量子標準化程序主要聚焦於公鑰密碼,但哈希函數也需特別注意,因為 Grover 算法會使其實際安全性降低:原像抗性大約降低一半,而碰撞抗性則降低約三分之一(參考相關的 BHT 算法)。因此,為了在後量子環境下確保具有 128 位的原像抗性,建議使用至少 256 位輸出之哈希函數;同時,為了提供 128 位的碰撞抗性,則建議使用 384 位輸出。
第二原像抗性:給定輸入 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 中,哈希函數主要用作壓縮方案來承諾公開數據,目標在於存儲優化而非隱私保護(例如交易摘要、檢查點摘要,甚至地址生成也涉及將公鑰及其他輸入壓縮成固定長度的字串)。在這種情況下,過渡較為簡單,因可以驗證前量子哈希與後量子哈希的公開原像是否一致。
在現代區塊鏈中,儘管加密技術不像簽名方案那麼核心,但在以下幾方面仍具有重要作用:
由於 AES 等標準密碼算法基於非代數結構,它們通常僅受到相對低強度的量子攻擊(例如 Grover 算法)。標準的防護措施是將密鑰長度翻倍,以達到預期的安全等級。
公鑰加密方案(例如 ElGamal 與 RSA)依賴群代數,因此能在量子多項式時間內被 Shor 算法破解。為了應對量子攻擊,已經提出基於格的方案,其依賴於帶有噪聲的代數運算。這些方案的安全性基於在高維格中尋找短向量或接近向量的量子困難性假設。
NIST 已將 CRYSTALS DILITHIUM 構造標準化作為公鑰封裝機制,也即 ML-KEM。Dilithium 在操作中使用模格,其基礎困難性假設為 Module-LWE,該假設介於普通 LWE(使用無結構格)和 Ring-LWE(使用由多項式環形成的格)之間。雖然 Ring-LWE 在公鑰及密文尺寸上具有較好表現,但也容易受到利用環結構的攻擊(例如子空間攻擊)。相對地,Module-LWE 採用環上的模,結構性較低。下表列出 ML-KEM 在不同安全等級下的參數:
| 安全等級 | 公鑰大小 | 密文大小(針對 32 字節消息) |
|---|---|---|
即使當前量子電腦尚未實用,攻擊者也可能先將現有的 前量子密文儲存起來,期望未來獲得強大量子電腦後進行解密。這對於需要數十年保密的極高機密數據來說是不被接受的情形。僅將公開儲存的前量子密文重新用後量子密碼密鑰密碼並不足夠,因為攻擊者可能已先行複製這些密文;這與簽名方案不同,後者可以通過層疊簽名來加強未來防止量子偽造能力。
當前 TLS 協議是建立 Web 端點間安全通道的通用協議,它同時使用簽名和加密方案,因此也面臨上述量子攻擊的威脅。OpenSSL 3 擁有靈活的架構,允許整合由 Open Quantum Safe 提供的後量子算法,其 oqs-provider 庫實現了包括 ML-DSA、ML-KEM、Falcon 及 SPHINCS 等多種 PQ 算法。亞馬遜已針對其 KMS 採用了客製化的 PQ-TLS 實作——在等待標準化過程中,此實作支援所有運行相同軟體的端點。
現代零知識證明系統大致可分為兩大類:
例如 Pinocchio 與 Groth16 等證明系統,可在概念上拆分為線性交互式證明(LIP)與僅用於加密的線性部分。LIP 部分具有信息論保障,因此不受量子攻擊影響;而線性加密部分則透過基於配對友好橢圓曲線的密碼雙線性映射實現,使該系統易受到量子離散對數攻擊。
例如 PLONK 與 STARK 的證明系統,可在概念上拆解為:
其中,哈希函數可經由加倍密鑰長度來達到量子抗性,但多項式承諾部分則需更細緻的設計。
目前我們尚無任何構造能同時滿足上述三項要求。
現今生產環境下的零知識證明系統包括 Polygon 的 Plonky3、StarkWare 的 STARKs(以及由 Mysten Labs 密碼學家共同開發的 Winterfell)、Succinct SP1 以及 Nexus zkVM,這些系統在效率、可擴展性及安全性方面各有所長。
從安全角度看,StarkWare 與 Plonky3 完全依賴哈希函數,因此能夠平順過渡至後量子安全;SP1 也採用後量子安全原語,但其可選的最終遞歸部分轉換為緊湊型 Groth16 證明仍然不具備後量子抗性;Nexus zkVM 由於以往依賴類似 Nova/Hypernova 的基於累積的方案而遺存使用橢圓曲線,不過最近已轉向採用 Circle STARKs。
Sui 的 zkLogin 在 OIDC JSON 網頁令牌(JWT)上使用 Groth16 證明,而這些 JWT 又由 RSA 簽名保障安全。Groth16 證明與 RSA 簽名均容易受到量子攻擊,一旦其中任一環節被攻破,zkLogin 的安全性就會遭到破壞。
對於零知識證明部分,我們必須轉換至後量子系統,前文中已討論數種可供選擇的方案。除了需要具備後量子安全性外,還須考量使用者體驗:要求證明生成器低內存、快速生成,以及驗證端能夠高效驗證。至於 JWT 簽名,將由 OIDC 標準化流程決定。
zkLogin 過渡策略:
zkLogin 地址由包括使用者 Web2 ID 以及嚴格保密的 salt 值等多個欄位所構成,目前為 256 位,短期內僅依賴第二原像抗性,因此可繼續視作後量子安全。
目前常見的隨機信標多採用基於門限 BLS 簽名的方式,此方式利用橢圓曲線,因此容易遭受量子離散對數攻擊。相關的 DKG 協議亦大量使用橢圓曲線運算。為了降低量子攻擊風險,研究人員已設計出基於對稱及格原語的隨機信標,例如 HashRand、基於格的 PVSS 及 HERB。從 前量子過渡到後量子雖需要改變 DKG 協議,但由於此協議屬於內部實作,可在不改變鏈上 API 前提下隨時進行調整。
許多基於 Sui 架構的智慧合約在應用層中使用上述密碼原語。舉例來說,原生橋接及時間鎖密碼等預言機應用,這些應用都需要過渡至前述類似的後量子替代方案。
其他 Web3 基金會或公司也正在進行或規劃推出後量子產品: