[发明专利]一种基于Hadoop平台的动态数据完整性验证方法有效
申请号: | 201810635131.5 | 申请日: | 2018-06-20 |
公开(公告)号: | CN109063513B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 尚涛;陈星月;庄浩霖;杨英;赵铮;刘建伟 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F21/64 | 分类号: | G06F21/64 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 hadoop 平台 动态 数据 完整性 验证 方法 | ||
1.一种基于Hadoop平台的动态数据完整性验证方法,其特征在于:该方法包含以下步骤:
步骤1:构建系统模型,共包括4个实体,包括Hadoop平台、数据拥有者、数据使用者和审计者;Hadoop平台提供存储服务;数据拥有者将数据存储在Hadoop平台上,并授权给数据使用者使用;数据拥有者授权审计者对文件进行完整性验证,审计者定期对数据进行完整性验证;数据拥有者与数据使用者可随时向审计者请求返回数据完整性验证报告;
步骤2:数据拥有者产生一对密钥,包括私钥与公钥;数据拥有者选择两个安全质数p,q,p=2p'+1,q=2q'+1,p',q'为两个质数;数据拥有者计算N=p*q;设QRN是模N的乘法循环群,数据拥有者选择QRN的一个生成元g,(p,q)为私钥,(g,N)为公钥;
步骤3:数据拥有者初始化数据块索引表,然后使用步骤2产生的公钥(g,N)为每个文件块mi,i∈[1,...,n]计算文件块标签T(ti),计算公式为
Ri,Li,Vi表示数据块索引表中每个文件块mi关联的物理索引、逻辑索引、版本信息,||为字符串连接符号;计算完所有文件块的标签后,数据拥有者将n个文件块与n个文件块标签上传到Hadoop平台,然后,数据拥有者将公钥(g,N)与文件块标签发送给审计者;
步骤4:数据拥有者授权审计者验证文件完整性,并请求返回结果;首先,审计者选择一个随机密钥r和一个随机的群元素s∈ZN\{0},ZN\{0}表示小于N的正整数集合;然后,审计者根据步骤3里得到的公钥(g,N)计算文件挑战信息gs,gs=gsmodN;设挑战值为chal,审计者将挑战值chal=<r,gs>发送给Hadoop平台;
步骤5:Hadoop平台接收步骤4中审计者发送的挑战值chal=<r,gs>后,根据挑战值中的r调用函数f(r,n)得到一串随机数[a1,a2,...an],f(r,n)是一个生成一串随机数的函数,输入r为步骤4中生成挑战值的一部分,输入n为文件数据块的个数;Hadoop平台根据步骤3中得到的公钥(g,N)中的N与步骤4中得到的文件挑战信息gs计算证明值R,Hadoop平台将证明值R发送给审计者;
步骤6:审计者接收到步骤5中Hadoop平台发送的证明值R之后,也调用步骤5中Hadoop平台使用的随机数生成函数f(r,n),得到一串与步骤5中相同的随机数[a1,a2,...an];首先,审计者使用步骤3里得到的公钥(g,N)与所有文件块标签,计算一个中间值P,其中T(ti)为第i个文件块标签,ai为第i个随机数;然后,审计者使用计算出的中间值P、步骤4里生成的挑战值<s,gs>中的s与步骤3中得到的公钥(g,N)中的N计算验证值R',R'=PsmodN;最后,审计者判断计算出的验证值R'是否与步骤5中生成的证明值R相等;如果R'与R相等,输出“成功”,继续执行步骤7,反之,输出“失败”,执行结束;审计者将结果返回给数据拥有者;
步骤7:数据拥有者远程地对Hadoop平台上的数据进行更新;数据更新一共包括四种操作:插入、追加、修改、删除;数据拥有者可以对单个文件块进行这四种操作;数据拥有者执行插入操作更新算法,包括以下步骤:
步骤7.1.1:在数据块索引表中定位插入数据块的位置;
步骤7.1.2:在数据块索引表末尾中增加新的一行;
步骤7.1.3:修改数据块索引表中受增加行影响的数据;
步骤7.1.4:对插入的文件块生成文件块标签;
步骤7.1.5:将新的数据块追加至文件末尾;
步骤7.1.6:准备好更新的信息,包括新的文件块、文件插入位置、文件块标签,然后发送给Hadoop平台;
数据拥有者执行修改操作更新算法,包括以下步骤:
步骤7.3.1:在数据块索引表中定位修改数据块的位置;
步骤7.3.2:在数据块索引表末尾中增加新的一行;
步骤7.3.3:对修改的文件块生成文件块标签;
步骤7.3.4:将新的数据块追加至文件末尾;
步骤7.3.5:准备好更新的信息,包括新的文件块、文件修改位置,然后发送给Hadoop平台;
数据拥有者执行删除操作更新算法,包括以下步骤:
步骤7.4.1:在数据块索引表中定位删除数据块的位置;
步骤7.4.2:在数据块索引表末尾增加一行;
步骤7.4.3:准备好更新的信息,包括数据块删除位置,然后发送给Hadoop平台;
步骤7结束后,跳转到步骤4,重复执行步骤4至步骤6。
2.根据权利要求1所述的一种基于Hadoop平台的动态数据完整性验证方法,其特征在于:所述的追加操作,即数据拥有者在当前文件末尾追加一个新的数据块,数据拥有者执行追加操作更新算法,包括以下步骤:
步骤7.2.1:在数据块索引表中定位追加数据块的位置;
步骤7.2.2:在数据块索引表末尾中增加新的一行;
步骤7.2.3:修改数据块索引表中受增加行影响的数据;
步骤7.2.4:对追加的文件块生成文件块标签;
步骤7.2.5:将新的数据块追加至文件末尾;
步骤7.2.6:准备好更新的信息,包括新的文件块、文件块标签,然后发送给Hadoop平台。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810635131.5/1.html,转载请声明来源钻瓜专利网。