首页 理论教育查询加密关系数据在分布式数据库技术中的应用

查询加密关系数据在分布式数据库技术中的应用

【摘要】:因为服务供应商并不可信,所以关系以加密形式存储。假设数据在记录级加密,即每个表的每个记录加密成一个数据块。这样,加密关系表示由一个加密记录集合构成。反之,使用DAS的本意是直接在服务器端处理查询,而无需解密数据。在关系型表示的数据进行加密后,要对其实施SQL查询,即开发出一种能在加密数据上支持比较运算和算术运算的机制。

假设用户Alice有一个外包数据库,其中包括EMP(eid,ename,salary,addr,did)和DEPARTMENT(did,dname,mgr)两个关系。这里,关系EMP里的属性是雇员号(eid)、雇员姓名(ename)、工资(salary)、住址(addr)和部门标识号(did)。关系DEPARTMENT里的属性是部门标识号(did)、部门名称(dname)和主管经理(mgr)。它们都存储在服务供应商服务器端。因为服务供应商并不可信,所以关系以加密形式存储。假设数据在记录级加密,即每个表的每个记录加密成一个数据块。这样,加密关系表示由一个加密记录集合构成。

假设在客户端1,Alice提出查询“展示为Bob工作的雇员的工资总和”,如下:

Select SUM(E.salary)from EMP as E,DEPARTMENT as D where E.did=D.did AND D.mgr="Bob"

Alice评估这样一个查询的可用方法是,请求服务器端获得关系EMP和DEPARTMENT的加密形式。数据到客户端后,客户端对表进行解密并执行查询。这样,整个加密表(可能规模很大)必须传输到客户端,这违反了外包数据库的本意。反之,使用DAS的本意是直接在服务器端处理查询,而无需解密数据。

那么如何解决呢?如前所述,查询表达式由谓词表达式的合取或析取形式构成。谓词表达式的一般形式如下:

其中:式(1)的左边是一个属性,右边是一个值,中间是一个比较运算符(如=、<、>、≠等)。(2)式的右边是一个算术表达式。它们构成查询里最基本的运算。(www.chuimin.cn)

在关系型表示的数据进行加密后,要对其实施SQL查询,即开发出一种能在加密数据上支持比较运算和算术运算的机制。对此,可以提出如下两类方法。

(1)基于新加密技术方法:这种方法可以直接加密,表示数据上的算术运算符和/或比较运算符。不解密但支持有限计算的加密技术近来出现较多。一种技术是隐私同态(privacy homomorphism,PH)技术,支持基本算术运算。参考文献[5]中提出了一种转换技术,保留原始数据的序,这样将转换用作序保留加密(order-preserving encryption),因此支持比较运算符。可以在序保留加密技术上构建技术以实现其他关系运算符,如选择、连接、排序和分组,但是加密机制不能支持服务器上的聚集运算。

(2)信息隐藏方法:与基于新加密技术方法不同,这种方法在存储加密数据的同时存放附加的辅助数据,以便在服务器端估算比较运算和/或算术运算。这类辅助信息以索引形式进行存放(称为安全索引),可以在服务器上透露关于数据的部分信息。安全索引是利用信息隐藏机制小心设计的(源于上下文统计泄露的控制,context of statistical disclosure control)以限制信息泄露的程度。

●一般化:将数值或无条件值(categorical value)使用更通用的值替换。数值可以使用原始值的范围(range)替换,无条件值可以使用更通用的类(如分类树的祖先节点)替换,等等。

●交换:获取数据集里两条不同的记录,交换特定的属性值,例如,两条记录对应个体的工资值互换。