IP Library Granted Patent US 8,144,865
Granted Patent B2
US 8,144,865 · App. 11/641,940 · Granted Mar 27, 2012

Protection of the execution of a DES algorithm

Assignee: STMicroelectronics S.A.
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,144,865
App. No.
11/641,940
Granted
Mar 27, 2012
Kind
B2
Abstract

A method for protecting an execution, by an integrated circuit, of a ciphering and/or deciphering algorithm taking into account data and at least one valid key and performing several iterations of the same calculation, including at least one execution of an iteration with the valid key between several executions of the same iteration with the invalid keys obtained by applying at least one non-linear one-way function to the valid key.

Claims (30)

1. A method comprising:

protecting an execution, by an integrated circuit, of an encryption algorithm taking into account data and at least one valid key and performing several iterations of a same calculation; and

performing at least one execution of an iteration with the valid key and performing several executions of the same iteration with invalid keys obtained by applying at least one non-linear one-way function to said valid key.

2. The method of claim 1 , wherein said function is a hash function followed or preceded by an expansion function.

3. The method of claim 1 , wherein a position of the execution with the valid key among the plurality of executions is randomly selected.

4. The method of claim 1 , wherein the algorithm is a Data Encryption Standard Algorithm, the invalid keys being sub-keys used exclusively for the first and last iterations.

5. A processor for execution of an encryption algorithm for implementing the method of claim 1 , comprising:

a temporary register at least of same size as a register of storage of intermediary results of the algorithm for containing the intermediary results of the iteration with the valid key during the iterations with the invalid keys.

6. A smart card comprising an integrated circuit configured to implement the method of claim 1 .

7. A method for protecting execution, by an integrated circuit, of an encryption algorithm that requires several iterations of a calculation based on data and on a valid key, the method comprising:

selecting, by the integrated circuit, a valid execution or an invalid execution of an iteration o f the calculation;

if the invalid execution is selected, applying, by the integrated circuit, to the valid key a non- linear, one-way function to provide an invalid key;

performing, by the integrated circuit, two or more executions of the iteration using the invalid key; and

if the valid execution is selected, performing, by the integrated circuit, an execution of the iteration with the valid key.

8. The method of claim 7 , wherein applying a non-linear, one-way function comprises applying a hash function and an expansion function.

9. The method of claim 7 , wherein selecting includes selecting an invalid execution for a first iteration of the calculation.

10. The method of claim 7 , wherein selecting includes selecting an invalid execution for a last iteration of the calculation.

11. The method of claim 7 , wherein selecting includes randomly selecting a valid execution or an invalid execution.

12. The method of claim 7 , further comprising storing intermediary results of the valid execution in a normal register and storing intermediary results of the invalid execution in a temporary register.

13. A smart card comprising:

a plastic support and an integrated circuit configured to perform a method for protecting execution, by the integrated circuit, of an encryption algorithm that requires several iterations of a calculation based on data and on a valid key, the method comprising:

selecting, by the integrated circuit, a valid execution or an invalid execution of an iteration of the calculation;

if the invalid execution is selected, applying, by the integrated circuit, to the valid key a non-linear, one-way function to provide an invalid key;

performing, by the integrated circuit, two or more executions of the iteration using the invalid key; and

if the valid execution is selected, performing, by the integrated circuit, an execution of the iteration with the valid key.

14. A computing device comprising: a processor and a storage device encoded with instructions that, when executed by the processor, perform a method for protecting execution, by the processor, of an encryption algorithm that requires several iterations of a calculation based on data and on a valid key, the method comprising:

selecting, by the processor, a valid execution or invalid execution of an iteration of the calculation;

if the invalid execution is selected, applying, by the processor, to the valid key a non\- linear, one-way function to provide an invalid key;

performing, by the processor, two or more executions of the iteration using the invalid key; and

if the valid execution is selected, performing, by the processor, an execution of the iteration with the valid key.

Assignments (2)
CHANGE OF NAME Recorded Jan 21, 2024
From: STMICROELECTRONICS SA
To: STMICROELECTRONICS FRANCE
Reel/Frame 066357/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2007
From: TEGLIA, YANNICK; LIARDET, PIERRE-YVAN
To: STMICROELECTRONICS, S.A.
Reel/Frame 019600/0534 →
Priority Claims (1)
FR 05 53931 · Dec 19, 2005 · national
Continuity (1)
Related Publication 20070263859A1 · Nov 15, 2007