一种通信加密方法及装置、设备、存储介质与流程

未命名 07-23 阅读:86 评论:0


1.本技术实施例属于通信安全领域,尤其涉及数据采集及控制过程中数据信息的安全交互。


背景技术:

2.随着5g技术的快速发展,数据采集和数据信息的交互越来越多,通信的安全风险也随之增大,为防止通信数据被截获、篡改和重放,必须对通信数据进行加密。同步序列加密是常见的一种通信加密方法,但是在同步序列加密过程中存在增删容错性差、同步开销大的问题。


技术实现要素:

3.有鉴于此,本技术实施例提供一种通信加密方法及装置、设备、存储介质。
4.本技术实施例的技术方案是这样实现的:
5.第一方面、本技术实施例提供一种通信加密方法,应用于第一客户端,所述方法包括:获取消息明文;从第一加密密钥池中获取加密密钥;其中,所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密得到的;利用所述加密密钥对所述消息明文进行加密,得到消息密文;其中,所述消息密文带有所述密钥id;向第二客户端发送所述消息密文。
6.第二方面、本技术实施例提供一种通信加密方法,应用于服务端,所述方法包括:生成合成密钥明文;所述合成密钥明文包括映射参数和加密密钥,所述映射参数位于所述加密密钥的前面,用于对所述加密密钥进行变换;从第二自映射密钥池中获取第二自映射密钥;其中,所述第二自映射密钥带有密钥id且与所述加密密钥无相关性;利用所述第二自映射密钥对所述合成密钥明文进行加密,得到合成密钥;其中,所述合成密钥带有所述第二自映射密钥的密钥id;向第一客户端和第二客户端同步发送所述合成密钥。
7.第三方面、本技术实施例提供一种通信加密方法,应用于第二客户端,所述方法包括:获取消息密文;从第三加密密钥池中获取加密密钥;其中所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第三自映射密钥池中带有相同密钥id的自映射密钥进行解密得到的;利用所述加密密钥对所述消息密文进行解密,得到消息明文。
8.本技术实施例提供的技术方案带来的有益效果至少包括:
9.在本技术实施例中,首先采用带有密钥id的自映射密钥对加密密钥进行加密,并采用带有相同密钥id的自映射密钥进行解密;其次,采用带有密钥id的加密密钥对消息明文进行加密,得到消息密文,其中,所述消息密文带有所述密钥id;最后向第二客户端发送所述消息密文。这样,采用带有密钥id的自映射密钥对加密密钥进行加密和解密,提高了系统的增删容错性,而且使得密钥在数据传输过程中无法进行推导破解,为流数据的传输提供了较高的安全保障;此外,通过带有密钥id的加密密钥对消息明文进行加密,使得客户端不需要进行序列同步,减少了同步操作所带来的系统开销大的问题。
附图说明
10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
11.图1a为本技术实施例提供的一种通信加密系统的可选网络架构示意图;
12.图1b为本技术实施例提供的一种通信加密方法的实现流程示意图;
13.图1c为本技术实施例提供的一种通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密的方法的实现流程示意图;
14.图1d为本技术实施例提供的一种生成自映射密钥的方法的实现流程示意图;
15.图2a为本技术实施例提供的一种通信加密方法的实现流程示意图;
16.图2b为本技术实施例提供的一种服务端向客户端同步发送合成密钥的方法的实现流程示意图;
17.图3为本技术实施例提供的一种通信加密方法的实现流程示意图;
18.图4为本技术实施例提供的一种同步序列加密方法的实现流程示意图;
19.图5a为本技术实施例提供的一种密钥派生服务模块的框架结构示意图;
20.图5b为本技术实施例提供的一种客户端同步加密模块的框架结构示意图;
21.图6为本技术实施例提供的一种自映射密钥的生成方法的实现流程示意图;
22.图7a为为本技术实施例提供的一种合成密钥的生成方法的实现流程示意图;
23.图7b为为本技术实施例提供的一种合成密钥同步分配到客户端的方法的实现流程示意图;
24.图8为为本技术实施例提供的一种客户端对合成密钥密文进行解密,并提取加密密钥和自映射密钥的方法的实现流程示意图;
25.图9a为本技术实施例提供的一种第一客户端对明文信息进行加密并发送给已配对的第二客户端合成密钥的方法的实现流程示意图;
26.图9b为本技术实施例提供的一种第二客户端对消息密文进行解密的方法的实现流程示意图;
27.图10为本技术实施例提供的一种改进的无人机通信加密方法的实现框架结构示意图。
具体实施方式
28.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图和实施例对本技术的技术方案进一步详细阐述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
29.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
30.需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对
象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
31.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术实施例所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
32.目前,随着5g技术的快速发展,无人机在各类重大活动的应用数量不断增加,通信的安全风险也随之增大。无人机通信主要涉及无人机之间(组内通信)和无人机与地面控制站之间的数据交互。为防止无人机通信数据被截获、篡改和重放,必须对无人机通信数据进行加密。
33.密码按加密形式主要分为两类:序列密码和分组密码。分组密码用固定的变换处理明文序列的分组数据,加密较复杂,而且存在误码扩散和一定的延时,一般用于通信传输信道质量较好或具有数据重发等功能的场合。序列密码则是对明文序列逐位或逐块地加以随时间变化的变换,其硬件加密速度快,且实现容易,对信号加密具有低延时、无误码扩散等特点。
34.无人机通信对数据传输的实时性要求很高,地面控制站收发端对数据的频率都处于毫秒级水平,因此通常采用低延时的序列密码进行加密。其中,序列密码加密包括同步序列密码加密和自同步序列密码加密。在同步序列密码加密中,要定期进行密钥序列的同步性检测,在进行加密传输的过程中,一旦密文流出现数据增删的异常将会导致接收端的数据解密被破坏,若不及时进行同步后续整个数据流都会解密失败。然而,提高各端数据的同步频率会使得同步开销大,降低了数据流加密的效率,也不利于系统稳定运行。
35.有鉴于此,本技术实施例提供一种通信加密方法,下面结合附图和实施例对本发明的技术方案进一步详细阐述。
36.本实施例先提供一种通信加密系统的可选网络架构,图1a为本技术实施例提供的一种通信加密系统的可选网络架构示意图,如图1a所示,在一些实施例中,服务器100同步向第一电子设备200和第二电子设备300发送带有相同密钥id的合成密钥,所述合成密钥是经加密后的加密密钥,第一电子设备200和第二电子设备300分别对合成密钥进行解密,得到带有所述密钥id的加密密钥,并将加密密钥分别存入第一加密密钥池和第二加密密钥池。当第一电子设备200采集到消息明文时,先利用一个带有密钥id的加密密钥对消息明文加密,得到密文消息,之后将密文消息发送到第二电子设备300,第二电子设备300利用带有相同密钥id的加密密钥对密文消息解密,得到消息明文。
37.在一些实施例中,服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。第一电子设备200在实现过程中可以是各种类型的具有数据采集能力的设备,例如无人机等,第二电子设备300在实现过程中可以是各种类型的具有信息处理能力的计算机设备,例如所述电子设备可以包括台式机、手机、平板电脑等。
38.图1b为本技术实施例提供的一种通信加密方法的实现流程示意图,应用于第一客户端,如图1b所示,所述方法包括:
39.步骤s101、获取消息明文;
40.这里,消息明文是指采集到的信息数据。在实施时,消息明文可由无人机、无人船等无人智能设备进行作业时采集,这里并不做限定。以无人机为例,消息明文指无人机在作业区域如空中、海面、河道和陆地中的部分区域采集到的图像、声音、文字、视频等数据。
41.步骤s102、从第一加密密钥池中获取加密密钥;其中,所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密得到的;
42.这里,加密密钥是用于对消息明文进行对称加解密的流密钥。
43.加密密钥池是用于存储可用的加密密钥的内存空间,加密密钥池内的每个加密密钥都对应一个全局唯一标识的密钥id,其中,密钥id为可以使用自增序列、密钥哈希值等参数生成。
44.这里,自映射密钥是加密密钥通过映射参数进行字节变换后生成的用于对其他加密密钥进行加密的流密钥,其中,映射参数包括偏移量和偏移步长,偏移量是指存储单元的实际地址与存储单元所在段的段地址之间的距离;偏移步长是指存储单元进行偏移时相邻两个地址之间的距离。
45.第一自映射密钥池是指用于存储可用的自映射密钥的内存空间,自映射密钥池内的每个自映射密钥都对应一个与所述加密密钥相同的全局唯一标识的密钥id。
46.步骤s103、利用所述加密密钥对所述消息明文进行加密,得到消息密文;其中,所述消息密文带有所述密钥id;
47.这里,加密的方法采用同步序列加密法。在实施时,加密算法采用异或(exclusive or,xor)算法。通过将加密密钥与消息明文进行异或运算,得到消息密文。在计算完成后,将加密密钥的密钥id绑定在消息密文的头部,即消息密文带有所述密钥id。
48.步骤s104、向第二客户端发送所述消息密文。
49.这里,消息密文的发送是根据已配对的客户端的通讯地址和端口进行发送的。
50.在本技术实施例中,首先采用带有密钥id的自映射密钥对加密密钥进行加密,并采用带有相同密钥id的自映射密钥进行解密;其次,采用带有密钥id的加密密钥对消息明文进行加密,得到消息密文,其中,所述消息密文带有所述密钥id;最后向第二客户端发送所述消息密文。这样,采用带有密钥id的自映射密钥对加密密钥进行加密和解密,提高了系统的增删容错性,而且使得密钥在数据传输过程中无法进行推导破解,为流数据的传输提供了较高的安全保障;此外,通过带有密钥id的加密密钥对消息明文进行加密,使得客户端不需要进行序列同步,减少了同步操作所带来的系统开销大的问题。
51.在一些实施例中,在步骤s101获取消息明文之后,在步骤s102从第一加密密钥池中获取加密密钥之前,所述方法还包括:
52.步骤1011、将接收到的所述消息明文存储到缓冲区,并实时确定缓冲区的所述消息明文所占的字节长度;
53.这里,缓冲区用来存放接收到的消息明文。
54.步骤1012、当所述消息明文所占字节长度为m时,从所述第一加密密钥池中获取加
密密钥;
55.这里,消息明文所占字节长度m与客户端和服务端的数据处理能力有关,在实施时,可基于客户端和服务端能处理的数据量设置不同的消息明文所占字节长度m。
56.步骤1013、当所述消息明文所占字节长度小于m时,实时确定所述缓冲区的消息明文所占的字节长度,直到所述字节长度缓冲达到m,从所述第一加密密钥池中获取加密密钥。
57.在本技术实施例中,当消息明文所占字节长度达到m时,才会从第一加密密钥池中获取加密密钥,这样可以减小客户端数据运算的运算量,提高工作效率。
58.在一些实施例中,步骤s102中所述“通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密”的步骤如图1c所示,所述方法包括:
59.步骤s1021、获取合成密钥;
60.这里,合成密钥是采用带有密钥id的自映射密钥对加密密钥进行加密后得到的密钥。加密采用的算法是异或算法。
61.步骤s1022、从所述第一自映射密钥池中获取与所述合成密钥带有相同密钥id的第一自映射密钥;
62.步骤s1023、利用所述第一自映射密钥对所述合成密钥进行解密,得到合成密钥明文;其中,合成密钥明文包括密钥id和所述加密密钥;
63.这里,解密采用的算法是异或算法,在实施时,解密采用第一自映射密钥与合成密钥做异或运算,解密后得到合成密钥明文。
64.这里,合成密钥明文包括偏移量、偏移步长和加密密钥,并且偏移量和偏移步长分别位于加密密钥的头部。
65.步骤s1024、从合成密钥明文中获取所述加密密钥,存入所述第一加密密钥池
66.步骤s1025、重复以上步骤,直到所述第一加密密钥池中的所述加密密钥的数量达到可用数量阈值。
67.这里,第一加密密钥池中的所述加密密钥的数量只有达到一定的阈值才能使用。
68.在本技术实施例中,通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密,这样,提高了系统的增删容错性,而且使得密钥在数据传输过程中无法进行推导破解,为流数据的传输提供了较高的安全保障;此外,采用加密密钥池对加密密钥进行储存,当加密密钥池中的加密密钥达到可用数量阈值后才可以使用,如此一来,便可在大量数据传输过程中实现可靠流加密。
69.在一些实施例中,在步骤s1023后,所述方法还包括:
70.步骤s102a、销毁所述第一自映射密钥;
71.这里,销毁使用过的第一自映射密钥是为了做到一个自映射密钥只加密一个加密密钥。
72.步骤s102b、从合成密钥明文中获取所述加密密钥和映射参数;
73.这里,映射参数包括偏移量和偏移步长。
74.步骤s102c、基于所述加密密钥和映射参数,生成新的第一自映射密钥并存入所述第一自映射池。
75.在一些实施例中,所述映射参数包括偏移量和偏移步长,所述加密密钥所占字节
长度为m、偏移量为s、偏移步长为n且所述偏移量和偏移步长所占字节总长度为k,因此,步骤s102c的实现如图1d所示,所述方法包括:
76.步骤s11、创建空的自映射密钥;其中,所述空的自映射密钥所占字节长度为m+k;
77.这里,空的自映射密钥是指不包含任何数据信息的自映射密钥。
78.步骤s12、从所述加密密钥的头部初始偏移s个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;
79.步骤s13、当所述空的自映射密钥的填充长度小于m+k个字节时,继续偏移n个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;
80.步骤s14、当偏移n个字节后偏移位置大于m个字节时,先继续偏移p个字节后,再从所述加密密钥的头部偏移n-p个字节;其中,p小于n;
81.这里,当偏移n个字节后偏移位置大于m个字节时,要先偏移p个字节,使得偏移位置到达加密密钥的末端,然后再继续从加密密钥的头部重新偏移。
82.步骤s15、重复上述步骤,直到所述空的自映射密钥数据填充完毕,得到新的第一自映射密钥并存入所述第一自映射密钥池。
83.在一些实施例中,所述加密密钥为一个随机数,所述加密密钥所占字节长度m为质数,所述偏移量s小于m-1,所述偏移步长n为质数,且小于或等于m的十分之一。
84.在本技术实施例中,在创建空的自映射密钥后,利用偏移量和偏移步长所占的字节长度获取加密密钥中不同位置的数据信息并将该数据信息填充到空的自映射密钥的相应位置,从而得到新的自映射密钥,如此一来,生成的每个自映射密钥都是不同的,因此,每次由自映射密钥加密获得的合成密钥都不同,使得密钥在数据传输过程中无法进行推导破解,为流数据的传输提供了较高的安全保障。
85.本技术实施例提供了一种通信加密方法,应用于服务端,如图2a所示,所述方法包括:
86.步骤s201、生成合成密钥明文;所述合成密钥明文包括映射参数和加密密钥,所述映射参数位于所述加密密钥的前面,用于对所述加密密钥进行变换;这里,映射参数包括偏移量和偏移步长,偏移量为s,偏移步长为n。
87.这里,在合成密钥明文中,明文从前到后的顺序为偏移量、偏移步长、加密密钥,因为偏移量和偏移步长与加密密钥各不相同,因此,将偏移量和偏移步长加在加密密钥的前面可以对加密密钥进行变换,使得加密密钥在加密后更难破解。
88.步骤s202、从第二自映射密钥池中获取第二自映射密钥;其中,所述第二自映射密钥带有密钥id且与所述加密密钥无相关性;
89.这里,第二自映射密钥池是服务端的自映射密钥池。
90.步骤s203、利用所述第二自映射密钥对所述合成密钥明文进行加密,得到合成密钥;其中,所述合成密钥带有所述第二自映射密钥的密钥id;
91.这里,当第一客户端和第二客户端的加密密钥池中的加密密钥的数量低于可用数量阈值时,第一客户端和第二客户端会通知服务端进行合成密钥的补充。
92.这里,所述合成密钥带有所述第二自映射密钥的密钥id,便于当所述合成密钥发送到客户端时,客户端能提取与所述第二自映射密钥的密钥id相同的自映射密钥进行解密,得到与服务端相同的合成密钥明文。
93.步骤s204、向第一客户端和第二客户端同步发送所述合成密钥。
94.这里,当生成合成密钥后,要将相同的合成密钥同步发送到第一客户端和第二客户端,第一客户端和第二客户端在接收到相同的合成密钥后,分别将合成密钥进行解密,并存入各自的加密密钥池中。
95.在本技术实施例中,采用与加密密钥无相关性的带有密钥id的自映射密钥对合成密钥明文进行加密得到合成密钥密文,如此一来,每次由自映射密钥加密获得的合成密钥都不同,使得密钥在数据传输过程中无法进行推导破解,为流数据的传输提供了较高的安全保障。
96.在一些实施例中,步骤s204的实现步骤如图2b所示,所述方法包括:
97.步骤s2041、获取已配对的所述第一客户端的加密模块和所述第二客户端的加密模块;
98.这里,从客户端通信关系映射表查询当前已配对的第一客户端和第二客户端的加密模块。
99.步骤s2042、向所述第一客户端的加密模块和所述第二客户端的加密模块同步发送所述合成密钥。
100.这里,根据已配对的第一客户端和第二客户端的加密模块的通信地址和端口,将带有自映射密钥的密钥id的合成密钥密文同步分配到第一客户端和第二客户端的加密模块。
101.在本技术实施例中,将合成密钥同步分配给第一客户端和第二客户端,这样可以使第一客户端和第二客户端中经过将合成密钥解密后得到相同的加密密钥,便于第一客户端和第二客户端对消息明文进行加密和解密。
102.在一些实施例中,步骤s201的实现步骤包括:
103.步骤s2011、获取所述加密密钥和所述映射参数;其中,所述映射参数包括偏移量和偏移步长;
104.步骤s2012、将所述偏移量和偏移步长依次添加到所述加密密钥的头部,生成合成密钥明文。
105.这里,偏移量的位置在偏移步长位置的前面。
106.在一些实施例中,服务端包括真随机数发生器、主加密密钥池和自映射模块,服务端生成自映射密钥的方法如下所示:
107.步骤s21、真随机数发生器生成不可预测的物理随机数和随机参数值;其中,所述随机数所占字节长度为固定字节m,随机参数值包括偏移量和偏移步长;
108.这里,真随机数发生器是指利用热噪声、时钟漂移、射频(radio frequency,rf)噪声等数据源产生不可预测随机数的硬件设备。
109.在一些实施例中,加密密钥所占字节长度m为质数,所述偏移量s小于m-1,所述偏移步长n为质数,且小于或等于m的十分之一。
110.步骤s22、将随机数作为加密密钥存入主加密密钥池;
111.这里,主加密密钥池是指服务端用于存放加密密钥的地方。
112.步骤s23、将随机参数值存入自映射模块;
113.这里,自映射模块用于生成自映射密钥。
114.步骤s24、基于所述随机数和所述随机参数值,生成新的自映射密钥。
115.这里,步骤s24中新的自映射密钥的方法参见步骤s11至步骤s15所示的方法来理解。
116.本技术实施例提供了一种通信加密方法,应用于第二客户端,如图3所示,所述方法包括:
117.步骤s301、获取消息密文;
118.这里,消息密文是消息明文在加密密钥加密后得到的。
119.步骤s302、从第三加密密钥池中获取加密密钥;其中所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第三自映射密钥池中带有相同密钥id的自映射密钥进行解密得到的;
120.这里,第三自映射密钥池是第二客户端中的自映射密钥池。
121.步骤s303、利用所述加密密钥对所述消息密文进行解密,得到消息明文。
122.这里,通过加密密钥和消息密文做异或运算进行解密。
123.在一些实施例中,所述通过第三自映射密钥池中带有相同密钥id的所述自映射密钥进行解密,包括:
124.步骤s31、获取合成密钥;
125.步骤s32、从所述第三自映射密钥池中获取与所述合成密钥带有相同密钥id的第三自映射密钥;
126.步骤s33、利用所述第三自映射密钥对所述合成密钥进行解密,得到合成密钥明文;其中,合成密钥明文包括密钥id和加密密钥;
127.步骤s34、从所述合成密钥明文中获取所述加密密钥,存入所述第三加密密钥池。
128.步骤s35、重复以上步骤,直到所述第三加密密钥池中的所述加密密钥的数量达到可用数量阈值。
129.这里,步骤s31至步骤s35可以参见步骤s1021至步骤1025来理解。
130.在一些实施例中,在利用所述第三自映射密钥对所述合成密钥进行解密,得到合成密钥明文后,所述方法还包括:
131.步骤s31a、销毁所述第三自映射密钥;
132.步骤s31b、从所述合成密钥明文中获取所述加密密钥和映射参数;
133.步骤s31c、基于所述加密密钥和所述映射参数,生成新的第三自映射密钥并存入所述第三自映射池。
134.这里,步骤s31a至步骤s31c可以参见步骤s102a至步骤s102c进行理解。
135.在一些实施例中,所述映射参数包括偏移量和偏移步长,所述加密密钥所占字节长度为m、偏移量为s、偏移步长为n,所述基于加密密钥和所述映射参数,生成新的第三自映射密钥并存入所述第三自映射池的方法参见步骤s11至步骤s15所示的方法来理解。
136.无人机是利用无线通信技术通过机载终端设备进行控制的不载人飞机。无人机通信主要涉及无人机之间(组内通信)和无人机与地面控制站之间的数据交互。随着5g技术的快速发展,无人机在军事、交通、医疗、教育、农业等行业领域以及各类重大活动的应用数量不断增加,节点间通信的安全风险也随之增大。为防止无人机通信数据被截获、篡改和重放,必须对无人机通信数据进行加密。
137.密码按加密形式主要分为两类:序列密码和分组密码。分组密码用固定的变换处理明文序列的分组数据,加密较复杂,而且存在误码扩散和一定的延时,一般用于通信传输信道质量较好或具有数据重发等功能的场合。序列密码则是对明文序列逐位或逐块地加以随时间变化的变换,其硬件加密速度快,且实现容易,对信号加密具有低延时、无误码扩散等特点。
138.无人机通信对数据传输的实时性要求很高,地面控制站收发端对数据的频率都处于毫秒级水平,因此通常采用低延时的序列密码进行加密。无人机通信数据序列加密方式包括:
139.采用同步序列进行流加密。无人机和地面控制站同时注入根密钥ks,无人机通过硬件随机数发生器产生加密根密钥kh,通过ks和kh在加密单元内生成加密密钥k
j0
,由k
j0
对明文数据进行流加密处理。在实施时,如图4所示,无人机每次上电都会产生一个新的加密根密钥kh,在通信链接建立后首先将kh同步给地面控制站,地面控制站将kh存储在解密单元内,与根密钥ks作用生成完全相同的密钥k
j0
,从而在后续步骤中实现对数据的对称解密操作,此外,加密密钥一定时间后将会通过密钥变换单元更新为k
j1
、k
j2
…kjn
。此种方式加解密速度较快,对通信数据影响较小,但加密密钥使用完后需及时更新并与对端完成同步。
140.无人机通信数据序列加密方法存在以下缺点:同步序列要定期进行密钥序列的同步性检测,在进行加密传输的过程中,一旦密文流出现数据增删的异常将会导致接收端的数据解密被破坏,若不及时进行同步后续整个数据流都会解密失败。然而,提高各端数据的同步频率不仅会降低数据流加密的效率,也会为系统稳定运行留下隐患;
141.因此,本技术实施例解决以下技术问题:(1)、在大数据量传输过程中流加密存在增删容错性差、同步开销大的问题;(2)、同步传输过程中单个错误数据会造成后续数据连续出错,即数据错误具有一定的传播性。
142.本技术实施例提供了一种在无人机与地面控制站之间改进的通信流加密方法,加密密钥由专门的密钥派生服务模块统一生成、处理和下发,加密密钥以自映射的方式生成映射密钥对自身进行加密传输,通信双端通过密钥池的方式同步存储分配的加密密钥,密钥池设置补充阈值,当密钥池实际密钥数量低于阈值的时候,由密钥派生服务模块进行补充,保证密钥充足可用。无人机对明文进行加密得到密文,密文头部添加密钥id序列进行传输,地面控制站根据密钥id序列从密钥池提取相应密钥进行解密。
143.本技术实施例可以减少高频同步所带来的系统开销,从而减少因同步不及时导致大量流数据解密失败的情况出现。密钥与密文之间不存在依赖关系,错误数据位只对自身解密存在影响,不会影响其他正确数据位,避免了错误数据的连续传播。密钥自身加密使用的是前序或其他流密钥变换后生成的自映射密钥,这种方式可防止密钥被暴力窃取,有效提升密钥的空中传输安全。
144.本技术实施例提供了一种改进的无人机数据通信加密方法,所述方法包括以下部分:
145.(1)、密钥派生服务模块,用于为客户端之间通信提供密钥生成及同步服务。如图5a所示,该模块包括密钥生成模块、密钥处理模块和配对管理模块。其中,密钥生成模块包括资源池管理模块、真随机数发生器、主加密密钥池和自映射模块,主加密密钥池包括了加密密钥和对应的全局标识id,自映射密钥池包括了自映射密钥和对应的全局标识id;密钥
处理模块包括自加密模块和自映射密钥池;配对管理模块包括客户端通信关系映射表。
146.(2)、客户端同步加密模块对用于接收密钥派生模块下发的加密密钥,并实现客户端之间的流加密通信,如图5b所示,该模块包括已配对的客户端加密模块一、客户端加密模块二以及数据传输通道。其中,客户端加密模块包括自解密模块、自映射模块、加密密钥池和自映射密钥池,加密密钥池包括了加密密钥和对应的全局标识id,自映射密钥池包括了自映射密钥和对应的全局标识id。
147.更多地,在初始化阶段,需要向密钥派生服务端密钥处理模块、客户端加密模块对的自映射密钥池预置足够数量的自映射密钥。预置完成后,密钥派生服务端等待客户端网络的接入。当客户端新建配对成功时,资源池管理模块控制真随机数发生器派生固定字节长度的随机数值m(m必须为质数)的随机数作为加密密钥存入主加密密钥池当中,同时额外随机生成两个随机参数值存入自映射模块当中用于后续的密钥变换,主加密密钥池将获取的加密密钥送入自映射模块当中,自映射模块根据获取的两个随机参数值生成自映射密钥。
148.本技术实施例提供了一种自映射密钥的生成方法,如图6所示,所述方法包括:
149.步骤s601、利用真随机数发生器产生两个随机参数值,分别是初始偏移量s(0《s《m-1)和偏移步长n(n必须为质数,且不大于m的十分之一),总长k个字节;
150.步骤s602、创建一个空的自映射密钥,空间长度为(m+k)个字节;
151.步骤s603、从加密密钥头部初始偏移s个字节;
152.步骤s604、读取当前偏移位置的1个字节数据存入自映射密钥空间当中;
153.步骤s605、检查自映射密钥已填充长度是否达到(m+k)个字节;
154.步骤s606、若没有达到,则偏移n个字节继续读取加密密钥的字节数据进行填充,若偏移p个字节(p《n)后偏移位置大于m,则从头部开始偏移(n-p)个字节;
155.步骤s607、重复上述步骤,直到自映射密钥数据填充完毕,将生成的自映射密钥存入自映射密钥池。
156.本技术实施例提供了一种合成密钥的生成方法,如图7a所示,所述方法包括:
157.步骤s701、将初始偏移量s和偏移步长值n作为映射参数绑定到加密密钥头部生成合成密钥明文;
158.步骤s702、从自映射密钥池当中提取一个由其他(或前序)加密密钥生成的自映射密钥,该密钥与待加密的合成密钥没有任何相关性;
159.步骤s703、使用该密钥对合成密钥明文进行异或xor操作,得到合成密钥密文;
160.步骤s704、将所述自映射密钥的全局标识id拼接到合成密钥密文头部。
161.在一些实施例中,在步骤s704后,如图7b所示,所述方法还包括:
162.步骤s705、从客户端通信关系对应表(配对管理模块)查询当前已配对的客户端加密模块;
163.步骤s706、根据已配对的客户端模块通信地址和端口,将绑定了自映射密钥全局标识id的合成密钥密文同步分配到客户端加密模块一和客户端加密模块二。
164.本技术实施例提供了一种客户端对合成密钥密文进行解密,并提取加密密钥和自映射密钥,补充加密密钥池和自映射密钥池方法,如图8所示,所述方法包括:
165.步骤s801、客户端在收到下发的数据后提取自映射密钥全局标识id和合成密钥密
文;
166.步骤s802、从客户端加密模块的自映射密钥池当中提取与标识id对应的自映射密钥;
167.步骤s803、将该自映射密钥与合成密钥密文进行异或xor操作,得到合成密钥明文,并将使用过的自映射密钥销毁;
168.步骤s804、将合成密钥明文(映射参数和加密密钥明文)导入自映射模块,生成新的自映射密钥,并存入客户端的自映射密钥池当中;
169.步骤s805、将合成密钥当中的加密密钥拆分出来存入客户端加密密钥池当中;
170.步骤s806、重复上述步骤,直到本地加密密钥池密钥数量达到可用阈值。
171.第一客户端从密钥池中提取具有标识id的加密密钥对明文信息进行加密,加密完成后通过数据传输通道发送给已配对的第二客户端,该过程如图9a所示,所述方法包括:
172.步骤s901、第一客户端等待缓存的消息明文到达m个字节,若等待超时则将当前缓存内数据全部发送;
173.步骤s902、第一客户端从加密密钥池当中提取具有标识id的单个加密密钥;
174.步骤s903、使用该加密密钥与消息明文进行异或xor操作,得到消息密文,使用完毕销毁该加密密钥存储空间,并将标识id绑定在消息密文头部;
175.步骤s904、通过已建立起来的数据传输通道将带有加密密钥标识id的消息密文发送到第二客户端。
176.进一步地,第二客户端从本地密钥池中提取与第一客户端具有相同标识id的加密密钥解密还原出明文,该过程如图9b所示,所述方法包括:
177.步骤s901a、第二客户端获取到第一客户端发送来的密文数据;
178.步骤s901b、第二客户端从密文数据中提取加密密钥标识id和消息密文;
179.步骤s901c、第二客户端从本地加密密钥池当中提取跟标识id对应的加密密钥;
180.步骤s901d、使用该加密密钥对密文进行异或xor解密得到消息明文。使用完毕销毁该加密密钥存储空间;
181.步骤s901e、检查本地加密密钥池中加密密钥的数量是否低于补充阈值;
182.步骤s901f、当加密密钥的数量低于补充阈值时,通知服务端进行密钥补充。
183.本技术实施例提供了一种改进的无人机通信加密方法,如图10所示,所述方法具有实际的应用场景:无人机和地面控制站内置密钥派生服务模块和客户端加密模块,分别以进程的形式同时运行。首先,将一定数量的自映射密钥预置到地面端和机载端,保证后续密钥能够正常进行远程派生。飞控初始化阶段,地面控制站通过密钥派生服务模块分别向本地和远端无人机的客户端加密模块填充密钥池。飞机运行过程中,地面控制站和无人机之间的所有采集、控制明文数据流均按照本技术所述步骤流程,通过客户端加密模块进程的数据传输通道进行加密传输。
184.本技术实施例中达到的有益效果至少包括以下几点:(1)、采用低阈值进行存量密钥补充的方案,达到在大量数据传输过程中实现可靠流加密的技术效果;(2)、采用随机参数对密钥本体进行映射变换生成自映射密钥对自身进行加密保护的方案,达到对流密钥进行高效动态保护的技术效果;(3)、采用全局标识id对密钥进行唯一标识的方案,达到防止因密钥同步失序造成消息加解密失败的技术效果。
185.本技术实施例中专业术语解释如下:
186.1、真随机数发生器:利用热噪声、时钟漂移、rf噪声等数据源产生不可预测随机数的硬件设备。2、密钥池:用于存储可用的加密密钥、加密映射密钥的内存空间,本技术中主要涉及加密密钥池和自映射密钥池。池内的每个密钥都对应一个全局唯一标识id,标识id为可以使用自增序列、密钥哈希值等参数生成。3、加密密钥:用于对消息明文进行对称加解密的流密钥。4、映射参数:将加密密钥转换为自映射密钥的随机映射参数,本发明当中介绍的映射参数是由真随机发生器生成的初始偏移量和偏移步长两个数值构成。5、自映射密钥:加密密钥通过映射参数进行字节变换后生成的用于对其他加密密钥进行加密的流密钥。
187.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
188.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
189.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种通信加密方法,其特征在于,应用于第一客户端,所述方法包括:获取消息明文;从第一加密密钥池中获取加密密钥;其中,所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第一自映射密钥池中带有相同密钥id的自映射密钥进行解密得到的;利用所述加密密钥对所述消息明文进行加密,得到消息密文;其中,所述消息密文带有所述密钥id;向第二客户端发送所述消息密文。2.根据权利要求1所述的方法,其特征在于,所述获取消息明文之后,从第一加密密钥池中获取加密密钥之前,所述方法还包括:将接收到的所述消息明文存储到缓冲区,并实时确定缓冲区的所述消息明文所占的字节长度;当所述消息明文所占字节长度为m时,从所述第一加密密钥池中获取加密密钥;当所述消息明文所占字节长度小于m时,实时确定所述缓冲区的消息明文所占的字节长度,直到所述字节长度缓冲达到m,从所述第一加密密钥池中获取加密密钥。3.根据权利要求1所述的方法,其特征在于,所述通过第一自映射密钥池中带有相同密钥id的所述自映射密钥进行解密,包括:获取合成密钥;从所述第一自映射密钥池中获取与所述合成密钥带有相同密钥id的第一自映射密钥;利用所述第一自映射密钥对所述合成密钥进行解密,得到合成密钥明文;其中,合成密钥明文包括密钥id和所述加密密钥;从合成密钥明文中获取所述加密密钥,存入所述第一加密密钥池;重复以上步骤,直到所述第一加密密钥池中的所述加密密钥的数量达到可用数量阈值。4.根据权利要求3所述的方法,其特征在于,在利用所述第一自映射密钥对所述合成密钥进行解密,得到合成密钥明文后,所述方法还包括:销毁所述第一自映射密钥;从合成密钥明文中获取所述加密密钥和映射参数;基于所述加密密钥和映射参数,生成新的第一自映射密钥并存入所述第一自映射池。5.根据权利要求4所述的方法,其特征在于,所述映射参数包括偏移量和偏移步长,所述加密密钥所占字节长度为m、偏移量为s、偏移步长为n,且所述偏移量和偏移步长所占字节总长度为k,所述基于加密密钥和映射参数,生成新的第一自映射密钥并存入所述第一自映射池,包括:创建建空的自映射密钥;其中,所述空的自映射密钥所占字节长度为m+k;从所述加密密钥的头部初始偏移s个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当所述空给的自映射密钥的填充长度小于m+k个字节时,继续偏移n个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当偏移p个字节后偏移位置大于m个字节时,从所述加密密钥的头部偏移n-p个字节;其
中,p小于n;重复上述步骤,直到所述空的自映射密钥数据填充完毕,得到新的第一自映射密钥并存入所述第一自映射密钥池。6.根据权利要求4或5任一项所述的方法,其特征在于,所述加密密钥为一个随机数,所述加密密钥所占字节长度m为质数,所述偏移量s小于m-1,所述偏移步长n为质数,且小于或等于m的十分之一。7.一种通信加密方法,其特征在于,应用于服务端,所述方法包括:生成合成密钥明文;所述合成密钥明文包括映射参数和加密密钥,所述映射参数位于所述加密密钥的前面,用于对所述加密密钥进行变换;从第二自映射密钥池中获取第二自映射密钥;其中,所述第二自映射密钥带有密钥id且与所述加密密钥无相关性;利用所述第二自映射密钥对所述合成密钥明文进行加密,得到合成密钥;其中,所述合成密钥带有所述第二自映射密钥的密钥id;向第一客户端和第二客户端同步发送所述合成密钥。8.根据权利要求7所述的方法,其特征在于,所述向第一客户端和第二客户端同步发送所述合成密钥,包括:获取已配对的所述第一客户端的加密模块和所述第二客户端的加密模块;向所述第一客户端的加密模块和所述第二客户端的加密模块同步发送所述合成密钥。9.根据权利要求7所述的方法,其特征在于,所述生成合成密钥明文,包括:获取所述加密密钥和所述映射参数;其中,所述映射参数包括偏移量和偏移步长;将所述偏移量和偏移步长依次添加到所述加密密钥的头部,生成合成密钥明文。10.根据权利要求7所述的方法,其特征在于,所述加密密钥所占字节长度为m、偏移量为s、偏移步长为n,且所述偏移量和偏移步长所占字节总长度为k,所述方法还包括:创建空的自映射密钥;其中,所述空的自映射密钥所占字节长度为m+k;从所述加密密钥的头部初始偏移s个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当所述空的自映射密钥的填充长度小于m+k个字节时,继续偏移n个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当偏移p个字节后偏移位置大于m个字节时,从所述加密密钥的头部偏移n-p个字节;其中,p小于n;重复上述步骤,直到所述空的自映射密钥数据填充完毕,得到新的自映射密钥并存入所述第二自映射密钥池。11.根据权利要求7至10任一项所述的方法,其特征在于,所述加密密钥为一个随机数,所述加密密钥所占字节长度m为质数,所述偏移量s小于m-1,所述偏移步长n为质数,且小于或等于m的十分之一。12.一种通信加密方法,其特征在于,应用于第二客户端,所述方法包括:获取消息密文;从第三加密密钥池中获取加密密钥;其中所述加密密钥是通过服务端带有密钥id的自映射密钥进行加密并通过第三自映射密钥池中带有相同密钥id的自映射密钥进行解密得
到的;利用所述加密密钥对所述消息密文进行解密,得到消息明文。13.根据权利要求12所述的方法,其特征在于,所述通过第三自映射密钥池中带有相同密钥id的所述自映射密钥进行解密,包括:获取合成密钥;从所述第三自映射密钥池中获取与所述合成密钥带有相同密钥id的第三自映射密钥;利用所述第三自映射密钥对所述合成密钥进行解密,得到合成密钥明文;其中,合成密钥明文包括密钥id和加密密钥;从所述合成密钥明文中获取所述加密密钥,存入所述第三加密密钥池;重复以上步骤,直到所述第三加密密钥池中的所述加密密钥的数量达到可用数量阈值。14.根据权利要求13所述的方法,其特征在于,在利用所述第三自映射密钥对所述合成密钥进行解密,得到合成密钥明文后,所述方法还包括:销毁所述第三自映射密钥;从所述合成密钥明文中获取所述加密密钥和映射参数;基于所述加密密钥和所述映射参数,生成新的第三自映射密钥并存入所述第三自映射池。15.根据权利要求14所述的方法,其特征在于,所述映射参数包括偏移量和偏移步长,所述加密密钥所占字节长度为m、偏移量为s、偏移步长为n,且所述偏移量和偏移步长所占字节总长度为k,所述基于加密密钥和所述映射参数,生成新的第三自映射密钥并存入所述第三自映射池,包括:创建空的自映射密钥;其中,所述空的自映射密钥所占字节长度为m+k;从所述加密密钥的头部初始偏移s个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当所述空的自映射密钥的填充长度小于m+k个字节时,继续偏移n个字节并读取偏移位置所述加密密钥的字节数据填充到所述空的自映射密钥中的相应位置;当偏移p个字节后偏移位置大于m个字节时,从所述加密密钥的头部偏移n-p个字节;其中,p小于n;重复上述步骤,直到所述空的自映射密钥数据填充完毕,得到新的第三自映射密钥并存入所述第三自映射密钥池。16.根据权利要求14或15任一项所述的方法,其特征在于,所述加密密钥为一个随机数,所述加密密钥所占字节长度m为质数,所述偏移量s小于m-1,所述偏移步长n为质数,且小于或等于m的十分之一。

技术总结
本申请实施例属于通信安全领域,在本申请实施例中公开了一种通信加密方法及装置、设备、存储介质,其中,所述方法包括:获取消息明文;从第一加密密钥池中获取加密密钥;其中,所述加密密钥是通过服务端带有密钥ID的自映射密钥进行加密并通过第一自映射密钥池中带有相同密钥ID的自映射密钥进行解密得到的;利用所述加密密钥对所述消息明文进行加密,得到消息密文;其中,所述消息密文带有所述密钥ID;向第二客户端发送所述消息密文。本申请可以在提高系统增删容错性的同时还不需要客户端进行序列同步,减少了同步操作所带来的系统开销大的问题。的问题。的问题。


技术研发人员:郑文龙 周剑 兰盾 刘东 彭璐
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.01.07
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