Protection against side channel attacks with an integrity check
AssigneeGemalto SA
InventorsStephanie Salgado, David Vigilant, Guillaume Fumaroli
Life of this patent
Estimating the term…
Abstract
The invention relates to a method for protecting a sensitive operation by checking the integrity of at least a subset of the data manipulated by the sensitive operation. Data to be checked are divided into blocks, an intermediate integrity check value being computed for each block, the intermediate integrity check values being computed in random order. The invention also relates to a cryptographic device wherein at least one sensitive operation of the cryptographic device is protected by a method according to the invention.
Claims11
A method for protecting a sensitive operation by checking the integrity of at least a subset of the data manipulated by the sensitive operation, said subset of data being referred to as the data to be checked, comprising:
- computing, by a processor, an integrity check value from data to be checked by initializing a result integrity check value r for the data to be checked and converting the data to be checked into at least two random parts and computing an integrity check value on the random parts, by:
- dividing the random parts into a plurality of blocks;
- randomly selecting a block of the plurality of blocks;
- recursively computing an integrity check value on the selected block and saving a plurality of intermediate results from the recursive computation;
- selecting one intermediate result from the plurality of intermediate results;
- using the selected result to compute the integrity check value for the selected block;
- and
- comparing said integrity check value from data to be checked with a reference value, wherein data to be checked are divided into blocks, an intermediate integrity check value being computed for each block, the intermediate integrity check values being computed in random order.
The method according any of the previous claims, wherein the sensitive operation is a cryptographic operation.
A cryptographic device operable to perform at least one sensitive operation, wherein the cryptographic device protects at least one sensitive operation by checking the integrity of at least a subset of the data manipulated by the sensitive operation, said subset of data being referred to as the data to be checked, the cryptographic device comprises means for checking the integrity by
- computing, by a computing means, an integrity check value from data to be checked by initializing a result integrity check value r for the data to be checked and converting the data to be checked into at least two random parts and computing an integrity check value on the random parts, by:
- dividing the random parts into a plurality of blocks;
- randomly selecting a block;
- recursively computing an integrity check value on the selected block and saving a plurality of intermediate results from the recursive computation;
- selecting one intermediate result from the plurality of intermediate results;
- using the selected result to compute the integrity check value for the selected block;
- and
- comparing, by a comparing means, said integrity check value from data to be checked with a reference value, wherein the method further comprises that data to be checked are divided into blocks, an intermediate integrity check value being computed for each block, the intermediate integrity check values being computed in random order.
Dependencies are inferred from the claim text.