零知识证明:不泄露个人信息的前提下证明自己是某信息的合法拥有者
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的积,proover和verifier 都有N
Proover持有序列 s={si}(i=0...k) si与N互质
验证时proover发送序列v={vi=si**2 modN } 到 verifier
1.访问者选一个随机整数r,取s=1或s=-1,x=sr2
2.验证者取长为K的01流,发给访问者
3.访问者计算y = r*s1**a1 *s2**a2...sk**ak 发送y到验证者
4.验证y**2 = (+/-)x v1**a1*v2**a2...vk**ak