IP Library › Granted Patent US 10,785,033
Granted Patent B2
US 10,785,033 · App. 15/756,599 · Granted Sep 22, 2020

Method for storing an object on a plurality of storage nodes

Inventor: Ghassan Karame (Heidelberg, DE)
Assignee: NEC CORPORATION
H04L9/3236G06F21/6245G06Q20/02G06Q20/065G06Q20/382H04L9/088H04L9/0825H04L9/3271H04L63/0428H04L63/12G06F21/602H04L9/0637
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,785,033
App. No.
15/756,599
Granted
Sep 22, 2020
Kind
B2
Abstract

A method for storing an object on storage nodes includes encrypting an object to be stored with a key. One or more hash values are computed for the object. The encrypted object is stored on the storage nodes. Storage location data is provided for the stored object. A transaction is computed for a blockchain, wherein information is encoded in the transaction, the encoded information representing the storage location data, the computed o hash values and key data. The transaction is stored in the blockchain provided by one or more blockchain nodes hosting the blockchain. A number of confirmations is provided for the transaction. The number of confirmations is compared with a predefined threshold confirmation number, wherein the predefined threshold confirmation number is computed such that with a pregiven certainty the encoded information in the transaction stored in the blockchain cannot be modified.

Claims (54)

1. A method for storing an object on, and retrieving the object from, a plurality of storage nodes, the method being performed in a memory available to one or more computing entities, the method comprising:

a) encrypting an object to be stored with a key,

b) computing one or more hash values for the object to be stored,

c) storing the encrypted object on the plurality of storage nodes,

d) providing storage location data for the stored object,

e) computing a transaction for a blockchain, wherein information is encoded in the transaction, the encoded information representing the storage location data, the computed one or more hash values and key data,

f) storing the transaction in the blockchain provided by one or more blockchain nodes hosting the blockchain,

g) providing a number of confirmations for the transaction stored in the blockchain by the blockchain nodes, and

h) comparing the number of confirmations with a predefined threshold confirmation number, wherein the predefined threshold confirmation number is computed such that with a pregiven certainty the encoded information in the transaction stored in the blockchain cannot be modified;

wherein the method further comprises:

A) searching for all transactions issued by a user in the blockchain,

B) parsing found transactions to obtain the encoded information for the object,

C) decrypting the key data of the obtained encoded information,

D) computing a decryption key based on the decrypted key generation data,

E) retrieving the object from a storage node, and

F) comparing a hash value of the retrieved object with the hash value computed during storage of the object and, based on matching, determining that the stored object has not been altered.

2. The method according to claim 1 , further comprising decrypting the retrieved object using the computed decryption key based on determining, in step F), that the stored object has not been altered.

3. The method according to claim 1 , wherein the storage node in step E) is selected randomly.

4. A system for storing an object, the system comprising:

a plurality of storage nodes configured to store the object and to provide storage location data for the stored object,

one or more blockchain nodes configured to:

host a blockchain for a transaction,

store the transaction in the blockchain, provided by the one or more blockchain nodes hosting the blockchain, and

provide a number of confirmations for the transaction by the blockchain, and

one or more user clients connected to the storage nodes and said the one or more blockchain nodes, each of the clients being configured to:

encrypt an object to be stored with a key,

compute one or more hash values for the object to be stored,

initiate storing the encrypted object on a plurality of the storage nodes,

compute a transaction for a blockchain, wherein information is encoded in the transaction, the encoded information representing storage location data, the computed one or more hash values and key data, wherein the key data includes at least one of: (i) a copy of the key and (ii) a copy of a master secret from which the key was derived,

initiate storing the transaction in a blockchain provided by one or more blockchain nodes hosting the blockchain, and

compare a received number of confirmations with a predefined threshold confirmation number, wherein the predefined threshold confirmation wherein the predefined threshold confirmation number is computed such, that with a pregiven certainty the encoded information in the transaction and stored in the blockchain cannot be modified;

wherein at least one of the user clients is configured to:

search for transactions issued by a user in the blockchain,

parse found transactions to obtain the encoded information for the object,

decrypt the key data of the obtained encoded information,

compute a decryption key based on the decrypted key generation data,

retrieve the object from a storage node, and

compare a hash value of the retrieved object with the hash value computed during storage of the object and, based on matching, determining that the stored object has not been altered.

5. A non-transitory computer readable medium storing a program for causing the one or more computing entities to perform a method for storing an object on, and retrieving the object from, a plurality of storage nodes, the method being performed in a memory available to one or more computing entities, the method comprising:

a) encrypting an object to be stored with a key,

b) computing one or more hash values for the object to be stored,

c) storing the encrypted object on the plurality of storage nodes,

d) providing storage location data for the stored object,

e) computing a transaction for a blockchain, wherein information is encoded in the transaction, the encoded information representing the storage location data, the computed one or more hash values and key data,

f) storing the transaction in the blockchain provided by one or more blockchain nodes hosting the blockchain,

g) providing a number of confirmations for the transaction stored in the blockchain by the blockchain nodes, and

h) comparing the number of confirmations with a predefined threshold confirmation number, wherein the predefined threshold confirmation number is computed such that with a pregiven certainty the encoded information in the transaction stored in the blockchain cannot be modified;

wherein the method further comprises:

A) searching for all transactions issued by a user in the blockchain,

B) parsing found transactions to obtain the encoded information for the object,

C) decrypting the key data of the obtained encoded information,

D) computing a decryption key based on the decrypted key generation data,

E) retrieving the object from a storage node, and

F) comparing a hash value of the retrieved object with the hash value computed during storage of the object and, based on matching, determining that the stored object has not been altered.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2020
From: NEC LABORATORIES EUROPE GMBH
To: NEC CORPORATION
Reel/Frame 053532/0117 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2018
From: KARAME, GHASSAN
To: NEC LABORATORIES EUROPE GMBH
Reel/Frame 045102/0366 →
Continuity (1)
Related Publication 20180191502A1 · Jul 5, 2018
Cited By (1)
US 12,380,452