# US 11,113,410 B2 · User controlled, decentralized, distributed, and secure content distribution

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,113,410 B2
- Document ID: US11113410B2
- Status: Granted
- Kind: B2
- Application number: 16/475,438
- Filed: 2018-01-03
- Published: 2019-11-14
- Granted: 2021-09-07
- Earliest claimed: 2017-01-03
- Assignees: The University of Stavanger
- Applicants: University of Stavanger
- Inventors: Antorweep Chakravorty; Chunming Rong
- Web page: https://patentgrep.com/patent/US11113410B2

## CPC

- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A technology is presented for controlling the distribution of a data item. A data set is stored at a data storage (16) and comprises a first file identifier and a first encrypted data item generated by an encryption using a first public key. A blockchain comprises the first file identifier paired with a first recipient identifier identifying one or more allowed first recipients, each having the first recipient identifier and a first private key matching the first public key. The method is performed by a second terminal (12) being an allowed first recipient and the method comprises: identifying (102) the first file identifier in the blockchain using the first recipient identifier, sending (106) a request containing the first file identifier to the data storage (16) for downloading of the first encrypted data item, receiving (116) the first encrypted data item from the data storage (16), and decrypting (118) the first encrypted data item using the first private key.

## Claims

### Claim 1

A method for controlling the distribution of a data item using a data set and a blockchain,
wherein the data set is stored at a data storage,
wherein the data set comprises a first encrypted data item and a first file identifier paired with the first encrypted data item, and the first encrypted data item has been generated by an encryption of the data item by a first user terminal using a first public key,
wherein the blockchain comprises the first file identifier and a first recipient identifier identifying one or more, or a plurality of, allowed first recipients with access to the data storage and the blockchain, and each allowed first recipients has the first recipient identifier and a first private key matching the first public key, wherein the first file identifier is paired with the first recipient identifier in the blockchain
wherein the method is performed by a second user terminal being an allowed first recipient of the one or more, or the plurality of, allowed first recipients, and the second user terminal has a second public key, and the method comprises:
identifying the first file identifier in the blockchain using the first recipient identifier,
sending a request containing the first file identifier to the data storage for a downloading of the first encrypted data item,
receiving the first encrypted data item from the data storage,
decrypting the first encrypted data item using the first private key,
generating a second encrypted data item by an encryption of the decrypted first encrypted data item using the second public key,
generating a second file identifier,
sending the second encrypted data item and the second file identifier to the data storage for an updating of the data set with the second encrypted data item paired with the second file identifier, and
adding the second file identifier and a second recipient identifier to the blockchain, wherein the second recipient identifier identifies, or is associated with, one or more, or a plurality of, allowed second recipients with access to the data storage and the blockchain, and each allowed second recipient has the second recipient identifier and a second private key matching the second public key.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the first file identifier is or comprises a first hashtag, or first hash key, generated from the first encrypted data item.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the first recipient identifier is or comprises the first public key.

### Claim 4

A method for controlling the distribution of a data item using a data set and a blockchain,
wherein the data set is stored at a data storage,
wherein the data set comprises a first encrypted data item and a first file identifier paired with the first encrypted data item, and the first encrypted data item has been generated by an encryption of the data item by a first user terminal using a first public key,
wherein the blockchain comprises the first file identifier and a first recipient identifier identifying one or more, or a plurality of, allowed first recipients with access to the data storage and the blockchain, and each allowed first recipients has the first recipient identifier and a first private key matching the first public key, wherein the first file identifier is paired with the first recipient identifier in the blockchain
wherein the method is performed by a second user terminal being an allowed first recipient of the one or more, or the plurality of, allowed first recipients, and the method comprises:
identifying the first file identifier in the blockchain using the first recipient identifier,
sending a request containing the first file identifier to the data storage for a downloading of the first encrypted data item,
receiving the first encrypted data item from the data storage, and
decrypting the first encrypted data item using the first private key,
wherein identifying the first file identifier in the blockchain comprises:
validating the request to determine that the first encrypted data item can be downloaded by traversing the blockchain.

### Claim 5 (depends on 1)

The method according to claim 1, wherein sending the second encrypted data item and the second file identifier to the data storage further comprises:
sending the first file identifier to the data storage for an updating of the data set with the first file identifier paired with the second file identifier.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the second file identifier is or comprises a second hashtag, or second hash key, generated from the second encrypted data item.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the second recipient identifier is or comprises the second public key.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the first file identifier and the first recipient identifier in the blockchain corresponds to a first transaction, and the blockchain comprises a transaction indicator indicating the number of allowed further transactions, wherein the method further comprises:
updating the transaction indicator to indicate one less number of allowed further transactions.

### Claim 9 (depends on 8)

The method according to claim 8, wherein the transaction indicator is a token value and updating the transaction indication comprises:
reducing the token value by one.

### Claim 10

A method for controlling the distribution of a data item using a data set and a blockchain,
wherein the data set is stored at a data storage,
wherein the data set comprises a first encrypted data item and a first file identifier paired with the first encrypted data item, and the first encrypted data item has been generated by an encryption of the data item by a first user terminal using a first public key,
wherein the blockchain comprises the first file identifier and a first recipient identifier identifying one or more, or a plurality of, allowed first recipients with access to the data storage and the blockchain, and each allowed first recipients has the first recipient identifier and a first private key matching the first public key, wherein the first file identifier is paired with the first recipient identifier in the blockchain,
wherein the method is performed by the data storage and comprises:
receiving a request for a downloading of the first encrypted data item from a second user terminal being an allowed first recipient of the one or more, or the plurality of, allowed first recipients, wherein the request contains the first file identifier,
validating the request for the downloading of the first encrypted data item and/or for identifying the first file identifier by traversing the blockchain, and
sending the first encrypted data item to the second user terminal.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the first file identifier is or comprises a first hashtag, or first hash key, generated from the first encrypted data item.

### Claim 12 (depends on 10)

The method according to claim 10, wherein the first recipient identifier is or comprises the first public key.

### Claim 13 (depends on 10)

The method according to claim 10, wherein the second user terminal has a second public key, and the method further comprises:
receiving a second encrypted data item and a second file identifier from the second user terminal, wherein the second encrypted data item has been generated by a decryption of the first encrypted data item using the first private key and by a subsequent encryption of the decrypted first encrypted data item using the second public key, and
updating the data set with the second encrypted data item paired with the second file identifier.

### Claim 14 (depends on 13)

The method according to claim 13, wherein receiving a second encrypted data item and a second file identifier from the first user terminal comprises:
receiving the first file identifier from the second user terminal, and updating the data set further comprises:
identifying the data set using the first file identifier and/or updating the data set with the first file identifier paired with the second file identifier.

### Claim 15 (depends on 13)

The method according to claim 13, wherein the method further comprises:
traversing the blockchain for validating that the blockchain has been updated with the second file identifier and a second recipient identifier, wherein the second recipient identifier identifies or is associated with one or more, or a plurality of, allowed second recipients with access to the data storage and the blockchain, and each allowed second recipient has the second recipient identifier and a second private key matching the second public key.

### Claim 16 (depends on 13)

The method according to claim 13, wherein the first file identifier and the first recipient identifier in the blockchain corresponds to a first transaction, and the blockchain comprises a transaction indicator indicating the number of allowed further transactions, wherein the method further comprises:
validating the blockchain for determining the number of allowed further transactions.

### Claim 17 (depends on 16)

The method according to claim 16, wherein if it is determined that no further transactions are allowed, the method comprises:
preventing any further transactions involving an encrypted data item based on the data item.

### Claim 18 (depends on 17)

The method according to claim 17, wherein the transaction indicator is a token value and preventing any further transactions is performed if the token value is zero.
