一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据加密传输方法

2022-05-18 06:10:56 来源:中国专利 TAG:


1.本发明涉及数据加密技术领域,具体为一种数据加密传输方法。


背景技术:

2.随着社会信息化和网络化的迅速发展,数据呈爆炸式增长。企业、金融机构甚至政府机关每天都需要面对成指数增长的数据。这些数据中存在一些比较敏感的信息,如个人隐私、商业机密等,如果这些信息泄露并被不法分子利用,其危害将是不可估量的,不仅有可能造成财产损失,也可能会对个人的生活、企业的名誉乃至国家的安全造成严重的影响。同时,随着云计算技术与云平台的发展,很多企业、金融机构、政府机关都将自己的数据托管于专业的数据存储计算平台,这为数据安全带来了极大的挑战。
3.常用的数据加密算法及使用方法如下:1)非对称密码算法支持军用椭圆曲线密码算法、sm2椭圆曲线密码算法或密码主管部门批准的其它素域、二元域的非对称算法。该算法用于实体验证、数字签名和数字信封等。2)对称密码算法支持军用分组密码算法、sm4分组密码算法或密码主管部门批准的其它分组密码算法,该算法用于密钥交换数据的加密保护和报文数据的加密保护,算法工作模式使用cbc模式。3)密码杂凑算法支持军用杂凑算法、sm3杂凑算法或密码主管部门批准的其它密码杂凑算法,该算法用于完整性校验。4)生成的随机数应能通过gm/t 0005规定的检测。现有的信息传输系统中往往采用上述算法中的一种,并根据加密算法确定一个统一的数据传输协议,不法分子通过截获数据流量,然后对其中的固定特征进行分析,从而可以确定当前的数据流量是采用哪种协议进行传输的。进一步地,不法分子会根据确定出的协议,对该数据流量有针对性地进行盗取或者篡改,这样会危及用户的信息安全。因此,目前亟需一种能够提高数据流量安全性的方法。
4.为实现信息传输的真实性、机密性、完整性,同时尽可能不改变现有的网络拓扑结构,本发明所述密钥交换、加密等信息安全措施在网络层实现,仅对应用数据进行处理。本发明综合了ipsec、ssl等协议的优点,设计了数据封装、密钥交换和加密传输等方法,以实现安全、高效的信息处理。


技术实现要素:

