数据库信息加密技术研究

2014-07-28 16:55黄小燕
电脑知识与技术 2014年17期
关键词:安全级别数据加密数据库

黄小燕

摘要:该文主要针对数据库中信息加密的密钥管理、数据加密安全性和效率的平衡两个方面,采用单向哈希函数来降低密钥的管理难度,以及通过RSA、DES混合加密算法在保证数据加密安全性的前提下,提高数据库中数据加密的效率。

关键词:数据库;数据加密;密钥管理;安全级别

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)17-3964-03

The Database Encryption Algorithm Based on Hybrided Encryption

HUANG Xiao-yan

(Huizhou City Geographic Information Center, Huizhou 516001, China)

Abstract: Key management and the balance of security and efficiency in data encryption are two problems in database encryption. This thesis is focused on these problems. Firstly, using one-way hash function to reduce the difficulty of key management. Then, using RSA and DES encryption algorithm to ensure the security of data encryption, to improve the effciency of database encryption.

Key words: database; data encryption; management of keys; security Level

随着信息技术的应用越来越广泛,在数据库中保存的信息越来越多。保存在数据库中的信息往往包含了国家政策、经济、国防等安全级别非常高的信息。而在数据库中保存了信息系统中几乎所有的信息,一旦数据库中数据被窃取或者篡改,那么将会导致非常严重的后果。因此,在信息系统中往往需要通过对数据库中数据的加密来保证信息系统中数据的安全。

1 数据加密技术简介

目前应用较为广泛的数据加密算法可以分成如下三种:

1)序列密码体制:通过密钥对明文直接进行变化,明文每一个字符的加密与明文其它部分无关。这种加密算法容易通过明文和密文的对照得出密钥,难以做到“一次一密”。由于数据库中数据长期存储的特点,这类密码在数据库加密的应用有限。

2)分组密码体制:将明文进行分组后加密,明文中给一个字符的加密与密钥,与其它字符建立相关。可以做到“一次一密”,而且数据的加密和解密速度较快。虽然分组密码体制的穷尽量要比序列密码体大很多,因此也更加安全。分组密码体制的典型代表是DES加密算法。

3)公开密钥体制:公开密钥体制的典型代表是RSA加密算法。在算法中可以生成公钥和私钥两密钥。通过加密密钥和解密密钥的分开,从而方便了密钥的分配。但是其加密效率仅是DES加密算法的百分之一,甚至是千分之一。为此,RSA加密算法经常被用作身份认证。

2 信息系统数据库加密需求分析

由于行政级别的不同,导致信息系统中的数据也有严格的安全级别。为了保证信息系统中的数据安全性,根据信息系统的特点,需要对信息系统数据库中的数据进行加密处理。而根据信息系统的特点,以及数据库的特点,信息系统数据库加密需要满足如下几个方面的需求。

1)数据加密的安全性需求:由于信息系统的特点,一方面,信息系统中的数据往往涉及到国家政策、经济、国防等方面的内容,保密性较强,因此在进行信息系统数据库加密时,需要充分考虑数据加密的安全性;另一方面,由于信息系统具有严格用户权限的特点,为了保证数据库中数据的安全性,系统中用户添加的数据,只允许具有同等或者更高权限的用户进行查询和修改,即需要采用不同的密钥对于不同权限用户所添加的数据进行加密。

2)数据查询的效率需求:数据库查询效率本身就是数据库建设的一大难点,特别是在数据库加密之后,数据的解密需要损失数据查询的性能,同时加密数据库的数据表索引更困难,也会降低加密数据库的数据查询效率。因此,为了保证系统的性能,需要考虑数据库中数据查询,以及数据解密的效率。

3)数据非法篡改防范需求:数据库的数据安全性,不仅仅表现在防止数据丢失方面,同时也需要防止数据库中的数据被非法篡改。虽然通过信息系统可以严格的控制用户对数据库的操作。但是,由于仍然难以避免由于数据库漏洞或者操作系统漏洞所导致的非法用户入侵,篡改数据库中的数据。同时,数据库管理员权限过大也存在较大的安全隐患。为此,在对数据库进行加密时,不仅需要考虑数据防窃,同时还需要考虑数据的防篡改。

3 基于混合加密的信息系统数据库加密算法设计

针对上述信息系统数据库加密对安全性、效率以及防篡改的需求,该文设计一种混合加密算法来对信息系统数据库中的数据进行加密,算法流程如图1所示。

如图1所示,在本文所设计的混合加密算法中,通过RSA加密算法和DES加密算法的结合,构建安全、高效的数据库加密方案;通过单向哈希函数,实现数据库中数据密级权限的控制;通过关键词与敏感信息的分离,提高数据库的查询效率;通过在密文中加入认证码防止数据被篡改。

1)初始化

假设数据库中的数据有[α]([α∈Z+n])个访问级别,[H]为一个安全的哈希函数。

(1) 利用RSA加密算法得到公钥和私钥

通过RSA获得公钥和私钥的步骤如下所示。endprint

①随机选取大素数[p]和[q],满足[p≠q],且[p≡q≡3mod4]。

②计算[n=pq],以及[φ(n)=(p-1)(q-1)]。

③选取[e],满足[1

④计算[d=e-1modφ(n)]。

⑤将[(n,e)]作为公钥公开,[d]和[φ(n)]作为私钥保存,同时销毁[p]和[q]

一般而言,为了保证RSA加密算法的安全,[n]的长度应该不小于1024bit

(2) 分配级别密钥

随机选取一个整数[K],利用公钥[(n,e)]和单向哈希函数[H]计算级别密钥[Kl]([l=1,...,α]),并进行如下的计算。

①[Kl=HHk,…,Hk,l]。

②利用公钥[(n,e)]对级别密钥[Kl]进行加密:[EKl=Kelmodn]。

③保存[EK1,…EKα]。

2)密钥分配

为数据库分配一个访问级别为[l]的新用户[Ui]时,所进行的操作如下。

①选取与访问级别为[l]相对应的[EKl]文件,计算[Kl=Kdlmodn]。

②随机选取整数[ei],计算[d≡e-1imodφ(n)]。

③计算新注册用户[Ui]的公钥对:[PKi=ei,n],以及[SKi=di,n]。

④使用用户公钥进行级别密钥的加密:[EKi,l=Keilmodn]。

⑤将[PKi]和[EKi,l]保存在数据库中,[SKi]发送给用户。

3)数据加密

当一个已经注册的,访问级别为[l]的[Ui]合法用户在插入一条由关键词[d1,…,dn]、敏感信息[dm]和非敏感信息[M]所组成的记录term(term的表示如图2所示)时,进行如下的操作。

①随机生成一个指定长度的密钥[kterm],使用DES加密算法,对记录term中需要加密的敏感信息[dm]进行加密:[C1=Ekterm(dm)]。

②数据库利用用户所保存的私钥对加密的级别密钥[SKi]进行解密:[Kl=EKdii,lmodn],并且利用得到的级别密钥对随机密钥进行加密得到:[C2=EKlkterm]。

③生成记录term的消息认证码:[MACterm=CktermD'term],其中[D'term=d1,…,dn,C1,C2,l,M]。

④将明文[d1,…,dn,l,M],密文[C1,C2]和消息认证码[MACterm]组成记录[Dterm]存入数据库中,其中[Dterm]的表示如图3所示。

4)数据解密

一个数据库访问级别为[λ]的合法用户[Uj],根据关键词[d]检索数据库中的内容,假设检索的结果总计有[N]个,如下所示。

[Set=d(j)1,…,d(j)nj,l(j),M(j),C(j)1,C(j)2,MAC(j)term∈D(J)term|1≤j≤N,1≤nj≤n,λ≤l(j)]

其中,[Set]中的一条加密记录[Dterm=d1,…,dn,l,M,C1,C2,MACterm∈Set]的解密过程如下所示。

①与数据写入流程类似,利用用户的私钥[SKj]得到级别密钥:[Kλ=EKdjj,λmodn]。

②计算[Dterm]加密时的级别密钥:[Kl=HHk,…,Hkl-λ]。

③计算数据加密的随机密钥:[kterm=DKl(C2)]。

④根据[kterm]计算[Dterm]的消息认证码[MAC'term],如果[MAC'term≠MACterm],则表明数据被非法篡改过,否则使用[kterm]解密密文得到[dm=Ekterm(C1)]。

4 算法安全性分析

本文所设计的混合数据库加密算法具有如下的优越性:

1) 每个合法用户都拥有一个私钥,并且没有这个私钥的用户无法进行数据的存储和读取,从而防止系统管理员窃取数据库中的数据。

2) 用户安全级别和数据安全级别相对应,两个合法用户[Ui]对应安全级别为[i]),[Uj](对应安全级别为[j]),所存储的数据安全级别分别对应为[i,j],且[i

3) 加入了认证码,可以即时发现数据库中被非法用户篡改了的数据。

4) 用户每次登陆时,需要通过私钥解密一次级别密钥,通过RSA非对称密钥保证了密钥的安全性,在注销之前的每一次数据库操作都使用级别密钥来解密数据,用于使用级别密钥对数据的加密是基于效率更高的DES加密算法的,从而了提高了整个数据库加密的效率。

5 总结

如今,信息技术已日益广泛地应用在人们的日常生活与工作之中。信息技术在给人们提供了便利的同时,也给第三方窃取或者篡改信息系统的数据库中的数据提供了契机。因此,如何保证信息系统中数据库信息的安全成为备受关注的问题。该文主要论述了一种混合加密技术,通过对数据库中的信息,以及信息加密密钥的加密方式来提高数据库中数据的安全性,操作简单,安全性高,具有一定的参考使用价值。

参考文献:

[1] 朱勤,骆轶妹,乐嘉锦.数据库加密与密文数据查询技术综述[J].东华大学学报:自然科学版, 2007.33(4):67-71.

[2] Ercan Solak,Rhouma Rhouma,Safya Belghith,Cryptanalysis of A Multi-chaotic Systems Based Image Crypto System[J].Optics Communication,2010,283(26):93-102.

[3] David G L,Wells D L,Kam JB.A Database Encryption System with Subkeys[J].ACM Transactions on Database Systems, 1981,6(2):312-328.

①随机选取大素数[p]和[q],满足[p≠q],且[p≡q≡3mod4]。

②计算[n=pq],以及[φ(n)=(p-1)(q-1)]。

③选取[e],满足[1

④计算[d=e-1modφ(n)]。

⑤将[(n,e)]作为公钥公开,[d]和[φ(n)]作为私钥保存,同时销毁[p]和[q]

一般而言,为了保证RSA加密算法的安全,[n]的长度应该不小于1024bit

(2) 分配级别密钥

随机选取一个整数[K],利用公钥[(n,e)]和单向哈希函数[H]计算级别密钥[Kl]([l=1,...,α]),并进行如下的计算。

①[Kl=HHk,…,Hk,l]。

②利用公钥[(n,e)]对级别密钥[Kl]进行加密:[EKl=Kelmodn]。

③保存[EK1,…EKα]。

2)密钥分配

为数据库分配一个访问级别为[l]的新用户[Ui]时,所进行的操作如下。

①选取与访问级别为[l]相对应的[EKl]文件,计算[Kl=Kdlmodn]。

②随机选取整数[ei],计算[d≡e-1imodφ(n)]。

③计算新注册用户[Ui]的公钥对:[PKi=ei,n],以及[SKi=di,n]。

④使用用户公钥进行级别密钥的加密:[EKi,l=Keilmodn]。

⑤将[PKi]和[EKi,l]保存在数据库中,[SKi]发送给用户。

3)数据加密

当一个已经注册的,访问级别为[l]的[Ui]合法用户在插入一条由关键词[d1,…,dn]、敏感信息[dm]和非敏感信息[M]所组成的记录term(term的表示如图2所示)时,进行如下的操作。

①随机生成一个指定长度的密钥[kterm],使用DES加密算法,对记录term中需要加密的敏感信息[dm]进行加密:[C1=Ekterm(dm)]。

②数据库利用用户所保存的私钥对加密的级别密钥[SKi]进行解密:[Kl=EKdii,lmodn],并且利用得到的级别密钥对随机密钥进行加密得到:[C2=EKlkterm]。

③生成记录term的消息认证码:[MACterm=CktermD'term],其中[D'term=d1,…,dn,C1,C2,l,M]。

④将明文[d1,…,dn,l,M],密文[C1,C2]和消息认证码[MACterm]组成记录[Dterm]存入数据库中,其中[Dterm]的表示如图3所示。

4)数据解密

一个数据库访问级别为[λ]的合法用户[Uj],根据关键词[d]检索数据库中的内容,假设检索的结果总计有[N]个,如下所示。

[Set=d(j)1,…,d(j)nj,l(j),M(j),C(j)1,C(j)2,MAC(j)term∈D(J)term|1≤j≤N,1≤nj≤n,λ≤l(j)]

其中,[Set]中的一条加密记录[Dterm=d1,…,dn,l,M,C1,C2,MACterm∈Set]的解密过程如下所示。

①与数据写入流程类似,利用用户的私钥[SKj]得到级别密钥:[Kλ=EKdjj,λmodn]。

②计算[Dterm]加密时的级别密钥:[Kl=HHk,…,Hkl-λ]。

③计算数据加密的随机密钥:[kterm=DKl(C2)]。

④根据[kterm]计算[Dterm]的消息认证码[MAC'term],如果[MAC'term≠MACterm],则表明数据被非法篡改过,否则使用[kterm]解密密文得到[dm=Ekterm(C1)]。

4 算法安全性分析

本文所设计的混合数据库加密算法具有如下的优越性:

1) 每个合法用户都拥有一个私钥,并且没有这个私钥的用户无法进行数据的存储和读取,从而防止系统管理员窃取数据库中的数据。

2) 用户安全级别和数据安全级别相对应,两个合法用户[Ui]对应安全级别为[i]),[Uj](对应安全级别为[j]),所存储的数据安全级别分别对应为[i,j],且[i

3) 加入了认证码,可以即时发现数据库中被非法用户篡改了的数据。

4) 用户每次登陆时,需要通过私钥解密一次级别密钥,通过RSA非对称密钥保证了密钥的安全性,在注销之前的每一次数据库操作都使用级别密钥来解密数据,用于使用级别密钥对数据的加密是基于效率更高的DES加密算法的,从而了提高了整个数据库加密的效率。

5 总结

如今,信息技术已日益广泛地应用在人们的日常生活与工作之中。信息技术在给人们提供了便利的同时,也给第三方窃取或者篡改信息系统的数据库中的数据提供了契机。因此,如何保证信息系统中数据库信息的安全成为备受关注的问题。该文主要论述了一种混合加密技术,通过对数据库中的信息,以及信息加密密钥的加密方式来提高数据库中数据的安全性,操作简单,安全性高,具有一定的参考使用价值。

参考文献:

[1] 朱勤,骆轶妹,乐嘉锦.数据库加密与密文数据查询技术综述[J].东华大学学报:自然科学版, 2007.33(4):67-71.

[2] Ercan Solak,Rhouma Rhouma,Safya Belghith,Cryptanalysis of A Multi-chaotic Systems Based Image Crypto System[J].Optics Communication,2010,283(26):93-102.

[3] David G L,Wells D L,Kam JB.A Database Encryption System with Subkeys[J].ACM Transactions on Database Systems, 1981,6(2):312-328.

①随机选取大素数[p]和[q],满足[p≠q],且[p≡q≡3mod4]。

②计算[n=pq],以及[φ(n)=(p-1)(q-1)]。

③选取[e],满足[1

④计算[d=e-1modφ(n)]。

⑤将[(n,e)]作为公钥公开,[d]和[φ(n)]作为私钥保存,同时销毁[p]和[q]

一般而言,为了保证RSA加密算法的安全,[n]的长度应该不小于1024bit

(2) 分配级别密钥

随机选取一个整数[K],利用公钥[(n,e)]和单向哈希函数[H]计算级别密钥[Kl]([l=1,...,α]),并进行如下的计算。

①[Kl=HHk,…,Hk,l]。

②利用公钥[(n,e)]对级别密钥[Kl]进行加密:[EKl=Kelmodn]。

③保存[EK1,…EKα]。

2)密钥分配

为数据库分配一个访问级别为[l]的新用户[Ui]时,所进行的操作如下。

①选取与访问级别为[l]相对应的[EKl]文件,计算[Kl=Kdlmodn]。

②随机选取整数[ei],计算[d≡e-1imodφ(n)]。

③计算新注册用户[Ui]的公钥对:[PKi=ei,n],以及[SKi=di,n]。

④使用用户公钥进行级别密钥的加密:[EKi,l=Keilmodn]。

⑤将[PKi]和[EKi,l]保存在数据库中,[SKi]发送给用户。

3)数据加密

