[发明专利]一种基于多级视图和触发器的数据库透明加解密方法无效
申请号: | 201010169778.7 | 申请日: | 2010-05-12 |
公开(公告)号: | CN102243629A | 公开(公告)日: | 2011-11-16 |
发明(设计)人: | 赵飞 | 申请(专利权)人: | 北京安华金和科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F21/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多级 视图 触发器 数据库 透明 解密 方法 | ||
1.一种基于多级视图和触发器的数据库透明加解密方法,采用在密文表上建立三级视图的方法,包括如下步骤:
(1)在密文表上直接构建第一级视图,除了对表上的所有字段进行检索外,增加了一个伪列CALLTIMES,伪列CALLTIMES中保存一个伪列值AI,所述伪列值AI为每个数据库操作会话,在每次执行本视图的时候,自动生成的一个唯一的值,用于表示一次新的查询操作的开始;
(2)在第一级视图上构建第二级视图,除了对一级视图的所有字段进行检索外,增加一个伪列TROWID,用于获取记录的行标识;在二级视图上构建INSTEADOF类型的触发器,其触发条件为INSERT和UPDATE,在触发器中调用加密函数来完成对敏感数据的加密并保存到密文表相应的加密字段中,在执行UPDATE操作时,触发器通过行标识来对密文表数据进行更新;对于被加密的字段,在第二级视图中调用解密函数来完成解密,调用解密函数时将第一级视图中伪列CALLTIMES的值和密文字段的唯一标识FIELDID(FIELDID的具体值是在对明文数据进行预处理的过程中生成的),作为参数传递给解密函数;
(3)在第二级视图上构建第三级视图,这个视图中包含密文表的所有字段,并且和密文表字段的顺序是一致的,由于在二级视图中完成了对加密字段数据的解密,因此这里将返回二级视图解密后的明文数据。
2.根据权利要求1所述的数据库透明加解密方法,其特征在于:还包括步骤4,将第三级视图的名称定义为用户操作的明文表的名称。
3.一种对明文数据进行预处理的方法,包括:
(1)改变敏感字段数据类型:其过程是先创建一个敏感字段数据的备份表,其结构是{TROWID,FO1,FN1,FO2,FN2,……FOn,FNn},其中TROWID是原表每行数据的行标识,FOi是用于保存敏感字段明文数据,FNi用于保存对明文数据加密后生成的密文数据。原表敏感字段的原始数据先备份到该表中FOi字段上。然后将原表敏感字段的数据全部UPDATE为NULL,然后将该字段的类型修改为VARCHAR2类型,字段长度根据加密算法来确定加密后的数据最大长度来定义;
(2)数据加密:对备份表中的全部明文数据进行加密,加密后的结果保存在对应的FNi字段上。全部成功后,将备份表中的密文数据按照ROWID更新原表敏感字段的全部记录,完成对敏感字段的数据加密,在数据加密期间对敏感字段上的CHECK约束禁用;
(3)将原表改名,为表中的每个敏感字段分配一个唯一的值,这个值称为FIELDID,并且将该FIELDID值保存在表中供使用。
4.一种对建立三级视图和触发器的密文表的查询优化方法,包括判定执行计划、执行全表扫描优化处理、执行跳跃查询优化处理,其特征在于:所述判定执行计划为判定执行计划为全表扫描或为跳跃查询,包括如下步骤:
(1)根据第二级视图中调用解密函数传入的CALLTIMES参数的值,确定是否是一次新查询的开始;如果不是,则进入步骤2;如果是,按照数据库全表扫描方式读取数据的顺序,从表中密文字段读取前N条密文数据,N<=200,并一次性批量的对密文数据进行解密处理,将明文和对应的密文数据保存在数组中;
(2)对于每一条解密函数传入的待解密的密文数据,与步骤1中生成的数组中的密文进行比对,如果找到,则将命中统计值加1,并将数组中对应的明文数据返回;如果没有找到,则对密文数据解密;如果前M次操作累计的命中率超过K%(其中M<=N,K>=80),则判定为全表扫描并开始执行全表扫描优化处理;否则判定为跳跃查询并执行跳跃查询优化处理。
5.根据权利要求4所述的查询优化方法,其特征在于:所述全表扫描优化处理包括:继续按照数据库全表扫描查询方式读取数据的顺序,从表中密文字段批量的读取前N1条密文数据,N1<=2000,并批量的进行解密处理,将明文和对应的密文数据保存在数组中,供比对;对于每一次解密函数传入的待解密的密文数据,直接对数组中的密文进行比对,并返回对应的明文数据;当在数组中没有找到符合的条目时,则继续顺序的批量读取和解密下一批的密文数据,依次重复执行,直到查询执行完毕。
6.根据权利要求4所述的查询优化方法,其特征在于:所述跳跃查询优化处理包括:
(1)判断是否已建立热数据缓存,如果没有建立热数据缓存,则建立热数据缓存;
(2)在热数据缓存中查询是否存在对应的密文数据,如果没有找到,进入步骤3;如果有则直接返回对应的明文结果,并对该记录的“热度值”加1;
(3)对密文数据解密后,将明文和密文成对加入到热数据缓存中,并按照LRU换入换出算法对缓存中的数据进行换入换出的处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安华金和科技有限公司,未经北京安华金和科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010169778.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据库连接控制管理方法及装置
- 下一篇:一种网络虚拟存储设备