数据库的数据加密方法、检索方法及其装置与流程

文档序号:24126482发布日期:2021-03-02 13:53阅读:128来源:国知局
数据库的数据加密方法、检索方法及其装置与流程

[0001]
本发明涉及数据安全技术领域,尤其涉及一种数据库的数据加密方法、检索方法及其装置。


背景技术:

[0002]
在如今的“大数据时代”,人们面临着海量数据的处理,云计算这种第三方服务的出现使得各种信息最大化的得到了快速的分析和处理,但是,在移交了数据管理权力后,随即而来的是对于数据泄露的担忧。在针对于第三方服务中的数据泄露防范中,加密作为一种保证数据完整性,机密性的有效手段,可以确保存储在云服务器中的数据安全。
[0003]
然而,加密数据使得云环境的计算优势无法发挥,最直观的是在云服务器中存储的数据要进行检索查询时,必须先将所有数据解密才可以进行判断,并且若使用云计算能力在云服务器上解密,则又重现了数据泄露的风险,而不解密又无法利用云环境的计算力进行检索操作。


技术实现要素:

[0004]
本发明要解决的技术问题是如何提高数据库数据的安全性和检索性能,本发明提出了一种数据库的数据加密方法、检索方法及其装置。
[0005]
根据本发明实施例的数据库的数据加密方法,所述加密方法包括:
[0006]
s100,采用非固定步长的超几何算法对发往所述数据库的数据进行保序加密,将所述数据的明文域映射为对应的密文域;
[0007]
s200,对所述数据中的任一明文数据,从对应的所述密文域中随机取样获取对应的密文数据。
[0008]
根据本发明实施例的数据库的数据加密方法,基于超几何分布抽样将明文以保序方式映射到密文域,使密文域具有较为随机的步长,然后在密文域中随机选择一个确定值作为加密结果,使同一个明文多次加密的结果为不同密文。由此,通过采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了数据库数据的安全性。
[0009]
根据本发明的一些实施例,所述数据库与应用之间设置有加密机,在所述加密机中执行步骤s100和步骤s200,以将发往所述数据库的数据进行保序加密。
[0010]
根据本发明实施例的数据库的数据检索方法,发往所述数据库中的数据采用上述所述的数据库的数据加密方法进行加密,所述检索方法包括:
[0011]
a100,获取明文检索范围;
[0012]
a200,将所述明文检索范围加密生成密文检索范围后发往所述数据库;
[0013]
a300,在所述数据库中选择属于所述密文检索范围的第一范围检索数据;
[0014]
a400,对所述第一范围检索数据进行解密得到第一范围明文数据,从所述第一范围明文数据中选择属于所述明文检索范围的第二范围检索数据。
[0015]
根据本发明实施例的数据库的数据检索方法,使用两阶段判断的半同态加密模型,在密文比较完成后,在加密机解密再次进行明文的比较操作,可以剔除密文比较结果中包含的少许错误值。对于字符串等类型,可以截取前n个字符编码进行密文加密以及比较,然后在加密机解密后进行二次筛选。本发明在保证数据安全性的前提下,提高了检索效率和检索准确率。
[0016]
根据本发明的一些实施例,步骤a400中,在所述数据库与应用之间的加密机中进行解密和检索操作。
[0017]
根据本发明实施例的数据库加密系统,所述加密系统包括:数据库和加密装置,所述加密装置包括:
[0018]
映射模块,用于采用非固定步长的超几何算法对发往所述数据库的数据进行保序加密,将所述数据的明文域映射为对应的密文域;
[0019]
取样模块,用于对所述数据中的任一明文数据,从对应的所述密文域中随机取样获取对应的密文数据。
[0020]
根据本发明实施例的数据库加密系统,基于超几何分布抽样将明文以保序方式映射到密文域,使密文域具有较为随机的步长,然后在密文域中随机选择一个确定值作为加密结果,使同一个明文多次加密的结果为不同密文。由此,通过采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了数据库数据的安全性。
[0021]
在本发明的一些实施例中,所述加密装置为设在所述数据库与应用之间的加密机。
[0022]
根据本发明实施例的数据库的数据检索系统,所述检索系统包括:
[0023]
检索条件获取模块,用于获取明文检索范围;
[0024]
加密模块,用于将所述明文检索范围加密生成密文检索范围后发往数据库;
[0025]
第一检索模块,用于在所述数据库中选择属于所述密文检索范围的第一范围检索数据;
[0026]
第二检索模块,用于对所述第一范围检索数据进行解密得到第一范围明文数据,从所述第一范围明文数据中选择属于所述明文检索范围的第二范围检索数据。
[0027]
根据本发明实施例的数据库的数据检索系统,采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了加密方案的安全性。密文域中随机波动的错误值在总体结果集中只占很小的比例,本发明在保证数据安全性的前提下,提高了检索效率和检索准确率。
[0028]
根据本发明的一些实施例,在所述数据库与应用之间设有加密机,所述加密机包括所述检索条件获取模块、加密模块和第二检索模块,所述第一检索模块设于所述数据库。
[0029]
根据本发明实施例的计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据库加密方法。
[0030]
根据本发明实施例的计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据库的数据检索方法。
附图说明
[0031]
图1为根据本发明实施例的数据库的数据加密方法流程图;
[0032]
图2为根据本发明实施例的数据库的数据检索方法流程图;
[0033]
图3为根据本发明实施例的数据库加密系统示意图;
[0034]
图4为根据本发明实施例的明文域映射为密文域示意图;
[0035]
图5为根据本发明实施例的数据库的数据检索方法示意图。
具体实施方式
[0036]
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
[0037]“同态加密”技术的出现使得数据操作既可以利用云计算的强大算力,又可以保障第三方无法泄露敏感数据。然而目前全同态加密算法需要过于庞大的计算量,无法满足于正常生产环境,继而又出现了妥协产物“半同态加密”,可以针对于某些特定操作进行密文处理。本发明中提到的数据库保序加密方法及系统是可用于密文的排序及大小比较的半同态加密算法。
[0038]
保序对称加密(ope)算法的概念是agrawal等人在数据库领域中提出的,这类算法为确定性加密方案,其加密函数能够保留明文的数字顺序,目的在于允许对加密数据进行有效的排序查询。这类方案的兴趣点是其能够对加密数据进行有效的范围查询,也就是说,一个不受信任的远程数据库服务器能够以加密的方式,在允许有效范围查询的数据结构中索引其接收到的(敏感)数据。
[0039]
保序加密的关注点在于确定性加密算法如何能保留明文空间中的数字顺序关系。对于并且|a|≤|b|,有函数f:a

b是一个保序函数;对于所有的i,j∈a,当且仅当i>j时f(i)>f(j)。当函数enc(k,.)对于所有k都有对应输出并且是从d到r保序的函数时,就称确定性加密方案se=(k,enc,dec)与明文和密文空间d和r是保序的。并且通常情况下,假设明文空间为[m],密文空间为[n],并且n≥m∈n。
[0040]
确定性对称加密算法最初引入的安全性的概念为不同选择明文攻击下的安全性(ind-dcpa),其想法是由于确定性加密会泄露明文的相等性,ind-cpa实验中的对手a被限制只能在其数据库的任何一侧进行不同的查询(否则会发生小规模攻击)。也就是说,假设a构建的查询是,其需要对于b∈{0,1}来说,全都不相同。需要注意的是,任一ope方案都会类似地泄露明文之间的顺序关系,因此进一步要求,令a发出的上述查询需满足对于所有1≤i,j≤q当且仅当时并称这样的a为ind-ocpa对手,即有序选择明文攻击下的不可区分性对手。
[0041]
相关技术中,有如下三种加密方案:
[0042]
方案1:在符合以上定义的情况下,2010年麻省理工的popa团队基于半同态加密的思想做了cryptdb项目,在此项目中支持了包含保序加密在内的几个半同态算法。在此方案中,保序加密算法采用的是boldyreva等人于2009年提出的保序加密方案。此方案中使用超几何分布的方式进行采样,这种分布有一种相当有效的精确(非近似)采样算法。在球箱模型中有m个黑球和n-m个白球,随机变量x特定了y个球被取出后样本中黑球的数量,且其遵
循超几何分布,即x=hgd(m,n,y)。在确定了加密的明文域和密文域后,通过多次超几何分布采样来确定当前明文对应的密文域,而后根据密钥“随机”地在密文域中选择加密结果。
[0043]
方案2:2013年popa等人又提出了基于平衡搜索树的保序编码方案。此种方案摒弃了加密算法的思路,而采用“编码”方式。在他们的算法系统中,初始化过程中就将明文排好序并赋予序相对应的编码值。例如,明文vj加密后enc(vj)=j,于是(j,vj)被称为vj的明文对。在这种方法中,明文对(j,vj)放置到到二叉树中,根据它与头结点的相对位置,确定一个二进制序列。
[0044]
方案3:在数据库加密领域还有一些公司提出了一种密文索引的方式,此方式则是通过建立索引树,将数据加密后通过最大值等分类条件组织起来。在进行查询前需要先将索引节点进行解密,进行初步筛选,然后根据节点下指向的rowid获取部分数据,而后解密后再次进行比较。
[0045]
在现有的方案1中,需要关注到在对同一个明文进行多次抽样后,保证会得出同样的密文域,这是算法稳定的必要。而确定了密文域以后在其中如何进行选择,此方案中给出的方法是由密钥确定。这样的机制下,同一个明文加密后的结果是相同的,这样会导致攻击者可以通过频率分析来对明文进行一定程度的推断。而若不采用固定的密文值,而是使密文在密文域中随机选择的话。在数据进行与常量值的操作,例如判断vi>c的过程中,必须将常量值c加密成为固定的边界值maxenc(c),密文比较操作变为enc(vi)>maxenc(c)。这样又会在进行数据的使用过程中暴露密文域的边界,使攻击变得非常容易。并且因为加密需要有固定的明文域,因此,对于像字符串等非整数类型无法运用此方案进行保序加密。
[0046]
在方案2中,通过无函数关系的编码方式提供了较高的安全性,但是进行编码需要对所有的已编码数据有掌握。在很多情况下,使用编码方式会经常涉及到旧的编码调整,造成大量的update操作,这在数据库的使用环境中会造成很大的效率问题。
[0047]
在方案3中,加密算法使用的是安全的对称加密算法,而为了实现密文的排序或比较操作,需要保有对根节点和子节点解密的索引数组,并且对于叶子节点需要有合理的组织方式。若使用严格的相等或范围限定来组织子节点下的叶子节点,那么加密模型无法承受依据频率进行的破解攻击。而若仅仅标识子节点集的最大或做小值,可以在一定情况下实现数据的过滤选择,但是在很多情况下会触发大量解密才可以判断正确的值。
[0048]
在现有方案中,方案2的安全性最高但是效率难以接受,方案1和方案3的效率可以接受但是安全性都不尽如人意。本发明在方案1的基础上,结合了其它方案的优势,以及更灵活的半同态加密模型,改进了其安全性,并提升了其灵活性,适用于更广泛的数据类型。
[0049]
如图1所示,根据本发明实施例的数据库的数据加密方法,加密方法包括:
[0050]
s100,采用非固定步长的超几何算法对发往数据库的数据进行保序加密,将数据的明文域映射为对应的密文域;
[0051]
s200,对数据中的任一明文数据,从对应的密文域中随机取样获取对应的密文数据。
[0052]
根据本发明实施例的数据库的数据加密方法,基于超几何分布抽样将明文以保序方式映射到密文域,使密文域具有较为随机的步长,然后在密文域中随机选择一个确定值作为加密结果,使同一个明文多次加密的结果为不同密文。由此,通过采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了
数据库数据的安全性。
[0053]
如图3所示,根据本发明的一些实施例,数据库与应用之间设置有加密机,在加密机中执行步骤s100和步骤s200,以将发往数据库的数据进行保序加密。
[0054]
如图2所示,根据本发明实施例的数据库的数据检索方法,发往数据库中的数据采用上述的数据库的数据加密方法进行加密,检索方法包括:
[0055]
a100,获取明文检索范围;
[0056]
a200,将明文检索范围加密生成密文检索范围后发往数据库;
[0057]
a300,在数据库中选择属于密文检索范围的第一范围检索数据;
[0058]
a400,对第一范围检索数据进行解密得到第一范围明文数据,从第一范围明文数据中选择属于明文检索范围的第二范围检索数据。
[0059]
根据本发明的一些实施例,步骤a400中,在数据库与应用之间的加密机中进行解密和检索操作。
[0060]
需要说明的是,本发明因为采用了两阶段的检查方式,对于字符串这种无法估计长度的变长类型也可以进行加密检索。具体操作为对字符串的前n个字符进行编码,然后作为整数类型加密,在之后需要排序或比较操作时,相当于在云数据库先进行了前n的字符的操作得到一个结果集。而后,在加密机中将结果集解密后进行二次操作。
[0061]
根据本发明实施例的数据库的数据检索方法,使用两阶段判断的半同态加密模型,在密文比较完成后,在加密机解密再次进行明文的比较操作,可以剔除密文比较结果中包含的少许错误值。对于字符串等类型,可以截取前n个字符编码进行密文加密以及比较,然后在加密机解密后进行二次筛选。本发明在保证数据安全性的前提下,提高了检索效率和检索准确率。
[0062]
根据本发明实施例的数据库加密系统,加密系统包括:数据库和加密装置,加密装置包括:映射模块和取样模块。
[0063]
其中,映射模块用于采用非固定步长的超几何算法对发往数据库的数据进行保序加密,将数据的明文域映射为对应的密文域;
[0064]
取样模块用于对数据中的任一明文数据,从对应的密文域中随机取样获取对应的密文数据。
[0065]
根据本发明实施例的数据库加密系统,基于超几何分布抽样将明文以保序方式映射到密文域,使密文域具有较为随机的步长,然后在密文域中随机选择一个确定值作为加密结果,使同一个明文多次加密的结果为不同密文。由此,通过采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了数据库数据的安全性。
[0066]
在本发明的一些实施例中,加密装置为设在数据库与应用之间的加密机。
[0067]
根据本发明实施例的数据库的数据检索系统,检索系统包括:检索条件获取模块、加密模块、第一检索模块和第二检索模块。
[0068]
其中,检索条件获取模块用于获取明文检索范围;
[0069]
加密模块用于将明文检索范围加密生成密文检索范围后发往数据库;
[0070]
第一检索模块用于在数据库中选择属于密文检索范围的第一范围检索数据;
[0071]
第二检索模块用于对第一范围检索数据进行解密得到第一范围明文数据,从第一
范围明文数据中选择属于明文检索范围的第二范围检索数据。
[0072]
根据本发明实施例的数据库的数据检索系统,采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了加密方案的安全性。密文域中随机波动的错误值在总体结果集中只占很小的比例,本发明在保证数据安全性的前提下,提高了检索效率和检索准确率。
[0073]
根据本发明的一些实施例,在数据库与应用之间设有加密机,加密机包括检索条件获取模块、加密模块和第二检索模块,第一检索模块设于数据库。
[0074]
根据本发明实施例的计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时按如下方法实现数据库加密方法:
[0075]
s100,采用非固定步长的超几何算法对发往数据库的数据进行保序加密,将数据的明文域映射为对应的密文域;
[0076]
s200,对数据中的任一明文数据,从对应的密文域中随机取样获取对应的密文数据。
[0077]
其中,数据库与应用之间设置有加密机,在加密机中执行步骤s100和步骤s200,以将发往数据库的数据进行保序加密。
[0078]
根据本发明实施例的计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时按如下方法实现数据库的数据检索方法:
[0079]
a100,获取明文检索范围;
[0080]
a200,将所述明文检索范围加密生成密文检索范围后发往所述数据库;
[0081]
a300,在所述数据库中选择属于所述密文检索范围的第一范围检索数据;
[0082]
a400,对所述第一范围检索数据进行解密得到第一范围明文数据,从所述第一范围明文数据中选择属于所述明文检索范围的第二范围检索数据。
[0083]
下面参照附图详细描述根据本发明的数据库的数据加密方法及检索方法。值得理解的是,下述描述仅是示例性描述,而不应理解为对本发明的具体限制。
[0084]
本发明中的数据库保序加密方案,结合了算法与特定的半同态加密模型。如图3所示,本发明中的数据库半同态加密模型,其在数据库与应用之间添加加密机,对数据的加密解密,sql语句的接受和改写操作均在加密机执行。
[0085]
首先需要明确,在云服务器环境中不管硬盘和内存都视为不可信环境,因此,不可以在云数据库进行数据的加密解密操作,保证所有从加密机发往云数据库的数据都是已经进行了加密。
[0086]
如图4所示,对于保序加密的算法,是由明文域到密文域的一个映射。
[0087]
利用一种可以生成非固定步长的超几何抽样算法,将明文域与密文域进行对应,而前面已经提到,为了避免频率分析的攻击,明文dn对应的密文r应该在rn区间中随机选择。而对于抽样算法,为实现不同的列生成不同的结果,需要根据不同的初始化向量产生不同的抽样结果。即x1=hgd(m,n,y,vi1),x2=hgd(m,n,y,vi2),x1不等于x2。
[0088]
继续考虑,在需要进行一些密文与常量值的比较时,需要在加密机将常量值加密成为密文发往数据库。那么当密文在rn区间中随机取值时,在进行如dn>c这样的操作时,似乎只能加密成为rn>maxenc(c),而这样又会暴露边界值,于是这里结合半同态加密的模型,使用两阶段判断来完成并保证安全性。即在加密机对常量c进行加密时,需要在c的密文域
中随机选择一个确定的值作为密文,比较操作变为dn>rc,而后数据库进行此密文比较后,排除了绝大部分小于c的值,但是还包含少量在rc密文域中随机且值大于rc的值,于是加密机在接收到数据库的返回结果集并解密后,需要再次比较,以去除少量的错误值。具体流程如图5所示:
[0089]
步骤一:加密机接收sql语句,其中包含比较操作score>c。对常量值c进行加密,在密文域enc(c)中随机取值等到rc,改写语句为score>rc。
[0090]
步骤二:云服务器接受到改写后的sql语句,包含比较操作score>rc。其中score列中的值已全加密,直接进行比较操作返回结果集。
[0091]
步骤三:加密机对返回的结果集进行解密,再次进行score>c的明文比较操作,得到正确的结果集。
[0092]
在本发明的方案中,因为采用了两阶段的检查方式,对于字符串这种无法估计长度的变长类型也可以进行加密。具体操作为对字符串的前n个字符进行编码,然后作为整数类型加密,在之后需要排序或比较操作时,相当于在云数据库先进行了前n的字符的操作得到一个结果集。而后在加密机中将结果集解密后进行二次操作。
[0093]
使用两阶段判断的半同态加密模型,在密文比较完成后,在加密机解密再次进行明文的比较操作,可以剔除密文比较结果中包含的少许错误值。对于字符串等类型,可以截取前n个字符编码进行密文加密以及比较,然后在加密机解密后进行二次筛选。
[0094]
综上所述,本发明采用随机的密文域分布,并且不暴露边界值以及数据分布频率,大幅降低了被频率分布破解攻击的风险,提升了加密方案的安全性。密文域中随机波动的错误值在总体结果集中只占很小的比例,本发明在保证数据安全性的前提下,提高了检索效率和检索准确率。
[0095]
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1