如何在量子计算时代保障 Sui 的安全性
量子计算的出现对依赖加密机制的系统构成了重大威胁。区块链依赖加密技术来进行身份管理、安全交易和数据完整性保护,而量子计算具备打破传统加密模型的能力,因此区块链面临特别严峻的挑战。
然而,Sui 天生具备“加密灵活性”,可以适配抗量子攻击的加密算法。此外,开发者现在就可以实施实际可行的过渡策略,以确保 Sui 在量子时代依然安全、可信且具备弹性。
量子计算带来的风险
量子计算通过使用如 Shor 算法这类强大的量子算法,对传统加密方法(如 RSA 加密和椭圆曲线加密 ECC)构成了巨大威胁,这些算法可以高效破解现有的加密系统。对像 Sui 这样的区块链生态来说,应对这一威胁是一项需要多年精心规划的长期任务。
近期的突破,如谷歌的 Willow 量子计算机成功运行 105 个量子比特,表明实现足以攻破经典加密系统的量子计算机正在快速逼近。美国国家标准与技术研究院(NIST)已要求在 2035 年前全面过渡到抗量子加密标准,并计划在 2030 年弃用现有经典加密算法。包括 Sui 在内的区块链平台必须积极准备,提前部署抗量子加密技术。
这项过渡对加密领域尤为紧迫,因为存在“先存储、后破解”(store now, decrypt later)的攻击方式 — — 攻击者会先收集加密数据,待未来量子计算成熟后再尝试破解。因此,立即采取措施,以确保区块链中的敏感数据能在长期内保持安全,是当前的当务之急。
后量子加密背景
什么是量子计算
传统计算机使用布尔逻辑门操作比特,而量子计算机使用量子比特(qubit),结合特殊的量子门和布尔门进行计算。量子门允许创建指数级的叠加态,并能并行处理这些状态。但最终结果必须通过“测量”转化为经典值,这个过程只能对叠加态进行抽样。量子计算的精妙之处就在于,它能利用这些特性来高效求解许多传统计算难以处理的问题。
经典加密体系现状
目前最具代表性的两类量子算法为 Simon/Shor 算法和 Grover 算法:
- 周期发现(Shor 算法):寻找函数的周期性。这在计算基于群的函数的离散对数时尤其有用。这是因为群的幂运算本身就是一个周期函数。此功能的密码学相关形式可以破解 RSA 和基于椭圆曲线的密码体制。
- 搜索算法(Grover 算法):寻找特定输出对应的输入,该算法的密码学相关形式包括对哈希函数求逆以及破解对称加密。
值得注意的是,Shor 算法带来了指数级的速度提升,而 Grover 算法则是平方级的提速。因此,虽然我们必须完全放弃 RSA 和 ECC,但对称加密和哈希函数只需将安全参数从 128 位提升至 256 位即可抵御量子威胁。
总体而言,公钥加密和签名算法必须从现有的算法(如 RSA 和 ECDSA)转向完全不同的新算法。NIST 推荐了以下几种基于格(lattice)的算法(以及其他几种):
- ML-DSA,也称为 Crystals-Dilithium,用于数字签名
- ML-KEM,也称为 Crystals-Kyber,用于公钥加密
虽然谷歌 Willow 的问世引发了对量子加速进展可能迅速攻破加密系统的担忧,但现实是,破解 RSA 等仍需要数百万个稳定量子比特。目前 Willow 的 105 个量子比特尚远远不够。
我们应关注的关键时间线是 NIST 的后量子加密标准时间表 — — 2030 年弃用经典算法,2035 年全面淘汰。
Sui 加密体系
当前 Sui 和许多区块链使用的主流加密方法包括:
- 签名算法:ECDSA、EdDSA
- 哈希函数:用于对象 ID、账户、交易摘要等
- RSA 签名:用于 zkLogin(因为多数 OpenID 提供商使用 RSA 签名 JSON Web Tokens)
- BLS12–381 曲线:用于随机性信标和签名
- 公钥加密/密钥交换:用于 TLS 安全通信
签名算法
Sui 向后量子密码学的过渡,需要在安全性、效率和实际部署考量之间做好平衡。NIST 在其后量子密码标准化过程中推荐了几种签名方案,包括 CRYSTALS-Dilithium、FALCON 和 SPHINCS+。这些方案专为抵御量子计算机攻击而设计,因为量子攻击会威胁到目前在 Sui 中使用的基于 ECC 的签名方案(如 Ed25519)的安全性。
NIST 推荐与安全假设:NIST 选出的三种主要签名方案各具特点:
- CRYSTALS-Dilithium:基于 Module-LWE 格问题的困难性,提供强大的安全性和高效的验证速度,但签名规格相对较大。
- FALCON:同样基于格,使用 NTRU 假设,具有签名小、验证快的优势,但需要复杂的浮点运算来实现快速傅里叶高斯采样。
- SPHINCS+:一种无状态的哈希基础方案,仅依赖密码哈希函数的安全性,但签名规格非常大,签名和验证速度都较慢。
以下是这几种方案在不同安全级别下的参数:
对像 Sui 这样的区块链而言,优先考虑高吞吐和低延迟签名验证,因此基于格的方案(如 Dilithium 或 FALCON)相比 SPHINCS+ 更为实用。
签名的批量验证(Batch Verification):在 Sui 中,一个重要的优化是对来自不同密钥的多个签名进行批量验证,以提高效率。虽然基于 ECC 的签名支持高效的批量验证,但目前所考虑的抗量子(PQ)签名方案在这方面还缺乏同等级别的优化:
- Dilithium:支持一种“表面层级”的批量验证加速,适用于“单一密钥 + 多条消息”的场景,主要通过将矩阵-向量运算优化为矩阵-矩阵运算。通常相比单独验证每条签名可提升 20%-50% 的速度。
- FALCON:由于其采用结构化的随机性,实现批量验证存在困难。
- SPHINCS+:由于缺乏代数结构,不支持有效的批量验证。
过渡策略:为了平滑地从前量子(PreQ)签名系统过渡到后量子(PQ)签名系统,可采取以下几种策略:
主动策略(在账户创建时实施):
- 在生成地址时,用 PQ 签名对 PreQ 公钥进行签名,之后再从使用 PreQ 公钥过渡到 PQ 密钥。
- 使用 PreQ-PQ 的“2选1”多签(1-out-of-2 multisig)方案,并为 PreQ 密钥设置过期时间。多签地址必须是两个公钥的 PQ 哈希值。
适配已有账户的策略:
- 将现有的 PreQ 地址标准过渡为 PQ 地址。
- 在过渡时,从用于 PreQ 签名的同一随机种子构建 PQ 密钥对,并发布一个 PQ ZK 证明,证明两者的种子一致。
哈希函数
虽然 NIST 的后量子标准化进程主要聚焦在公钥密码学上,但由于 Grover 算法的存在,哈希函数也必须加以考虑。Grover 算法将哈希函数在抗原像(preimage resistance)方面的有效安全性降低了一半,在抗碰撞(collision resistance)方面则被相关的 BHT 算法降低了约三分之一。因此,对于 PQ 安全推荐的做法是使用至少 256 位输出的哈希函数,以在量子攻击者面前保持 128 位抗原像安全性,以及 384 位输出以保证 128 位抗碰撞安全性。
哈希函数的性质:我们关注哈希函数的两个标准安全属性:
第二抗原像性(Second Preimage Resistance):给定一个输入 x 和其哈希输出 y = H(x),应当难以找到任意另一个 x’ (≠ x),使得 H(x’) = y。与抗原像性类似,平均需要进行 2^{n-1} 次哈希查询才能破解第二抗原像性。在量子计算机下,Grover 算法可以用 O(2^{n/2}) 次查询来寻找碰撞。因此,为了实现 128 位的安全性,哈希输出需为 256 位。地址认证的安全性依赖于第二抗原像性,以防止攻击者构造出不同的验证密钥来伪装身份。
抗碰撞性(Collision Resistance):应当难以找到两个不同的输入 x ≠ x’,使得 H(x) = H(x’)。通用生日攻击需要 O(2^{n/2}) 次哈希查询即可找到碰撞,因此相比抗原像性与第二抗原像性,抗碰撞性的安全等级等效于减半。而基于 Grover 算法的 BHT 算法能够以 O(2^{n/3}) 的时间找到碰撞。抗碰撞性对于防止链分叉至关重要。Sui 当前的哈希摘要为 256 位,因此需要提升到 384 位才能提供 128 位的抗碰撞安全性。
不过,理论上的安全等级是一个上限,实际中可能因哈希函数的具体结构而降低。
过渡策略:在 Sui 中,哈希函数仅被用作压缩机制,以用于对公共数据的承诺,目标是优化存储而非隐私保护。典型示例包括交易摘要(transaction digests)和检查点摘要(checkpoint digests)。甚至地址生成也涉及将公钥和其他输入压缩为固定长度的字符串。在这些场景中,过渡过程可以相对简单,因为可以验证 PreQ 哈希和 PQ 哈希的公共原像是一致的。
公钥加密与密钥交换
在现代区块链中,加密有几个重要用例,尽管不像签名方案那样具有核心地位。这些用例包括保护交易金额和地址隐私,以及通过加密交易防止 MEV 攻击。
对称密钥加密:由于像 AES 这样的标准加密算法基于非代数结构,它们通常仅会受到较不严重的量子攻击,例如 Grover 算法的攻击。标准的缓解方法是将密钥长度加倍,以达到目标安全级别。
公钥加密:像 ElGamal 和 RSA 这样的公钥加密方案依赖于群代数,因此可以被 Shor 算法在量子多项式时间内破解。为应对量子攻击,提出了基于格的方案,这些方案依赖于带噪声的代数运算。其安全性依赖于在高维格中寻找短向量或近似向量的量子困难性假设。
NIST 已将 CRYSTALS DILITHIUM 构造标准化为公钥封装机制的使用方式,也称为 ML-KEM。Dilithium 在运算中使用模格(module lattice),其底层的困难性假设为 Module-LWE,该假设的难度介于普通 LWE(使用无结构格)和 Ring-LWE(使用由多项式环诱导的格)之间。尽管 Ring-LWE 提供了最佳的公钥和密文大小,但它也容易受到利用环结构的攻击,例如子空间攻击。而 Module-LWE 则是基于环元素上的模构造,因此比纯粹的环结构拥有更少的结构性。
下表给出了 ML-KEM 在不同安全级别下的参数:
农场攻击(Farming attacks)
尽管今天的量子计算机尚不具备实际威胁,但攻击者可能现在就保存 PreQ 密文,以备将来拥有强大的量子计算机后进行解密。对于需要保密数十年的高度机密数据而言,这是无法接受的情况。仅仅将公开存储的 PreQ 密文重新加密为 PQ 密文并不足够安全,因为攻击者可能早已复制了这些密文。这与签名方案不同,签名可以通过多重签名层叠来增强未来的抗量子伪造能力。
过渡策略
- 临时隐私需求的密文:可以在一段时间内继续使用 PreQ 加密。例如,用于缓解 MEV 攻击的加密交易、计划短期内公开的加密 NFT。
- 价值较低或短期内价值即会消失的数据:也可以继续使用 PreQ 加密。例如加密的新闻内容、娱乐媒体。
- 高价值、高机密性且需保密至 2030 年以后的数据应尽快使用 PQ 加密。对这类数据来说,先发布 PreQ 密文、后续切换为 PQ 密文的策略并不安全,因为存在农场攻击风险。
PQ-TLS(抗量子 TLS)
TLS 是当今网络安全通信的核心协议,涉及签名和加密两部分,因此也容易受到量子攻击。OpenSSL 3 拥有灵活架构,可集成 Open Quantum Safe 项目开发的 PQ 算法。oqs-provider 库已实现多种 PQ 算法,包括 ML-DSA、ML-KEM、Falcon 和 SPHINCS。亚马逊为其 KMS 提供了定制化的 PQ-TLS 实现,在等待标准化的同时,该实现已支持运行相同软件的通信端点。
ZK 证明系统
现代零知识(ZK)系统大致可以分为两类:
线性 PCPs:
像 Pinocchio 和 Groth16 这样的证明系统可以在概念上分解为线性交互式证明( Linear interactive proof,LIP)和加密的线性仅加密方案。虽然 LIP 部分在信息论上是安全的,因此对量子攻击免疫,但线性仅加密部分是通过基于配对友好型椭圆曲线的密码双线性映射实现的,使得该系统容易受到量子离散对数攻击。
- 优点:证明短、验证速度快。
- 缺点:电路特定的通用参考字符串(CRS)随着电路规模呈超线性增长,需要电路特定的生成仪式以避免信任单一的 CRS 生成者。
- 量子过渡:ACL+22 和 JPR23 等构造使用基于格的原生功能来实现线性仅加密,从而应对量子攻击。然而,这一研究方向仍处于起步阶段。
IOPs:
像 PLONK 和 STARK 这样的证明系统可以在概念上分解为一个交换多项式的交互式协议,一个将多项式压缩的密码学多项式承诺方案,以及一个通过 Fiat-Shamir 启发式将交互折叠的密码学哈希函数。尽管哈希函数可以通过加倍密钥长度实现抗量子能力,但多项式承诺部分需要更多的注意。
- 优点:透明或与电路无关的通用参考字符串(CRS),取决于所使用的多项式承诺方案。
- 缺点:证明较长,验证时间较慢。
- 量子过渡:基于群的多项式承诺方案(如 [KZG10])容易受到量子离散对数攻击。基于哈希函数的多项式承诺方案(如 FRI 及其变体)被认为是可能具备后量子安全性的。
(zk)SNARKs 的理想目标是:
- 电路无关的设置,避免昂贵的生成仪式
- 快速验证 O(λ) 、证明 O(|C|·log(|C|)·poly(λ)) 、证明大小 O(λ)
- 抗量子攻击
目前尚无任何架构能同时满足上述三项要求。
生产系统:现代的 ZK 生产系统(如 Polygon 的 Plonky3、StarkWare 的 STARKs 及其与 Mysten Labs 密码学家共同开发的 Winterfell、Succinct 的 SP1 和 Nexus zkVM)在效率、可扩展性和安全性方面提供了不同的权衡。
从安全性角度来看,StarkWare 和 Plonky3 仅依赖哈希函数,因此可以顺利过渡到后量子(PQ)安全。SP1 也使用 PQ 安全的原生功能,唯一的例外是可选的最终递归步骤使用了紧凑的 Groth16 证明,该部分仍不具备 PQ 安全性。Nexus zkVM 曾依赖于椭圆曲线密码学(由于使用了基于累积的方案,如 Nova/Hypernova),但最近已切换至 Circle STARKs。
zkLogin:Sui 的 zkLogin 使用 Groth16 证明,验证 OIDC JSON Web Token(JWT),而 JWT 又由 RSA 签名保护。Groth16 证明与 RSA 签名都容易受到量子攻击。一旦其中任一机制被攻破,zkLogin 的安全性将不复存在。
- 对于 ZK 证明,我们必须过渡至 PQ 安全的系统(部分已在上文讨论)。除了 PQ 安全性外,最重要的标准是用户体验:包括低内存开销的快速生成器,以及验证节点端的快速验证。
- 至于 JWT 签名,是否过渡将取决于 OIDC 的标准化进程。
zkLogin 的过渡策略:zkLogin 地址是多个字段的哈希,包括用户的 Web2 ID 以及保密存储的 salt。这些哈希值为 256 位,由于仅需第二抗原像性,因而在一段时间内仍具有合理的后量子安全性。
- 我们需要适配 PQ-JWT 和 PQ-zkSNARK,同时保持地址不变。
- 某些 zkLogin 电路内部使用的哈希需要碰撞抗性,这些哈希需扩展至 384 位以实现量子安全。
DKG 协议(分布式密钥生成)
目前广泛使用的随机信标基于 BLS 阈值签名,使用椭圆曲线,因此面临量子离散对数攻击的风险。相关的 DKG 协议也大量依赖椭圆曲线运算。为防御量子攻击,已有研究基于对称加密和格的随机信标方案,如 HashRand、Lattice-based PVSS 和 HERB。从 PreQ 过渡到 PQ 需要更改 DKG 协议,但由于它是内部的,因此可以在任何时候进行,而无需更改链上 API。
应用层使用场景
许多基于 Sui 构建的智能合约在应用层使用了上述密码学原生功能。例如,像原生桥和时间锁定加密这样的预言机。这些应用需要过渡到类似于上述讨论的 PQ 替代方案。
其他 Web3 努力
其他 Web3 基金会或公司也推出了后量子产品或即将推出的计划:
- 以太坊、Algorand 和 Cardano 正在积极规划升级以应对量子威胁。
- Solana 最近推出了一项量子安全功能 Winternitz Vault,它采用基于哈希的一次性签名来保护资金免受未来量子威胁。Move 也可以实现类似的功能。
关于 Sui Network
Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac
官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群