基于对称密码的数据库检索系统设计.doc

上传人:精*** 文档编号:844008 上传时间:2023-09-09 格式:DOC 页数:43 大小:1.50MB
下载 相关 举报
基于对称密码的数据库检索系统设计.doc_第1页
第1页 / 共43页
基于对称密码的数据库检索系统设计.doc_第2页
第2页 / 共43页
基于对称密码的数据库检索系统设计.doc_第3页
第3页 / 共43页
基于对称密码的数据库检索系统设计.doc_第4页
第4页 / 共43页
基于对称密码的数据库检索系统设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、 【摘 要】随着计算机和各种智能设备的普及,各种各样的信息数据呈现出爆炸式的增长,信息的安全已成为大家十分关注的问题。作为信息的最重要的一个载体数据库的安全成为人们关注的焦点。作为数据库安全的核心,数据库加密技术能有效的弥补传统数据库安全手段的不足。本课题主要研究基于对称密码的数据库检索系统,利用DES和AES加密技术实现对数据库中数据的加密,设计了可视化操作界面,在界面上可以对数据进行增加、删除、修改,实现了对数据库中明文、密文的检索并统计了检索效率。加密技术提供高质量的数据保护,加密程序具有一定的复杂性。结果表明:AES加密算法的安全性及检索效率均高于DES加密算法。【关键字】 数据加密

2、DES AES 数据检索【Abstract】With the development of computer and many other intelligent devices, all kinds of information and data is growing at high speed. Information security has attracted more and more peoples attention. As the carrier of information, database has become the focus of us. As the core o

3、f database security, database encryption technology can effectively compensate for the lack of traditional database security methods. This paper mainly studies the database retrieval system based on symmetric cipher. DES and AES encryption technology is used to encrypt the data in the database. Visu

4、al interface is designed on witch we can add, delete and modify data. Last but not least, the retrieval of plaintexts and cipher text is achieved. At the same time, retrieval efficiency is count. Encryption technology can provide high-quality data protection and has high complexity. The result shows

5、 that AES is much safer and more efficient than DES.【Keywords】 Data Encryption DES AES Database Retrieval目 录前 言11 绪论31.1 DES加密算法31.2 AES加密算法41.3 数据库安全与隐私保护51.4 章节安排72 数据库安全技术分析82.1 数据库安全可采用的技术82.2 数据库系统保护92.3 数据库的加密层次102.4 数据库加密技术要求102.5 加密数据库的国内外研究现状113总体设计153.1 编程环境介绍153.2 设计思路与功能164 基于对称密码的数据库检索实

6、现194.1 加密算法部分的实现194.2 成绩检索及效率检测实现224.3 其他模块实现244.4 所实现功能的演示操作265 检索效率统计及结果分析295.1 效率统计的具体实现295.2 效率统计的结果分析31结 论32致 谢34参考文献35附 录37前 言随着网络技术的不断发展,计算机在社会生活的许多方面都得到了应用。然而在计算机给人们的工作和生活带来方便的同时,各种安全隐患也应运而生了。为了提高网络系统的安全性能,人们采用了许多保护手段,如:在系统中增加防火墙和入侵监测系统等,但是这些措施仍然不能避免系统遭受破坏,不能完全保证系统的安全性。数据库系统作为信息系统的核心部件,数据库文件

7、作为信息的聚集体,显然其安全性将是信息系统安全性的重要指标。使用没有安全保证的数据库,一个信息系统不可能具有高的安全性能。所以,数据库的安全问题已成为信息安全领域的主要研究课题之一。为了提高数据库的安全性能,数据库厂商也提供了许多安全措施,目前大型数据库ORACLE、SYBASE都提供了有关的用户标识和鉴定、存取控制、视图、审计功能、数据库备份与恢复等基本安全技术。然而这些功能显然是不够的,这些安全技术只能满足一般的数据库安全应用,而对于高度敏感性数据,数据库系统所提供的安全性措施难以保证数据的安全性,数据库中数据是以明码文方式存放的,只要黑客避开了系统认证,进入到数据库系统中,他就可以盗取或

