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

Tamper resistant methods and apparatus

Assignee: Intel Corp
•
Filing: 1996-06-13
•
Granted: 1999-04-06
•
Expires: 2016-06-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In accordance with a first aspect of the present invention, a security sensitive program that operates with a secret is made tamper resistant by distributing the secret in space as well as in time. In accordance with a second aspect of the present invention, a security sensitive program is made tamper resistant by obfuscating the program. In accordance with a third aspect of the present invention, a security sensitive application is made tamper resistant by isolating its security sensitive functions, and making the isolated security sensitive functions tamper resistant by distributing the secrets of the security sensitive functions in time as well as in space, and/or obfuscating the security sensitive functions. In one embodiment where obfuscation is employed, the pseudo-randomly selected pattern(s) of mutations is (are) unique for each installation. In accordance with a fourth aspect of the present invention, a security sensitive system with security sensitive applications is made further tamper resistant by deploying an interlocking trust mechanism. In accordance with a fifth aspect of the present invention, a content industry association, in conjunction with content manufacturers, content reader manufacturers, and content player manufacturers of the industry jointly implement a coordinated encryption/decryption scheme, with the player apparatus manufactured by the content player manufacturers employing playing software that include tamper resistant decryption functions.

Inventors

  • 👤 David Aucsmith
  • 👤 Gary Graunke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 00:12
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/50; G06F21/57; G06F21/10; G06F21/12; G06F21/14

Claims Analysis

Total Claims: 77
Claim 1
Independent Claim 61 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium coupled to the execution unit, having stored therein a plurality of programming instruction blocks to be executed by the execution unit during operation, the programming instruction blocks operating on corresponding subparts of a secret distributed among them, and the execution being distributed over a period of time.
Claim 2
Independent Claim 61 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium coupled to the execution unit, having stored therein a plurality of programming instruction blocks to be executed by the execution unit during operation, the programming instruction blocks operating on corresponding subparts of a secret distributed among them, and the execution being distributed over a period of time.
Claim 3
Dependent Claim 25 words
The apparatus as set forth in claim 1, wherein the programming instruction blocks jointly implement a decryption function, and the secret is a private key.
Claim 4
Dependent Claim 35 words
The apparatus as set forth in claim 1, wherein one or more of the programming instruction blocks further perform one or more unrelated tasks to further obscure the operations on the subparts of the secret.
Claim 5
Dependent Claim 81 words
A machine implemented method for executing a program that operates on a secret in a tamper resistant manner, the method comprising the steps of: a) executing a first unrolled subprogram of the program at a first point in time, with the first unrolled subprogram operating on a first subpart of the secret; and b) executing a second unrolled subprogram of the program at a second point in time, with the second unrolled subprogram operating on a second subpart of the secret.
Claim 6
Dependent Claim 81 words
A machine implemented method for executing a program that operates on a secret in a tamper resistant manner, the method comprising the steps of: a) executing a first unrolled subprogram of the program at a first point in time, with the first unrolled subprogram operating on a first subpart of the secret; and b) executing a second unrolled subprogram of the program at a second point in time, with the second unrolled subprogram operating on a second subpart of the secret.
Claim 7
Dependent Claim 29 words
The method as set forth in claim 4, wherein the first and second unrolled subprograms are unrolled subprograms of a decryption function; and the secret is a private key.
Claim 8
Dependent Claim 71 words
The method a s set forth in claim 4, wherein step (a) further includes the first unrolled subprogram performing at least a first unrelated task; and step (b) further includes the second unrolled subprogram performing at least a second unrelated task; wherein said at least first and second unrelated tasks are performed to further obscure the first and second unrolled subprograms' operation on the first and second subparts of the secret.
Claim 9
Independent Claim 65 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions to be executed by the execution unit during operation, wherein when executed, in response to a secret being provided, the programming instructions partition the secret into a plurality of subparts, and generate a plurality of programming instruction blocks that operate on the subparts.
Claim 10
Independent Claim 65 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions to be executed by the execution unit during operation, wherein when executed, in response to a secret being provided, the programming instructions partition the secret into a plurality of subparts, and generate a plurality of programming instruction blocks that operate on the subparts.
Claim 11
Dependent Claim 40 words
The apparatus as set forth in claim 7, wherein the apparatus further includes a library having an entry programming instruction block, and a basis programming instruction block, to be accessed by the programming instructions in generating the programming instruction blocks.
Claim 12
Dependent Claim 68 words
The apparatus as set forth in claim 7, wherein during execution, the entry programming instruction block initializes a table of values for use by the basis programming blocks to operate on their corresponding subparts of the secret; and the basis programming blocks' operations on their corresponding subparts of the secret, include looking up values initialized in the table using the basis programming blocks' corresponding subparts of the secret.
Claim 13
Dependent Claim 50 words
A machine implemented method for generating a tamper resistant program to operate on a secret, the method comprising the steps of: a) receiving the secret; b) partitioning the secret into a plurality of subparts; and c) generating a plurality of subprograms to correspondingly operate on the subparts of the secret.
Claim 14
Dependent Claim 50 words
A machine implemented method for generating a tamper resistant program to operate on a secret, the method comprising the steps of: a) receiving the secret; b) partitioning the secret into a plurality of subparts; and c) generating a plurality of subprograms to correspondingly operate on the subparts of the secret.
Claim 15
Dependent Claim 27 words
The method as set forth in claim 10, wherein step (c) includes accessing a library having an entry subprogram, and a basis subprogram to generate the subprograms.
Claim 16
Dependent Claim 63 words
The method as set forth in claim 11, wherein during execution, the entry subprogram initializes a table of values for use by the basis subprograms to operate on their corresponding subparts of the secret; and the basis subprograms' operations on their corresponding subparts of the secret, include looking up values initialized in the table using the basis subprograms' corresponding subparts of the secret.
Claim 17
Independent Claim 75 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instruction blocks to be executed by the execution unit, the programming instruction blocks being stored in a mutated form, except for at least one programming instruction block, which is stored in a plaintext for m, wherein the mutated programming instruction blocks are recovered into the plaintext form during execution on an as needed basis.
Claim 18
Independent Claim 75 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instruction blocks to be executed by the execution unit, the programming instruction blocks being stored in a mutated form, except for at least one programming instruction block, which is stored in a plaintext for m, wherein the mutated programming instruction blocks are recovered into the plaintext form during execution on an as needed basis.
Claim 19
Dependent Claim 80 words
The apparatus as set forth in claim 13, wherein each programming instruction block includes a first programming instruction sub-block for performing a task, a second programming instruction sub-block for computing mutation partners for a plurality of memory cells, a key to be employed in said computation of mutation partners, a third programming instruction sub-block for mutating memory cells in accordance with the computed mutation partnering, and a fourth programming instruction sub-block for transferring execution control to another programming instruction block.
Claim 20
Dependent Claim 21 words
The apparatus as set forth in claim 14, wherein the first programming instruction sub-block operates on a subpart of a secret.
Claim 21
Dependent Claim 32 words
The apparatus as set forth in claim 14, wherein the second programming instruction sub-block computes the mutation partnering by performing a logical XOR operation on a memory cell's identifier and the key.
Claim 22
Dependent Claim 60 words
The apparatus as set forth in claim 14, wherein the key is a member of an ordered set of pseudo-randomly selected members, the ordered set having a set size that will provide a required period for a pattern of memory cell mutations, with the memory cells being partnered for mutation in accordance with the computed mutation partnering using the key.
Claim 23
Dependent Claim 81 words
The apparatus as set forth in claim 14, wherein the memory cells are divided into two memory cell groups, and pair-wise partnered by the second programming instruction sub-block, with the partnered memory cells being in different group; and the third programming instruction sub-block performs a logical XOR operation on the contents of each pair of partnered memory cells, and alternating between the two memory cell groups for odd and even mutation rounds, in storing the results of the logical XOR operations.
Claim 24
Dependent Claim 94 words
A machine implemented method for executing a program, the method comprising: a) executing a first of a plurality of subprograms generated to obfuscate the program; b) computing mutation partners for a plurality of memory cells storing the plurality of subprograms, using a key, the subprograms being stored initially in the memory cells in a mutated form, except for at least one memory cell, which is stored initially in a plaintext form; c) mutating the memory cells in accordance with the computed mutation partnering to recover a second of the plurality of subprograms for execution.
Claim 25
Dependent Claim 94 words
A machine implemented method for executing a program, the method comprising: a) executing a first of a plurality of subprograms generated to obfuscate the program; b) computing mutation partners for a plurality of memory cells storing the plurality of subprograms, using a key, the subprograms being stored initially in the memory cells in a mutated form, except for at least one memory cell, which is stored initially in a plaintext form; c) mutating the memory cells in accordance with the computed mutation partnering to recover a second of the plurality of subprograms for execution.
Claim 26
Dependent Claim 25 words
The method as set forth in claim 19, wherein the first and second subprograms operate on a first and a second subpart of a secret.
Claim 27
Dependent Claim 29 words
The method as set forth in claim 19, wherein step (b) comprises performing a logical XOR operation on a memory cell's identifier and the key for each memory cell.
Claim 28
Dependent Claim 60 words
The method as set forth in claim 19, wherein the key is a member of an ordered set of pseudo-randomly selected members, the ordered set having a set size that will provide a required period for a pattern of memory cell mutations, with the memory cells being partnered for mutation in accordance with the computed mutation partnering using the key.
Claim 29
Dependent Claim 85 words
The method as set forth in claim 19, wherein step (c) comprises performing logical XOR operations on the contents of memory cells of a first memory cell group and the contents of memory cells of a second memory cell group, and storing the results of the logical XOR operations into the first memory cell group if step (c) is being performed for an odd number of times, and the second memory cell group if step (c) is being performed for an even number of times.
Claim 30
Dependent Claim 68 words
The method as set forth in claim 19, wherein the method further comprises the steps of: d) executing the second of the plurality of subprograms; e) computing mutation partners for the plurality of memory cells; and f) mutating the memory cells in accordance with the computed mutation partnering to mutate the first of the plurality of subprograms, and recover a third of the plurality of subprograms for execution.
Claim 31
Independent Claim 97 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a first plurality of programming instructions to be executed by the execution unit, wherein when executed, in response to a program input, the first plurality of programming instructions generate a plurality of subprograms for the program to obfuscate the program, the subprograms being generated in a mutated form, except for at least one program, which is generated in a plaintext form, the subprograms being further generated with logic to recover the subprograms in plaintext form on an as needed basis.
Claim 32
Independent Claim 97 words
An apparatus comprising: an execution unit for executing programming instructions; and a storage medium having stored therein a first plurality of programming instructions to be executed by the execution unit, wherein when executed, in response to a program input, the first plurality of programming instructions generate a plurality of subprograms for the program to obfuscate the program, the subprograms being generated in a mutated form, except for at least one program, which is generated in a plaintext form, the subprograms being further generated with logic to recover the subprograms in plaintext form on an as needed basis.
Claim 33
Dependent Claim 52 words
The apparatus as set forth in claim 25, wherein the storage medium further having stored therein a table of keylengths to be accessed by the first plurality of programming instructions in generating the subprograms, the keylengths denoting sizes of ordered sets of pseudo-randomly selected members that will provide various required mutation periods.
Claim 34
Dependent Claim 82 words
The apparatus as set forth in claim 25, wherein the storage medium further having stored therein a second plurality of programming instructions to be incorporated into each of the generated subprograms by the first plurality of programming instructions for identifying mutation partners for a plurality of memory cells storing the subprograms, for a mutation round, using a key, the key being a member of an ordered set of pseudo-randomly selected members that will provide a mutation period required by the generated subprograms.
Claim 35
Dependent Claim 56 words
The apparatus as set forth in claim 25, wherein the storage medium further having stored therein a second plurality of programming instructions to be incorporated into each of the generated subprograms by the first plurality of programming instructions for mutating memory cells storing the generated subprograms in accordance with computed mutation partnerings for a mutation round.
Claim 36
Dependent Claim 24 words
The apparatus as set forth in claim 25, wherein the first plurality of programming instructions include logic for analyzing the program for branch flow.
Claim 37
Dependent Claim 24 words
The apparatus as set forth in claim 25, wherein the first plurality of programming instructions include logic for performing peephole randomization on the program.
Claim 38
Dependent Claim 24 words
The apparatus as set forth in claim 25, wherein the first plurality of programming instructions include restructuring and partitioning the program into the subprograms.
Claim 39
Dependent Claim 42 words
The apparatus as set forth in claim 25, wherein the first plurality of programming instructions include logic for scheduling memory cells for the generated subprograms to be recovered in the plaintext form, and determining the appropriate initial values for the memory cells.
Claim 40
Dependent Claim 57 words
The apparatus as set forth in claim 32, wherein the first plurality of programming instructions include logic for determining a mutation period requirement for the program, a keylength for the required mutation period, the keylength denoting a set's set size, the set being an ordered set of pseudo-randomly selected members that will provide the required mutation period.
Claim 41
Dependent Claim 63 words
The apparatus as set forth in claim 32, wherein the first plurality of programming instructions include logic for selecting a memory cell for a generated subprogram to be recovered in the plaintext form, and determining a Boolean function for recovering the generated subprogram in the plaintext form in terms of initial state values of the memory cells used for storing the generated subprograms.
Claim 42
Dependent Claim 84 words
The apparatus as set forth in claim 32, wherein the first plurality of programming instructions include logic for determining mutation partners for a plurality of memory cells storing the generated subprograms, using a key of an ordered set of pseudo-randomly selected keys, simulating memory cell mutations in accordance with the determined mutation partnering, and determining a plurality of Boolean functions for the memory cells, the Boolean functions expressing the post mutation states of the memory cells in terms of the memory cells' initial values.
Claim 43
Dependent Claim 103 words
A machine implemented method for generating a plurality of subprograms for a program to obfuscate the program, the method comprising the steps of: a) analyzing the program for branch flow; b) restructuring and partitioning the program into a plurality of subprograms; and c) determining a schedule in terms of a plurality of memory cells for recovering the subprograms in a plaintext form for execution, and initial state values for the memory cells to store the subprograms in the memory cells in a mutated form, except for at least one subprogram, which is stored in one of the memory cells in the plaintext form.
Claim 44
Dependent Claim 103 words
A machine implemented method for generating a plurality of subprograms for a program to obfuscate the program, the method comprising the steps of: a) analyzing the program for branch flow; b) restructuring and partitioning the program into a plurality of subprograms; and c) determining a schedule in terms of a plurality of memory cells for recovering the subprograms in a plaintext form for execution, and initial state values for the memory cells to store the subprograms in the memory cells in a mutated form, except for at least one subprogram, which is stored in one of the memory cells in the plaintext form.
Claim 45
Dependent Claim 19 words
The machine as set forth in claim 36, wherein step (a) further includes performing peephole randomization on the program.
Claim 46
Dependent Claim 51 words
The method as set forth in claim 36, wherein step (c) includes determining a mutation period requirement for the program, a keylength for the required mutation period, the keylength denoting a set's set size, the set being an ordered set of pseudo-randomly selected members that will provide the required mutation period.
Claim 47
Dependent Claim 57 words
The method as set forth in claim 36, wherein step (c) includes selecting a memory cell for a generated subprogram to be recovered in the plaintext form, and determining a Boolean function for recovering the generated subprogram in the plaintext form in terms of initial state values of the memory cells used for storing the generated subprograms.
Claim 48
Dependent Claim 78 words
The method as set forth in claim 36, wherein step (c) includes determining mutation partners for a plurality of memory cells storing the generated subprograms, using a key of an ordered set of pseudo-randomly selected keys, simulating memory cell mutations in accordance with the determined mutation partnering, and determining a plurality of Boolean functions for the memory cells, the Boolean functions expressing the post mutation states of the memory cells in terms of the memory cells' initial values.
Claim 49
Dependent Claim 75 words
The method as set forth in claim 36, wherein the method further includes step (d) inserting a function and a key into each of the generated subprograms, the function being used for identifying mutation partners for a plurality of memory cells storing the subprograms, for a mutation round, using the key, the key being a member of an ordered set of pseudo-randomly selected members that will provide a mutation period required by the generated subprograms.
Claim 50
Dependent Claim 42 words
The method as set forth in claim 36, wherein the method further includes step (d) inserting a function into each of the generated subprograms for mutating memory cells storing the generated subprograms in accordance with computed mutation partnerings for a mutation round.
Claim 51
Independent Claim 115 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first and a second plurality of programming instructions to be executed by the execution unit, the first and second plurality of programming instructions implementing an application with the first plurality of programming instructions implementing a security sensitive function of the application and the second plurality of programming instructions implementing a non-security sensitive function of the application, the first plurality of programming instructions having incorporated a first defensive technique of distributing a secret in space and in time and/or a second defensive technique of obfuscation to render the first plurality of programming instructions virtually unobservable and unmodifiable during execution.
Claim 52
Independent Claim 115 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first and a second plurality of programming instructions to be executed by the execution unit, the first and second plurality of programming instructions implementing an application with the first plurality of programming instructions implementing a security sensitive function of the application and the second plurality of programming instructions implementing a non-security sensitive function of the application, the first plurality of programming instructions having incorporated a first defensive technique of distributing a secret in space and in time and/or a second defensive technique of obfuscation to render the first plurality of programming instructions virtually unobservable and unmodifiable during execution.
Claim 53
Dependent Claim 57 words
The apparatus as set forth in claim 43, wherein the first plurality of programming instructions incorporated the second defensive technique of obfuscation, including one or more unique ordered sets of pseudo-randomly selected members for generating one or more patterns of memory cell mutations, rendering the application unique from other copies of the application installed on other apparatus.
Claim 54
Independent Claim 140 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first, a second, a third, and a fourth plurality of programming instructions to be executed by the execution unit, the first and second plurality of programming instructions implementing a first and a second integrity verification function for a first and a second application respectively, whereas the third and fourth programming instructions implement a third and a fourth integrity verification function for a system integrity verification program, all four pluralities of programming instructions having incorporated defensive techniques rendering them tamper resistant, the four pluralities of programming instructions jointly implementing an interlocking trust mechanism, requiring the first and the second pluralities of programming instructions each to cooperate with both the third and fourth pluralities of programming instructions to complete an integrity verification on the apparatus.
Claim 55
Independent Claim 140 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first, a second, a third, and a fourth plurality of programming instructions to be executed by the execution unit, the first and second plurality of programming instructions implementing a first and a second integrity verification function for a first and a second application respectively, whereas the third and fourth programming instructions implement a third and a fourth integrity verification function for a system integrity verification program, all four pluralities of programming instructions having incorporated defensive techniques rendering them tamper resistant, the four pluralities of programming instructions jointly implementing an interlocking trust mechanism, requiring the first and the second pluralities of programming instructions each to cooperate with both the third and fourth pluralities of programming instructions to complete an integrity verification on the apparatus.
Claim 56
Dependent Claim 126 words
A machine implemented method for verifying integrity on an apparatus, the method comprising the steps of: a) a first and a second tamper resistant integrity verification function of a first and a second application of the apparatus individually requesting a third tamper resistant integrity verification function of a system integrity verification program to jointly perform integrity verification with the first and second tamper resistant integrity verification functions respectively; b) in response, the third tamper resistant integrity verification function calling a fourth tamper resistant integrity verification function of the system integrity verification program to jointly perform the requested integrity verifications; c) the fourth tamper resistant integrity verification function providing the first and the second tamper resistant integrity verification functions with respective results of the requested integrity verifications.
Claim 57
Dependent Claim 126 words
A machine implemented method for verifying integrity on an apparatus, the method comprising the steps of: a) a first and a second tamper resistant integrity verification function of a first and a second application of the apparatus individually requesting a third tamper resistant integrity verification function of a system integrity verification program to jointly perform integrity verification with the first and second tamper resistant integrity verification functions respectively; b) in response, the third tamper resistant integrity verification function calling a fourth tamper resistant integrity verification function of the system integrity verification program to jointly perform the requested integrity verifications; c) the fourth tamper resistant integrity verification function providing the first and the second tamper resistant integrity verification functions with respective results of the requested integrity verifications.
Claim 58
Independent Claim 136 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first and a second plurality of programming instructions to be executed by the execution unit, and a first secret private key, the first and second pluralities of programming instructions implementing a first and a second tamper resistant decryption function respectively, the first tamper resistant decryption function being used for recovering a first public key asymmetric to the first secret private key using a second public key, the first public key having been previously encrypted using a second secret private key asymmetric to the second public key, the second tamper resistant decryption function being used for recovering a content encryption key using the first secret private key, the content encryption key having been previously encrypted using the first public key.
Claim 59
Independent Claim 136 words
An apparatus comprising: an execution unit for executing programming instructions; a storage medium having stored therein a first and a second plurality of programming instructions to be executed by the execution unit, and a first secret private key, the first and second pluralities of programming instructions implementing a first and a second tamper resistant decryption function respectively, the first tamper resistant decryption function being used for recovering a first public key asymmetric to the first secret private key using a second public key, the first public key having been previously encrypted using a second secret private key asymmetric to the second public key, the second tamper resistant decryption function being used for recovering a content encryption key using the first secret private key, the content encryption key having been previously encrypted using the first public key.
Claim 60
Dependent Claim 60 words
The apparatus as set forth in claim 47, wherein the storage medium further having stored therein a third plurality of programming instructions to be executed by the execution unit, the third plurality of programming instructions implementing a third decryption function for recovering content using the recovered content encryption key, the content having been previously encrypted using the content encryption key.
Claim 61
Dependent Claim 88 words
A machine implemented method for recovering content, the method comprising the steps of: a) recovering a first public key using a second public key, the first and second public keys having a first and a second asymmetric private key respectively, the first public key having been previously encrypted by the second private key; b) providing the recovered first public key to be used for encrypting a content encryption key; c) receiving the encrypted content encryption key; and d) recovering the content encryption key using the first private key.
Claim 62
Dependent Claim 88 words
A machine implemented method for recovering content, the method comprising the steps of: a) recovering a first public key using a second public key, the first and second public keys having a first and a second asymmetric private key respectively, the first public key having been previously encrypted by the second private key; b) providing the recovered first public key to be used for encrypting a content encryption key; c) receiving the encrypted content encryption key; and d) recovering the content encryption key using the first private key.
Claim 63
Dependent Claim 30 words
The method as set forth in claim 49, wherein the method further comprises the steps of: e) receiving encrypted content; and f) recovering content using the recovered content encryption key.
Claim 64
Dependent Claim 33 words
A machine readable storage medium having stored therein a plurality of programming instruction blocks that operates on corresponding subparts of a secret distributed among them, to be executed over a period of time.
Claim 65
Dependent Claim 33 words
A machine readable storage medium having stored therein a plurality of programming instruction blocks that operates on corresponding subparts of a secret distributed among them, to be executed over a period of time.
Claim 66
Dependent Claim 49 words
A machine readable storage medium having stored therein a plurality of programming instructions that operates to partition a secret into a plurality of subparts, in response to being provided with the secret, and to generate a plurality of programming instruction blocks that operate on corresponding ones of the subparts.
Claim 67
Dependent Claim 49 words
A machine readable storage medium having stored therein a plurality of programming instructions that operates to partition a secret into a plurality of subparts, in response to being provided with the secret, and to generate a plurality of programming instruction blocks that operate on corresponding ones of the subparts.
Claim 68
Dependent Claim 59 words
A machine readable storage medium having stored therein a plurality of programming instruction blocks stored in a mutated form, except for at least one, which is stored in a plaintext form, wherein the mutated programming instruction blocks are recovered into the plaintext form during execution on an as needed basis, one or more but not all at a time.
Claim 69
Dependent Claim 59 words
A machine readable storage medium having stored therein a plurality of programming instruction blocks stored in a mutated form, except for at least one, which is stored in a plaintext form, wherein the mutated programming instruction blocks are recovered into the plaintext form during execution on an as needed basis, one or more but not all at a time.
Claim 70
Dependent Claim 85 words
A machine readable storage medium having stored therein a first plurality of programming instructions that operates to generate a plurality of subprograms for a program to obfuscate the program, in response to being provided with the program, the subprograms being generated in a mutated form, except for at least one, which is generated in a plaintext form, the subprograms being further generated with logic to recover the subprograms in plaintext form on an as needed basis, one or more but not all at a time.
Claim 71
Dependent Claim 85 words
A machine readable storage medium having stored therein a first plurality of programming instructions that operates to generate a plurality of subprograms for a program to obfuscate the program, in response to being provided with the program, the subprograms being generated in a mutated form, except for at least one, which is generated in a plaintext form, the subprograms being further generated with logic to recover the subprograms in plaintext form on an as needed basis, one or more but not all at a time.
Claim 72
Dependent Claim 93 words
A machine readable storage medium having stored therein a first and a second plurality of programming instructions that implements an application, with the first plurality of programming instructions implementing a security sensitive function of the application and the second plurality of programming instructions implementing a non-security sensitive function of the application, the first plurality of programming instructions having incorporated a first defensive technique of distributing a secret in space and in time and/or a second defensive technique of obfuscation to render the first plurality of programming instructions virtually unobservable and unmodifiable during execution.
Claim 73
Dependent Claim 93 words
A machine readable storage medium having stored therein a first and a second plurality of programming instructions that implements an application, with the first plurality of programming instructions implementing a security sensitive function of the application and the second plurality of programming instructions implementing a non-security sensitive function of the application, the first plurality of programming instructions having incorporated a first defensive technique of distributing a secret in space and in time and/or a second defensive technique of obfuscation to render the first plurality of programming instructions virtually unobservable and unmodifiable during execution.
Claim 74
Dependent Claim 123 words
A machine readable storage medium having stored therein a first, a second, a third, and a fourth plurality of programming instructions, wherein the first and second plurality of programming instructions implementing a first and a second integrity verification function for a first and a second application respectively, while the third and fourth programming instructions implementing a third and a fourth integrity verification function for a system integrity verification program, all four pluralities of programming instructions having incorporated defensive techniques rendering them tamper resistant, the four pluralities of programming instructions jointly implementing an interlocking trust mechanism, requiring the first and the second pluralities of programming instructions each to cooperate with both the third and fourth pluralities of programming instructions to complete any integrity verification.
Claim 75
Dependent Claim 123 words
A machine readable storage medium having stored therein a first, a second, a third, and a fourth plurality of programming instructions, wherein the first and second plurality of programming instructions implementing a first and a second integrity verification function for a first and a second application respectively, while the third and fourth programming instructions implementing a third and a fourth integrity verification function for a system integrity verification program, all four pluralities of programming instructions having incorporated defensive techniques rendering them tamper resistant, the four pluralities of programming instructions jointly implementing an interlocking trust mechanism, requiring the first and the second pluralities of programming instructions each to cooperate with both the third and fourth pluralities of programming instructions to complete any integrity verification.
Claim 76
Dependent Claim 121 words
A machine readable storage medium having stored therein a first and a second plurality of programming instructions, and a first secret private key, wherein the first and second pluralities of programming instructions implementing a first and a second tamper resistant decryption function, the first tamper resistant decryption function being used for recovering a first public key asymmetric to the first secret private key, using a second public key, the first public key having been previously encrypted using a second secret private key asymmetric to the second public key, the second tamper resistant decryption function being used for recovering a content encryption key using the first secret private key, the content encryption key having been previously encrypted using the first public key.
Claim 77
Dependent Claim 121 words
A machine readable storage medium having stored therein a first and a second plurality of programming instructions, and a first secret private key, wherein the first and second pluralities of programming instructions implementing a first and a second tamper resistant decryption function, the first tamper resistant decryption function being used for recovering a first public key asymmetric to the first secret private key, using a second public key, the first public key having been previously encrypted using a second secret private key asymmetric to the second public key, the second tamper resistant decryption function being used for recovering a content encryption key using the first secret private key, the content encryption key having been previously encrypted using the first public key.

References Cited (Backward Citations)

US4926480A Cited
US5224160A Cited
US4786790A Cited
US5347579A Cited
US5265164A Cited
US5469507A Cited
US5535276A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-04-05 2002-10-05 2003-04-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-04-05 2006-10-05 2007-04-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-04-05 2010-10-05 2011-04-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag