CN116527235A - 基于密钥轮换的数据加密方法、装置和电子设备 - Google Patents

基于密钥轮换的数据加密方法、装置和电子设备 Download PDF

Info

Publication number
CN116527235A
CN116527235A CN202310547195.0A CN202310547195A CN116527235A CN 116527235 A CN116527235 A CN 116527235A CN 202310547195 A CN202310547195 A CN 202310547195A CN 116527235 A CN116527235 A CN 116527235A
Authority
CN
China
Prior art keywords
key
data
data block
character
characters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310547195.0A
Other languages
English (en)
Inventor
胡兆妍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boc Financial Technology Co ltd
Original Assignee
Boc Financial Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Boc Financial Technology Co ltd filed Critical Boc Financial Technology Co ltd
Priority to CN202310547195.0A priority Critical patent/CN116527235A/zh
Publication of CN116527235A publication Critical patent/CN116527235A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开一种基于密钥轮换的数据加密方法、装置和电子设备,该方法包括:获取待加密的数据对象;将数据对象分割成至少一个数据块;基于密钥轮换规则和预定的密钥字符序列,为数据块构建动态密钥;数据块的动态密钥由密钥字符序列中的至少部分密钥字符组成;利用数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对数据块的各个数据字符进行编码,得到对应的密文数据块。本申请通过在将数据对象传送至云系统等存储端之前,将数据对象分割成块级数据,基于密钥轮换规则为块级数据确定动态密钥进行加密,保证了数据的高安全性,同时无需根据数据拥有方的用户属性设计数据加密算法,保证了加密的高效性,缩减了计算与存储资源的消耗。

Description

