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 a first plurality of point-doubling operations on the point;
- storing point values in a plurality of buffers, wherein which buffers of the plurality of buffers the point values are stored in is determined by bit values of the plurality of partitions, the stored point values being the values of the point before point-doubling operations of the first plurality of point-doubling operations;
- and
- calculating 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 a plurality of intermediate scalar multiplication values are performed at an at least one point-addition time.
An apparatus for scalar multiplication, comprising:
- processing circuitry configured
- to partition a key into a plurality of partitions;
- to perform a first plurality of point-doubling operations on a point;
- to store point values in a plurality of buffers, wherein which buffers of the plurality of buffers the point values are stored in is determined by bit values of the plurality of partitions, the stored point values being the values of the point before point-doubling operations of the first plurality of point-doubling operations;
- and
- to 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 a plurality of intermediate scalar multiplication values are performed at an at least one point-addition time.
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,
- to perform a first plurality of point-doubling operations on a point,
- to store point values in a plurality of buffers, wherein which buffers of the plurality of buffers the point values are stored in is determined by bit values of the plurality of partitions, the stored point values being the values of the point before point-doubling operations of the first plurality of point-doubling operations, and
- to 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 a plurality of intermediate scalar multiplication values are performed at an at least one point-addition time.
Dependencies are inferred from the claim text.