IP Library Granted Patent US 10,833,871
Granted Patent B2
US 10,833,871 · App. 16/726,965 · Granted Nov 10, 2020

System and method for deterministic signing of a message using a multi-party computation (MPC) process

Inventors: Samuel Ranellucci (Petah Tiqva, IL); Yehuda Lindell (Givat Shmuel, IL)
Assignees: UNBOUND TECH LTD.; BAR-ILAN UNIVERSITY
H04L9/3252H04L9/085H04L9/088H04L2209/46
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,833,871
App. No.
16/726,965
Granted
Nov 10, 2020
Kind
B2
Abstract

A method for signing a message, comprising performing a first Multi-Party Computation (MPC) process by multiple parties to compute a pseudorandom function, an input of the first MPC process comprises shares of a private signing key, each share is held by each party, the message is an input value to the pseudorandom function. The output of the first MPC process comprises multiple pairs of shares, each party holding a pair of shares, wherein each pair comprises a first value used for the MPC signing process and a second verifying value used for verifying correctness of the values provided by the multiple parties for the MPC signing process, and computing the signature on the message by performing an MPC signing protocol on the message, the MPC signing protocol receives as input shares of the output of the pseudorandom function from the multiple parties, and the message to be signed.

Claims (52)

1. A method for signing a message, comprising:

receiving a request to sign the message;

performing a first Multi-Party Computation (MPC) process by multiple parties to compute a pseudorandom function, an input of the first MPC process comprises shares of a private signing key, each share is held by a party of the multiple parties,

wherein the message to be signed is an input value to the pseudorandom function,

wherein an output of the first MPC process to compute the pseudorandom function comprises producing multiple pairs of shares of the output of the pseudorandom function, each party of the multiple parties holding a pair of shares,

wherein each pair of the multiple pairs comprises a first value used for the MPC signing process and a second verifying value used for verifying correctness of the values provided by the multiple parties for the MPC signing process, and

wherein each party of the multiple parties provides one of the values in the pair of shares based on a random mechanism executed multiple times, to verify that at least once the value used for the MPC signing process is provided by the multiple parties and at least once the second verifying value is provided by the multiple parties;

computing the signature on the message by performing an MPC signing protocol on the message, wherein the MPC signing protocol receives as input shares of the output of the pseudorandom function from the multiple parties for the signature randomness, and the message to be signed; and

sending the signature to the entity from which the request was sent after performing the MPC signing protocol on the message.

2. The method of claim 1 , wherein the key to the pseudorandom function is the private signing key.

3. The method of claim 1 , wherein the shares of the private signing key are used as part of the signing process.

4. The method of claim 1 , wherein encrypting the pair of shares using an elliptic curve.

5. The method of claim 1 , further comprising verifying correctness of the shares of the private signing key inputted by the multiple parties to the MPC signing process using the verifying values.

6. The method of claim 5 , wherein verifying correctness of the shares of the private signing key comprises performing an arithmetic manipulation on the verifying values.

7. The method of claim 5 , wherein the values provided by the multiple parties to the MPC signing process are used after verifying correctness of the shares of the private signing key.

8. The method of claim 1 , further comprising:

the multiple parties creating a commitment on an encryption of the pair of shares of the private signing key,

at least one party of the multiple parties sending the commitment to another party of the multiple parties; and

the parties receiving the commitment opening the commitments and verifying that the values provided by the multiple parties to the MPC signing process are correct.

9. The method of claim 1 , wherein the pseudorandom function is a key-derivation function.

10. A method for signing a message, comprising:

performing a first Multi-Party Computation (MPC) process by multiple parties to compute a pseudorandom function, an input of the first MPC process comprises shares of a private signing key, each share is held by a party of the multiple parties, wherein the message to be signed is an input value to the pseudorandom function,

wherein an output of the first MPC process to compute the pseudorandom function comprises producing multiple pairs of shares of the output of the pseudorandom function, each party of the multiple parties holding a pair of shares, and

wherein each pair of the multiple pairs comprises a first value used for the MPC signing process and a second verifying value used for verifying correctness of the values provided by the multiple parties for the MPC signing process;

verifying correctness of the shares of the private signing key inputted by the multiple parties to the MPC signing process using the verifying values,

wherein verifying correctness of the shares of the private signing key comprises performing an arithmetic manipulation on the verifying values, and

wherein each party of the multiple parties provides one of the values in the pair of shares based on a random mechanism executed multiple times, to verify that at least once the value used for the MPC signing process is provided by the multiple parties and at least once the second verifying value is provided by the multiple parties; and

computing the signature on the message by performing an MPC signing protocol on the message, wherein the MPC signing protocol receives as input shares of the output of the pseudorandom function from the multiple parties for the signature randomness, and the message to be signed.

11. The method of claim 10 , wherein the key to the pseudorandom function is the private signing key.

12. The method of claim 10 , wherein the shares of the private signing key are used as part of the signing process.

13. The method of claim 10 , further comprising receiving a request to sign the message.

14. The method of claim 13 , further comprising sending the signature to the entity from which the request was sent after performing the MPC signing protocol on the message.

15. The method of claim 10 , wherein encrypting the pair of shares using an elliptic curve.

16. The method of claim 10 , further comprising:

the multiple parties creating a commitment on an encryption of the pair of shares of the private signing key;

at least one party of the multiple parties sending the commitment to another party of the multiple parties; and

the parties receiving the commitment opening the commitments and verifying that the values provided by the multiple parties to the MPC signing process are correct.

17. A method for signing a message, comprising:

performing a first Multi-Party Computation (MPC) process by multiple parties to compute a pseudorandom function, an input of the first MPC process comprises shares of a private signing key, each share is held by a party of the multiple parties,

wherein the message to be signed is an input value to the pseudorandom function,

wherein an output of the first MPC process to compute the pseudorandom function comprises producing multiple pairs of shares of the output of the pseudorandom function, each party of the multiple parties holding a pair of shares, and

wherein each pair of the multiple pairs comprises a first value used for the MPC signing process and a second verifying value used for verifying correctness of the values provided by the multiple parties for the MPC signing process;

verifying correctness of the shares of the private signing key inputted by the multiple parties to the MPC signing process using the verifying values, wherein the values provided by the multiple parties to the MPC signing process are used after verifying correctness of the shares of the private signing key, wherein each party of the multiple parties provides one of the values in the pair of shares based on a random mechanism executed multiple times, to verify that at least once the value used for the MPC signing process is provided by the multiple parties and at least once the second verifying value is provided by the multiple parties; and

computing the signature on the message by performing an MPC signing protocol on the message, wherein the MPC signing protocol receives as input shares of the output of the pseudorandom function from the multiple parties for the signature randomness, and the message to be signed.

18. The method of claim 17 , wherein the shares of the private signing key are used as part of the signing process.

19. The method of claim 17 , further comprising receiving a request to sign the message.

20. The method of claim 19 , further comprising sending the signature to the entity from which the request was sent after performing the MPC signing protocol on the message.

21. The method of claim 17 , further comprising encrypting the pair of shares using an elliptic curve.

22. The method of claim 17 , further comprising:

the multiple parties creating a commitment on an encryption of the pair of shares of the private signing key;

at least one party of the multiple parties sending the commitment to another party of the multiple parties; and

the parties receiving the commitment opening the commitments and verifying that the values provided by the multiple parties to the MPC signing process are correct.

Assignments (7)
CHANGE OF NAME Recorded Mar 17, 2022
From: UNBOUND SECURITY LTD
To: COINBASE IL RD LTD
Reel/Frame 059380/0994 →
CHANGE OF NAME Recorded Mar 17, 2022
From: UNBOUND TECH LTD
To: UNBOUND SECURITY LTD
Reel/Frame 059785/0632 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2022
From: BAR ILAN UNIVERSITY
To: UNBOUND SECURITY LTD
Reel/Frame 059289/0592 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTED SIGNATUREPAGE FOR THE RECEIVING PARTY PREVIOUSLY RECORDED ON REEL 052102 FRAME 0629. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Mar 17, 2020
From: UNBOUND TECH LTD
To: SILICON VALLEY BANK
Reel/Frame 052361/0631 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 5, 2020
From: UNBOUND TECH LTD
To: SILICON VALLEY BANK
Reel/Frame 052102/0629 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: RANELLUCCI, SAMUEL
To: UNBOUND TECH LTD.
Reel/Frame 051417/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2020
From: LINDELL, YEHUDA
To: BAR-ILAN UNIVERSITY
Reel/Frame 051417/0748 →
Continuity (2)
Continuation In Part 16183868 · Nov 8, 2018
Related Publication 20200153640A1 · May 14, 2020
Cited By (5)
US 12,288,157 US 12,418,399 US 12,437,091 US 12,526,126 US 12,574,258