一种云存储中的块级加密方法及多粒度去重复方法与流程

文档序号:17691512发布日期:2019-05-17 21:05阅读:371来源:国知局
一种云存储中的块级加密方法及多粒度去重复方法与流程

本发明涉及一种云存储中的块级加密方法及多粒度去重复方法,具体涉及针对加密数据的去重复方法,在安全和可靠的前提下提高数据的利用率,属于网络安全领域。



背景技术:

云存储是最早的云计算应用之一,其允许用户将数据远程外包给云服务器进行存储,并且随时随地允许用户访问数据。云存储由于其规模化的运作和集群化的管理,大大的减少了用户的存储负担,受到大量用户的青睐。

近些年,数据爆发式的增长给云存储服务器带来了巨大的负担。去重复技术可以有效减轻存储开销,因此受到广泛应用。去重复技术通过避免用户上传相同的数据,从而节省存储和带宽的开销,达到提高存储效率的目的。然而,去重复技术也存在严重的安全漏洞,即恶意用户可能通过窃取文件持有权来盗取数据,也可能通过去重复技术的漏洞来伪造文件从而攻击和破坏他人的数据。前者称之为选择分布式攻击(ChosenDistribution Attack,CDA),后者称之为重复伪造攻击(Duplicate Faking Attack,DFA)。与此同时,云服务器可能从用户数据中窃取隐私。因此,如何以一种安全和可靠的方式来提升云服务器的存储效率是一个目前的研究热点。

前期研究主要针对明文数据的去重复,典型的工作如:Yuan等人在发表的文章《Secure and Constant Cost Public Cloud Storage Auditing with Deduplication》中提出抽验的方式检测重复的文件,通过随机抽查并且比对文件块来检测两个文件是否相同。然而,这样的方法效率低且不安全,因为两个文件可能仅仅只有极少信息不相同(99.99%的相似率),仅仅抽取少量的文件块进行比较无法准确的判别两个文件是否相同。与此同时,用户数据以明文的方式存储容易被服务器窃取隐私。虽然对数据进行加密可以杜绝隐私泄露,然而这让数据变得随机和难以识别,在这基础之上的去重复技术就变得几乎不可能。最近,Bellare等人在发表的文章《Message-Locked Encryption and Secure Deduplication》中正式提出了一种消息锁定加密技术(MLE),其通过确定性加密的方式,让相同的文件被加密过后仍然能够被识别出来,从而在保护隐私的情况下达到去重复的目的。然而,基于MLE的去重复技术仅针对文件,无法实现细粒度的去重复,去重复效率低下。假设两个文件只有极少数据块不相同(比如,同一个视频文件,一个带有水印而另一个没有水印,它们仅仅相差极少的文件块),基于MLE的去重复方法会认为两个文件完全不同的,从而无法节省任何空间和带宽。更需要指出的是,该方案还容易受到选择分布式攻击和重复伪造攻击。综上所述,现有的去重复技术效率低而且不安全,不适合于实际应用。



技术实现要素:

针对现有技术存在的问题,本发明的目的在于提出一种云存储中的块级加密方法及多粒度去重复方法,解决现有去重复技术在执行过程中不安全和效率低的问题。上传文件之前,用户端需要把文件划分为多个文件块并且进行块级加密,然后向服务器发送请求。服务器根据请求在存储中检索文件,并且通过建立莫科尔树来验证用户的文件持有权。如果文件已经存在,则用户端可以直接访问而不用上传,即使文件不存在,用户端也仅仅需要上传不重复的文件块,文件块通过一致性验证后和相关元数据一起被存储在服务器上。方案确保了去重复技术在安全和可靠前提下执行,同时灵活的实现了文件和文件块这两种不同粒度的去重复,此外还保护了用户数据的隐私。

本发明的块级加密方法通过以下具体步骤实现:

步骤a.系统初始化:

选择安全参数λ,设置系统公开参数P;

步骤b.生成密钥:

用户端根据公开参数P和文件M,计算密钥集k;

步骤c.块级加密:

用户端根据公开参数P和文件M,计算密文C;

步骤d.生成元数据:

用户端根据公开参数P,密钥集k和密文C,计算元数据∈={a,σ,aux,R};

进一步的,所述步骤a中,设置系统公开参数P=<p,g,G,GT,e,Ha,Hb,Hc,s,u1,…,us>具体为:

根据安全参数λ选择一个素数p,取G和GT为两个阶为p的乘法循环群,g是群G的生成元,取双线性对e为从乘法循环群G到乘法循环群GT的映射;

选择一个正整数s;选取三个哈希函数Ha,Hb,Hc,所述Ha定义映射为:{0,1}*→ZP,所述Hb定义映射为:{ZP}s→G,所述Hc定义映射为:G→{ZP}s

从群G中随机选取s个元素u1,…,us;

所述步骤b中,计算密钥集k具体为:

用户端根据公开参数P和文件M,首先计算主密钥kmas=Ha(M),然后将文件M划分为n个块,对每一个文件块M[i]∈{ZP}s(1≤i≤n),计算文件块密钥ki=Hb(M[i])(1≤i≤n),得到密钥集k={kmas,{ki}1≤i≤n};

所述步骤c中,对文件M的块级加密具体为:

用户端根据公开参数P,密钥集k和文件M,对每个文件块M[i]进行块级加密:得到文件密文C=C[1]||…||C[n](1≤i≤n);

所述步骤d中,计算元数据∈具体为:

首先,用户端根据公开参数P、密钥集k和密文C,计算每个文件块索引ai=Ha(C[i])(1≤i≤n),得到索引集a={ai}1≤i≤n;

然后,用户端计算文件标签把每一个文件块C[i]划分为s个区,每个区C[i][j]∈ZP(1≤i≤n,1≤j≤s),计算每个文件块标签得到标签集σ={σi}0≤i≤n;

接着,用户端计算每个辅助信息得到辅助信息集aux={auxi}1≤i≤n;

最后,用户端把索引集a中的每一个元数据ai作为叶节点,建立莫科尔树Ψ,计算得到根节点R,得到元数据∈={a,σ,aux,R}。

基于本发明的块级加密方法,本发明还提供了一种云存储中的多粒度去重复方法,具体包括下列步骤:

通过本发明的块级加密方法对文件M进行加密后,得到文件密文C,当用户端上传C时,启动本发明的多粒度去重复过程,具体包括如下步骤:

步骤e.发送请求:

用户端根据元数据∈,生成去重复请求U={a,σ0,R}并发送给服务器;

步骤f.持有权验证:

服务器根据去重复请求U,把U中每个文件块索引ai(1≤i≤n)作为叶节点,建立莫科尔树Ψ并计算出新的根节点R′,若根节点R=新的根节点R′,则服务器认为用户端确实持有密文C,否则,返回失败标记值并结束;

步骤g.检索:

服务器根据去重复请求U检索文件,若文件存在,则直接提供访问地址,若文件不存在,则继续检索文件块,然后将检索不到的文件块标识记录在T中,返回检索结果T给用户端;

步骤h.发送不重复信息:

用户端根据检索结果T和元数据∈,生成不重复信息V并发送给服务器;

步骤i.文件块一致性验证:

服务器根据公开参数P、去重复请求U、检索结果T和不重复信息V,验证文件块的一致性,若通过,则返回通过标记值,否则返回失败标记值并结束;

进一步的,所述步骤f中,对密文C的持有权验证具体为:

服务器根据去重复请求U,把U中每个文件块索引ai(1≤i≤n)作为叶节点,建立莫科尔树Ψ并计算出新的根节点R′,若根节点R=新的根节点R′,则服务器认为用户端确实持有密文C,否则,返回失败标记值并结束;

本发明在步骤f中执行持有权验证,是为了抵抗选择分布式攻击(Chosen-Distribution Attack,CDA),即攻击者在获取了文件的部分信息之后,通过反复尝试构造文件,并且利用去重复技术的特点(上传已存在的文件,上传请求会被取消,取而代之的是直接访问,因此不产生或者产生极小的带宽消耗)来判断构造是否成功,从而达到高效伪造文件的目的,下面进一步就为什么采取持有权验证作出说明;

步骤f中,服务器根据用户端上传的去重复请求U,将其中的每个文件块索引ai(1≤i≤n)作为叶节点,建立莫科尔树Ψ,由于所有的文件块索引都参与计算莫科尔树Ψ的根节点,任何一个文件块索引的错误都会导致最终计算得到的根节点发生变化,当且仅当所有叶节点ai都正确时,服务器计算得到的新的根节点R′才会与原始的根节点R相同,这样一来,服务器才认为用户端确实持有这个文件;

所述步骤g中,对密文C的检索具体为:

服务器根据去重复请求U,在文件存储列表List1中搜索文件标签σ0并回应如下:若σ0存在,则直接提供密文C的访问地址,否则,返回失败标记值并结束;若σ0不存在,则继续在文件块存储列表List2中搜索每个文件块索引ai(1≤i≤n),并将检索不到的文件块标识记录在T中,返回检索结果T给用户端;

所述步骤h中,计算不重复信息V具体为:

用户端根据检索结果T和元数据∈,找到T中标识对应的文件块C[i]、文件块标签σi和辅助信息auxi,生成不重复信息V={C[i]||σi||auxi}i∈T并发送给服务器;

所述步骤i中,验证数据块一致性具体为:

服务器根据公开参数P、去重复请求U、检索结果T和不重复信息V,对每个文件块验证等式若等式成立,则存储C[i]||σi,否则返回失败标记值并结束,若所有文件块均通过一致性验证,则多粒度去重复操作成功,密文C和相关元数据{a,σ,R}成功的被存储下来,返回成功标记值和密文C的访问地址;

本发明在步骤i中执行一致性验证,是为了抵抗重复伪造攻击(Duplicate Faking Attack,DFA),即攻击者试图伪造一个文件(假设为B)并且上传,该攻击使得服务器认为文件B等同于文件A(实际上不是),这样一来文件B取代了文件A被存放在服务器上,任何用户由于去重复的机制都无法正常访问和下载文件A(因为服务器认为自己存储了文件A,因此不允许用户上传文件A),下面进一步就为什么采取一致性验证作出说明;

步骤i中,服务器需要对用户端上传的每一个文件块进行一致性验证:其中,文件标签σ0来自于用户端在步骤e生成的去重复请求U,而σi,auxi和C[i][j]均来自于用户端在步骤g生成的不重复信息V,任何攻击者或者恶意用户试图上传和文件密文C不一致的文件块,都会被侦测出来,换言之,当且仅当用户上传的文件块与文件一致时,才能够通过上述等式的验证,服务器才认为用户上传的文件块是正确的,上述等式的正确性很容易推导;

综上所述,由于采用了上述技术方案,本发明有益效果是:

(1)采用多粒度的去重复技术,能够灵活的实现对文件和文件块的去重复,有效降低存储和网络开销,符合实际应用需求;

(2)采用持有权验证,能够有效抵攻击者对文件持有权的恶意窃取,确保去重复机制的安全执行;

(3)采用一致性验证,能够有效抵攻击者对文件正确性的攻击,确保去重复机制的可靠执行;

(4)采用基于消息锁定加密技术(MLE)的块级加密技术,能够有效防止用户数据的隐私泄露,实现隐私保护的目的。

附图说明

图1本发明结构图;

图2本发明的多粒度去重复示意图。

具体实施方式

参照图1,本发明的具体实现如下:

1系统初始化

选择安全参数λ,设置系统公开参数,

P=<p,g,G,GT,e,Ha,Hb,Hc,s,u1,…,us>如下:根据安全参数λ选择一个素数p,取G和GT为两个阶为p的乘法循环群,g是群G的生成元,双线性对e是从乘法循环群G到乘法循环群GT的映射,选择一个正整数s,选取三个哈希函数Ha,Hb,Hc,它们分别为Ha:{0,1}*→ZP,Hb:{ZP}s→G,Hc:G→{ZP}s,从群G中随机选取s个元素u1,…,us。

2生成密钥

用户端根据公开参数P和文件M,首先计算主密钥kmas=Ha(M),然后将文件M划分为n个块,对每一个文件块M[i]∈{ZP}s(1≤i≤n),计算文件块密钥ki=Hb(M[i])(1≤i≤n),得到密钥集k={kmas,{ki}1≤i≤n}。

3块级加密:

用户端根据公开参数P,密钥集k和文件M,对每个文件块M[i]进行块级加密:最终得到文件密文C=C[1]||…||C[n](1≤i≤n)。

4生成元数据

首先,用户端根据公开参数P、密钥集k和密文C,计算每个文件块索引ai=Ha(C[i])(1≤i≤n),得到索引集a={ai}1≤i≤n;

然后,用户端计算文件标签把每一个文件块C[i]划分为s个区,每个区C[i][j]∈ZP(1≤i≤n,1≤j≤s),计算每个文件块标签得到标签集σ={σi}0≤i≤n;

接着,用户端计算每个辅助信息得到辅助信息集aux={auxi}1≤i≤n;

最后,用户端把索引集a中的每一个元数据ai作为叶节点,建立莫科尔树Ψ,计算得到根节点R,得到元数据∈={a,σ,aux,R}。

5多粒度去重复

用户端将去重复请求U发送给服务器,服务器根据U建立莫科尔树来验证用户的文件持有权,接着,服务器在存储列表中检索文件和文件块,若检索到文件,则允许用户直接访问,否则,服务器将不重复的文件块标识集合T发送给用户端,用户端生成不重复信息V并发送给服务器,服务器验证V中每一个文件块的一致性,若一致性验证均通过,则多粒度去重复操作成功,用户端可以自由访问密文C。参照图2,本过程具体实现如下:

5.1发送请求

用户端根据元数据∈,生成去重复请求U={a,σ0,R}并发送给服务器;

5.2验证持有权:

服务器根据去重复请求U,把U中每个文件块索引ai(1≤i≤n)作为叶节点,建立莫科尔树Ψ并计算出新的根节点R′,若根节点R=新的根节点R′,则服务器认为用户确实持有密文C,否则,返回失败标记值并结束;

5.3检索

服务器根据去重复请求U,在文件存储列表List1中搜索文件标签σ0并回应如下:若σ0存在,则直接提供密文C的访问地址;若σ0不存在,则继续在文件块存储列表List2中搜索每个文件块索引ai(1≤i≤n),并将检索不到的文件块标识记录在T中,返回检索结果T;

5.4发送不重复信息

用户端根据检索结果T和元数据∈,找到T中标识对应的文件块C[i]、文件块标签σi和辅助信息auxi,生成不重复信息V={C[i]||σi||auxi}i∈T并发送给服务器;

5.5验证文件块一致性

服务器根据公开参数P、去重复请求U、检索结果T和不重复信息V,对每个文件块验证等式若等式成立,则存储C[i]||σi,否则返回失败标记值并结束;

若所有文件块均通过一致性验证,则多粒度去重复操作成功,密文C和相关元数据{a,σ,R}成功的被存储下来,返回成功标记值和密文C的访问地址。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1