IP Library Granted Patent US 11,296,873
Granted Patent B2
US 11,296,873 · App. 16/620,474 · Granted Apr 5, 2022

Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network

Inventors: Giuseppe Destefanis (London, GB); Simone Madeo (London, GB); Patrick Motylinski (London, GB); Stephane Vincent (Luxembourg, LU)
Assignee: nChain Licensing AG
H04L9/0861H04L9/0637H04L9/0643H04L9/0825H04L2209/38H04L2209/56
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 11,296,873
App. No.
16/620,474
Granted
Apr 5, 2022
Kind
B2
Abstract

Methods and devices for two nodes to authenticate each other as credentialed by a group of autonomous specialized nodes, without involving the group or involving a centralized certificate manager or authenticator. The method may involve a first node and a second node using bilinear pairing operations involving their respective identifiers and secret points to derive the same session key. Provided the secret points and identifiers were obtained from the group using the group private key, the bilinear pairing operation leads to generation of the same session key at each of the two nodes, thereby authenticating their respective credentials and enabling trusted communications between the two nodes.

Claims (45)

1. A computer-implemented method for a first node to establish a trusted communication with a second node, the second node having a second node identifier and a second secret point, the second secret point being a group private key times a map-to-point hash of the second node identifier, the group private key being associated with a group of nodes configured to grant credentials, the method comprising:

obtaining a first secret point from the group of nodes by at least obtaining, from each of a plurality of nodes in the group of nodes, respective portions of the first secret point and combining the respective portions to form the first secret point without reconstructing the group private key, wherein the first secret point is the group private key times a map-to-point hash of a first node identifier;

sending the first node identifier to the second node;

receiving the second node identifier;

generating a first session key using a bilinear pairing operation with a map-to-point hash of the second node identifier and with the first secret point; and

confirming that the first session key matches a second session key generated by the second node using the bilinear pairing operation with the second secret point and with a map-to-point hash of the first node identifier.

2. The method claimed in claim 1 , wherein the bilinear pairing operation to generate first session key comprises one of the expressions:

K A =e ( H 1 ( id B ), s A ), or

K A =e ( s B ,H 1 ( id A )),

and wherein the bilinear pairing operation to generate the second session key comprises the other of the expressions, and in which e( ) is the bilinear pairing operation, H 1 ( ) is the map-to-point hash, id A and id B are each one of the first node identifier and the second node identifier, and s A and s B are each one of the first secret point and the second secret point.

3. The method claimed in claim 1 , wherein confirming comprises sending a challenge from the first node to the second node encrypted with the first session key, receiving a response to the challenge, and, based on the response, determining that the second node validly decrypted the challenge using the second session key.

4. The method claimed in claim 1 , wherein sending further includes sending a first nonce, and wherein receiving further includes receiving a second nonce and a calculated C 0 value, wherein the calculated C 0 value comprises a hash of a concatenation of the second session key, the first nonce, and the second nonce.

5. The method claimed in claim 4 , wherein the concatenation further includes the first node identifier and the second node identifier.

6. The method claimed in claim 4 , wherein generating includes generating a calculated C 1 value that comprises the hash of a concatenation of the first session key, the first nonce, and the second nonce, and wherein confirming comprises confirming that the calculated C 0 value matches the calculated C 1 value.

7. The method claimed in claim 1 , wherein the second secret point is the group private key times the map-to-point hash of the second node identifier.

8. The method claimed in claim 1 , wherein the first secret point and the second secret point are each provided by the group of nodes to the first node and second node, respectively, using secret sharing.

9. A first node comprising:

a processor;

memory;

a network interface; and

a blockchain application containing processor-executable instructions to establish a trusted communication with a second node, the second node having a second node identifier and a second secret point, the second secret point being a group private key times a map-to-point hash of the second node identifier, the group private key being associated with a group of nodes configured to grant credentials, wherein, when executed, the processor-executable instructions cause the first node to:

obtain a first secret point from the group of nodes by at least obtaining, from each of a plurality of nodes in the group of nodes, respective portions of the first secret point and combining the respective portions to form the first secret point without reconstructing the group private key, wherein the first secret point is the group private key times a map-to-point hash of a first node identifier;

