一种基于SM2算法的拆分密钥签名方法与系统技术方案

技术编号:23628343 阅读:216 留言:0更新日期:2020-03-31 23:50
本发明专利技术提供一种基于SM2算法的拆分密钥签名方法和系统,一方面达到拆分密钥保证私钥安全的目的,通信双方各自生成自己的子私钥,只有通过通信双方协同计算才能得到最后的签名结果;另一方面,提供了一种基于SM2算法的拆分密钥签名的极简方案。该方案利用通信一方子私钥的模逆与椭圆曲线上基点G的运算结果作为一个关键参数,减少了算法的运算量和通信双方交互的数据量,还减少了需要安全存储的重要参数的数据量,从而可以降低数据泄露的风险,减少双方交互时间延迟,使算法具有更好的适用性。此外,通过对双方子私钥和关键参数分别进行安全存储,进一步增加了系统的安全性。

A method and system of split key signature based on SM2 algorithm

【技术实现步骤摘要】
一种基于SM2算法的拆分密钥签名方法与系统
本专利技术涉及信息安全和密码学应用
,具体涉及一种基于SM2算法的拆分密钥签名方法与系统。
技术介绍
密码技术是信息安全的核心技术。椭圆曲线公钥密码(简称ECC)算法近年来有了较大的发展和广泛的应用,国家密码管理局于2010年12月17日发布了椭圆曲线公钥密码算法SM2,在我国电子商务、身份认证等应用中发挥了重要的安全保障作用。在公钥密码体制中,保证私钥的安全性是一个非常重要的问题。用户的私钥通常需要在专门的密码硬件中安全存储和使用,私钥不能从密码硬件中导出。但是,随着公钥密码算法应用的普及,SM2算法在电子商务、电子政务、移动警务、移动办公等体系和应用中得到了广泛使用,在车联网、智能医疗系统、智能家居系统等物联网应用以及云计算系统中也发挥了越来越重要的作用。很多使用SM2算法的系统和终端,特别是智能移动终端中,并没有配置密码芯片或者TF卡、USBKey等形式的硬件密码模块,只能依赖于软件密码模块来完成密码运算,私钥则需要存储在用户终端本地存储介质中。虽然私钥存储时可以使用加密、PIN码本文档来自技高网...

【技术保护点】
1.一种基于SM2算法的拆分密钥签名系统,其特征在于,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块、第一安全存储模块、第三安全存储模块和第一通信模块,所述第二通信方包括第二密码运算模块、第二安全存储模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;/n所述第一通信方通过所述第一密码运算模块产生随机数d1∈[1,n-1],作为所述第一通信方的子私钥,存入所述第一安全存储模块;所述第二通信方通过所述第二密码运算模块产生随机数d2∈[1,n-1],作为所述第二...

【技术特征摘要】
1.一种基于SM2算法的拆分密钥签名系统,其特征在于,包括第一通信方和第二通信方,所述第一通信方包括第一密码运算模块、第一安全存储模块、第三安全存储模块和第一通信模块,所述第二通信方包括第二密码运算模块、第二安全存储模块和第二通信模块,所述第一通信方和所述第二通信方通过所述第一通信模块和所述第二通信模块通信连接;所述第一通信方和所述第二通信方共享SM2算法椭圆曲线E和E上阶为n的基点G;
所述第一通信方通过所述第一密码运算模块产生随机数d1∈[1,n-1],作为所述第一通信方的子私钥,存入所述第一安全存储模块;所述第二通信方通过所述第二密码运算模块产生随机数d2∈[1,n-1],作为所述第二通信方的子私钥,存入所述第二安全存储模块;所述第二通信方通过所述第二密码运算模块根据d2和G计算得到椭圆曲线点P2=[d2-1]G,其中d2-1表示d2的乘法逆元d2-1modn;然后通过所述第二通信模块把P2发送给所述第一通信方;所述第一通信方通过所述第一通信模块接收P2,存入所述第三安全存储模块,然后由所述第一密码运算模块根据d1、P2和G计算得到公钥P=[d1-1]P2-G,并通过所述第一通信模块公开所述公钥,其中d1-1表示d1的乘法逆元d1-1modn;
当需要签名时,所述第一通信方通过所述第一密码运算模块对待签名消息M进行签名预处理,得到消息摘要e;然后产生随机数k1∈[1,n-1],从所述第三安全存储模块获取P2,根据k1和P2计算得到第一部分签名W1=[k1]P2,并通过所述第一通信模块将e和W1发送给所述第二通信方;
所述第二通信方通过所述第二通信模块接收e和W1,由所述第二密码运算模块产生随机数k2∈[1,n-1],根据k2和G计算得到第二部分签名W2=[k2]G;然后根据W1和W2计算椭圆曲线点W=W1+W2,W的坐标为(x1,y1);再根据x1和e计算得到第三部分签名r=(x1+e)modn;若r=0,则由所述第二密码运算模块重新产生随机数以及计算第二部分签名和第三部分签名;
所述第二通信方从所述第二安全存储模块获取d2,通过所述第二密码运算模块,根据k2、d2和r计算得到第四部分签名s1=(d2*k2+d2*r)modn,并通过所述第二通信模块将s1和r发送给所述第一通信方;
所述第一通信方通过所述第一通信模块接收s1和r,从所述第一安全存储模块获取d1,再由所述第一密码运算模块根据d1、k1、s1和r计算s=(d1*(k1+s1)-r)modn,若s≠0,所述第一通信方输出M及其数字签名(r,s);若s=0,则重新开始通信双方协同签名过程。


2.根据权利要求1所述的基于SM2算法的拆分密钥签名系统,其特征在于,所述第一通信方对待签名消息M进行签名预处理,得到消息摘要e,包括:所述第一通信方使用密码杂凑函数计算所述第一通信方的杂凑值Z,再将Z与M拼接为M1,然后对M1使用杂凑函数,得到所述消息摘要e。


3.根据权利要求1或2所述的基于SM2算法的拆分密钥签名系统,其特征在于,所述第一安全存储模块,和/或所述第二安全存储模块,和/或所述第三安全存储模块,通过软件或者硬件存储...

【专利技术属性】
技术研发人员:赵国磊廖正赟刘熙胖何骏彭金辉刘武忠李鑫卫志刚
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1