Hotdry.

Article

从 Feldman 承诺到 Pedersen VSS:可验证秘密共享的工程化实现

深入解析 Feldman 与 Pedersen 两种可验证秘密共享方案的承诺机制差异,提供阈值参数选择、验证方程实现与作弊检测的完整工程指南。

2026-05-26security

Shamir 秘密共享是分布式密码学的基石,但其原始设计隐含一个关键假设:分发份额的 Dealer 必须是诚实的。一旦 Dealer 恶意发送不一致的份额,参与者将在重构阶段才发现问题,此时秘密可能已永久丢失。可验证秘密共享(Verifiable Secret Sharing, VSS)正是为解决这一痛点而生,它允许参与者在不暴露秘密的前提下,验证所收到份额的有效性。

Feldman VSS:离散对数承诺的奠基方案

1987 年,Paul Feldman 提出首个实用的非交互式 VSS 方案。其核心思想是利用乘法群的同态性质:若 $g$ 是素数阶循环群的生成元,则多项式系数 $a_j$ 的承诺可表示为 $c_j = g^{a_j} \bmod p$。

设 Dealer 选择 $t$ 次多项式 $P (x) = s + a_1x + \cdots + a_tx^t$,秘密 $s = P (0)$。Dealer 向第 $i$ 个参与者发送份额 $v_i = P (i)$,同时广播所有系数的承诺 $(c_0, c_1, \ldots, c_t)$。参与者验证份额的方程为:

$$g^{v_i} \stackrel{?}{=} \prod_{j=0}^{t} c_j^{i^j} = g^{\sum_{j=0}^{t} a_j i^j} = g^{P(i)}$$

该等式成立当且仅当 Dealer 诚实构造多项式。Feldman 方案的安全性完全依赖于离散对数问题的困难性 —— 在计算能力有限的敌手模型下,承诺是计算绑定的。

然而,Feldman 方案存在一个隐蔽缺陷:公开的 $c_0 = g^s$ 泄露了关于秘密 $s$ 的部分信息。尽管从 $g^s$ 反推 $s$ 是困难的,但对于小熵的秘密或特定应用场景,这种信息泄露可能构成实际威胁。

Pedersen VSS:信息论隐藏的承诺升级

1992 年,Torben Pedersen 提出改进方案,引入双生成器承诺机制。设 $g$ 和 $h$ 为群的两个独立生成元,秘密 $s$ 的 Pedersen 承诺定义为 $c = g^s \cdot h^r$,其中 $r$ 为随机选择的盲化因子。

Pedersen 承诺的关键优势在于信息论隐藏:对于任意秘密 $s$,存在唯一的盲化因子 $r$ 使得承诺 $c$ 对应于该秘密。即使敌手拥有无限计算能力,也无法从承诺中获取任何关于 $s$ 的信息。同时,承诺保持计算绑定 —— 在离散对数假设下,敌手无法找到 $s' \neq s$ 和 $r'$ 使得 $g^{s'} \cdot h^{r'} = g^s \cdot h^r$。

在 VSS 场景中,Pedersen 方案要求 Dealer 为每个多项式系数 $a_j$ 选择独立的盲化因子 $b_j$,发布双重承诺 $(c_j = g^{a_j} h^{b_j}, d_j = g^{b_j})$。参与者不仅验证份额的一致性,还验证盲化因子的正确性,从而确保秘密的完全隐藏性。

工程实现的关键参数

在实际部署 VSS 系统时,以下参数直接影响安全性与可用性:

阈值配置:在同步通信模型下,容忍 $t$ 个恶意参与者的最小节点数为 $n \geq 2t + 1$;异步模型则需 $n \geq 3t + 1$。对于生产环境,建议采用 $n = 2t + 1$ 或 $n = 3t + 1$ 的配置,以平衡容错能力与通信开销。

群参数选择:推荐使用标准椭圆曲线群,如 secp256k1 或 Curve25519,提供 128 位安全级别。素数 $p$ 应满足 $p-1$ 包含大素因子 $q$,且 $q$ 的比特长度不低于 256 位。

承诺验证优化:对于大规模参与者集合,可采用批量验证技术。利用多指数运算(multi-exponentiation)算法,将 $n$ 个参与者的验证计算复杂度从 $O (nt)$ 降低至接近 $O (n + t)$。

作弊检测与争议仲裁

VSS 协议必须处理验证失败的情况。当参与者 $i$ 发现 $g^{v_i} \neq \prod c_j^{i^j}$ 时,可向其他节点广播投诉。协议通常设定投诉阈值:若有效投诉超过 $t$ 个,则判定 Dealer 不诚实并中止协议;否则 Dealer 可公开争议份额供全局验证。

这种机制引入了公开可验证性—— 即使未参与原始分发的第三方,也能验证 Dealer 的行为是否合规。在分布式密钥生成(DKG)场景中,这一特性尤为重要,因为它允许网络中的任意节点审计密钥生成过程的合法性。

后量子时代的演进方向

传统 Feldman 与 Pedersen 方案均依赖离散对数假设,在量子计算威胁下不再安全。2023 年以来,Karim Baghery 等人提出基于哈希承诺的统一 VSS 框架,使用随机预言机模型构造无需同态性质的验证机制。

哈希基础方案的核心优势在于后量子安全性—— 仅依赖抗碰撞哈希函数的安全性,而哈希函数目前被认为能够抵御已知量子算法攻击。此外,该框架支持灵活的承诺方案实例化,可根据安全需求选择哈希承诺、格基承诺或传统数论承诺。

应用场景与集成要点

VSS 是分布式密钥生成(DKG)的核心子协议,广泛应用于门限签名、安全多方计算和端到端可审计投票系统。在集成时需注意:

  1. 与签名方案的兼容性:BLS 门限签名天然适配 Feldman/Pedersen VSS,因其基于双线性配对;ECDSA 门限签名则需额外的零知识证明保证安全性。

  2. 通信轮数优化:分享阶段最少需要 2 轮通信($n > 4t$)或 3 轮通信($n > 3t$),不存在 $t > 1$ 时的 1 轮 VSS 方案。

  3. 序列化与互操作性:承诺和份额应采用标准编码(如 ASN.1 或 Protocol Buffers),确保跨语言实现的兼容性。

从 Feldman 的计算绑定承诺到 Pedersen 的信息论隐藏,VSS 方案的发展体现了密码学设计中对安全性与效率的持续权衡。在现代分布式系统中,理解这些方案的假设边界与工程参数,是构建可信基础设施的必要基础。


参考来源

  • Feldman, Paul. "A practical scheme for non-interactive verifiable secret sharing." 28th Annual Symposium on Foundations of Computer Science (SFCS 1987), 1987.
  • Pedersen, Torben Pryds. "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing." Advances in Cryptology — CRYPTO '91, Springer, 1992.
  • Wikipedia contributors. "Verifiable secret sharing." Wikipedia, 2025.
  • Baghery, Karim. "A Unified Framework for Computational Verifiable Secret Sharing." Public-Key Cryptography – PKC 2025, Springer, 2025.

security

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com