8、修改数据库中他需要的任何数据。此外,威胁数据库安全的并不完全是外部人员,系统内部的管理人员或企业内部职员对数据库安全的威胁更大,此时防火墙、入侵检测等防护措施没有任何作用,他们很容易实现对数据库的拷贝、修改等操作,从而给企业造成重大损失。另外,数据库管理系统的运行平台一般是Windows和Unix,DBMS(database management system)和这些操作系统的安全级别通常为C2级。它们对于数据库文件缺乏有效的保护措施,突破了操作系统的访问控制,就可以直接窃取或篡改数据库文件内容。为了防止用户非法使用,保证数据库数据的安全,必须对数据库中存储的重要敏感数据进行保护处理。密码技术

9、就是一种有效的方法。事实证明,这也是最经济可行的方法,它使得在一种潜在不安全的环境中保证通信的安全。由于国内的计算机、数据库和网络的应用总体上要比国外落后,所以相应地,数据库加密的研究和应用也落后国外若干年。在我国,很多公司、企业,甚至国家部门使用的网络软硬件产品、防火墙软硬件、入侵检测产品、操作系统甚至包括数据库产品在内都严重依赖国外。国外在其出口的产品中是否留有后门不得而知。因此,国内对数据库加密的需求非常迫切,通过加密,可以从根本上、自主地保证数据的安全性。从这点来说,数据库的加密技术是我们在信息安全领域应该抓住的契机从加密层次上考虑,采取修改DBMS内核的方式来达到数据库加密的效果,对

10、我们来说是不现实的,修改DBMS内核的工作量不可低估,更为困难的是,这种方式必然要DBMS开发商的全力支持,这一点几乎是不可能的。事实上,修改DBMS内核并不是实现数据库加密的唯一方法,通过DBMS外围构造加密程序包的方法,同样可以达到数据库加密的效果,国内有关机构也是从这方面进行研究的。从理论研究上来看,在我国高校,清华和华中理工大学在加密数据库的研究方面起步比较早。从九十年代中期开始,这两个高校对加密数据库进行了一定的探讨。例如,清华大学在1995年有人提出密钥转换表的密钥管理方案、提出多级密钥的思想。而华中理工大学对如何在加密数据库环境下提高查询速度进行了一些理论探讨,还对分布式环境下数

11、据库加密的密钥管理提出一些见解。还有人提出将网络的密文传输通信与数据库静态加密结合起来,组成所谓的“网络密文数据库。从实践上来看,华中科技大学提出的数据库加密系统,能够初步达到对数据库加密的效果,可以由用户选择加密的表和字段,做到加密对应用程序透明。但是,其中也存在着一些问题。例如,采用多级密钥管理模式,加密机制过于复杂。整个加密机制需要硬件支持,使得系统的易用性受到影响。但是,他们的探索是非常有意义的,并且取得了一些令人鼓舞的结果。341 绪论1.1 DES加密算法本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼 (Tuchman)和麦耶(M

12、eyer)根据信息论创始人香农(Shannon)提出的多重加密有效性理论创立的,后于1977年由美国国家标准局颁布的数据加密标准。 DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的分组密码。它的算法是对称的,既可用于加密又可用于解密。美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的通常称为DES密码算法,要求主要为以下四点:提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;具有相当高的复杂性,使得破译的开销超过可能获得的

13、利益,同时又要便于理解和掌握;DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;实现经济,运行有效,并且适用于多种完全不同的应用。1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES, Data Encryption Standard)。之后随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。DES算法的入口参数有三

14、个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。DES主要处理64比特数据分组,每个DES循环处理输入数据的一个64比特数据分组,这个64比特数据分组随后被分为两个32比特数据分组。使用专用加密函数(这个专用的加密函数使用当前循环的独特子密钥)来加密右半部分数据分组,然后与左半部分数据分组进行异或操作以形成一个新的用于下次循环的右半部分数据分组,而前一个右半部分数据被替换为用于下次循环的左半部分数据分组。DES算法是这样工作的:如Mode为加密,则用Key

15、 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在

16、金融交易网络的流行做法。1.2 AES加密算法随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES。经过三轮的筛选,比利时Joan Daeman和Vincent Rijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言,AE

17、S的128位密钥比DES的56位密钥强1021倍。AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。圈变化:AES每一个圈变换由以下三个层组成:非线性层进行Subbyte变换;线行混合层进行ShiftRow和MixColumn运算;密钥加层进行AddRoundKey运算。Subb

18、yte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射; ShiftRow是一个字节换位,它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的;在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。 b(x)=c(x)*a(x)的系数这样计算:*运算不是普通的乘法运算,而是特殊的运算,即 b(x)=c(x)a(x)(mod x4+1) 对于这个运算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0其中,符号“。”表示模一个八次不可约多项式的同余乘法;对

19、于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)a(x);密钥加层运算(addround)是将圈密钥状态中的对应字节按位“异或”;根据线性变化的性质,解密运算是加密变化的逆变化。这里不再详细叙述。轮变化:对不同的分组长度,其对应的轮变化次数是不同的,本课题以128位的AES进行加解密运算,其迷药长度为4字节,分组大小4字节,要进行10次轮变化。密钥扩展:AES算法利用外部输入密钥K(密钥串的字数为Nk),通过密钥的扩展程序得到共计4(Nr+1)字的扩展密钥。它涉及如下三个模块: 位置变换(rotword)把一个4字节的序列A,B,C,D变化成B,C,D,A; S盒变换(subword)

20、对一个4字节进行S盒代替; 变换RconiRconi表示32位比特字xi-1,00,00,00。这里的x是(02),如 Rcon1=01000000;Rcon2=02000000;Rcon3=04000000扩展密钥的生成:扩展密钥的前Nk个字就是外部密钥K;以后的字W等于它前一个字Wi-1与前第Nk个字Wi-Nk的“异或”,即W=Wi-1W- Nk。但是若为Nk的倍数,则W=Wi-NkSubword(Rotword(W-1)Rconi/Nk。1.3 数据库安全与隐私保护随着网络技术和通信技术的日益成熟以及网络通信带宽的不断增加,越来越多客户信息、交易信息、医疗信息等涉及到个人隐私的数据以电子

21、化的方式被存储和管理。为了避免昂贵的管理和聘请专业管理人员的费用,越来越多的企业寻求一种能够提供基本的硬件基础设施以外的数据管理服务,如提供容量计划、DBMS (database management system)、访问控制管理等以减少自身维护、管理带来的大量开销。数据库服务作为一种新的数据管理模式满足了企业需求,并可以提供与本地数据库一样的数据管理服务。数据库服务虽然可以为客户提供必要的硬件、软件维护等,但是由于越来越多的数据信息涉及到个人的隐私,如一个人是否患有不希望公开的传染病或癌症,而且企业间的竞争以及数据库隐私数据窃取促使企业选择具有安全和隐私保护能力的数据库管理技术。因此,本节从

22、数据库服务需要解决的如下4个方面的安全、隐私保护关键问题以及一个用来进一步提高数据库服务可用性的访问控制安全机制展开分析: (1)数据库的内容往往涉及企业的隐秘信息,因此,数据库服务需要有完善的数据安全机制来保证数据库的内容不会泄露(数据的机密性(data confidentiality)); (2)服务提供者不一定可信,可能像企业维护自己的数据库一样可信,因此数据库服务需要保证数据库的内容不会被破坏(数据的完整性(data integrity)); (3)服务提供者不能随意删除或添加自己的任意的数据,因此,数据库服务需要保证服务提供者提供的数据是正确的,返回客户的结果是完备的(数据的完备性(

23、data completeness)); (4)服务提供者不能察觉客户查询相应数据的目的,客户能够从个数据元素中检索第i个元素而不被服务提供者发现客户对第f个元素感兴趣(查询隐私保护(query privacy preserving)); (5)数据库服务在保证上述4个方面的安全与隐私的同时,也需要保证数据库的可用性,否则这样的数据库服务没有实际应用价值,因此,在数据库服务的可用性方面也提出了挑战:除了通过建立某个属性的索引信息保证数据库的可用性以外,如何开发数据库服务中的安全、有效的访问控制技术,使得在满足上述安全的情况下不同的用户具有不同的访问特权(访问控制策略(access contro

24、l policy))。隐私保护近年来越来越受到人们的关注。隐私的泄露一方面是管理人员泄密,另一方面就是黑客盗取。第一方面的原因要从体制上加强防范,在此不再赘述。第二方面则可以通过数据库加密技术来避免。数据库加密技术的应用既解决了数据库安全性的问题,又提高了对用户隐私的防护力度,具有非常重要的意义。1.4 章节安排第一章为绪论,介绍加密算法、数据库安全等方面内容。第二章为数据库安全技术分析,介绍数据库安全可采用的技术、系统保护、加密层次和加密技术要求等方面内容。第三章为本课题的总体设计,介绍编程环境与整体设计思路及功能。第四章为本课题的实现过程,介绍了比较重要部分的功能实现以及总的操作演示结果。

25、第五章为效率统计及结果分析,介绍了不同条目、不同加密算法下的效率对比情况。2 数据库安全技术分析2.1 数据库安全可采用的技术数据库安全问题可归结为保证数据库系统中各种对象存取权的合法性(保证访问,阻止非法访问)和数据库内容本身的安全(防泄漏、篡改或破坏)两个方面,围绕这两个方面,数据库的安全可采用如下技术。 (1)存取控制技术 存取控制技术是数据库安全的核心,一般采用多层控制,即系统登录控制、数据库使用权控制及数据库对象操作权控制。系统登录控制,又称为标识鉴别技术,即输入用户名及口令,由系统进行身份验证。数据库使用权及数据库对象操作权控制数据库的授权系统将各种使用与操作权授予用户。 (2)隔

26、离控制技术隔离控制技术在数据库中也是一项很重要的安全技术。通过某种中间机制,将与存取对象隔离。用户不能直接对存取对象进行操作,而是通过中间机构间接进常用的中间机构有视图和存储过程。 (3)加密技术 加密技术是将数据库中的原始数据(明文)转换成人们所不能识别的数据(密文),达到防止信息泄漏的目的。 (4)信息流向控制技术 信息流向控制技术是将数据库信息内容按敏感程度分成多个密级(如绝密、机密、秘密、一般),以防止信息从高安全级流向低安全级。(5)推理控制技术 推理控制技术是防止用户从对数据库的合法访问得到的信息,推断出他所不应了解的信息。推理控制技术特别适用于统计数据库的安全。本课题主要运用到了

27、存取控制技术中的系统登录控制和加密技术。其中,加密技术是本课题应用的重点。2.2 数据库系统保护在网络环境下,对数据库可能受到的各个方面威胁的防护可以从以下几个方面来进行: (1)基于物理设施的保护 这主要包括对数据库周边物理环境采取的各种安全措施,如加强机房的安全保卫工作,重要设备的安全防卫以及数据库信息的备份工作。 (2)基于网络层次的数据保护这主要包括两个方面的内容:数据在网络传输时的安全保护及通过技术手段保护数据所在内部网络的安全。数据在网络传输时,不管是在公司企业的内部网 络还是外部网络,都有可能被非法窃听和截取。保护网络传输中数据的安全性,己经有许多种方法,例如:通过SSL(Sec

28、ure Socket Layer),SET(Secure Electrical Trade)或PGP协议,可以使数据不被非法窥探和修改;通过防火墙入侵检侧等技术手段,可以阻止外部入侵者进入内部网络;通过对内部网络的保护,可以有效地阻止外部入侵者对内部数据库的访问。然而,由于内部人员已经处于内部网络之内,所以这类防护,并不能够效地阻止内部人员非法访问数据库内机密数据。 (3)操作系统对数据库的保护数据库无论如何还是运行在操作系统之上的。在不少情况下,数据最终还是以文件的形式存在于操作系统中的。因此,操作系统对数据库及数据的保护,是不可或缺的。大型数据库管理系统的运行平台一般是Windows NT

29、和Unix,这些操作系统的安全级别通常为C2级。它们具有用户注册、识别用户、任意存取控$1J(DAC)、审计等安全功能。虽然DBMS在OS的基础上增加了不少安全措施,但有经验的入侵者仍然可以直接利用OS工具窃取或篡改数据库文件内容。这种隐患被称为通向DBMS的“隐秘通道。(4)数据库管理系统的安全措施当今的商用关系型数据库,为保护数据的安全,都采取了一系列措施。安全保护措施是否有效是数据库系统的主要性能指标之一。评价一个数据库系统的安全性,往往首先抛开网络、甚至操作系统对数据库的保护作用,尽量不把网络层次、操作系统层次对数据库的保护作用与数据库系统本身的保护措施混为一谈。2.3 数据库的加密层

30、次对数据库数据的加密,可选择的层次主要有三个:操作系统层、DBMS内核曾和DBMS外层。在操作系统层加密时,程序无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也就无法进行合理的密钥管理和使用。在DBMS内合成加密,是指数据在存取之前完成加解密工作。这种加密方式加密功能强,并且加密功能几乎不会影响DBMS的功能,但是有一个很大的缺点,即加解密都在服务器端进行,加重了数据库服务器的负载。比较实际的作法是将加密系统做成DBMS的一个外层工具。采用这种加密方式时,加解密在客户端进行,不会家中数据库的负担,并且由于要传输的数据已经加密,可以直接在网络上传输。2.4 数据库加密技术要求由于数据库

31、中的数据有其所独特的属性,所以数据库中数据的加密有一些特殊的要求和限制,概括起来有以下几点: (1)与传统的通信网络加密技术相比,数据库中数据保存的时间相对较长,加密时不太可能采取一次一密的形式,所以对于加密强度的要求就更加严格和苛刻。对于一个内部攻击者来说,可以很容易的将数据库中的加密数据盗窃出去,然后进行破译分析,所以数据库中数据的加密对强度要求较高,至少在数据的有效期内是无法破译的。 (2)对数据库中数据最大量和最主要的使用方式是查询操作,所以加解密的速度一定要快,否则数据加解密过程可能导致整个数据库系统性能的大幅下降。 (3)数据库加密后,数据库系统中数据的组织结构相对于原系统而言不能

32、有大的变动,数据占用的存储空间也不能有大的变化。如果可能,应尽量做到加密前后数据长度相等,至少要相当。 (4)与通信网络中的数据相比,数据库中的数据处于更为开放的数据共享环境中。通信环境中,用户基本上只有线路两端的两个用户。网络环境中,用户数量虽然不仅仅限于线路两端的两个用户,但是无论是在广域网坏境还是局域网环境中,从通信的角度来看,仍可以认为是两个用户的通信问题。但是在数据库环境中,数据库中的数据是由多个用户共享的,并且大多数用户又只能访问数据库中的小部分数据,因此应该将数据库的加密机制与数据库的访问控制、用户授权等机制有机地结合起来。 (5)与通信网络加密、文件系统加密相比,数据库加密要求

33、更加灵活、可靠的密钥管理体制。数据库加密通常采用比通信网络加密、文件系统加密更为复杂的密钥,而且由于密钥的有效期较长,所以密钥的管理也更为复杂。如果密钥管理混乱或者出现失误,如密钥泄露、丢失等,不仅会导致数据库中敏感信息的泄漏,还可能会导致数据库服务中断、拒绝服务等情况的发生。由于数据库中加密数据的密钥更换会涉及大量数据,所以密钥的定期更新也是需要重点考虑的问题,必须采用一种高效的密钥更新机制,使得既完成了密钥的定期更新又能保持数据库服务的连续性。 (6)数据库系统的加密机制不仅要保证对数据库中的加密数据进行查询、更新等操作的效率,同时要保证数据库中加密数据的完整性,此外还要保证加密粒度的灵活

34、性。2.5 加密数据库的国内外研究现状2.5.1 国外研究现状八十年代初,在美国开始了加密数据库的研究。学术方面,IBM公司的CWood,EBFerriandea,RCSummers在IBM Systems journal 1 980提出的(Database Security:Requirement,Policies,and Models,以及George I, Davida L,John B K在198 1年的ACM Transaction on Database System上发表A database encryption system with subkey,被普遍认为代表着加密数据库研

35、究的开始。此外,DEDenning在1982 年发表了著名的(Cyrptography and Data Security)一文之后,紧接着在1983年提出了对加密数据库的一些见解。这些研究,被逐渐地体现到一些关系数据库产品中。近几年来,很多大型关系数据库系统主要都是通过不同程度地修改DBMS核心来来达到数据库安全的效果。例如,Oracle从8i版本开始,提供一个PLSQL包DBMS OBFUSCATION_TOOLKIT,专门用来对数据库中数据进行加密。Oracle的数据库加密方案主要有以下特点: (1)用DES,3DES,MD5等加密算法; (2)用基于字段的加密方式; (3)密钥管理不是

36、很方便,需要应用程序提供解密的密钥。这使得应用程序开发人员必需自己解决密钥存储和密钥提取的问题。另外,IBM公司针对其自身数据库产品,也在做加强数据库安全和加密的工作。例如,IBM的TJWaston Research Center就有这方面的研究。值得注意的是,IBM的思路与Oracle不大相同。一方面,IBM想从更加底层来着手解决数据库加密问题。IBM 提出了一些全新的概念,例如与DBMS紧密结合的安全字典的概念。另外一方面,在限制DBA(Database Administrator)权利的问题上,IBM的态度显得更加坚决。实践方面IBM DB2从72版本开始提供一些加密解密函数,可以直接在

37、SQL语句中使用。DB2的数据库加密功能有以下特点: (1)采用128位的RC2加密算法和MD2加密算法来实现对数据的加密; (2)可以让一个字段中的所有数据采用同个密钥,也可以为一个字段中的不同数据项采用不同的密钥; (3)对数据项加密的密钥实际上就是个口令,而口令的长度有限,这使得安全性比较脆弱; (4)密钥(口令)的管理,都必须由应用程序来完成,DB2本身不提供任何管理机制。从总体上来说,各个数据库厂商般都或多或少提供了数据库加密的解决方案,部分解决了对敏感数据加密的问题。然而,由于各方面的限制,各数据库厂商提供的解决方法都不能够很好地达到多用户共享密钥和加密数据的效果。各种主流数据库,

38、除了提出自身的数据库加密解决方案之外,还积极地与第三方软件紧密结合,企图通过各种外围的方法,来解决数据库加密的问题。可以预见,在今后的几年中,除了各种数据库自身的数据库加密解决方案之外,会出现各种解决数据库加密问题的外围产品。2.5.2 国内研究现状由于国内的计算机、数据库和网络的应用总体上要比国外落后,所以相应地,数据库加密的研究和应用也落后国外若干年。在我国,很多公司、企业,甚至国家部门使用的网络软硬件产品、防火墙软硬件、入侵检测产品、操作系统甚至包括数据库产品在内都严重依赖国外。国外在其出口的产品中是否留有后门不得而知。因此,国内对数据库加密的需求非常迫切,通过加密,可以从根本上、自主地

39、保证数据的安全性。从这点来说,数据库的加密技术是我们在信息安全领域应该抓住的契机。从加密层次上考虑,采取修改DBMS内核的方式来达到数据库加密的效果,对我们来说是不现实的,修改DBMS内核的工作量不可低估,更为困难的是,这种方式必然要DBMS开发商的全力支持,这一点几乎是不可能的。事实上,修改DBMS内核并不是实现数据库加密的唯一方法,通过DBMS外围构造加密程序包的方法,同样可以达到数据库加密的效果,国内有关机构也是从这方面进行研究的。从理论研究上来看,在我国高校,清华和华中理工大学在加密数据库的研究方面起步比较早。从九十年代中期开始,这两个高校对加密数据库进行了一定的探讨。例如,清华大学在

40、1995年有人提出密钥转换表的密钥管理方案、提出多级密钥的思想。而华中理工大学对如何在加密数据库环境下提高查询速度进行了一些理论探讨,还对分布式环境下数据库加密的密钥管理提出一些见解。还有人提出将网络的密文传输通信与数据库静态加密结合起来,组成所谓的“网络密文数据库。从实践上来看,华中科技大学提出的数据库加密系统,能够初步达到对数据库加密的效果,可以由用户选择加密的表和字段,做到加密对应用程序透明。但是,其中也存在着一些问题。例如,采用多级密钥管理模式,加密机制过于复杂。整个加密机制需要硬件支持,使得系统的易用性受到影响。但是,他们的探索是非常有意义的,并且取得了一些令人鼓舞的结果。产品方面,

41、有武汉华工达梦数据库有限公司的DM4。DM4的安全级别达到B1级,部分达到B2级。DM4的安全管理就是为保护存储在DM4数据库中的各类敏感数据的机密性、完整性和可用性提供必要的技术手段,防止对这些数据的非授权泄露、修改和破坏,并保证被授权用户能按其授权范围访问所需要的数据。DM4的安全功能包括:基于角色的访问控制、自主存取控制、强制存取控制和审计等。但是,DM4并不提供存储数据的加密。东软的Openbase Secure 10。东软集团有限公司中间件技术分公司凭借着多年积累的数据库系统的开发经验,在大型数据库管理系统OpenBASE的基础上,依据中华人民共和国国家标准(GB 17859-199

42、9)计算机信息系统安全保护等级划分准则, 同时参照TCSEC和TDI对Bl级的要求进行设计,并结合OpenBASE Secure 10的具体特点,自主研究开发了符合安全标记保护级的OpenBASE在OpenBASE Secure中可以根据不同用户的需要以及数据库中数据的敏感度,提供加密接口,集成数据库存储和传输加密算法,从而保证数据存储和传输的安全,进一步提高了数据的安全性。人大、北大、中软和华中合作研发的可信COBASE v20。可信COBASE v20依据TCSEC和TDI对Bl级的要求进行系统设计,基本上实现了达到BI级安全要求的功能。它支持多种安全实现机制和用户认证机制,保证数据安全,

43、在DBMS一级提供数据库用户的创建和鉴别。可信COBASE不支持存储数据加密功能。北京神舟航天软件技术有限公司的神舟OSCAR。神舟OSCAR实现了可靠的用户身份认证,支持自主存取控制和安全的网络连接,并提供对DBA、普通用户、数据对象和特定数据操作的各种安全审计。神舟OSCAR还对数据的存放和传输提供了多种加密机制以满足不同应用的要求。从总体上来说,国内在数据库加密方面起步较晚,但已取得一些进步,数据库加密作为信息安全方面的一个重要方面,加速对数据库加密的研究势在必行。3总体设计3.1 编程环境介绍C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和

44、C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们

45、可以由任何语言在任何操作系统上通过INTERNET进行调用。C#使得C+程序员可以高效的开发程序,且因可调用由 C/C+ 编写的本机原生函数,因此绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。C#所开发的程序源代码并不是编译成能够直接在操作系统上执行的二进制本地代码。与Java类似,它被编译成为中间代码,然后通过.NET Framework的虚拟机被称之为通用语言运行时(CLR)执行。所有的.Net编程语言都被编译成这种被称为MSIL(icrosoft Intermediate Language )中间代码。因此虽然

46、最终的程序在表面上仍然与传统意义上的可执行文件都具有“.exe”的后缀名。但是实际上,如果计算机上没有安装.Net Framework,那么这些程序将不能够被执行。在程序执行时,.Net Framework将中间代码翻译成为二进制机器码,从而使它得到正确的运行。最终的二进制代码被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度明显加快。选择C#作为编程环境除了上述优点之外,强大的函数库也是非常重要的一方面。本课题要对数据库中的数据进行加密,而选择使用的加密算法DES跟AES在C#的函数库中都能

47、直接调用,为编程节省了大量时间和精力。3.2 设计思路与功能关于本课题的内容,任务书上有,但是由于任务书上的内容很笼统,为了很好地完成本课题,我跟老师沟通之后将任务细化,归纳出以下几点:1. 可在客户端实现对数据库服务器的数据的显示,以及增、删、改、查,并可实现数据的上传、下载;2. 对于查询,实现多种检索,如按名称,大小,模糊查询等;3. 利用DES对数据库中数据进行加密,在输入数据后提交时做一个选择,明文提交,DES提交;4. 列做成五列,分别命名为姓名,学号,语文,数学,英语;5. 加密时密钥在界面上手动输入;6. 密文检索,对学号列进行检索,输入明文,后台加密后对密文进行检索,检索后将

48、查到的信息用明文显示出来,解密程序后台运行;7. 效率检测,将该程序密文检索所需时间统计出来,并显示在界面上;8. 同样的要求换成AES加密方式做出第二个程序。以上要求大概可以按照两个模块来做:成绩录入模块和成绩检索模块。3.2.1 成绩录入模块首先录入学生成绩数据,在提交数据之前,系统对录入的数据进行数据约束性进行判定,如违反约束,则需要重新修改录入数据,直到符合要求为止。提交方式有两种,一种是明文提交,一种是密文提交。明文提交:直接将数据写入库中。密文提交:根据密钥种子,利用加密算法(DES/AES)对录入的数据逐一进行加密,再对加密后的密文数据写入库中。流程图如下图2.1所示:图3.1 学生成绩录入流程图3.2.2 成绩检索模块输入检索值,检索方式

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922