一种支持离线预计算的标识签名方法与流程

文档序号:25289672发布日期:2021-06-01 17:40阅读:143来源:国知局
一种支持离线预计算的标识签名方法与流程

本发明属于计算机网络安全技术领域,尤其是涉及一种支持离线预计算的标识签名方法。



背景技术:

传统的数字签名体制涉及到证书的管理,导致开销较大,标识密码作为无证书公钥密码体质,利用身份即公钥的特性使得网络通信的双方身份无需交互证书天然自证公钥,消除传统公钥密码体制中的公钥证书管理问题,在泛在网络环境中较传统公钥密码更加适用。

在基于身份的签名方案(ibs)中,使用用户的身份派生出公钥,再生成对应的私钥,从而避免了对证书的需求,简化了密钥管理过程。因此,ibs方案在许多实际应用中是优选的。

在众多ibs方案中,基于全域哈希的签名方案由于引入了random-oracle模型,安全性更容易得到证明,与传统的盲交换方案效果比效率更高。hess-ibs和cc-ibs均为基于标识密码的签名方案的标准实现。经典的ibs方案中,在频繁使用的签名阶段和验证阶段,生成身份密钥需要使用的计算资源开销很大,且身份密钥较大。



技术实现要素:

本发明提供一种支持离线预计算的标识签名方法,基于面向身份的无证书ibc密码体制的签名方法,在验证中采用基于身份标识的密码体制,完全避免验证公钥和公钥证书带来的计算量和通信量。

本发明提供一种支持离线预计算的标识签名方法,包括如下步骤:

s10:密钥生成机构pkg生成初始化参数,系统主密钥和主公钥ppub,将所述初始化参数、系统主密钥和主公钥ppub形成系统公共参数并发布;

s20:所述密钥生成机构为用户生成相应的身份私钥d和身份公钥pa;

s30:签名方使用自己的身份密钥对需要签名的原文m进行签名并得到相应的签名sig,其中,签名方在签名之前,利用自己身份信息ida离线预计算b=e(pa,ppub);

s40:验证方使用签名方的身份信息ida对签名方的签名sig和原文m进行验证,根据验证后结果确定签名的真实性,其中,验证方在验证之前,根据签名方身份信息离线预计算e=e(pa,ppub)。

进一步的,s10步中包括:

s101:密钥生成机构根据输入系统安全系数,生成初始化参数{p1,p2,g1,g2,gt,e,h1,h2,h3},其中g1和g2为加法群,p1为g1群的生成元,p2为g2群的生成元,gt为乘法群,e为g1上元素和g2上元素到gt的双线性对映射,h1,h2,h3为安全密码函数;h1(u)以将任意长度二进制字符串u映射到一个循环加法群g1的元素,h2(v,w)以将循环加法群g2上的元素v和循环乘法群gt上的元素w映射到长度为l的二进制字符串,h2(v,w)表示为g2×gt→{0,1}l,{0,1}l表示长度为l的二进制字符串,h3表示为{0,1}n×{0,1}n→z/qz;

s102:密钥生成机构pkg随机产生主密钥s0,并计算主公钥ppub=[s0]·p2,并发布系统公共参数pp=<g1,g2,gt,p1,p2,ppub,h1,h2,h3,e>。

进一步的,s20步中,密钥生成机构pkg为标识为<i1>的用户生成签名身份私钥d1和身份公钥pa,计算d1=[s0]·h1(i1),pa=h1(i1)。

进一步的,s30步中包括以下步骤:

s301:签名方根据自己身份ida离线预计算b=e(pa,ppub);

s302:签名方选取随机数r,根据随机数r计算v=br

s303:签名方根据v和原文数据m计算整数h=h2(m,v);

s304:签名方计算群元素u=d1·(r+h),最终生成签名为sig=<v,u>。

进一步的,s40步中包括以下步骤:

s401:接收签名的验证者根据签名方身份信息离线预计算e=e(pa,ppub);

s402:验证方根据原文数据m和签名信息计算k=h2(m,v);

s403:验证方根据原文数据m和签名信息计算f=e(u,p2);

s404:验证方验证f=v·ek?,若成立则证明签名合法,验证出的明文可信,否则验证的明文不可信。

本发明很好地支持了身份签名的功能,确保了方案的安全性和有效性。与现有技术相比,支持离线预计算的标识签名方法和系统的有益效果是:利用全域哈希运算和用户身份签名方法,在使用更为频繁的签名阶段,将计算资源开销最大的对运算通过离线预计算的方式提前完成,大大减少了身份密钥生成的计算开销,且使得身份密钥保持为一个群上点的大小。

附图说明

图1是本发明支持离线预计算的标识签名方法概要流程示意图;

图2是本发明支持离线预计算的标识签名方法详细流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书的术语“第一”、“第二”、“第三”、“第四”等(如果存在)或“左”、“右”、“前”、“后”、“顶”、“底”是用于区别类似的对象或便于本发明的结构描述,而不必用于描述特定的顺序或先后次序以及限制本发明的结构技术特征。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明的目的在于提供一种支持离线预计算的标识签名方法,以提升系统的抗攻击能力。以下将结合的具体实施例对本发明进行说明,但并不因此而限制本发明的保护范围。

实施例

本实施例提供一种支持离线预计算的标识签名方法,基于面向身份的全域哈希ibc密码体制的签名方法,实现密钥定长的标识签名。以下重点结合身份签名过程和签名验证过程的具体实施例对本发明进行说明。如图1和图2所示,本发明的一种支持离线预计算的标识签名方法包括以下步骤:

s10系统初始化阶段:密钥生成机构pkg生成初始化参数,生成系统主密钥和主公钥,形成系统公共参数pp=<g1,g2,gt,p1,p2,ppub,h1,h2,h3,e>并发布。

s10步包括以下子步骤:

s101:密钥生成机构pkg根据输入系统安全系数,生成初始化参数{p1,p2,g1,g2,gt,e,h1,h2,h3}。pkg为全局选定一条特定的椭圆曲线,例如选定椭圆曲线为:y2=x3-x,选定的椭圆曲线在有限域上的点构成了q(q为素数)阶群g1和g2,其中p1为g1群的生成元,p2为g2群的生成元。再根据群g1和g2利用椭圆曲线上的weil对或者tate对,构造双线性映射e,使得e:g1×g2→gt。系统参数管理模块依据循环加法群g1选取哈希函数h1(u)以将任意长度二进制字符串u映射到一个循环加法群g1的元素,h1(u)表示为{0,1}*→g1,{0,1}*表示任意长度二进制字符串;系统参数管理模块依据循环乘法群g2选取哈希函数h2(v,w)将循环加法群g2上的元素v和循环乘法群gt上的元素w映射到长度为l的二进制字符串,h2(v,w)表示为g2×gt→{0,1}l,{0,1}l表示长度为l的二进制字符串,h3表示为{0,1}n×{0,1}n→z/qz。

s102:密钥生成机构pkg运行随机数生成算法,为系统选择所需的随机数;pkg选择随机s0∈zq*作为主密钥,其他机构无法获知;密钥生成机构pkg根据初始化参数和主密钥,得到主公钥ppub=[s0]·p2。pkg公布公共参数列表<g1,g2,gt,p1,p2,ppub,h1,h2,h3,e>。

s20密钥分发阶段:密钥生成机构给用户生成相应的身份私钥d。

s20步包括如下子步骤:

s201:密钥生成机构利用主密钥用户生成身份私钥。其中私钥分发模块利用主密钥、用户身份标识,经过全域哈希运算和群乘法,计算得到对应的身份私钥。

每个用户的身份信息采用基于椭圆曲线的全域哈希生成对应私钥d,具体实现方法为:输入身份信息ida,采用h1进行基于椭圆曲线的全域哈希映射为椭圆曲线上的一点pa;将pkg自己的主密钥s与用户身份标识的哈希结果h1(ia)作乘法,计算得到的结果即为密钥da。将用户身份信息以字符串的形式直接映射为椭圆曲线上点的实现方法即为pkg公共参数列表中的哈希算法h1。即针对用户身份ida=<ia>,公钥为

pa=h1(ia)

私钥为

da=[s]·h1(ia)

s30签名阶段:发送者利用自己身份信息对应的私钥对消息原文m进行签名,得到签名sig。

s30步包括如下子步骤:

s301:签名方,根据自己身份ida可以离线预计算b=e(pa,ppub),此过程参数不涉及具体可变信息,输入均为系统公开参数,可提前计算,不记入算法资源开销。

s302:签名方选取随机数r,根据随机数和上述结果计算v=br

s303:签名方将签名原文m和上述结果连接,然后利用全域哈希函数h2计算部分签名,结果为h=h2(m,v)。

s304:签名方利用随机数r、上述结果h和自己的私钥da计算剩余部分签名u=da(r+h)。最终生成签名sig(v,u),并发送给验证方。

s40验证阶段:验证方利用签名者的身份信息<ida>、签名方发送的签名sig(v,u)和数据原文m进行验证,判断签名的真实性。

s40包括如下子步骤:

s401:对于接收签名的验证方,可根据签名者身份信息ida离线预计算e=e(pa,ppub),其中ida=<ia>,pa=h1(ia),此计算不计入算法运算开销。

s402:验证方根据原文数据m和签名信息v,计算k=h2(m,v)。

s403:验证方根据公开参数p2、原文数据m和签名信息u,计算f=e(u,p2)。

s404:验证方进一步验证f=v·ek

若成立则证明签名合法,验证出的明文可信,若否,验证出的明文不可信。

本发明对cc-ibs的签名和验证算法和流程进行改进,采用不同的密钥封装方式,通过签名方和验证方的离线预计算对方案进行加速,实现全新的密钥定长标识签名方案。本发明的有益效果是利用全域哈希运算和用户身份签名方法,并且在使用更为频繁的签名阶段,将计算资源开销最大的对运算通过离线预计算的方式提前完成,大大减少了身份密钥生成的计算开销,显著提升算法效率,且使得身份密钥保持为一个群上点的大小。

以上仅是本发明的优选实施例,并非对本发明作任何形式上的限制。虽然本发明已以优选实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围的情况下,都可利用上述揭示的技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

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