IP Library Granted Patent US 8,666,062
Granted Patent B2
US 8,666,062 · App. 12/101,590 · Granted Mar 4, 2014

Method and apparatus for performing finite field calculations

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 8,666,062
App. No.
12/101,590
Granted
Mar 4, 2014
Kind
B2
Abstract

In general terms, the invention provides a finite field engine and methods for operating on elements in a finite field. The finite field engine provides finite field sub-engines suitable for any finite field size requiring a fixed number of machine words. The engine reuses these engines, along with some general purpose component or specific component providing modular reduction associated with the exact reduction (polynomial or prime) of a specific finite field. The engine has wordsized suitable code capable of adding, subtracting, multiplying, squaring, or inverting finite field elements, as long as the elements are representable in no more than the given number of words. The wordsized code produces unreduced values. Specific reduction is then applied to the unreduced value, as is suitable for the specific finite field. In this way, fast engines can be produced for many specific finite fields, without duplicating the bulk of the engine instructions (program).

Claims (36)

1. A method of performing a finite field operation on elements of a finite field, the method comprising a processor:

obtaining a first set of instructions for performing the finite field operation on values representing the elements of the finite field;

executing the first set of instructions to generate an unreduced result completing the finite field operation;

obtaining a second set of instructions for performing a modular reduction for a specific finite field;

executing the second set of instructions on the unreduced result to generate a reduced result; and

providing the reduced result as an output for use in a cryptographic operation.

2. The method of claim 1 , further comprising receiving a first input indicative of the finite field operation, wherein obtaining the first set of instructions comprises selecting the first set of instructions from a plurality of sets of instructions each corresponding to a respective type of finite field operation.

3. The method of claim 1 , further comprising receiving a second input indicative of the specific finite field.

4. The method of claim 1 , wherein the values representing the elements of the finite field are a predetermined number of words, and the first set of instructions is executed using a memory segment large enough to hold the values.

5. The method of claim 1 , wherein the finite field operation comprises any one of addition, subtraction, multiplication, squaring, and inverting.

6. The method of claim 1 , further comprising determining one of a plurality of cryptographic protocols, and initiating the one of the plurality of cryptographic protocols, wherein the one of the cryptographic protocols comprises the cryptographic operation.

7. The method of claim 6 , wherein the determining the one of the plurality of cryptographic protocols comprises receiving a third input indicative of the one of the plurality of cryptographic protocols.

8. A non-transitory computer readable medium comprising computer executable instructions for performing a finite field operation on elements of a finite field, the computer readable medium comprising instructions for:

obtaining a first set of instructions for performing the finite field operation on values representing the elements of the finite field;

executing the first set of instructions to generate an unreduced result completing the finite field operation;

obtaining a second set of instructions for performing a modular reduction for a specific finite field;

executing the second set of instructions on the unreduced result to generate a reduced result; and

providing the reduced result as an output for use in a cryptographic operation.

9. The non-transitory computer readable medium of claim 8 , further comprising instructions for receiving a first input indicative of the finite field operation, wherein obtaining the first set of instructions comprises selecting the first set of instructions from a plurality of sets of instructions each corresponding to a respective type of finite field operation.

10. The non-transitory computer readable medium of claim 8 , further comprising instructions for receiving a second input indicative of the specific finite field.

11. The non-transitory computer readable medium of claim 8 , wherein the values representing the elements of the finite field are a predetermined number of words, and the first set of instructions is executed using a memory segment large enough to hold the values.

12. The non-transitory computer readable medium of claim 8 , wherein the finite field operation comprises any one of addition, subtraction, multiplication, squaring, and inverting.

13. The non-transitory computer readable medium of claim 8 , further comprising instructions for determining one of a plurality of cryptographic protocols, and initiating the one of the plurality of cryptographic protocols, wherein the one of the cryptographic protocols comprises the cryptographic operation.

14. The non-transitory computer readable medium of claim 13 , wherein the determining the one of the plurality of cryptographic protocols comprises receiving a third input indicative of the one of the plurality of cryptographic protocols.

15. A cryptographic engine comprising a processor and memory, the memory storing computer executable instructions for performing a finite field operation on elements of a finite field, the computer readable medium comprising instructions for:

obtaining a first set of instructions for performing the finite field operation on values representing the elements of the finite field;

executing the first set of instructions to generate an unreduced result completing the finite field operation;

obtaining a second set of instructions for performing a modular reduction for a specific finite field;

executing the second set of instructions on the unreduced result to generate a reduced result; and

providing the reduced result as an output for use in a cryptographic operation.

16. The cryptographic engine of claim 15 , further comprising instructions for receiving a first input indicative of the finite field operation, wherein obtaining the first set of instructions comprises selecting the first set of instructions from a plurality of sets of instructions each corresponding to a respective type of finite field operation.

17. The cryptographic engine of claim 15 , further comprising instructions for receiving a second input indicative of the specific finite field.

18. The cryptographic engine of claim 15 , wherein the values representing the elements of the finite field are a predetermined number of words, and the first set of instructions is executed using a memory segment accessible to the processor which is large enough to hold the values.

19. The cryptographic engine of claim 15 , wherein the finite field operation comprises any one of addition, subtraction, multiplication, squaring, and inverting.

20. The cryptographic engine of claim 15 , further comprising instructions for determining one of a plurality of cryptographic protocols, and initiating the one of the plurality of cryptographic protocols, wherein the one of the cryptographic protocols comprises the cryptographic operation.

21. The cryptographic engine of claim 20 , wherein the determining the one of the cryptographic protocols comprises receiving a third input indicative of the one of the plurality of cryptographic protocols.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →
CHANGE OF NAME Recorded Jan 17, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 032087/0386 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2013
From: LAMBERT, ROBERT J.
To: CERTICOM CORP.
Reel/Frame 031091/0443 →