CN107612969A - 基于B‑Tree布隆过滤器的云存储数据完整性审计方法 - Google Patents
基于B‑Tree布隆过滤器的云存储数据完整性审计方法 Download PDFInfo
- Publication number
- CN107612969A CN107612969A CN201710702675.4A CN201710702675A CN107612969A CN 107612969 A CN107612969 A CN 107612969A CN 201710702675 A CN201710702675 A CN 201710702675A CN 107612969 A CN107612969 A CN 107612969A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- tree
- num
- auditing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于B‑Tree布隆过滤器的云存储数据完整性审计方法。其包括按顺序进行的下列步骤:数据预处理的S1阶段、生成数据块签名的S2阶段、数据存储S3阶段、完整性挑战的S4阶段、挑战应答的S5阶段和校验结果计算的S6阶段;本发明方法用于云存储数据完整性审计时占用服务器存储较少,计算效率高,保证服务器的运行速度和反应速度,且支持数据的动态操作,能够提高数据完整性审计效率,可实现公开审计。
Description
技术领域
本发明属于大数据与云计算安全技术领域,特别是涉及一种基于B-Tree布隆过滤器的云存储数据完整性审计方法。
背景技术
随着有关大数据技术的飞速发展,作为大数据基础的云存储也随之发展。但在云存储快速发展的同时,其数据安全却面临着极大挑战。在云安全联盟发布的 12大云安全威胁中,数据泄露、恶意内部人士攻击和永久数据丢失对云存储数据完整性造成巨大威胁。用户存储在云端的数据可能遭到其他用户或云服务提供商的窥视、修改和损坏,某些云服务提供商出于自我名誉保护,向用户隐瞒数据丢失,因此亟需一种高效的数据完整性审计方法。
常见的数据完整性审计方法包括两类:一类是面向用户单独验证的数据可恢复性证明方法(proofs ofretribility,POR),另一类为支持公开可验证的数据持有性证明方法(provable datapossession,PDP)。Ateniese等提出一种PDP机制,虽然该方案降低了通信开销,但是仅适用于静态数据的校验,并未考虑动态数据的更新问题。Wang等提出一种基于同态加密短消息签名的动态数据完整性验证方法。该方法支持公开验证和动态数据操作,但当校验元数据规模变大后插入操作的开销将十分巨大。Li等提出一种基于双线性组的完整性审计方法,该方法基于Hellman计算困难问题构造双线性映射用于校验元数据计算,降低了客户端执行审计协议初始化阶段的成本,但是由于审计过程使用的结构复杂,因此降低了验证效率。Hussien等提出一种不使用同态加密算法的数据完整性审计方法,该方法使用双块传输和加密散列函数来检查存储在云端数据的完整性,降低了客户端计算量,但是增加了辅助存储空间,增大了隐私泄漏的风险。Zhang等提出了一种新的公共审计方法,使用rb2-3树作为验证工具,实现了公开验证和动态数据审计,但该方法仍存在计算复杂,验证路径过长的问题。李勇等使用一种多分支树来确定数据块位置的正确性,该方法减少了审计模型各实体计算负担,简化了动态更新过程,但是在云端计算持有证据时需要更多的辅助信息,增加了云端与审计端的通信开销。
发明内容
为了解决上述问题,本发明的目的在于提供一种基于B-Tree布隆过滤器的云存储数据完整性审计方法。
为了达到上述目的,本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法所采用的系统包括客户端、云服务提供商和第三方审计平台,其中客户端将数据块加密上传并生成校验证据,云服务提供商存储数据块和生成数据块持有证据应答,第三方审计平台存储校验证据和进行数据完整性验证;所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法包括按顺序进行的下列步骤:
1)数据预处理的S1阶段:在此阶段,客户端将用户的数据F分割为多个大小固定的数据块mi(m1,m2,…,mn;i=1,2...,n),每个数据块mi具有一个数据块标签numk,然后从每个数据块mi中提取出基于文本属性的多个特征值ai并生成特征值向量Ai=(ai1,ai2,…,ain;i=1,2,…,n),之后进入S2阶段;
2)生成数据块签名的S2阶段:在此阶段,客户端利用k个哈希函数将上述每个数据块mi的特征值向量Ai生成布隆过滤器,并将在布隆过滤器中生成的数位组作为数据块签名bfi,然后将由多个数据块mi和相应的数据块标签numk以及数据块签名bfi构成的CREATE请求分别上传到云服务提供商和第三方审计平台,之后进入S3阶段;
3)数据存储的S3阶段:在此阶段,云服务提供商接收到客户端上传的多个数据块mi后存储于云服务器中;第三方审计平台接收到客户端上传的CREATE 请求后存储数据块签名集bf1,bf2,…,bfn,并生成B-Tree审计索引,要求B-Tree 容度M≥4,B-Tree审计索引内部的每个布隆过滤器关键字由数据块签名bfi和数据块标签numi组成,之后进入S4阶段;
4)完整性挑战的S4阶段:在此阶段,客户端可发起云存储数据完整性挑战请求,第三方审计平台接收到挑战请求后,在B-Tree审计索引中随机选择一条或者多条分支作为验证路径S,验证路径S中包含的数据块数量需大于数据块总数的80%,然后将验证路径S封装为审计请求并发送给云服务提供商,之后进入 S5阶段;
5)挑战应答的S5阶段:在此阶段,云服务提供商接收到上述审计请求后,依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答req 并反馈给第三方审计平台,之后进入S6阶段;
6)校验结果计算的S6阶段:在此阶段,第三方审计平台根据数据完整性校验计算公式计算上述接收到的挑战应答req的校验结果,如果校验结果为0,则云存储数据完整性验证成功,第三方审计平台向客户端返回结果“正确”,否则验证失败,返回结果“失败”。
在步骤1)中,所述的特征值包括数字数量、字母数量和文本间隔符数量。
在步骤2)中,所述的数位组长度为20000位,布隆过滤器错误率为0.1%,其中布隆过滤器错误率P可由特征值个数n、数位组长度m和哈希函数的数量k 来决定,布隆过滤器错误率P与上述各参数之间的关系为:
在步骤3)中,所述的B-Tree审计索引需要满足以下7个条件:
条件1布隆过滤器中节点的关键字由数据块标签和对应的数据块签名构成;
条件2布隆过滤器中节点按数据块标签从大到小排列;
条件3任意非叶子节点最多只有M个子节点,且M>2,其中M为B-Tree 容度;
条件4根节点的子节点数为[2,M];
条件5根节点外的非叶子节点的子节点数为[M/2,M];
条件6每个节点存放至少个和至多M-1个数据块签名;
条件7非叶子节点的关键字数量比对应子节点少1。
在步骤3)中,所述的B-Tree审计索引支持包括数据块插入、删除和更新在内的动态数据操作,其中数据块插入方法包括按顺序进行的以下步骤:
步骤1-1)客户端计算需要插入的数据块mk的数据块标签numk以及数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送插入请求 Insert_C={numk:mk}和Insert_T={numk:bfk};
步骤1-2)云服务提供商接收到插入请求Insert_C={numk:mk}后,在云服务器中存储接收的数据块mk;
步骤1-3)第三方审计平台接收到插入请求Insert_T={numk:bfk}后,首先在布隆过滤器验证树中根据数据块标签numk查找数据块签名bfk的插入位置,然后将数据块签名bfk插入到节点中;插入完成后需对插入的节点进行判断,如果该节点存放的数据块签名bf数量大于B-Tree容度M,则需分裂该节点并对布隆过滤器验证树进行调整,保证布隆过滤器验证树在完成数据块插入操作后仍能满足布隆过滤器条件;
步骤1-4)当云服务提供商和第三方审计平台全部完成数据块插入操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk;
所述的数据块删除方法包括按顺序进行的以下步骤:
步骤2-1)客户端计算需要删除的数据块mk的数据块标签numk,然后分别向云服务提供商和第三方审计平台发送删除请求Delete_C={numk}和 Delete_T={numk};
步骤2-2)云服务提供商接收到删除请求Delete_C={numk}后,根据数据块标签numk查找该数据块mk并删除;
步骤2-3)第三方审计平台接收到删除请求Delete_T={numk}后,在布隆过滤器验证树中查找数据块标签为numk的节点并删除该数据块标签numk;该数据块mk删除后,节点需要判断删除数量是否满足每个节点至少存放(M 为B-Tree容度)和至多M-1个数位组的条件;如果该节点不满足,布隆过滤器验证树需要对该节点和临近节点进行合并操作,使得布隆过滤器验证树仍满足布隆过滤器条件;
步骤2-4)当云服务提供商和第三方审计平台分别完成数据块删除操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除操作完成;
所述的数据块更新方法包括按顺序进行的以下步骤:
步骤3-1)客户端计算需要更新的数据块mk的数据块标签numk和数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送更新请求 Update_C={numk:mk}和Update_T={numk:bfk};
步骤3-2)云服务提供商接收到更新请求Update_C={numk:mk}后,根据数据块标签numk寻找存储在云服务器中的数据块mk,并将该数据块mk替换成新数据块mk';
步骤3-3)第三方审计平台接收到更新请求Update_T={numk::bfk}后,根据数据块标签numk在布隆过滤器验证树中查找对应的校验数位组并替换为新数据块签名bfk';
步骤3-4)当云服务提供商和第三方审计平台完成数据块更新操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk。
在步骤5)中,所述的云服务提供商依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答的方法包括按顺序进行的下列步骤:
c)云服务提供商根据验证路径S依次查找对应的数据块mi;
d)从数据块mi中根据文本属性提取出校验元向量Ai;
c)将校验元向量Ai通过k个哈希函数生成长度为l的布隆过滤器而作为数据块mi的持有证据cfi;
d)将上述持有证据cfi按照验证路径S中数据块的顺序排列生成挑战应答 req。
在步骤6)中,所述的数据完整性审计计算公式如下:
其中bfi为第三方审计平台,cfi为云服务提供商提供的数据块的持有证据。
本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法用于云存储数据完整性审计时占用服务器存储较少,计算效率高,能够保证服务器的运行速度和反应速度,且支持数据的动态操作,能够提高数据完整性审计效率,可实现公开审计。
附图说明
图1为本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法模型图。
图2为B-Tree布隆过滤器结构图。
图3为本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法流程图。
具体实施方式
下面结合附图及具体实施例对本发明做进一步的说明,但下述实施例绝非对本发明有任何限制。
如图1所示,本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法所采用的系统包括客户端(Client Server,CS)、云服务提供商(Cloud Server Provider,CSP)和第三方审计平台(Third Party Audit,TPA),其中客户端将数据块加密上传并生成校验证据,云服务提供商存储数据块和生成数据块持有证据应答,第三方审计平台存储校验证据和进行数据完整性验证。
如图3所示,本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法包括按顺序进行的下列步骤:
1)数据预处理的S1阶段:在此阶段,客户端将用户的数据F分割为多个大小固定的数据块mi(,m1,m2,…,mn;i=1,2...,n),每个数据块mi具有一个数据块标签numk,然后从每个数据块mi中提取出基于文本属性的多个特征值ai并生成特征值向量Ai=(ai1,ai2,…,ain;i=1,2,…,n),之后进入S2阶段;
所述的特征值包括数字数量、字母数量和文本间隔符数量等;
2)生成数据块签名的S2阶段:在此阶段,客户端利用k个哈希函数将上述每个数据块mi的特征值向量Ai生成布隆过滤器,并将在布隆过滤器中生成的数位组作为数据块签名bfi,然后将由多个数据块mi和相应的数据块标签numk以及数据块签名bfi构成的CREATE请求分别上传到云服务提供商和第三方审计平台,之后进入S3阶段;
所述的数位组长度为20000位,布隆过滤器错误率为0.1%,其中布隆过滤器错误率P可由特征值个数n、数位组长度m和哈希函数的数量k来决定,布隆过滤器错误率P与上述各参数之间的关系为:
3)数据存储的S3阶段:在此阶段,云服务提供商接收到客户端上传的多个数据块mi后存储于云服务器中;第三方审计平台接收到客户端上传的CREATE 请求后存储数据块签名集bf1,bf2,…,bfn,并生成B-Tree审计索引,要求B-Tree 容度M≥4,B-Tree审计索引内部的每个布隆过滤器关键字由数据块签名bfi和数据块标签numi组成,之后进入S4阶段;
如图2所示,所述的B-Tree审计索引需要满足以下7个条件:
条件1布隆过滤器中节点的关键字由数据块标签和对应的数据块签名构成;
条件2布隆过滤器中节点按数据块标签从大到小排列;
条件3任意非叶子节点最多只有M个子节点,且M>2,其中M为B-Tree 容度;
条件4根节点的子节点数为[2,M];
条件5根节点外的非叶子节点的子节点数为[M/2,M];
条件6每个节点存放至少个和至多M-1个数据块签名;
条件7非叶子节点的关键字数量比对应子节点少1。
所述的B-Tree审计索引支持包括数据块插入、删除和更新在内的动态数据操作,其中数据块插入方法包括按顺序进行的以下步骤:
步骤1-1)客户端计算需要插入的数据块mk的数据块标签numk以及数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送插入请求 Insert_C={numk:mk}和Insert_T={numk:bfk};
步骤1-2)云服务提供商接收到插入请求Insert_C={numk:mk}后,在云服务器中存储接收的数据块mk;
步骤1-3)第三方审计平台接收到插入请求Insert_T={numk:bfk}后,首先在布隆过滤器验证树中根据数据块标签numk查找数据块签名bfk的插入位置,然后将数据块签名bfk插入到节点中;插入完成后需对插入的节点进行判断,如果该节点存放的数据块签名bf数量大于B-Tree容度M,则需分裂该节点并对布隆过滤器验证树进行调整,保证布隆过滤器验证树在完成数据块插入操作后仍能满足布隆过滤器条件;
步骤1-4)当云服务提供商和第三方审计平台全部完成数据块插入操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk。
所述的数据块删除方法包括按顺序进行的以下步骤:
步骤2-1)客户端计算需要删除的数据块mk的数据块标签numk,然后分别向云服务提供商和第三方审计平台发送删除请求Delete_C={numk}和 Delete_T={numk};
步骤2-2)云服务提供商接收到删除请求Delete_C={numk}后,根据数据块标签numk查找该数据块mk并删除;
步骤2-3)第三方审计平台接收到删除请求Delete_T={numk}后,在布隆过滤器验证树中查找数据块标签为numk的节点并删除该数据块标签numk;该数据块mk删除后,节点需要判断删除数量是否满足每个节点至少存放(M 为B-Tree容度)和至多M-1个数位组的条件;如果该节点不满足,布隆过滤器验证树需要对该节点和临近节点进行合并操作,使得布隆过滤器验证树仍满足布隆过滤器条件;
步骤2-4)当云服务提供商和第三方审计平台分别完成数据块删除操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除操作完成。
所述的数据块更新方法包括按顺序进行的以下步骤:
步骤3-1)客户端计算需要更新的数据块mk的数据块标签numk和数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送更新请求 Update_C={numk:mk}和Update_T={numk:bfk};
步骤3-2)云服务提供商接收到更新请求Update_C={numk:mk}后,根据数据块标签numk寻找存储在云服务器中的数据块mk,并将该数据块mk替换成新数据块mk';
步骤3-3)第三方审计平台接收到更新请求Update_T={numk::bfk}后,根据数据块标签numk在布隆过滤器验证树中查找对应的校验数位组并替换为新数据块签名bfk';
步骤3-4)当云服务提供商和第三方审计平台完成数据块更新操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk。
4)完整性挑战的S4阶段:在此阶段,客户端可发起云存储数据完整性挑战请求,第三方审计平台接收到挑战请求后,在B-Tree审计索引中随机选择一条或者多条分支作为验证路径S,验证路径S中包含的数据块数量需大于数据块总数的80%,然后将验证路径S封装为审计请求并发送给云服务提供商,之后进入 S5阶段;
5)挑战应答的S5阶段:在此阶段,云服务提供商接收到上述审计请求后,依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答req 并反馈给第三方审计平台,之后进入S6阶段;
所述的云服务提供商依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答的方法包括按顺序进行的下列步骤:
a)云服务提供商根据验证路径S依次查找对应的数据块mi;
b)从数据块mi中根据文本属性提取出校验元向量Ai;
c)将校验元向量Ai通过k个哈希函数生成长度为l的布隆过滤器而作为数据块mi的持有证据cfi;
d)将上述持有证据cfi按照验证路径S中数据块的顺序排列生成挑战应答 req。
6)校验结果计算的S6阶段:在此阶段,第三方审计平台根据数据完整性校验计算公式计算上述接收到的挑战应答req的校验结果,如果校验结果为0,则云存储数据完整性验证成功,第三方审计平台向客户端返回结果“正确”,否则验证失败,返回结果“失败”。
所述的数据完整性审计计算公式如下:
其中bfi为第三方审计平台,cfi为云服务提供商提供的数据块的持有证据。
本发明提供的基于B-Tree布隆过滤器的云存储数据完整性审计方法的实施例如下:
首先客户端将用户的数据F分割为多个大小固定的数据块mi(i=1,2...,n),分别提取出每个数据块m(m1,m2,…,mn)的特征值并生成特征值向量Ai=(ai1,ai2,…, ai)(i=1,2,…,n),特征值包括基于文本属性的数字数量、字母数量、文本间隔符数量等;将每个数据块mi形成的特征值向量Ai通过k个哈希函数生成布隆过滤器,并将在布隆过滤器中生成的数位组作为数据块签名bfi,(i=1,2,…, n),然后将数据块m1,m2,…,mn和相应的包含数据块标签numk和数据块签名 bfi的请求CREATE={(num1:bf1),(num2:bf2),…,(numn:bfn)}分别上传到云服务提供商和第三方审计平台。
然后云服务提供商存储客户端上传的数据块m1,m2,…,mn,第三方审计平台接收到CREAT请求后存储数据块标签集bf1,bf2,…,bfn,并生成B-Tree 审计索引,要求B-Tree容度M≥4。B-Tree审计索引内部的每个布隆过滤器关键字由数据块签名bfi和数据块标签numi组成。
然后进入挑战阶段,客户端发起挑战请求CHL,第三方审计平台接收到挑战请求CHL后,在布隆过滤器验证树中随机选择一条或多条验证路径S={num1, num2,…,numn},验证路径S中包含的数据块数量需大于数据块总数的80%,然后第三方审计平台将生成的验证路径S封装为审计请求TPA_CHL={S1,S2,…, Sn}并发送给云服务提供商,要求云服务提供商提供审计请求TPA_CHL中包含的数据块的持有证据。
最后进入应答阶段,云服务提供商接收到审计请求TPA_CHL后,根据该请求中包含的数据块标签numi查找对应的数据块mi,生成校验元向量Ai=(ai1, ai2,…,ain)(i=1,2,…,n),通过k个哈希函数生成长度为l的布隆过滤器而作为数据块的持有证据cfi,生成挑战应答req={cf1,cf2,…,cfn}并反馈给第三方审计平台,第三方审计平台根据下面的数据完整性审计计算公式计算校验结果α:
bfi为第三方审计平台存储的数据块签名,cfi为客户端生成的数据块的持有证据。若校验结果α=0,则云存储数据完整性验证成功,第三方审计平台向客户端返回结果“正确”,否则验证失败,返回结果“失败”。
Claims (7)
1.一种基于B-Tree布隆过滤器的云存储数据完整性审计方法,所采用的系统包括客户端、云服务提供商和第三方审计平台,其中客户端将数据块加密上传并生成校验证据,云服务提供商存储数据块和生成数据块持有证据应答,第三方审计平台存储校验证据和进行数据完整性验证;其特征在于:所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法包括按顺序进行的下列步骤:
1)数据预处理的S1阶段:在此阶段,客户端将用户的数据F分割为多个大小固定的数据块mi(m1,m2,…,mn;i=1,2...,n),每个数据块mi具有一个数据块标签numk,然后从每个数据块mi中提取出基于文本属性的多个特征值ai并生成特征值向量Ai=(ai1,ai2,…,ain;i=1,2,…,n),之后进入S2阶段;
2)生成数据块签名的S2阶段:在此阶段,客户端利用k个哈希函数将上述每个数据块mi的特征值向量Ai生成布隆过滤器,并将在布隆过滤器中生成的数位组作为数据块签名bfi,然后将由多个数据块mi和相应的数据块标签numk以及数据块签名bfi构成的CREATE请求分别上传到云服务提供商和第三方审计平台,之后进入S3阶段;
3)数据存储的S3阶段:在此阶段,云服务提供商接收到客户端上传的多个数据块mi后存储于云服务器中;第三方审计平台接收到客户端上传的CREATE请求后存储数据块签名集bf1,bf2,…,bfn,并生成B-Tree审计索引,要求B-Tree容度M≥4,B-Tree审计索引内部的每个布隆过滤器关键字由数据块签名bfi和数据块标签numi组成,之后进入S4阶段;
4)完整性挑战的S4阶段:在此阶段,客户端可发起云存储数据完整性挑战请求,第三方审计平台接收到挑战请求后,在B-Tree审计索引中随机选择一条或者多条分支作为验证路径S,验证路径S中包含的数据块数量需大于数据块总数的80%,然后将验证路径S封装为审计请求并发送给云服务提供商,之后进入S5阶段;
5)挑战应答的S5阶段:在此阶段,云服务提供商接收到上述审计请求后,依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答req并反馈给第三方审计平台,之后进入S6阶段;
6)校验结果计算的S6阶段:在此阶段,第三方审计平台根据数据完整性校验计算公式计算上述接收到的挑战应答req的校验结果,如果校验结果为0,则云存储数据完整性验证成功,第三方审计平台向客户端返回结果“正确”,否则验证失败,返回结果“失败”。
2.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤1)中,所述的特征值包括数字数量、字母数量和文本间隔符数量。
3.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤2)中,所述的数位组长度为20000位,布隆过滤器错误率为0.1%,其中布隆过滤器错误率P可由特征值个数n、数位组长度m和哈希函数的数量k来决定,布隆过滤器错误率P与上述各参数之间的关系为:
4.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤3)中,所述的B-Tree审计索引需要满足以下7个条件:
条件1 布隆过滤器中节点的关键字由数据块标签和对应的数据块签名构成;
条件2 布隆过滤器中节点按数据块标签从大到小排列;
条件3 任意非叶子节点最多只有M个子节点,且M>2,其中M为B-Tree容度;
条件4 根节点的子节点数为[2,M];
条件5 根节点外的非叶子节点的子节点数为[M/2,M];
条件6 每个节点存放至少个和至多M-1个数据块签名;
条件7 非叶子节点的关键字数量比对应子节点少1。
5.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤3)中,所述的B-Tree审计索引支持包括数据块插入、删除和更新在内的动态数据操作,其中数据块插入方法包括按顺序进行的以下步骤:
步骤1-1)客户端计算需要插入的数据块mk的数据块标签numk以及数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送插入请求Insert_C={numk:mk}和Insert_T={numk:bfk};
步骤1-2)云服务提供商接收到插入请求Insert_C={numk:mk}后,在云服务器中存储接收的数据块mk;
步骤1-3)第三方审计平台接收到插入请求Insert_T={numk:bfk}后,首先在布隆过滤器验证树中根据数据块标签numk查找数据块签名bfk的插入位置,然后将数据块签名bfk插入到节点中;插入完成后需对插入的节点进行判断,如果该节点存放的数据块签名bf数量大于B-Tree容度M,则需分裂该节点并对布隆过滤器验证树进行调整,保证布隆过滤器验证树在完成数据块插入操作后仍能满足布隆过滤器条件;
步骤1-4)当云服务提供商和第三方审计平台全部完成数据块插入操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk;
所述的数据块删除方法包括按顺序进行的以下步骤:
步骤2-1)客户端计算需要删除的数据块mk的数据块标签numk,然后分别向云服务提供商和第三方审计平台发送删除请求Delete_C={numk}和Delete_T={numk};
步骤2-2)云服务提供商接收到删除请求Delete_C={numk}后,根据数据块标签numk查找该数据块mk并删除;
步骤2-3)第三方审计平台接收到删除请求Delete_T={numk}后,在布隆过滤器验证树中查找数据块标签为numk的节点并删除该数据块标签numk;该数据块mk删除后,节点需要判断删除数量是否满足每个节点至少存放(M为B-Tree容度)和至多M-1个数位组的条件;如果该节点不满足,布隆过滤器验证树需要对该节点和临近节点进行合并操作,使得布隆过滤器验证树仍满足布隆过滤器条件;
步骤2-4)当云服务提供商和第三方审计平台分别完成数据块删除操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除操作完成;
所述的数据块更新方法包括按顺序进行的以下步骤:
步骤3-1)客户端计算需要更新的数据块mk的数据块标签numk和数据块签名bfk,然后分别向云服务提供商和第三方审计平台发送更新请求Update_C={numk:mk}和Update_T={numk:bfk};
步骤3-2)云服务提供商接收到更新请求Update_C={numk:mk}后,根据数据块标签numk寻找存储在云服务器中的数据块mk,并将该数据块mk替换成新数据块mk';
步骤3-3)第三方审计平台接收到更新请求Update_T={numk::bfk}后,根据数据块标签numk在布隆过滤器验证树中查找对应的校验数位组并替换为新数据块签名bfk';
步骤3-4)当云服务提供商和第三方审计平台完成数据块更新操作后,客户端对云服务提供商进行一次数据完整性校验,校验成功后客户端删除本地存储的数据块mk。
6.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤5)中,所述的云服务提供商依次计算验证路径S中包含的数据块mi的持有证据cfi,然后生成挑战应答的方法包括按顺序进行的下列步骤:
a)云服务提供商根据验证路径S依次查找对应的数据块mi;
b)从数据块mi中根据文本属性提取出校验元向量Ai;
c)将校验元向量Ai通过k个哈希函数生成长度为l的布隆过滤器而作为数据块mi的持有证据cfi;
d)将上述持有证据cfi按照验证路径S中数据块的顺序排列生成挑战应答req。
7.根据权利要求1所述的基于B-Tree布隆过滤器的云存储数据完整性审计方法,其特征在于:在步骤6)中,所述的数据完整性审计计算公式如下:
其中bfi为第三方审计平台,cfi为云服务提供商提供的数据块的持有证据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710702675.4A CN107612969B (zh) | 2017-08-16 | 2017-08-16 | 基于B-Tree布隆过滤器的云存储数据完整性审计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710702675.4A CN107612969B (zh) | 2017-08-16 | 2017-08-16 | 基于B-Tree布隆过滤器的云存储数据完整性审计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612969A true CN107612969A (zh) | 2018-01-19 |
CN107612969B CN107612969B (zh) | 2020-01-14 |
Family
ID=61064783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710702675.4A Active CN107612969B (zh) | 2017-08-16 | 2017-08-16 | 基于B-Tree布隆过滤器的云存储数据完整性审计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612969B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595538A (zh) * | 2018-04-04 | 2018-09-28 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
WO2021007863A1 (en) * | 2019-07-18 | 2021-01-21 | Nokia Technologies Oy | Integrity auditing for multi-copy storage |
CN112491529A (zh) * | 2020-11-12 | 2021-03-12 | 安徽工业大学 | 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统 |
CN116992494A (zh) * | 2023-09-27 | 2023-11-03 | 四川启明芯智能科技有限公司 | 一种用于景区数据流通的安全保护方法、设备和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699851A (zh) * | 2013-11-22 | 2014-04-02 | 杭州师范大学 | 一种面向云存储的远程数据完整性验证方法 |
CN104102714A (zh) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | 基于累加器和布隆过滤器的外包数据查询验证方法及系统 |
CN104902027A (zh) * | 2015-06-12 | 2015-09-09 | 电子科技大学 | 面向云存储服务的动态数据完整性审计方案 |
CN105072086A (zh) * | 2015-07-06 | 2015-11-18 | 武汉科技大学 | 一种基于MapReduce的云存储批量审计方法 |
US20160080204A1 (en) * | 2014-09-16 | 2016-03-17 | Zscaler, Inc. | Systems and methods for detecting and managing cloud configurations |
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
CN106101257A (zh) * | 2016-07-07 | 2016-11-09 | 广东工业大学 | 一种基于布隆过滤器的云存储数据管理方法及装置 |
US20170011079A1 (en) * | 2015-07-09 | 2017-01-12 | Zscaler, Inc. | Systems and methods for tracking and auditing changes in a multi-tenant cloud system |
CN106961431A (zh) * | 2017-03-17 | 2017-07-18 | 福建师范大学 | 角色对称加密所有权证明的方法及系统 |
-
2017
- 2017-08-16 CN CN201710702675.4A patent/CN107612969B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699851A (zh) * | 2013-11-22 | 2014-04-02 | 杭州师范大学 | 一种面向云存储的远程数据完整性验证方法 |
CN104102714A (zh) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | 基于累加器和布隆过滤器的外包数据查询验证方法及系统 |
US20160080204A1 (en) * | 2014-09-16 | 2016-03-17 | Zscaler, Inc. | Systems and methods for detecting and managing cloud configurations |
CN104902027A (zh) * | 2015-06-12 | 2015-09-09 | 电子科技大学 | 面向云存储服务的动态数据完整性审计方案 |
CN105072086A (zh) * | 2015-07-06 | 2015-11-18 | 武汉科技大学 | 一种基于MapReduce的云存储批量审计方法 |
US20170011079A1 (en) * | 2015-07-09 | 2017-01-12 | Zscaler, Inc. | Systems and methods for tracking and auditing changes in a multi-tenant cloud system |
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
CN106101257A (zh) * | 2016-07-07 | 2016-11-09 | 广东工业大学 | 一种基于布隆过滤器的云存储数据管理方法及装置 |
CN106961431A (zh) * | 2017-03-17 | 2017-07-18 | 福建师范大学 | 角色对称加密所有权证明的方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595538A (zh) * | 2018-04-04 | 2018-09-28 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
CN108595538B (zh) * | 2018-04-04 | 2020-05-01 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
WO2021007863A1 (en) * | 2019-07-18 | 2021-01-21 | Nokia Technologies Oy | Integrity auditing for multi-copy storage |
CN112491529A (zh) * | 2020-11-12 | 2021-03-12 | 安徽工业大学 | 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统 |
CN116992494A (zh) * | 2023-09-27 | 2023-11-03 | 四川启明芯智能科技有限公司 | 一种用于景区数据流通的安全保护方法、设备和介质 |
CN116992494B (zh) * | 2023-09-27 | 2023-12-08 | 四川启明芯智能科技有限公司 | 一种用于景区数据流通的安全保护方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107612969B (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102938767B (zh) | 基于云数据外包系统的高效可验证的模糊关键词搜索方法 | |
CN108039943B (zh) | 一种可验证的加密搜索方法 | |
CN103268460B (zh) | 一种云存储数据完整性验证方法 | |
CN107612969A (zh) | 基于B‑Tree布隆过滤器的云存储数据完整性审计方法 | |
CN106982203A (zh) | 基于区块链技术的鲁棒的atm网络系统及其信息处理方法 | |
CN105787389B (zh) | 云文件完整性公开审计证据生成方法及公开审计方法 | |
CN107171812A (zh) | 一种基于区块链的无密钥签名基础设施构建方法 | |
CN110300112A (zh) | 区块链密钥分层管理方法 | |
CN106845280A (zh) | 一种Merkle哈希树云数据完整性审计方法及系统 | |
CN106027240B (zh) | 一种基于属性的密钥隔离签名方法 | |
CN106603561B (zh) | 一种云存储中的块级加密方法及多粒度去重复方法 | |
CN111209591B (zh) | 一种按时间排序的存储结构与快速查询的方法 | |
CN109493061A (zh) | 一种区块链的数据的验证方法、装置、电子设备及存储介质 | |
CN104978239A (zh) | 一种实现多备份数据动态更新的方法、装置及系统 | |
CN108123934B (zh) | 一种面向移动端的数据完整性校验方法 | |
CN106776904A (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
CN107707354A (zh) | 一种基于椭圆曲线加密法的云存储数据验证方法及系统 | |
CN106897368A (zh) | Merkle哈希求和树及其可验证数据库更新操作方法 | |
CN110958109B (zh) | 基于层次默克尔哈希树的轻型动态数据完整性审计方法 | |
CN109088719B (zh) | 外包数据库多关键词可验证密文搜索方法、数据处理系统 | |
CN110008755B (zh) | 一种云存储可撤销动态数据完整性验证系统及方法 | |
CN110263584A (zh) | 一种基于区块链的数据完整性审计方法和系统 | |
CN107423637A (zh) | 支持云上电子病历数据可追踪的完整性审计方法 | |
CN106611136A (zh) | 云存储中一种数据篡改验证方法 | |
CN106991148A (zh) | 一种支持全更新操作的数据库验证系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |