基于格的大数据动态存储完整性验证方法技术

技术编号:10022093 阅读:145 留言:0更新日期:2014-05-09 03:54
本发明专利技术公开了一种基于格的大数据动态存储完整性验证方法,该方法基于量子计算机也难以破解的格上困难问题,具有较高的安全性,支持数据动态变化,并且运行效率也较高。为了支持大数据的动态特性,采用了Merkle哈希树技术,同时也能有效地保护计算平台的隐私数据。因此,该方法能够广泛的应用到与大数据的动态完整性验证相关的情景中。

【技术实现步骤摘要】
基于格的大数据动态存储完整性验证方法
本专利技术属于数据安全
,具体涉及一种基于格的大数据动态存储完整性验证方法。
技术介绍
随着云计算的迅速发展,越来越多的数据被存放在云服务器中。云存储作为一种新型的存储服务,所具有的高可扩展性、高可靠性、价格低廉和可随时随地接入访问的特点,为海量数据的存储管理提供了全新的模式。但是,由于用户把数据都托管给了云服务商,失去了对数据的本地监管控制权,因此面临着很多挑战。在所有面临的安全问题中,用户存储在外包服务器上大数据动态存储的完整性验证是一个基本问题。这个问题的解决需要使用安全的验证存储在远程服务器上动态数据的完整性的协议。考虑到大数据将会在量子时代长期存在这种情况,设计能够抵抗量子攻击的大数据动态完整性验证协议非常重要。
技术实现思路
本专利技术目的在于提供一种基于格的大数据动态存储完整性验证方法,该方法安全、高效,支持大数据动态存储的完整性验证,不仅计算非常简单方便,而且能够抵抗量子攻击。为了解决现有技术中的诸多问题,本专利技术提供的技术方案是:一种基于格的大数据动态存储完整性验证方法,应用于用户通过客户端对存储在服务器端上动态存储的大数据文件的完整性验证,其特征在于所述方法包括以下步骤:(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的MerkleHashTree的结构生成哈希根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'并计算出新的标签集合Φ';在MerkleHashTree的结构上用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)服务器端接到插入请求后,根据接收到的参数进行插入操作:客户端在MerkleHashTree的保存Fi数据块的叶子结点h(H(Fi))后插入一个叶子结点用来保存Fi*,即h(H(Fi*));根据Fi*计算出σi*并插入到新的标签集合Φ*;根据MerkleHashTree结构生成新的哈希根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结构存储。哈希树的内部本文档来自技高网
...
基于格的大数据动态存储完整性验证方法

【技术保护点】

【技术特征摘要】
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的MerkleHashTree的结构生成哈希根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受到破坏;其中陷门生成算法TrapGen(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正交化为④Fori=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'并计算出新的标签集合Φ';客户端在MerkleHashTree的结构上用H(Fi')替换H(Fi)并...

【专利技术属性】
技术研发人员:黄刘生李雪晓田苗苗杨威
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1