基于密钥轮换的数据加密方法、装置和电子设备
技术领域
本申请属于数据安全技术领域,尤其涉及一种基于密钥轮换的数据加密方法、装置和电子设备。
背景技术
随着经济社会和新兴技术的快速发展,在电子商务和银行等金融领域,用户通过交易产生的海量数据已经成为金融业重要的数据资源,如何高效安全地对海量数据进行处理分析是实现其价值的重要手段。为了提高硬件和软件资源的有效利用率,很多金融系统会将用户数据传送至云系统中进行开发研究,以展开所需的处理分析,因此,在云计算领域对外包的敏感数据进行保护已然成为保障数据安全的重中之重。
已知技术采用基于属性的加密方法进行数据加密,具体根据外包加密数据的用户属性(数据拥有者属性)设计数据加密算法,如基于外包加密数据的用户属性为其设计对应密级的加密算法等,此种解决方式的主要缺点是,加密安全性低,且需要额外的计算和存储资源来验证外包加密数据的用户属性,并针对性的进行加密算法设计,导致加密实施过程复杂。从而如何更好的应对这些数据安全挑战成为本领域亟需解决的技术问题。
发明内容
有鉴于此,本申请提供一种基于密钥轮换的数据加密方法、装置和电子设备,用于基于密钥轮换实现高效、高安全性的数据加密,以更好的应对数据安全问题。
具体技术方案如下:
一种基于密钥轮换的数据加密方法,应用于数据拥有方,所述方法包括:
获取待加密的数据对象;
将所述数据对象分割成至少一个数据块;
基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;
利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
可选的,所述将所述数据对象分割成至少一个数据块,包括:
根据所述密钥字符序列中密钥字符的数量,对所述数据对象进行分割,得到至少一个数据块;
其中,至少部分数量数据块中每个数据块所包含数据字符的数量等于所述密钥字符序列中密钥字符的数量;所述至少部分数量数据块中每个数据块对应的动态密钥包括所述密钥字符序列中的所有密钥字符,且相邻数据块分别对应不同的动态密钥。
可选的,所述基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建对应的动态密钥,包括:
按序遍历分割得到的每个数据块,对于遍历到的当前数据块,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符;其中,相邻两个数据块中后一数据块的首个密钥字符与前一数据块的首个密钥字符在所述密钥字符序列中对应预设的间隔步长;
以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符,得到由所述多个密钥字符按序形成的密钥,作为所述当前数据块的动态密钥。
可选的,所述确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符,包括:
从预先创建的映射表中确定所述当前数据块对应的密钥索引;所述映射表包括数据块索引与密钥索引之间的对应关系,密钥索引至少能用于指示相应数据块在所述密钥字符序列中所对应动态密钥的首个密钥字符;
根据所述当前数据块对应的密钥索引,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符。
可选的,所述以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符,包括:
从存储有所述密钥字符序列的双向链表中,以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符。
可选的,所述密钥字符序列中的一个密钥字符占用所述双向链表的一个节点,所述密钥字符序列中尾字符所对应节点的后继节点为所述密钥字符序列中的首字符所对应节点;
在确定所述当前数据块对应的多个密钥字符以形成所述当前数据块的动态密钥时,通过按所述间隔步长改变所述双向链表的头指针,使得定位至所述当前数据块的首个密钥字符在所述双向链表中对应的节点。
可选的,在基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥之前,还包括:
将分割所得的每个数据块对应的二进制字符串存储于循环数组;
利用CA移位器对循环数组中的二进制字符串进行基于移位的数据旋转处理,以使得为旋转处理后得到的数据块构建对应的动态密钥。
可选的,在得到数据块对应的密文数据块之后,还包括:
将所述数据对象的各数据块分别对应的密文数据块发送至云服务器进行存储;所述云服务器在获得数据请求方对所述数据对象的访问请求时,将所述数据对象对应的各个密文数据块发送至数据请求方,以由数据请求方通过解密所述各个密文数据块,重建所述数据对象;
其中,所述数据拥有方和所述数据请求方分别基于对称密钥方式执行对应的加解密处理。
一种基于密钥轮换的数据加密装置,应用于数据拥有方,所述装置包括:
数据获取单元,用于获取待加密的数据对象;
数据分割单元,用于将所述数据对象分割成至少一个数据块;
密钥构建单元,用于基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;
数据加密单元,用于利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
一种电子设备,包括:
存储器,用于至少存储一组计算机指令集;
处理器,用于调用并执行所述存储器中的所述计算机指令集,通过执行所述计算机指令集实现如上文任一项所述的基于密钥轮换的数据加密方法。
根据以上方案可知,本申请提供一种基于密钥轮换的数据加密方法、装置和电子设备,该方法包括:获取待加密的数据对象;将所述数据对象分割成至少一个数据块;基于密钥轮换规则和预定的密钥字符序列,为分割得到的数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;利用数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对数据块的各个数据字符进行编码,得到对应的密文数据块。
本申请通过在将数据对象传送至云系统等存储端之前,将数据对象分割成块级数据(即数据块),基于密钥轮换规则为块级数据确定动态密钥进行加密,保证了数据的高安全性,同时无需根据数据拥有方的用户属性设计数据加密算法,保证了加密的高效性,缩减了计算与存储资源的消耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的基于密钥轮换的数据加密方法的一种流程图;
图2是本申请提供的基于密钥轮换的数据加密方法的另一种流程图;
图3是本申请提供的基于密钥轮换的数据加密方法的又一种流程图;
图4是本申请提供的一应用示例中数据加解密的逻辑示意图;
图5是本申请提供的基于密钥轮换的数据加密装置的组成结构图;
图6是本申请提供的电子设备的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开一种基于密钥轮换的数据加密方法、装置和电子设备,应用于数据拥有方,数据拥有方可以是但不限于具有对应数据库的金融系统,参见图1,所公开的基于密钥轮换的数据加密方法至少包括:
步骤101、获取待加密的数据对象。
所获取的待加密数据对象,可以是任意所需格式的数据文件。示例性的,可以从金融系统数据库中获取待存储至云端服务器的相应格式数据文件,作为待加密的数据对象,以在存储至云端服务器之前,先将数据文件进行加密。
步骤102、将所述数据对象分割成至少一个数据块。
密码学是在云计算领域中一种高效的数据保护方法,包括加密算法和解密算法的设计和实施。
本申请采用共享对称密钥,并基于密钥轮换思想对块级数据进行加密处理,使得在将数据对象外包存储至云服务器之前,将原始数据对象加密成为对应的密文,保证加密的高效性及数据安全性,之后由数据请求方用户从云服务器请求密文数据,并使用共享对称密钥再将密文数据进行解密。
在获取待加密的数据对象后,相应对数据对象进行分割处理,得到至少一个数据块。
本申请实施例中,预先制定有密钥字符序列,用于为数据对象的各个数据块分别生成对应的动态密钥,密钥字符序列的长度,即密钥字符序列所包含密钥字符的数量可根据需求自行设定。示例性的,本申请采用如下设计规则:密钥字符序列包括JAVA中16字符,共256位,其中1字符=16位,即密钥字符序列共包括16个密钥字符,每个密钥字符对应16个bit。
可选的,在对数据对象进行分割时,根据密钥字符序列中密钥字符的数量,对数据对象进行分割,得到至少一个数据块;其中,至少部分数量数据块中每个数据块所包含数据字符的数量等于密钥字符序列中密钥字符的数量;该至少部分数量数据块中每个数据块对应的动态密钥包括密钥字符序列中的所有密钥字符,且相邻数据块分别对应不同的动态密钥。
也就是说,将数据对象划分为长度为密钥字符序列长度的各个数据块,而对于数据对象中的最后一个数据块,其长度可能等于或小于密钥字符序列的长度,视实际情况而定。示例性的,针对密钥字符序列包括16个密钥字符的情形,可以按长度16对数据对象进行分割,所得的各个数据块中最后一个数据块之外的数据块长度为16,最后一个数据块的长度可能为16,也可能不足16。
实际应用中,不限于上述的分割方式,例如,也可以根据需求将数据对象划分为长度小于密钥字符序列长度的各个数据块。
步骤103、基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应。
可选的,可按序遍历分割得到的每个数据块,对于遍历到的当前数据块,确定当前数据块在密钥字符序列中对应的首个密钥字符;之后,以当前数据块对应的首个密钥字符为起始,按序确定出密钥字符序列中数量为当前数据块所包含字符数量的多个密钥字符,得到由所述多个密钥字符按序形成的密钥,作为当前数据块的动态密钥。
其中,相邻两个数据块中后一数据块的首个密钥字符与前一数据块的首个密钥字符在密钥字符序列中对应预设的间隔步长。
间隔步长可以为1、2等预设数值,不做限制。示例性的,间隔步长为1。
进一步,本申请预先构建有映射表,映射表包括数据块索引与密钥索引之间的对应关系,映射表中的密钥索引至少能用于指示相应数据块在所述密钥字符序列中所对应动态密钥的首个密钥字符。映射表通用于不同的数据对象,构建一次即可,无需针对不同的数据对象重复构建。
且可选的,本申请采用双向链表存储密钥字符序列中的各个密钥字符,密钥字符序列中的各个密钥字符以一对一方式存储于双向链表的各个节点中,对于上述长度为16的密钥字符序列,双向链表的长度相应为16,包括16个节点,第1-16个节点分别按序一对一存储密钥字符序列的第1-16个密钥字符。其中,密钥字符序列的首字符在双向链表中所对应节点的前驱节点为该序列的尾字符在双向链表中对应的节点,密钥字符序列的尾字符在双向链表中所对应节点的后继节点为该序列的首字符在双向链表中对应的节点。首字符与尾字符之外的中间字符在双向链表中所对应节点的前驱节点,为该中间字符在密钥字符序列中的前驱字符在双向链表中所对应节点;该中间字符在双向链表中所对应节点的后继节点,相应为该中间字符在密钥字符序列中的后继字符在双向链表中所对应节点。
在此基础上,具体可从映射表中确定当前数据块对应的密钥索引,根据当前数据块对应的密钥索引,确定当前数据块在密钥字符序列中对应的首个密钥字符。之后,从存储有密钥字符序列的双向链表中,以当前数据块对应的首个密钥字符为起始,按序确定出密钥字符序列中数量为当前数据块所包含字符数量的多个密钥字符,得到由该多个密钥字符按序形成的密钥,作为当前数据块的动态密钥。
举例说明。假设间隔步长为1,用于为各个数据块构造动态密钥的密钥字符序列为“abcdefghijklmnop”,序列长度为16,相应存储于长度为16的双向链表中,示例性的,所构建的映射表可以为数据字典形式,且可包含以下的对应关系:
密钥串1(abcdefghijklmnop)的密钥索引1-数据块1、数据块17…的索引;
密钥串2(bcdefghijklmnopa)的密钥索引2-数据块2、数据块18…的索引;
密钥串3(cdefghijklmnopab)的密钥索引3-数据块3、数据块19…的索引;
……
密钥串16(pabcdefghijklmno)的密钥索引-数据块16、数据块32…的索引。
以上示例中,各数据块的索引可以是各数据块在所属数据对象中的序号/序位,如数据块1、数据块17在数据对象中对应的序号分别为1,17,则可将1、17各自作为所对应数据块的索引。各个密钥索引在密钥字符序列中所指示的动态密钥首个密钥字符,相应为各个密钥索引所对应密钥串(如密钥串1-abcdefghijklmnop)中的首个密钥字符,如密钥索引1指示的首个密钥字符为a,密钥索引2指示的首个密钥字符为b。
假设所获取的当前数据对象完成分割处理后,共包含3个按序排列的数据块:数据块1、2、3,前两个数据块的长度分别为16,即包括16个数据字符,第三个数据块包括12个字符,则可从映射表中确定出三个数据块分别对应的密钥索引为密钥索引1、密钥索引2、密钥索引3。
之后,可基于密钥索引1从双向链表中确定数据块1对应的首个秘钥字符a,并以a为起始依次确定出16个秘钥字符,按序组成数据块1的动态密钥“abcdefghijklmnop”;基于密钥索引2从双向链表中确定数据块2对应的首个秘钥字符b,并以b为起始依次确定出16个秘钥字符,按序组成数据块2的动态密钥“bcdefghijklmnopa”;基于密钥索引3从双向链表中确定数据块3对应的首个秘钥字符c,并以c为起始依次确定出12个秘钥字符,按序组成数据块3的动态密钥“cdefghijklmn”。
其中,在基于映射表确定当前数据块对应的多个密钥字符以形成当前数据块的动态密钥时,通过按上述间隔步长改变双向链表的头指针,使得定位至该当前数据块的首个密钥字符在双向链表中对应的节点。
例如,针对间隔步长为1的情形,对于第一个数据块即数据块1而言,如果其动态密钥是“abcdefghijklmnop”,在确定出“abcdefghijklmnop”之后,将双链表的头指针由“a”改变为“b”,此步是为了针对下一个数据块即数据块2的加密会有不同的动态密钥,便于数据块2所对应动态密钥的首个密钥字符“b”的定位,进而基于定位的首个密钥字符“b”确定出“bcdefghijklmnopa”作为数据块2的动态密钥,后续遍历的各数据块依次类推,通过结合映射表并改变双链表的头指针来确保不同数据块的密钥的动态性,尽可能使不同数据块对应不同的动态密钥,从而使数据加密具有更好的安全性。
步骤104、利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
之后,可利用为数据对象中的每个数据块确定的动态密钥,对每个数据块进行加密处理,具体可利用数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对数据块的各个数据字符进行编码,得到由各个数据字符的编码信息按序形成的密文串,作为数据块所对应的密文数据块,完成对数据对象的块级加密,并且由于数据块中的数据字符与数据块所对应动态密钥中的密钥字符一一对应,每个数据块字符级别上的保密性都能得到保障。
综上所述,本申请通过在将数据对象传送至云系统等存储端之前,将数据对象分割成块级数据(即数据块),基于密钥轮换规则为块级数据确定动态密钥进行加密,保证了数据的高安全性,同时无需根据数据拥有方的用户属性设计数据加密算法,保证了加密的高效性,缩减了计算与存储资源的消耗。
在一可选实施例中,参见图2所示的方法流程图,本申请公开的基于密钥轮换的数据加密方法,在基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥之前,还可以包括以下处理:
步骤201、将分割所得的每个数据块对应的二进制字符串存储于循环数组。
其中,循环数组也即为循环阵列(CA)。本实施例将每个数据块对应的二进制字符串存储于循环数组,以便于后续的移位操作。可选的,加密和解密过程中,均可采用循环数组存放对应的二进制字符串,来用于执行加密或解密中对相应字符串所需的移位操作。
步骤202、利用CA移位器对循环数组中的二进制字符串进行基于移位的数据旋转处理,以使得为旋转处理后得到的数据块构建对应的动态密钥。
之后,利用CA移位器,对循环数组存放的数据块的二进制字符串,进行基于移位的数据旋转处理,具体可由CA移位器决定对循环数组旋转处理时的移动次数,每次旋转通过将数据除以2实现数据移动。后续,可进一步针对旋转处理后对应得到的数据块,进行动态密钥的构建及加密处理。
本实施例通过对数据块所对应二进制字符串的旋转处理实现对数据块数据的干扰,以进一步提升数据安全性。
在一可选实施例中,参见图3所示的方法流程图,本申请公开的基于密钥轮换的数据加密方法,在得到数据块对应的密文数据块之后,还可以包括以下处理:
步骤105、将所述数据对象的各数据块分别对应的密文数据块发送至云服务器进行存储。
云服务器在获得数据请求方对所述数据对象的访问请求时,将所述数据对象对应的各个密文数据块发送至数据请求方,以由数据请求方通过解密所述各个密文数据块,重建数据对象。
数据拥有方和数据请求方分别基于对称密钥方式执行对应的加解密处理。
具体的,数据请求方可通过执行数据对象加密过程的逆处理,来重建所需的数据对象,例如,基于映射表从双向链表中获得数据对象所对应的各密文数据块的动态密钥,根据对应的动态密钥,对密文数据块执行解码,并对解码后的数据块执行对应的旋转处理(与加密时的旋转处理相逆),得到各密文数据块对应的原始数据块(明文数据块),将各原始数据块按序组装成对应的数据对象。
以下提供本申请的一应用示例。
该示例中,数据拥有方为金融系统,技术人员预先在数据拥有方构建包括以下四个功能模块的数据加密模块:
文件分割模块:用于将来自金融系统数据库的待加密存储至云服务器的数据文件划分为多个数据块,并将数据块字符的二进制等效值(二进制字符串)存储于循环数组中,由CA移位器决定循环数组旋转的移动次数,并执行基于移位的旋转处理,每次旋转将数据除以2,以保护数据的隐私安全。
密钥存储模块:预先制定密钥字符序列“abcdefghijklmnop”,密钥字符序列包括JAVA中16字符,共256位,其中1字符=16位,采用密钥存储模块将密钥字符序列中的各密钥字符写进双向链表中,每个密钥字符存储于对应的一个节点之中,双向链表相应共有16个节点。
映射表建立模块:创建一个映射表,其中存放数据块索引与密钥索引间的对应关系,密钥索引至少能用于指示相应数据块在所述密钥字符序列中所对应动态密钥的首个密钥字符。
动态密钥生成模块:为了数据安全性,每个数据块都有对应的动态密钥,尽量使不同数据块对应不同的动态密钥,通过查询映射表并结合改变双链表的头指针来确保不同数据块密钥的动态性。例如,假设改变头指针时采用的间隔步长为1,对于数据文件的第一个数据块而言,如果其动态密钥是“abcdefghijklmnop”,那么通过改变双向链表的头指针,“bcdefghijklmnopa”将会是第二个数据块的密钥,以此类推,这样就保证了密钥的动态变化。
在此基础上,在将金融系统数据库中的数据文件上传至云服务器之前,如图4所示,利用数据加密模块基于共享对称密钥方式对数据文件进行加密处理,包括以下流程:
S1:获取待加密数据文件;
S2:利用文件分割模块将数据文件分割成多个数据块,并将数据块字符的二进制等效值(二进制字符串)存储于循环数组中,由CA移位器决定循环数组旋转的移动次数,执行基于移位的旋转处理。
最后一个数据块除外的每个数据块的长度为16(即包括16个数据字符),等于密钥字符序列的长度,最后一个数据块的长度视实际情况而定,等于16或小于16。
S3:利用动态密钥生成模块顺序遍历完成旋转后所得的各个数据块,针对遍历到的当前数据块,基于映射表及双向链表为其构建对应的动态密钥。
其中,对于不同的数据块,通过改变双向链表的头指针(完成此步是为了针对下一个数据块的加密会有不同的密钥),保证不同数据块分别对应的密钥的动态变化,这种动态性是为了更好的加密安全性,例如,对于密钥字符序列“abcdefghijklmnop”,对于第一个数据块而言,双向链表的头指针为“a”,为其确定的动态密钥为“abcdefghijklmnop”,之后会将双向链表的头指针改变为“b”,基于该头指针,“bcdefghijklmnopa”将会是第二个数据块的密钥,以此保证不同数据块所对应密钥的动态变化。
S4:利用各数据块分别对应的动态密钥对各数据块进行加密,得到对应的密文数据块,并将密文数据块发送至云服务器进行存储。
后续,作为数据请求方的云用户在从云服务器请求所需的数据文件时,可通过利用对应的数据解密模块对云服务器反馈的各密文数据块进行基于共享对称密钥的解密处理,来重建对应的原始数据文件。
针对现有基于云系统的数据存储场景,存在的数据加密安全性低、软硬件计算资源成本高等缺点,本申请基于密钥轮换实现的数据加密具有处理海量数据的安全性、高效性等优点,非常适用于金融背景中生成的海量客户数据的场景。
对应于上述的方法,本申请实施例还公开一种基于密钥轮换的数据加密装置,应用于数据拥有方,如图5所示,该装置包括:
数据获取单元501,用于获取待加密的数据对象;
数据分割单元502,用于将所述数据对象分割成至少一个数据块;
密钥构建单元503,用于基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;
数据加密单元504,用于利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
在一实施例方式中,数据分割单元502,具体用于:
根据所述密钥字符序列中密钥字符的数量,对所述数据对象进行分割,得到至少一个数据块;
其中,至少部分数量数据块中每个数据块所包含数据字符的数量等于所述密钥字符序列中密钥字符的数量;所述至少部分数量数据块中每个数据块对应的动态密钥包括所述密钥字符序列中的所有密钥字符,且相邻数据块分别对应不同的动态密钥。
在一实施例方式中,密钥构建单元503,具体用于:
按序遍历分割得到的每个数据块,对于遍历到的当前数据块,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符;其中,相邻两个数据块中后一数据块的首个密钥字符与前一数据块的首个密钥字符在所述密钥字符序列中对应预设的间隔步长;
以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符,得到由所述多个密钥字符按序形成的密钥,作为所述当前数据块的动态密钥。
在一实施例方式中,密钥构建单元503,在确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符时,具体用于:
从预先创建的映射表中确定所述当前数据块对应的密钥索引;所述映射表包括数据块索引与密钥索引之间的对应关系,密钥索引至少能用于指示相应数据块在所述密钥字符序列中所对应动态密钥的首个密钥字符;
根据所述当前数据块对应的密钥索引,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符。
在一实施例方式中,密钥构建单元503,在以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符时,具体用于:
从存储有所述密钥字符序列的双向链表中,以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符。
在一实施例方式中,所述密钥字符序列中的一个密钥字符占用所述双向链表的一个节点,所述密钥字符序列中尾字符所对应节点的后继节点为所述密钥字符序列中的首字符所对应节点;
在确定所述当前数据块对应的多个密钥字符以形成所述当前数据块的动态密钥时,通过按所述间隔步长改变所述双向链表的头指针,使得定位至所述当前数据块的首个密钥字符在所述双向链表中对应的节点。
在一实施例方式中,上述装置还包括旋转处理单元,用于:
在基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥之前,将分割所得的每个数据块对应的二进制字符串存储于循环数组;利用CA移位器对循环数组中的二进制字符串进行基于移位的数据旋转处理,以使得为旋转处理后得到的数据块构建对应的动态密钥。
在一实施例方式中,上述装置还包括通信单元,用于:
在得到数据块对应的密文数据块之后,将所述数据对象的各数据块分别对应的密文数据块发送至云服务器进行存储;所述云服务器在获得数据请求方对所述数据对象的访问请求时,将所述数据对象对应的各个密文数据块发送至数据请求方,以由数据请求方通过解密所述各个密文数据块,重建所述数据对象;
其中,所述数据拥有方和所述数据请求方分别基于对称密钥方式执行对应的加解密处理。
对于本申请实施例公开的基于密钥轮换的数据加密装置而言,由于其与上文各方法实施例公开的基于密钥轮换的数据加密方法相对应,所以描述的比较简单,相关相似之处请参见上文各方法实施例的说明即可,此处不再详述。
本申请实施例还公开一种电子设备,可以是但不限于众多通用或专用的计算装置环境或配置下的设备,例如:个人计算机、服务器计算机、多处理器装置等等。
电子设备的组成结构如图6所示,至少包括:
存储器10,用于存放计算机指令集;
计算机指令集可以通过计算机程序的形式实现。
处理器20,用于通过执行计算机指令集,实现如上文任一方法实施例公开的基于密钥轮换的数据加密方法。
处理器20可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。
除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种基于密钥轮换的数据加密方法,应用于数据拥有方,其特征在于,所述方法包括:
获取待加密的数据对象;
将所述数据对象分割成至少一个数据块;
基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;
利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据对象分割成至少一个数据块,包括:
根据所述密钥字符序列中密钥字符的数量,对所述数据对象进行分割,得到至少一个数据块;
其中,至少部分数量数据块中每个数据块所包含数据字符的数量等于所述密钥字符序列中密钥字符的数量;所述至少部分数量数据块中每个数据块对应的动态密钥包括所述密钥字符序列中的所有密钥字符,且相邻数据块分别对应不同的动态密钥。
3.根据权利要求1所述的方法,其特征在于,所述基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建对应的动态密钥,包括:
按序遍历分割得到的每个数据块,对于遍历到的当前数据块,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符;其中,相邻两个数据块中后一数据块的首个密钥字符与前一数据块的首个密钥字符在所述密钥字符序列中对应预设的间隔步长;
以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符,得到由所述多个密钥字符按序形成的密钥,作为所述当前数据块的动态密钥。
4.根据权利要求3所述的方法,其特征在于,所述确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符,包括:
从预先创建的映射表中确定所述当前数据块对应的密钥索引;所述映射表包括数据块索引与密钥索引之间的对应关系,密钥索引至少能用于指示相应数据块在所述密钥字符序列中所对应动态密钥的首个密钥字符;
根据所述当前数据块对应的密钥索引,确定所述当前数据块在所述密钥字符序列中对应的首个密钥字符。
5.根据权利要求3所述的方法,所述以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符,包括:
从存储有所述密钥字符序列的双向链表中,以所述当前数据块的首个密钥字符为起始,按序确定出所述密钥字符序列中数量为所述当前数据块所包含字符数量的多个密钥字符。
6.根据权利要求5所述的方法,其特征在于,所述密钥字符序列中的一个密钥字符占用所述双向链表的一个节点,所述密钥字符序列中尾字符所对应节点的后继节点为所述密钥字符序列中的首字符所对应节点;
在确定所述当前数据块对应的多个密钥字符以形成所述当前数据块的动态密钥时,通过按所述间隔步长改变所述双向链表的头指针,使得定位至所述当前数据块的首个密钥字符在所述双向链表中对应的节点。
7.根据权利要求1所述的方法,其特征在于,在基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥之前,还包括:
将分割所得的每个数据块对应的二进制字符串存储于循环数组;
利用CA移位器对循环数组中的二进制字符串进行基于移位的数据旋转处理,以使得为旋转处理后得到的数据块构建对应的动态密钥。
8.根据权利要求1所述的方法,其特征在于,在得到数据块对应的密文数据块之后,还包括:
将所述数据对象的各数据块分别对应的密文数据块发送至云服务器进行存储;所述云服务器在获得数据请求方对所述数据对象的访问请求时,将所述数据对象对应的各个密文数据块发送至数据请求方,以由数据请求方通过解密所述各个密文数据块,重建所述数据对象;
其中,所述数据拥有方和所述数据请求方分别基于对称密钥方式执行对应的加解密处理。
9.一种基于密钥轮换的数据加密装置,应用于数据拥有方,其特征在于,所述装置包括:
数据获取单元,用于获取待加密的数据对象;
数据分割单元,用于将所述数据对象分割成至少一个数据块;
密钥构建单元,用于基于密钥轮换规则和预定的密钥字符序列,为每个数据块构建动态密钥;数据块的动态密钥由所述密钥字符序列中的至少部分密钥字符组成,数据块中的数据字符与数据块所对应动态密钥中的密钥字符按序一一对应;
数据加密单元,用于利用每个数据块的各个数据字符在相应动态密钥中分别对应的密钥字符,对每个数据块的各个数据字符进行编码,得到对应的密文数据块。
10.一种电子设备,其特征在于,包括:
存储器,用于至少存储一组计算机指令集;
处理器,用于调用并执行所述存储器中的所述计算机指令集,通过执行所述计算机指令集实现如权利要求1-8任一项所述的方法。
CN202310547195.0A 2023-05-15 2023-05-15 基于密钥轮换的数据加密方法、装置和电子设备 Pending CN116527235A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310547195.0A CN116527235A (zh) 2023-05-15 2023-05-15 基于密钥轮换的数据加密方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310547195.0A CN116527235A (zh) 2023-05-15 2023-05-15 基于密钥轮换的数据加密方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN116527235A true CN116527235A (zh) 2023-08-01

