IP Library Granted Patent US 10,659,233
Granted Patent B1
US 10,659,233 · App. 16/587,494 · Granted May 19, 2020

Authentication based on a recovered public key

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,659,233
App. No.
16/587,494
Granted
May 19, 2020
Kind
B1
Abstract

This specification relates to the field of computer technologies, and in particular, to a authentication method, and a corresponding apparatus and system. One of the methods includes receiving, by a first node, a signed message from a second node, wherein the signed message includes a digital signature generated by the second node; in response to receiving the signed message, recovering, by the first node, one or more public keys from the digital signature; in response to recovering the one or more public keys, determining, by the first node, that one of the one or more public keys matches a verified public key; and in response to determining that one of the one or more public keys matches the verified public key, determining that the signed message is authentic.

Claims (247)

1. A computer-implemented method for authentication, comprising:

receiving, by a first node, a signed message from a second node, wherein the signed message includes redundant information in a digital signature generated by the second node;

in response to receiving the signed message, recovering, by the first node using the redundant information, one or more public keys from the digital signature;

in response to recovering the one or more public keys, determining, by the first node, that one of the one or more public keys matches a verified public key; and

in response to determining that one of the one or more public keys matches the verified public key, determining that the signed message is authentic.

2. The computer-implemented method of claim 1 , wherein the verified public key is associated with a user that is associated with the second node.

3. The computer-implemented method of claim 1 , wherein the first node and the second node belong to a blockchain network, and wherein identity information associated with the second node is unknown to the first node.

4. The computer-implemented method of claim 1 , wherein the verified public key is associated with an authenticated node that is registered with a consortium blockchain network.

5. The computer-implemented method of claim 1 , wherein the digital signature is signed by using a private key associated with the second node based on a set of cryptographic algorithms, wherein the set of cryptographic algorithms are based on an elliptic curve according to equation:

y 2 =x 3 +ax+b

wherein:

a and b represent predefined parameters in a finite field F q that define an elliptic curve E over F q ; and

the private key is determined according to equation:

Q A =d A ×G

wherein:

Q A is the public key;

d A represents the private key associated with the second node and corresponds to e; and

G represents a base point on the elliptic curve E, with prime order.

6. The computer-implemented method of claim 5 , wherein the digital signature includes a left part value, a right part value, and the redundant information, wherein the left part value is determined by using a selected point on the elliptic curve according to equations:

R =( x B ,y B )= k×G

r =( e+x 2 )(mod n )

wherein:

R represents a selected point on the elliptic curve, and where x B ,y A represent the x-axis and the y-axis value of R, respectively;

k represents a random number in [1, n−1], and n represents a degree of the base point G;

r represents a left part value of the digital signature; and

e represents a hash value of a message M that is sent from a second account to a first account;

and the right part value is determined according to equation:

s =(1+ d A ) −1 ( k−rd A )(mod n )

wherein:

s represents a right part value of the digital signature; and

the redundant information is determined according to equation:

recid

=

{

0

,

if

y

R

(

mod

2

)

=

0

1

,

if

y

R

(

mod

2

)

=

1

wherein recid represents the redundant information included in the digital signature.

7. The computer-implemented method of claim 6 , wherein recovering the public key from the digital signature includes determining the public key based on a parity of the redundant information included in the digital signature.

8. The computer-implemented method of claim 7 , wherein determining the public key based on the parity of the redundant information includes:

determining an x-axis value of the selected point on the elliptic curve according to equation: x R =(r−e)(mod n)

wherein:

x R represents an x-axis value of the selected point R;

determining more than one y-axis values of the selected point on the elliptic curve according to on equation:

y R =√{square root over ( x R 2 +ax R +b )}(mod p )

wherein:

y R represents an y-axis value of the selected point R;

p represents a prime number greater than 3;

selecting a y-axis value from the determined more than one y-axis values based on the redundant information; and

determining a public key associated with the second account according to equation:

Q A ′=( r+s ) −1 ( R−s×G )

wherein:

Q A ′ represents the public key associated with the second account.

9. A non-transitory, computer-readable storage medium storing one or more instructions executable by a computer system to perform operations comprising:

receiving, by a first node, a signed message from a second node, wherein the signed message includes redundant information in a digital signature generated by the second node;

in response to receiving the signed message, recovering, by the first node using the redundant information, one or more public keys from the digital signature;

in response to recovering the one or more public keys, determining, by the first node, that one of the one or more public keys matches a verified public key; and

in response to determining that one of the one or more public keys matches the verified public key, determining that the signed message is authentic.

10. The non-transitory, computer-readable storage medium of claim 9 , wherein the verified public key is associated with a user that is associated with the second node.

11. The non-transitory, computer-readable storage medium of claim 9 , wherein the first node and the second node belong to a blockchain network, and wherein identity information associated with the second node is unknown to the first node.

12. The non-transitory, computer-readable storage medium of claim 9 , wherein the verified public key is associated with an authenticated node that is registered with a consortium blockchain network.

13. The non-transitory, computer-readable storage medium of claim 9 , wherein the digital signature is signed by using a private key associated with the second node based on a set of cryptographic algorithms, wherein the set of cryptographic algorithms are based on an elliptic curve according to equation:

y 2 =x 3 +ax+b

wherein:

a and b represent predefined parameters in a finite field F q that define an elliptic curve E over F q ; and

the private key is determined according to equation:

Q A =d A ×G

wherein:

Q A is the public key;

d A represents the private key associated with the second node and corresponds to Q A ; and

G represents a base point on the elliptic curve E, with prime order.

14. The non-transitory, computer-readable storage medium of claim 13 , wherein the digital signature includes a left part value, a right part value, and the redundant information, wherein the left part value is determined by using a selected point on the elliptic curve according to equations:

R =( x R ,y R )= k×G

r =( e+x 2 )(mod n )

wherein:

R represents a selected point on the elliptic curve, and where x R ,y R represent the x-axis and the y-axis value of R, respectively;

k represents a random number in [1, n−1], and n represents a degree of the base point G;

r represents a left part value of the digital signature; and

e represents a hash value of a message M that is sent from a second account to a first account;

and the right part value is determined according to equation:

s =(1+ d A ) −1 ( k−rd A )(mod n )

wherein:

s represents a right part value of the digital signature; and

the redundant information is determined according to equation:

recid

=

{

0

,

if

y

R

(

mod

2

)

=

0

1

,

if

y

R

(

mod

2

)

=

1

wherein recid represents the redundant information included in the digital signature.

15. The non-transitory, computer-readable storage medium of claim 14 , wherein recovering the public key from the digital signature includes determining the public key based on a parity of the redundant information included in the digital signature.

16. The non-transitory, computer-readable storage medium of claim 15 , wherein determining the public key based on the parity of the redundant information includes:

determining an x-axis value of the selected point on the elliptic curve according to equation:

x R =( r−e )(mod n )

wherein:

x R represents an x-axis value of the selected point R;

determining more than one y-axis values of the selected point on the elliptic curve according to on equation:

y R =±√{square root over ( x R 3 +ax R +b )}(mod p )

wherein:

y R represents an y-axis value of the selected point R;

p represents a prime number greater than 3;

selecting a y-axis value from the determined more than one y-axis values based on the redundant information; and

determining a public key associated with the second account according to equation:

Q A ′=( r+s ) −1 ( R−s×G )

wherein:

Q A ′ represents the public key associated with the second account.

17. A computer-implemented system, comprising:

one or more computers; and

one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:

receiving, by a first node, a signed message from a second node, wherein the signed message includes redundant information in a digital signature generated by the second node,

in response to receiving the signed message, recovering, by the first node using the redundant information, one or more public keys from the digital signature,

in response to recovering the one or more public keys, determining, by the first node, that one of the one or more public keys matches a verified public key, and

in response to determining that one of the one or more public keys matches the verified public key, determining that the signed message is authentic.

18. The system of claim 17 , wherein the verified public key is associated with a user that is associated with the second node.

19. The system of claim 17 , wherein the first node and the second node belong to a blockchain network, and wherein identity information associated with the second node is unknown to the first node.

20. The system of claim 17 , wherein the verified public key is associated with an authenticated node that is registered with a consortium blockchain network.

21. The system of claim 17 , wherein the digital signature is signed by using a private key associated with the second node based on a set of cryptographic algorithms, wherein the set of cryptographic algorithms are based on an elliptic curve according to equation:

y 2 =x 3 +ax+b

wherein:

a and b represent predefined parameters in a finite field F q that define an elliptic curve E over F q ; and

the private key is determined according to equation:

Q A =d A ×G

wherein:

Q A is the public key;

d A represents the private key associated with the second node and corresponds to Q A ; and

G represents a base point on the elliptic curve E, with prime order.

22. The system of claim 21 , wherein the digital signature includes a left part value, a right part value, and the redundant information, wherein the left part value is determined by using a selected point on the elliptic curve according to equations:

R =( x R ,y R )= k×G

r =( e+x 2 )(mod n )

wherein:

R represents a selected point on the elliptic curve, and where x R ,y R represent the x-axis and the y-axis value of R, respectively;

k represents a random number in [1, n−1], and n represents a degree of the base point G;

r represents a left part value of the digital signature; and

e represents a hash value of a message M that is sent from a second account to a first account;

and the right part value is determined according to equation:

s =(1+ d A ) −1 ( k−rd A )(mod n )

wherein:

s represents a right part value of the digital signature; and

the redundant information is determined according to equation:

recid

=

{

0

,

if

y

R

(

mod

2

)

=

0

1

,

if

y

R

(

mod

2

)

=

1

wherein recid represents the redundant information included in the digital signature.

23. The system of claim 22 , wherein recovering the public key from the digital signature includes determining the public key based on a parity of the redundant information included in the digital signature.

24. The system of claim 23 , wherein determining the public key based on the parity of the redundant information includes:

determining an x-axis value of the selected point on the elliptic curve according to equation:

x R =( r−e )(mod n )

wherein:

x R represents an x-axis value of the selected point R;

determining more than one y-axis values of the selected point on the elliptic curve according to on equation:

y R =±√{square root over ( x R 3 +ax a +b )}(mod p )

wherein:

y R represents an y-axis value of the selected point R;

p represents a prime number greater than 3;

selecting a y-axis value from the determined more than one y-axis values based on the redundant information; and

determining a public key associated with the second account according to equation:

Q A ′=( r+s ) −1 ( R−s×G )

wherein:

Q A ′ represents the public key associated with the second account.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: ZHOU, ZHIYUAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 051985/0466 →