Arithmetic processor for finite field and module integer arithmetic operations
First Claim
1. An arithmetic processor comprising:
- (a) an arithmetic logic unit having a finite field arithmetic circuit for performing finite field arithmetic operations and a modular integer arithmetic circuit for performing modular integer arithmetic operations, the arithmetic logic unit having an operand input data bus for receiving operand data thereon and a result data output bus for returning the results of said arithmetic operations thereon;
(b) a register file coupled to said operand data bus and said result data bus; and
(c) a controller coupled to said ALU and said register file, said controller selecting one of said finite field operations or said integer arithmetic operations in response to a mode control signal and for controlling data access between said register file and said ALU and whereby said register file is shared by both said finite filed and integer arithmetic circuits.
1 Assignment
0 Petitions
Accused Products
Abstract
The present disclosure provides an arithmetic processor having an arithmetic logic unit having a plurality of arithmetic circuits each for performing a group of associated arithmetic operations, such as finite field operations, or modular integer operations. The arithmetic logic unit has an operand input data bus, for receiving operand data thereon and a result data output bus for returning the results of the arithmetic operations thereon. A register file is coupled to the operand data bus and the result data bus. The register file is shared by the plurality of arithmetic circuits. Further a controller is coupled to the ALU and the register file, the controller selecting one of the plurality of arithmetic circuits in response to a mode control signal requesting an arithmetic operation and for controlling data access between the register file and the ALU and whereby the register file is shared by the arithmetic circuits.
-
Citations
25 Claims
-
1. An arithmetic processor comprising:
-
(a) an arithmetic logic unit having a finite field arithmetic circuit for performing finite field arithmetic operations and a modular integer arithmetic circuit for performing modular integer arithmetic operations, the arithmetic logic unit having an operand input data bus for receiving operand data thereon and a result data output bus for returning the results of said arithmetic operations thereon;
(b) a register file coupled to said operand data bus and said result data bus; and
(c) a controller coupled to said ALU and said register file, said controller selecting one of said finite field operations or said integer arithmetic operations in response to a mode control signal and for controlling data access between said register file and said ALU and whereby said register file is shared by both said finite filed and integer arithmetic circuits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
a finite field multiplier circuit having a plurality of special purpose registers including an A register and an B register for receiving first and second operand bit vectors respectively, an M register for receiving a modulus bit vector, and an accumulator for containing a finite field product of said operands;
logic circuitry establishing connections from respective cells of said A and B registers to cells of said accumulator; and
a sequencing controller being operatively connected with said registers and said logic circuitry for implementing a sequence of steps to derive said finite field product.
-
-
12. An arithmetic processor as defined in claim 11, said sequencing of steps comprising:
- computing partial products of the contents of said A register with successive bits of said B register;
storing said partial products in said accumulator;
testing a bit of said partial product;
reducing said partial product by said modulus if said tested bit is set and repeating said steps for successive bits of said B register.
- computing partial products of the contents of said A register with successive bits of said B register;
-
13. An arithmetic processor as defined in claim 12, including storing said operand vectors left justified in said A register and said B register respectively and said test bit being derived from said left most bit of said registers.
-
14. An arithmetic processor as defined in claim 12, said B register is a shift register.
-
15. An arithmetic processor as defined in claim 14, said logic circuitry having a plurality of controllable adder units each coupled to respective register cells each comprising a first controllable adder having inputs derived from register cell Ai and accumulator cell Ci and being responsive to a first add control signal derived from cell BN−
- 1 of register B for producing a first add output signal;
a second controllable adder having inputs derived from modulus register cell Mi and said add output signal and being responsive to an second add control signal derived from cell CN−
1 of said accumulator for producing an output which is coupled to accumulator cell Ci.
- 1 of register B for producing a first add output signal;
-
16. An arithmetic processor as defined in claim 15, including a finite field adder circuit.
-
17. An arithmetic processor as defined in claim 16, said finite field adder comprising means for coupling an input derived from said cell Bi of register B to each of said first adders;
- and means for coupling said output of said second adder to said cell Ci, and said sequencing controller being responsive to a finite field add control signal whereby said finite field addition operation is performed in a single clock cycle.
-
18. An arithmetic processor as defined in claim 1, said finite field arithmetic circuit including a finite field inversion circuit.
-
19. An arithmetic processor as defined in claim 18, said finite field inversion circuit comprising:
-
a plurality of special purpose registers including an A register and a B register for receiving first and second operand bit vectors respectively, an M register for receiving a modulus bit vector, and an accumulator for containing a finite field product of said operands.
-
-
20. An arithmetic processor as defined in claim 1, said arithmetic logic unit comprising:
-
a finite field multiplier circuit;
a finite field inversion circuit;
a plurality of special purpose registers;
logic circuitry establishing connections between respective cells of said special purpose registers; and
a sequencing controller being operatively connected with said registers and said logic circuitry for implementing a sequence of steps to compute a finite field product or a finite field inversion and whereby said special purpose registers are shared by said finite field multiplier and said finite field inversion circuit.
-
-
21. An arithmetic processor as defined in claim 20, said finite field inversion circuit implementing an extended Euclidean algorithm.
-
22. An arithmetic processor as defined in claim 11, including an integer arithmetic multiplication circuit.
-
23. An arithmetic processor as defined in claim 12, said integer arithmetic multiplication being implemented by loading said m register with a carry in response to said mode selection signal.
-
24. An arithmetic processor as defined in claim 1, for use in a cryptographic system.
-
25. An arithmetic processor comprising:
-
a) an arithmetic logic unit having a finite field arithmetic circuit and a modular integer arithmetic circuit each for performing a group of associated arithmetic operations, the arithmetic logic unit having an operand input data bus for receiving operand data thereon and a result data output bus for returning the results of said arithmetic operations thereon;
b) a register file coupled to said operand data bus and said result data bus; and
c) a controller coupled to said ALU and said register file, said controller selecting one of said plurality of arithmetic circuits in response to a mode control signal requesting an arithmetic operation and for controlling data access between said register file and said ALU and whereby said register file is shared by said arithmetic circuits.
-
Specification