一种无偏序关系的数据库密文索引方法技术

技术编号:6848210 阅读:773 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于无偏序关系的轻量级的密文索引结构的索引建立、检索和维护方法,这种结构能够表示索引中的节点关系,便于维护,维护代价低。索引中存储的数据是密文的,由于不存在数据之间的偏序关系,也就无法进行分析了,保证了数据的安全。基于这种无偏序关系的密文索引的检索方法,能够对密文数据进行快速的检索和定位;维护方法能够有效的维护索引数据和节点关系,并保证索引数据在并发操作环境下的正确性。

【技术实现步骤摘要】

本专利技术涉及计算机数据安全领域,特别是涉及一种对密文数据建立密文索引的方法。
技术介绍
随着计算机技术的飞速发展,数据库的应用已经十分广泛,深入到了各个领域。政府组织、商业机构和金融机构都是利用数据库服务器保存其重要的人事信息、贸易记录、市场决策性信息等各种敏感数据。这些数据的重要性不容置疑,它关系到国家的安全、企业的兴衰。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性、有效性和可用性,已经成为业界人士研究的重要课题。目前,国内使用的主流商业数据库主要都是从国外进口,由于法律的限制,安全数据库系统基本不对中国出口,因此对现有主流商业数据库系统的数据加密、保护技术和密文数据的高效检索技术的需求非常强烈。在当前的索引实现技术中,很重要的组成部分是要构建一种结构来描述数据的偏序关系,以实现对索引数据的高效、有序访问和管理。偏序关系的维护一般是采用链表或位置偏移等方式来实现。但这种偏序关系在描述数据顺序的同时,也暴露了数据的特征,攻击者可通过这种关系特征对数据进行分析,得到想要的数据,存在极大的安全隐患,同时,维护这种偏序关系的代价也是很大的,直接造成了密文索引维护代价高、效率低。因此需要一种更加安全、易于维护、高效的密文索引方法,在实现高效检索的同时,提供高安全性。
技术实现思路
本专利技术方法要解决的问题是1、在数据库上构建一个无偏序关系的轻量级的索引。2、基于这种无偏序关系的密文索引提供一种检索的方法,能够对密文数据进行快速的检索和定位。同时提供一种维护方法,能够有效的维护索引数据和节点关系,并保证索引数据在并发操作环境下的正确性。本专利技术采取的技术方案是一种无偏序关系的数据库密文索引的建立方法,包括如下步骤1)对每个敏感字段创建一个密文索引节点表和一个密文索引叶子表,其中密文索弓丨节点表包含字段LEVELID、字段Nodeld、字段NextNodeId和字段MaxKey ;密文索引叶子表包含字段PicU字段TR0WID、字段Nodeld、字段KEYVALUE ;2)按照树状结构组织方式,在密文索引节点表中存储敏感字段的密文索引根节点和子节点数据,其中LEVELID 代表条目所属的节点类型。1代表根节点条目,2代表子节点条目。Nodeld:节点的ID值,用于区分不同节点的记录集合,所有相同节点下的记录具有相同的NodeId值。NextNode I d 记录当前条目的下层节点的Node I d,用于维护节点间的关系;对于根节点中的每条记录,该值等于子节点中的某个节点的Nodeld。对于子节点中的每条记录, 该值等于叶子表中的某个叶子节点的Nodeld。MaxKey 记录当前条目的NextNodeId指向的下层节点中所有记录的最大值,以密文形式存储,节点中所有的MaxKey值之间没有任何的顺序关系,或用于描述顺序关系的辅助信息。3)按照树状结构,在密文索引叶子表中存储密文索引的叶子结点数据,其中Pid:表主键TROWID 索引条目对应的数据的行标识。以ORACLE数据库为例,是表记录的 ROffIDoNodeId 叶子节点ID,与节点表中子节点的某个条目的NextNodeId对应,所有相同叶子节点下的记录具有相同的值。KEYVALUE 密文字段的值,以密文形式存储,是被加密的数据记录;在叶子节点表中,KEYVAKUE字段的数据之间没有任何的顺序关系,或用于描述顺序关系的辅助信息。进一步,提供一种基于前述索引的检索方法,包括1)在每个新的数据库连接创建的时候,将密文索引节点表中保存的根节点和子节点中的数据全部解密,经过排序后缓存在数组中;2)在每次开始一次新的查询的时候,判断当前密文索引的节点表数据是否发生了变更,如果发生了变更则重新对节点表中的数据进行缓存,如果没有发生变更则不对节点表中的数据进行缓存;3)根据不同查询条件分别进行处理如果是“=”查询,则执行下列步骤①从节点表数据缓存中找到叶子表中哪个叶子节点中可能存在符合条件的数据;②一次性批量的取得该叶子节点中的所有记录并进行批量的解密;③将解密后的数据排序后进行比对,找到并返回该叶子节点中所有符合条件的记录的 TROWID ;如果是“<”或“< =”查询,则执行下列步骤①从节点表数据缓存中找到所有小于查询条件键值的子节点记录,直接返回这些子节点记录对应的叶子节点的所有记录的TROWID ;②找到第一条 > =该键值的子节点记录,并批量的取得该记录指向的叶子节点的全部记录进行解密;③将解密后的数据排序后进行比对,找到并返回该叶子节点中所有符合条件的记录的 TROWID ;如果是“>”或“> =”查询,则执行下列步骤①从节点表数据缓存中找到所有大于查询条件键值的子节点记录,直接返回这些子节点记录对应的叶子节点的所有记录的TROWID ;②找到第一条 < =该键值的子节点记录,并批量的取得该记录指向的叶子节点的全部记录进行解密;③将解密后的数据排序后进行比对,找到并返回该叶子节点中所有符合条件的记录的 TROWID ;如果是“KEY2< F < Keyl” 或“KEY2 < F <= Keyl” 或“KEY2 <= F < Keyl” 或 "KEY2 < = F < = Keyl”查询,则执行下列步骤①从节点表数据缓存中找到所有< Keyl并且> Key2的子节点记录,直接返回这些子节点记录对应的叶子节点的所有记录的TROWID ;②找到第一条>=Keyl的子节点记录,并批量的取得该记录指向的叶子节点的全部记录进行解密,然后将解密后的数据排序后进行比对,找到并返回该叶子节点中所有符合条件的记录的TROWID ;③找到第一条<=Key2的子节点记录,并批量的取得该记录指向的叶子节点的全部记录进行解密,然后将解密后的数据排序后进行比对,找到并返回该叶子节点中所有符合条件的记录的TROWID ;进一步,提供一种基于前述索引的维护方法,根据不同的记录操作指令采取不同的维护步骤,包括如果是“INSERT”记录操作,则执行下列步骤1)从节点表数据缓存中找到叶子表中哪个叶子节点中可能存在符合条件的数据, 确定符合条件的叶子节点;2)如果该叶子节点中的记录数大于一个叶子节点可以包含的最大记录数的 80%,则进入步骤3否则在该叶子节点中插入一条记录,然后返回;3)增加一个叶子节点,然后在该新增的叶子节点中插入一条记录。并相应的在上层子节点中新增一条对应这一新增的叶子节点的记录记录;如果是“DELETE”记录操作,则直接将叶子表中TROWID符合删除条件的记录从叶子表中删除;如果是“UPDATE”记录操作,则先执行“DELETE”操作,然后执行INSERT操作;如果是“TRUNCATE”操作,则直接将密文索引表中的全部记录删除。本专利技术构建了一个无偏序关系的轻量级的索引结构,这种结构能够表示索引中的节点关系,便于维护,维护代价低。索引中存储的数据是密文的,由于不存在数据之间的偏序关系,也就无法进行分析了,保证了数据的安全。本专利技术的有益效果是1 密文索引结构安全性好本专利技术方法通过实现一种无偏序关系的轻量的密文索引结构,防止了攻击者在没有获得全部解密数据的情本文档来自技高网...

【技术保护点】
1.一种无偏序关系的数据库密文索引的建立方法,包括如下步骤:(1)对每个敏感字段创建一个密文索引节点表和一个密文索引叶子表,其中密文索引节点表包含字段LEVELID、字段NodeId、字段NextNodeId和字段MaxKey;密文索引叶子表包含字段Pid、字段TROWID、字段NodeId、字段KEYVALUE;(2)按照树状结构组织方式,在密文索引节点表中存储敏感字段的密文索引根节点和子节点数据,其中:LEVELID:代表条目所属的节点类型。1代表根节点条目,2代表子节点条目。NodeId:节点的ID值,用于区分不同节点的记录集合,所有相同节点下的记录具有相同的NodeId值。NextNodeId:记录当前条目的下层节点的NodeId,用于维护节点间的关系;对于根节点中的每条记录,该值等于子节点中的某个节点的NodeId。对于子节点中的每条记录,该值等于叶子表中的某个叶子节点的NodeId。MaxKey:记录当前条目的NextNodeId指向的下层节点中所有记录的最大值,以密文形式存储,节点中所有的MaxKey值之间没有任何的顺序关系,或用于描述顺序关系的辅助信息。(3)按照树状结构组织方式,在密文索引叶子表中存储密文索引的叶子结点数据,其中:Pid:表主键TROWID:索引条目对应的数据的行标识。以ORACLE数据库为例,是表记录的ROWID。NodeId:叶子节点ID,与节点表中子节点的某个条目的NextNodeId对应,所有相同叶子节点下的记录具有相同的值。KEYVALUE:密文字段的值,以密文形式存储,是被加密的数据记录;在叶子节点表中,KEYVAKUE字段的数据之间没有任何的顺序关系,或用于描述顺序关系的辅助信息。...

【技术特征摘要】

【专利技术属性】
技术研发人员:赵飞
申请(专利权)人:北京安华金和科技有限公司
类型:发明
国别省市:11

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

1