基于对称密码的数据库检索系统设计.docx
《基于对称密码的数据库检索系统设计.docx》由会员分享,可在线阅读,更多相关《基于对称密码的数据库检索系统设计.docx(30页珍藏版)》请在冰豆网上搜索。
基于对称密码的数据库检索系统设计
基于对称密码的数据库检索系统设计
DesignofDatabaseRetrievalSystemBasedonSymmetricCipher
【摘要】随着计算机和各种智能设备的普及,各种各样的信息数据呈现出爆炸式的增长,信息的安全已成为大家十分关注的问题。
作为信息的最重要的一个载体—数据库的安全成为人们关注的焦点。
作为数据库安全的核心,数据库加密技术能有效的弥补传统数据库安全手段的不足。
本课题主要研究基于对称密码的数据库检索系统,利用DES和AES加密技术实现对数据库中数据的加密,设计了可视化操作界面,在界面上可以对数据进行增加、删除、修改,实现了对数据库中明文、密文的检索并统计了检索效率。
加密技术提供高质量的数据保护,加密程序具有一定的复杂性。
结果表明:
AES加密算法的安全性及检索效率均高于DES加密算法。
【关键字】数据加密DESAES数据检索
【Abstract】Withthedevelopmentofcomputerandmanyotherintelligentdevices,allkindsofinformationanddataisgrowingathighspeed.Informationsecurityhasattractedmoreandmorepeople’sattention.Asthecarrierofinformation,databasehasbecomethefocusofus.Asthecoreofdatabasesecurity,databaseencryptiontechnologycaneffectivelycompensateforthelackoftraditionaldatabasesecuritymethods.
Thispapermainlystudiesthedatabaseretrievalsystembasedonsymmetriccipher.DESandAESencryptiontechnologyisusedtoencryptthedatainthedatabase.Visualinterfaceisdesignedonwitchwecanadd,deleteandmodifydata.Lastbutnotleast,theretrievalofplaintextsandciphertextisachieved.Atthesametime,retrievalefficiencyiscount.Encryptiontechnologycanprovidehigh-qualitydataprotectionandhashighcomplexity.TheresultshowsthatAESismuchsaferandmoreefficientthanDES.
【Keywords】DataEncryptionDESAESDatabaseRetrieval
前言
随着网络技术的不断发展,计算机在社会生活的许多方面都得到了应用。
然而在计算机给人们的工作和生活带来方便的同时,各种安全隐患也应运而生了。
为了提高网络系统的安全性能,人们采用了许多保护手段,如:
在系统中增加防火墙和入侵监测系统等,但是这些措施仍然不能避免系统遭受破坏,不能完全保证系统的安全性。
数据库系统作为信息系统的核心部件,数据库文件作为信息的聚集体,显然其安全性将是信息系统安全性的重要指标。
使用没有安全保证的数据库,一个信息系统不可能具有高的安全性能。
所以,数据库的安全问题已成为信息安全领域的主要研究课题之一。
为了提高数据库的安全性能,数据库厂商也提供了许多安全措施,目前大型数据库ORACLE、SYBASE都提供了有关的用户标识和鉴定、存取控制、视图、审计功能、数据库备份与恢复等基本安全技术。
然而这些功能显然是不够的,这些安全技术只能满足一般的数据库安全应用,而对于高度敏感性数据,数据库系统所提供的安全性措施难以保证数据的安全性,数据库中数据是以明码文方式存放的,只要黑客避开了系统认证,进入到数据库系统中,他就可以盗取或修改数据库中他需要的任何数据。
此外,威胁数据库安全的并不完全是外部人员,系统内部的管理人员或企业内部职员对数据库安全的威胁更大,此时防火墙、入侵检测等防护措施没有任何作用,他们很容易实现对数据库的拷贝、修改等操作,从而给企业造成重大损失。
另外,数据库管理系统的运行平台一般是Windows和Unix,DBMS(databasemanagementsystem)和这些操作系统的安全级别通常为C2级。
它们对于数据库文件缺乏有效的保护措施,突破了操作系统的访问控制,就可以直接窃取或篡改数据库文件内容。
为了防止用户非法使用,保证数据库数据的安全,必须对数据库中存储的重要敏感数据进行保护处理。
密码技术就是一种有效的方法。
事实证明,这也是最经济可行的方法,它使得在一种潜在不安全的环境中保证通信的安全。
由于国内的计算机、数据库和网络的应用总体上要比国外落后,所以相应地,数据库加密的研究和应用也落后国外若干年。
在我国,很多公司、企业,甚至国家部门使用的网络软硬件产品、防火墙软硬件、入侵检测产品、操作系统甚至包括数据库产品在内都严重依赖国外。
国外在其出口的产品中是否留有后门不得而知。
因此,国内对数据库加密的需求非常迫切,通过加密,可以从根本上、自主地保证数据的安全性。
从这点来说,数据库的加密技术是我们在信息安全领域应该抓住的契机
从加密层次上考虑,采取修改DBMS内核的方式来达到数据库加密的效果,对我们来说是不现实的,修改DBMS内核的工作量不可低估,更为困难的是,这种方式必然要DBMS开发商的全力支持,这一点几乎是不可能的。
事实上,修改DBMS内核并不是实现数据库加密的唯一方法,通过DBMS外围构造加密程序包的方法,同样可以达到数据库加密的效果,国内有关机构也是从这方面进行研究的。
从理论研究上来看,在我国高校,清华和华中理工大学在加密数据库的研究方面起步比较早。
从九十年代中期开始,这两个高校对加密数据库进行了一定的探讨。
例如,清华大学在1995年有人提出密钥转换表的密钥管理方案、提出多级密钥的思想。
而华中理工大学对如何在加密数据库环境下提高查询速度进行了一些理论探讨,还对分布式环境下数据库加密的密钥管理提出一些见解。
还有人提出将网络的密文传输通信与数据库静态加密结合起来,组成所谓的“网络密文数据库"。
从实践上来看,华中科技大学提出的数据库加密系统,能够初步达到对数据库加密的效果,可以由用户选择加密的表和字段,做到加密对应用程序透明。
但是,其中也存在着一些问题。
例如,采用多级密钥管理模式,加密机制过于复杂。
整个加密机制需要硬件支持,使得系统的易用性受到影响。
但是,他们的探索是非常有意义的,并且取得了一些令人鼓舞的结果。
1绪论
1.1DES加密算法
本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。
其中之一就是1971年美国学者塔奇曼(Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的「多重加密有效性理论」创立的,后于1977年由美国国家标准局颁布的数据加密标准。
DES密码实际上是Lucifer密码的进一步发展。
它是一种采用传统加密方法的分组密码。
它的算法是对称的,既可用于加密又可用于解密。
美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。
加密算法要达到的目的通常称为DES密码算法,要求主要为以下四点:
提供高质量的数据保护,防止数据XX的泄露和未被察觉的修改;具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;实现经济,运行有效,并且适用于多种完全不同的应用。
1977年1月,美国政府颁布:
采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES,DataEncryptionStandard)。
之后随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。
DES算法的入口参数有三个:
Key、Data、Mode。
其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:
加密或解密。
DES主要处理64比特数据分组,每个DES循环处理输入数据的一个64比特数据分组,这个64比特数据分组随后被分为两个32比特数据分组。
使用专用加密函数(这个专用的加密函数使用当前循环的独特子密钥)来加密右半部分数据分组,然后与左半部分数据分组进行异或操作以形成一个新的用于下次循环的右半部分数据分组,而前一个右半部分数据被替换为用于下次循环的左半部分数据分组。
DES算法是这样工作的:
如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。
这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。
通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。
1.2AES加密算法
随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES。
经过三轮的筛选,比利时JoanDaeman和VincentRijmen提交的Rijndael算法被提议为AES的最终算法。
此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。
尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。
AES设计有三个密钥长度:
128,192,256位,相对而言,AES的128位密钥比DES的56位密钥强1021倍。
AES是分组密钥,算法输入128位数据,密钥长度也是128位。
用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。
每一轮都需要一个与输入分组具有相同长度的扩展密钥的参与。
由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。
AES算法主要包括三个方面:
轮变化、圈数和密钥扩展。
圈变化:
AES每一个圈变换由以下三个层组成:
非线性层——进行Subbyte变换;线行混合层——进行ShiftRow和MixColumn运算;密钥加层——进行AddRoundKey运算。
Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射;ShiftRow是一个字节换位,它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的;在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。
b(x)=c(x)*a(x)的系数这样计算:
*运算不是普通的乘法运算,而是特殊的运算,即b(x)=c(x)·a(x)(modx4+1)对于这个运算b0=02。
a0+03。
a1+a2+a3令xtime(a0)=02。
a0其中,符号“。
”表示模一个八次不可约多项式的同余乘法;对于逆变化,其矩阵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)——对一个4字节进行S盒代替;③变换Rcon[i]——Rcon[i]表示32位比特字[xi-1,00,00,00]。
这里的x是(02),如Rcon[1]=[01000000];Rcon[2]=[02000000];Rcon[3]=[04000000]……扩展密钥的生成:
扩展密钥的前Nk个字就是外部密钥K;以后的字W[[i]]等于它前一个字W[[i-1]]与前第Nk个字W[[i-Nk]]的“异或”,即W[[i]]=W[[i-1]]W[[i-Nk]]。
但是若i为Nk的倍数,则W[i]=W[i-Nk]Subword(Rotword(W[[i-1]]))Rcon[i/Nk]。
1.3数据库安全与隐私保护
随着网络技术和通信技术的日益成熟以及网络通信带宽的不断增加,越来越多客户信息、交易信息、医疗信息等涉及到个人隐私的数据以电子化的方式被存储和管理。
为了避免昂贵的管理和聘请专业管理人员的费用,越来越多的企业寻求一种能够提供基本的硬件基础设施以外的数据管理服务,如提供容量计划、DBMS(databasemanagementsystem)、访问控制管理等以减少自身维护、管理带来的大量开销。
数据库服务作为一种新的数据管理模式满足了企业需求,并可以提供与本地数据库一样的数据管理服务。
数据库服务虽然可以为客户提供必要的硬件、软件维护等,但是由于越来越多的数据信息涉及到个人的隐私,如一个人是否患有不希望公开的传染病或癌症,而且企业间的竞争以及数据库隐私数据窃取促使企业选择具有安全和隐私保护能力的数据库管理技术。
因此,本节从数据库服务需要解决的如下4个方面的安全、隐私保护关键问题以及一个用来进一步提高数据库服务可用性的访问控制安全机制展开分析:
(1)数据库的内容往往涉及企业的隐秘信息,因此,数据库服务需要有完善的数据安全机制来保证数据库的内容不会泄露(数据的机密性(dataconfidentiality));
(2)服务提供者不一定可信,可能像企业维护自己的数据库一样可信,因此数据库服务需要保证数据库的内容不会被破坏(数据的完整性(dataintegrity));
(3)服务提供者不能随意删除或添加自己的任意的数据,因此,数据库服务需要保证服务提供者提供的数据是正确的,返回客户的结果是完备的(数据的完备性(datacompleteness));
(4)服务提供者不能察觉客户查询相应数据的目的,客户能够从Ⅳ个数据元素中检索第i个元素而不被服务提供者发现客户对第f个元素感兴趣(查询隐私保护(queryprivacypreserving));
(5)数据库服务在保证上述4个方面的安全与隐私的同时,也需要保证数据库的可用性,否则这样的数据库服务没有实际应用价值,因此,在数据库服务的可用性方面也提出了挑战:
除了通过建立某个属性的索引信息保证数据库的可用性以外,如何开发数据库服务中的安全、有效的访问控制技术,使得在满足上述安全的情况下不同的用户具有不同的访问特权(访问控制策略(accesscontrolpolicy))。
隐私保护近年来越来越受到人们的关注。
隐私的泄露一方面是管理人员泄密,另一方面就是黑客盗取。
第一方面的原因要从体制上加强防范,在此不再赘述。
第二方面则可以通过数据库加密技术来避免。
数据库加密技术的应用既解决了数据库安全性的问题,又提高了对用户隐私的防护力度,具有非常重要的意义。
1.4章节安排
第一章为绪论,介绍加密算法、数据库安全等方面内容。
第二章为数据库安全技术分析,介绍数据库安全可采用的技术、系统保护、加密层次和加密技术要求等方面内容。
第三章为本课题的总体设计,介绍编程环境与整体设计思路及功能。
第四章为本课题的实现过程,介绍了比较重要部分的功能实现以及总的操作演示结果。
第五章为效率统计及结果分析,介绍了不同条目、不同加密算法下的效率对比情况。
2数据库安全技术分析
2.1数据库安全可采用的技术
数据库安全问题可归结为保证数据库系统中各种对象存取权的合法性(保证访问,阻止非法访问)和数据库内容本身的安全(防泄漏、篡改或破坏)两个方面,围绕这两个方面,数据库的安全可采用如下技术。
(1)存取控制技术
存取控制技术是数据库安全的核心,一般采用多层控制,即系统登录控制、数据库使用权控制及数据库对象操作权控制。
系统登录控制,又称为标识/鉴别技术,即输入用户名及口令,由系统进行身份验证。
数据库使用权及数据库对象操作权控制数据库的授权系统将各种使用与操作权授予用户。
(2)隔离控制技术
隔离控制技术在数据库中也是一项很重要的安全技术。
通过某种中间机制,将与存取对象隔离。
用户不能直接对存取对象进行操作,而是通过中间机构间接进常用的中间机构有视图和存储过程。
(3)加密技术
加密技术是将数据库中的原始数据(明文)转换成人们所不能识别的数据(密文),达到防止信息泄漏的目的。
(4)信息流向控制技术
信息流向控制技术是将数据库信息内容按敏感程度分成多个密级(如绝密、机密、秘密、一般),以防止信息从高安全级流向低安全级。
(5)推理控制技术
推理控制技术是防止用户从对数据库的合法访问得到的信息,推断出他所不应了解的信息。
推理控制技术特别适用于统计数据库的安全。
本课题主要运用到了存取控制技术中的系统登录控制和加密技术。
其中,加密技术是本课题应用的重点。
2.2数据库系统保护
在网络环境下,对数据库可能受到的各个方面威胁的防护可以从以下几个方面来进行:
(1)基于物理设施的保护
这主要包括对数据库周边物理环境采取的各种安全措施,如加强机房的安全保卫工作,重要设备的安全防卫以及数据库信息的备份工作。
(2)基于网络层次的数据保护
这主要包括两个方面的内容:
数据在网络传输时的安全保护及通过技术手段保护数据所在内部网络的安全。
数据在网络传输时,不管是在公司企业的内部网络还是外部网络,都有可能被非法窃听和截取。
保护网络传输中数据的安全性,己经有许多种方法,例如:
通过SSL(SecureSocketLayer),SET(SecureElectricalTrade)或PGP协议,可以使数据不被非法窥探和修改;通过防火墙/入侵检侧等技术手段,可以阻止外部入侵者进入内部网络;通过对内部网络的保护,可以有效地阻止外部入侵者对内部数据库的访问。
然而,由于内部人员已经处于内部网络之内,所以这类防护,并不能够效地阻止内部人员非法访问数据库内机密数据。
(3)操作系统对数据库的保护
数据库无论如何还是运行在操作系统之上的。
在不少情况下,数据最终还是以文件的形式存在于操作系统中的。
因此,操作系统对数据库及数据的保护,是不可或缺的。
大型数据库管理系统的运行平台一般是WindowsNT和Unix,这些操作系统的安全级别通常为C2级。
它们具有用户注册、识别用户、任意存取控$1J(DAC)、审计等安全功能。
虽然DBMS在OS的基础上增加了不少安全措施,但有经验的入侵者仍然可以直接利用OS工具窃取或篡改数据库文件内容。
这种隐患被称为通向DBMS的“隐秘通道’’。
(4)数据库管理系统的安全措施
当今的商用关系型数据库,为保护数据的安全,都采取了一系列措施。
安全保护措施是否有效是数据库系统的主要性能指标之一。
评价一个数据库系统的安全性,往往首先抛开网络、甚至操作系统对数据库的保护作用,尽量不把网络层次、操作系统层次对数据库的保护作用与数据库系统本身的保护措施混为一谈。
2.3数据库的加密层次
对数据库数据的加密,可选择的层次主要有三个:
操作系统层、DBMS内核曾和DBMS外层。
在操作系统层加密时,程序无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也就无法进行合理的密钥管理和使用。
在DBMS内合成加密,是指数据在存取之前完成加解密工作。
这种加密方式加密功能强,并且加密功能几乎不会影响DBMS的功能,但是有一个很大的缺点,即加解密都在服务器端进行,加重了数据库服务器的负载。
比较实际的作法是将加密系统做成DBMS的一个外层工具。
采用这种加密方式时,加解密在客户端进行,不会家中数据库的负担,并且由于要传输的数据已经加密,可以直接在网络上传输。
2.4数据库加密技术要求
由于数据库中的数据有其所独特的属性,所以数据库中数据的加密有一些特殊的要求和限制,概括起来有以下几点:
(1)与传统的通信网络加密技术相比,数据库中数据保存的时间相对较长,加密时不太可能采取一次一密的形式,所以对于加密强度的要求就更加严格和苛刻。
对于一个内部攻击者来说,可以很容易的将数据库中的加密数据盗窃出去,然后进行破译分析,所以数据库中数据的加密对强度要求较高,至少在数据的有效期内是无法破译的。
(2)对数据库中数据最大量和最主要的使用方式是查询操作,所以加解密的速度一定要快,否则数据加解密过程可能导致整个数据库系统性能的大幅下降。
(3)数据库加密后,数据库系统中数据的组织结构相对于原系统而言不能有大的变动,数据占用的存储空间也不能有大的变化。
如果可能,应尽量做到加密前后数据长度相等,至少要相当。
(4)与通信网络中的数据相比,数据库中的数据处于更为开放的数据共享环境中。
通信环境中,用户基本上只有线路两端的两个用户。
网络环境中,用户数量虽然不仅仅限于线路两端的两个用户,但是无论是在广域网坏境还是局域网环境中,从通信的角度来看,仍可以认为是两个用户的通信问题。
但是在数据库环境中,数据库中的数据是由多个用户共享的,并且大多数用户又只能访问数据库中的小部分数据,因此应该将数据库的加密机制与数据库的访问控制、用户授权等机制有机地结合起来。
(5)与通信网络加密、文件系统加密相比,数据库加密要求更加灵活、可靠的密钥管理体制。
数据库加密通常采用比通信网络加密、文件系统加密更为复杂的密钥,而且由于密钥的有效期较长,所以密钥的管理也更为复杂。
如果密钥管理混乱或者出现失误,如密钥泄露、丢失等,不仅会导致数据库中敏感信息的泄漏,还可能会导致数据库服务中断、拒绝服务等情况的发生。
由于数据库中加密数据的密钥更换会涉及大量数据,所以密钥的定期更新也是需要重点考虑的问题,必须采用一种高效的密钥更新机制,使得既完成了密钥的定期更新又能保持数据库服务的连续性。
(6)数据库系统的加密机制不仅要保证对数据库中的加密数据进行查询、更新等操作的效率,同时要保证数据库中加密数据的完整性,此外还要保证加密粒度的灵活性。
2.5加密数据库的国内外研究现状
2.5.1国外研究现状
八十年代初,在美国开始