哈希游戏- 哈希游戏平台- 哈希游戏官方网站
本发明涉及一种云环境下基于高效哈希算法的数据质量校验方法,是针对现有同类方法的数据在删除后通过云端恢复效果较差,特别较难精确对数据的异常进行修复的技术问题。该方法在数据可恢复证明机制的引导下,并基于哈希函数的数据质量校验算法,将数据分解为n个相互冗余的子函数,子函数作为数据块,数据块分别交给n个云端;其要点是所述数据需要更新时,采用以数据块为颗粒度,数据分块计算和增量更新的方法来应对解决频繁更新数据时存在数据分块证据过多的问题,然后采用马尔科夫哈希树对同一组数据块的哈希码进行合并;最后,基于“挑
(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 CN 113919001 A (43)申请公布日 2022.01.11 (21)申请号 8.9 (22)申请日 2021.09.07 (71)申请人 南方电网大数据服务有限公司 地址 510620 广东省广州市天河区体育东 路108号创展中心西座1506-10单元 (72)发明人 张志亮赵永国杨荣霞梁永文 (74)专利代理机构 宁波奥凯专利事务所(普通 合伙) 33227 代理人 姜瑞祥 (51)Int.Cl. G06F 21/64 (2013.01) G06F 21/62 (2013.01) 权利要求书2页 说明书4页 附图1页 (54)发明名称 云环境下基于高效哈希算法的数据质量校 验方法 (57)摘要 本发明涉及一种云环境下基于高效哈希算 法的数据质量校验方法,是针对现有同类方法的 数据在删除后通过云端恢复效果较差,特别较难 精确对数据的异常进行修复的技术问题。该方法 在数据可恢复证明机制的引导下,并基于哈希函 数的数据质量校验算法,将数据分解为n个相互 冗余的子函数,子函数作为数据块,数据块分别 交给n个云端;其要点是所述数据需要更新时,采 用以数据块为颗粒度,数据分块计算和增量更新 的方法来应对解决频繁更新数据时存在数据分 块证据过多的问题,然后采用马尔科夫哈希树对 A 同一组数据块的哈希码进行合并;最后,基于“挑 1 战”‑“应答”协议模式采用哈希码一致性的验证 0 0 9 方式周期性实现数据完整性验证,修复数据块。 1 9 3 1 1 N C CN 113919001 A 权利要求书 1/2页 1.一种云环境下基于高效哈希算法的数据质量校验方法,该方法在数据可恢复证明机 制的引导下,并基于哈希函数的数据质量校验算法,将数据分解为n个相互冗余的子函数, 子函数作为数据块,使得任意取k数据块都能安全恢复数据;并将n个数据块分别交给n个云 端;其特征在于所述数据需要更新时,采用以数据块为颗粒度,数据分块计算和增量更新的 方法来应对解决频繁更新数据时存在数据分块证据过多的问题,然后采用马尔科夫哈希树 对同一组数据块的哈希码进行合并;最后,基于“挑战”‑“应答”协议模式采用哈希码一致性 的验证方式周期性实现数据完整性验证,修复数据块。 2.根据权利要求1所述的云环境下基于高效哈希算法的数据质量校验方法,其特征在 于该方法的具体步骤如下:步骤一,建立阶段,对数据进行分块处理,采用哈希函数对每一 个数据块进行赋值,马尔科夫哈希树对同一组数据块的哈希码进行合并;步骤二,挑战阶 段,用户周期性运行挑战生成算法并生成挑战信息,并发给云端服务器开始数据完整性验 证;步骤三,保存阶段,云端服务器收到挑战信息后进行相应的计算操作,然后返回计算的 数值给用户,用户根据返回的信息运行验证算法,判断数据是否完整保存在云端服务器中。 3.根据权利要求2所述的云环境下基于高效哈希算法的数据质量校验方法,其特征在 于所述步骤一中建立阶段的步骤具体如下:1、对数据进行固定分块处理,该算法将数据分 解为n个相互冗余的数据块,使得任意取k个数据块都能安全恢复数据;得到n块数据,采用 哈希函数对每一个数据块生成校验值;2、传输,将数据块编号和每个数据块的哈希值同步 到云端,并将n个数据块分别交给n个云端;3、本地同步云端拿到的数据块编号和哈希码,结 合数据编码,采用马尔科夫哈希树对同一组数据块的哈希值进行合并;4、一旦数据发生更 新,用户仅需要上传数据更新的数据块;如果用户删除某一个的数据块,用户仅仅需要将删 除数据块的证据发送到云端,云端保存对这些块删除的证据,并执行删除处理;如果用户在 增加/减少过程中会造成数据块较多证据量的问题,因此假设原数据为F,F’为更新后的数 据,ΔF为更新后的数据;5、用户发送差异数据块ΔF前对会对云端发送所有的数据块哈希 值信息,云端收到之后会采用过滤器对云端自身的数据块哈希值进行对比分析,以此判断 是否存在差异,并把差异信息记录下来;6、发送信息给用户请求用户发送差异数据块ΔF, 用户每次更新的时候只需要上ΔF,将ΔF存储到n+1个云端上,也就是有别于之前的文件存 储位置,用户使用各自的F和ΔF进行验证,如果验证通过采用F和ΔF来计算出F’;7、差异数 据块信息和原来数据块信息进行重组,完成增量同步。 4.根据权利要求2所述的云环境下基于高效哈希算法的数据质量校验方法,其特征在 于所述步骤一中建立阶段的数据块通过哈希码进行合并时,由于这里的同一组通常由k个 数据块组成,如果任意取k个数据就能安全恢复数据,k个数据块就算是同一组,本地记录每 一组数据块的哈希值。 5.根据权利要求2所述的云环境下基于高效哈希算法的数据质量校验方法,其特征在 于所述步骤二中,由于将数据分解为n个相互冗余的数据块,使得任意取k个数据块都能安 全恢复数据,因此随机采用任意k个数据块计算挑战值c,然后将挑战值c通过检测命令发送 到云端服务器,开始数据完整性验证。 6.根据权利要求2所述的云环境下基于高效哈希算法的数据质量校验方法,其特征在 于所述步骤三中保存阶段的具体步骤如下: 1、云端服务器收到请求后,采用马尔科夫哈希树对n个数据块中进行随意k个数据块哈 2 2 CN 113919001 A 权利要求书 2/2页 希值的组合,并生成多组数据块的哈希值,假设得到m组哈希值r; 2、并将m个r值返回到客户端,客户根据m个r值进行数值查找,以此来验证数据的完整 性;如果查找到c=r,认为数据时完整的,否则,数据不完整; 如果存在数据不完整的情况,客户重新随机生成一个挑战值c,然后再发送给云端;云 端收到请求后,采用马尔科夫哈希树对n个数据块中进行随意k个数据块哈希值的组合,并 生成多组数据块的哈希值;假设得到m组哈希值r,并将m个r值返回到客户端,客户根据m个r 值进行数值查找,如果找不到c=r的情况,继续执行步骤三,直到遍历完毕;再遍历完毕后, 如果找不到c=r的情况,说明数据无法通过现有云端的数据块进行恢复;相反,在若干次遍 历过程中,能够找到c=r的情况,说明数据块虽然由损坏,但是数据还是能恢复的;在这种 情况下,客户端告知云端该次进行校验的数据块,并对异常数据块进行更新,精准定位到错 误位置,修复数据块。 3 3 CN 113919001 A 说明书 1/4页 云环境下基于高效哈希算法的数据质量校验方法 技术领域 [0001] 本发明涉及云数据的处理,是一种云环境下基于高效哈希算法的数据质量校验方 法。 背景技术 [0002] 云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数 据的计算、储存、处理和共享的一种托管技术,是一种基于云计算商业模式应用的网络技 术、信息技术、整合技术、管理平台技术、应用技术等的总称,组成资源池,按需所用,灵活便 利。最简单的云计算技术在网络服务中已经随处可见,例如搜寻引擎、网络信箱等,使用者 只要输入简单指令即能得到大量信息,未来如手机、GPS等装置透过云计算技术,做资料搜 寻和分析的功能。另外,数据持有性(Provable Data Possession,PDP)机制往往用来检测 大数据的完整性,而数据可恢复证明(Proofs of Retrievability,POR)机制往往用来检测 重要数据的完整性,POR机制不仅能够判断数据是否已经损坏,而且通过纠编码来恢复损坏 的数据,保证数据的质量。现有一些数据质量校验基于哈希比对方法,如中国专利文献中披 露的申请号4.X,申请公布日2019.05.28,发明名称“一种基于数据流和哈希比 对的文件上传方法及系统”;另一些云端数据采用了完整性检测方法进行数据分析,如中国 专利文献中披露的申请号4.3,申请公布日2019.01.11,发明名称“一种基于区 块链的云端数据完整性检测方法及系统”。但上述方法和同类方法的数据删除后较难通过 云端恢复,校验方法的科学性较差,较难验证数据的完整性,较难有效应对云端欺骗的行 为,较难精确对数据的异常进行修复。 发明内容 [0003] 为克服上述不足,本发明的目的是向本领域提供一种云环境下基于高效哈希算法 的数据质量校验方法,使其主要解决现有同类方法的数据在删除后较难通过云端恢复,校 验方法的科学性较差,较难验证数据的完整性,较难有效应对云端欺骗的行为,较难精确对 数据的异常进行修复的技术问题。其目的是通过如下技术方案实现的。 [0004] 一种云环境下基于高效哈希算法的数据质量校验方法,该方法在数据可恢复证明 机制的引导下,并基于哈希函数的数据质量校验算法,将数据分解为n个相互冗余的子函 数,子函数作为数据块,使得任意取k数据块都能安全恢复数据;并将n个数据块分别交给n 个云端;其特征在于所述数据需要更新时,采用以数据块为颗粒度,数据分块计算和增量更 新的方法来应对解决频繁更新数据时存在数据分块证据过多的问题,然后采用马尔科夫哈 希树对同一组数据块的哈希码进行合并;最后,基于“挑战”‑“应答”协议模式采用哈希码一 致性的验证方式周期性实现数据完整性验证,修复数据块。即该方法在数据可恢复证明机 制的引导下,针对数据质量在云端校验的时候存在的计算和通信开销过大的问题,提出一 种基于哈希函数的数据质量校验算法;同时,通过分块计算和增量更新为基础的哈希算法 有效应对数据频繁更新,证据更新开销过大,降低数据完整性验证存在的计算与通信开销 4 4 CN 113919001 A 说明书 2/4页 过大的问题。除此之外,一旦发现数据损坏,任意k个数据块都能恢复数据本身,从而该方法 能够有效保护云端数据的完整性状态检查和数据恢复。从数据安全的角度看,云存储服务 器是不完全可信的,由于技术或者云存储自身的原因优会存在不小心擦除存储数据或者删 除不常用数据,私自减少备份数据数量,从而导致做出对数据完整性有害的行为。用户为了 保证其在云端存储数据的完整性,通常采用可靠的数据可恢复证明机制来校验数据的完整 性,从而保证云端数据的数据较量。 [0005] 该方法的具体步骤如下:步骤一,建立阶段,对数据进行分块处理,采用哈希函数 对每一个数据块进行赋值,马尔科夫哈希树对同一组数据块的哈希码进行合并;步骤二,挑 战阶段,用户周期性运行挑战生成算法并生成挑战信息,并发给云端服务器开始数据完整 性验证;步骤三,保存阶段,云端服务器收到挑战信息后进行相应的计算操作,然后返回计 算的数值给用户,用户根据返回的信息运行验证算法,判断数据是否完整保存在云端服务 器中。 [0006] 所述步骤一中建立阶段的步骤具体如下:1、对数据进行固定分块处理,该算法将 数据分解为n个相互冗余的数据块,使得任意取k个数据块都能安全恢复数据;得到n块数 据,采用哈希函数对每一个数据块生成校验值;2、传输,将数据块编号和每个数据块的哈希 值同步到云端,并将n个数据块分别交给n个云端;3、本地同步云端拿到的数据块编号和哈 希码,结合数据编码,采用马尔科夫哈希树对同一组数据块的哈希值进行合并;4、一旦数据 发生更新,用户仅需要上传数据更新的数据块;如果用户删除某一个的数据块,用户仅仅需 要将删除数据块的证据发送到云端,云端保存对这些块删除的证据,并执行删除处理;如果 用户在增加/减少过程中会造成数据块较多证据量的问题,因此假设原数据为F,F’为更新 后的数据,ΔF为更新后的数据;5、用户发送差异数据块ΔF前对会对云端发送所有的数据 块哈希值信息,云端收到之后会采用过滤器对云端自身的数据块哈希值进行对比分析,以 此判断是否存在差异,并把差异信息记录下来;6、发送信息给用户请求用户发送差异数据 块ΔF,用户每次更新的时候只需要上ΔF,将ΔF存储到n+1个云端上,也就是有别于之前的 文件存储位置,用户使用各自的F和ΔF进行验证,如果验证通过采用F和ΔF来计算出F’;7、 差异数据块信息和原来数据块信息进行重组,完成增量同步。 [0007] 所述步骤一中建立阶段的数据块通过哈希码进行合并时,由于这里的同一组通常 由k个数据块组成,如果任意取k个数据就能安全恢复数据,k个数据块就算是同一组,本地 记录每一组数据块的哈希值。 [0008] 所述步骤二中,由于将数据分解为n个相互冗余的数据块,使得任意取k个数据块 都能安全恢复数据,因此随机采用任意k个数据块计算挑战值c,然后将挑战值c通过检测命 令发送到云端服务器,开始数据完整性验证。 [0009] 所述步骤三中保存阶段的具体步骤如下: [0010] 1、云端服务器收到请求后,采用马尔科夫哈希树对n个数据块中进行随意k个数据 块哈希值的组合,并生成多组数据块的哈希值,假设得到m组哈希值r; [0011] 2、并将m个r值返回到客户端,客户根据m个r值进行数值查找,以此来验证数据的 完整性;如果查找到c=r,认为数据时完整的,否则,数据不完整; [0012] 如果存在数据不完整的情况,客户重新随机生成一个挑战值c,然后再发送给云 端;云端收到请求后,采用马尔科夫哈希树对n个数据块中进行随意k个数据块哈希值的组 5 5 CN 113919001 A 说明书 3/4页 合,并生成多组数据块的哈希值;假设得到m组哈希值r,并将m个r值返回到客户端,客户根 据m个r值进行数值查找,如果找不到c=r的情况,继续执行步骤三,直到遍历完毕;再遍历 完毕后,如果找不到c=r的情况,说明数据无法通过现有云端的数据块进行恢复;相反,在 若干次遍历过程中,能够找到c=r的情况,说明数据块虽然由损坏,但是数据还是能恢复 的;在这种情况下,客户端告知云端该次进行校验的数据块,并对异常数据块进行更新,精 准定位到错误位置,修复数据块。 [0013] 本发明的数据恢复精确,速度较快,较为完整,能有效应对云端欺骗的行为,精确 对数据的异常进行修复;其适合用于云环境下数据质量校验、恢复和保持,及其同类方法的 技术改进。 附图说明 [0014] 图1是本发明的马尔科夫哈希树对同一组数据块合并工作原理方框图。 具体实施方式 [0015] 现结合附图,对本发明的具体实施步骤进行进一步的具体描述。 [0016] 该方法的具体步骤如下: [0017] 步骤一,建立阶段,对数据进行分块处理,采用哈希函数对每一个数据块进行赋 值,马尔科夫哈希树对同一组数据块的哈希码进行合并。所述建立阶段的具体步骤如下: [0018] 1、对数据进行固定分块处理,该算法将数据分解为n个相互冗余的数据块,使得任 意取k个数据块都能安全恢复数据;得到n块数据,采用哈希函数对每一个数据块生成校验 值。 [0019] 2、传输,将数据块编号和每个数据块的哈希值同步到云端,并将n个数据块分别交 给n个云端。 [0020] 3、本地同步云端拿到的数据块编号和哈希码,结合数据编码,采用马尔科夫哈希 树对同一组数据块的哈希值进行合并。这里的同一组通常由k个数据块组成,如果任意取k 个数据就能安全恢复数据,k个数据块就算是同一组,本地记录每一组数据块的哈希值。具 体方法如下:如图1所示,图1为马尔科夫哈希树对同一组数据块的哈希码进行合并。 [0021] 4、一旦数据发生更新,用户仅需要上传数据更新的数据块。从而用户仅需要对于 新增的数据块重新生成一个新的哈希码,降低系统的通信开销,提出一种分块计算与增量 更新相结合的证据更新技术,实现数据块的更新,因此分为删除和更新证据两种。以删除数 据作为例,如果用户删除某一个的数据块,用户仅仅需要将删除数据块的证据发送到云端, 云端保存对这些块删除的证据,并执行删除处理。以更新为例,用户在增加/减少过程中会 造成数据块较多证据量的问题,因此假设原数据为F,F’为更新后的数据,ΔF为更新后的数 据。 [0022] 5、用户发送差异数据块ΔF前对会对云端发送所有的数据块哈希值信息,云端收 到之后会采用过滤器对云端自身的数据块哈希值进行对比分析,以此判断是否存在差异, 并把差异信息记录下来。 [0023] 6、发送信息给用户请求用户发送差异数据块ΔF,用户每次更新的时候只需要上 ΔF,将ΔF存储到n+1个云端上,也就是有别于之前的文件存储位置,用户使用各自的F和Δ 6 6 CN 113919001 A 说明书 4/4页 F进行验证,如果验证通过采用F和ΔF来计算出F’。 [0024] 7、差异数据块信息和原来数据块信息进行重组,完成增量同步。 [0025] 步骤二,挑战阶段,用户周期性运行挑战生成算法并生成挑战信息,并发给云端服 务器开始数据完整性验证。由于将数据分解为n个相互冗余的数据块,使得任意取k个数据 块都能安全恢复数据,因此随机采用任意k个数据块计算挑战值c,然后将挑战值c通过检测 命令发送到云端服务器,开始数据完整性验证。 [0026] 步骤三,保存阶段,云端服务器收到挑战信息后进行相应的计算操作,然后返回计 算的数值给用户,用户根据返回的信息运行验证算法,判断数据是否完整保存在云端服务 器中。 [0027] 所述保持阶段的具体步骤如下: [0028] 1、云端服务器收到请求后,采用马尔科夫哈希树对n个数据块中进行随意k个数据 块哈希值的组合,并生成多组数据块的哈希值,假设得到m组哈希值r。 [0029] 2、并将m个r值返回到客户端,客户根据m个r值进行数值查找,以此来验证数据的 完整性。如果查找到c=r,认为数据时完整的,否则,数据不完整。 [0030] 如果存在数据不完整的情况下,一般由于云端数据遭受到破坏,客户重新随机生 成一个挑战值c,然后再发送给云端;云端收到请求后,采用马尔科夫哈希树对n个数据块中 进行随意k个数据块哈希值的组合,并生成多组数据块的哈希值;假设得到m组哈希值r,并 将m个r值返回到客户端,客户根据m个r值进行数值查找,如果找不到c=r的情况,继续执行 步骤三,直到遍历完毕;再遍历完毕后,如果找不到c=r的情况,说明数据无法通过现有云 端的数据块进行恢复;相反,在若干次遍历过程中,能够找到c=r的情况,说明数据块虽然 由损坏,但是数据还是能恢复的;在这种情况下,客户端告知云端该次进行校验的数据块, 并对异常数据块进行更新,精准定位到错误位置,修复数据块。 [0031] 该方法的创新点具体如下:1、采用数据块和增量更新的方式对数据进行更新,该 方法能够灵活应对动态的数据质量校验;以数据块为颗粒度采用数据分块计算和增量更新 的方法来应对频繁更新的数据存在的解决数据分块证据过多的问题,有效降低系统的通信 开销。2、采用马尔科夫哈希树对任意k个数据的哈希值进行组合计算,能够有效应对云端欺 骗的行为,因为云端不知道用户采用哪一种组合方式来验证数据的完整性,采用任意k个数 据块计算挑战值c,云端数据块在没有缺失的情况下,返回给用户的m个r值中,必然有一个 匹配的;相反,如果存在数据块缺失或者损坏的情况下,客户端上报随机抽取任意k个数据 块的编号,以便精准对云端异常数据块进行更新,修复位置。由于该方法采用周期性的方式 对数据质量进行校验,一旦发现数据块存在异常,对异常数据块进行修复,而不需要对所有 的数据块进行扫描修复,大大降低了数据质量校验的计算复杂度,有效保护云端数据的完 整性状态检查和数据恢复。3、服务器收到请求后,采用马尔科夫哈希树对n个数据块中进行 随意k个数据块哈希值的组合,并生成多组数据块的哈希值,假设得到m组哈希值r。 7 7 CN 113919001 A 说明书附图 1/1页 图1 8 8