基于时间戳信息重排的电控系统时序数据加密解密方法与流程

文档序号:32439356发布日期:2022-12-06 20:48阅读:60来源:国知局
基于时间戳信息重排的电控系统时序数据加密解密方法与流程

1.本发明属于数据通讯技术领域,具体涉及一种基于时间戳信息重排的电控系统时序数据加密解密方法和装置。


背景技术:

2.嵌入式开发中需要在单片机各芯片之间进行数据通讯,存在大量时序数据传输,且每个数据具有对应的时间戳,由于在数据传输的过程中可能会出现数据被盗取的现象,因此需要对传输的数据进行相应的加密。
3.现有的技术中通常包括以下方式对数据进行加密解密:专利号为cn110708273a,公开了一种数据加密、解密方法及数据加密解密系统,包括:获取源数据;采用预设加密算法,对源数据进行加密处理,得到加密数据;根据预设加密算法,生成与预设加密算法对应的解密程序;生成包括加密数据及解密程序的执行程序;对执行程序进行预设处理,得到目标数据,并将目标数据发送至接收方设备。接收方设备可以在接收到目标数据后对其进行处理得到执行程序,通过运行该执行程序的方式即可获得源数据。
4.可见,现有技术中在对数据进行传输的过程中通常是将秘钥与加密后的数据一同发送至接收端,接收端在接收到秘钥和加密后的数据后依据该秘钥对加密后的数据进行解密。显然这种方法会使得数据在传输的过程中安全性降低,因为在传递秘钥的过程中存在泄密风险。并且不难看出,现有技术中为了简化加密解密的过程,在一个加密系统里一般对应于一套加密和解密方法,这样使得一个固定的秘钥可以对一系列的数据进行解密,这样会存在泄密的风险。
5.上述问题是目前亟待解决的。


技术实现要素:

6.本发明要克服现有技术的上述缺点,提供一种基于时间戳信息重排的电控系统时序数据加密解密方法和装置。
7.本发明解决其技术问题所采用的技术方案是:一种基于时间戳信息重排的电控系统时序数据加密解密方法,所述方法包括:获取时序信息;将所述时序信息存储为二元数据组;生成第一数列组合,并基于所述第一数列组合生成字符串;基于所述字符串将所述二元数据组重新排列生成第一数据序列;基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列;发送所述加密后的数据序列。
8.进一步的,所述将所述时序信息存储为二元数据组包括:所述二元数据组包括时序信息中的数据以及产生该数据的时间戳;所述二元数据组中的二元数据依照时间戳由小至大排序。
9.进一步的,所述生成第一数列组合,并基于所述第一数列组合生成字符串包括:所述第一数列组合为根据所述二元数据组中二元数据的数量随机生成的排列组合。
10.进一步的,所述基于所述字符串对所述第一数据序列中的数据进行加密处理得到
加密后的数据序列包括:依次对于第一数据序列中的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对所述加密后的数据序列中的第j个数据进行异或加密。
11.本发明还提供一种基于时间戳信息重排的电控系统时序数据加密解密方法,所述方法包括:接收加密后的数据序列;基于时间戳排序获取第二数列组合,并基于所述第二数列组合生成字符串;基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的二元数据;基于时间戳对所述解密后的二元数据组进行重新排序生成解密后的数据序列。
12.进一步的,所述基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的数据序列包括:依次对于加密后的数据序列的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对第j个数据进行异或解密。
13.本发明还提供一种基于时间戳信息重排的电控系统时序数据加密解密装置,所述装置包括:第一获取模块,用于获取时序信息;存储模块,用于将所述时序信息存储为二元数据组;生成第一数列组合模块,用于生成第一数列组合,并基于所述第一数列组合生成字符串;生成第一数据序列模块,用于基于所述字符串将所述二元数据组重新排列生成第一数据序列;加密模块,用于基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列;发送模块,用于发送所述加密后的数据序列。
14.本发明还提供一种基于时间戳信息重排的电控系统时序数据加密解密装置,所述装置包括:接收模块,用于接收加密后的数据序列;获取第二数列组合模块,用于基于时间戳排序获取第二数列组合,并基于所述第二数列组合生成字符串;解密模块,用于基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的二元数据;生成解密数据序列模块,用于基于时间戳对所述解密后二元数据组进行重新排序得到解密后的数据序列。
15.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有一个或一个以上的指令,所述计算机指令用于使所述计算机执行上述的基于时间戳信息重排的电控系统时序数据加密解密方法。
16.本发明还提供一种电子设备,包括:存储器和处理器;所述存储器中存储有至少一条程序指令;所述处理器通过加载并执行所述至少一条程序指令以实现上述的基于时间戳信息重排的电控系统时序数据加密解密方法。
17.本发明的有益效果是:本发明提供的一种基于时间戳信息重排的电控系统时序数据加密解密方法,包括:获取时序信息;将所述时序信息存储为二元数据组;生成第一数列组合,并基于所述第一数列组合生成字符串;基于所述字符串将所述二元数据组重新排列生成第一数据序列;基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列;发送所述加密后的数据序列。利用时间戳的连续性保证了传输的数据的安全性,并且在传递数据包中利用时间戳重排隐藏传递密钥,以及在传输数据中动态生成秘钥,进一步的保证了传输数据的安全性。
附图说明
18.下面结合附图和实施例对本发明作进一步说明。
19.图1是本发明实施例所提供的基于时间戳信息重排的电控系统时序数据加密方法的流程图;
20.图2是本发明实施例所提供的基于时间戳信息重排的电控系统时序数据解密方法的流程图;
21.图3是本发明实施例所提供的基于时间戳信息重排的电控系统时序数据加密装置的示意图;
22.图4是本发明实施例所提供的基于时间戳信息重排的电控系统时序数据解密装置的示意图;
23.图5是本发明实施例所提供的电子设备的部分框图。
具体实施方式
24.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
25.应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
26.为了便于后续理解,在此对下述出现的名词进行解释:
27.时间戳:通常是一个字符序列,唯一地标识某一刻的时间。
28.异或加密解密:同为0,异为1,一个数和另外一个数进行两次异或后,是原数本身。
29.现在结合附图对本发明作详细的说明。此图为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
30.实施例1
31.请参阅图1,本发明提出的基于时间戳信息重排的电控系统时序数据加密解密方法,该方法应用于电控系统中。该方法中的密钥随每次发送数据包的时间戳动态变化,并且在传输数据的过程中,传递的数据包中利用时间戳重排隐藏传递密钥,极大地提高了数据传输的安全性。
32.需要说明的是,下述出现的发送端和接收端不唯一对应,也即,发送端可以作为接收端接收加密后的数据,接收端也可以作为发送端用以对数据加密后进行发送。
33.作为示例,基于时间戳信息重排的电控系统时序数据加密解密方法,该方法应用在发送端,包括:
34.s110:获取时序信息。
35.s120:将所述时序信息存储为二元数据组。
36.作为示例,所述将所述时序信息存储为二元数据组包括:所述二元数据组包括时序信息中的数据以及产生该数据的时间戳;所述二元数据组中的二元数据依照时间戳由小至大排序。其中,所述时序信息包括需要传输的数据以及产生该数据的时间戳。
37.具体地,将所有n个时序信息储存为二元数据组(ti,di),di表示时序信息中的第i
个数据,ti表示产生该di数据的时间。例如,以6个时序信息为例,分别为第1s产生数据54,第3秒产生数据55,第5秒数据56,第6秒数据59,第10秒61,第12秒64。则将上述时序信息按照时间戳从小到大排序得到二元数据组为{(1,54),(3,55),(5,56),(6,59),(10,61),(12,64)}。利用时间戳的连续特征,可以使得在在对需要传输的数据加密时,是依据时间戳对连续的数据进行加密,而非是对独立的数据进行加密,这样会使得解密的难度很大,因为如果是对独立的数据进行加密,在解密的过程中可能会破解出部分数据,而如果是对连续的数据进行加密,那么在解密的过程中只能出现全部破解和全部不能破解的情况,而不会出现部分破解的情况,进一步的提高了对传输数据的保护。
38.s130:生成第一数列组合,并基于所述第一数列组合生成字符串。
39.作为示例,所述生成第一数列组合,并基于所述第一数列组合生成字符串包括:所述第一数列组合为根据所述二元数据组中二元数据的数量随机生成的排列组合,所述排列组合即为字符串。
40.具体地,随机一个1到n所有整数的排列组合作为第一数列组合,该第一数列组合即为字符串。例如,n为6,则第一数列组合l可以为:{1,2,3,4,5,6}、{2,4,1,3,5,6}、{2,5,6,1,4,3}......{6,5,4,3,2,1}共6!种数列组合,对应的字符串分别为s=123456、s=241356、s=256143......s=654321。
41.s140:基于所述字符串将所述二元数据组重新排列生成第一数据序列。
42.作为示例,所述基于所述字符串将所述二元数据组重新排列生成第一数据序列包括:将二元数据组中的数据按照字符串中的数值进行排列生成第一数据序列。
43.具体地,按照第一数列组合中的顺序,将二元数据组中的n个数据重排。例如,二元数据组为{(1,54),(3,55),(5,56),(6,59),(10,61),(12,64)},第一数列组合为{4,5,2,3,1,6},则生成的第一数据序列为{(6,59),(10,61),(3,55),(5,56),(1,54),(12,64)};若第一数列组合为{6,5,4,3,2,1},则生成的第一数据序列为{(12,64),(10,61),(6,59),(5,56),(3,55),(1,54)}。由于第一数列组合可以有多种,因此对应生成的第一数据序列也可以有多种,这样也为后续在多数据的加密过程中生成动态的秘钥提供了基础。
44.s150:基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列。
45.s160:发送所述加密后的数据序列。
46.作为示例,所述基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列包括:依次对于第一数据序列中的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对所述加密后的数据序列中的第j个数据进行异或加密。
47.具体地,依次对于第一数据序列的第j个数据dj,用s中第j个位置向后至多2位数字复制为8位数字pj,对dj进行异或加密。例如,当第一数据序列为{(6,59),(10,61),(3,55),(5,56),(1,54),(12,64)},对应的字符串为s=452316,则对于第一数据序列中包含的第一个数据59,取s中第一位开始的2位数字45,复制成8位数字45454545,将59用45454545异或(&)加密得到,59&45454545=45454570,同理,依次对第2个数据至第5个数据加密,得到61&52525252=52525305,55&23232323=23232372,56&31313131=31313107,54&16161616=16161638。对6个数据,只有1个字符6,所以直接复制8位,得到66666666,将数据
64加密得到64&66666666=66666730最后得到的加密的数据序列为{(6,45454570),(10,52525305),(3,23232372),(5,31313107),(1,16161638),(12,66666730)}。其中45454545、52525252、......、66666666即为秘钥,也即,当一个数据包有6个数据时,生成一个随机序列,对应生成6个随机密钥。
48.其中,如将59用45454545异或(&)加密,将59转为二进制为00111011,45454545转为二进制为0010101101011001010011010001,进行异或后为0010101101011001010011101010,继而对应的数据为45454570,由于异或加密解密规则在现有技术中已经非常成熟,在此处不再做过多的赘述。
49.可见,当字符串不同时,对应的秘钥就不同,由于在对每一连续数据进行加密时都会随机生成一个字符串,并且字符串的数量随着数据序列中的数据数量的增加也在不断的增多,因此对应的秘钥的种类也就不断的增多,也即,在传递数据包中利用时间戳重排隐藏传递密钥。简而言之,在数据传输时,产生的秘钥是动态的秘钥,并且该秘钥不会直接存储在要传输的数据包中,而是隐藏传递密钥,这样可以避免在数据传输的过程中出现泄露秘钥的风险,进而极大地提高了数据传输的安全性。
50.实施例2
51.请参阅图2,本发明提出的基于时间戳信息重排的电控系统时序数据加密解密方法,该方法应用于接收端,包括:
52.s210:接收加密后的数据序列。
53.s220:基于时间戳排序获取第二数列组合,并基于所述第二数列组合生成字符串。
54.作为示例,所述基于时间戳排序获取第二数列组合,并基于所述第二数列组合生成字符串包括:将所有n个信息二元组(ti,di)根据时间戳重新按照从小到大排序,获得每个二元组新的排列位置。
55.例如,接收到的加密后的数据序列为{(6,45454570),(10,52525305),(3,23232372),(5,31313107),(1,16161638),(12,66666730)},时间戳序列为{1,3,5,6,10,12},则得到第二数列组合为{4,5,2,3,1,6},即,加密后的数据序列中的二元数据(6,45454570)中对应的时间戳在原始时间戳序列中的第四个位置、加密后的数据序列中的二元数据(10,52525305)中对应的时间戳在原始时间戳序列中的第5个位置,以此类推,得到第二数列组合{4,5,2,3,1,6},对应的字符串为s=452316。
56.s230:基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的二元数据。
57.s240:基于时间戳对所述解密后的二元数据组进行重新排序生成解密后的数据序列。
58.作为示例,所述基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的二元数据包括:依次对于加密后的数据序列的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对第j个数据进行异或解密。
59.具体地,依次对于原序列的第j个数据dj,用s中第j个位置向后至多2位数字复制为8位数字pj,对dj进行异或解密。例如,对于加密后的数据序列第一个数据45454570,取上述字符串s=452316中第一位开始的2位数字45,复制成8位数字45454545,将45454570用45454545异或(&)解密得到,45454570&45454545=59,依次对第2个数据至第5个数据加密,
得到52525305&52525252=61,23232372&23232323=55,31313107&31313131=56,16161638&16161616=54。对6个数据,只有1个字符6,所以直接复制8位,得到66666666,将数据66666730解密得到66666730&66666666=64。解密数据为{(6,59),(10,61),(3,55),(5,56),(1,54),(12,64)},再根据时间戳重排,得到{(1,54),(3,55),(5,56),(6,59),(10,61),(12,64)}。
60.实施例3
61.请参阅图3,本实施例提供了一种基于时间戳信息重排的电控系统时序数据加密解密装置,该装置置于发送端包括:
62.第一获取模块310,用于获取时序信息。
63.存储模块320,用于将所述时序信息存储为二元数据组。
64.作为示例,所述存储模块320包括用于将所述二元数据组中的二元数据依照时间戳由小至大排序的单元。
65.生成第一数列组合模块330,用于生成第一数列组合,并基于所述第一数列组合生成字符串。
66.作为示例,所述生成第一数列组合模块330包括用于所述第一数列组合为根据所述二元数据组中二元数据的数量随机生成的排列组合的单元。
67.生成第一数据序列模块340,用于基于所述字符串将所述二元数据组重新排列生成第一数据序列。
68.加密模块350,用于基于所述字符串对所述第一数据序列中的数据进行加密处理得到加密后的数据序列。
69.作为示例,所述加密模块350包括:用于依次对于第一数据序列中的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对所述加密后的数据序列中的第j个数据进行异或加密的单元。
70.发送模块360,用于发送所述加密后的数据序列。
71.实施例4
72.请参阅图4,本实施例提供了一种基于时间戳信息重排的电控系统时序数据加密解密装置,该装置置于接收端包括:
73.接收模块410,用于接收加密后的数据序列。
74.生成第二数据序列模块420,用于将所述加密后的数据序列中的二元数据组根据时间戳重新按照从小到大排序,生成第二数据序列。
75.获取第二数列组合模块430,用于基于所述第二数据序列获取第二数列组合,并基于所述第二数列组合生成字符串。
76.作为示例,所述获取第二数列组合模块430包括:用于基于所述第二数据序列获取时间戳排序的单元;用于基于所述时间戳排序在所述加密后的数据序列中取每个时间戳的排序位置生成第二数列组合的单元。
77.解密模块440,用于基于所述字符串对所述加密后的数据序列进行解密处理得到解密后的二元数据。
78.作为示例,所述解密模块440包括:用于依次对于加密后的数据序列的第j个数据,用字符串中第j个位置向后至2位数字复制为8位数字,基于该八位数字对第j个数据进行异
或解密的单元。
79.生成解密数据序列模块450,用于基于时间戳对所述解密后二元数据组进行重新排序得到解密后的数据序列。
80.实施例5
81.本发明实施例还提出一种存储介质,所述存储介质上存储有基于时间戳信息重排的时序数据加密解密方法,所述加密解密程序被处理器执行时实现如上文所述的基于时间戳信息重排的时序数据加密解密方法的步骤。由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
82.实施例6
83.请参阅图5,本发明实施例还提供了一种电子设备,包括:存储器和处理器;所述存储器中存储有至少一条程序指令;所述处理器通过加载并执行所述至少一条程序指令以实现实施例1所提供的基于时间戳信息重排的电控系统时序数据加密解密方法。
84.存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。
85.处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。
86.以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关的工作人员完全可以在不偏离本发明的范围内,进行多样的变更以及修改。本项发明的技术范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1