send the first node identifier to the second node;

receive the second node identifier;

generate a first session key using a bilinear pairing operation with a map-to-point hash of the second node identifier and with the first secret point; and

confirm that the first session key matches a second session key generated by the second node using the bilinear pairing operation with the second secret point and with a map-to-point hash of the first node identifier.

10. The first node claimed in claim 9 , wherein the bilinear pairing operation to generate first session key comprises one of the expressions:

K A =e ( H 1 ( id B ), s A ), or

K A =e ( s B ,H 1 ( id A )),

and wherein the bilinear pairing operation to generate the second session key comprises the other of the expressions, and in which e( ) is the bilinear pairing operation, H 1 ( ) is the map-to-point hash, id A and id B are each one of the first node identifier and the second node identifier, and s A and s B are each one of the first secret point and the second secret point.

11. The first node claimed in claim 9 , wherein the processor-executable instructions, when executed, cause the first node to confirm by sending a challenge from the first node to the second node encrypted with the first session key, receiving a response to the challenge, and, based on the response, determining that the second node validly decrypted the challenge using the second session key.

12. The first node claimed in claim 9 , wherein the processor-executable instructions, when executed, cause the first node to send by further sending a first nonce, and to receive by further receiving a second nonce and a calculated C 0 value, wherein the C 0 value comprises a hash of a concatenation of the second session key, the first nonce, and the second nonce.

13. The first node claimed in claim 12 , wherein the concatenation further includes the first node identifier and the second node identifier.

14. The first node claimed in claim 12 , wherein the processor-executable instructions, when executed, cause the first node to generate by generating a calculated C 1 value that comprises the hash of a concatenation of the first session key, the first nonce, and the second nonce, and to confirm by confirming that the calculated C 0 value matches the calculated C 1 value.

15. The first node claimed in claim 9 , wherein the second secret point is the group private key times the map-to-point hash of the second node identifier.

16. The first node claimed in claim 9 , wherein the first secret point and the second secret point are each provided by the group of nodes to the first node and second node, respectively, using secret sharing.

17. A non-transitory processor-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to:

obtain a first secret point from the group of nodes by at least obtaining, from each of a plurality of nodes in the group of nodes, respective portions of the first secret point and combining the respective portions to form the first secret point without reconstructing the group private key, wherein the first secret point is the group private key times a map-to-point hash of a first node identifier;

send the first node identifier to the second node;

receive the second node identifier;

generate a first session key using a bilinear pairing operation with a map-to-point hash of the second node identifier and with the first secret point; and

confirm that the first session key matches a second session key generated by the second node using the bilinear pairing operation with the second secret point and with a map-to-point hash of the first node identifier.

18. The non-transitory processor-readable medium of claim 17 , wherein the processor-executable instructions, when executed, cause the first node to confirm by sending a challenge from the first node to the second node encrypted with the first session key, receiving a response to the challenge, and, based on the response, determining that the second node validly decrypted the challenge using the second session key.

19. The non-transitory processor-readable medium of claim 17 , wherein the processor-executable instructions, when executed, cause the first node to send by further sending a first nonce, and to receive by further receiving a second nonce and a calculated C 0 value, wherein the C 0 value comprises a hash of a concatenation of the second session key, the first nonce, and the second nonce.

20. The non-transitory processor-readable medium of claim 17 , wherein the second secret point is the group private key times the map-to-point hash of the second node identifier.

Assignments (3)
CHANGE OF NAME Recorded Nov 4, 2021
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 058716/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2020
From: MOTYLINSKI, PATRICK; VINCENT, STEPHANE; DESTEFANIS, GIUSEPPE; MADEO, SIMONE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051789/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2020
From: MOTYLINSKI, PATRICK; VINCENT, STEPHANE; DESTEFANIS, GIUSEPPE; MADEO, SIMONE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051789/0854 →
Priority Claims (2)
GB 1709096 · Jun 7, 2017 · national
GB 1709097 · Jun 7, 2017 · national
Continuity (1)
Related Publication 20200186336A1 · Jun 11, 2020
Cited By (2)
US 12,192,345 US 12,200,117