IP Library › Granted Patent US 10,601,585
Granted Patent B1
US 10,601,585 · App. 15/381,832 · Granted Mar 24, 2020

Methods and apparatus for blockchain encryption

Inventors: Peter Robinson (Enoggera Reservoir, AU); Eric Young (Annerley, AU)
Assignee: EMC IP Holding Company LLC
H04L9/0637H04L9/0625H04L9/085H04L9/0869H04L9/14H04L9/3026H04L9/3247
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,601,585
App. No.
15/381,832
Granted
Mar 24, 2020
Kind
B1
Abstract

Blockchain encryption techniques are provided. An exemplary method includes sending a signed transaction with at least two users to a blockchain; obtaining, by a first user, a public key of a second user from the blockchain; generating, by the first user, a symmetric key by combining a private key of the first user and the public key of the second user; encrypting, by the first user, a data item using the symmetric key; and providing the encrypted data item to the blockchain. The second user obtains the encrypted data item and a public key of the first user from the blockchain, and decrypts the encrypted data item using the symmetric key generated, by the second user, by combining a private key of the second user and the public key of the first user.

Claims (37)

1. A method, comprising:

sending a signed transaction with at least two users to a blockchain;

obtaining, by a first user, a public key of a second user from said blockchain;

generating, by at least one processing device of said first user, responsive to the obtaining of the public key of said second user from said blockchain, a symmetric key by combining a private key of said first user and said obtained public key of said second user;

encrypting, by the at least one processing device of said first user, a data item using said symmetric key; and

providing, by the at least one processing device of said first user, said encrypted data item to said blockchain, wherein said second user obtains said encrypted data item and a public key of said first user from said blockchain, and wherein said second user decrypts said encrypted data item using said symmetric key generated, by said second user, responsive to the obtaining of the public key of said first user from said blockchain, by combining a private key of said second user and said obtained public key of said first user, wherein said blockchain comprises a contract for storing said transaction, said public key of one or more of said first and second user, and said encrypted data item.

2. The method of claim 1 , wherein said generating said symmetric key by said first user further combines a random number, and wherein said random number is appended to said encrypted data item in said blockchain.

3. The method of claim 1 , wherein said encrypted data item comprises at least one encrypted key share generated using a secret sharing scheme applied to a second symmetric key, and wherein a predefined number of decrypted versions of said at least one encrypted key share is needed to decrypt a second encrypted data item encrypted with said second symmetric key.

4. The method of claim 3 , wherein said secret sharing scheme comprises a hierarchical key splitting scheme that requires one or more predefined participants to provide a corresponding share.

5. The method of claim 3 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item, and wherein M−1 decrypted versions of said at least one encrypted key share are placed into said blockchain and any user holding a remaining (N−M+1) encrypted key share can decrypt said second encrypted data item.

6. The method of claim 3 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item, and wherein M decrypted versions of said at least one encrypted key share are placed into said blockchain to decrypt said second encrypted data item.

7. A computer program product, comprising a tangible machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

sending a signed transaction with at least two users to a blockchain;

obtaining, by a first user, a public key of a second user from said blockchain;

generating, by the at least one processing device of said first user, responsive to the obtaining of the public key of said second user from said blockchain, a symmetric key by combining a private key of said first user and said obtained public key of said second user;

encrypting, by the at least one processing device of said first user, a data item using said symmetric key; and

providing, by the at least one processing device of said first user, said encrypted data item to said blockchain, wherein said second user obtains said encrypted data item and a public key of said first user from said blockchain, and wherein said second user decrypts said encrypted data item using said symmetric key generated, by said second user, responsive to the obtaining of the public key of said first user from said blockchain, by combining a private key of said second user and said obtained public key of said first user, wherein said blockchain comprises a contract for storing said transaction, said public key of one or more of said first and second user, and said encrypted data item.

8. The computer program product of claim 7 , wherein said generating said symmetric key by said first user further combines a random number, and wherein said random number is appended to said encrypted data item in said blockchain.

9. The computer program product of claim 7 , wherein said encrypted data item comprises at least one encrypted key share generated using a secret sharing scheme applied to a second symmetric key, and wherein a predefined number of decrypted versions of said at least one encrypted key share is needed to decrypt a second encrypted data item encrypted with said second symmetric key.

10. The computer program product of claim 9 , wherein said secret sharing scheme comprises a hierarchical key splitting scheme that requires one or more predefined participants to provide a corresponding share.

11. The computer program product of claim 9 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item, and wherein M−1 decrypted versions of said at least one encrypted key share are placed into said blockchain and any user holding a remaining (N−M+1) encrypted key share can decrypt said second encrypted data item.

12. The computer program product of claim 9 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item, and wherein M decrypted versions of said at least one encrypted key share are placed into said blockchain to decrypt said second encrypted data item.

13. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

sending a signed transaction with at least two users to a blockchain;

obtaining, by a first user, a public key of a second user from said blockchain;

generating, by the at least one processing device of said first user, responsive to the obtaining of the public key of said second user from said blockchain, a symmetric key by combining a private key of said first user and said obtained public key of said second user;

encrypting, by the at least one processing device of said first user, a data item using said symmetric key; and

providing, by the at least one processing device of said first user, said encrypted data item to said blockchain, wherein said second user obtains said encrypted data item and a public key of said first user from said blockchain, and wherein said second user decrypts said encrypted data item using said symmetric key generated, by said second user, responsive to the obtaining of the public key of said first user from said blockchain, by combining a private key of said second user and said obtained public key of said first user, wherein said blockchain comprises a contract for storing said transaction, said public key of one or more of said first and second user, and said encrypted data item.

14. The system of claim 13 , wherein said generating said symmetric key by said first user further combines a random number, and wherein said random number is appended to said encrypted data item in said blockchain.

15. The system of claim 13 , wherein said encrypted data item comprises at least one encrypted key share generated using a secret sharing scheme applied to a second symmetric key, and wherein a predefined number of decrypted versions of said at least one encrypted key share is needed to decrypt a second encrypted data item encrypted with said second symmetric key.

16. The system of claim 15 , wherein said secret sharing scheme comprises a hierarchical key splitting scheme that requires one or more predefined participants to provide a corresponding share.

17. The system of claim 15 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item.

18. The system of claim 17 , wherein M−1 decrypted versions of said at least one encrypted key share are placed into said blockchain and any user holding a remaining (N−M+1) encrypted key share can decrypt said second encrypted data item.

19. The system of claim 15 , wherein N is a total number of decrypted versions of said at least one encrypted key share and M is a number of the N decrypted versions of said at least one encrypted key share that are needed to decrypt said second encrypted data item.

20. The system of claim 19 , wherein M decrypted versions of said at least one encrypted key share are placed into said blockchain to decrypt said second encrypted data item.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2017
From: ROBINSON, PETER; YOUNG, ERIC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041434/0306 →
Cited By (6)
US 12,192,352 US 12,335,260 US 12,341,899 US 12,363,112 US 12,375,484 US 12,530,679