1.本公开涉及量子计算技术领域,尤其涉及量子网络技术领域,具体涉及一种量子密钥分发方法、装置及电子设备。
背景技术:2.在通信技术中,通信双方通常采用对称加密的方式来对传输数据进行加密,即双方使用相同的密钥来对消息进行加密或者对密文进行解密,密钥分发的任务就是将密钥分发给双方以供通信加密使用。
3.目前,通常采用非对称加密算法来实现密钥分发。
技术实现要素:4.本公开提供了一种量子密钥分发方法、装置及电子设备。
5.根据本公开的第一方面,提供了一种量子密钥分发方法,应用于第一节点,包括:
6.通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;
7.基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;
8.在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。
9.根据本公开的第二方面,提供了一种量子密钥分发方法,应用于第二节点,包括:
10.接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
11.针对所述第一报文向所述第一节点返回第二报文,并通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。
12.根据本公开的第三方面,提供了一种量子密钥分发方法,应用于第三节点,包括:
13.接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,并通过所述第二协议向所述第二节点发送所述第一报文;所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
14.接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文,并通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;
15.通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;
16.基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。
17.根据本公开的第四方面,提供了一种量子密钥分发装置,应用于第一节点,包括:
18.第一生成模块,用于通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;
19.第一发送模块,用于基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;
20.第一获取模块,用于在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。
21.根据本公开的第五方面,提供了一种量子密钥分发装置,应用于第二节点,包括:
22.第一接收模块,用于接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
23.第三发送模块,用于针对所述第一报文向所述第一节点返回第二报文;
24.第二获取模块,用于通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。
25.根据本公开的第六方面,提供了一种量子密钥分发装置,应用于第三节点,包括:
26.第二接收模块,用于接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
27.第四发送模块,用于通过所述第二协议向所述第二节点发送所述第一报文;
28.第三接收模块,用于接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文;
29.第五发送模块,用于通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;
30.建立模块,用于通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节
点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;
31.密钥交换模块,用于基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。
32.根据本公开的第七方面,提供了一种电子设备,包括:
33.至少一个处理器;以及
34.与至少一个处理器通信连接的存储器;其中,
35.存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中的任一项方法,或者执行第二方面中的任一项方法,或者执行第三方面中的任一项方法。
36.根据本公开的第八方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行第一方面中的任一项方法,或者执行第二方面中的任一项方法,或者执行第三方面中的任一项方法。
37.根据本公开的第九方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现第一方面中的任一项方法,或者执行第二方面中的任一项方法,或者执行第三方面中的任一项方法。
38.根据本公开的技术解决了密钥分发安全性比较低的问题,可以通过量子密钥分发网络高效地为两个用户建立端到端密钥,提高了密钥分发的安全性。
39.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
40.附图用于更好地理解本方案,不构成对本公开的限定。其中:
41.图1是根据本公开第一实施例的量子密钥分发方法的流程示意图;
42.图2是量子密钥分发网络系统的网络架构中的协议栈示意图;
43.图3是本公开提供的一具体示例的量子密钥分发方法的流程示意图;
44.图4是根据本公开第二实施例的量子密钥分发方法的流程示意图;
45.图5是根据本公开第三实施例的量子密钥分发方法的流程示意图;
46.图6是根据本公开第四实施例的量子密钥分发装置的结构示意图;
47.图7是根据本公开第五实施例的量子密钥分发装置的结构示意图;
48.图8是根据本公开第六实施例的量子密钥分发装置的结构示意图;
49.图9是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
50.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
51.第一实施例
52.如图1所示,本公开提供一种量子密钥分发方法,应用于第一节点,包括如下步骤:
53.步骤s101:通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径。
54.本实施例中,量子密钥分发方法涉及量子计算技术领域,尤其涉及量子网络技术领域,其可以广泛应用于基于密钥的通信场景下。本公开实施例的量子密钥分发方法,可以由本公开实施例的量子密钥分发装置执行。本公开实施例的量子密钥分发装置可以配置在任意电子设备中,以执行本公开实施例的量子密钥分发方法。该电子设备可以为第一节点对应的设备。
55.本实施例的量子密钥分发方法应用于量子密钥分发网络系统中,该量子密钥分发网络系统中可以包括第一节点和第二节点,第一节点可以为量子密钥分发请求的发起节点,第二节点可以为与第一节点端到端通信的节点。本实施例的目的即是通过该量子密钥分发网络系统高效且安全地为第一节点和第二节点建立端到端密钥,以基于所建立的密钥实现第一节点和第二节点的端到端通信,提高第一节点和第二节点的通信安全性。
56.其中,量子密钥分发(quantum key distribution,qkd)是利用量子力学特性来保证通信安全性,其使通信的双方能够产生并分享一个随机的、安全的密钥,来加密和解密消息。
57.该量子密钥分发网络系统的网络架构中,端节点(即第一节点和第二节点)可以包括三层,分别为应用层、网络层和链路层,端节点各自装载了包含三层协议的协议栈,如图2所示。
58.通过应用层的第一协议如qkdapp协议可以发起或处理量子密钥分发请求,根据网络层的第二协议如qkdrouting协议可以确定密钥的分发路径,具体可以确定分发路径下与之相邻的下游节点,通过链路层的第三协议如keygeneration协议(例如bb84协议等)可以与相邻节点建立密钥,从而可以使得第一节点和第二节点获得相互通信的共享密钥。
59.需要说明的是,量子密钥分发网络系统的网络架构与每一层所使用的具体协议无关,例如,qkdrouting协议中,路由表可以通过配置静态路由或者根据动态路由算法生成,keygeneration协议中,可以使用bb84、b92等任何量子密钥分发协议,甚至在不同相邻节点之间可以根据需要或者实验设备限制选择不同的密钥分发协议。
60.在步骤s101中,若第一节点需要与第二节点建立密钥,第一节点可以通过第一协议生成第一报文,第一报文指示发起量子密钥分发请求。其中,量子密钥分发网络系统的网络架构中,qkdmessage消息的报文结构可以如下表1所示,用以控制量子密钥分发过程中对不同类型消息的处理行为。该报文结构主要包含四个部分,分别为源节点、目的节点、消息处理协议及数据内容。
61.表1 qkdmessage消息的报文结构表
[0062][0063]
其中,源节点指的是消息的发送方,目的节点指的是消息的接收方,消息类型type
可以设置在数据内容中,以指示不同类型的消息,并进行相应的处理行为。如表2所示,为一示例的量子密钥分发过程中所涉及的消息类型,以下在阐述量子密钥分发过程中对此进行详细说明。
[0064]
表2量子密钥分发过程中所涉及的消息类型表
[0065]
消息类型描述request指示发起量子密钥分发请求accept指示接受量子密钥分发请求reject指示拒绝量子密钥分发请求ready指示标志与上/下游建立密钥ciphertext指示发送根据密钥所生成的密钥密文acknowledge指示确认收到中继节点的密钥密文retransmission指示请求中继节点重传密钥密文done指示标志完成端到端的密钥建立
[0066]
具体的,若第一节点需要与第二节点建立密钥,可以通过应用层的qkdapp协议发起一个量子密钥分发请求,由qkdapp协议生成一个消息类型为request的qkdmessage消息,第一报文通过消息类型request指示发起量子密钥分发请求,第一报文可以称之为request请求。
[0067]
其中,在qkdmessage消息的数据内容中包含密钥请求的分发路径、密钥特征信息如密钥数量及长度等,该分发路径包括源节点。该qkdmessage消息将被发送给应用层的下层即网络层,相应的,网络层通过qkdrouting协议处理该qkdmessage消息。
[0068]
在一可选实施方式中,第一报文的结构可以如下表3所示。
[0069]
表3第一报文的结构表
[0070][0071][0072]
步骤s102:基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点。
[0073]
该步骤中,当网络层收到来自上层qkdapp协议的qkdmessage消息时,可以基于该消息类型进行判断,当消息类型为request时,通过qkdrouting协议获取下一跳节点,并将qkdmessage消息发送给下一跳节点。
[0074]
若通过qkdrouting协议获取下一跳节点为目的节点,即发起量子密钥分发请求的源节点与目的节点直连(即两者之间存在直接相连的量子信道),则直接通过其直连信道发送第一报文。反之,则通过与其直连的中继节点发送第一报文,并将第一报文通过中继节点
转发至第二节点。中继节点若资源充足,可以预留相应资源,并查询本地路由表以获知下一跳节点信息,继续沿途转发request消息,同时添加自身节点的节点标识至路径信息中,直至request消息到达第二节点bob处。
[0075]
其中,若量子密钥分发系统中包括中继节点,则其网络架构中,如图2所示,中继节点可以装载包含两层协议的协议栈,分别为第二协议和第三协议,分别用于确定发送路径和进行量子密钥分发。
[0076]
需要说明的是,在步骤s102中,第二协议用于确定分发路径下与第一节点相邻的下游节点,若其他节点通过第二协议发送qkdmessage消息,第二协议用于确定分发路径下与该节点相邻的下游节点。若节点通过第二协议返回消息,则第二协议用于确定分发路径下与该节点相邻的上游节点。总之,通过第二协议可以确定发送路径下的下一跳节点,其中,相邻两个节点之间存在量子信道。
[0077]
步骤s103:在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。
[0078]
该步骤中,在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,可以启动第三协议即keygeneration协议,与第一节点相邻的下游节点进行量子密钥分发,建立密钥。
[0079]
其中,第二节点在接收到第一报文后,若其本地有充足的资源,则可以将自身节点的节点标识添加到分发路径中,并生成一则包含完整路径信息、需要建立的密钥特征信息等的第二报文,其可以称之为accept消息,并根据路径信息原路返回accept消息。
[0080]
其中,原路返回accept消息时,若第一节点与第二节点之间不直连,沿途中继节点接收到accept消息后,将保存其上下游节点信息(例如,中继节点ri保存其上游节点r
i-1
、下游节点r
i+1
)并继续向上游转发,根据request请求设置的密钥数量和长度,启动本地的keygeneration协议,开始与下游节点进行密钥分发,并等待与上游节点建立密钥。
[0081]
同时,启动本地的keygeneration协议,等待与第二节点相邻的上游节点进行量子密钥分发。
[0082]
在一可选实施方式中,第二报文的结构可以如下表4所示。
[0083]
表4第二报文的结构表
[0084][0085]
其中,路径信息中r1、rn等为中继节点的节点标识。
[0086]
相应的,在第一节点和第二节点均启动keygeneration协议,第一节点可以通过
keygeneration协议获取与第二节点共享的目标密钥,同时第二节点也可以通过keygeneration协议获取与第一节点共享的目标密钥。
[0087]
在一可选实施方式中,若第一节点与第二节点直连,即第一节点和第二节点之间存在直连的量子信道,可以通过keygeneration协议,将一端节点(第一节点或第二节点)生成的目标密钥编码到量子比特中,并通过直连的量子信道传输给另一端节点。
[0088]
在另一可选实施方式中,若第一节点与第二节点不直连,即中间需要通过中继节点来进行量子密钥分发,此时,可以启动分发路径下所有节点的keygeneration协议,通过keygeneration协议,将基于端节点生成的目标密钥借助于中继节点交换至另一端节点处,使得另一端节点可以获得与该端节点通信的所述目标密钥。
[0089]
本实施例中,通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。如此,可以通过量子密钥分发的网络架构中所构建的三层协议的协议栈,来处理量子密钥分发过程中的各种消息类型的报文,并通过第三协议使用量子比特作为信息载体进行密钥分发,从而可以高效处理量子网络中两个用户建立端到端密钥的情景,并提高密钥分发的安全性。
[0090]
需要说明的是,在中继节点或第二节点接收到第一节点的第一报文后,可以将自身节点的节点标识添加到路径信息中。之后,将检查其本地资源容量,若其本地资源容量不足以支持后续的密钥建立操作,则可以通过qkdrouting协议生成一个消息类型为reject的qkdmessage消息,将该消息返回至第一节点处。相应的,此次的量子密钥分发请求作废,第一节点可以结束量子密钥分发流程,亦或是重新发起量子密钥分发请求。
[0091]
在一可选实施例中,消息类型为reject的qkdmessage消息的结构表如下表5所示。
[0092]
表5消息类型为reject的qkdmessage消息的结构表
[0093][0094][0095]
其中,该qkdmessage消息指示发送消息类型为reject的qkdmessage消息的节点为rm。
[0096]
而若中继节点rm资源充足,可以预留相应资源,并查询本地路由表以获知下一跳
节点信息,继续沿途转发request消息,直至消息到达第二节点bob处。所沿途转发request消息与reject消息的结构不同之处在于消息类型,若中继节点rm沿途转发request消息,则其消息类型为request。
[0097]
可选的,所述步骤s103具体包括以下任一项:
[0098]
通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥;
[0099]
在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,接收所述第二节点通过所述第三协议发送的第一量子信息,所述第一量子信息携带有目标密钥,所述目标密钥为所述第二节点生成的与所述第一节点相互通信的密钥;
[0100]
在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文,将第一密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第一密钥为所述第一节点通过所述第三协议与相邻下游节点建立的密钥。
[0101]
本实施方式中,通过第三协议获取与第二节点共享的目标密钥可以包括三种场景。
[0102]
第一种场景为:第一节点通过第三协议与其相邻的下游节点建立目标密钥,并将目标密钥传递给第二节点,以使第二节点获得与第一节点通信的目标密钥,即密钥传递方向为第一节点至第二节点。
[0103]
其中,第一节点通过第三协议与其相邻的下游节点建立目标密钥的方式可以包括两种,可以由第一节点生成目标密钥,通过第三协议将目标密钥编码到量子比特中,并通过量子信道将其分发给下游节点,即上游至下游分发密钥,也可以由与其相邻的下游节点建立密钥,通过第三协议将目标密钥编码到量子比特中,并通过量子信道将其分发给第一节点,即下游至上游分发密钥。其中,下游和上游的概念均是相对于分发路径来说的,分发路径可以规定为从第一节点至第二节点的路径。
[0104]
第二种场景为:密钥传递方向为第二节点至第一节点,第二节点可以通过第三协议与其上游节点建立目标密钥,在第一节点与第二节点直连的情况下,第二节点可以直接将携带有目标密钥的第一量子信息发送给第一节点,相应的,第一节点可以接收到通过第三协议发送的第一量子信息,获得目标密钥。
[0105]
其中,第二节点可以通过第三协议与其上游节点建立目标密钥的方式与第一节点通过第三协议与其相邻的下游节点建立目标密钥的方式可以类似,这里不进行赘述。
[0106]
第三种场景为:密钥传递方向为第二节点至第一节点,在第一节点与第二节点不直连的情况下,即第一节点和第二节点之间存在中继节点,在该种场景下,中继节点可以通过第三协议分别与其上游节点和下游节点建立密钥,其中,第二节点与其上游节点所建立的密钥可以为目标密钥,第一节点与其下游节点所建立的密钥可以为第一密钥。
[0107]
中继节点rm可以将与上游节点建立的密钥(用表示)和与下游节点建立的密钥(用表示)进行异或操作得到密钥密文(用表示),并将携带有密钥密文的第三报文发送给第一节点,第一节点在接收到所述中继节点发
送的第三报文的情况下,可以通过第一密钥对接收到的密钥密文进行联合解密,具体可以通过第一密钥与第三报文中携带的密钥密文进行异或操作,得到目标密钥。
[0108]
第三报文的消息类型可以为ciphertext,指示发送根据密钥所生成的密钥密文,所有中继节点在收到ciphertext消息后,通过第二协议将从路由表中查询下一跳节点直接进行转发,而不作其他额外操作。一示例的ciphertext消息的结构表如下表6所示。
[0109]
表6 ciphertext消息的结构表
[0110][0111]
需要说明的是,若密钥传递方向为第一节点至第二节点,则中继节点发送消息的目的节点dst为第二节点(即bob)。
[0112]
本实施方式中,可以根据密钥传递的实际场景选择一种合适的传递方式,使得第一节点和第二节点均可以获得两者端到端通信的目标密钥。
[0113]
需要说明的是,在第三种场景下,即量子密钥分发系统的密钥传递方向为第二节点至第一节点,第一节点在接收到中继节点发送的第三报文的情况下,可以向中继节点确认已收到密钥密文。可选的,所述方法还包括:
[0114]
生成第四报文,所述第四报文指示接收到所述第三节点发送的所述第三报文;
[0115]
通过所述第二协议向所述第三节点发送所述第四报文。
[0116]
本实施方式中,第四报文可以通过消息类型acknowledge确认已收到中继节点的密钥密文,具体的,端节点在接收到第三节点发送的消息类型ciphertext的第三报文的情况下,可以将密钥密文存储在本地,并生成消息类型acknowledge的第四报文,并通过第二协议获取路由信息,向第三节点发送第四报文。
[0117]
一示例的第四报文的结构表如下表7所示。
[0118]
表7第四报文的结构表
[0119][0120]
需要说明的是,若密钥传递方向为第一节点至第二节点,则acknowledge消息的发送源节点src为第二节点bob。
[0121]
中继节点收到acknowledge消息后可清除其本地密钥并释放当前密钥请求所占用的资源,进而可进一步处理其他用户请求。若端节点在一定时间内未接收到部分中继节点
的密钥密文,可以向这些中继节点发送一则retransmission消息,以要求其重传密钥密文。
[0122]
retransmission消息的消息类型为retransmission,一示例的retransmission消息的结构表如下表8所示。
[0123]
表8 retransmission消息的结构表
[0124][0125]
与之类似,若密钥传递方向为第一节点至第二节点,则retransmission消息的发送源节点src为第二节点bob。
[0126]
可选的,所述通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥,包括:
[0127]
生成用于与所述第一节点相邻的下游节点通信的目标密钥;
[0128]
通过所述第三协议将所述目标密钥编码到量子比特中,得到第二量子信息;
[0129]
在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,将所述第二量子信息发送给所述第二节点;
[0130]
在所述第一节点相邻的下游节点为所述第一节点与所述第二节点之间的中继节点的情况下,将所述第二量子信息发送给所述第一节点相邻的下游节点,所述第一节点相邻的下游节点用于通过所述第二协议将所述目标密钥进行密钥交换至所述第二节点处。
[0131]
本实施方式中,密钥传递方向为第一节点alice至第二节点bob,且将上游节点作为量子信息的发送方,下游节点作为量子信息的接收方。
[0132]
第一节点在接收到第二节点返回的第二报文的情况下,可以基于密钥特征信息(如密钥数量和长度)生成用于第一节点相邻的下游节点通信的目标密钥,并通过第三协议将目标密钥编码到量子比特中,得到第二量子信息。
[0133]
在第二节点为第一节点相邻的下游节点的情况下,可以直接将携带有目标密钥的第二量子信息发送给第二节点,相应的,第二节点可以通过第三协议接收第二量子信息,并解析得到目标密钥。
[0134]
在第一节点和第二节点之间存在第三节点即中继节点的情况下,可以将第二量子信息发送给第一节点相邻的下游节点,中继节点可以得到目标密钥,同时其还可以通过第三协议与其下游节点建立密钥,将目标密钥和与其下游建立的密钥进行异或操作,得到密钥密文,并通过第二协议将密钥密文发送给第二节点,其他中继节点获得密钥密文的方式均类似。相应的,第二节点在接收到各个中继节点发送的密钥密文的情况下,可以基于第二节点与其上游节点建立的密钥与密钥密文进行异或操作,这样可以实现将目标密钥进行密钥交换至第二节点处。
[0135]
其中,可以通过第二协议查询路由表,以确定第一节点和第二节点是否直连,即第
一节点与第二节点之间是否存在中继节点。
[0136]
本实施方式中,由上游节点作为量子信息发送方,下游节点进行信息接收。同时,在accept消息返回途中,任何接收到accept消息的中继节点,都直接开始和其下游节点建立密钥,而无需等待其他触发指令。这种方式能够高效地实现分发路径中任意一对上下游节点之间的量子密钥分发,提高端到端的量子密钥分发效率。
[0137]
可选的,所述步骤s103之后,所述方法还包括:
[0138]
在所述第一节点通过所述第二协议生成第五报文的情况下,通过所述第一协议将所述第五报文携带的密钥进行存储;
[0139]
其中,所述第五报文指示所述第一节点通过所述第三协议与相邻下游节点建立密钥。
[0140]
本实施方式中,第五报文的消息类型为ready,指示标志与上/下游建立密钥,同时等待后续密钥交换操作。一示例的ready消息的结构表如下表9所示。
[0141]
表9 ready消息的结构表
[0142][0143][0144]
第一节点alice与其下游节点成功通过keygeneration协议建立密钥后,将由qkdrouting协议判断是否需要进行密钥交换,即判断第一节点与第二节点是否直连。若第一节点与第二节点不直连,则通过第二协议生成ready消息即第五报文,交付上层qkdapp协议,包含生成的第一密钥,qkdapp协议接收到ready消息后,将通过keygeneration协议所生成的第一密钥保存在本地。如此,可以实现密钥存储,为后续密钥交换操作做准备。
[0145]
可选的,所述步骤s103之后,所述方法还包括:
[0146]
在通过所述第二协议接收到所述第二节点针对所述第一报文返回的第六报文,或者,所述第一节点通过所述第二协议生成所述第六报文的情况下,通过所述第一协议将所述第六报文携带的所述目标密钥进行存储;
[0147]
其中,所述第六报文指示所述第一节点和所述第二节点获得所述目标密钥。
[0148]
本实施方式中,第六报文的消息类型为done,指示标志完成端到端的密钥建立,结束量子密钥分发流程。一示例的done消息的结构表如下表10所示。
[0149]
表10 done消息的结构表
[0150][0151]
在一场景中,若密钥传递方向为第一节点至第二节点,第一节点alice与其下游节点成功通过keygeneration协议建立密钥后,将由qkdrouting协议判断是否需要进行密钥交换,即判断第一节点与第二节点是否直连。若第一节点与第二节点直连,则通过第二协议生成done消息即第六报文,交付上层qkdapp协议,包含生成的目标密钥,qkdapp协议接收到done消息后,将通过keygeneration协议所生成的目标密钥保存在本地。
[0152]
在另一场景中,若密钥传递方向为第一节点至第二节点,第二节点在确认接收到量子密钥分发路径上所有中继节点rn发来的密钥密文cn后,第二节点bob使用本地保存的第二密钥对所有接收到的密钥密文进行联合解密,从而得到与第一节点alice之间共享的目标密钥k
ab
,用表示。
[0153]
同时,可以向第一节点alice通过中继节点返回一个done消息,以告知其成功建立端到端密钥。中继节点接收到done消息后,则直接根据路由对done消息进行转发而不进行额外操作。
[0154]
相应的,第一节点通过第二协议接收到第二节点针对第一报文返回的第六报文的情况下,将直接交付给qkdapp协议,设置与第二节点bob共享的会话密钥,并结束量子密钥分发流程。至此,第一节点与第二节点即可以通过目标密钥进行安全通信。
[0155]
如此,可以实现量子密钥分发,建立第一节点和第二节点的端到端密钥。
[0156]
以下以一具体示例对本实施例中的量子密钥分发流程进行详细说明。
[0157]
该示例中,量子密钥分发系统的网络架构中,包括第一节点alice、第二节点bob和中继节点r,端节点装载了包含三层协议的协议栈,分别为qkdapp协议、qkdrouting协议和keygeneration协议,中继节点装载了包含两层协议的协议栈,分别为qkdrouting协议和keygeneration协议。
[0158]
密钥传递方向为第一节点alice传递至第二节点bob,相邻两个节点通过keygeneration协议建立密钥的方式是上游节点作为量子信息发送方,下游节点为信息接收方。
[0159]
图3是本公开提供的一具体示例的量子密钥分发方法的流程示意图,如图3所示,具体步骤如下:
[0160]
步骤1:alice发起请求,发送request消息;
[0161]
步骤2:中继节点收到request请求并转发;
[0162]
步骤3:bob收到request请求并返回接受消息accept;
[0163]
步骤4:中继节点转发接受消息accept并进行密钥分发;
[0164]
步骤5:alice收到接受消息accept并进行密钥分发;
[0165]
步骤6:端节点保存与其上游或下游生成的密钥;
[0166]
步骤7:中继节点成功与上下游建立密钥后进行密钥交换并将密钥密文发送给bob;
[0167]
步骤8:bob收到密钥密文并发送回执消息进行确认;
[0168]
步骤9:bob收到所有中继节点的密钥密文后,解密获得端到端密钥,并向alice发送done消息;
[0169]
步骤10:中继节点转发done消息;
[0170]
步骤11:alice收到done消息。
[0171]
第二实施例
[0172]
如图4所示,本公开提供一种量子密钥分发方法,应用于第二节点,包括如下步骤:
[0173]
步骤s401:接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
[0174]
步骤s402:针对所述第一报文向所述第一节点返回第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;
[0175]
步骤s403:通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发。
[0176]
在步骤s401中,在第一节点通过第一协议生成第一报文,且基于分发路径和第二节点的节点标识,通过第二协议向第二节点发送第一报文的情况下,第二节点可以接收第一节点发送的第一报文。其中,第一报文的结构,以及生成过程和发送过程已经在第一实施例中详细阐述,这里不进行赘述。
[0177]
在步骤s402中,针对接收到的第一报文生成第二报文,向第一节点返回第二报文,其中,第二报文的结构、以及生成过程和发送过程在第一实施例中详细描述,这里不进行赘述。
[0178]
在步骤s403中,第二节点在返回第二报文的同时,可以启动keygeneration协议,通过keygeneration协议获取与第一节点共享的目标密钥。
[0179]
其中,第二节点通过keygeneration协议获取与第一节点共享的目标密钥的方式,与第一节点通过keygeneration协议获取与第二节点共享的目标密钥的方式对应,即第一节点采用什么样的方式获取与第二节点共享的目标密钥,则第二节点采用对应的方式获取与第一节点共享的目标密钥。
[0180]
比如,若密钥传递方向为第一节点至第二节点,则第一节点建立目标密钥,第二节点获取由第一节点传递过程的所述目标密钥。
[0181]
本实施例中,通过接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;针对所述第一报文向所述第一节点返回第二报文,并通过第三协议获取与所述第一节点共享的目标密钥,所述目标
密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。如此,可以通过量子密钥分发的网络架构中所构建的三层协议的协议栈,来处理量子密钥分发过程中的各种消息类型的报文,并通过第三协议使用量子比特作为信息载体进行密钥分发,从而可以高效处理量子网络中两个用户建立端到端密钥的情景,并提高密钥分发的安全性。
[0182]
可选的,所述步骤s403具体包括以下任一项:
[0183]
通过所述第三协议建立与所述分发路径下所述第二节点相邻的上游节点相互通信的目标密钥,以使所述第一节点获得与所述第二节点通信的所述目标密钥;
[0184]
在所述第一节点为所述分发路径下与所述第二节点相邻的上游节点的情况下,接收所述第一节点通过所述第三协议发送的第三量子信息,所述第三量子信息携带有目标密钥,所述目标密钥为所述第一节点生成的与所述第二节点相互通信的密钥;
[0185]
在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文,将第二密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第二密钥为所述第二节点通过所述第三协议与相邻上游节点建立的密钥。
[0186]
本实施方式中,第一节点采用什么样的方式获取与第二节点共享的目标密钥,则第二节点采用对应的方式获取与第一节点共享的目标密钥。
[0187]
具体的,针对第一种场景,密钥传递方向为第一节点至第二节点,第二节点可以使用以下方式来获取目标密钥:
[0188]
在所述第一节点为所述分发路径下与所述第二节点相邻的上游节点的情况下,接收所述第一节点通过所述第三协议发送的第三量子信息。
[0189]
在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文,将第二密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥。
[0190]
针对第二种场景和第三种场景,密钥传递方向为第二节点至第一节点,则第二节点可以使用以下方式来获取目标密钥:
[0191]
通过第三协议建立与分发路径下第二节点相邻的上游节点相互通信的目标密钥,并将目标密钥传递给第一节点。其中,其传递方式也可以包括两种,在第一节点与第二节点直连的情况下,将携带有目标密钥的量子信息发送给第一节点,在第一节点与第二节点不直连的情况下,通过中继节点将目标密钥交换至第一节点处。
[0192]
其中,第二节点密钥交换的方式与第一实施例中第一节点的密钥交换方式类似,这里不进行赘述。
[0193]
如此,第二节点可以实现与第一节点通信的目标密钥的获取。
[0194]
可选的,所述通过第三协议获取与所述第一节点共享的目标密钥之后,还包括:
[0195]
在所述第二节点通过所述第二协议生成第七报文的情况下,通过所述第一协议将所述第七报文携带的密钥进行存储;
[0196]
其中,所述第七报文指示所述第二节点通过所述第三协议与相邻上游节点建立密
钥。
[0197]
第七报文为ready消息,其与第五报文的结构和作用类似,这里不进行赘述。
[0198]
可选的,在密钥交换得到目标密钥的情况下,可以向第一节点发送done消息,以指示完成端到端密钥的建立。
[0199]
第三实施例
[0200]
如图5所示,本公开提供一种量子密钥分发方法,应用于第三节点,包括如下步骤:
[0201]
步骤s501:接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
[0202]
步骤s502:通过所述第二协议向所述第二节点发送所述第一报文;
[0203]
步骤s503:接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;
[0204]
步骤s504:通过所述第二协议向所述第一节点发送所述第二报文;
[0205]
步骤s505:通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;
[0206]
步骤s506:基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。
[0207]
本实施例中,第三节点为量子密钥分发系统中第一节点与第二节点之间的中继节点,其可以根据自身资源的判断,处理第一节点与第二节点在建立端到端密钥的过程中的交互消息,如可以拒绝接受第一节点发送的request消息,也可以转发第一节点发送的request消息至第二节点,并添加其自身的节点标识至路径信息中。
[0208]
并且,该中继节点也可以根据处理情况下,生成新的消息发送给端节点,如生成ciphertext消息,以将密钥交换过程中产生的密钥密文发送给端节点。
[0209]
在步骤s501至步骤s504中,是中继节点对request消息和accept消息的转发过程,其转发过程与第一实施例中中继节点的转发过程类似,这里不进行赘述。
[0210]
在步骤s505中,中继节点在接收到accept消息的同时,会启动keygeneration协议,通过keygeneration协议分别与上游节点和下游节点建立密钥,其建立密钥的过程与第一实施例中第一节点建立密钥的过程类似,这里不进行赘述。
[0211]
在步骤s506,是中继节点进行密钥交换的过程,该中继节点可以将基于第一节点建立的目标密钥交换至第二节点,也可以将基于第二节点建立的目标密钥交换至第一节点,其密钥交换的过程在第一实施例中已经详细阐述,这里不进行赘述。
[0212]
本实施例中,通过接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,并通过所述第二协议向所述第二节点发送所述第一报文;所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文,并通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述
第二节点接受所述量子密钥分发请求;通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。如此,可以通过量子密钥分发的网络架构中所构建的三层协议的协议栈,来处理量子密钥分发过程中的各种消息类型的报文,并通过第三协议使用量子比特作为信息载体进行密钥分发,从而可以高效处理量子网络中两个用户建立端到端密钥的情景,并提高密钥分发的安全性。
[0213]
可选的,所述步骤s506具体包括:
[0214]
对所建立的两个所述第三密钥进行异或操作,得到密钥密文;
[0215]
通过所述第二协议将携带有所述密钥密文的第三报文发送给所述密钥交换的方向对应的目标节点,以使得所述目标节点获得共享的所述目标密钥,所述目标节点为所述第一节点或所述第二节点。
[0216]
本实施方式中,可以通过中继节点实现将一端节点生成的目标密钥交换至另一端节点。
[0217]
第四实施例
[0218]
如图6所示,本公开提供一种量子密钥分发装置600,应用于第一节点,包括:
[0219]
第一生成模块601,用于通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;
[0220]
第一发送模块602,用于基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;
[0221]
第一获取模块603,用于在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。
[0222]
可选的,所述第一获取模块603包括:
[0223]
第一建立单元,用于通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥;
[0224]
第一接收单元,用于在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,接收所述第二节点通过所述第三协议发送的第一量子信息,所述第一量子信息携带有目标密钥,所述目标密钥为所述第二节点生成的与所述第一节点相互通信的密钥;
[0225]
第二接收单元,用于在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文;
[0226]
第一异或操作单元,用于将第一密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述
第一密钥为所述第一节点通过所述第三协议与相邻下游节点建立的密钥。
[0227]
可选的,所述建立单元,具体用于:
[0228]
生成用于与所述第一节点相邻的下游节点通信的目标密钥;
[0229]
通过所述第三协议将所述目标密钥编码到量子比特中,得到第二量子信息;
[0230]
在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,将所述第二量子信息发送给所述第二节点;
[0231]
在所述第一节点相邻的下游节点为所述第一节点与所述第二节点之间的中继节点的情况下,将所述第二量子信息发送给所述第一节点相邻的下游节点,所述第一节点相邻的下游节点用于通过所述第二协议将所述目标密钥进行密钥交换至所述第二节点处。
[0232]
可选的,还包括:
[0233]
第二生成模块,用于生成第四报文,所述第四报文指示接收到所述第三节点发送的所述第三报文;
[0234]
第二发送模块,用于通过所述第二协议向所述第三节点发送所述第四报文。
[0235]
可选的,还包括:
[0236]
第一存储模块,用于在所述第一节点通过所述第二协议生成第五报文的情况下,通过所述第一协议将所述第五报文携带的密钥进行存储;
[0237]
其中,所述第五报文指示所述第一节点通过所述第三协议与相邻下游节点建立密钥。
[0238]
可选的,还包括:
[0239]
第二存储模块,用于在通过所述第二协议接收到所述第二节点针对所述第一报文返回的第六报文,或者,所述第一节点通过所述第二协议生成所述第六报文的情况下,通过所述第一协议将所述第六报文携带的所述目标密钥进行存储;
[0240]
其中,所述第六报文指示所述第一节点和所述第二节点获得所述目标密钥。
[0241]
本公开提供的量子密钥分发装置600能够实现量子密钥分发方法第一实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
[0242]
第五实施例
[0243]
如图7所示,本公开提供一种量子密钥分发装置700,应用于第二节点,包括:
[0244]
第一接收模块701,用于接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
[0245]
第三发送模块702,用于针对所述第一报文向所述第一节点返回第二报文;
[0246]
第二获取模块703,用于通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。
[0247]
可选的,所述第二获取模块703包括:
[0248]
第二建立单元,用于通过所述第三协议建立与所述分发路径下所述第二节点相邻的上游节点相互通信的目标密钥,以使所述第一节点获得与所述第二节点通信的所述目标
密钥;
[0249]
第三接收单元,用于在所述第一节点为所述分发路径下与所述第二节点相邻的上游节点的情况下,接收所述第一节点通过所述第三协议发送的第三量子信息,所述第三量子信息携带有目标密钥,所述目标密钥为所述第一节点生成的与所述第二节点相互通信的密钥;
[0250]
第四接收单元,用于在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文;
[0251]
第二异或操作,用于将第二密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第二密钥为所述第二节点通过所述第三协议与相邻上游节点建立的密钥。
[0252]
本公开提供的量子密钥分发装置700能够实现量子密钥分发方法第二实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
[0253]
第六实施例
[0254]
如图8所示,本公开提供一种量子密钥分发装置800,应用于第三节点,包括:
[0255]
第二接收模块801,用于接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;
[0256]
第四发送模块802,用于通过所述第二协议向所述第二节点发送所述第一报文;
[0257]
第三接收模块803,用于接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文;
[0258]
第五发送模块804,用于通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;
[0259]
建立模块805,用于通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;
[0260]
密钥交换模块806,用于基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。
[0261]
可选的,所述密钥交换模块806,具体用于:
[0262]
对所建立的两个所述第三密钥进行异或操作,得到密钥密文;
[0263]
通过所述第二协议将携带有所述密钥密文的第三报文发送给所述密钥交换的方向对应的目标节点,以使得所述目标节点获得共享的所述目标密钥,所述目标节点为所述第一节点或所述第二节点。
[0264]
本公开提供的量子密钥分发装置800能够实现量子密钥分发方法第三实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
[0265]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0266]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种
计算机程序产品。
[0267]
图9示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0268]
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
[0269]
设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0270]
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如量子密钥分发方法。例如,在一些实施例中,量子密钥分发方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到ram 903并由计算单元901执行时,可以执行上文描述的量子密钥分发方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量子密钥分发方法。
[0271]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0272]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0273]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0274]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0275]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0276]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0277]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0278]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
技术特征:1.一种量子密钥分发方法,应用于第一节点,包括:通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。2.根据权利要求1所述的方法,其中,所述通过第三协议获取与所述第二节点共享的目标密钥,包括以下任一项:通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥;在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,接收所述第二节点通过所述第三协议发送的第一量子信息,所述第一量子信息携带有目标密钥,所述目标密钥为所述第二节点生成的与所述第一节点相互通信的密钥;在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文,将第一密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第一密钥为所述第一节点通过所述第三协议与相邻下游节点建立的密钥。3.根据权利要求2所述的方法,其中,所述通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥,包括:生成用于与所述第一节点相邻的下游节点通信的目标密钥;通过所述第三协议将所述目标密钥编码到量子比特中,得到第二量子信息;在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,将所述第二量子信息发送给所述第二节点;在所述第一节点相邻的下游节点为所述第一节点与所述第二节点之间的中继节点的情况下,将所述第二量子信息发送给所述第一节点相邻的下游节点,所述第一节点相邻的下游节点用于通过所述第二协议将所述目标密钥进行密钥交换至所述第二节点处。4.根据权利要求2所述的方法,还包括:生成第四报文,所述第四报文指示接收到所述第三节点发送的所述第三报文;通过所述第二协议向所述第三节点发送所述第四报文。5.根据权利要求1所述的方法,所述通过第三协议获取与所述第二节点共享的目标密钥之后,还包括:在所述第一节点通过所述第二协议生成第五报文的情况下,通过所述第一协议将所述第五报文携带的密钥进行存储;其中,所述第五报文指示所述第一节点通过所述第三协议与相邻下游节点建立密钥。
6.根据权利要求1所述的方法,所述通过第三协议获取与所述第二节点共享的目标密钥之后,还包括:在通过所述第二协议接收到所述第二节点针对所述第一报文返回的第六报文,或者,所述第一节点通过所述第二协议生成所述第六报文的情况下,通过所述第一协议将所述第六报文携带的所述目标密钥进行存储;其中,所述第六报文指示所述第一节点和所述第二节点获得所述目标密钥。7.一种量子密钥分发方法,应用于第二节点,包括:接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;针对所述第一报文向所述第一节点返回第二报文,并通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。8.根据权利要求7所述的方法,其中,所述通过第三协议获取与所述第一节点共享的目标密钥,包括以下任一项:通过所述第三协议建立与所述分发路径下所述第二节点相邻的上游节点相互通信的目标密钥,以使所述第一节点获得与所述第二节点通信的所述目标密钥;在所述第一节点为所述分发路径下与所述第二节点相邻的上游节点的情况下,接收所述第一节点通过所述第三协议发送的第三量子信息,所述第三量子信息携带有目标密钥,所述目标密钥为所述第一节点生成的与所述第二节点相互通信的密钥;在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文,将第二密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第二密钥为所述第二节点通过所述第三协议与相邻上游节点建立的密钥。9.一种密钥分发方法,应用于第三节点,包括:接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,并通过所述第二协议向所述第二节点发送所述第一报文;所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文,并通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获
得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。10.根据权利要求9所述的方法,其中,所述基于所述第三密钥进行目标密钥的密钥交换,包括:对所建立的两个所述第三密钥进行异或操作,得到密钥密文;通过所述第二协议将携带有所述密钥密文的第三报文发送给所述密钥交换的方向对应的目标节点,以使得所述目标节点获得共享的所述目标密钥,所述目标节点为所述第一节点或所述第二节点。11.一种量子密钥分发装置,应用于第一节点,包括:第一生成模块,用于通过第一协议生成第一报文,所述第一协议用于发起量子密钥分发请求,所述第一报文包括第二节点的节点标识和分发路径;第一发送模块,用于基于所述分发路径和所述节点标识,通过第二协议向所述第二节点发送所述第一报文,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点;第一获取模块,用于在接收到所述第二节点针对所述第一报文返回的第二报文的情况下,通过第三协议获取与所述第二节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第三协议用于使用量子比特作为信息载体进行密钥分发,所述第二报文指示所述第二节点接受所述量子密钥分发请求。12.根据权利要求11所述的装置,其中,所述第一获取模块包括:第一建立单元,用于通过所述第三协议建立与所述分发路径下所述第一节点相邻的下游节点相互通信的目标密钥,以使所述第二节点获得与所述第一节点通信的所述目标密钥;第一接收单元,用于在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,接收所述第二节点通过所述第三协议发送的第一量子信息,所述第一量子信息携带有目标密钥,所述目标密钥为所述第二节点生成的与所述第一节点相互通信的密钥;第二接收单元,用于在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文;第一异或操作单元,用于将第一密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第一密钥为所述第一节点通过所述第三协议与相邻下游节点建立的密钥。13.根据权利要求12所述的装置,其中,所述建立单元,具体用于:生成用于与所述第一节点相邻的下游节点通信的目标密钥;通过所述第三协议将所述目标密钥编码到量子比特中,得到第二量子信息;在所述第二节点为所述分发路径下与所述第一节点相邻的下游节点的情况下,将所述第二量子信息发送给所述第二节点;在所述第一节点相邻的下游节点为所述第一节点与所述第二节点之间的中继节点的情况下,将所述第二量子信息发送给所述第一节点相邻的下游节点,所述第一节点相邻的
下游节点用于通过所述第二协议将所述目标密钥进行密钥交换至所述第二节点处。14.根据权利要求12所述的装置,还包括:第二生成模块,用于生成第四报文,所述第四报文指示接收到所述第三节点发送的所述第三报文;第二发送模块,用于通过所述第二协议向所述第三节点发送所述第四报文。15.根据权利要求11所述的装置,还包括:第一存储模块,用于在所述第一节点通过所述第二协议生成第五报文的情况下,通过所述第一协议将所述第五报文携带的密钥进行存储;其中,所述第五报文指示所述第一节点通过所述第三协议与相邻下游节点建立密钥。16.根据权利要求11所述的装置,还包括:第二存储模块,用于在通过所述第二协议接收到所述第二节点针对所述第一报文返回的第六报文,或者,所述第一节点通过所述第二协议生成所述第六报文的情况下,通过所述第一协议将所述第六报文携带的所述目标密钥进行存储;其中,所述第六报文指示所述第一节点和所述第二节点获得所述目标密钥。17.一种量子密钥分发装置,应用于第二节点,包括:第一接收模块,用于接收第一节点基于分发路径和所述第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;第三发送模块,用于针对所述第一报文向所述第一节点返回第二报文;第二获取模块,用于通过第三协议获取与所述第一节点共享的目标密钥,所述目标密钥用于所述第一节点与所述第二节点之间进行相互通信,所述第二报文指示所述第二节点接受所述量子密钥分发请求,所述第三协议用于使用量子比特作为信息载体进行密钥分发。18.根据权利要求17所述的装置,其中,所述第二获取模块包括:第二建立单元,用于通过所述第三协议建立与所述分发路径下所述第二节点相邻的上游节点相互通信的目标密钥,以使所述第一节点获得与所述第二节点通信的所述目标密钥;第三接收单元,用于在所述第一节点为所述分发路径下与所述第二节点相邻的上游节点的情况下,接收所述第一节点通过所述第三协议发送的第三量子信息,所述第三量子信息携带有目标密钥,所述目标密钥为所述第一节点生成的与所述第二节点相互通信的密钥;第四接收单元,用于在所述第一节点与所述第二节点之间存在第三节点的情况下,接收所述第三节点通过所述第二协议发送的第三报文;第二异或操作,用于将第二密钥与所述第三报文携带的密钥密文进行异或操作,得到所述目标密钥,所述密钥密文是所述第三节点将通过所述第三协议与相邻上游节点建立的密钥和通过所述第三协议与相邻下游节点建立的密钥进行异或操作得到的,所述第二密钥为所述第二节点通过所述第三协议与相邻上游节点建立的密钥。19.一种量子密钥分发装置,应用于第三节点,包括:
第二接收模块,用于接收第一节点基于分发路径和第二节点的节点标识通过第二协议发送的第一报文,所述第一报文由所述第一节点通过第一协议生成,所述第一协议用于发起量子密钥分发请求,所述第二协议用于确定所述分发路径下与所述第一节点相邻的下游节点,所述第一报文包括所述节点标识和所述分发路径;第四发送模块,用于通过所述第二协议向所述第二节点发送所述第一报文;第三接收模块,用于接收所述第二节点针对所述第一报文向所述第一节点返回的第二报文;第五发送模块,用于通过所述第二协议向所述第一节点发送所述第二报文,所述第二报文指示所述第二节点接受所述量子密钥分发请求;建立模块,用于通过第三协议分别与所述分发路径下相邻上游节点和相邻下游节点建立第三密钥,所述第三协议用于使用量子比特作为信息载体进行密钥分发;密钥交换模块,用于基于所述第三密钥进行目标密钥的密钥交换,以使得所述第一节点和所述第二节点获得共享的所述目标密钥,所述目标密钥基于所述第一节点或所述第二节点建立,用于所述第一节点与所述第二节点之间进行相互通信。20.根据权利要求19所述的装置,其中,所述密钥交换模块,具体用于:对所建立的两个所述第三密钥进行异或操作,得到密钥密文;通过所述第二协议将携带有所述密钥密文的第三报文发送给所述密钥交换的方向对应的目标节点,以使得所述目标节点获得共享的所述目标密钥,所述目标节点为所述第一节点或所述第二节点。21.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法,或者执行权利要求7-8中任一项所述的方法,或者执行权利要求9-10中任一项所述的方法。22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法,或者执行根据权利要求7-8中任一项所述的方法,或者执行根据权利要求9-10中任一项所述的方法。23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法,或者实现根据权利要求7-8中任一项所述的方法,或者实现根据权利要求9-10中任一项所述的方法。
技术总结本公开提供了一种量子密钥分发方法、装置及电子设备,涉及量子计算技术领域,具体涉及量子网络技术领域。具体实现方案为:通过第一协议生成第一报文,第一协议用于发起量子密钥分发请求,第一报文包括第二节点的节点标识和分发路径;基于分发路径和节点标识,通过第二协议向第二节点发送第一报文,第二协议用于确定分发路径下与第一节点相邻的下游节点;在接收到第二节点针对第一报文返回的第二报文的情况下,通过第三协议获取与第二节点共享的目标密钥,目标密钥用于第一节点与第二节点之间进行相互通信,第三协议用于使用量子比特作为信息载体进行密钥分发,第二报文指示第二节点接受量子密钥分发请求。接受量子密钥分发请求。接受量子密钥分发请求。
技术研发人员:方堃 赵璟天
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1