形式陈述
非交互承诺方案为每个安全参数公理库安全参数Security parameter共同索引密码算法族、资源规模与失败概率的渐近尺度。固定消息空间 ,并包含
本页诚实算法采用 uniform 多项式时间实现,时间按安全参数及合法消息长度计;Setup 与 Commit 可用随机币,VerifyOpen 为确定性验证。计算安全实验的攻击者为获得 的经典 uniform PPT 算法。
正确性要求对每个 ,概率
完美正确性则把右侧换成 。
隐藏实验先生成 ,让攻击者 输出两条合法等长消息 和状态 ;挑战者均匀采样 ,生成 ,只把 交给 猜测 。在计算安全公理库计算安全Computational security仅要求任何资源受限攻击者的成功优势足够小的安全概念。层次,计算隐藏要求每个 PPT 的优势
可忽略。统计隐藏使用同一个实验,但允许两阶段对手计算无界,仍要求优势可忽略;消息选择也可以依赖已经看到的 。完美隐藏要求这些对手的优势恰为零。仅对预先固定的消息对比较 与 ,不足以覆盖随机参数生成后再选择消息的能力。
绑定实验生成 后,把 交给攻击者,让它输出
并在两个 调用都接受时获胜。计算绑定量化所有 PPT 攻击者并要求成功概率可忽略;统计绑定允许计算无界攻击者,但成功概率仍须可忽略;完美绑定要求对每个 Setup 支持中的 都不存在可同时验证的两种不同打开。
参数 的来源是安全模型的一部分:它可以是无陷门公开参数、CRS 或可验证群描述,并须说明任何 setup trapdoor 由谁掌握。extractable binding 要求提取器,equivocal commitment 允许带陷门模拟器改变打开;二者都超出普通绑定与隐藏。若承诺阶段是交互式协议, 接口必须改成双方 view 的交互实验。
一个完整构造:Pedersen 承诺
群生成算法按安全参数输出素数阶循环群公理库循环群Cyclic group能由一个元素的全部整数次幂生成的群。 ,群阶为 ,并提供高效群运算、相等性和成员验证。另从 均匀选择 ,公开 。数学上可以写 、;绑定实验不把 交给发送方或其辅助信息。
消息是 ,随机数 独立均匀取自 ,定义
打开时提交 。验证器先检查群成员与标量的规范编码,再检查 。正确性直接由定义成立,概率为一。这里 是必要的:若 ,随机项消失,,已知两条不同候选消息的接收者可直接比较它们的承诺。
对每个合法公开参数,这一构造完美隐藏。计算绑定则使用明确的离散对数假设:给定由上述群族生成的 ,其中 为均匀非单位元,任何经典 PPT 算法输出 使 的成功率可忽略。下面分别证明两项性质;不知道一个数与假设没有高效算法求出它,是不同强度的陈述。
直觉
承诺像把消息放进只能稍后打开的保险箱:隐藏性防接收者提前得知内容,绑定性防发送者事后改口。两项性质面对不同攻击者,也使用不同实验;“承诺看起来随机”与“目前找不到第二种打开”都不能替代量词化定义。
在上面的非交互接口中,若至少允许两条不同的合法等长消息且完美正确,就不能同时完美隐藏与完美绑定。固定同一公开参数,完美隐藏让两条消息产生相同承诺分布;任取其中一个正概率承诺,两条消息都存在能产生它的随机选择,正确性便给出两种合法打开。计算绑定正是把“不存在”改成“高效对手找不到”。
Pedersen 承诺的隐藏与计算绑定
例子与边界
哈希承诺可写成 ,开放时公布 。足够长的随机盐 可阻止低熵消息被直接枚举,抗碰撞或适当的第二原像性质帮助绑定;但结论依赖具体哈希模型。编码若有歧义,同一字符串可能解析为不同 ;随机性复用、盐太短或参数后门也会破坏安全。
十一个群元素上的承诺与打开
取模 乘法群中由 生成的 阶子群
它不是整个 阶非零剩余类群。为观察陷门作用,显式选 ,于是 。消息与随机数取 ,则
验证器收到 ,重复这次计算便接受。若接收者尚未拿到打开,承诺如何隐藏消息?把随机数 全部列出:
| 消息 |
按 得到的承诺 |
|
|
|
|
两行顺序不同,每个群元素却恰出现一次。均匀随机数使任何承诺值的概率都是 ;即使知道 ,也无法由这份分布区分消息 与 。下面会把这个排列观察证明为任意素数阶群上的双射结论。
知道陷门,怎样保持承诺却改变打开
持有一次打开 和非零 时,对目标消息 令
那么 ,故 。本例 ,改为 得
同一个 因而有 与 两种合法打开。反过来,仅由这两对数,就能恢复
这十一个幂可以直接枚举,因此小例检验的是代数、隐藏分布和陷门机制。计算绑定需要随安全参数增长的困难群族。另一个细节是,改变打开的公式要求已知一次打开;仅知道 ,并不自动给出任意外来承诺 的初始打开。
编码、随机数与参数各有边界
消息按模 解释。本例整数 和 用相同随机数产生同一承诺,因为它们表示同一个 元素。若业务需要对普通整数绑定,就必须先限制范围并单射编码;余额是否非负、相加是否溢出并不由群等式证明。
若发送方自行选 并保留 ,就能执行上面的改变打开攻击。验证 是合法非单位元只能检查代数条件,不能证明无人知道离散对数关系。参数生成和陷门持有者因此必须与绑定实验一致。
隐藏证明也要求每次使用独立均匀随机数。复用同一个 时,两个承诺之比为 ;若消息差只取少量可能值,接收者可以枚举辨别它。单个承诺的完美隐藏不会自动保证相关随机数下的联合隐藏。
承诺不等于加密:接收者通常不持有解密密钥,协议目标是“先固定、后揭示”。它也不自动满足不可延展性;Pedersen 的同态等式
在模 中成立,所以任何人都能把 变成 ,产生消息加一的相关承诺。构造相关承诺和对同一个承诺找到两条不同打开,是两种攻击任务。
多项式承诺公理库多项式承诺Polynomial commitment · KZG commitment · Kate–Zaverucha–Goldberg commitment以 KZG 构造将多项式压缩为一个群元素,用商多项式证明单点取值,并由 d-SDH 推出逐点求值绑定性。把“打开整个消息”改成“证明某个点的取值”。基本确定性 KZG 将 编码为 ,并在 -SDH 假设下阻止同一个承诺在同一个点被打开为两个不同的值;常数多项式 与 的承诺却分别是 与 ,可以完全区分。这个例子说明:名称中含有“承诺”,并不意味着未经随机化的版本同时满足本页的选择消息隐藏实验;求值绑定也需要按它自己的打开接口陈述。
推论与应用
完美隐藏:固定参数下的均匀双射
的阶为素数且 ,所以 也生成整个群。映射 从 到 是双射,再乘固定的 仍是双射。因此对每个 、每条消息 ,
两条候选消息在每个合法 下产生相同分布,连同公开参数交给观察者仍相同。这证明完美隐藏。若进一步公开 ,指数 仍均匀;隐藏不依赖离散对数困难性,依赖的是这次均匀随机化。
计算绑定:两次打开给出一个离散对数算法
假设对手给出两个合法打开,满足
于整理等式得到 。若 ,就有 ,与 矛盾。因此 是非零域元素,可以求逆:
归约算法收到随机非单位元离散对数挑战 后,把它原样作为公开参数交给绑定对手。若对手成功,验证两份打开并按上式输出 ;失败时报告失败。对手看到的参数分布与真实绑定实验完全相同,每次绑定成功都转成正确的离散对数解,成功概率没有损失。额外工作只有验证、模减法和一次求逆。
这用的是离散对数假设,不必引入更强的CDH公理库计算 Diffie–Hellman 假设Computational Diffie–Hellman assumption · CDH assumption在参数化循环群族中,由随机群幂高效计算共享群元素 g^(ab) 的成功概率可忽略。或DDH公理库判定 Diffie–Hellman 假设Decisional Diffie–Hellman assumption · DDH assumption随机 Diffie–Hellman 三元组与以独立随机群元素结尾的三元组对高效判别器不可区分。假设。计算无界者仍可枚举出 ,再构造不同打开;与完美隐藏并存的正是计算绑定,而不是完美绑定。
终点自测:先从两行承诺排列解释隐藏,再从 与 恢复 ;最后说明为什么 、重复随机数、整数编码不取模和发送方保留陷门分别破坏了哪一步条件。
承诺用于零知识、抛硬币、安全多方计算、拍卖和区块链协议。抗碰撞性公理库抗碰撞性Collision resistance攻击者公开选择两个不同输入仍难以找到同摘要;解释生日尺度、目标消息差异和序列化歧义。与群困难假设可实现不同承诺,零知识证明公理库零知识证明Zero-knowledge proof证明者使验证者相信陈述为真而不泄露额外知识的交互证明。常用承诺固定挑战前的选择;coin flipping、MPC 与 Sigma 协议公理库Sigma 协议Sigma protocol · Σ-protocol具有首消息—随机挑战—响应三步结构,并满足特殊可靠性与诚实验证者零知识的公开币协议。编译都依赖“先锁定、后揭示”的时序。
参考资料
-
Torben Pryds Pedersen, “Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing”, Advances in Cryptology — CRYPTO ’91, LNCS 576, Springer, 1992, pp. 129–140;§2,p. 130,素数阶子群;§3、Theorem 3.1,p. 131,承诺的均匀分布及双打开到离散对数。本文显式固定非单位元参数、规范标量编码与经典 PPT 归约实验。
-
Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 3rd ed., CRC Press, 2020, Chapters 4–5.
-
Oded Goldreich, Foundations of Cryptography, Vol. 1, Cambridge University Press, 2001, Chapters 2–4.