IP Library Granted Patent US 8,484,731
Granted Patent B2
US 8,484,731 · App. 13/184,779 · Granted Jul 9, 2013

Method for detecting an attack by fault injection into a memory device, and corresponding detection system

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,484,731
App. No.
13/184,779
Granted
Jul 9, 2013
Kind
B2
Abstract

The method for detecting an attack by fault injection into memory positions includes a generation of an initial value of a reference indication including an application of a reversible mathematical operator to the values of the information stored in the memory positions. An updating of the value of this reference indication is performed on each write in at least one memory position by using the operator, the reverse operator and the values of the stored information before and after each write in the at least one memory position. And, in the presence of a request, a check is performed as to whether a criterion involving the values of the information stored in the memory positions at the time of the request and the operator or its reverse is or is not satisfied by the value of the reference indication at the time of the request.

Claims (46)

1. A method for detecting an attack by fault injection into memory positions comprising:

generating an initial value of a reference indication comprising an application of a mathematical operator to values stored in the memory positions;

updating the value of the reference indication on each write in at least one memory position by using the mathematical operator, a reverse mathematical operator and the values of the information stored in the at least one memory position before and after each write in the at least one memory position; and

in presence of a request, checking as to whether a criterion involving the values stored in the memory positions at the time of the request and at least one of the mathematical operator and reverse mathematical operator is or is not satisfied by the value of the reference indication at the time of the request.

2. The method according to claim 1 wherein the updating comprises:

a first updating of the reference indication comprising an application of the reverse mathematical operator to a preceding value of the reference indication and to the values of the information stored before the write operation in the at least one memory position; and

a second updating of the reference indication comprising the application of the mathematical operator to the value of the reference indication updated in the first update and to the values of the information stored in the at least one memory position after the write operation in the at least one memory position.

3. The method according to claim 1 , wherein the criterion comprises an application of the mathematical operator to the values stored in all the memory positions at the time of the request so as to obtain an additional value, then a comparison of this additional value with the value of the reference indication at the time of the request, and the criterion is declared not satisfied, corresponding to the detection of an attack by fault injection, if the additional value is different from the value of the reference indication at the time of the request.

4. The method according to claim 1 , wherein the criterion comprises an application of the reverse mathematical operator to the value of the reference indication at the time of the request and to the values stored in all the memory positions at the time of the request so as to obtain an additional value, then a comparison of the additional value with the neutral element of the mathematical operator and the criterion is declared not satisfied, corresponding to the detection of an attack by fault injection, if the additional value is different from the neutral element for the mathematical operator.

5. The method according to claim 1 , wherein the mathematical operator is an associative and commutative mathematical operator.

6. The method according to claim 1 , wherein the mathematical operator is addition and the reverse mathematical operator is subtraction.

7. The method according to claim 1 , wherein when the checking as to whether the criterion is satisfied is concomitant with a write operation, a checking is carried out as to whether the criterion is satisfied after the writing and the updating of the reference indication.

8. The method according to claim 1 , wherein when the checking as to whether the criterion is satisfied is concomitant with a write operation, the write operation that is performed after the checking as to whether or not the criterion is satisfied is suspended.

9. A detection system for detecting an attack by fault injection in protected memory positions comprising:

a generation element configured to generate an initial value of a reference indication comprising an application of a mathematical operator to values stored in the protected memory positions;

an updating element configured to update the value of the reference indication on each write in at least one memory position by using the mathematical operator, a reverse mathematical operator and the values stored in the at least one memory position before and after each write in the at least one memory position; and

a checking element configured to, in the presence of a request, check as to whether a criterion involving the values stored in the memory positions at the time of the request and at least one of the mathematical operator and the reverse mathematical operator is or is not satisfied by the value of the reference indication at the time of the request.

10. The detection system according to claim 9 , wherein the updating element is further configured to:

perform a first update of the reference indication comprising an application of the reverse mathematical operator to the preceding value of the reference indication and to the values stored in the at least one memory position before the write operation in the at least one memory position; and

perform a second update of the reference indication comprising the application of the mathematical operator to the value of the reference indication updated in the first update and to the values in the at least one memory position after the write operation in the at least one memory position.

11. The detection system according to claim 9 , wherein the checking element is further configured to apply the mathematical operator to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the value of the reference indication at the time of the request, and if the additional value is different from the value of the reference indication at the time of the request, the checking block is configured to deliver an indication representative of an attack by fault injection.

12. The detection system according to claim 9 , wherein the checking element is further configured to apply the reverse mathematical operator to the value of the reference indication at the time of the request and to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the neutral element of the operator, and if the additional value is different from the neutral element for the operator, the checking element is configured to deliver an indication representative of an attack by fault injection.

13. The detection system according to claim 9 , wherein the mathematical operator is an associative and commutative mathematical operator.

14. The detection system according to claim 9 , wherein the mathematical operator is addition and the reverse mathematical operator is subtraction.

15. The detection system according to claim 9 , further comprising a controller configured to defer the check as to whether the criterion is satisfied after a write operation and the updating of the reference indication when the check as to whether the criterion is satisfied is concomitant with a write operation.

16. The detection system according to claim 9 , further comprising a controller configured to suspend the write operation and to defer the write operation and the updating of the reference indication after the check as to whether or not the criterion is satisfied, when the check as to whether the criterion is satisfied is concomitant with a write operation.

17. An integrated circuit for detecting an attack by fault injection in protected memory positions, and comprising:

a detection system including

a generation element configured to generate an initial value of a reference indication comprising an application of a mathematical operator to values stored in the protected memory positions,

an updating element configured to update the value of the reference indication on each write in at least one memory position by using the mathematical operator, a reverse mathematical operator and the values stored in the at least one memory position before and after each write in the at least one memory position, and

a checking element configured to, in the presence of a request, check as to whether a criterion involving the values stored in the memory positions at the time of the request and at least one of the mathematical operator and the reverse mathematical operator is or is not satisfied by the value of the reference indication at the time of the request.

18. The integrated circuit according to claim 17 , wherein the updating element is further configured to:

perform a first update of the reference indication comprising an application of the reverse mathematical operator to the preceding value of the reference indication and to the values stored in the at least one memory position before the write operation in the at least one memory position; and

perform a second update of the reference indication comprising the application of the mathematical operator to the value of the reference indication updated in the first update and to the values in the at least one memory position after the write operation in the at least one memory position.

19. The integrated circuit according to claim 17 , wherein the checking element is further configured to apply the mathematical operator to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the value of the reference indication at the time of the request, and if the additional value is different from the value of the reference indication at the time of the request, the checking block is configured to deliver an indication representative of an attack by fault injection.

20. The integrated circuit according to claim 17 , wherein the checking element is further configured to apply the reverse mathematical operator to the value of the reference indication at the time of the request and to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the neutral element of the mathematical operator, and if the additional value is different from the neutral element for the operator, the checking block is configured to deliver an indication representative of an attack by fault injection.

21. A smart card comprising an integrated circuit for detecting an attack by fault injection in protected memory positions, the integrated circuit comprising:

a detection system including

a generation element configured to generate an initial value of a reference indication comprising an application of a mathematical operator to values stored in the protected memory positions,

an updating element configured to update the value of the reference indication on each write in at least one memory position by using the mathematical operator, a reverse mathematical operator and the values stored in the at least one memory position before and after each write in the at least one memory position, and

a checking block configured to, in the presence of a request, check as to whether a criterion involving the values stored in the memory positions at the time of the request and at least one of the mathematical operator and the reverse mathematical operator is or is not satisfied by the value of the reference indication at the time of the request.

22. The smart card according to claim 21 , wherein the updating element of the detection system is further configured to:

perform a first update of the reference indication comprising an application of the reverse mathematical operator to the preceding value of the reference indication and to the values stored in the at least one memory position before the write operation in the at least one memory position; and

perform a second update of the reference indication comprising the application of the mathematical operator to the value of the reference indication updated in the first update and to the values in the at least one memory position after the write operation in the at least one memory position.

23. The smart card according to claim 21 , wherein the checking element of the detection system is further configured to apply the mathematical operator to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the value of the reference indication at the time of the request, and if the additional value is different from the value of the reference indication at the time of the request, the checking element is configured to deliver an indication representative of an attack by fault injection.

24. The smart card according to claim 21 , wherein the checking element of the detection system is further configured to apply the reverse mathematical operator to the value of the reference indication at the time of the request and to the values of the information stored in all the memory positions at the time of the request so as to obtain an additional value, then to compare the additional value with the neutral element of the mathematical operator, and if the additional value is different from the neutral element for the operator, the checking block is configured to deliver an indication representative of an attack by fault injection.

Assignments (2)
NOTICE OF GRANT OF A SECURITY INTEREST IN PATENTS Recorded Aug 1, 2013
From: HIGHWINDS HOLDINGS, INC.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 030937/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2011
From: BANCEL, FREDERIC
To: STMICROELECTRONICS (ROUSSET) SAS
Reel/Frame 026606/0408 →