一种基于量子密钥的gossip协议同步方法
技术领域
1.本发明涉及量子通信技术领域,具体涉及一种基于量子密钥的gossip协议同步方法。
背景技术:2.gossip是一种去中心化、容错并保证最终一致性的协议。协议的实现过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点广播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此gossip是一个最终一致性协议。gossip协议可以应用于分布式网络中的数据同步,例如应用于区块链网络,保持区块链网络中账本信息等数据的一致性;gossip的基本过程为:1. 某个节点有一个需要同步给其他节点的消息;2. 该节点随机选取一定数量的相邻节点,并将消息发送给选取的节点;3. 收到消息的节点再随机选取一定数量的相邻节点,并将消息发送给选取的节点;4. 如此不断反复,直到每个节点都收到消息。
3.为保证数据同步的安全性,当前gossip协议的身份认证、加密传输及完整性保护通常采用tls协议进行,节点之间进行数据同步之前需要获取对方的公钥证书,使用数字证书进行双方的身份认证、会话密钥协商等。但是现有技术中,使用tls协议进行数据同步时,通常,需要在数据传输前获取对方的公钥证书用于身份认证和会话密钥协商。随着计算能力提高,基于计算复杂度的非对称密码算法存在被破解的风险,因此将导致通信双方的公私钥被攻击者破解从而冒充双方身份进行通信,同时也将导致受双方公私钥保护的密钥协商过程被攻击,导致协商的会话密钥被窃取。另外,通信双方使用tls协议协商的会话密钥使用经典随机数生成,由于经典物理是决定性的,在获知所有条件的情况下,产生的数据序列是可以预测的,随机数被预测也将倒是会话密钥被窃取,从而对数据传输的安全性造成破坏。
技术实现要素:4.为了解决上述技术问题,本发明提出了一种基于量子密钥的gossip协议同步方法,包括如下步骤:步骤1、量子密钥分发网络中的量子密钥分发节点使用量子密钥分发技术为分布式网络中的对应节点分发一对一的共享量子密钥,使得分布式网络中的相邻节点之间具有共享量子密钥;步骤2、分布式网络中各节点之间使用密钥进行身份认证,各节点之间通过广播完
成节点间的信息交换,并将交换的信息保存至本地的节点状态信息中;步骤3、分布式网络中各节点间使用量子密钥对同步数据进行安全保护。
5.进一步地,所述步骤2中,分布式网络中各节点之间使用密钥进行身份认证,具体包括如下步骤:步骤2.1、由节点note1发起验证申请,节点note2根据节点note1的标识验证其合法性,验证通过后发出一串随机数r2给节点note1;步骤2.2、节点note1验证节点note2标识的合法性,根据使用的消息鉴别算法所需的密钥长度,从节点note1与节点note2的共享量子密钥中选取相应长度的密钥key1计算随机数r2的消息鉴别码r2mac,节点note1生成随机数r1与消息鉴别码r2mac一起发送给节点note2;步骤2.3、节点note2使用与节点note1的对应的密钥key1对随机数r2计算消息鉴别码r2mac’,如果r2mac’=r2mac,则节点note1的身份验证通过,节点note2选取根据消息鉴别算法所需的密钥长度,选取与节点note1之间的密钥key2对r1计算消息鉴别码r1mac,并发送给节点note1;步骤2.4、同样地,节点note1对消息鉴别码r1mac进行验证,双方身份验证通过后,节点note1和note2分别将对方的身份验证状态更新到各自的节点状态信息中。
6.进一步地,所述步骤3具体包括如下步骤:步骤3.1、节点note1根据加密算法所需的量子密钥长度,从与节点note2的共享量子密钥中选择相应长度的量子密钥qkeyencid1对要同步的数据data进行加密生成密文encdata;步骤3.2、同时,节点note1根据消息鉴别算法所需的密钥长度,选择相应的密钥qkeyaucid1,对数据data进行带密钥的消息鉴别运算得到消息鉴别码datamac;步骤3.3、节点note1将包含qkeyencid1、qkeyaucid1、encdata、datamac的同步数据发送至节点note2;步骤3.4、节点note2收到节点note1发送的所述同步数据后,根据节点note1使用的量子密钥qkeyencid1选择与其对应的量子密钥qkeyencid2对密文数据encdata进行解密,得到明文data;对明文data进行消息鉴别运算得到消息鉴别码datamac’,如果datamac’=datamac,则节点note2收到的所述同步数据消息确实来自节点于note1。
7.进一步地,所述步骤1中,利用量子密钥中继技术,将分布式网络中具有一对一共享量子密钥的节点的共享量子密钥中继到其他节点,从而使分布式网络中任意两个节点间均具有所述共享量子密钥。
8.进一步地,所述步骤2中,所述交换的信息包括:分布式网络节点的标识、该分布式网络节点接入的量子密钥分发网络节点的标识。
9.进一步地,所述步骤1中,分布式网络中的相邻节点之间具有的共享量子密钥的密钥量为预先设定,若预先设定所需的密钥量为qkeylen字节,则分布式网络中的节点从量子密钥分发网络获取的固定密钥量为预先设定所需的密钥量qkeylen与该分布式网络中的节点的原有密钥量的差值。
10.进一步地,所述步骤2中,分布式网络中的在线节点通过周期性广播“alive”消息来表明其可用性,所述节点状态信息包括:分布式网络节点的标识、该分布式网络节点接入
的量子密钥分发网络节点的标识、共享量子密钥量、在线状态和身份验证状态。
11.进一步地,所述消息鉴别算法为基于哈希算法的鉴别算法或基于堆成密码算法的鉴别算法。
12.进一步地,量子密钥分发节点之间为量子信道,在向分发网络中的节点分发一对一共享量子密钥之前,量子密钥分发节点之间首先通过量子密钥分发技术分配共享量子密钥。
13.使用本技术的技术方案,在进行gossip协议进行数据同步时,可以使用具有较高安全性的量子密钥分发技术来为同步节点间分发一对一共享量子密钥,通信双方即可使用量子密钥进行数据同步过程的身份认证、数据加密和完整性保护。一方面使用基于量子力学的量子密钥分发技术,因量子态具有不可克隆、不确定性和测量塌缩的特性,所以保证了量子密钥分发过程中密钥不可被有效地窃听;另一方面量子密钥分发使用的量子随机数源基于量子力学的概率性本质,具有不可预测性和无周期性,可以产生不可预测的真随机数。基于以上两点,采用本方案将大大提高通信双方共享密钥分发的安全性,从而提高gossip协议数据同步过程的安全性。
14.有益技术效果:1.现有gossip协议使用tls进行安全保护,tls使用非对称密钥进行对称密钥的分发,一旦计算能力得到提高,基于计算复杂度的非对称算法将面临被破解的风险,对数据传输的安全性造成威胁。根据本发明提出的方法,节点之间用于数据传输加密的对称密钥使用了量子密钥分发技术进行分配,即使计算能力提高,也可以抵御被窃取的风险,大大提高了数据传输的安全性;2.现有gossip协议使用非对称密码算法进行节点间的会话密钥协商,因非对称密码算法进行加解密时效率较低,因此分发的对称密钥长度较短,进行数据加解密时一般使用3des、aes等对称加密算法,无法达到“一字一密”异或的高安全性加密等级。本发明提出的同步方法,密钥的分发由量子密钥分发网络完成,不受密钥长度的限制,最高可支持“一字一密”异或加密方式,具有高安全等级;3.现有gossip协议使用非对称密码算法进行节点间的会话密钥协商,使用的随机数为经典随机数,在一定条件下存在被预测的风险,易造成会话密钥的泄漏。本发明提出的同步方法,节点之间使用的量子密钥来源为量子随机数,是不可预测的真随机数,提高了密钥的随机性,从而提高数据传输的安全性。
附图说明
15.附图1为现有技术的gossip协议同步方法工作原理示意图;附图2为本发明的使用密钥保护的gossip协议同步方法示意图;附图3为本发明的节点间共享量子密钥分发方式示意图。
具体实施方式
16.通过参考该详细发明内容,可以更容易地理解本发明。本文使用的术语仅用于描述具体实施例的目的,并且不限制权利要求,除非本文具体定义,否则本文使用的术语将被赋予其相关领域中已知的传统含义。
17.在以下描述中,阐述了某些具体细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或多个的情况下,或者利用其他方法、组件、材料等来实践实施例。
18.如图1所示为现有技术中的采用gossip协议进行数据同步的原理示意图,note1~note7是分布式网络中的7个节点,当然实际并不局限于图中节点所示。图1中由节点note1发起的信息同步,将按照以下步骤,把信息同步到分布式网络中的各个节点:(1)分布式网络中各节点在线时,各节点周期性向分布式网络中其他节点发送广播包,发送周期优选地设置为1s,完成节点之间的信息交换,信息包括节点的在线信息等;(2)节点note1发起信息同步,将信息分别发送到相邻的节点note2、note3;(3)节点note2对接收到的节点note1发送的数据进行验证后,分别发送到相邻的节点note5、note6;节点note3对接收到的节点note1发送的数据进行验证后,发送的到相邻的节点note2和note4;(4)节点note6对接收到的节点note2发送的数据进行验证后,发送到节点note7。
19.经过以上四个步骤,节点note1需要同步的信息已经同步至分布式网络中的所有节点。各节点之间在数据传输过程中,已有的gossip协议通常使用tls协议进行节点间的身份认证和数据传输保护,tls协议主要采用的为非对称密码算法等基于密码学的算法。
20.而本发明使用量子密钥保护的gossip协议同步方法,在原有的gossip协议基础上,保留gossip协议的工作流程,对数据同步过程中的身份认证和数据传输安全保护进行增强,使用基于量子力学的量子密钥分发技术为节点之间分发共享的量子密钥(量子密钥来源为具有较高安全性的量子随机数),并使用量子密钥对节点间进行身份认证,同时用于节点间传输数据的加密保护和完整性保护。
21.如图2所示为本发明的使用量子密钥保护的gossip协议同步方法工作原理示意图,图2中仅示出了7个节点note1-note7的实施例,当然在其他实施例中,节点数目可以设为任意,并不局限为图中所示。
22.(1)量子密钥分发网络中的量子密钥分发节点使用量子密钥分发技术为分布式网络中的对应节点分发一对一共享量子密钥,使得分布式网络中的相邻节点之间具有共享量子密钥。
23.以分布式网络中的节点note1和note2为例,将节点note1与note2接入图2中的量子密钥分发网络,量子密钥分发网络中的量子密钥分发节点使用量子密钥分发技术为节点note1和note2之间分发一对一共享量子密钥。
24.如图3所示为一对一共享量子密钥的分发方式示意图,量子密钥分发节点1和量子密钥分发节点2是量子密钥分发网络中的两个节点,用于分发一对一共享量子密钥;note1和note2是分布式网络中的两个节点,分别接入量子密钥分发节点1和量子密钥分发节点2。
25.量子密钥分发节点1和量子密钥分发节点2之间为量子信道,在向分发网络中的节点分发一对一共享量子密钥之前,量子密钥分发节点之间首先通过量子密钥分发技术分配共享量子密钥;然后分别将各自的一对一共享量子密钥通过安全方式发送给节点note1和note2,使节点note1和note2之间具有共享量子密钥。通过该方式,可以为分布式网络中所有的相邻节点之间分发一对一共享量子密钥。
26.可通过量子密钥分发技术为量子密钥分发网络中有连接的节点分发共享量子密
钥,并利用量子密钥中继技术,将量子密钥中继到其他节点,使量子密钥分发网络中的任意两个节点之间均具有共享的量子密钥,因此,分布式网络中的任意两个节点通过接入量子密钥分发网络均可获取一对一共享量子密钥。
27.(2)分布式网络中各节点之间使用量子密钥进行身份认证,各节点之间通过广播完成节点间的信息交换,并将交换的信息保存至本地的相邻节点状态信息中。
28.分布式网络中的在线节点通过周期性广播“alive/活着”消息来表明其可用性。广播消息中携带分布式网络节点的标识,以及该节点接入的量子密钥分发网络节点的标识。
29.以节点note1为例,将在广播消息中携带节点note1的标识noteid1和其接入的量子密钥分发节点的标识qnoteid1,分布式网络中的其他节点收到广播后,以节点note2为例,回复消息中同样携带其节点标识noteid2和对应的量子密钥分发节点的标识qnoteid2。节点之间通过广播完成节点间的信息交换。节点将交换的信息保存至本地的相邻节点状态信息中。以节点note1存储的相邻节点的状态信息为例,节点状态信息如表格1所示,且在其他优选实施例中相邻节点状态信息包含但不限于表格1中所示的内容:量子密钥分发网络中的的量子密钥分发节点1(标识为qnoteid1)和量子密钥分发节点2(标识为qnoteid2的)之间通过量子密钥分发技术完成共享量子密钥的分发。分布式网络中的节点note1通过其接入的量子密钥分发节点1(标识为qnoteid1)获取量子密钥分发节点1(标识为qnoteid1)与量子密钥分发节点2(标识为qnoteid2)之间的共享量子密钥的固定密钥量。获取的预设共享量子密钥的密钥量可以根据实际需求来确定,例如:预先设定分布式网络中节点间所需的共享量子密钥量固定为qkeylen字节,则本次所需获取的固定密钥量即为qkeylen与节点note1原有密钥量(表格1中的“共享量子密钥量”)的差值,即获取固定密钥量后,两个节点之间共享量子密钥量可以达到qkeylen字节。同样的,节点note2通过其接入的量子密钥分发节点2(标识为qnoteid2)也可以获取量子密钥分发节点1(标识为qnoteid1)与量子密钥分发节点2(标识为qnoteid2)之间的共享量子密钥的固定密钥量。
30.以节点note1为例,获取与其相邻节点note2之间的共享量子密钥后,其本地存储的相邻节点状态信息如表格2所示,在其他优选实施例中节点状态信息包含但不限于以下表格2所示的内容:节点note1与节点note2使用密钥进行身份验证,验证过程包括如下步骤:
1)由节点note1端发起验证申请,节点note2端根据节点note1的标识验证其合法性,验证通过后发出一串随机数r2给节点note1;2)节点note1验证节点note2标识的合法性,根据使用的消息鉴别算法所需的密钥长度,从节点note1与节点note2的共享量子密钥中选取相应长度的密钥key1计算随机数r2的消息鉴别码r2mac,节点note1生成随机数r1,与r2mac一起发送给节点note2。消息鉴别算法包含但不限于基于哈希算法hmac的鉴别算法、基于堆成密码算法aescbcmac的鉴别算法等;3)节点note2使用与节点note1的对应的密钥key1对随机数r2计算得到消息鉴别码为r2mac’,如果r2mac’=r2mac,则节点note1的身份验证通过。节点note2选取根据消息鉴别算法所需的密钥长度,选取与节点note1之间的密钥key2对r1计算得到消息鉴别码为r1mac,并发送给节点note1;4)节点note1使用同节点note2在步骤3中同样的验证方法对r1mac进行验证。双方身份验证通过后,节点note1和note2分别将对方的身份验证状态更新到各自本地的相邻节点状态信息中。以节点note1为例,更新后的相邻节点状态信息如表格3所示,但在其他优选实施例中,更新后的相邻节点状态信息包含但不限于以下表格3所示的内容:(3)分布式网络中各节点间使用量子密钥对同步数据进行安全保护。以图2中节点note1向其他节点同步数据为例说明如下:节点note1在其相邻节点状态信息列表中,查看与其相邻的节点状态,如果相邻节点的在线状态为alive且身份验证状态为“yes”,则向其相邻的节点发送同步信息。以下以节点note1向节点note2同步信息过程为例进行说明。
31.节点note1在步骤(1)中已获取与节点note2的共享量子密钥。节点note1根据加密算法所需的量子密钥长度,从与节点note2共享量子密钥中选择相应长度的量子密钥(标识为qkeyencid1)对要同步的数据data进行加密生成密文encdata,同时,根据消息鉴别算法所需的密钥长度,选择相应的量子密钥(标识为qkeyaucid1),对数据data进行带密钥的消息鉴别算法的运算得到消息鉴别码datamac。消息鉴别算法可以使用对称密码算法,比如3des、aes等,也可以使用最高安全性的异或计算。节点note1将包含qkeyencid1、qkeyaucid1、encdata、datamac的同步数据发送至节点note2;节点note1在本步骤中使用的量子密钥qkeyencid1、qkeyaucid1仅使用一次,用完后即清除,同时更新节点note1“相邻节点状态信息”中的“与相邻节点的共享量子密钥量”信息。
32.节点note2收到节点note1发送的数据后,根据节点note1使用的量子密钥qkeyencid1选择与note1对应的量子密钥qkeyencid2,使用量子密钥qkeyencid2的对密文数据encdata进行解密得到明文data,然后使用量子密钥qkeyaucid2对明文data进行同样的消息鉴别算法的运算(包含但不限于hmac、aescbcmac等算法)得到消息鉴别码datamac’,
如果datamac’=datamac,则说明节点note2收到的消息确实来自节点于note1,而不是其他节点假冒;并且数据是完整的,没有被篡改。节点note2在本步骤中使用的量子密钥qkeyencid2、qkeyaucid2仅使用一次,用完后即清除,同时更新节点note2在“相邻节点状态信息”中的“与相邻节点的共享量子密钥量”信息。
33.通过以上使用量子密钥进行安全保护的方式,各节点之间使用gossip协议最终完成网络中所有节点间的数据同步过程。
34.本发明使用量子密钥分发技术,为分布式网络中的相邻节点之间分发一对一共享量子密钥,使用量子密钥对gossip同步过程中节点间的身份验证和数据传输安全保护。由于量子密钥分发基于量子力学,不可被窃取且具有真随机性,从而可以提高密钥分发的安全性。节点之间使用基于量子密钥分发的量子密钥进行安全加密保护和消息鉴别码保护,使安全性得到很大的提高。
35.本发明在gossip同步的广播阶段,相邻节点间通过广播消息来交换各自接入量子密钥分发节点的节点标识,通过对方接入的量子密钥分发节点标识,来获取与对方节点的一对一共享量子密钥。在gossip同步过程中,网络中各节点在本地维护相邻节点状态信息,相邻节点状态信息中心包含:本节点接入的量子密钥分发节点标识、本节点与其他节点之间的共享量子密钥量。
36.本发明在gossip同步的广播阶段,同步节点使用量子密钥分发技术分发共享量子密钥之后,使用量子密钥完成节点之间的身份验证。
37.本发明在gossip同步的数据传输阶段,使用量子密钥对传输的数据进行加密(加密算法包含但不限于3des、aes、异或计算等)、带密钥的消息鉴别码运算(包含但不限于hmac、aescbcmac等算法),来完成节点之间数据同步过程中的身份验证、加密保护、完整性保护。
38.本发明用于gossip同步过程中的量子密钥仅使用一次,使用完成后即进行清除,减少密钥被泄露或者破解的风险,防止重放攻击等,提高同步过程的安全性。
39.上述实施例为本发明较佳的实施方式,这些实施例在本文中是为了说明而非限制的目的而呈现的。此外,为了便于描述,本文已经任意定义了功能构建块的边界。只要适当地执行指定的功能及其关系,就可以定义替代边界。
40.基于本文包含的教导,替代方案(包括本文描述的那些的等同物、扩展、变化、偏差等)对于相关领域的技术人员将是显而易见的替代方案均落入所公开的实施例的范围和精神内。此外,词语“包括”、“具有”、“含有”和“包括”以及其他类似形式旨在在含义上是等同的并且是开放式的,因为这些词语中的任何一个之后的一个或多个项目并不意味着是这样的一个或多个项目的详尽列表,或者意味着仅限于所列出的一个或多个项目。还必须注意,如本文和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数指代,除非上下文另有明确规定。
41.本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。