本发明涉及量子保密通信领域,具体涉及一种双向密钥池的量子密钥同步及均衡分配方法及系统。
背景技术:
1、在现有的量子密钥应用中,量子密钥的使用方式一般为在节点a和节点b两端通过存储相同的量子密钥进行传输数据的加解密。当进行数据的加密和解密时,节点a选择一段或一组量子密钥进行数据加密,然后将这一段或者一组量子密钥的标识连同加密数据发送给节点b,节点b根据量子密钥标识读取相同的密钥对数据进行解密,如图1所示那样,这是一种无方向密钥池的实现方式。
2、现有技术中还有一种双向存储密钥的技术,其中,将量子密钥进行一致性比对后分别存储到一个密钥池中。节点a根据一定的调度策略随机的将此密钥池中的一段密钥作为节点a向节点b的加密密钥。然后,通过一定的同步协议通知节点b将相同的一段密钥作为节点a向节点b的解密密钥,当两端确定后,再进行后续的加密和解密业务,如图2所示那样。
3、存储相同的量子密钥的方式在处理双方同时进行数据传输时具有密钥不同步的缺陷,需要采用分布式锁(通过服务器集中调度)的方式进行同步。否则,会造成节点a使用的加密密钥同时也被节点b使用。而根据密码卡安全的要求,使用后的密钥需要销毁,这样会导致节点a使用的加密密钥在节点b处无法找到对应的密钥进行数据的解密,而节点b使用的加密密钥在节点a处也无法找到对应的密钥进行数据的解密,如图3所示那样。
4、双向存储密钥的方式固然解决了存储在一个无方向密钥池中导致的使用时的冲突问题,但是需要根据一定的策略进行密钥类型的决策,尤其是密钥选取同步如果不做处理,两边同时同步,同样会造成冲突,并且当流量较大时,会出现密钥同步消息密集发送,影响业务体验。同时,整个过程进行了两次同步,量子密钥一致性同步,密钥池类型一致性同步,浪费了网络流量,降低了处理速率。
技术实现思路
1、针对现有技术中的不足,本发明提出了一种双向密钥池的量子密钥同步及均衡分配方法及系统,其脱离本领域的固有思路,采用自平衡的双向密钥存储技术实现双向密钥池中量子密钥的均衡分配,既解决了两端同时发起数据传输解密时需要采用分布式锁等集中调度的消耗,也保证了量子密钥的优化调度,保证高峰期的密钥可用性。并且,通过引入单向密钥同步方案,在简化密钥同步方式的同时,还能够防止双向同步锁定同一个密钥的冲突问题,避免同步效率和数据加密传输效降低的问题。同时,借助先更新解密池再更新加密池的更新原则,解决了密钥池更新期间可能引发的传输失败问题,有效保证了密钥的可用性。
2、本发明的第一方面涉及一种双向密钥池的量子密钥同步及均衡分配方法,其包括密钥缓存步骤、同步方向规划步骤、密钥量计算步骤及分配步骤;
3、所述密钥缓存步骤用于向第一节点a分发量子密钥并存储于其缓存池a中,以及向第二节点b分发量子密钥并存储于其缓存池b中;
4、所述同步方向规划步骤用于根据预设规则,选择第一节点a作为密钥同步发起方,第二节点b作为密钥同步接收方;
5、所述密钥量计算步骤用于将第一节点a中ab加密池的密钥量和第二节点b中ab解密池的密钥量中的最小值作为第一密钥量,将第一节点a中ba解密池的密钥量和第二节点b中ba加密池的密钥量中的最小值作为第二密钥量,其中,ab加密池中的量子密钥用于加密由第一节点a向第二节点b传输的数据,ba加密池中的量子密钥用于加密由第二节点b向第一节点a传输的数据,ab解密池中的量子密钥用于解密由第一节点a向第二节点b传输的数据,ba解密池中的量子密钥用于解密由第二节点b向第一节点a传输的数据;
6、所述分配步骤用于由第二节点b根据平衡算法将缓存池b中的量子密钥分配存储至ab解密池和/或ba加密池,并通知第一节点a将缓存池a中的相应量子密钥对应分配存储至ab加密池和/或ba解密池;
7、其中,所述平衡算法选自包括存量关系算法的策略组;
8、所述存量关系算法用于在第一密钥量小于或等于第二密钥量时将缓存池b中的量子密钥分配存储至ab解密池,否则将缓存池b中的量子密钥分配存储至ba加密池。
9、进一步地,所述策略组还包括流量关系算法,用于根据与ab解密池相关的数据流量和与ba加密池相关的数据流量,确定分配给ab解密池和/或ba加密池的密钥量。
10、进一步地,在所述密钥量计算步骤中,由第一节点a将ab加密池的密钥量和ba解密池的密钥量发送给第二节点b。
11、进一步地,本发明的量子密钥同步及均衡分配方法还包括密钥校验步骤,用于由第一节点a获取缓存池a中量子密钥的校验值并发送给第二节点b,由第二节点b获取缓存池b中量子密钥的校验值并将其与由第一节点a发送的校验值进行比对;并且,
12、在所述分配步骤中,第二节点b仅分配在密钥校验步骤中比对一致的量子密钥,并通知第一节点a仅分配在密钥校验步骤中比对一致的量子密钥。
13、进一步地,本发明的量子密钥同步及均衡分配方法还包括更新步骤,用于以在同一数据流方向上先更新解密池、再更新加密池的方式进行量子密钥的更新。
14、更进一步地,在所述更新步骤中:
15、所述第二节点b在利用在密钥校验步骤中比对一致的量子密钥更新ab解密池之后,通知第一节点a相应地更新ab加密池;以及/或者,
16、所述第二节点b在利用在密钥校验步骤中比对一致的量子密钥更新ba加密池之后不将更新的量子密钥标为可用,同时通知第一节点a相应地更新ba解密池;并且,第一节点a在更新ba解密池之后通知第二节点b将ba加密池中更新的量子密钥标为可用。
17、本发明的第二方面涉及一种双向密钥池的量子密钥同步及均衡分配系统,其包括:
18、第一节点a,其包括缓存池a、ab加密池和ba解密池,其中,缓存池a缓存由量子密钥分发设备分发的量子密钥,ab加密池存储用于加密由第一节点a向第二节点b传输的数据的量子密钥,ba解密池存储用于解密由第二节点b向第一节点a传输的数据的量子密钥;
19、第二节点b,其包括缓存池b、ab解密池和ba加密池,其中,缓存池b缓存由量子密钥分发设备分发的量子密钥,ab解密池存储用于解密由第一节点a向第二节点b传输的数据的量子密钥,ba加密池存储用于加密由第二节点b向第一节点a传输的数据的量子密钥;
20、所述第一节点a被设置用于获取ab加密池的密钥量和ba解密池的密钥量并发送给第二节点b;以及,根据由第二节点b通知的分配结果,将缓存池a中的相应量子密钥对应分配存储至ab加密池和/或ba解密池;
21、所述第二节点b被设置用于获取ab解密池的密钥量和ba加密池的密钥量,并将ab加密池的密钥量和ab解密池的密钥量中的最小值作为第一密钥量,将ba解密池的密钥量和ba加密池的密钥量中的最小值作为第二密钥量;以及,根据平衡算法将缓存池b中的量子密钥分配存储至ab解密池和/或ba加密池,并将分配结果通知给第一节点a;
22、所述平衡算法选自包括存量关系算法的策略组;
23、所述存量关系算法用于在第一密钥量小于或等于第二密钥量时将缓存池b中的量子密钥分配存储至ab解密池,否则将缓存池b中的量子密钥分配存储至ba加密池。
24、进一步地,所述策略组还包括流量关系算法,用于根据与ab解密池相关的数据流量和与ba加密池相关的数据流量,确定分配给ab解密池和/或ba加密池的密钥量。
25、进一步地,所述第一节点a还被设置用于获取缓存池a中量子密钥的校验值并发送给第二节点b;
26、所述第二节点b还被设置用于获取缓存池b中量子密钥的校验值并将其与由第一节点a发送的校验值进行比对,并仅将比对一致的量子密钥用于分配。
27、进一步地,所述第二节点b还被设置用于在利用比对一致的量子密钥更新ab解密池之后,向第一节点a发送第一通知;在利用比对一致的量子密钥更新ba加密池之后不将更新的量子密钥标为可用,同时向第一节点a发送第二通知,以及根据第一节点a发送的第三通知将更新的量子密钥标为可用;
28、所述第一节点a还被设置用于根据第一通知相应地更新ab加密池;以及,根据第二通知相应地更新ba解密池,并向第二节点b发送第三通知。