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

Apparatus and method for secured control of feature set of a programmable device

Assignee: Transcrypt International Inc
•
Filing: 1996-08-01
•
Granted: 1998-06-23
•
Expires: 2016-08-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method for controlling the feature set of a programmable device by assigning each programmable device a unique serial number, correlating a secret key with each serial number, and keeping that information in a secure location, such as at the manufacturer. Each optional feature set for the programmable devices is assigned a unique code, and software associated with the programmable device operates according to the feature set identified in the feature set code, if an authentication procedure is passed. The authentication procedure utilizes a secure cryptographic algorithm to calculate an authentication code based on the secret key and the authorized feature set for a programmable device. The authentication code is stored in the programmable device. Periodically, the programmable device automatically self checks itself by recalculating the authentication code. If it matches with the authorized authentication code, the authentication procedure is passed. If it does not match, the authentication procedure is not passed as it tends to indicate that there has been an attempt to tamper with the feature set code or to use an authorization code that is from another programmable device. If the authentication procedure is not passed, the programmable device may be disabled or some other limitation may be imposed on the device.

Inventors

  • 👤 James E. Gilley
  • 👤 Kenneth L. Snyder
  • 👤 Paul A. Schwartzkopf

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 13:18
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/30; G06F21/31; G06F21/70; G06F21/71; G06F21/73; H; H04; H04K; H04K1/00; H04L; H04L9/00; H04L9/32; H04L9/3226; G06F2221/00; G06F2221/21; G06F2221/2129; G06F2221/2141; H04L2209/00; H04L2209/80

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.

References Cited (Backward Citations)

US5136648A Cited
US4813024A Cited
US4866769A Cited
US5247577A Cited
US5490216A Cited
US5469557A Cited
US5416840A Cited
US5457746A Cited
US5530749A Cited
US5530753A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-06-22 2001-12-22 2002-06-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-06-22 2005-12-22 2006-06-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-06-22 2009-12-22 2010-06-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag