CN116391185A - 用于在不可信存储装置中进行差异去重的方法和系统 - Google Patents

用于在不可信存储装置中进行差异去重的方法和系统 Download PDF

Info

Publication number
CN116391185A
CN116391185A CN202080106664.XA CN202080106664A CN116391185A CN 116391185 A CN116391185 A CN 116391185A CN 202080106664 A CN202080106664 A CN 202080106664A CN 116391185 A CN116391185 A CN 116391185A
Authority
CN
China
Prior art keywords
data block
data
compressed
untrusted storage
trusted
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.)
Pending
Application number
CN202080106664.XA
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116391185A publication Critical patent/CN116391185A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开内容提供了一种用于对不可信存储装置中的数据块进行差异去重的方法和系统,所述方法和系统提高了在不可信存储装置处的去重率和压缩率。所公开的方法和系统利用可信服务器和包括计算机可读指令的计算机可读介质,计算机可读指令用于实现对不可信存储装置中的数据块进行差异去重的应用编程接口。所公开的方法和系统确定类似数据块中的用作参考数据块的第一数据块并且确定已识别的类似数据块中的使用参考数据块进行压缩的第二数据块,以实现数据块的差异去重。

Description

用于在不可信存储装置中进行差异去重的方法和系统
技术领域
本公开内容大体涉及数据保护和备份领域,更具体地,涉及用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法和系统。
背景技术
通常,数据备份用于在主存储系统(例如服务器)中发生数据丢失事件时保护和恢复数据。数据丢失事件的示例可以包括但不限于数据损坏、主存储系统中的硬件或软件故障、数据意外删除、黑客攻击或恶意攻击。因此,出于安全原因,单独的备份系统或存储装置被广泛用于存储主存储系统中存在的数据备份。通常,随着时间的推移,由于数据变更或任何新数据会占用传统存储装置中的大量存储空间,存储装置的存储空间被占用。这是不可取的,因为它会导致存储系统性能下降。此外,数据存储成本以及包括存储硬件成本在内的所有相关成本仍然是负担。
通常,在许多情况下,例如在云环境中,存储装置可能不受信任(即,不可信存储装置)。在这种情况下,写入不可信存储装置的数据被加密。换言之,使用不可信存储装置时,如果在未经加密的情况下存储数据,则可能存在数据泄露的潜在风险。例如,任何第三方或不可信实体也能够读取不可信存储装置(例如,云环境)中的存储数据,因此,对存储在这种不可信存储装置中的数据进行加密,以减少数据安全方面的危害。然而,如果存储的数据为加密形式,这意味着数据无法进一步压缩,并且使用加密密钥会有限制,这又会限制此类常规存储系统(例如,不可信存储装置或备份系统)中的数据缩减量。此外,在此类传统系统中,存在数据去重的问题,因为只有在使用相同加密密钥的情况下才能对加密数据进行去重。
目前,存在可以用于数据缩减的许多技术,例如固定大小的数据去重。在固定大小的数据去重中,给定的存储装置被划分成固定大小对齐的块,例如大小为8KB或16KB。此外,为每个块计算强哈希签名。如果要写入存储装置的块与已写入块具有相同的哈希签名,则认为该块相同,因此仅使用指向该块的指针(或引用)。如果该块不相同,则在写入存储装置之前压缩该块的数据。通过这种方式,数据去重技术解决在存储装置中复制相同数据的问题。此外,目前,差异压缩用于数据缩减。差异压缩是指识别新数据块和先前存储的数据块之间的相似性,并且以压缩形式进一步存储仅不同的数据块。在示例中,为每个新数据块生成并存储相似性哈希值。此后,将新数据块的相似性哈希值与先前存储的数据块的相似性哈希值进行比较。因此,类似块被用作以压缩形式存储新块的参考。然而,除非存储装置与写入存储装置的服务器之间存在信任关系,否则传统技术不允许对已进行去重的数据进行任何压缩。因此,在传统技术中,加密数据的去重率和压缩率要低得多。因此,如何在不可信存储装置中缩减数据仍然是一个技术问题。
因此,根据上述讨论,需要克服上述与传统数据存储装置相关的缺点,即不允许在服务器和存储装置之间不存在相互信任关系的情况下对去重数据进行压缩。
发明内容
本公开内容旨在提供一种用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法和系统。本公开内容旨在为现有问题提供一种解决方案,即如何在没有对去重数据进行压缩的情况下缩减不可信存储装置中的数据。本公开内容的目的是提供如下解决方案,该解决方案至少能够部分解决现有技术中遇到的问题并提供改进方法和系统,与传统系统相比,此类改进方法和系统通过执行差异去重在不可信存储装置处提供有效的数据存储,且具有相对较高的去重率和压缩率。
本公开内容的目标是通过所附独立权利要求中提供的解决方案来实现的。从属权利要求中进一步定义了本公开内容的有利实施方式。
在一方面,本公开内容提供了一种用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法,该方法包括通过实现以下步骤来执行计算机可读指令:提供数据块的哈希值、一个或更多个相似性哈希值和加密密钥的KeyID;可信服务器对数据块执行第一次压缩和第一次加密;通过执行第一应用编程接口API(application programminginterface,API)的写函数,将已压缩和加密的数据块从可信服务器发送至不可信存储装置;不可信存储装置识别存储的压缩和加密的数据块中具有相同相似性哈希值的类似数据块;通过执行第二应用编程接口API(application programming interface,API),可信服务器执行对来自不可信存储装置的类似数据块的请求;通过执行第二API的读函数,使类似数据块的向量从不可信存储装置返回可信服务器;可信服务器解密和解压接收的已压缩和加密的类似数据块;识别已解压的类似数据块之间的相似性;确定已识别的类似数据块中的要用作参考数据块的第一数据块并且确定已识别的类似数据块中的要使用参考数据块进行压缩的第二数据块;可信服务器执行第二次压缩,以通过使用参考数据块重新压缩第二数据块,并执行第二次加密以重新加密已重新压缩的数据块;通过执行第二API对不可信存储装置执行写函数,并将已重新加密的利用参考数据块压缩的第二数据块、第二数据块的哈希值、参考数据块的哈希值、第二数据块的加密密钥的KeyID、参考数据块的加密密钥的KeyID从可信服务器发送至所述不可信存储装置;在不可信存储装置中将第一次压缩和第一次加密的数据块替换为第二次压缩和第二次加密的数据块,并获得差异去重数据块。
本公开内容的方法使得改进在不可信存储装置中进行的数据去重。该方法识别可信服务器向不可信存储装置提供用于存储的数据块中的类似数据块(已存储在不可信存储装置中)。该方法通过使用类似数据块作为参考来压缩数据块,从而能够存储压缩形式的数据块。与无法在不可信存储装置中对已去重数据进行压缩的传统技术相比,即使在存储装置不受信任的情况下,也能够对已存储数据进行差异压缩和去重。因此,与传统方法相比,本公开内容的方法提高了去重率和压缩率。
在实施方式中,该方法还包括定义一组或更多组可信服务器,其中,一组或更多组可信服务器包括一个或更多个可信服务器。
对一组或更多组可信服务器中的每组可信服务器执行差异数据压缩和去重。因此,相对于已存储在不可信存储装置中的类似存储块,对给定一组可信服务器中的给定可信服务器存储的数据块进行压缩。
在另一实施方式中,该方法还包括通过以下方式对差异去重数据块进行解压:执行对差异去重数据块的解密,执行对已压缩的参考数据块的解密,执行对已解密的参考数据块的解压,通过使用已解压的参考数据块执行对差异去重数据块的解压。
在需要时,对差异去重数据块进行解压以接收原始形式的数据,该数据已通过将类似数据块作为参考数据块以压缩形式存储。
在另一实施方式中,发送包括发送数据块的大小以及数据块的哈希值、相似性哈希值和加密密钥的KeyID。
数据块的大小、哈希值、相似性哈希值和加密密钥的KeyID使得不可信存储装置能够高效存储数据,从而在需要时能够高效检索数据。此外,相似性哈希值用于识别类似数据块,以执行差异压缩。
在另一实施方式中,返回向量包括返回已压缩和加密的数据块的大小以及已压缩和加密的数据块的加密密钥的KeyID、哈希值、一个或更多个相似性哈希值。借助于不可信存储装置返回可信服务器的向量,可信服务器对可信服务器接收的类似数据块执行差异压缩。
在另一实施方式中,返回包括返回具有最大公共相似性哈希值的类似数据块。借助于返回具有最大公共相似性哈希值的类似数据块,能够对可信服务器接收的类似数据块进行高效差异压缩。因此,在不可信存储装置中用于存储数据块所需的存储空间更少。
在另一方面,本公开内容提供了一种用于对不可信存储装置中的一个或更多个数据块进行差异去重的可信服务器,其中,可信服务器包括被配置成存储指令的存储器和被配置成执行指令以进行下列操作的服务器处理器:实现第一应用编程接口,用于在可信服务器与不可信存储装置之间执行写函数和读函数;实现第二应用编程接口,用于在可信服务器与不可信存储装置之间执行请求和替换函数;计算一个或更多个数据块的哈希值和一个或更多个相似性哈希值;在不可信存储装置中执行一个或更多个数据块的差异去重;对已加密的数据块进行解密;以及对不可信存储装置执行数据去重和压缩。
本公开内容的可信服务器使得改进在不可信存储装置中进行的数据存储。可信服务器识别从不可信存储装置接收的类似数据块之间的相似性。可信服务器通过使用另一类似数据块作为参考来压缩类似数据块,从而能够存储压缩形式的数据块。即使在存储装置不受信任的情况下,也能够对已存储数据进行差异压缩和去重。
在实施方式中,可信服务器被配置成执行对数据块的第一次压缩和第一次加密;将已压缩和加密的数据块发送至不可信存储装置;执行对来自不可信存储装置的类似数据块的请求;从不可信存储装置接收类似数据块的向量;解压已接收的类似数据块;确定已接收类似数据块中的要用作参考数据块的第一数据块并且确定已识别的类似数据块中的要使用参考数据块进行压缩的第二数据块;通过使用参考数据块重新压缩第二数据块,并执行第二次加密以重新加密已重新压缩的数据块;将已重新加密的利用参考数据块压缩的第二数据块、第二数据块的哈希值、参考数据块的哈希值、第二数据块和参考数据块的加密密钥的KeyID、参考数据块的加密密钥的KeyID发送至不可信存储装置。
借助于可信服务器接收的类似数据块,可信服务器通过使用另一类似数据块作为参考来压缩一个类似数据块。因此,执行差异压缩。此外,可信存储装置将已存储在不可信存储装置中的数据块替换为已经过差异压缩的数据块。因此,不可信存储装置的存储空间得到有效利用。
在另一方面,本公开内容提供了一种用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统,该系统包括:不可信存储装置,被配置成接收已压缩和加密的数据块,识别存储的已压缩和加密的数据块中的类似数据块,解密已压缩的参考数据块;一组或更多组可信服务器,其中,一组或更多组可信服务器包括一个或更多个可信服务器,一个或更多个可信服务器被配置成计算一个或更多个可信服务器的一个或更多个数据块的哈希值和一个或更多个相似性哈希值,在不可信存储装置中执行一个或更多个数据块的差异去重,对已加密的数据块进行解密,对不可信存储装置执行数据去重和压缩;第一应用编程接口,用于在可信服务器与不可信存储装置之间执行写函数和读函数;第二应用编程接口,用于在可信服务器与不可信存储装置之间执行请求和替换函数。
本公开内容的系统使得改进在不可信存储装置中进行的数据存储。该系统能够识别可信服务器向不可信存储装置提供用于存储的数据块中的类似数据块(已存储在不可信存储装置中)。该系统还通过使用类似数据块作为参考来压缩数据块,从而能够存储压缩形式的数据块。与无法在不可信存储装置中对已去重数据进行压缩的传统系统相比,即使在存储装置不受信任的情况下,也能够对已存储数据进行差异压缩和去重。因此,与传统系统相比,本公开内容的系统提高了去重率和压缩率。
在实施方式中,该系统还包括在处理器中运行的密钥管理器,该密钥管理器被配置成为一个或更多个可信服务器生成一个或更多个加密密钥。密钥管理器能够向给定一组可信服务器提供唯一的加密密钥,这能够增强存储在不可信存储装置中的已加密的数据块的安全性。
在另一实施方式中,可信服务器还被配置成在同一组可信服务器中的可信服务器之间共享一个或更多个加密密钥、哈希值和一个或更多个相似性哈希值。
在同一组可信服务器中共享一个或更多个加密密钥、哈希值和一个或更多个相似性哈希值,以防止该组可信服务器中的可信服务器利用相同的加密密钥加密两个或更多个数据块。因此,当已加密的数据块存储在不可信存储装置中时,安全性得到增强。
在另一方面,本公开内容提供了一种包括计算机可读指令的计算机可读介质,计算机可读指令用于实现第一应用编程接口和第二应用编程接口,以根据前述方面的方法对不可信存储装置中的一个或更多个数据块进行差异去重。本公开内容的计算机可读介质使得改进在不可信存储装置中进行的数据存储。计算机可读介质通过使用类似数据块作为参考来压缩数据块,从而能够存储压缩形式的数据块。与无法在不可信存储装置中对已去重数据进行压缩的传统计算机可读介质相比,即使在存储装置不受信任的情况下,也能够对已存储数据进行差异压缩和去重。因此,与传统方法相比,本公开内容的计算机可读介质提高了去重率和压缩率。
应当理解的是,所有上述实施方式可以组合在一起。应当注意的是,本申请中描述的设备、元件、电路、单元和装置都可以通过软件或硬件元件或其任意组合实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或被配置成执行各自的步骤和功能。虽然在以下具体实施方式的描述中,由外部实体执行的特定功能或步骤没有在执行特定步骤或功能的该实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在各自的硬件或软件元件或其任意组合中实现。应当理解的是,在不脱离所附权利要求书限定的本公开内容的范围的情况下,本公开内容的特征易于以各种组合的形式加以组合。
附图以及结合所附权利要求解释的说明性实施方式的详细描述将使得本公开内容的其他方面、优点、特征和目的变得明显。
附图说明
结合所附附图阅读时,可以更好地理解上述发明内容以及说明性实施方式的下列详细描述。为对本公开内容进行说明,附图中示出了本公开内容的示例性结构。然而,本公开内容并不限于本文公开的特定方法和手段。此外,本领域的技术人员将理解,这些附图并非按比例绘制。在可能的情况下,相同的元件由相同的数字表示。
现在参照附图仅通过示例的方式描述本公开内容的实施方式,在附图中:
图1A是根据本公开内容的实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法的流程图;
图1B是根据本公开内容的实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的网络环境图;
图2A是示出了根据本公开内容的实施方式的不可信存储装置的各种示例性组件的框图;
图2B是示出了根据本公开内容的实施方式的可信服务器的各种示例性组件的框图;
图3A示出了根据本公开内容的另一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的示例性实施场景;
图3B示出了根据本公开内容的又一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的示例性实施场景;
图4示出了根据本公开内容的另一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的不可信存储装置;以及
图5示出了根据本公开内容的另一实施方式的由可信服务器在不可信存储装置上执行的示例性命令。
具体实施方式
以下详细描述说明了本公开内容的实施方式以及可以实现这些实施方式的方式。虽然已公开执行本公开内容的一些模式,但本领域的技术人员将认识到,用于执行或实践本公开内容的其他实施方式也是可能的。
图1A是根据本公开内容的实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法的流程图。在一方面,本公开内容提供了一种用于对不可信存储装置中的一个或更多个数据块进行差异去重的方法100A,该方法100A包括通过实现以下步骤来执行计算机可读指令:提供数据块的哈希值、一个或更多个相似性哈希值和加密密钥的KeyID;可信服务器对数据块执行第一次压缩和第一次加密;通过执行第一应用编程接口API的写函数,将已压缩和加密的数据块从可信服务器发送至不可信存储装置;不可信存储装置识别存储的已压缩和加密的数据块中具有相同相似性哈希值的类似数据块;通过执行第二应用编程接口API,可信服务器执行对来自不可信存储装置的类似数据块的请求;通过执行第二API的读函数,使类似数据块的向量从不可信存储装置返回可信服务器;可信服务器解密和解压接收的已压缩和加密的类似数据块;识别已解压的类似数据块之间的相似性;确定已识别的类似数据块中的要用作参考数据块的第一数据块并且确定已识别的类似数据块中的要使用参考数据块进行压缩的第二数据块;可信服务器执行第二次压缩,以通过使用参考数据块重新压缩第二数据块,并且执行第二次加密以重新加密已重新压缩的数据块;通过执行第二API对不可信存储装置执行写函数,并且将已重新加密的利用参考数据块压缩的第二数据块、第二数据块的哈希值、参考数据块的哈希值、第二数据块和参考数据块的加密密钥的KeyID、参考数据块的加密密钥的KeyID从可信服务器发送至不可信存储装置;在不可信存储装置中将第一次压缩和第一次加密的数据块替换为第二次压缩和第二次加密的数据块,并且获得差异去重数据块。
所述方法100A包括步骤S1至S12。参照图1A,图中还示出了不可信存储装置102和成组可信服务器104(例如,图1B对其进行了详细描述)。每组可信服务器104包括一个或更多个可信服务器,例如可信服务器104A至104N,其中,N可以是任意数量的可信服务器。图中还示出了第一应用编程接口(application programming interface,API)106A和第二应用编程接口(application programming interface,API)106B。不可信存储装置102包括一个或更多个数据块108。
在步骤S1中,方法100A包括提供数据块的哈希值、一个或更多个相似性哈希值和加密密钥的KeyID。使用哈希函数,在可信服务器104A至104N中的给定可信服务器处计算数据块的哈希值。哈希值是指使用哈希函数或哈希算法生成的具有任意大小的数据的固定大小值。换言之,哈希值是指表示具有任意大小的原始数据的固定大小值。在示例中,哈希值可以是表示数据的若干字符的十六进制字符串。哈希函数的示例包括但不限于SHA-1、SHA-2、MD5、CRC32。有利的是,哈希值使得能够在两个数据块之间进行比较,而无需在所述两个数据块的数据之间进行实际比较。哈希值还能够识别和防止可信服务器104A至104N存储重复的数据块。以智能方式为数据块计算相似性哈希值,其中,相同的相似性哈希值指示数据相似但不相同(即,有一些相同的部分)。KeyID是指用于加密数据块的加密密钥的标识。KeyID使不可信存储装置102能够在需要时识别并提供由一个或更多个可信服务器104A至104N请求的正确的加密的数据块。在示例中,不可信存储装置102将每个数据块108的KeyID与数据块108一起存储,以实现对数据块108的高效检索。
在步骤S2中,方法100A还包括可信服务器(例如,可信服务器104A)对数据块执行第一次压缩和第一次加密。压缩可信服务器(例如,可信服务器104A)上每个数据块的数据,以减少当数据存储在不可信存储装置102中时所占用的存储空间。因此,与存储未压缩数据相比,不可信存储装置102可以存储更大量的数据。在示例中,成组可信服务器104使用压缩算法来压缩数据。压缩算法的示例包括但不限于LZ77、DEFLATE、LZR、基于卷积神经网络(Convolutional Neural Network,CNN)的压缩、基于生成对抗网络(GenerativeAdversarial Network,GAN)的压缩。根据实施方式,将每个数据块压缩到如下级别,即在数据解压期间,可以保持数据的真实性。使用加密算法对压缩数据进行加密。对压缩数据进行加密,以防止任何未经授权的用户、服务器或第三方实体(例如,在云环境中)对压缩数据进行不期望的访问。例如,数据可以包含与例如可信服务器(例如,可信服务器104A)关联的机密信息。对压缩数据进行加密防止未经授权的用户对此类机密信息的信息进行窃取。加密密钥是专门用于相应数据块的唯一加密密钥。相同的加密密钥可以用于不同的块。加密密钥可以定期更改。所有可信服务器均可以访问所有加密密钥。因此,只能使用加密密钥访问数据。加密算法的示例包括但不限于Twofish、MD5、高级加密标准(Advanced EncryptionStandard,AES)、国际数据加密算法(International Data Encryption Algorithm,IDEA)等。
在步骤S3中,方法100A还包括通过执行第一应用编程接口106A的写函数,将已压缩和加密的数据块从可信服务器(例如,可信服务器104A)发送至不可信存储装置102。不可信存储装置102存储来自成组可信服务器104中的每个可信服务器的已压缩和加密的数据块。此外,将数据块的哈希值、一个或更多个相似性哈希值和KeyID与已压缩和加密的数据块一起存储。在示例中,可信服务器(例如,可信服务器104A)通过图1B中所示的通信网络将已压缩和加密的数据块发送至不可信存储装置102。在示例中,不可信存储装置102将相似性哈希值存储在允许对类似块进行高效搜索的数据结构中。
在示例中,写函数由下面所示的函数(1)表示:
write(offset,size,vector(compressed_data,compressed_size,hash of databefore compression,
set<similarity hash values before compression>, keyID of encryption))(1)
其中,
‘offset’是指不可信存储装置102中的偏移量。偏移量可以是已压缩的数据块的大小的倍数。例如,如果可信服务器(例如,服务器104A)将数据压缩成8千字节的块,则写入的偏移量将为8千字节的倍数。在另一示例中,可信服务器可以将数据压缩成16kb或32kb或另一大小的块,因此写入的偏移量将分别为16kb或32kb或另一大小的倍数;
‘size’是指要写入的块数量(未压缩)。块的数量也是压缩块大小的倍数,例如,8千字节的倍数;
‘vector(compressed_data,compressed_size,hash of data beforecompression,keyID of encryption))’是指具有压缩数据元素的向量,向量的大小为压缩数据元素的数量。例如,如果压缩块为8千字节,大小为64千字节,则向量中元素的数量为8(即,64/8=8);
‘compressed_data’是指单个压缩块的数据;
‘compressed_size’是指压缩数据的大小(以字节为单位);
‘hash of data before compression’是指应用压缩和加密前数据的哈希值,例如SHA2(也可以利用与已压缩数据相同的密钥对哈希值进行加密);
‘set<similarity hash values before compression>’是指用于压缩前的数据的一组相似性哈希值,例如最小哈希值,其允许不可信存储装置102在无法了解数据块内容的情况下找到类似数据块;
‘keyID of encryption’是指在数据压缩后用于加密数据的加密密钥的标识。
在示例中,读函数由下面所示的函数(2)表示:
vector(compressed_data,compressed size,hash of data beforecompression,set<compressed
– reference block>, keyID of encryption) = Read(offset, size) (2)
其中,参数与写函数(1)的参数相同,只是该函数中的向量为输出而不是输入,并且在使用参考块压缩块的情况下接收一组已压缩的参考块。换言之,参数并非完全相同,其含义相同,例如在函数(2)中也接收该组参考块,但是函数(1)和(2)中的压缩数据相同。
在步骤S4中,方法100A还包括不可信存储装置102识别存储的已压缩和加密的数据块中具有相同相似性哈希值的类似数据块。在执行写函数期间,将从可信服务器(例如,可信服务器104A)接收的哈希值、相似性哈希值和KeyID与存储在不可信存储装置102中的哈希值和KeyID进行比较。如果不可信存储装置102发现,对于给定一组服务器,已存在具有相同哈希值的已压缩和加密的数据块,则不可信存储装置102可以检查加密的KeyID是否已更改,如果密钥未更改,则不可信存储装置102仅存储从新偏移量到数据块位置的指针。如果所述密钥已更改,则不可信存储装置102还会更改数据和KeyID,并存储新数据块(即,已压缩和加密的数据块),而不是最后一个(先前的)数据块。因此,通过本公开内容的方法100A执行数据去重,使得相同(或类似)的数据不会再次存储在不可信存储装置102中。
在步骤S5中,方法100A还包括:通过执行第二应用编程接口106B,可信服务器(例如,可信服务器104A)执行对来自不可信存储装置102的类似数据块的请求。可信服务器(例如,可信服务器104A)可以通过执行第二应用编程接口106B,请求存储的已压缩和加密的数据块中由可信服务器(例如,可信服务器104A)基于相似性哈希值识别的的类似数据块。可信服务器(例如,可信服务器104A)使用从不可信存储装置102接收的类似数据块执行差异去重。
在步骤S6中,方法100A还包括:通过执行第二API 106B的读函数,使类似数据块的向量从不可信存储装置102返回可信服务器(例如,可信服务器104A)。基于来自可信服务器(例如,可信服务器104A)的请求,不可信存储装置102基于在写函数(1)中输入的相似性哈希值返回类似块的列表。在示例中,不可信存储装置102返回尚未通过不同方式压缩的数据块。
在示例中,下面所示的函数(3)使得可信服务器(例如,可信服务器104A)能够获取类似数据块,并且进一步对类似数据块执行差异去重。
SimlarBlocks=FetchSimilarBlocksForBackgorundCompression(MaxElementnum)(3)
其中,SimilarBlocks为向量<compressedData,comprpessedDataSize,HashBeforeCompression,KeyID),其与写函数(1)中的向量类似;
‘MaxElementnum’是指不可信存储装置102返回可信服务器(例如,可信服务器104A)的类似块的最大数量。
在步骤S7中,方法100A还包括可信服务器(例如,可信服务器104A)解密和解压接收的已压缩和加密的类似数据块。数据块以压缩和加密的形式存储在不可信存储装置102中。因此,当可信服务器(例如,可信服务器104A)接收到接收的已压缩和加密的类似数据块时,对其进行解密和解压,以获得原始形式(即压缩前)的数据块,从而进一步使得可信服务器(例如,可信服务器104A)能够执行差异压缩。在示例中,如果已压缩和加密的类似数据块先前是参考另一数据块进行压缩的,则该数据块首先也会被接收并被解压,以实现已压缩和解密的类似数据块的解压。
在示例中,首先对已压缩和加密的类似数据块进行解密,然后对其进行解压。由于存储在不可信存储装置102中的数据块是被压缩并使用加密密钥进行加密的,因此在执行读函数期间解密数据需要匹配该加密密钥的密钥ID,以便能够使用该加密密钥来解密数据。因此,在没有正确的第一加密密钥的情况下,任何未经授权的服务器都无法访问数据。有利的是,这使得方法100A在不需要第一组服务器与不可信存储装置102之间存在相互信任关系的情况下确保数据不会被窃取,同时还确保数据的存储是以压缩形式进行的。本公开内容的方法100A提供了新协议,该新协议允许对第一组可信服务器上的数据进行压缩,同时允许不可信存储装置102对压缩形式的数据进行去重和存储,从而在即使存储装置不受信任的情况下也允许数据缩减。
在示例中,当可信服务器(例如,可信服务器104A)读取接收的已压缩和加密的类似数据块时,可信服务器将利用与KeyID匹配的密钥来解密每个块,然后可信服务器解压数据,并验证解压数据确实具有正确的哈希值,这实现数据的完整性。如果已使用差异去重对已压缩和加密的类似数据块进行压缩,则不可信存储装置102还会返回一组已压缩和加密的参考数据块,可信服务器(例如,可信服务器104A)使用匹配的加密密钥(每个参考块可以具有不同的加密密钥)来解密参考块,然后使用参考块来解压原始块(即,已压缩和加密的类似数据块)。
在步骤S8中,方法100A还包括识别已解压的类似数据块之间的相似性。可信服务器(例如,可信服务器104A)解压所有接收的已压缩和加密的类似数据块,并查找已解压的类似数据块之间是否存在相似性。在示例中,哈希值和相似性哈希值可以用于识别已解压的类似数据块之间的相似性。在示例中,识别在步骤S3处存储在不可信存储装置102中的数据块与从不可信存储装置102接收的类似数据块之间的相似性。在示例中,在步骤S3处存储在不可信存储装置102中的数据块可以包括在从不可信存储装置102接收的类似数据块中。在不可信存储装置102处通过相似性哈希值确定相似性,并且不可信存储装置102接收函数(3),即FetchSimilarBlocksForBackgorundCompression,然后使用差异压缩进行压缩。
在步骤S9中,方法100A还包括确定已识别的类似数据块中的要用作参考数据块的第一数据块并且确定已识别的类似数据块中的要使用参考数据块进行压缩的第二数据块。换言之,可信服务器(例如,可信服务器)104A基于所识别的相似性确定哪些块可以用作参考块以及哪些块可以使用类似块进行压缩。在示例中,使用提供更佳压缩的参考块;块的大小相同,但基于参考块的差异压缩将有所不同。在示例中,在步骤S3处存储在不可信存储装置102中的数据块可以被识别为第一数据块,并且从不可信存储装置102接收的类似数据块可以被识别为第二数据块。
在步骤S10中,方法100A还包括:可信服务器(例如,可信服务器104A)执行第二次压缩以通过使用参考数据块重新压缩第二数据块,并且执行第二次加密以重新加密已重新压缩的数据块。换言之,在本公开内容的方法100A中执行差异压缩。因此,与正常压缩相比,所节省的存储空间量有所增加,这进一步增强了不可信存储装置102的性能。可以通过本领域已知的压缩算法来执行第二次压缩。
在步骤S11中,方法100A还包括:通过执行第二API 106B对不可信存储装置102执行写函数,并且将已重新加密的利用参考数据块压缩的第二数据块、第二数据块的哈希值、参考数据块的哈希值、第二数据块的加密密钥的KeyID、参考数据块的加密密钥的KeyID从可信服务器(例如,可信服务器104A)发送至不可信存储装置102。可信服务器(例如,可信服务器104A)将在差异去重中的已压缩的数据块(即已重新加密的第二数据块)与用作该块的参考的块的哈希值列表一起写入。第二数据块和参考数据块的哈希值使得不可信存储装置102能够防止在给定一组可信服务器中存储重复的数据块。
在示例中,第二API 106B的写函数由下面所示的函数(4)表示。
WriteDifferentialBlock(compressedData,HashOfDataBeforeCompression,keyID,vector<hash
of reference before compression>) (4)
其中,‘vector<hash of reference before compression>’是指表示参考数据块的哈希值的向量;
‘compressed_data’是指已重新加密的第二数据块的数据;
‘compressed_size’是指已重新加密的第二数据块的压缩数据的大小(以字节为单位);
‘hash of data before compression’是指应用压缩和重新加密前已重新加密的第二数据块的数据的哈希值,例如SHA2;
‘keyID of encryption’是指在压缩数据后用于重新加密已重新加密的第二数据块的数据的加密密钥的标识。
在步骤S12,方法100A还包括:在不可信存储装置102中将第一次压缩和第一次加密的数据块替换为第二次压缩和第二次加密的数据块,并且获得差异去重数据块。有利的是,通过将第一次压缩的数据块替换为第二次压缩的数据块,节省的不可信存储装置102的存储空间有所增加。因此,方法100A提供了新协议,该新协议使得能够由可信服务器(例如,可信服务器104A)执行压缩和差异去重,同时使得不可信存储装置102能够进行去重并且存储压缩形式(即,差异压缩)的数据。
根据实施方式,方法100A还包括定义一组或更多组可信服务器104,其中,所述一组或更多组可信服务器104包括一个或更多个可信服务器104A至104N。通常,可信服务器104是指在数据安全方面受信任的服务器。具体地,每组可信服务器104是可以相互通信以共享相同加密密钥或具有用于共享相同加密密钥的密钥管理器的服务器。定义成组可信服务器104,以便专门针对给定一组可信服务器执行去重,因此在备份期间一组可信服务器的数据不会被另一组可信服务器覆盖。此外,一组可信服务器104可以共享相同的加密密钥和相同的哈希函数。在示例中,一组可信服务器包括给定组织、组织内的团队或部门或任何实体的一组主机服务器。在另一示例中,一组可信服务器包括不同参与实体的服务器,这些实体相互信任且共享数据并将数据存储在不可信存储装置102中。给定一组可信服务器可以由其中一个可信服务器104定义,可信服务器可以充当管理服务器或基于用户输入,例如用户配置或设置。该组可信服务器中的每个可信服务器被配置成使用加密密钥对使用加密算法的数据进行加密,并且使用哈希函数对数据进行哈希处理。
该方法还包括将成组可信服务器104中的每个可信服务器提供的数据块存储在不可信存储装置102中。此外,数据块使用加密密钥以加密形式存储,因此被称为已加密的数据块108。数据块在加密前被压缩。此外,还计算压缩和加密前的数据块的哈希值并将其与数据块108一起存储在不可信存储装置102中。此外,也将加密密钥的KeyID存储在不可信存储装置102中。
根据实施方式,方法100A还包括通过以下方式对差异去重数据块进行解压:执行对差异去重数据块的解密,执行对已压缩的参考数据块的解密,执行对已解密的参考数据块的解压,通过使用已解压的参考数据块执行对差异去重数据块的解压。当需要原始形式的数据块时,对差异去重数据块进行解压。在示例中,在步骤S9处,可信服务器(例如,可信服务器104A)决定使用第一数据块作为参考来压缩第二数据块。可信服务器(例如,可信服务器104A)写入当第一数据块用作参考时压缩的第二数据块,并且写入第二数据块的哈希值和第一数据块的参考,加密的KeyID为当前的加密密钥。在步骤S12处,不可信存储装置102将原始已压缩的第二数据块替换为差异去重块。此外,要读取第二数据块时,接收差异去重第二数据块及其哈希值和密钥ID,但是还会获得已压缩的第一数据块及其哈希值和密钥ID,以便解压第二数据块。因此,对第一和第二数据块进行解密,对第一数据块进行解压,并且使用第一数据块作为参考来压缩第二数据块。
根据实施方式,发送包括发送数据块的大小以及数据块的哈希值、相似性哈希值和加密密钥的KeyID。数据块的大小是由可信服务器(例如,可信服务器104A)写入不可信存储装置102的块的数量。在对数据块执行压缩和加密之前,计算数据块的哈希值。在对数据块执行压缩和加密之前,计算数据块的相似性哈希值,以使得不可信存储装置102能够找到类似数据块。将数据块的加密密钥的KeyID用作用于加密数据块的加密密钥的标识。
在示例中,当该组可信服务器104向不可信存储装置102写入时,如果写入未与块对齐,则执行先读后写,以确保存在用于写入的数据。当该组可信服务器104尝试将数据写入不可信存储装置102时,根据用于压缩的存储块大小将数据分离成固定大小的对齐块;将对每个块进行压缩和解密,并在压缩前将计算数据的哈希值,并且在压缩前将计算相似性哈希值,然后服务器将写入包括加密密钥的密钥id和哈希值的数据。
不可信存储装置102是基于块的存储装置。在示例中,基本块大小为8千字节,这意味着到不可信存储装置102的所有数据输入和输出必须与8千字节的偏移量对齐,并且其大小是8千字节的倍数(即,24千字节、40千字节、128千字节等)。写入的大小(压缩前)必须是8千字节的倍数(即根据存储块大小),例如写入8千字节、16千字节、24千字节、64千字节,但不写入4千字节。在示例中,如果要将4千字节的数据写入偏移量22千字节,则需要首先从偏移量16千字节中读取16千字节的量,用新数据替换从偏移量18千字节到22千字节的4千字节,然后再次将16千字节写入偏移量16千字节。
根据实施方式,返回向量包括返回已压缩和加密的数据块的大小以及已压缩和加密的数据块的加密密钥的KeyID、哈希值、一个或更多个相似性哈希值。已压缩和加密的数据块的大小是指已压缩和加密的数据块的数量。KeyID是用于对已压缩和加密的数据块进行加密的加密密钥的标识。哈希值是压缩和加密前已压缩和加密的数据块的哈希值。相似性哈希值是压缩和加密前已压缩和加密的数据块的哈希值。
根据实施方式,返回包括返回具有最大公共相似性哈希值的类似数据块。如果数据块具有相同的相似性哈希值,则通常每个数据块可能存在多于一个公共相似性哈希值,并且不可信存储装置102可以返回具有最大公共相似性哈希值的数据块。
步骤S1至S12仅用于说明目的,在不脱离本文权利要求书的范围的情况下,还可以提供添加一个或更多个步骤、移除一个或更多个步骤、或者以不同的顺序提供一个或更多个步骤的其他替选方案。
在另一方面,提供了一种包括计算机可读指令的计算机可读介质,计算机可读指令用于实现第一应用编程接口106A和第二应用编程接口106B,以根据方法100A对不可信存储装置102中的一个或更多个数据块108进行差异去重。包括计算机可读指令的计算机可读介质可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任何组合。在又一方面,本公开内容提供了适于由设备(例如,可信服务器104之一或不可信存储装置102)执行方法100A的计算机程序。在另一方面,本公开内容提供了一种计算机程序产品,其包括非暂态计算机可读存储介质,该非暂态计算机可读存储介质具有能够由处理器执行以执行方法100A的计算机可读指令。非暂态计算机可读存储介质的实现示例包括但不限于电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、硬盘驱动器(Hard Disk Drive,HDD)、闪存、安全数码(Secure Digital,SD)卡、固态驱动器(Solid-State Drive,SSD)、计算机可读存储介质或CPU高速缓冲存储器。
图1B是根据本公开内容的实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的网络环境图。参照图1B,图中示出了系统100B。系统100B包括不可信存储装置102和成组可信服务器104。成组可信服务器104可以通过通信网络110以通信方式耦合至不可信存储装置102。成组可信服务器104包括一个或更多个可信服务器104A至104N。成组可信服务器104还包括第一应用编程接口(application programminginterface,API)106A和第二应用编程接口(application programming interface,API)106B。不可信存储装置102包括数据块108。
在另一方面,本公开内容提供了一种用于对不可信存储装置102中的一个或更多个数据块108进行差异去重的系统100B,系统100B包括:不可信存储装置102,被配置成接收已压缩和加密的数据块,识别存储的已压缩和加密的数据块中的类似数据块,解密已压缩的参考数据块;一组或更多组可信服务器104,其中,一组或更多组可信服务器104包括一个或更多个可信服务器104A至104N,所述一个或更多个可信服务器被配置成计算一个或更多个可信服务器104A至104N的一个或更多个数据块108的哈希值以及一个或更多个相似性哈希值,在不可信存储装置102中执行一个或更多个数据块108的差异去重,对已加密的数据块进行解密,对不可信存储装置102执行数据去重和压缩;第一应用编程接口106A,用于在可信服务器104A至104N与不可信存储装置102之间执行写函数和读函数;第二应用编程接口106B,用于在可信服务器104A至104N与不可信存储装置102之间执行请求和替换函数。
不可信存储装置102包括适当的逻辑、电路、接口或代码,所述逻辑、电路、接口或代码被配置成将数据(例如,与在成可信服务器104上执行的各种软件程序关联的数据)存储为具有固定大小对齐的数据块108。换言之,不可信存储装置102是备份存储装置,成组可信服务器104可以在任何定义的持续时间内在该备份存储装置中以数据块的形式存储数据。在示例中,不可信存储装置102是块设备或采用块设备进行数据存储的电子设备。在示例中,不可信存储装置102是非易失性大容量存储设备,例如基于云的存储介质。
一个或更多个可信服务器104A至104N中的每个服务器包括适当的逻辑、电路、接口或代码,所述适当的逻辑、电路、接口或代码被配置成通过通信网络110存储、处理或向不可信存储装置102传输信息。服务器的示例包括但不限于存储服务器、云服务器、网络服务器、应用服务器或其组合。根据实施方式,服务器包括能够增强信息以执行各种计算任务的物理或虚拟计算实体的任何装置。在示例中,服务器可以是单个硬件服务器。在另一示例中,服务器可以是在并行或分布式体系结构中运行的多个硬件服务器。在示例中,服务器可以包括诸如存储器、处理器、网络适配器等组件,以存储、处理或与诸如用户设备的其他计算组件共享信息。在示例中,服务器被实现为向其他设备、模块或装置提供各种服务(例如数据库服务)的计算机程序。
第一应用编程接口106A和第二应用编程接口106B是指一组函数,这些函数可以从应用程序调用,以访问另一程序的特征,用于在不可信存储装置102和成组可信服务器104之间执行读函数或写函数等函数。在实施方式中,应用编程接口106A和106B在每个可信服务器104中实现。在另一实施方式中,第一应用编程接口106A和第二应用编程接口106B可以在成组可信服务器104中实现。在示例中,第一应用编程接口106A和第二应用编程接口106B是软件接口,其包括一个或更多个例程、数据结构、对象类以及支持一个或更多个可信服务器104A至104N和不可信存储装置102交互的协议。
通信网络110包括成可信服务器104通过其与不可信存储装置102通信的介质(例如,通信信道)。通信网络110可以是有线或无线通信网络。通信网络110的示例可以包括但不限于无线保真(Wireless Fidelity,Wi-Fi)网络、局域网(Local Area Network,LAN)、无线个人局域网(wireless personal area network,WPAN)、无线局域网(Wireless LocalArea Network,WLAN)、无线广域网(wireless wide area network,WWAN)、云网络、长期演进(Long Term Evolution,LTE)网络、城域网(Metropolitan Area Network,MAN)或互联网。不可信存储装置102和成可信服务器104可以被配置成根据各种有线和无线通信协议连接至通信网络110。这种有线和无线通信协议的示例可以包括但不限于传输控制协议和互联网协议(Transmission Control Protocol and Internet Protocol,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)、超文本传输协议(Hypertext TransferProtocol,HTTP)、文件传输协议(File Transfer Protocol,FTP)、ZigBee、EDGE、红外(infrared,IR)、IEEE 802.11、802.16、长期演进(Long Term Evolution,LTE)、光保真(Light Fidelity,Li-Fi)或其他蜂窝通信协议或蓝牙(Bluetooth,BT)通信协议(包括其变体)。
系统100B包括不可信存储装置102,该不可信存储装置被配置成:接收已压缩和加密的数据块,识别存储的已压缩和加密的数据块中的类似数据块,解密已压缩的参考数据块。数据以固定大小对齐的已压缩和加密的数据块的形式存储在不可信存储装置102中。这里的固定大小是指块可以存储的数据量(例如,以定义大小的块的形式)。成可信服务器104通过根据不可信存储装置102中加密的数据块的大小将数据分离(即创建数据块)成固定大小对齐的块,将数据写入不可信存储装置102。在给定的可信服务器(例如,可信服务器104A)处将数据分离成具有固定大小对齐的块,以提高存储容量并从不可信存储装置102高效检索数据。识别类似数据块,以便能够对存储在不可信存储装置102中的数据块进行差异压缩,从而节省存储空间。对已压缩的参考数据块进行解密,以便能够在需要时解压差异去重数据块。
系统100B还包括一组或更多组可信服务器104,其中,所述一组或更多组可信服务器104包括一个或更多个可信服务器104A至104N,所述一个或更多个可信服务器被配置成:计算一个或更多个可信服务器104A至104N的一个或更多个数据块108的哈希值和一个或更多个相似性哈希值;在不可信存储装置102中执行一个或更多个数据块108的差异去重;对已加密的数据块进行解密并且对不可信存储装置102执行数据去重和压缩。一个或更多个可信服务器104A至104N被配置成将数据块的哈希值和相似性哈希值连同数据块一起存储在不可信存储装置102中。此外,一个或更多个可信服务器104A至104N接收类似数据块,以执行差异压缩和去重。
系统100B还包括第一应用编程接口106A,用于在可信服务器104A至104N与不可信存储装置102之间执行写函数和读函数。可信服务器104A至104N使用第一应用编程接口106A,将已压缩和加密的数据块写入不可信存储装置102并从不可信存储装置102读取已压缩和加密的数据块。
系统100B还包括第二应用编程接口106B,用于在可信服务器104A至104N与不可信存储装置102之间执行请求和替换函数。可信服务器104A至104N使用第二应用编程接口106B,从不可信存储装置102请求类似数据块并将第一次压缩的数据块替换为第二次压缩的数据块。
根据实施方式,系统100B还包括在处理器114中运行的密钥管理器112,该密钥管理器被配置成为一个或更多个可信服务器104A至104N生成一个或更多个加密密钥。在示例中,密钥管理器112可以包括相应组的不同可信服务器组104使用的加密密钥的索引形式。此外,密钥管理器112可以包括密钥生成算法,以生成可信服务器104A至104N使用的加密密钥。根据实施方式,每个可信服务器104A至104N可以与其他可信服务器通信,以共享加密密钥。由于存在密钥管理器,因此如果使用相同的加密密钥,并且使用相同的哈希函数,则不需要在可信服务器之间进行通信,并且可以仅使用已定义的协议。
根据实施方式,可信服务器104A至104N还被配置成在同一组可信服务器中的可信服务器之间共享一个或更多个加密密钥、哈希值和一个或更多个相似性哈希值。系统100B能够在给定一组可信服务器之间进行差异压缩和去重,因此对于该给定一组可信服务器,哈希值和加密密钥不同。
图2A为根据本公开内容的实施方式的不可信存储装置的各种示例性组件的框图。参照图2A,图中示出了不可信存储装置102。不可信存储装置102包括第一处理器202、第一收发器204和第一存储器206。第一处理器202可以通过通信方式耦合至第一收发器204和第一存储器206。不可信存储装置102通过通信网络110耦合至成组可信服务器104。
第一处理器202被配置成从成可信服务器104接收数据。在实施方式中,第一处理器202被配置成执行存储在第一存储器206中的指令。在示例中,第一处理器202可以是通用处理器。第一处理器202的其他示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,CISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、精简指令集(reduced instruction setcomputing,RISC)处理器、超长指令字(very long instruction word,VLIW)处理器、中央处理器(central processing unit,CPU)、状态机、数据处理单元以及其他处理器或控制电路。此外,第一处理器202可以指一个或更多个单独的处理器、处理设备、作为机器一部分的处理单元,例如不可信存储装置102。
第一收发器204包括适当的逻辑、电路和接口,所述逻辑、电路和接口可以被配置成与一个或更多个外部设备(例如成组可信服务器104)通信。第一收发器204的示例可以包括但不限于天线、射频(radio frequency,RF)收发器、一个或更多个放大器、一个或更多个振荡器、数字信号处理器、编码器-解码器(coder-decoder,CODEC)芯片组或用户识别模块(subscriber identity module,SIM)卡。
第一存储器206是指不可信存储装置102的主存储装置。第一存储器206包括适当的逻辑、电路和接口,所述逻辑、电路和接口可以被配置成存储数据块108和能够由第一处理器202执行的指令。第一存储器206的实现示例可以包括但不限于电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、硬盘驱动器(HardDisk Drive,HDD)、闪存、固态驱动器(Solid-State Drive,SSD)或CPU高速缓冲存储器。第一存储器206可以存储操作系统或其他程序产品(包括一个或更多个操作算法),以操作不可信存储装置102。
在操作中,不可信存储装置102的第一处理器202被配置成从可信服务器(例如,可信服务器104A)接收已压缩和加密的数据块。第一处理器202还被配置成根据已压缩和加密的数据块识别存储的已压缩和加密的数据块中的类似数据块。第一处理器202还被配置成解密已压缩的参考数据块。
图2B为根据本公开内容的实施方式的可信服务器的各种示例性组件的框图。参照图2B,图中示出了一个或更多个可信服务器104A至104N中的可信服务器104A。可信服务器104A还包括存储器208、服务器处理器210和第二收发器212。服务器处理器210可以通过通信方式耦合至第二收发器212和存储器208。可信服务器104A通过通信网络110以通信方式耦合至不可信存储装置102。
在另一方面,本发明提供了一种用于对不可信存储装置102中的一个或更多个数据块108进行差异去重的可信服务器104A,其中,可信服务器104A包括被配置存储指令的存储器208和被配置成执行指令以进行下列操作的服务器处理器210:实现第一应用编程接口106A,用于在可信服务器104A与不可信存储装置102之间执行写函数和读函数;实现第二应用编程接口106B,用于在可信服务器104A与不可信存储装置102之间执行请求和替换函数;计算一个或更多个数据块108的哈希值和一个或更多个相似性哈希值;在不可信存储装置102中执行一个或更多个数据块108的差异去重;对已加密的数据块进行解密;以及对不可信存储装置102执行数据去重和压缩。
存储器208是指可信服务器104A的主存储装置。存储器208的实现示例可以包括但不限于电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read OnlyMemory,ROM)、硬盘驱动器(Hard Disk Drive,HDD)、闪存、固态驱动器(Solid-StateDrive,SSD)或CPU高速缓冲存储器。存储器208可以存储操作系统或其他程序产品(包括一个或更多个操作算法),以操作可信服务器104A。
服务器处理器210被配置成执行存储在存储器208中的指令。在示例中,服务器处理器210可以是通用处理器。服务器处理器210的其他示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,CISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、精简指令集(reducedinstruction set computing,RISC)处理器、超长指令字(very long instruction word,VLIW)处理器、中央处理器(central processing unit,CPU)、状态机、数据处理单元以及其他处理器或控制电路。此外,服务器处理器210可以指一个或更多个单独的处理器、处理设备、作为机器一部分的处理单元,例如可信服务器104A。
第二收发器212包括适当的逻辑、电路和接口,所述逻辑、电路和接口可以被配置成与一个或更多个外部设备(例如,不可信存储装置102)通信。第二收发器212的示例可以包括但不限于天线、射频(radio frequency,RF)收发器、一个或更多个放大器、一个或更多个振荡器、数字信号处理器、编码器-解码器(coder-decoder,CODEC)芯片组或用户识别模块(subscriber identity module,SIM)卡。
在操作中,可信服务器104A的服务器处理器210被配置成计算一个或更多个数据块108的哈希值和一个或更多个相似性哈希值。服务器处理器210被配置成在不可信存储装置102中执行一个或更多个数据块108的差异去重。服务器处理器210还被配置成对已加密的数据块进行解密并对不可信存储装置102执行数据去重和压缩。
根据实施方式,可信服务器104A被配置成:执行对数据块的第一次压缩和第一次加密;将已压缩和加密的数据块发送至不可信存储装置102;执行对来自不可信存储装置102的类似数据块的请求;从不可信存储装置102接收类似数据块的向量;解压已接收的类似数据块;确定已接收的类似数据块中的要用作参考数据块的第一数据块并且确定已识别的类似数据块中的要使用参考数据块进行压缩的第二数据块;通过使用参考数据块重新压缩第二数据块,并执行第二次加密以重新加密已重新压缩的数据块;将已重新加密的利用参考数据块压缩的第二数据块、第二数据块的哈希值、参考数据块的哈希值、第二数据块和参考数据块的加密密钥的KeyID、参考数据块的加密密钥的KeyID发送至不可信存储装置102。因此,可信服务器104A执行差异压缩,这使得能够有效地利用不可信存储装置102的存储空间。
图3A示出了根据本公开内容的另一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的示例性实施场景。参照图3A,图中示出了系统300A。系统300A包括不可信存储装置302、第一组可信服务器304和第二组可信服务器306。第一组可信服务器304包括可信服务器308A、308B和308C。第二组可信服务器306包括可信服务器310A、310B和310C。
第一组可信服务器304也可以称为第一服务器区域,第二组可信服务器306也可以称为第二服务器区域。每组可信服务器中的服务器相互信任,并使用相同的加密密钥和相同的哈希函数。因此,每组可信服务器中的服务器都可以在其服务器之间进行数据去重和压缩。
不可信存储装置302包括:第一数据去重区域312A,用于存储从第一组可信服务器304接收的数据;第二数据去重区域312B,用于存储从第二组可信服务器306接收的数据。
第一组可信服务器304和第二组可信服务器306相互不信任,因此不在第一组可信服务器304和第二组可信服务器306之间进行数据去重。第一组可信服务器304和第二组可信服务器306也不能读取彼此的数据,因为它们不共享加密密钥。
第一组可信服务器304和第二组可信服务器306中的每个服务器被配置成执行第一API(未示出)和第二API(未示出),以使得能够对不可信存储装置302中的一个或更多个数据块108进行差异去重。
图3B示出了根据本公开内容的又一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的系统的示例性实施场景。参照图3B,图中示出了系统300B。系统300B包括不可信存储装置302、第一组可信服务器304。第一组可信服务器304包括用于差异压缩的可信服务器(例如,可信服务器308A)。第一组可信服务器304包括可信服务器308A、308B和308C。
用于差异压缩的可信服务器(例如,可信服务器308A)可以耦合至其他可信服务器308B和308C中的每一个。用于差异压缩的可信服务器(例如,可信服务器308A)被配置成从不可信存储装置302请求类似数据块。用于差异压缩的可信服务器(例如,可信服务器308A)被配置成进一步接收类似数据块。用于差异压缩的可信服务器(例如,可信服务器308A)还被配置成对类似数据块执行差异压缩并进一步重新加密数据块。用于差异压缩的可信服务器(例如,可信服务器308A)还被配置成将利用参考数据块压缩的已重新加密的数据块写入不可信存储装置302。
图4示出了根据本公开内容的另一实施方式的用于对不可信存储装置中的一个或更多个数据块进行差异去重的不可信存储装置。参照图4,图中示出了不可信存储装置400。不可信存储装置400包括块402A、402B、402C、402D,以存储数据。
每个块402A、402B、402C、402D的大小为8千字节。作为输入提供的或作为输出接收到不可信存储装置400的数据与8千字节的偏移量对齐,并且其大小是8千字节的倍数,例如24千字节、40千字节、128千字节等。换言之,写入的大小必须是8千字节的倍数,例如写入8千字节、16千字节、24千字节、64千字节。将大小为4千字节的数据404写入偏移量18千字节时,用数据404替换从偏移量18千字节到22千字节的4千字节,然后将16千字节写入偏移量16千字节。
成组可信服务器104通过根据用于压缩的存储块大小将数据404分离成固定大小对齐的块,将数据404写入不可信存储装置400。在给定可信服务器处将数据404分离成具有固定大小对齐的块,以提高存储容量并从不可信存储装置400高效检索数据。有利的是,将数据404分离成块还能够改进不可信存储装置400中数据404的索引。
图5示出了根据本公开内容的另一实施方式的由可信服务器在不可信存储装置上执行的示例性命令。参照图5,图中示出了写命令502、获取类似数据命令504、写入差异块命令506、读命令508。
写命令502包括压缩数据510、压缩前数据的哈希值512、压缩前数据的相似性哈希值514、用于数据加密的加密密钥的KeyID 516。
获取类似数据命令504包括压缩数据518A(用于第一数据)、压缩前数据的哈希值520A(用于第一数据)、用于加密第一数据的加密密钥的KeyID 522A、压缩数据518B(用于第二数据)、压缩前数据的哈希值520B(用于第二数据)、用于加密第二数据的加密密钥的KeyID 522B。
写入差异块命令506包括差异压缩数据524、用于加密差异压缩数据的加密密钥的KeyID 526、压缩前数据的哈希值520B(用于第二数据)、压缩前数据的哈希值520A(用于第一数据)。
读命令508包括差异压缩数据524、用于加密差异压缩数据的加密密钥的KeyID526、压缩前数据的哈希值520B(用于第二数据)、压缩数据518A(用于第一数据)、压缩前数据的哈希值520A(用于第一数据)、用于加密第一数据的加密密钥的KeyID 522A。
在不脱离所附权利要求书限定的本公开内容的范围的情况下,可以对上述本公开内容的实施方式进行修改。用于描述和主张本公开内容的“包括”、“包含”、“结合”、“具有”、“是”等表达旨在以非唯一的方式解释,即允许还存在没有明确描述的项目、部分或要素。提及单数也可以解释为与复数相关。此处使用的词“示例性的”表示“用作示例、实例或说明”。任何被描述为“示例性的”实施方式并不一定被解释为比其他实施方式优选或有利并且/或者排除对来自其他实施方式的特征的结合。此处使用的词语“可选地”表示“在一些实施方式中提供而在其他实施方式中不提供”。应当理解,为了清楚起见,在单独实施方式的上下文中描述的本公开内容的某些特征也可以在单个实施方式中组合提供。相反地,为了简洁起见,在单个实施方式的上下文中描述的本公开内容的各种特征也可以单独地或以任何合适的组合或如在本公开内容的任何其他描述的实施方式中合适地提供。

Claims (12)

1.一种用于对不可信存储装置(102,302,400)中的一个或更多个数据块(108)进行差异去重的方法(100A),所述方法(100A)包括通过实现以下步骤来执行计算机可读指令:
提供数据块的哈希值、一个或更多个相似性哈希值和加密密钥的KeyID;
可信服务器(104A)对所述数据块执行第一次压缩和第一次加密;
通过执行第一应用编程接口API(106A)的写函数,将已压缩和加密的数据块从所述可信服务器(104A)发送至所述不可信存储装置(102,302,400);
所述不可信存储装置(102,302,400)识别存储的已压缩和加密的数据块中具有相同相似性哈希值的类似数据块;
通过执行第二应用编程接口API(106B),所述可信服务器(104A)执行对来自所述不可信存储装置(102,302,400)的类似数据块的请求;
通过执行所述第二API的读函数,使所述类似数据块的向量从所述不可信存储装置(102,302,400)返回至所述可信服务器(104A);
所述可信服务器(104A)解密和解压接收的已压缩和加密的类似数据块;
识别已解压的类似数据块之间的相似性;
确定已识别的类似数据块中的要用作参考数据块的第一数据块,并且确定所述已识别的类似数据块中的要使用所述参考数据块进行压缩的第二数据块;
所述可信服务器(104A)执行第二次压缩,以通过使用所述参考数据块重新压缩所述第二数据块,并且执行第二次加密以重新加密已重新压缩的数据块;
通过执行所述第二API对所述不可信存储装置(102,302,400)执行写函数,并且将已重新加密的利用所述参考数据块压缩的第二数据块、所述第二数据块的哈希值、所述参考数据块的哈希值、所述第二数据块的加密密钥的KeyID、所述参考数据块的加密密钥的KeyID从所述可信服务器(104A)发送至所述不可信存储装置(102,302,400);
在所述不可信存储装置(102,302,400)中将所述第一次压缩和第一次加密的数据块替换为第二次压缩和第二次加密的数据块,并且获得差异去重数据块。
2.根据权利要求1所述的方法(100A),其中,所述方法(100A)还包括定义一组或更多组可信服务器(104),其中,所述一组或更多组可信服务器(104)包括一个或更多个可信服务器(104A-104N)。
3.根据权利要求1或2所述的方法(100A),其中,所述方法(100A)还包括通过以下操作对所述差异去重数据块进行解压:执行对所述差异去重数据块的解密,执行对已压缩的参考数据块的解密,执行对已解密的参考数据块的解压,通过使用已解压的参考数据块执行对所述差异去重数据块的解压。
4.根据前述权利要求中任一项所述的方法(100A),其中,发送包括发送所述数据块的大小以及所述数据块的哈希值、相似性哈希值和加密密钥的KeyID。
5.根据前述权利要求中任一项所述的方法(100A),其中,返回所述向量包括返回所述已压缩和加密的数据块的大小以及所述已压缩和加密的数据块的加密密钥的KeyID、哈希值、一个或更多个相似性哈希值。
6.根据前述权利要求中任一项所述的方法(100A),其中,所述返回包括返回具有最大公共相似性哈希值的所述类似数据块。
7.一种用于对不可信存储装置(102,302,400)中的一个或更多个数据块(108)进行差异去重的可信服务器(104A),其中,所述可信服务器(104A)包括被配置成存储指令的存储器(208)和被配置成执行所述指令以进行下列操作的服务器处理器(210):
实现第一应用编程接口(106A),用于在所述可信服务器(104A)与所述不可信存储装置(102,302,400)之间执行写函数和读函数;
实现第二应用编程接口(106B),用于在所述可信服务器(104A)与所述不可信存储装置(102,302,400)之间执行请求和替换函数;
计算一个或更多个数据块(108)的哈希值和一个或更多个相似性哈希值;
在所述不可信存储装置(102,302,400)中执行一个或更多个数据块(108)的差异去重;
对已加密的数据块进行解密;以及
对所述不可信存储装置(102,302,400)执行数据去重和压缩。
8.根据权利要求7所述的可信服务器(104A),其中,所述可信服务器(104A)被配置成:
执行对所述数据块的第一次压缩和第一次加密;
将已压缩和加密的数据块发送至所述不可信存储装置(102,302,400);
执行对来自所述不可信存储装置(102,302,400)的类似数据块的请求;
从所述不可信存储装置(102,302,400)接收类似数据块的向量;
解压已接收的类似数据块;
确定所述已接收的类似数据块中的要用作参考数据块的第一数据块,并且确定已识别的类似数据块中的要使用所述参考数据块进行压缩的第二数据块;
通过使用所述参考数据块重新压缩所述第二数据块,并且执行第二次加密以重新加密已重新压缩的数据块;以及
将已重新加密的利用所述参考数据块压缩的第二数据块、所述第二数据块的哈希值、所述参考数据块的哈希值、所述第二数据块和所述参考数据块的加密密钥的KeyID、所述参考数据块的加密密钥的KeyID发送至所述不可信存储装置(102,302,400)。
9.一种用于对不可信存储装置(102,302,400)中的一个或更多个数据块(108)进行差异去重的系统(100B,300A,300B),其中,所述系统(100B,300A,300B)包括:
所述不可信存储装置(102,302,400),被配置成接收已压缩和加密的数据块,识别存储的已压缩和加密的数据块中的类似数据块,解密已压缩的参考数据块;
一组或更多组可信服务器(104),其中,所述一组或更多组可信服务器(104)包括一个或更多个可信服务器(104A-104N),所述一个或更多个可信服务器被配置成:计算一个或更多个可信服务器(104A-104N)的一个或更多个数据块(108)的哈希值和一个或更多个相似性哈希值;在所述不可信存储装置(102,302,400)中执行一个或更多个数据块(108)的差异去重;对已加密的数据块进行解密;以及对所述不可信存储装置(102,302,400)执行数据去重和压缩;
第一应用编程接口(106A),用于在所述可信服务器(104A-104N)与所述不可信存储装置(102,302,400)之间执行写函数和读函数;以及
第二应用编程接口(106B),用于在所述可信服务器(104A-104N)与所述不可信存储装置(102,302,400)之间执行请求和替换函数。
10.根据权利要求9所述的系统(100B,300A,300B),其中,所述系统(100B,300A,300B)还包括在处理器(114)中运行的密钥管理器(112),所述密钥管理器被配置成为所述一个或更多个可信服务器(104A-104N)生成一个或更多个加密密钥。
11.根据权利要求9或10所述的系统(100B,300A,300B),其中,所述可信服务器(104A-104N)还被配置成在同一组可信服务器中的可信服务器之间共享所述一个或更多个加密密钥、哈希值和一个或更多个相似性哈希值。
12.一种包括计算机可读指令的计算机可读介质,所述计算机可读指令用于实现第一应用编程接口(106A)和第二应用编程接口(106B),以根据权利要求1至7中任一项所述的方法(100A)对不可信存储装置(102,302,400)中的一个或更多个数据块(108)进行差异去重。
CN202080106664.XA 2020-10-30 2020-10-30 用于在不可信存储装置中进行差异去重的方法和系统 Pending CN116391185A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/080498 WO2022089755A1 (en) 2020-10-30 2020-10-30 Method and system for differential deduplication in untrusted storage

Publications (1)

Publication Number Publication Date
CN116391185A true CN116391185A (zh) 2023-07-04

Family

ID=73040108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080106664.XA Pending CN116391185A (zh) 2020-10-30 2020-10-30 用于在不可信存储装置中进行差异去重的方法和系统

Country Status (4)

Country Link
US (1) US20230267217A1 (zh)
EP (1) EP4222626A1 (zh)
CN (1) CN116391185A (zh)
WO (1) WO2022089755A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720270B2 (en) * 2020-12-02 2023-08-08 EMC IP Holding Company LLC Client-side compression

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495552B2 (en) * 2012-12-31 2016-11-15 Microsoft Technology Licensing, Llc Integrated data deduplication and encryption
CN107046812B (zh) * 2015-12-08 2021-02-12 华为技术有限公司 一种数据保存方法和装置
CN109716658B (zh) * 2016-12-15 2021-08-20 华为技术有限公司 一种基于相似性的重复数据删除方法和系统
US10831935B2 (en) * 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction

Also Published As

Publication number Publication date
EP4222626A1 (en) 2023-08-09
WO2022089755A1 (en) 2022-05-05
US20230267217A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
US10031679B2 (en) Gateway for cloud-based secure storage
US9479616B2 (en) Systems and methods for transformation of logical data objects for storage
US9336092B1 (en) Secure data deduplication
US8300823B2 (en) Encryption and compression of data for storage
US8954756B2 (en) Systems and methods for transformation of logical data objects for storage
US10958416B2 (en) Encrypted and compressed data transmission with padding
US8898536B2 (en) Multi-core engine for detecting bit errors
US8832040B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
CN106933701A (zh) 用于数据备份的方法及设备
KR20150139784A (ko) 동적 데이터 저장을 위한 시스템 및 방법
US20230267217A1 (en) Method and system for differential deduplication in untrusted storage
US11295028B2 (en) Multi-key encrypted data deduplication
US11463417B2 (en) Encryption processing method and apparatus
US11977518B2 (en) Method and system for data deduplication and compression in untrusted storage system
US8688753B2 (en) Transformation of logical data objects for storage
US11477172B2 (en) Securing data compression
CN114174978B (zh) 密钥可压缩加密的方法和系统
CN116490869A (zh) 用于对不可信存储器中的已加密数据块进行密钥更新的方法和系统
CN116264505A (zh) 密钥管理系统和方法、电子设备和计算机可读存储介质
CN113839773A (zh) 一种luks密钥离线提取方法、终端设备及存储介质
US20210319121A1 (en) Concurrent volume and file based inline encryption on commodity operating systems
KR102150806B1 (ko) 데이터 보호 방법
US20230344640A1 (en) Methods and system of preventing duplication of encrypted data
CN114402325A (zh) 防止加密数据重复的方法和系统
CN116846588A (zh) 文件加密方法、文件解密方法及文件加密传输系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination