← Back to Patent Explorer
EP0448262A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Prevention of determination of time of execution of predetermined data processing routine in relation to occurrence of prior observable external event

Assignee: Arris Technology Inc
•
Filing: 1991-03-11
•
Granted: —
•
Expires: 2011-03-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Compromise of a predetermined secure data processing routine (14, 49) by a procedure known as a "clock attack" is prevented by a method that inhibits synchronization with externally generated instructions by preventing determination of the time of execution of the predetermined data processing routine in relation to occurrence of an observable external event that precedes the execution of the predetermined routine. The method includes the step of (a) randomly varying the duration between the occurrence of the observable external event and the execution of the predetermined routine. Step (a) includes the steps of (b) executing one or more interim data processing routines (20, 21, 22, 52) between the occurrence of the observable external event and the execution of the predetermined routine; and (c) randomly varying the duration of said interim routines. Steps (b) and (c) may include the step of (d) randomly assembling m said interim routines for said execution from a group (52) of n stored routines having different durations, wherein m and n are integers, with n being greater than m. Step (d) may include either the step of (e) randomly accessing said m interim routines from a secure memory (51); or the steps of (f) randomly accessing pointers (58) for said m interim routines from a secure memory (60); and (g) accessing said m interim routines from a memory (51) in response to said pointers. Step (c) includes the step of (h) randomly varying the duration of the interim routines in response to dynamically processed data that does not repetitively recur each time said interim routines are accessed. The method further includes the steps of (i) monitoring (26) said interim routines to detect whether said interim routines are being tampered with; and (j) preventing (38) the execution of said predetermined routine in response to detecting that said interim routines are being tampered with. <IMAGE>

