一种用于云存储的数据安全存取方法及用户端系统的制作方法

文档序号:7892943阅读:236来源:国知局
专利名称:一种用于云存储的数据安全存取方法及用户端系统的制作方法
技术领域
本发明涉及一种用于云存储的数据安全存取方法及用户端系统,属于分布式计算、信息安全和计算机软件的信息技术类交叉应用领域。
背景技术
云存储是在云计算概念上延伸和发展起来的,是指通过集群应用、分布式计算或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,并通过各种相应的应用软件或应用接口,共同为多租客提供密集数据存储和业务访问功能的复杂存储资源池系统。云存储系统中的数据安全问题的核心根源是数据管理权和所有权的分离。用户 所属的数据外包给云服务提供商,云服务提供商就获得了该数据或应用的优先访问权。事实证明,由于存在内部人员失职、黑客攻击导致安全机制失效等多种风险,云服务商没有充足的证据让用户确信其数据被正确地存储和使用。例如,用户数据没有被盗卖给其竞争对手、用户使用习惯等数据隐私没有被提取或分析、用户数据被正确存储在其指定的国家或区域,以及数据严格按用户要求被彻底地销毁、删除等。为了保障云存储系统中的数据私密性,目前常见的方法仍然是基于传统的数据加密技术,即简单的用某种加密技术将加密后的数据,托管到云存储系统中。然而这些方法在实际的数据操作过程中,都带来了较大的开销,且由于完整的数据均托管于云存储系统中,仍存在被破解的风险,无法完全实现用户数据私密性保护。

发明内容
本发明所要解决的技术问题在于克服现有技术所存在的不足,提供一种用于云存储的数据安全存取方法及用户端系统,能够以较低的开销,大幅提高用户数据的安全性。本发明采用以下技术方案解决上述技术问题。—种用于云存储的数据安全存取方法,存储数据时,用户端将原文件分割为一大一小两个数据块,将小数据块和文件分割信息存储于本地,将大数据块进行加密后传输至云存储系统,并将加密信息存储于本地;取回数据时,云存储系统根据用户端请求将加密的大数据块传输至用户端,用户端利用存储于本地的加密信息进行解密,并根据文件分割信息将小数据块与解密后的大数据块拼接为原文件。作为一种优选方案,用户端在对原文件进行分割时,采用以下方法首先在O— N之间随机选取预设数量的不同随机数,N为原文件的总字节数;然后将随机数按照从小到大的顺序排列,产生随机数序列;按照该随机数序列,将原文件中对应位置的字节抽取出来作为小数据块,和该随机数序列一起存储于本地,原文件中剩余的部分作为大数据块。作为另一优选方案,用户端在对原文件进行分割时,采用以下方法
步骤A、根据原文件大小确定随机数取值范围;
步骤B、在所确定的取值范围内随机选取一个数值T1,并判断S+ T1是否大于原文件总字节数N,如否,则在所确定的取值范围内随机选取一个数值T2,并判断S+ T1 +1~2是否大于原文件总字节数N;依此类推,直到随机数T1第一次满足S+ T1其中S为预
先确定的小于N的自然数;
步骤C、将原文件中第S、S+ VS+ I\+T2、...、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S、S+ VS+ I\+T2、…、S+ T1 +T2+…+TH}—起存储于本地,原文件中剩余的部分作为大数据块;或者,
将原文件中第S+ I\、S+ I\+T2、…、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S+ I\、S+ I\+T2、…、S+ T1 +T2+…+IVJ—起存储于本地,原文件中剩余的部分作为大数据块。
进一步地,用户端根据用户所需安全级别对大数据块采用不同的加密方法,具体为
对于安全级别高的大数据块,采用基于椭圆曲线的加密方法;
对于安全级别适中的大数据块,采用基于数据染色的加密方法;
对于安全级别低的大数据块,采用基于TEA算法的加密方法。更进一步地,所述加密方法的相关参数由所述小数据块生成。根据本发明的数据安全存取方法,还可以得到一种用于云存储的用户端系统,包括文件分割模块、文件加密模块、文件储存模块;存储数据时,文件分割模块将原文件分割为一大一小两个数据块,将小数据块和文件分割信息存储于文件储存模块,文件加密模块将大数据块进行加密后传输至云存储系统,并将加密信息存储于文件储存模块;取回数据时,云存储系统根据用户端请求将加密的大数据块传输至用户端,文件加密模块利用存储于文件储存模块的加密信息对其进行解密,文件分割模块根据存储于文件储存模块的文件分割信息将小数据块与解密后的大数据块拼接为原文件。本发明通过将文件分割为一大一小两块,小数据块及文件分割信息储存于本地,而将大数据块交给云存储系统托管,从而以较低的开销,解决了数据管理权和所有权的分离所导致的数据安全问题;并进一步通过分级加密方案,提高了灵活性,降低了系统开销。相比现有技术,本发明具有以下有益效果
(1)将用户数据处理的过程分为两个阶段,增强了数据私密性的安全性,平衡了安全性与性能开销的矛盾;
(2)数据文件分割后上传保证了云端数据私密性安全,这样,即使是拥有管理员权限的云服务提供者也无法恢复原始数据,只能获取被分块且加密的不完整数据;
(3)分层加密系统提供高级、中级、低级三层安全级别,负责对用户上传数据和选择的加密策略进行绑定,根据该策略加密数据,使得用户可以根据对上传数据的安全性要求选择合适的加密策略。


图I为文件存储时的工作流程示意 图2为文件取回时的工作流程示意 图3为第一种文件分割方法的流程示意 图4为第二种文件分割方法的流程示意图。
具体实施例方式下面结合附图对本发明的技术方案进行详细说明
本发明的思路是通过将待存储文件分隔为一大一小两个数据块,将大数据块进行加密后交由云存储系统进行托管存储,而将小数据块、文件分割信息,以及加密信息存储于用户端本地,从而解决数据管理权和所有权的分离所导致的数据安全问题。本发明的用于云存储的用户端系统,包括文件分割模块、文件加密模块、文件储存模块;其中文件分割模块负责在存储时对待存储的原文件进行分割,以及文件取回时将大数据块和小数据块拼接为原文件;文件加密模块负责对大数据块进行加密(文件存储时)和解密(文件取回时);文件存储模块负责存储分割出的小数据块、文件分割信息以及加密信息。为了进一步降低系统开销,文件加密模块对数据进行加密时采用分级加密策略,即对大数据块按其安全级别需求采用不同的加密方法,本发明中将安全级别分为三级 (I)高强度加密采用基于椭圆曲线的加密方法,安全程度最高,但处理速度较慢,适合用于保护对私密性要求极高的数据。(2)中强度加密采用基于数据染色(Data dyeing)的加密方案,安全程度适中,计算复杂度低于高强度加密,适合用来保护对私密性安全要求一般的数据。(3)低强度加密采用基于TEA算法(Tiny Encryption Algorithm,小型加密算法)的加密方案,安全程度低,但处理速度很快,适合用来保护对私密性安全要求不高的数据。文件加密模块负责绑定用户数据与选择的安全策略,存储文件时,根据用户的选择用相应的加密算法对待上传数据进行加密,并负责维护用户文件与选择的安全策略的映射表,将加密相关参数保存于本地,然后上传文件;取出文件时,由文件加密模块负责查找文件、加密策略映射表,并提取加密算法相关参数,然后解密数据。对大数据块加密时,所使用的加密方法的相关参数可以根据文件分割模块所分割出的小数据块确定,例如,可以对小数据块进行哈希运算,然后直接以所得到的128位的哈希值作为所使用加密方法的密钥,从而进一步降低系统开销。采用上述用户端系统进行云存储时,其文件存储过程如图I所示,包括以下步骤 步骤I、文件分割模块对待存储的原文件进行哈希运算,然后将其分割为一大一小两个
数据块,并对小数据块进行哈希运算,将得到的哈希值、小数据块,以及文件分割信息传输至文件储存模块保存,将大数据块输出至文件加密模块处理;其中小数据块的哈希值用于生成加密时的相关参数,原文件的哈希值用于文件取回时的数据完整性验证;
步骤2、文件加密模块根据用户设定的安全级别对大数据块采用相应的加密方法进行加密,加密的相关参数由小数据块的哈希值得到,然后将加密后的大数据块传输至云存储系统,通过云存储系统中的主控服务器的身份认证后安全上传至云存储系统中;
步骤3、云存储系统中的分布式文件系统对加密后的大数据块进行分块,将数据块存储到存储服务器中,将数据分块信息和数据块存储位置信息存储到主控服务器。当用户需要取出所托管的文件时,其过程如图2所示,包括以下步骤
步骤I、主控服务器根据通过身份认证的客户端系统的请求向存储服务器发出指令;存储服务器根据标识向主控服务器查询数据分块信息及数据块存储位置,根据数据块分块信息和存储位置,从存储服务器取出所有数据块,根据分块策略将数据块组装成大数据块,并发送给客户端;
步骤2、客户端系统中的文件加密模块根据文件储存模块存储的加密相关参数对大数据块进行解密,并将解密后的大数据块传输至文件分割模块;
步骤3、文件分割模块提取文件储存模块存储的小数据块及文件分割信息,并利用文件分割信息将大数据块和小数据块进行拼接;然后对拼接成的文件进行哈希运算,将得到的哈希值与原文件的哈希值进行比较,以验证数据完整性。对原文件进行简便而有效的分割是本发明的关键,可以采用抽取固定大小的小数 据块的方法,也可以采用抽取非固定大小的小数据块的方法。下面对这两类方法各举一例。方法一、
该文件分割方法的流程如图3所示,具体如下
首先在O— N之间随机选取预设数量(例如可取1024、1000、500等)的不同随机数,N为原文件的总字节数;然后将随机数按照从小到大的顺序排列,产生随机数序列;按照该随机数序列,将原文件中对应位置的字节抽取出来作为小数据块,和该随机数序列一起存储于本地,该随机数序列即为文件分割信息,可用于取出文件时的数据块拼接;原文件中剩余的部分作为大数据块。方法二、
本方法可根据文件大小抽取非固定大小的小数据块,其流程如图4所示,具体按照以下步骤
步骤A、根据原文件大小确定随机数取值范围,例如1-10、10-50等;该取值范围与待上传的文件大小直接相关,对于较大的原文件采用较大的数值范围,较小的原文件采用较小的数值范围;例如可预先存储文件大小与数值范围的映射关系表,通过查表来确定取值范围;也可通过函数关系实时计算得到;
步骤B、在所确定的取值范围内随机选取一个数值T1,并判断S+ T1是否大于原文件总字节数N,如否,则在所确定的取值范围内随机选取一个数值T2,并判断S+ T1 +1~2是否大于原文件总字节数N;依此类推,直到随机数T1第一次满足S+ T1其中S为预
先确定的小于N的自然数;
步骤C、将原文件中第S、S+ VS+ I\+T2、...、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S、S+ VS+ I\+T2、…、S+ T1 +T2+…+TH}—起存储于本地,原文件中剩余的部分作为大数据块;或者,
将原文件中第S+ I\、S+ I\+T2、…、S+ T1 +T2+…+Th个字节抽取出来并依序排列作为小数据块,和自然数序列{S+ I\、S+ I\+T2、…、S+ T1 +T2+…+IVJ—起存储于本地,原文件中剩余的部分作为大数据块。本发明从云存储系统中数据安全问题的核心根源着手,在用户端即将文件分割为两部分,较大部分数据采用分级加密策略进行加密后送交云存储系统托管,而较小部分数据、文件分割信息及加密参数则保存在用户端本地。这样,即使是拥有管理员权限的云服务提供者也无法恢复原始数据,只能获取被分块且加密的不完整数据,极大提高了用户数据的安全性。
权利要求
1.一种用于云存储的数据安全存取方法,其特征在于,存储数据时,用户端将原文件分割为一大一小两个数据块,将小数据块和文件分割信息存储于本地,将大数据块进行加密后传输至云存储系统,并将加密信息存储于本地;取回数据时,云存储系统根据用户端请求将加密的大数据块传输至用户端,用户端利用存储于本地的加密信息进行解密,并根据文件分割信息将小数据块与解密后的大数据块拼接为原文件。
2.如权利要求I所述用于云存储的数据安全存取方法,其特征在于,用户端在对原文件进行分割时,采用以下方法首先在O—N之间随机选取预设数量的不同随机数,N为原文件的总字节数;然后将随机数按照从小到大的顺序排列,产生随机数序列;按照该随机数序列,将原文件中对应位置的字节抽取出来作为小数据块,和该随机数序列一起存储于本地,原文件中剩余的部分作为大数据块。
3.如权利要求I所述用于云存储的数据安全存取方法,其特征在于,用户端在对原文件进行分割时,采用以下方法 步骤A、根据原文件大小确定随机数取值范围; 步骤B、在所确定的取值范围内随机选取一个数值T1,并判断S+ T1是否大于原文件总字节数N,如否,则在所确定的取值范围内随机选取一个数值T2,并判断S+ T1 +!~2是否大于原文件总字节数N ;依此类推,直到随机数T1第一次满足S+ T1 +T2+-+T1 > N ;其中S为预先确定的小于N的自然数; 步骤C、将原文件中第S、S+ VS+ I\+T2、...、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S、S+ VS+ I\+T2、…、S+ T1 +T#"+TH} —起存储于本地,原文件中剩余的部分作为大数据块;或者, 将原文件中第S+ T1^S+ I\+T2、…、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S+ T1^S+ I\+T2、…、S+ T1 +!^+…+!^}—起存储于本地,原文件中剩余的部分作为大数据块。
4.如权利要求1-3任一项所述用于云存储的数据安全存取方法,其特征在于,用户端根据用户所需安全级别对大数据块采用不同的加密方法,具体为 对于安全级别高的大数据块,采用基于椭圆曲线的加密方法; 对于安全级别适中的大数据块,采用基于数据染色的加密方法; 对于安全级别低的大数据块,采用基于TEA算法的加密方法。
5.如权利要求4所述用于云存储的数据安全存取方法,其特征在于,所述加密方法的相关参数由所述小数据块生成。
6.一种用于云存储的用户端系统,其特征在于,包括文件分割模块、文件加密模块、文件储存模块;存储数据时,文件分割模块将原文件分割为一大一小两个数据块,将小数据块和文件分割信息存储于文件储存模块,文件加密模块将大数据块进行加密后传输至云存储系统,并将加密信息存储于文件储存模块;取回数据时,云存储系统根据用户端请求将加密的大数据块传输至用户端,文件加密模块利用存储于文件储存模块的加密信息对其进行解密,文件分割模块根据存储于文件储存模块的文件分割信息将小数据块与解密后的大数据块拼接为原文件。
7.如权利要求6所述用于云存储的用户端系统,其特征在于,文件分割模块在对原文件进行分割时,采用以下方法首先在O—N之间随机选取预设数量的不同随机数,N为原文件的总字节数;然后将随机数按照从小到大的顺序排列,产生随机数序列;按照该随机数序列,将原文件中对应位置的字节抽取出来作为小数据块,和该随机数序列一起存储于文件储存模块,原文件中剩余的部分作为大数据块。
8.如权利要求6所述用于云存储的用户端系统,其特征在于,文件分割模块在对原文件进行分割时,采用以下方法 步骤A、根据原文件大小确定随机数取值范围; 步骤B、在所确定的取值范围内随机选取一个数值T1,并判断S+ T1是否大于原文件总字节数N,如否,则在所确定的取值范围内随机选取一个数值T2,并判断S+ T1 +!~2是否大于原文件总字节数N ;依此类推,直到随机数T1第一次满足S+ T1 +T2+-+T1 > N ;其中S为预先确定的小于N的自然数; 步骤C、将原文件中第S、S+ VS+ I\+T2、...、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S、S+ VS+ I\+T2、…、S+ T1 +T#"+TH} —起存储于本地,原文件中剩余的部分作为大数据块;或者, 将原文件中第S+ T1^S+ I\+T2、…、S+ T1 +T2+…+IV1个字节抽取出来并依序排列作为小数据块,和自然数序列{S+ T1^S+ I\+T2、…、S+ T1 +!^+…+!^}—起存储于本地,原文件中剩余的部分作为大数据块。
9.如权利要求5—7任一项所述用于云存储的用户端系统,其特征在于,文件加密模块根据用户所需安全级别对大数据块采用不同的加密方法,具体为 对于安全级别高的大数据块,采用基于椭圆曲线的加密方法; 对于安全级别适中的大数据块,采用基于数据染色的加密方法; 对于安全级别低的大数据块,采用基于TEA算法的加密方法。
10.如权利要求9所述用于云存储的用户端系统,其特征在于,所述加密方法的相关参数由所述小数据块生成。
全文摘要
本发明公开了一种用于云存储的数据安全存取方法,存储数据时,用户端将原文件分割为一大一小两个数据块,将小数据块和文件分割信息存储于本地,将大数据块进行加密后传输至云存储系统,并将加密信息存储于本地;取回数据时,云存储系统根据用户端请求将加密的大数据块传输至用户端,用户端利用存储于本地的加密信息进行解密,并根据文件分割信息将小数据块与解密后的大数据块拼接为原文件。文件分割时,可采用抽取固定大小数据的方式,也可采用抽取非固定大小数据的方式。进一步地,数据加密时采用分级加密的策略,从而降低系统开销。本发明还公开了一种用于云存储的用户端系统。本发明能够以较低的开销,大幅提高用户数据的安全性。
文档编号H04L29/08GK102664928SQ20121009564
公开日2012年9月12日 申请日期2012年4月1日 优先权日2012年4月1日
发明者周静岚, 张伟, 徐劲松, 徐小龙, 杨庚, 陈丹伟 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1