环签名过程:
签名者Alice想要对消息m进行环签名,Alice首先选择一个包含r个环成员的集合{A1,A2,...,Ar}。Alice为其中一员,可以表示为As,1≤s≤r,其私钥为Ss;所有环成员的RSA公钥为P1,P2,...,Pr,其中Pi={ni,ei}。
一、生成环签名
1、签名者Alice选择对称密钥:k=h(m);
2、签名者随机均匀地从{0,1}b中选择初始值v;
3、签名者为其他环成员均匀随机地从{0,1}b中选择xi,并计算yi=gi(xi);
其中,,函数gi()为定义在{0,1}b上的扩展的单向陷门函数,qi、ri为非负数,m为b比特的输入,满足m=qi*ni+ri;
,fi()为定义在Zni上的单向陷门函数。
4、签名者根据组合函数Ck,v的公式:=z,计算自己的ys;
其中,Ek()为对称加密算法,z为b比特的值。组合函数执行如下:
令z=v,那么上述公式变为Ck,v(y1,y2,...,yr)=v,组合函数执行过程可变换为环:
所有人都可以访问随机预言机得到Ek(x)或Ek-1(y),因此,签名者可以根据等式
=v 计算ys(因为除了ys,其他均已知)。
5、签名者利用自己的陷门信息求解xs:xs=gs-1(ys);
6、消息m上的签名为(P1,P2,...,Pr;v;x1,x2,...,xr);
二、验证过程
1、验证者根据消息m上的签名,计算yi=gi(xi);
2、验证者计算对称密钥:k=h(m);
3、验证者检查,若等式成立,验证者接受该签名是合法的,否则拒绝消息m。