Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

术语表

基础概念

门限(threshold)
完成恢复或签名所需的最少参与者数,通常记作 \(t\)。2-of-3 表示总共三方,任意两方即可完成操作。

份额(share)
由秘密共享协议生成、分配给单个参与者的秘密值。它不是把私钥字节机械切开后的一段。

参与者标识符(identifier)
映射到标量域的非零唯一值,用作 Shamir 多项式的横坐标。它不是随意显示名称;RFC 9591 进一步要求标识符位于 [1, MAX_PARTICIPANTS]。

有限域(finite field)
元素数量有限、支持加减乘除(除数非零)且运算封闭的代数结构。

标量域(scalar field)
用于私钥、nonce、challenge 和份额的有限域,其模数通常是群的阶 \(q\)。不要与曲线坐标所在的基域混淆。

群(group)
签名协议中用于点加法和标量乘法的代数结构。本手册首先使用素数阶的 Ristretto255 群。

生成元(generator)
固定群元素 \(G\)。私钥 \(x\) 对应公钥 \(X=xG\)。

秘密共享与密钥生成

Shamir Secret Sharing
把秘密作为随机多项式的常数项,通过不同横坐标处的求值得到份额;任意至少 \(t\) 个份额可以插值恢复秘密。

可信 Dealer
生成完整秘密并负责分发份额的一方。它简化第一版实现,但曾经知道完整私钥。

VSS(Verifiable Secret Sharing)
可验证秘密共享。参与者可检查收到的份额是否与公开承诺一致。

Feldman VSS
通过发布多项式系数的群承诺来验证份额。承诺不隐藏秘密取值分布,因此秘密必须具有足够熵。

DKG(Distributed Key Generation)
分布式密钥生成。多方共同贡献随机性,得到密钥份额和群公钥;在具体协议规定的腐败阈值、合格集合和保密假设成立时,任何未达到门限的对手联盟都不能计算完整私钥。

份额刷新(share refresh)
在群公钥不变的情况下更新各参与者份额,通常通过加入常数项为零的随机多项式完成。旧份额必须被停用和销毁,但已经泄露的旧门限集合仍可为同一公钥签名;刷新不能撤销这种泄露。

签名协议

Schnorr 签名
基于离散对数困难问题的线性签名方案。其结构适合门限化。

FROST
Flexible Round-Optimized Schnorr Threshold signatures。一个两轮门限 Schnorr 签名协议。

nonce
每次签名使用的一次性秘密随机数。重复使用可能直接泄露长期私钥或密钥份额。

commitment
第一轮中由 nonce 乘以生成元得到的公开群元素。FROST 每位签名者通常提交 hiding 与 binding 两个 nonce commitment。

challenge
由所选 Schnorr 密码套件按规范输入计算的标量;在 RFC 9591 中,它把组承诺、组公钥和待签消息绑定到签名响应。不要把应用层 session/epoch transcript 擅自加入标准 challenge。

binding factor
FROST 中针对每名参与者计算的标量。RFC 9591 将它绑定到组公钥、待签消息、完整 commitment list 和参与者标识;应用层 session ID 或 epoch 不会自动进入该值。

签名份额(signature share)
单个参与者在第二轮计算的响应贡献。聚合前应使用其公开验证份额进行验证。

coordinator
收集承诺、构造签名包、收集并聚合签名份额的协调角色。它不必持有密钥份额,但可能阻断协议或发送不一致视图。

SigningPackage(密码学签名包)
在本手册的 FROST 路径中,只包含待签消息和严格按参与者标识排序的 nonce commitments。组公钥来自本地已验证 KeyPackage;session、group ID 和 epoch 属于外层认证 envelope,不是该结构的字段。

KeyPackage(本地密钥包)
把一名参与者的长期秘密份额、验证份额、非单位元组公钥、roster、threshold、ciphersuite、group ID 和 epoch 绑定为不可混用的本地状态。

工程安全

密码学 transcript
某个哈希函数按所选协议/密码套件精确规定的有序输入,必须使用规范、无歧义的编码。不要默认它包含应用 session 或 epoch;RFC 9591 的 binding factor 和 challenge 只能读取各自规定的字段。

系统 transcript / 认证 envelope
应用状态机用于认证、授权、防重放和归责的上下文,通常绑定协议与套件版本、group ID、epoch、session ID、round、sender/receiver 和密码学包摘要。它必须在进入份额生成/验证前检查,但不会自动成为标准哈希的输入。

域分离(domain separation)
为不同哈希用途添加不同固定标签,避免同一字节串在不同协议位置被误解。

规范编码(canonical encoding)
每个有效对象只有一种允许的字节表示。解析时应拒绝非规范标量、非法点和多义编码。

重放(replay)
把旧会话中的合法消息再次注入当前会话。会话 ID、状态机和已消费记录用于防御重放。

identifiable abort
协议失败时能够识别提交无效签名份额的参与者,而不仅仅得到“签名失败”。

CSPRNG
密码学安全伪随机数生成器。生产路径应从操作系统获得安全随机性并在失败时停止。