密文数据库加脱密引擎的设计与应用

密文数据库加脱密引擎的设计与应用

ID:19161458

大小:16.80 KB

页数:7页

时间:2018-09-29

密文数据库加脱密引擎的设计与应用_第1页
密文数据库加脱密引擎的设计与应用_第2页
密文数据库加脱密引擎的设计与应用_第3页
密文数据库加脱密引擎的设计与应用_第4页
密文数据库加脱密引擎的设计与应用_第5页
资源描述:

《密文数据库加脱密引擎的设计与应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、密文数据库加脱密引擎的设计与应用摘要数据库加脱密引擎是数据库加密系统的核心模块,其安全性和执行效率对加密数据库系统的整体性能有重要的影响。本文讨论了数据库加脱密引擎的基本结构和工作原理,提出一个加脱密引擎模型,并详细阐述了各个功能模块的功能和作用,同时讨论了在实现过程中要注意的关键问题,通过解决这些问题对加脱密引擎的运行机制进行了比较深入的了解。关键词数据库加密,数据库脱密,加脱密密引擎1引言目前,信息管理系统中的大量数据都是存放在数据库中。因此,数据库也成为这些系统的核心部件之一,其安全性及对敏感数据的防篡改和防盗取的能力,越来越

2、引起大家的重视。而传统的方式是在数据的传输过程中对数据进行加密保护,并没有对数据库本身进行保护,如果一旦有非法入侵者进入数据库,就极易造成重要数据资料的泄露,最终给数据库的用户造成不可挽回的损失。所以,提高数据库的安全性能就成为一个十分急迫的问题。目前对数据库保护的最有效的方法就是对敏感数据进行加密处理,将明文方数据以密文方式保存,访问时再进行解密操作。这样,即使能够通过非法途径得到数据库的数据,没有相应的密钥,也是得不到其明文形式的。实现数据库加密并结合密钥管理以后,数据库里的数据由用户自己的密钥来进行访问,不同的用户只能访问自己

3、权限以内的数据,这样大大的提高了数据的安全性。由此可见,数据库加密对于数据的安全管理,是不可或缺的重要环节。对数据库加密的部分就是数据库的加密引擎,是整个数据库加密系统的核心部分,本文将重点讨论数据库加脱密引擎的实现过程和要注意的一些问题。2数据库加密系统的基本结构图1数据库加密系统体系结构可见,数据库加脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加脱密处理,对应用开发人员和操作人员是透明的。3数据库加脱密引擎的设计加脱密引擎的设计结合文献[1][2]的方案,并结合本人的实践,设计出以下的的数据库加脱密引擎:图2加

4、脱密引擎的基本结构虚线之中的是加脱密引擎的基本结构。3.加脱密引擎各个子模块的功能分析。数据库接口模块的功能是将所有访问数据库的操作封装在一起,屏蔽了各类数据库的特性,“加脱密模块”工作时就不必关心实际使用的是哪种数据库。该模块包含两部分接口:其一是前端数据库客户访问数据库加脱密引擎的接口函数,也就是用户访问接口;其二是数据库加脱密引擎访问后台数据库服务器的接口,即后台数据库接口。数据字典模块是将初始化引擎时的一些参数在加脱密时提供给加脱密模块使用,这些参数一般是单独保存在数据字典表中,数据内容主要包括待加密表内行列信息、数据类型、

5、是否加密等。密钥管理模块的功能是给加脱密模块提供密钥和相关的密钥验证与保护。在本文的数据库加脱密引擎中,采用的是数据项加密的方式来对数据库的数据进行保护,这种加密方式的特点是对应每个数据项都有不同的数据项密钥,因此安全性能最好,这种方式实现时密钥管理模块提供的密钥包括表密钥TK、数据项加脱密密钥Kij。其中表密钥TK对应每一个待加密表,在加密时由系统自动生成。对用户密钥、表密钥等的保护采用的是主密钥[4]方式进行保护。图加密模块的基本结构编辑。在这个过程中,加密算法起到一个很重要的作用。不同的加密算法,其加密强度和加密速度都是不一样

6、的。在对称加密算法中,就速度和强度的综合性能来考虑,AES算法是首先选择的算法,本文的加脱密引擎采用的也是AES算法。加密模块除了要对数据进行加密以外,还要负责数据的拆分和组装,以保持数据的完整性和一致性。脱密模块是加脱密引擎的另一个部分核心,它的作用和加密模块相反,主要负责数据的脱密处理。其工作过程与加密模块的流程类似,不同的是从密文表中取出数据解密后填充到原表之中。解密算法是该模块的核心,在数据库加脱密引擎中解密算法与加密算法必须是一致的,这样才能保证脱密后的数据与加密以前的数据相一致。与加密模块一样,解密模块也具有对数据进行拆

7、分和组装的功能。4加密过程中要注意的问题在整个加密的流程中,创建密文表是其中的关键步骤。如果将加密后的数据直接放入原表中是最节约空间的方法,但由于加密后的数据和原表中的数据类型及长度很可能不一致,这样会导致填充数据的失败,因此创建和加密表对应的密文表是很有必要的。而在创建的过程中必须注意几个问题。⑴密文表的数据类型问题待加密表中字段数据类型是与包含它的数据库所支持的数据类型相关的,即使相同的数据类型在不同的数据库中的定义可能很不一致,经过实验,笔者发现所有的数据类型的数据在经加密引擎加密后生成的数据都是字符串类型的数据,所以密文表除

8、结构和待加密表一样,其字段数据类型都可设置为字符串类型,这样可屏蔽各种不同数据库的不同的数据类型之间的差别。由于加密后的数据类型是一致的,在生成密文表时,本文统一使用VARCHAR 类型作为密文表的字段类型。一般的数据库都能识别这种数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。