CN117240585B - 一种数据加密方法、装置及介质 - Google Patents

一种数据加密方法、装置及介质 Download PDF

Info

Publication number
CN117240585B
CN117240585B CN202311354577.8A CN202311354577A CN117240585B CN 117240585 B CN117240585 B CN 117240585B CN 202311354577 A CN202311354577 A CN 202311354577A CN 117240585 B CN117240585 B CN 117240585B
Authority
CN
China
Prior art keywords
information
data
combined value
ciphertext
quotient
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.)
Active
Application number
CN202311354577.8A
Other languages
English (en)
Other versions
CN117240585A (zh
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.)
Beijing Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High 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 Beijing Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN202311354577.8A priority Critical patent/CN117240585B/zh
Publication of CN117240585A publication Critical patent/CN117240585A/zh
Application granted granted Critical
Publication of CN117240585B publication Critical patent/CN117240585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据加密方法、装置及介质,该方法包括:获取待加密数据对应的第一信息,第一信息为M个信息中的一个,待加密数据为M个数据中的一个数据,M个信息与所述M个数据一一对应,M为大于或等于2的整数,M个数据中任意两个数据的格式相同;根据第一拆分规则将所述第一信息拆分为第一信息的商和第一信息的余数,根据第一信息的余数和第一信息的商获得第一索引。根据第一索引从M个数据中确定待加密数据的密文。可理解的,由于M个数据中的数据具有相同的格式,则可以将M个数据中与第一索引对应的数据作为待加密数据的保留格式加密的密文。因此,采用该方法可以提高对待加密数据进行保留格式加密的加密效率。

Description

