发明内容
本发明所要解决的技术问题是,提供一种有效保证云存储数据安全审计方法,此方法不需要计算花销很大的双线性对。
本发明为解决上述技术问题所采样的技术方式是,无双线性对的云存储数据安全审计方法,包括以下步骤:
1)系统初始化
1-1)将数据文件M分成n个数据块,这n个数据块分别分成在Zq中的k个元素,q为大素数,Zq为模q的剩余类环;
1-2)系统产生伪随机数发生器PRG:伪随机函数PRF:Kprf×I→Zq,
其中,→表示映射至箭头方向,Kprg,Kprf分别为伪随机数发生器PRG和伪随机函数PRF的私钥集合,表示定义在模q剩余类环上的k维向量,I为文件中n个数据块的索引指数集合;
1-3)用户选取使得gq≡1 mod p,∈表示属于,≡表示恒等于,表示表示模p剩余类环中的非零元,mod表示取模,g为q阶循环群的生成元,记此循环群为G;接着均匀随机地选取私钥x,且1<x<q,利用私钥x计算公钥y,y≡gxmod p,并随机均匀地产生密钥对skp=(skprg,skprf),其中skprg∈Kprg,skprf∈Kprf;
1-4)用户选取一个轻量级对称密码算法ε,对称密码算法ε的密钥为τ,并设置一个安全的哈希函数H:G→Zq;
2)签名步骤
2-1)用户计算第j个数据块mj的同态消息认证码tj,其中j=1,2,…,n,中间变量l∈{1,…,k},中间变量bj←PRF(skprf,j)∈Zq,PRG(skprg)表示利用密钥skprg作为伪随机数发生器输入,伪随机数发生器生成的k个随机数;PRF(skprf,j)表示利用密钥skprf作为伪随机函数输入,伪随机函数输出为第j个数据生成的随机数;
2-2)用户调用Schnorr变型签名算法对每一个数据块mj的同态消息认证码tj进行签名:随机选取随机数kj←Zq,计算签名数据rj与签名数据sj,sj≡(rj'kj+tjx)mod q,其中,rj'≡rj mod q,记同态消息认证码tj的签名为σj=(rj,sj)这样数据文件M的n个数据块消息认证码的签名集合为Ψ={σj}1≤j≤n;
2-3)用户再调用轻量级对称密码算法ε对每一个数据块进行加密,数据文件 被加密为
2-4)用户将加密数据块与数据块消息认证码的签名集合{M',Ψ}发送给服务器,并且将原始数据文件M与消息认证码的签名集合Ψ在用户端删除;
3)审计证明产生步骤
3-1)用户向可信审计者TPA发送审计请求信息;TPA接到请求信息后,产生审计挑战信息chal={(j,yj)}j∈J,TPA向云服务器发送审计挑战信息chal;挑战信息数据j∈J,J为TPA在集合{1,2,...,n}中随机选取含有c个元素的集合,其中n表示存储在云服务器上的数据块的总数,c为集合J的元素个数,yj为TPA产生相应于挑战信息数据j的匹配系数;
3-2)当云服务器接到审计挑战信息chal,云服务器生成审计响应信息(μ,r,s,T):
计算响应信息数据∏表示累乘;
计算响应信息数据∑表示累加;
计算中间数据其中l∈{1,…,k}
云服务器再选择一个随机数ηl←Zq,计算并且盲化中间数据μ′l为μl≡μ′l+ηlH(Tl),得到响应信息数据μ=(μ1,…,μk)、T=(T1,…,Tk),最后云服务器发送审计响应信息(μ,r,s,T)至TPA;
4)审计证明验证步骤:
当TPA接到云服务器发给他的审计响应信息(μ,r,s,T),TPA调用伪随机数发生器PRG、伪随机函数PRF以及轻量级对称密码算法ε,TPA验证审计响应信息的正确性如下:
4-1)计算中间变量与bj←PRF(skprf,j)∈Zq,其中j∈J。
4-2)计算中间变量 与 以及哈希函数H(Tl),其中l∈{1,…,k},ετ为密钥为τ的轻量级对称密码算法
4-3)验证是否成立;如是,则表示用户存储服务器上的数据块是完整且安全,如否,表示用户存储服务器上的数据块已被修改。
本发明的有益效果是,用户将自己的数据块加密后放到云服务器上,以防止数据信息的泄露。同时,用户让可信审计者对数据进行审计,并保证数据信息不会泄露给可信审计者;根据本发明的数据审计方案,不需要计算花销很大的双线性就能对云存储数据进行安全审计。
具体实施方式
本发明的步骤分为4个部分:
系统初始化:系统对数据文件进行分块处理,生成一个伪随机数发生器,一个伪随机函数。系统再选取一个轻量级对称密码算法,以及一个安全的哈希函数。
签名步骤:用户首先调用伪随机数发生器以及伪随机函数生成用以产生数据块同态消息认证码的匹配系数,采用Schnorr变型签名算法对其进行签名,再调用一个轻量级对称密码算法对每一个数据块进行加密盲化。最后将同态消息认证码的签名集合以及盲化后的数据文件发送到云服务器,并且在用户端将签名集合以及原来的数据文件删除。
审计证明产生步骤:当用户向可信审计者发送审计请求信息,可信审计者则向云服务器发送审计挑战信息,云服务器根据审计挑战信息计算审计响应证明并发送给可信审计者。
审计证明验证步骤:接收到云服务器的审计响应证明后,审计者调用伪随机数发生器,伪随机函数,以及轻量级对称密码算法,对审计证明进行验证。
以下给出一个具体实施例说明:
实施中用到的符号说明见下表:
(一)系统初始化
1)将数据文件M(文件名为name)分成n个数据块,这n个数据块分别进一步分成在Zq中的k个元素。M表示如下: Zq为模q的剩余类环,为Zq中的n*k个元素。
2)系统产生伪随机数发生器PRG:伪随机函数PRF:Kprf×I→Zq其中Kprg,Kprf分别为PRG和PRF的私钥集合,I为文件中每一个数据块的索引指数集合,→表示映射至箭头方向,表示定义在模q剩余类环上的k维向量;
3)用户选取使得gq≡1(mod p),g为q阶循环群G的生成元,接着均匀随机地选取私钥x,且1<x<q,计算公钥y≡gx mod p,并随机均匀地产生密钥对skp=(skprg,skprf),其中skprg∈Kprg,skprf∈Kprf。
4)用户选取一个轻量级对称密码算法ε(对称密钥为τ),并设置一个安全的哈希函数:H:G→ZqH→Zq。
(二)签名步骤
1)用户首先计算bj←PRF(skprf,name||j)∈Zq。然后用户计算数据块mj的同态消息认证码,即||表示级联符号。
2)用户调用Schnorr变型签名算法对每一个数据块mj的同态消息认证码tj计算签名如下:随机选取kj←Zq,计算rj'≡rj mod q,sj≡(rj'kj+tjx)mod q,记tj的签名为σj=(rj,sj)这样数据文件M的n个数据块消息认证码的签名集合为Ψ={σj}1≤j≤n。
3)用户再调用轻量级对称密码算法ε将每一个数据块mj=(mj,1…,mj,k)加密为mj'=(mj,1+ετ(1,name||j),…,mj,k+ετ(k,name||j)),mj,k+ετ(k,name||j)表示使用私钥为τ的对称密码算法ε对数据块mj的第k个位置进行加密,这样数据文件 被加密为
4)最后用户将{M',Ψ}发送给服务器,并且将原来的数据文件M,消息认证码的签名集合Ψ={σj}1≤j≤n在用户端删除。
(三)审计证明产生步骤
1)为审计存储在云服务器上的数据的完整性与正确性,用户首先向可信审计者(TPA)发送审计请求信息,接到请求信息后,TPA产生审计挑战信息如下:
(1a)TPA在集合{1,2,...,n}中随机选取含有c个元素的集合J;
(1b)对于每一个j∈J,TPA产生一个相应的随机值yj;
然后,TPA向云服务器发送审计挑战信息chal={(j,yj)}j∈J。
2)当云服务器接到来自chal={(j,yj)}j∈J,云服务器产生拥有TPA所选择的数据块的审计证明信息并计算如下:
(2a)计算
(2b)计算
(2c)计算其中l∈{1,…,k}
云服务器再选择一个随机数ηl←Zq,计算并且盲化μ′l为μl≡μ′l+ηlH(Tl)。最后云服务器发送审计响应信息(μ,r,s,T),其中μ=(μ1,…,μk),T=(T1,…,Tk)。
(四)审计证明验证步骤:
当TPA接到云服务器发给他的审计响应信息(μ,r,s,T),TPA调用伪随机数发生器PRG、伪随机函数PRF以及轻量级对称密码算法ε,TPA验证审计响应信息的正确性如下:
1)计算bj←PRF(skprf,name||j)∈Zq,其中j∈J。
2)计算 以及H(Tl),其中l∈{1,…,k}。
3)验证以下等式是否成立:
如果等式成立,用户就可以相信他存储在这个服务器上的数据块是完整的,未被篡改,并且这些数据块信息未被泄露给TPA。
验证公式推导如下:
通过以下比较对本发明的使用效果做补充说明:
本发明方法与Wang等在2013年发表的具有隐私保护的公共审计方法(Privacy-PreservingPublic Auditing for Secure Cloud Storage)进行比较,如下表,表中所涉及的计算量和通信量的符号说明如下:
分别代表在群G1中一个乘法的计算量,双线性群GT中一个乘法的计算量,Zp,Zq中一个乘法的计算量。
分别代表Zp,Zq中一个加法的计算量。
代表哈希值映射到Zp,Zq及群G1上需要的计算量。
Encε分别代表在群Zp、G1和双线性群GT中一个指数运算的计算量,一个双线性对的计算量,一个轻量级对称密码算法所需要的计算量。
|q|,|p|分别代表在Zq,Zp中的元素的比特数,|G1|,|GT|分别代表在群G1、双线性群GT中一个元素的比特数,|n|代表审计挑战信息中配比的系数长度。
由上表可知,Wang的方法需要2个双线性对运算,相比其它计算,这需要更大的计算量,并且|G1|,|GT|所需通信量也明显比其它高。我们的云存储数据安全审计方法不需要双线性对运算,在计算量和通信量上都比Wang的方法更占优势,并且我们的方法是基于离散对数困难问题的Schnorr变型签名算法,其安全性也得到了足够的保证。
本发明提供一种无双线性对的云存储数据安全审计方法。在本发明方案产生签名步骤中,用户将自己的信息通过轻量级对称密码算法加密再存到云服务器上,这样可以防止用户信息泄露。而且在产生审计证明步骤中,云服务器使用了随机掩码技术,来防止好奇的第三方审计者(TPA)通过解线性方程组来获取用户的信息。因此本发明解决了现有云存储数据存在的保密性较差不能保证用户数据的完整性和正确性的问题,并且保证用户的原始数据不被泄漏给云服务器和第三方审计者。本发明方案,将数据文件进行更细粒度的划分,这有利于对文件更细粒度的审计。相比以前的审计方案,本发明不需要耗时巨大的双线性对运算,而且方法简单,操作方便,在云存储数据安全领域具有很好的应用前景。