一种量子密钥传输方法与流程

文档序号:24069044发布日期:2021-02-26 14:15阅读:186来源:国知局
一种量子密钥传输方法与流程

[0001]
本说明书涉及量子加密通信技术领域,特别地,涉及一种量子密钥传输方法。


背景技术:

[0002]
随着量子密码技术的发展,量子密钥分发作为量子密码的典型应用,已成为学者们的研究热点。通过搭建量子保密通信网络,在各网络节点上构建密钥池,实现网络节点之间的保密通信,就能够实现全网的量子密钥分发。和传统的tcp/ip网络类似,量子保密网络在密钥传输过程中会出现传输差错,会出现“差错”或“丢包”现象,这就需要有一定的差错处理机制,保障传输量子密钥传输的准确性和可靠性。
[0003]
传统的tcp/ip网络传输使用特定的网络协议如tcp协议、arq协议、icmp协议进行差错控制,通过这些协议通信双方能够在可能会产生差错的通信线路上进行无差错的数据传输,但是协议要求通信双方的多次信息交互,确保传输的数据包是准确的。量子保密通信网络在所有网络节点的密钥池中填充密钥,节点间的信息交互通过密钥池中密钥加密保护,多次的信息交互会造成对密钥资源的消耗和浪费,因此,tcp/ip网络中的协议并不能有效的应用到量子保密通信网络中。因此目前急需一种可以适用于量子保密通信网络的量子密钥传输方法。


技术实现要素:

[0004]
本说明书实施例的目的在于提供一种量子密钥传输方法,可以提高密钥传输效率,有效降低密钥传输过程中的资源浪费。
[0005]
本说明书提供一种量子密钥传输方法是包括如下方式实现的:
[0006]
一种量子密钥传输方法,应用于量子通信系统,所述系统包括至少一个网络节点。所述网络节点包括对应于不同通信层的至少一个子节点。其中,同一通信层的相邻子节点内对应布设有一对第一密钥池。所述相邻子节点是指同一通信层内基于两个子节点间共享的量子密钥进行信息加密传输的两个子节点。所述第一密钥池内存储有相应相邻子节点所共享的量子密钥。同一通信层的至少部分子节点内布设有第二密钥池;其中,所述第二密钥池在两个子节点内成对布设,且一对第二密钥池与该一对第二密钥池所在的通信层的下一通信层的一对第一密钥池相对应。所述一对第二密钥池用于存储相对应的一对第一密钥池所需的量子密钥。其中,所述通信层从上至下的布设顺序为网络节点内量子密钥传输的顺序。所述方法包括如下步骤。将存在密钥填充需求的第二密钥池作为当前第二密钥池,将与所述当前第二密钥池成对布设的另一第二密钥池作为目标第二密钥池;将所述当前第二密钥池所在的子节点作为当前子节点。确定所述当前第二密钥池所对应的密钥同步路径;其中,所述密钥同步路径是指用于实现一对第二密钥池内的量子密钥一致的密钥传输路径。基于所述密钥同步路径确定所述当前子节点中向所述当前第二密钥池填充量子密钥的第一密钥池,作为指定第一密钥池。从所述指定第一密钥池内取出至少部分量子密钥填充至所述当前第二密钥池中。将所述至少部分量子密钥进行拆分,得到至少一个量子密钥分片。
对于任一量子密钥分片,获取量子密钥分片的位置信息以及长度信息;将量子密钥分片以及量子密钥分片的位置信息、长度信息基于所述密钥同步路径传输至目标第二密钥池。在所述目标第二密钥池中基于量子密钥分片的位置信息及长度信息对相应的量子密钥分片进行存储。
[0007]
本说明书提供的所述方法的另一些实施例中,对位于最上层的通信层之外的其他通信层的相邻子节点,在确定第一密钥池存在密钥填充需求时,从该第一密钥池相对应的位于上一通信层的第二密钥池中取出至少部分量子密钥,传输至该存在密钥填充需求的第一密钥池中。
[0008]
本说明书提供的所述方法的另一些实施例中,将所述当前第二密钥池、目标第二密钥池所对应的位于下一通信层的一对第一密钥池分别作为当前第一密钥池、目标第一密钥池。相应的,所述当前第一密钥池所在的子节点作为数据传输的第一接收方,所述目标第一密钥池所在的子节点作为数据传输的第一发送方,执行下述方式进行量子密钥加密数据传输。第一发送方获取所述目标第一密钥池中存储的同步量子密钥数据;所述同步量子密钥数据是指所述目标第二密钥池接收的从所述指定第一密钥池基于密钥同步路径传输来的量子密钥。第一发送方从所述同步量子密钥数据提取指定长度的量子密钥数据段;并获取提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息;所述子密钥段不存在密钥数据缺失。第一发送方利用提取的量子密钥数据段对传输数据进行加密,并将密态传输数据发送至第一接收方;以及将所述至少一个子密钥段的位置信息以及长度信息发送至第一接收方。第一接收方根据接收的至少一个子密钥段的位置信息以及长度信息,从所述当前第一密钥池中提取相应量子密钥数据段;以及利用提取的相应量子密钥数据段对接收的密态传输数据进行解密处理。
[0009]
本说明书提供的所述方法的另一些实施例中,所述当前第二密钥池、目标第二密钥池所对应的业务应用分别作为数据传输的第二发送方、第二接收方,执行下述方式进行量子密钥加密数据传输。第二发送方向目标子节点发送加密密钥使用请求;其中,所述目标子节点为所述目标第二密钥池所在的子节点。目标子节点获取所述目标第二密钥池中存储的同步量子密钥数据;所述同步量子密钥数据是指所述目标第二密钥池接收的从所述指定第一密钥池基于密钥同步路径传输来的量子密钥。目标子节点从所述同步量子密钥数据中提取指定长度的量子密钥数据段;并获取提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息;所述子密钥段不存在密钥数据缺失。目标子节点将所述至少一个子密钥段的位置信息以及长度信息反馈至所述第二发送方。第二发送方利用提取的量子密钥数据段对传输数据进行加密,并将密态传输数据发送至第二接收方;以及将所述至少一个子密钥段的位置信息以及长度信息发送至所述第二接收方。第二接收方根据接收的至少一个子密钥段的位置信息以及长度信息,向所述当前子节点发送解密密钥使用请求。当前子节点基于解密密钥使用请求中的至少一个子密钥段的位置信息以及长度信息,从所述当前第二密钥池中提取相应量子密钥数据段,并反馈给所述第二接收方。第二接收方利用接收的相应量子密钥数据段对接收的密态传输数据进行解密处理。
[0010]
本说明书提供的所述方法的另一些实施例中,所述将量子密钥分片以及量子密钥分片的位置信息、长度信息基于所述密钥同步路径传输至目标第二密钥池,包括如下步骤。基于所述密钥同步路径确定密钥传输路径上的各相邻子节点;将所述目标第二密钥池所在
的子节点作为目标子节点。基于确定的各相邻子节点的第一密钥池中的量子密钥,对量子密钥分片、以及相应量子密钥分片的位置信息、长度信息逐跳进行加密传输,传输至所述目标子节点。将所述目标子节点接收的所述量子密钥分片,基于相应量子密钥分片的位置信息及长度信息填充至所述目标第二密钥池中。
[0011]
本说明书提供的所述方法的另一些实施例中,所述网络节点内的各子节点基于ip通信协议进行数据传输。相应的,基于ip通信协议将取出的至少部分量子密钥传输至该存在密钥填充需求的第一密钥池中。
[0012]
本说明书提供的所述方法的另一些实施例中,基于ssl协议对取出的至少部分量子密钥传输至该存在密钥填充需求的第一密钥池中。
[0013]
本说明书提供的所述方法的另一些实施例中,在第一密钥池内的量子密钥数量小于第一预设阈值时,确定相应的第一密钥池存在密钥填充需求。
[0014]
本说明书提供的所述方法的另一些实施例中,在第二密钥池内的量子密钥存储量小于第二预设阈值时,确定相应的第二密钥池存在密钥填充需求。
[0015]
本说明书一个或多个实施例提供的量子密钥传输方法,在密钥数据同步过程中,密钥发送端将密钥分片连同密钥分片的位置信息以及长度信息一起传输,在密钥接收端基于密钥分片的位置信息以及长度信息对密钥分片进行记录。相应的,在使用过程中基于密钥接收端实际收到的密钥分片的位置信息以及长度信息,可以简单高效的判断哪些分片在传输过程中出现了“差错”或“丢包”。密钥接收端仅使用正确收到的密钥分片进行密钥的使用,并将加密后的数据以及所使用的密钥的位置信息以及长度信息一起发送给密钥发送端。密钥发送端在接收到加密数据时,可以基于接收到的密钥的位置信息以及长度信息提取相应的密钥数据,进行解密处理。从而无需在密钥传输过程中进行繁琐的差错控制、数据校验和重传,提高密钥传输效率,有效降低密钥传输过程中的资源浪费。
附图说明
[0016]
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0017]
图1为本说明书提供的一些实施例中的量子通信系统架构示意图;
[0018]
图2为本说明书提供的另一些实施例中的量子通信系统架构示意图;
[0019]
图3为本说明书提供的一些实施例中的量子通信系统的密钥池布设示意图;
[0020]
图4为本说明书提供的另一些实施例中的量子通信系统的密钥池布设示意图;
[0021]
图5为本说明书提供的一些实施例中的量子密钥数据同步方式示意图;
[0022]
图6为本说明书提供的另一些实施例中的量子密钥数据同步方式示意图;
[0023]
图7为本说明书提供的另一些实施例中的量子密钥数据同步方式示意图;
[0024]
图8为本说明书提供的一些实施例中的量子密钥数据存储方式示意图;
[0025]
图9为本说明书提供的另一些实施例中的量子密钥数据存储方式示意图;
[0026]
图10为本说明书提供的一些实施例中的量子密钥数据提取方式示意图。
具体实施方式
[0027]
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
[0028]
本说明书实施例提供一种量子通信系统,所述系统可以包括至少一个网络节点。所述网络节点可以包括对应于不同通信层的至少一个子节点。其中,同一通信层的相邻子节点内对应布设有一对第一密钥池。所述相邻子节点可以是指同一通信层内基于两个子节点间共享的量子密钥进行信息加密传输的两个子节点。所述第一密钥池内存储有相应相邻子节点所共享的量子密钥。同一通信层的至少部分子节点内布设有第二密钥池。其中,所述第二密钥池在两个子节点内成对布设,且一对第二密钥池与该一对第二密钥池所在的通信层的下一通信层的一对第一密钥池相对应。所述一对第二密钥池用于存储相对应的一对第一密钥池所需的量子密钥。其中,所述通信层从上至下的布设顺序为网络节点内量子密钥传输的顺序。
[0029]
图1为本说明书的一个应用场景示例中提供的量子通信系统的整体架构示意图。如图1所示,从布设位置以及物理连接关系上对所述系统进行划分,系统可以包括多个网络节点。所述网络节点可以包括位于地面的网络节点以及位于卫星上的网络节点。位于地面的网络节点又可以分为地面与卫星通信的地面站网络节点以及与地面站通信的局域网网络节点。
[0030]
例如,如图1所示,位于不同区域的地面站a、地面站b可以分别布设有量子通信设备,卫星s上也可以布设有量子通信设备。所述量子通信设备可以包括实现量子密钥生产、存储以及分发的设备。可以将地面站a、地面站b以及卫星s上布设的量子通信设备分别作为不同的网络节点。同一地区可以仅包括一个网络节点,也可以包括多个网络节点。参考图1所示,针对不同的用户,也可以对应布设有不同的局域网网络节点,如局域网接入节点b、局域网节点c以及局域网节点d等。从而构建得到“天地一体化”量子密钥传输架构。
[0031]
一个网络节点内可以仅包括实现量子密钥生产、存储以及分发功能的一个集成式设备。或者,一个网络节点也可以包括分别实现不同功能的设备所组成的系统。当然,一个网络节点也可以包括多个集成式设备所组成的系统。这里不做限定。
[0032]
不同网络节点之间可以通过如光纤或者类似的光子线路进行连接,以实现不同网络节点之间的量子密钥共享,从而实现对不同网络节点所对应的下游业务应用之间信息的量子密钥加密传输。同一网络节点内的设备或部件之间的信息传输安全性通常较高,信息被切取的可能性较少,则可以采用如tcp/ip网络系统中的ip协议(internet protocol,网际互连协议)等信息传输方式进行信息传输。
[0033]
如图1所示,所述系统从通信层面上来分,至少可以包括不同通信层。所述通信层如可以分为密钥生产层以及密钥服务层。所述密钥生产层可以用于量子密钥的生产以及分发。所述密钥服务层可以用于接收密钥生产层生产的量子密钥,并提供给其对应的业务应用,以使业务应用基于量子密钥进行信息加密传输。一些实施方式中,密钥生产层与密钥服务层之间还可以设计有密钥交换层。所述密钥交换层可以用于量子密钥的传输、网络路由
选择以及对量子通信系统的密钥分发等进行管理等。密钥生产层、密钥交换层以及密钥服务层的节点层数可以根据需要配置,不同地面站或者局域网接入点、局域网用户节点等对应的密钥生产层、密钥交换层及密钥服务层的节点层数也可以是不同的,这里不做限定。
[0034]
图2为一种量子通信系统的分层设计示意图。如图2所示,一个场景示例中,所述量子通信系统可以包括密钥生产层、密钥交换层以及密钥服务层。其中,
[0035]
密钥生产层,可以布设在量子地面网络的网络节点和卫星网络节点中。密钥生产层可以与量子密钥生产设备(quantum key distribution,qkd)相连接,用于接收qkd生产的量子密钥数据,并向其他通信层进行密钥分发。
[0036]
网络节点内可以布设有实现量子密钥生产的qkd设备,以实现量子密钥的生产。网络节点的密钥生产设备之间可以通过光纤或者类似的光子线路连接。相应的,通过光纤或者类似的光子线路建立连接的密钥生产设备之间,生产的量子密钥数据通过光纤或者类似的光子线路达到一致,以对相应的网络节点之间传输的数据进行加解密。密钥生产设备生产的量子密钥可以直接存储至密钥生产层的密钥池中。
[0037]
密钥交换层,密钥生产层可以将qkd生产的量子密钥通过密钥交换层传输至密钥服务层。相应的,密钥交换层也可以布设有密钥交换设备(quantum key exchange,qkx),qkx设备主要负责量子密钥的传输、网络路由选择和对密钥服务系统进行管理等。
[0038]
密钥服务层,向密钥交换层请求量子密钥数据,并提供给其对应的业务应用。相应的,密钥服务层也可以布设有密钥服务设备(quantum key service,qks),qks设备可以和各业务应用进行对接,需要进行密钥分发的业务应用所对应两端qks设备之间可以进行密钥共享和同步,实现量子密钥向业务应用的分发。
[0039]
本说明书实施例中,为了便于表述,可以将各网络节点内的不同通信层分别作为不同的子节点。
[0040]
如图1所示,地面站a下可以有sqkd-a(与卫星通信的密钥生产子节点a)、一层或多层密钥交换子节点以及qks-a(密钥服务子节点a);qks-a可以与多个业务应用app-a1、app-a2、
……
、app-an连接。sqkd-a生产的量子密钥可以通过密钥交换子节点传输给qks-a,qks-a再将量子密钥传输给业务应用,以使业务应用对信息进行加密传输。局域网节点d下有qkd-d(密钥生产子节点d)、一层或多层密钥交换子节点以及qks-a(密钥服务子节点d);qks-d可以与多个业务应用app-d1、app-d2、
……
、app-dn连接。
[0041]
qkd-d生产的量子密钥可以通过密钥交换子节点传输给qks-d,qks-d再将量子密钥传输给业务应用,以使业务应用对信息进行加密传输。假设app-a1与app-d1需要进行信息传输,则可以分别从qks-a、qks-d获取量子密钥,以进行信息的加密传输以及解密获得相应的信息。
[0042]
当然,上述布设方式为优选示例说明,具体实施时,可以在此基础上进行如网络节点的数目、层数、网络节点之间的关系等的灵活设计,这里不做限定。通过上述分层以及分节点通信结构设计共同协作完成量子密钥的分发过程。
[0043]
各网络节点可以配置有密钥池。所述密钥池在通信双方的网络节点中成对布设,用于存储通信双方的网络节点之间共享的量子密钥,以实现两个网络节点之间或者网络节点所对应的业务应用之间利用该共享的量子密钥实现信息的加密传输以及解密。本说明书实施例中,所述密钥池可以分为第一密钥池以及第二密钥池。
[0044]
同一通信层的相邻子节点内可以对应布设有一对第一密钥池。所述相邻子节点可以是指同一通信层内基于两个子节点间共享的量子密钥进行信息加密传输的两个子节点。所述第一密钥池内存储有相应相邻子节点所共享的量子密钥。
[0045]
通过光纤或者类似的光子线路直接建立连接的两个网络节点,可以在该两个建立连接的网络节点的密钥生产层子节点中配置一对第一密钥池。相应的,密钥生产设备生产的量子密钥数据可以存储至密钥生产层子节点所对应的第一密钥池中。因该两个网络节点生产的量子密钥已通过光纤或者光子线路达到一致,则相应密钥生产层子节点中配置的一对第一密钥池的量子密钥也一致,可以用于两个密钥生产层子节点之间的数据传输。相应的,可以将该两个密钥生产层子节点作为相邻子节点。
[0046]
例如,如图1所示,地面站a、地面站b分别与卫星s通过光子线路直接连接,则地面站a的sqkd-a子节点及地面站b的sqkd-b子节点分别与卫星s的sqkd-s子节点分别对应配置有一对第一密钥池np
as1
以及np
bs1
。sqkd-a以及sqkd-s中的np
as1
中存储的量子密钥一致,以用于对sqkd-a以及sqkd-s之间的传输数据进行加解密。sqkd-b以及sqkd-s中的np
bs1
中存储的量子密钥一致,以用于对sqkd-b以及sqkd-s之间的传输数据进行加解密。相应的,sqkd-a子节点与sqkd-s子节点为一对相邻子节点,sqkd-b子节点与sqkd-s子节点为一对相邻子节点。
[0047]
当然,对于其他通信层,也可以将同一通信层内基于两个子节点间共享的量子密钥进行信息加密传输的两个子节点作为相邻子节点。并可以在相邻子节点内布设一对第一密钥池,用于存储相应相邻子节点所共享的量子密钥。除密钥生产层之外的其他通信层,第一密钥池中的量子密钥可以由相应网络节点的密钥生产层子节点填充以及同步处理,以得到相应相邻子节点所共享的量子密钥。
[0048]
同一通信层的至少部分子节点内还可以布设有第二密钥池。其中,所述第二密钥池也是在两个子节点内成对布设,且一对第二密钥池与该一对第二密钥池所在的通信层的下一通信层的相邻子节点相对应。所述一对第二密钥池内可以存储有相对应的相邻子节点所共享的量子密钥。其中,所述通信层从上至下的布设顺序为网络节点内量子密钥传输的顺序。
[0049]
为了便于描述,本说明书实施例中,将不同通信层从上至下的布设顺序为网络节点内量子密钥传输的顺序,即量子密钥生产设备生产的量子密钥从密钥生产层逐层传递至密钥服务层的顺序,为从上至下逐层传递的顺序。相应的,密钥生产层位于最上层,密钥服务层位于最下层。当然,上述布设顺序描述方式仅为便于说明而定义,并不构成对本说明书实施例具体架构的直接限定。
[0050]
如图3所示,各网络节点可以基于需要布设多层通信层,不同网络节点所对应布设的通信层数可以不同。假设图3中各网络节点的第一通信层均为密钥生产层,此外,各网络节点还可以根据需要可以依次布设一个或者多个通信层,分别作为第二通信层、第三通信层等等。
[0051]
如果某两个网络节点的第二通信层子节点之间需要建立通信。如图3中的a2和c2子节点需要建立通信,则可以在该两个子节点a2、c2对应配置一对第一密钥池(neighbor pool)np
ac2
,以用于存储该两个子节点a2、c2之间通信时所需的量子密钥。对应的,可以在a2和c2所在网络节点内的上一通信层(即第一通信层)子节点a1和c1配置一对第二密钥池
(cross pool)cp
ac1
。相应的,该一对第二密钥池cp
ac1
与第一密钥池np
ac2
相对应。对于其他通信层的子节点,可以采用同样的方式,配置第一密钥池以及相应的第二密钥池。
[0052]
基于上述场景示例,若两个子节点之间建立通信连接,则可以在两个子节点中对应配置一对第一密钥池,并相应的在相应网络节点的上一通信层子节点配置一对第二密钥池。相应的,除第一通信层各相邻子节点之外,其他各通信层的相邻子节点在上一通信层均对应一对第二密钥池。即通过上述配置方式所构建的量子通信系统中,各子节点内配置的任一对第二密钥池与该一对第二密钥池所在的通信层的下一通信层的相邻子节点相对应。
[0053]
一些实施例中,同一网络节点内的各通信层之间信息传输安全性通常较高,信息被切取的可能性较少,可以不采集基于量子通信的信息加密传输方式,直接采用如tcp/ip网络中的协议等信息传输方式。相应的,同一网络节点内的量子密钥可以由密钥生产层子节点通过如tcp/ip网络协议逐层传输至密钥服务层子节点,然后,再提供给相应的业务应用进行量子加密通信。
[0054]
基于上述量子通信系统,可以采用下述方式进行量子密钥的分发以及传输。
[0055]
对于图3中的相邻子节点a2和c2,在通过上述方式配置完成第一密钥池np
ac2
以及相应的第二密钥池cp
ac1
后,可以向第一密钥池np
ac2
进行量子密钥的填充以及同步处理,以使np
ac2
中存储相应相邻子节点所共享的量子密钥,实现相邻子节点a2和c2之间的信息加密传输。
[0056]
以同一网络节点的各子节点采用集成式配置,由子节点a2所在的网络节点a发起量子密钥的填充以及同步处理为例进行说明如下。当然,实际应用场景中如果各子节点分别对应有处理器,则也可以由子节点a2发起量子密钥的填充以及同步处理。当然,实际应用中子节点c2或者c2所在的网络节点c也可以发起量子密钥的填充以及同步处理。可以根据实际硬件设计方式以及应用场景处理方式确定相应的密钥填充以及同步处理发起的执行主体,这里不做限定。
[0057]
网络节点a可以在np
ac2
以及cp
ac1
配置完成后,发起密钥填充,从密钥生产层子节点a1的第一密钥池np
ac1
中提取部分量子密钥key写入至第二密钥池cp
ac1
中。在进行填充处理的同时或者在完成填充处理后,网络节点a可以将提取的量子密钥key同步至c1的第二密钥池cp
ac1
中。
[0058]
一些实施方式中,网络节点a可以先确定同步至c1的第二密钥池cp
ac1
中的密钥同步路径。网络节点a可以基于本次同步处理的网络节点、子节点以及密钥池等参数信息,确定本次同步处理所对应的密钥同步路径。
[0059]
一些实施例中,所述密钥同步路径可以预先配置并存储。如可以预先存储在网络节点a所对应的存储设备中,a可以基于本次同步处理的网络节点、子节点以及密钥池等参数信息,从存储设备中获取本次同步处理所对应的密钥同步路径。实际应用场景中,密钥同步的路径可以对应一条或者多条,可以预先将节点之间跳跃次数最少的路径作为密钥同步路径,基于相应的网络节点、子节点以及密钥池等参数信息进行存储。当然,上述路径优选方式仅为举例说明,具体应用场景中可以根据需要进行配置。或者,也可以将多条路径同时进行存储,然后,设置优选条件进行本次同步处理的密钥同步路径的筛选。
[0060]
或者,另一些实施例中,也可以不预先配置密钥同步路径,在网络节点的存储设备中存储量子通信系统的拓扑架构信息,网络节点的服务器根据本次同步处理的网络节点、
子节点以及密钥池等参数信息,或者进一步参考预先配置的优选条件,实时选择本次同步处理所对应的密钥同步路径。
[0061]
假设本次同步处理所对应的密钥同步路径为相邻子节点a1与s1、相邻子节点s1与b1、相邻子节点b1与c1、以及同步至c1的第二密钥池cp
ac1
,则网络节点a可以从a1的第一密钥池np
as1
中取出a1与s1所共享的量子密钥k
as
,然后,可以利用k
as
对key进行加密处理,并将加密处理后的量子密钥key
as
以及密钥同步路径发送至网络节点s的子节点s1。如可以传输至子节点s1的存储设备中,本地缓存。网络节点s可以从s1的第一密钥池np
as1
中取出一致性密钥k
as
,然后,可以利用k
as
对key
as
进行解密处理,得到key。对key也可以先进行本地缓存。然后,在将key加密并传输至下一跳子节点后,清理缓存的数据。或者,也可以定期清理缓存数据。对下述逐跳密钥传输,可以采用与本实施例相同或相似的方式进行密钥的存储,下文不做赘述。以及如果密钥同步路径也被加密的情况下,还可以对加密处理后的密钥同步路径进行解密,得到密钥同步路径。
[0062]
然后,网络节点s可以基于密钥同步路径从s1的第一密钥池np
bs1
中取出s1与b1所共享的量子密钥k
bs
,然后,可以利用k
bs
对key进行加密处理,并将加密处理后的量子密钥key
bs
以及密钥同步路径发送至网络节点b的子节点b1。网络节点b可以从b1的第一密钥池np
bs1
中取出一致性密钥k
bs
,然后,可以利用k
bs
对key
bs
进行解密处理,得到key。以及如果密钥同步路径也被加密的情况下,还可以对加密处理后的密钥同步路径进行解密,得到密钥同步路径。
[0063]
之后,网络节点b可以重复上述步骤,将key以及密钥同步路径利用b1与c1所对应的第一密钥池中的量子密钥,加密传输至子节点c1。最后,网络节点c可以基于密钥同步路径将key填充至qkd-c1的第二密钥池cp
ac1
中,完成本次同步处理。
[0064]
基于上述场景示例,一些实施例中,所述第二密钥池内的共享量子密钥可以采用下述方式获取。在确定第二密钥池存在密钥填充需求时,将存在密钥填充需求的第二密钥池作为当前第二密钥池,将与所述当前第二密钥池成对布设的另一第二密钥池作为目标第二密钥池。将所述当前第二密钥池所在的子节点作为当前子节点。确定所述当前第二密钥池所对应的密钥同步路径;其中,所述密钥同步路径是指用于实现一对第二密钥池内的量子密钥一致的密钥传输路径。基于所述密钥同步路径确定向所述当前第二密钥池填充量子密钥的第一密钥池,作为指定第一密钥池。从所述指定第一密钥池内取出至少部分量子密钥填充至所述当前第二密钥池中。将取出的至少部分量子密钥基于所述密钥同步路径传输至所述目标第二密钥池中。
[0065]
其中,所述将取出的至少部分量子密钥基于所述密钥同步路径传输至所述目标第二密钥池中可以包括如下步骤。基于所述密钥同步路径确定密钥传输路径上的各相邻子节点。将所述目标第二密钥池所在的子节点作为目标子节点。相应的,基于确定的各相邻子节点的第一密钥池中存储的共享的量子密钥,对取出的至少部分量子密钥进行逐跳加密传输,传输至所述目标子节点。将所述目标子节点接收的所述取出的至少部分量子密钥填充至所述目标第二密钥池中。
[0066]
另一些实施例中,网络节点a或c可以分别从对应的cp
ac1
中提取key,并填充至相邻子节点a2和c2的第一密钥池np
ac2
中。
[0067]
基于上述量子通信系统,网络节点a、c可以基于ip通信协议,分别从对应的cp
ac1

提取key,并填充至相邻子节点a2、c2的第一密钥池np
ac2
中。一些实施例中,网络节点a、c,还可以基于ssl(secure sockets layer,安全套接层)协议,分别将提取的量子密钥key填充至相邻子节点a2、c2的第一密钥池np
ac2
中。当然,也可以使用其他通信协议进行安全传输,这里不做限定。
[0068]
在从相应的第二密钥池提取量子密钥,向相邻子节点的第一密钥池填充量子密钥时,可以采用全量填充的方式。即,可以从相应的第二密钥池提取其中存储的全部量子密钥数据,填充至其对应的位于下一通信层的一对第一密钥池中。通过全量填充的方式,可以提高量子密钥填充的简便性。另一些实施方式中,也可以采用非全量填充的方式,相应的,所述密钥填充指令中可以包括从对应的cp
ac1
提取的key的参数信息,以使网络节点c从对应的cp
ac1
中提取相应的量子密钥key,填充至np
ac2
中,保证子节点a2与c2中的第一密钥池np
ac2
中的量子密钥数据的一致性。
[0069]
基于上述场景示例,一些实施例中,对位于最上层的通信层之外的其他通信层的相邻子节点,在确定第一密钥池存在密钥填充需求时,可以从该第一密钥池相对应的位于上一通信层的第二密钥池中取出至少部分量子密钥,传输至该存在密钥填充需求的第一密钥池中。
[0070]
在所述网络节点内的各子节点基于ip通信协议进行数据传输的情况下,可以基于ip通信协议将取出的至少部分量子密钥传输至该存在密钥填充需求的第一密钥池中。进一步的,还可以基于ssl协议对取出的至少部分量子密钥安全传输至该存在密钥填充需求的第一密钥池中。
[0071]
另一些实施方式中,还可以对各第一密钥池以及第二密钥池配置密钥填充需求判断机制。网络节点可以基于相应的密钥填充需求判断机制确定相应的第一密钥池以及第二密钥池是否需要密钥填充。一些实施例中,所述密钥填充需求判断机制如可以为第一密钥池或第二密钥池内的量子密钥存储量小于预设阈值。
[0072]
相应的,可以在第二密钥池内的量子密钥存储量小于第二预设阈值时,确定相应的第二密钥池存在密钥填充需求。以及,可以在第一密钥池内的量子密钥数量小于第一预设阈值时,确定相应的第一密钥池存在密钥填充需求。基于该判断机制,网络节点或者子节点在确定各第一密钥池或第二密钥池内的量子密钥存储量小于相应的预设阈值时,可以发起量子密钥的填充以及同步处理。所述第一预设阈值、第二预设阈值可以针对第一密钥池或第二密钥池所对应的子节点或业务应用的通信需求以及密钥逐层传递的需求进行配置,提高密钥填充的灵活性。
[0073]
例如,网络节点a在确定子节点a2第一密钥池np
ac2
中量子密钥存储量小于相应的第一预设阈值时,可以从对应的cp
ac1
提取key,并填充至子节点a2的第一密钥池np
ac2
中。以及,可以向相应的子节点c2发送密钥填充指令,以使网络节点c从对应的cp
ac1
中提取key,并填充至子节点c2的第一密钥池np
ac2
中。
[0074]
若网络节点a在确定子节点qkd-a1的第二密钥池cp
ac1
中量子密钥存储量小于相应的第二预设阈值时,可以从qkd-a1的第一密钥池np
ac1
中提取量子密钥key填充至第二密钥池cp
ac1
中。以及,还可以基于上述同步处理方法,将提取的量子密钥key同步至子节点qkd-c1的第二密钥池cp
ac1
中。
[0075]
上述密钥填充需求判断机制为优选举例说明,实际应用中,也可以采用其他的密
钥填充需求判断机制,如设置填充时间等,这里不做限定。
[0076]
由上述方案可知,本说明书实施例提供的上述密钥池设计方式以及密钥传递方案,可适用于不同的量子保密通信网络结构、节点设备或网络协议,也可同时适用于量子地面网络、量子卫星网络或由量子地面网、卫星网组成的“天地一体化”混合网络,具有较强的通用性,可在目前已知的各类量子保密通信网络设计方案中进行推广使用。即上述实施例提供的密钥池设计方式以及密钥传递方案,通过直接利用相邻子节点间的第一密钥池对以及对应布设在上一通信层的第二密钥池对的循环迭代,既可实现量子密钥的逐层传递,无需区分需要通信的设备工作在哪一通信层,该通信层的各设备间采用何种通信方式,从而大幅提高了量子密钥传递的简便性以及普适性。
[0077]
基于上述实施例提供的方案,本说明书实施例还提供一种业务应用场景示例,以对应于业务应用进一步对上述实施例提供的方案的实用性进行说明。
[0078]
如图4所示,例如,业务应用app-1至app-m对应网络节点a的密钥服务层子节点a3,业务应用app-1'至app-m'对应网络节点p的密钥服务层子节点p3。其中,app-1与app-1'、app-2与app-2'、
……
app-m与app-m'之间分别进行信息传输。可以根据上述信息传输需要,在a3以及p3中对应配置一对第二密钥池,第二密钥池中存储相应一对业务应用在信息传输时所需要的量子密钥。相应的,一对业务应用在进行信息传输时,其中任一业务应用可以从其对应的第二密钥池中提取量子密钥数据,然后,对传输信息进行加密,并将加密后的传输数据发送至另一业务应用。另一业务应用可以从相应的第二密钥池中提取量子密钥数据,然后,对接收到的加密传输信息进行解密,得到传输信息。
[0079]
在确定a3以及p3中的任一第二密钥池的量子密钥存储量小于相应的预设阈值时,可以先确定该第二密钥池所对应的密钥同步路径,确定方式可以参考上述实施例实施。假设是a3中app-1所对应的第二密钥池cp
ap3,1
中的量子密钥存储量小于相应的预设阈值,确定的第二密钥池cp
ap3,1
所对应的密钥同步路径为相邻子节点a3与c3、相邻子节点c3与p3、以及同步至p3的第二密钥池cp
ap3,1
。基于该密钥同步路径可以确定出向a3中的第二密钥池cp
ap3,1
进行密钥填充的第一密钥池np
ac3
。第一密钥池np
ac3
即为a3与c3所对应的第一密钥池。
[0080]
即子节点内的第一密钥池与第二密钥池不一定是一对一的,实际应用场景中,可以基于第二密钥池所对应的密钥同步路径确定向该第二密钥池填充密钥的第一密钥池。然后,网络节点a可以从第一密钥池np
ac3
中提取量子密钥key-1,填充至第二密钥池cp
ap3,1
中。同时,还可以将提取的量子密钥key-1基于第一密钥池np
ac3
中的量子密钥进行加密,传输至子节点c3。子节点c3解密后,将key-1基于第一密钥池np
cp3
中的量子密钥进行加密,传输至子节点p3。子节点p3解密后,可以将key-1填充至p3中的第二密钥池cp
ap3,1
。同步处理方式具体可以参考上述实施例实施,这里不再展开说明。
[0081]
通过上述方式即可实现业务应用所对应的第二密钥池内的量子密钥的同步填充,相应的,业务应用直接从其对应的第二密钥池中提取量子密钥,进行信息加密传输即可,简单高效的实现了量子密钥的分发。
[0082]
在实际应用场景中,可以根据业务应用的需要灵活配置对应的第二密钥池,同时,还可以基于第二密钥池的密钥填充需求,灵活的配置上层通信层各子节点之间的通信连接关系,以便于有效缩短密钥同步路径,提高密钥填充以及同步处理效率。
[0083]
在配置上层通信层各子节点之间的通信连接关系过程中,可通过直接在子节点中
配置需要建立通信的子节点所对应的第一密钥池、以及对应的第二密钥池,然后,利用密钥填充与同步处理机制既可实现新配置的密钥池的量子密钥的一致性填充,从而简单方便的实现子节点间的通信构建以及量子密钥的一致性填充。同时,在出现冗余通信连接关系时,也可通过直接去除相应的第一密钥池、第二密钥池,在对整个通信系统不会造成实质性影响的基础上,即可完成冗余通信关系的清理。从而基于本说明书实施例提供的方案,可以使得整个量子通信系统的构建更加简便灵活、扩展性更强。
[0084]
基于上述量子通信系统,本说明书提供的一些实施例中还提供一种量子密钥传输方法,所述方法可以包括如下步骤。
[0085]
s00:将存在密钥填充需求的第二密钥池作为当前第二密钥池,将与所述当前第二密钥池成对布设的另一第二密钥池作为目标第二密钥池;将所述当前第二密钥池所在的子节点作为当前子节点;将所述目标第二密钥池所在的子节点作为目标子节点。
[0086]
可以以当前子节点或当前子节点所在的网络节点作为执行主体,执行下述步骤s01-s05。当然,也可以基于实际硬件布设,确定各步骤的执行主体,这里不做限定。
[0087]
s01:确定所述当前第二密钥池所对应的密钥同步路径;其中,所述密钥同步路径是指用于实现一对第二密钥池内的量子密钥一致的密钥传输路径。
[0088]
s02:基于所述密钥同步路径确定所述当前子节点中向所述当前第二密钥池填充量子密钥的第一密钥池,作为指定第一密钥池。
[0089]
s03:从所述指定第一密钥池内取出至少部分量子密钥填充至所述当前第二密钥池中。
[0090]
s04:将所述至少部分量子密钥进行拆分,得到至少一个量子密钥分片。
[0091]
s05:对于任一量子密钥分片,获取量子密钥分片的位置信息以及长度信息;将量子密钥分片以及量子密钥分片的位置信息、长度信息基于所述密钥同步路径传输至目标第二密钥池。
[0092]
对于步骤s05,在基于密钥同步路径传输过程中,各相邻子节点在执行密钥传输时,可以分别以量子密钥分片传输到的子节点或子节点所在的网络节点作为执行主体,执行量子密钥加密、加密传输、以及解密步骤。
[0093]
可以以目标子节点或目标子节点所在的网络节点作为执行主体,执行下述步骤s06。当然,也可以基于实际硬件布设,确定各步骤的执行主体,这里不做限定。
[0094]
s06:在所述目标第二密钥池中基于量子密钥分片的位置信息及长度信息对相应的量子密钥分片进行存储。
[0095]
可以设定一个最大传输单元(maximum transmission unit,mtu),按照mtu的大小将密钥池cross pool中的密钥分割为若干分片。其中,mtu用于限制单次传输的密钥数据大小。可以根据实际需要设置mtu的大小,以降低密钥数据存在丢失时,对整体密钥使用的影响。网络节点可以通过查询路由表,确定密钥同步路径。如图5所示,可以找到到达目的节点路径的各子节点,各子节点如可以分为当前子节点、一个或者多个中间子节点以及目标子节点。将密钥分片利用密钥同步路径中的相邻子节点所共享的量子密钥加密后,依次,直到目标子节点。对各密钥分片从当前子节点同步至目标子节点的处理方式可以参考上述实施例实施,这里不做赘述。
[0096]
如图6所示,假设某同步处理所对应的密钥同步路径如下,当前子节点为t1,中间
子节点分别为t2、t3、
……
,目标子节点为t
m
。该次同步处理待传输的量子密钥数据为key,相应的,key可以为从t1与t2所对应的第一密钥池中取出的量子密钥数据。假设执行主体为各子节点,子节点t1可以将key写入子节点t1中对应于t1与t
m
的第二密钥池cp
1m

[0097]
如图7所示,子节点t1可以进一步将key按mtu分割成n个密钥分片:k1、k2、k3、

.、k
n
。相应的,每个密钥分片的具体同步处理执行过程如下。
[0098]
(1)子节点t1根据密钥同步路径确定下一跳子节点t2。
[0099]
(2)子节点t1从子节点t1与t2的第一密钥池np
12
中取出量子密钥k
12
,然后,利用k
12
对密钥分片k1进行otp(one time password,一次性密码)保护。
[0100]
(3)子节点t1将保护后的k1、k1的密钥长度(length)l1、k1在子节点t1中的第二密钥池cp
1m
的offset1(偏移量)、k
12
的密钥长度l
12
以及k
12
在子节点t1中的第一密钥池np
12
的offset
12
传输至子节点t2。
[0101]
(4)子节点t2接收到子节点t1传输的数据后,根据k
12
的密钥长度以及k
12
的offset
12
从子节点t2中的第一密钥池np
12
取出密钥k
12
,对保护后的k1、k1的密钥长度l1、k1的offset1进行解密,得到k1、l1以及offset1。
[0102]
(5)子节点t2将按照类似(1)-(4)的处理方式将k1、l1以及offset1传输至下一跳节点t3。依次类推,直至k1、l1以及offset1传输至子节点t
m

[0103]
(6)子节点t
m
获得k1、l1以及offset1之后,根据l1以及offset1,将k1写入子节点t
m
中的第二密钥池cp
1m

[0104]
(7)同样的,对k2、k3、

.、k
n
等密钥分片也将按照(1)-(6)的处理方式,传输至t
m
中的第二密钥池cp
1m

[0105]
如图8所示,通过上述密钥分片传递以及写入方式,各密钥分片k1、k2、k3、

.、k
n
按照其对应的offset以及length被依次写入第二密钥池cp
1m
。若各子节点传输k1、k2、k3、

.、k
n
的过程中,出现某些密钥分片传输失败,如传输过程中密钥分片数据丢失或密钥数据错误,导致t
m
未能收到相应的密钥分片,则相应位置处出现空洞,即密钥分片数据缺失。
[0106]
如图7及图8所示,假设k1、k2、k3、

.、k
n
等密钥分片传输的过程中,密钥分片k
i
(1≤i≤n)和k
j
(1≤j≤n且i≠j)在中间子节点传输失败,则,
[0107]
(1)k
i
的下一密钥分片k
i+1
到达子节点t
m
时,子节点t
m
根据k
i+1
的offset
i+1
以及l
i+1
将k
i+1
写入第二密钥池cp
1m
中。这样,子节点t
m
的第二密钥池cp
1m
对应k
i
的那一段区域会出现“空洞”,即子节点t1的第二密钥池cp
1m
有k
i
,而子节点t
m
的第二密钥池cp
1m
只是保留了k
i
的存储位置和空间,没有密钥数据填充,如图8左边的图所示。
[0108]
(2)子节点t
m
可以记录k
i
的offset
i
和长度l
i

[0109]
(3)类似的,当k
j
的下一密钥分片k
j+1
到达子节点t
m
时,子节点t
m
根据k
j+1
的offset
i
和长度l
i
将k
j+1
写入第二密钥池cp
1m
中。这样,子节点t
m
的第二密钥池cp
1m
对应k
j
的那一段区域也会出现“空洞”,即子节点t1的第二密钥池cp
1m
有k
j
,而子节点t
m
的第二密钥池cp
1m
只是保留了k
j
的存储位置和空间,没有密钥数据填充。
[0110]
(4)子节点t
m
可以记录k
j
的offset
j
和长度l
j

[0111]
基于上述场景示例,一些实施例中,所述将量子密钥分片以及量子密钥分片的位置信息、长度信息基于所述密钥同步路径传输至目标第二密钥池,可以包括如下步骤。基于所述密钥同步路径确定密钥传输路径上的各相邻子节点;将所述目标第二密钥池所在的子
节点作为目标子节点。基于确定的各相邻子节点的第一密钥池中的量子密钥,对量子密钥分片、以及相应量子密钥分片的位置信息、长度信息逐跳进行加密传输,传输至所述目标子节点;将所述目标子节点接收的所述量子密钥分片,基于相应量子密钥分片的位置信息及长度信息填充至所述目标第二密钥池中。当然,实际应用中也可以采用其他方式进行表征,这里不做限定。
[0112]
通过上述方式,同步至第二密钥池中的量子密钥数据可能存在密钥数据缺失的情况,本说明书实施例中,可以不对第二密钥池中的密钥数据进行纠错,以避免纠错过程造成密钥数据的进一步消耗。
[0113]
在从第二密钥池提取量子密钥,向该第二密钥池所对应的下一通信层的第一密钥池进行密钥填充时,可以通过ip通信协议直接将提取的量子密钥写入相应的第一密钥池。相应的,在相邻子节点利用第一密钥池中的量子密钥数据对传输数据进行加密传输时,相邻子节点中发起数据传输的子节点,即数据发送方,可以利用相邻子节点所对应的第一密钥池中同步传输来的量子密钥数据对传输数据进行加密。
[0114]
例如,对于上述场景示例,t
m
的cp
1m
中对应存储有从t
m
的第一密钥池直接填充上来的量子密钥、以及从t1的同步传输来的量子密钥;同样的,t1的cp
1m
中对应存储有从t1的第一密钥池直接填充上来的量子密钥、以及从t
m
的同步传输来的量子密钥。可以在第二密钥池中对本次填充以及同步处理来的量子密钥分别打标。
[0115]
可以将t
m
的cp
1m
中从t
m
的第一密钥池直接填充上来的量子密钥,标识为填充量子密钥数据;将t
m
的cp
1m
中从t1基于密钥同步路径同步传输来的量子密钥,标识为同步量子密钥数据。对t1的cp
1m
可以采用相同的方式标识。或者,还可以将两种量子密钥分别存储至相应标识的数据表中。当然,上述标识仅为举例说明,并不构成对本申请相应量子密钥数据存储方式的直接限定。相应技术领域的人员可以根据需要设定标识方式以及存储方式。
[0116]
假设cp
1m
所对应的下一通信层的第一密钥池为np
1m
,np
1m
所在的相邻子节点分别为t1'和t
m
'。t1'和t
m
'从t1和t
m
的cp
1m
提取量子密钥,t1和t
m
可以通过ip通信协议将提取的量子密钥写入t1'和t
m
'的np
1m
中,则t1'和t
m
'的np
1m
中也对应有直接填充来的量子密钥以及同步传输来的量子密钥。t1和t
m
通过ip通信协议将提取的量子密钥写入t1'和t
m
'的np
1m
中时,可以将量子密钥所关联的标识信息一起传输。相应的,可以基于量子密钥所关联的标识信息将量子密钥写入t1'和t
m
'的np
1m
中。
[0117]
另一些实施例中,也可以将第一密钥池、第二密钥池分别进一步划分,得到子密钥池,分别标识为第一同步子密钥池、第一填充子密钥池,以及第二同步子密钥池、第二填充子密钥池。相应的,t
m
的cp
1m
可以包括第二同步子密钥池cp
1m-2
、第二填充子密钥池cp
1m-1
。np
1m
可以包括第一同步子密钥池np
1m-2
、第一填充子密钥池np
1m-1
。则从t
m
的第一密钥池直接填充上来的量子密钥,可以写入cp
1m-1
;从t1基于密钥同步路径同步传输来的量子密钥,可以写入cp
1m-2
。对t1的cp
1m
可以采用相同的方式划分子密钥池,以及写入量子密钥。t1和t
m
通过ip通信协议将提取的量子密钥写入t1'和t
m
'的np
1m
中时,可以分别从cp
1m-1
、cp
1m-2
分别取出量子密钥,对应写入np
1m-1
、np
1m-2
中。
[0118]
数据发送方可以利用np
1m
中的同步量子密钥对传输数据进行加密。数据发送方可以根据同步量子密钥中密钥数据缺失部分的offset和长度l,提取用于加密的量子密钥数据段,以使得用于加密的量子密钥数据段不存在密钥缺失。
[0119]
一些实施方式中,如从某位置offset0开始提取指定长度l0的量子密钥数据段时,如果不涉及密钥数据缺少部分,则相应的,该提取的量子密钥数据段仅包括一个子密钥段,该子密钥段的起始位置为offset0,长度为l0。
[0120]
从某位置offset0开始提取指定长度l0的量子密钥数据段时,如果涉及密钥数据缺少部分,则先提取从某位置offset0开始至第一个密钥缺少部分的子密钥段,并记录该子密钥段的起始位置offset0以及长度信息l1。然后,再跳过该第一个密钥缺少部分,继续提取量子数据,直至提取的所有子密钥段的长度之和为l0。相应的,提取的量子密钥数据段可以包括两个及两个以上的子密钥段,并记录各子密钥段的起始位置以及长度信息。
[0121]
相应的,数据发送方可以根据同步量子密钥中密钥数据缺失部分的offset和长度l,提取用于加密的量子密钥数据段,提取的量子密钥数据段可以包括至少一个子密钥段。数据发送方可以记录该至少一个子密钥段的位置信息以及长度信息。
[0122]
数据发送方可以利用提取的量子密钥数据段对传输数据进行加密,并将加密后的传输数据发送至数据接收方,即相邻子节点中接收传输数据的子节点。数据发送方还可以将提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息发送至数据接收方。数据发送方可以在发送加密后的传输数据时,将提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息一起发送给数据接收方。或者,数据发送方也可以在每提取一个字密钥段时,即将该一个子密钥段的位置信息以及长度信息发送给数据接收方。数据接收方可以利用至少一个子密钥段的位置信息以及长度信息从数据接收方的np
1m
提取用于解密的相应量子密钥数据段,以对加密后的传输数据进行解密。
[0123]
通过该种方式,在使用过程中密钥接收端可以根据实际收到的密钥分片的位置信息以及长度信息,简单高效的判断哪些分片在传输过程中出现了“差错”或“丢包”。密钥接收端仅使用正确收到的密钥分片进行密钥的使用,而密钥发送端对应存储的密钥是完整的,可以根据密钥接收端所使用的加密密钥有效提取到相应的解密密钥,保证数据的正常解密。从而无需在密钥传输过程中进行繁琐的差错控制、数据校验和重传,即可实现基于量子密钥的数据加密传输,有效降低密钥传输过程中的资源浪费。
[0124]
一个场景示例中,np
1m
中存储的密钥数据如图9所示,t1'和t
m
'可以采用下述方式进行加密数据传输。
[0125]
(1)t
m
'申请用于加密的量子密钥数据段key,申请的指定长度为length。指定长度可以根据实际需要确定。例如,待加密传输的传输信息为长度为length的量子密钥,基于相应的加密算法,t
m
'申请用于加密的量子密钥数据段也为length。
[0126]
(2)t
m
'从第一密钥池np
1m
中取出量子密钥数据段的规则如下。
[0127]

先进先出,即如图10所示的自底而上从第一密钥池中取密钥数据段。
[0128]

如果第一密钥池np
1m
中,当前的offset与offset+length之间覆盖的区域没有空洞时,则t
m
'直接取出长度为length的量子密钥数据段key、key的长度length’以及密钥key在第一密钥池np
1m
的offset,此时length’与length相同。则提取的量子密钥数据段包括一个子密钥段,该子密钥段的位置信息为offset、长度为length。
[0129]

如果根据缺失密钥数据的记录确定第一密钥池np
1m
中,当前的offset与offset+length之间覆盖的区域有空洞,如图10所示。则t
m
'先取出长度为length’的量子密钥数据,此时length’与length不等且length’<length。将提取的offset与offset+length’之间的
量子密钥数据作为第一子密钥段。该第一子密钥段在第一密钥池np
1m
的起始位置为offset、长度为length’。
[0130]
假设第一个空洞的长度为length1,则跳过该第一个空洞,提取的下一个子密钥段的起始位置为offset1=offset+length’+length1。然后,可以以offset1为起始位置,提取length1’
=length-length’长度的量子密钥数据。如果offset1与offset1+length1’
之间未覆盖有空洞,则结束提取,将提取的offset1与offset1+length1’
之间的量子密钥数据作为第二子密钥段。该第二子密钥段的起始位置为offset1、长度为length1’
。相应的,提取的量子密钥数据段包括第一子密钥段以及第二子密钥段。
[0131]
如果offset1与offset1+length1’
之间覆盖有空洞,则将该空洞作为第二个空洞,提取offset1与第二个空洞的初始位置之间的量子密钥数据,作为第二子密钥段,并记录该第二子密钥段起始位置offset1以及长度length1’
。然后,再跳过该第二个空洞,提取的下一个子密钥段的起始位置为offset2=offset1+length1’
+length2,其中,length2为第二个空洞的长度。然后,可以以offset2为起始位置,提取length2’
=length-length
’-
length1’
长度的量子密钥数据。如果offset2与offset2+length2’
之间未覆盖有空洞,则结束提取。将offset2与offset2+length2’
之间的量子密钥数据作为第三子密钥段。如果还是覆盖有空洞,则重复上述类似的处理步骤,提取第三子密钥段,并跳过空洞继续进行下一子密钥段的提取。以此类推,直至提取的量子密钥数据的整体长度等于length。(3)t
m
'利用key对传输数据进行加密处理,并在发送加密后的传输数据时,将key中至少一个子密钥段的位置信息以及长度信息传送给t1'。
[0132]
(4)t1'接收key中至少一个子密钥段的位置信息以及长度信息后,可以从t1'中的第一密钥池np
1m
中提取相应位置信息以及长度信息所对应的量子密钥数据段key。然后,t1'利用提取的key对接收的密态传输数据进行解密,得到传输数据。
[0133]
基于上述场景示例,一些实施例中,可以将所述当前第二密钥池、目标第二密钥池所对应的位于下一通信层的一对第一密钥池分别作为当前第一密钥池、目标第一密钥池。相应的,所述当前第一密钥池所在的子节点作为数据传输的第一接收方,所述目标第一密钥池所在的子节点作为数据传输的第一发送方,执行下述方式进行量子密钥加密数据传输。
[0134]
s101:第一发送方获取所述目标第一密钥池中存储的同步量子密钥数据;所述同步量子密钥数据是指所述目标第二密钥池接收的从所述指定第一密钥池基于密钥同步路径传输来的量子密钥。
[0135]
s102:第一发送方从所述同步量子密钥数据提取指定长度的量子密钥数据段;并获取提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息;所述子密钥段不存在密钥数据缺失。
[0136]
s103:第一发送方利用提取的量子密钥数据段对传输数据进行加密,并将密态传输数据发送至第一接收方;以及将所述至少一个子密钥段的位置信息以及长度信息发送至第一接收方。
[0137]
s104:第一接收方根据接收的至少一个子密钥段的位置信息以及长度信息,从所述当前第一密钥池中提取相应量子密钥数据段;以及利用提取的相应量子密钥数据段对接收的密态传输数据进行解密处理。
[0138]
如果cp
1m
对应的是业务应用,假设子节点t1、t
m
对应的业务应用分别为app-i以及app-i',app-i以及app-i'可以采用下述方式进行加密数据传输。
[0139]
(1)app-i'向t
m
申请用于加密的量子密钥数据段key,申请的长度为length。指定长度可以根据业务应用传输数据时所需要的量子密钥大小确定。
[0140]
(2)t
m
从第二密钥池cp
1m
中取出量子密钥数据段的规则如下。
[0141]

先进先出,即如图10所示的自底而上从第二密钥池中取密钥数据段。
[0142]

如果第二密钥池cp
1m
中,当前的offset与offset+length之间覆盖的区域没有空洞时,则t
m
直接取出长度为length的量子密钥数据段key、key的长度length’以及密钥key在第一密钥池cp
1m
的offset,此时length’与length相同。则提取的量子密钥数据段包括一个子密钥段,该子密钥段的位置信息为offset、长度为length。
[0143]

如果t
m
根据缺失密钥数据的记录确定第二密钥池cp
1m
中,当前的offset与offset+length之间覆盖的区域有空洞,如图10所示。则t
m
取出长度为length’的密钥量子密钥数据,此时length’与length不等且length’<length。将提取的offset与offset+length’之间的量子密钥数据作为第一子密钥段。该第一子密钥段在第二密钥池cp
1m
的起始位置为offset、长度为length’。
[0144]
假设第一个空洞的长度为length1,则跳过该第一个空洞,提取的下一个子密钥段的起始位置为offset1=offset+length’+length1。然后,可以以offset1为起始位置,提取length1’
=length-length’长度的量子密钥数据。如果offset1与offset1+length1’
之间未覆盖有空洞,则结束提取,将提取的offset1与offset1+length1’
之间的量子密钥数据作为第二子密钥段。该第二子密钥段的起始位置为offset1、长度为length1’
。相应的,提取的量子密钥数据段包括第一子密钥段以及第二子密钥段。
[0145]
如果offset1与offset1+length1’
之间覆盖有空洞,则将该空洞作为第二个空洞,提取offset1与第二个空洞的初始位置之间的量子密钥数据,作为第二子密钥段,并记录该第二子密钥段起始位置offset1以及长度length1’
。然后,再跳过该第二个空洞,提取的下一个子密钥段的起始位置为offset2=offset1+length1’
+length2,其中,length2为第二个空洞的长度。然后,可以以offset2为起始位置,提取length2’
=length-length
’-
length1’
长度的量子密钥数据。如果offset2与offset2+length2’
之间未覆盖有空洞,则结束提取。将offset2与offset2+length2’
之间的量子密钥数据作为第三子密钥段。如果还是覆盖有空洞,则重复上述类似的处理步骤,提取第三子密钥段,并跳过空洞继续进行下一子密钥段的提取。以此类推,直至提取的量子密钥数据的整体长度等于length。
[0146]
(3)t
m
将key以及key中至少一个子密钥段的位置信息以及长度信息发送至业务应用app-i',app-i'利用key对传输数据进行加密处理,并在发送加密后的传输数据时,将key中至少一个子密钥段的位置信息以及长度信息传送给app-i。
[0147]
(4)app-i接收key中至少一个子密钥段的位置信息以及长度信息后,向t1申请解密密钥,申请密钥数据段所对应的参数为key中至少一个子密钥段的位置信息以及长度信息。
[0148]
(5)t1可以从t1中的第二密钥池cp
1m
中提取相应位置信息以及长度信息所对应的量子密钥数据段key。然后,反馈给业务应用app-i。
[0149]
(6)业务应用app-i利用提取的key对接收的密态传输数据进行解密,得到传输数
据。
[0150]
基于上述场景示例,一些实施例中,所述当前第二密钥池、目标第二密钥池所对应的业务应用可以分别作为数据传输的第二发送方、第二接收方,执行下述方式进行量子密钥加密数据传输。
[0151]
s201:第二发送方向目标子节点发送加密密钥使用请求;其中,所述目标子节点为所述目标第二密钥池所在的子节点。所述加密密钥使用请求可以包括第二发送方的地址信息、获取用于加密的量子密钥数据的指令信息等。
[0152]
s202:目标子节点获取所述目标第二密钥池中存储的同步量子密钥数据;所述同步量子密钥数据是指所述目标第二密钥池接收的从所述指定第一密钥池基于密钥同步路径传输来的量子密钥。
[0153]
s203:目标子节点从所述同步量子密钥数据中提取指定长度的量子密钥数据段;并获取提取的量子密钥数据段中至少一个子密钥段的位置信息以及长度信息;所述子密钥段不存在密钥数据缺失。
[0154]
s204:目标子节点将所述至少一个子密钥段的位置信息以及长度信息反馈至所述第二发送方。
[0155]
s205:第二发送方利用提取的量子密钥数据段对传输数据进行加密,并将密态传输数据发送至第二接收方;以及将所述至少一个子密钥段的位置信息以及长度信息发送至所述第二接收方。
[0156]
s206:第二接收方根据接收的至少一个子密钥段的位置信息以及长度信息,向所述当前子节点发送解密密钥使用请求。所述解密密钥使用请求可以包括第二接收方的地址信息、第二接收方接收的至少一个子密钥段的位置信息以及长度信息、获取该至少一个子密钥段的位置信息以及长度信息所对应的量子密钥数据的指令信息等。s207:当前子节点基于解密密钥使用请求中的至少一个子密钥段的位置信息以及长度信息,从所述当前第二密钥池中提取相应量子密钥数据段,并反馈给所述第二接收方。
[0157]
s208:第二接收方利用接收的相应量子密钥数据段对接收的密态传输数据进行解密处理。
[0158]
上述实施例提供的密钥分发以及使用方法,在密钥同步时,基于各密钥分片的位置信息以及长度信息进行密钥分片的写入,在使用时,直接提取不存在数据缺失的密钥数据段进行密钥的加密处理,并将相应密钥数据段的位置信息以及长度信息发送至另一方,以使另一方基于相应位置信息以及长度信息提取相应的密钥数据段,即可实现解密处理。从而在密钥同步处理后,无需再对量子密钥数据进行额外的纠错处理,即可简单方便的实现利用量子密钥进行数据加密传输,提高基于量子密钥进行数据加密传输的简便性。同时,还可以避免量子密钥的浪费,提高量子密钥的使用率。
[0159]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
[0160]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺
序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0161]
本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
[0162]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0163]
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1