Family

ID=87395792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310547195.0A Pending CN116527235A (zh) 2023-05-15 2023-05-15 基于密钥轮换的数据加密方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN116527235A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118013558A (zh) * 2024-04-08 2024-05-10 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统
CN118133323A (zh) * 2024-05-06 2024-06-04 成都赛力斯科技有限公司 数据处理方法、装置、设备及介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118013558A (zh) * 2024-04-08 2024-05-10 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统
CN118013558B (zh) * 2024-04-08 2024-06-04 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统
CN118133323A (zh) * 2024-05-06 2024-06-04 成都赛力斯科技有限公司 数据处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
Atallah et al. Secure outsourcing of scientific computations
Wu et al. Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique
CN102460404B (zh) 生成混淆数据
CN116527235A (zh) 基于密钥轮换的数据加密方法、装置和电子设备
Goodrich Data-oblivious external-memory algorithms for the compaction, selection, and sorting of outsourced data
CN107819569A (zh) 登录信息的加密方法及终端设备
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN115622684B (zh) 基于全同态加密的隐私计算异构加速方法及装置
EP2953052B1 (en) Systems and methods for dynamic data storage
US10476661B2 (en) Polynomial-based homomorphic encryption
CN113852463A (zh) 一种量子图像加密方法及系统
Dolev et al. Privacy-preserving secret shared computations using mapreduce
Lam et al. Gpu-based private information retrieval for on-device machine learning inference
US11281688B2 (en) Ranking and de-ranking data strings
CN116015982B (zh) 一种网络安全数据传输的加密、解密方法及设备
CN112580114A (zh) 一种信息处理方法、装置、设备及存储介质
CN111798236A (zh) 交易数据加、解密方法、装置及设备
CN115622685A (zh) 隐私数据同态加密方法、装置及系统
Dass et al. Hybrid coherent encryption scheme for multimedia big data management using cryptographic encryption methods
CN113515773A (zh) 一种应用于单片机系统的图像内容保护模块及方法
Yu Unbalanced Big Data‐Compatible Cloud Storage Method Based on Redundancy Elimination Technology
CN116484443B (zh) 一种基于鸿蒙系统的可信安全存储方法及装置
Sayed et al. Split-n-Swap: A New Modification of the Twofish Block Cipher Algorithm
CN116841750B (zh) 集成加密算法的边缘计算设备
Yu et al. A Fast Recovery of Encrypted Message Database of WeChat On GPU

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination