本发明属于数字签名技术领域,具体涉及一种无证书聚合的数字签名体制的构造方法。
技术背景
2003年,al-riyami等人首次在亚密会议上提出无证书公钥密码体制,在该体制中,用户的私钥由密钥生成中心和用户共同生成,解决了传统公钥密码体制下证书管理和基于身份的公钥密码体制下的密钥托管问题。经过多年,无证书数字签名作为无证书公钥密码体制的重要组成部分已得到充分的发展,在电子政务和物联网安全等领域已有广泛应用。同年,boneh等人提出聚合签名的概念,即聚合签名是一种在数字签名领域的“批处理”和“压缩”技术:可同时给多个消息、多个用户提供不可否认服务,也可把任意多个用户的签名压缩成一个签名,有效地减少签名的存储空间,同时也降低对网络带宽的要求;另外,聚合签名允许把任意多个签名的验证简化到一次验证,大大减少了签名验证的工作量。
大部分无证书聚合数字签名方案基于双线性对构造,导致方案的计算效率较低。部分不采用双线性映射构造的方案在签名、聚合签名以及验证过程中均采用大量的点乘运算和点加运算,在一定程度上,导致方案的计算效率和实用性下降。不使用双线性映射的方法,由于其具有运算效率高、实用性强等优点,被大量用于无证书聚合签名方案的构造中。
王大星,滕济凯等人在《载网中可证安全的无证书聚合签名方案》(电子与信息学报,2018年,1月)提出一种适合于车载自组织网络的无证书聚合签名方法,但是该方法无法抵抗恶意密钥生成中心(keygenerationcenter,kgc)与rsu的联合攻击以及内部签名者的联合攻击,并且该方法使用了复杂的双线性对运算,使得方法的计算效率和实用性较低。xiey、lix、zhangs等人的文章《animprovedcertificatelessaggregatesignatureschemeforhealthcarewirelesssensornetworks》,(ieeeaccess,2019年7月)提出了一个可证明安全的无证书聚合签名方法,虽然该方法在设计过程未使用复杂的双线性对运算,但是其在聚合签名、验证阶段使用了大量的点乘、点加运算,使得方法的计算效率和实用性在一定程度上降低。
技术实现要素:
本发明所要解决的技术问题在于克服上述现有技术的缺点,采用不使用双线性映射的思想,提供一种安全性高、使用范围广、效率更高的无证书聚合的数字签名方法。
解决上述技术问题所采用的技术方案是由以下步骤组成:
(1)系统初始化
1)密钥生成中心为系统设置安全参数κ,选择3个安全的哈希函数h1,h2,h3:
其中
2)密钥生成中心从q阶整数群
ppub=msk·p
params={p,q,p,ppub,h1,h2,h3}
其中p和q是满足安全要求的2个大素数,且q能够整除p-1,p是循环群g的生成元。
(2)生成用户密钥
身份信息idi的用户与密钥生成中心执行交互协议,得到用户的密钥
所述的交互协议由下述步骤组成:
1)确定用户的部分公钥信息
其中
将用户的身份信息idi和用户的部分公钥信息
2)密钥生成中心收到用户的身份信息idi和用户的部分公钥信息
其中
3)用户收到部分公钥
若式(1)成立,设置用户的私钥
若式(1)不成立,输出失败信息,终止协议并退出。
(3)签名
设定签名生成者
其中
签名生成者
其中
(4)聚合签名
聚合签名者uagg为聚合签名验证者uver生成待验证的签名消息mi的聚合签名σ,mi∈{0,1}*:
σ=(t,s)
其中t,s是聚合签名的部分信息。
(5)签名验证
签名验证者uver判断式(2)是否成立
其中
由于本发明在各个步骤中未使用复杂的双线性对运算,在签名步骤中采用了3个点乘运算和2个点加运算,在验证步骤中采用了3个点乘运算方法,提高了本发明的计算效率和运算速度;另外,为抵抗敌手的公钥替换攻击,本发明在生成用户密钥的步骤中,加入了用户的部分公钥信息,加强了用户公钥信息与哈希函数的关联性,使密钥生成中心在生成用户私钥的过程中受到用户的制约,提高了签名的安全性。本发明具有计算效率高、运算速度快、保密性强的优点,可在网络技术领域中运用。
附图说明
图1是本发明实施例1的流程图。
具体实施方式
下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施例。
实施例1
在图1中,本实施例的无证书聚合的数字签名方法由以下步骤组成。
(1)系统初始化
1)密钥生成中心为系统设置安全参数κ,选择3个安全的哈希函数h1,h2,h3:
其中
2)密钥生成中心从q阶整数群
ppub=msk·p
params={p,q,p,ppub,h1,h2,h3}
其中p和q是满足安全要求的2个大素数,且q能够整除p-1,p是循环群g的生成元。
本实施例在该步骤中未使用复杂的双线性对运算,提高了整个方法的计算效率。
(2)生成用户密钥
身份信息idi的用户与密钥生成中心执行交互协议,得到用户的密钥
所述的交互协议由下述步骤组成:
1)确定用户的部分公钥信息
其中
将用户的身份信息idi和用户的部分公钥信息
2)密钥生成中心收到用户的身份信息idi和用户的部分公钥信息
其中
3)用户收到部分公钥
若式(1)成立,设置用户的私钥
若式(1)不成立,输出失败信息,终止协议并退出。
本实施例在该步骤中加强了用户公钥信息与哈希函数的关联性,使密钥生成中心在生成用户私钥的过程中受到用户的制约,提高了签名的保密性。
(3)签名
设定签名生成者
其中,
签名生成者
其中
本实施例在该步骤中采用了3个点乘运算和2个点加运算,签名过程简单,计算效率较高、运算速度快。
(4)聚合签名
聚合签名者uagg为聚合签名验证者uver生成待验证的签名消息mi的聚合签名σ,mi∈{0,1}*:
σ=(t,s)
其中t,s是聚合签名的部分信息。
本实施例在该步骤中采用了聚合的签名方法,可同时给多个消息、多个用户提供不可否认服务,也可将任意多个用户的签名压缩成一个签名,有效地减少了签名的存储空间,降低了对网络带宽的要求。
(5)签名验证
签名验证者uver判断式(2)是否成立
其中
本实施例在该步骤中采用了3个点乘运算方法,验证过程简单,计算效率较高、实用范围广;另外,在该步骤中允许把任意多个签名的验证简化到一次验证,大大减少了签名验证的工作量。
根据上述原理,还可设计出另外一种具体的无证书聚合的数字签名方法,但均在本发明的保护范围之内。
1.一种无证书聚合的数字签名方法,其特征在于由下述步骤组成:
(1)系统初始化
1)密钥生成中心为系统设置安全参数κ,选择3个安全的哈希函数h1,h2,h3:
其中
2)密钥生成中心从q阶整数群
ppub=msk·p
params={p,q,p,ppub,h1,h2,h3}
其中p和q是满足安全要求的2个大素数,且q能够整除p-1,p是循环群g的生成元;
(2)生成用户密钥
身份信息idi的用户与密钥生成中心执行交互协议,得到用户的密钥
所述的交互协议由下述步骤组成:
1)确定用户的部分公钥信息
其中
将用户的身份信息idi和用户的部分公钥信息
2)密钥生成中心收到用户的身份信息idi和用户的部分公钥信息
其中
3)用户收到部分公钥
若式(1)成立,设置用户的私钥
若式(1)不成立,输出失败信息,终止协议并退出;
(3)签名
设定签名生成者
其中
签名生成者
其中
(4)聚合签名
聚合签名者uagg为聚合签名验证者uver生成待验证的签名消息mi的聚合签名σ,mi∈{0,1}*:
σ=(t,s)
其中,t,s是聚合签名的部分信息;
(5)签名验证
签名验证者uver判断式(2)是否成立
其中
式(2)成立输出1,表示签名验证通过,式(2)不成立输出0,表示验证失败并退出。
技术总结