一种数据安全传输的方法和装置及设备与流程
未命名
07-23
阅读:77
评论:0
1.本发明涉及网络通信领域,尤其涉及一种数据安全传输的方法和装置及设备。
背景技术:
2.互联网安全协议(internet protocol security,ipsec)在两个节点之间提供安全通信。安全关联(security association,sa)是ipsec的基础,指一组用来保护通信信息的策略和密钥。初始化向量(initialization vector,iv),又被称为初始变量(starting variable,sv),是一个长度固定的输入值,一般为随机数或拟随机数(pseudorandom)。
3.在现有技术中,启用ipsec的两个节点进行双向通信时,通过数据包中携带的序列号(serial number,sn)计算iv,并通过sa中的密钥和iv值共同完成数据包的加/解密。上述sa是一个单向的逻辑连接,在上述两个节点进行双向通信时,需要建立一对sa,一个用于入站通信,另一个用于出站通信,因此,使用单向sa的方案存在耗费系统资源的缺陷。
技术实现要素:
4.本发明提供一种数据安全传输的方法和装置及设备,解决现有技术中使用单向sa的方案耗费系统资源的问题。
5.第一方面,本发明提供一种数据安全传输的方法,该方法包括:
6.节点1将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1;
7.所述节点1根据所述iv1和密钥对第一数据包加密后发送到节点2;
8.所述节点2获取接收的第一数据包中的sn1值,对获取的sn1值进行所述第一数学变换计算所述iv1,利用所述iv1和所述密钥对加密后的第一数据包进行解密;
9.所述节点2将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2;
10.所述节点2根据所述iv2和所述密钥对第二数据包加密后发送到所述节点1;
11.所述节点1获取接收的第二数据包中的sn2值,对获取的sn2值进行所述第二数学变换计算所述iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密;
12.其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
13.可选地,所述节点1/所述节点2在计算第一初始化向量iv1之前,还包括:
14.判断sn1与iv1的溢出顺序;
15.确定sn1先溢出时,对更新后的/获取的sn1值进行第一数学变换计算所述iv1包括:
16.将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;
17.确定iv1先溢出时,对更新后的/获取的sn1值进行第一数学变换计算所述iv1包括:
18.将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系
数p后,与所述差异化参数c及所述q1求和计算iv1;
19.其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。
20.可选地,所述判断sn1与iv1的溢出顺序,包括:
21.计算iv1的长度n和所述高阶位的长度k的差值;
22.若sn1的长度m不大于所述差值,确定sn1先溢出;
23.若sn1的长度m大于所述差值,确定iv1先溢出。
24.可选地,所述节点2/所述节点1在计算第二初始化向量iv2之前,还包括:
25.判断sn2与iv2的溢出顺序;
26.确定sn2先溢出时,对更新后的/获取的sn2值进行第二数学变换计算所述iv2包括:
27.将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;
28.确定iv2先溢出时,对更新后的/获取的sn2值进行第二数学变换计算所述iv2包括:
29.将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;
30.其中,q2为0或不为p的整数倍,所述q2与所述q1不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。
31.可选地,所述判断sn2与iv2的溢出顺序,包括:
32.计算iv2的长度n和所述高阶位的长度k的差值;
33.若sn2的长度m不大于所述差值,确定sn2先溢出;
34.若sn2的长度m大于所述差值,确定iv2先溢出。
35.可选地,所述节点1/所述节点2在计算第一初始化向量iv1之前,还包括:
36.当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;
37.当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。
38.可选地,所述节点2/所述节点1在计算第二初始化向量iv2之前,还包括:
39.当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;
40.当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底
阶n-k个比特位的最大值。
41.可选地,在所述启动密钥的更新操作时,还包括:
42.启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。
43.可选地,在使用更新的新密钥作为发送数据时使用的密钥时,还包括:
44.使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。
45.可选地,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。
46.第二方面,本发明提供一种数据安全传输的装置,包括:
47.第一计算单元,用于将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1;
48.第一加密单元,用于根据所述iv1和密钥对第一数据包加密后发送到节点2;
49.第一解密单元,用于获取接收的第二数据包中的sn2值,对获取的sn2值进行第二数学变换计算第二初始化向量iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密;
50.其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
51.第三方面,本发明提供一种数据安全传输的装置,包括:
52.第二解密单元,用于获取接收的第一数据包中的sn1值,对获取的sn1值进行第一数学变换计算第一初始化向量iv1,利用所述iv1和密钥对加密后的第一数据包进行解密;
53.第二计算单元,用于将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2;
54.第二加密单元,用于根据所述iv2和所述密钥对第二数据包加密后发送到节点1;
55.其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
56.第四方面,本发明提供数据安全传输的设备,包括存储器和处理器,其中:
57.所述存储器用于存储计算机程序;
58.所述处理器用于读取所述存储器中的程序并执行上述第一方面提供的数据安全传输的方法的步骤。
59.第五方面,本发明提供一种计算机程序介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面提供的数据安全传输的方法的步骤。
60.本发明提供的一种数据安全传输的方法和装置及设备,具有以下有益效果:
61.通过本发明方案使得通信节点之间的每一次数据交互,都可以使用不同的初始化向量iv和相同的密钥进行保密通信,在确保通信安全的基础上,实现了入站通信和出站通信可以使用相同的密钥,即通信节点之间只需建立和维护一个sa;而先有技术中,为了确保通信安全,通信节点之间需要建立和维护一对sa,一个用于入站通信,另一个用于出站通信,即入站通信使用一个密钥,出站通信使用另一个不同的密钥;当一个节点与海量节点进行通信时,本发明方案极大的减少了节点需要建立和维护的sa数量,从而极大降低了系统资源的消耗。
附图说明
62.图1为本发明实施例提供的一种数据安全传输的应用场景的示意图;
63.图2为本发明实施例提供的一种数据安全传输的方法的流程图;
64.图3为本发明实施例提供的一种差异化参数c的示意图;
65.图4为本发明实施例提供的一种节点1/节点2计算第一初始化向量iv1的流程图;
66.图5为本发明实施例提供的一种节点2/节点1计算第二初始化向量iv2的流程图;
67.图6为本发明实施例提供的一种具有封装格式的数据安全传输的示意图;
68.图7为本发明实施例提供的一种不具有封装格式的数据安全传输的示意图;
69.图8为本发明实施例提供的一种具有封装格式的数据安全传输的流程图;
70.图9为本发明实施例提供的另一种具有封装格式的数据安全传输的流程图;
71.图10为本发明实施例提供的一种数据安全传输的装置的示意图;
72.图11为本发明实施例提供的另一种数据安全传输的装置的示意图;
73.图12为本发明实施例提供的一种数据安全传输的设备的示意图。
具体实施方式
74.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
75.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
76.以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的设备和方法的例子。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
77.在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
78.鉴于现有技术中使用单向sa的方案耗费系统资源的问题,本技术提出一种数据安全传输的方法和装置及设备。
79.下面结合附图对本技术实施例中的一种数据安全传输的方法和装置及设备进行说明。
80.如图1所示,本发明实施例提供一种数据安全传输的应用场景的示意图,包括:
81.节点1,用于将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数
学变换计算第一初始化向量iv1;根据计算出的iv1和密钥对第一数据包加密后发送到节点2;获取接收的第二数据包中的sn2值,对获取的sn2值进行第二数学变换计算第二初始化向量iv2,利用计算出的iv2和上述密钥对加密后的第二数据包进行解密。
82.节点2,用于获取接收的第一数据包中的sn1值,对获取的sn1值进行所述第一数学变换计算iv1,利用计算出的iv1和所述密钥对加密后的第一数据包进行解密;将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行所述第二数学变换计算iv2;根据计算出的iv2和所述密钥对第二数据包加密后发送到节点1。
83.其中,加密后的第一数据包中至少包括sn1值字段和加密数据字段;加密后的第二数据包中至少包括sn2值字段和加密数据字段;所述第一数学变换与所述第二数学变换使得计算出的所述iv1不等于所述iv2。
84.需要说明的是,通信双方用上述节点1和节点2表示,在两个节点之间提供安全通信时,节点1可以是本地请求者requester,简写为本地req,也可以是对端响应者responder,简写为对端rep。当节点1充当本地req时,那么节点2就是对端rep;当节点1充当对端rep时,那么节点2就是本地req。
85.上述节点1和节点2可以为任意形式的网络设备,例如,路由器、网关、交换机、网桥、无线接入点、基站、防火墙、调制解调器、集线器,网络接口控制器(network interface controller,nic)、反向代理、服务器(例如,代理服务器)、复用器、安全设备、入侵探测设备、负载均衡器或类似设备等等;也可为蜂窝网络、局域网(local area network,lan)、核心网络、接入网络、诸如互联网的广域网(wide area network,wan)、云网络等等,本发明实施例对此不做限定。
86.上述节点1和节点2之间的通信可以包括具有封装格式的数据安全传输,也可以包括不具有封装格式的数据安全传输。
87.如图2所示,本发明实施例提供一种数据安全传输的方法的流程图,包括:
88.s201、节点1将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1。
89.节点1将自身初始化的序列号sn1值递增更新的含义为:节点1在初始化sn1值之后,将初始化的sn1值递增更新;在下一次计算iv1时,将上一次使用的sn1值递增更新。
90.本发明实施例不限定上述sn1值从某个值开始,也不限定上述sn1值递增更新的具体形式。作为一种可选的实施方式,上述sn1值从1开始,每次通过加1操作进行递增更新。
91.本发明实施例不限定上述sn1的初始值,上述sn1的初始值有可能很大,在极端情况下,上述sn1的初始值为设置的密钥更新临界值,上述极端情况在本发明实施例的保护范围内。
92.s202、节点1根据计算出的iv1和密钥对第一数据包加密后发送到节点2。
93.将计算出的iv1和密钥作为采用的加密算法的两个输入参数,利用采用的加密算法对第一数据包进行加密后发送到节点2。其中,对第一数据包进行加密包括:对第一数据包中的有效载荷进行加密;加密后的第一数据包中至少包括sn1值字段和加密数据字段。
94.s203、节点2获取接收的第一数据包中的sn1值,对获取的sn1值进行所述第一数学变换计算所述iv1,利用所述iv1和所述密钥对加密后的第一数据包进行解密。
95.节点2接收节点1发送的加密后的第一数据包,并获取其中的sn1值,然后对获取的
sn1值进行所述第一数学变换计算iv1,由于本技术中的节点1和节点2之间通信时采用的是双向sa,通信双方只需建立1个sa(该sa中包含本技术实施例中的所述密钥),因此节点2可以将计算出的iv1和所述密钥作为采用的加密算法的两个输入参数,利用采用的加密算法对加密后的第一数据包进行解密。
96.s204、节点2将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2。
97.节点2将自身初始化的序列号sn2值递增更新的含义为:节点2在初始化sn2值之后,将初始化的sn2值递增更新;在下一次计算iv2时,将上一次使用的sn2值递增更新。
98.本发明实施例不限定上述sn2值从某个值开始,也不限定上述sn2值递增更新的具体形式。作为一种可选的实施方式,上述sn2值从1开始,每次通过加1操作进行递增更新。
99.本发明实施例不限定上述sn2的初始值,上述sn2的初始值有可能很大,在极端情况下,上述sn2的初始值为设置的密钥更新临界值,上述极端情况在本发明实施例的保护范围内。
100.需要说明的是,上述sn2的初始值和上述sn1的初始值可以相同也可以不同,且上述sn2值递增更新的具体形式和上述sn1值递增更新的具体形式可以相同也可以不同。
101.其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
102.s205、节点2根据计算出的iv2和所述密钥对第二数据包加密后发送到节点1。
103.将计算出的iv2和所述密钥作为采用的加密算法的两个输入参数,利用上述采用的加密算法对第二数据包进行加密后发送到上述节点1。其中,对第二数据包进行加密包括:对第二数据包中的有效载荷进行加密;加密后的第二数据包中至少包括sn2值字段和加密数据字段。
104.s206、节点1获取接收的第二数据包中的sn2值,对获取的sn2值进行所述第二数学变换计算所述iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密。
105.节点1接收节点2发送的加密后的第二数据包,并获取其中的sn2值,然后对获取的sn2值进行所述第二数学变换计算iv2,将计算出的iv2和所述密钥作为采用的加密算法的两个输入参数,利用采用的加密算法对加密后的第二数据包进行解密。
106.需要说明的是,在本技术各个实施例中,节点1和节点2之间预共享所述第一数学变换和所述第二数学变换。并且,安全关联sa由多个安全关联参数sap组成,其中包含密钥参数,该密钥参数是节点1和节点2在建立sa时协商得到的,即在本技术各个实施例中,节点1和节点2之间也预共享所述密钥。
107.在本技术实施例中,节点1自身初始化的序列号sn1的长度和节点2自身初始化的序列号sn2的长度相等;节点1计算的第一初始化向量iv1的长度和节点2计算的第二初始化向量iv2的长度相等。
108.随着计算机性能的不断提升,计算机的计算能力迅速提升,一个64位的计数器,例如ipsec电子序列号(electronic serial number,esn),在超高速的设备上也会很快溢出,这时系统就会不断循环计数器,从而影响系统性能。而在有些环境,例如物联网(internet of things,iot)中,对计数器的要求不高,16位计数器就能满足需求,但是ipsec的每个发送报文中至少要传输32位的sn,这样的设计在上述收发包很少的环境中会浪费带宽。因此,
为了适应不同的应用场景,需要一种可以调节的计数器。
109.因此,本发明实施例提供了一种根据具体实施情况设置sn1和sn2的长度的方案。其中,节点1和节点2之间可以根据应用场景确定所述sn1和所述sn2的长度均为m比特位;在对计数器要求高的情况下,设置较大的序列号长度,解决在超高速的环境下,计数器很快溢出问题;在对计数器要求低的情况下,设置较小的序列号长度,减少带宽流量,提高带宽利用率,满足在一些小流量的环境下的工作。
110.例如,在小流量的环境下,设置上述sn1和上述sn2的长度均为8bit,可以比使用32bit长度的sn1和sn2节省24bit的带宽数量流量。
111.在进行数据安全通信时,通信双方可以互相得到对方的sn值。
112.所述节点1和所述节点2之间根据采用的加密算法,确定所述iv1和所述iv2的长度均为n比特位。上述iv1和iv2的长度根据通信双方进行数据安全通信时采用的加密算法确定。例如,当所述节点1和所述节点2采用的加密算法为sm4-gcm-128时,iv长度为128比特位;当所述节点1和所述节点2采用的加密算法为aes-gcm-256时,iv长度为256比特位;当所述节点1和所述节点2采用的加密算法为aes-cbc-128时,iv长度为128比特位。
113.需要说明的是,可以根据具体的实施场景进行上述加密算法的选择,本发明实施例对此不做限定。
114.作为一种可选的实施方式,上述加密算法为对称加密算法。
115.需要说明的是,上述sn1和sn2的长度m,及上述iv1和iv2的长度n可以由节点1和节点2中的任一节点确定,或者由节点1和节点2共同确定。
116.如图3所示,本发明实施例提供一种差异化参数c的示意图,可选的,所述差异化参数c可以作为计算iv值的一个参数。
117.其中,所述c的长度与所述iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,高阶位的取值n为非零。
118.作为一种可选的实施方式,采用如下方式确定上述c的高阶位的取值n:
119.采用随机方式确定所述c的高阶位的取值n;或
120.根据设置信息确定所述c的高阶位的取值n;或
121.根据加密密钥确定所述c的高阶位的取值n;或
122.通过密钥协商确定所述c的高阶位的取值n。
123.上述取值n可以是:(1)根据设置信息确定的一个固定数值,例如0x5c365c36,该值尽量保证比特位上0、1均衡,并且0、1分布要足够乱序;(2)采用随机方式确定的一个随机数;(3)根据加密密钥确定的加密密钥的一部分值;(4)通过密钥协商确定的某部分值。
124.当上述取值n为上述(2)、(3)、(4)时,上述取值n不能全部为0xffffffff或接近0xffffffff的值,即上述取值n的比特位值不能全部为1或接近全1值,否则会使密钥更新频次更快。
125.上述取值n的长度k可变,但是上述取值n的长度k小于上述c的长度。
126.如图4所示,本发明实施例提供一种节点1/节点2计算第一初始化向量iv1的流程图,其中,计算iv1时使用的第一数学变换包括系数p、第一参数q1、差异化参数c;节点1/节点2计算iv1包括:
127.s401、节点1和节点2之间确定sn1和sn2的长度均为m,并根据采用的加密算法,确定
iv1和iv2的长度均为n。
128.上述长度m和长度n的具体确定过程,如上文所述,在此不再赘述。
129.s402、判断sn1与iv1的溢出顺序。
130.作为一种可选的实施方式,判断sn1与iv1的溢出顺序,包括:
131.计算所述iv1的长度n和所述高阶位的长度k的差值;
132.若所述sn1的长度m不大于所述差值,确定所述sn1值先溢出;
133.若所述sn1的长度m大于所述差值,确定所述iv1值先溢出。
134.上述sn1的长度为m比特位,上述iv1的长度为n比特位,上述n的长度为k比特位,其中,上述m、n、k为8的整数倍。
135.s403、确定sn1先溢出时,将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以所述系数p后,与差异化参数c及所述q1求和计算iv1。
136.当m《=n-k时,例如,当m=32bit,n=128bit,k=32bit时,计算第一初始化向量iv1的计算方式为:
137.iv1=c+sn1×
p+q1,p不等于1和0,q1为0或不为p的整数倍。
138.s404、确定iv1先溢出时,将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与差异化参数c及所述q1求和计算iv1。
139.当m》n-k时,例如,当m=128bit,n=64bit,k=32bit时,计算第一初始化向量iv1的计算方式为:
140.iv1=c+sn1%2
n-k
×
p+q1,p不等于1和0,q1为0或不为p的整数倍。
141.上述m为iv1先溢出时iv1的底阶n-k个比特位能表示的最大值2
n-k
;上述第三动态参数为sn1%2
n-k
,表示上述sn1值与2
n-k
取余运算。
142.上述sn1%2
n-k
表示上述第三动态参数的值是从0至2
n-k-1循环的。
143.需要说明的是,在上述iv1值先溢出时,对于上述sn1=1和sn1=2
n-k
+1的两种情况下,上述第三动态参数的值均为1,但是在sn1=2
n-k
+1之前,iv1已经溢出,因此需要更新密钥;在更新不同的密钥时,还可以更新不同的c值,以使计算的iv1的值不同,从而保证足够的随机性、保证每轮循环中iv的值不同,这样设计更加安全。
144.另外,即使上述sn1=1和sn1=2
n-k
+1的两种情况下计算的iv1的值相同,但是使用的密钥是不同的。
145.作为一种可选的实施方式,所述节点1/节点2计算第一初始化向量iv1之前,还包括:
146.当确定上述sn1值先溢出且所述第一动态参数即计算iv1的sn1值到达第一预设阈值时,启动密钥的更新操作;当确定上述sn1值先溢出且所述第一动态参数即计算iv1的sn1值到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥;其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于所述sn1的最大值。
147.当确定上述iv1值先溢出且所述第三动态参数即sn1%2
n-k
到达第三预设阈值时,启动密钥的更新操作;当确定上述iv1值先溢出且所述第三动态参数即sn1%2
n-k
到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥;其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于所述iv1的底阶n-k个比特位的最大值。
148.需要说明的是,上述第一预设阈值、第二预设阈值、第三预设阈值、第四预设阈值
在满足上述大小范围要求的前提下,可以根据具体的实施情况设置具体的数值。例如,通常建议可将上述第一预设阈值设置为2m的90%,将上述第二预设阈值设置为2
m-1;将上述第三预设阈值设置为2
n-k
的90%,将上述第四预设阈值设置为2
n-k-1。其中,2m表示sn1能表示的最大值,2
n-k
表示iv1先溢出时iv1的底阶n-k个比特位能表示的最大值。
149.为了安全性考虑,在更换新密钥的同时也可以更换上述c值。
150.作为一种可选的实施方式,所述启动密钥的更新操作时,还包括:
151.启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。
152.在启动密钥的更新操作的同时,生成新的差异化参数c。上述生成新的差异化参数c的具体方式可以为:(1)计算高阶位的比特位数k的新取值k’,并计算k’个比特位的高阶位的新取值n;或,(2)高阶位的比特位数k不变,计算k个比特位的高阶位的新取值n。
153.作为一种可选的实施方式,所述使用更新的新密钥作为发送数据时使用的密钥时,还包括:
154.使用所述新的差异化参数c计算发送数据时使用的iv1。
155.(1)当确定上述sn1值先溢出且计算iv1的sn1值到达第二预设阈值时,在使用新密钥作为发送数据时使用的密钥的同时,使用所述新的差异化参数c计算发送数据时使用的初始化向量iv1;
156.(2)当确定上述iv1值先溢出且sn1%2
n-k
到达第四预设阈值时,在使用新密钥作为发送数据时使用的密钥的同时,使用所述新的差异化参数c计算发送数据时使用的初始化向量iv1。
157.需要说明的是,上述图3实施例中提供的一种差异化参数c的高阶位的取值n为非零,作为另一种可选的实施方式,差异化参数c的高阶位的取值n也可以为零,这种情况下,c的取值为零,即图4实施例中,计算第一初始化向量iv1的计算方式变为:当m《=n-k时,iv1=sn1×
p+q1,p不等于1和0,q1为0或不为p的整数倍;当m》n-k时,iv1=sn1%2
n-k
×
p+q1,p不等于1和0,q1为0或不为p的整数倍。与差异化参数c的高阶位的取值n为零的情况相比,差异化参数c的高阶位的取值n为非零的情况,可以保证计算的iv1值具备更高的随机性,进而极大的增强了数据加密的安全性。
158.如图5所示,本发明实施例提供一种节点2/节点1计算第二初始化向量iv2的流程图,其中,计算iv2时使用的第二数学变换包括系数p、第二参数q2、差异化参数c;所述第二数学变换中的第二参数q2与所述第一数学变换中的第一参数q1取值不同;节点2/节点1计算iv2包括:
159.s501、节点1和节点2之间确定sn1和sn2的长度均为m,并根据采用的加密算法,确定iv1和iv2的长度均为n。
160.上述长度m和长度n的具体确定过程,如上文所述,在此不再赘述。
161.s502、判断sn2与iv2的溢出顺序。
162.作为一种可选的实施方式,判断sn2与iv2的溢出顺序,包括:
163.计算所述iv2的长度n和所述高阶位的长度k的差值;
164.若所述sn2的长度m不大于所述差值,确定所述sn2值先溢出;
165.若所述sn2的长度m大于所述差值,确定所述iv2值先溢出。
166.上述sn2的长度为m比特位,上述iv2的长度为n比特位,上述n的长度为k比特位,其中,上述m、n、k为8的整数倍。
167.s503、确定sn2先溢出时,将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与差异化参数c及所述q2求和计算iv2。
168.当m《=n-k时,例如,当m=32bit,n=128bit,k=32bit时,计算第二初始化向量iv2的计算方式为:
169.iv2=c+sn2×
p+q2,p不等于1和0,q2为0或不为p的整数倍,上述q1与q2不同。
170.s504、确定iv2先溢出时,将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与差异化参数c及所述q2求和计算iv2。
171.当m》n-k时,例如,当m=128bit,n=64bit,k=32bit时,计算第二初始化向量iv2的计算方式为:
172.iv2=c+sn2%2
n-k
×
p+q2,p不等于1和0,q2为0或不为p的整数倍,上述q1与q2不同。
173.上述m为iv2先溢出时iv2的底阶n-k个比特位能表示的最大值2
n-k
;上述第四动态参数为sn2%2
n-k
,表示上述sn2值与2
n-k
取余运算。
174.上述sn2%2
n-k
表示上述第四动态参数的值是从0至2
n-k-1循环的。
175.需要说明的是,在上述iv2值先溢出时,对于上述sn2=1和sn2=2
n-k
+1的两种情况下,上述第四动态参数的值均为1,但是在sn2=2
n-k
+1之前,iv2已经溢出,因此需要更新密钥;在更新不同的密钥时,还可以更新不同的c值,以使计算的iv2的值不同,从而保证足够的随机性、保证每轮循环中iv的值不同,这样设计更加安全。
176.另外,即使上述sn2=1和sn2=2
n-k
+1的两种情况下计算的iv2的值相同,但是使用的加密密钥是不同的。
177.作为一种可选的实施方式,所述节点2/节点1计算第二初始化向量iv2之前,还包括:
178.当确定上述sn2值先溢出且所述第二动态参数即计算iv2的sn2值到达第一预设阈值时,启动密钥的更新操作;当确定上述sn2值先溢出且所述第二动态参数即计算iv2的sn2值到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥;其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于所述sn2的最大值。
179.当确定上述iv2值先溢出且所述第四动态参数即sn2%2
n-k
到达第三预设阈值时,启动密钥的更新操作;当确定上述iv2值先溢出且所述第四动态参数即sn2%2
n-k
到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥;其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于所述iv2的底阶n-k个比特位的最大值。
180.需要说明的是,上述第一预设阈值、第二预设阈值、第三预设阈值、第四预设阈值在满足上述大小范围要求的前提下,可以根据具体的实施情况设置具体的数值。例如,通常建议可将上述第一预设阈值设置为2m的90%,将上述第二预设阈值设置为2
m-1;将上述第三预设阈值设置为2
n-k
的90%,将上述第四预设阈值设置为2
n-k-1。其中,2m表示sn2能表示的最大值,2
n-k
表示iv2先溢出时iv2的底阶n-k个比特位能表示的最大值。
181.为了安全性考虑,在更换新密钥的同时也可以更换上述c值,生成新的差异化参数c的方式与图4实施例中提供的方式相同,此处不再赘述。
182.作为一种可选的实施方式,所述使用更新的新密钥作为发送数据时使用的密钥
时,还包括:
183.使用所述新的差异化参数c计算发送数据时使用的iv2。
184.(1)当确定上述sn2值先溢出且计算iv2的sn2值到达第二预设阈值时,在使用新密钥作为发送数据时使用的密钥的同时,使用所述新的差异化参数c计算发送数据时使用的初始化向量iv2;
185.(2)当确定上述iv2值先溢出且sn2%2
n-k
到达第四预设阈值时,在使用新密钥作为发送数据时使用的密钥的同时,使用所述新的差异化参数c计算发送数据时使用的初始化向量iv2。
186.作为一种可选地实施方式,在上述图4实施例和图5实施例中,节点1和节点2可以预先准备好新的c值和新密钥,在需要更新密钥和更新c值时,节点1和节点2共同从预先准备好的新密钥中选取一个新密钥作为发送数据时使用的密钥,从预先准备好的新的c值中选取一个新的c值计算发送数据时使用的初始化向量iv。
187.需要说明的是,上述图3实施例中提供的一种差异化参数c的高阶位的取值n为非零,作为另一种可选的实施方式,差异化参数c的高阶位的取值n也可以为零,这种情况下,c的取值为零,即图5实施例中,计算第二初始化向量iv2的计算方式变为:当m《=n-k时,iv2=sn2×
p+q2,p不等于1和0,q2为0或不为p的整数倍,q2与q1不同;当m》n-k时,iv2=sn2%2
n-k
×
p+q2,p不等于1和0,q2为0或不为p的整数倍,q2与q1不同。与差异化参数c的高阶位的取值n为零的情况相比,差异化参数c的高阶位的取值n为非零的情况,可以保证计算的iv2值具备更高的随机性,进而极大的增强了数据加密的安全性。
188.上述节点1和节点2之间可以通过具有封装格式的数据安全传输的方式进行通信,也可以通过不具有封装格式的数据安全传输的方式进行通信。
189.如图6所示,本发明实施例提供一种具有封装格式的数据安全传输的示意图。其中,将节点1到节点2的通信流量假设为data
1to2
,将节点2到节点1的通信流量假设为data
2to1
,将节点1和节点2共同使用的密钥假设为key。
190.上述节点1和节点2之间的数据流量交互执行如下步骤:
191.s1、通信双方配置序列号sn1和sn2长度,以及初始化sn1值和sn2值。
192.s2、节点1根据sn1长度和sn1值计算iv1值,节点2根据sn2长度和sn2值计算iv2值。
193.例如,sn1和sn2的长度均为m比特位,iv1和iv2的长度均为n比特位,差异化参数c的高阶位的长度为k比特位,其中,m、n、k为8的整数倍,取m=32bit,n=128bit,k=32bit,此时m《=n-k,说明节点1和节点2的sn值先溢出;节点1的iv1=c+sn1×
p+q1,其中p不等于1和0,q1为0或不为p的整数倍;节点2的iv2=c+sn2×
p+q2,其中,p不等于1和0,q2为0或不为p的整数倍,且q2不等于q1;
194.节点1向节点2每发送一次数据包,其sn1值递增更新,例如sn1值加1更新,当sn1值达到第一预设阈值时,启动密钥的更新操作;当sn1值达到第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥。
195.节点2向节点1每发送一次数据包,其sn2值递增更新,例如sn2值加1更新,当sn2值达到第一预设阈值时,启动密钥的更新操作;当sn2值达到第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥。
196.又例如,取m=128bit,n=64bit,k=32bit,此时m》n-k,说明节点1和节点2的iv值
先溢出;节点1的iv1=c+sn1%2
n-k
×
p+q1,其中p不等于1和0,q1为0或不为p的整数倍;节点2的iv2=c+sn2%2
n-k
×
p+q2,其中,p不等于1和0,q2为0或不为p的整数倍,且q2不等于q1;
197.节点1向节点2每发送一次数据包,其sn1值递增更新,由于iv1值比sn1值先溢出,因此当sn1%2
n-k
达到第三预设阈值时,启动密钥的更新操作;当sn1%2
n-k
达到第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥。
198.节点2向节点1每发送一次数据包,其sn2值递增更新,由于iv2值比sn2值先溢出,因此当sn2%2
n-k
达到第三预设阈值时,启动密钥的更新操作;当sn2%2
n-k
达到第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥。
199.对于上述p、q1、q2,优选p取2,q1取0,q2取-1,取值越小iv1和iv2就越不容易溢出,密钥更新频次就越少,这样性能就更好。
200.当然,上述p、q1、q2也可以根据具体的实施情况进行设置,例如可以设置p=3,q1=2,q2=1。
201.s3、根据上述计算的iv1值/iv2值与加密算法结合对通信双方的流量进行加解密处理。
202.需要说明的是,节点1和节点2通过具有封装格式的数据安全传输的方式进行通信,节点1向节点2发送data
1to2
前,节点1使用所述key和计算的iv1值,结合加密算法对data
1to2
进行加密处理,按照封装协议对加密处理之后的流量进行封装,完成后发给节点2;节点2收到节点1发送的加密流量后,在封装报文中获取sn1值,并根据自身计算的iv1值和所述key,结合加密算法对加密流量进行解密处理得到data
1to2
。
203.同样的,节点2向节点1发送data
2to1
前,节点2使用所述key和计算的iv2值,结合加密算法对data
2to1
进行加密处理,按照封装协议对加密处理之后的流量进行封装,完成后发给节点1;节点1收到节点2发送的加密流量后,在封装报文中获取sn2值,并根据自身计算的iv2值和所述key,结合加密算法对加密流量进行解密处理得到data
2to1
。
204.如图7所示,本发明实施例提供一种不具有封装格式的数据安全传输的示意图。其中,将节点1到节点2的通信流量假设为data
1to2
,将节点2到节点1的通信流量假设为data
2to1
,将节点1和节点2共同使用的密钥假设为key。
205.上述节点1和节点2之间的数据流量交互执行如下步骤:
206.s1、通信双方配置序列号sn1和sn2长度,以及初始化sn1值和sn2值。
207.s2、节点1根据sn1长度和sn1值计算iv1值,节点2根据sn2长度和sn2值计算iv2值。
208.此处的计算过程与图6实施例中的计算过程相同,不再赘述。
209.s3、根据上述计算的iv1值/iv2值与加密算法结合对通信双方的流量进行加解密处理。
210.需要说明的是,节点1和节点2通过不具有封装格式的数据安全传输的方式进行通信,节点1向节点2发送data
1to2
前,节点1使用所述key和计算的iv1值,结合加密算法对data
1to2
进行加密处理,不需要按照封装协议对加密处理之后的流量进行封装,直接将加密流量发送给节点2;节点2收到节点1发送的加密流量后,从中获取sn1值,并根据自身计算的iv1值和所述key,结合加密算法对加密流量进行解密处理得到data
1to2
。
211.同样的,节点2向节点1发送data
2to1
前,节点2使用所述key和计算的iv2值,结合加密算法对data
2to1
进行加密处理,不需要按照封装协议对加密处理之后的流量进行封装,直
接将加密流量发送给节点1;节点1收到节点2发送的加密流量后,从中获取sn2值,并根据自身计算的iv2值和所述key,结合加密算法对加密流量进行解密处理得到data
2to1
。
212.下面以通过具有封装格式的数据安全传输为例对本发明实施例进行说明,通过不具有封装格式的数据安全传输与通过具有封装格式的数据安全传输相比,除了不需要进行封装之外基本相同,之后不再赘述。
213.如图8所示,本发明实施例提供一种具有封装格式的数据安全传输的流程图,其中,以sn1比iv1先溢出且sn2比iv2先溢出为例进行说明;需要说明的是,本实施例中,在节点1和节点2进行数据安全传输之前,节点1和节点2之间已确定sn1和sn2的长度均为m,并初始化sn1值和sn2值,根据采用的加密算法,确定iv1和iv2的长度均为n;作为一种可选的实施方式,上述采用的加密算法为对称加密算法。
214.图8实施例中提供的一种具有封装格式的数据安全传输的流程包括:
215.s801、节点1将自身的序列号sn1值递增更新,将更新的sn1值作为第一动态参数。
216.s802、节点1判断第一动态参数是否到达第一预设阈值,若是,则启动密钥的更新操作,若否,则不启动密钥的更新操作;以及,判断第一动态参数是否到达第二预设阈值,若是,则将更新的新密钥作为s804中使用的密钥,若否,则仍然将当前的密钥作为s804中使用的密钥。
217.例如,第一预设阈值可以为0.9
×2m
,判断sn1值是否达到2m的90%,若是,则启动密钥的更新操作;可选的,在启动密钥的更新操作时,还可以启动差异化参数c的更新操作;例如,第二预设阈值可以为2
m-1,判断sn1值是否达到2
m-1,其中,第一预设阈值小于第二预设阈值,第二预设阈值不大于sn1的最大值。可选的,若使用更新的新密钥作为s804中使用的密钥时,还可以使用新的差异化参数c在s803中计算iv1。
218.s803、节点1将第一动态参数乘以系数p后,与差异化参数c及q1求和计算iv1。
219.例如,递增值为1,节点1将当前sn1值加1,取p=2,q1=0,利用iv1=c+sn1×
2计算iv1。
220.s804、节点1根据计算的iv1和密钥key对第一数据包加密,并按照封装协议对加密后的第一数据包进行封装后发送到节点2。
221.节点1将iv1和key做为加密算法的两个输入参数,利用上述对称加密算法对data
1to2
进行加密,即(data
1to2
)
ciphertext
=fun
encrypt
(iv1,key,data
1to2
),然后按照封装协议对(data
1to2
)
ciphertext
进行封装,完成后发给节点2。
222.需要说明的是,节点1将加密后的第一数据包发送给节点2之后,可以从s801开始再次执行相关步骤,计算新的iv1,并使用计算的iv1和密钥对后续发送给节点2的数据包进行加密。当节点1向节点2发送多个加密数据包后,若节点1的sn1值溢出,则节点1初始化sn1值后,再从s801开始执行相关步骤。
223.s805、节点2获取接收的封装后的第一数据包中的sn1值,将sn1值作为第一动态参数,将所述第一动态参数乘以所述系数p后,与差异化参数c及所述q1求和计算iv1,并利用上述iv1和上述密钥key对加密后的第一数据包进行解密。
224.节点2收到节点1的通信流量时,获取封装报文中的sn1值,利用iv1=c+sn1×
2计算iv1,将上述iv1和上述key做为加密算法的两个输入参数,利用上述对称加密算法对(data
1to2
)
ciphertext
进行解密,即(data
1to2
)
plaintext
=fun
decipher
(iv1,key,(data
1to2
)
ciphertext
)。
225.s806、节点2将自身的序列号sn2值递增更新,将更新的sn2值作为第二动态参数。
226.s807、节点2判断第二动态参数是否到达第一预设阈值,若是,则启动密钥的更新操作,若否,则不启动密钥的更新操作;以及,判断第二动态参数是否到达第二预设阈值,若是,则将更新的新密钥作为s809中使用的密钥,若否,则仍然将当前的密钥作为s809中使用的密钥。
227.例如,第一预设阈值可以为0.9
×2m
,判断sn2值是否达到2m的90%,若是,则启动密钥的更新操作;可选的,在启动密钥的更新操作时,还可以启动差异化参数c的更新操作;例如,第二预设阈值可以为2
m-1,判断sn2值是否达到2
m-1,其中,第一预设阈值小于第二预设阈值,第二预设阈值不大于sn2的最大值。可选的,使用更新的新密钥作为s809中使用的密钥时,还可以使用新的差异化参数c在s808中计算iv2。
228.s808、节点2将第二动态参数乘以系数p后,与差异化参数c及q2求和计算iv2。
229.例如,递增值为1,节点2将sn2值加1,取p=2,q2=-1,利用iv2=c+sn2×
2-1计算iv2。
230.s809、节点2根据计算的iv2和密钥key对第二数据包加密,并按照封装协议对加密后的第二数据包进行封装后发送到节点1。
231.节点2将iv2和key做为加密算法的两个输入参数,利用上述对称加密算法对data
2to1
进行加密,即(data
2to1
)
ciphertext
=fun
encrypt
(iv2,key,data
2to1
),然后按照封装协议对(data
2to1
)
ciphertext
进行封装,完成后发给节点1。
232.需要说明的是,节点2将加密后的第二数据包发送给节点1之后,可以从s806开始再次执行相关步骤,计算新的iv2,并使用计算的iv2和密钥对后续发送给节点1的数据包进行加密。当节点2向节点1发送多个加密数据包后,若节点2的sn2值溢出,则节点2初始化sn2值后,再从s806开始执行相关步骤。
233.s810、节点1获取接收的封装后的第二数据包中的sn2值,将sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与差异化参数c及所述q2求和计算iv2,并利用上述iv2和上述密钥key对加密后的第二数据包进行解密。
234.节点1收到节点2的通信流量时,获取封装报文中的sn2值,利用iv2=c+sn2×
2-1计算iv2值,将iv2和key做为加密算法的两个输入参数,利用上述对称加密算法对(data
2to1
)
ciphertext
进行解密,即(data
2to1
)
plaintext
=fun
decipher
(iv2,key,(data
2to1
)
ciphertext
)。
235.表1:本发明实施例方案与现有技术方案下sn值变化对比
[0236][0237][0238]
上述表1推演了本发明方案与现有方案下sn值变化对比情况。表1中设置sn1和sn2的长度为4比特位,即sn1和sn2的最大取值为16。其中,本发明实施例方案中的sn1和sn2初始值从1开始,假设p=2,q1=0,q2=-1,将p、q1、q2的值代入节点1和节点2的方案,可以发现sn1值和sn2值在后续每一轮处理中只需加1处理,且根据本发明实施例提供的iv计算方式,节点1根据sn1值计算的iv1和节点2根据sn2值计算的iv2都不同。
[0239]
而在现有技术方案中,为了保证两个节点使用不同的iv值,现有方案中的做法是要求sn1值和sn2值中一方为奇数(例如sn1初始值为1),另一方为偶数(例如sn2初始值为2),且在后续每一轮处理中需要对sn1值和sn2值进行加2处理,如此保证节点1计算的iv1和节点2计算的iv2不同。
[0240]
由于本发明方案使用了特有的iv计算方式,使得节点1和节点2各自的sn值可以相同,并且每一轮处理中只需将各自的sn值加1处理,从而使得本发明方案中sn1和sn2的使用
空间比现有技术中sn1和sn2的使用空间大一倍,溢出就会变慢,相应的密钥更新频次会缩小一倍,可以有效提高系统性能。
[0241]
如图9所示,本发明实施例提供另一种具有封装格式的数据安全传输的流程图,其中,以iv1比sn1先溢出且iv2比sn2先溢出为例进行说明;需要说明的是,本实施例中,在节点1和节点2进行数据安全传输之前,节点1和节点2之间已确定sn1和sn2的长度均为m,并初始化sn1值和sn2值,根据采用的加密算法,确定iv1和iv2的长度均为n;作为一种可选的实施方式,上述采用的加密算法为对称加密算法。
[0242]
图9实施例中所述具有封装格式的数据安全传输的流程包括:
[0243]
s901、节点1将自身的序列号sn1值递增更新,将更新的sn1值除以m取余得到第三动态参数。
[0244]
s902、节点1判断第三动态参数是否到达第三预设阈值,若是,则启动密钥的更新操作,若否,则不启动密钥的更新操作;以及,判断第三动态参数是否到达第四预设阈值,若是,则将更新的新密钥作为s904中使用的密钥,若否,则仍然将当前的密钥作为s904中使用的密钥。
[0245]
例如,第三预设阈值可以为0.9
×2n-k
,判断sn1%2
n-k
是否达到2
n-k
的90%,若是,则启动密钥的更新操作;可选的,在启动密钥的更新操作时,还可以启动差异化参数c的更新操作;例如,第四预设阈值可以为2
n-k-1,判断sn1%2
n-k
是否达到2
n-k-1,其中,第三预设阈值小于第四预设阈值,第四预设阈值不大于上述iv1的底阶n-k个比特位的最大值。可选的,若使用更新的新密钥作为s904中使用的密钥时,还可以使用新的差异化参数c在s903中计算iv1。
[0246]
s903、节点1将第三动态参数乘以系数p后,与差异化参数c及q1求和计算iv1。
[0247]
上述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。例如,递增值为1,节点1将当前sn1值加1,取p=2,q1=0,利用iv1=c+sn1%2
n-k
×
2计算iv1。
[0248]
s904、节点1根据计算的iv1和密钥key对第一数据包加密,并按照封装协议对加密后的第一数据包进行封装后发送到节点2。
[0249]
节点1将iv1和key做为加密算法的两个输入参数,利用上述对称加密算法对data
1to2
进行加密,即(data
1to2
)
ciphertext
=fun
encrypt
(iv1,key,data
1to2
),然后按照封装协议对(data
1to2
)
ciphertext
进行封装,完成后发给节点2。
[0250]
需要说明的是,节点1将加密后的第一数据包发送给节点2之后,可以从s901开始再次执行相关步骤,计算新的iv1,并使用计算的iv1和密钥对后续发送给节点2的数据包进行加密。当节点1向节点2发送多个加密数据包后,若节点1的sn1值溢出,则节点1初始化sn1值后,再从s901开始执行相关步骤。
[0251]
s905、节点2获取接收的封装后的第一数据包中的sn1值,将sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与差异化参数c及所述q1求和计算iv1,并利用上述iv1和上述密钥key对加密后的第一数据包进行解密。
[0252]
节点2收到节点1的通信流量时,获取封装报文中的sn1值,利用iv1=c+sn1%2
n-k
×
2计算iv1,将上述iv1和上述key做为加密算法的两个输入参数,利用上述对称加密算法对(data
1to2
)
ciphertext
进行解密,即(data
1to2
)
plaintext
=fun
decipher
(iv1,key,(data
1to2
)
ciphertext
)。
[0253]
s906、节点2将自身的序列号sn2值递增更新,将更新的sn2值除以m取余得到第四动
态参数。
[0254]
s907、节点2判断第四动态参数是否到达第三预设阈值,若是,则启动密钥的更新操作,若否,则不启动密钥的更新操作;以及,判断第四动态参数是否到达第四预设阈值,若是,则将更新的新密钥作为s909中使用的密钥,若否,则仍然将当前的密钥作为s909中使用的密钥。
[0255]
例如,第三预设阈值可以为0.9
×2n-k
,判断sn2%2
n-k
是否达到2
n-k
的90%,若是,则启动密钥的更新操作;可选的,在启动密钥的更新操作时,还可以启动差异化参数c的更新操作;例如,第四预设阈值可以为2
n-k-1,判断sn2%2
n-k
是否达到2
n-k-1,其中,第三预设阈值小于第四预设阈值,第四预设阈值不大于上述iv2的底阶n-k个比特位的最大值。可选的,若使用更新的新密钥作为s909中使用的密钥时,还可以使用新的差异化参数c在s908中计算iv2。
[0256]
s908、节点2将第四动态参数乘以系数p后,与差异化参数c及q2求和计算iv2。
[0257]
上述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。例如,递增值为1,节点2将sn2值加1,取p=2,q2=-1,利用iv2=c+sn2%2
n-k
×
2-1计算iv2。
[0258]
s909、节点2根据计算的iv2和密钥key对第二数据包加密,并按照封装协议对加密后的第二数据包进行封装后发送到节点1。
[0259]
节点2将iv2和key做为加密算法的两个输入参数,利用上述对称加密算法对data
2to1
进行加密,即(data
2to1
)
ciphertext
=fun
encrypt
(iv2,key,data
2to1
),然后按照封装协议对(data
2to1
)
ciphertext
进行封装,完成后发给节点1。
[0260]
需要说明的是,节点2将加密后的第二数据包发送给节点1之后,可以从s906开始再次执行相关步骤,计算新的iv2,并使用计算的iv2和密钥对后续发送给节点1的数据包进行加密。当节点2向节点1发送多个加密数据包后,若节点2的sn2值溢出,则节点2初始化sn2值后,再从s906开始执行相关步骤。
[0261]
s910、节点1获取接收的封装后的第二数据包中的sn2值,将sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与差异化参数c及所述q2求和计算iv2,并利用上述iv2和上述密钥key对加密后的第二数据包进行解密。
[0262]
节点1收到节点2的通信流量时,获取封装报文中的sn2值,利用iv2=c+sn2%2
n-k
×
2-1计算iv2值,将iv2和key做为加密算法的两个输入参数,利用上述对称加密算法对(data
2to1
)
ciphertext
进行解密,即(data
2to1
)
plaintext
=fun
decipher
(iv2,key,(data
2to1
)
ciphertext
)。
[0263]
如图10所示,本发明实施例提供一种数据安全传输的装置的示意图,包括:
[0264]
第一计算单元1001,用于将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1;
[0265]
第一加密单元1002,用于根据所述iv1和密钥对第一数据包加密后发送到节点2;
[0266]
第一解密单元1003,用于获取接收的第二数据包中的sn2值,对获取的sn2值进行第二数学变换计算第二初始化向量iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密;
[0267]
其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
[0268]
可选地,第一计算单元1001在计算第一初始化向量iv1之前,还包括:
[0269]
判断sn1与iv1的溢出顺序;
[0270]
确定sn1先溢出时,对更新后的sn1值进行第一数学变换计算所述iv1包括:
[0271]
将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;
[0272]
确定iv1先溢出时,对更新后的sn1值进行第一数学变换计算所述iv1包括:
[0273]
将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与所述差异化参数c及所述q1求和计算iv1;
[0274]
其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。
[0275]
可选地,第一计算单元1001判断sn1与iv1的溢出顺序,包括:
[0276]
计算iv1的长度n和所述高阶位的长度k的差值;
[0277]
若sn1的长度m不大于所述差值,确定sn1先溢出;
[0278]
若sn1的长度m大于所述差值,确定iv1先溢出。
[0279]
可选地,第一解密单元1003在计算第二初始化向量iv2之前,还包括:
[0280]
判断sn2与iv2的溢出顺序;
[0281]
确定sn2先溢出时,对获取的sn2值进行第二数学变换计算所述iv2包括:
[0282]
将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;
[0283]
确定iv2先溢出时,对获取的sn2值进行第二数学变换计算所述iv2包括:
[0284]
将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;
[0285]
其中,q2为0或不为p的整数倍,所述q1与所述q2不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。
[0286]
可选地,第一解密单元1003判断sn2与iv2的溢出顺序,包括:
[0287]
计算iv2的长度n和所述高阶位的长度k的差值;
[0288]
若sn2的长度m不大于所述差值,确定sn2先溢出;
[0289]
若sn2的长度m大于所述差值,确定iv2先溢出。
[0290]
可选地,第一计算单元1001计算第一初始化向量iv1之前,还用于:
[0291]
当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;
[0292]
当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。
[0293]
可选地,第一解密单元1003计算第二初始化向量iv2之前,还用于:
[0294]
当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操
作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;
[0295]
当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底阶n-k个比特位的最大值。
[0296]
可选地,第一计算单元1001/第一解密单元1003启动密钥的更新操作时,还用于:启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。
[0297]
可选地,第一计算单元1001/第一解密单元1003使用更新的新密钥作为发送数据时使用的密钥时,还包括:使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。
[0298]
可选地,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。
[0299]
如图11所示,本发明实施例提供另一种数据安全传输的装置的示意图,包括:
[0300]
第二解密单元1101,用于获取接收的第一数据包中的sn1值,对获取的sn1值进行第一数学变换计算第一初始化向量iv1,利用所述iv1和密钥对加密后的第一数据包进行解密;
[0301]
第二计算单元1102,用于将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2;
[0302]
第二加密单元1103,用于根据所述iv2和所述密钥对第二数据包加密后发送到节点1;
[0303]
其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。
[0304]
可选地,第二解密单元1101在计算第一初始化向量iv1之前,还包括:
[0305]
判断sn1与iv1的溢出顺序;
[0306]
确定sn1先溢出时,对获取的sn1值进行第一数学变换计算所述iv1包括:
[0307]
将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;
[0308]
确定iv1先溢出时,对获取的sn1值进行第一数学变换计算所述iv1包括:
[0309]
将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与所述差异化参数c及所述q1求和计算iv1;
[0310]
其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。
[0311]
可选地,第二解密单元1101判断sn1与iv1的溢出顺序,包括:
[0312]
计算iv1的长度n和所述高阶位的长度k的差值;
[0313]
若sn1的长度m不大于所述差值,确定sn1先溢出;
[0314]
若sn1的长度m大于所述差值,确定iv1先溢出。
[0315]
可选地,第二计算单元1102在计算第二初始化向量iv2之前,还包括:
[0316]
判断sn2与iv2的溢出顺序;
[0317]
确定sn2先溢出时,对更新后的sn2值进行第二数学变换计算所述iv2包括:
[0318]
将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;
[0319]
确定iv2先溢出时,对更新后的sn2值进行第二数学变换计算所述iv2包括:
[0320]
将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;
[0321]
其中,q2为0或不为p的整数倍,所述q1与所述q2不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。
[0322]
可选地,第二计算单元1102判断sn2与iv2的溢出顺序,包括:
[0323]
计算iv2的长度n和所述高阶位的长度k的差值;
[0324]
若sn2的长度m不大于所述差值,确定sn2先溢出;
[0325]
若sn2的长度m大于所述差值,确定iv2先溢出。
[0326]
可选地,第二解密单元1101计算第一初始化向量iv1之前,还用于:
[0327]
当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;
[0328]
当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。
[0329]
可选地,第二计算单元1102计算第二初始化向量iv2之前,还用于:
[0330]
当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;
[0331]
当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底阶n-k个比特位的最大值。
[0332]
可选地,第二解密单元1101/第二计算单元1102启动密钥的更新操作时,还用于:启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。
[0333]
可选地,第二解密单元1101/第二计算单元1102使用更新的新密钥作为发送数据时使用的密钥时,还用于:使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。
[0334]
可选地,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。
[0335]
如图12所示,本发明实施例提供一种数据安全传输的设备1200的示意图,包括存
储器1201和处理器1202,其中:
[0336]
存储器1201用于存储计算机程序;处理器1202用于读取存储器1201中的程序并执行上述实施例中提供的数据安全传输的方法的步骤。
[0337]
本发明还提供一种计算机程序介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例中提供的数据安全传输的方法的步骤。
[0338]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0339]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0340]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0341]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0342]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0343]
以上对本技术所提供的技术方案进行了详细介绍,本技术中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
[0344]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0345]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0346]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0347]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0348]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种数据安全传输的方法,其特征在于,包括:节点1将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1;所述节点1根据所述iv1和密钥对第一数据包加密后发送到节点2;所述节点2获取接收的第一数据包中的sn1值,对获取的sn1值进行所述第一数学变换计算所述iv1,利用所述iv1和所述密钥对加密后的第一数据包进行解密;所述节点2将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2;所述节点2根据所述iv2和所述密钥对第二数据包加密后发送到所述节点1;所述节点1获取接收的第二数据包中的sn2值,对获取的sn2值进行所述第二数学变换计算所述iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密;其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。2.根据权利要求1所述的方法,其特征在于,所述节点1/所述节点2在计算第一初始化向量iv1之前,还包括:判断sn1与iv1的溢出顺序;确定sn1先溢出时,对更新后的/获取的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;确定iv1先溢出时,对更新后的/获取的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与所述差异化参数c及所述q1求和计算iv1;其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。3.根据权利要求2所述的方法,其特征在于,所述判断sn1与iv1的溢出顺序,包括:计算iv1的长度n和所述高阶位的长度k的差值;若sn1的长度m不大于所述差值,确定sn1先溢出;若sn1的长度m大于所述差值,确定iv1先溢出。4.根据权利要求2所述的方法,其特征在于,所述节点2/所述节点1在计算第二初始化向量iv2之前,还包括:判断sn2与iv2的溢出顺序;确定sn2先溢出时,对更新后的/获取的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;确定iv2先溢出时,对更新后的/获取的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;其中,q2为0或不为p的整数倍,所述q2与所述q1不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。
5.根据权利要求4所述的方法,其特征在于,所述判断sn2与iv2的溢出顺序,包括:计算iv2的长度n和所述高阶位的长度k的差值;若sn2的长度m不大于所述差值,确定sn2先溢出;若sn2的长度m大于所述差值,确定iv2先溢出。6.根据权利要求2所述的方法,其特征在于,所述节点1/所述节点2在计算第一初始化向量iv1之前,还包括:当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。7.根据权利要求4所述的方法,其特征在于,所述节点2/所述节点1在计算第二初始化向量iv2之前,还包括:当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底阶n-k个比特位的最大值。8.根据权利要求6或7所述的方法,其特征在于,在所述启动密钥的更新操作时,还包括:启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。9.根据权利要求8所述的方法,其特征在于,在使用更新的新密钥作为发送数据时使用的密钥时,还包括:使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。10.根据权利要求4所述的方法,其特征在于,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。11.一种数据安全传输的设备,其特征在于,包括存储器和处理器,其中:所述存储器用于存储计算机程序;所述处理器用于读取所述存储器中的程序并执行权利要求1~10任一所述数据安全传输的方法。12.一种数据安全传输的装置,其特征在于,包括:第一计算单元,用于将自身初始化的序列号sn1值递增更新,对更新后的sn1值进行第一数学变换计算第一初始化向量iv1;第一加密单元,用于根据所述iv1和密钥对第一数据包加密后发送到节点2;
第一解密单元,用于获取接收的第二数据包中的sn2值,对获取的sn2值进行第二数学变换计算第二初始化向量iv2,利用所述iv2和所述密钥对加密后的第二数据包进行解密;其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。13.根据权利要求12所述的装置,其特征在于,所述第一计算单元在计算第一初始化向量iv1之前,还包括:判断sn1与iv1的溢出顺序;确定sn1先溢出时,对更新后的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;确定iv1先溢出时,对更新后的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p后,与所述差异化参数c及所述q1求和计算iv1;其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。14.根据权利要求13所述的装置,其特征在于,所述第一计算单元判断sn1与iv1的溢出顺序,包括:计算iv1的长度n和所述高阶位的长度k的差值;若sn1的长度m不大于所述差值,确定sn1先溢出;若sn1的长度m大于所述差值,确定iv1先溢出。15.根据权利要求13所述的装置,其特征在于,所述第一解密单元在计算第二初始化向量iv2之前,还包括:判断sn2与iv2的溢出顺序;确定sn2先溢出时,对获取的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;确定iv2先溢出时,对获取的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;其中,q2为0或不为p的整数倍,所述q2与所述q1不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。16.根据权利要求15所述的装置,其特征在于,所述第一解密单元判断sn2与iv2的溢出顺序,包括:计算iv2的长度n和所述高阶位的长度k的差值;若sn2的长度m不大于所述差值,确定sn2先溢出;若sn2的长度m大于所述差值,确定iv2先溢出。17.根据权利要求13所述的装置,其特征在于,所述第一计算单元计算第一初始化向量iv1之前,还用于:当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在
所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。18.根据权利要求15所述的装置,其特征在于,所述第一解密单元计算第二初始化向量iv2之前,还用于:当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底阶n-k个比特位的最大值。19.根据权利要求17或18所述的装置,其特征在于,所述第一计算单元/第一解密单元启动密钥的更新操作时,还用于:启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。20.根据权利要求19所述的装置,其特征在于,所述第一计算单元/第一解密单元使用更新的新密钥作为发送数据时使用的密钥时,还包括:使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。21.根据权利要求15所述的装置,其特征在于,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。22.一种数据安全传输的装置,其特征在于,包括:第二解密单元,用于获取接收的第一数据包中的sn1值,对获取的sn1值进行第一数学变换计算第一初始化向量iv1,利用所述iv1和密钥对加密后的第一数据包进行解密;第二计算单元,用于将自身初始化的序列号sn2值递增更新,对更新后的sn2值进行第二数学变换计算第二初始化向量iv2;第二加密单元,用于根据所述iv2和所述密钥对第二数据包加密后发送到节点1;其中,所述第一数学变换与所述第二数学变换使得计算出的所述iv1与所述iv2不相等。23.根据权利要求22所述的装置,其特征在于,所述第二解密单元在计算第一初始化向量iv1之前,还包括:判断sn1与iv1的溢出顺序;确定sn1先溢出时,对获取的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值作为第一动态参数,将所述第一动态参数乘以系数p后,与差异化参数c及第一参数q1求和计算iv1;确定iv1先溢出时,对获取的sn1值进行第一数学变换计算所述iv1包括:将计算iv1的sn1值除以m取余得到第三动态参数,将所述第三动态参数乘以所述系数p
后,与所述差异化参数c及所述q1求和计算iv1;其中,p不等于1和0,q1为0或不为p的整数倍;所述c的长度与iv1的长度n相等,所述c包括k个比特位的高阶位和n-k个比特位的低阶位,低阶位的取值为零,所述m为iv1先溢出时iv1的底阶n-k个比特位的最大值2
n-k
。24.根据权利要求23所述的装置,其特征在于,所述第二解密单元判断sn1与iv1的溢出顺序,包括:计算iv1的长度n和所述高阶位的长度k的差值;若sn1的长度m不大于所述差值,确定sn1先溢出;若sn1的长度m大于所述差值,确定iv1先溢出。25.根据权利要求23所述的装置,其特征在于,所述第二计算单元在计算第二初始化向量iv2之前,还包括:判断sn2与iv2的溢出顺序;确定sn2先溢出时,对更新后的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值作为第二动态参数,将所述第二动态参数乘以所述系数p后,与所述差异化参数c及第二参数q2求和计算iv2;确定iv2先溢出时,对更新后的sn2值进行第二数学变换计算所述iv2包括:将计算iv2的sn2值除以m取余得到第四动态参数,将所述第四动态参数乘以所述系数p后,与所述差异化参数c及所述q2求和计算iv2;其中,q2为0或不为p的整数倍,所述q2与所述q1不同;所述c的长度与iv2的长度n相等,所述m为iv2先溢出时iv2的底阶n-k个比特位的最大值2
n-k
。26.根据权利要求25所述的装置,其特征在于,所述第二计算单元判断sn2与iv2的溢出顺序,包括:计算iv2的长度n和所述高阶位的长度k的差值;若sn2的长度m不大于所述差值,确定sn2先溢出;若sn2的长度m大于所述差值,确定iv2先溢出。27.根据权利要求23所述的装置,其特征在于,所述第二解密单元计算第一初始化向量iv1之前,还用于:当确定sn1先溢出且所述第一动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第一动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn1的最大值;当确定iv1先溢出且所述第三动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第三动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv1的底阶n-k个比特位的最大值。28.根据权利要求25所述的装置,其特征在于,所述第二计算单元计算第二初始化向量iv2之前,还用于:当确定sn2先溢出且所述第二动态参数到达第一预设阈值时,启动密钥的更新操作,在所述第二动态参数到达第二预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第一预设阈值小于所述第二预设阈值,所述第二预设阈值不大于sn2的最大值;
当确定iv2先溢出且所述第四动态参数到达第三预设阈值时,启动密钥的更新操作,在所述第四动态参数到达第四预设阈值时,使用更新的新密钥作为发送数据时使用的密钥,其中,所述第三预设阈值小于所述第四预设阈值,所述第四预设阈值不大于iv2的底阶n-k个比特位的最大值。29.根据权利要求27或28所述的装置,其特征在于,所述第二解密单元/第二计算单元启动密钥的更新操作时,还用于:启动所述高阶位的比特位数k的新取值的计算操作,以生成新的差异化参数c;或,启动所述k个比特位的高阶位的新取值n的计算操作,以生成新的差异化参数c。30.根据权利要求29所述的装置,其特征在于,所述第二解密单元/第二计算单元使用更新的新密钥作为发送数据时使用的密钥时,还用于:使用所述新的差异化参数c计算发送数据时使用的初始化向量iv。31.根据权利要求25所述的装置,其特征在于,所述p取2,所述q1取0,所述q2取-1,所述c取一个随机数。32.一种计算机程序介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1~10任一所述数据安全传输的方法的步骤。
技术总结
本发明提供一种数据安全传输的方法和装置及设备,该方法包括:节点1将SN1值递增更新,对更新后的SN1值进行第一数学变换计算IV1,根据IV1和密钥对第一数据包加密后发送到节点2;节点2获取第一数据包中的SN1值,对获取的SN1值进行所述第一数学变换计算IV1,利用IV1和密钥进行解密;节点2将SN2值递增更新,对更新后的SN2值进行第二数学变换计算IV2,根据IV2和密钥对第二数据包加密后发送到节点1;节点1获取第二数据包中的SN2值,对获取的SN2值进行所述第二数学变换计算IV2,利用IV2和密钥进行解密。本发明通过双向SA实现两个节点之间的数据安全传输,减少所需资源。减少所需资源。减少所需资源。
技术研发人员:郭金发 李琴 樊绿林
受保护的技术使用者:西安西电捷通无线网络通信股份有限公司
技术研发日:2022.01.05
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
