零知识证明中的sigma协议

前置知识

G G G为一个非空集合, ∙ \bullet G G G上的一个二元运算,这意味着对于任意的两个 a , b ∈ G a,b \in G a,bG,都有 a ∙ b ∈ G a \bullet b \in G abG
例子:

G = Z 14 = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 G=Z_{14}={0,1,2,3,4,5,6,7,8,9,10,11,12,13} G=Z14=0,1,2,3,4,5,6,7,8,9,10,11,12,13 " ∙ \bullet "是模14下的加法
4 ∙ 12 = 4 + 12 m o d 14 = 2 4 \bullet 12= 4 + 12 mod 14 = 2 412=4+12mod14=2
G = Z 14 ∗ = 1 , 3 , 5 , 9 , 11 , 13 G=Z_{14}^*={1,3,5,9,11,13} G=Z14=1,3,5,9,11,13 " ∙ " "\bullet" ""是模14下的乘法
5 ∙ 9 = 5 × 9 m o d 14 = 3 5\bullet9 = 5\times9 mod 14 = 3 59=5×9mod14=3
G G G如果满足以下性质,则 G G G是一个群

  1. 封闭性: ∀ a , b ∈ G , a ⋅ b ∈ G \forall a,b \in G ,a \cdot b \in G a,bG,abG
  2. 关联性: ∃ \exist 元素 1 ∈ G 1 \in G 1G 满足 1 ⋅ a 1 \cdot a 1a = a ⋅ 1 a \cdot 1 a1 对所有的 a ∈ G a \in G aG
  3. 可逆性: ∀ a ∈ G , ∃ 一 个 唯 一 的 b ∈ G \forall a \in G, \exist 一个唯一的 b \in G aG,bG
    满足 a ⋅ b a \cdot b ab = b ⋅ a b \cdot a ba =1;b是a的逆元,记为 a − 1 a^{-1} a1

群的阶

一个群的阶是这个群的大小,也就是群中含有的元素个数
G G G为阶为 m m m的群,则 a m = 1 a^m=1 am=1
对于任意的 i ∈ Z , a i = a i m o d m i\in Z,a^i=a^{i mod m} iZ,ai=aimodm
代表元:
在这里插入图片描述
生成元与循环群
在这里插入图片描述

交互式证明(Interactive Proofs)

一个交互式证明系统包含两方:证明者(Prover)和验证者(Verifier)。给一个陈述,验证方会对证明方提出询问,经过几轮交互之后决定是否这个陈述是真的。直观上说,一个像这样的证明系统满足两个性质:
1、完备性:所有真的陈述都必须有证明。也就是说,经过验证方和证明方的交互后,验证方有能力得出陈述为真的结论。
2、健全性:所有假的陈述都没有证明,恶意的证明者不能说服验证者假的陈述为真。
在这里插入图片描述

进入正题

p p p 为一个素数, q ∣ p − 1 q | p-1 qp1,且 g g g Z p ∗ Z_p^* Zp中阶为 q q q的生成元。假设一个证明者(prover) P P P Z q Z_q Zq中随机选择了一个 w w w,并且发布了 h = g w m o d p h=g^wmodp h=gwmodp。一个验证者(Verifier)V得到了 p , q , g , h p,q,g,h p,q,g,h能够检查 p , q p,q p,q是否为素数,以及 g , h g,h g,h是否拥有阶 q q q。因为在 Z q ∗ Z_q^* Zq下只有一个阶为 q q q的子群,所以 h ∈ < g > h\in<g> h<g>,存在 w w w使得 h = g w h=g^w h=gw,但这不代表 P P P知道 w w w.

Schnorr协议

在这里插入图片描述
1、 P P P随机在 Z q Z_q Zq中选择一个 r r r,将 a = g r m o d p a=g^r mod p a=grmodp送给 V V V
2、 V V V选择随机一个在 Z 2 t Z_{2^t} Z2t中的挑战信息 e e e送给 P P P。这里 t t t的范围固定为 2 t < q 2^t<q 2t<q
3、 P P P z = r + e w m o d q z=r+ew mod q z=r+ewmodq送给 V V V V V V检查 g z = a h e m o d p g^z=ah^emod p gz=ahemodp,如果是则接受

一个恶意的证明者 P P P如果不能得到 w w w的值,则 P P P一次最多只能正确获得一个挑战信息 e e e

证明
假如某一证明者 P ∗ P^* P,发送 a a a,能够正确得到两个不同的挑战信息 e e e, e ′ e' e。这意味着他可以产生 z , z ′ z,z' z,z同时满足, g z = a h e m o d p g^z=ah^emodp gz=ahemodp g z ′ = a h e ′ m o d p g^{z'}=ah^{e'}modp gz=ahemodp。两个等式两边相除,我们可以得到 h = g ( z − z ′ ) ( e − e ′ ) − 1 m o d p h=g^(z-z')(e-e')^{-1} mod p h=g(zz)(ee)1modp,则 w = ( z − z ′ ) ( e − e ′ ) − 1 m o d q w=(z-z')(e-e')^{-1} mod q w=(zz)(ee)1modq,那么 P ∗ P^* P就get到了 w w w

注:恶意的 P P P可以先通过计算 a a a,然后再通过等式 g z = a h e g^z=ah^e gz=ahe计算 z z z的值,因为恶意 P P P不知道 w w w的值,也可以自己随便选一个 z z z

在这里插入图片描述

解释:因为如果 e − e ′ ≠ 0 m o d q e-e' \neq 0 mod q ee=0modq,恶意证明者就可以获取 w w w,反之如果 e − e ′ = 0 e-e' = 0 ee=0,则不能获取 w w w,不能获取的概率为 1 / 2 t 1/2^t 1/2t(挑战信息 e e e的长度为 t t t

Σ \Sigma Σ协议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值