CN114978488A - 一种基于sm2算法的协同签名方法及系统 - Google Patents

一种基于sm2算法的协同签名方法及系统 Download PDF

Info

Publication number
CN114978488A
CN114978488A CN202210480842.6A CN202210480842A CN114978488A CN 114978488 A CN114978488 A CN 114978488A CN 202210480842 A CN202210480842 A CN 202210480842A CN 114978488 A CN114978488 A CN 114978488A
Authority
CN
China
Prior art keywords
signer
parameter
signature
calculating
sigb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210480842.6A
Other languages
English (en)
Inventor
许盛伟
刘昌赫
吕姗霖
甘楠
邓烨
和羽辛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Original Assignee
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE filed Critical BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Priority to CN202210480842.6A priority Critical patent/CN114978488A/zh
Publication of CN114978488A publication Critical patent/CN114978488A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于SM2算法的协同签名方法及系统,其方法包括:步骤S1:签名方A和B各自生成参数(dA,PA,PB,t’A)和(dB,PA,PB,t’B);S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算RA和RB,并利用sk加密后计算参数M1与M2;S3:签名A和B分别对M2、M1进行解密并计算参数α与β;签名方A验证α与β是否相等;如果不等,则转至S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;S4:签名方B计算SigB,发给A,签名方A计算SigA,并基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。本发明提供的方法即保证签名的正确性,又能保证签名密钥的安全性。

Description

一种基于SM2算法的协同签名方法及系统
技术领域
本发明涉及通信和信息安全领域,具体涉及一种基于SM2算法的协同签名方法及系统。
背景技术
为了降低签名权利集中或签名密钥丢失带来的风险,一些特高机密的文件通常需要多人协同才能完成签名。
现有的方法是门限秘密共享方法,在此方法中,s个签名参与方分别持有私钥的一部分,并且当超过阈值t个被分割密钥才可以恢复完整私钥,完成签名或解密操作。但缺点是若私钥被恢复,持有完整私钥的参与方就可以在其他参与方不知晓的情况下独立进行签名,带来极大的安全风险。
因此,如何在两方共同参与签名,且在该过程中无需恢复完整的签名密钥成为一个亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供一种基于SM2算法的协同签名方法及系统。
本发明技术解决方案为:一种基于SM2算法的协同签名方法,包括:
步骤S1:签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t’A、t’B,签名方A保存参数(dA,PA,PB,t’A),签名方B保存参数(dB,PA,PB,t’B);
步骤S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算M1与M2;其中,M1,M2代表所传输的密文;
步骤S3:签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;其中,α与β代表杂凑值;
步骤S4:签名方A与B分别计算参数t”A和t”B,签名方B基于t’B、t”B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,其中,M3代表所传输的密文,并基于t’A、t”A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。
本发明与现有技术相比,具有以下优点:
本发明公开了一种基于SM2算法的协同签名方法,签名过程中可以保证签名的两方参与方不会暴露各自的签名密钥,且签名必须由双方同时参与才能完成,进而提高了签名方案的安全性和公平性。
附图说明
图1为本发明实施例中一种基于SM2算法的协同签名方法的流程图;
图2为本发明实施例中基于SM2算法的协同签名方法的初始化步骤示意图;
图3为本发明实施例中基于SM2算法的协同签名步骤示意图;
图4为本发明实施例中一种基于SM2算法的协同签名系统的结构框图。
具体实施方式
本发明提供了一种基于SM2算法的协同签名方法,提高了签名方案的安全性和公平性。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
实施例一
如图1所示,本发明实施例提供的一种基于SM2算法的协同签名方法,包括下述步骤:
步骤S1:签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t’A、t’B,签名方A保存参数(dA,PA,PB,t’A),签名方B保存参数(dB,PA,PB,t’B);
步骤S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2,其中,M1,M2代表所传输的密文;
步骤S3:签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;其中,α与β代表杂凑值;
步骤S4:签名方A与B分别计算参数t”A和t”B,签名方B基于t’B、t”B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,其中,M3代表所传输的密文,并基于t’A、t”A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。
如图2所示,在一个实施例中,上述步骤S1:签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t’A、t’B,签名方A保存参数(dA,PA,PB,t’A),签名方B保存参数(dB,PA,PB,t’B),具体包括:
步骤S11:签名方A随机生成一个大整数dA∈Zn作为私钥,计算公钥PA=[dA]*G,并将PA发送给签名方B;其中,G为椭圆曲线上的基点,Zn为模大整数n的剩余类;n是素数的因子,作为基点G的阶;
步骤S12:签名方B随机生成一个大整数dB∈Zn作为私钥,计算公钥PB=[dB]*G,并将PB发给A;
步骤S13:签名方A和签名方B输入
Figure BDA0003627756710000031
Figure BDA0003627756710000032
运行πm,分别得到输出值t’A和t’B;其中,t’A与t’B是模n大整数;πm为预设的基于不经意传输协议的乘法器,满足条件:由两个参与方A和B运行,A和B对πm输入分别为大整数a∈Zn和b∈Zn,πm分别返回大整数tA和tB给A和B,满足
Figure BDA0003627756710000033
其中,
Figure BDA0003627756710000034
为大整数a∈Zn模n的逆,即
Figure BDA0003627756710000035
Figure BDA0003627756710000036
为大整数b∈Zn模n的逆;
步骤S14:A保存参数(dA,PA,PB,t’A),B保存参数(dB,PA,PB,t’B)。
如图3所示,在一个实施例中,上述步骤S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2,其中,M1,M2代表所传输的密文,具体包括:
步骤S21:签名方A与B共同生成会话密钥sk;
步骤S22:签名方A选择一个随机数kA∈Zn,计算RA=[kA]*G,并基于sk对RA进行加密计算得到M1=Encsk(RA);将M1发送给签名方B,其中,M1,代表所传输的密文,Encsk代表秘钥为sk的对称加密算法;
步骤S23:签名方B选择一个随机数kB∈Zn,计算RB=[kB]*G,并基于sk对RB进行加密计算得到记M2=Encsk(RB),其中,M2代表所传输的密文。
在一个实施例中,上述步骤S3:签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r,其中,α与β代表杂凑值,具体包括:
步骤S31:签名方B收到M1后,基于sk对其解密计算得到RA=Decsk(M1);对RA,RB,sk进行哈希计算,得到α=H(RA,RB,sk),其中,H()为哈希函数;签名方B将(M2,α)发送给签名方A;其中,Decsk代表秘钥为sk的对称解密算法;
步骤S32:签名方A收到M2后,基于sk对其解密计算得到RB=Decsk(M2);对RA,RB,sk进行哈希计算,得到β=H(RA,RB,sk);
步骤S33:签名方A验证α与β是否相等;如果不等,则转至步骤S1,重新进行新一轮的计算,否则,签名方A计算参数:e=H(M)、[x’1,y’1]←[kA]*RB和r=e+x’1,其中,M为待签名的消息,e为M的杂凑值,[x’1,y’1]←[kA]*RB为在椭圆曲线[kA]*RB点上的横纵坐标x’1和y’1;同时签名方A将β发给签名方B;
步骤S34:签名方B验证α与β是否相等;如果不等,则转至步骤S1,重新进行新一轮的计算,否则,签名方B计算参数:e=H(M)、[x’1,y’1]←[kA]*RB和r=e+x’1
在一个实施例中,上述步骤S4:签名方A与B分别计算参数t”A和t”B,签名方B基于t’B、t”B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,其中,M3代表所传输的密文,并基于t’A、t”A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s),具体包括:
步骤S41:签名方A与B分别以输入
Figure BDA0003627756710000041
Figure BDA0003627756710000042
共同运行πm,分别得到参数t”A和t”B,满足条件:
Figure BDA0003627756710000043
步骤S42:签名方B计算B方签名:SigB=t”B+r*t’B;将SigB基于sk加密后得到M3=Encsk(SigB),并发送M3给签名方A;其中,M3代表所传输的密文;
步骤S43:签名方A对M3基于sk进行解密,得到SigB=Decsk(M3),并计算A方签名SigA=t”A+r*t’A和参数s=SigA+SigB-r;获得最终签名结果(r,s)。
图3展示了基于SM2算法的协同签名步骤示意图。
本发明公开了一种基于SM2算法的协同签名方法,下面对其安全性进行分析:
1、密钥分片协议的安全性:
客户端通过PIN码来保护密钥分片,但攻击方无法离线通过暴力尝试不同PIN码的方法来恢复私钥分片。对于客户端的保护方案并不报告读取私钥时使用的PIN码是否正确,加载的私钥是否恢复成功,因此必须请求协同签名服务器提供信息,才能够知道尝试PIN码的正确性。
同时,客户端只存储一半的私钥文件,而一半私钥是无法完成数字签名或者加解密操作的。所以无需担心密钥因丢失或被盗而带来的安全问题。
2、协同签名协议的安全性
协同签名服务器可以有效确认移动端的签名的合法性,进一步可以确认移动端是否正确地恢复了私钥分片,可以有效锁定在线暴力破解PIN码的行为。
SM2算法的协同签名仅可以保证只有用户端可以生成完整的数字签名,若没有客户端的配合,服务端就不能生成完整的数字签名,从而验证保证数字签名的合法性。
而终端密码模块和联合签名服务器提供了一种方法简单、安全的SM2联合数字签名方法和装置,即将私钥分割为两个部分:第一分片子密钥和第二分片子密钥。
第一分片子密钥存放到客户端,第二分片子密钥由联合签名服务器派生生成。最后,完成的协同签名在客户端生成,完整签名可以实现数据的不可否认和操作的不可抵赖。
SM2的安全性是基于ECDLP的难度(椭圆曲线离散对数问题),且该方案的安全性问题在于若缺失任一方共享的秘密,则无法恢复用户的私钥。那么对于基于SM2数字签名的秘密共享协议,先假设攻击方A知道k2,d2与正确的签名数据(r,s)。
(d1,d2…dt满足关系式:(1+dA)-1*dA=(d1+d2+…+dt)mod n,kn为随机的整数)。
签名方A选择随机数kA∈Zn,计算RA=[kA]G并对其进行加密,记作M1=Encsk(RA);B选择随机数kB∈Zn,计算RB=[kB]G并对其进行加密,记作M2=Encsk(RB)。
于是,可得到以下公式(1)~(3):
(1+dA)-1=(d1*d2)mod n, (1)
Q=[b(k1+k2)]G,w1=d1b mod n, (2)
s1=(k1+(b)-1r)mod n (3),其中,b是一个在区间[1,n-1]上取值的整数常数(保密),只有密钥持有者它
从公式(2)中找到b与k1的过程就是一个ECDLP,因此,第二个公式可以去掉,其他几个公式可以形成整数域上的四变量方程,四个未知数分别是:dA,d1,b与k1,它们的取值范围是从1到n-1,为了找到方程的正确解,需要计算标量乘法,因此,其算法复杂度并不比ECDLP低。
本发明公开了一种基于SM2算法的协同签名方法,签名过程中可以保证签名的两方参与方不会暴露各自的签名密钥,且签名必须由双方同时参与才能完成,进而提高了签名方案的安全性和公平性。
实施例二
如图4所示,本发明实施例提供了一种基于SM2算法的协同签名系统,包括下述模块:
初始化模块51,用于签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t’A、t’B,签名方A保存参数(dA,PA,PB,t’A),签名方B保存参数(dB,PA,PB,t’B);
加密模块52,用于签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2
校验模块53,用于签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;其中,α与β代表杂凑值;
签名模块54,用于签名方A与B分别计算参数t”A和t”B,签名方B基于t’B、t”B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,并基于t’A、t”A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

