IP Library › Granted Patent US 10,855,468
Granted Patent B2
US 10,855,468 · App. 16/300,005 · Granted Dec 1, 2020

System and method for efficient implementation of prime field arithmetic in ARM processors

Inventor: Diego F. Aranha (São Paulo, BR)
Assignees: LG Electronics, Inc.; UNICAMP
H04L9/3066G06F17/16G09C1/00H04L9/002H04L9/0618H04L63/04H04L63/0428H04L63/0435H04L2209/04H04L2209/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,855,468
App. No.
16/300,005
Granted
Dec 1, 2020
Kind
B2
Abstract

The present invention provides a method for performing Elliptic Curve Cryptography (ECC) on data, the ECC implemented on multiple arithmetic layers. By performing multi-precision multiplication by implementing product-scanning to process columns of intermediary results in order to obtain a multiplication result by computing unsigned multiplication of data, accumulating a result of the multiplication and preserving a generated carry flag such that propagation of the carry flag is delayed, the present invention improves performance.

Claims (39)

1. A method for improving performance of a computer processor in performing Elliptic Curve Cryptography (ECC), the method providing for a reduced number of operations executed in the computer processor, the method comprising:

performing multi-precision multiplication in the computer processor for ECC implemented on multiple arithmetic layers,

wherein performing the multi-precision multiplication comprises:

obtaining a first operand for a product-scanning multiplication operation to be performed over at least a first column, a second column, and a third column;

obtaining a second operand for the product-scanning multiplication operation to be performed over at least the first column, the second column, and the third column;

computing a first intermediary multiplication result for the first column in accordance with the product-scanning multiplication operation and storing the computed first intermediary result;

computing a second intermediary multiplication result for the second column in accordance with the product-scanning multiplication operation and storing the computed second intermediary result;

accumulating the first and second intermediary multiplication results for the first and second columns; and

preserving a generated carry flag such that propagation of a generated carry value to the third column is delayed.

2. The method of claim 1 , further comprising:

performing an inner multiplication loop inside a multiplication algorithm to scan positions in a result; and

generating all digit multiplications that contribute to a fixed position.

3. The method of claim 2 , wherein:

each of the digit multiplications is a double-precision result that requires two registers; and

accumulating and preserving the generated carry flag require a third register.

4. The method of claim 1 , wherein the product-scanning comprises Comba.

5. The method of claim 1 , wherein the product-scanning comprises a hybrid of Schoolbook and Comba.

6. The method of claim 1 , wherein the multi-precision multiplication is performed utilizing an Unsigned Multiply Accumulate Accumulate Long (UMAAL) instruction.

7. The method of claim 1 , wherein the method is performed in an Advanced RISC Machine (ARM) architecture.

8. A method for performing secure communication between devices, the method comprising:

performing Elliptic Curve Cryptography (ECC) of data, the ECC implemented on multiple arithmetic layers to generate encrypted data; and

transmitting the encrypted data via a communication channel,

wherein performing the ECC comprises performing multi-precision multiplication, wherein performing the multi-precision multiplication comprises:

obtaining a first operand for a product-scanning multiplication operation to be performed over at least a first column, a second column, and a third column;

obtaining a second operand for the product-scanning multiplication operation to be performed over at least the first column, the second column, and the third column;

computing a first intermediary multiplication result for the first column in accordance with the product-scanning multiplication operation and storing the computed first intermediary result;

computing a second intermediary multiplication result for the second column and storing the computed second intermediary result;

accumulating the first and second intermediary multiplication results for the first and second columns; and

preserving a generated carry flag such that propagation of generated carry value to the third column is delayed.

9. The method of claim 8 , further comprising:

performing an inner multiplication loop inside a multiplication algorithm to scan positions in a result; and

generating all digit multiplications that contribute to a fixed position.

10. The method of claim 9 , wherein:

each of the digit multiplications is a double-precision result that requires two registers; and

accumulating and preserving the generated carry flag require a third register.

11. The method of claim 8 , wherein the product-scanning comprises Comba.

12. The method of claim 8 , wherein the product-scanning comprises a hybrid of Schoolbook and Comba.

13. The method of claim 8 , wherein the multi-precision multiplication is performed utilizing an Unsigned Multiply Accumulate Accumulate Long (UMAAL) instruction.

14. The method of claim 8 , wherein the method is performed in an Advanced RISC Machine (ARM) architecture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2018
From: F. ARANHA, DIEGO
To: LG ELECTRONICS INC.; UNICAMP
Reel/Frame 047457/0283 →
Continuity (2)
Provisional Application 62335649 · May 12, 2016
Related Publication 20190158284A1 · May 23, 2019