目录
概念和应用
Fiat-Shamir变换,又叫Fiat-Shamir Heurisitc(启发式),或者Fiat-Shamir Paradigm(范式)。是Fiat和Shamir 在1986年提出的一个变换,其特点是可以将交互式零知识证明转换为非交互式零知识证明。这样就通过减少通信步骤而提高了通信的效率!
背景和数学表示
在引入数学表达之前,先介绍一个著名的协议,是德国密码学家Schnorr提出的协议,非常简单但巧妙。然后对这个协议进行Fiat-Shamir变换,就可以理解Firat-Shamir变换的含义了!
Schnorr 协议
Schnorr协议是一个交互式的零知识证明协议。[1]
Schnorr原始协议中,c只能取0,1,需要验证者和示证者进行多次交互,如k次,提高身份鉴别的安全性。
注意:
1. 上式中 s=u+ cx.
2. 原始Schnorr协议不具有实际应用性,于是出现了Schnorr的变种。将c改为Z_n群内的任意数。这样就不只用一次交互证明。
3. 变种协议 V-Schnorr并不具有零知识证明的性质,但是对于诚实验证者来说,是零知识证明协议。——这一点比较细节化,不必深究。鉴于V-Schnorr协是安全的,我们就认为V-Schnorr协议具有近似零知识证明的性质就行。
变换的一个例子[2]
接下来以 V-Schnorr协议[3]进行分析:
菲亚特-沙米尔(Fiat-Shamir)启发式算法允许将交互步骤3替换为非交互随机Oracle访问。 实操中,我们可以改用加密哈希函数。[4]
参考文献
[1] 密码协议基础--邱卫东
[2] https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic
[3] Camenisch, Jan; Stadler, Markus (1997). "Proof Systems for General Statements about Discrete Logarithms" .