Fault attack resistant cryptographic systems and methods
AssigneeMaxim Integrated Products, Inc.
InventorsJeremy Dubeuf, Yann Yves Rene Loisel, Frank Lhermet
Life of this patent
Estimating the term…
Abstract
Described herein are systems and methods that prevent against fault injection attacks. In various embodiments this is accomplished by taking advantage of the fact that an attacker cannot utilize a result that has been faulted to recover a secret. By using infective computation, an error is propagated in a loop such that the faulted value will provide to the attacker no useful information or information from which useful information may be extracted. Faults from a fault attack will be so large that a relatively large number of bits will change. As a result, practically no secret information can be extracted by restoring bits.
Claims18
A method for carrying out computations by a computing device, the method comprising:
- using, by the computing device, a secret in a computation that outputs an expected number and that comprises an iteration of a loop;
- the secret causes the computation to output an incorrect result in the event that the computation has been subject to one or more manipulations such that, in the event of an attack, no information is revealed from which confidential information may be extracted, the one or more manipulations comprising reducing a number of iterations of the loop;
- comparing, by the computing device, the expected number to a number calculated by the computation;
- based on the comparison, determining, by the computing device, whether the computation is valid;
- in response to the computation being invalid, generating, by the computing device, an error indicating that the computation has been subject to the one or more manipulations;
- and
- in response to the computation being valid, removing, by the computing device, an effect of the secret from the expected number to output a correct result.
A non-transitory computer-readable medium or media comprising one or more sequences of instructions which, when executed by at least one processor, causes steps to be performed comprising:
- using a secret in a computation that outputs an expected number, the secret causes the computation to output an incorrect result in the event that the computation has been subject to one or more manipulations such that, in the event of an attack, no information is revealed from which confidential information may be extracted;
- comparing the expected number to a number calculated by the computation;
- based on the comparison, determining whether the computation is valid;
- in response to the computation being invalid, generating an error indicating that the computation has been subject to the one or more manipulations;
- and
- in response to the computation being valid, removing an effect of the secret from the expected number to output a correct result.
Dependencies are inferred from the claim text.