IP Library Granted Patent US 12,034,866
Granted Patent B2
US 12,034,866 · App. 17/827,692 · Granted Jul 9, 2024

Systems and methods of improved modular inversion with digital signatures

Inventor: Ishai Ilani (Dolev, IL)
Assignee: Western Digital Technologies, Inc.
H04L9/3252H04L9/0825H04L9/3066
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 12,034,866
App. No.
17/827,692
Granted
Jul 9, 2024
Kind
B2
Abstract

A method includes receiving a message and a digital signature associated with a signing party and the message, verifying authenticity of the digital signature using elliptic curve cryptography (ECC), and authenticating use of the message based, at least in part, on the confirmed authenticity of the digital signature. The verifying includes one or more computations involving computing modular inverses. Computing modular inverses includes identifying first and second integer of a modular inverse operation, performing a first iterative process that, at each iteration: (i) initializes a third integer with a pre-defined number of most significant bits of the first integer and a fourth integer with the pre-defined number of most significant bits of the second integer and (ii) computes a quotient and a remainder, determining a resultant inverse value using the quotient; and confirming the authenticity of the digital signature based, at least in part, on the resultant inverse value.

Claims (64)

1. A method, comprising:

receiving a message and a digital signature associated with a signing party and the message, the digital signature being created by the signing party using a private key of a key pair;

verifying authenticity of the digital signature using elliptic curve cryptography (ECC) and a public key of the key pair, the verifying including one or more computations involving computing modular inverses, wherein computing modular inverses comprises:

identifying a first integer and a second integer of a modular inverse operation, the first integer representing an inverse number, the second integer representing a modulus;

performing a first iterative process that, at each iteration:

initializes a third integer with a pre-defined number of most significant bits of the first integer and a fourth integer with a pre-defined number of most significant bits of the second integer; and

computes a quotient and a remainder using the third integer and the fourth integer;

determining a resultant inverse value for the modular inverse operation based, at least in part, on the quotient; and

confirming the authenticity of the digital signature based, at least in part, on the resultant inverse value; and

authenticating use of the message based, at least in part, on the confirmed authenticity of the digital signature.

2. The method of claim 1 , wherein the one or more computations involving computing modular inverses includes computing at least one curve point on an elliptic curve using at least one modular inverse operation.

3. The method of claim 1 , wherein computing modular inverses further comprises:

identifying a pre-defined branch threshold;

computing a size difference, in bits, between a value of the first integer and a value of the second integer; and

branching between a first set of operations and a second set of operations based on a comparison between the size difference and the pre-defined branch threshold.

4. The method of claim 3 , wherein the first set of operations includes performing Euclid's algorithm on the third integer and the fourth integer, wherein the second set of operations includes performing a left bitwise shift of the smaller of the third and fourth integers.

5. The method of claim 3 , wherein the first iterative process is invoked by and performed inside of an outer iterative process, and wherein branching between a first set of operations and a second set of operations is performed as a part of the outer iterative process.

6. The method of claim 5 , wherein the first iterative process includes evaluating an interim matrix of values against:

(i) a first vector of initial values g and h; and

(ii) a second vector of values g+1 and h+1, wherein the first iterative process includes early exit criteria based at least in part on the evaluations.

7. The method of claim 6 , wherein the first iterative process includes terminating the first iterative process based, at least in part, on the early exit criteria, and wherein terminating the first iterative process includes returning a prior version of the interim matrix to the outer iterative process.

8. A computing device comprising:

a memory storing a software package and a digital signature associated with a signing party and the software package, the digital signature being created by the signing party using a private key of a key pair; and

at least one processor, coupled to the memory, executing instructions that cause the at least one processor to:

receive the software package, the digital signature, and a public key of the signing party;

verify authenticity of the digital signature using elliptic curve cryptography (ECC) and a public key of the key pair, the verifying including one or more computations involving computing modular inverses, wherein computing modular inverses comprises:

identifying a first integer and a second integer of a modular inverse operation, the first integer representing an inverse number, the second integer representing a modulus;

performing a first iterative process that, at each iteration:

initializes a third integer with a pre-defined number of most significant bits of the first integer and a fourth integer with a pre-defined number of most significant bits of the second integer; and

computes a quotient and a remainder using the third integer and the fourth integer;

determining a resultant inverse value for the modular inverse operation based, at least in part, on the quotient; and

confirming the authenticity of the digital signature based, at least in part, on the resultant inverse value; and

initiate installation of the software package on the computing device based, at least in part, on the confirmed authenticity of the digital signature.

9. The computing device of claim 8 , wherein the one or more computations involving computing modular inverses includes computing at least one curve point on an elliptic curve using at least one modular inverse operation.

10. The computing device of claim 8 , wherein computing modular inverses further comprises:

identifying a pre-defined branch threshold;

computing a size difference, in bits, between a value of the first integer and a value of the second integer; and

branching between a first set of operations and a second set of operations based on a comparison between the size difference and the pre-defined branch threshold.

11. The computing device of claim 10 , wherein the first set of operations includes performing Euclid's algorithm on the third integer and the fourth integer, wherein the second set of operations includes performing a left bitwise shift of the smaller of the third and fourth integers.

12. The computing device of claim 10 , wherein the first iterative process is invoked by and performed inside of an outer iterative process, and wherein branching between a first set of operations and a second set of operations is performed as a part of the outer iterative process.

13. The computing device of claim 12 , wherein the first iterative process includes evaluating an interim matrix of values against:

(i) a first vector of initial values g and h: and

(ii) a second vector of values g+1 and h+1, wherein the first iterative process includes early exit criteria based at least in part on the evaluations.

14. The computing device of claim 13 , wherein the first iterative process includes terminating the first iterative process based at least in part on the early exit criteria, and wherein terminating the first iterative process includes returning a prior version of the interim matrix to the outer iterative process.

15. A non-volatile memory storing instructions that, when executed by at least one processor, cause the at least one processor to:

receive a message and a digital signature associated with a signing party and the message, the digital signature being created by the signing party using a private key of a key pair;

verify authenticity of the digital signature using elliptic curve cryptography (ECC) and a public key of the key pair, the verifying including one or more computations involving computing modular inverses, wherein computing modular inverses comprises:

identifying a first integer and a second integer of a modular inverse operation, the first integer representing an inverse number, the second integer representing a modulus;

performing a first iterative process that, at each iteration:

initializes a third integer with a pre-defined number of most significant bits of the first integer and a fourth integer with a pre-defined number of most significant bits of the second integer; and

computes a quotient and a remainder using the third integer and the fourth integer;

determining a resultant inverse value for the modular inverse operation based, at least in part, on the quotient; and

confirming the authenticity of the digital signature based, at least in part, on the resultant inverse value; and

authenticate use of the message based, at least in part, on the confirmed authenticity of the digital signature.

16. The non-volatile memory of claim 15 , wherein the one or more computations involving computing modular inverses includes computing at least one curve point on an elliptic curve using at least one modular inverse operation.

17. The non-volatile memory of claim 15 , wherein computing modular inverses comprises further comprises:

identifying a pre-defined branch threshold;

computing a size difference, in bits, between a value of the first integer and a value of the second integer; and

branching between a first set of operations and a second set of operations based on a comparison between the size difference and the pre-defined branch threshold.

18. The non-volatile memory of claim 17 , wherein the first set of operations includes performing Euclid's algorithm on the third integer and the fourth integer, and wherein the second set of operations includes performing a left bitwise shift of the smaller of the third and fourth integers.

19. The non-volatile memory of claim 17 , wherein the first iterative process is invoked by and performed inside of an outer iterative process, and wherein branching between a first set of operations and a second set of operations is performed as a part of the outer iterative process.

20. The non-volatile memory of claim 19 , wherein the first iterative process includes evaluating an interim matrix of values against:

(i) a first vector of initial values g and h; and

(ii) a second vector of values g+1 and h+1, wherein the first iterative process includes early exit criteria based at least in part on the evaluations.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2022
From: ILANI, ISHAI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060051/0640 →