Method for securing an execution of a cryptographic process
AssigneeThales Dis France SAS
InventorsSylvain Leveque, Michael Adjedj
Life of this patent
Estimating the term…
Abstract
The present disclosure relates to a method for securing an execution of an algorithm of a cryptographic process comprising several operations Oj with n,j integers and j in [0 . . . n−1], to be executed each once for a complete execution of said algorithm and which may be executed independently, said method being performed by a processor of a cryptographic device and comprising, for one execution of said algorithm, repeating the following steps, until each of said several operations has been executed at least once: drawing at random an operation to be executed among all several operations comprised in the algorithm, executing said drawn operation.
Claims9
A method for securing a cryptographic device operating in a white-box context including a processor and memory executing an algorithm of a cryptographic process comprising several operations Oj with n,j integers and j in [0 . . . n−1], to be executed each once for a complete execution of said algorithm and which may be executed independently, the method securing the cryptographic device against attacks aimed at discerning data stored at memory locations in said memory of the cryptographic device for storing results of the several operations Oj,
- said method being performed by said processor of the cryptographic device comprising further a random number generator, and said method comprising:
- for one execution of said algorithm, to make the order of execution of the operations and length of execution of said algorithm unpredictable, repeating the following steps, until each of said several operations has been executed at least once:
- drawing at random an operation to be executed among all several operations comprised in the algorithm using said random number generator,
- executing said drawn operation wherein executing said drawn operation comprises:
- when said drawn operation has never been executed yet since the beginning of execution of said algorithm, executing said drawn operation and saving an output of said execution of said drawn operation in the memory location for storing the output of said drawn operation in the memory of the cryptographic device,
- when said drawn operation has already been executed since the beginning of execution of said algorithm, executing said drawn operation and discarding the output of said execution or saving the output of said execution instead of a previous result of a previous execution of said drawn operation in the memory location for storing the output of said drawn operation in the memory of the cryptographic device.
Dependencies are inferred from the claim text.