CN114124359A - 保留格式加密数据的方法、装置、电子设备及存储介质 - Google Patents

保留格式加密数据的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114124359A
CN114124359A CN202111485409.3A CN202111485409A CN114124359A CN 114124359 A CN114124359 A CN 114124359A CN 202111485409 A CN202111485409 A CN 202111485409A CN 114124359 A CN114124359 A CN 114124359A
Authority
CN
China
Prior art keywords
data
key
encryption
characters
substitution table
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
CN202111485409.3A
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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Publication of CN114124359A publication Critical patent/CN114124359A/zh
Pending legal-status Critical Current

Links

Images

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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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

Abstract

本申请公开了一种保留格式加密数据的方法,所述方法包括:对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。本申请能够降低保留格式加密过程的资源消耗,提高加解密效率。本申请还公开了一种保留格式加密数据的装置、一种保留格式解密数据的方法、一种保留格式解密数据的装置、一种电子设备及一种存储介质,具有以上有益效果。

Description

保留格式加密数据的方法、装置、电子设备及存储介质
技术领域
本申请涉及数据加密技术领域,特别涉及一种保留格式加密数据的方法、一种保留格式加密数据的装置、一种保留格式解密数据的方法、一种保留格式解密数据的装置、一种电子设备及一种存储介质。
背景技术
保留格式加密(Format-Preserving Encryption)是一种特殊的加密技术,保留格式加密能够在实现机密性的同时,使得密文格式、长度等与明文相同。保留格式解密是保留格式加密的逆过程,能够将保留格式加密后的密文数据解密为明文数据。在数据遮蔽领域等一些对密文格式有特殊要求的领域中,往往需要使用保留格式加密和保留格式解密。现有的保留格式加解密算法存在实现效率低、资源消耗大的问题,限制了保形加解密算法的应用。
因此,如何降低保留格式加解密过程的资源消耗,提高加解密效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种保留格式加密数据的方法、保留格式加密数据的装置、一种保留格式解密数据的方法、一种保留格式解密数据的装置、一种电子设备及一种存储介质,能够降低保留格式加解密过程的资源消耗,提高加解密效率。
为解决上述技术问题,本申请提供一种保留格式加密数据的方法,该方法包括:
对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;
利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;
利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
可选的,利用SM4加密算法对字母表中的字符进行加密得到加密置换表,包括:
将所述字母表中的每一字符进行扩展得到预设位数的目标字符,并利用所述SM4加密算法分别对每一所述目标字符进行加密得到目标密文;
按照递增或递减的顺序对所有所述目标密文进行排序以使每个字符对应的密文字符为该字符的目标密文在排序序列中的位置,得到所述加密置换表。
可选的,所述对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥,包括:
根据应用环境设置最大明文字符串长度,并确定所述字母表的字符总数;
根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥。
可选的,根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥,包括:
根据所述最大明文字符串长度maxlen和所述字母表的字符总数base确定第一参数m和第二参数r;其中,所述第一参数m为符合第一约束条件的最小整数,所述第一约束条件为2m≥base;所述第二参数r为符合第二约束条件的最小整数,所述第二约束条件为r大于等于m乘以maxlen;
使用SM4密钥扩展算法分别对k、(k+1)mod 2128、(k+2)mod 2128、……、(k+r)mod2128进行密钥扩展得到多个扩展子密钥;其中,k为所述算法密钥,mod为整数模运算;
对所有所述扩展子密钥执行字符串连接操作得到所述扩展密钥。
可选的,利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,包括:
根据所述扩展密钥的部分密钥内容逐个计算所述明文数据中每一字符的索引值。
本申请还提供了一种保留格式解密数据的方法,包括:
获取密文数据;其中,所述密文数据由数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到,所述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合;
对所述加密置换表执行函数逆变换操作得到解密置换表;
利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
可选的,利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据,包括:
利用所述解密置换表查询所述密文数据中每一字符的密文字符,并根据所述密文字符和所述扩展密钥计算每一所述密文字符对应的明文字符;
根据所有所述明文字符确定所述明文数据。
本申请还提供了一种保留格式加密数据的装置,该装置包括:
密钥扩展模块,用于利用加密算法生成算法密钥,并对所述算法密钥执行密钥扩展操作得到扩展密钥;
加密置换表构建模块,用于根据所述加密算法对字母表中的字符进行加密得到加密置换表;
数据加密模块,用于利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
本申请还提供了一种保留格式解密数据的装置,包括:
密文获取模块,用于获取密文数据;其中,所述密文数据由数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到,所述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合;
解密置换表生成模块,用于对所述加密置换表执行函数逆变换操作得到解密置换表;
数据解密模块,用于利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述方法执行的步骤。
本申请提供了一种保留格式加密数据的方法,包括:对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
本申请对算法密钥进行扩展得到扩展密钥,利用加密算法对字母表中的字符进行加密得到加密置换表。在得到加密置换表之后,可以通过加密置换表计算明文数据中各个字符对应的密文字符。上述基于加密置换表进行保留格式加密的过程仅涉及模加操作和对加密置换表的元素访问操作,加密过程计算量较小,能够降低加密数据过程中对于资源的消耗。在得到加密置换表的基础上,可以执行多次数据加密操作无需反复构建加密置换表,进而降低加密数据过程中对于资源的消耗。因此,本申请能够降低保留格式加密过程的资源消耗,提高加密效率。
本申请还提供了一种保留格式解密数据的方法,对所述加密置换表执行函数逆变换操作得到解密置换表,利用扩展密钥和解密置换表执行保留格式加密的逆操作得到明文数据。在得到解密置换表的基础上,可以执行多次数据解密操作无需反复构建解密置换表,上述基于解密置换表的解密过程计算量较小,能够降低解密数据过程中对于资源的消耗。因此,本申请能够降低对保留格式加密数据进行解密的资源消耗,提高解密效率。
本申请同时还提供了一种保留格式加密数据的装置、一种保留格式解密数据的装置,一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种数据加密解密系统的架构图;
图2为本申请实施例所提供的一种数据加密解密系统中数据处理端的加密解密原理示意图;
图3为本申请实施例所提供的一种保留格式加密数据的方法的流程图;
图4为本申请实施例所提供的一种加密置换表的构建方法的流程图;
图5为本申请实施例所提供的一种保留格式解密数据的方法的流程图;
图6为本申请实施例所提供的一种保留格式加密数据的装置的结构示意图;
图7为本申请实施例所提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
数据加密的过程是对明文按某种算法进行处理,使其成为不可读的“密文”,进而达到保护数据不被非法人窃取、阅读的目的。常见的加密算法使用置换等技术对明文进行混淆,输出的密文格式与明文相比往往有很大不同。保留格式加密(Format-PreservingEncryption)是一种特殊的加密技术,在实现机密性的同时,密文格式、长度等与明文相同。保留格式加密广泛应用于数据遮蔽领域,在一些对密文格式有特殊要求的领域,也需要使用保留格式加密。现有的保留格式加密算法存在实现效率低、资源消耗大的问题,限制了保形加密算法的应用。同时,现有的保留格式加密算法能够加密整数数据,但难以加密较长的数字型数据。为了解决上述传统保留格式加密中存在的问题,本实施例通过以下几个实施方案提供新的保留格式加密数据方案。
为了便于理解本申请提供的方案,下面对本方案所适用的系统进行介绍。请参见图1,图1为本申请实施例提供的一种数据加密解密系统的架构图,如图1所示,该系统包括:数据发送端101、数据处理端102和数据接收端103。数据处理端102包括以下三个功能模块:密码环境构造模块、明文加密模块和密文解密模块。密码环境构造模块可以在数据处理端102开始运行时执行扩展密钥、构造加密置换表和构造解密置换表的密码环境构造操作。在数据加密过程中,数据发送端101将明文数据发送至数据处理端102,数据处理端102中的明文加密模块利用加密置换表对明文数据进行保留格式加密得到密文数据以便将密文数据传输至数据接收端103。在数据解密过程中,数据发送端101将密文数据发送至数据处理端102,数据处理端102中的密文解密模块利用解密置换表对密文数据进行解密得到明文数据以便将明文数据传输至数据接收端103。在上述加密、解密过程中,数据处理端102可以利用已构造的加密置换表和解密置换表进行加密和解密,加密和解密过程计算量较少,能够减少对于资源的消耗,提高了保留格式加密数据和解密数据的效率。
请参见图2,图2为本申请实施例所提供的一种数据加密解密系统中数据处理端的加密解密原理示意图,本实施例是对图1对应实施例中数据处理端加密数据和解密数据过程的进一步介绍,本实施例可以基于SM4加密算法实现。如图2所示,数据处理端中的加密算法包括三个部分:密码环境构造、数据加密、数据解密。其中,密码环境构造部分用于实现密钥扩展、构造解密置换表、构造加密置换表;数据加密部分用于实现加密置换功能;数据解密部分用于实现解密置换功能。数据处理端只需要在开始运行时执行一次密码环境构造操作,后续可以执行多次数据加密、数据解密。在上述过程中,可以使用SM4的加密功能为构造解密置换表和加密置换表提供安全性,密钥扩展时可以使用SM4的密钥扩展算法。
下面请参见图3,图3为本申请实施例所提供的一种保留格式加密数据的方法的流程图。
具体步骤可以包括:
S301:对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;
其中,本实施例可以应用于计算机、服务器等数据处理端,以便将明文数据进行加密处理得到相同格式的密文数据。上本实施例可以利用SM4加密算法生成算法密钥,并对算法密钥执行密钥扩展操作得到扩展密钥,以使扩展密钥能够支持保留格式加密置换以及解密置换操作。
作为一种可行的实施方式,本实施例可以先确定密钥扩展操作的预设长度区间,进而根据扩展约束条件对算法密钥执行密钥扩展操作得到扩展密钥,以使得到的扩展密钥的位数在预设长度区间。
S302:利用SM4加密算法对字母表中的字符进行加密得到加密置换表;
其中,字母表可以为包括多个不同数字符号的集合,本实施例不限定字母表中数字符号的排列顺序,既可以乱序排列也可以顺序排列。例如可以使用字符总数为base的字母表,该字母表为集合{0,1,2,……,base-1}。由于本实施例所使用的加密算法为SM4算法,故可以限制字母表中的字符总数小于或等于2128
具体的,本实施例可以利用加密算法生成密钥,并利用加密算法生成的密钥对字母表中的字符进行加密,得到每一字符对应的目标密文。通过汇总字母表中的所有字符对应的目标密文得到加密置换表。
S303:利用扩展密钥对明文数据中的字符执行模加计算得到索引值,并查询加密置换表与所述索引值对应的密文字符,得到与明文数据格式相同的密文数据。
在得到扩展密钥和加密置换表之后,本实施例可以基于扩展密钥和加密置换表实现保留格式加密,具体过程如下:确定明文数据,利用扩展密钥对明文数据中的字符执行模加计算得到各个字符对应的索引值,并将加密置换表中与该索引值对应的密文字符作为对明文数据中字符对应的密文字符。在得到明文数据中所有字符对应的密文字符后,可以利用所有密文字符生成与所述明文数据格式相同的密文数据。
本实施例对算法密钥进行扩展得到扩展密钥,还利用加密算法对字母表中的字符进行加密得到加密置换表。在得到加密置换表之后,可以通过加密置换表计算明文数据中各个字符对应的密文字符。上述基于加密置换表进行保留格式加密的过程仅涉及模加操作和对加密置换表的元素访问操作,加密过程计算量较小,能够降低加密数据过程中对于资源的消耗。在得到加密置换表的基础上,可以执行多次数据加密操作无需反复构建加密置换表,进而降低加密数据过程中对于资源的消耗。因此,本实施例能够降低保留格式加密过程的资源消耗,提高加密效率。
作为一种可行的实施方式,本实施例可以利用字母表将非数字型字符串转化为数字型字符串,以提高保留格式加密数字型数据的效率。在加密数字型数据时,可以根据所述扩展密钥的部分密钥内容逐个计算所述明文数据中每一字符的索引值,数据的加密长度不受限制,可以实现对于较长数字型数据的保留格式加密。
上述将非数字型字符串转化为数字型字符串的过程如下:在利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值之前,获取待加密数据;判断所述待加密数据是否为数字字符串;若是,则将所述待加密数据设置为所述明文数据;若否,则利用所述字母表将所述待加密数据映射为数字字符串,得到所述明文数据。为了防止混淆,在利用所述字母表将所述待加密数据映射为数字字符串之后,还可以在所述数字字符串之间添加空格进行分割。在得到加密数据对应的密文数据后,本实施例还可以利用字母表将密文数据转化为非数字型字符串进行输出。
举例说明上述利用字母表进行字符串映射得到数字型字符串的方案:用base表示字母表的字符个数,字母表为集合{0,1,…,base-1},每个字符是十进制数,base≤2128。如果需要进行保留格式加密的字符串不是数字型字符串,则先使用字母表将其转换为数字字符串。例如,对于小写英文字母表{a,b,c,…,z},可以定义映射:a→0,b→1,c→2,…,z→25,那么,字符串hello则转换为数字字符串7 4 11 11 13,其长度是5。
作为对于图3对应实施例的进一步介绍,具体可以通过以下方式对算法密钥执行密钥扩展操作得到扩展密钥:根据应用环境设置最大明文字符串长度,并确定所述字母表的字符总数;根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥。
以实际应用中的例子说明上述扩展算法密钥的实现方式:根据所述最大明文字符串长度maxlen和所述字母表的字符总数base确定第一参数m和第二参数r;其中,所述第一参数m为符合第一约束条件的最小整数,所述第一约束条件为2m≥base;所述第二参数r为符合第二约束条件的最小整数,所述第二约束条件为r大于等于m乘以maxlen(即,r≥m×maxlen);使用SM4密钥扩展算法分别对k、(k+1)mod 2128、(k+2)mod 2128、……、(k+r)mod2128进行密钥扩展得到多个扩展子密钥;其中,k为所述算法密钥,mod为整数模运算;对所有所述扩展子密钥执行字符串连接操作得到所述扩展密钥。上述得到的扩展子密钥可以包括:ek0,ek1,ek2,…,ekr。执行字符串连接操作后,得到的扩展密钥ek=ek0||ek1||ek2||…||ekr;||表示字符串连接操作。
在上述实施例中可以使用SM4的密钥扩展算法把密钥k扩展到与明文数据长度相对应的长度,以支持SM4加密、加密置换和解密置换过程。
请参见图4,图4为本申请实施例所提供的一种加密置换表的构建方法的流程图,本实施例是对图3对应实施例的进一步介绍,可以将本实施例与图3对应的实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
S401:将字母表中的每一字符进行扩展得到预设位数的目标字符;
其中,本实施例可以通过高位补零的方式对字母表中的字符进行扩展,得到预设位数的目标字符。本实施例可以将加密算法的密文最大加密长度作为目标字符的位数;例如,若加密算法为SM4加密算法,则可以将字母表中的每一字符进行扩展得到128位的目标字符。
S402:利用所述SM4加密算法分别对每一所述目标字符进行加密得到目标密文;
其中,本实施例可以根据加密算法生成用于加密目标字符的密钥,并利用该密钥分别对每一所述目标字符进行加密得到目标密文。
S403:按照递增或递减的顺序对所有所述目标密文进行排序以使每个字符对应的密文字符为该字符的目标密文在排序序列中的位置,得到所述加密置换表。
目标密文为预设位数的整数,可以按照高位在前、低位在后的规则对目标密文进行从小到大或从大到小的排序,并按照排序结果依次将目标密文添加至一维数组中,得到加密置换表。在构建加密置换表之后,可以利用加密置换表进行多次保留格式的数据加密操作,无需重新构建加密置换表,提高了保留格式加密过程的效率。
下面举例说明基于SM4加密算法的加密置换表构建过程:
例如,字母表为集合{0,1,2,……,base-1},可以将0,1,……,base-1扩展为128位的二进制字符。例如,0扩展为0x 0000 0000 0000 0000,10扩展为0x 0000 0000 00001010。使用ECB(Electronic Codebook,电码本)模式和密钥k(对应的扩展密钥是ek0),使用SM4加密算法对扩展后的数字分别加密,得到的密文依次为c0,c1,……,cbase-1。把c0,c1,……,cbase-1这些密文看作128位整数(高位在前,低位在后)从大到小进行排序,位置0的密文最大,位置base-1的密文最小,记排序序列为S。最终得到的加密置换表是一个大小为base的一维数组,记为Ptable_enc。Ptable_enc[0]的值是c0在S中的位置,Ptable_enc[1]的值是c1在S中的位置,即,Ptable_enc[i]的值是ci在S中的位置,i为0至base-1之间(包括0和base-1)的整数。
请参见图5,图5为本申请实施例所提供的一种保留格式解密数据的方法的流程图,本实施例介绍了对图3对应实施例中得到的密文数据进行解密的具体过程,本实施例可以在数据解密端实现,还可以将本实施例与图3对应的实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
S501:获取密文数据;
其中,上述密文数据可以为数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到。具体的,上述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合。上述保留格式加密的过程可以包括:利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
S502:对加密置换表执行函数逆变换操作得到解密置换表;
其中,在根据所述加密算法对字母表中的字符进行加密得到加密置换表的基础上,可以对加密置换表执行函数逆变换操作得到解密置换表。例如,若字母表的字符总数为base,相应的解密置换表为一个大小为base的一维数组,记为Ptable_dec。加密置换表是一个大小为base的一维数组,记为Ptable_enc。如果把数组看做一个函数,自变量是数组的下标,因变量是数组下标处的值,那么Ptable_dec是函数Ptable_enc的逆函数。即,Ptable_dec[i]的值是Ptable_enc中值为i的元素对应的下标。
S503:利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
本实施例对算法密钥进行扩展得到扩展密钥,还利用加密算法对字母表中的字符进行加密得到加密置换表。密文数据根据加密置换表和扩展密钥生成,在得到加密置换表之后,本实施例对所述加密置换表执行函数逆变换操作得到解密置换表,利用扩展密钥和解密置换表执行保留格式加密的逆操作得到明文数据。在得到解密置换表的基础上,可以执行多次数据解密操作无需反复构建解密置换表,上述基于解密置换表的解密过程计算量较小,能够降低解密数据过程中对于资源的消耗。因此,本实施例能够降低对保留格式加密数据进行解密的资源消耗,提高解密效率。
作为一种可行的实施方式,在S501之前还可以存在接收解密之解密指令的操作,在得到解密指令后,可以根据解密指令确定需要进行解密的密文数据,并利用解密置换表解密密文数据得到明文数据(即,前文中未经加密的明文数据)。具体的,本实施例可以利用所述解密置换表查询所述密文数据中每一字符的密文字符,并根据所述密文字符和所述扩展密钥计算每一所述密文字符对应的明文字符;根据所有所述明文字符确定所述明文数据。上述过程中可以利用扩展密钥对上述密文字符进行模加计算的逆操作得到密文字符对应的明文字符。
下面通过实际的例子说明上述利用加密置换表加密数据、以及利用解密置换表解密数据的过程:
例如,明文数据为p=p[1]p[2]…p[n],其中,每个p[i]为base字母表的一个数字,n是不小于1的整数,i是1至n之间(包括1和n)的整数,p的长度是n,n<maxlen,maxlen为加密算法支持的最大字符串长度。对于明文p的加密过程如下:对于每个明文数字p[i]执行如下操作:步骤①、从ek1开始,从左到右,从ek中取第i个m位二进制数记为eki。把eki看作整数,左侧是高位,把p[i]看作其数字代表的整数(比如,0表示整数0)。步骤②、计算索引index=p[i]+eki mod base。步骤③、查找加密置换表进行置换,即p[i]加密后的密文是Ptable_enc[index],记为p[i]’。明文p的密文是p[1]’p[2]’…p[n]’。
对于密文(IV,p[1]’p[2]’…p[n]’)的解密过程是:对于每个密文数字p[i]’执行如下操作:步骤①、把p[i]’看作其数字代表的整数(比如,0表示整数0),查找解密置换表进行置换,得到Ptable_dec[p[i]’]。步骤②、从ek1开始,从左到右,从ek中取第i个m位二进制数,记为eki,把eki看作整数,左侧是高位。最后,计算p[i]=Ptable_dec[p[i]’]-eki modbase。密文p[1]’p[2]’…p[n]’的明文是p=p[1]p[2]…p[n]。
上述实施例中从ek中取第i个m位二进制数的过程,相当于将ek划分为多个m位的二进制字符串,在取第i个m位二进制数时将从左向右数第i个m位的二进制字符串作为eki。例如,当m=1024时,从左向右数第一次选取ek的第1~1024位作为ek1,第二次选取ek的第1025~2048位作为ek2
请参见图6,图6为本申请实施例所提供的一种保留格式加密数据的装置的结构示意图;
该装置可以包括:
密钥扩展模块601,用于对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;
加密置换表构建模块602,用于利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;
数据加密模块603,用于利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
本实施例对算法密钥进行扩展得到扩展密钥,还利用加密算法对字母表中的字符进行加密得到加密置换表。在得到加密置换表之后,可以通过加密置换表计算明文数据中各个字符对应的密文字符。上述基于加密置换表进行保留格式加密的过程仅涉及模加操作和对加密置换表的元素访问操作,加密过程计算量较小,能够降低加密数据过程中对于资源的消耗。在得到加密置换表的基础上,可以执行多次数据加密操作无需反复构建加密置换表,进而降低加密数据过程中对于资源的消耗。因此,本实施例能够降低保留格式加密过程的资源消耗,提高加密效率。
进一步的,加密置换表构建模块602,用于将所述字母表中的每一字符进行扩展得到预设位数的目标字符,并利用所述SM4加密算法分别对每一所述目标字符进行加密得到目标密文;按照递增或递减的顺序对所有所述目标密文进行排序以使每个字符对应的密文字符为该字符的目标密文在排序序列中的位置,得到所述加密置换表。
进一步的,密钥扩展模块601包括:
参数确定单元,用于根据应用环境设置最大明文字符串长度,并确定所述字母表的字符总数;
扩展单元,用于根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥。
进一步的,所述扩展单元用于根据所述最大明文字符串长度maxlen和所述字母表的字符总数base确定第一参数m和第二参数r;其中,所述第一参数m为符合第一约束条件的最小整数,所述第一约束条件为2m≥base;所述第二参数r为符合第二约束条件的最小整数,所述第二约束条件为r大于等于m乘以maxlen;还用于使用SM4密钥扩展算法分别对k、(k+1)mod 2128、(k+2)mod 2128、……、(k+r)mod 2128进行密钥扩展得到多个扩展子密钥;其中,k为所述算法密钥,mod为整数模运算;还用于对所有所述扩展子密钥执行字符串连接操作得到所述扩展密钥。
进一步的,数据加密模块603用于根据所述扩展密钥的部分密钥内容逐个计算所述明文数据中每一字符的索引值。
进一步的,还包括:
明文数据确定模块,用于在根据所述扩展密钥计算明文数据中字符的索引值之前,获取待加密数据;还用于判断所述待加密数据是否为数字字符串;若是,则将所述待加密数据设置为所述明文数据;若否,则利用所述字母表将所述待加密数据映射为数字字符串,得到所述明文数据。
进一步的,还包括:
字符串分割模块,用于在利用所述字母表将所述待加密数据映射为数字字符串之后,还用于在所述数字字符串之间添加空格进行分割。
本申请实施例所提供的一种保留格式解密数据的装置,该装置可以包括:
密文获取模块,用于获取密文数据;其中,所述密文数据由数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到,所述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合;
解密置换表生成模块,用于对所述加密置换表执行函数逆变换操作得到解密置换表;
数据解密模块,用于利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
本实施例对算法密钥进行扩展得到扩展密钥,还利用加密算法对字母表中的字符进行加密得到加密置换表。密文数据根据加密置换表和扩展密钥生成,在得到加密置换表之后,本实施例对所述加密置换表执行函数逆变换操作得到解密置换表,利用扩展密钥和解密置换表执行保留格式加密的逆操作得到明文数据。在得到解密置换表的基础上,可以执行多次数据解密操作无需反复构建解密置换表,上述基于解密置换表的解密过程计算量较小,能够降低解密数据过程中对于资源的消耗。因此,本实施例能够降低对保留格式加密数据进行解密的资源消耗,提高解密效率。
进一步的,所述数据解密模块,用于利用所述解密置换表查询所述密文数据中每一字符的密文字符,并根据所述密文字符和所述扩展密钥计算每一所述密文字符对应的明文字符;还用于根据所有所述明文字符确定所述明文数据。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,参见图7,本申请实施例提供的一种电子设备的结构图,如图7所示,可以包括处理器710和存储器720。
其中,处理器710可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器710可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器710也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器710可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器710还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器720可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器720还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器720至少用于存储以下计算机程序721,其中,该计算机程序被处理器710加载并执行之后,能够实现前述任一实施例公开的保留格式加密数据的方法和/或保留格式解密数据的方法中的相关步骤。另外,存储器720所存储的资源还可以包括操作系统722和数据723等,存储方式可以是短暂存储或者永久存储。其中,操作系统722可以包括Windows、Linux、Android等。
在一些实施例中,电子设备还可包括有显示屏730、输入输出接口740、通信接口750、传感器760、电源770以及通信总线780。
当然,图7所示的电子设备的结构并不构成对本申请实施例中电子设备的限定,在实际应用中电子设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种保留格式加密数据的方法,其特征在于,包括:
对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;
利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;
利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
2.根据权利要求1所述保留格式加密数据的方法,其特征在于,所述利用SM4加密算法对字母表中的字符进行加密得到加密置换表,包括:
将所述字母表中的每一字符进行扩展得到预设位数的目标字符,并利用所述SM4加密算法分别对每一所述目标字符进行加密得到目标密文;
按照递增或递减的顺序对所有所述目标密文进行排序以使每个字符对应的密文字符为该字符的目标密文在排序序列中的位置,得到所述加密置换表。
3.根据权利要求1所述保留格式加密数据的方法,其特征在于,所述对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥,包括:
根据应用环境设置最大明文字符串长度,并确定所述字母表的字符总数;
根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥。
4.根据权利要求3所述保留格式加密数据的方法,其特征在于,根据所述最大明文字符串长度和所述字母表的字符总数对所述算法密钥执行基于SM4的密钥扩展操作得到所述扩展密钥,包括:
根据所述最大明文字符串长度maxlen和所述字母表的字符总数base确定第一参数m和第二参数r;其中,所述第一参数m为符合第一约束条件的最小整数,所述第一约束条件为2m≥base;所述第二参数r为符合第二约束条件的最小整数,所述第二约束条件为r大于等于m乘以maxlen;
使用SM4密钥扩展算法分别对k、(k+1)mod 2128、(k+2)mod 2128、……、(k+r)mod 2128进行密钥扩展得到多个扩展子密钥;其中,k为所述算法密钥,mod为整数模运算;
对所有所述扩展子密钥执行字符串连接操作得到所述扩展密钥。
5.根据权利要求1至4任一项所述保留格式加密数据的方法,其特征在于,利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,包括:
根据所述扩展密钥的部分密钥内容逐个计算所述明文数据中每一字符的索引值。
6.一种保留格式解密数据的方法,其特征在于,包括:
获取密文数据;其中,所述密文数据由数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到,所述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合;
对所述加密置换表执行函数逆变换操作得到解密置换表;
利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
7.根据权利要求6所述保留格式解密数据的方法,其特征在于,利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据,包括:
利用所述解密置换表查询所述密文数据中每一字符的密文字符,并根据所述密文字符和所述扩展密钥计算每一所述密文字符对应的明文字符;
根据所有所述明文字符确定所述明文数据。
8.一种保留格式加密数据的装置,其特征在于,包括:
密钥扩展模块,用于对算法密钥执行基于SM4的密钥扩展操作得到扩展密钥;
加密置换表构建模块,用于利用SM4加密算法对字母表中的字符进行加密得到加密置换表;其中,所述字母表为多个数字字符的集合;
数据加密模块,用于利用所述扩展密钥对明文数据中的字符执行模加计算得到索引值,并使用所述索引值查询所述加密置换表,得到与所述明文数据格式相同的密文数据。
9.一种保留格式解密数据的装置,其特征在于,包括:
密文获取模块,用于获取密文数据;其中,所述密文数据由数据加密端使用扩展密钥和加密置换表对明文数据进行保留格式加密得到,所述扩展密钥通过对算法密钥执行基于SM4的密钥扩展操作得到,所述加密置换表通过利用SM4加密算法对字母表中的字符进行加密得到,所述字母表为多个数字字符的集合;
解密置换表生成模块,用于对所述加密置换表执行函数逆变换操作得到解密置换表;
数据解密模块,用于利用所述扩展密钥和所述解密置换表解密所述密文数据,得到所述明文数据。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至5任一项所述保留格式加密数据的方法和/或权利要求6和7中任一项保留格式解密数据的方法的步骤。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至5任一项所述保留格式加密数据的方法和/或权利要求6和7中任一项保留格式解密数据的方法的步骤。
CN202111485409.3A 2021-04-02 2021-12-07 保留格式加密数据的方法、装置、电子设备及存储介质 Pending CN114124359A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110360731.7A CN113726501A (zh) 2021-04-02 2021-04-02 保留格式加密数据的方法、装置、电子设备及存储介质
CN2021103607317 2021-04-02

