一种基于身份的部分盲签名方法和装置与流程

文档序号:11147433阅读:362来源:国知局
一种基于身份的部分盲签名方法和装置与制造工艺

本发明属于信息安全技术领域,尤其涉及一种基于身份的部分盲签名方法和装置。



背景技术:

盲签名是签名者在不知道签名请求者所请求消息内容情况下完成的一种签名,这种特性称为盲性。盲签名不仅具有数字签名所具有的内容完整性、交易的不可抵赖性和双方身份的真实性等性质,还可以利用盲性很好地保护用户隐私。在盲签名中签名者对签名消息一无所知,易造成签名被恶意的请求者非法使用。随后,部分盲签名的概念被提出,其将消息分为盲化部分和公共部分,因此部分盲签名在保证用户隐私的同时又对签名内容部分可控。2004年至今,已经有很多有关盲签名及部分盲签名的文献发布,如:

1、Chow S S M,Hui L C K,Yiu S M,et al.Two improved partially blind signature schemes frombilinear pairings[M].Springer Berlin Heidelberg,2004:316-328.以下简称Chow方案;

2、何俊杰,孙芳,祁传达.基于身份部分盲签名方案的分析与改进[J].计算机应用,2013,33(3):762-765.以下简称何方案;

3、李明祥,赵秀明,王洪涛.对一种部分盲签名方案的安全性分析与改进[J].计算机应用,2010,30(10):2687-2690.以下简称李方案;

4、闫东升.一个新的高效的基于身份的部分盲签名方案[J].计算机工程与应用,2008,44(2):137-139.以下简称闫方案;

5、何俊杰,王娟,祁传达.安全高效的基于身份的部分盲签名方案[J].计算机应用,2012,32(5):1388-1391.以下简称王方案;

6、汤鹏志,刘启文,左黎明.一种基于身份的部分盲签名改进方案[J].计算机工程,2015,41(10):139-143.以下简称汤方案;

7、张瑞.基于椭圆曲线密码的无证书公钥密码研究[D].湖北:武汉大学,2011.以下简称张方案。

何方案是对李方案提出的一个ID-PBS方案存在签名请求者可以非法篡改协商公共信息而提出的改进方案。但在分析何方案时发现依然存在签名请求者可以非法篡改协商公共信息安全性问题,因此在基于身份的部分盲签名的领域中,保护协商公共信息的安全性显得尤为重要。



技术实现要素:

本发明实施例提供一种基于身份的部分盲签名方法,旨在解决现有的基于身份的部分盲签名中协商公共信息安全性低的问题。

本发明实施例是这样实现的,一种基于身份的部分盲签名方法,包括:

建立一个公开系统参数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′);

验证者进行签名验证。

优选地,所述建立一个公开系统参数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作为主密钥值保存。

优选地,所述签名者提取其私钥为提取公钥为Ppub的具体步骤为:

签名者向PKG发送身份信息IDB∈{0,1}*

PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;

签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。

优选地,所述验证者进行签名验证的具体步骤包括:

验证者收到签名请求者发送的消息-签名对(m,c,σ=(r′,S′));

验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名;

否则无效。

本发明的实施例还提供一种基于身份的部分盲签名装置,包括:

系统参数建立单元,用于建立公开系统参数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′);

验证单元,用于进行签名验证。

优选地,所述系统参数建立单元包括:

构建模块,用于确定安全系数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作为主密钥值保存。

优选地,所述提取单元包括:

发送模块,用于签名者向PKG发送身份信息IDB∈{0,1}*

计算模块,用于PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;

校对模块,用于签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。

优选地,所述验证单元包括:

接收模块,用于接收签名请求者发送的消息-签名对(m,c,σ=(r′,S′));

验证模块,用于验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名,否则无效。

本发明的技术方案,由于签名者B在中插入的协商信息H3(c)不仅与签名请求者C在盲化签名中使用的协商信息H3(c)保持一致,同时也与验证等式中协商信息H3(c)保证一致,因此,本发明的方案在协商信息篡改攻击下是安全的,有效解决了基于身份的部分盲签名中因协商公共信息篡改而带来的安全性问题。

