IP Library Granted Patent US 10,372,918
Granted Patent B2
US 10,372,918 · App. 15/550,373 · Granted Aug 6, 2019

Method for storing a data file of a client on a storage entity

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,372,918
App. No.
15/550,373
Granted
Aug 6, 2019
Kind
B2
Abstract

A method for storing a data file of a client on a storage entity includes generating, by a proxy entity, a master encryption key; encrypting, by the client, the data file using the master encryption key to produce an encrypted file; computing a hash-tree for the encrypted file and using a top-hash of the hash-tree as a file identification (FID); and determining, by the proxy entity, whether the FID is already known to the storage entity. If the FID is not already known to the storage entity the method further includes computing, by the proxy entity, a top-hash of the encrypted file (PFID), and when the ownership of the data file has been proven, storing the FID being equal with the PFID at the client together with the hash value.

Claims (38)

1. A method for storing a data file of a client on a storage entity, the method comprising:

a) generating, by a proxy entity, a master encryption key, wherein the master encryption key is a deterministic function of the data file based on a hash value of a hash-function performed on the data file,

b) encrypting, by the client, the data file using the master encryption key to produce an encrypted file,

c) computing a hash-tree for the encrypted file and using a top-hash of the hash-tree as a file identification (FID) for the encrypted file,

d) determining, by the proxy entity, whether the FID is already known to the storage entity,

e) if the FID is not already known to the storage entity:

uploading, by the client, the encrypted file to the storage entity and to the proxy entity,

computing, by the proxy entity, a top-hash of the encrypted file (PFID),

performing a proof-of-ownership procedure for the encrypted data file to be stored by comparing the FID with the PFID, and

when the ownership of the data file has been proven, storing the FID being equal with the PFID at the client together with the hash value, and

f) if the FID is already known to the storage entity:

performing a proof-of-ownership-procedure for the encrypted data file to be stored by comparing the FID with a prior computed FID, and

when the ownership of the data file has been proven, storing the FID at the client together with the hash value.

2. The method according to claim 1 , wherein for performing step a) the client blinds the hash-value with an oblivious pseudo-random-function prior to transmitting the blinded hash value to the proxy entity.

3. The method according to claim 2 , wherein after receiving the blinded hash value, the proxy entity signs the blinded hash-value and returns it to the client, wherein the client then unblinds the signed value, performs the hash-function on the unblinded received value and uses the result as the master encryption key.

4. The method according to claim 1 , wherein the top-hash is computed for a Merkle hash tree or tiger hash tree.

5. The method according to claim 1 , wherein upon request of the client to the proxy entity to store the data file on the storage entity, the proxy entity provides upload information to the client, wherein the upload information is only temporarily valid.

6. The method according to claim 1 , wherein upon successful proof-of-ownership:

6a) if the FID is not known, the FID and meta-data associated with the encrypted file are stored by the proxy entity including client information and a size of the encrypted file,

6b) if the FID is known, client information is added to meta-data associated with the stored encrypted data file with corresponding FID.

7. The method according to claim 6 , wherein in case of 6b) the client deletes a local copy of the data file upon receiving information about successful proof-of-ownership.

8. The method according to claim 1 , wherein for downloading a data file from the storage entity, the client submits the FID to the proxy entity, and the proxy entity provides after successful check that the client information of the client matches to the meta-data associated the data file with the FID, server download information to the client, wherein the server download information is only temporary valid.

9. The method according to claim 8 , wherein for decrypting the downloaded data file with a decryption key the client either uses a corresponding cached decryption key associated with the FID or the client performs step a) to acquire the corresponding decryption key.

10. The method according to claim 1 , wherein if the PFID does not match the FID, the data file corresponding to the PFID is deleted from the storage entity.

11. The method according to claim 1 , wherein the directory operations on a file system of the client are performed locally on the client hidden from the proxy entity.

12. The method according to claim 1 , wherein a data file is stored on the storage entity under a random identifier mapped to the FID.

13. The method according to claim 12 , wherein when a data file is indicated by a client to be deleted, the proxy entity renames the data file to another random identifier and provides upon a request for access to the renamed data file by another client a corresponding new access information associated to the FID and the renamed data file.

14. A system for storing a data file of a client on a storage entity, the system comprising:

a proxy entity, wherein the proxy entity is adapted to generate a master encryption key, wherein the master encryption key is a deterministic function of the data file based on a hash value of a hash-function performed on the data file by the client,

wherein the client is adapted to encrypt the data file to be stored using the provided master encryption key, and to compute a hash-tree for the encrypted file, and

wherein the proxy entity is further adapted to receive a top-hash of the computed hash-tree as a file identification (FID) for the encrypted file, to check whether the FID is already known to the storage entity or not,

wherein if the FID is not known to the storage entity, the client is adapted to upload the encrypted file to the storage entity and to the proxy entity and the proxy entity is adapted to compute a top-hash of the encrypted file (PFID), to perform a proof-of-ownership-procedure for the encrypted data file to be stored by comparing the FID with the PFID, and when the ownership of the data file has been proven, the FID being equal with the PFID is stored on the client together with the hash value, and

wherein if the FID is known to the storage entity, the proxy entity is adapted to perform a proof-of-ownership procedure for the encrypted data file to be stored by comparing the FID with a prior computed FID, and when the ownership of the data file has been proven, the FID is stored on the client together with the hash value.

15. A proxy entity connectable to a storage entity and a client the proxy entity being adapted to:

generate a master encryption key, wherein the master encryption key is a deterministic function of a data file to be stored based on a hash value of a hash-function performed on the data file to be stored,

receive a top-hash of a computed hash-tree as a file identification (FID) for the encrypted file, to determine whether the FID is already known to the storage entity or not,

if the FID is not known, receive the encrypted file from the client, compute a top-hash of the encrypted file (PFID), perform a proof-of-ownership procedure for the data file to be stored by comparing the FID with the PFID, and when ownership of the data file has been proven to indicate to the client that the FID is equal with the PFID, and

in case the FID is known, perform a proof-of-ownership-procedure for the data file by comparing the FID with a prior computed FID.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2019
From: NEC LABORATORIES EUROPE GMBH
To: NEC CORPORATION
Reel/Frame 049480/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2017
From: NEC EUROPE LTD.
To: NEC LABORATORIES EUROPE GMBH
Reel/Frame 044979/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: BOHLI, JENS-MATTHIAS; KARAME, GHASSAN
To: NEC EUROPE LTD.
Reel/Frame 044443/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: ARMKNECHT, FREDERIK
To: UNIVERSITAET MANNHEIM
Reel/Frame 044443/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: UNIVERSITAET MANNHEIM
To: NEC EUROPE LTD.
Reel/Frame 044917/0380 →