CN116318654A - 融合量子密钥分发的sm2算法协同签名***、方法及设备 - Google Patents
融合量子密钥分发的sm2算法协同签名***、方法及设备 Download PDFInfo
- Publication number
- CN116318654A CN116318654A CN202310027747.5A CN202310027747A CN116318654A CN 116318654 A CN116318654 A CN 116318654A CN 202310027747 A CN202310027747 A CN 202310027747A CN 116318654 A CN116318654 A CN 116318654A
- Authority
- CN
- China
- Prior art keywords
- quantum key
- key
- parameter
- client
- algorithm
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种融合量子密钥分发的SM2算法协同签名***、方法和装置,涉及密码应用技术领域。客户端使用SM2算法生成第一加密参数,根据加密公钥和第一量子密钥生成待签名消息的第一摘要,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;服务端使用第二量子密钥对第一加密数据进行完整性校验和解密,使用SM2算法根据第一加密参数生成第二加密参数;客户端根据第二加密参数生成数字签名。协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
Description
技术领域
本发明涉及密码应用技术领域,具体涉及一种融合量子密钥分发的SM2算法协同签名***、方法及设备。
背景技术
椭圆曲线密码(简称ECC)是一种基于在有限域上定义的椭圆曲线的数学难题的公开密钥体制。SM2算法是指由GB/T 32918-2016《信息安全技术SM2椭圆曲线公钥密码算法》标准中规定的椭圆曲线公钥密码算法,是ECC密码体制的一种具体算法。在云计算环境和SaaS化的应用中部署了大量软件实现的密码模块,对这些软件密码模块的使用涉及到SM2密码算法中私钥的安全性问题,以及由此带来的在开放环境中数字签名的可信性问题。为应对开放环境中私钥签名的安全性问题,一般来讲可以采用协同签名的技术,即由开放环境中的软件密码模块和封闭式的硬件密码模块(HSM,常见为密码机)分别存储部分私钥,两方联合才能对消息进行数字签名操作,任何一方均无法获取到另外一方私钥的任何信息,因此就算攻击者成功入侵位于开放环境中的软件密码模块,也不能伪造签名。
专利文件CN104243456A,公开了适用于云计算的基于SM2算法的签名及解密方法和***,该方案中SM2算法产生数字签名(r,s),r仅由第二通信方基于消息摘要e产生,而第一通信方是在第二通信方传回的r基础上进行处理,而不是直接对消息摘要e进行处理,存在以下可能性:第二通信方基于e'产生r'并传回第一通信方进行签名处理,并将第一通信方最终发布的消息由e的原始消息替换为e'的原始消息,即达到了骗取第一通信方对其不知情的e',进行协同签名的目的。
现有技术中,实现协同签名需要在两个签名方之间传递一些重要的数据,这些数据的传输过程往往缺乏完整性保护,存在被篡改的可能性;而且,协同签名对消息和消息摘要的处理以其中一方为主,另外一方是在已经处理过的消息摘要基础上进行,存在消息摘要被替换伪造签名的情况,导致协同签名安全性较低。
发明内容
本发明的目的就在于解决上述背景技术的问题,而提出一种融合量子密钥分发的SM2算法协同签名***、方法及设备。
本发明的目的可以通过以下技术方案实现:
本发明实施例第一方面,首先提供了一种融合量子密钥分发的SM2算法协同签名***,包括客户端、服务端和量子分发QKD网络;其中:
所述客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据所述客户端和所述服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给所述服务端;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
所述服务端,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
所述客户端,还用于使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
本发明实施例第二方面,还提供了一种融合量子密钥分发的SM2算法协同签名方法,所述方法应用于客户端,包括:
使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
将所述第一加密数据发送给所述服务端;以使所述服务端,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
可选地,在使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要之前,所述方法还包括:
获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
将所述协商数据发送给所述服务端;以使所述服务端,通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
可选地,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||IDC||ENTLS||IDS||xG||yG||x||y)
其中,IDC和IDS分别为所述客户端的用户标识和所述服务端的用户标识,ENTLC和ENTLS分别为用户标识的标识长度,xG和yG为椭圆曲线G点坐标,x和y为公钥PG的坐标;
根据Z和待签名消息M计算第二中间参数M’:
M’=Z||IDkey||M
其中,IDkey为第一量子密钥的密钥ID;
以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。
可选地,所述第二加密参数的计算过程为:服务端产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止;
根据所述第二加密参数生成数字签名包括:
计算K1*Dc -1[*]Q2+Q3得到计算结果(x1,y1)(即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,进一步计算s=(Dc -1*S3+S2*S1-r)mod n,其中,若s不等于0且不等于n-r,则将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名对外发布;若s等于0或等于n-r,则重新进行协同签名。
本发明实施例第三方面,还提供了一种融合量子密钥分发的SM2算法协同签名方法,所述方法应用于服务端,包括:
接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:所述客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到所述第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
从所述QKD网络获取所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要;
从所述QKD网络获取所述第一量子密钥,使用所述第一量子密钥生成所述待签名消息的第二摘要,将所述第一摘要和所述第二摘要进行对比;
若所述第一摘要和所述第二摘要对比无误,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
可选地,在接收客户端发送的第一加密数据之前,所述方法还包括:
接收所述客户端发送的协商数据;所述协商数据的产生过程为:客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
可选地,所述第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
使用SM2算法根据所述第一加密参数生成第二加密参数,包括:
产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+emod n,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止。
本发明实施例第四方面,还提供了一种融合量子密钥分发的SM2算法协同签名装置,所述装置应用于客户端,包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
加密模块,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将所述第一加密数据发送给所述服务端;以使所述服务端,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
第一协同签名模块,用于使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
本发明实施例第五方面,还提供了一种融合量子密钥分发的SM2算法协同签名装置,所述装置应用于服务端,包括:
数据接收模块,用于接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:所述客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到所述第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
解密模块,用于从所述QKD网络获取所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要;
验证模块,用于从所述QKD网络获取所述第一量子密钥,使用所述第一量子密钥生成所述待签名消息的第二摘要,将所述第一摘要和所述第二摘要进行对比;
第二协同签名模块,用于若所述第一摘要和所述第二摘要对比无误,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
本发明的有益效果:
本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名***,包括客户端、服务端和量子分发QKD网络;其中:客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给服务端;预设存储介质中保存有QKD网络注入的多个量子密钥;服务端,用于从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要,第一摘要和第二摘要对比无误后,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;客户端,还用于使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
附图说明
下面结合附图对本发明作进一步的说明。
图1为本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名***的***框图;
图2为本发明实施例提供的一种应用于客户端的融合量子密钥分发的SM2算法协同签名方法的流程图;
图3为本发明实施例提供的一种应用于服务端的融合量子密钥分发的SM2算法协同签名方法的流程图;
图4为本发明实施例提供的一种应用于客户端的融合量子密钥分发的SM2算法协同签名装置的结构图;
图5为本发明实施例提供的一种应用于服务端的融合量子密钥分发的SM2算法协同签名装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名***。参见图1,图1为本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名***的***框图。该***包括客户端、服务端和量子分发QKD网络;其中:
客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据客户端和所述服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给所述服务端;预设存储介质中保存有QKD网络注入的多个量子密钥;
服务端,用于从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要,第一摘要和第二摘要对比无误后,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;
客户端,还用于使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。
基于本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名***,协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
一种实现方式中,本发明通过以下方法及***结构实现发明的内容,包括:
客户端:协同签名发起方和发布方,一般为运行在云端或移动端的软件形态的密码模块;
服务端:协同签名参与方和共有公钥的发布方,一般为具有硬件边界的密码机(HSM)。
密钥代理:在不能直接在量子密钥分发网络的节点进行密钥充注的情况下提供密钥充注的代理功能;
量子密钥分发网络:包含量子网络节点和量子网络链路控制中心,实现量子密钥生成、量子密钥中继、量子密钥提供等服务;
量子网络节点:存储生成的量子密钥,接收密钥代理的密钥申请,向密钥代理提供密钥或直接提供密钥充注服务;
量子网络链路控制中心:可按照量子网络节点ID建立节点间的量子密钥分发及中继链路。
一种实现方式中,通过量子密钥分发QKD网络,使用安全TF卡或安全U盾等大容量安全存储介质,为客户端和服务端的软件或硬件密码模块预充注大量的量子密钥,每支量子密钥格式为4字节密钥ID+L字节密钥(L与加密算法相关)。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名方法。参见图2,图2为本发明实施例提供的一种应用于客户端的融合量子密钥分发的SM2算法协同签名方法的流程图。包括:
S201,使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要。
S202,在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据。
S203,将第一加密数据发送给服务端,以使服务端,从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要,第一摘要和第二摘要对比无误后,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端。
S204,使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。
预设存储介质中保存有QKD网络注入的多个量子密钥。
基于本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名方法,协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
一种实现方式中,第一加密数据还可以包括该客户端的用户ID、第一量子密钥的第一密钥ID和第二量子密钥的第二密钥ID。服务端可以分别根据用户ID和第一密钥ID、用户ID和第二密钥ID从QKD网络获取对应的第一量子密钥和第二量子密钥。
在一个实施例中,在步骤S201之前,该方法还包括:
步骤一,获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点。
步骤二,产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用第三量子密钥对第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据。
步骤三,将协商数据发送给服务端;以使服务端,通过QKD网络获取第三量子密钥,使用第三量子密钥对协商数据进行完整性校验和解密得到第一私钥数据,产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
在一个实施例中,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||IDC||ENTLS||IDS||xG||yG||x||y)
其中,IDC和IDS分别为客户端的用户标识和服务端的用户标识,ENTLC和ENTLS分别为用户标识的标识长度,xG和yG为椭圆曲线G点坐标,x和y为公钥PG的坐标;
根据Z和待签名消息M计算第二中间参数M’:
M’=Z||IDkey||M
其中,IDkey为第一量子密钥的密钥ID;
以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。
一种实现方式中,Key1为第一量子密钥,签名的杂凑计算采用了带量子密钥的杂凑运算,只有拥有或获取与身份匹配的量子密钥才能进行正确的签名和验证,量子密钥的正确性和有效性由量子密钥分发***进行保障,这样在协同签名的基础上进一步增强了开放环境数字签名的安全性和可信性。
在一个实施例中,第二加密参数的计算过程为:服务端产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止;
根据第二加密参数生成数字签名包括:
计算K1*Dc -1[*]Q2+Q3得到计算结果(x1,y1)(即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,进一步计算s=(Dc -1*S3+S2*S1-r)mod n,其中,若s不等于0且不等于n-r,则将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名对外发布;若s等于0或等于n-r,则重新进行协同签名。
一种实现方式中,若s等于0或等于n-r,则重新从S201开始执行进行协同签名。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名方法。参见图3,图3为本发明实施例提供的一种应用于服务端的融合量子密钥分发的SM2算法协同签名方法的流程图。包括:
S301,接收客户端发送的第一加密数据。
S302,从QKD网络获取第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要。
S303,从QKD网络获取第一量子密钥,使用第一量子密钥生成待签名消息的第二摘要,将第一摘要和第二摘要进行对比。
S304,若第一摘要和第二摘要对比无误,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端,以使客户端使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。
第一加密数据的产生过程为:客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;预设存储介质中保存有所述QKD网络注入的多个量子密钥。
基于本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名方法,协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
一种实现方式中,将第一摘要和第二摘要进行对比,可以验证签名摘要是否被篡改,降低了一方伪造欺诈的可能性。
一种实现方式中,客户端的操作步骤可以参考上述步骤S201-204的介绍。
在一个实施例中,在步骤S301之前,方法还包括:
接收客户端发送的协商数据;协商数据的产生过程为:客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用第三量子密钥对第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过QKD网络获取第三量子密钥,使用第三量子密钥对协商数据进行完整性校验和解密得到第一私钥数据;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
在一个实施例中,第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
使用SM2算法根据第一加密参数生成第二加密参数,包括:
产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+emod n,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名装置。参见图4,图4为本发明实施例提供的一种应用于客户端的融合量子密钥分发的SM2算法协同签名装置的结构图。包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要;预设存储介质中保存有QKD网络注入的多个量子密钥;
加密模块,在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将第一加密数据发送给服务端;以使服务端,从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要,第一摘要和第二摘要对比无误后,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;
第一协同签名模块,用于使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。
基于本发明实施例提供的一种融合量子密钥分发的SM2算法协同签名装置,协同签名双方的通信交互过程采用量子密钥分发***提高了协同签名的安全性,客户端和服务端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发的SM2算法协同签名装置。参见图5,图5为本发明实施例提供的一种应用于服务端的融合量子密钥分发的SM2算法协同签名装置的结构图。包括:
数据接收模块,用于接收客户端发送的第一加密数据;第一加密数据的产生过程为:客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;预设存储介质中保存有QKD网络注入的多个量子密钥;
解密模块,用于从QKD网络获取第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要;
验证模块,用于从QKD网络获取第一量子密钥,使用第一量子密钥生成待签名消息的第二摘要,将第一摘要和第二摘要进行对比;
第二协同签名模块,用于若第一摘要和第二摘要对比无误,使用SM2算法根据第一加密参数生成第二加密参数,使用第二量子密钥对第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;以使客户端使用第二量子密钥对第二加密数据进行完整性校验和解密得到第二加密参数,根据第二加密参数生成数字签名。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (10)
1.一种融合量子密钥分发的SM2算法协同签名***,其特征在于,包括客户端、服务端和量子分发QKD网络;其中:
所述客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据所述客户端和所述服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给所述服务端;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
所述服务端,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
所述客户端,还用于使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
2.一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,所述方法应用于客户端,包括:
使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
将所述第一加密数据发送给所述服务端;以使所述服务端,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
3.根据权利要求2所述的一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,在使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要之前,所述方法还包括:
获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
将所述协商数据发送给所述服务端;以使所述服务端,通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
4.根据权利要求3所述的一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||IDC||ENTLS||IDS||xG||yG||x||y)
其中,IDC和IDS分别为所述客户端的用户标识和所述服务端的用户标识,ENTLC和ENTLS分别为用户标识的标识长度,xG和yG为椭圆曲线G点坐标,x和y为公钥PG的坐标;
根据Z和待签名消息M计算第二中间参数M’:
M’=Z||IDkey||M
其中,IDkey为第一量子密钥的密钥ID;
以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。
5.根据权利要求4所述的一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,所述第二加密参数的计算过程为:服务端产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止;
根据所述第二加密参数生成数字签名包括:
计算K1*Dc -1[*]Q2+Q3得到计算结果(x1,y1)(即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e mod n,进一步计算s=(Dc -1*S3+S2*S1-r)mod n,其中,若s不等于0且不等于n-r,则将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名对外发布;若s等于0或等于n-r,则重新进行协同签名。
6.一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,所述方法应用于服务端,包括:
接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:所述客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到所述第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
从所述QKD网络获取所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要;
从所述QKD网络获取所述第一量子密钥,使用所述第一量子密钥生成所述待签名消息的第二摘要,将所述第一摘要和所述第二摘要进行对比;
若所述第一摘要和所述第二摘要对比无误,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
7.根据权利要求2所述的一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,在接收客户端发送的第一加密数据之前,所述方法还包括:
接收所述客户端发送的协商数据;所述协商数据的产生过程为:客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DS,计算公钥PG=DS[*]P1-G=(DCDS-1)[*]G,并发布公钥。
8.根据权利要求7所述的一种融合量子密钥分发的SM2算法协同签名方法,其特征在于,所述第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K1,以Dc -1为Dc在Fq上的逆元,计算Q1=K1*Dc -1[*]G,S1=Dc -1*(K1*Dc -1)mod n,将Q1和S1作为第一加密参数;
使用SM2算法根据所述第一加密参数生成第二加密参数,包括:
产生两个位于[1,n-1]之间的随机数K2和K3,计算Q2=K2*Ds -1[*]G,Q3=K3*Ds[*]G,计算K2*Ds -1[*]Q1+Q3得到计算结果(x1,y1),即(K1*K2*Dc -1*Ds -1+K3*Ds)[*]G),并计算r=x1+e modn,其中,若r不等于0,则进一步计算S2=Ds -1*(K2*Ds -1)mod n,S3=Ds -1*(r+K3*Ds)mod n,将Q2、Q3、S2和S3作为第二加密参数;若r等于0,则服务端可重新产生K2,并重新计算得到(x1,y1)和r,直到r不等于0为止。
9.一种融合量子密钥分发的SM2算法协同签名装置,其特征在于,所述装置应用于客户端,包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
加密模块,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将所述第一加密数据发送给所述服务端;以使所述服务端,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要,所述第一摘要和所述第二摘要对比无误后,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;
第一协同签名模块,用于使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
10.一种融合量子密钥分发的SM2算法协同签名装置,其特征在于,所述装置应用于服务端,包括:
数据接收模块,用于接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:所述客户端使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到所述第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
解密模块,用于从所述QKD网络获取所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要;
验证模块,用于从所述QKD网络获取所述第一量子密钥,使用所述第一量子密钥生成所述待签名消息的第二摘要,将所述第一摘要和所述第二摘要进行对比;
第二协同签名模块,用于若所述第一摘要和所述第二摘要对比无误,使用SM2算法根据所述第一加密参数生成第二加密参数,使用所述第二量子密钥对所述第二加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据进行完整性校验和解密得到所述第二加密参数,根据所述第二加密参数生成数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310027747.5A CN116318654A (zh) | 2023-01-09 | 2023-01-09 | 融合量子密钥分发的sm2算法协同签名***、方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310027747.5A CN116318654A (zh) | 2023-01-09 | 2023-01-09 | 融合量子密钥分发的sm2算法协同签名***、方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116318654A true CN116318654A (zh) | 2023-06-23 |
Family
ID=86833129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310027747.5A Pending CN116318654A (zh) | 2023-01-09 | 2023-01-09 | 融合量子密钥分发的sm2算法协同签名***、方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116318654A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743347A (zh) * | 2023-08-09 | 2023-09-12 | 山西工程科技职业大学 | 基于多模激光器同步的物理密钥多路并行分发***及方法 |
-
2023
- 2023-01-09 CN CN202310027747.5A patent/CN116318654A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743347A (zh) * | 2023-08-09 | 2023-09-12 | 山西工程科技职业大学 | 基于多模激光器同步的物理密钥多路并行分发***及方法 |
CN116743347B (zh) * | 2023-08-09 | 2023-10-20 | 山西工程科技职业大学 | 基于多模激光器同步的物理密钥多路并行分发***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11621833B2 (en) | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system | |
CN109922077B (zh) | 一种基于区块链的身份认证方法及其*** | |
JP6515246B2 (ja) | 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定 | |
US9647833B2 (en) | System and method for identity-based key management | |
CN114730420A (zh) | 用于生成签名的***和方法 | |
US20210152370A1 (en) | Digital signature method, device, and system | |
CN110535626B (zh) | 基于身份的量子通信服务站保密通信方法和*** | |
CN111884811B (zh) | 一种基于区块链的数据存证方法和数据存证平台 | |
TWI760546B (zh) | 用於高安全性高速資料加密及傳輸的電腦實施系統與方法 | |
CN111865582B (zh) | 基于零知识证明的私钥离线存储方法、***及存储介质 | |
CN111756529A (zh) | 一种量子会话密钥分发方法及*** | |
CN109547413B (zh) | 具有数据源认证的可转换的数据云存储的访问控制方法 | |
CN111756528A (zh) | 一种量子会话密钥分发方法、装置及通信架构 | |
CN112165386A (zh) | 一种基于ecdsa的数据加密方法及*** | |
CN116318654A (zh) | 融合量子密钥分发的sm2算法协同签名***、方法及设备 | |
NL1043779B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
CN116684093B (zh) | 身份认证与密钥交换方法及*** | |
CN116232578A (zh) | 一种融合量子密钥分发的多方协同签名***、方法及设备 | |
CN113656818B (zh) | 满足语义安全的无可信第三方云存储密文去重方法与*** | |
CN113918971A (zh) | 基于区块链的消息传输方法、装置、设备及可读存储介质 | |
CN112925535A (zh) | 一种密码芯片嵌入式应用安装方法及装置 | |
Barker et al. | SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised) | |
CN110868285A (zh) | 认证方法、服务器、***和计算机可读存储介质 | |
CN115460020B (zh) | 数据共享方法、装置、设备及存储介质 | |
CN112163171B (zh) | 一种基于终端签名的数据记链方法 |
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 |