掌桥专利:专业的专利平台
掌桥专利
首页

一种融合量子密钥分发的多方协同签名系统、方法及设备

文献发布时间:2023-06-23 06:30:03


一种融合量子密钥分发的多方协同签名系统、方法及设备

技术领域

本发明涉及密码应用技术领域,具体涉及一种融合量子密钥分发的多方协同签名系统、方法及设备。

背景技术

椭圆曲线密码(简称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]之间的随机数,将产生的随机数作为D

将所述协商数据发送给所述协同端组;以使所述协同端组,通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为D

可选地,使用SM2算法生成第一加密参数具体为:

产生一个位于[1,n-1]之间的随机数K

根据所述客户端和多个协同端密钥协商得到加密公钥和所述第一量子密钥生成待签名消息的第一摘要,包括:

基于GB/T 32918计算第一中间参数Z:

Z=HASH(ENTL

其中,I D

根据Z和待签名消息M计算第二中间参数M’:

M’=Z||I D

其中,I D

以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。

可选地,所述第三加密参数的计算过程为:第一到第N协同端分别产生一个位于[1,n-1]之间的随机数K

根据所述第二加密参数和第三加密数据生成数字签名包括:

使用所述第二量子密钥验证并解密消息获取r、s

本发明实施例第三方面,还提供了一种融合量子密钥分发多方协同签名方法,所述方法应用于协同端组,所述协同端组包括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]之间的随机数,将产生的随机数作为D

通过所述QKD网络获取所述第三量子密钥,使用所述第三量子密钥对所述协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为D

可选地,所述第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K

第一到第N协同端分别产生一个位于[1,n-1]之间的随机数K

根据所述第二加密参数和第三加密数据生成数字签名包括:

使用所述第二量子密钥验证并解密消息获取r、s

本发明实施例第四方面,还提供了一种融合量子密钥分发多方协同签名装置,所述装置应用于客户端,包括:

数据处理模块,用于使用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]之间的随机数,将产生的随机数作为D

将协商数据发送给协同端组;以使协同端组,通过QKD网络获取第三量子密钥,使用第三量子密钥对协商数据进行完整性校验和解密得到第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为D

在一个实施例中,使用SM2算法生成第一加密参数具体为:

产生一个位于[1,n-1]之间的随机数K

根据客户端和多个协同端密钥协商得到加密公钥和第一量子密钥生成待签名消息的第一摘要,包括:

基于GB/T 32918计算第一中间参数Z:

Z=HASH(ENTL

其中,I D

根据Z和待签名消息M计算第二中间参数M’:

M’=Z||I D

其中,I D

以第一量子密钥对M’进行带密钥杂凑运算得到待签名消息的第一摘要e:e=HMAC(M’,Key1)。

一种实现方式中,Key1为第一量子密钥,签名的杂凑计算采用了带量子密钥的杂凑运算,只有拥有或获取与身份匹配的量子密钥才能进行正确的签名和验证,量子密钥的正确性和有效性由量子密钥分发系统进行保障,这样在协同签名的基础上进一步增强了开放环境数字签名的安全性和可信性。

在一个实施例中,第三加密参数的计算过程为:第一到第N协同端分别产生一个位于[1,n-1]之间的随机数K

根据第二加密参数和第三加密数据生成数字签名包括:

使用第二量子密钥验证并解密消息获取r、s

基于相同的发明构思,本发明实施例提供了一种应用于协同端组的融合量子密钥分发多方协同签名方法。协同端组包括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]之间的随机数,将产生的随机数作为D

通过QKD网络获取第三量子密钥,使用所述第三量子密钥对协商数据进行完整性校验和解密得到所述第一私钥数据,各协同端产生一个位于[1,n-1]之间的随机数,第i协同端将产生的随机数作为D

在一个实施例中,第一加密参数的产生过程为:客户端产生一个位于[1,n-1]之间的随机数K

第一到第N协同端分别产生一个位于[1,n-1]之间的随机数K

根据第二加密参数和第三加密数据生成数字签名包括:

使用第二量子密钥验证并解密消息获取r、s

基于相同的发明构思,本发明实施例提供了一种融合量子密钥分发多方协同签名装置,装置应用于客户端,包括:

数据处理模块,用于使用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))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

技术分类

06120116007197