一种基于Merkle树结构的数据模型验证系统与方法

文档序号:10512347阅读:525来源:国知局
一种基于Merkle树结构的数据模型验证系统与方法
【专利摘要】本发明公开了一种基于Merkle树结构的数据模型验证系统与方法,其系统包括用户单元、模型管理单元和数据存储中心;用户单元包括登录模块、权限验证模块和第一模型验证模块;模型管理单元包括管理模块和第二模型验证模块;所述的数据存储中心包括数据预处理模块和Merkle树构造模块。本发明提供了一种基于Merkle树结构的数据模型验证系统与方法,在租用相应数据模型的过程中,对数据模型的验证,检查是否调用了正确数据模型,从而有效提高了调用的准确性。
【专利说明】
一种基于Merk I e树结构的数据模型验证系统与方法
技术领域
[0001 ]本发明涉及一种基于Merkle树结构的数据模型验证系统与方法。
【背景技术】
[0002]如今,便捷高效的远程数据存储访问服务被云计算服务商通过稳定高速的网络连接进行提供,但是由于云计算自身特性,大规模数据存储服务面临着诸多安全隐患和挑战;为了合理利用存储资源,数据文件大多数情况都是被划分为若干个小的数据块进行存储,而每个存储块的地理位置和存储状态用户未知,所以当用户再次调用数据时,对数据的完整性以及数据的正确性会产生怀疑;同样,当数据模型存储在服务器中,当用户调用相应数据模型时,必须保证调用模型的正确性,及调用模型的过程中模型不会被改变以及用户采用的模型是正确的。对于数据模型的验证,通过采用基于Merkle哈希树的数据验证方式可以有效地、简单的进行数据的验证。
[0003]专利申请号:201310132565.0本发明公开了一种基于哈希树的数据动态操作可验证性方法,是由用户USER、云计算数据中心⑶C和第三方审计机构TPA三部分通过通信网络连接组成。USER作为数据存储服务请求的提出一方,希望将自己拥有的数据文件存储到云计算数据中心的云存储空间之中;USER既可以是个人用户,也可以是企业用户;CDC负责响应用户的数据存储服务请求,按照一定的规则将用户的数据文件存储到自己庞大的数据中心,并对数据文件的管理维护负责;TPA作为可靠的第三方审计机构,受USER的委托对存储在CDC数据中心的数据文件进行完整性和一致性的审查;本发明解决了云计算环境下对于用户数据文件完整性和一致性的验证问题。
[0004]专利申请号:201510101056.0本发明公开了一种基于Merkle树结构的空间查询完整性验证方法,该方法在已有的自适应Hi Ibert曲线所生成的四分树节点上,提出了支持查询完整性验证的Merkle树结构的构建方法,并提出了范围查询与KNN查询的完整性验证方法,使得本发明所提供的完整性验证结果不存在误报与漏报的情况,进而使得服务提供者难以对用户的查询结果进行恶意更改;本发明方法可以在空间数据外包的服务模式下,为用户提供高效的验证结构生成功能,以及准确的范围查询与KNN查询完整性验证功能,从而保证空间查询服务的质量。
[0005]现有的基于Merkle哈希树的数据验证专利,大多数都是对用户存储的数据以及验证在云存储状态下当存储数据在进行移动是否遭到损坏及完整性的检验,并没有当用户调用或租用相应数据模型时,对数据模型的验证及检查是否调用了正确数据模型,同时在构建哈希树的时候,只简单的进行了构造,没有考虑验证时效率问题。

【发明内容】

[0006]本发明的目的在于克服现有技术的不足,提供一种基于Merkle树结构的数据模型验证系统与方法,在租用相应数据模型的过程中,对数据模型的验证,检查是否调用了正确数据模型,从而有效提高了调用的准确性。
[0007]本发明的目的是通过以下技术方案来实现的:一种基于Merkle树结构的数据模型验证系统,包括用户单元、模型管理单元和数据存储中心;
所述的用户单元包括登录模块、权限验证模块和第一模型验证模块;登录模块用于向用户提供登录接口;权限认证模块用于对登录的用户进行权限判断,识别当前登录的用户是管理员还是租户;第一模型验证模块用于验证模型调用正确性;
所述的模型管理单元包括管理模块和第二模型验证模块;管理模块用于在用户为管理员时,进行数据模型的管理和上传;第二模型验证模块用于在用户为租户时将用户提交的标签信息所覆盖的所有数据块传输给用户,并接收用户的验证信息以决定是否继续调用数据模型;
进一步地,管理模块用于数据模型的增加,也能够用于数据模型的删除和修改。
[0008]所述的数据存储中心包括数据预处理模块和Merkle树构造模块;数据预处理模块用于为上传的数据模型进行分块,对数据块分块进行哈希化;给每个数据块一个唯一识别的标签信息,对所有数据块进行存储并创建一个包含全部数据块标签信息的标签信息列表;Merkle树构造模块用于根据标签信息构建Merkle Hash Tree。
[0009]进一步地,系统各部分通过通信网络连接。
[0010]所述的模型管理单元还包括模型集成模块,用于集成多种类型的典型模型函数,形成这些模型函数的元数据;得到相应的业务领域的数据模型;集成好的数据模型定期上传给数据存储中心,在用户为管理员时,也可以由管理员进行操作和上传。
[0011]数据存储中心负责响应存储服务请求,按照一定的规则将模型库中的模型存储到其庞大的数据中心,并对这些数据模型进行管理维护和负责。
[0012]所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。
[0013]一种基于Merkle树结构的数据模型验证方法,包括以下步骤:
51.通过用户单元进行账号和密码登录,用户单元对登录信息进行认证,判断用户性质:
(1)如果用户性质为管理员,跳转至步骤S2;
(2)如果用户性质为租户,跳转至步骤S6;
52.管理员通过用户单元控制模型管理单元向数据存储中心上传数据模型,请求数据处理中心对数据模型进行存储;
53.数据存储中心将数据模型划分成大小相同的若干个数据块,然后对于每个数据块进行哈希化操作得到所有数据块的摘要,并暂时存储;同时对每个数据块进行签名操作,每个数据块得到一个唯一识别的标签信息;
54.数据存储中心根据管理员上传模型的摘要构建MerkleHash Tree,计算模型的根节点摘要,并向用户公开其根节点的摘要;
55.数据存储中心根据创建一个包含全部数据块标签信息的标签信息列表,并向用户公开;
56.租户通过模型管理单元进行模型验证,并判断验证是否成功:
(1)验证成功,调用对应的数据模型;
(2)验证不成功,返回验证失败的信号给模型管理单元。
[0014]步骤S3中所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。
[0015]所述的步骤S4包括以下子步骤:
541.数据存储中心通过标签信息中的模型类型,对不同的模型类别的数据块进行划分,并存储到相应的数据模型类别列表;
542.数据存储中心对相同类型不同ID的数据块进行划分,得到相同类别、相同ID的数据块;
543.数据存储中心对相同类别、相同ID的数据块,取出它们的位置存储信息,进行按序排列,将数据块的摘要作为叶节点构造ID Merkle Hash Tree,并计算每个ID Merkle HashTree的根节点摘要值;
544.数据存储中心将具有相同模型类别的所有IDMerkle Hash Tree根节点按节点顺序进行排序,将ID Merkle Hash Tree的根节点摘要作为叶节点构造数据模型的MD MerkleHash Tree,并计算每个MD Merkle Hash Tree的根节点摘要值;
545.数据存储中心将所有类别数据模型的MDMerkle Hash Tree的根节点按照节点顺序进行按序排列,将Merkle Hash Tree的根节点摘要作为叶子节点构造模型的MerkleHash Tree,并计算Merkle Hash Tree的根节点摘要值。
[0016]所述的步骤S6包括以下子步骤:
561.用户单元向模型管理单元提交相关数据模型的相关验证信息,即需要验证的数据模型所涉及数据块的所有标签信息;
562.模型管理单元从数据存储中心获取标签信息所对应的数据块,并将数据块全部传递给用户;
563.用户生成需要验证数据模型的MerkleHash Tree并计算其根节点摘要;
进一步地,用户对构建需要验证数据模型的Merkle Hash Tree并计算其根节点摘要的方式,与步骤S4中数据存储中心对进行Merkle Hash Tree构建,根节点摘要的计算方式一致。
[0017]S64.用户将自己计算的根节点摘要与数据存储中心公布的摘要相比较,判断二者是否一致:
(1)根节点摘要一致,验证成功,用户认为模型管理单元调用了正确的数据模型,返回成功的信号给模型管理单元,允许继续调用;
(2)根节点摘要不一致,验证失败,返回验证失败的信号给模型管理单元;用户认为模型管理单元篡改了数据模型。
[0018]本申请中管理员可以通过模型管理单元放心的将模型传输给数据存储中心,不用担心在数据模型传输过程出现错误,引起哈希值的错误进而导致整个验证信息错误的问题;方案实现了基于Merkle Hash Tree的数据模型验证,符合用户租赁数据模型并进行数据模型验证的安全需求,并且提出了大数据应用中数据模型的验证,使得直接让用户租赁相应业务数据模型成为可能;同时,使用标签和分层次Merkle Hash Tree,使得方案允许对数据存储中心中单一模型或者某一种特定类型模型进行验证。
[0019]本发明的有益效果是:利用标记有数据块存储地理信息位置的标签,减少了在Merkle Hash Tree根节点值计算过程中由于数据存储中心内部通信所消耗的大量时间;对数据模型进行验证,方便了用户在租赁数据模型时保证模型的正确性,防止用户任意调用数据模型。
【附图说明】
[0020]图1为本发明的系统原理框图;
图2为本发明的方法流程图;
图3为为构造ID Merkle Hash Tree,并计算根节点摘要的原理图。
【具体实施方式】
[0021]下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
[0022]如图1所示,:一种基于Merkle树结构的数据模型验证系统,包括用户单元、模型管理单元和数据存储中心;
所述的用户单元包括登录模块、权限验证模块和第一模型验证模块;登录模块用于向用户提供登录接口;权限认证模块用于对登录的用户进行权限判断,识别当前登录的用户是管理员还是租户;第一模型验证模块用于验证模型调用正确性;
所述的模型管理单元包括管理模块和第二模型验证模块;管理模块用于在用户为管理员时,进行数据模型的管理和上传;第二模型验证模块用于在用户为租户时将用户提交的标签信息所覆盖的所有数据块传输给用户,并接收用户的验证信息以决定是否继续调用数据模型;
进一步地,管理模块用于数据模型的增加,也能够用于数据模型的删除和修改。
[0023]所述的数据存储中心包括数据预处理模块和Merkle树构造模块;数据预处理模块用于为上传的数据模型进行分块,对数据块分块进行哈希化;给每个数据块一个唯一识别的标签信息,对所有数据块进行存储并创建一个包含全部数据块标签信息的标签信息列表;Merkle树构造模块用于根据标签信息构建Merkle Hash Tree。
[0024]进一步地,系统各部分通过通信网络连接。
[0025]所述的模型管理单元还包括模型集成模块,用于集成多种类型的典型模型函数,形成这些模型函数的元数据;得到相应的业务领域的数据模型;集成好的数据模型定期上传给数据存储中心,在用户为管理员时,也可以由管理员进行操作和上传。
[0026]数据存储中心负责响应存储服务请求,按照一定的规则将模型库中的模型存储到其庞大的数据中心,并对这些数据模型进行管理维护和负责。
[0027]所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。
[0028]如图2所示,一种基于Merkle树结构的数据模型验证方法,包括以下步骤:
51.通过用户单元进行账号和密码登录,用户单元对登录信息进行认证,判断用户性质:
(1)如果用户性质为管理员,跳转至步骤S2;
(2)如果用户性质为租户,跳转至步骤S6;
52.管理员通过用户单元控制模型管理单元向数据存储中心上传数据模型,请求数据处理中心对数据模型进行存储;
53.数据存储中心将数据模型划分成大小相同的若干个数据块,然后对于每个数据块进行哈希化操作得到所有数据块的摘要,并暂时存储;同时对每个数据块进行签名操作,每个数据块得到一个唯一识别的标签信息;
54.数据存储中心根据管理员上传模型的摘要构建MerkleHash Tree,计算模型的根节点摘要,并向用户公开其根节点的摘要;
55.数据存储中心根据创建一个包含全部数据块标签信息的标签信息列表,并向用户公开;
56.租户通过模型管理单元进行模型验证,并判断验证是否成功:
(1)验证成功,调用对应的数据模型;
(2)验证不成功,返回验证失败的信号给模型管理单元。
[0029]步骤S3中所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。
[0030]所述的步骤S4包括以下子步骤:
541.数据存储中心通过标签信息中的模型类型,对不同的模型类别的数据块进行划分,并存储到相应的数据模型类别列表;
542.数据存储中心对相同类型不同ID的数据块进行划分,得到相同类别、相同ID的数据块;
543.数据存储中心对相同类别、相同ID的数据块,取出它们的位置存储信息,进行按序排列,将数据块的摘要作为叶节点构造ID Merkle Hash Tree,并计算每个ID Merkle HashTree的根节点摘要值;
544.数据存储中心将具有相同模型类别的所有IDMerkle Hash Tree根节点按节点顺序进行排序,将ID Merkle Hash Tree的根节点摘要作为叶节点构造数据模型的MD MerkleHash Tree,并计算每个MD Merkle Hash Tree的根节点摘要值;
545.数据存储中心将所有类别数据模型的MDMerkle Hash Tree的根节点按照节点顺序进行按序排列,将Merkle Hash Tree的根节点摘要作为叶子节点构造模型的MerkleHash Tree,并计算Merkle Hash Tree的根节点摘要值。
[0031]进一步地,步骤S43中,需要计算每个ID Merkle Hash Tree的根节点摘要值,如图3所示,图中Hash(.)表示哈希操作,‘ I ’表示对摘要的级联操作;
假设在某一个模型类别中,相同ID的数据块只有4个X1,X2,X3和X4,数据存储中心将经过哈希操作Hash(.)得到四个数据块摘要值h21,h22,h23和h24作为ID Merkle Hash Tree叶节点的值;ID Merkle Hash Tree中间节点的值为它的孩子节点的摘要值级联的摘要;IDMerkle Hash Tree根节点值可以通过从叶子节点自底向上逐层计算摘要得到。
[0032]而MD Merkle Hash Tree的根节点摘要计算同理,只是叶子节点不同而已,将IDMerkle Hash Tree的根节点摘要作为叶节点,MD Merkle Hash Tree中间节点的值为它的孩子节点的摘要值级联的摘要;MD Merkle Hash Tree根节点值可以通过从叶子节点自底向上逐层计算摘要得到。
[0033]Merkle Hash Tree的根节点摘要计算方式也一样,只是叶子节点不同而已,将MDMerkle Hash Tree的根节点摘要作为叶子节点,Merkle Hash Tree中间节点的值为它的孩子节点的摘要值级联的摘要;Merkle Hash Tree根节点值可以通过从叶子节点自底向上逐层计算摘要得到。
[0034]所述的步骤S6包括以下子步骤:
561.用户单元向模型管理单元提交相关数据模型的相关验证信息,即需要验证的数据模型所涉及数据块的所有标签信息;
562.模型管理单元从数据存储中心获取标签信息所对应的数据块,并将数据块全部传递给用户;
563.用户生成需要验证数据模型的MerkleHash Tree并计算其根节点摘要;
进一步地,用户对构建需要验证数据模型的Merkle Hash Tree并计算其根节点摘要的方式,与步骤S4中数据存储中心对进行Merkle Hash Tree构建,根节点摘要的计算方式一致。
[0035]S64.用户将自己计算的根节点摘要与数据存储中心公布的摘要相比较,判断二者是否一致:
(1)根节点摘要一致,验证成功,用户认为模型管理单元调用了正确的数据模型,返回成功的信号给模型管理单元,允许继续调用;
(2)根节点摘要不一致,验证失败,返回验证失败的信号给模型管理单元;用户认为模型管理单元篡改了数据模型。
[0036]本申请中管理员可以通过模型管理单元放心的将模型传输给数据存储中心,不用担心在数据模型传输过程出现错误,引起哈希值的错误进而导致整个验证信息错误的问题;方案实现了基于Merkle Hash Tree的数据模型验证,符合用户租赁数据模型并进行数据模型验证的安全需求,并且提出了大数据应用中数据模型的验证,使得直接让用户租赁相应业务数据模型成为可能;同时,使用标签和分层次Merkle Hash Tree,使得方案允许对数据存储中心中单一模型或者某一种特定类型模型进行验证。
【主权项】
1.一种基于Merkle树结构的数据模型验证系统,其特征在于:包括用户单元、模型管理单元和数据存储中心; 所述的用户单元包括登录模块、权限验证模块和第一模型验证模块;登录模块用于向用户提供登录接口;权限认证模块用于对登录的用户进行权限判断,识别当前登录的用户是管理员还是租户;第一模型验证模块用于验证模型调用正确性; 所述的模型管理单元包括管理模块和第二模型验证模块;管理模块用于在用户为管理员时,进行数据模型的管理和上传;第二模型验证模块用于在用户为租户时将用户提交的标签信息所覆盖的所有数据块传输给用户,并接收用户的验证信息以决定是否继续调用数据模型; 所述的数据存储中心包括数据预处理模块和Merkle树构造模块;数据预处理模块用于为上传的数据模型进行分块,对数据块分块进行哈希化;给每个数据块一个唯一识别的标签信息,对所有数据块进行存储并创建一个包含全部数据块标签信息的标签信息列表;Merkle树构造模块用于根据标签信息构建Merkle Hash Tree。2.根据权利要求1所述的一种基于Merkle树结构的数据模型验证系统,其特征在于:所述的模型管理单元还包括模型集成模块,用于集成多种类型的典型模型函数,形成这些模型函数的元数据,得到相应的业务领域的数据模型并定期上传给数据存储中心。3.根据权利要求1所述的一种基于Merkle树结构的数据模型验证系统,其特征在于:所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。4.根据权利要求1?3中任意一项所述的一种基于Merkle树结构的数据模型验证方法,其特征在于:包括以下步骤: .51.通过用户单元进行账号和密码登录,用户单元对登录信息进行认证,判断用户性质: (1)如果用户性质为管理员,跳转至步骤S2; (2)如果用户性质为租户,跳转至步骤S6; .52.管理员通过用户单元控制模型管理单元向数据存储中心上传数据模型,请求数据处理中心对数据模型进行存储;. 53.数据存储中心将数据模型划分成大小相同的若干个数据块,然后对于每个数据块进行哈希化操作得到所有数据块的摘要,并暂时存储;同时对每个数据块进行签名操作,每个数据块得到一个唯一识别的标签信息; .54.数据存储中心根据管理员上传模型的摘要构建MerkleHash Tree,计算模型的根节点摘要,并向用户公开其根节点的摘要; .55.数据存储中心根据创建一个包含全部数据块标签信息的标签信息列表,并向用户公开; . 56.租户通过模型管理单元进行模型验证,并判断验证是否成功: (1)验证成功,调用对应的数据模型; (2)验证不成功,返回验证失败的信号给模型管理单元。5.根据权利要求4所述的一种基于Merkle树结构的数据模型验证系统的验证方法,其特征在于:步骤S3中所述的标签信息包括存储位置标记信息、模型ID标记信息和模型类型标记信息。6.根据权利要求4所述的一种基于Merkle树结构的数据模型验证系统的验证方法,其特征在于:所述的步骤S4包括以下子步骤: .541.数据存储中心通过标签信息中的模型类型,对不同的模型类别的数据块进行划分,并存储到相应的数据模型类别列表; . 542.数据存储中心对相同类型不同ID的数据块进行划分,得到相同类别、相同ID的数据块; . 543.数据存储中心对相同类别、相同ID的数据块,取出它们的位置存储信息,进行按序排列,将数据块的摘要作为叶节点构造ID Merkle Hash Tree,并计算每个ID Merkle HashTree的根节点摘要值; .544.数据存储中心将具有相同模型类别的所有IDMerkle Hash Tree根节点按节点顺序进行排序,将ID Merkle Hash Tree的根节点摘要作为叶节点构造数据模型的MD MerkleHash Tree,并计算每个MD Merkle Hash Tree的根节点摘要值; . 545.数据存储中心将所有类别数据模型的MDMerkle Hash Tree的根节点按照节点顺序进行按序排列,将Merkle Hash Tree的根节点摘要作为叶子节点构造模型的MerkleHash Tree,并计算Merkle Hash Tree的根节点摘要值。7.根据权利要求4所述的一种基于Merkle树结构的数据模型验证系统的验证方法,其特征在于:所述的步骤S6包括以下子步骤: .561.用户单元向模型管理单元提交相关数据模型的相关验证信息,即需要验证的数据模型所涉及数据块的所有标签信息;. 562.模型管理单元从数据存储中心获取标签信息所对应的数据块,并将数据块全部传递给用户; . 563.用户生成需要验证数据模型的MerkleHash Tree并计算其根节点摘要;. 564.用户将自己计算的根节点摘要与数据存储中心公布的摘要相比较,判断二者是否一致: (1)根节点摘要一致,验证成功,用户认为模型管理单元调用了正确的数据模型,返回成功的信号给模型管理单元,允许继续调用; (2)根节点摘要不一致,验证失败,返回验证失败的信号给模型管理单元;用户认为模型管理单元篡改了数据模型。
【文档编号】G06F17/30GK105868369SQ201610192741
【公开日】2016年8月17日
【申请日】2016年3月30日
【发明人】王勇, 郝鹏飞, 陈炬光, 陈炳泉
【申请人】电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1