当前位置: 首页 > 专利查询>武汉大学专利>正文

基于两方协同的SM2数字签名方法技术

技术编号:19186150 阅读:1042 留言:0更新日期:2018-10-17 02:12
本发明专利技术公开了一种基于两方协同的SM2数字签名方法,具体如下:参与签名的两方分别生成各自的公私钥对(dA,PA),(dB,PB)和签名验证公钥PAB;签名时,A和B首先协商出一个会话密钥sk。接下来,A和B分别选择随机数kA∈Zn,kB∈Zn计算RA=[kA]G,RB=[kB]G,并用会话密钥加密后发送给对方。最后A计算部分签名;B计算部分签名,并以密文形式发送给A。本发明专利技术适用于在两方不泄露各自部分签名密钥的情况下共同完成SM2协同签名,产生签名的过程必须有双方同时参与,且生成签名的过程中不恢复完整的签名密钥,保证了签名密钥的安全性,提高了双方参与签名的公平性。

SM2 digital signature method based on two party collaboration

The invention discloses a SM2 digital signature method based on two-party cooperation, which is as follows: each party involved in the signature generates its own public-private key pair (dA, PA), (dB, PB) and signature verification public key PAB respectively; when signing, A and B first negotiate a session key sk. Next, A and B select the random number kA < Zn, kB < Zn to compute RA = [kA] G and RB = [kB] G, respectively, and encrypt them with session key and send them to each other. Finally, A calculates partial signature; B calculates partial signature and sends it to A in ciphertext form. The invention is suitable for completing SM2 cooperative signature without divulging the signature keys of the two parties. Both parties must participate in the process of signature generation, and the complete signature key is not restored in the process of signature generation, which ensures the security of the signature key and improves the fairness of both parties participating in the signature.

【技术实现步骤摘要】
基于两方协同的SM2数字签名方法
本专利技术涉及信息安全技术,尤其涉及一种基于两方协同的SM2数字签名方法。
技术介绍
数字签名是数字化环境下的对传统手写签名的模拟,可以提供数字信息的不可伪造性、认证性和完整性。通常情况下,一方生成数字签名,可以被其他方公开验证。随着互联网的发展,数字签名技术已经应用于金融、商务、军事和外交等诸多领域。为了降低签名权利集中或签名密钥丢失带来的风险,一些特殊的文档,如高机密的文件通常需要多人协同才能完成签名。针对这类问题,常见的解决方法是采用门限秘密共享方案。在这种方法中,签名密钥被分割成t个子密钥,并安全地分给t个参与者掌管,这些参与者中的k个及以上所构成的子集可以重构签名密钥,少于k个参与者则无法获得完整签名密钥。然而,恢复出完整签名密钥之后,持有完整签名密钥的一方就可以在其他参与方不知情的情况下独立地进行签名,从而破坏了系统的安全性和公平性。特别是在只有两个参与方的情况下,某一方恢复并持有完整签名密钥,就可以在另一方不知情的情况下,独立地进行签名,给系统造成利益损失。针对这种情况,本专利技术设计了一种两方协同SM2数字签名方案,实现两个参与方之间协同完成数字签名,该签名必须由两方共同参与,并且在签名过程中没有恢复完整的签名密钥,即保证签名的正确性,又能保证签名密钥的安全性。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于两方协同的SM2数字签名方法及系统。本专利技术解决其技术问题所采用的技术方案是:基于两方协同的SM2数字签名方法,包括以下步骤:1)参与协同签名的签名方A和签名方B,以密钥生成中心作为可信第三方,生成签名公私钥、通信会话密钥和其他参数;1.1)签名方A随机选择一个大整数dA∈Zn作为私钥,计算对应的公钥为PA=[dA]G;签名方B随机选择一个大整数dB∈Zn作为私钥,计算对应的公钥为PB=[dB]G;其中,Zn为模大整数n的剩余类;1.2)B发送PB给A;1.3)A计算可公开签名验证公钥PAB=[dA]PB-G;1.4)A和B分别以大整数1/dA和1/dB为输入运行πmul,A得到输出tA′,B得到输出t′B,即满足其中,1/dA为大整数dA∈Zn模n的逆,即dA·1/dA=1(modn);1/dB为大整数dB∈Zn模n的逆;πmul为预设的一种基于不经意传输协议的乘法器,该乘法器定义如下:由两个参与方A,B运行,A,B对πmul输入分别为大整数a∈Zn和b∈Zn,πmul分别返回输出大整数t′A和t′B给A,B,使其满足t′A+t′B=a·b;1.5)A秘密保存参数(dA,PA,PB,t′A),公开公钥PAB;B秘密保存参数(dB,PA,PB,t′B);2)A和B协商产生一个会话密钥sk;3)A选择随机数kA∈Zn,计算RA=[kA]G,并对其进行加密,记作C1=Encsk(RA);B选择随机数kB∈Zn,计算RB=[kB]G并对其进行加密,记作C2=Encsk(RB);4)A发送C1给B;B计算RA=Decsk(C1)和α=h(RA,RB,sk),将(C2,α)发送给A;5)A计算RB=Decsk(C2)和β=h(RA,RB,sk),验证α是否与β相等,如果不相等则终止签名,如果相等,A计算e=h(M),[x1,y1]←[kA]RB和r=e+x1,并将β发送给B;6)B验证α是否与β是否相等,如果不相等则终止签名,如果相等则计算e=h(M),[x1,y1]←[kB]RA和r=e+x1,执行下一步;7)A和B共同运行πmul:A的输入为B的输入为A的输出为t″A,B的输出为t″B,即满足8)B计算SigB=t″B+r·t′B,再计算C3=Encsk(SigB),B把C3发送给A;9)A解密得SigB=Decsk(C4),然后计算A计算SigA=t″A+r·t′A和s=SigA+SigB-r,获得最终签名结果(r,s);本专利技术产生的有益效果是:本专利技术适用于在两方不泄露各自部分签名密钥的情况下共同完成SM2协同签名,产生签名的过程必须有双方同时参与,且生成签名的过程中不恢复完整的签名密钥,保证了签名密钥的安全性,提高了双方参与签名的公平性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的初始化步骤示意图;图2是本专利技术实施例的协同签名步骤示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提出了一种基于两方协同的SM2数字签名方法,下面给出具体描述。符号及定义:G:椭圆曲线上的基点;h():密码杂凑函数;A,B:参与签名的两方;dA,dB:签名参与方A,B对应的私钥;PA,PB:签名参与方对应的公钥;PAB:用于验证最终签名正确性的可公开公钥;sk:会话密钥;M:待签名的消息;e:待签名的消息的杂凑值;n:基点G的阶(n是素因子);modn:模n运算,例如,23mod7=2;kA,kB:签名参与方A,B选择的随机数;RA,RB:签名参与方A,B计算的椭圆曲线点;t′A,t′B,t″A,t″B:模n大整数;[k]P:椭圆曲线上点P的k倍点,即k是正整数;大整数x∈Zn模n的逆,即a·b:整数a,b相乘;Encsk():密钥为sk的对称加密算法;Decsk():密钥为sk的对称解密算法;C1,C2,C3:密文;α,β:杂凑值;SigA,SigB:签名参与方A,B分别计算的部分签名值;(r,s):签名结果;[x1,y1]←P:椭圆曲线上点P的横坐标为x1,纵坐标为y1;基于不经意传输的乘法器:本专利技术使用一种基于不经意传输协议的乘法器,记为πmul,该乘法器由两个参与方A,B运行,A,B对πmul输入分别为大整数a和b,πmul分别返回输出大整数t′A和t′B给A,B,使其满足t′A+t′B=a·b。基于两方协同的SM2数字签名方法,包括以下步骤:一、初始化,如图1所示:在本专利技术中,针对参与协同签名的两方,分别产生签名公私钥、通信会话密钥和其他参数,操作如下:1.签名方A随机选择一个大整数dA∈Zn作为私钥,计算对应的公钥为PA=[dA]G;签名方B随机选择一个大整数dB∈Zn作为私钥,计算对应的公钥为PB=[dB]G。2.B发送PB给A。3.A计算PAB=[dA]PB-G,并把计算结果公布。4.A和B分别以1/dA和1/dB为输入运行πmul,A得到输出t′A,B得到输出t′B,使之满足5.A秘密保存参数(dA,PA,PB,PAB,t′A);B秘密保存参数(dB,PA,PB,t′B)。二、两方协同SM2签名,如图2所示,:在本专利技术中,数字签名由两方A和B协同完成,具体操作如下:1.A和B协商产生一个会话密钥sk。2.A选择随机数kA∈Zn,计算RA=[kA]G并对其进行加密,记作C1=Encsk(RA);B选择随机数kB∈Zn,计算RB=[kB]G并对其进行加密,记作C2=Encsk(RB)。3.A发送C1给B。4.B计算RA=Decsk(C1)和α=h(RA,RB,sk),将(C2,α)发送给A。5.A计算RB=Decsk(C2)和β=h(RA,RB,sk),验证α本文档来自技高网...

【技术保护点】
1.一种基于两方协同的SM2数字签名方法,其特征在于,包括以下步骤:1)参与协同签名的签名方A和签名方B,各自生成签名公私钥、协同通信会话密钥和其他参数;1.1)签名方A随机选择一个大整数dA∈Zn作为私钥,计算对应的公钥为PA=[dA]G;签名方B随机选择一个大整数dB∈Zn作为私钥,计算对应的公钥为PB=[dB]G,签名方A,B计算签名验证公钥;其中,Zn为模大整数n的剩余类;1.2)B发送PB给A;1.3)A计算可公开签名验证公钥PAB=[dA]PB‑G;1.4)A和B分别以大整数1/dA和1/dB为输入运行πmul,A得到输出t′A,B得到输出t′B,即满足

【技术特征摘要】
1.一种基于两方协同的SM2数字签名方法,其特征在于,包括以下步骤:1)参与协同签名的签名方A和签名方B,各自生成签名公私钥、协同通信会话密钥和其他参数;1.1)签名方A随机选择一个大整数dA∈Zn作为私钥,计算对应的公钥为PA=[dA]G;签名方B随机选择一个大整数dB∈Zn作为私钥,计算对应的公钥为PB=[dB]G,签名方A,B计算签名验证公钥;其中,Zn为模大整数n的剩余类;1.2)B发送PB给A;1.3)A计算可公开签名验证公钥PAB=[dA]PB-G;1.4)A和B分别以大整数1/dA和1/dB为输入运行πmul,A得到输出t′A,B得到输出t′B,即满足其中,1/dA为大整数dA∈Zn模n的逆,即dA·1/dA=1(modn);1/dB为大整数dB∈Zn模n的逆;πmul为预设的一种基于不经意传输协议的乘法器,该乘法器定义如下:由两个参与方A,B运行,A,B对πmul输入分别为大整数a∈Zn和b∈Zn,πmul分别返回输出大整数t′A和t′B给A,B,使其满足t′A+t′B=a·b;1.5)A秘密保存参数(dA,PA,PB,t′A);B秘密保存参数(dB,PA,PB,t′...

【专利技术属性】
技术研发人员:何德彪王婧张语荻冯琦
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

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

1