1.一种无证书的带批量验证的可追踪环签名方法,其特征在于:(1)系统参数生成Setup:
(a)密钥生成中心KGC选取两个阶为素数p的循环群 和 一个双线性对e:g是 的生成元;
(b)KGC在模p的整数集中随机选取一个数SSK作为自己的主密钥,并且计算SPK=SSK·g作为密钥生成中心的主公钥;
(c)KGC随机选取两个Hash函数H1: 和H2:(d)KGC发布系统参数 密钥生成中心秘密保存主密钥SSK;
(2)部分私钥生成Partial‑Secret‑Key‑Generation:(a)用户ui针对自己的身份IDi,计算 将Di发给KGC;
(b)对于系统中的所有用户,KGC计算用户的部分私钥(c)KGC将用户的部分私钥pski发送给用户ui;
(3)密钥生成Key‑Generation:(a)用户ui随机选择秘密值 然后计算自己的私钥(b)用户ui计算
(c)用户ui发布公钥pki=(pkai,pkbi),秘密保留私钥ski;
(4)签名生成Sign:
(a)签名者us选择n‑1个系统中的用户与自己组成一个环,环用户集记为UN={u1...us...un},对应的环公钥集记为pkN={pk1...pks...pkn},待签名的消息记为m;
(b)us为环中每个用户ui选择随机值ri(i=1,...,n);
(c)us计算Ri=ri·g,Ti=ri·pkbi,hi=H2(m,pki||Ri||Ti),(i=1,...,n,i≠s);
(d)us计算
hs=H2(m,pks||Rs||Ts),F=rs·SPK+(hs+rs)·sks;
(e)us将{R1,...Rs,...Rn}记为RN,将{T1,...Ts,...Tn}记为TN;
(f)us生成签名σ=(m,pkN,RN,TN,F);
(5)单个签名认证Verify:(a)签名验证者V计算hi=H2(m,pki||Ri||Ti)(i=1,...,n);
(b)V验证等式 是否成立,若等式成立,则签名有效,输出1;否则签名无效,输出0;
(6)批量认证Batch‑Verify:(a)签名验证者V输入σK={σ1,...,σk},其中的σi=(mi,pkNi,RNi,TNi,Fi)(i=1,...,k);
(b)V计算hij=H2(mi,pkij||Rij||Tij)(i=1,...,k,j=1,...,ni);
(c)V验证等式
(d)若等式成立,则V认定签名有效,输出1,否则,V认定存在无效签名,输出0;
(7)追踪Track:
(a)审计节点向环中的用户ui(i=1,...,n)发送追踪请求和Ti;
(b)用户返回T′i=di·Ti;
(c)审计节点验证等式e(Ti,pkbi)=e(T′i,pkai)是否成立;
(d)若等式不成立,则审计节点判断us为消息真正的签名者,返回签名者的公钥pks。