基于非对称密钥池对的量子通信服务站数字签名方法、系统与流程

文档序号:18938742发布日期:2019-10-23 00:58阅读:417来源:国知局
基于非对称密钥池对的量子通信服务站数字签名方法、系统与流程

本申请涉及安全通信领域,尤其是一种基于非对称密钥池对的量子通信服务站数字签名方法、系统。



背景技术:

数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行签名,将其作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行验证,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。

数字签名有两种确定性。一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。

数字签名算法依靠公钥密码学技术来实现的。在公钥密码学技术里,每一个使用者有一对密钥:一个公钥和一个私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法除了量子计算机破译外,其他做法都不太可能实现。

由于量子计算机的潜在威胁,现有基于对称密钥池进行数字签名的方案,利用量子通信服务站与量子密钥卡之间的对称密钥进行数字签名,以避免数字签名被量子计算机破解。

现有技术存在的问题:

1、现有基于对称密钥池进行数字签名的方案,量子通信服务站与量子密钥卡之间使用对称密钥池,其容量巨大,对量子通信服务站的密钥存储带来压力;

2、现有基于对称密钥池进行数字签名的方案,由于对称密钥池密钥容量巨大,量子通信服务站不得不将密钥加密存储于普通存储介质例如硬盘内,而无法存储于量子通信服务站的密钥卡内;

3、现有基于对称密钥池进行数字签名的方案,由于对称密钥池密钥容量巨大,给密钥备份造成麻烦。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种基于非对称密钥池对的量子通信服务站数字签名方法、系统。

本申请公开了基于非对称密钥池对的量子通信服务站数字签名方法,实施在主动方,所述的量子通信服务站数字签名方法,包括:

向被动方发送利用第一密钥加密的第一认证消息和利用主动方私钥加密的所述第一密钥;利用第一密钥加密的所述第一认证消息和利用主动方私钥加密的所述第一密钥用于供被动方生成第二认证消息,所述第二认证消息用于供被动方利用第二密钥加密后结合利用服务站公钥加密的所述第二密钥发送至服务站,所述第二认证消息用于供服务站验证通过后解析得到所述第一认证消息和第一密钥,所述第一认证消息用于供服务站得到验签结果,所述验签结果用于供服务站生成第三认证消息,所述第三认证消息用于供被动方验证通过后得到所述验签结果。

本申请公开了基于非对称密钥池对的量子通信服务站数字签名方法,实施在被动方,所述的量子通信服务站数字签名方法,包括:

利用来自主动方的由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥生成第二认证消息;

向服务站发送利用第二密钥加密的第二认证消息和利用服务站公钥加密的所述第二密钥;所述第二认证消息用于供服务站验证通过后解析得到所述第一认证消息和第一密钥,所述第一认证消息用于供服务站得到验签结果;

接收来自服务站的由第三密钥加密的第三认证消息和由被动方公钥加密的所述第三密钥;

解密并对所述第三认证消息验证通过后得到所述验签结果;所述第三认证消息由服务站根据所述验签结果得到。

本申请公开了基于非对称密钥池对的量子通信服务站数字签名方法,实施在服务站,所述的量子通信服务站数字签名方法,包括:

接收来自被动方的由第二密钥加密的第二认证消息和由服务站公钥加密的所述第二密钥;所述第二认证消息由被动方根据第一认证消息得到,所述第一认证消息由主动方生成;

解密并对所述第二认证消息验证通过后得到第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第三认证消息;

向被动方发送利用第三密钥加密的所述第三认证消息和由被动方公钥加密的所述第三密钥;所述第三认证消息用于供被动方验证通过后得到所述验签结果。

本申请公开了基于非对称密钥池对的量子通信服务站数字签名方法,所述的量子通信服务站数字签名方法,包括:

主动方向被动方发送利用第一密钥加密的第一认证消息和利用主动方私钥加密的所述第一密钥;

被动方利用来自主动方的由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥生成第二认证消息,向服务站发送利用第二密钥加密的第二认证消息和利用服务站公钥加密的所述第二密钥;

服务站接收后解密并对所述第二认证消息验证通过后得到第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第三认证消息,向被动方发送利用第三密钥加密的所述第三认证消息和由被动方公钥加密的所述第三密钥;

所述被动方接收后解密并对所述第三认证消息验证通过后得到所述验签结果。

进一步的,所述服务站配置有服务站密钥卡,所述服务站密钥卡内存储有客户端公钥池、服务站私钥池、服务站公钥池、量子通信服务站公钥池和量子通信服务站私钥;所述主动方配置有主动方密钥卡,所述主动方密钥卡内存储有服务站公钥池、主动方私钥和主动方公钥;所述被动方配置有被动方密钥卡,所述被动方密钥卡内存储有服务站公钥池、被动方私钥和被动方公钥。

进一步的,所述主动方和被动方中一者为客户端a,另一者为客户端b,所述服务站分为服务站qa和服务站qb,所述客户端a为服务站qa的子设备,所述客户端b为服务站qb的子设备。

进一步的,所述客户端a为主动方,所述客户端b为被动方,所述的量子通信服务站数字签名方法包括:

所述服务站qb接收来自被动方的由第二密钥加密的第二认证消息,由服务站公钥加密的所述第二密钥,解密并对所述第二认证消息验证通过后得到由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥,根据第一密钥加密的所述第一认证消息和由主动方私钥加密的所述第一密钥生成第四认证消息,并将利用qkd协商密钥加密的所述第四认证消息发送至服务站qa;

所述服务站qa接收后利用qkd协商密钥解密得到所述第四认证消息,对所述第四认证消息验证通过后解密得到所述第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第五认证消息,并将利用qkd协商密钥加密的所述第五认证消息发送至服务站qb;

所述服务站qb接收后利用qkd协商密钥解密得到所述第五认证消息,对所述第五认证消息验证通过后得到所述验签结果,根据所述验签结果得到第三认证消息,并向被动方发送利用第三密钥加密的所述第三认证消息,由客户端b公钥加密的所述第三密钥。

进一步的,所述第二密钥为真随机数;

所述被动方生成服务站公钥包括:生成真随机数pqbi,利用非对称密钥指针函数对所述真随机数pqbi计算得到密钥位置指针,根据所述密钥位置指针从己方服务站公钥池中取出服务站公钥。

本申请还公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述量子通信服务站数字签名方法的步骤。

本申请还公开了基于非对称密钥池对的量子通信服务站数字签名系统,包括主动方,被动方,服务站以及通信网络;所述服务站配置有服务站密钥卡,所述服务站密钥卡内存储有客户端公钥池、服务站私钥池、服务站公钥池、量子通信服务站公钥池和量子通信服务站私钥;所述主动方配置有主动方密钥卡,所述主动方密钥卡内存储有服务站公钥池、主动方私钥和主动方公钥;所述被动方配置有被动方密钥卡,所述被动方密钥卡内存储有服务站公钥池、被动方私钥和被动方公钥;

所述主动方,被动方以及服务站通过所述通信网络实现所述量子通信服务站数字签名方法的步骤。

本申请采用非对称密钥池解决了对称密钥池给量子通信服务站带来的密钥存储压力,降低了存储成本。同时,本申请对客户端与服务站之间的各类消息的加密机制进行改进,使得各类消息中的数据被随机数密钥加密保护,而随机数密钥被非对称密钥加密保护。由于被公钥加密的数据只能被私钥拥有者解密,其他任何人均无法解密,因此该加密机制提升了消息传输的安全性;同时由于非对称密钥加密的是真随机数,量子计算机无法猜测得到该真随机数,从而也无法推导出非对称密钥,因此该加密机制也难以被量子计算机破解。

附图说明

图1为本申请中服务站密钥卡的密钥池分布示意图;

图2为本申请中客户端密钥卡的密钥池分布示意图;

图3为实施例1的数字签名流程图;

图4为实施例2的数字签名流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。

应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

其中一实施例中,提供了一种基于非对称密钥池对的量子通信服务站数字签名方法,实施在主动方,所述的量子通信服务站数字签名方法,包括:

向被动方发送利用第一密钥加密的第一认证消息和利用主动方私钥加密的所述第一密钥;利用第一密钥加密的所述第一认证消息和利用主动方私钥加密的所述第一密钥用于供被动方生成第二认证消息,第二认证消息用于供被动方利用第二密钥加密后结合利用服务站公钥加密的所述第二密钥发送至服务站,所述第二认证消息用于供服务站验证通过后解析得到所述第一认证消息和第一密钥,所述第一认证消息用于供服务站得到验签结果,所述验签结果用于供服务站生成第三认证消息,所述第三认证消息用于供被动方验证通过后得到所述验签结果。

本实施例中,各认证消息由对应的密钥进行对称加密,同时各密钥又利用相应的非对称密钥进行进一步的非对称加密,由于非对称加密中的私钥仅为一方拥有,其他人均无法进行使用,从而显著提升了消息传输的安全性。

其中一实施例中,提供了一种基于非对称密钥池对的量子通信服务站数字签名方法,实施在被动方,所述的量子通信服务站数字签名方法,包括:

利用来自主动方的由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥生成第二认证消息;

向服务站发送利用第二密钥加密的第二认证消息和利用服务站公钥加密的所述第二密钥;所述第二认证消息用于供服务站验证通过后解析得到所述第一认证消息和第一密钥,所述第一认证消息用于供服务站得到验签结果;

接收来自服务站的由第三密钥加密的第三认证消息和由被动方公钥加密的所述第三密钥;

解密并对所述第三认证消息验证通过后得到所述验签结果;所述第三认证消息由服务站根据所述验签结果得到。

本实施例中,各认证消息由对应的密钥进行对称加密,同时各密钥又利用相应的非对称密钥进行进一步的非对称加密,由于非对称加密中的私钥仅为一方拥有,其他人均无法进行使用,从而显著提升了消息传输的安全性。

其中一实施例中,提供了一种基于非对称密钥池对的量子通信服务站数字签名方法,实施在服务站,所述的量子通信服务站数字签名方法,包括:

接收来自被动方的由第二密钥加密的第二认证消息,由服务站公钥加密的所述第二密钥;所述第二认证消息由被动方根据第一认证消息得到,所述第一认证消息由主动方生成;

解密并对所述第二认证消息验证通过后得到第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第三认证消息;

向被动方发送利用第三密钥加密的所述第三认证消息,由被动方公钥加密的所述第三密钥;所述第三认证消息用于供被动方验证通过后得到所述验签结果。

本实施例中,各认证消息由对应的密钥进行对称加密,同时各密钥又利用相应的非对称密钥进行进一步的非对称加密,由于非对称加密中的私钥仅为一方拥有,其他人均无法进行使用,从而显著提升了消息传输的安全性。

其中一实施例中,提供了一种基于非对称密钥池对的量子通信服务站数字签名方法,所述的量子通信服务站数字签名方法,包括:

主动方向被动方发送利用第一密钥加密的第一认证消息和利用主动方私钥加密的所述第一密钥;

被动方利用来自主动方的由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥生成第二认证消息,向服务站发送利用第二密钥加密的第二认证消息和利用服务站公钥加密的所述第二密钥;

服务站接收后解密并对所述第二认证消息验证通过后得到第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第三认证消息,向被动方发送利用第三密钥加密的所述第三认证消息和由被动方公钥加密的所述第三密钥;

被动方接收后解密并对所述第三认证消息验证通过后得到所述验签结果。

本实施例中,各认证消息由对应的密钥进行对称加密,同时各密钥又利用相应的非对称密钥进行进一步的非对称加密,由于非对称加密中的私钥仅为一方拥有,其他人均无法进行使用,从而显著提升了消息传输的安全性。

在另一实施例中,所述服务站配置有服务站密钥卡,所述服务站密钥卡内存储有客户端公钥池、服务站私钥池、服务站公钥池、量子通信服务站公钥池和量子通信服务站私钥;所述主动方配置有主动方密钥卡,所述主动方密钥卡内存储有服务站公钥池、主动方私钥和主动方公钥;所述被动方配置有被动方密钥卡,所述被动方密钥卡内存储有服务站公钥池、被动方私钥和被动方公钥。

本实施例中,主动方和被动方的密钥卡中分别只存储了一对客户端公私钥对及其相对应的服务站的公钥池,这使得量子通信服务站仅需要存储其自身公钥池所对应的私钥池和本量子通信服务站的客户端公钥池,使得量子通信服务站的密钥存储无需像对称密钥池方案一样存储不同客户端的多个大容量对称密钥池,极大地降低了给量子通信服务站带来的密钥存储压力,降低了存储成本。

在另一实施例中,所述主动方和被动方中一者为客户端a,另一者为客户端b,所述服务站分为服务站qa和服务站qb,所述客户端a为服务站qa的子设备,所述客户端b为服务站qb的子设备。

在另一实施例中,所述客户端a为主动方,所述客户端b为被动方,所述的量子通信服务站数字签名方法包括:

所述服务站qb接收来自被动方的由第二密钥加密的第二认证消息,由服务站公钥加密的所述第二密钥,解密并对所述第二认证消息验证通过后得到由第一密钥加密的第一认证消息和由主动方私钥加密的所述第一密钥,根据第一密钥加密的所述第一认证消息和由主动方私钥加密的所述第一密钥生成第四认证消息,并将利用qkd协商密钥加密的所述第四认证消息发送至服务站qa;

所述服务站qa接收后利用qkd协商密钥解密得到所述第四认证消息,对所述第四认证消息验证通过后解密得到所述第一认证消息,对所述第一认证消息进行验签得到验签结果,根据所述验签结果得到第五认证消息,并将利用qkd协商密钥加密的所述第五认证消息发送至服务站qb;

所述服务站qb接收后利用qkd协商密钥解密得到所述第五认证消息,对所述第五认证消息验证通过后得到所述验签结果,根据所述验签结果得到第三认证消息,并向被动方发送利用第三密钥加密的所述第三认证消息,由被动方公钥加密的所述第三密钥。

本实施例中,服务站qa和服务站qb之间采用qkd进行加密传输消息,使得消息传输的安全性得到极大的保障。

在其他实施例中,若客户端b为主动方,客户端a为被动方,则先由服务站qa接收来自被动方的消息,经过处理后发送至服务站qb,服务站qb接收并经过处理后回复至服务站qa,服务站qa接收并经过处理后发送给被动方,以完成前述实施例中的对应步骤。

在另一实施例中,所述第二密钥为真随机数;

所述被动方生成服务站公钥包括:生成真随机数pqbi,利用非对称密钥指针函数对所述真随机数pqbi计算得到密钥位置指针,根据所述密钥位置指针从己方服务站公钥池中取出服务站公钥。

本实施例中密钥为真随机数,对密钥加密的公钥同样由真随机数得到,从而使每次数据传输时均能够得到不同的密钥或公钥,降低消息被破解的风险。

本申请的应用场景可以是在一个基于非对称密钥池体系下的任意两个对象a、b进行数字签名及验证(签名和验签)。本申请的密钥池体系中每个对象都具有密钥卡,可存储大数据量的密钥,也具备处理信息的能力。本申请中,对象a和对象b的本地系统中都存在相应需求的算法。

密钥卡的描述可见申请号为“201610843210.6”的专利。当为移动终端时,密钥卡优选为密钥sd卡;当为固定终端时,密钥卡优选为密钥usbkey或主机密钥板卡。

与申请号为“201610843210.6”的专利相比,密钥卡的颁发机制有所类似。本专利的密钥卡颁发方为密钥卡的主管方,一般为群组的管理部门,例如某企业或事业单位的管理部门;密钥卡被颁发方为密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工。用户端首先到密钥卡的主管方申请开户。当用户端进行注册登记获批后,将得到密钥卡(具有唯一的密钥卡id)。密钥卡存储了客户注册登记信息。同一量子通信服务站下的客户端密钥卡中的公钥池都下载自同一个密钥管理服务器,且其颁发的每个客户端密钥卡中存储的公钥池是完全一致的。优选为,密钥卡中存储的密钥池大小可以是1g、2g、4g、8g、16g、32g、64g、128g、256g、512g、1024g、2048g、4096g等等。

密钥卡从智能卡技术上发展而来,是结合了真随机数发生器(优选为量子随机数发生器)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡都有硬件pin码保护,pin码和硬件构成了用户使用密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。

本申请中,密钥卡分为服务站密钥卡和客户端密钥卡(包括主动方密钥卡和被动方密钥卡)。如图1中,服务站密钥卡的密钥区主要存储有客户端公钥池、服务站私钥池、服务站公钥池、量子通信服务站公钥池和量子通信服务站私钥;如图2中,客户端密钥卡的密钥区主要存储有服务站公钥池和客户端一对公私钥对。所述密钥卡均由密钥管理服务器颁发。

密钥管理服务器在颁发密钥卡之前会选择一种既支持加解密又支持签名的算法。密钥管理服务器根据客户端的数量产生相应数量并符合该算法规范的数作为私钥和公钥。密钥管理服务器产生相应数量的id,并选取相应数量的公私钥对,取其中的公钥与id进行组合得到id/公钥,以id/公钥的形式写入到同一文件中形成公钥池文件,即上述客户端公钥池。同时,密钥管理服务器将对应的私钥也以相同的方式写入到文件中形成私钥池文件,即客户端私钥池。客户端私钥池中各私钥的id与客户端公钥池中对应的公钥的id相同。密钥管理服务器再次产生大量的符合该算法规范的数作为私钥和公钥。密钥管理服务器将公私钥分别写入到两个文件内形成服务站公钥池和服务站私钥池。服务站公钥池内的公钥与服务站私钥池中相同位置的私钥对应。密钥管理服务器将颁发的首个密钥卡定义为服务站密钥卡,并将服务站私钥池和客户端公钥池以及相关算法参数写入密钥卡的密钥区。密钥管理服务器后续颁发的密钥卡均为客户端密钥卡。密钥管理服务器随机选取一个未分配的id分配给密钥卡,并从客户端公钥池和客户端私钥池取相同id的公私钥与服务站公钥池写入密钥卡的密钥区,相关参数一起写入到密钥卡内。

量子通信服务站管理服务器是所有量子通信服务站的密钥管理机构,其中包含量子通信密钥管理服务器,负责颁发量子通信服务站公钥池和各量子通信服务站的私钥。在颁发密钥给量子通信服务站之前量子通信密钥管理服务器会选择一种既支持加解密又支持签名的算法。量子通信密钥管理服务器根据量子通信服务站的数量产生相应数量并符合该算法规范的数作为私钥和公钥。量子通信密钥管理服务器产生相应数量的id,作为量子通信服务站的id,并选取相应数量的公私钥对,取其中的公钥与id进行组合得到id/公钥,以id/公钥的形式写入到同一文件中形成公钥池文件,即上述量子通信服务站公钥池。同时,量子通信密钥管理服务器将对应的私钥也以相同的方式写入到文件中形成私钥池文件,即量子通信服务站私钥池。量子通信服务站私钥池中各私钥的id与量子通信服务站公钥池中对应的公钥的id相同。量子通信密钥管理服务器随机选取一个未分配的id分配给某个量子通信服务站,并将id、量子通信服务站公钥池、该id对应的私钥、相关参数使用qkd的方式传输给量子通信服务站。量子通信服务站将接收到的id、量子通信服务站公钥池、该id对应的私钥、相关参数写入服务站密钥卡的密钥区。

需要说明的是,主动方和被动方不作为对客户端的限制,而是为了便于区分在一次数字签名中客户端的不同身份。

在未做特殊说明的情况下本申请中的各名称以字母和数字组合为准,例如qb,服务站qb,量子通信服务站qb在下文中表示同一含义,即量子通信服务站qb;其余名称同理。且文件签名fs、真随机数fk等表述中的fs、fk仅仅是为了便于区分和叙述,并不对参数本身有额外限定,例如量子通信服务站qb、客户端a中的qb、a;又如公钥pkqbi、信息mreqq中的pkqbi、mreqq;其他同理。

实施例1

系统说明

本实施例的应用场景如图3所示,包括客户端a(主动方)、客户端b(被动方)、量子通信服务站qa和量子通信服务站qb(简称为服务站qa和服务站qb)。qa和qb分别带有各自的密钥管理服务器。客户端a和客户端b都配有客户端密钥卡,量子通信服务站qa和量子通信服务站qb配有服务站密钥卡。客户端a归属于量子通信服务站qa,客户端b归属于量子通信服务站qb,即a、b的密钥卡分别由qa、qb的密钥管理服务器所颁发。

步骤1:客户端a向客户端b发送文件f。

客户端a利用己方私钥ska通过签名算法将文件f签名,得到文件签名fs,即第一认证消息。客户端a产生一个真随机数fk,即第一密钥,客户端a利用fk对fs进行对称加密得到{fs}fk。客户端a利用自己的私钥ska(主动方私钥)对fk进行加密得到{fk}ska。客户端a将ra、{fs}fk、{fk}ska组成加密的签名fsk=ra||{fs}fk||{fk}ska,ra中包含a所在服务站qa的信息和a的公钥指针随机数,由服务站qa颁发给a的密钥卡。公钥指针随机数是服务站所选择的真随机数,可以根据公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,并从客户端公钥池中取出a的公钥。客户端a将文件f和签名组合成f||fsk,发送给b。

步骤2:客户端b向服务站qb请求验证签名。

客户端b接收到f||fsk后,向服务站qb发出数字签名验证的请求req。客户端b将rb、req、f||fsk组成信息mreq=rb||req||f||fsk,rb中包含b所在服务站qb的信息和b的公钥指针随机数,由服务站站qb颁发给b的密钥卡。客户端b利用己方私钥skb通过签名算法对mreq进行签名得到mreqs,并将mreq和mreqs组成第二认证消息mreq||mreqs。

