文件存储和共享方法

文档序号:7982839阅读:708来源:国知局
文件存储和共享方法
【专利摘要】本申请公开了文件存储和共享方法。文件存储方法可包括:客户端将文件分割成多个数据块;以哈希算法分别对每个数据块的内容进行计算,以得到的哈希值作为内容密钥分别对多个数据块进行加密,得到多个密文数据块;将密文数据块上传至存储服务器;以映射密钥分别对每个密文数据块在存储服务器中的位置、在原文件中的位置和内容密钥加密生成映射信息,以文件所有者的公钥对映射密钥加密生成密钥信息,并将映射信息和密钥信息连同文件名和文件所有者标识一起传送至元数据服务器。根据本申请的文件存储方法,能够提高文件存储的安全性,而在进行文件共享时,只需对各授权用户设置不同的重加密密钥就能够实现文件的共享,无需经常更新密钥。
【专利说明】文件存储和共享方法
【技术领域】
[0001]本申请涉及文件存储和共享方法。
【背景技术】
[0002]为了提高数据安全性和存储效率,可对文件加密后进行存储和共享,具体地,可在客户端对文件求取哈希值摘要并上传至服务器端判断待存储的文件是否已经存在,若重复则仅返回重复数据块在服务器上的位置及重复数据块的密钥,若不重复则将加密后的文件上传,同时上传加密密钥给服务器以便之后其他未被授权但上传了与该文件重复而被删除的用户可以解读。
[0003]但是,在上述方案中,对不同的授权群需不断更新密钥,对服务器及其管理者有较高的可信要求,密钥及内容有可能泄露给服务器。
[0004]作为另一种现有方案,可在客户端对文件分块,对每个分块使用聚合加密,将密文片段传送至服务器端进行比较判断,若重复则丢弃并通知已有片段的位置,不重复则将该片段存放的位置返回;将这些分块密钥及存储位置按照对应的分块在原文的位置排列后使用映射密钥加密上传至元数据存储服务器,同时将该映射密钥使用被授权用户的公钥加密后存储在元数据服务器上,当被授权用户请求读取时可获得对应的加密后的映射密钥,使用自己私钥即可解出映射密钥,继而解出分块密钥,最后实现对分块的可读。
[0005]可是,根据这种方案,每次无论是否重复均需上传作比较,传输量太大存在带宽浪费且费时;元数据服务器上需存储较多的加密后的映射密钥,且其会根据被授权用户数增多而增多。

【发明内容】

[0006]为了解决上述现有加密文件的存储和共享方法中存在的问题,本申请提出了一种文件的存储和共享方法。
[0007]根据本申请的一个方面,提出了一种文件存储方法。该方法可包括:客户端将文件分割成多个数据块;以第一哈希算法分别对每个数据块的内容进行计算,以得到的哈希值作为各个数据块的内容密钥分别对数据块进行加密,得到多个密文数据块;将每个密文数据块上传至存储服务器并从存储服务器获取每个密文数据块在存储服务器中的位置;以映射密钥分别对每个密文数据块在存储服务器中的位置/在原文件中的位置和内容密钥加密生成映射信息,以文件所有者的公钥对所述映射密钥加密生成密钥信息,并将映射信息和密钥信息连同文件名和文件所有者标识一起传送至元数据服务器。
[0008]根据本申请的另一个方面,提出了一种文件共享方法,其中,构成文件的多个密文数据块存储于存储服务器中,文件元数据存储于元数据服务器中,文件元数据包括以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥加密生成的映射信息,以及以文件所有者的公钥对所述映射密钥加密生成的密钥信息。该文件共享方法可包括:文件所有者生成被授权用户列表以及每个被授权用户的重加密密钥并传送至元数据服务器;元数据服务器根据授权用户列表确定请求共享文件用户是否为被授权用户,若是,则以所述请求共享文件用户的重加密密钥对所述密钥信息进行重加密;元数据服务器将所述映射信息和经重加密的密钥信息发送给所述请求共享文件用户;所述请求共享文件用户的客户端以私钥解密所述经重加密的密钥信息获取所述映射密钥,以所述映射密钥对所述映射信息进行解密,并通过解密后的信息获取请求共享的文件。
[0009]通过本申请的文件存储方法,能够提高文件存储的安全性,而在进行文件共享时,只需对各授权用户设置不同的重加密密钥就能够实现文件的共享,无需经常更新密钥。
【专利附图】

