CN103778387B - 基于格的大数据动态存储完整性验证方法 - Google Patents
基于格的大数据动态存储完整性验证方法 Download PDFInfo
- Publication number
- CN103778387B CN103778387B CN201410004962.4A CN201410004962A CN103778387B CN 103778387 B CN103778387 B CN 103778387B CN 201410004962 A CN201410004962 A CN 201410004962A CN 103778387 B CN103778387 B CN 103778387B
- Authority
- CN
- China
- Prior art keywords
- client
- sig
- calculate
- hash
- file
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于格的大数据动态存储完整性验证方法,该方法基于量子计算机也难以破解的格上困难问题,具有较高的安全性,支持数据动态变化,并且运行效率也较高。为了支持大数据的动态特性,采用了Merkle哈希树技术,同时也能有效地保护计算平台的隐私数据。因此,该方法能够广泛的应用到与大数据的动态完整性验证相关的情景中。
Description
技术领域
本发明属于数据安全技术领域,具体涉及一种基于格的大数据动态存储完整性验证方法。
背景技术
随着云计算的迅速发展,越来越多的数据被存放在云服务器中。云存储作为一种新型的存储服务,所具有的高可扩展性、高可靠性、价格低廉和可随时随地接入访问的特点,为海量数据的存储管理提供了全新的模式。但是,由于用户把数据都托管给了云服务商,失去了对数据的本地监管控制权,因此面临着很多挑战。在所有面临的安全问题中,用户存储在外包服务器上大数据动态存储的完整性验证是一个基本问题。这个问题的解决需要使用安全的验证存储在远程服务器上动态数据的完整性的协议。考虑到大数据将会在量子时代长期存在这种情况,设计能够抵抗量子攻击的大数据动态完整性验证协议非常重要。
发明内容
本发明目的在于提供一种基于格的大数据动态存储完整性验证方法,该方法安全、高效,支持大数据动态存储的完整性验证,不仅计算非常简单方便,而且能够抵抗量子攻击。
为了解决现有技术中的诸多问题,本发明提供的技术方案是:
一种基于格的大数据动态存储完整性验证方法,应用于用户通过客户端对存储在服务器端上动态存储的大数据文件的完整性验证,其特征在于所述方法包括以下步骤:
(1)客户端的初始化:假设客户端安全参数为n,客户端通过陷门生成算法TrapGen(n)生成公私密钥对(pk,sk),其中pk=A;sk=B;矩阵和相应的陷门并且满足其中表示B的正交化;客户端公开参数P=(q,m,L,s,A),其中素数q≥3,m≥5nlogq,
(2)存储阶段:
用户通过客户端采用格基生成算法SamplePre计算文件F第i块的标签σi,即SamplePre(A,B,s,Fi)=σi,其中文件F被分为b块,即F=(F1,...,Fb),1≤i≤b,其中Fi∈{-1,0,1}n×1;计算标签集合Φ={σi},1≤i≤b;客户端根据存储文件F的MerkleHash Tree的结构生成哈希根R,用私钥对R生成标签,即sig(H(R))=(H(R))B;然后,用户将{F,Φ,sig(H(R))}发送至服务器端进行保存;在客户端公开所有标签并本地删除文件F;
(3)完整性验证阶段:如果用户希望验证存储在远程服务器上的文件F的完整性,则在客户端挑选b个随机数(a1,…,ab)发送给服务器端,其中|ai|≤k并且bk<q;当服务器端收到挑战后,计算并发送g给客户端;客户端收到g后,计算并验证Az=g是否成立;如果Az=g成立,则文件F完整,否则文件F受到破坏。
优选的技术方案是:所述方法还包括在进行文件数据块更新操作或者文件数据块插入操作或者文件数据块删除操作之前优先进行原文件完整性验证的步骤。
优选的技术方案是:所述方法中进行文件数据块更新操作按照如下步骤进行:
1)客户端根据新的数据块Fi'计算相应的标签SamplePre(A,B,s,Fi')=σi',其中然后向服务器端发送更新请求Update=(U,i,Fi',σi'),其中U表示更新操作命令;
2)服务器端接到更新请求后,根据接收到的参数做相应数据块的更新:客户端先将第i个数据块Fi更新为数据块Fi';然后将σi更新为σi'并计算出新的标签集合Φ';在Merkle Hash Tree的结构上用H(Fi')替换H(Fi)并生成新的哈希根R′;最后服务器端生成对本次更新操作生成证明PU={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
3)客户端收到PU={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的哈希根相等;如果不相等,返回FALSE;如果相等,则通过计算{Ωi,H(F'i)}检查服务器端是否更新成功;如果用{Ωi,H(F'i)}计算生成的哈希根与R'进行比较,如果相等则更新成功,如果不相等则返回FALSE;然后客户端对新的哈希根生成标签sig(H(R'))=(H(R'))B发送给服务器端,最后将所有标签公开并在本地删除文件Fi′。
优选的技术方案是:所述方法中进行文件数据块插入操作按照如下步骤进行:
A)客户端首先根据新插入的数据块Fi *计算相应的标签SamplePre(A,B,s,Fi *)=σi *,其中并向服务器端发送相应的插入请求Insert=(I,i,Fi *,σ* i),其中I表示插入操作命令;
B)服务器端接到插入请求后,根据接收到的参数进行插入操作:客户端在MerkleHash Tree的保存Fi数据块的叶子结点h(H(Fi))后插入一个叶子结点用来保存Fi *,即h(H(Fi*));根据Fi *计算出σi *并插入到新的标签集合Φ*;根据Merkle Hash Tree结构生成新的哈希根R′;最后服务器端生成对本次操作生成证明PI={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
C)客户端收到PI={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等;如果不相等,返回FALSE;如果相等,则通过计算{Ωi,H(F*)}检查服务器端是否插入成功;客户端用{Ωi,H(Fi),H(F*)}计算生成的哈希根与R'进行比较,如果相等则插入成功,如果不相等则返回FALSE;然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至服务器端,最后客户端将所有标签公开并在本地删除文件Fi *。
优选的技术方案是:所述方法中进行文件数据块删除操作按照如下步骤进行:
a)客户端向服务器端发送相应的删除请求Deletion=(D,i),其中D表示删除操作命令;
b)服务器端接到删除请求后,根据接收到的参数做相应调整:客户端在MHT删除Fi数据块的叶子结点h(H(Fi));从标签集合Φ中删除σi;根据MHT结构生成新的哈希根R′;最后服务器端生成对本次操作生成证明PD={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
c)客户端收到PD={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等;如果不相等,返回FALSE;如果相等则判断用PD={Ωi,H(Fi),sig(H(R)),R'}计算生成的哈希根与R'是否相等;如果相等则删除成功,如果不相等则返回FALSE;然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至服务器端,最后将所有标签公开。
本发明技术方案属于信息安全技术领域,具体涉及一种基于格上困难问题的大数据动态存储完整性验证协议。基于格上困难问题设计的密码方案被认为是能够抵抗量子攻击的,也是目前较好的技术之一。采用算法TrapGen(n)生成公私钥对,采用SamplePre(A,B,s,Fi)算法生成每个数据块的标签。算法TrapGen(n)输入一个安全参数n,可以输出一个近似随机的矩阵A及其陷门B。算法SamplePre(A,B,s,y)输入矩阵A以及其陷门B,一个参数s和向量y,能够输出一个小向量σ满足Aσ=y。为了支持大数据动态存储完整性,采用了MHT结构存储。哈希树的内部结点哈希值的计算采用的是非碰撞(collision-free)哈希算法,确保只要根哈希被可靠地保护,即使攻击者篡改了哈希树的某些结点,也无法利用这些结点构造一个拥有原根哈希却拥有不同子结点的哈希树。
本发明提出的基于格的大数据动态存储完整性验证协议能够抵抗敌手的攻击,支持动态大数据存储完整性验证并且仅需要简单的运算,能够向大数据提供持久、高效的保护。同时在计算平台最大程度地保护了数据的隐私。
相对于现有技术中的方案,本发明的优点是:
本发明的协议不仅运算简单高效,能够抵抗量子计算机的攻击,而且能够有效地保护计算平台数据的隐私。通过分析可知,本协议仅使用基本的线性运算而不需要使用复杂的如双线性配对之类的运算,并且算法也能抵抗量子攻击。在云端存储采用MHT结构,使计算平台的隐私得到了保护。该方法基于量子计算机也难以破解的格上困难问题,具有较高的安全性,支持数据动态变化,并且运行效率也较高。为了支持大数据的动态特性,采用了Merkle哈希树技术,同时也能有效地保护计算平台的隐私数据。因此,该方法能够广泛的应用到与大数据的动态完整性验证相关的情景中。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于格的高效大数据动态存储完整性验证方法的流程图;
图2为本发明基于格的高效大数据动态存储完整性验证方法中更新操作的原理示意图;
图3为本发明基于格的高效大数据动态存储完整性验证方法中插入操作的原理示意图;
图4为本发明基于格的高效大数据动态存储完整性验证方法中删除操作的原理示意图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
本实施例基于格困难问题而设计的高效大数据动态存储完整性验证方法,可以验证大数据动态存储的完整性,具体步骤如下:
(1)首先建立基于格困难问题而设计的高效大数据动态存储完整性验证系统,服务器端采用云服务端:假设客户端初始化验证系统的安全参数为n。客户端采用经典的TrapGen算法生成矩阵A和B,其中表示B的正交化,B为用户私钥。用户可选择的参数如下:素数q≥3,m≥5nlogq, 以及一个随机矩阵和相应的陷门并且满足系统公开参数P=(q,m,L,s,A),用户私钥为B。其中A为公钥,公私密钥对(pk,sk)中pk=A;sk=B。
(2)存储阶段:假设文件F被分为b块,即F=(F1,...,Fb),其中Fi∈{-1,0,1}n×1。用户首先根据格基生成算法SamplePre算法计算第i块(1≤i≤b)的标签σi,即SamplePre(A,B,s,Fi)=σi。此时有标签集合Φ={σi},1≤i≤b;又因为数据块依次存储在Merkle Hash Tree(MHT)叶子结点上,客户端根据MHT的结构生成哈希根R,用私钥对R生成标签,即sig(H(R))=(H(R))B。然后,用户将{F,Φ,sig(H(R))}发送至远程存储服务器进行保存,最后,用户将所有标签公开并在本地删除文件F;
(3)云服务端生成证明:用户作为验证人,如果用户希望验证存储在远程服务器上的文件F的完整性,则他挑选b个随机数(a1,…,ab)发送给服务器,其中|ai|≤k并且bk<q;服务器收到挑战后,计算并发送g给用户;
(4)验证证明:用户收到g后,计算并验证Az=g是否成立。如果成立,则文件完整,否则文件受到破坏。
(5)为了支持对大数据的更新,插入和删除数据块等操作,可分别执行以下步骤:
(一)更新操作步骤如下:
假如用户想要将第i个数据块Fi更新为数据块Fi',如图2所示,验证动态数据完整性的步骤如下:
(a)验证初始大数据的完整性:首先按照(1)~(4)步骤验证大数据完整性确保初始的文件是安全的;
(b)计算新的标签并向云服务端发送请求:在客户端首先根据新的数据块Fi'计算相应的标签SamplePre(A,B,s,Fi')=σi'。此时有并向云服务端发送相应的更新请求Update=(U,i,Fi',σi'),其中U表示更新操作命令;
(c)云服务端做响应操作:云服务端接到更新请求后,根据接收到的参数做相应数据块的更新,(i)将第i个数据块Fi更新为数据块Fi';(ii)将σi更新为σi'并计算出新的标签集合Φ';(iii)在MHT结构上用H(Fi')替换H(Fi)并生成新的哈希根R′;最后云服务端生成对本次操作生成证明PU={Ωi,H(Fi),sig(H(R)),R'},其中Ωi是Fi数据块的权威认证AAI;
(d)验证证明并公开新的标签:用户收到PU={Ωi,H(Fi),sig(H(R)),R'}后,首先用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等,如果不相等,返回FALSE,如果相等然后通过计算{Ωi,H(F'i)}检查云服务端是否更新成功,如果用{Ωi,H(F'i)}计算生成的哈希根与R'进行比较,如果相等则更改成功,如果不相等则返回FALSE.然后对新的哈希根生成标签sig(H(R'))=(H(R'))B发送给云服务端,最后将所有标签公开并在本地删除文件Fi′。
(二)插入操作步骤如下:
假如用户想要将第i个数据块Fi后插入数据块Fi *,如图3所示,验证动态数据完整性的步骤如下:
(a)验证初始大数据的完整性:首先按照(1)~(4)步骤验证大数据完整性确保初始的文件是安全的;
(b)计算新的标签并向云服务端发送请求:在客户端首先根据新插入的数据块Fi *计算相应的标签SamplePre(A,B,s,Fi *)=σi *。此时有并向云服务端发送相应的插入请求其中I表示插入操作命令;
(c)云服务端做响应操作:云服务端接到插入请求后,根据接收到的参数做相应调整,(i)在MHT保存Fi数据块的叶子结点h(H(Fi))后插入一个叶子结点用来保存Fi *,即h(H(Fi *));(ii)根据Fi *计算出σi *并插入到新的标签集合Φ*;(iii)根据MHT结构生成新的哈希根R′;最后云服务端生成对本次操作生成证明PI={Ωi,H(Fi),sig(H(R)),R'},其中Ωi是Fi数据块的权威认证AAI;如图3所示,在结点2后插入一个新的结点h(H(Fi *)),并生成了一个新的内部节点C,其中hc=h(h(H(m2))||h(H(m*)))。
(d)验证证明并公开新的标签:用户收到PI={Ωi,H(Fi),sig(H(R)),R'}后,首先用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等,如果不相等,返回FALSE,如果相等然后通过计算{Ωi,H(F*)}检查云服务端是否插入成功,如果用{Ωi,H(Fi),H(F*)}计算生成的哈希根与R'进行比较,如果相等则插入成功,如果不相等则返回FALSE.然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至云服务端,最后将所有标签公开并在本地删除文件Fi *。
(三)删除操作步骤如下:
假如用户想要删除数据块Fi,验证动态数据完整性的步骤和更新,插入操作相同,如图4所示:删除第5个结点的操作。验证动态数据完整性的步骤如下:
(a)验证初始大数据的完整性:首先按照(1)~(5)步骤验证大数据完整性确保初始的文件是安全的;
(b)向云服务端发送请求:客户端向云服务端发送相应的删除请求Deletion=(D,i),其中D表示删除操作命令;
(c)云服务端做响应的操作:云服务端接到删除请求后,根据接收到的参数做相应调整,(i)在MHT删除Fi数据块的叶子结点h(H(Fi));(ii)从标签集合Φ中删除σi;(iii)根据MHT结构生成新的哈希根R';最后云服务端生成对本次操作生成证明PD={Ωi,H(Fi),sig(H(R)),R'},其中Ωi是Fi数据块的权威认证AAI;
(d)验证证明并公开新的标签:用户收到PD={Ωi,H(Fi),sig(H(R)),R'}后,首先用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等,如果不相等,返回FALSE,如果用PD={Ωi,H(Fi),sig(H(R)),R'}计算生成的哈希根与R'进行比较,如果相等则删除成功,如果不相等则返回FALSE;然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至云服务端,最后将所有标签公开。
其中陷门生成算法TrapGen(n)的具体实现方法步骤如下:
1)首先生成矩阵其中U是非奇异矩阵,并满足(GP+C)∈K,其中K是矩阵A1的子格。
2)令
3)令
4)最后输出矩阵A和陷门B,其中m=m1+m2。
其中格基生成算法SamplePre(A,B,s,y)的原理可以概括为,在多项式时间内,一个格的短基可以用其子格的短基来生成。格基生成算法SamplePre(A,B,s,y)执行步骤如下:
1)通过线性代数方法计算使得At≡y;
2)令Vm←0;Cm←-t;其中-t∈Rm为中心向量;
3)采用施密特正交化方法使B正交化为
4)For i=m,...,1;do
从高斯分布选择zi,即zi∈Z∩[c′i-s′i,c′i+s′i];
ci-1←ci-zibi;
vi-1←vi-zivi;
输出向量v0,使得且满足Av0≡0,其中v0服从以-t为中心,以s为参数的高斯分布;
5)输出x=v0+t。
本实施例基于格的高效大数据存储完整性验证协议的目标有三点:一是协议的双重验证,确保数据的完整性。该协议验证大数据的完整性,采用双重验证,一方面就是用户挑选随机数作为挑战进行验证,即基于格的验证,同时在云端存储是采用哈希树结构,能够根据哈希树的根哈希再次验证数据的完整性;二是协议的正确性,该协议的公私钥对是由算法TrapGen(n)生成,每个数据块的标签是由SamplePre(A,B,s,Fi)算法生成以及根哈希是采用非碰撞的哈希算法,这些经典算法保证了协议的正确性。三是计算平台的隐私得到了保护,如果远程计算平台是恶意的,那么通过一次远程验证,利用所获的本地平台的隐私信息,很容易对其进行漏洞挖掘。与之相对,该协议在云端采用哈希树结构存储,可以灵活地构造验证路径,在保证大数据不被篡改的同时,屏蔽了不相关的应用程序的完整性信息。
如前面所述,以往的数据完整性验证协议都是基于传统密码体制的,而这类问题都是量子计算机可以轻松破解的。本发明设计的协议基于量子计算机也难以破解的格上困难问题,且能够安全抵抗敌手的攻击。同时,我们的协议仅需要简单的线性运算,也提高了其效率。在动态数据验证的时候基于MHT结构,因为MHT的根哈希能够反映全部叶子结点的完整性,因此只要哈希树的哈希根被可靠的保存,就能利用它保护存放于不可信的空间的大量数据对象叶子结点,因此能够简便地验证动态数据的完整性。同时,使计算平台的隐私得到了保护。
具体地,该协议也可以分为三个阶段。第一个阶段包括步骤1到步骤2是系统初始化和用户准备阶段,第二个阶段包括步骤3到步骤4是用户和服务器的交互式验证阶段。第三个阶段是对大数据的动态验证方案,此阶段是基于前两个阶段之后的,通过前两个阶段验证大数据的完整性,然后对数据进行动态的操作。
在第一阶段,用户首先选择素数q≥3,m≥5nlogq,和然后运行算法TrapGen(n)产生一个随机矩阵和相应的陷门并且有接着,用户根据算法SamplePre计算文件M=(M1,...,Mb)第i块数据(1≤i≤b)的标签σi,即SamplePre(A,B,s,Mi)=σi,此时有最后,用户将文件M发送至远程存储服务器进行保存,公开所有标签并删除在本地的文件M。
在第二阶段,当用户希望对存储在远程服务器上的文件M的完整性进行验证时,他挑选b个随机数(a1,…,ab)发送给服务器,其中|ai|≤k并且bk<q;当服务器收到该挑战后,计算并发送g给用户;用户收到g后,计算并验证Az=g是否成立。如果成立,则文件完整,否则文件受到破坏。
在第三阶段,就是对数据进行动态操作,并验证数据的完整性。更新、插入、删除操作步骤基本一致,首先在本地进行相应标签的计算然后发送相应的请求,接着就是用户和云服务端的交互验证过程。在云服务端,首先做相应的修改并向客户端发送相应的“挑战”,在客户端验证操作是否完成以及数据是否完整。
下面对算法的正确性和安全性进行分析。
本协议的正确性是显然的。如果文件没有损坏,并且用户和服务器正确运行了协议,那么我们有:
本协议的敌手(即恶意的服务器)可能会在文件M受到破坏后想逃过用户的检测,此时安全的协议必须保证不能让服务器逃过这种检测。用数学公式来表示就是:是否存在使得Az=g,其中假设存在一个g使得Az=g,令由于Az=g',所以两式相减可得,g-g′=0。由于(a1,…,ab)是完全随机的,所以如果g-g′=0恒成立,则必有这说明想要通过协议的验证,则文件一定没有损坏。同样,大数据动态操作过程中,只要保证根哈希被安全地存放在可信的存储器中,则及时哈希树的结点存放在不可信的存储器中,也能实现对数据篡改的可知性。因为哈希树的内部结点哈希值的计算采用的是非碰撞(collision-free)哈希算法,确保只要根哈希被可靠地保护,即使攻击者篡改了哈希树的某些结点,也无法利用这些结点构造一个拥有原根哈希却拥有不同子结点的哈希树,这是计算不可行的。即证明了协议的安全性。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于格的大数据动态存储完整性验证方法,应用于用户通过客户端对存储在服务器端上动态存储的大数据文件的完整性验证,其特征在于所述方法包括以下步骤:
(1)客户端的初始化:假设客户端安全参数为n,客户端通过陷门生成算法TrapGen(n)生成公私密钥对(pk,sk),其中pk=A;sk=B;矩阵B为矩阵A的陷门并且满足其中表示B的正交化;客户端公开参数P=(q,m,L,s,A),其中素数q≥3,m≥5nlogq,
(2)存储阶段:
用户通过客户端采用格基生成算法SamplePre计算文件F第i块的标签σi,即SamplePre(A,B,s,Fi)=σi,其中文件F被分为b块,即F=(F1,...,Fb),1≤i≤b,其中Fi∈{-1,0,1}n×1;计算标签集合Φ={σi},1≤i≤b;客户端根据存储文件F的Merkle Hash Tree的结构生成哈希根R,用私钥对R生成标签,即sig(H(R))=(H(R))B;然后,用户将{F,Φ,sig(H(R))}发送至服务器端进行保存;在客户端公开所有标签并本地删除文件F;
(3)完整性验证阶段:如果用户希望验证存储在远程服务器上的文件F的完整性,则在客户端挑选b个随机数(a1,…,ab)发送给服务器端,其中|ai|≤k并且bk<q;当服务器端收到挑战后,计算并发送g给客户端;客户端收到g后,计算并验证Az=g是否成立;如果Az=g成立,则文件F完整,否则文件F受到破坏;
其中陷门生成算法Trap Gen(n)的具体实现方法步骤如下:
1)首先生成矩阵其中U是非奇异矩阵,并满足(GP+C)∈K,其中K是矩阵A1的子格;
2)令
3)令
4)最后输出矩阵A和陷门B,其中m=m1+m2;
格基生成算法SamplePre(A,B,s,y)执行步骤如下:
①通过线性代数方法计算使得At≡y;
②令Vm←0;Cm←-t;其中-t∈Rm为中心向量;
③采用施密特正交化方法使B正交化为
④For i=m,...,1;do
从高斯分布选择zi,即zi∈Z∩[c′i-s′i,c′i+s′i];
ci-1←ci-zibi;
vi-1←vi-zivi;
输出向量v0,使得且满足Av0≡0,其中v0服从以-t为中心,以s为参数的高斯分布;
⑤输出x=v0+t。
2.根据权利要求1所述的完整性验证方法,其特征在于所述方法还包括在进行文件数据块更新操作或者文件数据块插入操作或者文件数据块删除操作之前优先进行原文件完整性验证的步骤。
3.根据权利要求2所述的完整性验证方法,其特征在于所述方法中进行文件数据块更新操作按照如下步骤进行:
1)客户端根据新的数据块Fi'计算相应的标签SamplePre(A,B,s,Fi')=σi',其中然后用户通过客户端向服务器端发送更新请求Update=(U,i,Fi',σi'),其中U表示更新操作命令;
2)服务器端接到更新请求后,根据接收到的参数做相应数据块的更新:首先客户端将第i个数据块Fi更新为数据块Fi';然后将σi更新为σi'并计算出新的标签集合Φ';客户端在Merkle Hash Tree的结构上用H(Fi')替换H(Fi)并生成新的哈希根R';最后服务器端生成对本次更新操作生成证明PU={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
3)客户端收到PU={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的哈希根相等;如果不相等,返回FALSE;如果相等,则通过计算{Ωi,H(F'i)}检查服务器端是否更新成功;如果用{Ωi,H(F'i)}计算生成的哈希根与R'进行比较,如果相等则更新成功,如果不相等则返回FALSE;然后客户端对新的哈希根生成标签sig(H(R'))=(H(R'))B发送给服务器端,最后将所有标签公开并在本地删除文件Fi′。
4.根据权利要求2所述的完整性验证方法,其特征在于所述方法中进行文件数据块插入操作按照如下步骤进行:
A)客户端首先根据新插入的数据块Fi *计算相应的标签SamplePre(A,B,s,Fi *)=σi *,其中并向服务器端发送相应的插入请求Insert=(I,i,Fi *,σ* i),其中I表示插入操作命令;
B)服务器端接到插入请求后,根据接收到的参数进行插入操作:客户端在Merkle HashTree的保存Fi数据块的叶子结点h(H(Fi))后插入一个叶子结点用来保存Fi *,即h(H(Fi *));根据Fi *计算出σi *并插入到新的标签集合Φ*;根据Merkle Hash Tree结构生成新的哈希根R';最后服务器端生成对本次操作生成证明PI={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
C)客户端收到PI={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等;如果不相等,返回FALSE;如果相等,则通过计算{Ωi,H(F*)}检查服务器端是否插入成功;客户端用{Ωi,H(Fi),H(F*)}计算生成的哈希根与R'进行比较,如果相等则插入成功,如果不相等则返回FALSE;然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至服务器端,最后客户端将所有标签公开并在本地删除文件Fi *。
5.根据权利要求2所述的完整性验证方法,其特征在于所述方法中进行文件数据块删除操作按照如下步骤进行:
a)客户端向服务器端发送相应的删除请求Deletion=(D,i),其中D表示删除操作命令;
b)服务器端接到删除请求后,根据接收到的参数做相应调整:客户端在MHT删除Fi数据块的叶子结点h(H(Fi));从标签集合Φ中删除σi;根据MHT结构生成新的哈希根R';最后服务器端生成对本次操作生成证明PD={Ωi,H(Fi),sig(H(R)),R'}发送给客户端,其中Ωi是Fi数据块的权威认证AAI;
c)客户端收到PD={Ωi,H(Fi),sig(H(R)),R'}后,首先判断用{Ωi,H(Fi)}计算生成的哈希根是否与客户端所保存的根相等;如果不相等,返回FALSE;如果相等则判断用PD={Ωi,H(Fi),sig(H(R)),R'}计算生成的哈希根与R'是否相等;如果相等则删除成功,如果不相等则返回FALSE;然后对新的哈希根生成标签sig(H(R'))=(H(R'))B并发送至服务器端,最后将所有标签公开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410004962.4A CN103778387B (zh) | 2014-01-06 | 2014-01-06 | 基于格的大数据动态存储完整性验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410004962.4A CN103778387B (zh) | 2014-01-06 | 2014-01-06 | 基于格的大数据动态存储完整性验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103778387A CN103778387A (zh) | 2014-05-07 |
CN103778387B true CN103778387B (zh) | 2017-04-05 |
Family
ID=50570607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410004962.4A Expired - Fee Related CN103778387B (zh) | 2014-01-06 | 2014-01-06 | 基于格的大数据动态存储完整性验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103778387B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866242B (zh) * | 2015-05-29 | 2018-12-04 | 上海京东到家元信信息技术有限公司 | 一种数据删除系统、方法及数据删除中心 |
CN105095794A (zh) * | 2015-07-20 | 2015-11-25 | 武汉科技大学 | 一种基于平衡的梅肯哈希树的动态云数据完整性验证方法 |
CN106301789B (zh) * | 2016-08-16 | 2019-07-09 | 电子科技大学 | 应用基于格的线性同态签名的云存储数据的动态验证方法 |
CN107483580A (zh) * | 2017-08-16 | 2017-12-15 | 广东工业大学 | 一种云存储系统的动态数据记录方法及云存储系统 |
CN108600201B (zh) * | 2018-04-09 | 2021-11-02 | 东华大学 | 一种云存储完整性验证的数据标签的远程安全更换方法 |
CN109033878B (zh) * | 2018-08-08 | 2021-04-16 | 莆田学院 | 一种文件存储验证方法及存储介质 |
CN109981736B (zh) * | 2019-02-22 | 2021-09-21 | 南京理工大学 | 一种支持用户与云服务器相互信任的动态公开审计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023862A (zh) * | 2011-09-21 | 2013-04-03 | 索尼公司 | 用于完整性保护和验证的方法、服务器及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9537650B2 (en) * | 2009-12-15 | 2017-01-03 | Microsoft Technology Licensing, Llc | Verifiable trust for data through wrapper composition |
-
2014
- 2014-01-06 CN CN201410004962.4A patent/CN103778387B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023862A (zh) * | 2011-09-21 | 2013-04-03 | 索尼公司 | 用于完整性保护和验证的方法、服务器及系统 |
Non-Patent Citations (2)
Title |
---|
《Enabling public auditability and data dynamics for storage security in cloud computing》;Qian Wang;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20110531;第22卷(第5期);第847-859页 * |
《高效的基于格的环签名方案》;田苗苗;《计算机学报》;20120430;第35卷(第4期);第713-715页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103778387A (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778387B (zh) | 基于格的大数据动态存储完整性验证方法 | |
CN106254374B (zh) | 一种具备去重功能的云数据公开审计方法 | |
CN104917609B (zh) | 一种基于用户感知的高效安全数据去重方法及系统 | |
CN113556322B (zh) | 一个基于区块链的云数据完整性验证方法 | |
CN103986732B (zh) | 抵御密钥泄露的云存储数据审计方法 | |
CN107426165A (zh) | 一种支持密钥更新的双向安全云存储数据完整性检测方法 | |
CN106612320A (zh) | 云存储中一种加密数据的去重方法 | |
CN108965258A (zh) | 一种基于全同态加密的云环境数据完整性验证方法 | |
CN105791321A (zh) | 一种具有抗密钥泄露特性的云存储数据公共审计方法 | |
CN107483585A (zh) | 云环境中支持安全去重的高效数据完整性审计系统及方法 | |
CN105721158A (zh) | 云安全隐私性和完整性保护方法和系统 | |
Chen et al. | Data dynamics for remote data possession checking in cloud storage | |
CN106027245A (zh) | 密钥共享方法及装置 | |
CN106611136A (zh) | 云存储中一种数据篡改验证方法 | |
CN102647433A (zh) | 一种高效的云存储数据持有性验证方法 | |
Xu et al. | Intrusion-resilient public cloud auditing scheme with authenticator update | |
CN107423637A (zh) | 支持云上电子病历数据可追踪的完整性审计方法 | |
CN103916393B (zh) | 基于对称密钥的云数据隐私保护公众审计方法 | |
CN104243169A (zh) | 可跟踪身份的共享数据云审计方法 | |
Fan et al. | Identity-based auditing for shared cloud data with efficient and secure sensitive information hiding | |
CN104184736B (zh) | 一种实现安全云计算的方法和系统 | |
CN104009847A (zh) | 一种基于格的大数据存储完整性验证方法 | |
CN103501223B (zh) | 一种电子产品码的访问控制系统及其访问控制方法 | |
CN109063513B (zh) | 一种基于Hadoop平台的动态数据完整性验证方法 | |
CN101383823B (zh) | 一种可信接入中的网络资源访问控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 Termination date: 20200106 |