Method and apparatus for scalar multiplication secure against differential power attacks
AssigneeUmm Al-Qura University
InventorsTurki F Al-Somani, Hilal Houssain
Life of this patent
Estimating the term…
Abstract
A method of scalar multiplication to obtain the scalar product between a key and a point on an elliptic curve, wherein the secret is m bits long. In selected embodiments, the first step is to partition the secret into two partitions each with m/2 bits. Point-doubling operations are performed on the point and stored into three buffers. Point additions are performed at randomized time intervals thereby preventing the method from being susceptible to differential power analysis attacks.
Claims20
A method of scalar multiplication in a cryptography apparatus to obtain a scalar product of a point and a key, the method comprising:
- obtaining the key in the cryptography apparatus;
- partitioning the key into a plurality of partitions;
- performing, using circuitry, a first plurality of point-doubling operations on the point to generate point values;
- storing the point values in a plurality of buffers, wherein
- each buffer is configured to store a plurality of point values,
- in which buffer of the plurality of buffers a respective point value of the point values is stored is determined using a corresponding bit value of each partition of the plurality of partitions, and
- the respective point values are stored in each of the plurality of buffers at least until at least one point-addition time, the at least one point-addition time being determined using a random number;
- calculating, using the circuitry, a plurality of intermediate scalar multiplication values by performing point-addition operations, wherein each intermediate scalar multiplication value is a sum over all stored point values in a respective buffer of the plurality of buffers, and the point-addition operations for calculating the plurality of intermediate scalar multiplication values are performed at the at least one point-addition time;
- and
- removing a stored point value from the corresponding buffer of the plurality of buffers after a point-addition operation has been performed using the stored point value.
An apparatus for scalar multiplication, comprising:
- processing circuitry configured to
- partition a key into a plurality of partitions;
- perform a first plurality of point-doubling operations on a point to generate point values;
- store the point values in a plurality of buffers, wherein
- each buffer is configured to store a plurality of point values,
- in which buffer of the plurality of buffers a respective point value of the point values is stored is determined using a corresponding bit value of each partition of the plurality of partitions, and
- the respective point values are stored in each of the plurality of buffers at least until at least one point-addition time, the at least one point-addition time being determined using a random number;
- calculate a plurality of intermediate scalar multiplication values by performing point-addition operations, wherein each intermediate scalar multiplication value is a sum over all stored point values in a respective buffer of the plurality of buffers, and the point-addition operations for calculating the plurality of intermediate scalar multiplication values are performed at the at least one point-addition time;
- and
- removing a stored point value from the corresponding buffer of the plurality of buffers after a point-addition operation has been performed using the stored point value.
An elliptic curve cryptography system, comprising:
- a first communication node configured to perform scalar multiplication to calculate a cryptography key;
- and
- a second communication node having a scalar multiplication apparatus to calculate a cryptography key, the scalar multiplication apparatus having processing circuitry configured to
- partition a key into a plurality of partitions,
- perform a first plurality of point-doubling operations on a point to generate point values,
- store the point values in a plurality of buffers, wherein
- each buffer is configured to store a plurality of point values,
- in which buffer of the plurality of buffers a respective point value of the point values is stored is determined using a corresponding bit value of each partition of the plurality of partitions, and
- the respective point values are stored in each of the plurality of buffers at least until at least one point-addition time, the at least one point-addition time being determined using a random number;
- calculate a plurality of intermediate scalar multiplication values by performing point-addition operations, wherein each intermediate scalar multiplication value is a sum over all stored point values in a respective buffer of the plurality of buffers, and the point-addition operations for calculating the plurality of intermediate scalar multiplication values are performed at the at least one point-addition time;
- and
- removing a stored point value from the corresponding buffer of the plurality of buffers after a point-addition operation has been performed using the stored point value.
Dependencies are inferred from the claim text.