客户端b产生一个真随机数kb,即第二密钥,利用kb对mreq||mreqs进行对称加密得到{mreq||mreqs}kb。

客户端b产生一个真随机数rqbi,并将真随机数rqbi通过非对称密钥指针函数计算得到密钥位置指针,客户端b根据密钥位置指针从自身密钥卡中的服务站公钥池中取出服务站qb的公钥pkqbi(服务站公钥),利用公钥pkqbi对kb进行加密得到{kb}pkqbi。

客户端b将rqbi、{mreq||mreqs}kb、{kb}pkqbi组成加密的签名信息rqbi||{mreq||mreqs}kb||{kb}pkqbi向服务站qb发出请求。

步骤3:服务站qb接收客户端b的请求并处理。

服务站qb接收到rqbi||{mreq||mreqs}kb||{kb}pkqbi信息后,解析出rqbi、{mreq||mreqs}kb、{kb}pkqbi。服务站qb将真随机数rqbi通过非对称密钥指针函数计算得到密钥位置指针,服务站qb根据密钥位置指针从自身密钥卡中的服务站私钥池中取出自身私钥skqbi,服务站qb利用skqbi对{kb}pkqbi进行解密得到kb,利用解密得到的kb对{mreq||mreqs}kb进行解密得到mreq||mreqs,服务站qb将mreq解析得到rb||req||f||fsk,根据rb中的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,从qb自身客户端公钥池中取出客户端b的公钥pkb(被动方公钥)对mreqs进行验签,如果验证通过则进行下一步,反之验证失败。

服务站qb对mreqs验签通过后,从fsk中解析出ra||{fs}fk||{fk}ska,根据ra中包含的qa信息,服务站qb找到服务站qa。服务站qb将客户端b的请求信息req||f||fsk加上rqb后组成信息mreqq=rqb||req||f||fsk,rqb中包含服务站qb的信息和服务站qb的公钥指针随机数。服务站qb利用己方量子通信服务站私钥通过签名算法对mreqq进行签名得到mreqqs,并将mreqq和mreqqs组成信息第四认证消息mreqq||mreqqs。服务站qb使用与qa的qkd协商密钥kqkd对mreqq||mreqqs进行对称加密得到{mreqq||mreqqs}kqkd,加密后发往服务站qa。

步骤4:服务站qa接收处理qb发来的信息。

服务站qa利用qkd协商密钥kqkd解密{mreqq||mreqqs}kqkd得到mreqq||mreqqs,解析出rqb、req、f、fsk,根据rqb中的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,并从自身的量子通信服务站公钥池中取出qb的量子通信服务站公钥对mreqqs进行验签,如果验证通过则进行下一步,反之验证失败。

服务站qa对mreqqs验签通过后,将fsk解析出ra、{fs}fk、{fk}ska。服务站qa根据ra中的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,并从自身客户端公钥池中取出客户端a的公钥pka,用pka对{fk}ska进行解密得到fk。

服务站qa利用fk对{fs}fk进行解密得出fs。服务站qa根据pka对fs进行验签,记录fs验签结果ret,即成功或者失败。

步骤5:服务站qa回复qb的请求

服务站qa对fs验签后,将rqa、ret、f、fsk重新组成mretq=rqa||ret||f||fsk,ret包含了服务站qa对fs验签成功或者失败的信息以及对qb和b的响应信息,rqa中包含服务站qa的信息和服务站qa的公钥指针随机数。服务站qa利用己方量子通信服务站私钥通过签名算法将mretq签名得到mretqs,并组成信息第五认证消息mretq||mretqs,qa利用qkd协商密钥kqkd对mretq||mretqs进行对称加密得到{mretq||mretqs}kqkd,向qb转发过去。

步骤6:qb收到并处理qa的答复。

服务站qb接收{mretq||mretqs}kqkd后利用qkd协商密钥kqkd进行解密得到mretq||mretqs,从mretq中解析出rqa、ret、f||fsk。服务站qb根据rqa中的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,并从自身的量子通信服务站公钥池中取出qa的量子通信服务站公钥对mretqs进行验签,如果验证通过则进行下一步,反之验证失败。

服务站qb对mretqs验签通过后,将rqb2、ret、f、fsk重新组成信息mret=rqb2||ret||f||fsk。rqb2为服务站qb生成的随机数,服务站qb根据随机数rqb2通过非对称密钥指针函计算函数计算得到密钥位置指针,从自身密钥卡中的服务站私钥池中取出skqb2。服务站qb利用签名算法用skqb2将mret签名得到mrets,并组成信息第三认证消息mret||mrets。服务站qb产生一个真随机数kb2,即第三密钥,利用kb2把mret||mrets进行对称加密得到{mret||mrets}kb2。服务站qb根据pkb对kb2进行加密得到{kb2}pkb,组成信息{mret||mrets}kb2||{kb2}pkb转发给客户端b。

步骤7:客户端b收到验签结果

客户端b收到服务站qb转发来的{mret||mrets}kb2||{kb2}pkb,取出私钥skb对{kb2}pkb解密得到kb2,利用得到的kb2对{mret||mrets}kb2进行解密得到mret||mrets,客户端b解析mret得到rqb2||ret||f||fsk。客户端b根据随机数rqb2通过非对称密钥指针函数计算得到密钥位置指针,从自身密钥卡中的服务站公钥池中取出qb的公钥pkqb2对mrets进行验签,如果验证通过则进行下一步,反之验证失败。

客户端b对mrets进行验签通过后,得到qa的答复信息ret确认最终的验签结果。

本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。

实施例2

系统说明

本实施例的场景如图4所示,包括客户端a(主动方)、客户端b(被动方)、量子通信服务站q(简称为服务站q)。q带有密钥管理服务器。客户端a和客户端b都配有客户端密钥卡,量子通信服务站q配有服务站密钥卡。客户端a、b归属于量子通信服务站q,即a、b的密钥卡均由q的密钥管理服务器所颁发。

步骤1:客户端a向客户端b发送文件f。

客户端a利用己方私钥ska通过签名算法将文件f签名,得到文件签名fs,即第一认证消息。客户端a产生一个真随机数fk,即第一密钥,客户端a利用fk对fs进行对称加密得到{fs}fk。客户端a利用自己的私钥ska(主动方私钥)对fk进行加密得到{fk}ska。客户端a将ra、{fs}fk、{fk}ska组成加密的签名fsk=ra||{fs}fk||{fk}ska,ra中包含服务站q的信息和a的公钥指针随机数,由服务站q颁发给a的密钥卡。公钥指针随机数是服务站所选择的真随机数,可以根据公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,并从客户端公钥池中取出a的公钥。客户端a将文件f和签名组合成f||fsk,发送给b。

步骤2:客户端b向服务站q请求验证签名。

客户端b接收到f||fsk后,向服务站q发出数字签名验证的请求req。客户端b将rb、req、f||fsk组成信息mreq=rb||req||f||fsk,rb中包含b所在服务站q的信息和b的公钥指针随机数,由服务站站q颁发给客户端b的密钥卡。客户端b利用己方私钥skb通过签名算法对mreq进行签名得到mreqs,并将mreq和mreqs组成第二认证消息mreq||mreqs。

客户端b产生一个真随机数kb,即第二密钥,利用kb对mreq||mreqs进行对称加密得到{mreq||mreqs}kb。

客户端b产生一个真随机数rqbi,并将真随机数rqbi通过非对称密钥指针函数计算得到密钥位置指针,客户端b根据密钥位置指针从自身密钥卡中的服务站公钥池中取出服务站q的公钥pkqbi(服务站公钥),利用公钥pkqbi对kb进行加密得到{kb}pkqbi。

客户端b将rqbi、{mreq||mreqs}kb、{kb}pkqbi组成加密的签名信息rqbi||{mreq||mreqs}kb||{kb}pkqbi向服务站q发出请求。

步骤3:服务站q接收客户端b的请求并处理。

服务站q接收到rqbi||{mreq||mreqs}kb||{kb}pkqbi信息后,解析出rqbi、{mreq||mreqs}kb、{kb}pkqbi。服务站q将真随机数rqbi通过非对称密钥指针函数计算得到密钥位置指针,服务站q根据密钥位置指针从自身密钥卡中的服务站私钥池中取出自身私钥skqbi,服务站q利用skqbi对{kb}pkqbi进行解密得到kb,利用解密得到的kb对{mreq||mreqs}kb进行解密得到mreq||mreqs,服务站q将mreq解析得到rb||req||f||fsk,根据rb中的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,从服务站q自身客户端公钥池中取出客户端b的公钥pkb(被动方公钥)对mreqs进行验签,如果验证通过则进行下一步,反之验证失败。

服务站q对mreqs验签通过后,从fsk中解析出ra||{fs}fk||{fk}ska,根据ra的包含的a的公钥指针随机数通过非对称密钥指针函数计算得到密钥位置指针,根据密钥位置指针从自身密钥卡中的客户端公钥池中取出客户端a的公钥pka对{fk}ska进行解密得到fk,利用fk对{fs}fk进行解密得到fs,最后利用a的公钥pka对fs进行验签,记录fs验签结果ret|,即成功或者失败。

服务站q将对fs验签后,将rqb2、ret、f、fsk重新组成信息mret=rqb2||ret||f||fsk。ret包含了服务站q对fs验签成功或者失败的信息。rqb2为服务站q生成的随机数,服务站q根据随机数rqb2通过非对称密钥指针函计算函数计算得到密钥位置指针,从自身密钥卡中的服务站私钥池中取出skqb2。服务站q利用签名算法用skqb2将mret签名得到mrets,并组成信息第三认证消息mret||mrets。服务站q产生一个真随机数kb2,即第三密钥,利用kb2把mret||mrets进行对称加密得到{mret||mrets}kb2。服务站q根据pkb对kb2进行加密得到{kb2}pkb,组成信息{mret||mrets}kb2||{kb2}pkb转发给客户端b。

步骤4:客户端b收到验签结果

客户端b收到服务站q的{mret||mrets}kb2||{kb2}pkb信息,取出私钥skb对{kb2}pkb解密得到kb2,利用得到的kb2对{mret||mrets}kb2进行解密得到mret||mrets,客户端b解析mret得到rqb2||ret||f||fsk。客户端b根据随机数rqb2通过非对称密钥指针函数计算得到密钥位置指针,从自身密钥卡中的服务站公钥池中取出q的公钥pkqb2对mrets进行验签,如果验证通过则进行下一步,反之验证失败。

客户端b对mrets进行验签通过后,得到q的答复信息ret确认最终的验签结果。

本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。

本申请中,使用的密钥卡是独立的硬件隔离设备。公钥、私钥和其他相关参数均存储在密钥卡中的数据安全区,被恶意软件或恶意操作窃取密钥的可能性大大降低,也不会被量子计算机获取并破解。由于在经典网络中均无涉及公私钥及算法参数的传递,因此非对称密钥被破解的风险很低,另外,服务站与服务站之间采用qkd进行加密传输消息,所以消息的安全性得到极大的保障。密钥卡保障了通信双方在群组中的通信安全,也极大的提高了身份认证的安全性。

同时非对称密钥池解决了对称密钥池给量子通信服务站带来密钥存储压力,降低了存储成本。例如,原先用户的对称密钥池大小均为1g,用户个数为n,则量子通信服务站需要存储ng的密钥池,而如果存储非对称密钥池,用户端存储密钥池大小同样为1g,量子通信服务站同样只需要存储1g大小的密钥池。

同时,本申请对客户端与服务站之间的各类消息的加密机制进行改进,使得各类消息中的数据被随机数密钥加密保护,而随机数密钥被非对称密钥加密保护。由于被公钥加密的数据只能被私钥拥有者解密,其他任何人均无法解密,因此该加密机制提升了消息传输的安全。

在一实施例中,本申请还提供一种计算机设备,该计算机设备可以是被动方设备、主动方设备或服务站设备。计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述量子通信服务站数字签名方法的步骤。

关于计算机设备的具体限定可以参见上文中对量子通信服务站数字签名方法的限定,在此不再赘述。上述计算机设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,计算机设备的处理器用于提供计算和控制能力。计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述基于非对称密钥池对的量子通信服务站数字签名方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,各设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

在另一实施例中,提供了一种基于非对称密钥池对的量子通信服务站数字签名系统,包括主动方,被动方,服务站以及通信网络;所述服务站配置有服务站密钥卡,所述服务站密钥卡内存储有客户端公钥池、服务站私钥池、服务站公钥池、量子通信服务站公钥池和量子通信服务站私钥;所述主动方配置有主动方密钥卡,所述主动方密钥卡内存储有服务站公钥池、主动方私钥和主动方公钥;所述被动方配置有被动方密钥卡,所述被动方密钥卡内存储有服务站公钥池、被动方私钥和被动方公钥;

所述主动方,被动方以及服务站通过所述通信网络实现所述量子通信服务站数字签名方法的步骤。

关于基于非对称密钥池对的量子通信服务站数字签名系统的具体限定可以参见上文中对于基于非对称密钥池对的量子通信服务站数字签名方法的限定,在此不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1