CN106934298A - 一种通用数据库透明加密系统 - Google Patents
一种通用数据库透明加密系统 Download PDFInfo
- Publication number
- CN106934298A CN106934298A CN201710127008.8A CN201710127008A CN106934298A CN 106934298 A CN106934298 A CN 106934298A CN 201710127008 A CN201710127008 A CN 201710127008A CN 106934298 A CN106934298 A CN 106934298A
- Authority
- CN
- China
- Prior art keywords
- encryption
- function
- sql
- index
- database
- 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.)
- Granted
Links
- 230000000977 initiatory effect Effects 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 230000001010 compromised effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000009466 transformation Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 52
- 230000007246 mechanism Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 208000026139 Memory disease Diseases 0.000 description 1
- 101100005280 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cat-3 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000006984 memory degeneration Effects 0.000 description 1
- 208000023060 memory loss Diseases 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种通用数据库透明加密系统,属于信息安全以及数据库加密技术领域。本发明首先对已有的数据表进行加密改造:记加密字段P1所在表为T1,首先,基于加密字段P1建立密文索引字段I1;然后,基于保序哈希函数将待加密字段内容映射到哈希值,并将其作为索引值插入I1字段。系统包括SQL网关模块和加密插件模块,SQL网关模块用于接收并重写客户端发起的SQL语句,然后发送到数据库服务器,并将数据库服务器返回的结果转发到客户端;加密插件模块位于数据库内,主要包括一系列用户自定义函数UDF,根据重写后的SQL语句,实现加密、解密、以及密文索引功能。对比现有技术,本发明实现了真正通用的数据库加密系统。
Description
技术领域
本发明涉及一种网关式数据库透明加密系统,属于信息安全以及数据库加密技术领域。
背景技术
目前,数据泄露事件频频发生,各行各领域都不能幸免。明文数据在数据库中的存储是不安全的,攻击者能通过社会工程和技术入侵等手段来进行数据窃取。数据库的安全日益重要,对数据库中的敏感字段进行加密是有效的安全手段。
对数据库敏感字段加密可以通过触发器和视图结合的方式来实现,这是一种库内加密的方式。它的核心思想在于利用数据库自己提供的视图和触发器来进行原表数据的隐藏和实现对数据增删改查等操作中的加密和解密,并且利用数据库提供的自定义索引机制来实现加密后对数据的快速检索。但是这种方式受制于数据库自身的自定义索引的机制,仅适用于ORACLE等少数数据库,并不是通用的方案。
CRYPTDB是一种网关式数据库加密系统原型,通过改写SQL语句实现了透明加密。它将数据嵌套进多个加密层,每层都使用不同的加密方法以支持不同的查询操作。虽然其理论上可以支持所有的数据库,但是由于其加密解密发生在网关上,使得其不能支持全部的SQL语句,尤其是字段上的运算和函数,所以也不是通用的方案。
上述已有的数据库加密技术虽然能在某些数据库上或者对某些SQL请求实现敏感数据的加密,以起到保护用户数据的效果。然而,在具有多类数据库和多种SQL语句的系统下,并不能满足需求。本发明的目的是致力于解决上述不能支持通用数据库和通用SQL的技术缺陷,提出一种通用的数据库透明加密系统。
发明内容
本发明的目的是针对现有数据库加密技术存在的不支持通用数据库类型和通用SQL语句类型的问题,提出一种通用的数据库透明加密系统,该系统能够在不同的数据库上实现,并且能够兼容所有的SQL语句类型。
本发明的目的是通过以下技术方案实现的:
一种通用数据库透明加密系统,基于现有数据库管理系统,首先对已有的数据表进行如下加密改造:记加密字段P1所在表为T1,首先,基于加密字段P1建立密文索引字段I1,然后,基于保序哈希函数将待加密字段内容映射到哈希值H1,并将H1存入T1中的I1字段,此时,映射后的哈希值偏序关系体现了待加密字段内容的偏序关系,基于这种关系,可以实现对加密字段的等值查询和范围查询;
包括SQL网关模块和加密插件模块;SQL网关模块与数据库管理系统相连接,数据库管理系统与加密插件模块相连接;
SQL网关模块,位于数据库客户端和数据库服务器之间,是客户端访问数据库服务器的代理;用于接收客户端发起的SQL语句,并对客户端发起的SQL请求进行重写,然后发送到数据库服务器;并将数据库服务器返回的结果转发到客户端;所述对客户端发起的SQL请求进行重写就是将客户端发起的SQL语句改写成所述加密插件模块可识别并处理的SQL语句;
加密插件模块,位于数据库内,主要包含一系列用户自定义函数UDF,根据重写后的SQL语句,实现加密、解密,以及密文索引功能。
作为优选,所述SQL网关模块对接收的SQL请求进行重写,加密插件实现加密解密函数以及索引函数的调用,具体为:
(1)对于INSERT请求,SQL网关将请求中加密字段的值替换为加密函数的调用,该函数调用的参数为该字段的明文内容,同时将对应密文索引字段的内容填充为相应的索引函数的调用,该函数调用的参数为字段的明文内容。
该重写后的请求在数据库内,由加密插件实现加密函数,根据明文和密钥生成密文,同时,加密插件实现索引函数,根据明文生成索引值。
(2)对于SELECT请求,SQL网关将语句中查询条件WHERE前的加密字段替换为解密函数的调用,该函数调用的参数为该字段的密文字段名称,将查询条件WHERE中与加密字段相关的条件,替换为对应的密文索引条件。加密插件实现解密函数,根据密文和密钥,生成明文。加密插件还实现索引函数,根据查询条件生成索引值。该重写后的请求在数据库内,依据已有的密文索引生成满足查询条件的明文记录集。
(3)对于UPDATE请求,SQL网关将更新条件WHERE前加密字段的新值替换为加密函数的调用,该函数调用的参数为该字段的明文内容,同时将对应密文索引字段的内容填充为相应的索引值,将WHERE查询条件中与加密字段相关的条件,替换为对应的密文索引条件。
该重写后的请求在数据库内,由加密插件实现加密函数,根据明文和密钥生成密文,并根据明文生成索引值,同时,加密插件根据查询条件,依据已有的密文索引生成满足查询条件的记录集。
(4)对于DELETE请求,SQL网关将查询WHERE条件中与加密字段相关的条件,替换为对应的密文索引条件。
该重写后的请求在数据库内,由加密插件根据查询条件,依据已有的密文索引生成满足查询条件的记录集。
作为优选,所述加密插件模块的UDF包括以下内容:
(1)ENC():加密函数,根据明文生成密文;
(2)DEC():解密函数,根据密文生成明文;
(3)IDX():保序索引函数,根据字段的明文数据生成索引值,该索引值体现原文的大小关系,可以根据该索引值实现高速查询。
作为优选,所述IDX()为带随机偏置的保序哈希算法,该算法使得同样的明文对应不同的索引值,避免了原文的统计信息被泄漏。
(4)IDX_LOW():保序索引函数的下界,根据字段的明文数据生成带随机偏置的索引值的最小值;
(5)IDX_UP():保序索引函数的上界,根据字段的明文数据生成带随机偏置的索引值的最大值。
有益效果:
与现有的透明加密的系统与方法相比,本发明具有如下增益效果:
(1)经过加密系统的处理,存储在数据库中的敏感数据为密文,可以防止存储丢失或者权限泄露导致的数据泄漏;
(2)所述SQL网关和插件模块具有高通用性,能兼容各类数据库,以及各种SQL语句;
(3)所述插件模块完全利用数据库自身机制,对用户的数据库本身是零修改;
(4)仅需要一种保序索引,不需要多层加密,就能实现对所有SQL语句的支持,包括字段的运算和函数等,减少存储开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对实施例描述中所需要使用的附图做简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图,获得其他的附图。
图1是本发明实施例一种通用数据库透明加密系统的结构原理示意图;
图2是本发明实施例一种通用数据库透明加密系统对SELECT语句的处理流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域中普通技术员工在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
如图1所示是一种通用数据库透明加密系统的结构原理图,由图1可见,数据库加密系统由SQL网关和加密插件组成。SQL网关以代理的方式位于数据库入口处,接受对数据库的所有访问,对访问进行重写后转发到数据库实例,数据库实例根据收到的请求,调用加密插件,实现数据库的透明加密和解密。
一个SQL请求被处理的具体步骤如下:
步骤(1)客户端发送SQL请求;
步骤(2)SQL网关接收SQL请求,并根据SQL内容进行重写;
步骤(3)SQL网关发送重写后的SQL请求至数据库实例;
步骤(4)数据库实例执行接收到的SQL请求,必要时调用加密插件;
步骤(5)数据库将执行结果发送到SQL网关;
步骤(6)SQL网关将数据结果转发给客户端。
实施例2
以ORACLE数据库为例,本实施例详细阐述了本发明一种通用数据库透明加密系统对现有ORACLE数据表的加密改造过程。
如表1所示是本实施例中原有加密前的数据表T1。其中包括两个字段C1和C2,并且已有一些记录。字段ROWID为ORACLE系统提供的伪列,其值表示每个记录的物理位置,也是被加密记录的唯一性标识。C1为字符型字段,为非敏感字段,不需要对其进行加密。C2为数值型字段,为待加密字段。
表1:T1
ROWID | C1 | C2 |
1 | APPLE | 1 |
2 | BEE | 2 |
3 | CAT | 3 |
4 | DOG | 4 |
首先,针对于上述实施例1中的表T1,将字段C2重命名为EC2,EC2中保存原C2明文加密后的密文,在T1中增加密文索引字段IDX_C2,用于保存原C2明文的密文索引值,如表2所示:
表2:加密后的表T1
ROWID | C1 | EC2 | IDX_C2 |
1 | APPLE | E(1) | 112 |
2 | BEE | E(2) | 125 |
3 | CAT | E(3) | 139 |
4 | DOG | E(4) | 144 |
然后,基于保序哈希函数将待加密字段内容映射到哈希值。本实例中,使用带随机偏置的保序哈希函数,如Y=AX+B+R,此处A为缩放系数,取值为10,B为偏置常数,取值为100,R为随机偏置,随机的取值在0到9之间。分别将1、2、3、4映射为索引值112、123、139、144。由Y的定义式可知,这种映射是单向的,不能根据索引值推算出原值。索引值体现被索引内容的偏序关系,但是跟被索引值具有不同的统计特征,不能根据索引值推断出被索引内容的统计特征,从而增强索引系统的安全。
最后,基于映射后的哈希值,实现对加密字段的等值查询和范围查询。比如,对于查询:查找C2的值大于等于3的所有记录。首先将3,通过上述同样的保序哈希函数IDX_LOW(3)映射为最小值130,此时R取最小值0。然后在索引表T1查找IDX_C2大于等于130的所有记录,就可以找到满足查询条件“C2的值大于等于3”的所有记录。又比如,对于查询:查找C2的值等于3的所有记录。首先将3,通过上述的保序哈希函数IDX_LOW(3)以及IDX_UP(3)分别生成索引值的下界和上界,也就是映射为查询范围[130,139],此时R分别取从最小值0和最大值9。然后在索引表T1查找IDX_C2大于等于130且小于等于139的所有记录,就可以找到满足查询条件“C2的值等于3”的所有记录。
如熟悉该领域的技术人员所共知,显然可以使用更加安全的保序哈希函数,来增强索引字段的抗分析性,以增加本系统的安全性。
实施例3
本实施例详细阐述了本发明一种通用数据库透明加密系统具体实施时对SELECT请求的具体处理。
由图2可见,对于SELECT请求,SQL网关将WHERE前的加密字段替换为解密函数调用,特别的,对WHERE查询条件中的等值或者范围查询条件中的加密字段,替换为保序索引函数的调用。例如,对于等值查询:
SELECT C2FROM T1WHERE C2=2;
在SQL网关上进行重写,转化为:
SELECT DEC(EC2)AS C2FROM T1WHERE IDX_C2>=IDX_LOW(2)
AND IDX_C2<=IDX_UP(2);
SQL网关将语句中查询条件外的加密字段C2替换为解密函数DEC()的调用,该函数调用的参数为对应密文字段EC2的内容,并以C2为列名返回,从而实现对应用的透明。将查询条件中与加密字段相关的条件,替换为对应的密文索引条件:表中C2为加密字段,对C2的等值查询,替换为对IDX_C2的等值查询,查询条件替换为同样的索引函数的调用IDX(),参数为真实查询条件“2”。其中解密函数调用DEC(EC2)与索引字段查询函数调用IDX(2)由加密插件完成。解密函数根据加密字段内容生成明文,索引函数根据明文查询条件生成密文索引的查询条件,进而数据库系统生成满足查询条件的记录集。对于范围查询,采用相似的过程即可完成。
对于字段有运算的复杂查询,也可以通过这种替换来透明实现。例如,对于查询语句:
SELECT C2*5FROM T1WHERE C2=2;
则可对运算C2*5替换为DEC(EC2)*5,整个SQL请求替换为:
SELECT DEC(EC2)*5FROM T1WHERE IDX_C2>=IDX_LOW(2)AND
IDX_C2<=IDX_UP(2);
或者对于条件中有运算的查询:
SELECT C1FROM T1WHERE 2*C2=10;
则可对查询条件中的运算2*C2替换为2*DEC(EC2),整个SQL请求替换为:
SELECT C1FROM T1WHERE 2*DEC(EC2)=10;
通过这种替换,可以支持所有的SELECT语句,包括模糊查询、对字段的运算等复杂操作。
实施例4
本实施例详细阐述了本发明一种通用数据库透明加密系统具体实施时对INSERT请求的具体处理。
SQL网关对INSERT请求中的加密字段名,替换为加密改造后的加密字段名,并计算索引值,将索引值插入到对应的索引字段。例如,对于插入请求:
INSERT INTO T1(C1,C2)VALUES(‘EGG’,5);
在SQL网关上进行重写,替换为:
INSERT INTO T1(C1,C2,IDX_C2)VALUES(‘EGG’,ENC(5),IDX(5));
其中C1为加密字段,SQL网关将加密字段的值替换为对加密函数ENC()的调用,函数的参数即为加密前的字段值。同时,对加密字段的索引字段使用密文索引函数IDX()进行填充,函数的参数也为加密前的字段值。加密插件实现加密函数ENC(5)与密文索引函数IDX(5)的调用,分别生成密文和索引值。
实施例5
本实施例详细阐述了本发明一种通用数据库透明加密系统具体实施时对UPDATE请求的具体处理。
SQL网关对UPDATE请求中的被更新的加密字段名,替换为加密改造后的加密字段名,并将更新后的新值替换为对加密函数的调用,并计算索引值,将索引值插入到对应的索引字段。特别的,对查询条件中的等值或者范围查询条件中的加密字段,替换为保序索引函数的调用,将查询条件替换为索引函数的调用。例如,对UPDATE请求:
UPDATE T1SET C2=20WHERE C2=2;
在SQL网关上进行重写,将其替换为:
UPDATE T1SET EC2=ENC(20)WHERE IDX_C2>=IDX_LOW(2)AND
IDX_C2<=IDX_UP(2);
SQL网关将WHERE前的等号前的加密字段C2的替换加密改造后的字段名EC2,并使其密文新值等于对加密函数ENC()的调用,函数的参数即为C2真实的新值2。同时,将索引字段IDX_C2的内容替换为通过密文索引函数IDX()生成新的索引值,函数的参数即为C2真实的新值2。对于查询条件,则通过调用IDX_LOW(2)和IDX_UP(2)实现。
实施例6
本实施例详细阐述了本发明一种通用数据库透明加密系统具体实施时对DELETE请求的具体处理。
SQL网关对DELETE请求中查询条件中的加密字段名,替换为解密函数调用,特别的,对查询条件中的等值或者范围查询条件中的加密字段,替换为保序索引函数的调用,查询条件替换为索引函数的调用。例如,对于DELETE请求:
DELETE FROM T1WHERE C2=100;
在SQL网关上进行重写,替换为:
DELETE FROM T1WHERE IDX_C2>=IDX_LOW(100)AND IDX_C2<=IDX_UP(100);
SQL网关将查询条件中与加密字段相关的条件,替换为对应的密文索引条件:表中C2为加密字段,对C2的等值查询,替换为对IDX_C2的等值查询,查询条件替换为索引函数IDX_LOW(100)和IDX_UP(100)的调用,参数为真实查询条件“100”。
对于字段有运算的条件,也可以通过这种替换来透明实现。例如,对于DELETE语句:
DELETE FROM T1WHERE 2*C2=100;
则可对运算2*C2替换为2*DEC(EC2),整个SQL请求替换为:
DELETE FROM T1WHERE 2*DEC(EC2)=100;
通过这种替换,可以支持所有的DELETE语句,包括模糊查询、对字段的运算条件等复杂查询条件。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的思想下完成的等效或修改,都落入本发明保护的范围。
Claims (7)
1.一种通用数据库透明加密系统,其特征在于,基于对已有的数据表进行如下加密改造:记加密字段P1所在表为T1,首先,基于加密字段P1建立密文索引字段I1,然后,基于保序哈希函数将待加密字段内容映射到哈希值,并将该哈希值作为密文索引存入T1中的I1字段,此时,映射后的哈希值偏序关系体现了待加密字段内容的偏序关系,基于这种关系,可以实现对加密字段的等值查询和范围查询;
包括SQL网关模块和加密插件模块;SQL网关模块与数据库管理系统相连接,数据库管理系统与加密插件模块相连接;
SQL网关模块,位于数据库客户端和数据库服务器之间,是客户端访问数据库服务器的代理;用于接收客户端发起的SQL语句,并对客户端发起的SQL请求进行重写,然后发送到数据库服务器;并将数据库服务器返回的结果转发到客户端;所述对客户端发起的SQL请求进行重写就是将客户端发起的SQL语句改写成所述加密插件模块可识别并处理的SQL语句;
加密插件模块,位于数据库内,主要包括一系列用户自定义函数UDF,根据重写后的SQL语句,实现加密、解密、以及密文索引功能。
2.根据权利要求1所述的一种通用数据库透明加密系统,其特征在于:所述SQL网关模块对接收的SQL请求进行重写,加密插件模块实现加密、解密以及密文索引功能,具体为:
(1)对于INSERT请求,SQL网关将请求中加密字段的值替换为加密函数的调用,该函数调用的参数为该字段的明文内容,同时将对应密文索引字段的内容填充为相应的索引函数的调用,该函数调用的参数为字段的明文内容;该重写后的请求在数据库内,由加密插件实现加密函数,根据明文和密钥生成密文,同时,加密插件实现索引函数,根据明文生成索引值;
(2)对于SELECT请求,SQL网关将语句中查询条件WHERE前的加密字段替换为解密函数的调用,该函数调用的参数为该字段的密文字段名称,将查询条件WHERE中与加密字段相关的条件,替换为对应的密文索引条件;加密插件实现解密函数,根据密文和密钥,生成明文;加密插件还实现索引函数,根据查询条件生成索引值;该重写后的请求在数据库内,依据已有的密文索引生成满足查询条件的明文记录集;
(3)对于UPDATE请求,SQL网关将更新条件WHERE前加密字段的新值替换为加密函数的调用,该函数调用的参数为该字段的明文内容,同时将对应密文索引字段的内容填充为相应的索引值,将WHERE查询条件中与加密字段相关的条件,替换为对应的密文索引条件;该重写后的请求在数据库内,由加密插件实现加密函数,根据明文和密钥生成密文,并根据明文生成索引值,同时,加密插件根据查询条件,依据已有的密文索引生成满足查询条件的记录集;
(4)对于DELETE请求,SQL网关将查询WHERE条件中与加密字段相关的条件,替换为对应的密文索引条件;该重写后的请求在数据库内,由加密插件根据查询条件,依据已有的密文索引生成满足查询条件的记录集。
3.根据权利要求1或2所述的一种通用数据库透明加密系统,其特征在于:所述加密插件模块的UDF包括以下内容:
(1)ENC():加密函数,根据明文生成密文;
(2)DEC():解密函数,根据密文生成明文;
(3)IDX():保序索引函数,根据字段的明文数据生成索引值,该索引值体现原文的大小关系,可以根据该索引值实现高速查询。
(4)IDX_LOW():保序索引函数的下界,根据字段的明文数据生成带随机偏置的索引值的最小值,用于查询;
(5)IDX_UP():保序索引函数的上界,根据字段的明文数据生成带随机偏置的索引值的最大值,用于查询。
4.根据权利要求3所述的一种通用数据库透明加密系统,其特征在于:所述保序索引函数IDX()为带随机偏置的保序哈希算法,该算法使得同样的明文对应不同的索引值,避免了原文的统计信息被泄漏;此时,IDX_LOW()为该函数的下界,即随机偏置参数取0;IDX_UP()为该函数的上界,即随机偏置参数取9。
5.根据权利要求4所述的一种通用数据库透明加密系统,其特征在于:当所述保序索引函数IDX()为带随机偏置的保序哈希算法时,所述WHERE查询条件中与加密字段相关的条件,替换为对应的密文索引条件采用下述方式替换:
对于等于等值查询,将原等值查询条件重写为索引值的范围查询条件,通过保序哈希函数IDX_LOW()以及IDX_UP()分别生成索引值的下界和上界;
对于范围查询,将查询条件重写为索引值的范围查询,索引值的查询范围下界通过所述IDX_LOW()生成,索引值的查询范围上界通过所述IDX_UP()生成。
6.根据权利要求4或5所述的一种通用数据库透明加密系统,其特征在于:所述带随机偏置的保序哈希算法为Y=AX+B+R,其中A为缩放系数,B为偏置常数,R为随机偏置数。
7.根据权利要求6所述的一种通用数据库透明加密系统,其特征在于:A=10,B=100,R为取值在0到9之间的随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710127008.8A CN106934298B (zh) | 2017-03-06 | 2017-03-06 | 一种通用数据库透明加密系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710127008.8A CN106934298B (zh) | 2017-03-06 | 2017-03-06 | 一种通用数据库透明加密系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106934298A true CN106934298A (zh) | 2017-07-07 |
CN106934298B CN106934298B (zh) | 2019-12-31 |
Family
ID=59423274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710127008.8A Expired - Fee Related CN106934298B (zh) | 2017-03-06 | 2017-03-06 | 一种通用数据库透明加密系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106934298B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121920A (zh) * | 2017-12-19 | 2018-06-05 | 山东渔翁信息技术股份有限公司 | Oracle数据库中数据加密的方法、装置及电子设备 |
CN108595291A (zh) * | 2018-04-01 | 2018-09-28 | 陈丽霞 | 一种医疗数据备份系统 |
CN108932407A (zh) * | 2018-05-22 | 2018-12-04 | 北京奇虎科技有限公司 | 一种程序安全保护方法及装置 |
CN109614819A (zh) * | 2018-12-03 | 2019-04-12 | 北京安华金和科技有限公司 | 一种利用插件提高数据库安全的方法 |
CN109960942A (zh) * | 2019-03-27 | 2019-07-02 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其系统 |
CN109992986A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团上海有限公司 | 一种敏感数据的脱敏处理方法及装置 |
CN111427908A (zh) * | 2020-04-23 | 2020-07-17 | 北京中安星云软件技术有限公司 | 一种基于量子密钥的透明加、解密方法、系统及装置 |
CN112165387A (zh) * | 2020-09-28 | 2021-01-01 | 百行征信有限公司 | 数据散列值的转换方法、装置及计算机设备 |
CN112583809A (zh) * | 2020-12-09 | 2021-03-30 | 北京国研数通软件技术有限公司 | 非浸入式多种加密算法的数据加密解密的方法 |
CN113111082A (zh) * | 2021-03-09 | 2021-07-13 | 深圳市教育信息技术中心(深圳市教育装备中心) | 结构化查询语句重写方法、装置、设备和介质 |
CN118153081A (zh) * | 2024-05-11 | 2024-06-07 | 杭州深普科技有限公司 | 一种数据加密管理系统及数据加密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436208A (zh) * | 2008-12-09 | 2009-05-20 | 北京交通大学 | 一种密文数据库隐私保护查询方法 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN102902932A (zh) * | 2012-09-18 | 2013-01-30 | 武汉华工安鼎信息技术有限责任公司 | 基于sql重写的数据库外部加解密系统及其使用方法 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN105138585A (zh) * | 2015-07-31 | 2015-12-09 | 福建天晴数码有限公司 | 数据库加密字段部分匹配查询方法及系统 |
-
2017
- 2017-03-06 CN CN201710127008.8A patent/CN106934298B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436208A (zh) * | 2008-12-09 | 2009-05-20 | 北京交通大学 | 一种密文数据库隐私保护查询方法 |
CN102855448A (zh) * | 2012-08-10 | 2013-01-02 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN102902932A (zh) * | 2012-09-18 | 2013-01-30 | 武汉华工安鼎信息技术有限责任公司 | 基于sql重写的数据库外部加解密系统及其使用方法 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN105138585A (zh) * | 2015-07-31 | 2015-12-09 | 福建天晴数码有限公司 | 数据库加密字段部分匹配查询方法及系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121920A (zh) * | 2017-12-19 | 2018-06-05 | 山东渔翁信息技术股份有限公司 | Oracle数据库中数据加密的方法、装置及电子设备 |
CN109992986A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团上海有限公司 | 一种敏感数据的脱敏处理方法及装置 |
CN108595291B (zh) * | 2018-04-01 | 2021-08-31 | 山东协和学院 | 一种医疗数据备份系统 |
CN108595291A (zh) * | 2018-04-01 | 2018-09-28 | 陈丽霞 | 一种医疗数据备份系统 |
CN108932407A (zh) * | 2018-05-22 | 2018-12-04 | 北京奇虎科技有限公司 | 一种程序安全保护方法及装置 |
CN108932407B (zh) * | 2018-05-22 | 2022-01-25 | 北京奇虎科技有限公司 | 一种程序安全保护方法及装置 |
CN109614819A (zh) * | 2018-12-03 | 2019-04-12 | 北京安华金和科技有限公司 | 一种利用插件提高数据库安全的方法 |
CN109960942A (zh) * | 2019-03-27 | 2019-07-02 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其系统 |
CN109960942B (zh) * | 2019-03-27 | 2021-04-27 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其系统 |
CN111427908A (zh) * | 2020-04-23 | 2020-07-17 | 北京中安星云软件技术有限公司 | 一种基于量子密钥的透明加、解密方法、系统及装置 |
CN112165387A (zh) * | 2020-09-28 | 2021-01-01 | 百行征信有限公司 | 数据散列值的转换方法、装置及计算机设备 |
CN112583809A (zh) * | 2020-12-09 | 2021-03-30 | 北京国研数通软件技术有限公司 | 非浸入式多种加密算法的数据加密解密的方法 |
CN112583809B (zh) * | 2020-12-09 | 2022-09-30 | 北京国研数通软件技术有限公司 | 非浸入式多种加密算法的数据加密解密的方法 |
CN113111082B (zh) * | 2021-03-09 | 2022-01-14 | 深圳市教育信息技术中心(深圳市教育装备中心) | 结构化查询语句重写方法、装置、设备和介质 |
CN113111082A (zh) * | 2021-03-09 | 2021-07-13 | 深圳市教育信息技术中心(深圳市教育装备中心) | 结构化查询语句重写方法、装置、设备和介质 |
CN118153081A (zh) * | 2024-05-11 | 2024-06-07 | 杭州深普科技有限公司 | 一种数据加密管理系统及数据加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106934298B (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106934298A (zh) | 一种通用数据库透明加密系统 | |
CN107292183B (zh) | 一种数据处理方法及设备 | |
CN107315968B (zh) | 一种数据处理方法及设备 | |
CN104881280B (zh) | 一种支持多查询的密文数据库中间件的设计方法 | |
CN106934030A (zh) | 一种面向数据库加密的密文索引方法和库内加密系统 | |
US9792454B2 (en) | Record level data security | |
KR101371608B1 (ko) | Dbms 및 데이터베이스에서 암호화 방법 | |
CN109815719A (zh) | 一种可搜索的数据库安全加密系统 | |
CN112800088A (zh) | 基于双向安全索引的数据库密文检索系统及方法 | |
Pham et al. | Survey on secure search over encrypted data on the cloud | |
CN109409129A (zh) | 一种基于sql改写实现的数据库同态加密方法 | |
CN108734024A (zh) | 一种基于字典映射的高效数据库加密方法 | |
CN106934301A (zh) | 一种支持密文数据操作的关系型数据库安全外包数据处理方法 | |
CN112583809B (zh) | 非浸入式多种加密算法的数据加密解密的方法 | |
Wu et al. | A privacy protection approach for XML-based archives management in a cloud environment | |
US10198591B2 (en) | Systems, methods, and devices for securing data stored in a cloud environment | |
CN110110550A (zh) | 一种支持云存储的可搜索加密方法及系统 | |
CN114579998A (zh) | 一种区块链辅助的医疗大数据搜索机制与隐私保护方法 | |
CN117459327B (zh) | 一种云数据透明加密保护方法、系统及装置 | |
CN106874379B (zh) | 一种面向密文云存储的多维区间检索方法与系统 | |
CN108141462B (zh) | 数据库查询的方法和系统 | |
CN115455463A (zh) | 一种基于同态加密的隐匿sql查询方法 | |
CN207543120U (zh) | 基于量子密钥分配技术的加密数据库系统 | |
CN109784075B (zh) | 一种数据安全共享的云分布式数据库系统及方法 | |
US11003783B1 (en) | Searchable encrypted data stores |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191231 |