[发明专利]一种服务于数据库同态加密的优化方法有效
申请号: | 201811339890.3 | 申请日: | 2018-11-12 |
公开(公告)号: | CN109522320B | 公开(公告)日: | 2022-08-02 |
发明(设计)人: | 牛自宾;滕海明;李卫明 | 申请(专利权)人: | 杭州弗兰科信息安全科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453;G06F21/62;G06F21/60 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王学强 |
地址: | 310051 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 服务 数据库 同态 加密 优化 方法 | ||
1.一种服务于数据库同态加密的优化方法,其特征在于包含以下步骤:
步骤一:解析查询SQL语句为抽象语法树,每个树形节点是一个item,表达式本身也是一个item,递归遍历语法树,检查每一个item是否支持改写SQL语句在MySQL Server进行密文同态运算,将item类型记为itemΩ,其特征是在表达式中对不同的扩展字段运算,生成执行计划的调用堆栈,采用Split Client/Server模型生成SQL语句的执行计划,具体步骤如下:
在步骤s101,从父查询的根节点开始递归,逐个检查item;
在步骤s102,检查order by,order by要求ORDER字段进行排序,对照select的对象是否支持ORDER字段;
在步骤s103,判断当前item是否为itemΩ,如果是,进入步骤s104,如果否,跳过步骤s104,进行下一个item检查;
步骤s104,将order by这个item放入堆栈,并标记为在Client解密后排序;
步骤s105,检查group by having,group by having要求ORDER字段或ADD字段,检查分组过滤条件,是否与group by having要求的字段匹配,如果having比较的对象是个子查询,递归处理子查询;
在步骤s106,判断当前item是否为itemΩ,如果是,进入步骤s107,如果否,跳过步骤s107,进行下一个item检查;
在步骤s107,将group by having这个item放入堆栈,并标记为在Client解密后分组过滤;
步骤s108,检查where条件,如果where比较的对象是个子查询,递归处理子查询;
在步骤s109,判断当前item是否为itemΩ,如果是,进入步骤s110,如果否,跳过步骤s110,进行下一个item检查;
在步骤s110,将where这个item放入堆栈,并标记为在Client解密后过滤;
在步骤s111,对于查询剩余部分的SQL语句,进行改写,发给MySQL服务执行密文同态运算,采用Split Client/Server模型,生成的执行计划构成一个调用堆栈,栈顶是最内层子查询的执行计划;
步骤二:根据执行计划的调用堆栈,在栈顶改写最内层的子查询,在MySQL Server端执行密文同态运算,在Client端获取结果并解密,弹出栈顶的子查询,在栈顶处理下一个子查询,直到整个堆栈清空,获取最终的查询结果。
2.依据权利要求1所述的一种服务于数据库同态加密的优化方法,其特征在于,步骤一将复杂嵌套SQL语句,使用Split Client/Server模型拆分,一部分改写SQL语句在MySQLServer端进行密文同态运算,另一部分在Client端从MySQL Server获取结果解密后,进行排序过滤处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州弗兰科信息安全科技有限公司,未经杭州弗兰科信息安全科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811339890.3/1.html,转载请声明来源钻瓜专利网。