5.本发明的目的在于提供一种数据加密传输方法,其特征在于,包括以下步骤:
6.步骤一:数据加密:采用一包一密的方式,通过cbc模式对原ip头、tcp/udp首部、数据、ep尾部进行数据加密。
7.步骤二:数据封装;使用隧道模式,通过对原始报文数据进行填充、添加ep包尾、加密、添加ep包头、添加认证数据等步骤将原始报文封装成ep载荷。
8.步骤三:密钥交换-密钥协商;具体包括以下步骤:
9.步骤a:密钥交换过程中的第一条消息,用于通知响应方,发起方向对方发送本方采用的协议版本、发起方随机数、支持的密码算法套件,协议版本在ep头中表示,发送方保存发起方随机数random_i;
10.步骤b:在接收到发起方的消息后,响应方首先判断是否支持该版本协议,如果不支持将发送一条告警信息给发起方,否则从消息中选择一种密码套件。响应方生成32字节随机数,生成规则同发起方随机数生成规则。响应方发送32字节随机数、选择的密码套件、响应方证书长度、响应方证书给发起方;响应方需保存发起方随机数random_i及响应方随机数random_r;
11.步骤c:发起方在收到响应方的证书信息后,对证书进行认证,确认证书有效后,产生32字节随机数作为premaster secret,发起方保存此premaster secret,并用响应方数字证书中的公钥pub_r加密premaster secret,将asymmetric_encrypt(premaster secret,pub_r)、发起方的证书长度、发起方证书发送给响应方;
12.步骤d:响应方收到发起方证书后,对发起方证书进行认证,认证不通过终止协商流程,并向发起方发出告警信息,认证通过,响应方使用自己的私钥解密加密后的premaster secret,获取premaster secret并保存,响应方向发起放发送协商完成载荷,载荷数据内容为4字节0x02;
13.步骤四:密钥交换-密钥生成;参与通信的双方根据获得的random_i、random_r和premaster secret计算主密钥master secret,并生成后续密钥skeyid_d、skeyid_a、skeyid_e;
14.步骤五:密钥交换-密钥验证;通信双方使用前期得到的密钥进行密码运算,以确定对方身份并验证获取的密码算法、密钥的正确性;收到对方的认证数据后与本方认证进行比较,认证一致密钥交换完成,sa建立;否则sa建立失败;
15.步骤六:数据传输;将原始报文数据封装成ep载荷数据进行传输,封装数据时对数据进行加密及认证处理,确保数据的真实性、机密性和完整性;
16.步骤七:注销协商;通信完成或达到密钥更新条件时注销协商。
17.优选的,还包括告警程序;在密钥交换及后续过程中出现无法继续进行处理的载荷或出现错误时将向对方发送告警信息,对于不同类型的错误均赋给一个告警类型指及相应的告警值,所述告警值υ,则1≤υ≤16383。
18.优选的,所述步骤八中数据传输过程包括出站报文处理和入站报文处理;
19.其中出站报文处理包括以下步骤:
20.步骤a:查找sa;通过mac来绑定sa,在密钥交换时将协商形成的sa相关信息以双方mac作为索引,建立sa列表;
21.步骤b:封装;将整个应用数据报封装到ep载荷字段中,生成ep头;
22.步骤c:产生序列号;当建立一个sa时,发送方的序列号计数器初始化为0,每发送一个包之前,该计数器加1,并把这个计数器值插入到ep尾部包id字段,当该计数器计数达到最大值是,该sa生命周期结束,应重新生成新的sa;
23.步骤d:加密报文;用由sa指定的密钥、加密算法、和iv进行加密,加密采用cbc模式,加密范围包括载荷数据、ep尾部;
24.步骤e:计算完整性校验值;对ep头、原数据、ep尾计算icv,icv=prf(skeyid_a,ep头部|ep数据域|ep尾部),将icv填入ep认证区域;
25.步骤f:分片,一个ep处理之后,会造成数据包长度变化,应根据实际数据修改上一层报头。如果发现ip数据报文长度超过输出接口的mtu值,则对处理后的数据报文进行分
片;
26.入站报文处理包括以下步骤:
27.步骤g:重组;如果需要,在ep处理之前要进行ip数据报文重组;ep不处理分片报文,如果提供给esp处理的一个报文是一个分片的ip数据报文,接收方应丢弃该报文;
28.步骤h:查找sa;当收到一个包含ep头的报文时,接收方应根据双方mac地址来查找sa,查找失败则丢弃该报文;
29.步骤i:验证序列号;收到报文后应检测random_id,如果random_id与之前收到数据包相同,则可能是重放包。记录重复次数,进行后续操作,如重复次数大于3次,则认为可能存在重放攻击,丢弃收到的数据包,否则继续后续流程;
30.步骤j:验证完整性校验值;接收方采用指定的完整性校验算法对报文计算icv,计算方法和参与计算的内容与出站报文计算方法一致,计算的结果与报文中的icv进行比较;如果一致,则认为接收到的数据报文是有效的,否则接收方应将收到的数据报文丢弃;
31.步骤k:解密报文;使用sa指定的密钥、加密算法、算法模式和iv,对接收报文的加密部分进行解密,根据解密后报文中的填充长度和填充数据及ep尾部相关信息进行判断是否解密成功,如解密失败则丢弃该报文;
32.步骤l:验证序列号;在sa建立时,接收方序列号计数器应初始化为0,对于每个接收到的报文,接收方应确认报包含一个序列号,并且该序列号在这个sa生命期中不重复任何已接收的其他报文的序列号,否则应丢弃该报文;
33.步骤m:重构;对解密成功的报文,去掉ep首部、ep尾部等信息,重构原始数据报文。
34.优选的,还包括密钥更机制:根据时间周期和报文流量两种条件进行sa的更新,当时间大于8h或流量达到2
10
(按每报文1024字节计算)
×232
(对应于32比特的抗重放序列号)字节时应重新进行密钥交换过程,建立新的sa。
35.优选的,还包括抗重放攻击机制:使用封装数据包包头中的随机数和包尾中的id来区别每一个数据包,当包头随机数重复大于3次或包尾id重复则认为存在重放攻击,对收到的数据包作丢弃处理。
36.与现有技术相比,本发明的有益效果是:
37.该数据加密传输方法为实现信息传输的真实性、机密性、完整性,在尽可能不改变现有的网络拓扑结构,将密钥交换、加密等信息安全措施在网络层实现,仅对应用数据进行处理。本发明综合了ipsec、ssl等协议的优点,设计了数据封装、密钥交换和加密传输等方法,以实现安全、高效的信息处理,数据处理性能较传统vpn高。采用包头随机数和包id双因子来进行抗重放判别,效率较传统抗重放攻击方法大大提高。
附图说明
38.图1为本发明的密钥交换流程图;
39.图2为本发明的封装数据帧结构图;
40.图3为本发明的告警类型表;
41.图4为本发明出站报文处理流程;
42.图5为本发明入站报文处理流程。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.请参阅图1-2,本发明提供一种数据加密传输方法:包括以下步骤:
45.步骤一:数据加密:采用一包一密的方式,通过cbc模式对原ip头、tcp/udp首部、数据、ep尾部进行数据加密。
46.步骤二:数据封装;如图2所示,使用隧道模式,通过对原始报文数据进行填充、添加ep包尾、加密、添加ep包头、添加认证数据等步骤将原始报文封装成ep载荷。
47.步骤三:密钥交换-密钥协商:响应方收到发起方证书后,对发起方证书进行认证,认证不通过终止协商流程,并向发起方发出告警信息,认证通过,响应方使用自己的私钥解密加密后的premaster secret,获取premaster secret并保存,响应方向发起放发送协商完成载荷,载荷数据内容为4字节0x02;
48.步骤四:密钥交换-密钥生成;参与通信的双方根据获得的random_i、random_r和premaster secret计算主密钥master secret,并生成后续密钥skeyid_d、skeyid_a、skeyid_e;
49.步骤五:密钥验证;通信双方使用前期得到的密钥进行密码运算,以确定对方身份并验证获取的密码算法、密钥的正确性;收到对方的认证数据后与本方认证进行比较,认证一致密钥交换完成,sa建立;否则sa建立失败;
50.步骤六:数据传输;将原始报文数据封装成ep载荷数据进行传输。封装数据时对数据进行加密及认证处理,确保数据的真实性、机密性和完整性。
51.步骤七:注销协商;通信完成或达到密钥更新条件时注销协商。
52.其中,步骤一:数据加密使用国家密码管理主管部门批准的非对称密码算法、对称密码算法、密码杂凑算法和随机数生成算法。
53.算法及使用方法如下:
54.——非对称密码算法支持军用椭圆曲线密码算法、sm2椭圆曲线密码算法或密码主管部门批准的其它素域、二元域的非对称算法,不推荐使用rsa等国际通用算法。该算法用于实体验证、数字签名和数字信封等。
55.——对称密码算法支持军用分组密码算法、sm4分组密码算法或密码主管部门批准的其它分组密码算法,不推荐使用aes、des等国际通用算法。该算法用于密钥交换数据的加密保护和报文数据的加密保护,算法工作模式使用cbc模式。
56.——密码杂凑算法支持军用杂凑算法、sm3杂凑算法或密码主管部门批准的其它密码杂凑算法,不推荐使用md5等已被破解的杂凑算法。该算法用于完整性校验。
57.——随机数采用2颗或以上硬件噪声源产生的真随机数进行异或其它处理后进行检验,生成的随机数应能通过gm/t 0005规定的检测。
58.传输过程使用下列密钥:
59.——设备密钥:非对称算法使用的公私钥对。
60.——预主密钥:在密钥交换过程获得的随机数,用以计算主密钥。
61.——主密钥:通过预主密钥计算得到,用于计算会话密钥。
62.——会话密钥:用于数据报文及报文mac的加密;
63.支持对tcp、udp协议报文进行处理,其它报文不做处理。传统的ipsec vpn封装数据分为传输模式和隧道模式,传输模式主要用于拨号网络,本发明的应用场景基本不使用拨号网络,故均采用类似的隧道模式进行数据封装。本发明采用封装载荷ep(encapsulating payload)封装数据,分为普通封装载荷和安全封装载荷。普通封装载荷由ep头和原ip包数据组成,主要用于密钥协商、告警等信息。
64.请参阅图1,密钥交换流程如下:
65.传统的ipsec vpn密钥交换分为两个阶段,第一阶段密钥交换形成ike sa,第二阶段密钥交换形成ipsec sa,本发明对密钥交换进行了适度优化,减少交换步骤,通过一个阶段完成密钥交换形成sa,并生成主密钥master secret、skeyid_d、skeyid_a、skeyid_e等密钥。
66.因减少了传统ipsec vpn密钥交换第二阶段的过程,为降低数据加密密钥时使用的会话密钥与第一阶段生成密钥的关联性,我们在计算会话密钥时引入与数据包相关的随机成分,实现一包一密,确保数据安全。
67.密钥交换分为密钥协商、密钥生成、密钥验证三个部分;
68.密钥协商:步骤1:密钥交换过程中的第一条消息,用于通知响应方,发起方向对方发送本方采用的协议版本、发起方随机数、支持的密码算法套件。协议版本在ep头中表示。发送方应保存发起方随机数random_i。
69.发起方随机数:由4字节时间戳和28字节随机数串接形成;
70.步骤2:在接收到发起方的消息后,响应方首先判断是否支持该版本协议,如果不支持将发送一条告警信息给发起方,否则从消息中选择一种密码套件。响应方生成32字节随机数,生成规则同发起方随机数生成规则。响应方发送32字节随机数、选择的密码套件、响应方证书长度、响应方证书给发起方。响应方需保存发起方随机数random_i及响应方随机数random_r;
71.步骤3:发起方在收到响应方的证书信息后,对证书进行认证,确认证书有效后,产生32字节随机数作为premaster secret,发起方保存此premaster secret,并用响应方数字证书中的公钥pub_r加密premaster secret,加密使用的算法为步骤2中选定密码套件中的算法。将asymmetric_encrypt(premaster secret,pub_r)、发起方的证书长度、发起方证书发送给响应方;
72.步骤4:响应方收到发起方证书后,对发起方证书进行认证,认证不通过终止协商流程,并向发起方发出如图3所示的告警信息。认证通过,响应方使用自己的私钥解密加密后的premaster secret,获取premaster secret,并保存,响应方向发起放发送协商完成载荷,载荷数据内容为4字节0x02。
73.密钥生成:步骤4完成后,参与通信的双方根据获得的random_i、random_r和premaster secret计算主密钥master secret,并生成后续密钥skeyid_d、skeyid_a、skeyid_e。
74.计算方法分别如下:
75.master secret=prf(premaster secret,hash(

a’|random_i|random_r)|hash
(

bb’|random_i|random_r)|hash(

ccc’|random_i|random_r))
76.skeyid_d=prf(master secret,random_i|random_r|0x00)
77.skeyid_a=prf(master secret,skeyid_d|0x01)
78.skeyid_e=prf(master secret,skeyid_a|0x02)
79.skeyid_d用于计算初始向量iv。skeyid_e用来保护消息的机密性。skeyid_a用来验证消息完整性以及数据源身份。
80.iv=prf(skeyid_d,random_id)
81.所有skeyid的长度都由prf函数的输出长度决定。如果prf函数的输出长度太短,不能作为一个密钥来使用,则skeyid_e应进行扩展。例如,hmac hash的一个prf可产生128比特的输出,但密码算法要求用到大于128比特的密钥的时候,skeyid_e就需要利用反馈及连接方法加以扩展,直到满足对密钥长度的要求为止。反馈及连接方法如下:
82.k=k1|k2|k3

