基于时间戳的随机密钥同步方法、平台、设备及存储介质

文档序号:32394507发布日期:2022-11-30 09:43阅读:59来源:国知局
基于时间戳的随机密钥同步方法、平台、设备及存储介质

1.本技术涉及保密通信技术领域,具体地涉及一种基于时间戳的随机密钥同步方法、平台、设备及存储介质。


背景技术:

2.数据通信领域中进行数据远程传输时,一般需要提前约定密钥以保证数据传输的安全性。进行数据传输时,数据发送方通过约定的密钥对数据进行加密,然后进行发送。数据接收方接收到加密的数据后,通过约定的密钥进行解密,进而完成一次数据的传输,数据传输完毕后一般销毁约定的密钥,再次进行传输时重新预定。
3.由于密钥在加密数据传输的重要性,因此密钥同步在数据通信领域保证数据传输安全的重要环节,密钥能够安全的同步是正常使用密钥加解密的关键。目前在密钥同步技术领域中,密钥安全同步的机制比较完善,一般为了保证密钥同步,调用者在使用约定密钥对数据加密完成后,会通过安全通道将约定密钥发送给接收者,以实现数据接收方能够顺利使用密钥解密。
4.但是由于约定密钥需要通过密钥传输通道进行发送,如果在传输过程中被第三方窃取,则存在泄密的风险。一旦数据发送方采用约定密钥将数据加密发出后,则无法保证数据传输过程中的安全性。


技术实现要素:

5.鉴于此,本技术提供一种基于时间戳的随机密钥同步方法、平台、设备及存储介质,以利于解决现有技术中密钥在传输过程中被窃取,从而导致无法保证数据加密传输安全性的问题。
6.第一方面,本技术实施例提供了一种基于时间戳的随机密钥同步方法,包括:第一用户获取第一密钥发送给第二用户,所述第一用户和第二用户为约定数据传输的任意两用户;所述第二用户接收到所述第一密钥后,根据接收所述第一密钥的时间戳生成加密字段信息和插入位置信息;将所述加密字段信息按照所述插入位置信息插入所述第一密钥后获得第二密钥,并将所述时间戳发送给所述第一用户;所述第一用户根据约定密钥更新方式和所述时间戳更新所述第一密钥获得与所述第二用户侧相同的第二密钥。
7.在一种可能的实现方式中,所述第二用户接收到所述第一密钥后,根据接收所述第一密钥的时间戳生成加密字段信息和插入位置信息,包括:对所述时间戳进行数据拆分获得第一时间数据和第二时间数据;分别对所述第一时间数据和第二时间数据进行二进制编码获得第一二进制字符串和第二二进制字符串;
根据所述第一二进制字符串和第二二进制字符串获得所述加密字段信息和插入位置信息。
8.在一种可能的实现方式中,根据所述第一二进制字符串和第二二进制字符串获得所述加密字段信息和插入位置信息,包括:将所述第一二进制字符串按照预设编码方式进行编码获得所述加密字段信息;根据所述第二二进制字符对所述第一密钥数据进行寻址获得插入地址。
9.在一种可能的实现方式中,根据所述第一二进制字符串和第二二进制字符串获得所述加密字段信息和插入位置信息,包括:将所述第一二进制字符串或第二二进制字符串按照预设编码方式进行编码获得所述加密字段信息;分别根据所述一二进制字符串和第二二进制字符串对所述第一密钥数据进行寻址获得第一插入地址和第二插入地址,所述第一插入地址和所述第二插入地址用于插入相同的加密字段信息。
10.在一种可能的实现方式中,所述根据所述第一二进制字符串和第二二进制字符串获得所述加密字段信息和插入位置信息,包括:将所述第一二进制字符串和第二二进制字符串按照预设编码方式进行编码分别获得第一加密字段信息和第二加密字段信息;通过所述第一二进制字符串和第二二进制字符串对所述第一密钥数据进行寻址获得第一插入地址和第二插入地址,所述第一插入地址用于插入所述第一加密字段信息,所述第二插入地址用于插入所述第二加密字段信息。
11.在一种可能的实现方式中,将所述加密字段信息按照所述插入位置信息插入所述第一密钥后获得第二密钥,包括:确定所述加密字段信息在所述第一密钥的插入地址后,将所述第一密钥以所述插入地址为分割点进行拆分;然后利用所述加密字段信息对拆分后的所述第一密钥进行拼接获得所述第二密钥。
12.在一种可能的实现方式中,将所述加密字段信息按照所述插入位置信息插入所述第一密钥后获得第二密钥,包括:确定所述加密字段信息在所述第一密钥的插入地址后,将所述第一密钥以所述插入地址为分割点进行拆分获得第一密钥段和第二密钥段;从所述第二密钥段的端部开始确定与所述加密字段信息等长的密钥数据;将所述加密字段信息替换所述密钥数据获得第三密钥段;拼接所述第一密钥段和第三密钥段获得所述第二密钥。
13.第二方面,本技术实施例提供了一种基于时间戳的随机密钥同步平台,包括:发送模块,用于第一用户获取第一密钥发送给第二用户,所述第一用户和第二用户为约定数据传输的任意两用户;密钥信息生成模块,用于所述第二用户接收到所述第一密钥后,根据接收所述第一密钥的时间戳生成加密字段信息和插入位置信息;密钥数据处理模块,用于将所述加密字段信息按照所述插入位置信息插入所述第
一密钥后获得第二密钥,并将所述时间戳发送给所述第一用户;密钥信息同步模块,用于所述第一用户根据约定密钥更新方式和所述时间戳更新所述第一密钥获得与所述第二用户侧相同的第二密钥。
14.第三方面,本技术实施例提供了一种电子设备,包括:处理器;存储器;以及计算机程序,其中所述计算机程序被存储在所述存储器中,所述计算机程序包括指令,当所述指令被所述处理器执行时,使得所述电子设备执行第一方面任一可能实现方式所述的方法。
15.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面任一可能实现方式所述的方法。
16.在本技术实施例中,第一用户将第一密钥传输给进行数据交互的第二用户后,其接收时间是随机的,并且按照双方约定的密钥同步方式,第二用户只需要将时间戳发送给第一用户,第一用户利用时间戳即可完成与第二用户实现密钥的更新同步。这样即使第一密钥在传输过程中被第三方窃取,也无法对后期采用第二密钥加密的数据进行解密,进而提高了数据传输的安全性。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
18.图1为本技术实施例提供的一种基于时间戳的随机密钥同步方法的流程示意图;图2为本技术实施例提供的一种加密字段信息和插入位置确定方式示意图;图3为本技术实施例提供的另一种加密字段信息和插入位置确定方式示意图图4为本技术实施例提供的又一种加密字段信息和插入位置确定方式示意图图5为本技术实施例提供的一种密钥更新方式;图6为本技术实施例提供的另一种密钥更新方式;图7为本技术实施例提供的一种基于时间戳的随机密钥同步平台的框图;图8为本技术实施例提供的一种电子设备的示意图。
具体实施方式
19.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
20.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
21.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
22.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
23.图1为本技术实施例提供的一种基于时间戳的随机密钥同步方法的流程示意图,参见图1,基于时间戳的随机密钥同步方法,包括:s101,第一用户获取第一密钥发送给第二用户。
24.本实施例中,第一用户和第二用户为约定数据传输的双方,一个为数据发送方,一个为数据接收方。最初始的第一密钥可以由任一用户发起,而且第一密钥可以采用密码机随机生成或者从公共密钥池中随机选择一个闲置密钥。
25.虽然双方初始发送的第一密钥不会作为最终进行数据加解密使用的最终密钥,但是第一用户和第二用户在进行第一密钥发送前还是会建立加密通道,在第一密钥通过加密通道传输过程中,对加密通道的安全性进行验证,以提高后期通过该加密通道传输数据的安全性。
26.s102,所述第二用户接收到所述第一密钥后,根据接收所述第一密钥的时间戳生成加密字段信息和插入位置信息。
27.第二用户接收到所述第一密钥后,系统记录第一密钥的时间戳,这里的时间戳主要是为了记录第一密钥接收完毕的时刻。一般系统时间是精确到毫秒,为了描述方便本实施例中将毫秒和秒进行舍弃,时间戳精确到分即可。
28.系统获得接收第一密钥的时间戳之后,对时间戳按照时和分进行拆分,获得第一时间数据和第二时间数据。本实施例中采用24小时计时方式,比如接收第一密钥的时间为20点35分,则第一时间数据为20,第二时间数据为35,以下实施例均已此数据进行阐述。
29.获得第一时间数据和第二时间数据后,分别对第一时间数据和第二时间数据进行二进制编码获得第一二进制字符串和第二二进制字符串。则本实施例中第一二进制字符串为:010100,第二二进制字符串为:100011。
30.本实施例中,获得第一二进制字符串和第二二进制字符串,根据所述第一二进制字符串和第二二进制字符串获得所述加密字段信息和插入位置信息。对于获取的二进制字符串作为加密字段信息使用时,一般不会直接使用,而是先采用预设的编码方式对二进制字符进行编码,将编码后获得的编码数据作为加密字段信息使用。
31.本实施例中的编码方式可以采用多种,例如base64是最为常用的二进制数据编解码技术。base64采用64个字符对二进制数据进行编码,对n字节的二进制数据,将对应的8*n位中连续的每6位分割为1个部分,每个部分的值都在0到63之间,将该值对应于1个ascii字符,将所有部分对应的ascii字符拼接起来,即可得到二进制数据的base64编码。一般3字节二进制数据的base64编码数据的长度为4字节,一个二进制文件在转换为base64编码文件后,文件长度增加了大约33%。也就是说,base64编码后的二进制数据长度和复杂度都会得到增加。当然,base64可以作为本技术实施例中的一种编码方式,但是并不仅限于上述编码方式,也可以采用其他编码方式对二进制字符串进行编码,以使得最终获得的加密字段信息的长度和复杂度得到提升。
32.一个示意性实施例,首先将第一二进制字符串按照预设编码方式进行编码获得所述加密字段信息,然后根据第二二进制字符对所述第一密钥数据进行寻址获得插入地址。以上述为例,参见图2,第一密钥的长度为100bit,二进制字符串为100011,则寻址位置为第35个bit,则第一密钥中第35个bit位之后为插入地址。
33.一个示意性实施例,本实施例中可以选取第一二进制字符串或第二二进制字符串作为获取加密字段信息的二进制字符串,将第一二进制字符串或第二二进制字符串按照预设编码方式进行编码获得所述加密字段信息。然后,分别根据第一二进制字符串和第二二进制字符对所述第一密钥数据进行寻址获得插入地址。
34.如图3所示,依然选择第一密钥的长度为100bit,第一二进制字符串为010100,第二二进制字符串为100011。分别进行寻址后为第20个bit为和第35个bit位,则第一密钥中第20个bit位之后为第一插入地址,第35个bit位之后作为第二插入地址。
35.一个示意性实施例,本实施例中将第一二进制字符串和第二二进制字符串同时作为获取加密字段信息的二进制字符串,分别将第一二进制字符串和第二二进制字符串按照预设编码方式进行编码分别获得第一加密字段信息和第二加密字段信息。然后在分别根据第一二进制字符串和第二二进制字符对所述第一密钥数据进行寻址获得第一插入地址和第二插入地址,第一插入地址用于插入所述第一加密字段信息,第二插入地址用于插入所述第二加密字段信息。
36.如图4所示,依然选择第一密钥的长度为100bit,第一二进制字符串为010100,第二二进制字符串为100011。分别进行寻址后为第20个bit为和第35个bit位,则第一密钥中第20个bit位之后为第一插入地址,第35个bit位之后作为第二插入地址。第一插入地址作为第一加密字段信息的插入位置,第二插入地址作为第二加密字段信息的插入位置。
37.上述加密字段信息的获取和插入地址的获取均为几种可能的实现方式,还可以采用其他组合形式,例如对第一二进制字符串和第二一二进制字符串进行合并后作为确定加密字段信息的字符串。而且如果需要获得多个插入地址,也可以对上述的二进制字符串分别进行组合获得不同的字符串,或者在开始确定时间戳时,保留到秒或毫秒进而一时、分、秒和毫秒单位进行时间戳的拆分,具体本实施例不再赘述。
38.s103,将所述加密字段信息按照所述插入位置信息插入所述第一密钥后获得第二密钥,并将所述时间戳发送给所述第一用户。
39.s102中根据接收第一密钥的时间戳确定出加密字段信息和插入位置信息后,进一步地需要将加密字段信息与第一密钥进行融合,实现对第一密钥的更新。
40.一个示意性实施例,确定出加密字段信息在所述第一密钥的插入地址后,将所述第一密钥以所述插入地址为分割点进行拆分。然后利用所述加密字段信息对拆分后的所述第一密钥进行拼接获得所述第二密钥。
41.如图5所述,以插入地址为分割点将第一密钥拆分为a密钥段和b密钥段,将加密字段信息放置于a密钥段和b密钥段之间,使得加密字段信息的字段端部紧邻a密钥段尾部,加密字段信息的字段尾部紧邻b密钥段端部,然后按照上述顺序将a密钥段、加密字段和b密钥段进行拼接获得第二密钥。
42.上述实施例中,第二密钥明显比第一密钥长度要长,主要是以增加字段信息的方式对第一密钥进行了更新。如果考虑节省通信传输资源,则第二密钥长度的增加会增加数
据传输的负担。基于上述情况,本技术还提出了另一种密钥更新方式。
43.一个示意性实施例,本实施例中确定加密字段信息在第一密钥的插入地址后,同样将第一密钥以所述插入地址为分割点进行拆分获得第一密钥段和第二密钥段。为了获得与第一密钥等长的第二密钥,本实施例从第二密钥段的端部开始确定与所述加密字段信息等长的密钥数据;将所述加密字段信息替换所述密钥数据获得第三密钥段;拼接所述第一密钥段和第三密钥段获得所述第二密钥。
44.如图6所示,以插入地址为分割点将第一密钥拆分为第一密钥段a和第二密钥段b,然后根据加密字段信息的字节长度,从第二密钥段b的端部开始确定与加密字段信息等长字节的密钥数据区c。然后用加密字段信息d替换第二密钥段b中的密钥数据区c实现第二密钥段b的更新,获得全新的第三密钥段e,拼接第一密钥段a和第三密钥段e即可获得最终用于数据加密传输的第二密钥。
45.上述将第一密钥更新为第二密钥的方式只是示意性举例,还可以采用其他方式,比如在保证密钥长度安全的前提下,缩减第二密钥的长度。只需要将上述实施例中确定字节长度大于大于加密字段信息的密钥数据区c,然后进行替换即可。而且基于s102中不同实施例的多个加密字段信息和多个插入地址,还存在多种密钥更新方式,具体不再阐述。
46.s104,所述第一用户根据约定密钥更新方式和所述时间戳更新所述第一密钥获得与所述第二用户侧相同的第二密钥。
47.第一用户在将第一密钥发送给第二用户时可以设置接收时间戳回执,并且双方就根据时间戳更新第一密钥的方式是提前约定的。因此当第二用户完成第一密钥的接收后,第一用户第一时间接收到时间戳的回执,此时第一用户按照与第二用于约定的更新方式完成对第一密钥的更新,获得与第二用户侧完全相同的第二密钥。由于第二密钥是分别在第一用户侧和第二用户侧本地生成的全新密钥,不需要再由任一方发送从而就可以完成密钥的同步,进而降低了密钥被第三方用户窃取的风险,使得后续数据加密传输时安全性得到提高。
48.与上述实施例相对应,本技术实施例还提供了一种基于时间戳的随机密钥同步平台。
49.参见图7,本实施例中的基于时间戳的随机密钥同步平台20包括:发送模块201,用于第一用户获取第一密钥发送给第二用户,所述第一用户和第二用户为约定数据传输的任意两用户。
50.密钥信息生成模块202,用于所述第二用户接收到所述第一密钥后,根据接收所述第一密钥的时间戳生成加密字段信息和插入位置信息。
51.密钥数据处理模块203,用于将所述加密字段信息按照所述插入位置信息插入所述第一密钥后获得第二密钥,并将所述时间戳发送给所述第一用户。
52.密钥信息同步模块204,用于所述第一用户根据所述时间戳更新所述第一密钥获得与所述第二用户侧相同的第二密钥。
53.需要指出的是,本技术实施例涉及的具体内容可以参见上述方法实施例的描述,为了表述简洁,在此不再赘述。
54.与上述实施例相对应,本技术实施例还提供了一种电子设备。
55.参见图8,为本技术实施例提供的一种电子设备的结构示意图。如图8所示,该电子
设备300可以包括:处理器301、存储器302及通信单元303。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的电子设备结构并不构成对本技术实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
56.其中,通信单元303,用于建立通信信道,从而使电子设备可以与其它设备进行通信。
57.处理器301,为电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,ic) 组成,例如可以由单颗封装的ic 所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器301可以仅包括中央处理器(central processing unit,cpu)。在本技术实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
58.存储器302,用于存储处理器301的执行指令,存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
59.当存储器302中的执行指令由处理器301执行时,使得电子设备300能够执行上述方法实施例中的部分或全部步骤。
60.与上述实施例相对应,本技术实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,其中,在程序运行时可控制计算机可读存储介质所在设备执行上述方法实施例中的部分或全部步骤。具体实现中,该计算机可读存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
61.与上述实施例相对应,本技术实施例还提供了一种计算机程序产品,该计算机程序产品包含可执行指令,当可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
62.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a, b, c, a-b, a-c, b-c,或a-b-c,其中a, b, c可以是单个,也可以是多个。
63.本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
64.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
65.在本技术所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
66.以上所述,仅为本技术的具体实施方式,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1