数据库数据的加密方法及装置与流程

文档序号:32038758发布日期:2022-11-03 04:25阅读:414来源:国知局
数据库数据的加密方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及数据库数据的加密方法。本技术同时涉及数据库数据的加密装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.当今社会随着云存储的广泛应用,云数据的安全性受到了越来越多人的关注。保序加密成为了建造可搜索加密体制的重要工具,它允许在密文上进行高效的范围查询操作,也符合云环境中对于操作安全性和机密性的要求。ope(order preserving encryption)保序加密算法通过将非均匀分布的明文数据映射到均匀分布的密文区间,达到了隐藏数据分布特点的目的,并保留了明文顺序。
3.保序加密框架(opes)能够保证密文顺序和对应明文顺序的一致性,在不解密情况下,它允许查询操作直接应用在密文数据上。但是,在同一密文数据对应的同一明文数据,可能所属于不同的主体,或来自不同的明文数据提供方的情况下,不解密操作将无法获知密文数据的真实性,也会影响对密文数据进行查询操作等应用,不仅使得保序加密的使用场景受到了较大的限制,数据加密的安全性也会受到一定的威胁。


技术实现要素:

4.有鉴于此,本技术实施例提供了数据库数据的加密方法。本技术同时涉及数据库数据的加密装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的上述问题。
5.根据本技术实施例的第一方面,提供了一种数据库数据的加密方法,包括:
6.接收待加密数据,并确定当前时间戳数据,其中,所述待加密数据为数据库数据;
7.解析所述待加密数据,获得待加密字符序列;
8.基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串;
9.基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据。
10.根据本技术实施例的第二方面,提供了一种数据库数据的加密装置,包括:
11.数据接收模块,被配置为接收待加密数据,并确定当前时间戳数据,其中,所述待加密数据为数据库数据;
12.数据解析模块,被配置为解析所述待加密数据,获得待加密字符序列;
13.数据加密模块,被配置为基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串;
14.加密数据生成模块,被配置为基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据。
15.根据本技术实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述数据库数据的加密方法的步骤。
16.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述数据库数据的加密方法的步骤。
17.本技术提供的数据库数据的加密方法,接收待加密数据,并确定当前时间戳数据,其中,所述待加密数据为数据库数据;解析所述待加密数据,获得待加密字符序列;基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串;基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据。
18.本技术一实施例提供的数据库数据的加密方法,通过将确定待加密数据的当前时间戳数据,并基于保序加密算法对待加密数据进行加密处理之后,获得初始加密字符串,再基于初始加密字符串以及当前时间戳数据,生成目标加密数据;这种将时间戳数据融入待加密数据的方式,可以区别开属于不同主体、或者来自不同的明文数据提供方的同一密文数据,不仅能够应用于任何数据加密的应用场景,还能够保证在数据库中,无需对数据库数据进行解密,通过对密文数据就能进行查询等操作,一定程度上提高了数据加密的安全性。
附图说明
19.图1是本技术一实施例提供的保序加密算法流程示意图;
20.图2是本技术一实施例提供的一种数据库数据的加密方法的流程图;
21.图3是本技术一实施例提供的一种应用于数据库数据的保序加密方法的流程示意图;
22.图4是本技术一实施例提供的一种数据库数据的加密装置的结构示意图;
23.图5是本技术一实施例提供的一种计算设备的结构框图。
具体实施方式
24.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
25.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
28.postgresql:是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ordbms),支持大部分的sql标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。
29.保序加密(order preserving encryption,ope):是一种密码保持明文顺序的加密方案;攻击者得到全部密文情况下,除了密文的顺序之外再也得不到其他任何有用的信息。
30.超几何分布:是统计学上一种离散概率分布。它描述了从有限n个物件(其中包含m个指定种类的物件)中抽出n个物件,成功抽出该指定种类的物件的次数(不放回)。
31.随着云计算的发展,为了追求更好的便捷性和更大的经济效益,越来越多的用户将数据存储在云中。然而数据的安全性成为一个挑战,用户将数据存储在云中,敏感数据暴露在云环境下,存在数据泄漏的风险。传统的解决方法是将数据加密后再存储,这种方法虽然能够保护敏感数据,但是也带来一些问题,其中最主要的是数据经过加密后失去了原有数据的特性,对于明文数据的操作无法在密文上执行。
32.保序加密(order preserving encryption,ope)是一种密码保存明文顺序的加密方法,它允许比较操作直接应用在加密数据上,无需解密操作。这样,范围查询以及max,min,order by和count查询都可以直接应用于加密数据,只有对一组数进行sum和avg操作时,才需要解码数据值,且加密后不影响系统的原有功能比如对数据库的查询、检索、修改、更新。通过ope算法给出的数据安全性的证明,即攻击者即使得到全部密文,除了密文的顺序以外,就再也得不到其他任何有用的信息,保序加密框架(opes)能够保证密文顺序和对应明文顺序的一致性,在不解密的情况下,它允许查询操作直接应用在加密数据上。
33.而当前保序加密在实际生产环境中的应用,还存在以下问题:1)现有ope各方案主要仅针对数值类型进行加密,且需要配置明文域小于等于密文域,当明文域范围较大如int64类型时,此时密文域的范围必须大于等于int64,此时直接针对数值类型进行保序加密,中间需要计算迭代的次数是及其庞大的,对其性能产生较严重的影响;2)针对字符串类型的支持,例如对存储的身份证号码密文进行范围操作时,仍未存在有效的解决方案,使得保序加密的使用场景受到了极大的限制;3)目前绝大多数的ope设计均支持对密文的范围操作,缺少对于密文等于的操作支持;4)保序加密的安全性仍需提高。
34.基于此,本技术实施例提供了一种数据库数据的加密方法,算法基础是采用基于非固定步长的超几何分布为参考对数值数据进行加密,将明文以保序方式映射到密文域,使密文域具有较为随机的步长,然后在密文域中随机选择一个确定值作为加密结果,使同一数值明文多次加密的结果为不同密文;针对算法内部,采用摘要算法+至少256位对称加密算法组合方式生成的密文作为随机种子,结合上述算法随机的密文域分布及隐藏的数据分布频率,加大了针对密文暴力解密的复杂性,保证算法必要的安全性;本方案可支持数值类型、字符串类型数据在数据库中的保序加密;除针对保序加密的密文支持范围查询,同时也支持等于运算。
35.因此,将数值类型与字符串类型明文最终均解析为针对每个字符的保序加密,这样在保证安全性的同时即可显著的缩小了明文域与密文域区间,提高算法运算性能;除支持对数值类型的保序加密,同时支持对字符串的保序加密;模块记录明文对应密文域映射区间,增加同一明文加密的密文针对相同区间内的判断,支持相等运算操作;以超几何分布算法为基础参考,内部采用摘要算法+至少256位对称加密算法组合方式生成的密文作为随机采样种子,提高算法安全性。
36.其中,保序加密的定义如下:若e是一个保序加密函数,p1和p2是两个明文值,并且
有密文c1=e(p1),c2=e(p2),则有if(p1《p2)then(c1《c2)且if(p1=p2)then(c1=c2);本技术实施例通过在数据库中增加ope extension,实现数值类型与字符串类型的保序加密函数,明文数据通过调用对应的函数生成保序加密字段。下面先介绍核心加密算法具体方案。
37.具体可参见图1,图1示出了保序加密算法的运算逻辑示意图。
38.需要说明的是,设定算法支持明文数值域范围是m,对应映射的密文数值域范围是n(注:该算法的明文域m和密文域n非固定值,内部可配置,最大值为4字节整型(2^31-1),且必须满足m《=n)。在调用保序加密函数时,会将输入的明文映射(即加密)到密文域的固定密文值。
39.步骤102:设定待加密数据=p,明文域m,密文域n。
40.步骤104:x=ope_hdg(m,n,n/2)。
41.步骤106:if(x==p?)。
42.步骤108:若x》p,则m=[0,x],n=[0,n/2]。
[0043]
步骤110:若x《p,则m=[x,m],n=[n/2,n]。
[0044]
步骤112:输出目标加密数据。
[0045]
具体实施时,1)首先实现一个超几何分布采样函数,超几何分布是统计学上一种离散概率分布,公式1为:
[0046][0047]
该公式的具体含义可理解为,从有限n个物件(其中包含m个指定种类的物件)中抽出y个物件,不放回的成功抽出该指定种类的物件的次数为x(一定有x《=m)。该采样函数定义为intx=ope_hdg(int m,int n,int y),参数含义如下:m表示明文域大小,n表示密文域大小,y表示n/2,即密文域大小的一半。内部逻辑可至少256位对称加密匹配摘要加密算法生成随机的字符串,以这个字符串的位来逐个模拟该超几何分布的结果,同时在下一轮的迭代计算中使用计算出来的采样值用作明文继续进行加密生成随机字符串,这样经过多轮迭代计算生成最终的密文域对应区间。
[0048]
2)设当前通过保序加密函数ope_encrypt()传入一个明文p,即plainvalue=p,此时调用采样函数ope_hdg(m,n,n/2),函数返回值x,如果x》p,则重新调整明文域m=[0,x],密文域n=[0,n/2];反之,如果采样函数返回值x《p,则调整明文域m=[x,m],密文域n=[n/2,n]。
[0049]
3)调整好明文域和密文域大小后,继续反复执行2)中步骤,即如果明文p落在明文域的左半段,那么选择明文域左半段、密文域左半段继续递归;反之如果明文p落在明文域的右半段,那么选择明文域的右半段、密文域的右半段继续递归;每一次递归过程中,密文域总是被缩短一半。
[0050]
4)这样反复递归几轮后,采样函数一定可以抽到明文域中的值即x=p,密文域在不断2分法切除后,设最终的密文域对应空间为[n_start,n_end],固定的从最终的密文域中取中间值为最终密文值,即目标加密数据=n/2(即目标加密数据=n_start+(n_end-n_start)/2)。
[0051]
5)在上述整个递归采样过程中,需记录每次的采样值x和对应的密文域2分法的分
隔点n/2,例如上述例子中,针对明文待加密数据=p第一次采样后得到采样值x,密文域分割点n=n/2,将x与n进行记录;同样的,将每次的采样值x和对应的密文域分割点n=n/2值均需进行记录。
[0052]
6)利用5)中已记录的明文与密文域的对应关系,反向推理可以将密文解密为明文;当加密新的明文值时,首先记录信息,相同的明文值可直接从密钥表中计算出密文,而无需再次重新计算;同时如果有相近的明文值进行加密,密钥表中的部分值可直接复用,例如待加密数据=(p+1)明文,可直接复用密钥表中之前加密待加密数据=p明文时大部分采样值,差别为仅在最后一步计算明文域中查找到(p+1)时与最终查找到p的区别,需重新计算,这样即可保证密文对应明文之间的有序性。
[0053]
在本技术中,提供了数据库数据的加密方法,本技术同时涉及数据库数据的加密装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
[0054]
图2示出了根据本技术一实施例提供的一种数据库数据的加密方法的流程图,具体包括以下步骤:
[0055]
步骤202:接收待加密数据,并确定当前时间戳数据,其中,所述待加密数据为数据库数据。
[0056]
其中,待加密数据可以理解为针对数据库数据中的敏感数据进行处理后的,且需要进行保序加密的字符串类型的数据,比如用户姓名、用户身份证号码等隐私数据转换为字符串类型的数据。
[0057]
当前时间戳数据可以理解为服务器在接收到需要加密的待加密数据的当前系统时间戳,其中,这里的时间戳数据可以为十三位的时间戳,比如1497154554827.0,该时间是一个接口返回的时间戳,这是一个毫秒级的时间戳,转换成mysql里的timestamp格式时间,转出时间是2017/6/1112:15:54。
[0058]
实际应用中,服务器中的加密处理模块在接收到数据库数据的待加密数据之后,并确定出服务器接口的返回时间戳,将该返回时间戳作为待加密数据对应的当前时间戳数据,便于后续将当前时间戳数据融入至待加密数据,提高加密数据的安全性。
[0059]
进一步地,服务器的加密处理模块在接收到待加密数据之前,还需要判定接收到的初始加密数据的数据类型,并根据数据类型确定待加密数据;具体的,所述接收待加密数据,包括:
[0060]
获取初始加密数据;
[0061]
在确定所述初始加密数据的数据类型为非字符串类型的情况下,将所述待加密数据进行格式转换,获得待加密数据;或者
[0062]
在确定所述初始加密数据的数据类型为字符串类型的情况下,将所述初始加密数据作为待加密数据。
[0063]
其中,初始加密数据可以理解为数据库中需要进行加密处理的敏感数据,比如用户姓名、用户身份证号码等隐私数据。
[0064]
实际应用中,服务器在获取到初始加密数据之后,先判定所述初始加密数据是否为字符串类型的数据,在确定初始加密数据的数据类型为字符串类型的情况下,即可将初始加密数据直接作为待加密数据,进行后续的加密处理;若在确定初始加密数据的数据类
型为非字符串类型的情况下,可将初始加密数据先进行格式转换处理,转换为字符串类型的数据,并将转换后的字符串类型的数据作为待加密数据;需要说明的是,非字符串类型包括但不限于数字型数据、日期型数据等。
[0065]
例如,加密处理模块获取到的敏感数据,即明文p=数值1234,那么,可将该数值1234进行格式转换,获得s=字符串“1234”,即将该s=字符串“1234”作为待加密数据,进行后续的保序加密处理。
[0066]
本技术实施例提供的数据库数据的加密方法,通过对获取到的初始加密数据的数据类型进行确定,根据数据类型分别提供两种处理方式,以获得待加密数据,便于后续对待加密数据进行保序加密处理,提高对敏感数据的数据安全。
[0067]
步骤204:解析所述待加密数据,获得待加密字符序列。
[0068]
其中,待加密字符序列可以理解为对待加密数据进行解析处理后,所获得的具有多个字符的字符序列。
[0069]
实际应用中,加密处理模块对待加密数据进行解析,执行分解操作,将待加密数据分解为独立的单个字符,获得待加密字符序列,比如待加密数据为s=字符串“1234”,分解为单个的字符,即[s1,s2,s3,s4]=“1”,“2”,“3”,“4”。
[0070]
步骤206:基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串。
[0071]
实际应用中,加密处理模块获得待加密字符序列之后,还可将每个字符转换为ascii码,再通过超几何分布抽样算法,对每个字符进行保序加密,即可得到初始加密字符串[c1,c2,

cn];比如s=字符串“1234”,转换为ascii码后,则为[00000001,00000010,00000011,00000100]。
[0072]
进一步地,由于保序加密算法需要设定采样区域的值域范围,即明文域以及密文域,进而完成对待加密字符序列的保序加密处理;具体的,所述基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串,包括:
[0073]
确定所述保序加密算法对应的明文域、密文域以及超几何分布采样函数;
[0074]
基于所述明文域、密文域以及超几何分布采样函数,对所述待加密字符序列进行迭代处理,获得初始加密字符串。
[0075]
其中,超几何分布采样函数可参考上述公式1,可获得每个字符对应的加密数据;同时,明文域为m,密文域为n。
[0076]
进而,根据预先设定的公式1、明文域以及密文域,对待加密字符序列中的每个字符进行迭代加密处理,进而获得初始加密字符串。
[0077]
沿用上例,设定明文域为m=[00000000,01111111],密文域n=[0,0xffff],进而,对转换为ascii码后的待加密字符序列进行迭代加密处理,获得初始加密字符串为c=[00100001,00110010,01000011,01110100]。
[0078]
需要说明的是,保序加密算法为一个循环迭代的数据采样过程,本实施例对该过程在此则不做过多介绍。
[0079]
更进一步地,为了提高数据加密的处理效率,对于迭代过程中所产生的迭代记录需要进行存储;具体的,所述基于所述明文域、密文域以及超几何分布采样函数,对所述待加密字符序列进行迭代处理,获得初始加密字符串之后,还包括:
[0080]
记录所述待加密字符序列在迭代处理中产生的迭代密文,生成加密记录表;
[0081]
将所述加密记录表进行存储。
[0082]
其中,迭代密文可以理解为对数据进行保序加密的随机采样获得数据加密过程产生的密文;比如,数值25,根据上述公式1,第一次随机采样输出的密文为44,第二次随机采样输出的密文为33
……
,因此,密文44、33
……
等多轮迭代产生的密文则为迭代密文。
[0083]
实际应用中,在对待加密字符序列进行保序加密过程中,多轮迭代计算时产生的多个迭代密文,以及明文域、密文域的变化过程均记录为一个加密记录表,并将该加密记录表进行存储。
[0084]
本技术实施例提供的数据库数据的加密方法,通过对待加密字符序列进行加密处理,并记录加密过程中的迭代密文等信息,以生成加密记录表,便于后续通过加密记录表完成解密的过程。
[0085]
步骤208:基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据。
[0086]
为了适用于各种应用场景,对于同一明文数据的属于不同的主体,或者是具有不同的属性,仅是具有一个相同的字段的这种应用场景,对这类数据进行加密时,就需要对密文数据加以区分,以便于支持密文数据的查询等操作。例如,数据库中具有两个张三的名字,但是这是两个不同的人,对应的身份证号码并不相同,第一个张三,身份证号码为id1,第二个张三,身份证号码为id2,那么在对张三这个名字的敏感数据进行加密后,显然,均通过保序加密算法,张三加密后的数据均为aa,在此场景下,若在数据库中需要仅通过一个名字信息,查找一位id1的张三时,系统可能会出现两个张三,这时数据库输出的数据即为不正确的,基于此,本技术实施例中,通过确定当前时间戳数据,来避免这个问题的出现。
[0087]
进而,加密处理模块可将当前时间戳数据融入至初始加密字符串中,生成目标加密数据;具体的,所述基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据,包括:
[0088]
对所述当前时间戳数据进行划分,确定时间戳子数据;
[0089]
确定所述初始加密字符串中的待插入数据位置,并将所述时间戳子数据插入至所述待插入数据位置,生成目标加密数据。
[0090]
其中,时间戳子数据可以理解为对当前时间戳数据按位进行划分的时间戳子数据;待插入数据位置可以理解为初始加密字符串中能够插入时间戳子数据的位置,比如字符串中第二和第三字节中间的位置,即为待插入数据位置。
[0091]
实际应用中,加密处理模块可对当前时间戳数据先进行划分处理,以确定需要在初始加密字符串中进行插入的多个时间戳子数据,进而,再确定初始加密字符串中的待插入数据位置,同时,还可将初始加密字符串以两个字节为单位组合起来,再将多个时间戳子数据插入至待插入数据位置,生成目标加密数据。
[0092]
进一步地,所述对所述当前时间戳数据进行划分,确定时间戳子数据,包括:
[0093]
确定当前时间戳数据的数据总位数,基于所述数据总位数设定数据划分区间;
[0094]
基于所述数据划分区间对所述当前时间戳数据进行划分,确定时间戳子数据。
[0095]
实际应用中,加密处理模块需要先确定当前时间戳数据的数据总位数,即时间戳数据所占据的位数,并根据总位数设定对应的数据划分区间,比如可设定8位为一个数据划
分区间,或者是16位为一个数据划分区间,或者是8位的倍数个位数的数据划分区间等,对于数据划分区间的设定,可根据不同类型的时间戳数据具体设定,本实施例对此不做具体限定。
[0096]
比如当前时间戳数据为1497154554827.0,设定数据划分区间为8位,则可确定时间戳子数据为14971545、以及054827.0;再确定初始加密字符串的待插入数据位置,比如初始加密字符串为c=[00100001,00110010,01000011,01110100],确定的待插入数据位置为第二个字节和第三个字节之间,以及第三个字节和第四个字节之间,这两个位置中即可分别插入时间戳子数据,可获得目标加密数据为c=[00100001,00110010,14971545,01000011,054827.0,01110100]。
[0097]
更进一步地,加密处理模块还可记录上述对于当前时间戳数据的数据划分区间,以及上述初始加密字符串确定的待插入数据位置,以便于后续对目标加密数据按照原加密的过程能够进行解密处理;具体的,所述将所述时间戳子数据插入至所述待插入数据位置,生成目标加密数据之后,还包括:
[0098]
记录所述当前时间戳数据设定的数据划分区间、以及所述初始加密字符串对应的待插入数据位置;
[0099]
基于所述数据划分区间以及所述待插入数据位置生成数据处理规则;
[0100]
将所述数据处理规则进行存储。
[0101]
实际应用中,还可根据当前时间戳数据对应设定的数据划分区间,以及初始加密字符串对应的待插入数据位置,生成一个针对于待加密数据的数据处理规则,即可理解为对待加密数据进行加密的处理规则,并将该数据处理规则进行存储,便于后续根据数据处理规则对目标加密数据进行解密处理,能够还原出待加密数据的这个明文数据。
[0102]
本技术实施例提供的数据库数据的加密方法,通过对数据库数据进行加密处理后的字符串序列插入当前时间戳数据,明确待加密数据的唯一性,并且对于插入时间戳数据的处理方式以及所插入的位置需要确定出数据处理规则,并进行存储,这样也便于后续需要对目标加密数据进行解密时,能够完整地还原出待加密数据。
[0103]
此外,为了保证对明文数据加密后的合法性,还可根据目标加密数据的数据类型获取固定位数的校验值,并插入至目标加密数据中,进而获得合法密文数据;具体的,所述基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据之后,还包括:
[0104]
确定所述目标加密数据的数据类型,基于所述数据类型获取校验数据;
[0105]
将所述校验数据插入至所述目标加密数据中,获得合法密文数据。
[0106]
其中,校验数据可以理解为占有一定位数的校验位数据,比如位两字节的校验位。
[0107]
实际应用中,加密处理模块在确定了目标加密数据的数据类型之后,可根据数据类型获取校验位,可以是针对不同类型固定使用的字符串密文,并将该字符串密文插入至目标加密数据中,获得合法密文数据,比如,可将校验数据l插入至目标加密数据为c=[00100001,00110010,14971545,01000011,054827.0,01110100]中,并将目标加密数据以两个字节为单位进行组合,即获得的合法密文数据为rtl=[0010000100110010,14971545,01000011,054827.001110100,l]。
[0108]
基于此,通过在目标加密数据中插入校验位,实现对加密数据的合法性保护。
[0109]
进而,还可将校验数据以及合法密文数据进行存储,便于后续进行解密操作;具体
的,所述将所述校验数据插入至所述目标加密数据中,获得合法密文数据之后,还包括:
[0110]
基于所述校验数据以及所述合法密文数据生成校验记录表;
[0111]
将所述校验记录表进行存储。
[0112]
实际应用中,可根据校验数据以及合法密文数据生成校验记录表,记录目标加密数据所加入的校验数据,以及生成的合法密文数据的过程,并将该校验记录表进行存储,便于后续根据校验记录表完成对合法密文数据的解密处理。
[0113]
此外,本技术实施例提供的数据库数据的加密方法,还提供了一种数据解密的过程,可参考上述数据加密的过程,即理解为对上述加密过程的逆处理过程,还包括:
[0114]
接收数据解密请求,其中,所述数据解密请求中携带有待解密数据,所述待解密数据包含所述当前时间戳数据以及校验数据;
[0115]
获取所述待解密数据对应的校验记录表,基于所述校验记录表中的校验数据对所述待解密数据进行校验处理;
[0116]
在数据校验合法的情况下,获取所述待解密数据对应的数据处理规则以及加密记录表;
[0117]
基于所述数据处理规则以及所述加密记录表对所述待解密数据进行解密处理,获得目标解密数据。
[0118]
其中,数据解密请求可以理解为对合法加密数据的解密请求,即合法加密数据在解密的过程中,可理解为待解密数据,同时,该待解密数据中还包括当前时间戳数据以及校验数据。
[0119]
实际应用中,为了实现对待解密数据的解密过程,还需要从本地数据库中获取到待解密数据对应的校验记录表、数据处理规则以及加密记录表等数据,进而根据校验记录表中的校验数据优先完成对待解密数据的校验处理,在校验该数据合法的前提下,再根据数据处理规则以及加密记录表对待解密数据进行解密处理,以获得目标解密数据。
[0120]
需要说明的是,数据解密的过程,可参考上述加密过程的逆处理过程,具体细节在此不做过多赘述。
[0121]
综上,本技术实施例提供的数据库数据的加密方法,通过将非字符串类型与字符串类型的明文最终均解析为针对每个字符的保序加密,这样在保证安全性的同时,即可显著的缩小了明文域与密文域区间,提高算法运算性能;除了支持对非字符串类型的保序加密,同时支持对字符串的保序加密。另外,加密处理模块记录明文对应密文域映射区间,增加同一明文加密的密文针对相同区间内的判断,支持相等运算操作;以超几何分布算法为基础参考,内部采用摘要算法+至少256位对称加密算法组合方式生成的密文作为随机采样种子,提高算法安全性。
[0122]
下述结合附图3,图3示出了本技术一实施例提供的一种应用于数据库数据的保序加密方法的流程示图。
[0123]
1)首先,接收明文p,在确定明文p为字符串类型明文p时,通过加密接口将明文传入加密模块中;在确定明文p为非字符串类型明文p时,将明文p进行格式转换,如明文1234解析为字符串s=“1234”。
[0124]
2)针对字符串s,分解为独立的单个字符,共有字符串s的长度个数字符[s1,s2

sn]。
[0125]
3)将2)中的每个字符转为ascii码,即明文域为m=[0,127],同时设密文域为n=[0,0xffff](注:127为标准ascii的最大值,0xffff为两字节长度最大值),通过(1)中超几何分布抽样算法,针对每一个字符均进行保序加密由此得到对应个数的密文值,即[s1,s2

sn]-[c1,c2

cn];(注:c均在密文域n范围内即0xffff以内数值;n=字符串s的字节数)。
[0126]
4)将上述3)中得到的n个密文值[c1,c2

cn]依次以两字节为单位组成密文字符串r。
[0127]
5)将以8字节为单位将当前时间戳数据t进行划分,将划分后的子时间戳数据与校验位l按一定规则混合入密钥字符串r中,得到字符串rtl,此时得到的字符串rtl即为保序加密后的最终密文值。
[0128]
6)在解密时,由于已知悉密文字符串rtl的排列规则和超几何分布明文映射的密文域,故可通过移位与查表方式将密文解密为明文。
[0129]
综上,本技术实施例实现了一种针对非字符串类型和字符串类型数据的保序加密算法,数据库所有者对敏感数据进行加密,以保护其内容隐私;信息隐藏者对数据进行保序加密处理,从而可实现无需对敏感数据解密即可进行范围查询等操作;不仅能够应用于任何数据加密的应用场景,还能够保证在数据库中,无需对数据库数据进行解密,通过对密文数据就能进行查询等操作,一定程度上提高了数据加密的安全性。
[0130]
与上述方法实施例相对应,本技术还提供了数据库数据的加密装置实施例,图4示出了本技术一实施例提供的一种数据库数据的加密装置的结构示意图。如图4所示,该装置包括:
[0131]
数据接收模块402,被配置为接收待加密数据,并确定当前时间戳数据,其中,所述待加密数据为数据库数据;
[0132]
数据解析模块404,被配置为解析所述待加密数据,获得待加密字符序列;
[0133]
数据加密模块406,被配置为基于保序加密算法对所述待加密字符序列进行处理,获得初始加密字符串;
[0134]
加密数据生成模块408,被配置为基于所述初始加密字符串以及所述当前时间戳数据,生成目标加密数据。
[0135]
可选地,所述加密数据生成模块408,进一步被配置为:
[0136]
对所述当前时间戳数据进行划分,确定时间戳子数据;
[0137]
确定所述初始加密字符串中的待插入数据位置,并将所述时间戳子数据插入至所述待插入数据位置,生成目标加密数据。
[0138]
可选地,所述加密数据生成模块408,进一步被配置为:
[0139]
确定当前时间戳数据的数据总位数,基于所述数据总位数设定数据划分区间;
[0140]
基于所述数据划分区间对所述当前时间戳数据进行划分,确定时间戳子数据。
[0141]
可选地,所述装置,还包括:
[0142]
合法密文确定模块,被配置为确定所述目标加密数据的数据类型,基于所述数据类型获取校验数据;
[0143]
将所述校验数据插入至所述目标加密数据中,获得合法密文数据。
[0144]
可选地,所述装置,还包括:
[0145]
存储模块,被配置为基于所述校验数据以及所述合法密文数据生成校验记录表;
[0146]
将所述校验记录表进行存储。
[0147]
可选地,所述数据加密模块406,进一步被配置为:
[0148]
确定所述保序加密算法对应的明文域、密文域以及超几何分布采样函数;
[0149]
基于所述明文域、密文域以及超几何分布采样函数,对所述待加密字符序列进行迭代处理,获得初始加密字符串。
[0150]
可选地,所述存储模块,进一步被配置为:
[0151]
记录所述待加密字符序列在迭代处理中产生的迭代密文,生成加密记录表;
[0152]
将所述加密记录表进行存储。
[0153]
可选地,所述存储模块,进一步被配置为:
[0154]
记录所述当前时间戳数据设定的数据划分区间、以及所述初始加密字符串对应的待插入数据位置;
[0155]
基于所述数据划分区间以及所述待插入数据位置生成数据处理规则;
[0156]
将所述数据处理规则进行存储。
[0157]
可选地,所述数据接收模块402,进一步被配置为:
[0158]
获取初始加密数据;
[0159]
在确定所述初始加密数据的数据类型为非字符串类型的情况下,将所述待加密数据进行格式转换,获得待加密数据;或者
[0160]
在确定所述初始加密数据的数据类型为字符串类型的情况下,将所述初始加密数据作为待加密数据。
[0161]
可选地,所述装置,还包括:
[0162]
解密请求接收模块,被配置为接收数据解密请求,其中,所述数据解密请求中携带有待解密数据,所述待解密数据包含所述当前时间戳数据以及校验数据;
[0163]
校验处理模块,被配置为获取所述待解密数据对应的校验记录表,基于所述校验记录表中的校验数据对所述待解密数据进行校验处理;
[0164]
规则获取模块,被配置为在数据校验合法的情况下,获取所述待解密数据对应的数据处理规则以及加密记录表;
[0165]
解密数据获得模块,被配置为基于所述数据处理规则以及所述加密记录表对所述待解密数据进行解密处理,获得目标解密数据。
[0166]
本技术实施例提供的数据库数据的加密装置,通过将确定待加密数据的当前时间戳数据,并基于保序加密算法对待加密数据进行加密处理之后,获得初始加密字符串,再基于初始加密字符串以及当前时间戳数据,生成目标加密数据;这种将时间戳数据融入待加密数据的方式,可以区别开属于不同主体、或者来自不同的明文数据提供方的同一密文数据,不仅能够应用于任何数据加密的应用场景,还能够保证在数据库中,无需对数据库数据进行解密,通过对密文数据就能进行查询等操作,一定程度上提高了数据加密的安全性。
[0167]
上述为本实施例的一种数据库数据的加密装置的示意性方案。需要说明的是,该数据库数据的加密装置的技术方案与上述的数据库数据的加密方法的技术方案属于同一构思,数据库数据的加密装置的技术方案未详细描述的细节内容,均可以参见上述数据库数据的加密方法的技术方案的描述。
[0168]
图5示出了根据本技术一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
[0169]
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0170]
在本技术的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0171]
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
[0172]
其中,处理器520执行所述计算机指令时实现所述的数据库数据的加密方法的步骤。
[0173]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据库数据的加密方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据库数据的加密方法的技术方案的描述。
[0174]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述数据库数据的加密方法的步骤。
[0175]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据库数据的加密方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据库数据的加密方法的技术方案的描述。
[0176]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0177]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内
容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0178]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0179]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0180]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1