83.k1=prf(skeyid_e,0)
84.k2=prf(skeyid_e,k1)
85.k3=prf(skeyid_e,k2)
86....
87.最后从k的起始位置开始取密码算法的密钥所需要的位数。
88.该阶段通信双方使用前期得到的密钥进行密码运算,以确定对方身份并验证获取的密码算法、密钥的正确性。
89.步骤5:通信双方使用密钥协商阶段确定的算法套件对密钥生成阶段得到的密钥进行认证。
90.收到对方的认证数据后与本方认证进行比较,认证一致密钥交换完成,sa建立。否则sa建立失败。
91.sa建立后当达到密钥更新条件或不再需要时可注销协商。
92.密钥交换及后续过程中出现无法继续进行处理的载荷或出现错误时将向对方发送告警信息,告警信息载荷如图2所示。
93.加密采用一包一密的方式,加密算法采用密钥协商阶段确定的加密算法,加密模式采用cbc模式。
94.加密密钥使用会话密钥session_key,其计算公式如下:
95.session_key=prf(skeyid_e,random_id|skeyid_e|

a’)
96.初始向量iv计算公式如下:
97.iv=prf(skeyid_d,random_id|skeyid_d|

ab’)。
98.如图4所示,其中出站报文处理包括以下步骤:
99.步骤a:查找sa;通过mac来绑定sa,在密钥交换时将协商形成的sa相关信息以双方mac作为索引,建立sa列表;
100.步骤b:封装;将整个应用数据报封装到ep载荷字段中,生成ep头;
101.步骤c:产生序列号;当建立一个sa时,发送方的序列号计数器初始化为0,每发送一个包之前,该计数器加1,并把这个计数器值插入到ep尾部包id字段,当该计数器计数达到最大值是,该sa生命周期结束,应重新生成新的sa;
102.步骤d:加密报文;用由sa指定的密钥、加密算法、和iv进行加密,加密采用cbc模式,加密范围包括载荷数据、ep尾部;
103.步骤e:计算完整性校验值;对ep头、原数据、ep尾计算icv,icv=prf(skeyid_a,ep头部|ep数据域|ep尾部),将icv填入ep认证区域;
104.步骤f:分片,一个ep处理之后,会造成数据包长度变化,应根据实际数据修改上一层报头。如果发现ip数据报文长度超过输出接口的mtu值,则对处理后的数据报文进行分片;
105.如图5所示,入站报文处理包括以下步骤:
106.步骤g:重组;如果需要,在ep处理之前要进行ip数据报文重组;ep不处理分片报文,如果提供给esp处理的一个报文是一个分片的ip数据报文,接收方应丢弃该报文;
107.步骤h:查找sa;当收到一个包含ep头的报文时,接收方应根据双方mac地址来查找sa,查找失败则丢弃该报文;
108.步骤i:验证序列号;收到报文后应检测random_id,如果random_id与之前收到数据包相同,则可能是重放包。记录重复次数,进行后续操作,如重复次数大于3次,则认为可能存在重放攻击,丢弃收到的数据包,否则继续后续流程;
109.步骤j:验证完整性校验值;接收方采用指定的完整性校验算法对报文计算icv,计算方法和参与计算的内容与出站报文计算方法一致,计算的结果与报文中的icv进行比较;如果一致,则认为接收到的数据报文是有效的,否则接收方应将收到的数据报文丢弃;
110.步骤k:解密报文;使用sa指定的密钥、加密算法、算法模式和iv,对接收报文的加密部分进行解密,根据解密后报文中的填充长度和填充数据及ep尾部相关信息进行判断是否解密成功,如解密失败则丢弃该报文;
111.步骤l:验证序列号;在sa建立时,接收方序列号计数器应初始化为0,对于每个接收到的报文,接收方应确认报包含一个序列号,并且该序列号在这个sa生命期中不重复任何已接收的其他报文的序列号,否则应丢弃该报文;
112.步骤m:重构;对解密成功的报文,去掉ep首部、ep尾部等信息,重构原始数据报文。
113.优选的,还包括密钥更机制:根据时间周期和报文流量两种条件进行sa的更新,当时间大于8h或流量达到2
10
(按每报文1024字节计算)
×232
(对应于32比特的抗重放序列号)字节时应重新进行密钥交换过程,建立新的sa。
114.优选的,还包括抗重放攻击机制:使用封装数据包包头中的随机数和包尾中的id来区别每一个数据包,当包头随机数重复大于3次或包尾id重复则认为存在重放攻击,对收到的数据包作丢弃处理。
115.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献