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

时间:2024-04-26 02:46:38 5A范文网 浏览: 论文范文 我要投稿

摘要  数据库加脱密引擎是数据库加密系统的核心模块,其安全性和执行效率对加密数据库系统的整体性能有重要的影响。本文讨论了数据库加脱密引擎的基本结构和工作原理,提出一个加脱密引擎模型,并详细阐述了各个功能模块的功能和作用,同时讨论了在实现过程中要注意的关键问题,通过解决这些问题对加脱密引擎的运行机制进行了比较深入的了解。

      关键词  数据库加密,数据库脱密,加脱密密引擎 


 

1   引言      目前,信息管理系统中的大量数据都是存放在数据库中。因此,数据库也成为这些系统的核心部件之一,其安全性及对敏感数据的防篡改和防盗取的能力,越来越引起大家的重视。而传统的方式是在数据的传输过程中对数据进行加密保护,并没有对数据库本身进行保护,如果一旦有非法入侵者进入数据库,就极易造成重要数据资料的泄露,最终给数据库的用户造成不可挽回的损失。所以,提高数据库的安全性能就成为一个十分急迫的问题。      目前对数据库保护的最有效的方法就是对敏感数据进行加密处理,将明文方数据以密文方式保存,访问时再进行解密操作。这样,即使能够通过非法途径得到数据库的数据,没有相应的密钥,也是得不到其明文形式的。实现数据库加密并结合密钥管理以后,数据库里的数据由用户自己的密钥来进行访问,不同的用户只能访问自己权限以内的数据,这样大大的提高了数据的安全性。由此可见,数据库加密对于数据的安全管理,是不可或缺的重要环节。      对数据库加密的部分就是数据库的加密引擎,是整个数据库加密系统的核心部分,本文将重点讨论数据库加脱密引擎的实现过程和要注意的一些问题。 2  数据库加密系统的基本结构图1数据库加密系统体系结构


 

       可见,数据库加脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加脱密处理,对应用开发人员和操作人员是透明的。3  数据库加脱密引擎的设计3.1 加脱密引擎的设计      结合文献[1][2]的方案,并结合本人的实践,设计出以下的的数据库加脱密引擎:
图2加脱密引擎的基本结构      虚线之中的是加脱密引擎的基本结构。3.2 加脱密引擎各个子模块的功能分析。      数据库接口模块的功能是将所有访问数据库的操作封装在一起,屏蔽了各类数据库的特性,“加脱密模块”工作时就不必关心实际使用的是哪种数据库。该模块包含两部分接口:其一是前端数据库客户访问数据库加脱密引擎的接口函数,也就是用户访问接口;其二是数据库加脱密引擎访问后台数据库服务器的接口,即后台数据库接口。      数据字典模块是将初始化引擎时的一些参数在加脱密时提供给加脱密模块使用,这些参数一般是单独保存在数据字典表中,数据内容主要包括待加密表内行列信息、数据类型、是否加密等。      密钥管理模块的功能是给加脱密模块提供密钥和相关的密钥验证与保护。在本文的数据库加脱密引擎中,采用的是数据项加密的方式来对数据库的数据进行保护,这种加密方式的特点是对应每个数据项都有不同的数据项密钥,因此安全性能最好,这种方式实现时密钥管理模块提供的密钥包括表密钥TK、数据项加脱密密钥Kij。其中表密钥TK对应每一个待加密表,在加密时由系统自动生成(根据混沌理论生成所需的表密钥[3])。对用户密钥、表密钥等的保护采用的是主密钥[4]方式进行保护。

图3 加密模块的基本结构

   


  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />   在这个过程中,加密算法起到一个很重要的作用。不同的加密算法,其加密强度和加密速度都是不一样的。在对称加密算法中,就速度和强度的综合性能来考虑,AES算法是首先选择的算法,本文的加脱密引擎采用的也是AES算法。加密模块除了要对数据进行加密以外,还要负责数据的拆分和组装,以保持数据的完整性和一致性。

      脱密模块是加脱密引擎的另一个部分核心,它的作用和加密模块相反,主要负责数据的脱密处理。其工作过程与加密模块的流程类似,不同的是从密文表中取出数据解密后填充到原表之中。解密算法是该模块的核心,在数据库加脱密引擎中解密算法与加密算法必须是一致的,这样才能保证脱密后的数据与加密以前的数据相一致。与加密模块一样,解密模块也具有对数据进行拆分和组装的功能。4   加密过程中要注意的问题      在整个加密的流程中,创建密文表是其中的关键步骤。如果将加密后的数据直接放入原表中是最节约空间的方法,但由于加密后的数据和原表中的数据类型及长度很可能不一致,这样会导致填充数据的失败,因此创建和加密表对应的密文表是很有必要的。而在创建的过程中必须注意几个问题。      ⑴ 密文表的数据类型问题      待加密表中字段数据类型是与包含它的数据库所支持的数据类型相关的,即使相同的数据类型在不同的数据库中的定义可能很不一致,经过实验,笔者发现所有的数据类型的数据在经加密引擎加密后生成的数据都是字符串类型的数据,所以密文表除结构和待加密表一样,其字段数据类型都可设置为字符串类型,这样可屏蔽各种不同数据库的不同的数据类型之间的差别。      由于加密后的数据类型是一致的,在生成密文表时,本文统一使用VARCHAR 类型作为密文表的字段类型。一般的数据库都能识别这种数据类型。这样就可以在多种数据库中使用相同的SQL语法来操作数据库,而不用关心不同数据库的差别。      ⑵ 密文表的数据长度问题      确定了密文表的数据类型之后,就是确定密文表的字段长度了。由实验笔者得出数据,对于一定长度内的明文生成的密文长度(AES加密)是一定的,而且生成的密文比明文的长度要长得多。所以确定密文表字段长度必须根据密文长度和明文长度的关系预先设置足够的长度。      对于不同的数据库,支持VARCHAR的最大长度也不一致,而明文加密后的密文很可能会超过VARCHAR类型支持的上限。因此,在不同数据库中也要预先将其长数据类型作为初始参数保存在数据字典中,若计算出某一明文字段对应的密文长度超过VARCHAR类型支持的上限就使用长数据类型作为密文表中该字段的数据类型,以避免创建的密文表不能正常填充密文数据。5  用户数据访问注意的问题      数据库的加脱密引擎和数据库密钥管理是分不开的,前台用户数据访问接口就会与密钥管理相结合。         用户数据访问采用的是二级表的访问方式[5],以下是用户数据访问的流程图:
图4用户数据访问的流程图      用户提供用户密钥和查询要求之后,就可以查出能够访问的数据。在这个过程中,由于加脱密引擎对用户是透明的,因此用户的查询请求必须通过加脱密引擎来进行SQL语句的转换,也就是在流程中的SQL语句编译器的工作:将用户用明文传递的查询请求q翻译成能在密文数据库中执行的密文查询请求q,这个步骤也是用户数据访问的难点问题之一。      这是因为对于用户提出的明文查询请求q,其语句中的字段名称、表名称、查询的具体数据等等都要进行处理,找出在密文表中对应的字段名称、对应明文表的密文表的名称及与明文数据对应的密文数据。特别是在多表查询中,要翻译成能够在密文数据库中执行的语句q其难度是可想而知的。      目前可以采用的一个较为简单的方法是将密文表解密到一个临时表中,将查到的结果返回给用户后再删除这个临时表。对于多个密文表的查询,则需要进行SQL语句的翻译了。加脱密引擎的实现      在以上理论的前提下,笔者用C#实现了数据库的加脱密引擎。数据库的连接方式采用的是OLE DB的方式,这个方式的最大好处是连接方便,只需连接字符串而不需要注册数据源就可以直接连接到数据库,而且也支持大多数数据库的连接。       在C#中,对于添加、删除数据或是创建表格均可以用系统函数System.Data.OleDb. ExecuteNonQuery()来执行,因此操作也是十分方便。同时还可以单独为某些特定功能写一个类封装起来,然后在外部调用,比如SQL语句编译器,这样可以提高了代码的利用率,维护起来也容易。通过实践,可以发现对于同等的数据量,解密的速度要比加密快得多,其原因是加密时要做大量的初始化工作,包括创建加密表、动态创建密文表字段、生成表密钥等,而解密时所有这些参数均在数据字典中,不需要重新生成,直接就可以进行调用,这样就提高了运行的效率。小结      本文介绍了数据库加脱密引擎的设计和应用。对加脱密引擎进行了结构设计并对各功能模块进行了详细的说明,同时结合实践讨论了实现加脱密引擎过程中需要解决的一些关键问题及其解决方案。根据本文理论建立的数据库加脱密引擎经过实验证明工作状况稳定,性能良好。 参考文献[1]朱鲁华,陈容良. 数据库加密系统的加密和实现[j]. 计算机工程,2002,28(8): 61 –63.[2]商品均,陈荣良.加脱密引擎. 北京:计算机世界周报,2000[3]宋雨,赵文清. 密钥管理在管理信息系统中的应用研究[j]. 计算机工程与应用, 1999,(10):95-97.[4]余祥宣,倪晓俊. 加密数据库系统中的密钥管理 [j]. 华中理工大学学报, 1995.7[5]尚杰, 戴一奇, 李向阳. 密文数据库及其密钥管理[j]. 计算机应用研究, 1996, (3): 98-100.


  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 

相关文章:

2021年临床医学毕业论文选题30例04-26

数字经济时代企业边界突破的逻辑与路径04-26

金融论文:新股发行制度改革对A股上市公司IPO抑价现象04-26

计算机论文:基于深度学习的特定目标情感分类模型探讨04-26

农村基础设施投资是拉动还是挤出了居民消费04-26

政治论文:新时代大学生诚信道德现状及教育策略思考04-26

中药系统药理学数据库和分析平台的构建和应用04-26

软件工程论文:基于深度学习的行人重识别技术思考04-26

具身认知理论视角下农村初中生生命教育的行动探讨04-26

我国知识产权保护对ICT产品进口贸易的影响04-26

热搜文章
最新文章