当一个已经注册的,访问级别为[l]的[Ui]合法用户在插入一条由关键词[d1,…,dn]、敏感信息[dm]和非敏感信息[M]所组成的记录term(term的表示如图2所示)时,进行如下的操作。

①随机生成一个指定长度的密钥[kterm],使用DES加密算法,对记录term中需要加密的敏感信息[dm]进行加密:[C1=Ekterm(dm)]。

②数据库利用用户所保存的私钥对加密的级别密钥[SKi]进行解密:[Kl=EKdii,lmodn],并且利用得到的级别密钥对随机密钥进行加密得到:[C2=EKlkterm]。

③生成记录term的消息认证码:[MACterm=CktermD'term],其中[D'term=d1,…,dn,C1,C2,l,M]。

④将明文[d1,…,dn,l,M],密文[C1,C2]和消息认证码[MACterm]组成记录[Dterm]存入数据库中,其中[Dterm]的表示如图3所示。

4)数据解密

一个数据库访问级别为[λ]的合法用户[Uj],根据关键词[d]检索数据库中的内容,假设检索的结果总计有[N]个,如下所示。

[Set=d(j)1,…,d(j)nj,l(j),M(j),C(j)1,C(j)2,MAC(j)term∈D(J)term|1≤j≤N,1≤nj≤n,λ≤l(j)]

其中,[Set]中的一条加密记录[Dterm=d1,…,dn,l,M,C1,C2,MACterm∈Set]的解密过程如下所示。

①与数据写入流程类似,利用用户的私钥[SKj]得到级别密钥:[Kλ=EKdjj,λmodn]。

②计算[Dterm]加密时的级别密钥:[Kl=HHk,…,Hkl-λ]。

③计算数据加密的随机密钥:[kterm=DKl(C2)]。

④根据[kterm]计算[Dterm]的消息认证码[MAC'term],如果[MAC'term≠MACterm],则表明数据被非法篡改过,否则使用[kterm]解密密文得到[dm=Ekterm(C1)]。

4 算法安全性分析

本文所设计的混合数据库加密算法具有如下的优越性:

1) 每个合法用户都拥有一个私钥,并且没有这个私钥的用户无法进行数据的存储和读取,从而防止系统管理员窃取数据库中的数据。

2) 用户安全级别和数据安全级别相对应,两个合法用户[Ui]对应安全级别为[i]),[Uj](对应安全级别为[j]),所存储的数据安全级别分别对应为[i,j],且[i

3) 加入了认证码,可以即时发现数据库中被非法用户篡改了的数据。

4) 用户每次登陆时,需要通过私钥解密一次级别密钥,通过RSA非对称密钥保证了密钥的安全性,在注销之前的每一次数据库操作都使用级别密钥来解密数据,用于使用级别密钥对数据的加密是基于效率更高的DES加密算法的,从而了提高了整个数据库加密的效率。

5 总结

如今,信息技术已日益广泛地应用在人们的日常生活与工作之中。信息技术在给人们提供了便利的同时,也给第三方窃取或者篡改信息系统的数据库中的数据提供了契机。因此,如何保证信息系统中数据库信息的安全成为备受关注的问题。该文主要论述了一种混合加密技术,通过对数据库中的信息,以及信息加密密钥的加密方式来提高数据库中数据的安全性,操作简单,安全性高,具有一定的参考使用价值。

参考文献:

[1] 朱勤,骆轶妹,乐嘉锦.数据库加密与密文数据查询技术综述[J].东华大学学报:自然科学版, 2007.33(4):67-71.

[2] Ercan Solak,Rhouma Rhouma,Safya Belghith,Cryptanalysis of A Multi-chaotic Systems Based Image Crypto System[J].Optics Communication,2010,283(26):93-102.

[3] David G L,Wells D L,Kam JB.A Database Encryption System with Subkeys[J].ACM Transactions on Database Systems, 1981,6(2):312-328.

猜你喜欢
安全级别数据加密数据库
基于Packet tracer防火墙的基本配置仿真实验的设计与实现
数据库
大数据时代个人隐私的保护
AES和RSA混合加密技术在网络数据传输中的应用
云数据存储安全关键技术研究
一种基于虚拟专用网及数据加密技术的企业财务会计记录直报系统的实现方案
数据库
数据库
数据库
解除脚本限制导致的163邮箱无法登录