毕业设计(论文)数据库加密系统的设计与实现.doc

上传人:文库蛋蛋多 文档编号:2395784 上传时间:2023-02-17 格式:DOC 页数:26 大小:936KB
返回 下载 相关 举报
毕业设计(论文)数据库加密系统的设计与实现.doc_第1页
第1页 / 共26页
毕业设计(论文)数据库加密系统的设计与实现.doc_第2页
第2页 / 共26页
毕业设计(论文)数据库加密系统的设计与实现.doc_第3页
第3页 / 共26页
毕业设计(论文)数据库加密系统的设计与实现.doc_第4页
第4页 / 共26页
毕业设计(论文)数据库加密系统的设计与实现.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《毕业设计(论文)数据库加密系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)数据库加密系统的设计与实现.doc(26页珍藏版)》请在三一办公上搜索。

1、1 引言随着计算机信息技术的蓬勃发展,作为信息采集、存储、处理和传输的媒体,计算机及网络应用逐步延伸到社会生活的方方面面。当人类越来越感受到计算机系统功能的强大,不得不感叹于信息技术带来的方便快捷的同时,各种忧虑也渐渐产生:已经习惯性依赖于计算机的人们离开它还能生存吗?信息战将对国防安全、军事领域产生什么影响?信息诈骗和其他信息犯罪将如何改变人们的日常生活? 这些问题都属于计算机信息安全的范畴。起初,计算机系统的安全主要是指硬件的安全保护。随着信息所发挥的价值日益为人们所了解,人们的目光转移到在计算机系统中存储、传输的信息的安全,包括防止信息泄漏和非法慕改等。数据库集中存放和管理大量信息,其安

2、全性对于整个计算机信息系统至关重要。为了保证数据安全,人们在不同层面运用了各种安全措施,这些防范措施分别可以在一定程度上防止某种安全威胁。但是,在操作系统、数据库和网络的层层防护之下,仍然无法保证数据库数据的安全。因为通常数据库中的数据最终是以文件形式存储在计算机上的,这些文件大部分是多个用户可读可写的,一旦网上黑客通过某种途径进入系统就可以直接读取数据文件或存储介质,从中窃取数据或利用非法软件篡改数据库文件内容。近几年,类似案件在世界范围内频繁出现。因此计算机信息安全人员和数据库开发商们不得不求助于另外一种安全措施一一加密技术。1.1 课题现状密码学是一门古老而深奥的学科,对一般人来说是非常

3、陌生的。长期以来,只在很小的范围内使用,如军事、外交、情报等部门。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向。数据库系统的安全问题是信息系统安全的一个大问题。由于数据库系统中集中存储了大量的信息,而且数据库的最大特点是实现数据的共享,其中必然带来数据库的安全性问题。数据库中放置了组织、企业、个人的大量数据,其中许多数据可能是非常关键的、机密的或者涉及隐私的。例如军事秘密、国家机密、科研数据、市场分析、营销策略

4、、销售计划、客户档案、医疗档案、银行储蓄数据等。数据拥有者往往只容许一部分人访问这些数据,如果数据库管理系统不能严格的保护数据库中的数据的数据安全性,就会严重制约数据库的应用。数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一。同时在许多用户之间也因为信息共享而增加了发生错误的机会。因此,如何才能确保和加强数据库的安全保密性已经成为目前必须要解决的问题。目前,在信息化发展程度较高的国家和地区,很多资源都可以实现共享,有些数据库中的数据是全部公开的(如图书馆的数据库),但是大多数数据库是无法全部公开的,有些数据库甚至是完全保密的。例如,就商业部门而言,一般信息可以共享,但是一些敏感信

5、息或者数据(如商业情报、职工工资等)则是保密的。而对军队等特殊部门的数据库而言,因其存储的全部都是一些机要数据,所以就要求完全保密。对于这些需要保密的或保密要求较高的数据库及其所存储的数据,如果还仅仅采用一般性的安全措施,那么仍会有一些用户,尤其是一些内部用户仍可能非法获取用户名、口令字,或是利用其他方法越权使用数据库,甚至可以间接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以强化数据存储的安全保护。但是很遗憾,现在绝大部分的数据库系统没有较为专业的加密保护。在现今互联网高度发达的时代,一旦黑客入侵,数据库全部暴露在黑客面前,数据库的信息安全堪忧。1.2

6、课题作用随着现代计算机的发展,信息化日趋完善,人们的生活逐步向数字化方向发展。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已经成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也大大地拓广和深化。我们日常生活、工作中所产生的数据更加依附数据库系统这一媒体。采用具有一定安全性质的软件来实现对于数据库及其所含数据或信息的安全保护,能够在

7、整个数据库系统中,在一定的程度甚至完全可以保证系统在无意或者恶意的软、硬件攻击下仍然能够使得系统内的数据或者信息不增加、丢失、泄漏、不被修改。往往通过数据加密技术等实现,本课题的作用就体现在此。1.3 课题意义信息是一种资源,也是一种财富。在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,已成为国际社会普遍关注的重大问题。但前由于信息保护措施的不力或失误,世界各国所遭受的损失是巨大的,在商业,交通,工业,科学技术,国防,外交等部门的大量事例已充分说明了这一点。因此,对于信息的加密保护就显的尤其重要。数据加密技术已随着计算机技术的迅猛发展,由早期的军事和外交领域

8、,逐步伸展到交通、工业经济、科学技术、社会安全和公共生活的各个领域,成为现代社会中保护信息的重要手段和工具。信息保护的现实需要,使得数据加密算法和技术迅速进入了现代社会,了解并有效使用数据加密算法技术已成为计算机技术和通信领域的专业技术人员和广大用户的迫切需求,这是信息化社会发展阶段的重要标志,数据库加密也是信息安全必不可少的安全手段。从六十年代数据库技术的产生到广泛的应用,人类对数据库安全的研究历经了三十多年,已经研究出很多的数据库安全及保密技术,数据库安全及其数据安全日益被重视。可是又一个问题显现出来,对于数据及信息本身来讲自然是安全级别越高越好,但是过高的安全级别势必会给数据及信息资源的

9、共享和使用带来不便。这是人们在今后的研究和实际应用中所必须注意和协调的问题。2 系统分析和总体设计2.1 需求分析现有较多的题库和组卷系统的数据库均不同程度的存在着安全方面的漏洞和隐患,需要对该系统的数据库的安全性进行设计,来满足有关人员的安全要求:按照不同的部门或者身份划分不同的用户名和密码,比如说管理员、教师、学生等;不同的用户配置相应的操作数据库的权限;对于关键的数据必须加密,只有通过相应的身份验证后才能通过应用程序调用,不能直接通过打开数据库来查看关键数据;在数据库中的数据被破坏后,能及时通过备份数据库进行恢复。2.2 设计思想本课题以Microsoft Visual C+ 6.0为主

10、要语言基础、密码学知识和数据库知识相结合,对该系统数据库进行保护,防止重要甚至机密的的信息数据被恶意盗窃和篡改。首先要设计好Access数据库,然后利用VC设计整个应用系统,分别设计系统的功能块,包括系统用户管理、教师功能模块以及学生功能模块。在系统中,直接对数据库记录中的各个数据项加密,即字段加密的方法。为了更加的安全,也对系统用户的口令字进行了加密。2.3 总体设计关于数据库安全,美国从七十年代就开始从事安全数据库管理系统的理论研究,到了八十年代,为了适应计算机安全技术飞速发展的需要,美国于1983年发布了“可信任计算机系统评估标准”,1985年又发布了其修订版,桔皮书中对安全系统的评价按