【附图说明】
[0010]图1是根据本申请一个实施方案的文件存储方法的流程图;以及
[0011]图2是根据本申请一个实施方案的文件共享方法的流程图。
【具体实施方式】
[0012]下面参照附图,对本申请的实施方案进行详细说明。
[0013]如图1所示,根据本申请一个实施方案的文件存储方法可如下执行。
[0014]客户端上层应用发起文件写入操作后,由客户端将该文件分割成多个数据块(步骤S1002)。可以理解,所分割的多个数据块是彼此不重叠的数据块,可采用任一分割算法来执行分割操作。
[0015]客户端以哈希算法分别对分割得到的每个数据块的内容进行计算,为每个数据块得到哈希值,作为各个数据块的内容密钥。对于多个数据块中的每一个,客户端以数据块的内容密钥对该数据块进行加密操作,从而得到与分割而成的多个数据块数量相同的多个密文数据块(步骤S1004)。因此,内容密钥是数据块级别的密钥,其目的在于保证一个数据块的安全。
[0016]可以理解,由于对一个数据块进行加密的密钥是对该数据块的内容进行哈希算法而得到的哈希值,因此,相同的数据块会被相同的内容密钥加密而成为相同的密文。
[0017]接下来在步骤S1006,由客户端将多个密文数据块中的每一个上传至存储服务器并从存储服务器获取每个密文数据块在存储服务器中的位置。
[0018]然后,客户端生成映射信息和密钥信息,并将映射信息和密钥信息连同文件名和文件所有者标识一起传送至元数据服务器(步骤S1008)。具体而言,客户端以映射密钥分别对每个密文数据块在存储服务器中的位置、在原文件中的位置以及内容密钥加密生成映射信息,以文件所有者的公钥对映射密钥加密生成密钥信息。根据本实施方案,上传至元数据服务器的映射信息、密钥信息以及文件名和文件所有者标识一起构成了文件的元数据。
[0019]根据本实施方案,映射密钥为文件级别的密钥,用于保证一个文件的安全,而为了进一步确保映射密钥的安全性,采用文件所有者(即文件上传者)的公钥对其加密。
[0020]根据一个示例性实施方案,在获取密文数据块后,客户端可通过哈希算法对每个密文数据块进行计算,以得到的哈希值作为每个密文数据块的标识符。
[0021]在本实施方案中,获取标识符的哈希算法与获取内容密钥的哈希算法可以是不同的哈希算法,也可以是相同的哈希算法。[0022]在通过哈希算法获取密文数据块标识符的实施方案中,映射信息是客户端以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的内容密钥和标识符进行加密而生成的。
[0023]这种情况下,密文数据块上传至存储服务器的步骤可以并非是直接上传每个获得的密文数据块,而是由客户端先将要上传的密文数据块的标识符发送至存储服务器。
[0024]存储服务器可首先通过所接收的标识符来确定待上传的密文数据块是否已经在先前被存储,若已存储,则将标识符和已存储数据块的位置返回给客户端,这样,客户端就不必再次上传已存储的密文数据块,既能够节省通信开销,又能够节约存储服务器的存储开销,从而提高效率。
[0025]另一方面,若存储服务器通过标识符确定待上传的密文数据块未被存储,则可将包含待存储位置和所述标识符的信息返回给客户端,此时,客户端将所述标识符对应的密文数据块上传至存储服务器,存储至存储服务器所分配的待存储位置。
[0026]根据一个实施例,客户端将标识符对应的密文数据块上传至存储服务器后,存储服务器在进行存储操作之前,可首先根据接收到的密文数据块和标识符进行一致性验证,验证通过后,再将所述密文数据块存储至所述待存储位置,以防止目标冲突攻击,保证数据的完整性和一致性。
[0027]可以理解,在根据本申请实施方案的文件存储方法中,对数据块进行加密形成密文数据块的算法和加密以形成映射信息的算法均为对称加密算法,即,内容密钥和映射密钥均为对称密钥。
[0028]接下来参照图2,描述根据本申请实施方案的文件共享方法。
[0029]在根据图1所示方法将文件存储至存储服务器、元数据存储至元数据服务器之后,构成文件的多个密文数据块存储于存储服务器中,文件元数据存储于元数据服务器中,其中,文件元数据包括以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥加密生成的映射信息,以及以文件所有者的公钥对所述映射密钥加密生成的密钥信息。
[0030]如图2所示,在进行文件共享操作时,需由文件所有者生成被授权用户列表以及每个被授权用户的重加密密钥,并传送至元数据服务器(步骤S2002)。元数据服务器因此保存每个文件的授权用户数据库,其中包括授权用户列表及每个授权用户的重加密密钥。
[0031]可以理解,授权用户的重加密密钥可由客户端线下生成,每次生成重加密密钥可前先判断是否已存在该密钥,若有则不需再生成,以节省计算开销。
[0032]当有用户请求共享文件时,元数据服务器可根据授权用户列表确定请求共享文件用户是否为被授权用户,若是,则以所述请求共享文件用户的重加密密钥对文件元数据中的密钥信息进行重加密(步骤S2004)。若请求共享文件用户不是被授权用户,则禁止共享操作。
[0033]接下来在步骤S2006,元数据服务器将文件元数据中的映射信息和经重加密的密钥信息发送给请求共享文件用户。
[0034]在收到元数据服务器发送的信息后,在步骤S2008,请求共享文件用户的客户端以私钥解密所述经重加密的密钥信息获取所述映射密钥,以所述映射密钥对所述映射信息进行解密,并通过解密后的信息获取请求共享的文件。[0035]根据一个具体实施方案,存储于元数据服务器中的文件元数据可包括以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥和标识符加密生成的映射信息。
[0036]在本实施方案中,请求共享文件用户的客户端在获得了元数据服务器发送的信息后,可以私钥解密经重加密的密钥信息获取映射密钥,以映射密钥对映射信息进行解密,获取每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥和标识符,通过每个密文数据块在存储服务器中的位置获取存储服务器中存储的多个密文数据块,通过每个密文数据块的标识符对密文数据块进行一致性验证,通过密文数据块的解密密钥和在原文件中的位置获取请求共享的文件。
[0037]文件经去重存储处理后,原有文件被打散为互相独立的密文数据块,要将相关密文数据块重组为完整的文件,便需要密文数据块在存储服务器中的位置、密文数据块标识符、密文数据块的解密密钥、密文数据块在原文件中的位置。在获取这些信息之后,便能够根据数据块在存储服务器中的位置向存储服务器提出数据块读取请求,获得密文数据块和标识符后,验证密文数据块与标识符的一致性,使用对应的解密密钥解密得出明文数据块,最后根据数据块在原文件中的位置整合数据块从而恢复为可读的原文件,至此客户端完成读取。
[0038]通过本申请的文件存储方法,能够提高文件存储的安全性,而在进行文件共享时,只需对各授权用户设置不同的重加密密钥就能够实现文件的共享,无需经常更新密钥。
[0039]根据实验证明,本方案所引入的额外的元数据信息规模不会随着分享文件数量的增多而增多,在空间占用方面的优势比较明显;上传文件前,先使用标识符来判断重复,若重复则通知客户端不需上传相应分块,减少了节点间的数据量;可抵御目标冲突攻击。
[0040]以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制。凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
【权利要求】
1.文件存储方法,包括: 客户端将文件分割成多个数据块; 以第一哈希算法分别对每个数据块的内容进行计算,以得到的哈希值作为各个数据块的内容密钥分别对所述多个数据块进行加密,得到多个密文数据块; 将每个密文数据块上传至存储服务器并从存储服务器获取每个密文数据块在存储服务器中的位置;以及 以映射密钥分别对每个密文数据块在存储服务器中的位置、在原文件中的位置和内容密钥加密生成映射信息,以文件所有者的公钥对所述映射密钥加密生成密钥信息,并将映射信息和密钥信息连同文件名和文件所有者标识一起传送至元数据服务器。
2.如权利要求1所述的方法,进一步包括:客户端以第二哈希算法对每个密文数据块进行计算,以得到的哈希值作为每个密文数据块的标识符, 其中,映射信息是客户端以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的内容密钥和标识符进行加密而生成的。
3.如权利要求2所述的方法,其中,所述第一哈希算法和所述第二哈希算法是相同的算法或不同的算法。
4.如权利要求2所述的方法,其中,客户端上传密文数据块的步骤进一步包括: 客户端将该密文数据块的标识符发送至存储服务器; 若存储服务器通过所述标识符确定待上传的密文数据块已存储,则将所述标识符和已存储数据块的位置返回给客户端;以及 若存储服务器通过所述标识符确定`待上传的密文数据块未存储,则将包含待存储位置和所述标识符的信息返回给客户端,由客户端将所述标识符对应的密文数据块上传至存储服务器。
5.如权利要求3所述的方法,其中,客户端将所述标识符对应的密文数据块上传至存储服务器后,存储服务器根据接收到的密文数据块和所述标识符进行一致性验证,验证通过后,将所述密文数据块存储至所述待存储位置。
6.如权利要求2至5中任一项所述的方法,其中,所述内容密钥和所述映射密钥是对称密钥。
7.文件共享方法,其中,构成文件的多个密文数据块存储于存储服务器中,文件元数据存储于元数据服务器中,文件元数据包括以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥加密生成的映射信息,以及以文件所有者的公钥对所述映射密钥加密生成的密钥信息,所述方法包括: 文件所有者生成被授权用户列表以及每个被授权用户的重加密密钥并传送至元数据服务器; 元数据服务器根据授权用户列表确定请求共享文件用户是否为被授权用户,若是,则以所述请求共享文件用户的重加密密钥对所述密钥信息进行重加密; 元数据服务器将所述映射信息和经重加密的密钥信息发送给所述请求共享文件用户;以及 所述请求共享文件用户的客户端以私钥解密所述经重加密的密钥信息获取所述映射密钥,以所述映射密钥对所述映射信息进行解密,并通过解密后的信息获取请求共享的文件。
8.如权利要求7所述的方法,其中,文件元数据包括以映射密钥分别对每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥和标识符加密生成的映射信息。
9.如权利要求8所述的方法,其中,所述请求共享文件用户的客户端对所述映射信息解密获取每个密文数据块在存储服务器中的位置和在原文件中的位置以及该密文数据块的解密密钥和标识符,通过每个密文数据块在存储服务器中的位置获取存储服务器中存储的多个密文数据块,通过每个密文数据块的标识符对密文数据块进行一致性验证,通过密文数据块的解密密钥和在原文件中的位置获取请求共享的文件。
【文档编号】H04L29/08GK103685162SQ201210326062
【公开日】2014年3月26日 申请日期:2012年9月5日 优先权日:2012年9月5日
【发明者】王珂 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1