IP Library Granted Patent US 9,916,281
Granted Patent B2
US 9,916,281 · App. 15/600,006 · Granted Mar 13, 2018

Processing system with a secure set of executable instructions and/or addressing scheme

Inventor: Philippe Escalona (Chatillon, FR)
Assignee: STMicroelectronics SA
G06F15/76G06F9/30156G06F21/00G06F21/75
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 9,916,281
App. No.
15/600,006
Granted
Mar 13, 2018
Kind
B2
Abstract

A method for securing a data processing system having a processing unit is disclosed. At least a group of N1 digital words of m1 bits is selected from among the set of M1 digital words. N1 is less than M1. These words are selected in such a way that each selected digital word differs from all the other selected digital words by a number of bits at least equal to an integer p which is at least equal to 2. The group of N1 digital words of m1 bits forms at least one group of N1 executable digital instructions. The processing unit is configured to make it capable of executing each instruction of the at least one group of N1 executable digital instructions.

Claims (59)

1. A smartcard comprising:

a controller configured to execute instructions from a set of secured instructions, the set of secured instructions comprising

a first set of N1 instructions of m1 bits, wherein

m1 is a positive integer number,

N1 is a positive integer number,

2 m1 is greater than N1, and

each instruction of the first set differ from all other instructions of the first set by a number of bits greater than or equal to p1, p1 being a positive integer number greater than or equal to 2.

2. The smartcard of claim 1 , further comprising an integrated circuit, the integrated circuit comprising the controller.

3. The smartcard of claim 1 , further comprising a storage unit configured to store program instructions compatible with the set of secured instructions.

4. The smartcard of claim 1 , wherein the set of secured instructions further comprises a set of invalid instructions, the set of invalid instructions being non-overlapping with the first set.

5. The smartcard of claim 4 , wherein the controller is further configured to issue an alert when the controller executes an instruction of the set of invalid instructions.

6. The smartcard of claim 1 , wherein the set of secured instructions further comprises a second set of N2 instructions of m2 bits, wherein

m2 is a positive integer number,

N2 is a positive integer number,

2 m2 is greater than N2, and

each instruction of the second set differ from all other instructions of the second set by a number of bits greater than or equal to p2, p2 being a positive integer number greater than or equal to 9.

7. The smartcard of claim 6 , wherein instructions of the second set are instructions of a same type of operation.

8. The smartcard of claim 7 , wherein flipping a bit of an instruction of the second set results in an instruction of the first set.

9. A method for securing a smartcard, the method comprising:

generating a first set of N1 instructions of m1 bits, wherein

m1 is a positive integer number,

N1 is a positive integer number,

2 m1 is greater than N1, and

each instruction of the first set differ from all other instructions of the first set by a number of bits greater than or equal to pi, pi being a positive integer number greater than or equal to 2; and

configuring a controller to make it capable of executing each instruction of the first set.

10. The method of claim 9 , further comprising storing program instructions compatible with the first set in a storage unit coupled to the controller.

11. The method of claim 10 , further comprising generating a set of invalid instructions, the set of invalid instructions being non-overlapping with the first set.

12. The method of claim 11 , further comprising issuing an alert when executing an instruction of the set of invalid instructions.

13. The method of claim 11 , further comprising blocking the smartcard when executing an instruction of the set of invalid instructions.

14. The method of claim 9 , further comprising generating a second set of N2 instructions of m2 bits, wherein

m2 is a positive integer number,

N2 is a positive integer number,

2 m2 is greater than N2, and

each instruction of the second set differ from all other instructions of the second set by a number of bits greater than or equal to p2, p2 being a positive integer number greater than or equal to 2.

15. The method of claim 14 , wherein instructions of the second set are instructions of a same type of operation.

16. The method of claim 15 , wherein flipping a bit of an instruction of the second set results in an instruction of the first set.

17. A method comprising:

selecting a first set of N1 codes from a first group of 2 m1 codes, wherein

m1 is a positive integer number,

N1 is a positive integer number,

2 m1 is greater than N1, and

each code of the first set differ from all other codes of the first set by a number of bits greater than or equal to p, p being a positive integer number greater than or equal to 2;

selecting a second set of N2 codes from the first group, wherein the first set and the second set are non-overlapping; and

storing codes of the first set into a storage device.

18. The method of claim 17 , further comprising configuring a controller to make it capable of executing instructions having instruction codes corresponding to codes of the first set.

19. The method of claim 17 , wherein N2 is zero.

20. The method of claim 17 , wherein the second set corresponds to a set of invalid instructions.

21. A method of operating a smartcard, the method comprising:

retrieving a first instruction from a storage device, wherein

the first instruction is an instruction from a set of secured instruction,

the set of secured instructions comprising a first set of N1 instructions of m1 bits,

m1 is a positive integer number,

N1 is a positive integer number,

2 m1 is greater than N1, and

each instruction of the first set differ from all other instructions of the first set by a number of bits greater than or equal to p1, p1 being a positive integer number greater than or equal to 2; and

executing the secured instruction.

22. The method of claim 21 , wherein the set of secured instructions further comprises a set of invalid instructions, the set of invalid instructions being non-overlapping with the first set, the method further comprising:

executing a second instruction from the set of invalid instructions; and

issuing an alert after executing the second instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: STMICROELECTRONICS SA
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 060620/0769 →
Priority Claims (1)
FR 13 60126 · Oct 17, 2013 · national
Continuity (2)
Continuation 14511843 · Oct 10, 2014
Related Publication 20170255591A1 · Sep 7, 2017