IP Library Granted Patent US 8,065,735
Granted Patent B2
US 8,065,735 · App. 12/282,806 · Granted Nov 22, 2011

Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device

Assignee: Gemalto SA
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,065,735
App. No.
12/282,806
Granted
Nov 22, 2011
Kind
B2
Abstract

A cryptographic operation includes calculating a multiplication of an element of an additively denoted group by a scalar. After two registers R 0 +R 1 , are initialized, iterations are carried out over the components K i of the scalar K. If K i of the scalar equals 0, then the value in register R 1 is replaced by 2(R 0 +R 1 ) If K i equals 1, the value in register R 0 is replaced by 2(R 0 +R 1 ). At the end of the algorithm, the value of the register R 0 is returned as the calculated result. This method poses the advantage of carrying out a calculation of multiplying by a scalar by carrying out only doubling and adding operations of the type 2(A+B).

Claims (64)

1. A method for performing a cryptographic operation on data in an electronic device with a key represented as a plurality of components (k t−1 , . . . , k 0 ) each having a first or second component value, said electronic device having at least one memory comprising at least one first register and a second register, said first register storing a first register value, said second register storing a second register value said method comprising the following steps:

allocating to said first register a first initial register value as a first register value;

allocating to said second register a second initial register value as a second register value, said second initial register value corresponding to the data on which the cryptographic operation is being performed;

carrying out an iteration on said plurality of components of said representation, said iteration comprising the steps of, for each (k i ) of the components of said key:

when said component (k i ) is equal to said first component value,

calculating a first calculation value equal to the double of said first register value added to said second register value; and

allocating said first calculation value to said first register as the first register value;

when said component (k i ) is equal to said second component value,

calculating a second calculation value equal to the double of said second register value added to said first register value; and

allocating said second calculation value to said second register, as the second register value;

following said iteration, returning at least one register value from said first register value and said second register value as the cryptographically processed data.

2. A method according to claim 1 , wherein said first initial register value is equal to zero and wherein said second initial register value is equal to said data on which the cryptographic operation is to be performed.

3. A method forperforming a cryptographic operation on data in an electronic device with a key represented as a plurality of components (k t−1 , . . . , k 0 ), each having a first or second component value, said electronic device having at least one memory comprising at least one first register, a second register and a third register, said first register storing a first register value, said second register storing a second register value, and said third register storing a third register value, said method comprising the steps of:

allocating to said first register a first initial register value as a first register value;

allocating to said second register a second initial register value as a second register value, said second initial register value corresponding to the data on which the cryptographic operation is being performed;

allocating to said third register a third initial register value as a third register value, said third initial register value dependent on said first initial register value and on said second initial register value;

carrying out an iteration on said plurality of components of said representation, said Iteration comprising the steps of, for each (k i ) of the components of said key:

when said component (k i ) is equal to said first component value,

calculating a first calculation value equal to said first register value added to said third register value; and

allocating said first calculation value to said first register as the first register value;

when said component (k i ) is equal to said second component value,

calculating a second calculation value equal to said second register value added to said third register value; and

allocating said second calculation value to said second register as the second register value;

calculating a third calculation value equal to said first register value added to said second register value; and

allocating said third calculation value to said third register as the third register value.

4. A method according to claim 3 , wherein said representation comprises an initial component taking an initial component value from a first initial component value and a second initial component value, and said method comprises, following said iteration, the steps of:

when said initial component has an initial component value equal to said first initial component value;

calculating a fourth calculation value equal to said first register value subtracted from a final value dependent on said element; and

allocating said fourth calculation value to said first register as the first register value.

5. A method according to claim 3 , wherein said first initial register value is equal to said data and wherein said second initial register value is equal to said data, and wherein said third initial register value is equal to the double of said data.

6. A cryptographic device for performing a cryptographic operation on data with a key that is represented by a plurality of components (k t−1 , . . . , k 0 ), where each of said components has a first component value or a second component value, said device comprising a processor and at least one memory,

said memory comprising at least:

one first register; and

one second register;

and wherein said processor performs the following operations:

allocating to said first register a first initial register value as a first register value;

allocating to said second register a second initial register value as a second register value, said second initial register value corresponding to the data on which the cryptographic operation is being performed;

carrying out an iteration on said plurality of components of said representation, said iteration comprising the steps of, for each (k i ) of the components of said key:

when said component (k i ) is equal to said first component value,

calculating a first calculation value equal to the double of said first register value added to said second register value; and

allocating said first calculation value to said first register as the first register value;

when said component (k i ) is equal to said second component value,

calculating a second calculation value equal to the double of said second register value added to said first register value; and

allocating said second calculation value to said second register, as the second register value;

following said iteration, returning at least one register value from said first register value and said second register value as the cryptographically processed data.

7. A smart card comprising a device according to claim 6 .

8. A cryptographic system comprising a device according to claim 6 , said device carrying out at least one calculation of a multiplication of an element of an additively denoted group, by a scalar.

9. A cryptographic device for performing a cryptographic operation on data with a key that is represented by a plurality of components (k t−1 , . . . , k 0 ), where each of said components has a first component value or a second component value, said device comprising a processor and at least one memory,

said memory comprising at least:

one first register;

one second register; and

one third register; and wherein said processor performs the following operations:

allocating to said first register a first initial register value as a first register value;

allocating to said second register a second initial register value as a second register value, said second initial register value corresponding to the data on which the cryptographic operation is being performed;

allocating to said third register a third initial register value as a third register value, said third initial register value dependent on said first initial register value and on said second initial register value;

carrying out an iteration on said plurality of components of said representation, said iteration comprising the steps of, for each (k i ) of the components of said key;

when said component (k i ) is equal to said first component value,

calculating a first calculation value equal to said first register value added to said third register value; and

allocating said first calculation value to said first register as the first register value;

when said component (k i ) is equal to said second component value,

calculating a second calculation value equal to said second register value added to said third register value; and

allocating said second calculation value to said second register as the second register value;

calculating a third calculation value equal to said first register value added to said second register value; and

allocating said third calculation value to said third register as the third register value.

Assignments (2)
MERGER Recorded Oct 14, 2011
From: GEMPLUS
To: GEMALTO SA
Reel/Frame 027061/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2008
From: JOYE, MARC
To: GEMPLUS
Reel/Frame 021527/0101 →
Priority Claims (1)
FR 06 50884 · Mar 16, 2006 · national
Continuity (1)
Related Publication 20090175455A1 · Jul 9, 2009