Inventors

  • 👤 Roy Allen Griffin Iii
  • 👤 Steven Raney Hart
  • 👤 James Neil Esserman
  • 👤 Ron D. Katznelson
  • 👤 Steven Edward Anderson

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-28 15:29
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/04; G07; G07F; G07F7/00; G07F7/08; G07F7/10; G07F7/1008; G06F21/00; G06F21/70; G06F21/71; G06F21/75; G06F21/755; G06Q; G06Q20/00; G06Q20/30; G06Q20/34; G06Q20/341; G07F7/0806; G07F7/0813; G07F7/082; G06F2221/00; G06F2221/21; G06F2221/2123

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 61 words
A method of preventing the time of execution of a predetermined data processing routine from being determined in relation to the occurrence of an observable external event that precedes the execution of said predetermined routine, comprising the step of (a) randomly varying the duration between the occurrence of the observable external event and the execution of the predetermined routine (14, 49).
Claim 2
Dependent Claim 53 words
A method according to Claim 1, wherein step (a) comprises the steps of (b) executing one or more interim data processing routines (20, 21, 22, 52) between the occurrence of the observable external event and the execution of the predetermined routine (14, 49); and (c) randomly varying the duration of said interim routines.
Claim 3
Dependent Claim 50 words
A method according to Claim 2, wherein steps (b) and (c) comprise the step of (d) randomly assembling (48) m said interim routines for said execution from a group of n stored routines (52) having different durations, wherein m and n are integers, with n being greater than m .
Claim 4
Dependent Claim 26 words
A method according to Claim 3, wherein step (d) comprises the step of (e) randomly accessing said m interim routines (52) from a secure memory (51).
Claim 5
Dependent Claim 45 words
A method according to Claim 3, wherein step (d) comprises the steps of (e) randomly accessing pointers (58) for said m interim routines (52) from a secure memory (60); and (f) accessing said m interim routines from a memory (51) in response to said pointers.
Claim 6
Dependent Claim 46 words
A method according to Claim 2, wherein step (c) comprises the step of (d) providing an instruction during each interim routine (20, 21, 22, 52) that affects the duration of delay for the respective interim routine during a different clock cycle of the different interim routines.
Claim 7
Dependent Claim 70 words
A method according to Claim 6, further comprising the steps of (e) monitoring (26) subroutines of said interim routines preceding and following a subroutine of said interim routine in which the duration-of-delay instruction is provided, to detect whether an attempt has been made to alter said interim routines; and (f) preventing (38) the execution of said predetermined routine in response to detecting a said attempt to alter said interim routines.
Claim 8
Dependent Claim 49 words
A method according to Claim 2, further comprising the steps of (d) monitoring (26) said interim routines to detect whether said interim routines are being tampered with; and (e) preventing (38) the execution of said predetermined routine in response to detecting that said interim routines are being tampered with.
Claim 9
Dependent Claim 44 words
A method according to Claim 8, wherein step (e) comprises the steps of (f) counting (36) occurrences of tampering of said interim routines being detected; and (g) preventing (38) the execution of said predetermined routine in response to said count exceeding a predetermined threshold.
Claim 10
Dependent Claim 35 words
A method according to Claim 9, wherein step (e) further comprises the step of (h) decrementing (39) said count in response to said interim routines being executed without tampering with said interim routines being detected.
Claim 11
Dependent Claim 21 words
A method according to Claim 8, wherein steps (b) and (d) are executed in response to instructions having the same duration.
Claim 12
Dependent Claim 122 words
A method according to Claim 2, further comprising the steps of (d) monitoring (15) said predetermined data processing routine (14) following the execution of said predetermined routine to detect whether an attacker attempts to access the predetermined routine by the technique of attempting such access at a time beginning after occurrence of the observable external event of sufficient duration to encompass the maximum possible total duration of all of the interim routines and the duration of the predetermined routine, and then upon each successive cycle of the predetermined data processing routine making such attempt one clock cycle earlier until the predetermined routine ROUTINE N is accessed; and (e) preventing (38) the execution of said predetermined routine in response to detecting said attempt.
Claim 13
Dependent Claim 91 words
A method according to Claim 1, wherein the predetermined data processing routine is part of an overall larger data processing routine, and wherein step (a) includes the steps of (b) executing one or more interim data processing routines (20, 21, 22, 52) between the occurrence of the observable external event and the execution of the predetermined routine (14, 49), wherein said interim routines includes a data processing routine that is critical to the execution of said overall larger data processing routine; and (c) randomly varying the duration of said interim routines.
Claim 14
Dependent Claim 43 words
A method according to Claim 1, wherein step (a) comprises the step of (b) randomly varying said duration in response to dynamically processed data that does not repetitively recur at the same time in relation to each occurrence of said observable external event.
Claim 15
Dependent Claim 46 words
A method according to Claim 14, wherein step (b) comprises the step of (c) executing a critical subroutine of said predetermined data processing routine using said dynamically processed data, wherein the duration of said critical subroutine is dependent upon the content of said dynamically processed data.
Claim 16
Dependent Claim 26 words
A method according to Claim 15, wherein said critical subroutine comprises the step of (d) moving said dynamically processed data from a source to a destination.
Claim 17
Dependent Claim 53 words
A method according to Claim 1, wherein step (a) comprises the step of (b) randomly varying said duration in response to a combination of dynamically processed data that does not repetitively recur at the same time in relation to each occurrence of said observable external event, and data stored in a secure memory.
Claim 18
Dependent Claim 78 words
A data processing system, comprising means (10, 44) for executing a predetermined data processing routine (14, 49), wherein an observable external event precedes execution of said predetermined routine; and means (10, 44) for randomly varying the duration between the occurrence of the observable external event and the execution of the predetermined routine to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the observable external event.
Claim 19
Dependent Claim 59 words
A system according to Claim 18, wherein the duration varying means comprises means (10, 44, 48) for executing one or more interim data processing routines (20, 21, 22, 52) between the occurrence of the observable external event and the execution of the predetermined routine (14, 49); and means (10, 44) for randomly varying the duration of said interim routines.
Claim 20
Dependent Claim 49 words
A system according to Claim 19, wherein the duration varying means comprises means (44, 48) for randomly assembling m said interim routines for said execution from a group of n stored routines (52) having different durations, wherein m and n are integers, with n being greater than m .
Claim 21
Dependent Claim 25 words
A system according to Claim 20, wherein the assembling means comprises means for randomly accessing said m interim routines (52) from a secure memory (51).
Claim 22
Dependent Claim 49 words
A system according to Claim 20, wherein the assembling means comprises means (44, 48) for randomly accessing pointers (58) for said m interim routines (52) from a secure memory (60); and means (44, 48) for accessing said m interim routines from a memory (51) in response to said pointers.
Claim 23
Dependent Claim 48 words
A system according to Claim 19, wherein the duration varying means comprises means (18, 51) for providing an instruction during each interim routine (20, 21, 22, 52) that affects the duration of delay for the respective interim routine during a different clock cycle of the different interim routines.
Claim 24
Dependent Claim 72 words
A system according to Claim 23, further comprising means (10, 26, 44) for monitoring subroutines of said interim routines preceding and following a subroutine of said interim routine in which the duration-of-delay instruction is provided, to detect whether an attempt has been made to alter said interim routines; and means (10, 38, 44) for preventing the execution of said predetermined routine in response to detecting.a said attempt to alter said interim routines.
Claim 25
Dependent Claim 52 words
A system according to Claim 19, further comprising means (10, 26, 44) for monitoring said interim routines to detect whether said interim routines are being tampered with; and means (10, 38, 44) for preventing the execution of said predetermined routine in response to detecting that said interim routines are being tampered with.
Claim 26
Dependent Claim 48 words
A system according to Claim 25, wherein the preventing means comprises means (10, 36, 44) for counting occurrences of tampering of said interim routines being detected; and means (10, 38, 44) for preventing the execution of said predetermined routine in response to said count exceeding a predetermined threshold.
Claim 27
Dependent Claim 36 words
A system according to Claim 26, wherein the preventing means further comprises means (10, 39, 44) for decrementing said count in response to said interim routines being executed without tampering with said interim routines being detected.
Claim 28
Dependent Claim 25 words
A system according to Claim 25, wherein the executing means (10,44) and the monitoring means (10, 36, 44) respond to instructions having the same duration.
Claim 29
Dependent Claim 125 words
A system according to Claim 19, further comprising means (10, 15, 44) for monitoring said predetermined data processing routine (14) following the execution of said predetermined routine to detect whether an attacker attempts to access the predetermined routine by the technique of attempting such access at a time beginning after occurrence of the observable external event of sufficient duration to encompass the maximum possible total duration of all of the interim routines and the duration of the predetermined routine, and then upon each successive cycle of the predetermined data processing routine making such attempt one clock cycle earlier until the predetermined routine ROUTINE N is accessed; and means (10, 38, 44) for preventing the execution of said predetermined routine in response to detecting said attempt.
Claim 30
Dependent Claim 96 words
A system according to Claim 18, wherein the predetermined data processing routine is part of an overall larger data processing routine, and wherein the duration varying means comprises means (10, 44) for executing one or more interim data processing routines (20, 21, 22, 52) between the occurrence of the observable external event and the execution of the predetermined routine (14, 49), wherein said interim routines includes a data processing routine that is critical to the execution of said overall larger data processing routine; and means (10, 44) for randomly varying the duration of said interim routines.
Claim 31
Dependent Claim 45 words
A system according to Claim 18, wherein the duration varying means comprises means (10, 44) for randomly varying said duration in response to dynamically processed data that does not repetitively recur at the same time in relation to each occurrence of said observable external event.
Claim 32
Dependent Claim 48 words
A system according to Claim 31, wherein the duration varying means comprises means (10, 44) for executing a critical subroutine of said predetermined data processing routine using said dynamically processed data, wherein the duration of said critical subroutine is dependent upon the content of said dynamically processed data.
Claim 33
Dependent Claim 28 words
A system according to Claim 32, wherein the critical subroutine executing means comprises means (10, 44) for moving said dynamically processed data from a source to a destination.
Claim 34
Dependent Claim 55 words
A system according to Claim 18, wherein the duration varying means comprises means (10, 44) for randomly varying said duration in response to a combination of dynamically processed data that does not repetitively recur at the same time in relation to each occurrence of said observable external event, and data stored in a secure memory.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag