環簽名過程:
簽名者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。