Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
160 words
A method for controlling the feature set of a programmable device comprising: identifying a programmable device by a unique number; generating a secret key for each programmable device, the secret key being stored in and readable by the programmable device but being secure from external reading; creating a database of secret keys correlated to unique numbers at a first location; calculating an authentication code based on the secret key of the programmable device and an authorized feature set for the programmable device using a secure cryptographic algorithm; storing the authentication code in a non-secure place in the programmable device; storing instructions related to executing a feature set in the programmable device; and thereafter, each time the programmable device is powered on, comparing the stored authentication code with a present calculated authentication code, using the same calculation, and if the stored authentication code and the present calculated authentication code match, allowing the programmable device to function according the authorized feature set.
Claim 2
Independent Claim
160 words
A method for controlling the feature set of a programmable device comprising: identifying a programmable device by a unique number; generating a secret key for each programmable device, the secret key being stored in and readable by the programmable device but being secure from external reading; creating a database of secret keys correlated to unique numbers at a first location; calculating an authentication code based on the secret key of the programmable device and an authorized feature set for the programmable device using a secure cryptographic algorithm; storing the authentication code in a non-secure place in the programmable device; storing instructions related to executing a feature set in the programmable device; and thereafter, each time the programmable device is powered on, comparing the stored authentication code with a present calculated authentication code, using the same calculation, and if the stored authentication code and the present calculated authentication code match, allowing the programmable device to function according the authorized feature set.
Claim 3
Dependent Claim
13 words
The method of claim 1 wherein the secret key is a numerical value.
Claim 4
Dependent Claim
14 words
The method of claim 2 wherein the secret key is a randomly generated number.
Claim 5
Dependent Claim
16 words
The method of claim 3 wherein the randomly generated number is at least 32 bits long.
Claim 6
Dependent Claim
14 words
The method of claim 4 wherein the randomly generated number is 64 bits long.
Claim 7
Dependent Claim
26 words
The method of claim 1 wherein the authorized feature set is encoded in an operation mode code, each different feature set having a different numerical value.
Claim 8
Dependent Claim
13 words
The method of claim 1 wherein the programmable device is a voice scrambler.
Claim 9
Dependent Claim
27 words
The method of claim 7 wherein the voice scrambler includes a microprocessor, an EEPROM, and a secure ROM, the secret key being stored in the secure ROM.
Claim 10
Dependent Claim
15 words
The method of claim 7 wherein the scrambler is operatively positioned within a radio transceiver.
Claim 11
Dependent Claim
43 words
The method of claim 1 further comprising changing the authorized feature set by calculating new authentication codes for each scrambler to be changed based of the secret key for each such scrambler and new feature set information, while using the same cryptographic algorithm.
Claim 12
Dependent Claim
35 words
The method of claim 1 further comprising if the present authentication code does not match the authentication code, the programmable device does not function according to the authorized feature set of the present authentication code.
Claim 13
Dependent Claim
24 words
The method of claim 1 further comprising if the present authentication code does not match the authentication code, the programmable device does not function.
Claim 14
Dependent Claim
31 words
The method of claim 1 further comprising if the present authentication code does not match the authentication code, the programmable device defaults to no more than an originally authorized feature set.
Claim 15
Dependent Claim
68 words
The method of claim 1 wherein during any upgrade procedure of the feature set of the programmable device, the upgrade procedure includes intentional time delays so that any attempt to randomly match an upgraded authentication code for any particular programmable device, will not only be useful only for that particular programmable device, but will take a substantial amount of time, controlled by the length of the secret key.
Claim 16
Independent Claim
185 words
An apparatus for controlling the feature set of a programmable device, comprising: a programmable device including a microprocessor, an EEPROM, a secure ROM, and a programming port; a programming device including a computer having a data base and a programming port; software in the computer which generates a table of randomly generated numbers called secret keys which are correlated to a set of unique serial numbers that is stored in the database; software in the programming device and in the programmable device which includes a secure cryptographic algorithm and which generates an authentication code based on the secret key of a programmable device and an operation mode code from which the programmable device operates a certain feature set; so that each programmable device is correlated to a unique serial number, the secret key correlated to each programmable device is stored in the secure ROM, an authorization code is stored the EEPROM; and each time the programmable device is turned on, a present authentication code is calculated and compared to the authentication code to verify that no tampering with the authorized feature set instruction has occurred.
Claim 17
Independent Claim
185 words
An apparatus for controlling the feature set of a programmable device, comprising: a programmable device including a microprocessor, an EEPROM, a secure ROM, and a programming port; a programming device including a computer having a data base and a programming port; software in the computer which generates a table of randomly generated numbers called secret keys which are correlated to a set of unique serial numbers that is stored in the database; software in the programming device and in the programmable device which includes a secure cryptographic algorithm and which generates an authentication code based on the secret key of a programmable device and an operation mode code from which the programmable device operates a certain feature set; so that each programmable device is correlated to a unique serial number, the secret key correlated to each programmable device is stored in the secure ROM, an authorization code is stored the EEPROM; and each time the programmable device is turned on, a present authentication code is calculated and compared to the authentication code to verify that no tampering with the authorized feature set instruction has occurred.
Claim 18
Dependent Claim
13 words
The apparatus of claim 15 wherein the programmable device is a voice scrambler.
Claim 19
Dependent Claim
16 words
The apparatus of claim 16 wherein the voice scrambler encrypts speech according to an encryption algorithm.
Claim 20
Dependent Claim
17 words
The method of claim 15 wherein the secret key is a numerical value based on non-deterministic methodology.
Claim 21
Dependent Claim
18 words
The method of claim 18 wherein the secret key is a digital word at least 32 bits long.
Claim 22
Dependent Claim
14 words
The method of claim 19 wherein the randomly generated number is 64 bits long.
Claim 23
Dependent Claim
26 words
The method of claim 15 wherein the authorized feature set is encoded in an operation mode code, each different feature set having a different numerical value.
Claim 24
Independent Claim
224 words
A method of controlling the feature set of plurality of programmable devices each of which uses a feature set code in a non-secure memory to instruct the programmable device which feature set is available for use, comprising: assigning a unique identification number to each programmable device; assigning a randomly generated number to each identification number; assigning a unique feature set code to each feature set option for the programmable device; storing the each set of identification number and randomly generated number into a secure database held at a secure, location; storing the randomly generated number in a secure ROM of the programmable device; storing an authorized feature set code into a non-secure memory of the programmable device; calculating an authentication code based on the following formula AC=ESK(SK+OMC) where E SK equals an encryption method; SK equals the randomly generated number; and OMC equals the feature set code; and the + sign indicates defined relationship between SK and OMC, so that the authentication code is dependent upon the secure SK, which is correlated to a unique identification number; storing the authentication code in non-secure memory in the programmable device; periodically recalculating and comparing the authentication code to the stored authentication code; allowing the programmable device to function according to the stored feature set code if the recalculated and the stored authentication codes are the same.
Claim 25
Independent Claim
224 words
A method of controlling the feature set of plurality of programmable devices each of which uses a feature set code in a non-secure memory to instruct the programmable device which feature set is available for use, comprising: assigning a unique identification number to each programmable device; assigning a randomly generated number to each identification number; assigning a unique feature set code to each feature set option for the programmable device; storing the each set of identification number and randomly generated number into a secure database held at a secure, location; storing the randomly generated number in a secure ROM of the programmable device; storing an authorized feature set code into a non-secure memory of the programmable device; calculating an authentication code based on the following formula AC=ESK(SK+OMC) where E SK equals an encryption method; SK equals the randomly generated number; and OMC equals the feature set code; and the + sign indicates defined relationship between SK and OMC, so that the authentication code is dependent upon the secure SK, which is correlated to a unique identification number; storing the authentication code in non-secure memory in the programmable device; periodically recalculating and comparing the authentication code to the stored authentication code; allowing the programmable device to function according to the stored feature set code if the recalculated and the stored authentication codes are the same.