密文数据库的索引机制与查询策略分析
2012-04-13李慧珍唐盼盼
李慧珍,唐盼盼
(商丘职业技术学院,河南 商丘 476000)
1 密文数据库概述
1.1 关于密文数据库
密文数据库系统可以根据用户的不同需求,对数据库中的数据进行不同程度的加密处理后存储起来。这样不仅保护了数据库中的敏感数据,而且一个没有密钥的用户即便能够非法入侵到系统中,但是因为缺少解密密钥,也就不可能获得有意义的数据。显然,密文数据库技术的应用对保护敏感数据的安全性具有非常重要的作用。
1.2 密文数据库的实现机制
(1)基于OS层的密文数据库的实现。在OS层实现数据库数据的加密,可以在很大程度上增强OS对数据库系统的保护,基于OS层的密文数据库的实现机制的最大优点就是可以从根本上防止非法用户通过线程或进程及文件、磁盘、内存等隐蔽通道访问数据库敏感数据。一般对于大型的数据库来说,在OS层对数据库文件进行加密的数据库加密系统,实现起来具有较大难度。所以,该机制主要应用于小型的数据库系统。
(2)基于DBMS内核层的密文数据库的实现。在DBMS内核层实现数据库数据的加密,是指在对数据中的数据完成库物理存取之前,就完成对数据库中数据的加密和解密工作。这种基于DBMS内核层的密文数据库的实现机制,虽然具有加密功能强的各种显著优点,但其缺点也是非常明显的,一般基于DBMS内核层的密文数据库在服务器端进行加密和解密运算时,由于对数据加密存在一定的限制,因而就加重了数据库服务器的负载,这对DBMS原有功能也会造成一定的影响。
(3)DBMS外层的密文数据库的实现。在采用基于DBMS外层的密文数据库的实现机制这种加密方式进行数据库数据的加密时,对数据库数据的加密和解密运算可以在客户端进行,这种实现机制的优点是不会加重数据库服务器的负载,而且可以实现加密数据的在线传输,缺点是加密功能会受一些限制。
2 密文数据库的索引机制
(1)基于直接索引的密文数据库索引机制。基于直接索引的密文数据库索引机制就是在对明文数据库的索引功能进行改造的基础上来实现的,将索引树中每个节点的数据用其对应的密文代替,生成密文数据库的密文索引树。基于直接索引的密文数据库索引机制所采用的索引树多是二叉树、B+树等。在进行索引的检索时,先将根节点解密并与查询条件进行比较,由此决定下一个要检索的节点,直至找到满足查询条件的所有节点。其中基于直接索引的密文数据库索引机制的优点就是可以在查询时将索引树调入内存,从而在很大程度上降低了内存与外存之间数据的交换时间,大大提高了数据库数据查询的效率。尽管如此,基于直接索引的密文数据库索引机制也有一定的缺点,因为密文索引树中的地址数据都是以明文的形式来保存的,这样攻击者就可以将各节点的密文数据按其对应的明文进行排序,然后统计相应的数据加密规律,进而获得可用于解密的敏感数据。
(2)基于地址加密的密文数据库索引机制。基于地址加密的密文数据库索引机制是针对基于地址加密的密文数据库索引机制的缺陷而设计的,该机制通过对数据地址进行加密存储。然后将每一个记录对应的唯一性字段与记录的属性值进行关联,并将密文索引中的数据地址以密文的形式进行存储。这样攻击者如果无法获得密文与索引的对应关系的话,即使拥有密文数据及其对应的索引,也无法进行加密数据的破解。基于地址加密的密文数据库索引机制的缺点就是如果攻击者能动态跟踪整个密文数据库的访问过程,就比较有可能找到密文与索引的对应关系,进而就能够得到可乘之机。
(3)基于地址加密的密文数据库索引机制。基于地址加密的密文数据库索引机制能有效地解决攻击者对密文数据和索引的对应关系进行动态追踪分析的问题。该机制可以很好地屏蔽密文数据库中密文与索引地址的对应关系。基于地址加密的密文数据库索引机制访问索引之后,要对两个密文数据进行访问,这样做的目的就是为了产生混淆效果。以至于大大降低攻击者对密文数据和索引的对应关系进行动态追踪分析成功的概率,进而在一定程度上就是密文数据库的安全性得到大大的提高。
3 密文数据库的查询策略
3.1 直接查询策略
所谓的直接查询策略,就是对加密的数据不需要解密,直接对密文数据进行查询操作的查询策略,其中,比较常用的直接查询策略有秘密序列加密技术策略、同态加密技术策略以及保持有序的加密技术策略。
(1)秘密序列加密技术策略。采用序列密码算法对数据进行加密存储时,它使用序列密码算法将原数据与随机发生器产生的随机数进行异或运算后得到的密文存储起来。而在查询时,将密文与查询词进行异或运算后将运算结果与随机数进行比较,如果有相同的,就说明查询的文件中包含所查询的词,进而实现数据查询的效果。
(2)同态加密技术策略。同态加密技术策略是利用秘密同态函数对数据进行加密后,可以直接在密文上进行查询操作,进而在很大程度上降低了数据加密与解密所需的开销,从而有效提高了密文数据库的操作性能。
(3)保持有序的加密技术策略。保持有序的加密技术策略的实现是先将明文值进行转换得到密文,然后给定一个目标分布函数,要求经加密转换的密文不仅要保持有序,而且要服从给定的目标函数的分布。这样一来就可以直接对密文进行带集函数查询、单值查询以及范围查询等查询操作,大大提高了密文数据库的数据查询效率。
3.2 两阶段查询策略
所谓的两阶段查询策略就是先在密文数据的基础上进行一次简单的查询,然后将临时查询的结果进行解密,然后再对解密的结果进行一次精确的查询,所得到的结果即为查询结果。由于在初始查询阶段把一些无关的记录给过滤掉了,因此,就大大减少了第二次精确查询时的密文数据量,进而不仅提高了检索效率,而且降低了不必要的解密开销。目前两阶段查询策略的实现方法有两种,一种方法是通过在表中建立一个索引字段,然后利用建立的索引字段进行模糊查询,然后将得到的临时结果进行解密,最后进行精确查询得出最终结果;另外一种方法就是利用 SQL编译器将查询语句中所涉及到的加密字段进行加密重写,进而实现两阶段查询策略。
密文数据库的索引机制和查询技术是数据库加密研究领域中的重要课题。基于高效的索引机制的查询技术是使密文数据库得以广泛应用的前提。然而,在密文数据库查询领域中还存在一些关键问题有待解决,如何解决这些问题将成为该领域的研究重点。
[1]刘伟.数据库的密文索引机制[J].华中科技大学学报,2009,(13).[2]马勺布.一种动态安全的密文数据库检索方法[J].计算机工程,2010,(6).
[3]袁丁.基于密文数据库中数组检索的研究[J].计算机应用,2005,(25).