附图说明

图1是本发明实施例提供的一种基于身份的部分盲签名方法流程示意图;

图2是本发明实施例提供的一种基于身份的部分盲签名方法流程简图;

图3是本发明实施例提供的一种基于身份的部分盲签名装置结构框图;

图4是本发明的系统参数建立单元的结构框图;

图5是本发明的提取单元的结构框图;

图6是本发明的验证单元的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了更有效的理解本发明的技术方案,我们简单描述一下何方案中的部分盲签名的过程:

首先建立一个建立一个公开系统参数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为公钥,系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}。

然后进行密钥提取算法:签名者B向PKG发送身份信息IDB∈{0,1}*,PKG验证签名者B的身份信息与实体无误后,计算PKG将发送给签名者B,签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其私钥。否则重新执行密钥生成算法。

然后再进行部分盲签名生成算法:

假设m为签名请求者请求签名的信息,c为签名者与签名请求者协商的公共信息,签名过程如下:

a)承诺。签名者B随机选择两个整数并计算r=gx和v=gy,并把计算结果(r,v)发送给签名请求者C。

b)盲化。签名请求者C接收到(r,v)后,随机选择盲化因子并计算h=α-1H2(m,c,r′)+βH3(c),把h发送给签名者B。

c)部分盲签名。签名者B接受到h后,对盲化后的消息使用其私钥进行盲签名,计算把S发送给签名请求者C。

d)脱盲。签名请求者C进行脱盲工作,计算S′=αS。

最后签名请求者C得到消息m和协商消息c的签名为σ=(r′,S′)。

最后进行签名验证算法:

验证者收到签名请求者C发送的消息-签名对(m,c,σ=(r′,S′))后,验证等式是否成立,如成立,验证者就相信(m,c,σ=(r′,S′))是由签名者B进行有效的盲签名。否则无效。

以上方案也会产生安全攻击,具体攻击分析如下:

因为是对方案进行将协商信息c篡改为c′攻击,所以方案中除了部分盲签名生成算法外,其他算法无需任何改变,盲签名生成算法如下:

a)承诺。签名者B随机选择两个整数并计算r=gx和v=gy,并把计算结果(r,v)发送给签名请求者C。

b)盲化。签名请求者C接收到(r,v)后,未经签名者同意将协商信息c篡改为c′,后选择两个随机盲化因子并计算h=α-1H2(m,c′,r″)+β,把h发送给签名者B。

c)部分盲签名。签名者B接受到h后,对盲化后的消息使用其私钥进行部分盲签名,计算把S发送给签名请求者C。

d)脱盲。签名请求者C进行脱盲工作,计算S′=αS。

最后签名请求者C得到消息m和协商消息c′的签名为σ=(r″,S′)。

签名验证方程为:现对签名(m,c′,r″,S′)进行签名验证等式运算:

即在未经签名者同意的前提下,签名请求者篡改公共信息后所形成的签名也能通过验证等式验证,故验证者相信σ=(r″,S′)是签名者B对消息m和协商消息c′的有效签名。

结合图1及图2所示,本发明的实施例提供一种基于身份的部分盲签名方法,包括以下步骤:

步骤S100,建立一个公开系统参数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为公钥;

步骤S200,签名者提取其私钥为提取公钥为Ppub

步骤S300,签名者随机选择两个整数并计算r=gx和v=gy,并把计算结果(r,v)发送给签名请求者;

步骤S400,签名请求者接收到(r,v)后,随机选择两个盲化因子并计算h=α-1[H2(m,c,r′)+β],把h发送给签名者;

步骤S500,签名者接收到h后,对盲化后的消息使用其私钥进行盲签名,计算把S发送给签名请求者;

步骤S600,签名请求者进行脱盲工作,计算S′=αS,得到消息m和协商消息c的签名为σ=(r′,S′);

步骤S700,验证者进行签名验证。

优选地,在所述步骤S100中,所述建立一个公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub}的具体步骤为:

