CN106101257B - 一种基于布隆过滤器的云存储数据管理方法及装置 - Google Patents

一种基于布隆过滤器的云存储数据管理方法及装置 Download PDF

Info

Publication number
CN106101257B
CN106101257B CN201610533808.5A CN201610533808A CN106101257B CN 106101257 B CN106101257 B CN 106101257B CN 201610533808 A CN201610533808 A CN 201610533808A CN 106101257 B CN106101257 B CN 106101257B
Authority
CN
China
Prior art keywords
client
data block
upload
file
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610533808.5A
Other languages
English (en)
Other versions
CN106101257A (zh
Inventor
刘竹松
杨张杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201610533808.5A priority Critical patent/CN106101257B/zh
Publication of CN106101257A publication Critical patent/CN106101257A/zh
Application granted granted Critical
Publication of CN106101257B publication Critical patent/CN106101257B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于布隆过滤器的云存储数据管理方法及装置,其中,该方法包括:接收客户端发送的文件上传请求;判断本地是否已经存储有与文件上传请求对应的上传文件,如果是,则基于上传文件对应的布隆过滤器对客户端进行上传文件的所有权验证,如果客户端通过所有权验证,则针对该上传文件对客户端授权;其中,布隆过滤器为存储上传文件对应的数据时建立的。由此,当客户端需要上传上传文件且该文件已经存储于云服务器中时,基于布隆过滤器对客户端进行上传文件的所有权验证,确定其具有上传文件时,才针对上传对该客户端授权。由此,避免了非法用户利用上传文件的相关信息获取对应授权的情况发生,大大增加了数据安全性。

Description

一种基于布隆过滤器的云存储数据管理方法及装置
技术领域
本发明涉及云计算技术领域,更具体地说,涉及一种基于布隆过滤器的云存储数据管理方法及装置。
背景技术
云计算的快速发展使云存储服务变得越来越高效、便捷,用户可以很方便的将数据存储到云服务器中。许多云存储服务平台如Dropbox、Mozy、Google Driver、Memopal等为了提高存储设备的利用率纷纷采用了重复数据删除技术,即让拥有相同数据的不同用户共享存储在云服务器中的一份数据。
现有技术中,当用户需要上传数据时,云服务器判断自身是否存储有该数据,如果没有,则允许用户上传,如果有,则拒绝用户上传该数据,并将已经存储的数据对该用户开放,即针对该数据对该用户进行授权,该用户可以对该数据进行访问。但是,发明人发现,云服务器在判断自身存储有用户需上传的数据后,直接针对该数据对用户授权,对数据的安全性会造成一定威胁。具体来说,现有技术中云服务器通常是通过数据的摘要或者数据对应的字符判断自身是否存储该数据,因此,如果存在非法用户以非法途径获得了数据摘要或数据对应的字符,但是并不具有对应数据时,其能够通过数据摘要及数据对应字符获得针对该数据的授权,进而访问数据,此时,数据就会泄漏给非法用户,造成数据安全性较低。
综上所述,现有技术中用于实现不同用户对同一数据进行共享的技术方案存在安全性较低的问题。
发明内容
本发明的目的是提供一种基于布隆过滤器的云存储数据管理方法及装置,以解决现有技术中用于实现不同用户对同一数据进行共享的技术方案存在的安全性较低的问题。
为了实现上述目的,本发明提供如下技术方案:
一种基于布隆过滤器的云存储数据管理方法,包括:
接收客户端发送的文件上传请求;
判断本地是否已经存储有与所述文件上传请求对应的上传文件,如果是,则基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,如果所述客户端通过所述所有权验证,则针对该上传文件对所述客户端授权;其中,所述布隆过滤器为存储所述上传文件对应的数据时建立的。
优选的,还包括:
如果本地未存储有与所述上传请求对应的上传文件,则指示所述客户端对所述上传文件按照预设规则进行分块以得到多个上传数据块;
接收所述客户端发送的数据块上传请求,判断本地是否存储有由所述客户端上传的与所述数据块上传请求对应的上传数据块;
基于判断得到的结果指示所述客户端将本地未存储的上传数据块上传到本地,并建立与所述上传文件对应的布隆过滤器。
优选的,接收所述客户端上传的上传数据块,包括:
接收所述客户端上传的加密数据块及加密密钥,其中,所述加密数据块为所述客户端基于第一哈希算法对对应上传数据块进行计算得到密钥,并利用所述密钥对该上传数据块进行加密后得到的,所述加密密钥为所述客户端利用其预先设定的私钥对所述密钥进行加密后得到的。
优选的,针对该上传文件对所述客户端授权,包括:
接收并存储所述客户端上传的加密密钥。
优选的,还包括:
接收所述客户端发送的文件访问请求;
将所述文件访问请求对应的访问文件对应的加密密钥及加密数据块发送至所述客户端,以供所述客户端利用其预先设定的私钥对所述加密密钥进行解密,并利用解密得到的密钥对所述加密数据块进行解密,得到所述访问文件。
优选的,判断本地是否存储有与所述文件上传请求对应的上传文件及判断本地是否存储有由所述客户端上传的与所述数据块上传请求对应的上传数据块,包括:
获取所述文件上传请求中携带的上传文件标记,所述上传文件标记为基于第二哈希算法对所述上传文件进行计算得到的,判断本地已经存储的文件对应的文件标记中是否存在与所述上传文件标记相同的标记;
获取所述数据块上传请求中携带的上传数据块标记,每个所述上传数据块标记为基于第二哈希算法对对应上传数据块进行计算得到的,判断本地已经存储的由所述客户端上传的数据块对应的数据块标记中是否存在与所述上传数据块标记相同的标记。
优选的,建立与所述上传文件对应的布隆过滤器,包括:
初始化n位的布隆过滤器,n为正整数;
确定每个所述上传数据块在所述上传文件包含的多个上传数据块中的位置序号,并利用第三哈希算法对每个所述上传数据块进行计算得到对应的数据块标识;
基于所述数据块标识及所述位置序号进行计算,得到与每个所述上传数据块对应的哈希值,将该哈希值映射为0~n-1的特定哈希值,并将所述布隆过滤器中所述特定哈希值对应位置的比特位置为指定值1。
优选的,基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,包括:
确定所述上传文件包括的一个或多个上传数据块为指定数据块;
接收所述客户端发送的每个所述指定数据块的数据块标识,并利用每个所述指定数据块的数据块标识及位置序号计算每个所述指定数据块的哈希值,将该哈希值映射为0~n-1的特定哈希值,所述指定数据块的数据块标识为所述客户端计算得到的;
判断每个所述指定数据块的特定哈希值在所述布隆过滤器中对应位置的比特位是否为所述指定值1,如果是,则所述客户端通过所述所有权验证。
优选的,确定所述上传文件包括的一个或多个上传数据块为指定数据块,包括:
随机选取所述上传文件包括的一个或多个上传数据块作为指定数据块。
一种基于布隆过滤器的云存储数据管理装置,包括:
接收模块,用于接收客户端发送的文件上传请求;
判断模块,用于判断本地是否已经存储有与所述文件上传请求对应的上传文件,如果是,则指示验证模块对所述客户端进行所述上传文件的所有权验证;
验证模块,用于基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,如果所述客户端通过所述所有权验证,则针对该上传文件对所述客户端授权;其中,所述布隆过滤器为存储所述上传文件对应的数据时建立的。
本发明提供的一种基于布隆过滤器的云存储数据管理方法及装置,其中,该方法包括:接收客户端发送的文件上传请求;判断本地是否已经存储有与所述文件上传请求对应的上传文件,如果是,则基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,如果所述客户端通过所述所有权验证,则针对该上传文件对所述客户端授权;其中,所述布隆过滤器为存储所述上传文件对应的数据时建立的。通过本申请公开的上述技术特征,当客户端需要上传上传文件,且该文件已经存储于云服务器中时,不是直接对该用户授权,而是基于布隆过滤器对客户端进行上传文件的所有权验证,只要客户端通过所有权验证,即确定其具有上传文件时,才针对上传对该客户端授权。由此,避免了非法用户利用上传文件的相关信息获取对应授权的情况发生,大大增加了数据安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法的流程图;
图2为本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中当云服务器中已存储有执行文件时的操作执行示意图;
图3为本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中当云服务器中未存储有执行文件时的操作执行示意图;
图4为本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中客户端获取上传文件时的操作执行示意图;
图5为本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中云服务器及客户端的数据存储示意图;
图6为本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法的流程图,可以包括以下步骤:
S11:接收客户端发送的文件上传请求。
需要说明的是,本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中未标明主语的步骤的执行主语均可以为云服务器,而云服务器可以是单个服务器也可以是服务器集群,具体可以根据实际需要进行确定。当客户端需要上传对应文件至云服务器时,其需要向云服务器发送文件上传请求,以由云服务器决定是否允许客户端对于该文件的上传,其中,文件上传请求中携带的信息与文件相对应。
S12:判断本地是否已经存储有与文件上传请求对应的上传文件,如果是,则执行步骤S13,如果否,则执行步骤S14。
判断本地是否已经存储有与文件上传请求对应的上传文件,如果是,则拒绝客户端的文件上传请求,并且执行判断是否可以针对该上传文件对客户端授权的步骤,如果否,则允许客户端上传上传文件对应的数据。需要说明的是,由于上传文件时是将文件划分为数据块后进行上传的,因此,判断本地是否存储有与文件上传请求对应的上传文件,即为判断本地是否存储有上传文件的数据块,也即为判断本地是否首次接收到该上传文件请求。
S13:基于上传文件对应的布隆过滤器对客户端进行上传文件的所有权验证,如果客户端通过所有权验证,则针对该上传文件对客户端授权;其中,布隆过滤器为存储上传文件对应的数据时建立的。
需要说明的是,布隆过滤器实际上是由一个很长的二进制向量和一系列随机映射函数实现,其可以用于检索一个元素是否存在于一个集合中。具体来说,布隆过滤器的基本思想为:基于散列表(又叫哈希表),通过一个或多个哈希函数将一个元素映射成一个位阵列中的一个或多个点,仅需确定相应一个或多个点的值是否为1即可确定对应集合中是否存在该元素。布隆过滤器的优点为空间效率和时间效率均远远优于一般的算法,即利用布隆过滤器确定客户端对上传文件的所有权验证存在效率高的优点。具体来说,基于布隆过滤器对客户端进行上传文件的所有权验证,即为基于布隆过滤器确定客户端是否具有上传文件,如果具有,则所有权验证通过。
其中,当本地已经存储有上传文件时需执行的步骤,即步骤S11至步骤S13的执行示意图可以如图2所示。
S14:接收客户端上传的上传文件对应的数据块。
通过本申请公开的上述技术特征,当客户端需要上传上传文件,且该文件已经存储于云服务器中时,不是直接对该用户授权,而是基于布隆过滤器对客户端进行上传文件的所有权验证,只要客户端通过所有权验证,即确定其具有上传文件时,才针对上传对该客户端授权。由此,避免了非法用户利用上传文件的相关信息获取对应授权的情况发生,大大增加了数据安全性。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法,还可以包括:
如果本地未存储有与上传请求对应的上传文件,则指示客户端对上传文件按照预设规则进行分块以得到多个上传数据块;
接收客户端发送的数据块上传请求,判断本地是否存储有由客户端上传的与数据块上传请求对应的上传数据块;
基于判断得到的结果指示客户端将本地未存储的上传数据块上传到本地,并建立与上传文件对应的布隆过滤器。
其中,上述步骤的执行示意图可以如图3所示。上传数据块的大小可以为8KB、16KB、32KB、64KB等,具体来说,上传数据块越小,重复数据删除的效率就越高,但由此产生的工作量也随之增多,因此,可以根据实际需要的重复数据删除效率确定预设规则,即确定将上传文件划分为多大的上传数据块。由此,根据数据块上传请求确定出未存储过的上传数据块,并指示客户端将其进行上传。并且,在上传完对应数据块后,还需要建立与该上传文件对应的布隆过滤器,以在其他客户端需要上传该上传文件时利用该布隆过滤器实现其他客户端针对该上传文件的所有权验证。需要说明的是,虽然可能只上传了该上传文件中的部分数据块,但是,布隆过滤器还是与该文件对应的,也就是与此次上传的数据块及云服务器中已经存储的该上传文件包含的数据块对应的。
另外,由于已经确定并不存在与上传文件对应的文件,因此,在对上传文件包含的数据块进行查重的工作中,只需针对该客户端上传的数据块对其进行局部查重即可,无需加入其它客户端上传的数据块进行全局查重,由此,能够大大降低查重的时间开销。
通过上述技术方案,将文件级与数据块级重复删除相结合的重复删除技术应用到云存储中,避免相同文件的多次存储,而对于一些相似度较高的文件,可以通过将文件划分数据块进而查重的方式,更进一步的降低云存储器中数据的冗余度,提高数据的共享性。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法,接收客户端上传的上传数据块,可以包括:
接收客户端上传的加密数据块及加密密钥,其中,加密数据块为客户端基于第一哈希算法对对应上传数据块进行计算得到密钥,并利用密钥对该上传数据块进行加密后得到的,加密密钥为客户端利用其预先设定的私钥对密钥进行加密后得到的。
需要说明的是,当上传的数据为上传文件包括的上传数据块时,可以指示客户端对需上传的上传数据块进行加密,其中,第一哈希算法可以根据实际需要进行确定,具体可以为SHA-256算法,利用第一哈希算法对上传数据块进行计算得到对应的密钥,即收敛密钥,进而利用密钥对对应上传数据块进行加密,得到与每个上传数据块一一对应的加密数据块,并利用客户端预设设定的私钥对密钥进行加密得到加密密钥,由此,云服务器存储加密数据块及加密密钥,从而可以避免其他未被授权的客户端获取对应的数据,增强了数据安全性。
可见,本申请公开的上述技术方案中,数据及元数据信息(即加密数据块及加密密钥等)均存储于云服务器中,不同于现有技术中采用单独的元数据服务器存储元数据信息,由此,在需要进行数据存储及取回等工作时大大降低了通信难度和时间开销,提高了工作效率。
并且,云服务器完成对于数据的存储后,还可以将存储的数据的指针返回给客户端,以告知客户端存储的数据在云服务器中的位置信息,以供其对数据进行访问。
另外需要说明的是,针对该上传文件对客户端授权,可以包括:
接收并存储客户端上传的加密密钥。
也即,如果客户端通过所有权验证,则指示客户端基于第一哈希算法对上传文件包括的数据块进行计算,得到对应的密钥,进而根据预先设定的私钥对密钥进行加密,得到加密密钥,并上传。由此,当客户端需要访问云服务器中存储的数据时,可以包括:
接收客户端发送的文件访问请求;
将文件访问请求对应的访问文件对应的加密密钥及加密数据块发送至客户端,以供客户端利用其预先设定的私钥对加密密钥进行解密,并利用解密得到的密钥对加密数据块进行解密,得到访问文件。
需要说明的是,上述步骤的执行示意图可以如图4所示,客户端需要访问云服务器中存储的数据时,向其发送文件访问请求,进而得到对应的加密数据块,并利用自身存储的私钥进行上述解密工作,最后得到需访问的文件。另外,在将上述加密密钥等信息返回给客户端之前,还可以判断该客户端是否具有对于云服务器中相应文件的访问权限,如文件访问请求中携带的客户端ID是否被授权等,并在确定其具有访问云服务器的权限后,将上述加密密钥等信息返回给客户端,从而进一步增加了数据安全性。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法,判断本地是否存储有与文件上传请求对应的上传文件及判断本地是否存储有由客户端上传的与数据块上传请求对应的上传数据块,可以包括:
获取文件上传请求中携带的上传文件标记,上传文件标记为基于第二哈希算法对上传文件进行计算得到的,判断本地已经存储的文件对应的文件标记中是否存在与上传文件标记相同的标记;
获取数据块上传请求中携带的上传数据块标记,每个上传数据块标记为基于第二哈希算法对对应上传数据块进行计算得到的,判断本地已经存储的由客户端上传的数据块对应的数据块标记中是否存在与上传数据块标记相同的标记。
其中,第二哈希算法可以根据实际需要进行确定,具体可以为SHA-1算法,文件标记及数据块标识是唯一标识对应数据的哈希值,从而,仅仅通过上述标识即可实现对应数据的查重工作。同时,对于数据的加密是通过上述实施例中的第一哈希算法及私钥实现的,第一哈希算法与第二哈希算法不同。由此,不仅能够顺利实现对于数据的查重工作,而且还避免了由于哈希值被复用导致数据存在的安全隐患,从而增加了数据安全性。另外,哈希算法均具有单向性,因此,即使非法用户获知了上述标记,还是无法通过上述标记推测出对应数据,进一步保证了数据安全性。
通过本申请公开的上述技术方案,将收敛加密技术,即上述加密方式应用到云存储中,用于对存储的数据进行加密,同时利用客户端维护的私钥对密钥进行加密,防止恶意用户对私钥的非法获取,从而保证了数据的机密性,另外采用上述方式得到数据对应的标记,又实现了重复数据的删除。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法,建立与上传文件对应的布隆过滤器,可以包括:
初始化n位的布隆过滤器,n为正整数;
确定每个上传数据块在上传文件包含的多个上传数据块中的位置序号,并利用第三哈希算法对每个上传数据块进行计算得到对应的数据块标识;
基于数据块标识及位置序号进行计算,得到与每个上传数据块对应的哈希值,将该哈希值映射为0~n-1的特定哈希值,并将布隆过滤器中特定哈希值对应位置的比特位置为指定值1。
需要说明的是,指定值为1。第三哈希算法可以根据实际需要进行确定,其可以与第一哈希算法或第二哈希算法相同,在此不做具体限定。初始化n位的布隆过滤器,即将该过滤器中比特位均置为0。具体来说,上述步骤可以是:将每个上传数据块的数据块标识及位置序号作为HMAC_SHA1算法的输入,并将输出的数作为第四哈希算法的输入,最后输出大小为0~n-1的特定哈希值,其中,第四哈希算法可以根据实际需要进行确定,在此不再赘述。
对应的,基于上传文件对应的布隆过滤器对客户端进行上传文件的所有权验证,可以包括:
确定上传文件包括的一个或多个上传数据块为指定数据块;
接收客户端发送的每个指定数据块的数据块标识,并利用每个指定数据块的数据块标识及位置序号计算每个指定数据块的哈希值,将该哈希值映射为0~n-1的特定哈希值,指定数据块的数据块标识为客户端计算得到的;
判断每个指定数据块的特定哈希值在布隆过滤器中对应位置的比特位是否为指定值1,如果是,则客户端通过所有权验证。
服务器指示客户端确定其存储的上传文件中指定数据块的数据块标识,客户端接收该命令后,首先对上传文件按照预设规则进行分块,得到指定数据块,并基于第三哈希算法对每个指定数据块进行计算,得到对应的数据块标识,并将其发送至云服务器。云服务器确定每个指定数据块的位置序号,并基于该位置序号及客户端上传的数据块标识对每个指定数据块按照上述方式进行计算,得到哈希值,最后将该哈希值通过第四哈希算法映射为0~n-1的特定哈希值,如果确定该特定哈希值在布隆过滤器中对应的比特位为1,则确定客户端存储的上传文件是正确的,可以对客户端进行授权,只要有一项不为1,则确定客户端不具有上传文件,不对其进行授权。并且,云服务器对客户端进行授权并接收其上传的加密密钥后,可以将存储数据的指针返回给客户端,以供客户端进行访问。
另外需要说明的,确定上传文件包括的一个或多个上传数据块为指定数据块,可以包括:
随机选取上传文件包括的一个或多个上传数据块作为指定数据块。
为了保证所有权验证过程中的正确性,云服务器可以随机选取一个或多个不同的数据块块作为指定数据块,以有效的防止一次所有权验证过程中对指定数据块进行计算得到的结果被复用,其中,选取的指定数据块的数量可以依据执行效率确定,如数据块总数的25%等。
与上传文件无重复的情况不同,布隆过滤器在进行所有权校验时,客户端和云服务器分别执行校验过程中的部分操作,如上。由于布隆过滤器是极其高效的,因此所有权验证的时间开销非常小。此外布隆过滤器进行所有权验证时出现错误的概率P与比特位数n是逆相关的,随着n的增大P趋近于0,甚至可以忽略不计。本发明中将基于布隆过滤器的所有权验证方案应用到云存储中,布隆过滤器是一种验证数据元素与特定集合从属关系且效率极高的数据结构,根据数据与数据哈希值的对应关系,用布隆过滤器维护数据的所有数据块哈希值的集合,通过所有权证明过程中产生的数据块哈希值,验证相应元素与其对应布隆过滤器的从属关系,以证明用户是否拥有该数据,错误率低,效率高。
本发明包括用户(客户端)和云服务器两个角色,客户端是使用云存储服务的实体,服务器是提供数据存储服务的实体,客户端和云服务器维护的数据信息可以如图5所示,而整个数据存储过程通过客户端和服务器交互完成的。其通过引入收敛加密技术、所有权证明算法等,可以在消除冗余数据的同时保证数据的机密性,具体来说,使用收敛加密技术对云存储器中的数据加密,实现重复数据的删除,同时针对收敛加密的安全缺陷,采取基于布隆过滤器的所有权证明方式保护数据机密性。
与上述实施例相对应,本发明实施例还提供了一种基于布隆过滤器的云存储数据管理装置,如图6所示,可以包括:
接收模块11,用于接收客户端发送的文件上传请求;
判断模块12,用于判断本地是否已经存储有与文件上传请求对应的上传文件,如果是,则指示验证模块对客户端进行上传文件的所有权验证;
验证模块13,用于基于上传文件对应的布隆过滤器对客户端进行上传文件的所有权验证,如果客户端通过所有权验证,则针对该上传文件对客户端授权;其中,布隆过滤器为存储上传文件对应的数据时建立的。
需要说明的是,本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置可以应用于云服务器。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,还可以包括:
二重判断模块,用于:如果本地未存储有与上传请求对应的上传文件,则指示客户端对上传文件按照预设规则进行分块以得到多个上传数据块;接收客户端发送的数据块上传请求,判断本地是否存储有由客户端上传的与数据块上传请求对应的上传数据块;基于判断得到的结果指示客户端将本地未存储的上传数据块上传到本地,并建立与上传文件对应的布隆过滤器。本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,接收模块可以包括:
接收单元,用于接收客户端上传的加密数据块及加密密钥,其中,加密数据块为客户端基于第一哈希算法对对应上传数据块进行计算得到密钥,并利用密钥对该上传数据块进行加密后得到的,加密密钥为客户端利用其预先设定的私钥对密钥进行加密后得到的。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,验证模块可以包括:
授权单元,用于接收并存储客户端上传的加密密钥。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,还可以包括:
访问模块,用于:接收客户端发送的文件访问请求;将文件访问请求对应的访问文件对应的加密密钥及加密数据块发送至客户端,以供客户端利用其预先设定的私钥对加密密钥进行解密,并利用解密得到的密钥对加密数据块进行解密,得到访问文件。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,判断模块可以包括:
判断单元,用于获取文件上传请求中携带的上传文件标记,上传文件标记为基于第二哈希算法对上传文件进行计算得到的,判断本地已经存储的文件对应的文件标记中是否存在与上传文件标记相同的标记;
二重判断模块可以包括:
二重判断单元,用于获取数据块上传请求中携带的上传数据块标记,每个上传数据块标记为基于第二哈希算法对对应上传数据块进行计算得到的,判断本地已经存储的由客户端上传的数据块对应的数据块标记中是否存在与上传数据块标记相同的标记。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,二重判断模块可以包括:
过滤器建立单元,用于:初始化n位的布隆过滤器,n为正整数;确定每个上传数据块在上传文件包含的多个上传数据块中的位置序号,并利用第三哈希算法对每个上传数据块进行计算得到对应的数据块标识;基于数据块标识及位置序号进行计算,得到与每个上传数据块对应的哈希值,将该哈希值映射为0~n-1的特定哈希值,并将布隆过滤器中特定哈希值对应位置的比特位置为指定值1。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,验证模块可以包括:
验证单元,用于:确定上传文件包括的一个或多个上传数据块为指定数据块;接收客户端发送的每个指定数据块的数据块标识,并利用每个指定数据块的数据块标识及位置序号计算每个指定数据块的哈希值,将该哈希值映射为0~n-1的特定哈希值,指定数据块的数据块标识为客户端计算得到的;判断每个指定数据块的特定哈希值在布隆过滤器中对应位置的比特位是否为指定值1,如果是,则客户端通过所有权验证。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置,验证单元可以包括:
验证子单元,用于随机选取上传文件包括的一个或多个上传数据块作为指定数据块。
本发明实施例提供的一种基于布隆过滤器的云存储数据管理装置中相关部分的说明请参见本发明实施例提供的一种基于布隆过滤器的云存储数据管理方法中对应部分的详细说明,在此不再赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种基于布隆过滤器的云存储数据管理方法,其特征在于,包括:
接收客户端发送的文件上传请求;
判断本地是否已经存储有与所述文件上传请求对应的上传文件,如果是,则基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,如果所述客户端通过所述所有权验证,则针对该上传文件对所述客户端授权;其中,所述布隆过滤器为存储所述上传文件对应的数据时建立的;
所述方法还包括:
如果本地未存储有与所述上传请求对应的上传文件,则指示所述客户端对所述上传文件按照预设规则进行分块以得到多个上传数据块;
接收所述客户端发送的数据块上传请求,判断本地是否存储有由所述客户端上传的与所述数据块上传请求对应的上传数据块;
基于判断得到的结果指示所述客户端将本地未存储的上传数据块上传到本地,并建立与所述上传文件对应的布隆过滤器;
建立与所述上传文件对应的布隆过滤器,包括:
初始化n位的布隆过滤器,n为正整数;
确定每个所述上传数据块在所述上传文件包含的多个上传数据块中的位置序号,并利用第三哈希算法对每个所述上传数据块进行计算得到对应的数据块标识;
基于所述数据块标识及所述位置序号进行计算,得到与每个所述上传数据块对应的哈希值,将该哈希值映射为0~n-1的特定哈希值,并将所述布隆过滤器中所述特定哈希值对应位置的比特位置为指定值1;其中,得到所述特定哈希值的过程包括:将每个所述上传数据块的数据块标识及位置序号作为HMAC_SHA1算法的输入,将HMAC_SHA1算法输出的数作为第四哈希算法的输入,得到所述第四哈希算法输出的大小为0~n-1的特定哈希值。
2.根据权利要求1所述的方法,其特征在于,接收所述客户端上传的上传数据块,包括:
接收所述客户端上传的加密数据块及加密密钥,其中,所述加密数据块为所述客户端基于第一哈希算法对对应上传数据块进行计算得到密钥,并利用所述密钥对该上传数据块进行加密后得到的,所述加密密钥为所述客户端利用其预先设定的私钥对所述密钥进行加密后得到的。
3.根据权利要求2所述的方法,其特征在于,针对该上传文件对所述客户端授权,包括:
接收并存储所述客户端上传的加密密钥。
4.根据权利要求3所述的方法,其特征在于,还包括:
接收所述客户端发送的文件访问请求;
将所述文件访问请求对应的访问文件对应的加密密钥及加密数据块发送至所述客户端,以供所述客户端利用其预先设定的私钥对所述加密密钥进行解密,并利用解密得到的密钥对所述加密数据块进行解密,得到所述访问文件。
5.根据权利要求1所述的方法,其特征在于,判断本地是否存储有与所述文件上传请求对应的上传文件及判断本地是否存储有由所述客户端上传的与所述数据块上传请求对应的上传数据块,包括:
获取所述文件上传请求中携带的上传文件标记,所述上传文件标记为基于第二哈希算法对所述上传文件进行计算得到的,判断本地已经存储的文件对应的文件标记中是否存在与所述上传文件标记相同的标记;
获取所述数据块上传请求中携带的上传数据块标记,每个所述上传数据块标记为基于第二哈希算法对对应上传数据块进行计算得到的,判断本地已经存储的由所述客户端上传的数据块对应的数据块标记中是否存在与所述上传数据块标记相同的标记。
6.根据权利要求1所述的方法,其特征在于,基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,包括:
确定所述上传文件包括的一个或多个上传数据块为指定数据块;
接收所述客户端发送的每个所述指定数据块的数据块标识,并利用每个所述指定数据块的数据块标识及位置序号计算每个所述指定数据块的哈希值,将该哈希值映射为0~n-1的特定哈希值,所述指定数据块的数据块标识为所述客户端计算得到的;
判断每个所述指定数据块的特定哈希值在所述布隆过滤器中对应位置的比特位是否为所述指定值1,如果是,则所述客户端通过所述所有权验证。
7.根据权利要求6所述的方法,其特征在于,确定所述上传文件包括的一个或多个上传数据块为指定数据块,包括:
随机选取所述上传文件包括的一个或多个上传数据块作为指定数据块。
8.一种基于布隆过滤器的云存储数据管理装置,其特征在于,包括:
接收模块,用于接收客户端发送的文件上传请求;
判断模块,用于判断本地是否已经存储有与所述文件上传请求对应的上传文件,如果是,则指示验证模块对所述客户端进行所述上传文件的所有权验证;
验证模块,用于基于所述上传文件对应的布隆过滤器对所述客户端进行所述上传文件的所有权验证,如果所述客户端通过所述所有权验证,则针对该上传文件对所述客户端授权;其中,所述布隆过滤器为存储所述上传文件对应的数据时建立的;
所述装置还包括:
二重判断模块,用于:如果本地未存储有与所述上传请求对应的上传文件,则指示所述客户端对所述上传文件按照预设规则进行分块以得到多个上传数据块;接收所述客户端发送的数据块上传请求,判断本地是否存储有由所述客户端上传的与所述数据块上传请求对应的上传数据块;基于判断得到的结果指示所述客户端将本地未存储的上传数据块上传到本地,并建立与所述上传文件对应的布隆过滤器;
所述二重判断模块包括:
过滤器建立单元,用于:初始化n位的布隆过滤器,n为正整数;确定每个所述上传数据块在所述上传文件包含的多个上传数据块中的位置序号,并利用第三哈希算法对每个所述上传数据块进行计算得到对应的数据块标识;基于所述数据块标识及所述位置序号进行计算,得到与每个所述上传数据块对应的哈希值,将该哈希值映射为0~n-1的特定哈希值,并将所述布隆过滤器中所述特定哈希值对应位置的比特位置为指定值1;其中,得到所述特定哈希值的过程包括:将每个所述上传数据块的数据块标识及位置序号作为HMAC_SHA1算法的输入,将HMAC_SHA1算法输出的数作为第四哈希算法的输入,得到所述第四哈希算法输出的大小为0~n-1的特定哈希值。
CN201610533808.5A 2016-07-07 2016-07-07 一种基于布隆过滤器的云存储数据管理方法及装置 Expired - Fee Related CN106101257B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610533808.5A CN106101257B (zh) 2016-07-07 2016-07-07 一种基于布隆过滤器的云存储数据管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610533808.5A CN106101257B (zh) 2016-07-07 2016-07-07 一种基于布隆过滤器的云存储数据管理方法及装置

Publications (2)

Publication Number Publication Date
CN106101257A CN106101257A (zh) 2016-11-09
CN106101257B true CN106101257B (zh) 2019-07-02

Family

ID=57213191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610533808.5A Expired - Fee Related CN106101257B (zh) 2016-07-07 2016-07-07 一种基于布隆过滤器的云存储数据管理方法及装置

Country Status (1)

Country Link
CN (1) CN106101257B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108460030B (zh) * 2017-02-17 2022-01-11 北京大学 一种基于改进的布隆过滤器的集合元素判断方法
CN109101360B (zh) * 2017-06-21 2020-11-20 北京大学 一种基于布隆过滤器和交叉编码的数据完整性保护方法
CN107295002B (zh) * 2017-07-12 2020-06-19 联动优势科技有限公司 一种云端存储数据的方法及服务器
CN107612969B (zh) * 2017-08-16 2020-01-14 中国民航大学 基于B-Tree布隆过滤器的云存储数据完整性审计方法
CN107370767A (zh) * 2017-09-11 2017-11-21 安徽省未来博学信息技术有限公司 一种互联网分享系统
CN108121807B (zh) * 2017-12-26 2021-06-04 云南大学 Hadoop环境下多维索引结构OBF-Index的实现方法
CN110392083B (zh) * 2018-04-20 2022-06-24 华为技术有限公司 文件秒传的控制方法、装置及终端设备
CN109347788A (zh) * 2018-08-17 2019-02-15 广东工业大学 一种基于存储网关的数据去重方法、系统及装置
CN109587132B (zh) * 2018-11-29 2021-03-26 南京苏宁软件技术有限公司 一种基于联盟链的数据传递方法及装置
CN111429724B (zh) * 2020-04-23 2022-02-15 安徽大学 一种交通数据去重获取方法
CN114760061B (zh) * 2020-12-29 2023-09-05 深信服科技股份有限公司 数据上传的方法、装置、设备及存储介质
WO2022175510A1 (en) * 2021-02-22 2022-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Network resource allocation for mission critical http services
CN115203150A (zh) * 2022-05-13 2022-10-18 浪潮卓数大数据产业发展有限公司 一种基于布隆过滤器的海量文件备份数据同步方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102456059A (zh) * 2010-10-21 2012-05-16 英业达股份有限公司 重复数据删除的处理系统
CN103002029A (zh) * 2012-11-26 2013-03-27 北京百度网讯科技有限公司 上传文件的管理方法、系统和客户端
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN104794170A (zh) * 2015-03-30 2015-07-22 中国科学院信息工程研究所 基于指纹多重哈希布隆过滤器的网络取证内容溯源方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9064133B2 (en) * 2011-03-29 2015-06-23 Kaseya Limited Method and apparatus of securely processing data for file backup, de-duplication, and restoration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102456059A (zh) * 2010-10-21 2012-05-16 英业达股份有限公司 重复数据删除的处理系统
CN103002029A (zh) * 2012-11-26 2013-03-27 北京百度网讯科技有限公司 上传文件的管理方法、系统和客户端
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN104794170A (zh) * 2015-03-30 2015-07-22 中国科学院信息工程研究所 基于指纹多重哈希布隆过滤器的网络取证内容溯源方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
《A Tunable Proof of Ownership Scheme for Deduplication Using Bloom Filters》;Jorge Blasco等;《2014 IEEE Conference on Communications and Network Security》;20141031;第481-489页 *
《Reclaiming Space from Duplicate Files in a Serverless Distributed File System》;John R. Douceur等;《Proceedings of the 22nd International Conference on Distributed Computing Systems,IEEE Computer Society》;20020705;第617-624页 *
《云存储加密数据去重删除所有权证明方法》;杨超等;《计算机研究与发展》;20150131;第52卷(第1期);全文 *
《云计算环境下基于布隆过滤器的可验证可搜索加密方案》;刘文景等;《青岛大学学报(自然科学版)》;20160531;第29卷(第2期);全文 *
Jorge Blasco等.《A Tunable Proof of Ownership Scheme for Deduplication Using Bloom Filters》.《2014 IEEE Conference on Communications and Network Security》.2014, *

Also Published As

Publication number Publication date
CN106101257A (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
CN106101257B (zh) 一种基于布隆过滤器的云存储数据管理方法及装置
CN104917609B (zh) 一种基于用户感知的高效安全数据去重方法及系统
Armknecht et al. Transparent data deduplication in the cloud
Li et al. A hybrid cloud approach for secure authorized deduplication
CN105210079B (zh) 针对经加密的数据的基于社区的重复删除
CN103609059B (zh) 用于安全数据共享的系统和方法
CN102761521B (zh) 云安全存储及共享服务平台
CN110213042A (zh) 一种基于无证书代理重加密的云数据去重方法
CN105409186B (zh) 用于用户认证的系统及方法
CN110334526A (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
CN113961535A (zh) 一种基于区块链的数据可信存储共享系统与方法
CN104836862B (zh) 一种智能终端数据存储方法
CN107734021A (zh) 区块链数据上传方法、系统、计算机系统及存储介质
CN106254324A (zh) 一种存储文件的加密方法及装置
CN106603561B (zh) 一种云存储中的块级加密方法及多粒度去重复方法
Wang et al. A novel encryption scheme for data deduplication system
CN110069946B (zh) 一种基于sgx的安全索引系统
CN105100076A (zh) 一种基于USB Key的云数据安全系统
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN108810063A (zh) 一种多云存储环境下数据的安全分发和修复方法、系统及介质
CN113541935A (zh) 一种支持密钥托管的加密云存储方法、系统、设备、终端
CN111464561A (zh) 一种数据摆渡管理系统
CN110968452A (zh) 一种智能电网云存储中可安全去重的数据完整性验证方法
CN113918528A (zh) 一种基于可信硬件的安全云数据去重方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190702

Termination date: 20200707

CF01 Termination of patent right due to non-payment of annual fee