说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210947370.0 (22)申请日 2022.08.09 (71)申请人 深圳前海新心数字科技有限公司 地址 518000 广东省深圳市前海合作区前 湾一路1号A栋201室 (72)发明人 谈扬  (74)专利代理 机构 深圳市百瑞专利商标事务所 (普通合伙) 44240 专利代理师 金辉 (51)Int.Cl. G06F 21/62(2013.01) G06F 21/60(2013.01) (54)发明名称 一种基于同态加密的隐匿SQ L查询方法 (57)摘要 本发明提供一种基于同态加密的隐匿SQL查 询方法, 该方法在C\S的框架上 实现; 包括生成同 态加密公钥、 私钥的步骤, 初始化查询列名以及 查询值的步骤; 加密查询值的步骤; 将公钥、 初始 化后的查询列名以及加密后的查询值发送给服 务器的步骤; 服务器将本地数据库表所有记录的 编号对应查询列名列数据与加密后的查询值做 密文减法以及密文常数乘法, 生成密文的步骤; 服务器将密文集合返回客户端; 客户端解密密 文, 生成满足查询条件的数据库表记录的编号 (id)集合({id}); 将查询数据库表记 录的编号集 合发送给服务器; 服务器 返回数据库表记录的编 号集合对应的数据集合到客户端的步骤。 本发明 使用同态加密算法加密查询条件以及密文运算, 保护SQL查询条件的隐私。 权利要求书2页 说明书5页 附图1页 CN 115455463 A 2022.12.09 CN 115455463 A 1.一种基于同态加密的隐匿SQL查询方法, 该方法在服务器/客户端的框架上实现; 其 特征在于: 包括以下步骤: 步骤1、 客户端在本地生成同态加密公钥(pk)、 私钥(sk), 初始化查询列名(col)以及查 询值(y); 步骤2、 客户端在本地使用公钥(pk)加密查询值(y),形成加密后的查询值(Encryptpk (y)); 步骤3、 客户端将公钥(pk)、 初始化后的查询列名(col)以及加密后的查询值(Encryptpk (y))发送给服 务器; 步骤4、 服务器将本地数据库表所有记录的编号(id)对应查询列名(col)列数据与加密 后的查询值(Encryptpk(y))做密文减法以及 密文常数乘法, 生成密文(Cid); 步骤5、 服 务器将记录的编号(id)、 密文(Cid)集合返回客户端; 步骤6、 客户端 解密密文(Cid)生成明文(mid), 判断记 录的编号(id)对应的记 录是否满足 查询条件; 步骤7, 客户端将所有满足查询条件的数据库表记录的编号(id)以及部分不满足查询 条件的数据库表 记录的编号(id)作为干扰打包成集 合({id}), 发送给服 务器; 步骤8、 服 务器返回集 合({id})对应的数据库数据记录集 合到客户端。 2.根据权利要求1所述的基于 同态加密的隐匿SQL查询方法, 其特征在于: 步骤1中, 客 户端选取同态加密算法及参数, 生成公钥(pk)私钥(sk)。 3.根据权利要求1所述的基于 同态加密的隐匿SQL查询方法, 其特征在于: 步骤1中, 如 果查询条件是i n或者betwe en, 那么查询值是一个数组(y=[y1, y2, …yk])。 4.根据权利要求1所述的基于 同态加密的隐匿SQL查询方法, 其特征在于: 步骤2中, 通 过查询条件确定查询值, 如查询条件为where  t_host.label=1, 那么查询值y=1,加密查 询值(Encryptpk(y)=Encryptpk(1)); 如果查询条件为between, in; 那么查询值是一个数组 (y=[y1,y2, …,yk]), 数组的值都需要加密, 加密数组值(Encryptpk([y1,y2, …,yk])。 5.根据权利要求1所述的基于同态加密的隐匿SQL查询方法, 其特征在于: 所述的步骤4 中, 服务器使用客户端发送过来的公钥(pk), 加密本地数据库表查询列名(col)的值, 数据 库表某条记录的编号(id), 查询值(x), 那么服务器计 算Encpk(x),同时与客户端发送过来的 加密查询条件值做密文减法以及密文常数乘法生成加密密文Cid=(Encpk(x)‑Encpk(y))* rand; 其中rand为随机值, rand可以防止客户端解密后直接推导x值。 6.根据权利要求1所述的基于同态加密的隐匿SQL查询方法, 其特征在于: 所述的步骤6 中, 客户端解密密文(Cid), 得到明文(mid), 服务器根据查询条件, 以及明文(mid)与0的大小 关系判断数据库表 某条记录的编号(id)对应的库表 记录是否是需要查询的; 如果查询条件是x<y, 那么解密后明文(mid)的值小于 0; 如果查询条件是x>y,那么解密后明文(mid)的值大于 0; 如果查询条件是x=y, 那么解密后明文(mid)的值等于0; 如果查询 条件是between, y1<=x<y2那么解密后明文(mid)的值会有两个值mid=(m1, m2), 需满足m1>0, m2< 0; 如果查询条件是in, 那么解密后明文(mid)的值会有多个值mid=(m1,m2,m3, …,mj),需 满足其中某个等于 0。权 利 要 求 书 1/2 页 2 CN 115455463 A 27.根据权利要求1所述的基于同态加密的隐匿SQL查询方法, 其特征在于: 所述的步骤7 中, 将查询数据库表记录的编号(id)集合({id})发送给服务器时, 查询数据库表记录的编 号(id)集合({id})中包括部分不满足查询条件查询数据库表记录的编号(id), 这部分(id) 用来防止服 务端通过查询值反推客户端查询条件。权 利 要 求 书 2/2 页 3 CN 115455463 A 3

PDF文档 专利 一种基于同态加密的隐匿SQL查询方法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于同态加密的隐匿SQL查询方法 第 1 页 专利 一种基于同态加密的隐匿SQL查询方法 第 2 页 专利 一种基于同态加密的隐匿SQL查询方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:34:39上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。