11、照四大类共七个等级划分不同的安全级别。即分为D、C1、C2、B1、B2、B3、A1七个等级,如下表2.1所示。其中A1为最高级别,每一级别都必须包含低一级的功能。表2.1可信任计算机安全评估标准级别 定义A1 设计的形式化验证B3 安全域B2 结构化保护B1 标记安全保护C2 受控制的存放保护C1 自主安全保护D 最小保护根据数据库安全的有关规范进行题库和组卷系统数据库安全的设计。良好的信息安全系统必然是分为不同等级的,包括对信息保密程度分级,对用户操作权限分级,对网络安全程度分级(安全子网和安全区域),对系统实现结构的分级(应用层、网络层、链路层等),从而针对不同级别的安全对象,提供全面、可

12、选的安全算法和安全体制,以满足网络中不同层次的各种实际需求。2.4 功能模块设计本系统要完成以下几个功能:(1):用户管理:本模块需要实现增加、删除用户以及管理用户信息等功能;(2):教师功能:本模块需要实现编辑、添加以及删除数据库中试题等功能;(3):学生功能:本模块需要实现自行生成试卷后,学生能够自由答题的功能。如图2.1,为整个系统模块结构图:学生功能教师功能用户管理管理退出系统系统身份验证系统主界面添加删除编辑试卷添加试题删除试题生成试卷答题图2.1 系统的功能模块图2.5 开发环境及技术(1)Visual C+6.0简介Microsoft Visual C+(以下简称VC+)是微软公

13、司开发的一个IDE(集成开发环境)。换句话说,就是使用C+的一个开发平台。但是,VC+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC(Microsoft Foundation Classes,以下简称MFC)、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;微软基础类MFC是Win32 API(Application Programming Interface,应用程序编程接口,以下简称API)的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM

14、是代码共享的二进制标准,需要掌握其基本原理等等。 (2)Access数据库简介数据库选用Microsoft公司的Access产品作为数据库应用程序。目前的Access 2003是Microsoft强大的桌面数据库平台的第六代产品,是32位Access的第三个版本。(3)ADO访问数据库ADO是Microsoft公司提供给Web数据库开发者最有效的开发方案,包含Connection、Command、Recordset三个对象。它几乎兼容所有的数据库系统,能跨越多种不同的程序语言开发环境,几乎可以在任何支持COM(Component Object Model,组件对象模型)和OLE(对象链接和嵌入

15、)的服务器端操作系统上使用,将原本烦杂的数据库程序开发变成轻松容易的工作,除了具有传统数据库开发环境的优点外,还增加了对数据库修改和维护的功能。 3 加密算法分析数据的加密就是将明文数据经过一定的交换(一般为变换和代替)变成密文数据。数据脱密是加密的逆过程,即将密文数据变成可见的明文数据。一个密码系统包含明文集合、密文集合、密钥集合和算法,其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序,规定明文与密文之间的变换方法,密钥可以看作算法中的参数。数据库加密系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出脱密得到明文信息。3.1 目前常用的加密算法现在

16、成熟的加密体制有对称密钥体制(包括流密钥和组密钥)和非对称密钥密码体制两大类。他们是两种不同的密码体制,有各自的优点和缺点,用于解决不同的问题。3.1.1 对称加密算法对称算法,又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加解密密钥是相同的。这些算法也叫秘密密钥算法或单钥算法,它要求发送方和接受方在安全通信之前商定一个密钥。对称算法的安全性完全依赖于密钥,泄露密钥就意味着任何人都能对消息进行解密。只要通信需要保密,密钥就必须保密。对称算法又可分为两类:一次只对明文中的单个位(或字节)运算的算法称为流密码。另一类算法是对明文的一组位进行运算,叫分组密

17、码,如IBM 的DES算法。3.1.2 非对称加密算法非对称加密算法又称公开密钥算法,是1976年由Diff和Hellman在其“密码学新方向”一文中提出的。在公钥密码系统中,加密和解密使用的是不同的密钥,这两个密钥之间存在着相互依存的关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。非对称加密算法的主要优点是可以适合网络开发性的使用环境,密钥管理问题相对简单。但是非对称加密算法是基于尖端的数学难题,算法非常复杂,加密解密速度和效率较低。目前最著名的公开密钥算法是RAS算法和椭圆曲线密码。3.2 系统使用的加密算法64比特明文初始置换第1轮第2轮第16轮左右交换逆初始置换64比特密文

18、56比特密钥置换选择1K1置换选择2左循环移位置换选择2左循环移位K2K3置换选择2左循环移位图3.1 DES加密算法框图在进行加解密算法的选择上,一方面要考虑保密的强度,另一方面还必须考虑加解密的执行速度。在系统中,不应因加解密功能的加入而明显降低系统的执行速率。数据库中的数据必须以字段为单位进行加密,否则数据库将无法进行操作。因此,数据库加解密的密钥应该相同,采用对称密码体制是比较合适的,而且对称密码体制在执行速度上一般较非对称密码体制快许多倍。在本系统的具体应用中,根据数据库加密对密码算法的要求和实际情况,采用DES和MD5分别对数据库中的关键数据和用户登陆时的口令字进行加密。数据加密算

19、法DES(Data Encrpytion Standard,以下简称DES),是由IBM公司在70年代提出的一种分组密码体制,并经政府的加密标准筛选后,于1976年11月被美国政府采用。DES算法加密速度快,适合大数据量数据加密。图3.1是DES加密算法的框图,DES加密时把明文以64比特为单位分块,采用美国国家安全局精心设计的8个S盒和P置换,经过16轮迭代,最终产生64比特密文,每轮迭代使用的48比特子密钥由原始的56比特产生。DES的加密与解密的密钥和流程完全相同,区别仅仅是加密与解密使用的子密钥序列的施加顺序正好相反。MD5(Message-Digest Algorithm 5,信息摘

20、要),它的典型应用是对一段信息产生信息摘要,以防止被篡改,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(bits length)将被扩展至n*512+448,即n*64+56个字节(bytes),n为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到

