IP Library › Granted Patent US 10,924,276
Granted Patent B2
US 10,924,276 · App. 15/982,278 · Granted Feb 16, 2021

System, apparatus and method for performing a plurality of cryptographic operations

Inventors: Santosh Ghosh (Hillsboro, OR); Andrew H. Reinders (Portland, OR); Sudhir K. Satpathy (Hillsboro, OR); Manoj R. Sastry (Portland, OR)
Assignee: Intel Corporation
H04L9/3066G06F7/00G06F7/5443G06F7/723G06F7/725H04L9/302H04L2209/122H04L2209/125
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,924,276
App. No.
15/982,278
Granted
Feb 16, 2021
Kind
B2
Abstract

In one embodiment, an apparatus includes: a hardware accelerator to execute cryptography operations including a Rivest Shamir Adleman (RSA) operation and an elliptic curve cryptography (ECC) operation. The hardware accelerator may include: a multiplier circuit comprising a parallel combinatorial multiplier; and an ECC circuit coupled to the multiplier circuit to execute the ECC operation. The ECC circuit may compute a prime field multiplication using the multiplier circuit and reduce a result of the prime field multiplication in a plurality of addition and subtraction operations for a first type of prime modulus. The hardware accelerator may execute the RSA operation using the multiplier circuit. Other embodiments are described and claimed.

Claims (45)

1. An apparatus comprising:

a hardware accelerator to execute cryptography operations including a Rivest Shamir Adleman (RSA) operation and an elliptic curve cryptography (ECC) operation, the hardware accelerator comprising:

a multiplier circuit comprising a 27-bit×411-bit parallel combinatorial multiplier to multiply a first 384-bit value and a second 384-bit value in 16 clock cycles, wherein the hardware accelerator is to execute the RSA operation using the multiplier circuit; and

an ECC circuit coupled to the multiplier circuit to execute the ECC operation, the ECC circuit to compute a prime field multiplication using the multiplier circuit and to reduce a result of the prime field multiplication in a plurality of addition and subtraction operations for a first type of prime modulus, wherein the ECC circuit comprises an elliptic curve (EC) scalar multiplier.

2. The apparatus of claim 1 , wherein the hardware accelerator further comprises a RSA firmware to execute a modulus exponentiation operation using the multiplier circuit.

3. The apparatus of claim 1 , wherein the ECC circuit is to reduce a result of the prime field multiplication in a plurality of multiplication operations for a second type of prime modulus.

4. The apparatus of claim 1 , wherein the hardware accelerator is to isolate first and second portions of first and second values and send the isolated first and second portions to the multiplier circuit to generate a plurality of partial products.

5. The apparatus of claim 4 , wherein the multiplier circuit is to perform a plurality of 384-bit multiply-accumulate operations on the first and second portions of the first and second values to generate a plurality of 768-bit products.

6. The apparatus of claim 5 , wherein the multiplier circuit is to further accumulate at least some of the plurality of 768-bit products to generate a portion of a multiplication of two 3072-bit values.

7. The apparatus of claim 1 , wherein the multiplier circuit comprises:

at least one register file including a plurality of registers;

a multiplexer coupled to the register file;

a multiplier coupled to the at least one register file and the multiplexer;

an adder;

a storage element; and

a controller to cause operations to be performed in the multiplier circuit.

8. The apparatus of claim 7 , wherein the controller is, for a plurality of iterations, to cause the multiplexer to send a selected portion of a first operand and a selected portion of a second operand to the multiplier, the multiplier to store a result in a first register of the at least one register file and accumulate the result with an accumulated value in the storage element.

9. The apparatus of claim 1 , wherein the ECC circuit further comprises:

a verification circuit;

a prime field adder;

a prime field subtractor; and

a prime field multiplier.

10. The apparatus of claim 9 , wherein the ECC circuit comprises a plurality of layers including:

a first layer comprising the prime field adder, the prime field subtractor and the prime field multiplier;

a second layer comprising a point addition and point doubling circuit and a prime field exponentiation and prime field inversion circuit;

a third layer comprising the EC scalar multiplier; and

a fourth layer comprising the verification circuit.

11. The apparatus of claim 9 , wherein the prime field multiplier is to provide a first 384-bit value and a second 384-bit value to the multiplier circuit to generate an integer intermediate product, and wherein the ECC circuit is to reduce the integer intermediate product to a prime field result.

12. A method comprising:

using a hardware accelerator to execute cryptography operations including a Rivest Shamir Adleman (RSA) operation and an elliptic curve cryptography (ECC) operation, wherein the hardware accelerator comprises a multiplier circuit and an ECC circuit, and the ECC circuit comprises an elliptic curve (EC) scalar multiplier;

wherein the operation of using the hardware accelerator to execute cryptography operations comprises using the multiplier circuit to execute the RSA operation;

wherein the operation of using the multiplier circuit to execute the RSA operation comprises using a 27-bit×411-bit parallel combinatorial multiplier in the multiplier circuit to multiply a first 384-bit value and a second 384-bit value in 16 clock cycles;

wherein the operation of using the ECC circuit to execute cryptography operations comprises using the ECC circuit to execute the ECC operation;

wherein the operation of using the ECC circuit to execute the ECC operation comprises:

using the ECC circuit to compute a prime field multiplication; and

using the ECC circuit to reduce a result of the prime field multiplication in a plurality of addition and subtraction operations; and

wherein the operation of using the ECC circuit to compute the prime field multiplication comprises the ECC circuit using the multiplier circuit to compute the prime field multiplication.

13. A method according to claim 12 , wherein:

the RSA operation comprises an RSA-3072 operation; and

the operation of using the multiplier circuit to execute the RSA operation comprises:

sending isolated first and second 384-bit values of a first operand comprising 3072 bits to a memory that is accessible to the multiplication circuit;

sending isolated first and second 384-bit values of a second operand comprising 3072 bits to the memory;

generating, by the multiplication circuit, a plurality of 768-bit partial products, based on the isolated first and second 384-bit values of the first operand and the isolated first and second 384-bit values of the second operand;

accumulating the plurality of partial products to obtain an intermediate result; and

using the multiplication circuit to reduce the intermediate result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2018
From: GHOSH, SANTOSH; REINDERS, ANDREW H.; SATPATHY, SUDHIR K.; SASTRY, MANOJ R.
To: INTEL CORPORATION
Reel/Frame 045840/0586 →
Continuity (1)
Related Publication 20190044718A1 · Feb 7, 2019