基于网络时延的密钥交换方法、系统、设备及存储介质与流程

文档序号:23063784发布日期:2020-11-25 17:48阅读:143来源:国知局
基于网络时延的密钥交换方法、系统、设备及存储介质与流程

本发明涉及网络测量以及信息安全技术领域,尤其涉及一种基于网络时延的密钥交换方法、系统、设备及存储介质。



背景技术:

随着互联网技术的快速发展,如何在开放的网络中保证信息安全已成为一个重要的研究课题。目前,在公开的网络中保证信息安全的基本手段是对通信数据进行加密处理。目前最常用的加密方式是依赖于可信赖的第三方密钥分发中心(kdc)来进行通信密钥的分发。

由于密钥分发的过程中涉及到用户身份认证的问题,所以第三方密钥分发中心(kdc)也是依赖于pki/ca认证体系来工作的。公钥基础设施pki(publickeyinfrastructure,简称pki)是利用公钥理论和技术建立的提供安全服务的基础设施,是信息安全的核心。pki技术采用证书管理公钥,通过第三方的可信任机构——认证中心ca(certificateauthority),把用户的公钥和用户的其他标识信息(如名称、e—mail、身份证号等)捆绑在一起,在internet上验证用户的身份(其中认证机构ca是pki系统的核心部分)。基于pki/ca认证体系可以保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。

但传统的pki/ca的认证体系存在诸多安全问题,比如传统pki/ca体系中存在的中心失效等问题会造成用户的公钥不可信,进而影响使用第三方密钥分发可信机构进行会话密钥协商的用户的信息安全。



技术实现要素:

本发明的实施例提供一种基于网络时延的密钥交换方法、系统、设备及存储介质,能够解决目前互联网通信过程中,会话密钥的协商必须依赖第三方密钥分发可信机构问题,更好的保障用户的信息安全。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本申请实施例提供一种基于网络时延的密钥交换方法,包括:

第一用户终端将随机数写入数据包,并通过中间节点向第二用户终端传输,其中,所述随机数表示所述数据包在中间节点的总传输次数;

所述第二用户终端接收到所述数据包后,从所述数据包中读取向所述第二用户终端接直接发送所述数据包的中间节点的信息;

所述第二用户终端将所述数据包向所述第一用户终端反向传输;

利用所述第一用户终端和所述第二用户终端传输所述数据包的单向时延,获取会话密钥。

第二方面,本申请实施例提供一种基于网络时延的密钥交换系统,由第一用户终端、第二用户终端和至少2个中间节点组成;

所述第一用户终端,用于将随机数写入数据包,并通过中间节点向第二用户终端传输,其中,所述随机数表示所述数据包在中间节点的总传输次数;

所述第二用户终端,用于在接收到所述数据包后,从所述数据包中读取向所述第二用户终端接直接发送所述数据包的中间节点的信息;之后,所述第二用户终端将所述数据包向所述第一用户终端反向传输;

各个中间节点,用于在接收到所述数据包后,随机选择下一跳中间节点来发送所述数据包;并且,在发送所述数据包之前将上一个中间节点的信息写入所述数据包;

其中,会话密钥则是利用所述第一用户终端和所述第二用户终端传输所述数据包的单向时延获取的。

第三方面,本申请实施例提供一种基于网络时延的密钥交换设备,所述通信密钥交换设备至少包括处理器和存储器,所述存储器存储计算机执行指令,所述至少处理器执行所述存储器存储的计算机执行指令,使得所述通信密钥交换设备执行权利要求1至6中任一项所述的方法。

第四方面,本申请实施例提供一种存储介质,存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1至6中任一项所述的方法。

本发明实施例提供的基于网络时延的密钥交换方法、系统、设备及存储介质,本实施例解决了目前互联网通信过程中,会话密钥的协商必须依赖第三方密钥分发可信机构问题。传统pki/ca体系中存在的中心失效等问题会造成无法验证用户的公钥是否可信,进而影响使用第三方密钥分发可信机构进行会话密钥协商的用户的信息安全。用户可以通过基于网络时延的密钥交换方法来协商出通信密钥,保障信息安全传输。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的系统实施的实例图。

图2为本发明实施例提供的网络时延数据结果图。

图3为本发明实施例提供的网络时延特征数据处理流程图。

图4为本发明实施例提供的信息调和过程示意图。

图5为本发明实施例提供的方法流程的示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

本实施例的设计目的,在于针对性得解决传统的pki/ca的认证体系存在诸多安全问题,例如:1.中心失效问题,作为系统核心的根ca(certificateauthority,电子认证服务机构)对于黑客来说是极其明显的攻击目标,攻击成本相对较低而收益却非常大。根ca一旦被攻陷,该ca给其他用户签发的证书以及ca给自己签发的根证书都将失去作用。2.性能瓶颈问题,pki(publickeyinfrastructure,公钥基础设施)系统的核心是ca,它所做的工作包括证书发放、证书更新、证书撤销、证书验证等,任务繁重且无法被代理。这很容易使ca成为整个系统的性能短板,产生瓶颈问题。3.证书配置效率问题,用户在配置证书时,要首先向ca申请证书,ca签发证书后,用户需要将签发的证书安装在个人的终端上。在一些需要批量操作的场合例如终端设备的生产线上,由于私钥的私密性和唯一性,必须一个一个地配置安装证书,这样会浪费大量的时间和精力。由此可见,传统pki/ca体系中存在的中心失效等问题会造成用户的公钥不可信,进而影响使用第三方密钥分发可信机构进行会话密钥协商的用户的信息安全。因此,基于互联网的物理特性来设计一种密钥分发方法显得十分具有现实意义。用户可以通过基于网络时延的密钥交换方法来协商出通信密钥,保障信息安全传输。

本实施例的设计思路在于,技术上述问题和设计目的,提供一种基于网络时延的密钥交换方法,解决目前互联网通信过程中,会话密钥的协商必须依赖第三方密钥分发可信机构问题,更好的保障用户的信息安全。

本发明实施例提供一种基于网络时延的密钥交换方法,如图5所示,包括:

s1、第一用户终端将随机数写入数据包,并通过中间节点向第二用户终端传输。

其中,写入数据包的随机数,由最初发出数据包的终端设备生成(比如本实施例中即为第一用户终端),生成随机数可以采用目前已有的算法或者规则。实际应用中,所生成的随机数的大小依据具体的而应用场景而定,通常理解的,随机数的大小与最终获取会话密钥的处理时间正相关,因为随机数越大意味着数据包需要在各个中间节点之间传递的次数越多,耗时也越多,因此随机数的最大上限可以依据应用场景中对于会话密钥的获取时限而定。

s2、所述第二用户终端接收到所述数据包后,从所述数据包中读取向所述第二用户终端接直接发送所述数据包的中间节点的信息。

其中,每个中间节点收到数据包的时候会保存上一个节点的信息。

s3、所述第二用户终端将所述数据包向所述第一用户终端反向传输。

其中,反向传输可以理解为,数据包从第一用户终端出发经过多个中间节点后最终抵达了第二用户终端,数据包的这个传输路径的逆过程即为反向传输的传输路径。具体的,将数据包传输给上一个中间节点,这一个中间节点根据上一个中间节点的数据栈中存储的节点信息恢复出上上个中间节点,依次类推,即可恢复出数据包的完整传输路径。在实际应用中,数据包的传输路径可以记录在接收数据包的终端比如第二用户终端,以便于第二用户终端发起反向传输;亦或者,传输路径可以不被记录,第一、第二用户终端以及所有参数传输的中间节点,只需记录与自己直接进行数据包收发的设备,比如:第一用户终端发出数据包a经过中间节点1、中间节点2、中间节点3……最终达到第二用户终端,这其中中间节点2只需记录数据包a从中间节点1发来、并又发送给了中间节点3即可,其他节点以此类推,这样当第二用户终端反向传输数据包时,所有中间节点只需将所记录的数据包的收/发端反过来即可。

s4、利用所述第一用户终端和所述第二用户终端传输所述数据包的单向时延,获取会话密钥。

其中,所述随机数表示所述数据包在中间节点的总传输次数。因为中间节点每次会记录数据包的上一个节点的信息,使得第二用户终端在接收到数据包以后可以按相反的传输路径把数据包传输给第一用户终端。通信双方分别记录下数据包从发送到接收所需要的单向时延,也就是一组特征数据。在双方生成数量相等且足够多的网络时延特征数据之后,首先使用肖维勒准则对特征数据中的异常值进行修正,然后进行线性归一化、均匀量化以及格雷编码,生成01比特流。最后双方通过信息调和来去除不一样的比特,确保协商出一致的会话密钥。使用本方法可以通过互联网网络时延物理特征生成会话密钥,不再依赖第三方的密钥分发机构,降低密钥泄露风险,保障信息安全传输。

具体的,对于任何一个中间节点,在接收到所述数据包后,随机选择下一跳中间节点来发送所述数据包。并且,在发送所述数据包之前将上一个中间节点的信息写入所述数据包。将上一个数据包的信息写入当前节点的数据栈中。从而保证反向传输的过程中,从每个节点中提取上一个节点的信息,才能反向恢复出路径。

本实施例中,步骤s1大致包括:

所述第一用户终端生成固定长度的所述数据包,并生成一个随机数m携带在所述数据包中,之后向随机选择的一个中间节点发送,其中,m为正整数,表示所述数据包在中间节点中的总传输次数,且一共有n个中间节点,n为正整数且n≥2,每个中间节点都和其它n-1个节点相连。

每当一个中间节点接收到所述数据包后,将所述数据包的上一个节点的信息存储在本地节点的数据栈中,并将所述数据包中的m值减1,之后随机从相连的n-1个节点中选取一个节点发送所述数据包。直至m的值变为0,将所述数据包直接发送给所述第二用户终端。

本实施例中,步骤s4之前,还包括:所述第一用户终端和所述第二用户终端,分别记录下一个数据包从发送到接收所需要的单向时延,并作为一组特征数据。获取指定组数的特征数据,并对所有特征数据中的异常值进行修正,之后生成01比特流。通过信息调和去除所述01比特流中不一样的比特后,得到会话密钥。

具体的,所述对所有特征数据中的异常值进行修正,包括:若特征数据的测量值,与平均值之差的绝对值大于标准偏差与肖维勒系数之积,则判定为异常值。

所述生成01比特流,包括:通过线性归一化对经过修正的特征数据进行归一化处理,将所有数据归化到0和1之间。对归一化后的特征数据进行均匀量化,得到离散的采样值,其中,采样值对应的比特数作为量化阶数。通过格雷编码将量化后的采样值转换为01比特流。

具体举例来说,第一用户终端和第二用户终端的具体交互过程如图1所示,其中各个流程环节包括:

(1)第一用户终端生成固定长度的数据包,同时生成一个随机数m携带在数据包并传输给中间节点,m代表数据包要在中间节点中的总传输次数。

(2)一共有n个中间节点,每个节点都和其它n-1个节点相连。中间节点每次接收到数据包以后,会将数据包的上一个节点的信息存储在本地节点的数据栈中。数据包同时将数据包中m值减1,并随机从与自己相连的n-1个节点中选取一个节点并将数据包交付于它。

(3)直至m的值变为0,将数据包直接交付给第二用户终端。从第一用户终端发送数据包到第二用户终端接收数据包,经过的时间为tab,经过的路径为具体入下所示:

(1≤i,j,k,…,l,m,n≤n)

(4)第二用户终端在收到数据包以后,将数据包重新发送给第一用户终端。因为中间节点每次在收到数据都会记录数据包的上一个节点的信息,使得第二用户终端可以反向恢复出数据包传输的路径,也就是保证从第二用户终端发送数据包到第一用户终端接收数据包,经过的时间为tba,经过的路径为具体如下所示:

(5)当网络状况较为理想的情况下,tab≈tba。tab对应第一用户终端生成的一个时延特征数据,tba对应第二用户终端生成的一个时延特征数据。

其中,i,j,k,…,l,m,n都为正整数表示的是中间节点的标号,即(1≤i,j,k,…,l,m,n≤n,n为正整数。a表示第一用户终端,b表示第二用户终端。

本实施例中使用了互联网网络时延特征来进行通信密钥的交换。网络时延是衡量通信网服务质量的一个重要指标。往返时延(rtt)是数据包从源主机传播到接收该数据包的远程主机,并将其重新传回源计算机所需的时间。单向时延(owd)的值是在两个同步的节点1和节点2之间计算的,指的是数据包从节点1到节点2在网络传输所花费的时间。一般情况下近似认为rtt/2≈owd,也就是说数据包从节点1到节点2的传输时间owd12和数据包从节点2到节点1的传输时间owd21近似相等,也就是owd12≈owd21。基于特征数据的生成和特征数据的处理两个过程,可以保障用户协商出相同的通信密钥。

由于第一用户终端和第二用户终端在生成了数量相等且足够多的网络时延特征数据之后,就完成了特征数据生成过程,其生成的特征数据结果如图2所示。从图中可以看出,第一用户终端和第二用户终端生成的特征数据具有极高的相关性。在特征数据生成以后,双方都进入特征数据处理阶段以获得相同的通信密钥,数据处理流程图如图3所示,包括如下环节:

(1)数据异常点修正:使用等置信概率的肖维勒准则对异常数据进行修正。如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系数之积,则该测量值为异常值,公式如下所示:

其中为数据样本的标准偏差,wn=1+0.4ln(n)近似代表为肖维勒系数,其中n为数据样本的总个数。算出所有数据的偏差sx,平均值然后再对每一个特征数据进行分析。如果一个数据满足则测量值xi为异常。如果则将xi的值修正为如果则将xi的值修正为每次修正完以后重新更新所有特征数据的偏差sx和平均值然后分析下一个数据,直到所有的数据分析完,这样可以将所有的数据异常点进行修正。

(2)线性归一化:使用的线性归一化方法是最大值最小值归一化,将所有数据归化到0和1之间。最大值xmax和最小值xmin归一化会受到异常点的影响,所以在上一步对异常点进行修正之后,会降低密钥的误码率,公式如下所示:

(3)均匀量化:对归一化后数据xnorm进行均匀量化,得到离散的采样值q,采样值对应的比特数即量化阶数r,公式如下所示:

q=xnorm×2r

(4)格雷编码:使用格雷编码将量化后的值q变为01比特流。

(5)信息调和:保证用户协商出完全一致的通信密钥。

信息调和的具体过程如图4所示,通信双方第一用户终端和第二用户终端编码生成的比特字符串为key1和key2。第一用户终端分组计算key1的crc校验码,并将校验冗余部分的码字发送给第二用户终端。第二用户终端进行同样的分组,并根据第一用户终端发送过来的冗余码字去除不一致的组。第二用户终端再将校验结果回发给第一用户终端,第一用户终端根据校验结果去除不一致的组,最终双方可以得到一致的通信密钥。

本实施例还提供一种基于网络时延的密钥交换系统,如图1所示的,由第一用户终端、第二用户终端和至少2个中间节点组成,需要说明的是,图1中显示的中间节点为4个,但实际的中间节点的数量可以远超4个,图1中的数量仅为示意和理解。

所述第一用户终端,用于将随机数写入数据包,并通过中间节点向第二用户终端传输,其中,所述随机数表示所述数据包在中间节点的总传输次数。

所述第二用户终端,用于在接收到所述数据包后,从所述数据包中读取向所述第二用户终端接直接发送所述数据包的中间节点的信息。之后,所述第二用户终端将所述数据包向所述第一用户终端反向传输。

各个中间节点,用于在接收到所述数据包后,随机选择下一跳中间节点来发送所述数据包。并且,在发送所述数据包之前将上一个中间节点的信息写入所述数据包。

其中,会话密钥则是利用所述第一用户终端和所述第二用户终端传输所述数据包的单向时延获取的。

所述第一用户终端,具体用于所述第一用户终端生成固定长度的所述数据包,并生成一个随机数m携带在所述数据包中,之后向随机选择的一个中间节点发送,其中,m为正整数,表示所述数据包在中间节点中的总传输次数,且一共有n个中间节点,n为正整数且n≥2,每个中间节点都和其它n-1个节点相连。

各个中间节点,具体用于接收到所述数据包后,将所述数据包的上一个节点的信息存储在本地节点的数据栈中,并将所述数据包中的m值减1,之后随机从相连的n-1个节点中选取一个节点发送所述数据包。直至m的值变为0,则将所述数据包直接发送给所述第二用户终端。

所述第一用户终端和所述第二用户终端,分别用于记录下一个数据包从发送到接收所需要的单向时延,并作为一组特征数据。获取指定组数的特征数据,并对所有特征数据中的异常值进行修正,之后生成01比特流。通过信息调和去除所述01比特流中不一样的比特后,得到会话密钥。

所述第一用户终端和所述第二用户终端,分别具体用于通过线性归一化对经过修正的特征数据进行归一化处理,将所有数据归化到0和1之间。对归一化后的特征数据进行均匀量化,得到离散的采样值,其中,采样值对应的比特数作为量化阶数。通过格雷编码将量化后的采样值转换为01比特流。

本实施例解决了目前互联网通信过程中,会话密钥的协商必须依赖第三方密钥分发可信机构问题。传统pki/ca体系中存在的中心失效等问题会造成无法验证用户的公钥是否可信,进而影响使用第三方密钥分发可信机构进行会话密钥协商的用户的信息安全。用户可以通过基于网络时延的密钥交换方法来协商出通信密钥,保障信息安全传输。

本实施例还提供一种基于网络时延的密钥交换设备,所述通信密钥交换设备至少包括处理器和存储器,所述存储器存储计算机执行指令,所述至少处理器执行所述存储器存储的计算机执行指令,使得所述通信密钥交换设备执行上述方法流程。

本实施例还提供一种存储介质,存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现上述方法流程。结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

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