步骤S110,根据安全需要,确定安全系数l和素数q的大小,利用椭圆曲线构造阶为q的循环加法群{G1,+}和循环乘法群{G2,·},定义双线性映射

e:G1×G1→G2

步骤S120,选择无碰撞杂凑函数

步骤S130,从mod q的整数乘法群中随机选取一个整数s作为私钥生成中心PKG的主密钥,并计算Ppub=sP作为其对应的公钥;

步骤S140,公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并将s作为主密钥值保存。

进一步地,所述步骤S200具体包括:

步骤S210,签名者向PKG发送身份信息IDB∈{0,1}*

步骤S220,PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;

步骤S230,签名者B接受到后,验证等式的正确性,如果等式成立,签名者B就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。

进一步地,所述步骤S700中,具体包括:

步骤S710,验证者收到签名请求者发送的消息-签名对(m,c,σ=(r′,S′));

步骤S720,验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名;

否则无效。

由于签名者在中插入的协商信息H3(c)不仅与签名请求者在盲化签名中使用的协商信息H3(c)保持一致,同时也与验证等式中协商信息H3(c)保证一致。故本方案在协商信息篡改攻击下是安全的。

如图3所示,本发明的实施例还提供一种基于身份的部分盲签名装置,包括:

系统参数建立单元100,用于建立公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub};

提取单元200,用于签名者提取私钥及公钥;

承诺单元300,用于随机选择两个整数并计算r=gx和r=gx,并把计算结果(r,v)发送给签名请求者;

盲化单元400,用于接收到(r,v)后,随机选择两个盲化因子并计算h=α-1[H2(m,c,r′)+β],把h发送给签名者;

部分盲签名单元500,用于接收到h后,对盲化后的消息使用其私钥进行盲签名,计算把S发送给签名请求者;

脱盲单元600,用于进行脱盲工作,计算S′=αS,得到消息m和协商消息c的签名为σ=(r′,S′);

验证单元700,用于进行签名验证。

进一步地,所述系统参数建立单元100包括:

构建模块101,用于确定安全系数l和素数q的大小,利用椭圆曲线构造阶为q的循环加法群{G1,+}和循环乘法群{G2,·},定义双线性映射e:G1×G1→G2

函数选择模块102,用于选择选择无碰撞杂凑函数

密钥模块103,用于从mod q的整数乘法群中随机选取一个整数s作为私钥生成中心PKG的主密钥,并计算Ppub=sP作为其对应的公钥,并公开系统参数params={G1,G2,P,l,q,e,H1,H2,H3,Ppub},并将s作为主密钥值保存。

进一步地,所述提取单元200进一步包括:

发送模块201,用于签名者向PKG发送身份信息IDB∈{0,1}*

计算模块202,用于PKG验证签名者的身份信息与实体无误后,计算PKG将发送给签名者B;

校对模块203,用于签名者接受到后,验证等式的正确性,如果等式成立,签名者就把作为其私钥,Ppub为其公钥,否则重新执行密钥生成算法。

更进一步地,所述验证单元700包括:

接收模块701,用于接收签名请求者发送的消息-签名对(m,c,σ=(r′,S′));

验证模块702,用于验证等式是否成立,如果是,验证者就相信(m,c,σ=(r′,S′))是由签名者进行有效的盲签名,否则无效。

下面,将本发明中的技术方案与上述已存在的ID-PBS方案进行计算效率的比较,其中包括Chow方案,王方案,闫方案,何方案,汤方案。采用张方案中的性能比较方法,使用嵌入度为2的超奇异椭圆曲线E(FP):y2=x3+x,其中q=2159+217+1为160比特素数,p为满足条件p+1=12qr的512比特素数。硬件平台:CPU为CPIV 3-GHZ,512MB内存和Windows XP操作系统。表1列出密码方案中耗时大的基本单元运算效率。

表1方案中基本单元运算效率(单位为:毫秒)

表2列出了各方案中具体耗时运算的计算数量。

表2各种方案的计算性能比较(单位:毫秒)

综上,可以明显得到本发明所构造的方案具有更高的效率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1