IP Library Granted Patent US 7,516,902
Granted Patent B2
US 7,516,902 · App. 11/283,096 · Granted Apr 14, 2009

Protection of a microcontroller

Assignee: Proton World International N.V.
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 7,516,902
App. No.
11/283,096
Granted
Apr 14, 2009
Kind
B2
Abstract

A method for protecting at least one section of a program executed by a microcontroller, included before execution of the section, decrementing or incrementing at least one first counter and storing its state in a non-volatile memory of the microcontroller; in case of the detection of an attack attempt by the microcontroller, activating a flag in the microcontroller RAM; and at the end of the execution of the program section, checking the flag state.

Claims (34)

1. A method for protecting at least one section of a program executed by a microcontroller, comprising:

before execution of the at least one section, decrementing or incrementing at least one counter and storing a state of the at least one counter in a non-volatile memory of the microcontroller;

when an attack attempt is detected by the microcontroller, activating a flag in a RAM of the microcontroller, wherein the activation of the flag in the RAM is not detectable by an attacker performing the attack attempt;

at the end of the execution of the at least one section, checking a state of the flag;

if the state of the flag is active, executing an action against the attack attempt; and

if the state of the flag is not active:

if the at least one counter was decremented, incrementing the at least one counter; and

if the at least one counter was incremented, decrementing the at least one counter.

2. The method of claim 1 , wherein the state of the first counter is checked against a first threshold before execution of said section to implement a protection reaction in case the threshold is exceeded.

3. The method of claim 2 , wherein said checking is also performed before providing information at the microcontroller input/output.

4. The method of claim 2 , wherein said first threshold is set to a value randomly selected from a range.

5. The method of claim 1 , wherein a second counter is decremented or incremented if flag is, at the end of the program section, not activated.

6. The method of claim 5 , wherein the second counter is tested against a second threshold before execution of the program section.

7. The method of claim 5 , wherein the second counter is incremented at the end of the execution of said program section.

8. The method of claim 1 , wherein an initial state of the first counter is set to a value randomly selected from a range.

9. A microcontroller for executing a program comprising at least one program section, the microcontroller comprising:

a central unit;

a random access memory (RAM);

an input/output port; and

a non-volatile memory, wherein at least one area of the non-volatile memory is intended for storage of a state of at least one counter for implementation of a method for protecting the at least one program section, the method comprising:

before execution of the at least one program section, decrementing or incrementing the at least one counter and storing the state of the at least one counter in the non-volatile memory;

when an attack attempt is detected by the microcontroller, activating a flag in the RAM, wherein the activation of the flag in the RAM is not detectable by an attacker performing the attack attempt;

at the end of the execution of the at least one program section, checking a state of the flag;

if the state of the flag is active, executing an action against the attack attempt; and

if the state of the flag is not active:

if the at least one counter was decremented, incrementing the at least one counter; and

if the at least one counter was incremented, decrementing the at least one counter.

10. The microcontroller of claim 9 , wherein the state of the first counter is checked against a first threshold before execution of the at least one program section to implement a protection reaction if the first threshold is exceeded.

11. The microcontroller of claim 10 , wherein the checking is also performed before providing information at a microcontroller input/output.

12. The microcontroller of claim 11 , wherein the first threshold is set to a value randomly selected from a range.

13. The microcontroller of claim 9 , wherein a second counter is decremented or incremented if, at the end of the at least one program section, the flag is not active.

14. The microcontroller of claim 13 , wherein the second counter is tested against a second threshold before execution of the at least one program section.

15. The microcontroller of claim 13 , wherein the second counter is incremented at the end of the execution of the at least one program section.

16. The microcontroller of claim 9 , wherein an initial state of the first counter is set to a value randomly selected from a range.

Assignments (2)
CHANGE OF NAME Recorded Oct 9, 2024
From: PROTON WORLD INTERNATIONAL
To: STMICROELECTRONICS BELGIUM
Reel/Frame 069174/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2005
From: MODAVE, JEAN-LOUIS
To: PROTON WORLD INTERNATIONAL N.V.
Reel/Frame 017264/0547 →
Priority Claims (1)
FR 04 52701 · Nov 19, 2004 · national
Continuity (1)
Related Publication 20060112436A1 · May 25, 2006