“Sigma 协议构成身份认证、证明知识、AND/OR 组合以及 Fiat–Shamir 签名的模块化基础。零知识证明提供隐私目标,知识证明规定从成功 prover 提取见证的量词,交互式证明…”
形式陈述 ​
Fiat–Shamir 是一种变换语法,不是对任意三步协议成立的通用安全定理。对三步公开币协议
证明者输出
一个具体结论:Schnorr 签名的经典 ROM 版本 ​
设
验证者检查
- 原 Schnorr 协议具有 special soundness;同一
下两个不同挑战 的有效响应可提取 。 - 诚实验证者零知识模拟允许签名 oracle 先选
、令 ,再对完整哈希输入编程响应。 - 挑战空间
具有足够熵,对手的随机预言机与签名查询数均为多项式,且成功伪造对应一个已查询的新鲜哈希输入。 - 哈希输入无歧义绑定域、群参数、公钥、消息和承诺;删去其中一项会改变被证明的签名方案。
forking 会重放对手并改变某次随机预言机回答,所以归约损失依赖查询次数和原伪造概率。本页只陈述这一经典 ROM 实例,不把它外推到任意 Sigma 协议、标准模型或量子随机预言机。
直觉
Fiat–Shamir 把公币交互证明中的 verifier 随机挑战替换为对 transcript 与声明求得的哈希值。prover 先固定承诺,再查询所有人共享且响应一致的随机预言机,最后给出响应;它仍可更换承诺反复查询,故证明必须计入自适应查询和 grinding,而不能把挑战口头描述成绝对不可控制。验证者可独立重算挑战,因而省去在线验证者;ROM 安全并非对任意确定哈希函数的无条件定理。
例子与边界
三步 Sigma 协议的交互 transcript 为
若直接把挑战写成
推论与应用
Fiat–Shamir 以 Sigma 协议 的承诺—挑战—响应为输入,以 密码哈希实例化理想挑战,支撑 Schnorr 类签名、非交互知识证明和大量区块链证明系统中的 transcript 压缩。零知识、签名不可伪造性与 knowledge extraction 必须逐构造、逐模型验证,不能由变换语法一并推出。
参考资料
- Amos Fiat, Adi Shamir, How to Prove Yourself: Practical Solutions to Identification and Signature Problems (1986), original transform.
- David Pointcheval and Jacques Stern, “Security Proofs for Signature Schemes,” EUROCRYPT 1996,forking lemma 与经典 ROM 签名归约。
- Dan Boneh, Victor Shoup, A Graduate Course in Applied Cryptography (2023/2026 draft), Fiat–Shamir and signatures.