应用于数据库列加密的密钥管理方法和装置的制作方法

文档序号:6370936阅读:243来源:国知局
专利名称:应用于数据库列加密的密钥管理方法和装置的制作方法
技术领域
本发明涉及数据库安全,更具体地,本发明涉及在采用数据库外核层加密方式下的加密数据库列的密钥管理的方法和装置。
背景技术
传统的列级加密粒度的加密数据库的密钥管理往往采用二级密钥管理,第一级密钥作为主密钥,主要负责对工作密钥的保护,二级密钥作为工作密钥,负责对数据库中敏感数据的保护。这种密钥管理模式下,工作密钥经主密钥加密后存储在工作密钥表中,当需要对加密列内的密文数据进行解密时,才使用主密钥对工作密钥解密还原出明文,再用工作密钥对加密列的密文数据进行解密操作。这种方式存在一些问题
I.大量密文工作密钥的存储不但占用了存储空间,而且给密钥管理带来极大不便,密文工作密钥一旦丢失或损坏,将导致密文数据库中敏感数据的不可用。2.主密钥安全受限。主密钥是加密系统的关键,主密钥的安全性很大程度上决定了系统的安全性。主密钥原则上是以用户为单位进行分配,因此对主密钥的存储和保护是至关重要的。因此,需要一种在列级加密粒度下,对数据库列内数据进行加密的既高效安全可靠,又可对授权用户进行合理密钥共享的密钥管理体系。

发明内容
针对上述的加密数据库列时密钥管理中主密钥安全保护困难,工作密钥存储空间受限,以及密钥信息对授权用户难以进行合理共享的问题,本发明提出一种应用于数据库列加密的密钥管理方法和装置。本发明主要解决用户主密钥的安全产生、存储和分发,解决大量工作密钥存储带来的安全隐患,并实现工作密钥合理的向授权用户进行共享等问题。本发明的第一方面提供了一种应用于数据库列加密的密钥管理装置,包括加解密模块(1),用于生成主密钥对,用于生成表密钥,用于生成用户PIN码;密钥字典模块(2),主要存放对数据库关系表所有列有操作权限的用户及相关信息,称为表拥有者用户,用于为每个数据库用户建立和维护加密列,存储访问权限信息,存储表拥有者用户的公钥,存储由表拥有者用户公钥加密后的表密钥;交互字典模块(3),主要存放对数据库关系表部分列有授权操作权限的用户信息,称为授权用户,用于存储授权用户的信息,授权用户的公钥,存储由授权用户公钥加密后的表密钥,以及授权操作的加密列的相关信息。授权的用户可以对关系表中授权的加密列进行所授权限类型的操作,不能对关系表中未授权的加密列进行操作。本发明的第二方面提供了一种应用于数据库列加密的密钥管理方法,包括三级密钥体系,第一级密钥为主密钥对,第二级密钥为表密钥,第三级密钥为工作密钥,数据由三级密钥层层加密后存储,其具体操作步骤如下2. I)密钥管理装置的加解密模块(I)生成主密钥对,包括了表拥有者用户的主密钥对和授权用户的主密钥对,主密钥对由公钥和私钥组成;2. 2)表拥有者的公钥存储在密钥字典(2)中,授权用户的公钥存储在交互字典(3)中;2. 3)用户的私钥,即主密钥存储在用户物理令牌USBKey或者IC卡中,用来对表密钥进行解密;2. 4)密钥管理装置的加解密模块(I)生成表密钥,每个数据库表对应一个表密钥;2. 5)主密钥对中的公钥对表密钥进行加密操作,表密钥是作为工作密钥生成的必备参数; 2. 6)使用表拥有者用户公钥加密的表密钥存储在密钥字典(2)中,使用授权用户公钥加密的表密钥存储在交互字典(3)中;2. 7)表密钥和具体参数根据工作密钥生成函数动态生成工作密钥;2. 8)工作密钥对数据库列项进行加密操作。所述的主密钥对由加解密模块(I)生成,负责保护表密钥,对表密钥进行加解密操作,由公钥和私钥组成,其中的公钥用于加密表密钥,其中的私钥作为用户的主密钥,存储在用户的物理令牌中,用于解密表密钥。所述表密钥是在用户对明文关系表进行加密时由加解密模块(I)产生的对称密钥,负责生成工作密钥,一个表密钥对应一个用户数据表,对关系表加密结束后,表密钥经过表拥有者用户主密钥对中的公钥加密后存储在密钥字典中,再次使用时,由主密钥对进行解密恢复明文表密钥,表密钥作为生成工作密钥的函数中的一个重要参数,表密钥由密钥管理装置发起定期更新。所述工作密钥是数据项加密密钥,由表密钥和函数动态生成,一个工作密钥对应一个加密列,负责保护数据表的每一列,对数据表列进行加解密。本发明采用三级密钥管理方法,主密钥对,表密钥和工作密钥。数据库列由工作密钥加密,工作密钥是由表密钥和相关函数动态生成的,表密钥是由加解密模块生成的,并由关系表拥有者用户的主密钥对中的公钥加密后存储在密钥管理设备中,用户主密钥对是由加解密模块生成的,其中公钥存储在密钥管理设备中,私钥存储在用户自己的物理令牌中。本发明解决了数据库列加密的密钥管理问题,主要有以下优点I.采用三级密钥管理,增强了数据库安全性;2.通过少量表密钥来管理大量的工作密钥;3.工作密钥动态生成,不需要存储,节省了存储空间。


图I根据本发明实施例的密钥管理装置结构图;图2根据本发明实施例的关系表拥有者实体、关系表授权者实体、密文关系表实体和加密列实体的关系图;图3根据本发明的密钥管理方法示意图4根据本发明实施例的密钥管理方法对数据库访问的工作流程图。
具体实施例方式下面结合附图对本发明进行详细描述说明。描述中给出了许多具体细节,以确保本发明实例的透彻理解。图I是根据本发明实施例的密钥管理装置结构图。如图I所示,根据本发明实施例的密钥管理装置包括加解密模块I、密钥字典2和交互字典3。加解密模块I生成主密钥对,主密钥对由公钥和私钥组成,其中的公钥存储在密钥管理装置的密钥字典2中,用于加密表密钥,其中的私钥作为用户的主密钥,通过读卡设备写入用户物理令牌(Ukey或者IC卡)中,用于解密表密钥。该物理令牌由关系表拥有者持有,关系表拥有者对关系表所有加密列具有读与权限,关系表的所有者可以包含多个人, 即多人分别持有含各自主密钥对中的私钥的物理令牌,当其中一个关系表所有者对加密列进行写操作时,其他关系表所有者不能同时进行写操作。加解密模块I生成表密钥。加解密模块I产生PIN码,并通过读卡设备写入用户持有的物理令牌中。密钥字典模块2为本地数据库系统,主要存放对数据库关系表所有列有操作权限的用户及相关信息,本发明中称为表拥有者用户,用于为每个数据库用户建立和维护加密列,存储访问权限等信息,存储表拥有者用户的公钥,存储由表拥有者用户公钥加密后的表密钥。密钥字典2的格式一般包含两张关系型数据表。第一张表主要存放新生成的密文表名称、密文表密钥、密文表所有者的公钥等信息,表I密钥字典中密文表信息。表I密文表信息
一列名数据类m长度说明
_TableID__int__4__密文表标识,七关键字
TableOwnerIDvarchar8关系表拥有者标识,主关键字
TableOwnerNamevarchar16关系表拥有者名称
DatabaseNamevachar16数据 《名CryptTableNamevarchar16密文表的名称
OriTableNamevarchar16原明文表名
CryptTableKeyvarchar16密文表密钥
PINchar16表拥有者物理令牌的授权
PIN码
—PUkey丨 char 丨 16表拥有者的公钥表I 米用联合主键(TableID, TableOwnerID)DatabaseName为密文关系表所在数据库的名称;CryptTableName为密文关系表的表名;OriTableName为加密改造前的明文关系表的表名;CyptTableKey为关系表所有者的公钥加密了的表密钥;
PIN为密文关系表所有者登录系统使用的物理令牌的授权码PIN ;PUkey为密文关系表拥有者的公钥。第二张表主要存放加密列名称、列初始化向量、列加密算法、密钥长度等信息,表2密钥字典中加密列信息。表2加密列信息
权利要求
1.应用于数据库列加密的密钥管理装置,其特征在于,包括 加解密模块(I ),用于生成主密钥对,用于生成表密钥,用于生成用户PIN码; 密钥字典模块(2),主要存放对数据库关系表所有列有操作权限的用户及相关信息,称为表拥有者用户,用于为每个数据库用户建立和维护加密列,存储访问权限信息,存储表拥有者用户的公钥,存储由表拥有者用户公钥加密后的表密钥; 交互字典模块(3),主要存放对数据库关系表部分列有授权操作权限的用户信息,称为授权用户,用于存储授权用户的信息,授权用户的公钥,存储由授权用户公钥加密后的表密钥,以及授权操作的加密列的相关信息。
2.应用于数据库列加密的密钥管理方法,其特征在于,包括三级密钥体系,第一级密钥为主密钥对,第二级密钥为表密钥,第三级密钥为工作密钥,数据由三级密钥层层加密后存储,其具体操作步骤如下 2. I)密钥管理装置的加解密模块(I)生成主密钥对,包括了表拥有者用户的主密钥对和授权用户的主密钥对,主密钥对由公钥和私钥组成; 2. 2)表拥有者的公钥存储在密钥字典(2)中,授权用户的公钥存储在交互字典(3)中; 2. 3)用户的私钥,即主密钥存储在用户物理令牌USBKey或者IC卡中,用来对表密钥进行解密; 2. 4)密钥管理装置的加解密模块(I)生成表密钥,每个数据库表对应一个表密钥; 2. 5)主密钥对中的公钥对表密钥进行加密操作,表密钥是作为工作密钥生成的必备参数; 2. 6)使用表拥有者用户公钥加密的表密钥存储在密钥字典(2)中,使用授权用户公钥加密的表密钥存储在交互字典(3)中; 2.7)表密钥和具体参数根据工作密钥生成函数动态生成工作密钥; 2.8)工作密钥对数据库列项进行加密操作。
3.根据权利要求2所述的应用于数据库列加密的密钥管理方法,其特征在于,所述的主密钥对由加解密模块(I)生成,负责保护表密钥,对表密钥进行加解密操作,由公钥和私钥组成,其中的公钥用于加密表密钥,其中的私钥作为用户的主密钥,存储在用户的物理令牌中,用于解密表密钥。
4.根据权利要求2所述的应用于数据库列加密的密钥管理方法,其特征在于,所述的表密钥是在用户对明文关系表进行加密时由加解密模块(I)产生的对称密钥,负责生成工作密钥,一个表密钥对应一个用户数据表,对关系表加密结束后,表密钥经过表拥有者用户主密钥对中的公钥加密后存储在密钥字典中,再次使用时,由主密钥对进行解密恢复明文表密钥,表密钥作为生成工作密钥的函数中的一个重要参数,表密钥由密钥管理装置发起定期更新。
5.根据权利要求2所述的应用于数据库列加密的密钥管理方法,其特征在于,所述工作密钥是数据项加密密钥,由表密钥和函数动态生成,一个工作密钥对应一个加密列,负责保护数据表的每一列,对数据表列进行加解密。
全文摘要
本发明提供一种应用于数据库列加密的密钥管理方法和装置。本发明方法包括:三级密钥体系,第一级密钥为主密钥对,第二级密钥为表密钥,第三级密钥为工作密钥,数据由三级密钥层层加密后存储。本发明密钥管理装置包括加解密模块、密钥字典、交互字典,实现对数据的加解密工作。本发明减少了大量工作密钥存储所带来的系统资源消耗,并降低密钥静态存储所带来的信息泄露风险。密钥管理的效率和安全性得到了优化和提升。本发明解决了数据库列加密的密钥管理问题,主要有以下优点1.采用三级密钥管理,增强了数据库安全性;2.通过少量表密钥来管理大量的工作密钥;3.工作密钥动态生成,不需要存储,节省了存储空间。
文档编号G06F17/30GK102752109SQ20121018219
公开日2012年10月24日 申请日期2012年6月5日 优先权日2012年6月5日
发明者任学强, 朱志祥, 李安颖, 王佩, 王茜, 葛新, 许成鹏, 赵伟 申请人:西安未来国际信息股份有限公司, 西安邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1