Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
85 words
A method of restricting use of software to authorized processors comprising the steps of: a) providing said software (FILE2) in a form in which at least a significant portion is encrypted, b) providing a coprocessor (15) in association with a potentially authorized processor (10), c) coupling said software to said processor, d) coupling a distinct right to execute (FILE1) to said coprocessor, e) in response to presence of said distinct right to execute, decrypting and storing said significant portion of said software in said coprocessor.
Claim 2
Independent Claim
85 words
A method of restricting use of software to authorized processors comprising the steps of: a) providing said software (FILE2) in a form in which at least a significant portion is encrypted, b) providing a coprocessor (15) in association with a potentially authorized processor (10), c) coupling said software to said processor, d) coupling a distinct right to execute (FILE1) to said coprocessor, e) in response to presence of said distinct right to execute, decrypting and storing said significant portion of said software in said coprocessor.
Claim 3
Dependent Claim
36 words
The method of claim 1, wherein said coprocessor has a memory space secured against external access for storing decrypted software and operating instructions and wherein said distinct right to execute is stored in said secure memory.
Claim 4
Dependent Claim
32 words
The method of claim 1 or 2, wherein said right to execute is transferred to said secure memory only after a token has been transferred from a token source to said coprocessor.
Claim 5
Independent Claim
30 words
The method of one of the claims 1 - 3, wherein said decrypting step is performed in said coprocessor using a stored vendor decryption key prior to executing said software.
Claim 6
Independent Claim
33 words
The method of one of the claims 3 - 4 in which said step of transferring said transfer token includes the step of verifying, by said coprocessor, that said transfer token is authentic.
Claim 7
Independent Claim
56 words
The method of one of claims 3 - 5 in which said step of transferring said transfer token includes: a) generating a random number and coupling said random number to said transfer token source, b) generating, in response to said random number a selected portion of said stored token and coupling said portion to said coprocessor.
Claim 8
Dependent Claim
103 words
The method of claim 6 which includes the further steps of: c) transferring an encrypted token to said coprocessor, d) decrypting said encrypted token to produce a clear text token, e) applying said random number to said clear text token to generate in response a clear text token portion, f) comparing said selected token portion, generated in said step b) with said clear text token portion, generated in step e), and g) considering said token source authentic if a result of said step f) identifies a first relation and considering said token source not authentic if said step f) identifies any other relation.
Claim 9
Independent Claim
54 words
The method of one of the claims 1 - 7 in which said physically and logically secure coprocessor provides for establishing a dual privilege computation environment, a first lower privilege for executing that portion of said software which had been provided in encyrpted form, and a higher level privilege for manipulating said decryption key.
Claim 10
Independent Claim
126 words
The method of one of the claims 1 - 8 in which said distinct right to execute comprises a decryption key and said step d) includes: d1) providing a token cartridge (20) storing a clear text token, d2) coupling said token cartridge to said coprocessor, d3) generating a token query in said coprocessor and coupling said token query to said token cartridge, d4) generating, in response to said token query a token response and coupling said token response to said coprocessor, d5) verifying authenticity of said token cartridge, in said coprocessor by testing said token response, d6) if and only if said token cartridge is determined to be authentic, transferring a decryption key, representing said distinct right to execute, into said secure storage of said coprocessor.
Claim 11
Dependent Claim
80 words
The method of claim 9 in which said step d5) includes: d5a) coupling encrypted token data (FILE3) to said coprocessor, d5b) decrypting said encrypted token data in said coprocessor to produce clear text token data, d5c) combining said clear text token data with said token query to produce a computed response, d5d) comparing said computed response with said token response, and d5e) verifying authenticity of said cartridge if said responses are identical, otherwiese failing to verify authenticity of said cartridge.
Claim 12
Dependent Claim
27 words
The method of claim 10 in which said encrypted token data (FILE3) resides in common on a medium supporting said software or is stored in said cartridge.
Claim 13
Independent Claim
33 words
The method of one of the claims 1 - 11 in which said step d4) includes the step of modifying or erasing said clear text token data as said token response is generated.
Claim 14
Independent Claim
144 words
The method of one of the claims 1 - 12 in which said step d3) includes the step of coupling said token query to said token cartridge in a bit serial form of N bit length, where N is an integer, and in which said step d4) includes the steps of: d4a) dividing said clear text token data into first and second portions, d4b) for each bit of said query, selecting a bit from either said first or second portions and returning said selected bit as a portion of said token response, and replacing both the selected bit and a corresponding unselected bit of said first and second portions, whereby after a last bit of the token response is generated said clear text token data in said token cartridge is at least reduced in bit length by twice the bit length of said query.
Claim 15
Independent Claim
305 words
A method of securing protected software against unauthorized use without perturbing existing channels of software distribution and, at the same time not interfering in users creation of unlimited backup copies of protected software, said method comprising the steps of: a) providing to a user a physically secure coprocessor (15) and coupling said coprocessor to a user host computer (10) to support bidirectional communication therebetween to create a composite computing system including said host computer and said coprocessor, b) providing logical security to said coprocessor by: 1) providing a first privilege level including first level secure memory (151) and first level operating instructions, secured against acess or variation by said user, for executing protected software, 2) providing a second privilege level including second level secure memory (153) and second level operating instructions, secured against access or variation by said user or any author of protected software, for controlling authorization for execution of said protexted software by said first privilege level, c) distributing protected software (46) in a form in at which at least a portion is inexecutable by said host computer but which is executable by said coprocessor but only with authorization by said second privilege level, d) distributing a further tangible element (20) distinct from said protected software representing a right to execute said protected software, e) providing said composite computing system access to said protected software and to said further tangible element, f) verifying authenticity of said further tangible element by said coprocessor at said second privilege level, g) altering said second level secure memory in a distinctive fashion to reflect a determination by said second privilege level of authenticity of said tangible element, and h) executing said protected software so long as said alterating of said second privilege level secure money is detected and denying said request if said alteration is not present.
Claim 16
Independent Claim
305 words
A method of securing protected software against unauthorized use without perturbing existing channels of software distribution and, at the same time not interfering in users creation of unlimited backup copies of protected software, said method comprising the steps of: a) providing to a user a physically secure coprocessor (15) and coupling said coprocessor to a user host computer (10) to support bidirectional communication therebetween to create a composite computing system including said host computer and said coprocessor, b) providing logical security to said coprocessor by: 1) providing a first privilege level including first level secure memory (151) and first level operating instructions, secured against acess or variation by said user, for executing protected software, 2) providing a second privilege level including second level secure memory (153) and second level operating instructions, secured against access or variation by said user or any author of protected software, for controlling authorization for execution of said protexted software by said first privilege level, c) distributing protected software (46) in a form in at which at least a portion is inexecutable by said host computer but which is executable by said coprocessor but only with authorization by said second privilege level, d) distributing a further tangible element (20) distinct from said protected software representing a right to execute said protected software, e) providing said composite computing system access to said protected software and to said further tangible element, f) verifying authenticity of said further tangible element by said coprocessor at said second privilege level, g) altering said second level secure memory in a distinctive fashion to reflect a determination by said second privilege level of authenticity of said tangible element, and h) executing said protected software so long as said alterating of said second privilege level secure money is detected and denying said request if said alteration is not present.
Claim 17
Dependent Claim
141 words
A method as recited in claim 14 in which said software as distributed in said step c) has at least a portion encrypted and said second privilege level subsequent to performance of said step f) has access to a decryption key and in which said step h) comprises performing the following steps on each subsequent request by said user to execute said protected software: responding, at said second privilege level, to check for said alteration of said second level secure memory, and, if said alteration is present, honoring said request by: a) initiating decryption of said protected software and storage of said decrypted software in said first privilege level secure memory, b) authorizing execution of said decrypted software by said first privilege level and initiating operation of said first privilege level, and, if said alteration is not present, refusing said request.
Claim 18
Dependent Claim
93 words
A method as recited in claim 14 wherein said protected software as distributed in said step c) includes a portion which is encrypted under a software key which itself is distributed encrypted under a different key, and in which said second privilege level has access to said different key so that said encrypted software key can be decrypted by said second privilege level, and in which said step g) includes: 1) decrypting said software key with said second key, 2) altering said second privilege level secure memory by writing said software key therein.
Claim 19
Dependent Claim
61 words
A method as recited in claim 16 in which said composite computing system is provided information with which to verify said tangible element and in which said step d) includes: 1) providing said tangible element with physical security, 2) providing said tangible element with electronic storage having a destructive read function, and 3) storing a verifiable entity in said electronic storage.
Claim 20
Independent Claim
107 words
The method of any of the claims 1 - 17, which, to condition the right to execute, comprises the steps of: a) providing to said coprocessor a statement of at least one condition, b) providing for storage in said secure memory data associated with said condition along with storage of said software key, c) requiring said coprocessor to access said statement and said data prior to authorizing any use of said software key or said protected application, d) further requiring said coprocessor to compare said statement and said data to determine if said condition is met, and authorizing use if, and only if, said condition is met.
Claim 21
Dependent Claim
89 words
The method of claim 18 wherein: e) said statement represents authorization for execution of said protected application no more than N times, wherein N is any integer, f) said data represents either a count C which is incremented each time said coprocessor authorizes execution of said protected application or said integer N decremented each time said coprocessor authorizes execution of said protected application, and g) said coprocessor either compares C to N or compares N to zero and said coprocessor authorizes execution if and only if N>C or N>O.
Claim 22
Dependent Claim
72 words
The method of claim 18 wherein: e) said statement represents authorization for execution of said protected application until a current date and/or time reaches a terminal date and/or time, f) said data represents said terminal date and/or time, and g) said coprocessor compares said current date and/or time with said terminal date and/or time and authorizes execution if, and only if said current date and/or time precedes said terminal date and/or time.