CN114402325A - 防止加密数据重复的方法和系统 - Google Patents
防止加密数据重复的方法和系统 Download PDFInfo
- Publication number
- CN114402325A CN114402325A CN202080047647.3A CN202080047647A CN114402325A CN 114402325 A CN114402325 A CN 114402325A CN 202080047647 A CN202080047647 A CN 202080047647A CN 114402325 A CN114402325 A CN 114402325A
- Authority
- CN
- China
- Prior art keywords
- host
- data
- memory
- hash value
- block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/407—Cancellation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种方法,防止在存储器中存储重复数据。所述方法涉及互不信任的主机。所述方法包括:所述存储器包括加密数据块,所述网络还包括分布式账本,所述分布式账本可由两个或两个以上主机中的每个主机访问。所述方法包括第一主机在希望存储新数据块时执行的步骤:获取所述新数据块的第一哈希值,确定是否在所述账本中找到所述第一哈希值。如果在所述账本中未找到所述第一哈希值,则创建确认数据集,使用块唯一加密密钥对所述新数据块进行加密,并将第一所有权记录存储在所述账本中。如果在所述账本中找到所述第一哈希值,则获取关于已经存储与所述新数据块相同的前一块的第二主机的信息,在所述账本中输入密钥请求,从所述账本接收密钥传输记录,向所述账本发送新所有权记录。
Description
技术领域
本发明大体上涉及数据保护和存储领域,更具体地涉及防止网络中加密数据重复的方法和计算机系统。而且,本发明还涉及执行上述方法的计算机程序产品。此外,本发明还涉及与上述网络关联的主机或计算设备。
背景技术
数据备份用于在主存储系统中发生数据丢失时保护和恢复数据。数据丢失事件的示例可以包括但不限于数据损坏、主存储设备中的硬件或软件故障、数据意外删除、黑客攻击或恶意攻击。因此,为安全起见,单独的备份系统或存储系统用于存储主存储系统中的数据的备份。目前,传统备份系统通常读取数据的变化,或直接从存储数据的存储系统中获取数据。一些传统备份系统存储全部更改的数据。因此,随着时间的推移,由于更改的数据占用了传统备份系统的很大存储空间,所以备份系统的存储空间也随之被占用。这样会降低备份系统的性能,因此不希望出现这种情况。而且,数据存储的成本以及包括存储硬件成本在内的所有关联成本仍然是一个难题。
目前,有许多技术可以用于数据缩减,例如,重复数据删除技术。但是,这种传统技术效率低下,一般涉及通过消除重复数据来减少待存储的数据量。例如,重复数据删除技术以块(chunk)的形式存储数据,在接收到新数据时,新数据也被划分为可变大小或固定大小的块(chunk)。之后,检查与新数据的各个块(chunk)关联的新数据(通过比较),即检查相同的数据是否已经写入到存储系统中。如果新数据已经写入,则只使用指向数据的指针(或引用)。以这种方式,重复数据删除技术解决了在存储系统中重复相同数据的问题。但是,如果新数据通过加密存储,则只有在主存储系统和备份系统之间存在互信的情况下,才可能进行重复数据删除。因此,如果与加密数据存储系统或网络关联的各种系统(计算设备)之间不存在互信,则由于会认为加密数据是新数据(或更改的数据),重复数据删除技术可能无法实现数据缩减,导致数据存储效率低下。
因此,鉴于以上论述,有必要解决上述与传统密码数据存储系统关联的问题。
发明内容
本发明旨在提供防止在存储器中重复加密数据的方法、系统、所述系统中的第一主机和第二主机。所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。本发明旨在提供一种技术方案,以解决在互不信任的计算设备(即主机)之间进行重复数据删除的效率低下的现有问题。本发明的目的是提供一种至少部分解决现有技术中遇到的问题的技术方案,并提供用于防止将重复数据存储在密码数据存储系统中的改进方法。所述方法涉及两个或两个以上互不信任的计算设备(即主机)。
本发明的目的通过所附独立权利要求中提供的技术方案来实现。本发明的有利实现方式在从属权利要求中进一步定义。
一方面,本发明提供了一种防止在存储器中重复加密数据的方法。所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中,所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的第一哈希值。所述方法包括所述两个或两个以上主机中的第一主机在希望将新数据块存储在所述存储器中时执行的以下步骤:获取所述新数据块的第一哈希值;确定是否在所述账本中找到所述第一哈希值;如果在所述账本中未找到所述第一哈希值,则创建确认数据集,其中,所述确认数据集构成所述第一主机拥有所述数据的所有权的证据,使用块唯一加密密钥对所述新数据块进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在所述存储器中,将第一所有权记录存储在所述账本中,其中,所述第一所有权记录包括所述第一主机的标识、所述未加密的第一哈希值和使用只有所述第一主机知道的密钥进行加密的所述确认数据集;如果在所述账本中找到所述第一哈希值,则从所述账本中获取关于第二主机的信息,其中,所述第二主机已经将与所述新数据块相同的前一块存储在所述存储器中,在所述账本中输入对所述前一块的密钥的密钥请求,其中,所述密钥请求包括使用所述第二主机的公钥进行加密的所述确认数据集,从所述账本接收所述第二主机存储的密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥,向所述账本发送所述第一主机已经获得所述数据块的所有权的新所有权记录。
本发明提供了一种用于对存储在所述存储器中(例如,在加密数据存储系统中)的数据进行重复数据删除的改进方法。所述存储器是两个或两个以上可能互不信任的主机公用的。在本发明中,数据块以加密形式存储在所述存储器中,所述第一哈希值用于标识每个数据块。因此,当所述第一主机要存储所述新数据块时,所述新数据块的第一哈希值与已经存储在所述存储器中的数据块的第一哈希值进行比较。如果所述两个第一哈希值相同,则不存储所述新数据块,并且将已存储数据块(与所述新数据块相似)的所有权交给所述第一主机。如果所述两个第一哈希值不相同,则存储所述新数据块,并且将所述新数据块的所有权交给所述第一主机。因此,在将所述新数据块存储在两个或两个以上可能互不信任的主机公用的存储器中之前,确认所述新数据块是否已经存在于所述存储器中。
在一种实现方式中,所述密钥请求包括所述未加密的第一哈希值和与关于请求方主机的数据一起使用所述第二主机的公钥进行加密的所述确认数据集。
所述未加密形式的第一哈希值使得所述网络中的其它主机能够轻松访问所述第一哈希值。此外,所述密钥请求中关于所述请求方主机的数据能够将所述请求方主机(即所述第一主机)和所述第二主机的记录保存在所述账本中。
在另一种实现方式中,所述密钥传输记录还包括所述数据的哈希值和所述第一主机的标识。
通过所述密钥传输记录,所述第一主机的所述密钥请求的记录与所述新数据块的对应哈希值存储在所述账本中,供将来使用。
在另一种实现方式中,所述第一所有权记录和所述新所有权记录还包括使用所述第一主机的公钥进行加密的私钥。
这样,所述网络中的其它主机可以使用所述第一主机的公钥与所述第一主机关于所述第一所有权记录进行通信,同时与所述第一主机保持对所述新数据块数据的访问。
在另一种实现方式中,所述第二主机计算到的所述确认数据集存储在所述账本中并使用所述第二主机的私钥进行加密。
使用只有所述第二主机知道的密钥对所述确认数据集进行加密使得所述账本能够与所述第二主机保存所述前一块的所有权。
在另一种实现方式中,所述确认数据集包括第二哈希值。
所述第二哈希值以加密形式存储,并且在确认所述新数据块和先前存储的数据块的第一哈希值相同时可用。因此,防止重复数据存储在互不信任的主机之间。
另一方面,本发明提供了一种防止在存储器中重复数据的方法。所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中,所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希。所述方法包括所述两个或两个以上主机中的第二主机在第一主机希望将新数据块存储在所述存储器中时执行的以下步骤,其中,所述新数据块与所述第二主机存储在所述存储器中的前一数据块相同:从所述账本接收所述第一主机存储在所述账本中的对所述前一块的密钥的密钥请求,其中,所述密钥请求包括所述新数据块与所述前一数据块相同的证据;评估所述证据;如果发现所述新块和所述前一块相同,则从所述账本向所述第一主机提供密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥。
本发明提供了一种用于对存储在所述存储器中的数据进行重复数据删除的改进方法。所述存储器是两个或两个以上可能互不信任的主机公用的。在本发明中,当所述第一主机要存储所述新数据块时,所述新数据块的第一哈希值与已经存储在所述存储器中的数据块的第一哈希值进行比较。本发明评估所述新数据块与先前存储的数据块相同。如果所述两个第一哈希值相同,则不存储所述新数据块,并且将已存储数据块(与所述新数据块相似)的所有权交给所述第一主机。因此,在将所述新数据块存储在两个或两个以上可能互不信任的主机公用的存储器中之前,确认所述新数据块是否已经存在于所述存储器中。
在一种实现方式中,所述密钥请求包括所述第一主机根据所述新数据块计算到的第一哈希值和第二哈希值,所述第一哈希值是未加密的,所述第二哈希值使用所述第二主机的公钥进行加密。
所述未加密形式的第一哈希值使得所述网络中的其它主机能够轻松访问所述第一哈希值。此外,所述密钥请求中关于所述请求方主机的数据能够将所述请求方主机(即所述第一主机)和所述第二主机的记录保存在所述账本中。
在另一种实现方式中,所述评估所述证据的步骤包括:将所述第二哈希值与所述第二主机计算到的第二哈希值进行比较;如果所述两个第二哈希值相同,则确定所述新块和所述前一块相同。
根据所述比较,防止了数据重复。因此,重复数据删除在两个互不信任的主机之间得到执行。
在另一种实现方式中,所述密钥传输记录指示所述数据的哈希值、所述第一主机的标识和使用所述第一主机的公钥进行加密的所述数据的密钥。
通过所述密钥传输记录,所述第一主机的所述密钥请求的记录与所述新数据块的对应哈希值存储在所述账本中,供将来使用。
在另一种实现方式中,所述第二主机计算到的所述第二哈希值存储在所述账本中并使用所述第二主机的私钥进行加密。
所述第二哈希值以加密形式存储,以防止所述第二哈希值被未经授权的用户访问。因此,本发明保护了数据免受未经授权的访问,而且还防止数据在互不信任的主机之间重复。
又一方面,本发明提供了一种防止在存储器中重复加密数据的方法。所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中,所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希值。当所述两个或两个以上主机中的第一主机试图将新数据块存储在所述存储器中时,所述方法包括以下步骤:通过将为所述新数据块计算到的哈希值与在所述账本中找到的至少一个哈希值进行比较,确定所述新数据块是否与已经存储在所述存储器中的一个块相同;如果找到相同哈希值,则标识存储所述相同哈希值及其标识的数据块的第二主机,所述第二主机提供密钥,以使所述第一主机访问计算到所述相同哈希值的已存储块的密钥;如果未找到相同哈希值,则使所述第一主机将所述加密后的新数据块存储在所述存储器中,并将为所述新数据块计算到的所述哈希值存储在所述账本中。
本发明提供了一种用于对存储在所述存储器中的数据进行重复数据删除的改进方法。所述存储器是两个或两个以上可能互不信任的主机公用的。当所述第一主机要存储所述新数据块时,所述新数据块的第一哈希值与已经存储在所述存储器中的数据块的第一哈希值进行比较。如果所述两个第一哈希值相同,则不存储所述新数据块,并且将已存储数据块(与所述新数据块相似)的所有权交给所述第一主机。如果所述两个第一哈希值不相同,则存储所述新数据块,并且将所述新数据块的所有权交给所述第一主机。因此,在将所述新数据块存储在两个或两个以上可能互不信任的主机公用的存储器中之前,确认所述新数据块是否已经存在于所述存储器中。
在一种实现方式中,所述方法包括以下步骤:通过将数据集划分为两个或两个以上相同大小或可变大小的块,获得所述新数据块。
所述待存储的数据被划分为多个数据块。进一步检查所述数据块是否已经存在于所述存储器中,以防止任何重复数据块存储在互不信任的两个或两个以上主机之间。
在又一种实现方式中,所述账本是一个区块链。
所述区块链能够保存存储在所述存储器中的数据块的记录。因此,防止了重复数据块存储在所述存储器中。
在又一种实现方式中,所述区块链是是一个超级账本。
所述超级账本保存了存储在所述存储器中的数据块的记录。因此,防止了重复数据块存储在所述存储器中。
另一方面,本发明提供了一种包括计算机可读代码集合的计算机程序产品。当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合会使得所述主机执行由所述第一主机在上述方面执行的方法,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。
本发明提供了一种在第一主机侧执行的用于对存储在所述存储器中的数据进行重复数据删除的改进计算机程序产品。所述存储器是两个或两个以上可能互不信任的主机公用的。有利的方面是,在将所述新数据块存储在两个或两个以上可能互不信任的主机公用的存储器中之前,确认所述新数据块是否已经存在于所述存储器中。
又一方面,本发明提供了一种包括计算机可读代码集合的计算机程序产品。当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合会使得所述主机执行由所述第二主机在上述方面执行的方法,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。
本发明提供了一种在第二主机侧执行的用于对存储在所述存储器中的数据进行重复数据删除的改进计算机程序产品。所述存储器是两个或两个以上可能互不信任的主机公用的。有利的方面是,在将所述新数据块存储在两个或两个以上可能互不信任的主机公用的存储器中之前,确认所述新数据块是否已经存在于所述存储器中。
在一种实现方式中,所述计算机程序产品包括非瞬时性存储模块,其上具有所述计算机可读代码集合。
通过所述具有计算机可读代码集合的非瞬时存储器,提供了一种改进的计算机程序产品,能够对存储在所述存储器中的数据进行重复数据删除。所述存储器是两个或两个以上可能互不信任的主机公用的。
另一方面,本发明提供了一种用于数据网络中的第一主机。所述数据网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问,所述第一主机包括程序存储器和用于执行在所述程序存储器中找到的程序的处理器,所述程序存储器包括计算机程序产品。
即使当两个或两个以上可能互不信任的主机(例如,所述第一主机、第二主机、第三主机等)访问相同存储器时,本发明也使得所述第一主机能够以确认删除所述第一主机可以存储在所述存储器中的重复数据的方式将数据存储在所述存储器中。
又一方面,本发明提供了一种用于数据网络中的第二主机。所述数据网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问,所述主机包括程序存储器和用于执行在所述程序存储器中找到的程序的处理器,所述程序存储器包括计算机程序产品。
即使当两个或两个以上可能互不信任的主机(例如,所述第一主机、所述第二主机、第三主机等)访问相同存储器时,本发明也使得所述第二主机能够以确认删除所述第一主机可以存储在所述存储器中的重复数据的方式将数据存储在所述存储器中。
另一方面,本发明提供了一种计算机系统,包括保存加密数据的存储器和至少第一和第二主机。所述存储器可由所述第一主机和所述第二主机访问。
本发明提供了一种用于对存储在所述存储器中的数据进行重复数据删除的改进计算机系统。所述存储器是两个或两个以上可能互不信任的主机(例如,所述第一主机和所述第二主机)公用的。
可以理解的是,所有上述实现方式都可以组合在一起。
需要说明的是,本申请中描述的所有设备、元件、电路、单元和模块都可以在软件元件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的具体功能或步骤没有在执行具体步骤或功能的该实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在对应的硬件元件或软件元件或其任何类型的组合中实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本发明的范围。
本发明的其它方面、优点、特征和目的将从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
附图说明
当结合所附附图阅读时,可以更好理解上面的发明内容以及下面的具体实施方式。为了说明本发明,本发明的示例性结构在附图中示出。但是,本发明不限于本文公开的具体方法和工具。此外,本领域人员将理解,附图不是按比例绘制的。只要有可能,相似的元素用相同的数字表示。
下面仅通过举例,结合以下附图对本发明实施例进行描述。
图1为本发明一个实施例提供的防止在存储器中重复加密数据的方法的流程图,其中,所述方法由设置在网络中的第一主机执行,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。
图2为本发明一个实施例提供的防止在存储器中重复加密数据的方法的流程图,其中,所述方法由设置在网络中的第二主机执行,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。
图3为本发明一个实施例提供的防止在存储器中重复加密数据的方法的流程图,其中,所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。
图4A为本发明一个实施例提供的防止在存储器中重复加密数据的计算机系统的网络环境图。
图4B为本发明一个实施例提供的用于数据网络中的第一主机的各种示例性组件的框图。
图4C为本发明一个实施例提供的用于数据网络中的第二主机的各种示例性组件的框图。
图5A为本发明一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。
图5B为本发明另一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。
图5C是本发明又一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。
在附图中,下划线数字用于表示下划线数字所在的项或下划线数字相邻的项。非下划线数字涉及的项由将非下划线数字连接到该项的线条标识。当一个数字没有下划线并伴有相关箭头时,非下划线数字用于标识箭头指向的一般项。
具体实施方式
下面的详细描述说明了本发明实施例以及它们可以实现的方式。虽然已经公开了执行本发明的一些模式,但本领域技术人员将认识到,用于执行或实施本发明的其它实施例也是可能的。
图1为本发明一个实施例提供的防止在存储器中重复加密数据的方法100的流程图,其中,方法100由设置在网络中的第一主机执行,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。方法100包括所述两个或两个以上主机中的所述第一主机在希望将新数据块存储在所述存储器中时执行的步骤102至步骤116。方法100在所述第一主机侧执行,所述第一主机在图4A中详细示出和解释。
方法100防止在所述存储器中重复所述加密数据。重复所述加密数据是指在所述存储器中多次存储特定数据(例如,原始数据/相同数据)。重复会导致相同数据的一个或多个重复副本不必要地占用存储空间,还会降低所述存储器的性能。而且,数据存储的成本以及包括存储硬件成本在内的所有关联成本会随着原始数据的重复副本增加而不断增加。本发明的所述方法通过防止重复所述加密数据,避免所述存储器的性能下降。加密数据是指以加密形式存储在所述存储器中的数据,因此只能使用加密密钥来访问数据。所述数据使用加密算法进行加密。存储在所述网络中的所述数据可以称为存储为文本文档、图片、视频等的任何信息,这些信息需要安全存储,从而防止任何未经授权的用户访问。换句话说,方法100防止对密码数据存储系统重复所述加密数据。
方法100还涉及:所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的第一哈希值。这里的存储器是指集中式云存储器,其可以是对象存储器,例如,键/值存储器。所述存储器用于以所述两个或两个以上主机提供的一个或多个加密数据块的形式可靠地存储所述数据。所述一个或多个加密数据块中的每个数据块包括固定大小的数据。此外,所述两个或两个以上主机不信任所述存储器,即,所述两个或两个以上主机信任所述存储器会存储所述数据而不会丢失所述数据,但所述数据可能被泄露(即被未经授权的用户访问)。这里的网络是指一组主机(即两个或两个以上主机),它们相互连接以共享和存储公共存储器中的数据。上述主机(也可以称为计算设备)包括合适的逻辑、电路、接口和/或代码,它们用于通过所述网络与一个或多个主机进行数据的存储、处理和/或共享。所述主机在后面的描述中详细介绍。所述分布式账本是与多方(例如,所述第一主机、第二主机等)共享和同步以存储所述一个或多个加密数据块的数据库。所述分布式账本可以简单地称为账本。
根据一个实施例,所述账本是一个区块链。所述区块链是一个开放的分布式账本,其能够以可验证的永久方式高效记录两个主机之间的业务(即更改)。所述区块链是一个账本,其不可改变且可以与非信任主机一起使用,其中一个主机可能不信任所述网络中的另一个主机。对于用作分布式账本,所述区块链通常是由共同遵守节点间通信协议和验证数据的新数据块的对等网络管理的。虽然区块链记录并不是一成不变的,但所述区块链通过设计可以认为是安全的,并举例说明了具有高拜占庭容错的分布式计算系统。因此,通过区块链实现了去中心化共识。
根据一个实施例,所述区块链是一个超级账本。在一个示例中,区块链或任何分布式账本(例如,超级账本)可以用于保存存储在所述存储器中的所述加密数据的元数据。
存储在所述存储器中的所述一个或多个加密数据块中的每个加密数据块包括标识相应数据块的第一哈希值。哈希值是指使用哈希函数(hash function)或散列算法(hashing algorithm)生成的任意大小的数据的固定大小值。换句话说,哈希值是指表示任意大小的原始数据的固定大小值。在一个示例中,哈希值是一个由几个表示数据的字符组成的十六进制字符串。散列算法的示例包括但不限于SHA-2、MD5。有利的方面是,哈希值能够实现两个数据块之间的比较,而不需要在两个数据块的数据之间进行实际比较。所述第一哈希值是指所述网络中的特定主机第一次为数据块生成的哈希值。所述第一哈希值能够确认和防止主机存储重复数据块。
根据一个实施例,所述方法包括以下步骤:通过将数据集划分为两个或两个以上相同大小或可变大小的块,获得所述新数据块。所述第一主机用于使用数据分块(chunking)算法将要存储在所述存储器中的数据分为可变(或固定)大小的片(piece),即一个或多个数据块。根据所述数据分块(chunking)算法,所述第一主机将所述数据组成数据块。在一个实施例中,所述新数据块由所述第一主机生成。
在步骤102中,方法100还包括获取所述新数据块的第一哈希值。所述第一主机用于通过将哈希函数或散列算法应用于所述新数据块,获得所述第一哈希值。与已经存储在所述存储器中的一个或多个加密数据块相比,所述第一哈希值能够清楚地标识所述新数据块。显然,无论哪个主机应用所述散列算法,都会为给定数据块生成相似的哈希值。
在步骤104中,方法100还包括确定是否在所述账本中找到所述第一哈希值。所述确定是否在所述账本中找到所述第一哈希值是通过将为所述新数据块生成的所述第一哈希值与存储在所述存储器中的一个或多个加密数据块的每个哈希值进行比较来执行的。在一个示例中,所述方法可以采用比较器函数来比较上述哈希值。在另一个示例中,在比较上述哈希值时,如果在所述账本中找到所述第一哈希值,则生成真实信号(是),如果在所述账本中未找到所述第一哈希值,则生成错误信号(否)。有利的方面是,所述确定是否在所述账本中找到所述第一哈希值使得所述方法能够防止在所述存储器中重复已经存在的数据。
如果根据所述确定,在所述账本中未找到所述第一哈希值,则执行步骤106、步骤108和步骤110。如果根据所述确定,在所述账本中找到所述第一哈希值,则执行步骤112、步骤114、步骤116和步骤118。
在步骤106中,方法100还包括创建确认数据集,其中,所述确认数据集构成所述第一主机拥有所述数据的所有权的证明。由于在所述账本中未找到所述数据的所述新数据块,所以创建所述确认数据集,以使得所述第一主机能够拥有要添加到所述账本的所述数据的所述新数据块的所有权。所述确认数据集可以表明待添加到所述区块链中的所述新数据块是由所述第一主机创建的。所述创建确认数据集可以验证另一个主机保存相同数据。
根据一个实施例,所述确认数据集包括第二哈希值。所述第二哈希值通过应用本领域已知的散列算法创建。所述第二哈希值为所述新数据块提供增强的安全性,而所述第一哈希值能够标识所述账本中的重复数据块。
在步骤108中,方法100还包括使用块唯一加密密钥对所述新数据块进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在所述存储器中。用于对所述新数据块进行加密的所述块唯一加密密钥由所述第一主机创建。所述新数据块以加密形式存储在所述存储器中,以防止所述网络中的任何未经授权的用户或主机访问所述新数据块。根据一个实施例,所述新数据块可以包括与所述第一主机关联的保密信息。对所述新数据块进行加密可以防止未经授权的用户盗取此类保密信息。所述新数据块使用本领域已知的加密算法,用所述块唯一加密密钥进行加密。所述块唯一加密密钥是专门用于加密相应数据块(例如,所述新数据块)的唯一加密密钥。因此,只能使用所述块唯一加密密钥访问所述新数据块。所述等于所述第一哈希值的密钥也与所述加密后的新数据块一起存储在所述存储器中。这使得所述网络中的其它主机能够确定与给定其它主机关联的给定新数据块是否存在于所述账本中。
根据一个实施例,所述第一主机还用于使用只有所述第一主机知道的一个秘密密钥存储关于所述新数据块的私有元数据,以在需要时能够恢复(通过解密)所述新数据块。
在步骤110中,方法100还包括将第一所有权记录存储在所述账本中,其中,所述第一所有权记录包括所述第一主机的标识、所述未加密的第一哈希值和使用只有所述第一主机知道的密钥进行加密的所述确认数据集。在一个示例中,所述第一所有权记录包括所述第一主机的标识,例如,计算设备的序列号。另外,所述第一所有权记录可以包括在加入所述网络时提供给所述第一主机的任何标识。所述第一主机的标识本质上必须相对于所述网络中的其它主机是唯一的。在一个示例中,所述第一哈希值以明文存储。所述第一哈希值以明文(以非加密方式)存储,以使得所述网络中的其它主机可以在未经所述第一主机许可的情况下读取所述第一哈希值。此外,所述第一所有权记录可以包括所述第一主机对所述新数据块进行加密使用的所述块唯一加密密钥。所述确认数据集使用所述密钥进行加密,以防止任何主机在未经所述第一主机许可的情况下访问所述确认数据集。在一个示例中,所述密钥由所述第一主机创建。所述第一所有权记录能够在需要时根据所述第一主机的标识、所述未加密的第一哈希值和所述确认数据集从所述存储器中恢复所述新数据块。
根据一个实施例,所述第一所有权记录还包括只有所述第一主机知道的使用所述第一主机的公钥进行加密的所述秘密密钥。换句话说,所述第一主机知道的所述秘密密钥也可以存储在所述账本中并使用所述第一主机的公钥进行加密。所述秘密密钥使用所述公钥进行加密,以防止所述秘密密钥被任何未经授权的用户访问,并进一步防止访问与所述第一主机的所述新数据块关联的所述确认数据集。所述公钥已经发布,因此被所有主机知道。此外,使用所述第一主机的公钥对所述秘密密钥进行加密使得所述网络中的其它主机可以访问所述第一主机的公钥。这将使得所述网络中的其它主机可以使用所述第一主机的公钥与所述第一主机关于所述第一所有权记录进行通信。
在步骤112中,方法100还包括从所述账本中获取关于第二主机的信息,其中,所述第二主机已经将与所述新数据块相同的前一块存储在所述存储器中。一旦在所述账本中找到所述新数据块的第一哈希值,则会标识拥有所述前一块的所述第二主机,其中,所述前一块很可能携带与所述第一哈希值相同的哈希值。关于具有所述前一块的所述第二主机的账本信息是根据与具有所述前一块的所有权的所述第二主机关联的所有权记录获得的,所述前一块以前就存储在所述账本中。通常,所述新数据块的第一哈希值与所述账本中存在的用于现有一个或多个前一块的一个或多个哈希值进行比较,以标识存储或拥有与所述新数据块相同的所述前一块的所述第二主机。在一个示例中,关于所述第二主机的所述账本信息包括所述第二主机的标识、所述前一块的未加密的哈希值(相当于所述新数据块的第一哈希值)、使用只有所述第二主机知道的密钥进行加密的确认数据集(用于所述前一块)和所述第二主机对所述前一块进行加密使用的块唯一加密密钥。此外,对所述前一块的确认数据集进行加密使用的密钥使用所述第二主机的公钥进行加密。值得注意的是,确定在所述账本中找到所述新数据块的第一哈希值之后,所述第一主机请求关于所述第二主机的账本信息。
在步骤114中,方法100还包括在所述账本中输入对所述前一块的密钥的密钥请求,其中,所述密钥请求包括使用所述第二主机的公钥进行加密的所述确认数据集。一旦在所述账本中找到所述新数据块的第一哈希值,所述第一主机就会向所述第二主机发出对所述前一块的密钥的密钥请求。通常,所述密钥请求指示或涉及所述第一主机和所述第二主机之间关于所述前一块的密钥请求进行的通信(或业务)。在一个示例中,所述密钥请求可以存储在所述区块链中,指示所述第一主机和所述第二主机之间关于请求所述前一块的密钥进行的可能通信或业务。所述密钥请求由所述第一主机输入在所述账本中,以从所述第二主机接收使用所述第二主机的公钥进行加密的所述确认数据集。所述密钥请求使得所述第一主机能够在确定在所述账本中找到所述新数据块的第一哈希值之后确认所述新数据块已经存在于所述账本中。
根据一个实施例,所述密钥请求包括所述未加密的第一哈希值和与关于请求方主机的数据一起使用所述第二主机的公钥进行加密的所述确认数据集。所述密钥请求包括所述未加密的第一哈希值,因为这样使得所述账本可以保存所述第一主机和所述第二主机之间关于请求所述前一块的密钥进行的通信或业务的记录。此外,所述第一哈希值相对于所述密钥请求的未加密性质使得所述账本可以使所述网络中的其它主机确认这种密钥请求。此外,所述密钥请求包括所述确认数据集,即关于包含在所述前一块中的数据的所有权数据由所述第二主机拥有。所述密钥请求还包括关于所述请求方主机的数据,即所述第一主机从所述第二主机请求密钥。根据使用所述第二主机的公钥进行加密的所述确认数据集,所述第一主机检查所述第二主机发送的所述确认数据集与所述第一主机计算到的所述确认数据集相同。因此,确认所述新数据块已经存在于所述账本中。
根据一个实施例,所述第二主机计算到的所述确认数据集存储在所述账本中并使用所述第二主机的私钥进行加密。所述确认数据集(或所有权数据)由所述第二主机创建,以使得所述第二主机能够拥有所述账本中的所述前一块的所有权。创建所述确认数据集可以防止所述网络中的任何其它主机添加与所述前一块相似的重复数据块。此外,使用所述私钥对所述确认数据集进行加密使得所述第二主机能够防止任何未经授权的用户访问存储在所述账本中的所述前一块。根据一个实施例,所述第二主机计算到的所述确认数据集包括第二哈希值。
在步骤116中,方法100还包括从所述账本接收所述第二主机存储的密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥。如上所述,所述第一主机向所述第二主机请求所述前一块的密钥,因此所述第二主机接受所述第一主机的请求并与所述第一主机共享所述前一块的密钥。因此,所述密钥传输记录,即所述第一主机和所述第二主机之间关于密钥交换进行的通信或业务,保存在所述账本或区块链中。通常,所述第二主机在与所述第一主机共享所述前一块的请求密钥之后,将所述密钥传输记录添加到所述账本中。所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥,因为这样,只有所述第一主机(排除所述网络中的其它主机)可以使用所述第一主机的私钥访问(所述第二主机共享的)所述密钥。
根据一个实施例,所述密钥传输记录还包括所述数据的哈希值和所述第一主机的标识。根据一个示例,所述数据的哈希值涉及所述第一主机和所述第二主机之间关于所述请求密钥的交换进行的业务的详细内容。所述数据的哈希值存储在所述账本中,以保存所述第二主机与所述第一块共享所述前一块的请求密钥的记录。所述密钥传输记录还包括所述第一主机的标识,指示所述密钥请求由所述第一主机发出。在一个示例中,所述第一主机的标识可以是所述第一主机唯一的序列号。另外,所述第一所有权记录可以包括在加入所述网络时提供给所述第一主机的任何标识。
在步骤118中,方法100还包括向所述账本发送所述第一主机已经获得所述数据块的所有权的新所有权记录。一旦通过所述第二主机向所述第一主机共享所述请求密钥在所述账本中输入(存储或记录)所述密钥传输记录,所述新所有权记录就输入在所述账本中。所述新所有权记录通常包括所述第一主机已经获得所述前一块的所有权的信息,所述前一块早先由所述第二主机拥有。所述向所述账本发送新所有权记录使得所述账本能够在所述网络中的其它主机希望存储与已经存储在所述账本中的所述新数据块相似的数据块时向其它主机提供有关所述第一主机的账本信息。在一个示例中,所述新所有权记录包括所述第一主机的标识、所述未加密的第一哈希值和使用只有所述第一主机知道的密钥进行加密的所述确认数据集。转移所述前一块的所有权数据可以防止所述第一主机将所述新数据块(与所述前一块相似并由所述第二主机拥有)添加到所述存储器中。这能够实现重复数据删除,从而节省所述存储器中的空间。
根据一个实施例,所述新所有权记录还包括使用所述第一主机的公钥进行加密的秘密密钥。所述私钥使用所述公钥进行加密,以防止所述私钥被任何未经授权的用户访问,并进一步防止访问与所述第一主机的所述新数据块关联的所述确认数据集。
步骤102至步骤118仅是说明性的,还可以提供其它可选步骤,其中,在不脱离本文权利要求书范围的情况下,增加一个或多个步骤,去掉一个或多个步骤,或者以不同的顺序提供一个或多个步骤。
一方面,提供了一种包括计算机可读代码集合的计算机程序产品。当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合使得所述主机执行方法100,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。在一个示例中,所述计算机可读代码由所述网络中的第一主机执行,所述网络可以是密码数据存储网络等。此外,所述计算机程序产品中的用于提供非瞬时性存储器的一种计算机可读存储器的示例可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述存储设备的任意合适组合。
根据一个实施例,所述计算机程序产品包括非瞬时存储模块,其上具有所述计算机可读代码模块。所述非瞬时性计算机可读存储模块的实现示例包括但不限于电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、硬盘驱动器(Hard Disk Drive,HDD)、闪存、安全数字(Secure Digital,SD)卡、固态硬盘(Solid-State Drive,SSD)、计算机可读存储介质和/或CPU缓存。
现在参考图2,示出了本发明一个实施例提供的防止在存储器中重复加密数据的方法200的流程图,其中,方法200由设置在网络中的第二主机执行,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。方法200包括所述两个或两个以上主机中的所述第二主机在第一主机希望将新数据块存储在所述存储器中时执行的步骤202至步骤206,其中,所述新数据块与所述第二主机存储在所述存储器中的前一块相同。方法200在所述第二主机侧执行,如图4B更详细示出和解释。
方法200还涉及:所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希。方法200还包括所述两个或两个以上主机中的所述第二主机在第一主机希望将新数据块存储在所述存储器中时执行的以下步骤202至步骤206,其中,所述新数据块与所述第二主机存储在所述存储器中的前一数据块相同。
在步骤202中,方法200还包括从所述账本接收所述第一主机存储在所述账本中的对所述前一块的密钥的密钥请求,其中,所述密钥请求包括所述新数据块与所述前一数据块相同的证据。通过将所述新数据块的第一哈希值和所述前一数据块的第一哈希值进行比较来确定在所述账本中找到所述新数据块的所述第一哈希值时,所述第一主机用于向所述账本提供所述密钥请求。所述第一主机提供所述密钥请求,以获得与所述新数据块相似的所述前一块的所有权。所述密钥请求涉及所述第一主机和所述第二主机之间关于所述前一块的密钥请求进行的通信(或业务)。所述密钥请求由所述第一主机输入在所述账本中,以从所述第二主机接收使用所述第二主机的公钥进行加密的确认数据集。所述密钥请求使得所述第一主机能够在确定在所述账本中找到所述新数据块的第一哈希值之后确认所述新数据块已经存在于所述账本中。
根据一个实施例,所述密钥请求包括所述第一主机根据所述新数据块计算到的第一哈希值和第二哈希值,所述第一哈希值是未加密的,所述第二哈希值使用所述第二主机的公钥进行加密。与已经存储在所述存储器中的一个或多个加密数据块相比,所述第一哈希值能够清楚地标识所述新数据块。在一个示例中,所述第一主机在确定在所述账本中找到所述新数据块的所述第一哈希值时从所述账本接收所述第二主机的公钥。所述第一哈希值和所述第二哈希值能够评估所述新数据块是否与存储在所述账本中的前面数据块相似。所述第一哈希值由所述第一主机获得,如图1的步骤102所述。所述第一哈希值和所述第二哈希值能够提供所述新数据块与所述前一数据块相同的证据。
在步骤204中,方法200还包括评估所述证据。所述第二主机用于从所述账本接收所述密钥请求。根据所述接收到的密钥请求,所述第二主机评估所述证据,以确定所述新数据块与所述前一数据块相同。所述评估所述证据通过比较哈希值来执行。
根据一个实施例,所述评估所述证据的步骤包括将所述第二哈希值与所述第二主机计算到的第二哈希值进行比较,如果所述两个第二哈希值相同,则确定所述新块和所述前一块相同。所述新数据块的由所述第一主机计算到的第二哈希值与所述前一块的由所述第二主机计算到的第二哈希值进行比较。在一个示例中,如果所述两个第二哈希值相同,则所述第一主机的新数据块与所述第二主机的前一块相似。在另一个示例中,如果所述两个第二哈希值不相同,则所述第一主机的新数据块与所述第二主机的前一块不相似。
根据一个实施例,所述第二主机计算到的第二哈希值存储在所述账本中、通过所述第二主机的私钥进行加密。所述第二哈希值使得所述第二主机能够防止对存储在所述账本中的所述前一块进行任何未经授权的访问。计算所述第二哈希值可以防止所述网络中的任何其它主机添加与所述前一块相似的重复数据块。
在步骤206中,方法200还包括:如果发现所述新块和所述前一块相同,则从所述账本向所述第一主机提供密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥。所述第一主机向所述第二主机请求所述前一块的密钥,因此所述第二主机接受所述第一主机的请求并与所述第一主机共享所述前一块的密钥。因此,所述密钥传输记录,即所述第一主机和所述第二主机之间关于密钥交换进行的通信或业务,保存在所述账本或区块链中。通常,所述第二主机在与所述第一主机共享所述前一块的请求密钥之后,将所述密钥传输记录添加到所述账本中。所述密钥传输记录包括使用所述第一主机的公钥进行加密的所述数据的密钥,因为这使得只有所述第一主机可以使用所述第一主机的私钥访问所述密钥。
根据一个实施例,所述密钥传输记录指示所述数据的哈希值、所述第一主机的标识和使用所述第一主机的公钥进行加密的所述数据的密钥。换句话说,所述密钥传输记录包括所述前一数据块的哈希值、访问所述前一块的所述第一主机的标识值和对所述前一块进行加密使用的所述密钥。根据一个示例,所述数据的哈希值涉及所述第一主机和所述第二主机之间关于所述请求密钥的交换进行的业务的详细内容。所述密钥传输记录还包括所述第一主机的标识,指示所述密钥请求由所述第一主机发出。
步骤202至步骤206仅是说明性的,还可以提供其它可选步骤,其中,在不脱离本文权利要求书范围的情况下,增加一个或多个步骤,去掉一个或多个步骤,或者以不同的顺序提供一个或多个步骤。
另一方面,本发明提供了一种计算机程序。所述计算机程序在第二主机上执行时用于执行方法200。又一方面,提供了包括计算机可读代码集合的计算机程序产品。当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合使得所述主机执行方法200,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。在一个示例中,所述计算机可读代码由所述网络中的第二主机执行,所述网络可以是密码数据存储网络等。
根据一个实施例,所述计算机程序产品包括非瞬时存储模块,其上具有所述计算机可读代码模块。
现在参考图3,示出了本发明一个实施例提供的防止在存储器中重复加密数据的方法300的流程图,其中,所述存储器设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器中。方法300包括步骤302至步骤308。方法300包括当两个或两个以上主机中的第一主机试图将新数据块存储在所述存储器中时执行的步骤302至步骤308。
方法300还涉及:所述存储器包括一个或多个加密数据块,所述网络还包括分布式账本,所述分布式账本可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希值。方法300还包括当所述两个或两个以上主机中的第一主机试图将新数据块存储在所述存储器中时执行的以下步骤302至步骤308。
在步骤302中,方法300还包括通过将为所述新数据块计算到的哈希值与在所述账本中找到的至少一个哈希值进行比较,确定所述新数据块是否与已经存储在所述存储器中的一个块相同。换句话说,所述新数据块的第一哈希值与已经存储在所述账本中的数据块(即前一数据块)的第一哈希值进行比较。根据比较,如果所述两个哈希值相似,则所述新数据块与已经存储在所述存储器中的所述块相同,生成真实信号(是),如果所述两个哈希值不相似,则所述新数据块与已经存储在所述存储器中的任何块不相同,因此生成错误信号(否)。
根据所述确定,如果所述新数据块与已经存储在所述存储器中的块相同,则执行步骤304和步骤306。如果所述新数据块与已经存储在所述存储器中的块不相同,则执行步骤308。
在步骤304中,方法300还包括:如果找到相同哈希值,则标识存储所述相同哈希值及其标识的数据块的第二主机。一旦在所述账本中找到所述新数据块的哈希值,则会标识拥有(已经存储的)前一块的所述第二主机,所述前一块很可能携带与所述哈希值相同的哈希值。关于具有所述前一块的所述第二主机的账本信息是根据与具有所述前一块的所有权的所述第二主机关联的所有权记录获得的,所述前一块以前就存储在所述账本中。所述新数据块的哈希值与所述账本中存在的用于现有一个或多个前一块的一个或多个哈希值进行比较,以标识存储或拥有与所述新数据块相同的所述前一块的所述第二主机。
在步骤306中,方法300还包括所述第二主机提供密钥,以使所述第一主机访问计算到所述相同哈希值的已存储块。所述密钥使得所述第一台主机能够获得已存储块的所有权。在一个示例中,所述第一主机在所述账本中输入对所述已存储块(即前一块)的密钥的密钥请求,所述密钥请求包括使用所述第二主机的公钥进行加密的确认数据集。此外,所述第一主机从所述账本接收所述第二主机存储的密钥传输记录,其中,所述密钥传输记录包括使用所述所述第一主机的公钥进行加密的所述数据的密钥。一旦通过所述第二主机向所述第一主机共享所述请求密钥在所述账本中输入(存储或记录)所述密钥传输记录,所述新所有权记录就输入在所述账本中。所述新所有权记录通常包括所述第一主机已经获得所述前一块的所有权的信息,所述前一块早先由所述第二主机拥有。因此,所述第一主机向所述账本发送所述第一主机已经获得所述数据块的所有权的所有权记录。在一个示例中,所有权记录可以包括第一主机的标识号、已经存储的数据块的第一哈希值和使用所述第一主机的公钥进行加密的密钥。
在步骤308中,方法300还包括,如果未找到相同哈希值,则使所述第一主机将所述加密后的新数据块存储在所述存储器中,并将为所述新数据块计算到的哈希值存储在所述账本中。如果在所述账本中未找到所述数据的新数据块,则创建确认数据集,以使得所述第一主机拥有要添加到所述账本中的数据的新数据块的所有权。所述新数据块使用块唯一加密密钥进行加密,所述加密后的新数据块存储在所述存储器中。所有权记录包括所述第一主机的标识、所述未加密的哈希值和使用只有所述第一主机知道的密钥进行加密的确认数据集,存储在所述账本中。
步骤302至步骤308仅是说明性的,还可以提供其它可选步骤,其中,在不脱离本文权利要求书范围的情况下,增加一个或多个步骤,去掉一个或多个步骤,或者以不同的顺序提供一个或多个步骤。
另一方面,本发明提供了一种用于执行方法300的计算机程序。又一方面,提供了一种包括计算机可读代码集合的计算机程序产品。当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合使得所述主机执行方法300,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。
现在参考图4A,示出了本发明一个实施例提供的防止在存储器中重复加密数据的计算机系统的网络环境图。参考图4A,示出了计算机系统400。计算机系统400包括第一主机402、第二主机404、第三主机406和第四主机408。计算机系统400还包括存储器410和分布式账本412。第一主机402、第二主机404、第三主机406和第四主机408可以访问加密数据并将所述加密数据存储在存储器410中,并访问分布式账本412。
术语“主机(也可以称为主机设备)”包括合适的逻辑、电路、接口和/或代码,它们用于通过分布式账本412在存储器410中与一个或多个主机进行信息的存储、处理和/或共享。所述主机的示例包括但不限于主机服务器、主机生产环境系统、连接到主机服务器的瘦客户端、主存储系统和用户设备(例如,蜂窝电话、个人数字助理(personal digitalassistant,PDA)、手持设备、笔记本电脑、个人电脑、物联网(Internet-of-Things,IoT)设备、智能手机、机器类型通信(machine type communication,MTC)设备、计算设备、无人机或任何其它便携式或非便携式电子设备)。在一个示例中,本发明的第一主机402希望将新数据块存储在存储器410中,第二主机404能够确认新数据块是否已经存在于存储器410中。在一个示例中,第三主机406、第四主机408等也能够确认新数据块是否已经存在于存储器410中。
计算机系统400提供保存加密数据的存储器410。所述存储器410可由第一主机402和第二主机404访问。本文中使用的术语“存储器410”是指易失性或永久介质,例如,电路、磁盘、虚拟内存或光盘,主机在其中能够在任何持续时间内以加密数据块的形式存储数据。换句话说,存储器410包括一个或多个加密数据块。在一个示例中,存储器410是集中式云存储器。
根据一个实施例,存储器410是非易失性大容量存储器,例如,物理存储介质。此外,单个存储器可以包括在内,在计算系统是分布式的场景中,处理、内存和/或存储能力也可以是分布式的。存储器410可以是包括一个或多个加密数据块的云存储器。在一个示例中,所述云存储器用于存储对象。在一个示例中,所述云存储器包括描述所述第一主机希望存储的新数据块的对象存储器和以加密形式存储数据块的加密存储器。有利的方面是,所述云存储器提供一种用于对存储在云存储器中的所有主机公用的数据进行重复数据删除的改进存储器。
分布式账本412是多方(例如,第一主机402、第二主机404等)共享和同步以存储所述一个或多个加密数据块的数据库。换句话说,分布式账本412可由两个或两个以上主机(例如,第一主机402、第二主机404)中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的第一哈希值。分布式账本412仅通过所有各方的相互共识,实现存储在账本412中的数据的业务(即更改),从而防止任何未经授权的参与者进行任何更改或防止任何授权参与者进行任何未经授权的更改。存储在分布式账本412中的所有信息通过密码术安全地存储,使得只能使用仅对授权用户可用的授权密码密钥来访问信息。
根据一个实施例,账本412是一个区块链。第一主机402、第二主机404和第三主机406、第四主机408都可以访问所述区块链。所述区块链为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希值。根据一个实施例,所述区块链是一个超级账本。
在操作中,当所述两个或两个以上主机中的第一主机402试图将新数据块存储在存储器410中时,系统400用于执行以下步骤。通过将为所述新数据块计算到的哈希值与在分布式账本412中找到的至少一个哈希值进行比较,系统400用于确定所述新数据块是否与已经存储在存储器410中的一个块相同。此外,如果找到相同哈希值,则系统400用于标识存储相同哈希值及其标识的数据块的第二主机404,第二主机404呈现使得第一主机402访问计算到所述相同哈希值的已存储块的密钥。然而,如果未找到相同哈希值,则系统400用于使得第一主机402将所述加密后的新数据块存储在存储器410中,并将为所述新数据块计算到的所述哈希值存储在账本412中。
现在参考图4B,示出了本发明一个实施例提供的用于数据网络中的第一主机的各种示例性组件的框图。图4B结合图4A进行描述。参考图4B,示出了第一主机402。第一主机402包括处理器414、第一收发器416和程序存储器418。处理器414可以通信地耦合到第一收发器416和第一存储器418。第一主机402通过存储器410和分布式账本412连接到第二主机404。
图中示出了用于数据网络中的第一主机402,包括保存加密数据的存储器410。所述存储器410可由主机402和一个或多个其它主机访问,第一主机402包括程序存储器418和用于执行在程序存储器418中找到的程序的处理器414,所述程序存储器包括计算机程序产品。
第一主机402的处理器414用于以数据块的形式提供数据,以存储在存储器410中。在一种实现方式中,处理器414用于执行存储在程序存储器418中的指令。在一个示例中,处理器414可以是通用处理器。处理器414的其它示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,CISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、精简指令集(reducedinstruction set,RISC)处理器,超长指令字(very long instruction word,VLIW)处理器、中央处理单元(central processing unit,CPU)、状态机、数据处理单元和其它处理器或控制电路。此外,处理器414可以是指一个或多个单独的处理器、处理设备、作为机器一部分的处理单元,例如,第一主机402。
第一收发器416包括合适的逻辑、电路和接口,它们可以用于与存储器410和分布式账本412等一个或多个外部设备通信。第一收发器416的示例可以包括但不限于天线、远程信息处理单元、射频(radio frequency,RF)收发器、一个或多个放大器、一个或多个振荡器、数字信号处理器,编码译码器(CODEC)芯片组和/或用户识别模块(subscriberidentity module,SIM)卡。
程序存储器418是指第一主机402的主存储系统。程序存储器418包括合适的逻辑、电路和接口,它们可以用于存储可由处理器414执行的指令。程序存储器418的实现示例可以包括但不限于电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、硬盘驱动器(Hard Disk Drive,HDD)、闪存、固态硬盘(Solid-State Drive,SSD)和/或CPU缓存。程序存储器418可以存储操作系统和/或其它程序产品(包括一个或多个操作算法)以操作第一主机402。
一方面,在操作中,第一主机402的处理器414希望将新数据块存储在存储器410中。处理器414用于获取所述新数据块的第一哈希值,并进一步确定是否在账本412中找到所述第一哈希值。如果在账本412中未找到所述第一哈希值,则处理器414用于:创建确认数据集,其中,所述确认数据集构成第一主机402拥有数据的所有权的证据;使用块唯一加密密钥对所述新数据块进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在存储器410中;将第一所有权记录存储在账本412中。如果在账本412中找到所述第一哈希值,则第一主机402用于:从所述账本中获取关于第二主机404的账本信息,其中,第二主机404已经将与所述新数据块相同的前一块存储在存储器410中;在账本412中输入对所述前一块的密钥的密钥请求;从账本412接收第二主机404存储的密钥传输记录;向账本412发送第一主机402已经获得所述数据块的所有权的新所有权记录。
根据一个实施例,所述密钥请求包括所述未加密的第一哈希值和与关于请求方主机(即第一主机402)的数据一起使用第二主机404的公钥进行加密的所述确认数据集。根据使用第二主机404的公钥进行加密的所述确认数据集,第一主机402检查第二主机404发送的所述确认数据集与第一主机402计算到的确认数据集相同。
根据一个实施例,所述密钥传输记录还包括数据的哈希值和第一主机402的标识。换句话说,所述密钥传输记录包括所述前一块的哈希值和访问所述前一块的第一主机402的标识。所述第一主机的标识能够将所述前一块的所有权分配给第一主机402。所述数据的哈希值存储在账本412中,以保存第二主机404与第一块共享所述前一块的请求密钥的记录。
根据一个实施例,第一所有权记录和新所有权记录还包括使用第一主机402的公钥进行加密的私钥。所述私钥使用所述公钥进行加密,以防止所述私钥被任何未经授权的用户访问,并进一步防止访问与第一主机402的所述新数据块关联的所述确认数据集。
根据一个实施例,第二主机404计算到的所述确认数据集存储账本412中、通过第二主机404的私钥进行加密。所述确认数据集使得第二主机404能够防止任何未经授权的用户访问存储在所述账本中的所述前一块。创建所述确认数据集以使得第二主机404拥有添加到所述账本中的所述前一块的所有权。
根据一个实施例,所述确认数据集包括第二哈希值。所述第二哈希值通过应用散列算法创建。在一个示例中,与所述第一哈希值相比,所述第二哈希值不可供所述网络中的所有主机访问。所述第二哈希值为所述新数据块提供了增强的安全性。
现在参考图4C,示出了本发明一个实施例提供的第二主机的各种示例性组件的框图。图4C结合图4A和图4B进行描述。参考图4C,示出了第二主机404。第二主机404包括处理器420、第二收发器422和程序存储器424。处理器420可以通信地耦合到第二收发器422和程序存储器424。第二主机404通过存储器410和分布式账本412连接到第一主机402。
图中示出了用于数据网络中的第二主机404,包括保存加密数据的存储器。所述存储器410可由所述主机和一个或多个其它主机访问,所述主机包括程序存储器424和用于执行在程序存储器424中找到的程序的处理器420,程序存储器424包括计算机程序产品。
第二主机404的处理器420用于执行存储在第二主机404的程序存储器424中的指令。第二主机404的处理器420的示例与第一主机402(图4B)的处理器414的相似。类似地,第二收发器422和程序存储器424的实现示例分别与图4B的第一收发器416和程序存储器418的相似。
一方面,在操作中,根据第一主机402希望存储的新数据块,第二主机404的处理器420用于从账本412接收第一主机402存储在账本412中的对前一块的密钥的密钥请求。所述第二处理器还用于评估证据。此外,如果发现所述新块和所述前一块相同,则第二主机404从账本412向第一主机402提供密钥传输记录。
根据一个实施例,所述密钥请求包括第一主机402根据所述新数据块计算到的第一哈希值和第二哈希值,所述第一哈希值是未加密的,所述第二哈希值使用第二主机404的公钥进行加密。所述第一哈希值和所述第二哈希值能够提供所述新数据块与所述前一数据块相同的证据。
根据一个实施例,所述评估所述证据的步骤包括将所述第二哈希值与所述第二主机404计算到的第二哈希值进行比较,如果所述两个第二哈希值相同,则确定所述新块和所述前一块相同。所述新数据块的由第一主机402计算到的所述第二哈希值与所述前一块的由第二主机404计算到的所述第二哈希值进行比较。
根据一个实施例,所述密钥传输记录指示所述数据的哈希值、第一主机402的标识和使用第一主机402的公钥进行加密的所述数据的密钥,以将所述前一块的所有权交给第一主机402。换句话说,所述密钥传输记录包括所述前一数据块的哈希值、访问所述前一块的第一主机402的标识值和对所述前一块进行加密使用的所述密钥。
根据一个实施例,第二主机404计算到的所述第二哈希值存储在账本412中、通过第二主机404的私钥进行加密。所述第二哈希值使得第二主机404能够防止对存储在账本412中的所述前一块进行任何未经授权的访问。
现在参考图5A,示出了本发明一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。参考图5A,示出了用于防止在云存储器中重复加密数据的方法中的示例性消息500A。示例性消息500A包括所有权记录502。
所有权记录502包括第一主机504的标识、未加密的第一哈希值506、使用只有第一主机知道的密钥进行加密的确认数据集508和使用只有第一主机知道的密钥进行加密的数据块510(即数据的新数据块)的加密密钥。所有权记录502也可以称为数据所有权消息。
图5B为本发明另一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。参考图5B,示出了用于防止在云存储器中重复加密数据的方法中的示例性消息500B。示例性消息500B包括密钥请求512。
密钥请求512包括第二主机514的标识、未加密的第一哈希值506和使用第二主机的公钥进行加密的确认数据集516。密钥请求512也可以称为请求数据密钥消息。
图5C为本发明又一个实施例提供的用于防止在云存储器中重复加密数据的方法中的示例性消息的图示。参考图5C,示出了用于防止在云存储器中重复加密数据的方法中的示例性消息500C。示例性消息500C包括密钥传输记录518。
密钥传输记录518包括第一主机504的标识、第二主机514的标识、未加密的第一哈希值506和使用第一主机的公钥进行加密的数据的密钥520。密钥传输记录518也可以称为传输数据密钥消息。
根据一个实施例,示例性消息502、512和518仅仅是举例,可以使用使得第二主机能够证明新数据块已经存在于存储器中的任何协议。
在不脱离所附权利要求书所定义的本发明范围的情况下,可以对上文描述的本发明实施例进行修改。诸如“包括(including/comprising)”、“结合”、“具有”、“是”之类的用于描述和要求本发明的表达旨在以非排他性的方式解释,即允许未明确描述的各项、组件或元素也存在。对单数的引用也应解释为与复数有关。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何描述为“示例性的”实施例并不一定解释为优先于或优越于其它实施例和/或并不排除结合其它实施例的特征。本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本发明的某些特征还可以通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本发明的各种特征也可以单独地或通过任何合适的组合或作为本发明的任何其它描述的实施例提供。
Claims (21)
1.一种防止在存储器(410)中重复加密数据的方法(100),其特征在于,所述存储器(410)设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器(410)中;
所述存储器(410)包括一个或多个加密数据块,所述网络还包括分布式账本(412),所述分布式账本(412)可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的第一哈希值;
所述方法包括所述两个或两个以上主机中的第一主机(402)在希望将新数据块存储在所述存储器(410)中时执行的以下步骤:
获取所述新数据块的第一哈希值;
确定是否在所述账本中找到所述第一哈希值;
如果在所述账本中未找到所述第一哈希值,则
创建确认数据集,其中,所述确认数据集构成所述第一主机(402)拥有所述数据的所有权的证据;
使用块唯一加密密钥对所述新数据块进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在所述存储器(410)中;
将第一所有权记录存储在所述账本中,其中,所述第一所有权记录包括所述第一主机(402)的标识、所述未加密的第一哈希值和使用只有所述第一主机(402)知道的密钥进行加密的所述确认数据集;
如果在所述账本中找到所述第一哈希值,则
从所述账本中获取关于第二主机(404)的信息,其中,所述第二主机(404)已经将与所述新数据块相同的前一块存储在所述存储器(410)中;
在所述账本中输入对所述前一块的密钥的密钥请求,其中,所述密钥请求包括使用所述第二主机(404)的公钥进行加密的所述确认数据集;
从所述账本接收所述第二主机(404)存储的密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机(402)的公钥进行加密的所述数据的密钥;
向所述账本发送所述第一主机(402)已经获得所述数据块的所有权的新所有权记录。
2.根据权利要求1所述的方法(100),其特征在于,所述密钥请求包括所述未加密的第一哈希值和与关于请求方主机的数据一起使用所述第二主机(404)的公钥进行加密的所述确认数据集。
3.根据上述权利要求中任一项所述的方法(100),其特征在于,所述密钥传输记录还包括所述数据的哈希值和所述第一主机(402)的标识。
4.根据上述权利要求中任一项所述的方法(100),其特征在于,所述第一所有权记录和所述新所有权记录还包括使用所述第一主机(402)的公钥进行加密的私钥。
5.根据上述权利要求中任一项所述的方法(100),其特征在于,所述第二主机(404)计算到的所述确认数据集存储在所述账本(412)中并使用所述第二主机(404)的私钥进行加密。
6.根据上述权利要求中任一项所述的方法(100),其特征在于,所述确认数据集包括第二哈希值。
7.一种防止在存储器(410)中重复数据的方法(200),其特征在于,所述存储器(410)设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器(410)中;
所述存储器(410)包括一个或多个加密数据块,所述网络还包括分布式账本(412),所述分布式账本(412)可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希;
所述方法包括所述两个或两个以上主机中的第二主机(404)在第一主机(402)希望将新数据块存储在所述存储器(410)中时执行的以下步骤,其中,所述新数据块与所述第二主机(404)存储在所述存储器(410)中的前一数据块相同:
从所述账本接收所述第一主机(402)存储在所述账本中的对所述前一块的密钥的密钥请求,其中,所述密钥请求包括所述新数据块与所述前一数据块相同的证据;
评估所述证据;
如果发现所述新块和所述前一块相同,则从所述账本向所述第一主机(402)提供密钥传输记录,其中,所述密钥传输记录包括使用所述第一主机(402)的公钥进行加密的所述数据的密钥。
8.根据权利要求7所述的方法(200),其特征在于,所述密钥请求包括所述第一主机根据所述新数据块计算到的第一哈希值和第二哈希值,所述第一哈希值是未加密的,所述第二哈希值使用所述第二主机(404)的公钥进行加密。
9.根据权利要求7或8所述的方法(200),其特征在于,所述评估所述证据的步骤包括:将所述第二哈希值与所述第二主机(404)计算到的第二哈希值进行比较;如果所述两个第二哈希值相同,则确定所述新块和所述前一块相同。
10.根据权利要求7至9中任一项所述的方法(200),其特征在于,所述密钥传输记录指示所述数据的哈希值、所述第一主机(402)的标识和使用所述第一主机(402)的公钥进行加密的所述数据的密钥。
11.根据权利要求7至10中任一项所述的方法(200),其特征在于,所述第二主机(404)计算到的所述第二哈希值存储在所述账本(412)中并使用所述第二主机(404)的私钥进行加密。
12.一种防止在存储器(410)中重复加密数据的方法(300),其特征在于,所述存储器(410)设置在网络中,两个或两个以上主机可以将所述网络中的数据存储在所述存储器(410)中;
所述存储器(410)包括一个或多个加密数据块,所述网络还包括分布式账本(412),所述分布式账本(412)可由所述两个或两个以上主机中的每个主机访问并为所述一个或多个加密数据块中的每个加密数据块保存标识所述数据块的哈希值;
当所述两个或两个以上主机中的第一主机(402)试图将新数据块存储在所述存储器(410)中时,所述方法包括以下步骤:
通过将为所述新数据块计算到的哈希值与在所述账本(412)中找到的至少一个哈希值进行比较,确定所述新数据块是否与已经存储在所述存储器(410)中的一个块相同;
如果找到相同哈希值,则标识存储所述相同哈希值及其标识的数据块的第二主机(404),
所述第二主机(404)提供密钥,以使所述第一主机(402)访问计算到所述相同哈希值的已存储块;
如果未找到相同哈希值,则使所述第一主机(402)将所述加密后的新数据块存储在所述存储器(410)中,并将为所述新数据块计算到的所述哈希值存储在所述账本(412)中。
13.根据上述权利要求中任一项所述的方法(300),其特征在于,所述方法(300)包括以下步骤:通过将数据集划分为两个或两个以上相同大小或可变大小的块,获得所述新数据块。
14.根据上述权利要求中任一项所述的方法(300),其特征在于,所述账本(412)是一个区块链。
15.根据权利要求14所述的方法(300),其特征在于,所述区块链是一个超级账本。
16.一种包括计算机可读代码集合的计算机程序产品,其特征在于,当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合会使得所述主机执行根据权利要求1至6中任一项所述的方法,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。
17.一种包括计算机可读代码集合的计算机程序产品,其特征在于,当运行在计算机网络中的主机的处理器中时,所述计算机可读代码集合会使得所述主机执行根据权利要求7至11中任一项所述的方法,其中,所述计算机网络包括保存加密数据的存储器,所述存储器可由所述主机和一个或多个其它主机访问。
18.根据权利要求16或17所述的计算机程序产品,其特征在于,所述计算机程序产品包括非瞬时性存储模块,其上具有所述计算机可读代码集合。
19.一种用于数据网络中的第一主机(402),其特征在于,所述数据网络包括保存加密数据的存储器,所述存储器(410)可由所述主机和一个或多个其它主机访问,所述第一主机包括程序存储器(418)和用于执行在所述程序存储器(418)中找到的程序的处理器(414),所述程序存储器(418)包括根据权利要求16所述的计算机程序产品。
20.一种用于数据网络中的第二主机(404),其特征在于,所述数据网络包括保存加密数据的存储器,所述存储器(410)可由所述主机和一个或多个其它主机访问,所述主机包括程序存储器(424)和用于执行在所述程序存储器(424)中找到的程序的处理器(420),所述程序存储器(414)包括根据权利要求17所述的计算机程序产品。
21.一种计算机系统(400),其特征在于,所述计算机系统(400)包括保存加密数据的存储器(410)和至少第一和第二主机,所述存储器可由所述第一主机(402)和所述第二主机(404)访问,所述第一主机(402)是根据权利要求20所述的第一主机(402),所述第二主机(404)是根据权利要求20所述的第二主机(404)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2020/073295 WO2022037778A1 (en) | 2020-08-20 | 2020-08-20 | Methods and system of preventing duplication of encrypted data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114402325A true CN114402325A (zh) | 2022-04-26 |
Family
ID=72193435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080047647.3A Pending CN114402325A (zh) | 2020-08-20 | 2020-08-20 | 防止加密数据重复的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230259280A1 (zh) |
EP (1) | EP4193289A1 (zh) |
CN (1) | CN114402325A (zh) |
WO (1) | WO2022037778A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116849B2 (en) * | 2013-03-13 | 2015-08-25 | Intel Corporation | Community-based de-duplication for encrypted data |
CN107113164B (zh) * | 2014-12-18 | 2021-07-06 | 诺基亚技术有限公司 | 加密数据的重复删除的方法、装置和计算机可读介质 |
-
2020
- 2020-08-20 CN CN202080047647.3A patent/CN114402325A/zh active Pending
- 2020-08-20 EP EP20760801.9A patent/EP4193289A1/en active Pending
- 2020-08-20 WO PCT/EP2020/073295 patent/WO2022037778A1/en unknown
-
2023
- 2023-02-17 US US18/171,203 patent/US20230259280A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4193289A1 (en) | 2023-06-14 |
US20230259280A1 (en) | 2023-08-17 |
WO2022037778A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402571B2 (en) | Community-based de-duplication for encrypted data | |
US9256499B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
US9122882B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
CN113498589B (zh) | 托管机密管理传输系统和方法 | |
CN104836862B (zh) | 一种智能终端数据存储方法 | |
US9064133B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
KR101285281B1 (ko) | 자가조직 저장매체의 보안 시스템 및 그 방법 | |
EP3777022A1 (en) | Distributed access control | |
US11295028B2 (en) | Multi-key encrypted data deduplication | |
Periasamy et al. | Efficient hash function–based duplication detection algorithm for data Deduplication deduction and reduction | |
US9054864B2 (en) | Method and apparatus of securely processing data for file backup, de-duplication, and restoration | |
Krishnasamy et al. | An efficient data flow material model based cloud authentication data security and reduce a cloud storage cost using Index-level Boundary Pattern Convergent Encryption algorithm | |
Wang et al. | Enabling Secure Data sharing with data deduplication and sensitive information hiding in cloud-assisted Electronic Medical Systems | |
JP2023551124A (ja) | 自己監査ブロックチェーン | |
CN109284622B (zh) | 联系人信息处理方法、装置及存储介质 | |
CN114402325A (zh) | 防止加密数据重复的方法和系统 | |
Tian et al. | Sed‐Dedup: An efficient secure deduplication system with data modifications | |
CN116192395A (zh) | 用于分散式数据存储的可信系统 | |
Ruba et al. | An improved blockchain-based secure data deduplication using attribute-based role key generation with efficient cryptographic methods | |
US20230344640A1 (en) | Methods and system of preventing duplication of encrypted data | |
AU2021105507A4 (en) | Platform independent backup and restore for mobile devices using blockchain technology | |
WO2022073584A1 (en) | Method and computer system for pricing data storage | |
Sri et al. | A Framework for Uncertain Cloud Data Security and Recovery Based on Hybrid Multi-User Medical Decision Learning Patterns | |
Khakre et al. | A BIG DATA AND IT’S SECURITY CHALLENGE IN DIGITAL MEDIA | |
CN116743488A (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 |