21、满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=n*512+448+64=(n+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。 MD5中有四个32位被称作链接变量(chaining variable)的整数参数,他们分别为:a=0x01234567,b=0x89abcdef,c=0xfedcba98,d=0x76543210。 当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。 将上面四个链接变量复制到另外四

22、个变量中:a到a,b到b,c到c,d到d。 主循环有四轮(md4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。 以一下是每次操作中用到的四个非线性函数(每轮一个)。 f(x,y,z) =(x&y)|(x)&z)g(x,y,z) =(x&z)|(y&(z)h(x,y,z) =xyzi(x,y,z)=y(x|(z)(&是与,|是或,是非,是异或) 这四个函数的说明:如果x、y和z

23、的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。 f是一个逐位运算的函数。即,如果x,那么y,否则z。函数h是逐位奇偶操作符。 假设mj表示消息的第j个子分组(从0到15),ff(a,b,c,d,mj,s,ti)表示a=b+(a+(f(b,c,d)+mj+ti) gg(a,b,c,d,mj,s,ti)表示a=b+(a+(g(b,c,d)+mj+ti) hh(a,b,c,d,mj,s,ti)表示a=b+(a+(h(b,c,d)+mj+ti) ii(a,b,c,d,mj,s,ti)表示a=b+(a+(i(b,c,d)+mj+ti)这四轮(64步)是: 第一轮 ff(a,b,c,d,m0

24、,7,0xd76aa478)ff(d,a,b,c,m1,12,0xe8c7b756)ff(c,d,a,b,m2,17,0x242070db)ff(b,c,d,a,m3,22,0xc1bdceee)ff(a,b,c,d,m4,7,0xf57c0faf)ff(d,a,b,c,m5,12,0x4787c62a)ff(c,d,a,b,m6,17,0xa8304613)ff(b,c,d,a,m7,22,0xfd469501)ff(a,b,c,d,m8,7,0x698098d8)ff(d,a,b,c,m9,12,0x8b44f7af)ff(c,d,a,b,m10,17,0xffff5bb1)ff(b,c,

25、d,a,m11,22,0x895cd7be)ff(a,b,c,d,m12,7,0x6b901122)ff(d,a,b,c,m13,12,0xfd987193)ff(c,d,a,b,m14,17,0xa679438e)ff(b,c,d,a,m15,22,0x49b40821)第二轮 gg(a,b,c,d,m1,5,0xf61e2562)gg(d,a,b,c,m6,9,0xc040b340)gg(c,d,a,b,m11,14,0x265e5a51)gg(b,c,d,a,m0,20,0xe9b6c7aa)gg(a,b,c,d,m5,5,0xd62f105d)gg(d,a,b,c,m10,9,0x02

26、441453)gg(c,d,a,b,m15,14,0xd8a1e681)gg(b,c,d,a,m4,20,0xe7d3fbc8)gg(a,b,c,d,m9,5,0x21e1cde6)gg(d,a,b,c,m14,9,0xc33707d6)gg(c,d,a,b,m3,14,0xf4d50d87)gg(b,c,d,a,m8,20,0x455a14ed)gg(a,b,c,d,m13,5,0xa9e3e905)gg(d,a,b,c,m2,9,0xfcefa3f8)gg(c,d,a,b,m7,14,0x676f02d9)gg(b,c,d,a,m12,20,0x8d2a4c8a)第三轮 hh(a,b,c,

27、d,m5,4,0xfffa3942)hh(d,a,b,c,m8,11,0x8771f681)hh(c,d,a,b,m11,16,0x6d9d6122)hh(b,c,d,a,m14,23,0xfde5380c)hh(a,b,c,d,m1,4,0xa4beea44)hh(d,a,b,c,m4,11,0x4bdecfa9)hh(c,d,a,b,m7,16,0xf6bb4b60)hh(b,c,d,a,m10,23,0xbebfbc70)hh(a,b,c,d,m13,4,0x289b7ec6)hh(d,a,b,c,m0,11,0xeaa127fa)hh(c,d,a,b,m3,16,0xd4ef3085)

28、hh(b,c,d,a,m6,23,0x04881d05)hh(a,b,c,d,m9,4,0xd9d4d039)hh(d,a,b,c,m12,11,0xe6db99e5)hh(c,d,a,b,m15,16,0x1fa27cf8)hh(b,c,d,a,m2,23,0xc4ac5665)第四轮 ii(a,b,c,d,m0,6,0xf4292244)ii(d,a,b,c,m7,10,0x432aff97)ii(c,d,a,b,m14,15,0xab9423a7)ii(b,c,d,a,m5,21,0xfc93a039)ii(a,b,c,d,m12,6,0x655b59c3)ii(d,a,b,c,m3,1

29、0,0x8f0ccc92)ii(c,d,a,b,m10,15,0xffeff47d)ii(b,c,d,a,m1,21,0x85845dd1)ii(a,b,c,d,m8,6,0x6fa87e4f)ii(d,a,b,c,m15,10,0xfe2ce6e0)ii(c,d,a,b,m6,15,0xa3014314)ii(b,c,d,a,m13,21,0x4e0811a1)ii(a,b,c,d,m4,6,0xf7537e82)ii(d,a,b,c,m11,10,0xbd3af235)ii(c,d,a,b,m2,15,0x2ad7d2bb)ii(b,c,d,a,m9,21,0xeb86d391)常数ti可

30、以如下选择: 在第i步中,ti是4294967296*abs(sin(i)的整数部分,i的单位是弧度。(4294967296等于2的32次方)所有这些完成之后,将a、b、c、d分别加上a、b、c、d。然后用下一分组数据继续运行算法,最后的输出是a、b、c和d的级联。 MD5的安全性 MD5相对md4所作的改进: (1)增加了第四轮; (2)每一步均有唯一的加法常数; (3)为减弱第二轮中函数g的对称性从(x&y)|(x&z)|(y&z)变为(x&z)|(y&(z); (4)第一步加上了上一步的结果,这将引起更快的雪崩效应; (5)改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似; (6

31、)近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应,各轮的位移量互不相同。 color=red简单的说: MD5叫信息摘要算法,是一种密码的算法,它可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件在传输过程中,其内容被损坏或者被修改的话,那么这个文件的MD5码就会发生变化,通过对文件MD5的验证,可以得知获得的文件是否完整。MD5算法算法总体流程图如下图3.2所示。512位L*512位Message100.0初始消息BlocknBlock0Block1BlockL-1HMD5HMD5HMD5HMD5512位MDBuffer

32、0MDBuffer1MDBuffernMDBufferL-1128位128位摘要图3.2 MD5算法算法总体流程图3.3 密钥管理在对数据加密时,一个至关重要的问题是密钥的管理。密钥管理是对密钥在其整个生命周期的管理活动,包括密钥的产生、存储、分发、使用、更新、消亡等内容。设计安全的加密算法虽然不容易,但是可以依据大量的学术研究。相对来说,对密钥进行保密则更加困难。由于数据库加密系统的安全依赖于密钥,所以采用一个弱的密钥产生方法,那么整个系统都将是弱的。如果采用密钥由用户指定的方式,他们通常会指定一个弱密钥。所以好的密钥通常都是那些自动处理设备产生的随机位串。密钥串要么从可靠的随机源中产生,要

33、么从安全的伪随机位发生器产生。在传统的通信网络加密和文件系统中,加密密钥通常采用直接分发给用户的方式。但因为数据库中的数据具有高度结构化、共享化、数据量大等特点,对于同一个加密数据,可能会有多个用户权限访问。如果直接采用分发密钥给用户的方式,很容易造成密钥的泄漏。所以在进行数据库加密时,难以使用直接分发密钥给用户的方式,必须采用安全高效的替代方式。在传统的通信网络加密和文件加密系统中,因为加密密钥通常直接分发给用户,所以不需要进行密钥的存储。但是在数据库加密中,需要一种安全高效的方式来存储和维护密钥。而且,由于存在大量的加密数据,相应的有大量的加密密钥,如果密钥不存储,一旦用户丢失密钥,数据将

34、无法恢复。4 系统详细设计4.1 数据库设计因为本课题的重点是对数据库加密方面的研究,为了便于系统成果的演示,所以简单的设计了这个数据库系统。4.1.1 需求分析数据库设计是在既定的数据库管理系统基础之上建立数据库的过程。其过程是将现实存在的数据及其应用处理关系进行抽象,从而形成数据库结构。数据库是数据库应用程序的核心。数据库设计是建立一个应用程序最重要的一步。一个好的数据库结构和文件设计可以使系统在已有的条件下具有处理速度快,占用存储空间少,操作处理过程简单,查找容易,系统开销和费用低等特点。具体实现时,应首先明确用户对数据的需求,在此基础上,建立数据库的概念模型,概念模型主要是用来反映用户

35、的现实环境和需求,它独立于具体的数据库管理系统,并且与数据库怎样实现无关,建立概念模型的主要工具为实体关系(E-R)图。在建立数据库概念模型之后,要真正实现与数据库管理系统的结合,即能够由既定的数据库管理系统所支持,还必须进行逻辑结构的设计,在逻辑设计阶段,主要完成建立数据库的逻辑模型,并解决数据的完整性、一致性、安全性和有效性等问题;最后一个阶段是数据库的物理结构设计,其任务是为系统逻辑结构模型确定合理的存储结构、存取方法、以及数据表示和数据存储空间分配等内容,从而得到具体的数据库物理结构。4.1.2 数据库概念结构设计数据库概念设计过程即是用用户可以理解的形式来表达信息的流程。概念设计所得

36、到的概念模型,是对现实世界的抽象和概括,能真实、充分反映现实世界中事物与事物之间的联系,即实体与实体之间的联系。概念设计在进行数据库设计时是非常重要的一步。根据本系统的调研分析和需求得出实体E-R图如图4.1所示。教师出题试卷生成学生姓名答题M修改删除NNNNNMMMM判断填空选择帐号姓名管理员管理NM班级图 4.1 本系统的实体E-R图4.1.3 数据库逻辑结构设计逻辑结构就是根据数据库管理系统的特征把概念结构转换为相应的逻辑结构。概念设计所得到的E-R模型,是独立于数据库管理系统的,这里的转换就是把表示概念结构的E-R图转换为层次模型或网络模型或关系模型的逻辑结构。本系统选择的数据库管理系

37、统是关系型数据库管理系统。因此只需将E-R 图中的每一个实体和联系都转换成关系模式中的关系即可,将关系模式进行规范化。系统的E-R图对应的关系数据模型为:(1)教师信息表(帐号、姓名、出卷日期、系别)(2)管理员信息表(帐号、用户权限)(3)学生信息表(帐号、学号、答卷日期、成绩) (4) 试卷信息表(编号、类别、生成日期、试卷成绩)4.1.4 数据流图设计数据流图是目标软件系统中各个处理子功能以及他们之间的数据流动的图形表示。下图4.2所示的是登录系统的数据流图。管理员身份验证教师学生身份正确信息身份错误信息D1D2图4.2 登录系统数据流图身份正确身份错误学生、教师、管理员用自己的用户名和

38、密码登录系统,如果正确则进入系统,显示当前用户信息,如果错误则弹出错误对话框,不能进入系统,返回重新登录。教师出卷数据库显示器保存试卷查询试卷图4.3教师出卷模块数据流图出卷模块是教师特有的模块,教师通过系统发布新的试题,以便学生检测自己所学的文化知识。4.2 系统功能实现加密功能是本系统功能实现的重点,所以在此着重介绍两个加密功能的实现。4.2.1 DES加密功能的实现4.2.2 MD5加密功能的实现4.3 系统界面实现本系统有三个权限,分别是管理员、教师和学生三个部分组成。分别用自己的帐号登录系统实现操作。管理员对系统有添加帐号和修改用户的权限;教师有对试卷进行添加、修改和删除等操作;学生

39、可以生成试卷并答卷。系统着重于对试卷的加密。具体实现由下面几小节说明。运行Microsoft Visual C+6.0,打开该工程。运行该系统后,得到如下图4.4所示。在用户名选项中分别为:admin、teacher和student。选择用户权限,输入密码登录。经过MD5加密算法核对,核对无异常,允许登录。图4.4 系统登录界面图4.5为账户MD5加密结果,输入密码后,经过账户管理表的核对信息,核对正确才允许登录,提高了题库的安全性。图4.5 账户MD5加密结果选择用户“teacher”,输入该用户密码:teacher。进入教师权限的系统,进行试题的编写。分别键入新信息,具体操作如下图所示。图

40、4.6进入判断题编写。图4.6 判断题编写进入选择题编写界面,同样键入新的题目,具体操作如下图4.7所示。图4.7 选择题编辑进入填空题的编辑界面,键入新的题目,增加到题库,实际的操作过程如下图4.8所示。分别键入题目和答案,备份到数据库中。图4.8 填空题编辑界面在编辑完试卷后,我们去数据库看看试卷的加密情况。判断题、选择题和填空题的加密情况分别如下三图4.9、图4.10和图4.11所示。经过DES加密算法的加密,我们可以看到,试卷保存在数据库中都是以密文形式保存,这就大大提高了试题的保密性和安全性。可以防止试题的恶意外泄或窃取。每幅图的最后一行即为我们刚刚添加的新试题,同样在数据库中以密文

41、保存。图4.9 判断题的密文形式我们可以从这些图中可以看到,在存放试题的数据库中,不管是何种权限,都是看不到试题的明文形式的,相对的提高了试题的保密性。图4.10 经DES加密过的填空题密文图4.11 经DES加密后的选择题密文退出教师权限,我们下面以学生的身份进入到该系统中,输入用户名和密码,进行MD5身份核对。学生界面主要是用于生成试卷和答卷所用。随机生成一套试题后,系统提示“以生成试卷”,考生可以开始答卷。如图4.12所示界面。图4.12 学生答题界面退出学生权限,以管理员的身份登录到该系统,在管理员界面中,能对系统作三种操作:修改账户权限、添加新账户以及密码修改,。下图4.13所展示的

42、是对“admin”,进行修改密码的操作。图4.13 管理员管理账户界面如果想添加新的账户,键入新的用户名称,选择权限设置,输入新的密码,点击“添加”按钮,则系统提示成功添加了新用户,具体操作过程如图4.14所示。图4.14 管理员添加新帐户为了方便数据库系统的操作和考虑到数据的安全,还添加了数据库备份和数据库还原两项功能,如图4.15、4.16所示。图4.15 数据库备份图4.16 数据库还原5 系统测试5.1 测试目的软件测试环节是每一个软件产品从设计到成品的最后一道工序,优秀的软件产品通常都经过许多严格的测试,最后才提交用户使用。软件测试包括功能代码的测试、系统功能的完整性测试、性能测试、

43、安全性测试、数据库的一致性测试等。测试的目的,第一,是尽可能多的发现软件制作过程中的错误及运行时错误,通过测试使软件的错误减少,使系统的可靠性进一步提高;第二,提供信息,比如提供给开发人员或用户的反馈信息; 第三,软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程,如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的,因此软件测试的第三个目的是保证整个软件开发过程是高质量的。5.2 测试内容根据需求分析划定系统测试的功能范围,即需求分析中的功能在系统中得到充分体现。分模块测试软件的功能,包括软件的界面要求、功能体现、性能要求、稳定性要求、是否达到操作便捷、

44、灵活性要求、安全性要求;各模块之间的关系是否与需求分析中的一致等。综合测试,在分块测试之后,将所有模块作为一个整体进行测试,测试整个系统的功能和性能,检验其是否满足用户的需求。测试案例:(1)在编辑试题这一功能模块中,选择选择题标签,在出题栏中键入“南京是哪个省的省会?”,选择项栏中保持空白,然后点击“添加/删除”按键,弹出对话框“题目或答案不能为空!”。(2)选中填空题编辑栏,在出题栏中复制一副图片进去,系统提示“错误操作”。5.3 测试结果测试结果总体上来说还是较好的,测试结果表明系统实现的功能均能达到需求分析的基本要求,系统的运行速度和稳定性较好,具有较高的实用性,安全性良好。在系统集成

45、测试中,测试结果是系统各模块的连接情况连好,做到了高内聚低耦合,系统整体运行良好,安全性方面未发现异常。结 论本文研究的课题是数据库加密系统的设计与实现,因为现今的题库与组卷系统数据库均不同程度的存在着安全方面的漏洞和隐患,不能满足相关人员的安全要求。所以设计了本系统。本系统针对有关的数据库安全漏洞和隐患进行研究探讨,并且取得了良好结果。在应用程序访问连接数据库的连接方案的设计中,本系统进行分析比较后,采用了ADO这一数据库连接技术;将用户的口令进行加密处理后再存储到数据库中,保证了数据库中用户及其口令的安全;在对目前常用的数据加密算法的深入研究和分析比较后,根据数据库加密对密码系统的要求,在对用户登陆时,采用了MD5加密算法保护用户的口令,用DES加密算法对数据库中的关键数据进行加密;在密钥管理方面,本系统实行二级密钥管理,一级密钥为主密钥,二级密钥为工作密钥,主密钥的作用是对二级密钥信息加密生成工作密钥,工作密钥用于对用户口令、数据库数据加密解密;在数据库的备份方面,本系统采取自动备份以及数据库复制相结合的方法来对数据库进行备份,保证被破坏后能进行良好的恢复。目前,采用本论文设计的大部分功能模块已经完成,并且能够顺利运行。通过具体地实施应用,基本满足了本次课题的要求。通过不同人员划分不同的用户名和密码;不同的用户配置相应的操作数据库的权限,达到了安全管理

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号