Method and apparatus for authenticating the use of software
First Claim
1. A system for assuring that software is utilized only on computers for which it has been specifically authorized comprisinga circuit within a computer for providing a code value which is unique to the computer, the circuit being a part of the computer and a separate circuit from any central processor and being joined to receive signals on an input/output bus,means deriving a password from a database of code values and passwords which enable the use of an application program on a computer,means storing a password from the database in the computer,means for generating a verification value whenever the application program is run, andmeans for testing the password stored in the computer and the verification value, andmeans for degrading the operation of the computer if the password and the verification value do not match.
1 Assignment
0 Petitions
Accused Products
Abstract
A hardware encoding circuit which generates a code value unique to a particular computer, stores a password unique to an application program and to the particular computer, tests the stored password against a verification value generated by the hardware encoding program each time the application program is run, and generates an error signal if the stored password and the verification value do not match.
89 Citations
9 Claims
-
1. A system for assuring that software is utilized only on computers for which it has been specifically authorized comprising
a circuit within a computer for providing a code value which is unique to the computer, the circuit being a part of the computer and a separate circuit from any central processor and being joined to receive signals on an input/output bus, means deriving a password from a database of code values and passwords which enable the use of an application program on a computer, means storing a password from the database in the computer, means for generating a verification value whenever the application program is run, and means for testing the password stored in the computer and the verification value, and means for degrading the operation of the computer if the password and the verification value do not match.
-
7. A circuit for assuring that software is utilized only on computers for which it has been specifically authorized comprising:
-
a first means furnishing a plaintext value unique to the circuit, means for furnishing an initial value, a hardware encoding circuit responding to signals furnished in executing programs on the computer for executing an encoding algorithm to generate from the plain text value and the initial value a code value unique to a particular computer, means for storing a password generated using the encoding algorithm from the plaintext value and a value which is unique to an application program and to the particular computer, means for selectively providing; a fixed value as the initial value to the hardware encoding circuit in response to execution by the computer of a first process, and a value generated utilizing the password in response to execution by the computer of a second process, a comparator for testing the stored password against code value generated by the hardware encoding circuit in response to running the second process each time the application program is run and for generating an error signal if the stored password and the newly generated code value do not match, and means for impairing the operation of the particular computer in response to the error signal. - View Dependent Claims (8)
-
-
9. A method for assuring that software is utilized only on computers for which it has been specifically authorized comprising:
-
storing a plaintext value and a key value in firmware in a computer, encrypting by means of a hardware encoding circuit of a computer the plaintext value with a constant value utilizing the key value to generate a code value unique to a particular computer, storing a password obtained by encrypting the plaintext value with a value unique to an application program utilizing the key value, testing the stored password against a verification value generated by the hardware encoding circuit by encrypting the plaintext value with a value unique to an application program utilizing the key value when the application program is run, generating an error signal if the stored password and the newly generated verification value do not match, and impairing the operation of the particular computer in response to the error signal.
-
Specification