指定验证者的无证书数字签名方法与流程

文档序号:18639054发布日期:2019-09-11 22:44阅读:572来源:国知局
指定验证者的无证书数字签名方法与流程

本发明属于数字签名技术领域,具体涉及一种指定验证者的无证书数字签名体制的构造方法。

技术背景

2003年,al-riyami等人首次在亚密会议上提出无证书公钥密码体制,在该体制中,用户的私钥由密钥生成中心和用户共同生成,解决了传统公钥密码体制下证书管理和基于身份的公钥密码体制下的密钥托管问题。经过多年,无证书数字签名作为无证书公钥密码体制的重要组成部分已得到充分的发展,在电子政务和物联网安全等领域已有广泛应用。

大部分无证书数字签名方案基于双线性对构造,导致方案的计算效率较低。不使用双线性对的方法,由于其具有运算效率高、实用性强等优点,被大量用于无证书签名方案的构造中。另外,在普通数字签名机制下,只要拥有签名者的公钥即可进行签名有效性地验证,使得其在具体环境下的应用受到限限制。基于指定验证者的数字签名,签名的验证者由签名者本人指定,使得签名的验证权可控,提高了签名的实用性。

许芷岩、吴黎兵等人的文章《新的无证书广义指定验证者聚合签名方案》(通信学报,2017年11月)中提出了一个基于双线性对的无证书广义指定验证者聚合签名方案,并在随机谕言机模型下证明了其安全性。虽然该技术方案同样基于指定验证者构造,但是其技术方案中加入了双线性对,使得方案的效率降低。另外,该技术方案基于广义指定验证者而设计,广义指定验证者签名允许任何一个签名持有者(未必是签名者本人)根据自己的意愿来指定签名验证者,再将签名转化为指定验证者,使得方案的实用性和安全性降低。



技术实现要素:

本发明所要解决的技术问题在于克服上述现有技术的缺点,提供一种安全性高、使用范围广、实用的指定验证者的无证书数字签名方法。

解决上述技术问题所采用的技术方案是由以下步骤组成:

1、系统初始化

(1)密钥生成中心为系统设置安全参数κ,用群生成方法生成q阶的循环群g,选择3个安全的哈希函数:

其中为q阶整数群。

(2)密钥生成中心从q阶整数群中随机选择整数msk作为系统的主私钥并保密,设定系统的主公钥ppub和全局参数params:

ppub=msk·p

params={p,q,p,ppub,h1,h2,h3}

并公开;其中,p和q是满足安全要求的2个大素数,且q能够整除p-1,p是循环群g的生成元。

2、用户密钥生成

身份信息idi的用户与密钥生成中心执行交互协议,得到用户的密钥

3、签名

签名生成者a的公钥pka、签名生成者a的私钥ska、指定签名验证者b的公钥pkb、指定签名验证者b的私钥skb如下:

pka=(xa,ra)

ska=(xa,da)

pkb=(xb,rb)

skb=(xb,db)。

签名生成者a从q阶整数群中随机选择有限正整数a和有限正整数b,为指定的签名验证者b生成待签名消息m的签名σ,m∈{0,1}*

σ=(t1,t2,s),

t1=a·p

s=a·(h3·xa+da)-1

其中t1、t2、s为签名的部分信息,为h1(idb,rb,xb),h3为h3(ida,idb,t1,bp),ida为签名生成者的身份信息,idb为指定验证者的身份信息。

4、签名验证

指定签名验证者b判断式(1)是否成立

其中为h1(ida,ra,xa)、h'3为h3(ida,idb,t1,t2·(h2xb+db)-1)不成立输出0,表示验证失败并退出;若成立输出1,表示签名验证通过。

本发明的交互协议由如下步骤组成:

(1)用户从q阶整数群中随机选择整数

其中是用户的部分公钥信息,将用户的身份信息idi和用户的部分公钥信息发送给密钥生成中心。

(2)密钥生成中心收到用户的身份信息idi和用户的部分公钥信息从q阶整数群中随机选择整数将用户的部分公钥和用户的部分私钥通过安全信道发送给用户。

其中为有限的正整数;

(3)用户收到部分公钥和部分私钥检查式(2)是否成立

若不成立输出失败信息,终止协议并退出;若成立,设置用户的私钥并保密和用户的公钥并公开:

由于发明在生成用户密钥的方法中,加入了用户的部分公钥信息,加强了用户公钥信息与哈希函数的关联性,使密钥生成中心在生成用户私钥的过程中受到用户的制约,提高了签名的安全性;在签名验证方法中,加入了指定验证者,使签名者可以严格控制签名的验证权,扩大了使用范围,可在电子政务、物联网安全等领域应用。

附图说明

图1是本发明实施例1的流程图。

具体实施方式

下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施例。

实施例1

在图1中,本实施例的指定验证者的无证书数字签名方法由以下步骤组成。

1、系统初始化

(1)密钥生成中心为系统设置安全参数κ,用群生成方法生成q阶的循环群g,选择3个安全的哈希函数:

其中为q阶整数群。

(2)密钥生成中心从q阶整数群中随机选择整数msk作为系统的主私钥并保密,设定系统的主公钥ppub和全局参数params:

ppub=msk·p

params={p,q,p,ppub,h1,h2,h3}

并公开;其中,p和q是满足安全要求的2个大素数,且q能够整除p-1,p是循环群g的生成元。

2、用户密钥生成

身份信息idi的用户与密钥生成中心执行交互协议,得到用户的密钥

3、签名

签名生成者a的公钥pka、签名生成者a的私钥ska、指定签名验证者b的公钥pkb、指定签名验证者b的私钥skb如下:

pka=(xa,ra)

ska=(xa,da)

pkb=(xb,rb)

skb=(xb,db)。

签名生成者a从q阶整数群中随机选择有限正整数a和有限正整数b,为指定的签名验证者b生成待签名消息m的签名σ,m∈{0,1}*

σ=(t1,t2,s)

t1=a·p

s=a·(h3·xa+da)-1

其中t1、t2、s为签名的部分信息,为h1(idb,rb,xb),h3为h3(ida,idb,t1,bp),ida为签名生成者的身份信息,idb为指定验证者的身份信息;

4、签名验证

指定签名验证者b判断式(1)是否成立

其中为h1(ida,ra,xa)、h3'为h3(ida,idb,t1,t2·(h2xb+db)-1)不成立输出0,表示验证失败并退出;若成立输出1,表示签名验证通过。

在验证方法中,加入了指定验证者,使签名者可以严格控制签名的验证权,扩大了使用范围。

在本实施例的用户密钥生成步骤2中,交互协议由如下步骤组成:

(1)用户从q阶整数群中随机选择整数

其中是用户的部分公钥信息,将用户的身份信息idi和用户的部分公钥信息发送给密钥生成中心。

(2)密钥生成中心收到用户的身份信息idi和用户的部分公钥信息从q阶整数群中随机选择整数将用户的部分公钥和用户的部分私钥通过安全信道发送给用户。

其中为有限的正整数。

(3)用户收到部分公钥和部分私钥检查式(2)是否成立:

若不成立输出失败信息,终止协议并退出;若成立,设置用户的私钥并保密和用户的公钥并公开:

在生成用户密钥的方法中,由于加入了用户的部分公钥信息,加强了用户公钥信息与哈希函数的关联性,使密钥生成中心在生成用户私钥的过程中受到用户的制约,提高了签名的安全性。

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