1.一种基于可撤销身份的格基聚合签名方法,包含以下参数及符号:n,m为正整数、q为质数、为n维模数为q的多项式商环、α为正实数是高斯分布的参数、为哈希函数,Lid为用户身份列表,T为时间,其特征在于:(1)初始化阶段
λ λ
Setup(1)→(mpk,msk):PKG运行TrapGen(1)(陷门生成函数)输出陷门 以及对应矩阵 设置主私钥msk=TA,主公钥mpk=A,PKG广播系统公共参数以及主公钥;
(2)私钥生成阶段
KeyGen(msk,mpk,id)→(skid):在收到用户的私钥请求后,PKG输入用户身份id∈Lid以及系统主密钥对,计算uid=H(id),运行SamplePre原像抽样函数输出eid=SamplePre(A,TA,uid,α),输出用户身份对应的私钥 最后通过安全信道将私钥传输给用户,用户身份id充当用户的公钥;
(3)密钥更新阶段
T
KeyUpdate(msk,mpk,rlT)→(ku):在需要撤销现有用户时,PKG首先调用KUNode算法,T T获得KU =KUNode(Lid,rlT,T),rlT为需要撤销的用户组成的列表,KU为所有合法用户的身T份信息,PKG为所有的合法用户θj∈KU生成密钥更新,运行SamplePre原像抽样函数输出:最终输出密钥更新
T
PKG将密钥更新ku发送给所有签名用户;
(4)签名密钥生成阶段
T
SignKeyGen(skid,ku)→(sikor⊥):签名用户在接收到PKG发布的密钥更新以后θj从Tku中找到 计算签名密钥 此阶段中如果用户的身份已经被撤销,则无法再密钥更新中找到对应身份的eid,T,直接退出本阶段;
(5)单签名阶段
Sign(mpk,sik,m)→σ:签名算法由签名用户执行,用户需要对消息m进行签名时运行该算法生成签名σ:(5.1)随机选择
(5.2)计算r←Ay,c←Hc(m,r,Tcu);
T
(5.3)计算z←sik·c+y;
(5.4)以 的概率输出签名σ=(z,r,c);
(6)单签名验证阶段
Verify(σ,mpk,id)→(0or1),验证算法由在验证用户执行,当签名验证通过时输出1,否则输出0;验证用户根据以下两个步骤判定签名是合法:(6.1)验证 如果不满足则输出0;
(6.2)验证c是否与Hc(A·z‑id·c,m,T)相等,如果不满足则输出0,否则输出1;
(7)聚合签名阶段
AggSign(σj,mj)→Σ:聚合服务器运行聚合签名算法,用户将需要聚合的签名以及消息发送给聚合服务器,聚合服务器按照以下步骤生成聚合签名Σ:(7.1)计算
(7.2)计算∑=(Z,mi,ri);
(8)聚合签名验证
AggVerify(∑,mpk,Lid)→(0or1),验证者对聚合签名及消息进行验证,聚合签名仅需一次验证即可确认所有消息的正确性:(8.1)计算 j的取值范围为0≤j≤|Lid|;
(8.2)验证等式是否成立 如果不成立则输出0,否则输出1。