支持高效收敛密钥管理的云存储数据去重方法与流程

文档序号:15357664发布日期:2018-09-05 00:11阅读:222来源:国知局

本发明涉及数据处理技术领域,具体涉及一种能支持高效收敛密钥管理的云存储数据去重方法,可用于云计算环境下的数据安全外包。



背景技术:

随着云计算技术的飞速发展,越来越多的企业和个人将自身的数据存储在云端,随着云存储规模的增长,大量数据被重复存储,这对云服务器的存储资源造成极大的浪费。数据去重技术是云存储中非常重要的数据管理和存储优化方法,通过数据去重可以消除数据冗余,相同数据只保留一个物理副本,从而有效降低用户端上传数据耗费的带宽及节省服务器端的存储空间。收敛加密已经被广泛应用于构造安全的数据去重系统,其采用对称加密算法,加密及解密所使用的收敛密钥仅取决于要加密的数据本身,因此,相同的明文通过收敛加密可以得到相同的密文。

如何安全高效管理用户大量的收敛密钥成为收敛加密面临的主要问题。现有的基本的方法是用户用自身主密钥将收敛密钥加密后存储在云上,然而随着用户及数据规模增大,给用户带来密钥管理负担的同时,大量收敛密钥的重复存储本身就是一种数据冗余。针对该问题,li等在(lij,chenx,lim,etal.securededuplicationwithefficientandreliableconvergentkeymanagement[j].ieeetransactionsonparallel&distributedsystems,2014,25(6):1615-1625.)提出了一个支持高效收敛密钥管理的去重方案,该方案采取门限秘密共享技术允许用户将其收敛密钥分发存储在分布式云存储中,然而该方案不能抵抗超过门限数量的云服务器共谋攻击而且要求分发秘密份额的信道是安全的。kwon等在(kwonh,hahnc,kood,etal.scalableandreliablekeymanagementforsecurededuplicationincloudstorage[c]//ieee,internationalconferenceoncloudcomputing.ieee,2017:391-398.)引入了完全可信的目录服务器,提出了将收敛密钥分成三个秘密组件存储于不同的实体,该方法所说解决了公开信道的问题,但却面临用户与云存储服务器共谋欺骗目录服务器的问题,而且计算与通信开销较大。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出一种支持高效收敛密钥管理的云存储数据去重方法,以在消除冗余的同时减少用户的密钥管理负担,减小计算与通信的开销,实现安全高效的云存储数据去重。

本发明的技术思路是:只要第一位初始数据上传者进行数据加密及密钥分发共享,后续相同数据拥有者通过数据拥有证明获得数据密钥,使得对于去重的数据只存储一份收敛密钥,其实现方案包括如下:

(1)系统初始化,设定系统参数,生成用户的公私钥:

(1a)目录服务器is定义由g到gt的双线性映射e(·):g×g→gt,其中g和gt是两个阶为大素数p的乘法循环群,→表示生成操作;

(1b)目录服务器is设定(n,r)-rsss门限秘密共享方案,其中,n表示秘密划分的份额,r表示门限值,rsss是门限秘密共享的缩写,在门限秘密共享方案中设有秘密分发操作和秘密恢复操作,分别表示为share(·)和recover(·);

(1c)用户u随机选择一个正整数x∈zp作为私钥sk=x,得到公钥为其中x-1为x在模p整数群中的乘法逆元,p为一个大素数,g为群g的生成元,zp表示小于p的所有正整数;

(2)用户对拥有数据d需要上传至云进行存储时,进行数据去重检查:

(2a)根据系统分块大小将数据d分成t块,并以这t个分块为叶子节点构建mht哈希树,其中mht为merklehashtree的缩写;

(2b)将mht哈希树的根节点hroot发送给目录服务器is进行去重查验,如果目录服务器is的目录列表中没有根节点hroot,则去重失败,执行(3),如果根节点hroot已经存在于目录服务器is的目录列表中,则去重成功,执行(4)

(3)对于未能去重的数据,则用户作为该数据的初始上传者,对其进行加密上传:

(3a)用户随机选择一个正整数r∈zp,哈希r产生数据d的数据密钥k,加密数据d得到密文c←enck(d)及标签t,其中enc表示加密运算,c表示加密后的密文,←表示生成操作;

(3b)用户将密文c及其标签t一并上传存储,云存储服务器cs验证密文c及其标签t的一致性,若一致,则存储,否则,拒绝其存储请求;

(3c)对于初次上传的数据d,目录服务器is将其根节点hroot及数据目录信息一并存入目录列表,随机选择一个正整数u∈zp安全存储在数据d的目录数据库中,并对u进行加密得到密文y并发送给用户;

(3d)密钥加密:用户收到密文y后,使用自己的私钥进行解密得到明文x,哈希x得到数据d的拥有密钥kw,使用拥有密钥kw加密数据密钥k获得密钥密文φ;

(3e)密钥分发,用户对密钥密文φ进行门限秘密共享方案share(·)操作,产生n个秘密共享份额{k1,k2,···,kn}←share(·),其中share(·)为秘密分发操作,k1,k2,···,kn为分发产生的秘密份额,将这些秘密份额上传至云存储服务器cs存储;

(4)对于去重成功的数据,用户对密文数据c进行验证,以防止恶意用户不按规则加密数据导致后续用户无法根据密文c解密得到数据d:

(4a)用户与目录服务器is交互进行数据拥有证明,若证明不通过,则拒绝该用户的数据上传请求,若证明通过,则目录服务器is将该用户添加至数据d的拥有者列表中,加密u产生密文y并发送给用户,其中u已经存在于数据d目录中;

(4b)用户收到密文y后,解密得到明文x,哈希x得到数据拥有密钥kw;

(4c)用户与云存储服务器cs交互获取r个秘密份额,运行门限秘密共享方案的recover(·)操作恢复得到密钥密文φ;

(4d)用户解密密钥密文φ得到数据密钥k,加密数据d得到数据密文c←enck(d),其中enc表示加密运算,←表示生成操作,c表示加密后的密文;

(4e)用户对数据密文c进行哈希得到数据标签t,发送标签t给云存储服务器cs进行一致性检查,检查通过则数据上传结束,否则上传密文c至云存储服务器cs进行存储;

(5)当用户需要时从云存储服务器cs下载,得到自身存储在云中的数据。

本发明与现有技术相比具有以下优点:

第一,本发明由数据的初始上传者随机生成密钥,减少了用户与第三方交互产生收敛密钥环节,从而节省了计算与通信开销,并且确保了可预测明文空间时用户数据的安全性。

第二,本发明对明文、密文、标签的一致性进行追踪,能够及时发现并制止用户的恶意行为,避免了因恶意用户的不当行为对正常用户的利益造成损害。

第三,本发明采用密钥共享机制,使得对于去重的数据,只需要存储一份密钥,节省了云端的存储资源,引入了可信的目录服务器保证了密钥的安全性,且用户使用密钥便捷高效。

附图说明

图1为本发明的实现流程图。

图2为本发明中使用的mht哈希树原理图。

具体实施方式

下面结合附图和具体实施例,对本发明作进一步的详细说明:

本发明的使用场景包括三个有效实体:

云存储服务器(cs):cs向用户提供存储计算服务,拥有强大的计算能力和巨大的存储空间。一般情况下,用户会以租赁的形式从云服务器方购买存储空间,并且将自身数据存储在云上以备以后使用。

目录服务器(is):is作为一个可信实体,为用户及其数据提供索引,能够公正地进行数据拥有证明,能够保证数据、密钥、密文的一致性。

用户(u):用户可以是个人或企业,拥有大量的数据需要存储在云上,并依靠云进行数据维护管理和进行相关计算。

参照图1,本发明的实现步骤如下:

步骤1,系统初始化,设定系统参数,生成用户的公私钥。

1a)目录服务器is定义由g到gt的双线性映射e(·):g×g→gt,其中g和gt是两个阶为大素数p的乘法循环群,→表示生成操作;

双线性映射e(·)具有以下性质:

·双线性,对于任意的g1,g2∈g和都有

·非退化性,对于g的生成元g,e(g,g)≠1;

·可计算性,存在有效算法使得在任何情况下计算e是高效的。

1b)目录服务器is设定(n,r)-rsss门限秘密共享方案,其中,n表示秘密划分的份额,r表示门限值,rsss是门限秘密共享的缩写,在门限秘密共享方案中设有秘密分发操作和秘密恢复操作,分别表示为share(·)和recover(·);

·秘密分发share(·),将秘密s划分为n等份,设置门限值为r;

·秘密恢复recover(·),以这n等份中的任意r个份额作为输入,可以恢复出秘密s。

所述门限秘密共享方案(n,r)-rsss是将一个秘密s分成n等份,n>r>0,只有拥有的秘密份额大于等于r时,才能够恢复出秘密s,当拥有的秘密份额小于r时,将不能得到关于秘密s的任何信息。

1c)用户u随机选择一个正整数x∈zp作为私钥sk=x,得到公钥为其中x-1为x在模p整数群中的乘法逆元,p为一个大素数,g为群g的生成元,zp表示小于p的所有正整数。

步骤2,用户对拥有数据d需要上传至云进行存储时,进行数据去重检查。

在可去除重复的云存储系统中,用户对自身拥有的数据d进行上传存储时,首先上传少量的数据特征值进行去重检查,当云中已经存储了相同的数据时,用户并不需要进行数据的上传,从而减少数据上传的带宽,其实现如下:

2a)根据系统分块大小将数据d分成t块,并以这t个分块为叶子节点构建mht哈希树,其中mht为merklehashtree的缩写;

2b)将mht哈希树的根节点hroot发送给目录服务器is进行去重查验,如果目录服务器is的目录列表中没有根节点hroot,则去重失败,执行(3),如果根节点hroot已经存在于目录服务器is的目录列表中,则去重成功,执行(4)。

步骤3,对于未能去重的数据,则用户作为该数据的初始上传者,对其进行加密上传。

3a)用户随机选择一个正整数r∈zp,并对r进行哈希,产生数据d的数据密钥k,k←h(r),用数据密钥k对数据d进行加密,得到密文c←enck(d)及标签t←h(c),其中h表示哈希运算,enc表示加密运算,c表示加密后的密文,←表示生成操作;

3b)用户将密文c及其标签t一并上传存储,云存储服务器cs计算密文c的哈希值,与用户上传的标签t进行对比,验证密文c及其标签t的一致性,若一致,则存储,否则,拒绝其存储请求;

3c)对于初次上传的数据d,目录服务器is将其根节点hroot及数据目录信息一并存入目录列表,随机选择一个正整数u∈zp安全存储在数据d的目录数据库中,对u加密生成密文y=e(g,pk)u并发送给用户,其中pk为用户的公钥,只有拥有对应私钥的用户才能对密文y进行解密;

3d)密钥加密:用户收到密文y后,使用自己的私钥sk进行解密得到明文x=ysk=(e(g,pk)u)sk=e(g,g)u,哈希x得到数据d的拥有密钥kw←h(x),h表示哈希运算,←表示生成操作;再使用拥有密钥kw数据密钥k进行加密获得密钥密文其中表示异或运算,←表示生成操作;

3e)密钥分发:用户对密钥密文φ进行门限秘密共享方案share(·)操作,产生n个秘密共享份额{k1,k2,···,kn}←share(·),其中share(·)为秘密分发操作,k1,k2,···,kn为分发产生的秘密份额,将这些秘密份额上传至云存储服务器cs存储,使得云存储服务器cs具备一定的容灾能力,当其中的至多n-r个份额损坏时,仍然可以恢复出密钥密文φ。

步骤4,对于去重成功的数据,用户对密文数据c进行验证,以防止恶意用户不按规则加密数据导致用户无法根据密文c解密得到数据d。

4a)用户与目录服务器is交互进行数据拥有证明:

在去重云存储系统中,一个用户声称拥有数据d需要上传存储时,当云中已存储了该数据,该用户并不需要重复上传该数据,恶意用户可能以虚假的声称拥有非法访问自身并不拥有的数据,为防止此类欺诈行为,用户需要向云证明其真实拥有声称的数据。本发明借助mht哈希树进行数据拥有证明,假设数据d根据系统分块大小有t个分块,以这t个分块作为叶子节点构建mht哈希树,按照以下挑战—应答协议进行数据拥有证明:

所述生成挑战,是指目录服务器is随机选择一组数据块编号作为挑战发送给用户,如图2所示。假设数据d共有8个数据块,则构成的mht哈希树共有8个叶子节点,目录服务器is随机选择ic={2,5}作为挑战;

所述挑战应答,是指用户u如果真实拥有数据d,则构建相应的mht哈希树,依据挑战ic中所有节点至根节点的路径,将挑战节点和这些路径节点的兄弟节点按自下而上、自左至右的顺序发送给目录服务器is作为应答,即包含挑战ic的能够恢复出根节点的最小节点集合,在图2例子中,则应答节点集合为{h41,h42,h45,h46,h32,h34};

所述应答检验,是指目录服务器is以用户的应答节点为初始数据,计算相应的mht根节点hroot,与用户上传的hroot进行比对,如果相等,则证明通过,否则证明失败。

若证明失败,则拒绝该用户的数据上传请求,若证明通过,则目录服务器is将该用户添加至数据d的拥有者列表中,对u进行加密产生密文y=e(g,pk)u并发送给用户,其中pk为用户的公钥;

4b)用户收到密文y后,解密得到明文x=ysk=(e(g,pk)u)sk=e(g,g)u,哈希x得到数据拥有密钥kw←h(x),其中pk、sk分别表示用户的公私钥,h表示哈希运算,←表示生成操作;

4c)用户与云存储服务器cs交互获取r个秘密份额,运行门限秘密共享方案的recover(·)操作恢复得到密钥密文φ;

4d)用户解密密钥密文φ得到数据密钥加密数据d得到数据密文c←enck(d),其中表示异或运算,enc表示加密运算,←表示生成操作,c表示加密后的密文;

4e)用户对数据密文c进行哈希得到数据标签t←h(c),发送标签t给云存储服务器cs进行一致性检查,其中h表示哈希运算,←表示生成操作,若检查结果一致,则数据d存储完成,若检查结果不一致,用户仍需要上传密文c至云存储服务器cs进行存储。

步骤5,当用户需要用到自身存储在云存储服务器cs中的数据时,进行数据下载解密。

5a)用户与目录服务器is进行交互,只有在数据d目录列表里的用户才能从目录服务器is得到u的密文y=e(g,pk)u,使用自身私钥sk对密文y进行解密得到明文x=ysk=(e(g,pk)u)sk=e(g,g)u,对明文x哈希后得到数据d的拥有密钥kw←h(x),其中pk、sk分别表示用户的公私钥,h表示哈希运算,←表示生成操作;

5b)用户与云存储服务器cs进行交互得到至少r个秘密份额,运行门限秘密共享算法recover(·)得到密钥密文φ,对密钥密文φ解密后得到密钥其中表示异或运算,←表示生成操作;

5c)用户从云存储服务器cs下载数据密文c并解密得到数据明文d←deck(c),其中dec表示解密操作,←表示生成操作。

以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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