论文部分内容阅读
作为信息系统数据集中存储与共享的平台,随着计算机网络的发展以及信息系统的普及,数据库的安全越来越成为信息安全领域的一个严重问题。数据库的现有安全措施包括网络防火墙、入侵检测、访问控制等,但是近年来数据库泄漏事件的原因却源于系统管理漏洞和企业内部人员因为某种原因将信息故意泄漏。数据库现有安全措施不能避免数据库管理者对数据的泄漏。对数据库进行加密成为有效保证数据库机密性的一种方式,明文数据库经过加密以后成为密文数据库,数据库的安全性得到了极大地提高。但是明文经过加密以后数据类型、长度、存储空间、数据一致性等都成为需要解决的问题,并且由于数据库管理系统无法识别库中密文,所以无法实现数据的密文查询,只能将整个数据库解密然后查询大大降低了系统的效率,严重影响数据库的可用性。考虑数据库效率问题,通常选择对称加密算法加密数据库;对称加密算法对每个加密粒度采用一个密钥,整个数据库就需要大量的密钥并且加解密密钥相同;数据库加密技术中,加密算法是公开的,密文数据的安全主要依赖于加密密钥的安全保管,这就涉及到数据库中大量密钥管理问题。本文从系统的安全与效率角度出发,对数据库的安全作了详细的讨论。对数据库加密相关技术及加密算法进行深入分析。设计了一种三级密钥管理方案:一级密钥为用户口令的MD5散列值,二级密钥称为用户密钥或公共用户密钥,三级密钥是工作密钥。其中,用户密钥加密用户私有数据对应的工作密钥,公共用户密钥加密公共数据资源对应的工作密钥,管理员选择合法权限用户的一级密钥加密公共用户密钥为用户授权。同时针对密文查询问题,设计了一种针对数值型数据的二维数组索引,对索引列进行哈希算法后将其主键存入二维数组以达到快速找到目标记录的目的,实现不解密数据库的密文索引查询。基于上述设计采用AES算法实现了一个数据库加密系统,实现了密钥管理,数据加密和密文查询功能,通过密钥管理管理员可以给用户授权,数据加密完成对数据表指定字段的加密,密文查询实现基于二维数组索引的查询。在最后对二维数组索引的查询效率进行性能测试,与没有密文索引的查询方式进行对比。通过测试数据分析发现二维数组索引能够有效提高数据库中数值数据的查询效率,特别对于较少命中记录的查询有很好的效果,但是对于较多命中记录时查询效果不理想。