一种数据加密方法、装置及介质
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数据加密方法、装置及介质。
背景技术
随着信息安全技术的发展,数据加密的方式也越来越多。保留格式加密算法是一种特殊对称加密算法,该算法可以实现加密后的密文的格式与加密前的明文的格式相同。例如,使用保留格式加密算法对某个手机号码加密获得的密文为另外一个手机号码,也就是说,使用该算法对手机号码加密获得的密文的格式与手机号码的格式相同。
在存储数据时,某些数据库需要对存储的数据的合规性进行有效性检验,若不符合当前集合的规律则会发生报错。使用保留格式加密算法对数据进行加密,保持加密前后的数据格式不变,可以避免出现密文格式不符合当前集合的规律的情况,从而也无需更改当前集合的规律。
目前现有技术中的保留格式加密算法(Format-Preserving Encryption),通常是采用FF1或FF3-1保留格式加密算法对数据加密,实现加密前后的数据的格式保持不变。但是,现有技术中的保留格式加密算法的加密效率较低。因此,如何提高保留格式加密算法的加密效率成为该技术领域的关键点。
发明内容
本申请实施例提供一种数据加密方法、装置及介质,用以提高加密数据的效率。
第一方面,本申请实施例提供了一种数据加密方法。该方法包括:获取待加密数据对应的第一信息,第一信息为M个信息中的一个,待加密数据为M个数据中的一个数据,M个信息与M个数据一一对应,M为大于或等于2的整数,M个数据中任意两个数据的格式相同。根据第一拆分规则将第一信息拆分为第一信息的商和第一信息的余数,第一信息的商为第一信息除以C后的整数商,第一信息的余数为第一信息模C的余数,C为预设的大于或等于2的整数。根据第一信息的余数和第一信息的商获得第一索引,第一索引包括在M个信息中。根据第一索引从M个数据中确定待加密数据的密文。
采用该方法,将待加密数据映射为第一信息,对待加密数据加密可以等价于对第一信息进行加密,并且加密第一信息所得的信息与第一信息属于相同的信息集合。加密第一信息所得的信息对应的数据与待加密数据均属于M个数据构成的数据集合,其中,M个数据构成的数据集合中的任何两个数据的格式相同,因此从该数据集合中确定的密文的格式与待加密数据相同,则可以将加密第一信息所得的信息对应的数据作为待加密数据的密文,实现对待加密数据的保留格式加密。由于加密第一信息的运算量较低、加密效率较高,则采用该方法可以提高对数据进行保留格式加密的加密效率。此外,现有技术中通常是直接对第一信息进行转换获得第一索引,而在本申请中先采用C对第一信息进行取模和/或整除获得第一信息的余数和第一信息的商,再根据第一信息的余数和第一信息的商获得第一索引,采用该方式可以提高数据的混合与扩散的效果,从而保证数据的安全性。
在一种可能的设计中,根据第一信息的余数和第一信息的商获得第一索引,包括:根据第一数据转换表对第一信息的商进行数据转换,获得第一转换信息。其中,第一数据转换表包含N1个数值,N1为小于M的正整数。根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值,第一合并规则对应于第一拆分规则。或者,根据第一数据转换表对第一信息的余数进行数据转换,获得第一转换信息,第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与第一信息的商进行合并,获得合并值,第一合并规则对应于第一拆分规则。根据第一轮密钥加密合并值,获得第一索引,第一轮密钥为预设的小于M的非负整数。
在一种可能的设计中,根据第一数据转换表对第一信息的商进行数据转换,获得第一转换信息,包括:根据第一信息的商和N1获得i个第一数值,i为设定的正整数。根据第一数据转换表将i个第一数值转换为i个第二数值。将i个第二数值进行组合,获得第一转换信息。
基于该设计,由于第一数据转换表的包含N1个数值,则第一数据转换表仅可以对[0,N1-1]范围内的数值进行数据转换。若第一信息的商大于N1-1,则无法根据第一数据转换表对第一信息的商进行转换。因此,为了保证第一信息的商均可以通过第一数据转换表进行数据转换,可以将第一信息的商拆分为i个第一数值。其中,第一数值均小于N1-1。根据第一数据转换表分别对i个第一数值进行转换,并将转换后数值进行组合获得第一转换信息。即第一转换信息为将第一信息的商进行转换后的数据。
在一种可能的设计中,根据第一信息的余数和N1获得j个第三数值,j为设定的正整数。根据第一数据转换表将j个第三数值转换为j个第四数值。将j个第四数值进行组合,获得第一转换信息。
基于该设计,由于第一数据转换表的包含N1个数值,则第一数据转换表仅可以对[0,N1-1]范围内的数值进行数据转换。若第一信息的余数大于N1-1,则无法根据第一数据转换表对第一信息的余数进行转换。因此,为了保证第一信息的余数均可以通过第一数据转换表进行数据转换,可以将第一信息的余数拆分为j个第三数值。其中,第三数值均小于N1-1。根据第一数据转换表分别对j个第三数值进行转换,并将转换后数值进行组合获得第一转换信息。即第一转换信息为将第一信息的余数进行转换后的数据。
在一种可能的设计中,根据第一轮密钥加密合并值,获得第一索引,包括:根据第一轮密钥加密合并值,获得合并值的密文。根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,第二数据转换表包含N2个数值,N2为小于M的正整数。根据第二轮密钥加密第二信息,获得第一索引。
在一种可能的设计中,根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,包括:根据第二拆分规则将合并值的密文拆分为合并值密文的商和合并值密文的余数,合并值密文的商为合并值的密文除以Q后的整数商,合并值密文的余数为合并值的密文模Q的余数,Q为预设的大于或等于2的整数。根据第二数据转换表对合并值密文的余数进行数据转换,获得第二转换信息。根据第二合并规则,将第二转换信息与合并值密文的商进行合并,获得第二信息,第一合并规则对应于第一拆分规则。或者,根据第二数据转换表对合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将第二转换信息与合并值密文的余数进行合并,获得第二信息,第一合并规则对应于第一拆分规则。
在一种可能的设计中,根据第二数据转换表对合并值密文的余数进行数据转换,获得第二转换信息,包括:根据合并值密文的余数和N2获得k个第五数值,k为设定的正整数。根据第二数据转换表将k个第五数值转换为k个第六数值。将k个第六数值进行组合,获得第二转换信息。
基于该设计,由于第二数据转换表的包含N2个数值,则第二数据转换表仅可以对[0,N2-1]范围内的数值进行数据转换。若合并值密文的余数大于N2-1,则无法根据第二数据转换表对合并值密文的余数进行转换。因此,为了保证合并值密文的余数均可以通过第二数据转换表进行数据转换,可以将合并值密文的余数拆分为k个第五数值。其中,第五数值均小于N2-1。根据第二数据转换表分别对k个第五数值进行转换,并将转换后数值进行组合获得第二转换信息。即第二转换信息为将合并值密文的余数进行转换后的数据。
在一种可能的设计中,根据合并值密文的商和N2获得p个第七数值,p为设定的正整数。根据第二数据转换表将p个第七数值转换为p个第八数值。将p个第八数值进行组合,获得第二转换信息。
基于该设计,由于第二数据转换表的包含N2个数值,则第二数据转换表仅可以对[0,N2-1]范围内的数值进行数据转换。若合并值密文的商大于N2-1,则无法根据第二数据转换表对合并值密文的商进行转换。因此,为了保证合并值密文的商均可以通过第二数据转换表进行数据转换,可以将合并值密文的商拆分为p个第七数值。其中,第七数值均小于N2-1。根据第二数据转换表分别对p个第七数值进行转换,并将转换后数值进行组合获得第二转换信息。即第二转换信息为将合并值密文的商进行转换后的数据。
第二方面,本申请实施例提供了一种数据加密装置。该装置包括:
通信模块,用于获取待加密数据对应的第一信息,第一信息为M个信息中的一个,待加密数据为M个数据中的一个数据,M个信息与M个数据一一对应,M为大于或等于2的整数,M个数据中任意两个数据的格式相同。处理模块,用于根据第一拆分规则将第一信息拆分为第一信息的商和第一信息的余数,第一信息的商为第一信息除以C后的整数商,第一信息的余数为第一信息模C的余数,C为预设的大于或等于2的整数。处理模块,还用于根据第一信息的余数和第一信息的商获得第一索引,第一索引包括在M个信息中。处理模块,还用于根据第一索引从M个数据中确定待加密数据的密文。
在一种可能的设计中,处理模块具体用于,根据第一数据转换表对第一信息的商进行数据转换,获得第一转换信息,其中,第一数据转换表包含N1个数值,N1为小于M的正整数。根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值,第一合并规则对应于第一拆分规则。或者,根据第一数据转换表对第一信息的余数进行数据转换,获得第一转换信息,第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与第一信息的商进行合并,获得合并值,第一合并规则对应于第一拆分规则。根据第一轮密钥加密合并值,获得第一索引,第一轮密钥为预设的小于M的非负整数。
在一种可能的设计中,处理模块具体用于,根据第一信息的商和N1获得i个第一数值,i为设定的正整数。根据第一数据转换表将i个第一数值转换为i个第二数值。将i个第二数值进行组合,获得第一转换信息。
在一种可能的设计中,处理模块具体用于,根据第一轮密钥加密合并值,获得合并值的密文。根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,第二数据转换表包含N2个数值,N2为小于M的正整数。根据第二轮密钥加密第二信息,获得第一索引。
在一种可能的设计中,处理模块具体用于,根据第一信息的余数和N1获得j个第三数值,j为设定的正整数。根据第一数据转换表将j个第三数值转换为j个第四数值。将j个第四数值进行组合,获得第一转换信息。
在一种可能的设计中,处理模块具体用于,根据第二拆分规则将合并值的密文拆分为合并值密文的商和合并值密文的余数,合并值密文的商为合并值的密文除以Q后的整数商,合并值密文的余数为合并值的密文模Q的余数,Q为预设的大于或等于2的整数。根据第二数据转换表对合并值密文的余数进行数据转换,获得第二转换信息。根据第二合并规则,将第二转换信息与合并值密文的商进行合并,获得第二信息,第一合并规则对应于第一拆分规则。或者,根据第二数据转换表对合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将第二转换信息与合并值密文的余数进行合并,获得第二信息,第一合并规则对应于第一拆分规则。
在一种可能的设计中,处理模块具体用于,根据合并值密文的余数和N2获得k个第五数值,k为设定的正整数。根据第二数据转换表将k个第五数值转换为k个第六数值。将k个第六数值进行组合,获得第二转换信息。
在一种可能的设计中,处理模块具体用于,根据合并值密文的商和N2获得p个第七数值,p为设定的正整数。根据第二数据转换表将p个第七数值转换为p个第八数值。将p个第八数值进行组合,获得第二转换信息。
第三方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现如上述第一方面及其任一可能的设计的方法,或者,实现如上述第二方面及其任一可能的设计的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现如上述第一方面及其任一可能的设计的方法,或者,实现如上述第二方面及其任一可能的设计的方法。
第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据加密方法的流程示意图;
图2为本申请实施例提供的一种数据转换表的示意图;
图3为本申请实施例提供的另一种数据转换表的示意图;
图4为本申请实施例提供的一种数据加密装置的结构示意图;
图5为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本发明实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面,结合现有技术对数据加密方法进行介绍。
随着信息安全技术的发展,人们越来越重视隐私数据的安全性。对隐私数据进行加密的方式是目前应用范围较广的保护隐私数据方法。为了保证数据的安全性,加密后的密文的格式与加密前的明文的格式通常是不相同的,对数据管理带来了极大的困扰。因此,人们提出了保留格式加密,通过该加密方式可以实现加密前后的数据的格式相同。
目前现有技术中的保留格式加密算法,通常是采用FF1和FF3/FF3-1保留格式加密算法对数据加密。虽然该方法可以实现加密前后的数据的格式保持不变,但是该方法加密数据的效率较低。
为了解决上述技术缺陷,本申请提供一种数据加密方法、装置及介质,用以提高保留格式加密的效率。
为了更好的理解本发明的技术方案,本发明对可能涉及到对本发明理解的内容进行叙述。
本申请中,保留格式加密可以是指数据加密前的格式与数据加密后的格式相同。例如,通过保留格式加密算法对由16位数字组成的银行卡号进行加密,密文仍是由16位数字组成。
根据本申请提供的方法,可以设置具有多个格式相同的数据的数据集合。其中,该数据集合中数据的个数为M,可以将该数据集合中的数据与包含M个信息的信息集合中的信息建立一一对应关系。其中,信息集合中包括M个信息。例如,信息集合可以是模M剩余类构成的数字集合{0,1,2,……,M-1}。
进一步的,对数据进行保留格式加密可以是对该数据集合中的数据进行加密所得的密文同样属于该数据集合,则表明对该数据实现了保留格式加密。因此,该方式可以等价为将信息集合{0,1,2,……,M-1}中的某个信息加密得到的信息仍属于该集合。
例如,数据集合{A,B,C,D,E,F}共有6个数据,则可以将该数据集合与集合{0,1,2,3,……,5}中的信息建立一一映射,如A对应于0,B对应于2,……,F对应于代表5。对数据集合中的“A”进行加密,则可以等价为对信息集合中的“0”进行加密。若“0”被加密为“6”,则表明将数据集合中的“A”加密为“F”。
可理解的,若对信息集合中的数值加密后的密文仍属于该信息集合,则可以实现对数据集合中的数据进行保留格式加密。
图1为本申请实施例提供的一种数据加密方法的流程示意图。以第一设备为执行主体为例,该流程可以包括以下步骤:
S101,第一设备获取待加密数据对应的第一信息。其中,第一信息为M个信息中的一个,加密数据为M个数据中的一个数据,M个信息与M个数据一一对应,M为大于或等于2的整数,M个数据中任意两个数据的格式相同。
具体的,待加密数据可以为M个数据中的任意一个数据。例如,M个数据可以表示为M个手机号,待加密数据则可以是M个手机号中任意一个手机号。也就是说,M个手机号均可以被加密。或者,待加密数据可以是M个数据中预设的数据。例如,M个数据可以表示为M个手机号,其中,待加密数据可以为预设的手机号,其余M-1个手机号则可以是随机生成的手机号。也就是说,仅需要加密M个手机号中预设的手机号。
第一设备可以根据M个数据确定M个信息,M个信息可以是0至M-1的顺序号。即{0,1,2,……,M-1}。
第一设备在获取第一信息之前,可以根据设定的规则对M个数据进行排序,并根据排列顺序将M个数据与M个信息之间建立一一对应的关系。例如,第一设备可以根据M个数据的大小进行排序,并根据M个数据的排序将M个数据与M个信息建立一一对应的关系。如M个数据中最小的数据对应于与M个信息中最小的数。
第一设备可以根据待加密数据和M个数据与M个信息的对应关系,从M个信息中获取第一信息。例如,数据集合{A,B,C,D,E,F}与信息集合{0,1,2,3,……,5}之间建立一一对应的关系。其中,A对应0,B对应1,……,F对应5。若待加密数据为A,则第一信息为0。
基于步骤S101,第一设备将待加密数据映射为第一信息,实现第一设备对第一信息进行加密,等价于第一设备对待加密数据进行加密。由于第一设备对第一信息进行加密的运算量较低,故可以提高第一设备对待加密数据加密的效率。
S102,第一设备根据第一拆分规则将第一信息拆分为第一信息的商和第一信息的余数。其中,第一信息的商为第一信息除以C后的整数商,第一信息的余数为第一信息模C的余数,C为预设的大于或等于2的整数。
具体的,第一拆分规则可以是预设的对第一信息进行数字性质拆分的规则。第一设备可以根据预设的第一拆分规则和C将第一信息拆分为第一信息的商和第一信息的余数。其中,C可以是根据需求预先设定的数值。通常情况下,第一信息的余数小于第一信息的商,因此可以根据第一信息的大小确定C的大小,从而实现使用C对第一信息处理获得第一信息的商和第一信息的余数,满足第一信息的余数小于第一信息的商。可理解的,第一信息的余数也可以大于第一信息的商,本申请不做具体限定。
示例性的,第一信息可以表示为X,第一信息的余数可以表示为x0,第一信息的商可以表示为x1。若第一拆分规则为第一信息等于第一信息的商和C的积,与第一信息的余数的和,则第一信息、第一信息的余数、第一信息的商和C满足:
x0=X mod C;
X=x0+C·x1
其中,mod表示为取模运算,表示对A进行向下取整运算。
若第一拆分规则为第一信息等于第一信息的商和C的积,与第一信息的余数的差,则第一信息、第一信息的余数、第一信息的商和C满足:
x0=X mod C;
X=C·x1-x0
其中,表示对A进行向上取整运算。
S103,第一设备根据第一信息的余数和第一信息的商获得第一索引。其中,第一索引包括在所述M个信息中。
具体的,第一设备可以根据预设的规则对第一信息的余数和第一信息的商进行处理,获得第一索引。
本申请中可以通过以下方式获得第一索引:
在一个或多个实施例中,第一设备可以根据第一数据转换表对第一信息的商进行数据转换,获得第一转换信息。其中,第一数据转换表包含N1个数值,N1为小于M的正整数。根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值。其中,第一合并规则对应于第一拆分规则。或者,根据第一数据转换表对第一信息的余数进行数据转换,获得第一转换信息;根据第一合并规则,将第一转换信息与第一信息的商进行合并,获得合并值,第一合并规则对应于第一拆分规则。根据第一轮密钥加密合并值,获得第一索引。其中,第一轮密钥为预设的小于M的非负整数。本申请中,轮密钥也可以替换为具有相同或相似功能的其他密钥。
具体的,第一数据转换表可以是预先设定的数据转换表。第一设备可以通过数据转换表按照表格中的转换方式将一个数转换为另外一个数。例如,图2是SM4算法的16进制的数据转换表,若输入16进制数“ef”,则可以将“ef”转换为16进制的数“84”。
第一设备可以通过第一数据转换表将第一信息的商转换为第一转换信息。例如,仍以图2为例,第一数据转换表可以是图2中的SM4算法的数据转换表,第一信息的商可以是16进制数“ef”,则第一设备可以根据SM4算法的数据转换表将“ef”转换为“84”,即第一转换信息可以是16进制数“84”。可理解的,若第一信息的商为非16进制数,则可以先将第一信息的商转换为16进制数,则根据第一数据转换表进行数据转换。
进一步的,为了提高加密数据的安全性以及提高第一数据转换表的适配性,第一设备可以根据第一信息的商和N1获得i个第一数值。其中,i为设定的正整数,i个第一数值均为小于N1的非负整数。第一设备可以根据第一数据转换表将i个第一数值转换为i个第二数值,并将i个第二数值进行组合,获得第一转换信息。
具体的,第一设备可以根据加密程序运行环境中的内存空间、加解密效率要求等因素设置i的大小。第一设备也可以根据第一信息的商的大小和第一数据转换表包含的数值设置i的大小。
例如,第一信息的商可以为十进制数493,第一数据转换表可以为图2中的SM4算法的数据转换表。由图2可知,可以根据第一数据转换表进行转换的范围为十进制数[0,255],则无法根据第一数据转换表对第一信息的商进行转换。因此,第一设备可以根据第一数据转换表包含的数值,将第一信息的商划分为2个第一数值(即i=2),2个第一数值分别为1和237。也就是,第一信息的商可以表示为493=1*256+237。由于第一数据转换表为16进制,则需将第一数值转换为16进制数。即将10进制的1转换16进制的1,将10进制的237转换为16进制的ed。第一设备可以通过第一数值转换表将16进制的1转换为16进制的90(即10进制的144),将16进制的ed转换为16进制的6e(即10进制的110)。即第一设备根据第一数据转换表将2个第一数值(1和237)转换为2个第二数值(144和110),并将2个第二数值进行组合获得第一转换信息(36974=144*256+110)。
此外,本申请中还可以使用多个不同的数据转换表对数据进行转换。仍以第一信息的商等于493为例。数据转换表可以分别为图2中的SM4算法的数据转换表和图3中的16比特的数据转换表。第一设备可以根据SM4算法的数据转换表和16比特的数据转换表,将第一信息的商划分为2个第一数值,即1和237。即第一信息的商表示为493=1*255+237。第一设备可以根据16比特的数据转换表将1转换为7,第一设备可以根据SM4算法的数据转换表将237转换为110,则第一转换信息可以表示为1895=7*255+110。
基于该设计,根据第一数据转换表的元素个数将第一信息的商拆分为i个数值,也就是,第一信息的商可以由i个数据进行表示。再根据第一数据转换表分别对i个数据进行转换,转换后的i个数值可以表示为第一转换信息。其中,i个数值均为小于N1的非负整数。因此,采用该方式可以实现第一信息的商均可以通过预设的数据转换表进行数据转换。
第一设备在获得第一转换信息后,可以根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值。其中,第一合并规则对应于第一拆分规则。
示例性的,合并值可以表示为W,第一信息的余数可以表示为x0,第一转换信息可以表示为w1。若第一拆分规则为第一信息等于第一信息的商和C的积,与第一信息的余数的和,则第一合并规则为合并值等于第一转换信息的商和C的积,与第一信息的余数的和。第一信息的余数、第一转换信息、合并值和C满足:
W=x0+Cw1
若第一拆分规则为第一信息等于第一信息的商和C的积,与第一信息的余数的差,则若第一合并规则为第一信息等于第一转换信息的商和C的积,与第一信息的余数的差。第一信息的余数、第一转换信息、合并值和C满足:
W=Cw1-x0
或者,第一设备也可以通过第一数据转换表将第一信息的余数转换为第一转换信息。
在一种可能的设计中,根据第一信息的余数和N1获得j个第三数值,j为设定的正整数。根据第一数据转换表将j个第三数值转换为j个第四数值。将j个第四数值进行组合,获得第一转换信息。
具体的,第一设备通过第一数据转换表将第一信息的余数转换为第一转换信息的具体方式,可以参见第一设备通过第一数据转换表将第一信息的商转换为第一转换信息的具体方式,此处不再赘述。
第一设备获得第一转换信息后,可以根据第一合并规则,将第一转换信息与第一信息的商进行合并,获得合并值。其中,第一转换信息与第一信息的商进行合并的第一合并规则,与第一转换信息与第一信息的余数进行合并的第一合并规则可以是相同的合并规则,也可以是不同的合并规则,本申请不做具体限定。
可理解的,为了保证合并值的混合与扩散的效果,可以将第一信息的商与第一信息的余数中较大的数据进行数据转换,并将转换后的数与未转换的数据进行合并,获得合并值。也就是说,若第一信息的商大于第一信息的余数,则将第一信息的商进行数据转换。同理,若第一信息的余数大于第一信息的商,则将第一信息的余数进行数据转换。
为了保证合并值属于信息集合{0,1,2,……,M-1},则第一设备在获得合并值后,可以判断合并值是否小于M。若合并值大于或等于M,则根据第一数据转换表对第一转换信息进行数据转换,并采用相同的合并方式将转换后的信息与第一信息的余数进行合并,以及再次判断合并值是否小于M。其中,根据第一数据转换表对第一转换信息进行数据转换的具体方式,与根据第一数据转换表对第一信息的商进行转换的具体方式相同,此处不再赘述。
若合并值小于M,则可以根据第一轮密钥对合并值进行加密,获得第一索引。
可选的,第一设备根据第一轮密钥对合并值进行加密可以是将第一轮密钥与合并值相加,再将第一轮密钥与合并值的和对M取模,获得第一索引。
例如,第一轮密钥可以表示为K1,合并值可以表示为W,第一索引可以表示为V,则第一轮密钥、合并值和第一索引满足:
V=(W+K1)mod M;
可理解的,第一索引是将第一轮密钥与合并值的和对M进行取模得到的,为了避免浪费计算资源,第一轮密钥的取值范围通常为小于M的非负整数。此外,第一轮密钥也可以是大于或等于M的整数,本申请不做具体限定。
为了提高加密数据的安全性,第一设备在根据第一轮密钥对合并值进行加密后,还可以对加密后所得数据再次进行处理,获得第一索引。
在一个或多个实施例中,根据第一轮密钥加密合并值,获得合并值的密文。根据第二数据转换表对合并值的密文进行数据转换,获得第二信息。其中,第二数据转换表包含N2个数值,N2为小于M的正整数。根据第二轮密钥加密第二信息,获得所述第一索引。
具体的,第一设备根据第一轮密钥加密合并值,获得合并值的密文的具体方式,可以参见上述第一设备根据第一轮密钥加密合并值,获得第一索引的具体方式。第二数据转换表与第一数据转换表可以为同一个数据转换表,或者,第二数据转换表与第一数据转换表也可以为不同的数据转换表,本申请不做具体限定。
可选的,第一设备可以根据预设的第二拆分规则将合并值的密文拆分为合并值密文的商和合并值密文的余数。其中,合并值密文的商为合并值的密文除以Q后的整数商,合并值密文的余数为合并值的密文模Q的余数,Q为预设的大于或等于2的整数。第二拆分规则可以与第一拆分规则相同,或者,第二拆分规则可以与第一拆分规则不同。
其中,第一设备根据预设的第二拆分规则将合并值的密文拆分为合并值密文的商和合并值密文的余数的具体方式,可以参见第一设备根据预设的根据第一拆分规则将第一信息拆分为第一信息的商和第一信息的余数的具体方式,此处不再赘述。
第一设备在获得合并值密文的余数后,可以根据第二数据转换表对合并值密文的余数进行数据转换,获得第二转换信息。
进一步的,为了提高加密数据的安全性以及提高第二数据转换表的适配性,第一设备可以根据合并值密文的余数和N2获得k个第五数值。其中,k为正整数,第五数值为小于N2的非负整数。第一设备可以根据第二数据转换表将k个第五数值转换为k个第六数值,并将k个第六数值进行组合,获得第二转换信息。
其中,第一设备根据第二数据转换表将合并值密文的余数进行数据转换,获得第二转换信息的具体方式,可参见第一设备根据第一数据转换表将第一信息的商转换为第一转换信息的具体的方式,此处不再赘述。
第一设备在获得第一转换信息后,可以根据第二合并规则,将第二转换信息与第二信息的商进行合并,获得第二信息。其中,第一设备根据第二合并规则,将第二转换信息与第二信息的商进行合并,获得第二信息的具体方式,可以参见第一设备可以根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值的具体方式,此处不再赘述。
或者,根据第二数据转换表对合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将第二转换信息与合并值密文的余数进行合并,获得第二信息,第一合并规则对应于第一拆分规则。
在一种可能的设计中,根据合并值密文的商和N2获得p个第七数值,p为设定的正整数。根据第二数据转换表将p个第七数值转换为p个第八数值。将p个第八数值进行组合,获得第二转换信息。
具体的,第一设备通过第二数据转换表将合并值密文的商转换为第二转换信息的具体方式,可以参见第一设备根据第一数据转换表将第一信息的商转换为第一转换信息的具体的方式,此处不再赘述。
第一设备获得第二转换信息后,可以根据第二合并规则,将第二转换信息与合并值密文的商进行合并,获得第二信息。其中,第二转换信息与合并值密文的商进行合并的第二合并规则,与第二转换信息与合并值密文的余数进行合并的第二合并规则可以是相同的合并规则,也可以是不同的合并规则,本申请不做具体限定。
可理解的,为了保证方案的可实施性,若合并值是根据第一转换信息和第一信息的余数生成的,则第一设备将合并值密文的商进行数据转换,并将转换后的数据与合并值密文的余数进行合并获得第二信息。同理,若合并值是根据第一转换信息和第一信息的商生成的,则第一设备将合并值密文的余数进行数据转换,并将转换后的数据与合并值密文的商进行合并获得第二信息。
此外,为了提高数据加密效率,可以将第一数据转换表与第二数据转换表设置为相同的数据转换表。若第一数据转换表与第二数据转换表设置为相同的数据转换表,则可以根据M以及数据转换表的元数确定Q、C、i和k。数据转换表的元数可以表示为T,则M、Q、C、i、k和数据转换表的元数满足:
i=k;
Ti≤M<Ti+1
(Q-1)Ti≤M<QTi
C=Ti
第一设备在获得第二信息后,可以第二轮密钥对第二信息进行加密,获得第一索引。其中,第一设备根据第二轮密钥对第二信息进行加密,获得第一索引的具体方式,可以参见第一设备根据第一轮密钥对合并值进行加密,获得第一索引的具体方式,此处不再赘述。可理解的,第一轮密钥与第二轮密钥可以相同,也可以不相同。同理,为了避免浪费计算资源,第二轮密钥的取值范围通常为小于M的非负整数,本申请不做具体限定。
S104,第一设备根据第一索引从M个数据中确定待加密数据的密文。
具体的,本申请中通过步骤S101至S103获得的第一索引包含在M个信息中,且M个信息与M个数据具有一一对应的关系。因此,可以根据第一索引从M个数据中确定与第一索引对应的数据,并将该数据作为待加密数据的密文。
可理解的,第一索引与第一信息属于相同的信息集合,因此该信息对应的数据与第一信息对应的数据为相同的数据集合。第一设备对待加密数据进行加密可以等价为对第一信息进行加密,故可以将第一信息加密后的信息对应的数据作为待加密数据的密文,从而实现对待加密数据进行保留格式加密。
进一步的,为了提高数据的安全性,本申请还可以将第一索引作为步骤S102中的第一信息,并执行步骤S102和步骤S103的动作。可理解的,本申请可以根据自身的需求,对第一信息进行多轮加密,从而提高数据的安全性。其中,通过步骤S102和步骤S103,对第一信息进行数据转换获得第一索引的过程,可以称为一轮加密。
下面通过实施例1和实施例2对本申请提供的方法进行详细的介绍。其中,实施例1是以根据SM4算法的数据转换表对数据进行5轮加密,获得相应密文为例。实施例2是以根据两个数据转换表对数据进行1轮加密,获得相应的密文为例。实施例1与实施例2的具体内容如下:
实施例1:
第一数据为数据集合中的一个数据,且该数据集合包括100000个数据。该数据集合对应的信息集合可以是模100000剩余类构成的数字集合{0,1,2,……,99999}。第一数据对应的该数字集合中的第一元素等于987。数据转换表为图2所示的SM4的数据转换表,根据密钥派生算法生成的密钥分别为K1=67860,K2=52791,K3=23639,K4=23639,K5=23639,K6=27801,K7=71660,K8=61624,K9=18212,K10=62864。
根据数据转换表的转换范围[0,255]和数据集合中数据的个数(100000),确定的整数C=2,Q=65536。
步骤1,第一设备将第一元素对模C所得的余数等于1,即第二元素为1。将第一元素除以C所得的整数商等于493,即第三元素为493。因此,根据拆分公式,可以将第一元素表示为987=1+2*493。
如图2所示,SM4算法的数据转换表的转换范围为[0,255],则无法根据该数据转换表对第三元素(即493)进行转换。因此,第一设备可以根据该数据转换表,将第三元素划分为2个第一数值,2个第一数值分别为1和237。也就是,第三元素可以表示为493=1*256+237。由于该数据转换表为16进制,则需将第一数值转换为16进制数。即第一设备将10进制的1转换16进制的1,将10进制的237转换为16进制的ed。通过该数据转换表将16进制的1转换为16进制的90(即10进制的144),将16进制的ed转换为16进制的6e(即10进制的110),则第四元素可以表示为36974=144*256+110。
第一设备将第三元素替换为第四元素,并通过该拆分公式,根据第二元素和第四元素以及轮密钥K1确定第五元素。
即第五元素等于41809=(1+2*36974+67860)mod 100000。
步骤2,第一设备将第五元素模Q所得的余数等于41809,即第六元素为41809。第五元素除以Q所得的整数商等于0,即第七元素为0。因此,根据拆分公式,可以将第五元素表示为:
41809=41809+0*65536。
同理,由于第六元素41809不属于[0,255],将第六元素41809划分为163和81。即,41809=163*256+81。由于该数据转换表为16进制,则需将10进制的163转换16进制的a3,将10进制的81转换为16进制的51。通过该数据转换表将16进制的a3转换为16进制的2e(即10进制的46),将16进制的51转换为16进制的6b(即10进制的107),可得第八元素:
11883=46*256+107。
第一设备将八元素替换为第六元素,并通过该拆分公式,根据第七元素和第八元素以及轮密钥K2确定第九元素。
即第九元素为64674=(0*65536+11883+52791)mod 100000。
本申请中,第一设备执行完步骤1(使用轮密钥K1对数据进行加密)和步骤2(使用轮密钥K2对数据进行加密)可以称为第一设备对第一元素进行了第一轮加密。
步骤3,第一设备可以根据步骤1的动作对第九元素进行处理,获得第十元素。也就是,将第九元素替换第一元素,并执行步骤1,获得第十元素。
步骤4,第一设备将根据步骤2的动作对第十元素进行处理,获得第十一元素。也就是,将第十元素替换第五元素,并执行步骤2,获得第十一元素。
可理解的,第一设备执行完步骤3和步骤4可以称为第一设备对第一元素进行第二轮加密。即第一设备分别使用轮密钥K3和轮密钥K4对数据进行加密。同理,第一设备还可以对第一元素进行第三轮加密、第四轮加密和第五轮加密。其中,第一设备对第一元素进行第三轮加密、第四轮加密和第五轮加密的具体方式可以参见第一设备对第一元素进行第一轮加密,此处不再赘述。
经过计算,第一设备对第一元素进行第五轮加密获得第十二元素,第十二元素为21905。也就是,第一设备将第一元素加密为第十二元素,第十二元素对应的数据集合中的数据为第二数据。即,第一设备将第一数据加密为第二数据。其中,第一数据与第二数据均为数据集合中的数据,且第一数据与第二数据的格式相同。因此,第一设备对第一数据完成了保留格式加密。
实施例2:
第一数据为数据集合中的一个数据,且该数据集合包括100000个数据。该数据集合对应的信息集合可以是模100000剩余类构成的数字集合{0,1,2,……,99999}。第一数据对应的该数字集合中的第一元素等于987。数据转换表为图3所示的S16和S32的数据转换表,根据密钥派生算法生成的密钥分别为K1=67860,K2=52791。
根据数据转换表的转换范围[0,15]和[0,31]和数据集合中数据的个数(100000),确定的整数C=7,Q=16384。
步骤1,第一设备将第一元素模C所得的余数等于0,即第二元素为0。将第一元素除以C所得的整数商等于141,即第三元素为141。因此,根据拆分公式,可以将第一元素表示为987=0+7*141。
如图3所示,两个数据转换表的转换范围[0,15]和[0,31],则无法根据两个数据转换表对第三元素(即141)进行转换。第一设备可以预设规则,将第三元素转换为14比特的数据,并拆分为高位4比特,中间5比特和低位5比特进行划分,则可以将第三元素划分为高位4比特的第一数值0,中间5比特的第一数值4和低位5比特的第一数值13。也就是,第三元素可以表示为141=0*210+4*25+13*20。第一设备根据S16数据转换表将高位4比特的第一数值0转换11,根据S32数据转换表将中间5比特的第一数值4转换为6,根据S32数据转换表将低位5比特的第一数值13转换为16。则第四元素可以表示为11472=11*210+6*25+16*20
第一设备将第三元素替换为第四元素,并通过该拆分公式,根据第二元素和第四元素以及轮密钥K1确定第五元素。
即第五元素等于48164=(0+7*11472+67860)mod 100000。
步骤2,第一设备将第五元素模Q所得的余数等于15396,即第六元素为15396。第五元素除以Q所得的整数商等于2,即第七元素为2。因此,根据拆分公式,可以将第五元素表示为:
48164=15396+2*16384。
同理,由于第六元素15396不属于两个数据转换表的转换范围[0,15]和[0,31],将第六元素15396划分高位5比特的第一数值30,中间5比特的第一数值2和低位4比特的第一数值4。即,15396=30*29+2*24+4*20。第一设备根据S32数据转换表将高位5比特的第一数值30转换14,根据S32数据转换表将中间5比特的第一数值2转换为10,根据S16数据转换表将低位4比特的第一数值4转换为10。则第八元素可以表示为7338=14*29+10*24+10*20
第一设备将八元素替换为第六元素,并通过该拆分公式,根据第七元素和第八元素以及轮密钥K2确定第九元素。
即第九元素为92897=(7338+2*16384+52791)mod 100000。
本申请中,第一设备执行完步骤1和步骤2可以称为第一设备对第一元素进行了第一轮加密。
第一设备通过步骤1和步骤2将第一元素加密为第九元素,第九元素对应的数据集合中的数据为第二数据。即,第一设备将第一数据加密为第二数据。其中,第一数据与第二数据均为数据集合中的数据,且第一数据与第二数据的格式相同。因此,第一设备对第一数据完成了保留格式加密。
基于上述内容和相同构思,本申请提供一种数据加密装置。图4为本申请实施例提供的一种数据加密装置的模块化结构示意图。该装置包括处理模块401和通信模块402。
通信模块402,用于获取待加密数据对应的第一信息,第一信息为M个信息中的一个,待加密数据为M个数据中的一个数据,M个信息与M个数据一一对应,M为大于或等于2的整数,M个数据中任意两个数据的格式相同。处理模块401,用于根据第一拆分规则将第一信息拆分为第一信息的商和第一信息的余数,第一信息的商为第一信息除以C后的整数商,第一信息的余数为第一信息模C的余数,C为预设的大于或等于2的整数。处理模块401,还用于根据第一信息的余数和第一信息的商获得第一索引,第一索引包括在M个信息中。处理模块401,还用于根据第一索引从M个数据中确定待加密数据的密文。
在一种可能的设计中,处理模块401具体用于,根据第一数据转换表对第一信息的商进行数据转换,获得第一转换信息。其中,第一数据转换表包含N1个数值,N1为小于M的正整数,根据第一合并规则,将第一转换信息与第一信息余数进行合并,获得合并值,第一合并规则对应于第一拆分规则。或者,根据第一数据转换表对第一信息的余数进行数据转换,获得第一转换信息,第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与第一信息的商进行合并,获得合并值,第一合并规则对应于第一拆分规则。根据第一轮密钥加密合并值,获得第一索引,第一轮密钥为预设的小于M的非负整数。
在一种可能的设计中,处理模块401具体用于,根据第一信息的商和N1获得i个第一数值,i为设定的正整数。根据第一数据转换表将i个第一数值转换为i个第二数值。将i个第二数值进行组合,获得第一转换信息。
在一种可能的设计中,处理模块401具体用于,根据第一信息的余数和N1获得j个第三数值,j为设定的正整数。根据第一数据转换表将j个第三数值转换为j个第四数值。将j个第四数值进行组合,获得第一转换信息。
在一种可能的设计中,处理模块401具体用于,根据第一轮密钥加密合并值,获得合并值的密文。根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,第二数据转换表包含N2个数值,N2为小于M的正整数。根据第二轮密钥加密第二信息,获得第一索引。
在一种可能的设计中,处理模块401具体用于,根据第二拆分规则将合并值的密文拆分为合并值密文的商和合并值密文的余数,合并值密文的商为合并值的密文除以Q后的整数商,合并值密文的余数为合并值的密文模Q的余数,Q为预设的大于或等于2的整数。根据第二数据转换表对合并值密文的余数进行数据转换,获得第二转换信息。根据第二合并规则,将第二转换信息与合并值密文的商进行合并,获得第二信息,第一合并规则对应于第一拆分规则。或者,根据第二数据转换表对合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将第二转换信息与合并值密文的余数进行合并,获得第二信息,第一合并规则对应于第一拆分规则。
在一种可能的设计中,处理模块401具体用于,根据合并值密文的余数和N2获得k个第五数值,k为设定的正整数。根据第二数据转换表将k个第五数值转换为k个第六数值。将k个第六数值进行组合,获得第二转换信息。
在一种可能的设计中,处理模块401具体用于,根据合并值密文的商和N2获得p个第七数值,p为设定的正整数。根据第二数据转换表将p个第七数值转换为p个第八数值。将p个第八数值进行组合,获得第二转换信息。
图5示出了本申请实施例提供的一种电子设备结构示意图。
本申请实施例中的电子设备可包括处理器501。处理器501是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器503内的指令以及调用存储在存储器503内的数据。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器503可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器503存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器503存储的指令,可以用于执行本申请实施例所公开的方法步骤。
存储器503作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器503可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器503是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器503还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,该装置还可以包括通信接口502,电子设备可以通过该通信接口502传输数据。
可选的,可由图5所示处理器501(或处理器501和通信接口502)实现图4所示的处理模块401和/或通信模块402,也就是说,可以由处理器501(或处理器501和通信接口502)执行处理模块401和/或通信模块402的动作。
基于相同的发明构思,本申请实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图5所示的存储器503。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种数据加密方法,其特征在于,所述方法包括:
获取待加密数据对应的第一信息,所述第一信息为M个信息中的一个,所述待加密数据为M个数据中的一个数据,所述M个信息与所述M个数据一一对应,所述M为大于或等于2的整数,所述M个数据中任意两个数据的格式相同;
根据第一拆分规则将所述第一信息拆分为第一信息的商和第一信息的余数,所述第一信息的商为所述第一信息除以C后的整数商,所述第一信息的余数为所述第一信息模所述C后的余数,所述C为预设的大于或等于2的整数;
根据所述第一信息的余数和所述第一信息的商获得第一索引,所述第一索引包括在所述M个信息中;
根据所述第一索引从所述M个数据中确定所述待加密数据的密文;
根据所述第一信息的余数和所述第一信息的商获得第一索引,包括:
根据第一数据转换表对所述第一信息的商进行数据转换,获得第一转换信息,所述第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与所述第一信息的余数进行合并,获得合并值,所述第一合并规则对应于所述第一拆分规则;
或者,根据第一数据转换表对所述第一信息的余数进行数据转换,获得第一转换信息,所述第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与所述第一信息的商进行合并,获得合并值,所述第一合并规则对应于所述第一拆分规则;
根据第一轮密钥加密所述合并值,获得所述第一索引,所述第一轮密钥为预设的小于M的非负整数。
2.如权利要求1所述的方法,其特征在于,所述根据第一数据转换表对所述第一信息的商进行数据转换,获得第一转换信息,包括:
根据所述第一信息的商和N1获得i个第一数值,所述i为设定的正整数;
根据所述第一数据转换表将所述i个第一数值转换为i个第二数值;
将所述i个第二数值进行组合,获得所述第一转换信息。
3.如权利要求1所述的方法,其特征在于,所述根据第一数据转换表对所述第一信息的余数进行数据转换,获得第一转换信息,包括:
根据所述第一信息的余数和N1获得j个第三数值,所述j为设定的正整数;
根据所述第一数据转换表将所述j个第三数值转换为j个第四数值;
将所述j个第四数值进行组合,获得所述第一转换信息。
4.如权利要求1所述的方法,其特征在于,所述根据第一轮密钥加密所述合并值,获得所述第一索引,包括:
根据所述第一轮密钥加密所述合并值,获得合并值的密文;
根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,所述第二数据转换表包含N2个数值,N2为小于M的正整数;
根据第二轮密钥加密所述第二信息,获得所述第一索引。
5.如权利要求4所述的方法,其特征在于,所述根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,包括:
根据第二拆分规则将所述合并值的密文拆分为合并值密文的商和合并值密文的余数,所述合并值密文的商为所述合并值的密文除以Q后的整数商,所述合并值密文的余数为所述合并值的密文模所述Q的余数,所述Q为预设的大于或等于2的整数;
根据第二数据转换表对所述合并值密文的余数进行数据转换,获得第二转换信息;根据第二合并规则,将所述第二转换信息与所述合并值密文的商进行合并,获得所述第二信息,所述第一合并规则对应于所述第一拆分规则;
或者,根据第二数据转换表对所述合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将所述第二转换信息与所述合并值密文的余数进行合并,获得所述第二信息,所述第一合并规则对应于所述第一拆分规则。
6.如权利要求5所述的方法,其特征在于,所述根据第二数据转换表对所述合并值密文的余数进行数据转换,获得第二转换信息,包括:
根据所述合并值密文的余数和N2获得k个第五数值,所述k为设定的正整数;
根据所述第二数据转换表将所述k个第五数值转换为k个第六数值;
将所述k个第六数值进行组合,获得所述第二转换信息。
7.如权利要求5所述的方法,其特征在于,所述根据第二数据转换表对所述合并值密文的商进行数据转换,获得第二转换信息,包括:
根据所述合并值密文的商和N2获得p个第七数值,所述p为设定的正整数;
根据所述第二数据转换表将所述p个第七数值转换为p个第八数值;
将所述p个第八数值进行组合,获得所述第二转换信息。
8.一种数据加密装置,其特征在于,所述装置包括:
通信模块,用于获取待加密数据对应的第一信息,所述第一信息为M个信息中的一个,所述待加密数据为M个数据中的一个数据,所述M个信息与所述M个数据一一对应,所述M为大于或等于2的整数,所述M个数据中任意两个数据的格式相同;
处理模块,用于根据第一拆分规则将所述第一信息拆分为第一信息的商和第一信息的余数,所述第一信息的商为所述第一信息除以C后的整数商,所述第一信息的余数为所述第一信息模所述C的余数,所述C为预设的大于或等于2的整数;
所述处理模块,还用于根据所述第一信息的余数和所述第一信息的商获得第一索引,所述第一索引包括在所述M个信息中;
所述处理模块,还用于根据所述第一索引从所述M个数据中确定所述待加密数据的密文;
所述处理模块具体用于:
根据第一数据转换表对所述第一信息的商进行数据转换,获得第一转换信息,所述第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与所述第一信息的余数进行合并,获得合并值,所述第一合并规则对应于所述第一拆分规则;
或者,根据第一数据转换表对所述第一信息的余数进行数据转换,获得第一转换信息,所述第一数据转换表包含N1个数值,N1为小于M的正整数;根据第一合并规则,将第一转换信息与所述第一信息的商进行合并,获得合并值,所述第一合并规则对应于所述第一拆分规则;
根据第一轮密钥加密所述合并值,获得所述第一索引,所述第一轮密钥为预设的小于M的非负整数。
9.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一信息的商和N1获得i个第一数值,所述i为设定的正整数;
根据所述第一数据转换表将所述i个第一数值转换为i个第二数值;
将所述i个第二数值进行组合,获得所述第一转换信息。
10.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一信息的余数和N1获得j个第三数值,所述j为设定的正整数;
根据所述第一数据转换表将所述j个第三数值转换为j个第四数值;
将所述j个第四数值进行组合,获得所述第一转换信息。
11.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一轮密钥加密所述合并值,获得合并值的密文;
根据第二数据转换表对合并值的密文进行数据转换,获得第二信息,所述第二数据转换表包含N2个数值,N2为小于M的正整数;
根据第二轮密钥加密所述第二信息,获得所述第一索引。
12.如权利要求11所述的装置,其特征在于,所述处理模块具体用于:
根据第二拆分规则将所述合并值的密文拆分为合并值密文的商和合并值密文的余数,所述合并值密文的商为所述合并值的密文除以Q后的整数商,所述合并值密文的余数为所述合并值的密文模所述Q的余数,所述Q为预设的大于或等于2的整数;
根据第二数据转换表对所述合并值密文的余数进行数据转换,获得第二转换信息;根据第二合并规则,将所述第二转换信息与所述合并值密文的商进行合并,获得所述第二信息,所述第一合并规则对应于所述第一拆分规则;
或者,根据第二数据转换表对所述合并值密文的商进行数据转换,获得第二转换信息;根据第二合并规则,将所述第二转换信息与所述合并值密文的余数进行合并,获得所述第二信息,所述第一合并规则对应于所述第一拆分规则。
13.如权利要求12所述的装置,其特征在于,所述处理模块具体用于:
根据所述合并值密文的余数和N2获得k个第五数值,所述k为设定的正整数;
根据所述第二数据转换表将所述k个第五数值转换为k个第六数值;
将所述k个第六数值进行组合,获得所述第二转换信息。
14.如权利要求12所述的装置,其特征在于,所述处理模块具体用于:
根据所述合并值密文的商和N2获得p个第七数值,所述p为设定的正整数;
根据所述第二数据转换表将所述p个第七数值转换为p个第八数值;
将所述p个第八数值进行组合,获得所述第二转换信息。
15.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述方法的步骤。
CN202311354577.8A 2023-10-18 2023-10-18 一种数据加密方法、装置及介质 Active CN117240585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311354577.8A CN117240585B (zh) 2023-10-18 2023-10-18 一种数据加密方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311354577.8A CN117240585B (zh) 2023-10-18 2023-10-18 一种数据加密方法、装置及介质

Publications (2)

Publication Number Publication Date
CN117240585A CN117240585A (zh) 2023-12-15
CN117240585B true CN117240585B (zh) 2024-05-17

Family

ID=89096718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311354577.8A Active CN117240585B (zh) 2023-10-18 2023-10-18 一种数据加密方法、装置及介质

Country Status (1)

Country Link
CN (1) CN117240585B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180197A (zh) * 2016-03-09 2017-09-19 北京京东尚科信息技术有限公司 文件操作方法和装置
CN109617680A (zh) * 2018-12-06 2019-04-12 中国移动通信集团福建有限公司 加密方法、装置、设备及介质
CN111224778A (zh) * 2019-12-25 2020-06-02 广东飞企互联科技股份有限公司 一种数据保留格式加密方法
CN113965311A (zh) * 2021-10-19 2022-01-21 北京安御道合科技有限公司 一种实现格式保持加密的方法、系统、介质、终端及应用
CN114124359A (zh) * 2021-04-02 2022-03-01 京东科技控股股份有限公司 保留格式加密数据的方法、装置、电子设备及存储介质
CN115766190A (zh) * 2022-11-10 2023-03-07 北京海泰方圆科技股份有限公司 一种任意集合元素加密方法、解密方法及电子设备
CN116707804A (zh) * 2023-08-07 2023-09-05 中电信量子科技有限公司 增强ff1格式保留加密安全性的方法及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9634838B2 (en) * 2014-06-05 2017-04-25 International Business Machines Corporation Complex format-preserving encryption scheme

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180197A (zh) * 2016-03-09 2017-09-19 北京京东尚科信息技术有限公司 文件操作方法和装置
CN109617680A (zh) * 2018-12-06 2019-04-12 中国移动通信集团福建有限公司 加密方法、装置、设备及介质
CN111224778A (zh) * 2019-12-25 2020-06-02 广东飞企互联科技股份有限公司 一种数据保留格式加密方法
CN114124359A (zh) * 2021-04-02 2022-03-01 京东科技控股股份有限公司 保留格式加密数据的方法、装置、电子设备及存储介质
CN113965311A (zh) * 2021-10-19 2022-01-21 北京安御道合科技有限公司 一种实现格式保持加密的方法、系统、介质、终端及应用
CN115766190A (zh) * 2022-11-10 2023-03-07 北京海泰方圆科技股份有限公司 一种任意集合元素加密方法、解密方法及电子设备
CN116707804A (zh) * 2023-08-07 2023-09-05 中电信量子科技有限公司 增强ff1格式保留加密安全性的方法及设备

Also Published As

Publication number Publication date
CN117240585A (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
JP3014391B2 (ja) 暗号法及びこの方法の実施のための暗号プロセツサ
CN107707347A (zh) 用户密钥的备份方法及装置、用户密钥的导入方法及装置
CN109493054B (zh) 多链信息管理方法、装置、存储介质和区块链身份解析器
US20070192622A1 (en) Computer system, computer program, and addition method
CN113708930A (zh) 隐私数据的数据比较方法、装置、设备及介质
CN113434906B (zh) 数据查询方法、装置、计算机设备及存储介质
CN111064583A (zh) 一种门限sm2数字签名方法、装置、电子设备及存储介质
EP4262140A1 (en) Data determination methods, apparatuses, storage media, and terminal devices
CN114647857A (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN115603890A (zh) 隐私计算装置及隐私计算方法
CN117240585B (zh) 一种数据加密方法、装置及介质
US11743036B2 (en) Method and apparatus for establishing shared key
CN116436709B (zh) 一种数据的加解密方法、装置、设备和介质
US20230336327A1 (en) Batch encryption methods, related apparatuses, systems, devices, mediums, and program products
US20230028854A1 (en) System and method of cryptographic key management in a plurality of blockchain based computer networks
CN110717186A (zh) 数据处理方法、装置和电子设备
CN114860713A (zh) 基于区块链的数据匹配方法、装置、电子设备及存储介质
CN112418857A (zh) 基于utxo模型的隐藏交易方法、装置及相关产品
CN113240045A (zh) 一种数据降维方法、装置及相关设备
CN115114279A (zh) 置换表生成方法、数据加、解密方法及装置、介质、设备
CN112182593A (zh) 一种数据处理方法、装置和电子设备
CN113381854B (zh) 数据传输方法、装置、设备和存储介质
CN114726516B (zh) 一种卡号和密码融合的加密方法、终端设备及存储介质
US11637690B1 (en) Format preserving encryption (FPE) system and method for long strings
CN116821936B (zh) 一种数据交集的确定方法及装置

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
GR01 Patent grant
GR01 Patent grant