千家信息网

基于RSA算法的零知识证明

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,场景:P向V证明他知道用户S的私钥(e,d,N)证明步骤(零知识)1.P,V共同选定随机数a和b满足ab≡e mod N2.P,V共同产生一个随机密文C3.P计算:M ≡C^d mod N,X ≡M^
千家信息网最后更新 2026年11月02日基于RSA算法的零知识证明

场景:P向V证明他知道用户S的私钥(e,d,N)

证明步骤(零知识)

1.P,V共同选定随机数a和b满足ab≡e mod N

2.P,V共同产生一个随机密文C

3.P计算:M ≡C^d mod N,X ≡M^a mod N 并将X传给V

4.V计算并判别X^b mod N = C 是否成立

零知识证明旨在证明过程中不让私密进行传输:

M ≡C^d mod N

C ≡M^e mod N

将上面的第二个式子转换一下,使V在解密的时候不用私密d就可以解密,所以P要在中间过程加一个步骤:X ≡M^a mod N 并将X传给V;V收到X,判别C = X^b mod N是否成立。其实整个过程还是RSA加密解密的过程,只是中间加个环节替换掉d,使V不用d就可以解密。

C ≡M^e mod N ==> X ≡M^a mod N (ab≡e mod N)
C = X^b mod N

彻底分析透彻:

对"≡"的理解:同余符号就是前后两者与除以同一个数余数一样呗,5mod3=2;8mod3=2;11mod3=2;

所以5≡8mod3;5≡11mod3。可以5和8都是相差3的倍数关系,所以

M ≡C^d mod N,意思是M=C^d+k*N....

0