一种基于SM9签名的两方适配器签名生成方法及系统

文档序号:37808803发布日期:2024-04-30 17:18阅读:11来源:国知局
一种基于SM9签名的两方适配器签名生成方法及系统

本发明属于信息安全,涉及一种两方适配器签名生成方法及系统,特别涉及一种基于sm9签名的两方适配器签名生成方法及系统。


背景技术:

1、数字签名是一种重要的密码技术,它可以用于验证数字信息完整性和真实性。相较于传统的纸质签名或盖章,数字签名通过一系列密码运算对此进行了替代。数字签名在互联网时代中扮演着非常重要的角色,是一种用于身份认证和验证数字内容合法性的核心技术。随着信息网络技术的不断发展,数字签名技术已经广泛应用于电子邮件、电子商务、数字证书等领域,用于确保数字信息的安全和可靠性。

2、适配器签名(adaptor signature)是一种新型的密码原语,它是从标准数字签名扩展而来的,该签名算法在其“预签名”中隐藏了一个秘密值,或者可以称为一个困难关系的证据。知道该秘密值的人可以将预签名转换为一个完整的签名,且得到的完整签名可以使用对应签名方案的标准验证算法进行验证。适配器签名在解决区块链可扩展性问题方面非常有用,并已用于构建区块链扩展协议,如支付通道或原子交换。在此基础上,可以进行两方适配器签名方案的构建,以增强适配器签名在隐私保护方面的应用。

3、sm9标识密码算法是由国家密码管理局于2016年3月28日发布的一种标识密码标准(国密标准编号为“gm/t 0044-2016sm9标识密码算法”)。sm9标识密码算法是一种基于身份的密码体制,该算法中所使用的公、私钥对是根据用户的身份标识产生的,用户的公钥是用户的身份标识,用户的私钥则由私钥生成中心kgc根据用户的身份产生,主要包括数字签名算法、密钥交换算法和公钥加密算法3个部分。


技术实现思路

1、为了进一步完善国产功能型密码算法体系,本发明提供了一种基于sm9算法的两方适配器签名生成方法及系统,在sm9适配器签名结构的基础上,设计了两方协同产生适配器签名的流程。

2、本发明的方法所采用的技术方案是:一种基于sm9签名的两方适配器签名生成方法,其特征在于:用户a拥有设备a1和设备a2,两方协同对消息进行适配器签名;具体包括以下步骤:

3、步骤1:密钥生成中心kgc产生主私钥msk,主公钥ppub,设备a1的私钥设备a2的私钥用户a的签名私钥did;其中,用户a身份记为id;

4、步骤2:设备a1发送分布式预签名请求给设备a2,设备a2发送(μ1,μ2)给设备a1,设备a1发送l给设备a2,设备a2发送(s1,s2)给设备a1,设备a1输出预签名值其中,μ1,μ2是2个随机承诺值;l是生成的中间变量;s1,s2是生成的返回值;h是签名的一部分,π是零知识证明,z是承诺值;

5、步骤3:验证预签名值

6、步骤4:给定预签名值和困难关系解y,计算完整的签名值σ=(h,s),其中

7、作为优选,步骤1的具体实现包括以下子步骤:

8、步骤1.1:密钥生成中心kgc产生随机数作为主私钥,并计算主公钥ppub=[d]p2;其中,q是一个大素数,是由1,2,,…,q-1组成的整数集合;p2为群g2的生成元,g2是阶为n的加法循环群;[d]p2表示椭圆曲线上点p2的d倍点;

9、步骤1.2:密钥生成中心kgc随机选取计算发送给设备a1;其中,p1为群g1的生成元,g1阶为n的加法循环群;为设备a1的私钥;

10、步骤1.3:密钥生成中心kgc计算并计算gt中的元素g=e(p1,ppub),计算发送给设备a2;其中,id为用户的可辨别标识,h(id)是id的哈希值,modq为模q运算;gt是阶为n的乘法循环群,e是从g1×g2到gt的双线性对映射;为设备a2的私钥;

11、步骤1.3:密钥生成中心kgc计算用户a的私钥其中,h1(·)是由密码杂凑函数派生的密码函数,为

12、作为优选,步骤2中,所述设备a2发送(μ1,μ2)给设备a1,设备a2首先随机选取k1,然后计算最后发送(μ1,μ2)给设备a1。

13、作为优选,步骤2中,所述设备a1发送l给设备a2,设备a1首先随机选取k3,然后设备a1生成困难关系实例iz={((z,ida,ppub),y)|y∈g1,e(y,h1(ida)·p2+ppub)=z},其中y是证据,并生成零知识证明π=py{((z,id,ppub),y)|y∈g1,e(y,h1(ida)·p2+ppub)=z};其中,z是承诺值;接着设备a1计算计算h=h2(m||μ),l=(k4-h)modq;其中,h2(·)是由密码杂凑函数派生的密码函数,为m表示待签名的消息;最后设备a1发送l给设备a2。