Claims (6)

1.一种基于SM2算法的协同签名方法,其特征在于,包括:
步骤S1:签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t′A、t′B,签名方A保存参数(dA,PA,PB,t′A),签名方B保存参数(dB,PA,PB,t′B);
步骤S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2,其中,M1,M2代表所传输的密文;
步骤S3:签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;其中,α与β代表杂凑值;
步骤S4:签名方A与B分别计算参数t″A和t″B,签名方B基于t′B、t″B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后得到SigB,其中,M3代表所传输的密文,并基于t′A、t″A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。
2.根据权利要求1所述的基于SM2算法的协同签名方法,其特征在于,所述步骤S1:签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t′A、t′B,签名方A保存参数(dA,PA,PB,t′A),签名方B保存参数(dB,PA,PB,t′B),具体包括:
步骤S11:签名方A随机生成一个大整数dA∈Zn作为私钥,计算公钥PA=[dA]*G,并将PA发送给签名方B;其中,G为椭圆曲线上的基点,Zn为模大整数n的剩余类;n是素数的因子,作为基点G的阶;
步骤S12:签名方B随机生成一个大整数dB∈Zn作为私钥,计算公钥PB=[dB]*G,并将PB发给A;
步骤S13:签名方A和签名方B输入
Figure FDA0003627756700000011
Figure FDA0003627756700000012
运行πm,分别得到输出值t′A和t′B,其中,t′A与t′B是模n大整数;πm为预设的基于不经意传输协议的乘法器,满足条件:由两个参与方A和B运行,A和B对πm输入分别为大整数a∈Zn和b∈Zn,πm分别返回大整数tA和tB给A和B,满足
Figure FDA0003627756700000021
其中,
Figure FDA0003627756700000022
为大整数a∈Zn模n的逆,即
Figure FDA0003627756700000023
Figure FDA0003627756700000024
为大整数b∈Zn模n的逆;
步骤S14:A保存参数(dA,PA,PB,t′A),B保存参数(dB,PA,PB,t′B)。
3.根据权利要求1所述的基于SM2算法的协同签名方法,其特征在于,所述步骤S2:签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2,其中,M1,M2代表所传输的密文,具体包括:
步骤S21:签名方A与B共同生成会话密钥sk;
步骤S22:签名方A选择一个随机数kA∈Zn,计算RA=[kA]*G,并基于sk对RA进行加密计算得到M1=Encsk(RA);将M1发送给签名方B;
步骤S23:签名方B选择一个随机数kB∈Zn,计算RB=[kB]*G,并基于sk对RB进行加密计算得到记M2=Encsk(RB)。
4.根据权利要求1所述的基于SM2算法的协同签名方法,其特征在于,所述步骤S3:签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r,其中,α与β代表杂凑值;具体包括:
步骤S31:签名方B收到M1后对其解密计算得到RA=Decsk(M1);对RA,RB,sk进行哈希计算,得到α=H(RA,RB,sk),其中,H()为哈希函数;签名方B将(M2,α)发送给签名方A;
步骤S32:签名方A收到M2后对其解密计算得到RB=Decsk(M2);对RA,RB,sk进行哈希计算,得到β=H(RA,RB,sk);
步骤S33:签名方A验证α与β是否相等;如果不等,则转至步骤S1,重新计算,否则,签名方A计算参数:e=H(M)、[x′1,y′1]←[kA]*RB和r=e+x′1,其中,M为待签名的消息,e为M的杂凑值,[x′1,y′1]←[kA]*RB:在椭圆曲线[kA]*RB点上的横纵坐标x′1和y′1;同时签名方A将β发给签名方B;
步骤S34:签名方B验证α与β是否相等;如果不等,则转至步骤S1,重新计算,否则,签名方B计算e=H(M)、[x′1,y′1]←[kA]*RB和r=e+x′1
5.根据权利要求1所述的基于SM2算法的协同签名方法,其特征在于,所述步骤S4:签名方A与B分别计算参数t″A和t″B,签名方B基于t′B、t″B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,其中,M3代表所传输的密文,并基于t′A、t″A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s),具体包括:
步骤S41:签名方A与B分别以输入
Figure FDA0003627756700000031
Figure FDA0003627756700000032
共同运行πm,分别得到参数t″A和t″B,满足条件:
Figure FDA0003627756700000033
步骤S42:签名方B计算B方签名:SigB=t″B+r*t′B;将SigB加密后得到M3=Encsk(SigB),并发送M3给签名方A;
步骤S43:签名方A对M3基于sk进行解密,得到SigB=Decsk(M3),并计算A方签名SigA=t″A+r*t′A和参数s=SigA+SigB-r;获得最终签名结果(r,s)。
6.一种基于SM2算法的协同签名系统,其特征在于,包括下述模块:
初始化模块,用于签名方A和B各自生成其私钥dA和dB;二者分别计算对应的公钥PA和PB发给对方,分别计算参数t′A、t′B,签名方A保存参数(dA,PA,PB,t′A),签名方B保存参数(dB,PA,PB,t′B);
加密模块,用于签名方A与B共同生成会话密钥sk;签名方A与B分别选择随机数kA和kB,分别计算其SM2椭圆曲线点RA和RB,并利用sk加密后计算参数M1与M2,其中,M1,M2代表所传输的密文;
校验模块,用于签名方B收到M1后对其解密计算,得到RA和α,将(M2,α)发送给签名方A;签名方A收到M2后对其解密计算,得到RB和β;签名方A验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方A计算参数r,并将β发给签名方B;签名方B验证α与β是否相等;如果不等,则转至步骤S1,否则,签名方B计算参数r;其中,α与β代表杂凑值;
签名模块,用于签名方A与B分别计算参数t″A和t″B,签名方B基于t′B、t″B和r计算B方签名SigB,将其加密后得到M3发送给签名方A,签名方A对M3解密后,得到SigB,其中,M3代表所传输的密文,并基于t′A、t″A和r计算A方签名SigA;签名方A基于SigA、SigB和r计算得到参数s,最终得到签名结果(r,s)。
CN202210480842.6A 2022-05-05 2022-05-05 一种基于sm2算法的协同签名方法及系统 Pending CN114978488A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210480842.6A CN114978488A (zh) 2022-05-05 2022-05-05 一种基于sm2算法的协同签名方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210480842.6A CN114978488A (zh) 2022-05-05 2022-05-05 一种基于sm2算法的协同签名方法及系统

Publications (1)

Publication Number Publication Date
CN114978488A true CN114978488A (zh) 2022-08-30

Family

ID=82981321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210480842.6A Pending CN114978488A (zh) 2022-05-05 2022-05-05 一种基于sm2算法的协同签名方法及系统

Country Status (1)

Country Link
CN (1) CN114978488A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115801234A (zh) * 2022-10-11 2023-03-14 蓝象智联(杭州)科技有限公司 一种基于国密的数据不经意传输方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115801234A (zh) * 2022-10-11 2023-03-14 蓝象智联(杭州)科技有限公司 一种基于国密的数据不经意传输方法
CN115801234B (zh) * 2022-10-11 2023-04-07 蓝象智联(杭州)科技有限公司 一种基于国密的数据不经意传输方法

Similar Documents

Publication Publication Date Title
CN108667626B (zh) 安全的两方协作sm2签名方法
US10530585B2 (en) Digital signing by utilizing multiple distinct signing keys, distributed between two parties
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及系统
CN112367175B (zh) 基于sm2数字签名的隐式证书密钥生成方法
CN107634836B (zh) 一种sm2数字签名生成方法及系统
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及系统
CN108199835B (zh) 一种多方联合私钥解密方法
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及系统
CN107248909B (zh) 一种基于sm2算法的无证书安全签名方法
US6697488B1 (en) Practical non-malleable public-key cryptosystem
US20060083370A1 (en) RSA with personalized secret
CN110138567B (zh) 一种基于ecdsa的协同签名方法
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和系统
CN111953479B (zh) 数据处理的方法及装置
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN113162773A (zh) 一种可证安全的异构盲签密方法
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
US20150006900A1 (en) Signature protocol
US20050240762A1 (en) Cryptographic method and apparatus
CN114978488A (zh) 一种基于sm2算法的协同签名方法及系统
JP4307589B2 (ja) 認証プロトコル
CN114389808A (zh) 一种基于SM9盲签名的OpenID协议设计方法
WO2023055371A1 (en) Replicated secret share generation for distributed symmetric cryptography

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination