CN114978488A - 一种基于sm2算法的协同签名方法及系统 - Google Patents
一种基于sm2算法的协同签名方法及系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, 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算法的协同签名方法及系统。
背景技术
为了降低签名权利集中或签名密钥丢失带来的风险,一些特高机密的文件通常需要多人协同才能完成签名。
现有的方法是门限秘密共享方法,在此方法中,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输入和运行π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,满足其中,为大整数a∈Zn模n的逆,即 为大整数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),具体包括:
步骤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输入和运行π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,满足其中,为大整数a∈Zn模n的逆,即 为大整数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),具体包括:
步骤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)。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115801234A (zh) * | 2022-10-11 | 2023-03-14 | 蓝象智联(杭州)科技有限公司 | 一种基于国密的数据不经意传输方法 |
-
2022
- 2022-05-05 CN CN202210480842.6A patent/CN114978488A/zh active Pending
Cited By (2)
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 |