一种分布式数据库加密的密钥管理方案的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种分布式数据库加密的密钥管理方案的研究
作者:宋长新
来源:《硅谷》2008年第18期
[摘要]解决分布式环境下数据库加密密钥管理问题,并使用改进的MAC算法增强SSL协议的安全性。

[关键词]分布式数据库加密密钥挪移伪报文鉴别码(PMAC) 密钥管理
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0920050-01
密钥管理问题是分布式数据库加密后面临的主要问题,它包括下列内容:数据库中需要加密的数据多,加密密钥数量很大,一般可能是一个密钥加密多个数据,这会增加不安全的可能性;分布式数据库最重要的是要提供数据共享,加密之后的各个子数据库系统之间既要能够实现一定程度的共享,又要保证各自的独立性;密钥的存储和分配不能减弱整个加密系统的安全性在分布式环境下,各个子数据库系统可能是多平台的,而访问代理是为了屏蔽多平台之间的差异,以统一的接口实现数据库访问的常用模式[1-2]。

下面将假设有A,B和C三个分布的子系统,它们之间既要实现一定程度的共享数据,又要保证相互的独立性,探讨如何对它们各自的数据库加密密钥进行有效的管理和控制。

一、子数据库系统的管理方案
(一)密文数据库的简化模型
当密文数据库中实施密钥分配和管理时,可以忽略数据库系统的其他一些特点,将数据库模型简化如下:
数据库代表安全性要求相同,可以用同一数据加密密钥的一类数据,其安全级别记为。

因为本文的加密粒度是字段级的,相应的数据密钥集,这样密文数据库可表示为。

用户集表示系统有m个用户,相应的用户密钥集
;用户可以访问的数据是数据库D的一个子集。

(二)密钥转换表方案
1.每个用户有唯一的用户标志I,访问数据库时提供。

2.矩阵表,并有一传统的加解密算法
,中元素是:
式中,,由数据库管理员实现;是由本地数据库访问代理存储的一个秘密参数。

当且仅当用户能够访问数据类
时,中对应的元素就是数据加密密钥异或之后用加密的结果。

(三)数据库访问说明
用户提供和数据库请求,系统根据得到相应的密文。

然后系统根据查表得,根据的定义可以判定该用户是否能够访问。

如果能够访问,系统根据变换出数据加密密钥,解密密文得到明文结果,把结果返回给用户。

二、对密钥转换表的扩充
为了适应分布式环境下异地用户访问本地据库和本地用户访问异地数据库的需求,对矩的行和列要作出如下扩展[3]:
假定子系统A原始密钥转换表为,本分布式系统中有另外个子系统。

1.扩展列。

对要增加列,每一列的定义如下:
,其中是要访问的子系统的标识符;是用户的用户密钥;是一个经过特定选择的单向列函数。

2.扩展行。

对,要增加行,每一行的定义如下:
式中,。

其中是A的访问代理存储的秘密参数,是要访问的子系统能够访问哪些数据库类是由子系统A本地的数据库管理员来确认的。

三、异地数据库访问过程
以A和B两个子数据库系统为例说明如下,假定A中用户访问子数据库系统B,从A的矩阵中得到密钥参数,通过访问代理变换得到访问B的密钥。

在B中,通过验证,能够类似于B中的一个用户访问数据库。

具体过程如下:
1.用户在子系统A的密钥转换表中取得密钥变换参数
即假定列对应的是子系统B。

2.经过子系统A的访问代理,变换出在子系统B中的密钥。

式中是A子系统访问代理存储秘密参数,是子系统B的标知符。

并且通过秘密通道把发往子系统B。

3.子系统B接收到的请求,返回给A确认信息。

经过双方确认后,B把作为的用户密钥,根据的请求和子系统A在B的密钥转换表对应的行来确定能够访问哪些数据,即为添加一行。

行中元素的定义如下:
式中,为B中为分配的行号;是子系统B访问代理中存储的秘密参数。

4.作为子系统B的一个用户进行数据库访问。

四、安全性分析
(一)本子系统的安全性分析
1.对密文库的密文搜索攻击和已知明文的攻击都依赖于传统加密算法的算法强度,当同一类数据过多的时候可以人为地增加数据类别,引入更多的数据加密密钥,这样可以降低密文的重复度[4]。

2.对密钥转换表的攻击,如果敌手搜索得到密钥表中的数据,要通过密钥表中的数据得到用户密钥或者数据加密密钥,他都要进行已知密文的攻击,这依赖于加密算法的算法强度。

在文献方案中,转换表中存储的只是,若敌手获得了用户密钥,则能够解密获得,可以访问该用户所能够访问的。

这是系统的一个弱点。

由于在本方案中引入了秘密参数r,因此敌手即使得到了;但是没有秘密参数r,他仍无法得到从而弥补了这个缺陷。

通过分析知,该密钥转换表的密钥管理体制对本地数据库访问是安全的。

(二)扩展行和列的安全性分析
1.当子系统A中用户,要访问子系统B时,他通过A的访问代理,利用秘密通道传递给B的一个随机数,作为用户密钥。

如果敌手想冒充
访问子系统B,必须获得子系A的秘密参数,则必须对已知明文进行攻击。

2.假定子系统A的用户已经访问过子系统,敌手窃取了在子系统
B中的用户密钥敌手若想通过和获得,则必须进行已知明文和密文对的攻击。

但是只要实现g的算法强度足够强,敌手一样很难得逞。

3.A中用户没有B的秘密参数,所以,即使能够访问子系统B的数据,他也不能获得B 中的数据密钥。

假定已经访问过B,那么中B中保存有,但是B没有,所以他也不能够推导出。

通过以上的分析可知,该密钥转换表的密钥管理体制对各个子系统数据库之间共享访问是安全的,同时也保证了各自的独立性。

参考文献:
[1]余祥宣、崔永泉、崔国华,分布式环境下数据库加密密钥管理方案.华中科技大学学报(自然科学版),2002,30(4):15-17.
[2]王丽娜,Yoichi Hamazaki,面向对象的分布式环境(OZ)的加密系统. 东北大学学报(自然科学版),1998,19 C2): 187^190.
[3]杨亚平、李伟琴,基于SSL的数据安全传输系统的设计与实现.北京航空航天大学学报,2001,27 (4):469-473.
[4]王张宜、李波、张焕国,Hash函数的安全性研究[J].计算机工程与应用,2005,
41(12):18-19.
作者简介:
宋长新,女,硕士,副教授,青海师范大学计算机系,研究方向:生物信息、数据挖掘。

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

”。

相关文档
最新文档