Publications (1)

Publication Number Publication Date
CN114124359A true CN114124359A (zh) 2022-03-01

Family

ID=78672610

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110360731.7A Pending CN113726501A (zh) 2021-04-02 2021-04-02 保留格式加密数据的方法、装置、电子设备及存储介质
CN202111485409.3A Pending CN114124359A (zh) 2021-04-02 2021-12-07 保留格式加密数据的方法、装置、电子设备及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110360731.7A Pending CN113726501A (zh) 2021-04-02 2021-04-02 保留格式加密数据的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (2) CN113726501A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240585A (zh) * 2023-10-18 2023-12-15 北京海泰方圆科技股份有限公司 一种数据加密方法、装置及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240585A (zh) * 2023-10-18 2023-12-15 北京海泰方圆科技股份有限公司 一种数据加密方法、装置及介质

Also Published As

Publication number Publication date
CN113726501A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN106850221B (zh) 信息加密、解密方法及装置
US7801307B2 (en) Method of symmetric key data encryption
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
JP5000365B2 (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JPH08248879A (ja) 2つの鍵を使用して暗号化する方法および装置
KR20190039850A (ko) 비트-믹서들로부터 안전한 해시 함수를 구성하는 방법
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP2008513811A (ja) 計算変換の方法及びシステム
Singh Modified Vigenere encryption algorithm and its hybrid implementation with Base64 and AES
CN113824547A (zh) 保留格式的加密和解密方法、装置、电子设备和介质
Courtois et al. Combined algebraic and truncated differential cryptanalysis on reduced-round simon
Joshy et al. Text to image encryption technique using RGB substitution and AES
Vyakaranal et al. Performance analysis of symmetric key cryptographic algorithms
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
JP2004258667A (ja) N個のデジットを含むワードの擬似ランダム置換の生成方法
Tiwari Cryptography in blockchain
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN115114279A (zh) 置换表生成方法、数据加、解密方法及装置、介质、设备
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
CN110071927B (zh) 一种信息加密方法、系统及相关组件
US7505586B2 (en) Method for computer-based encryption and decryption of data
US8437472B2 (en) Strengthened key schedule for arcfour
Kothandan Modified Blowfish Algorithm to Enhance its Performance and Security
Patro et al. Text-to-Image Encryption and Decryption Using Piece Wise Linear Chaotic Maps
JP2003115831A (ja) 共通鍵生成方法並びにその共通鍵を用いる暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置

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