一种基于数据加密的安全存储方法

文档序号:8365234阅读:346来源:国知局
一种基于数据加密的安全存储方法
【技术领域】
[0001]本发明涉及云安全,特别涉及一种基于数据加密的安全存储方法。
【背景技术】
[0002]云存储服务能够实时地备份文件并随时随地同步和分享文件。但是云存储也面临着许多挑战。云存储中用户数据安全便是一个基本的问题。由于云存储提供商是商业性质的,所以云存储服务器是不受信任的,必须保证云平台不能获取用户数据。现有方法是在用户将数据上传至云平台之前对数据进行加密,这样仅有该用户才能解密。而另一方面,云存储的快速发展导致存储空间的高速增长,高效的存储是云存储中另一个问题。大部分云存储提供商都采用的去冗余技术是一个减少存储空间和传输带宽的有效方法。然而,数据的去冗余和加密似乎是矛盾的。加密是使数据显得随机,而随机数据上去冗余的空间节省是很低的。数据加密是让用户使用用户私钥加密的相同数据变得不同,而去冗余技术却是利用了数据的相似性,所以加密数据的去冗余问题有待解决。

【发明内容】

[0003]为解决上述现有技术所存在的问题,本发明提出了一种基于数据加密的安全存储方法,包括:
[0004]在云平台用户进行数据文件的去冗余之前进行基于散列树的所有权验证,当用户通过文件所有权验证后,使用二次加密对冗余数据进行消除。
[0005]优选地,所述数据文件的创建过程进一步包括:
[0006]I)拥有私钥a的用户计算H(F)作为数据文件F的索引部分,并将文件F分为η块,F= Ovm2,…,mn),其中H是一个散列函数,η为文件块数;
[0007]2)用户在数据文件F = Ovm2,…,mn)上构建散列树,并计算这个散列树的根R,用户将索引(H(F),R)及块数η上传给云平台,云平台根据该索引查找文件,如果云平台查找不到这个文件,则禁止用户进行去冗余操作,而用户必须上传用用户私钥加密的整个数据文件到云平台,上传过程如下:
[0008]根据数据文件F的散列树的块数η,云平台随机选择ε个叶节点序号{Λ,12,…,IJ,其中ε是系统的预定义安全参数,然后将ΙΛ,12,…,1ε}发送给用户;
[0009]用户提供叶节点(H(Iiii)},其中I1S i彡I ε,以及从选择的叶节点到根节点间所需的兄弟节点{SJ,其中I彡i彡S,其中s是所需兄弟节点的个数;
[0010]用户随机选择会话私钥K,并利用该私钥通过AES算法来加密数据文件Ek(F),将会话私钥K编码成群G2上的元素K’,随机选择kl并用用户私钥加密会话私钥K’得到密文加密形式C ;其中群G2是阶为素数P的循环群;
[0011]用户只在本地存储(H(F),R),并且上传(H(F),R),{H (Hii)K {Sj,C,Ek (F))到云平台中,云平台通过(HOiiiM和{SJ来验证根节点R,如果验证成功,证明用户拥有该数据文件;云平台将(H(F),R)当作密文文件(C,Ek(F))的索引,并将用户记录为(H(F),R)的文件所有者。
[0012]本发明相比现有技术,具有以下优点:
[0013]本发明保证了非法用户不能获取数据的所有权,使得实现加密数据去冗余的同时,能够让用户自己任意选择私钥。
【附图说明】
[0014]图1是根据本发明实施例的基于数据加密的安全存储方法的流程图。
【具体实施方式】
[0015]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0016]本发明首先使用户在数据去冗余之前先进行基于散列树的所有权验证,保证了非法用户不能获取数据的所有权,在用户完成文件所有权验证后,使用二次加密,使得实现加密数据去冗余的同时,能够让用户自己任意选择私钥。图1是根据本发明实施例的基于数据加密的安全存储方法流程图。
[0017]在云存储环境由3个部分组成:存储用户数据文件的云平台;数据文件的合法所有者;上传数据到云平台并想通过去冗余来减少存储空间和传输带宽的用户。
[0018]云存储中,一个文件所有者可以通过PC甚至是随时随地都可使用的移动终端来自由使用自身的数据文件。如果另一个用户想进行去冗余,必须首先通过所有权验证。一个用户一旦成功通过去冗余的过程,就不需要再上传该数据文件。云平台也仅仅存储一份这个共享文件,在用户成为文件所有者后,假设云平台记录该用户,以便用户下次能够方便地取回自己的数据文件。
[0019]在云存储环境中,对云平台有不同的考虑。对于云平台,它是一个半信任模型,云平台会诚实地执行协议的过程,但是云平台也会根据自己得到的消息尽可能地获取用户数据文件和用户私钥的相关信息。因此,需要保证云平台不能获取数据内容。为了保护系统的安全,在考虑第三方攻击的同时,需要防护来自云平台的攻击。
[0020]对于云平台,目标是保证用户数据的保密、保护用户的敏感数据。在去冗余的过程中,云平台会接收到许多有关用户数据文件和私钥的信息,必须保证云平台通过这些信息不能获取用户数据文件以及用户私钥的相关内容。此外,如果云平台能够表现得像诚实的执行了去冗余过程而不被用户所发现,那么云平台能够做任何事情以获取用户数据文件。因此,必须保证云平台不能欺骗用户而不被检测到。
[0021]对于第三方用户,分为两类:一类是不拥有数据文件的用户,称为非法用户,他们试图获取数据文件的所有权来得到数据文件的内容。必须保证只有真正拥有数据文件的用户才能通过文件所有权验证,任何非法用户都会被检测到。另一类是拥有数据文件的用户,称为合法用户,合法用户共享数据文件,但不必知晓其他信息,因此,必须保证合法用户之间的隐私,任何合法用户都应不知道其他用户的身份以及其他用户的私钥等信息。
[0022]本发明使用户在将经过用户私钥加密处理过的数据文件上传至云平台之后,如果有其他用户也想上传同一数据文件至云平台,为了保证去冗余过程的安全,需要进行的是数据文件的所有权验证,在通过文件所有权验证后再进行加密数据去冗余操作。数据文件的加密操作将使数据随机地分布于密文空间,而随机分布数据上的去冗余节省率是十分低的。因此,为了保证高去冗余节省率,是否是相同数据的判断以及所有权验证都是在明文上进行的,即在用户进行加密处理前的数据文件上进行操作。在数据文件的所有权验证中,将所有权验证的判断从云平台转移至合法用户,只有文件所有者才能决定其他用户是否是该数据文件的所有者,因为云平台本就是不受信任的,云平台没有决定的权利。云平台用于传递用户之间的通信消息,以便用户之间隐藏身份。所有权验证是交互且动态的,任何不拥有整个数据文件的用户都不能通过该证明。在数据文件所有权验证后,要在不同用户用户私钥加密的数据文件上去冗余,使用二次加密技术实现这个需求。
[0023]用户将原始数据文件Fo编码成F,。令群Gl,G2是阶为素数p的循环群,e:GlXGl — G2是一个双线性映射,g是群Gl的一个生成元,并且z = e(g,g) e G2,H是一个散列函数。
[0024](I)文件创建
[0025]用户A拥有私钥a。
[0026]I)用户A计算H(F)作为文件F的索引部分,并将文件F分为η块,F= Ovm2,…,mn) ο
[0027]2)用户A在数据文件F = Ovm2,…,mn)上构建散列树,并计算这个散列树的根Ro用户A将索引(H(F),R)及块数η上传给云平台,云平台根据该索引查找文件,如果云平台查找不到这个文件,那么用户A不能进行去冗余操作,用户A必须上传用用户私钥加密的整个数据文件到云平台,上传过程如下:
[0028]I)根据数据文件F的散列树的块数η,云平台随机选择ε个叶节点序号ΙΛ,I2,…,1ε},其中ε是系统的预定义安全参数,然后将{Λ,12,…,1ε}发送给用户A。
[0029]2)用户A提供叶节点(HOiiiMl1S i彡I ε以及从选择的叶节点到根节点间所需的兄弟节点{SJ I < i < s (其中s是所需要的兄弟节点的个数)。
[0030]3)用户A随机选择会话私钥K,并利用该私钥通过AES算法来加密数据文件Ek(F)。用户A将会话私钥K编码成群G2上的元素K’,随机选择kl并用用户私钥加密会话私钥K’,密文加密形式是C = (Zakl,gak1,K’ Zkl) ο
[0031]实际上,这个密文C包含两级密文,第一级密文是(Zakl,K’Zk1),只能被用户A的私钥解密,第二级密文是(gakl,K’ Zkl),不仅能被用户A的私钥解密,而且能被转化为其他用户私钥加密的密文。
[0032]用户A只需在本地存储(H(F),R),并且上传(H(F),R),IH(Hii)} I1S i彡I ε,{Si} I ( i ( s,C,EK(F))到云平台中。云平台通过(H(IHi)Il1^ i彡I ε和{S J I彡i彡s来验证根节点R,如果验证成功,证明用户A确实拥有该数据文件。云平台将(H(F),R)当作密文文件(C,EK(F))的索引,并将用户A记录为(H(F), R)的一个文件所有者,。
[0033](2)文件去冗余
[0034]用户B拥有数据文件F并想将用用户私钥加密的数据文件上传至云平台。如果该数据文件在云平台已
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1