数据库加密技术是实现数据库文件安全的一项关键技术,能从根本上解决信息在网络上的安全传输问题,即使数据库文件受到入侵或者数据在传输过程中被人非法截获,入侵者或截获者得到的只是加了密的数据文件,无法得到真实信息,能最大限度地保护数据库中的信息资源。
一、混合加密体制概述
目前,常见的加密体制分为两种:对称加密体制和公钥加密体制。而混合加密体制是将公钥加密体制与对称加密体制相结合的一种方法。
1、对称加密体制
对称加密体制又称单钥加密体制,加密方利用一个密钥对数据文件进行加密,解密方接收到数据文件后需要用同一密钥来进行解密。该加密体制的特点是数学运算量小,加解密速度快,易于处理,但密钥的分发和管理比较困难,n个用户要使用n(n -1)/2个密钥。比较有代表性的加密算法有:DES,3DES,GOST,AES加密算法等。
2、公钥加密体制
公钥加密体制是把加密密钥和解密密钥分离,加密密钥一般通过公共数据库或在传输中对外公开,根据不同的算法可用于加密信息或验证数字签名;解密密钥则必须秘密保存,根据不同的加密算法可用于解密信息或进行签名验证。公钥加密体制的核心是单向陷门函数,该函数从一个方向求解容易,但从另一个方向求解非常困难。该加密体制的特点是数学运算量大、加密速度相对于对称密码慢,对选择密文攻击脆弱但密钥管理方便。比较有代表性的算法有:DH加密算法和RSA加密算法等。
3、混合加密体制
鉴于以上两种加密体制的优缺点,混合加密系统将公钥加密体制与对称加密体制相结合,使用带随机会话密钥的对称加密算法来加密消息,使用公开密钥加密算法来产生主密钥并加密随机会话密钥。这样既可以获得较快的加密速度,又可以获得较大的加密强度。正因如此,混合密码系统在安全领域起着重要的作用。
二、数据库文件加密设计
对于共享网络数据库,若数据库文件加密和解密在服务器上进行,则网络上传输的都是明数据,数据库文件加密成为空谈,所以加密和解密必须在客户端进行。由于不同的用户往往需要
访问同一个加密数据库,因此必须采用统一的加密和解密算法和相同的加密和解密密钥,密钥的管理也是整个加密数据库文件的安全核心。
1、采用AES的改进加密算法对数据文件加密
通过对常用的对称加密算法(DES、IDEA和AES)的评测,我们最终选择了AES加密算法,AES加密算法是一个数据块长度和密钥长度均可变的迭代分组密码,数据块和密钥长度都可分别为128、192或256位,并且由数据块长度和密钥长度决定加密圈数N为10、12或14圈。明文经过N圈的S盒变换、行移位变换、列混淆变换、圈密钥加变换等编码过程输出密文,其文件加密过程下图所示。
图1中的F为圈变换(包括S盒变换、行移位变换、列混淆变换、圈密钥变换),Ki为第i圈加密时所用的圈密钥j明文经N次圈变换之后加密成密文输出,当数据分组长度和密1钥长度均为128位时,要加密的数据分成128位一组,按每行4个字节(1个字节8位)排成4行,称为一个状态。数据的写入和读出均按列优先顺序,以字节为单位操作。将明文数据分组后,对每一个分组都要进行10圈数据文件加密,每一圈要进行如下变换:S盒变换BYrE SUB、行移位变换sr-nFTROW、列混淆变换MIX COLUMN、圈密钥变换ADD ROUNDKEY,最后一圈要少做第3步列混淆变换。
在使用分组密码时,对明文尾部不满一个整组的碎片通常采用填充随机数的办法将其扩充为一个整组,然后进行正常文件加密。由于尾组的扩充,使得密文的长度大于明文的长度。这样就不能满足数据库加密后文件长度不变的要求。针对这一问题,我们采用了“密码挪用法”来解决。例如,当待加密的长度为24码(即为192位)时,密码挪用法加密过程如图2:
第一整组(1-16码)加密后截取第9-16码的密文与尾部(17 -24码)组成一个整组进行加密,加密所得密码接在前一组的第8个密码之后。其中,第9 - 16码实际上进行了二次加密,在解密时也应该进行二次解密。该方案保证了128位分组加密,同时又保证了数据库文件加密以后,数据长度不会变化。
2、采用RSA加密算法建立安全的密钥管理机制
加密数据库文件的密钥管理是本系统实现加密数据库文件安全共享的核心问题之一。在此混合加密体制中我们采用基于RSA加密算法的数字签名技术实现对加密数据库文件密钥的安全管理。
为叙述方便,规定以下记号:管理员A对加密数据库文件的内容进行管理,设其RSA加密算法为FA( Key,Data),其中Key是密钥,Data是需要加解密的密钥,公钥为EA,私钥为DA。管理员A通过授权机制授予用户B访问加密数据库的权利,称为用户B为获得授权的用户,设其RSA加密算法为FB(Key,Data),公钥为EB,私钥为DB。为了对公钥密码的正确性进行检测,可以建立密钥证书KC如下:
显然,数据库的密钥证书KC必须加密存放在服务器上,对发出授权的管理员A自己而言,计算FA(EA,KC)保存在服务器上即可。但对于获得授权的用户B而言,无法解密得到KC,因此还必须建立安全的管理机制进行密钥的分发。方法如下(见图3):
注:(1)步骤一:A用B的公钥EB和算法FB加密;
(2)步骤二:A用自己的私钥DA和算法FA加密;
(3)CKC为加密后的密钥证书。
管理员A计算CKC的过程,即为A对KC的签名过程。A在计算出CKC后,保存到服务器上的密钥管理表TKC中,密钥管理表TKC的结构为:
用户B在获得授权认证后,可以访问密钥管理表,读取被加密的密钥证书C KC。CKC的解密过程如下(见图4):
注:(1)步骤一:B用A的公钥EA和算法FA解密;
(2)步骤二:B用自己的私钥DB和算法FB加密;
用户B获得密钥证书KC的同时,也就获得了密钥K。我们可以证明此密钥管理方案是正确的:
管理员A要撤销用户B已获得的授权时,从密钥管理表中删除相应的记录即可。用户B在授权被撤销后,使用该数据库时不能通过授权认证,更得不到密钥证书。当然,为了防止用户B保留密钥证书的副本,通过其他非法手段攻击加密数据库,管理员A最好更换数据库密钥K,同时更新密钥管理表。
三、在RS-MIS中数据库加密模块的应用
在某干部部门的人事管理系统的开发中,我们将基于混合加密体制的数据库文件加密技术运用其中,达到了理想的效果。
1、加密算法
加密开始时,首先将输入转换为状态矩阵。在初始化圈密钥后,通过执行圈变换函数10次,对状态矩阵进行变换。其中,加密算法的最后一轮变换与前Nr-1轮稍有不同。最后,将最终的状态取出作为输出口在加密中用到的变换分别为:Shift Rows()、Sub Bytes()、Mix Columns()和Add Round Key()。
2、解密算法
将加密进行逆变换就可以产生AES加密算法的解密。在解密中用到的变换分别为:Inv Shift Rows(),Inv SubBytes():,Inv Mix Columns()和Add Round Key()。
3、RS-MIS中数据文件加密的具体实现
在人事管理系统(RS-MIS)中,数据库表中需要加密的数据文件主要是一些敏感字段。下表就是人事档案表中的敏感数据如:“任免建议”经过上述加密算法和解密算法进行加密、解密后的数据文件(其中密码取自用户通过数字签名技术从管理员处获得的授权密码),由下表可知样,明文字段经过AES加密算法加密后,是以密文形式存储到数据库中的,从而保护了敏感信息。
4、安全性分析
利用本方案,可以实现加密数据库文件的安全共享,为信息管理系统(MIS)的正常运行提供了有力的安全保障。非法用户侵入系统试图访问加密数据库时,由于其不能破译合法用户的RSA公钥密码,得不到授权认证更不能还原密钥证书KC,确保了加密信息的安全。、密钥证书中包含消息认证码,可以检测出数据错误或非法篡改,只有数据完全正确时,才能通过检验。发出授权的管理员用自己的私钥对证书进行数字签名,其他用户得不到其私钥,无法伪造证书,不能进行重放攻击,同时也可防止管理员否认和抵赖已发出的授权。
用户的私钥是本方案的安全核心之一,应由用户个人严格保护,可以采用硬件和软件相结合的方式对其予以保护,如可以保存在IC卡、闪存、软盘等移动存储设备上。使用时通过IC卡身份认证后才能正确读取私钥。
在数据库安全所采用的策略中,加密技术是一项备受关注的技术。混合加密体制结合了公钥加密体制易于密钥分配和对称密码体制易于计算、速度快的特点,为数据库的安全和便捷使用提供了良好的途径。
小知识之加密体质
加密体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。