论文部分内容阅读
在DAS模型中,用户的数据存储在第三方提供的数据库服务提供端并由第三方负责查询、管理,这种拥有数据库管理员权限,可以随时的访问数据库所有数据。这种情况下,数据库中敏感数据对第三方没有什么机密性可言。为了保证敏感数据的安全性,采用加密方法对数据进行加密处理。但是,这样增加了对加密数据查询的难点。为了提高在加密字符串数据的查询性能,本文给出了一种基于B*树聚簇索引的数据库加密字符串数据查询方法。利用索引特征函数为敏感字符串数据生成数值型索引特征值,并存储在新增的索引字段中,同时在新增的索引字段上建立B*树聚簇索引。在索引字段上使用聚簇,即把拥有相同或相关的索引特征值的记录存储在一个数据块中(或多个数据块中,用链表连接),从而能减少在查询过程中访问磁盘的次数,减少因访问磁盘消耗的时间。将对敏感字符串数据的查询转换为对索引字段的查询,通过B*树聚簇索引能快速的定位查询的数据所在数据块的地址,这样避免了为了查询数据进行全表扫描。本文采取二阶段查询策略:第一阶段,将对加密字段的查询条件转换为对索引字段的查询,通过使用索引特征值进行粗糙查询过滤部分与查询条件无关的记录;第二阶段,将第一阶段返回的记录集合进行解密,然后在明文的基础上进行查询。为了提高对加密字符串数据的模糊查询性能,在叶子节点中增加了两个数据:一个是指针型数组,另一个是标识域。数组存储的是满足一定规则的叶子结点指针。标识域用来标识叶子节点中的右指针和指针数组中第一个指针是否相等。利用通过指针和叶子节点中的右指针可以完成对加密字符串模糊查询,这样避免扫描所有的叶子节点。经过实验证明:本文方法具有较好的查询效率。