14、作为优选,步骤2中,所述设备a2发送(s1,s2)给设备a1,首先设备a2计算s1=k1·d2modq,s2=(l+k2)·d2modq;然后设备a2发送(s1,s2)给设备a1。

15、作为优选,步骤2中,所述设备a1输出预签名值首先设备a1计算然后输出消息m的预签名值

16、作为优选,步骤3的具体实现包括以下子步骤:

17、步骤3.1:验证零知识证明是否正确,如果成立,则进行下一步;反之,则终止;

18、步骤3.2:计算p=h1(ida)·p2+ppub;

19、步骤3.3:计算

20、步骤3.4:判断h=h2(m||w)是否成立,若成立,则为合法签名;反之,则签名无效。

21、作为优选,给定预签名值签名值σ和困难关系实例iy,计算验证是否为一个正确的困难关系实例,如果是,则提取成功并输出困难关系实例中的证据y;否则,提取失败。

22、本发明的系统所采用的技术方案是:一种基于sm9签名的两方适配器签名生成系统,包括:

23、一个或多个处理器;

24、存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于sm9签名的两方适配器签名生成方法。

25、本发明与现有技术相比具有如下优点和有益效果:

26、1、随着适配器签名技术的发展,目前已有学者提出基于国密sm9的适配器签名方案,但是基于sm9算法的两方适配器签名尚未有人提出;

27、2、安全性高,安全依赖性直接依赖于国密sm9算法的安全性;

28、3、两方适配器签名的生成满足自主可控的安全需求。



技术特征:

1.一种基于sm9签名的两方适配器签名生成方法,其特征在于:用户a拥有设备a1和设备a2,两方协同对消息进行适配器签名;具体包括以下步骤:

2.根据权利要求1所述的基于sm9签名的两方适配器签名生成方法,其特征在于,步骤1的具体实现包括以下子步骤:

3.根据权利要求2所述的基于sm9签名的两方适配器签名生成方法,其特征在于:步骤2中,所述设备a2发送(μ1,μ2)给设备a1,设备a2首先随机选取然后计算最后发送(μ1,μ2)给设备a1。

4.根据权利要求3所述的基于sm9签名的两方适配器签名生成方法,其特征在于:步骤2中,所述设备a1发送l给设备a2,设备a1首先随机选取然后设备a1生成困难关系实例iz={((z,ida,ppub),y)|y∈g1,e(y,h1(ida)·p2+ppub)=z},其中y是证据,并生成零知识证明π=py{((z,id,ppub),y)|y∈g1,e(y,h1(ida)·p2+ppub)=z};其中,z是承诺值;接着设备a1计算计算=h2(m||μ),l=(k4-h)mod q;其中,h2(·)是由密码杂凑函数派生的密码函数,为m表示待签名的消息;最后设备a1发送l给设备a2。

5.根据权利要求4所述的基于sm9签名的两方适配器签名生成方法,其特征在于:步骤2中,所述设备a2发送(s1,s2)给设备a1,首先设备a2计算s1=k1·d2modq,s2=(l+k2)·d2modq;然后设备a2发送(s1,s2)给设备a1。

6.根据权利要求5所述的基于sm9签名的两方适配器签名生成方法,其特征在于:步骤2中,所述设备a1输出预签名值首先设备a1计算然后输出消息m的预签名值

7.根据权利要求6所述的基于sm9签名的两方适配器签名生成方法,其特征在于,步骤3的具体实现包括以下子步骤:

8.根据权利要求1-7任意一项所述的基于sm9签名的两方适配器签名生成方法,其特征在于:给定预签名值签名值σ和困难关系实例iy,计算验证是否为一个正确的困难关系实例,如果是,则提取成功并输出困难关系实例中的证据y;否则,提取失败。

9.一种基于sm9签名的两方适配器签名生成系统,其特征在于,包括:


技术总结
本发明公开了一种基于SM9签名的两方适配器签名生成方法及系统,方法包括密钥生成,分布式预签名生成,预签名验证,签名适配和证据提取步骤;本发明在SM9适配器签名算法的基础上,添加了两方协同生成签名的功能,能够进一步完善国产功能型密码算法体系。本发明具有安全性高、功能完善等优点,产生适配器签名的过程必须有在通信双方共同参与的情况下才能分布式生成SM9适配器签名,能够有效阻止外部攻击者对签名子密钥的窃取和内部参与者的伪造,提高了两方参与SM9适配器签名生成的安全性和公平性。

技术研发人员:包子健,朱鑫杰,罗敏,彭聪,何德彪
受保护的技术使用者:武汉大学
技术研发日:
技术公布日:2024/4/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1