[发明专利]基于ADS的外包数据库SQL查询完整性验证系统及方法有效

专利信息
申请号: 201710672216.6 申请日: 2017-08-08
公开(公告)号: CN107451281B 公开(公告)日: 2020-09-29
发明(设计)人: 周福才;王强;玄鹏开;吴淇毓;王红伟 申请(专利权)人: 东北大学
主分类号: G06F16/21 分类号: G06F16/21;G06F16/22;G06F21/62
代理公司: 大连东方专利代理有限责任公司 21212 代理人: 李馨
地址: 110819 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 ads 外包 数据库 sql 查询 完整性 验证 系统 方法
【权利要求书】:

1.基于认证数据结构的外包数据库SQL查询完整性验证系统,其特征在于:包括:

初始化模块,包括密钥生成模块,由数据拥有者执行,用于生成私钥和公钥;系统初始化模块,由数据拥有者执行,生成认证数据结构和摘要;

证据生成模块,用于客户端向服务器发送查询请求时,根据服务器接收客户端发送的查询请求,计算查询结果及证据,返回给客户端;

完整性验证模块,由客户端执行,利用查询结果及证据验证查询结果的完整性;

其中,所述证据生成过程为:计算单维范围查询及证据、计算集合交集及证据、计算多维范围查询及证据、计算连接查询及证据、或计算函数查询及证据;

计算单维范围查询及证据步骤如下:

步骤1:读取客户端的单维范围查询语句,连接数据库,接受客户端的查询请求;

步骤2:对认证跳表ASL调用RangeCover,得到对应的结果result1;

步骤3:返回对应的的根节点值,根节点值中包含acc(Ci),得到结果对应的证据proof1为acc(Ci);

acc(Ci)为累加值,随机选取陷门累加器对中的元素进行累加,输出属于群的元素;令χ为集合,χ中的元素均在中,用acc(χ)表示χ的累加值,其定义如下:

步骤4:将查询的到的结果result1、证据proof1返回给客户端;

计算集合交集及证据步骤如下:

步骤1:首先若集合A为空,则交集查询结果I为空,计算出证据digestI,W1,W2,Q1,Q2;

步骤2:集合A不为空,计算出A和B的交集I,计算集合A和交集I的差集A_I,计算集合B和交集I的差集B_I;

步骤3:使用公钥pubs_g1计算集合A的累加值accA,计算集合B的累加值accB;

步骤4:对于集合A_I中的元素,计算得到每个元素的逆元,调用NTL库中的BuildFromRoots函数,得到逆元形成的多项式系数polyA;

步骤5:使用公钥pubs_g2和polyA计算出集合A_I的累加值W1;

步骤6:同步骤4,计算关于集合B_I的多项式系数polyB;

步骤7:同步骤5,计算关于集合B_I的累加值W2;

步骤8:使用NTL库中的XGCD函数,计算polyA和polyB的最大公约数polyD,得到polyS和polyT,满足polyA*polyS+polyB*polyT=polyD;

步骤9:根据公钥pubs_g1和polyS计算出证据Q1,Q1是使用生成元,计算的累加值;

步骤10:同步骤9,根据公钥pubs_g1和polyT计算出证据Q2;

步骤11:调用compute_digest_pub函数,使用公钥pubs_g1计算集合I累加值digestI,再用公钥pubas_g1计算集合I的累加值w_extra;

步骤12:最终,返回结果为I,返回证据有accA,accB,W1,W2,Q1,Q2,digestI和w_extra;

计算多维范围查询及证据步骤如下:

步骤1:读取客户端的多维范围查询请求,连接服务器,接受客户端的查询请求,将其拆分为多个单维范围查询;

步骤2:对认证跳表ASL调用RangeCover,如果RangeCover查询返回节点的集合为Nw={n1,...},得到每一个单维范围查询对应的结果Rw和Rz,则:

步骤3:计算证据和

步骤4:对多个结果进行集合交集运算

步骤5:将结果R*、证据proof2、proof3返回给客户端;

计算连接查询及证据步骤如下:

步骤1:读取客户端的连接查询请求,连接数据库,接受客户端的查询请求;

步骤2:对认证跳表ASL调用RangeCover,得到每一个数据库中的数据表对应的结果Ci和Cj;

步骤3:返回对应的的根节点值,根节点值中包含acc(Ci),得到结果对应的证据proof4为acc(Ci);返回对应的的根节点值,根节点值中包含acc(Cj),得到结果对应的证据proof5为acc(Cj);

步骤4:对多个结果进行集合交集运算C*=Ci∩Cj;

步骤5:找到包含结果中元素的每一行数据;

步骤6:将结果C*、证据proof4、proof5返回给客户端;

计算函数查询及证据步骤如下:

函数查询为FUNC={SUM,COUNT,AVG,MAX,MIN},其中计数查询可转化为2个求和查询相减,平均值查询可转化为求和查询与计数查询相除,最大值最小值查询可转化为单维范围查询;

计算求和查询及证据:

步骤1:读取客户端的求和查询请求,连接数据库,接受客户端的查询请求,查询集合S={x0,x1,...,xn}中所有元素的和,集合中元素的累加值为:

步骤2:计算多项式系数以及

步骤3:计算集合S中的元素的和为

步骤4:根据pk中的来计算证据w1,w2,其中

计算计数查询及证据:

步骤1:读取客户端的计数查询请求,连接数据库,接受客户端的查询请求,原始表格中需要计数的是第j列;

步骤2:在第j列之后增加一列j',然后将第j列每一行(i)的元素加1并赋值给第j'列,即xij'=xij+1;

步骤3:分别对第j和j'列求和,分别表示为SUM(j)和SUM(j'),以及证据a0、a1、a′0、a′1

步骤4:计算第j列上的计数查询,即COUNT(j)=SUM(j')-SUM(j);

计算平均值查询及证据:

步骤1:读取客户端的平均值查询请求,连接数据库,接受客户端的查询请求,需要查询第j列的平均值;

步骤2:在第j列之后增加一列j',然后将第j列每一行(i)的元素加1并赋值给第j'列,即xij'=xij+1;

步骤3:分别对第j和j'列求和,分别表示为SUM(j)和SUM(j'),以及证据a0、a1、a′0、a′1

步骤4:计算第j列上的计数查询,即COUNT(j)=SUM(j')-SUM(j);

步骤5:通过求和查询的结果除以计数查询的结果可以得到第j列的平均值,即AVG(j)=SUM(j)/COUNT(j);

计算最大值查询及证据:

步骤1:向服务器查询第j列的最大值Jmax;

步骤2:服务器将最大值查询转换为单维范围查询,求第j列中所有大于等于Jmax的值即为最大值的结果result2;

步骤3:服务器计算出单维范围查询的证据proof6为acc(Cj);

计算最小值查询及证据:

步骤1:向服务器查询第j列的最小值Jmin;

步骤2:服务器将最小值查询转换为单维范围查询,求第j列中所有小于等于Jmin的值即为最小值的结果result3;

步骤3:服务器计算出单维范围查询的证据proof7为acc(Cj)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710672216.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top