Claims Analysis
Total Claims: 44
Claim 1
Independent Claim
115 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing a random-content signal during each overall larger data processing routine; and (b) varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to said random-content signal.
Claim 2
Independent Claim
115 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing a random-content signal during each overall larger data processing routine; and (b) varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to said random-content signal.
Claim 3
Independent Claim
125 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routne, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) executing one or more interim data processing routines between an occurrence of the externally observable event and the execution of the predetermined routine; and (b) randomly varying the duration of said interim routines to thereby randomly vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine.
Claim 4
Independent Claim
125 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routne, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) executing one or more interim data processing routines between an occurrence of the externally observable event and the execution of the predetermined routine; and (b) randomly varying the duration of said interim routines to thereby randomly vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine.
Claim 5
Dependent Claim
47 words
A method according to claim 2, wherein steps (a) and (b) comprise the step of (c) randomly assembling m said interim routines for said execution from a group of n stored routines having different durations, wherein m and n are integers, with n being greater than m.
Claim 6
Dependent Claim
24 words
A method according to claim 3, wherein step (c) comprises the step of (d) randomly accessing said m interim routines from a secure memory.
Claim 7
Dependent Claim
41 words
A method according to claim 3, wherein step (c) comprises the steps of (d) randomly accessing pointers for said m interim routines from a secure memory; and (e) accessing said m interim routines from a memory in response to said pointers.
Claim 8
Dependent Claim
44 words
A method according to claim 2, wherein step (b) comprises the step of (c) providing and executing an instruction during each interim routine that affects the duration of delay for the respective interim routine during a different clock cycle of the different interim routines.
Claim 9
Dependent Claim
68 words
A method according to claim 6, further comprising the steps of (d) 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 (e) preventing the execution of said predetermined routine in response to detecting a said attempt to alter said interim routines.
Claim 10
Dependent Claim
47 words
A method according to claim 2, further comprising the steps of (c) monitoring said interim routines to detect whether said interim routines are being tampered with; and (d) preventing the execution of said predetermined routine in response to detecting that said interim routines are being tampered with.
Claim 11
Dependent Claim
42 words
A method according to claim 8, wherein step (d) comprises the steps of (e) counting occurrences of tampering of said interim routines being detected; and (f) preventing the execution of said predetermined routine in response to said count exceeding a predetermined threshold.
Claim 12
Dependent Claim
34 words
A method according to claim 9, wherein step (d) further comprises the step of (g) decrementing said count in response to said interim routines being executed without tampering with said interim routines being detected.
Claim 13
Dependent Claim
21 words
A method according to claim 8, wherein steps (a) and (c) are executed in response to instructions having the same duration.
Claim 14
Dependent Claim
119 words
A method according to claim 2, further comprising the steps of (c) monitoring said predetermined data processing routine 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 externally observable 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 (d) preventing the execution of said predetermined routine in response to detecting said attempt.
Claim 15
Independent Claim
147 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) executing one or more interim data processing routines between an occurrence of the externally observable event and the execution of the predetermined routine, wherein said interim routines includes a data processing routine that is critical to the execution of said overall larger data processing routine; and (b) randomly varying the duration of said interim routines to thereby randomly vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine.
Claim 16
Independent Claim
147 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) executing one or more interim data processing routines between an occurrence of the externally observable event and the execution of the predetermined routine, wherein said interim routines includes a data processing routine that is critical to the execution of said overall larger data processing routine; and (b) randomly varying the duration of said interim routines to thereby randomly vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine.
Claim 17
Independent Claim
136 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing data that is dynamically processed during the overall larger routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and (b) varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to said dynamically processed data.
Claim 18
Independent Claim
136 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing data that is dynamically processed during the overall larger routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and (b) varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to said dynamically processed data.
Claim 19
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 20
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 21
Independent Claim
145 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing data that is dynamically processed during the overall larger routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and (b) the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to a combination of said dynamically processed data and data stored in a secure memory.
Claim 22
Independent Claim
145 words
A method of preventing the time of execution of a predetermined data processing routine included in an overall larger data processing routine executed by a data processing system from being determined in relation to an occurrence of an externally observable event that precedes the execution of said predetermined routine, wherein said externally observable event is related to or affected by execution of the overall larger routine, comprising the steps of (a) providing data that is dynamically processed during the overall larger routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and (b) the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each overall larger data processing routine in response to a combination of said dynamically processed data and data stored in a secure memory.
Claim 23
Dependent Claim
104 words
A data processing system, comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing a random-content signal during each macro routine; and means for varying the duration between the occurrence of the externally observable event and the execution of the predetermined routine in response to said random-content signal to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 24
Dependent Claim
104 words
A data processing system, comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing a random-content signal during each macro routine; and means for varying the duration between the occurrence of the externally observable event and the execution of the predetermined routine in response to said random-content signal to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 25
Independent Claim
122 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for executing one or more interim data processing routines between the occurrence of the externally observable event and the execution of the predetermined routine; and means for randomly varying the duration of said interim routines to thereby vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine in order to prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 26
Independent Claim
122 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for executing one or more interim data processing routines between the occurrence of the externally observable event and the execution of the predetermined routine; and means for randomly varying the duration of said interim routines to thereby vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine in order to prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 27
Dependent Claim
45 words
A system according to claim 19, wherein the duration varying means comprises means for randomly assembling m said interim routines for said execution from a group of n stored routines having different durations, wherein m and n are integers, with n being greater than m.
Claim 28
Dependent Claim
23 words
A system according to claim 20, wherein the assembling means comprises means for randomly accessing said m interim routines from a secure memory.
Claim 29
Dependent Claim
41 words
A system according to claim 20, wherein the assembling means comprises means for randomly accessing pointers for said m interim routines from a secure memory; and means for accessing said m interim routines from a memory in response to said pointers.
Claim 30
Dependent Claim
44 words
A system according to claim 19, wherein the duration varying means comprises means for providing and executing an instruction during each interim routine that affects the duration of delay for the respective interim routine during a different clock cycle of the different interim routines.
Claim 31
Dependent Claim
67 words
A system according to claim 23, further comprising means 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 for preventing the execution of said predetermined routine in response to detecting a said attempt to alter said interim routines.
Claim 32
Dependent Claim
46 words
A system according to claim 19, further comprising means for monitoring said interim routines to detect whether said interim routines are being tampered with; and means for preventing the execution of said predetermined routine in response to detecting that said interim routines are being tampered with.
Claim 33
Dependent Claim
42 words
A system according to claim 25, wherein the preventing means comprises means for counting occurrences of tampering of said interim routines being detected; and means for preventing the execution of said predetermined routine in response to said count exceeding a predetermined threshold.
Claim 34
Dependent Claim
33 words
A system according to claim 26, wherein the preventing means further comprises means for decrementing said count in response to said interim routines being executed without tampering with said interim routines being detected.
Claim 35
Dependent Claim
21 words
A system according to claim 25, wherein the executing means and the monitoring means respond to instructions having the same duration.
Claim 36
Dependent Claim
118 words
A system according to claim 19, further comprising means for monitoring said predetermined data processing routine 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 externally observable 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 for preventing the execution of said predetermined routine in response to detecting said attempt.
Claim 37
Independent Claim
141 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for executing one or more interim data processing routines between the occurrence of the externally observable event and the execution of the predetermined routine, wherein said interim routines include a data processing routine that is critical to the execution of said macro routine; and means for randomly varying the duration of said interim routines to thereby vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine in order to prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 38
Independent Claim
141 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for executing one or more interim data processing routines between the occurrence of the externally observable event and the execution of the predetermined routine, wherein said interim routines include a data processing routine that is critical to the execution of said macro routine; and means for randomly varying the duration of said interim routines to thereby vary the duration between the occurrence of the externally observable event and the execution of the predetermined routine in order to prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 39
Independent Claim
129 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing data that is dynamically processed during the macro routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and means for varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each macro routine in response to said dynamically processed data to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 40
Independent Claim
129 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing data that is dynamically processed during the macro routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and means for varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each macro routine in response to said dynamically processed data to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 41
Dependent Claim
46 words
A system according to claim 31, wherein the duration varying means comprises means 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 42
Dependent Claim
26 words
A system according to claim 32, wherein the critical subroutine executing means comprises means for moving said dynamically processed data from a source to a destination.
Claim 43
Independent Claim
139 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing data that is dynamically processed during the macro routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and means for varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each macro routine in response to a combination of said dynamically processed data and data stored in a secure memory to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.
Claim 44
Independent Claim
139 words
A system comprising means for executing a macro data processing routine including a smaller predetermined data processing routine, wherein an externally observable event related to or affected by execution of the macro routine precedes execution of said predetermined routine; means for providing data that is dynamically processed during the macro routine and that does not repetitively recur at the same time in relation to each occurrence of said externally observable event; and means for varying the duration between an occurrence of the externally observable event and the execution of the predetermined routine during each macro routine in response to a combination of said dynamically processed data and data stored in a secure memory to thereby prevent the time of execution of the predetermined data processing routine from being determined in relation to the occurrence of the externally observable event.