Prime field elliptic curve cryptography processor
AssigneeMarvell International Ltd.
InventorsFei Sun, Chang Shu
Life of this patent
Estimating the term…
Abstract
A system including a processor, a field addition circuit, and a field multiplication circuit. The processor is configured to execute instructions for performing elliptic curve operations on data. The elliptic curve operations include field operations performed in a prime field. The field addition circuit is configured to perform a field addition on the data in the prime field in response to the instructions requiring the field addition. The field multiplication circuit is configured to perform a field multiplication on the data in the prime field in response to the instructions requiring the field multiplication.
Claims8
A system comprising:
- a processor configured to execute instructions for performing elliptic curve operations on data, wherein the elliptic curve operations include field operations performed in a prime field;
- a field addition circuit configured to perform a field addition on the data in the prime field in response to the instructions requiring the field addition, wherein the field addition circuit comprises
- an input circuit configured to receive a first n-bit field operand and a second n-bit field operand in the prime field;
- an addition circuit configured to generate a provisional sum and a carry bit, wherein the provisional sum is a difference between an order of the prime field and a first sum of the first n-bit field operand and the second n-bit field operand;
- and
- an output circuit configured to output a second sum, wherein the second sum is the provisional sum when the carry bit is zero, and wherein the second sum is a sum of the provisional sum and the order of the prime field when the carry bit is one;
- a field multiplication circuit configured to perform a field multiplication on the data in the prime field in response to the instructions requiring the field multiplication;
- a key module configured to generate keys based on results of the elliptic curve operations;
- and
- a cryptographic engine configured to (i) encrypt plaintext based on the keys or (ii) decrypt ciphertext based on the keys.
A system comprising:
- a processor configured to execute instructions for performing elliptic curve operations on data, wherein the elliptic curve operations include field operations performed in a prime field;
- a field addition circuit configured to perform a field addition on the data in the prime field in response to the instructions requiring the field addition;
- a field multiplication circuit configured to perform a field multiplication on the data in the prime field in response to the instructions requiring the field multiplication, wherein the field multiplication circuit comprises
- an input circuit configured to receive a first n-bit field operand and a second n-bit field operand in the prime field;
- a partial sum circuit configured to generate, based on the first n-bit field operand and the second n-bit field operand, (i) a plurality of partial sums and (ii) a plurality of carry bits;
- a reduction circuit configured to generate, based on (i) the plurality of partial sums and (ii) the plurality of carry bits, (a) a provisional product and (b) a carry bit;
- and
- an output circuit configured to output a product, wherein the product is the provisional product when the carry bit is zero, and wherein the product is a sum of the provisional product and an order of the prime field when the carry bit is one;
- a key module configured to generate keys based on results of the elliptic curve operations;
- and
- a cryptographic engine configured to (i) encrypt plaintext based on the keys or (ii) decrypt ciphertext based on the keys.
A method comprising:
- using a processor,
- executing instructions for performing elliptic curve operations on data, wherein the elliptic curve operations include field operations performed in a prime field;
- performing a field addition on the data in the prime field in response to the instructions requiring the field addition, wherein performing the field addition comprises
- receiving a first n-bit field operand and a second n-bit field operand in the prime field;
- generating a provisional sum and a carry bit, wherein the provisional sum is a difference between an order of the prime field and a first sum of the first n-bit field operand and the second n-bit field operand;
- and
- generating a second sum, wherein the second sum is the provisional sum when the carry bit is zero, and wherein the second sum is a sum of the provisional sum and the order of the prime field when the carry bit is one;
- performing a field multiplication on the data in the prime field in response to the instructions requiring the field multiplication;
- generating keys based on results of the elliptic curve operations;
- and
- encrypting plaintext based on the keys or decrypting ciphertext based on the keys.
A method comprising:
- using a processor,
- executing instructions for performing elliptic curve operations on data, wherein the elliptic curve operations include field operations performed in a prime field;
- performing a field addition on the data in the prime field in response to the instructions requiring the field addition;
- performing a field multiplication on the data in the prime field in response to the instructions requiring the field multiplication, wherein performing the field multiplication comprises
- receiving a first n-bit field operand and a second n-bit field operand in the prime field;
- generating, based on the first n-bit field operand and the second n-bit field operand, (i) a plurality of partial sums and (ii) a plurality of carry bits;
- generating, based on (i) the plurality of partial sums and (ii) the plurality of carry bits, (a) a provisional product and (b) a carry bit;
- and
- generating a product, wherein the product is the provisional product when the carry bit is zero, and wherein the product is a sum of the provisional product and an order of the prime field when the carry bit is one;
- generating keys based on results of the elliptic curve operations;
- and
- encrypting plaintext based on the keys or decrypting ciphertext based on the keys.
Dependencies are inferred from the claim text.