CN116232578A - 一种融合量子密钥分发的多方协同签名系统、方法及设备 - Google Patents
一种融合量子密钥分发的多方协同签名系统、方法及设备 Download PDFInfo
- Publication number
- CN116232578A CN116232578A CN202310027748.XA CN202310027748A CN116232578A CN 116232578 A CN116232578 A CN 116232578A CN 202310027748 A CN202310027748 A CN 202310027748A CN 116232578 A CN116232578 A CN 116232578A
- Authority
- CN
- China
- Prior art keywords
- quantum key
- encryption
- encryption parameter
- cooperative
- key
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Abstract
本发明公开了一种融合量子密钥分发多方协同签名系统、方法和装置,涉及密码应用技术领域。客户端获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数;协同端组获取第一量子密钥和第二量子密钥,各协同端依次更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端根据第一加密参数和所有第二加密参数生成第三加密参数,第N‑1个至第一个协同端依次根据第三加密参数反推第二加密参数;客户端根据第二加密参数和第三加密数据生成数字签名。协同签名多方的通信交互过程采用量子密钥分发系统提高了协同签名的安全性,客户端和协同端组中的多个协同端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
Description
技术领域
本发明涉及密码应用技术领域,具体涉及一种融合量子密钥分发的多方协同签名系统、方法及设备。
背景技术
椭圆曲线密码(简称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',进行协同签名的目的。
现有技术中,实现协同签名需要在两个签名方之间传递一些重要的数据,这些数据的传输过程往往缺乏完整性保护,存在被篡改的可能性;而且,协同签名对消息和消息摘要的处理以其中一方为主,另外一方是在已经处理过的消息摘要基础上进行,存在消息摘要被替换伪造签名的情况,导致协同签名安全性较低。
发明内容
本发明的目的就在于解决上述背景技术的问题,而提出一种融合量子密钥分发的多方协同签名系统、方法及设备。
本发明的目的可以通过以下技术方案实现:
本发明实施例第一方面,首先提供了一种融合量子密钥分发多方协同签名系统,包括客户端、协同端组和量子分发QKD网络;所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;其中:
所述客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给所述服务端;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
所述协同端组,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
所述客户端,还用于使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
本发明实施例第二方面,还提供了一种融合量子密钥分发多方协同签名方法,所述方法应用于客户端,包括:
使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
将所述第一加密数据发送给所述协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使所述协同端组,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
可选地,在使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要之前,所述方法还包括:
获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
将所述协商数据发送给所述协同端组;以使所述协同端组,通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
可选地,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K0,以Dc -1为Dc在Fq上的逆元,计算Q=((K0+e)mod n)[*]G,S=Dc -1*(K0+e)mod n,,将Q和S作为第一加密参数;
根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||I DC||ENTLS||I DS||xG||yG||x||y)
其中,I DC和I DS分别为所述客户端的用户标识和所述协同端的用户标识(I DS=DN||…D1),ENTLC和ENTLS分别为用户标识的标识长度,xG和yG为椭圆曲线G点坐标,x和y为公钥PG的坐标;
根据Z和待签名消息M计算第二中间参数M’:
M’=Z||I Dkey||M
其中,I Dkey为第一量子密钥的密钥I D;
以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。
可选地,所述第三加密参数的计算过程为:第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+emod n)[*]Qi-1,Q1=(K1+emod n)[*]Q,计算si=Di -1*(Ki+e)*si-1mod n,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*S modm;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(Kn+e)-K*DN)mod n[*]G,并计算r=x1+e mod n和SN=DN -1*r-K modn,DN -1为DN在Fq上的逆元;将r、QK和sN,作为所述第三加密参数;所述第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+1mod n,Di -1为Di在Fq上的逆元,并将Si作为所述第二加密参数;
根据所述第二加密参数和第三加密数据生成数字签名包括:
使用所述第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-rmod n,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
本发明实施例第三方面,还提供了一种融合量子密钥分发多方协同签名方法,所述方法应用于协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;所述方法包括:
接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;
所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
可选地,在接收客户端发送的第一加密数据之前,所述方法还包括:
接收所述客户端发送的协商数据;所述协商数据的产生过程为:所述客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
可选地,所述第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K0,以Dc -1为Dc在Fq上的逆元,计算Q=((K0+e)mod n)[*]G,S=Dc -1*(K0+e)mod n,将Q和S作为第一加密参数;
第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+e mod n)[*]Qi-1,Q1=(K1+e mod m)[*]Q,计算si=Di -1*(Ki+e)*si-1modn,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*Smod n;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(Kn+e)-K*DN)mod n[*]G,并计算r=x1+e mod m和SN=DN -1*r-K mod n,DN -1为DN在Fq上的逆元;将r、QK和sN,作为所述第三加密参数;所述第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+1mod n,Di -1为Di在Fq上的逆元,并将Si作为所述第二加密参数;
根据所述第二加密参数和第三加密数据生成数字签名包括:
使用所述第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-rmod n,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
本发明实施例第四方面,还提供了一种融合量子密钥分发多方协同签名装置,所述装置应用于客户端,包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
加密模块,用于在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将所述第一加密数据发送给所述协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使所述协同端组,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
第一协同签名模块,用于使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
本发明实施例第五方面,还提供了一种融合量子密钥分发多方协同签名装置,所述装置应用于服务端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;包括:
数据接收模块,用于接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
解密模块,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;
第二协同签名模块,所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
本发明的有益效果:
本发明实施例提供了一种融合量子密钥分发多方协同签名系统,包括客户端、协同端组和量子分发QKD网络;协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;其中:客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给服务端;预设存储介质中保存有QKD网络注入的多个量子密钥;协同端组,用于从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;第一摘要和第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;客户端,还用于使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。协同签名多方的通信交互过程采用量子密钥分发系统提高了协同签名的安全性,客户端和协同端组中的多个协同端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
附图说明
下面结合附图对本发明作进一步的说明。
图1为本发明实施例提供的一种融合量子密钥分发多方协同签名系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种融合量子密钥分发多方协同签名系统。参见图1,图1为本发明实施例提供的一种融合量子密钥分发多方协同签名系统的系统框图。包括客户端、协同端组和量子分发QKD网络;协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;其中:
客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给服务端;预设存储介质中保存有QKD网络注入的多个量子密钥;
协同端组,用于从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;第一摘要和第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给客户端;
客户端,还用于使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。
基于本发明实施例提供的一种融合量子密钥分发多方协同签名系统,协同签名多方的通信交互过程采用量子密钥分发系统提高了协同签名的安全性,客户端和协同端组中的多个协同端均直接对要签名的消息进行处理,降低了一方伪造欺诈的可能性。
一种实现方式中,本发明通过以下方法及系统结构实现发明的内容,包括:
客户端:协同签名发起方和发布方,一般为运行在云端或移动端的软件形态的密码模块;
协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;
协同端组:包括多个协同端,均是协同签名参与方,各协同端依次连接,最后一个协同端具有硬件边界的密码机(HSM),并作为共有公钥的发布方。
密钥代理:在不能直接在量子密钥分发网络的节点进行密钥充注的情况下提供密钥充注的代理功能;
量子密钥分发网络:包含量子网络节点和量子网络链路控制中心,实现量子密钥生成、量子密钥中继、量子密钥提供等服务;
量子网络节点:存储生成的量子密钥,接收密钥代理的密钥申请,向密钥代理提供密钥或直接提供密钥充注服务;
量子网络链路控制中心:可按照量子网络节点I D建立节点间的量子密钥分发及中继链路。
一种实现方式中,通过量子密钥分发QKD网络,使用安全TF卡或安全U盾等大容量安全存储介质,为客户端和服务端的软件或硬件密码模块预充注大量的量子密钥,每支量子密钥格式为4字节密钥I D+L字节密钥(L与加密算法相关)。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发多方协同签名方法。包括:
步骤一,使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要;预设存储介质中保存有QKD网络注入的多个量子密钥;
步骤二,在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
步骤三,将第一加密数据发送给协同端组,协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使协同端组,从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;第一摘要和第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
步骤四,使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。
在一个实施例中,在使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和服务端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要之前,方法还包括:
获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用第三量子密钥对第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
将协商数据发送给协同端组;以使协同端组,通过QKD网络获取第三量子密钥,使用第三量子密钥对协商数据进行完整性校验和解密得到第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
在一个实施例中,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K0,以Dc-1为Dc在Fq上的逆元,计算Q=((K0+e)mod n)[*]G,S=Dc -1*(K0+e)mod n,将Q和S作为第一加密参数;
根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||I DC||ENTLS||I DS||xG||yG||x||y)
其中,I DC和I DS分别为客户端的用户标识和协同端的用户标识(I DS=DN||…D1),ENTLC和ENTLS分别为用户标识的标识长度,xG和yG为椭圆曲线G点坐标,x和y为公钥PG的坐标;
根据Z和待签名消息M计算第二中间参数M’:
M’=Z||I Dkey||M
其中,I Dkey为第一量子密钥的密钥I D;
以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。
一种实现方式中,Key1为第一量子密钥,签名的杂凑计算采用了带量子密钥的杂凑运算,只有拥有或获取与身份匹配的量子密钥才能进行正确的签名和验证,量子密钥的正确性和有效性由量子密钥分发系统进行保障,这样在协同签名的基础上进一步增强了开放环境数字签名的安全性和可信性。
在一个实施例中,第三加密参数的计算过程为:第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+e mod n)[*]Qi-1,Q1=(K1+emod n)[*]Q,计算si=Di -1*(Ki+e)*si-1mod n,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*S modn;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(KN+e)-K*DN)mod n[*]G,并计算r=x1+e mod n和SN=DN -1*r-K modm,DN -1为DN在Fq上的逆元;将r、QK和sN,作为第三加密参数;第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+1mod n,Di -1为Di在Fq上的逆元,并将Si作为第二加密参数;
根据第二加密参数和第三加密数据生成数字签名包括:
使用第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-r mod m,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
基于相同的发明构思,本发明实施例提供了一种应用于协同端组的融合量子密钥分发多方协同签名方法。协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;方法包括:
接收客户端发送的第一加密数据;第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;预设存储介质中保存有所述QKD网络注入的多个量子密钥;
从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;
第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给客户端;以使客户端使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。
在一个实施例中,在接收客户端发送的第一加密数据之前,方法还包括:
接收客户端发送的协商数据;协商数据的产生过程为:客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用第三量子密钥对第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过QKD网络获取第三量子密钥,使用所述第三量子密钥对协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
在一个实施例中,第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K0,以Dc-1为Dc在Fq上的逆元,计算Q=((K0+e)mod n)[*]G,S=Dc -1*(K0+e)mod n,将Q和S作为第一加密参数;
第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+e mod n)[*]Qi-1,Q1=(K1+e mod n)[*]Q,计算si=Di -1*(Ki+e)*si-1modn,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*S mod n;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(KN+e)-K*DN)mod n[*]G,并计算r=x1+e mod n和SN=DN -1*r-K mod n,DN -1为DN在Fq上的逆元;将r、QK和sN,作为所述第三加密参数;所述第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+1mod n,Di -1为Di在Fq上的逆元,并将Si作为所述第二加密参数;
根据第二加密参数和第三加密数据生成数字签名包括:
使用第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-r mod n,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发多方协同签名装置,装置应用于客户端,包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要;预设存储介质中保存有QKD网络注入的多个量子密钥;
加密模块,用于在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将第一加密数据发送给协同端组,协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使协同端组,从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;第一摘要和第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给客户端;
第一协同签名模块,用于使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。
基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发多方协同签名装置,装置应用于服务端组,协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;包括:
数据接收模块,用于接收客户端发送的第一加密数据;第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用第二量子密钥对第一加密参数、待签名消息和第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;预设存储介质中保存有QKD网络注入的多个量子密钥;
解密模块,用于从QKD网络获取第一量子密钥和第二量子密钥,使用第二量子密钥对第一加密数据进行完整性校验和解密得到第一加密参数、待签名消息和第一摘要,使用第一量子密钥生成待签名消息的第二摘要;
第二协同签名模块,第一摘要和第二摘要对比无误后,第一协同端使用SM2算法根据第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用第二量子密钥对第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推第二加密参数,第一个协同端使用第二量子密钥对反推得到的第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给客户端;以使客户端使用第二量子密钥对第二加密数据和第三加密数据进行完整性校验和解密得到第二加密参数和第三加密数据,根据第二加密参数和第三加密数据生成数字签名。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘So l i d State D i sk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (10)
1.一种融合量子密钥分发多方协同签名系统,其特征在于,包括客户端、协同端组和量子分发QKD网络;所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;其中:
所述客户端,用于在预设存储介质中获取第一量子密钥和第二量子密钥,使用SM2算法生成第一加密参数,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据发送给所述服务端;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
所述协同端组,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
所述客户端,还用于使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
2.一种融合量子密钥分发多方协同签名方法,其特征在于,所述方法应用于客户端,包括:
使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
将所述第一加密数据发送给所述协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使所述协同端组,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
3.根据权利要求2所述的一种融合量子密钥分发多方协同签名方法,其特征在于,在使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和服务端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要之前,所述方法还包括:
获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;
产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
将所述协商数据发送给所述协同端组;以使所述协同端组,通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
4.根据权利要求3所述的一种融合量子密钥分发多方协同签名方法,其特征在于,使用SM2算法生成第一加密参数具体为:
产生一个位于[1,n-1]之间的随机数K0,以Dc -1为Dc在Fq上的逆元,计算Q=((K0+e)modn)[*]G,S=Dc -1*(K0+e)mod n,将Q和S作为第一加密参数;
根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,包括:
基于GB/T 32918计算第一中间参数Z:
Z=HASH(ENTLC||IDC||ENTLS||IDS||xG||yG||x||y)
其中,IDC和IDS分别为所述客户端的用户标识和所述协同端的用户标识(IDS=DN||…D1),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所述的一种融合量子密钥分发多方协同签名方法,其特征在于,所述第三加密参数的计算过程为:第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+emod n)[*]Qi-1,Q1=(K1+e mod n)[*]Q,计算si=Di -1*(Ki+e)*si-1mod n,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*S mod n;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(Kn+e)-K*DN)mod n[*]G,并计算r=x1+e mod n和SN=DN -1*r-K mod n,DN -1为DN在Fq上的逆元;将r、QK和sN,作为所述第三加密参数;所述第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+1mod n,Di -1为Di在Fq上的逆元,并将Si作为所述第二加密参数;
根据所述第二加密参数和第三加密数据生成数字签名包括:
使用所述第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-r mod n,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
6.一种融合量子密钥分发多方协同签名方法,其特征在于,所述方法应用于协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;所述方法包括:
接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;
所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
7.根据权利要求6所述的一种融合量子密钥分发多方协同签名方法,其特征在于,在接收客户端发送的第一加密数据之前,所述方法还包括:
接收所述客户端发送的协商数据;所述协商数据的产生过程为:所述客户端获取预先设置的SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点;产生一个位于[1,n-1]之间的随机数,将产生的随机数作为DC,计算第一私钥数据P1=DC[*]G,[*]表示椭圆曲线点乘运算生成,在预设存储介质中获取第三量子密钥,使用所述第三量子密钥对所述第一私钥数据进行加密并生成对应第三完整性校验值,得到协商数据;
通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为Di,依次计算Pi=Di[*]Pi-1;第N个协同端计算公钥PG=PN-G=(DN…D1Dc-1)[*]G,并发布公钥。
8.根据权利要求7所述的一种融合量子密钥分发多方协同签名方法,其特征在于,所述第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K0,以Dc -1为Dc在Fq上的逆元,计算Q=((K0+e)mod n)[*]G,S=Dc -1*(K0+e)mod n,,将Q和S作为第一加密参数;
第一到第N协同端分别产生一个位于[1,n-1]之间的随机数Ki,由第1协同端开始依次计算Qi=(Ki+e mod n)[*]Qi-1,Q1=(K1+e mod n)[*]Q,计算si=Di -1*(Ki+e)*si-1mod n,Di -1为Di在Fq上的逆元,s1=D1 -1*(K1*e)*S mod n;第N协同端产生一个位于[1,n-1]之间的随机数K,计算QK=K*DNmod n[*]G,(x1,y1)=QN-QK=((K0+e)(K1+e)…(Kn+e)-K*DN)mod n[*]G,并计算r=x1+e mod n和SN=DN -1*r-K mod n,DN -1为DN在Fq上的逆元;将r、QK和sN,作为所述第三加密参数;所述第二加密参数的计算过程为:第N-1到第1协同端依次计算Si=Di -1*Si+ 1mod n,Di -1为Di在Fq上的逆元,并将Si作为所述第二加密参数;
根据所述第二加密参数和第三加密数据生成数字签名包括:
使用所述第二量子密钥验证并解密消息获取r、sN和S1后,计算s=sN+S1*Dc -1-r mod n,将(r,s)的数据类型按照GB/T 32918的方法转换为字节串作为对消息M的签名并和客户端用户标识、协同端标识列表一起对外发布。
9.一种融合量子密钥分发多方协同签名装置,其特征在于,所述装置应用于客户端,包括:
数据处理模块,用于使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
加密模块,用于在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;
数据发送模块,用于将所述第一加密数据发送给所述协同端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;以使所述协同端组,从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端;第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;
第一协同签名模块,用于使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
10.一种融合量子密钥分发多方协同签名装置,其特征在于,所述装置应用于服务端组,所述协同端组包括N个协同端,N个协同端依次连接,且第N个协同端具有硬件边界的密码机HSM;包括:
数据接收模块,用于接收客户端发送的第一加密数据;所述第一加密数据的产生过程为:使用SM2算法生成第一加密参数,在预设存储介质中获取第一量子密钥,根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要;在预设存储介质中获取第二量子密钥,使用所述第二量子密钥对所述第一加密参数、所述待签名消息和所述第一摘要进行加密并生成对应第一完整性校验值,得到第一加密数据;所述预设存储介质中保存有所述QKD网络注入的多个量子密钥;
解密模块,用于从所述QKD网络获取所述第一量子密钥和所述第二量子密钥,使用所述第二量子密钥对所述第一加密数据进行完整性校验和解密得到所述第一加密参数、所述待签名消息和所述第一摘要,使用所述第一量子密钥生成所述待签名消息的第二摘要;
第二协同签名模块,所述第一摘要和所述第二摘要对比无误后,第一协同端使用SM2算法根据所述第一加密参数生成第二加密参数,第二个至第N-1个协同端依次使用SM2算法更新该协同端连接的前一协同端生产的第二加密参数,第N个协同端使用SM2算法根据所述第一加密参数和所有第二加密参数生成第三加密参数,第N个协同端使用所述第二量子密钥对所述第三加密参数进行加密并生成对应第二完整性校验值,得到第二加密数据发送给所述客户端,第N-1个至第一个协同端依次使用SM2算法根据第三加密参数反推所述第二加密参数,第一个协同端使用所述第二量子密钥对反推得到的所述第二加密参数进行加密并生成对应第三完整性校验值,得到第三加密数据发送给所述客户端;以使所述客户端使用所述第二量子密钥对所述第二加密数据和所述第三加密数据进行完整性校验和解密得到所述第二加密参数和所述第三加密数据,根据所述第二加密参数和第三加密数据生成数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310027748.XA CN116232578A (zh) | 2023-01-09 | 2023-01-09 | 一种融合量子密钥分发的多方协同签名系统、方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310027748.XA CN116232578A (zh) | 2023-01-09 | 2023-01-09 | 一种融合量子密钥分发的多方协同签名系统、方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116232578A true CN116232578A (zh) | 2023-06-06 |
Family
ID=86590318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310027748.XA Pending CN116232578A (zh) | 2023-01-09 | 2023-01-09 | 一种融合量子密钥分发的多方协同签名系统、方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116232578A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886311A (zh) * | 2023-07-24 | 2023-10-13 | 三未信安科技股份有限公司 | 基于区块链隐私安全的策略签名方法、系统及存储介质 |
-
2023
- 2023-01-09 CN CN202310027748.XA patent/CN116232578A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886311A (zh) * | 2023-07-24 | 2023-10-13 | 三未信安科技股份有限公司 | 基于区块链隐私安全的策略签名方法、系统及存储介质 |
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 | |
JP6515246B2 (ja) | 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定 | |
US10903991B1 (en) | Systems and methods for generating signatures | |
CN110213042B (zh) | 一种基于无证书代理重加密的云数据去重方法 | |
US20210152370A1 (en) | Digital signature method, device, and system | |
CN111865582B (zh) | 基于零知识证明的私钥离线存储方法、系统及存储介质 | |
WO2017221723A1 (ja) | 端末装置、鍵配送管理装置、サーバ・クライアントシステム、通信方法、プログラム | |
CN112383550A (zh) | 一种基于隐私保护的动态权限访问控制方法 | |
CN110597836A (zh) | 基于区块链网络的信息查询请求响应方法及装置 | |
CN111355582A (zh) | 基于sm2算法的两方联合签名和解密的方法及系统 | |
US20160080336A1 (en) | Key Usage Detection | |
CN108809996B (zh) | 不同流行度的删重存储数据的完整性审计方法 | |
CN116232578A (zh) | 一种融合量子密钥分发的多方协同签名系统、方法及设备 | |
CN116684093B (zh) | 身份认证与密钥交换方法及系统 | |
CN116318654A (zh) | 融合量子密钥分发的sm2算法协同签名系统、方法及设备 | |
NL1043779B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
Kanagamani et al. | Zero knowledge based data deduplication using in-line Block Matching protocolfor secure cloud storage | |
Barker et al. | SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised) | |
CN114301612A (zh) | 信息处理方法、通信设备和加密设备 | |
CN114696997B (zh) | 一种基于ca和国密算法的抗量子计算通信方法及系统 | |
CN113868715A (zh) | 一种基于量子密钥的签名方法及其系统 | |
CN114493556A (zh) | 基于id密码学的接收方离线的数字货币抗量子计算匿名交易方法 | |
CN114529273A (zh) | 基于id密码学的抗量子计算数字货币匿名通信方法及系统 | |
CN117176329A (zh) | 会话密钥的生成方法、装置、处理器及电子设备 | |
CN114692129A (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 |