当前位置: 首页 > 专利查询>代六玲专利>正文

一种支持密文索引的数据库透明加密方法技术

技术编号:6591674 阅读:664 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于信息安全技术领域,涉及一种支持密文索引的数据库透明加密 方法。本发明专利技术方法基于数据库系统的视图和触发器机制实现,通过使用视图和 触发器为用户透明的提供自动加密和解密。在查询数据时,在填充视图的过程 中解密数据。当新数据插入到表中或者修改数据时,利用触发器进行数据的加 密和密文索引的维护。其中,实现密文索引的方法为:基于数据库的表和SQL 语言,建立辅助的实现密文索引数据结构以及查询和维护算法;利用数据库系 统的索引扩展机制,实现密文索引的调用和维护。该方法对于基于数据库的应 用系统是完全透明的,部署基于本发明专利技术的数据库安全增强系统以后,不需要 对现有的应用系统做改变,且能够保证较高的密文检索的效率。

【技术实现步骤摘要】

本专利技术属于信息安全
,涉及一种对数据库中的字段进行透明加密, 并实现高效条件查询的方法。
技术介绍
在信息系统中,数据库应用十分广泛。数据库系统作为信息的聚集体,存 储着系统中最有价值信息的数据,是计算机信息系统的核心部件,其安全性至 关重要,因而越来越多的基于数据库的信息系统希望对敏感数据进行加密以保 障其安全性。目前,国内现有的数据库系统绝大多数由国外进口,由于技术出 口法律的限制,支持密文查询的安全数据库系统却不对中国出口。因此,针对 现有的数据库系统,亟需开发一种支持密文査询的数据库加密技术。当对数据库进行加密之后,数据之间原有的偏序关系将会丧失,因而无法 通过原来的索引机制来加快对密文数据的条件查询,这极大的影响了数据库的 使用效用。为了解决这一问题,现在一般采用同态加密和密文索引的方法。该 方法是密文和明文保持相同的偏序关系,从而实现条件查询。但这种加密方法 强度较弱,容易被破解,而且由于索引文件不是数据库的一部分,数据库管理 系统无法对其实现事务管理,难以保证数据库与索引文件之间的一致性。专利200510130卯7.0中公开了一种利用辅助数据结构实现了数据库的快速 密文查询方法,该方法需要在数据库前面部署中间件系统,以捕获SQL语句, 并需要自己维护索引数据,在实现过程中存在很大难度。
技术实现思路
本专利技术的目的是为解决不支持字段加密的商业数据库系统的加密保护文 杰,提出,能够对敏感字段选用多种 加密算法进行加密,在数据库系统内部建立高效的密文索引,实现对加密字段 的条件查询。本专利技术是采用下述技术方案实现的。,基于数据库系统的视图和触发器机制实现。其中,视图是一个虚拟表,它在向请求者返回数据之前填充数据; 触发器是一个嵌入到数据库中的程序,在满足触发条件时自动执行。通过使用 视图和触发器为用户透明的提供自动加密和解密。在查询数据时,在填充视图 的过程中解密数据。当新数据插入到表中或者修改数据时,利用触发器进行数 据的加密和密文索引的维护。为实现透明数据加密,对原表进行改造。改造过程包括表改名、约束禁用、 索引删除、视图和触发器创建等过程。具体步骤如下(1) 原始表改名,并在改名后的原始表上添加RAW类型密文字段 由于数据加密后,数据类型发生变化,原始字段己经不能用来存放密文,所以必须新增RAW类型的字段保存加密后的密文。(2) 禁用约束由于数据加密后,原始约束条件失效,而且为了保护数据的安全,原始字 段内容已被清空。因此,必须删除建立在敏感字段上的约束。拥有主键和外键 约束的字段不能被选取作为加密字段,因此对于敏感字段上的唯一性约束、非 空约束和值约束,均需要被禁用。(3) 删除索引由于数据转换为密文后,索引将失效,因此,如果敏感字段本身有索引, 必须将其删除。(4) 加密敏感数据如果原表中有记录,调用加密算法将敏感数据进行加密,并将密文保存到 相应的新增密文字段中,同时清空原始字段的数据内容。如果该字段需要实现 密文索引,则建立密文索引,然后进行步骤(5);若不需要实现密文索引,则 直接进行步骤(5)。实现密文索引的方法为基于数据库的表和SQL语言,建立辅助的实现密 文索引数据结构以及査询和维护算法。利用数据库系统的索引扩展机制,实现 密文索引的调用和维护。在密文索引机制中应包括 一个对原表记录ID的索引,用于根据该ID实现快速解密得到明文; 一个根据明文实际取值的偏序保持算法,用于实现快速 的范围査询。其中,实现密文偏序关系的索引结构采用具有索引功能的数据结 构,例如AVL树、B+树或B-树等。数据库系统的索引扩展机制为公知的扩展索引,如Omde的扩展索引,或 者IBM的扩展索引。这些扩展索引机制,允许用户为特定的字段自定义索引方 法。由于密文索引以表的形式存储于数据库中,且由触发器自动维护,从而自 动实现了多用户的数据同步和事务机的提交和回滚机制。(5) 创建视图创建一个与原表同名的视图,该视图取原表的所有字段,其中,敏感字段 用解密函数代替。(6) 创建触发器和存储过程在视图上建立instead of类型的插入、删除和修改事件的触发器。在触发器 中,调用加密算法将敏感数据加密,并把密文保存在表中的密文字段中。如果 原表有约束,为了保持数据完整性,则使用SQL语言实现约束;(7) 实现扩展索引接口。对原表进行上述改造之后,表中的数据分为敏感数据和非敏感数据两类。 其中,敏感数据以密文的形式存放在表中,而非敏感数据则以明文的形式存放。 由于视图名与原始表名相同,用户对表的操作都会作用在视图上。当用户查询 数据时,视图能够自动调用解密函数将密文数据解密,并将明文数据返回给用 户;当用户修改数据时,用户在视图上的操作都能够由instead of触发器完成。 从而实现了对敏感数据的透明加密和解密。有益效果本专利技术提供的方法对比已有技术,具有如下优势-1、 加解密过程完全透明。基于视图和触发器实现敏感数据的自动解密和加 密,加密和解密过程对于基于数据库的应用程序来说是完全透明的。这种特性 可以使得应用程序在开发阶段不用考虑数据库加密的问题,在系统发布之后再 进行数据库的透明加密改造而不用重新编译应用程序。2、 高效密文索引。实现高效的密文索引数据结构及算法,从而可以高效的 实现对密文字段的条件查询。3、 事务支持。由于加密机制和密文索引机制都是在数据库内部通过触发器 实现的,从而透明的支持事务的提交和回滚机制,并且在多个用户之间自动的 实现了数据同步。附图说明图1是本专利技术实施例的用于密文索引的AVL树的结构示意图2是本专利技术实施例的AVL树的信息表;图3是本专利技术实施例的AVL树的节点信息表。具体实施例方式下面结合附图和实施例对本专利技术方法做详细说明。下面详细描述中以实例的方式给出了许多具体细节,以确保对本专利技术实例 的透彻理解。但是,对于知道本领域基本常识的人,能够理解没有这些具体细 节,本专利技术的实施例也能实现。另外,没有详细描述众所周知的方法、过程、 部件和电路,以避免本专利技术的实现变得不清楚。实施例假设存在表T,其包含字段{FiJ^...^...^^需要对表T的中的字段R 进行透明加密。Fi的数据类型为R,该字段具有索引I以及约束C,需要实现密 文索引。步骤一、对原表T进行改造,具体步骤如下(1) 将表T重命名为Tp其包含字段为{F1,F2,...,Fi,...,Fn, Fn+1}。其中, Fn+1用于存储字段Fi的密文信息,类型为RAW;(2) 删除Fi上的约束C;(3) 删除Fi上的索引I;(4) 调用加密算法,将Ti中的Fi进行加密变换,并将密文存放到Fn+1中, 并将Fi的值置为NULL;为密文字段Fw建立索引数据结构,并将现有的密文 插入到该结构中。索引的数据结构和算法采用平衡二叉树。平衡二叉树又叫AVL树,其特征 为它的左子树和右子树都是平衡二叉树,且左右子树的深度之差的绝对值不 超过l。其结构如图l所示。该树的数据结构用表实现,而不是使用高级编程语 言的数据结构实现。查找和维护算法由SQL语言实现,而不是使用高级程序设 计语言实现。在图1中,每个节点上存储的数据是加密存储的,不会泄露明文 的内容以及偏序关系。6信息表这两个辅助表以实现图1所示的AVL数据 结构。树本文档来自技高网...

【技术保护点】
一种支持密文索引的数据库透明加密方法,其特征在于包括以下步骤: (1)原始表改名,并在改名后的原始表上添加RAW类型密文字段; (2)禁用约束; 拥有主键和外键约束的字段不能被选取作为加密字段,敏感字段上的唯一性约束、非空约束和值约束,均需要被禁用; (3)若敏感字段本身有索引,将其删除; (4)加密敏感数据; 如果原表中有记录,调用加密算法将敏感数据进行加密,并将密文保存到相应的新增密文字段中,同时清空原始字段的数据内容,如果该字段需要实现密文索引,则建立密文索引,然后进行步骤(5);若不需要实现密文索引,则直接进行步骤(5); (5)创建视图; 创建一个与原表同名的视图,该视图取原表的所有字段,其中,敏感字段用解密函数代替; (6)创建触发器和存储过程;在视图上建立instead of类型的插入、删除和修改事件的触发器,在触发器中,调用加密算法将敏感数据加密,并把密文保存在表中的密文字段中;如果原表有约束,使用SQL语言实现约束; (7)实现扩展索引接口。

【技术特征摘要】
1、一种支持密文索引的数据库透明加密方法,其特征在于包括以下步骤(1)原始表改名,并在改名后的原始表上添加RAW类型密文字段;(2)禁用约束;拥有主键和外键约束的字段不能被选取作为加密字段,敏感字段上的唯一性约束、非空约束和值约束,均需要被禁用;(3)若敏感字段本身有索引,将其删除;(4)加密敏感数据;如果原表中有记录,调用加密算法将敏感数据进行加密,并将密文保存到相应的新增密文字段中,同时清空原始字段的数据内容,如果该字段需要实现密文索引,则建立密文索引,然后进行步骤(5);若不需要实现密文索引,则直接进行步骤(5);(5)创建视图;创建一个与原表同名的视图,该视图取原表的所有字段,其中,敏感字段用解密函数代替;(6)创建触发器和存储过程;在...

【专利技术属性】
技术研发人员:代六玲杜顶张晗立胡金武梁涛汤继良李奇陈合春
申请(专利权)人:代六玲杜顶张晗立胡金武梁涛汤继良李奇陈合春
类型:发明
国别省市:11

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

1