论文部分内容阅读
由于数据库显著的信息集中存放和资源共享的特点,数据库越来越多的普及到各行各业。数据库保存着企业、政府大量的机密信息以及个人的一些私密信息,如果这些信息不加任何保护措施存储到数据库中,一旦泄漏后将会给个人或组织带来难以估量的损失。现在已经有越来越多的研究者关注数据库的安全,并在数据库中引入加密技术来保护数据的安全性。本文在对比传统的数据加密技术的基础上,首先研究分析了加密数据库需要考虑的因素以及带来的影响,并在加密粒度的选取上,采用基于字段级的加密,使得数据库加解密可以灵活的实现。其次,加密算法的选择也是数据库加密的一个主要问题,本文选取数据库中普遍使用的AES(Advanced Encryption Standard)高级加密算法,详细研究分析了其加解密流程,并对算法密钥扩展中的漏洞提出了改进措施,引入了在密钥扩展算法中被称之为“单向性”的设计策略,来减轻各轮子密钥之间的关联性,使得改进后的算法性能和效率都得到了提升。另外,本文针对数据库加密的核心问题——工作密钥的生成与管理,提出了一种新的二级密钥体制,对传统需要预设密钥方式进行改进。利用AES加密算法对主密钥进行一系列变换,在变换中产生工作密钥,且密钥的存储是在程序实现时动态存储到数组中,而不需要提前设定工作密钥,这样就有效的解决了密钥预设和存储带来的安全问题。最后,本文利用Visual C++和Oracle数据库实现了一个测试平台,证明了利用AES算法产生二级密钥用于数据库加密方式的可行性和适用性。