|
Claims  |
|
|
I claim:
1. A system for insuring operation of a computer controlled function, only
in the presence of an authorized key in which such operation is protected
by encrypted security message portions having a moving target portion, and
where the function control includes pre-set errors therein to cause
erroneous operation of the function unless said errors are nulled during
execution of the function control by said computer, said computer having a
communications port and said system including in combination:
at least one security key means responsive to a unique key indentification
code for connection to the communications port of said computer and
including decryption circuit means therein uniquely encoded for decrypting
said security message portions;
means for connecting said key means to the communications port of said
computer for transferring said identification code and signals including
said encrypted security message portions from said computer to said key
means and for transferring signals from said key means to said computer;
circuit means in said key means enabled by said identification code for
recognizing predetermined ones of said security message portions and, in
response to such recognition, for modifying such predetermined ones of
said message portions supplied to said key means from said computer and
for reencrypting such modified message portions and supplying such
reencrypted modified portions from said key means back to said computer
for comparison and verification with computer generated modified message
portions of said same predetermined ones of said message portions to cause
said computer to store said modified security message portions outside
said key means as replacements for previously stored such predetermined
ones of said security message portions for use by said computer and said
key means in a later cycle of operation;
said key means having a target detecting means and counter means therein
for producing a count each time said moving target portion is detected by
said key means in signals supplied from said computer to said key means;
said count being encrypted by said key means and stored outside said key
means by said computer; and said key means includes means responsive to a
predetermined count in said counter for initiating a comparison of the
count in said key means and the count stored outside said key means
whereupon failure of said comparison causes said erroneous operation to
occur; and
null signal producing means coupled with said recognizing means in said key
means for generating null signals supplied through said connecting means
to said computer for nulling said pre-set errors during operation thereof.
2. The combination according to claim 1 wherein the communications port of
said computer supplies operating power to said key means as well as
passing signals between said key means and said computer.
3. The combination according to claim 2 where the sole power supply for
said key means comprises the power present on the communications port of
said computer.
4. The combination according to claim 3 wherein the communications port of
said computer to which said key means is attached is an RS-232 Port.
5. The combination according to claim 4 wherein said modified predetermined
ones of said security message portions stored outside said key means is
supplied through said computer to said key means for establishing and
setting initial operating parameters in said key means each time operation
of said program is re-initiated following a time of non-use.
6. The combination according to claim 5 wherein said key means further
includes circuit means responsive to failure of said key means to receive
and decrypt said predetermined ones of said security message portions for
producing a warning signal, whereupon said warning signal is supplied from
said key means to said computer for utilization thereby to cause erroneous
operation of said function.
7. The combination according to claim 6 wherein a plurality of key means
may be connected in parallel to said computer by said means for connecting
said key means thereto to facilitate operation of different functions by
said computer.
8. The combination according to claim 1 wherein said modified predetermined
ones of said security message portions stored outside said key means is
supplied through said computer to said key means for establishing and
setting initial operating parameters in said key means each time operation
of said program is re-initiated following a time of non-use.
9. The combination according to claim 1 wherein a plurality of key means
may be releasably connected in parallel to the communications port of said
computer by said means for connecting said key means thereto for use with
operation of different functions, corresponding to each of said key means,
by said computer.
10. A system for insuring operation of a computer software program by only
an authorized user in which such software program includes encrypted
security message portions inserted therein and where said program also
includes pre-set errors therein to cause erroneous operation thereof
unless said errors are nulled during operation of said program, said
computer having a communications port and having at least one disc drive
and said software program is at least in part stored on a disc in such
disc drive, and said security message portion included in said software
futher includes a moving target portion, said system including in
combination:
at least one security key means responsive to a unique key indentification
mode for releasable connection to the communications port of said computer
and including decryption circuit means therein uniquely encoded for
decrypting said security message portions of said software;
means for releasably connecting said key means to the communications port
of said computer operating said software for transferring said
identification code and data signals and said encrypted security message
portions from said computer to said key means and for transferring signals
from said key means to said computer;
circuit means in said key means enabled by said identification code for
recognizing predetermined ones of said security message portions and, in
response to such recognition, for modifying such predetermined ones of
said message portions supplied to said key means from said computer and
for reencrypting such modified message portions and supplying such
reencrypted modified portions from said key means back to said computer
for comparison and verification with computer generated modified message
portions of said same predetermined ones of said message portions to cause
said computer to store said modified security message portions in said
software as replacements for previously stored such predetermined ones of
said security message portions for use by said computer and said key means
in a later cycle of operation;
said key means having a target detecting means and counter means therein
for producing a count each time said moving target portion is detected by
said key means in signals supplied from said computer operating said
software to said key means; said count being encrypted by said key means
and stored in encrypted form in said software on a software disc in the
disc drive by said computer, and said key means including means responsive
to a predetermined count in said counter for initiating a comparison of
the count in said key means and the stored count, whereupon failure of
agreement of said stored count and said key means generated count causes
erroneous operation of said program; and
null signal producing means coupled with said recognizing means in said key
means for generating null signals supplied through said connecting means
to said computer for nulling said pre-set errors in said program during
operation thereof, said pre-set errors included in said program causing
said erroneous operation of said program to occur upon failure of said
computer to receive null signals from said key means at predetermined
times.
11. The combination according to claim 10 wherein the communications port
of said computer supplies operating power to said key means as well as
passing signals between said key means and said computer.
12. The combination according to claim 11 where the sole power supply for
said key means comprises the power present on the communications port of
said computer.
13. The combination according to claim 12 wherein the communications port
of said computer to which said key means is attached is the RS-232 Port.
14. The combination according to claim 13 wherein said modified
predetermined one of security message portion stored in said software is
supplied through said computer to said key means for establishing and
setting initial operating parameters in said key means each time operation
of said program is re-initiated following a time of non-use.
15. The combination according to claim 14 wherein said key means further
includes circuit means responsive to failure of said key means to receive
and decrypt said predetermined ones of said security message portions for
producing a warning signal, whereupon said warning signal is supplied from
said key means to said computer to produce a warning display to alert
users of the system that the program is about to be erroneously operated
prior to actual erroneous operation of said program,
16. The combination according to claim 10 wherein said modified
predetermined one of security message portion stored in said software is
supplied through said computer to said key means for establishing and
setting initial operating parameters in said key means each time operation
of said program is re-initiated following a time of non-use.
17. The combination according to claim 10 wherein said key means further
includes circuit means responsive to failure of said key means to receive
and decrypt said predetermined ones of said security message portions for
producing a warning signal, whereupon said warning signal is supplied from
said key means to said computer to produce a warning display to alert
users of the system that the program is about to be erroneously operated
prior to actual erroneous operation of said program.
18. A system for insuring operation of a computer software program by only
an authorized user in which such software program has a moving target
portion and includes encrypted security message portions inserted therein
and where said program also includes pre-set errors therein to cause
erroneous operation thereof unless said errors are nulled during operation
of said program, said computer having a communications port and said
system including in combination:
at least one security key means responsive to a unique key indentification
code for releasable connection to the communications port of said computer
and including decryption circuit means therein uniquely encoded for
decrypting said security message portions of said software;
means for releasably connecting said key means to the communications port
of said computer operating said software for transferring said
identification code and data signals and said encrypted security message
portions from said computer to said key means and for transferring signals
from said key means to said computer;
circuit means in said key means enabled by said identification code for
recognizing predetermined ones of said security message portions and, in
response to such recognition, for modifying such predetermined ones of
said message portions supplied to said key means from said computer and
for reencrypting such modified message portions and supplying such
reencrypted modified portions from said key means back to said computer
for comparison and verification with computer generated modified message
portions of said same predetermined ones of said message portions to cause
said computer to store said modified security message portions in said
software as replacements for previously stored such predetermined ones of
said security message portions for use by said computer and said key means
in a later cycle of operation;
said key means having a target detecting means and counter means therein
for producing a count each time said moving target portion is detected by
said key means in signals supplied from said computer operating said
software to said key means; said count being encrypted by said key means
and stored in encrypted form in said software by said computer, and said
key means including means responsive to a predetermined count in said
counter for initiating a comparison of the count in said key means and the
stored count, whereupon failure of agreement of said stored count and said
key means generated count causes erroneous operation of said program; and
null signal producing means coupled with said recognizing means in said key
means for generating null signals supplied through said connecting means
to said computer for nulling said pre-set errors in said program during
operation thereof.
19. The combination according to claim 18 wherein a plurality of key means
is connected in parallel to said computer by said means for connecting
said key means thereto to facilitate operation of different functions by
said computer. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND
The advent of micro-processors has revolutionized the computer industry.
Dedicated computers now are used in a variety of security and control
functions such as automobiles, keyless hotel entry systems, cable
television, et cetera. In addition, such microprocessors have resulted in
the widespread use of powerful, relatively small-sized personal computers
capable of running wide varieties of programs. As such computers,
particularly personal computers, become more widely used, the development
of software programs to extend the application of such computers into
every aspect of business, professional, commercial and home uses is
expanding in an explosive manner. Each new generation of software programs
for use with such computers seems to become more complex in an effort to
simplify the utilization of the programs by the computer users (user
friendliness). The complexity of programs, in most cases, is inversely
proportional to the ease of use. As software vendors attempt to extend the
use of their programs to a wider range of potential computer users, the
time, effort, and expense required to produce such programs becomes very
significant.
In an effort to recover the developmental costs of modern software
programs, particularly those tailored for use with personal computers, the
selling prices of such programs are relatively high. As a consequence,
there is a strong temptation on the part of many users to produce extra
copies for friends or, in the case of program pirates, to produce extra
copies for sale at highly discounted prices for use by persons who do not
buy from the original vendor and/or developer of the programs. It is
believed that the number of unauthorized copies, in many cases, equals or
approaches the number of authorized copies of software programs.
In an effort to curb unauthorized production of programs, software vendors
have attempted a variety of deterrents. Where the software is sold as a
separately priced package, the package frequently includes a statement
that utilization of the software by the purchaser includes a contract
wherein the purchaser/user agrees not to produce additional copies (other
than authorized back-up copies) of the program. The enforceability of such
a contract is difficult, and little actual enforcement to date has been
evidenced.
Many programs are "copy-protected", i.e., they include a code which
prevents operation of the program from a copy made of the original.
Persons with even a minimal knowledge, however, of the computer operation
readily can bypass this "copy protection" feature and thereafter produce
unlimited numbers of copies which will operate. Such persons are called
computer "hackers" in the industry and large numbers of unauthorized
copies of valuable programs have been set loose in the marketplace by such
hackers. Individual and company "hackers for hire" even sell special
programs designed to break copy-protected programs for the purpose of
assisting in the making and dissemination of unauthorized copies. Usually
such copies are made for friends and close associates, but even one
unauthorized copy for every authorized sale represents significant losses
in sales by the original software vendor.
Some programs are bundled together with specific hardware and are sold as a
unit. This is not practical, however, because many software packages are
sold separately to the general public for use in personal computers to
permit such computers to be used for applications which can vary widely
from one purchaser of such a computer to another.
Efforts also have been made in the past to encrypt the programs in some
manner and then provide a separate decryption for implementation within
the computer, so that the software could not be run on any computer which
did not have the authorized decrypting circuitry in it.
A system for providing a cryptographic decoder for computer programs for
restricting use of a program only to customers who have paid for such use
is disclosed in the patent to Best U.S. Pat. No. 4,433,207. The system of
Best requires a deciphering key in the form of a decoder chip which must
be incorporated into the computer itself. The programs themselves are
encoded and in addition, some third person must provide a program "patch"
which will permit operation of the program with the computer equipped with
the decoder chip. Because the computer requires the installation of the
circuit ship connected to the data bus, and further since it is necessary
to "patch" the key and program, the system is relatively cumbersome. In
addition, it is possible to decipher the working programs by tapping the
data bus in the microprocessor unless an entirely new microprocessor board
with the key as an integral part of it is supplied. Thus, the encryption
system may be relatively easily broken by knowledgeable persons. Except
for these disadvantages, the system of Best does function to prevent use
of the program by unauthorized users (who have not broken the enciphering
key) by introducing random errors into the legitimate program which will
cause unpredictable malfunctions of the program execution in an
unauthorized computer. The authorized computer operated with a properly
installed and "patched" key chip neutralizes these errors so that proper
program operation takes place.
Another system for preventing unauthorized use of computer programs is
disclosed in the patent to Uchenick U.S. Pat. No. 4,458,315. This patent
stores a first key information in the program which is to be protected;
and a separate key circuit, physically separate from the program, is
provided to the customer with each program which is sold. This separate
key stores second key information which is to be utilized in conjunction
with the first key information for comparison in the computer to permit
operation of the program in the computer if a predetermined relationship
between the keys exist. If such relationship does not exist, the
processing of the program is terminated. As in the case of the system of
Best, however, it is possible to examine the data bus and capture the
deciphered code embodied in the keys; so that copied decoded programs then
can be produced by unauthorized copiers for use without the key. The
requirement for implementation of the key inside the central processing
unit or the computer itself also is undesirable.
Three other computer software security systems which require the addition
of a decoding chip to be placed inside the central processing unit or
computer itself are disclosed in the patents to Best U.S. Pat. Nos.
4,168,396; Best 4,278,837; and Johnstone 4,120,030. Each of these systems
require the installation of an internal chip in the computer with all of
the disadvantages which have been discussed above in conjunction with the
Best patent U.S. Pat. No. 4,433,207. In addition, Best '396 and Best '837
each require a battery to preserve the enciphering key in the chip. Each
chip references differently enciphered programs and program "patches"
require specifically encrypted programs to be used. In all three of these
patents, a deciphered working program may be captured by tapping the data
bus in the microprocessor unless the decoding chip is incorporated into an
entirely new microprocessor board supplied for unique operation with that
program. Such an approach is unacceptable for any computer which is to be
utilized in the operation of multiple programs, since each such program
would require a separate microprocessor board for optimum security.
Another prior art approach employing a separate program decoding key for
use with an encrypted program is disclosed in the patent to Clarke U.S.
Pat. No. 3,806,882. This patent utilizes a RAM for security storage.
Consequently, power must be supplied at all times to maintain viablity of
the security. The electronic key which is utilized is a ROM which requires
a considerable amount of time to erase and encode. In operation, the
address of the key is erased and rewritten periodically (such as once
every 48 hours) and this must occur continuously in order for a user to
maintain access to the security storage. Consequently, it is necessary to
have a back-up power supply for use with the system, since the key and
that portion of the computer which interfaces with it continuously must be
active in order to provide the desired level of security. Most personal
computers are turned off and on frequently during their operation (at
least once a day). Many personal computers are portable and most of the
personal computers which are presently available in the market do not have
a back-up battery supply for continuously supplying power to portions of
the computer circuitry. Thus, the system of Clarke is not practical for
such personal computers.
It is desirable to provide a simple and effective computer software
protection system which overcomes the disadvantages of the prior art
mentioned above. It further is desirable to provide a computer software
security system which utilizes inexpensive circuitry, requires no
permanent power supply, and operates in conjunction with codes embedded in
the software itself to provide authorized use of a program only by a user
having a key corresponding to the particular software package with which
such key is uniquely associated. Copies of the software should not be
capable of being run with any other key or without a key, and the embedded
code should be made as nearly incapable of breaking (reverse engineering)
as possible.
SUMMARY OF THE INVENTION
It is an object of this invention to provide an improved computer security
system.
It is another object of this invention to provide an improved computer
security system which is inexpensive and simple to implement.
It is an additional object of this invention to provide an improved
computer security system employing a decoding key for use with a uniquely
encoded software program.
It is a further object of this invention to provide a computer security
system using a portable decoding key encoded for operation with a
particular uniquely encoded software package and capable of operation with
different individual computers and different makes of computers.
It is yet another object of this invention to provide a computer system
employing a decryption key for use with an encrypted message exchange
between the computer and an electronically secure key in which the key is
attached to the communications port of the computer for permitting
operation of the computer with protected software only when an authorized
key is so connected.
In accordance with a preferred embodiment of this invention a system for
insuring operation of a computer software program by only an authorized
user includes a separate security key which has an encryption and
decryption circuit encoded in it for encrypting and decrypting an
encrypted security message inserted into the software program. The key is
connected to a computer operating the software to permit transfer of data
signals from the computer to the key and back from the key to the
computer. Circuitry is provided in the key for recognizing predetermined
ones of security message portions in the software program and in response
to such recognition for modifying such portions and for supplying the
modified portions from the key back to the computer whereupon the computer
generates new predetermined encrypted security message portions for
storage in the software as replacements for the original security message
portions. These replacement portions then are subsequently utilized in
ongoing operation of the software to generate further replacements on a
continuous basis. At random intervals, or quasi-random intervals
determined by the key, comparisons are made of the security message
portions which are stored in the software with the message portions
supplied to the key. If the comparison is valid, the computer program is
permitted to continue to operate error free. If the comparison is invalid,
the program with unnulled pre-set errors in it is executed to cause
failure of operation.
In a more specific embodiment of the invention the key is connected to the
communications port of the computer for receiving operating power from the
communications port and for transferring data from and to the computer.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of the key/computer interface of a preferred
embodiment of the invention;
FIG. 2 is a detailed representation of the unencrypted security message
context;
FIGS. 3A and 3B are flow charts of the computer security message encoding
process, further illustrating check point phases inserted at quasi-random
points in the operating program;
FIG. 4 is a flow chart of the electronic key operation responding to
signals from the computer and supplying signals to the computer for
interaction with the operating program as shown in FIG. 3; and
FIG. 5 is a block diagram of a portion of electronic key circuitry used in
the preferred embodiment.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Before entering into a discussion of the preferred embodiment shown in the
drawings, some definitions of terms used in the following description are
considered to be in order. Reference is made to a device called and
"electronic key". Such an "electronic key" is an electronic device
(preferrably a chip based micro-processor with ROM memory) designed to
provide, via an encrypted message exchange with a general purpose or
function control computer, the following information: (1) device presence;
(2) unique device authenticity; and (3) optionally, monitor and
communicate, via the security message, information gathered via
transducers or digital means. The electronic key is electronically secure
in that investigation by the outside world of the ROM encoded program and
data variables is not possible.
Also as used in the following description the term "function" as used in
the above definition of "electronic device" includes, but is not limited
to, (1) power or fuel supply; (2) computer software calculation output;
(3) cable television services; and (4) hotel room access.
The system described in this application is designed to control the
operation of a computer in an uncontrolled environment such that that
computer is not operating in the presence of the function author or under
his control, either directly or by means of a communications modem, but in
an environment where the author presence and control is desired. The
system of the preferred embodiment of the invention achieves author,
presence, and control in an uncontrolled environment by means of unique
fingerprints which are developed at software or computer shipment time
under control of the function author. This is done in the form of a
combination of author supplied and randomly computer calculated
information which is subsequently stored and used to encrypt, decrypt, and
calculate security information within the confines of an electronically
secure microprocessor chip (function control computer or key), such that
only the function author using a combination of his originally supplied
and randomly computer calculated information is capable of breading
security, once the fingerprints are induced in the computer and key. A
unique security fingerprint set (computer and key(s)) may, depending upon
the need for replacement of either or both, be duplicated in a new blank
computer of key(s) by way of encrypted instructions from a computer under
control of the function author. Obviously, the latter process also could
be used to effect a change in the security variables and/or cipher keys if
this is desirable.
Reference now should be made to the drawings which are used to illustrate a
preferred embodiment of the invention. FIG. 1 is a | | |