一种面向敏捷开发云平台的数据完整性验证方法及系统与流程

文档序号:23540480发布日期:2021-01-05 20:48阅读:140来源:国知局
一种面向敏捷开发云平台的数据完整性验证方法及系统与流程

本发明涉及云存储安全技术领域,特别涉及一种面向敏捷开发云平台的数据完整性验证方法及系统。



背景技术:

随着物联网以及边缘设备的大量使用,用户数据量呈现快速增长。同时,数据的重要性逐步提升。但是,多数用户本地的存储量有限,并且为保护数据部署安全措施的成本和时间的消耗用户难以承受,同时在技术上也远远没有专业的云计算服务商可靠。因此,越来越多的企业和用户选择云存储技术,将数据存储到远程云平台上。

将数据存储在云平台上,用户可以通过云端接口对数据进行操作。这给用户带来了极大的便利,不仅减轻了存储压力,节省了管理费用,而且访问数据更加方便快捷。但是,由于用户失去了数据的控制权,会面临数据泄露以及数据被篡改的危险。存储在云端的数据可能会出现被其他用户甚至是云存储服务商(cloudserviceprovider,csp)篡改、损坏、泄露等,而用户对此一无所知。云服务提供商可能会处于自身利益的考虑,私自删除不常用数据,在数据被泄露、修改之后隐瞒用户;云平台会受到恶意用户的攻击,丢失、损坏部分数据,这些都会给用户造成损失。因此,检测云端数据的完整性对于用户至关重要。

如何验证云端数据的完整性就成了一个重要的问题,许多学者进行了研究,并取得了一些成果。传统的验证云端数据完整性的模型一般包括用户、csp以及第三方审计(thirdpartyauditor,tpa)。该模型一般是基于质询-响应协议的。用户将数据存储在csp,并将一些相关信息发送到tpa。当需要验证数据完整性时,用户端将验证请求发送到csp,csp将完整性证据发送到tpa,tpa将验证结果返回给用户。但是,如何提高验证效率以及验证开销给完整性验证问题带来了新的挑战。

此外,数据完整性验证方案可分为数据持有性证明pdp和数据可恢复性证明por,常用的是pdp。为支持数据的动态更新,研究人员引入merkle哈希树来验证数据块完整性。但是由于支持动态更新的验证方案会增添很多辅助信息,降低验证效率,因此对merkle哈希树进行改进。merkle哈希树每个节点对应两个子节点,研究人员采用多分支树代替merkle哈希树,减小树的高度,提高验证效率。但是,现有方案中数据的重复上传会造成云端资源浪费。



技术实现要素:

本发明提供了一种面向敏捷开发云平台的数据完整性验证方法及系统,以至少部分解决现有的数据完整性验证方法无法实现快速、准确地验证数据完整性,以及数据的重复上传会造成云端资源浪费的技术问题。

为解决上述技术问题,本发明提供了如下技术方案:

一方面,本发明提供了一种面向敏捷开发云平台的数据完整性验证方法,该面向敏捷开发云平台的数据完整性验证方法包括:

用户端将待上传的文件分成多个数据块并生成各数据块的编码字符串;

所述用户端将各数据块的编码字符串发送至云存储服务商,所述云存储服务商根据各数据块的编码字符串判断对应的数据块是否是重复数据块;

若当前数据块是重复数据块,则所述云存储服务商检索重复数据块的存储位置信息,并将检索到的存储位置信息存入所述文件对应的存储索引表中;若当前数据块不是重复数据块,则由所述用户端将当前数据块上传至所述云存储服务商,并将当前数据块的存储位置信息存入所述存储索引表中;

所述用户端生成用于验证数据完整性的验证挑战信息,并由所述用户端或第三方审计将所述验证挑战信息发送至所述云存储服务商;

所述云存储服务商根据验证挑战信息验证数据完整性,并将验证证据发送至第三方审计;所述第三方审计验证数据完整性并将验证结果发送至用户端。

进一步地,将待上传的文件分成多个数据块并生成各数据块的编码字符串,包括:

所述用户端生成用于对待上传的文件进行加密所用的公钥和私钥,并将待上传的文件分成大小相同的多个数据块;然后使用哈希函数计算出各数据块的哈希值,并对各数据块的哈希值进行编码,以生成各数据块对应的编码字符串。

进一步地,生成用于对待上传的文件进行加密所用的公钥和私钥,包括:

定义双线性映射e:g1×g1→g;其中,g1和g都是素数阶为p的乘法循环群;选取私钥x←g,并计算相应的公钥y=gx;其中,g为g1的生成元。

进一步地,所述云存储服务商根据各数据块的编码字符串判断对应的数据块是否是重复数据块,包括:

针对当前接收到的编码字符串,所述云存储服务商查询改进的多分支树,以确定所述改进的多分支树中是否存在当前接收到的编码字符串;其中,所述改进的多分支树包括终止节点和中间节点;其中,只有所述终止节点才会存储数据块,且每个终止节点的存储位置信息对应的编码是其路径上所有节点的存储位置信息对应的编码按照从上到下的顺序排列而成所得的字符串;

若所述改进的多分支树中存在当前接收到的编码字符串,则判断当前接收到的编码字符串所对应的数据块是重复数据块;

若所述改进的多分支树中不存在当前接收到的编码字符串,则判断当前接收到的编码字符串所对应的数据块不是重复数据块。

进一步地,若当前数据块是重复数据块,则所述云存储服务商检索重复数据块的存储位置信息,并将检索到的存储位置信息存入文件对应的存储索引表中,若当前数据块不是重复数据块,则由所述用户端将当前数据块上传至所述云存储服务商,并将当前数据块的存储位置信息存入所述存储索引表中,包括:

若当前数据块是重复数据块,则所述云存储服务商查询所述改进的多分支树,以确定当前重复数据块的存储位置信息的编码,并将检索到的存储位置信息的编码存入所述文件对应的存储索引表中;其中,所述存储索引表用于存储各数据块对应的编码字符串和各编码字符串对应的存储位置信息的编码;

若当前数据块不是重复数据块,则所述云存储服务商发送上传数据块指令至所述用户端;其中,所述上传数据块指令包括需上传的数据块的编码字符串;

所述用户端对需上传的数据块计算标签,将需上传的数据块及对应的标签上传至所述云存储服务商,并将当前数据块的存储位置信息存入存储索引表中。

进一步地,所述用户端对需上传的数据块计算标签,包括:

随机选取辅助变量u←g1,对于所述文件的数据块fi,根据u、x计算其标签其中ti=h(fi)||time||name,h(fi)表示对数据块fi进行哈希运算,time为时间戳,name为所述文件的独有的标识符,h(ti)表示对ti进行哈希运算。

进一步地,生成用于验证数据完整性的验证挑战信息,包括:

从所述文件的多个数据块的编码字符串中随机选取c个,构成集合s={s1,...,sc};其中,c为预设的正整数,si为第i个数据块的编码字符串;

为每一个si选取一个随机整数qi;其中,qi∈zp,zp={0,1,...,p-1};

根据si和qi生成验证挑战信息c={(si,qi)};其中,1≤i≤c。

进一步地,所述云存储服务商根据验证挑战信息验证数据完整性,并将验证证据发送至第三方审计,包括:

所述云存储服务商在接收到所述验证挑战信息后,计算所述验证挑战信息的线性组合并将发送至所述第三方审计;其中,fi为第i个数据块,ti为第i个数据块的标签。

进一步地,所述第三方审计验证数据完整性,包括:

所述第三方审计判断等式是否成立;若等式成立,则判断数据块是完整的,否则,判断数据块遭到了破坏。

另一方面,本发明还提供了一种面向敏捷开发云平台的数据完整性验证系统,所述系统包括用户端、云存储服务商和第三方审计;其中,

所述用户端用于将待上传的文件分成多个数据块,并生成各数据块的编码字符串;然后将各数据块的编码字符串发送至所述云存储服务商;

所述云存储服务商用于根据各数据块的编码字符串判断对应的数据块是否是重复数据块;若当前数据块是重复数据块,则所述云存储服务商检索重复数据块的存储位置信息,并将检索到的存储位置信息存入所述文件对应的存储索引表中;若当前数据块不是重复数据块,则指示所述用户端将当前数据块上传至所述云存储服务商,并将当前数据块的存储位置信息存入所述存储索引表中;

所述用户端还用于生成用于验证数据完整性的验证挑战信息,并由所述用户端或第三方审计将所述验证挑战信息发送至所述云存储服务商;

所述云存储服务商还用于根据所述验证挑战信息,验证数据完整性,并将验证证据发送至所述第三方审计;所述第三方审计还用于根据所述云存储服务商发送的验证证据,验证数据完整性,并将验证结果发送至所述用户端。

本发明提供的技术方案带来的有益效果至少包括:

本发明的面向敏捷开发云平台的数据完整性验证方法,由于csp中存有文件的存储索引表,因此对于不同文件的相同数据块就不需要进行多次存储,只需要存储一次,然后将存储信息写到对应文件的存储索引表中即可。当用户需要对文件进行操作时,csp只需从文件信息表查找相关信息即可。此外,多分支路径树只有叶子节点可存储数据块,而本发明改进的多分支树则不同,部分中间节点也可存储数据块,减小了树的深度,可加快查询速度,避免空间浪费。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的面向敏捷开发云平台的数据完整性验证方法的执行流程示意图;

图2是本发明实施例提供的改进的多分支树的示意图;

图3是本发明实施例提供的面向敏捷开发云平台的数据完整性验证系统的系统构成示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

第一实施例

本实施例针对敏捷开发云平台中数据完整性验证过程中存在的挑战与问题,通过引入改进多分支树和再平衡机制,设计了一种面向敏捷开发云平台的数据完整性验证方法,能够实现敏捷开发云平台中数据快速准确地验证;该面向敏捷开发云平台的数据完整性验证方法的执行流程如图1所示,包括以下步骤:

s101,用户端将待上传文件分成多个数据块并生成各数据块的编码字符串;

具体地,在本实施例中,上述s101的实现过程为:用户端生成用于对待上传的文件进行加密所用的公钥和私钥,并将待上传的文件f分成大小相同的m个数据块,得f={f1,f2,...,fm};然后使用哈希函数计算出各数据块的哈希值,并对各数据块的哈希值进行编码,以生成各数据块对应的编码字符串。

其中,生成用于对待上传的文件进行加密所用的公钥和私钥,包括:

定义双线性映射e:g1×g1→g;其中,g1和g都是素数阶为p的乘法循环群;选取私钥x←g,并计算相应的公钥y=gx;其中,g为g1的生成元。

s102,用户端将各数据块的编码字符串发送至云存储服务商,云存储服务商根据各数据块的编码字符串判断对应的数据块是否是重复数据块;

若当前数据块是重复数据块,则该数据块不需要上传,则云存储服务商检索该重复数据块的存储位置信息,并将检索到的存储位置信息存入文件对应的存储索引表中;若当前数据块不是重复数据块,则由用户端将当前数据块上传至云存储服务商,并将当前数据块的存储位置信息存入对应的存储索引表中;

具体地,在本实施例中,上述s102的实现过程为:针对当前接收到的编码字符串,云存储服务商查询改进的多分支树,以确定改进的多分支树中是否存在当前接收到的编码字符串;若改进的多分支树中存在当前接收到的编码字符串,则判断当前接收到的编码字符串所对应的数据块是重复数据块;否则,判断当前接收到的编码字符串所对应的数据块不是重复数据块。

其中,改进的多分支树的结构如图2所示,该改进的多分支树包括两种节点,图2中的方框表示终止节点,圆形表示中间节点;其中,只有终止节点才会存储数据块,且每个终止节点的存储位置信息对应的编码是其路径上所有节点的存储位置信息对应的编码按照从上到下的顺序排列而成所得的字符串;因此节点d存储的数据块的编码值就是节点a存储的编码值加上节点d存储的编码值。因此,改进的多分支树的叶子节点都是方框代表的终止接点。

进一步地,若当前数据块是重复数据块,则云存储服务商查询改进的多分支树,以确定当前重复数据块的存储位置信息的编码,并将检索到的存储位置信息的编码存入文件对应的存储索引表中;其中,存储索引表用于存储各数据块对应的编码字符串和各编码字符串对应的存储位置信息的编码;

若当前数据块不是重复数据块,则云存储服务商发送上传数据块指令至用户端;其中,上传数据块指令包括需上传的数据块的编码字符串;

用户端对需上传的数据块计算标签,将需上传的数据块及对应的标签上传至云存储服务商,并将当前数据块的存储位置信息存入存储索引表中。

其中,用户端对需上传的数据块计算标签,包括:

随机选取辅助变量u←g1,对于文件f的数据块fi,根据u、x计算其标签其中,ti=h(fi)||time||name,h(fi)表示对数据块fi进行哈希运算,time为时间戳,name为文件f的独有的标识符,u表示辅助变量,x为私钥,i表示数据块序号,1≤i≤m,h(ti)表示对ti进行哈希运算。

计算出所有数据块的标签,构成标签集合t={ti}(1≤i≤m)。计算结束后,用户端将数据块和标签集合发送给云存储服务商,同时更新文件的数据信息表。

s103,用户端生成用于验证数据完整性的验证挑战信息,并由用户端或第三方审计将验证挑战信息发送至云存储服务商;

具体地,在本实施例中,生成用于验证数据完整性的验证挑战信息,包括:

从文件f的m个数据块序号中随机选取c个,构成集合s={s1,...,sc};其中,c为预设的正整数,si为第i个数据块的编码字符串;随后为每一个si选取一个随机整数qi;其中,qi∈zp,zp={0,1,...,p-1};根据si和qi生成验证挑战信息c={(si,qi)};其中,1≤i≤c。

s104,云存储服务商根据验证挑战信息,验证数据完整性,并将验证证据发送至第三方审计;

具体地,在本实施例中,上述s104的实现过程具体为:云存储服务商在接收到验证挑战信息后,计算验证挑战信息的线性组合并将发送至第三方审计;其中,fi为第i个数据块,ti为第i个数据块的标签。

s105,第三方审计验证数据完整性并将验证结果发送至用户端。

具体地,在本实施例中,上述s105的实现过程具体为:第三方审计判断等式是否成立;若等式成立,则判断数据块是完整的,否则,判断数据块遭到了破坏。

当用户对存在云存储服务商上的数据进行动态操作时,需要向云存储服务商提供更新数据块的信息,同时文件的数据信息表随时更新。

综上,本实施例的面向敏捷开发云平台的数据完整性验证方法,由于csp中存有文件的存储索引表,因此对于不同文件的相同数据块就不需要进行多次存储,只需存储一次并将存储信息写到对应文件的存储索引表中即可。当用户需要对文件进行操作时,csp只需从文件信息表查找相关信息即可。多分支路径树只有叶子节点可存储数据块,而本实施例改进的多分支树则不同,部分中间节点也可存储数据块,减小了树的深度,可加快查询速度,避免空间浪费。

第二实施例

本实施例提供了一种面向敏捷开发云平台的数据完整性验证系统,如图3所示,该数据完整性验证系统包括用户端、云存储服务商和第三方审计;其中,

基于本实施例的系统,用户可以将自己的数据上传到csp,并且在需要的时候对存储在csp的数据进行增删改查等操作,也可以将数据取回。由于tpa一般具有较强的计算能力,用户可以发送一些必要信息给tpa,委托tpa验证数据完整性。csp能够以较廉价的价格为用户提供数据的存储服务,并及时响应用户的请求,用户发起完整性验证时,能够诚实的计算并返回结果。tpa在本系统中是可信的,拥有较强的计算能力和存储能力,可以代替用户向csp发起数据完整性验证,并根据csp返回的信息得出验证结果,并返回给用户。

具体地,在本实施例的数据完整性验证系统中,上述各模块的功能如下:

所述用户端用于将待上传的文件分成多个数据块,并生成各数据块的编码字符串;然后将各数据块的编码字符串发送至所述云存储服务商;

所述云存储服务商用于根据各数据块的编码字符串判断对应的数据块是否是重复数据块;若当前数据块是重复数据块,则所述云存储服务商检索重复数据块的存储位置信息,并将检索到的存储位置信息存入所述文件对应的存储索引表中;若当前数据块不是重复数据块,则指示所述用户端将当前数据块上传至所述云存储服务商,并将当前数据块的存储位置信息存入所述存储索引表中;

所述用户端还用于生成用于验证数据完整性的验证挑战信息,并由所述用户端或第三方审计将所述验证挑战信息发送至所述云存储服务商;

所述云存储服务商还用于根据所述验证挑战信息,验证数据完整性,并将验证证据发送至所述第三方审计;所述第三方审计还用于根据所述云存储服务商发送的验证证据,验证数据完整性,并将验证结果发送至所述用户端。

本实施例的面向敏捷开发云平台的数据完整性验证系统与第一实施例的面向敏捷开发云平台的数据完整性验证方法相对应;其中,该面向敏捷开发云平台的数据完整性验证系统中的各功能模块所实现的功能与上述面向敏捷开发云平台的数据完整性验证方法中的各流程步骤一一对应;故,在此不再赘述。

此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1