云存储中一种加密数据的去重方法与流程

文档序号:11064838阅读:1200来源:国知局

本发明涉及在云存储、大数据环境下的重复密文数据检测和删除领域。

技术背景

随着信息技术和网络技术的发展,大数据与海量数据已经成为数据中心的主要业务,而重复数据的删除与压缩是一种可以节约大量数据存储的技术。重复数据删除是一种压缩技术,通过识别重复内容,进行去重,并在对应的存储位置留下指针来最小化数据量;这个指针通过给定大小的数据模式进行哈希创建。

对于租用云空间的用户来说,大量重复数据充斥在云空间内,不仅对检索造成麻烦,还浪费了宝贵的云资源,产生了额外开销。所以本发明将重复数据删除理论引入云存储中,从而帮助云租户在最大程度上利用云空间。

用户将数据上传到云端时,对于一些隐私或者机密数据都会选择先进行加密,然后再上传密文数据。而想要对密文数据进行去重的话,将面临许多的技术难题。需要解决的首要问题是如何判断多个密文是否来自于相同的明文,即机密数据重复性检测问题。另外,机密数据重复性检测方案应提供完善的数据保密性功能,防止来自CSP内部或外部的攻击所造成的数据泄露。若一个具有较高最小熵的文件所包含的某些分块的最小熵很小,则攻击者可以通过暴力搜索攻击获得这些分块。恶意用户可以利用存储系统的特性将其转变为内容分发网络,达到滥用存储系统的目的。

通过验证文件本身而不是其摘要来进行重复性检测,从而避免了系统带来的安全风险。实现了对数据块的加密保护,并同时实现了跨用户文件级客户端去重和本地数据块级客户端去重,可以避免对数据块的暴力搜索攻击。



技术实现要素:

本发明所要解决的问题是针对云用户在云空间中的重复数据的检索删除,提出了云存储中一种加密数据的去重方法。

本发明的目的是:通过对云空间引入重复数据删除理论以达到合理高效的利用云空间,实现节约资源与开销的目的。

针对以上所述目的本发明所采用的技术方案是:在用户上传文件之前,对文件摘要进行哈希创建,生成文件标识数据,然后将文件标识数据上传到云服务商(CSP)处进行验证,确定用户有没有相同文件,若是有相同文件,则进行详细验证,最终上传不同的文件块或者在已经有相同文件存在的情况下取消上传;若没有相似的数据标识,则对文件进行分块、哈希、生成验证数据,然后将文件及验证数据一起加密得到密文数据和元数据,然后对密文块进行对比验证,最终只上传文件库中没有相同文件块的密文数据及标签信息。

本发明的有益效果是:能在对密文数据去重,同时还能保护数据的机密性,抵抗通过数据块的暴力搜索攻击而造成的文件隐私泄露,同时,执行的是两级数据去重,有效的减少网络传输流量并抵抗不良云服务商的攻击。

具体实施方式

为了使整个发明清晰明了,结合以下步骤对本发明进行具体的解释说明:

步骤1:生成文件标识,进行初步验证,具体的内容如下:

用户的文件F,在上传之前是没有加密的,首对文件属性(property)包括文件类型、文件名、文件摘要等信息进行哈希,获得文件的属性标签:h(FP),如果在云空间内有相同的属性标签,则提示是否确定上传,如果继续上传,则进入后续过程。

步骤2:文件分块,并生成数据块的特征集,具体的内容如下:

依据固定打下或者变长等分块方法,将文件F分成n个数据块{Fi},1≤i≤n,然后计算每个数据块的哈希值即标识:

表示文件F的第i个数据块的特征,放入集合中。

步骤3:数据块及标识加密。

步骤4:生成元数据和验证标签。

步骤5:数据验证,更新元数据。

步骤6:数据去重。

步骤7:数据访问,具体的内容如下:

当用户需要访问云端的数据时,从CSP获得数据F的密文CF和元数据{i,h(FP),lbi,mbi},再利用存储与本地的根密钥和文件参数ft,fs即可生成密钥树,计算变换叶子节点密钥、解密出数据密钥以及解密数据块,得到数据F。一、针对上述步骤3:数据块及标识加密,提出了以下计算过程:

高度为p,具有n个叶子节点的密钥树,然后将叶子节点密钥转换为“变换叶子节点密钥”,以其作为控制密钥,其中:

2p-1<n≤2p

并依据安全参数λ随机选择一个根密钥key0,1,利用左右派生规则fL和fR逐级计算得到树叶节点密钥:

ki+1,2j-1=fL(ki,j)=h(ki,j||i||(2j-1)

ki+1,2j=fR(ki,j)=h(ki,j||i||2j)

然后对叶子节点kp、i(1≤i≤n)计算变换叶子节点密钥:

fa=h(ft||fs),表示文件属性

然后,采用AES算法对数据块进行加密;得到文件块的密文数据:

二、针对上述步骤4:生成元数据和验证标签,提出以下具体的计算过程:

首次上传的数据,数据加密后,生成元数据项表示为:

{i,h(FP),lbi,mbi}

其中,lbi表示F文件第i个数据块的密文,mbi表示其控制密钥在控制密钥树中的位置,如果上传的文件F′的第j个数据块,其加密后生成的标签集在CSP检测到与F的第i个相同时,生成元数据项为:

{j,h(F’P),lbi,mbi}

并多生成一条元数据项(i,Tj),Tj为F′的验证标签。

然后,将元数据项组成元数据MDF,

MDF=(h(FP),lbF,Ti,({i,h(FP),lbi,mbi})

数据块加密完成后,User将加密结果发送给CSP,并在本地为文件F存储h(FP),key0,1,fs,ft,n等参数,计算数据块密文、计算验证标签并将元数据和数据密文分别存储到主服务器和存储服务器。

三、针对上述步骤5:数据验证,更新元数据,提出具体的计算过程如下:

CSP以散列运算,计算个数据的验证标签,对数据密文中的每个密文块Ci进行散列运算,并以该值作为验证标签即:

Ti=h(Ci)

令Ti=Tj,以Tj作为叶子节点,并以数据块序号i为序,有叶子节点逐级往上生成验证二叉树TreeF,并以Troot,F作为根节点,更新文件的元数据

MD‘F=(h(FP),lbF,Troot,F,{(i,h(FP),lbi,mbi,Ti)}),1≤i≤n

四、针对上述步骤6:数据去重,具体的计算过程如下:

CSP随机选择一个数c,1≤c≤n,作为需要检测的数据块数目,并生成一个随机置换密钥r,然后CSP从元数据MDF中提取lbF、Troot,F和(i,h(FP),lbi,mbi,Ti),并将他们连同c、r一起发送到客户端,客户端解密得到F的根密钥key0,1,根据根密钥派生得到位置为mbi的n个叶子节点密钥kp、i,从而得到变换叶子节点密钥

解密相应的数据块密钥:

以文件F的块数n、被挑战数据块数目c和随机数r为伪随机置换函数δ的输入,得到c个数据块序号

ij=δr(c,n)

然后对各数据块密文Ci计算摘要值作为验证标签,并以Ti为叶节点、数据块序号i为序,由叶节点逐级往上生成一棵验证二叉树;

比较该树的根节点T’root,F与Troot,F是否相等,若相等则表示用户又有文件F,并且文件F与F’是同一个文件,若不相等,则表示F与F’具有相同标识,但内容不同,然后上传具有不同内容的数据块,并且记录下更新元数据:

MD‘F=(h(FP),lbF,Troot,F,{(i,h(FP),lbi,mbi,Ti)})。

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