Fiat-Shamir 与零知识证明

零知识证明:不泄露个人信息的前提下证明自己是某信息的合法拥有者

 

Fiat-Shamir heuristic 

根据wiki

前提:持有相同的message x的用户可以相互认证,他们持有相同的验证函数,以指数函数为例 f(x)=gx

 

1. alice想向bob证明她知道message x 同时又不想泄露出x

2. Alice取一个非零整数v,同时得到t=gv

3. 用加密哈希函数 c=H(g,y,t)

4. r=v-cx得到证明pair(t,r)

5. Bob如果能够证明t=gryc则可以通信

 

 

Fiege-Fiat-Shamir 身份认证:

前提:有一个N是两个大质数pq的积,prooververifier 都有N

Proover持有序列 s={si}(i=0...k) siN互质

验证时proover发送序列v={vi=si**2 modN } verifier

1.访问者选一个随机整数r,取s=1s=-1x=sr2  

2.验证者取长为K01流,发给访问者

3.访问者计算y = r*s1**a1 *s2**a2...sk**ak 发送y到验证者

4.验证y**2 = (+/-)x v1**a1*v2**a2...vk**ak

你可能感兴趣的:(网络安)