1.一种基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,包括以下步骤:步骤1,云存储服务器生成并公开系统参数;
步骤2,用户根据云存储服务器参数生成用于标签的公钥和私钥、对称加密算法的密钥,以及数据认证元的辅助值;
步骤3,用户将需要外包到云存储服务器的数据文件进行分块,并将每个分块进一步划分成数据字段,生成数据文件的标签,并对所述的数据文件进行盲化处理得到密文文件,然后生成数据认证元集合;最后用户将数据文件的标签,密文文件以及数据认证元集合存储到云存储服务器,然后删除用户本地存储的数据文件和密文文件;
步骤4,用户向第三方审计者发送审计请求,第三方审计者收到不同用户发来的审计请求后,验证这些审计请求的合法性,若存在不合法的审计请求则拒绝;对于合法的审计请求,第三方审计者生成审计挑战并发送给云存储服务器;
步骤5,云存储服务器根据所述审计挑战生成审计相应的证明,并将审计证明返回给第三方审计者;
步骤6,第三方审计者收到审计证明后进行验证,经验证如果所述的数据文件被云存储服务器保存完整,则给相应的用户返回审计报告;如数据文件发生损坏,则采用卢卡斯序列查找法定位数据文件中的错误文件;所述卢卡斯序列查找法包括:判断被审计的数据文件的总数是否为卢卡斯数列中的一个数,如果是则执行步骤6.1,不是则执行步骤6.2;
步骤6.1,第三方审计者将被审计的数据文件按照卢卡斯序列的递归关系分为两部分,其中较少部分是审计过程中未出错或出错次数少的数据文件组成,将较少一部分的数据文件通过云存储服务器进行审计后,第三方审计者进行验证:如果验证通过,则错误文件位于较多一部分数据文件中,此时对所述较多一部分数据文件再次按照卢卡斯序列的递归关系划分成两部分,较少部分是在该两部分中审计未出错或出错次数少的数据文件组成,并进行审计、验证;
如果验证不通过,则较少一部分数据文件中包含错误文件,同时较多的一部分数据文件中可能包含错误文件,则将所述较少一部分数据文件再次进行划分,将此次划分后得到的较少部分的数据文件、首次划分后得到的较多一部分的数据文件进行审计、验证;
步骤6.2,被审计的数据文件总数为任意一个正整数M,第三方审计者将M划分成一个小于M且最接近M的卢卡斯数和剩余数之和,利用此法对被审计的数据文件进行m次循环划分,从而将所述的被审计的数据文件共划分为m+1个子部分,再将这m+1个子部分的数据文件划分成两部分,并将这两部分中较少部分的数据文件进行审计、验证。
2.如权利要求1所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤1所述的云存储服务器生成并公开系统参数,包括:云存储服务器生成并公开系统参数cp={p,G,GT,g,e,h,E,ψ,π},其中p为一个大素数,G、GT为p阶的乘法循环群,g为乘法循环群G的生成元,e为G×G→GT上的一个双线性对,h为hash函数h: E为对称加密算法,伪随机函数ψ: π为伪随机置换。
3.如权利要求2所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤2的具体过程包括:
步骤2.1,记所述的云存储服务器中共注册有N个用户,每个用户Uθ独立地选择一个随机值 作为用户Uθ的私钥,并生成 作为用户Uθ的公钥;θ∈{1,2,···,N};
步骤2.2,用户Uθ设置对称加密算法E的密钥 并随机选择两个值作为生成数据认证元的辅助值;
(θ) (θ) (θ)
步骤2.3,用户Uθ公开K 、α ,保密k 、 和
4.如权利要求3所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤3的具体过程包括:
步骤3.1,数据文件的划分
(θ)
用户Uθ将需要外包到云存储服务器的数据文件F 顺序分割成n块,即(θ)
每个 数 据块 f i 进 一步 分 成s 个数 据 字段 ,即其中每个元素 i∈{1,2,...,n},j∈{1,2,···,s};
步骤3.2,生成标签
(θ)
用户Uθ设置数据文件F 的身份标识符 中包含数据文件的名字、版本(θ) (θ)
号和文件分类号,用户Uθ生成数据文件F 在私钥k 下的签名 产生数据文件(θ)
F 的标签
步骤3.3,数据文件的盲化处理用户Uθ利用所述的对称加密算法E,用以下方式盲化数据文件划分成的数据字段:为对称加密算法E在用户Uθ的保密密钥 控制下对(j,i)加密后所得的密文,然后与每个数据字段 做模p加运算,得到加密后字段 加密字段组成加密数据块最终文件 被加密为
步骤3.4,生成数据认证元集合用户Uθ利用下式得到数据认证元集合:其中 i∈{1,2,···,n},j∈{1 ,2,···,s},则数据认证元集合为
步骤3.5,文件的存储及审计请求的发送(θ) (θ)′ (θ)
用户Uθ发送存储文件信息{TagF ,F ,Φ }给云存储服务器进行存储,当收到云存(θ) (θ)′
储服务器已安全存储的反馈,用户Uθ删除本地存储的数据文件F 及其密文文件F 。
5.如权利要求4所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤4的具体过程包括:
用户Uθ向第三方审计者发送审计请求,第三方审计者收到来自N′个不同用户发来的审计请求后,验证这些审计请求中用户和文件的合法性,若存在不合法的审计请求,则第三方审计者拒绝并剔除不合法的审计请求,N′≤N;对于合法的审计请求,第三方审计者按照以下步骤生成审计挑战:
第三方审计者随机选取一个挑战数目c,c为一个小于等于n的正整数,选取一个随机值用于多项式函数,选择 和 分别作为伪随机函数ψ和伪随机置换π的密钥,输出审计挑战Q={c,r,kψ,kπ}并发送给云存储服务器。
6.如权利要求5所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤5的具体过程包括:
步骤5.1,云存储服务器接收到审计挑战Q之后,将 中的每一个值 作为伪随机置换π和伪随机函数ψ的输入,生成 作为被挑战数据块的位置索引,形成新位置索引集I;生成 作为原 扩散的相应位置 的系数;
(θ) (θ)′ (θ)
步骤5.2,云存储服务器结合用户发来的存储文件信息{TagF ,F ,Φ },生成以下证据γ,ξ和数据认证元σ:
(θ)′
首先对盲化后的加密矩阵F 逐列计算 j∈{1,2,···,s},其中 为用户Uθ对 加密后所得密文字段;其次利上述计算的 构造一个s次多项式函数 其中s是字段个数;最后将第三方审计者选择的(θ)
随机值r带入函数φ(x)得γ =φ(r),并生成云存储服务器求得s‑1次多 项式 计算生成
(θ)
云存储服务器利用用户给它发的数据认证元集合Φ ,生成 和聚合的挑战数据完整性认证元
步骤5.3,云存储服务器输出审计证明P={γ,ξ,σ},并将审计证明返回给第三方审计者。
7.如权利要求6所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤6中所述的第三方审计者收到审计证明后进行验证,经验证如果所述的数据文件被云存储服务器保存完整,则给相应的用户返回审计报告,包括:(θ) (1)
第三方审计者接收到审计证明P后,利用系统公开参数α ,请求审计用户的公钥K ,K(2) (θ) (N′)
,...,K ,...,K , 被审计文件信息 以及审计请求Req,根据下式生成辅助信息K,
第三方审计者验证下式是否成立:如果成立,第三方审计者认为所有被审计的数据文件均被云服务器保存完整,第三方审计者给相应的用户返回相应的审计报告;如果不成立,则第三方审计者认为某些审计的数据文件发生损坏。
8.如权利要求7所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤6.1的具体过程包括:
被审计的数据文件的总数为一个卢卡斯数列中的一个数,称被审计的数据文件总数为卢卡斯数L(d);
步骤6.1.1,因卢卡斯数L(d)=L(d‑1)+L(d‑2),第三方审计者将被审计的数据文件分为两部分,第一部分由第三方审计者在审计过程中未出错或出错次数较少的L(d‑2)个文件组成,第二部分由剩余的L(d‑1)个数据文件组成,其中第一部分中数据文件的数目少于第二部分;
所述的未出错或出错次数较少是指:第三方审计者记录了所有被审计过的文件的出错次数a/审计总次数b,如果某文件审计未出过错,则a=0,a/b=0,对未被审计的文件赋值a/b=0/0;所述的第一部分由被审计文件中a/b值最小的文件组成;
步骤6.1.2,第三方审计者对云存储服务器提交第一部分的L(d‑2)个数据文件的审计申请,云存储服务器返回该云存储服务器提交第一部分的审计证明,第三方审计者对该审计证明进行验证:
①当审计证明通过第三方审计者的验证时,则说明错误文件一定位于第二部分L(d‑1)个数据文件中,将第二部分L(d‑1)个数据文件分为L(d‑3)和L(d‑2)两个部分,其中较少的部分,即L(d‑3)个数据是第三方审计者从L(d‑1)个数据文件中审计未出错或出错次数少的数据文件组成,剩下的组成了L(d‑2)部分,将L(d‑3)个数据文件通过云存储服务器进行审计,云存储服务器返回L(d‑3)个数据文件的审计证明,第三方审计者对继续该审计证明进行验证;
②当审计证明未通过第三方审计者的验证时,则说明第一部分的L(d‑2)个文件中包含错误文件,而第二部分L(d‑1)个数据文件中包含或不包含错误文件;将第一部分L(d‑2)个数据文件分为L(d‑4)和L(d‑3)两个部分,将其中较少一部分的L(d‑4)个数据文件、首次划分后得到的第二部分L(d‑1)个数据文件云存储服务器进行审计,云存储服务器返回这两部分文件的审计证明,第三方审计者继续对这两个审计证明分别进行验证。
9.如权利要求8所述的基于卢卡斯序列定位错误文件的批量云审计方法,其特征在于,步骤6.2的具体过程包括:
记被审计的数据文件总数为M,第三方审计者将被审计的数据文件分成两部分,第一部分包含L1(d)个数据文件,其中L1(d)是小于M的最大卢卡斯数,则第二部分包含M‑L1(d)个数据文件;将第二部分M‑L1(d)个数据文件分为两部分,第一部分包含L2(d)个数据文件,其中L2(d)是一个小于M‑L1(d)的最大卢卡斯数,第二部分包含M‑L1(d)‑L2(d)个数据文件;
经过有限m次的循环操作,M个数据文件可被分为m+1子部分,M可表示为如下形式:M=L1(d)+L2(d)+…+Lm(d)+Lm+1(d);
将所述的m+1子部分的数据文件划分成两部分,选择L(d‑2)=L1(d‑2)+…+Lm+1(d‑2)个数据文件作为第一大部分,选择L(d‑1)=L1(d‑1)+…+Lm+1(d‑1)个数据文件作为第二大部分;将数目较少的第一大部分的数据文件通过云存储服务器进行审计,云存储服务器返回第一大部分L(d‑2)个数据文件的审计证明,第三方审计者对该审计证明进行验证。