← Back to Patent Explorer
US6205550B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Tamper resistant methods and apparatus

Assignee: Intel Corp
•
Filing: 1997-09-05
•
Granted: 2001-03-20
•
Expires: 2017-09-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In one apparatus, a number of obfuscated programming instructions are equipped to self-verify whether execution of the obfuscated programming instructions is being observed. In another apparatus, a number of obfuscated programming instruction are equipped to determine whether the apparatus is being operated in a mode that supports single step execution of the obfuscated programming instructions. In yet another apparatus, a number of obfuscated programming instruction are equipped to verify whether an amount of elapsed execution time has exceeded a threshold. In yet another apparatus, a first and a second group of obfuscated programming instruction are provided to implement a first and a second tamper resistant technique respectively, with the first and the second group of programming instructions sharing a storage location for a first and a second key value corresponding to the first and the second tamper resistant technique.

Inventors

  • 👤 Joseph M. Nardone
  • 👤 Richard P. Mangold
  • 👤 Jody L. Pfotenhauer
  • 👤 Keith L. Shippy
  • 👤 David W. Aucsmith
  • 👤 Richard L. Maliszewski
  • 👤 Gary L. Graunke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 23:52
CPC Classifications
H; H04; H04L; H04L9/00; G; G06; G06F; G06F12/00; G06F12/14; G06F12/1408; G06F21/00; G06F21/10; G06F21/12; G06F21/14; G06F21/50; G06F21/52; G06F21/57; G06F21/70; G06F21/78; G06F21/79; G11; G11B; G11B20/00; G11B20/00086; G06F2221/00; G06F2221/21; G06F2221/2107; G06F2221/2135; G06F2221/2151

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 58 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to self-verify whether execution of the plurality of obfuscated programming instructions is being observed, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 2
Independent Claim 58 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to self-verify whether execution of the plurality of obfuscated programming instructions is being observed, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 3
Dependent Claim 48 words
The apparatus as set forth in claim 1 , wherein the plurality of obfuscated cells of programming instructions include obfuscated cells of programming instructions designed to determine whether the apparatus is being operated in a mode that supports single step execution of the obfuscated cells of programming instructions.
Claim 4
Dependent Claim 41 words
The apparatus as set forth in claim 2 , wherein the plurality of obfuscated cells of programming instructions include obfuscated cells of programming instructions designed to access a state variable of the apparatus to perform said single step execution support determination.
Claim 5
Dependent Claim 38 words
The apparatus as set forth in claim 1 , wherein the plurality of obfuscated cells of programming instructions include obfuscated cells of programming instructions designed to verify whether an amount of elapsed execution time has exceeded a threshold.
Claim 6
Dependent Claim 39 words
The apparatus as set forth in claim 4 , wherein the plurality of obfuscated cells of programming instructions further include obfuscated cells of programming instructions designed to calculate the amount of elapsed execution time based on a recorded timestamp.
Claim 7
Dependent Claim 50 words
The apparatus as set forth in claim 5 , wherein the plurality of obfuscated cells of programming instructions further include obfuscated cells of programming instructions designed to retrieve a current value of a timer of the apparatus, and store the retrieved current value of the timer as the recorded timestamp.
Claim 8
Dependent Claim 47 words
The apparatus as set forth in claim 6 , wherein the obfuscated cells of programming instructions designed to store the retrieved current value of the timer as the recorded timestamp/store the retrieved current value in a storage location shared with at least one other tamper resistant technique.
Claim 9
Independent Claim 59 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) self-verifying by the plurality of obfuscated cells of programming instructions that the execution is not being observed; and c) terminating said execution of (a) if (b) verified that the execution is being observed.
Claim 10
Independent Claim 59 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) self-verifying by the plurality of obfuscated cells of programming instructions that the execution is not being observed; and c) terminating said execution of (a) if (b) verified that the execution is being observed.
Claim 11
Dependent Claim 36 words
The method of claim 8 , wherein (b) comprises the plurality of obfuscated cells of programming instructions determining whether the obfuscated cells of programming instructions are being executed in a mode that supports single step execution.
Claim 12
Dependent Claim 29 words
The method of claim 9 , wherein (b) comprises the plurality of obfuscated cells of programming instructions accessing a state variable to make said single step execution support determination.
Claim 13
Dependent Claim 29 words
The method of claim 8 , wherein (b) comprises the plurality of obfuscated cells of programming instructions verifying whether an amount of elapsed execution time has exceeded a threshold.
Claim 14
Dependent Claim 22 words
The method of claim 11 , wherein (b) further comprises calculating the amount of elapsed execution time based on a recorded timestamp.
Claim 15
Dependent Claim 30 words
The method of claim 12 , wherein (b) further comprises retrieving a current value of a timer, and storing the retrieved current value of the timer as the recorded timestamp.
Claim 16
Dependent Claim 24 words
The method of claim 13 , wherein (b) comprises storing the retrieved current value in a storage location shared with another tamper resistant technique.
Claim 17
Independent Claim 67 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to determine whether the apparatus is being operated in a mode that supports single step execution of the obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an intercell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 18
Independent Claim 67 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to determine whether the apparatus is being operated in a mode that supports single step execution of the obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an intercell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 19
Dependent Claim 41 words
The apparatus as set forth in claim 15 , wherein the plurality of obfuscated cells of programming instructions include obfuscated cells of programming instructions designed to access a state variable of the apparatus to perform said single step execution support determination.
Claim 20
Independent Claim 69 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) determining whether the obfuscated cells of programming instructions are being executed in a mode that supports single step execution; and c) terminating said execution of (a) if (b) verified that the execution is being executed in a mode that supports single step execution.
Claim 21
Independent Claim 69 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) determining whether the obfuscated cells of programming instructions are being executed in a mode that supports single step execution; and c) terminating said execution of (a) if (b) verified that the execution is being executed in a mode that supports single step execution.
Claim 22
Dependent Claim 29 words
The method of claim 17 , wherein (b) comprises the plurality of obfuscated cells of programming instructions accessing a state variable to make said single step execution support determination.
Claim 23
Independent Claim 57 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to verify whether an amount of elapsed execution time has exceeded a threshold, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 24
Independent Claim 57 words
An apparatus comprising: a storage medium having stored therein a plurality of obfuscated cells of programming instructions designed to verify whether an amount of elapsed execution time has exceeded a threshold, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to the storage medium for executing the programming instructions.
Claim 25
Dependent Claim 39 words
The apparatus as set forth in claim 19 , wherein the plurality of obfuscated cells of programming instructions further include obfuscated cells of programming instructions designed to calculate the amount of elapsed execution time based on a recorded timestamp.
Claim 26
Dependent Claim 50 words
The apparatus as set forth in claim 20 , wherein the plurality of obfuscated cells of programming instructions further include obfuscated cells of programming instructions designed to retrieve a current value of a timer of the apparatus, and store the retrieved current value of the timer as the recorded timestamp.
Claim 27
Dependent Claim 48 words
The apparatus as set forth in claim 21 , wherein the obfuscated cells of programming instructions designed to store the retrieved current value of the timer as the recorded timestamp, store the retrieved current value in a storage location shared with at least one other tamper resistant technique.
Claim 28
Independent Claim 54 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) verifying whether an amount of elapsed execution time has exceeded a threshold; and c) terminating said execution of (a) if (b) verified that the execution is being observed.
Claim 29
Independent Claim 54 words
A method comprising: a) executing a plurality of obfuscated cells of programming instructions, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; b) verifying whether an amount of elapsed execution time has exceeded a threshold; and c) terminating said execution of (a) if (b) verified that the execution is being observed.
Claim 30
Dependent Claim 22 words
The method of claim 23 , wherein (b) further comprises calculating the amount of elapsed execution time based on a recorded timestamp.
Claim 31
Dependent Claim 30 words
The method of claim 24 , wherein (b) further comprises retrieving a current value of a timer, and storing the retrieved current value of the timer as the recorded timestamp.
Claim 32
Dependent Claim 24 words
The method of claim 25 , wherein (b) comprises storing the retrieved current value in a storage location shared with another tamper resistant technique.
Claim 33
Independent Claim 100 words
An apparatus comprising: a storage medium having stored therein a first and a second plurality of obfuscated cells of programming instructions designed to implement a first anti-observation tamper resistant technique and an observation detection tamper resistant technique respectively, with the first and the second plurality of obfuscated cells of programming instructions sharing a storage location for a first and a second key value corresponding to the first anti-observation and the observation detection tamper resistant techniques, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to storage medium for executing the programming instructions.
Claim 34
Independent Claim 100 words
An apparatus comprising: a storage medium having stored therein a first and a second plurality of obfuscated cells of programming instructions designed to implement a first anti-observation tamper resistant technique and an observation detection tamper resistant technique respectively, with the first and the second plurality of obfuscated cells of programming instructions sharing a storage location for a first and a second key value corresponding to the first anti-observation and the observation detection tamper resistant techniques, wherein the obfuscated cells are mutated through an inter-cell dependent mutation process; and an execution unit coupled to storage medium for executing the programming instructions.
Claim 35
Dependent Claim 55 words
The apparatus as set forth in claim 27 , wherein the first plurality of obfuscated cells of programming instructions are designed to implement a key based secret retrieval technique, and the second plurality of obfuscated cells of programming instructions are designed to verify that an amount of elapsed execution time has not exceeded a threshold.
Claim 36
Dependent Claim 64 words
The apparatus as set forth in claim 27 , wherein the storage medium further having stored therein a third plurality of obfuscated cells of programming instructions designed to implement a second anti-observation tamper resistant technique, with the third plurality of obfuscated cells of programming instructions also sharing the same storage location for a third key value corresponding to the second anti-observation tamper resistant technique.
Claim 37
Dependent Claim 71 words
The apparatus as set forth in claim 29 , wherein the first plurality of obfuscated cells of programming instructions are designed to implement a key based secret retrieval technique, the second plurality of obfuscated cells of programming instructions are designed to verify that an amount of elapsed execution time has not exceeded a threshold, and the third plurality of obfuscated cells of programming instructions are designed to implement an authentication process.
Claim 38
Independent Claim 93 words
A method comprising: a) executing a first plurality of obfuscated cells of programming instructions to implement a first anti-observation tamper resistant technique, including storing a first key value corresponding to the first anti-observation tamper resistant technique in a shared storage location, wherein the obfuscated cells are mutated through an intercell dependent mutation process; and b) executing a second plurality of obfuscated cells of programming instructions to implement an observation detection tamper resistant technique, including storing a second key value corresponding to the observation detection tamper resistant technique in the same shared storage location.
Claim 39
Independent Claim 93 words
A method comprising: a) executing a first plurality of obfuscated cells of programming instructions to implement a first anti-observation tamper resistant technique, including storing a first key value corresponding to the first anti-observation tamper resistant technique in a shared storage location, wherein the obfuscated cells are mutated through an intercell dependent mutation process; and b) executing a second plurality of obfuscated cells of programming instructions to implement an observation detection tamper resistant technique, including storing a second key value corresponding to the observation detection tamper resistant technique in the same shared storage location.
Claim 40
Dependent Claim 50 words
The method of claim 31 , wherein the method further comprises (c) executing a third plurality of obfuscated cells of programming instructions to implement a second anti-observation tamper resistant technique, including storing a third key value corresponding to the second anti-observation tamper resistant technique in the same shared storage location.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-19 2004-09-18 2005-03-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-19 2008-09-18 2009-03-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-19 2012-09-18 2013-03-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag