1.一种基于身份的部分盲签名方法,其特征在于,包括:
建立一个公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};其中,l为安全参数,且满足素数q>2l,{G1,+}是阶为q的循环加法群,P为群G1中的任意生成元;{G2,·}是阶为q的循环乘法群,g为生成元;双线性对映射e:G1×G1→G2,g=e(P,P)∈G2;hash函数:PKG选取s为主密钥,Ppub=sP为公钥;
签名者提取其私钥为提取公钥为Ppub;
签名者随机选择两个整数并计算r=gx和v=gy,并把计算结果(r,v)发送给签名请求者;
签名请求者接收到(r,v)后,随机选择两个盲化因子并计算h=α-1[H2(m,c,r′)+β],把h发送给签名者;
签名者接收到h后,对盲化后的消息使用其私钥进行盲签名,计算把S发送给签名请求者;
签名请求者进行脱盲工作,计算S′=αS,得到消息m和协商消息c的签名为σ=(r′,S′);
验证者进行签名验证。
2.如权利要求1所述的部分盲签名方法,其特征在于,所述建立一个公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}的具体步骤为:
根据安全需要,确定安全系数l和素数q的大小,利用椭圆曲线构造阶为q的循环加法群{G1,+}和循环乘法群{G2,·},定义双线性映射e:G1×G1→G2;
选择无碰撞杂凑函数
从mod q的整数乘法群中随机选取一个整数s作为私钥生成中心PKG的主密钥,并计算Ppub=sP作为其对应的公钥;
公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并将s作为主密钥值保存。
3.如权利要求1所述的部分盲签名方法,其特征在于,所述签名者提取其私钥为提取公钥为Ppub的具体步骤为:
签名者向PKG发送身份信息IDB∈{0,1}*;
PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;
签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。
4.如权利要求1所述的部分盲签名方法,其特征在于,所述验证者进行签名验证的具体步骤包括:
验证者收到签名请求者发送的消息-签名对(m,c,σ=(r′,S′));
验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名;
否则无效。
5.一种基于身份的部分盲签名装置,其特征在于,包括:
系统参数建立单元,用于建立公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};
提取单元,用于签名者提取私钥及公钥;
承诺单元,用于随机选择两个整数并计算r=gx和v=gy,并把计算结果(r,v)发送给签名请求者;
盲化单元,用于接收到(r,v)后,随机选择两个盲化因子并计算h=α-1[H2(m,c,r′)+β],把h发送给签名者;
部分盲签名单元,用于接收到h后,对盲化后的消息使用其私钥进行盲签名,计算把S发送给签名请求者;
脱盲单元,用于进行脱盲工作,计算S′=αS,得到消息m和协商消息c的签名为σ=(r′,S′);
验证单元,用于进行签名验证。
6.根据权利要求5所述的基于身份的部分盲签名装置,其特征在于,所述系统参数建立单元包括:
构建模块,用于确定安全系数l和素数q的大小,利用椭圆曲线构造阶为q的循环加法群{G1,+}和循环乘法群{G2,·},定义双线性映射e:G1×G1→G2;
函数选择模块,用于选择选择无碰撞杂凑函数
密钥模块,用于从mod q的整数乘法群中随机选取一个整数s作为私钥生成中心PKG的主密钥,并计算Ppub=sP作为其对应的公钥,并公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并将s作为主密钥值保存。
7.根据权利要求5所述的基于身份的部分盲签名装置,其特征在于,所述提取单元包括:
发送模块,用于签名者向PKG发送身份信息IDB∈{0,1}*;
计算模块,用于PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;
校对模块,用于签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。
8.根据权利要求5所述的基于身份的部分盲签名装置,其特征在于,所述验证单元包括:
接收模块,用于接收签名请求者发送的消息-签名对(m,c,σ=(r′,S′));
验证模块,用于验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名,否则无效。