一种关系型数据库加密方法及该加密数据库查询方法技术

技术编号:27417279 阅读:28 留言:0更新日期:2021-02-21 14:34
本发明专利技术公开了一种关系型数据库加密方法及该加密数据库查询方法,在安全代理中建立数据加密方案,用户在客户端选择待加密的明文数据的加密密级后将所述待加密的明文数据发送到安全代理,安全代理根据所述数据加密方案和加密密级对所述待加密的明文数据进行加密得到密文数据,将密文数据发送到服务器端,密钥存储在安全代理中。通过上述方式,本发明专利技术能够极大地缩短加密时间,提高了数据加密效率和存储空间利用率,也保障了数据的安全,引入了安全代理机制,数据查询时安全代理只需要对查询结果进行一次解密即可,无需在服务器端进行解密,提升了查询效率和数据的安全性。提升了查询效率和数据的安全性。提升了查询效率和数据的安全性。

【技术实现步骤摘要】
一种关系型数据库加密方法及该加密数据库查询方法


[0001]本专利技术涉及数据隐私保护领域,特别是涉及一种关系型数据库加密方法及该加密数据库查询方法。

技术介绍

[0002]随着数据库技术的发展和数据量的激增,将所有数据全部存放在本地变的越来越不现实。在云计算业务迅速普及的今天,越来越多重要的数据被储存到云端数据库中,此时,数据库的安全性就变得尤为重要。数据库安全性的威胁主要来自两个方面,一方面是外部攻击者利用系统漏洞来获取对数据库的未授权访问,从而窃取隐私数据;另一方面是具有合法访问权限的好奇或恶意数据库管理员存在窥探、泄漏隐私数据的可能性。
[0003]保证数据库中隐私数据安全的一种常用方法是在隐私数据存入数据库之前对其进行加密,需要查询时,再对隐私数据进行解密。这种方法的缺陷是,明文数据经过加密后,失去了明文的一些属性,如数据之间的顺序关系,原有对明文的运算也无法在密文上执行,需要将所有密文解密为明文才能完成操作,这种方案在面对大规模的数据库存储需求时,执行效率远低于明文数据库。
[0004]中国专利技术专利(申请号:201610129024.6,公布号:CN 105787387 B)公开了一种数据库加密方法及该加密数据库查询方法,引入等值加密算法、保序加密算法和同态加密算法针对数据库中的数据进行分类加密,并存储在服务器端数据库中,还在对数据库中的数据进行分类加密的基础之上,提供了在密文上直接执行查询操作的处理方法。但其对数据库中同一类数据进行多次加密存储,占用了大量的存储空间。而且该方法将密钥存储在数据库中,并且直接在数据库端对隐私数据进行解密,这都可能造成隐私数据泄漏。
[0005]中国专利技术专利(申请号:201610876906.9,公告号:CN 106529327 B)公开了混合云环境下面向加密数据库的数据存取系统及方法:在上传数据的过程中,用户模块按照数据密级的不同将数据进行密级划分,私有云服务器的不同模块对上传的数据进行加密处理;用户查询数据时,首先要经过私有云服务器上的不同模块,对用户进行身份认证和权限控制,使得用户在其权限范围内实现在密文数据上进行查询。该方案存在的不足之处是:采用了可所搜加密算法对数据库中存储的所有数据都建立了索引,如果可搜索加密算法被破解,就会泄漏数据库中所有数据的部分信息,存在较大的安全隐患;在查询过程中需要对查询结果进行两次解密,耗时长、效率低。
[0006]ORE(Order-Revealing Encryption),顺序可见加密,是保序加密的改进版本。在ORE中,通过设置特殊的密文比较方式,可以直接对密文进行比较,如果 x<y,那么ORE_k(x)<ORE_k(y)。这种算法针对数值比较,这是由ORE算法的特性决定的。
[0007]DET(Deterministic),确定加密,该密码层要求同一列中明文与密文的确定性,在同一加密算法下,如果两项密文的明文值相同,则其对应的密文值也相同。算法本身是一种伪随机序列算法,从而能够通过算法本身的随机性,来保证整个DET密码层的随机性。
[0008]RND(Random),随机加密,该密码层要求较大程度的随机化,以提升安全性,即使以
相同密钥值构建的相同加密算法来加密相同的明文值,其密文值也不相同。其通过密码分组链接模式下的组对称加密算法(如 AES、Blowfish)实现,故具有较高的安全性。
[0009]谓语指的是在SQL查询语句中表示判断、筛选、过滤等临界条件的值。

技术实现思路

[0010]本专利技术主要解决的技术问题是提供一种关系型数据库加密方法及该加密数据库查询方法,能够解决数据库端存储空间占用过多、使用可搜索加密算法建立索引带来的安全隐患,以及查询过程中对查询结果进行解密耗时长、效率低的问题。
[0011]为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种关系型数据库加密方法,包括:步骤1,在安全代理中建立数据加密方案;步骤2,用户在客户端选择待加密的明文数据的加密密级后将所述待加密的明文数据发送到安全代理;步骤3,安全代理根据所述数据加密方案和加密密级对所述待加密的明文数据进行加密得到密文数据,将密文数据发送到服务器端,密钥存储在安全代理中;步骤4,服务器存储收到的密文数据;所述加密密级包括公开级、机密级和绝密级;所述密钥包括ORE密钥、DET密钥和RND密钥;所述安全代理是存在于服务器和客户端之间的一个第三方服务器。
[0012]进一步的,所述数据加密方案,包括:对数值型公开级的明文数据都不做加密处理;对数值型机密级的明文数据分别采用ORE加密;对数值型绝密级的明文数据先采用ORE加密,对ORE加密后的密文再采用RND进行加密。
[0013]进一步的,所述数据加密方案,还包括:对字符型公开级的明文数据都不做加密处理;对字符型机密级的明文数据拼接成块级数据后按块加密,采用DET加密;对字符型绝密级的明文数据拼接成块级数据后按块加密,先采用DET加密,对DET加密后的密文再采用RND进行加密。
[0014]进一步的,所述数据加密方案,还包括:对按块加密的数据建立数据字典;所述数据字典的格式:{key:拼接列名1;value:列名1-列名2
-…
}。
[0015]一种基于前述一种关系型数据库加密方法的该加密数据库查询方法,包括:S1,用户在客户端发送明文查询语句到安全代理;S2,安全代理根据查询语句的谓语进行判断,若查询的是公开级数据,则转入S31;若查询的是机密级数据,则转入S41;若查询的是绝密级数据,则转入S51;S31,直接将查询语句转发给服务器;S32,服务器根据所述查询语句得到明文查询结果,并将明文查询结果发送到安全代理,转入S6;S41,安全代理对查询谓语按照机密级数据进行加密得到第一加密谓语,并用第一加密
谓语替换明文谓语发送到服务器;S42,服务器根据所述查询语句得到查询结果,并将查询结果发送到安全代理;S43,安全代理对所述查询结果进行解密得到明文查询结果,转入S6;S51,安全代理对查询谓语按照机密级数据进行加密得到第二加密谓语,同时服务器对绝密级数据的密文数据进行RND解密;S52,安全代理将第二加密谓语替换明文谓语查询语句并发送给服务器;S53,服务器将查询结果返回给安全代理,同时对进行过RND解密的绝密级数据的密文数据进行RND加密,并更新安全代理中的RND密钥;S54,安全代理对接收到的查询结果进行解密后得到块级明文数据,根据数据字典查询得到明文查询结果,转入S6;S6,安全代理将所述明文查询结果并发送给客户端;所述S41和S51中的安全代理对查询谓语按照机密级数据进行加密,包括:若查询的数据是数值型,则对查询谓语采用ORE加密;若查询数据的是字符型,则对查询谓语采用DET加密。
[0016]本专利技术的有益效果是:本专利技术提供的一种关系型数据库加密方法及该加密数据库查询方法采用以上技术方案与现有技术相比,具有以下技术效果:本专利技术提出了对数据进行分数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种关系型数据库加密方法,其特征在于,包括:步骤1,在安全代理中建立数据加密方案;步骤2,用户在客户端选择待加密的明文数据的加密密级后将所述待加密的明文数据发送到安全代理;步骤3,安全代理根据所述数据加密方案和加密密级对所述待加密的明文数据进行加密得到密文数据,将密文数据发送到服务器端,密钥存储在安全代理中;步骤4,服务器存储收到的密文数据;所述加密密级包括公开级、机密级和绝密级;所述密钥包括ORE密钥、DET密钥和RND密钥;所述安全代理是存在于服务器和客户端之间的一个第三方服务器。2.如权利要求1所述的一种关系型数据库加密方法,其特征在于,所述数据加密方案,包括:对数值型公开级的明文数据都不做加密处理;对数值型机密级的明文数据分别采用ORE加密;对数值型绝密级的明文数据先采用ORE加密,对ORE加密后的密文再采用RND进行加密。3.如权利要求2所述的一种关系型数据库加密方法,其特征在于,所述数据加密方案,还包括:对字符型公开级的明文数据都不做加密处理;对字符型机密级的明文数据拼接成块级数据后按块加密,采用DET加密;对字符型绝密级的明文数据拼接成块级数据后按块加密,先采用DET加密,对DET加密后的密文再采用RND进行加密。4.如权利要求3所述的一种关系型数据库加密方法,其特征在于,所述数据加密方案,还包括:对按块加密的数据建立数据字典;所述数据字典的格式:{key:拼接列名1;value:列名1-列名2
-…
}。5.一种基于权利要求1-4...

【专利技术属性】
技术研发人员:马勇戴梦轩赵家乐陈虎元曹远龙赵从俊
申请(专利权)人:江西师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1