论文部分内容阅读
伴随着计算机技术的迅猛发展和应用的普及,人们对其依赖程度不断增加。由于各种重要数据信息被非法窃取或者篡改的事件时有发生,人们对信息安全的关注度也日益提高。 作为数据存储的“仓库”,数据库的安全性无疑在计算机信息安全中占有举足轻重的地位。而对数据库数据进行加密,则是保护数据库信息安全的重要手段之一。因此对加密技术在数据库中应用的研究,有着重要的现实意义。 在数据库加密领域,存在两个亟待解决的主要问题。一是密钥管理问题,由于数据库存储的数据较为集中且相关数据之间存在一定的逻辑关系,因而密钥管理子系统的设计相对困难。需要设计一种安全性、可用性好的密钥管理机制;另一问题是由于明文加密后不再保持原有的顺序关系,因而不可能再对其进行直接查询。故需要设计一种能够对密文进行快速查询的机制。 针对密钥管理,本文设计了一种二级密钥管理系统。其中一级主密钥(Primary Key)由客户端和专用数据库服务器端分别保存一部分,使用时才由可信任第三方进程进行动态合成;二级密钥即工作密钥(Working Key)则由主密钥对其进行加密后保存,而对于需加密的数据元素则由相应的工作密钥对其进行加密。这样既可以实现密钥存储管理的安全性,又保证了其可用性。 而针对密文查询问题,由于查询语句是明文,故须先将存储密文解密后才能与查询条件进行对比。但全部解密相关密文字段的方法不仅系统开销大,且可能威胁数据安全。因此须实现一种快速安全的密文查询机制。本文引入了逻辑结构为二叉排序树的密文字段索引表(Cipher Field Index Table),用户对密文字段的检索可由对该索引表的查询间接实现。该结构既可保证即使当数据库被窃取后,在没有获取相应密钥的条件下很难被解密;又可保证合法用户能够对密文字段进行快速查询。