|
|
|
| United States Patent | 5155680 |
| Link to this page | http://www.wikipatents.com/5155680.html |
| Inventor(s) | Wiedemer; John D. (Houston, TX) |
| Abstract | A computer software security and billing system is disclosed in which the
application program is enciphered in accordance with an algorithm driven
by a numeric key. The user's computer is provided with a hardware security
module and a removable billing module, both of which carry unique codes. A
security program accesses the application program and also writes
information about billing into the billing module. The billing module is
periodically replaced so the user can be charged based on amount of usage
of the software. The security system is also capable of operating to
provide data and program security independent of the billing function. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5155680 |
|
|
Billing system for computing software |
|
|
|
|
|
| Publication Date |
October 13, 1992 |
|
|
|
|
|
| Filing Date |
April 27, 1989 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a continuation-in-part of patent application Ser. No. 292,927 filed
Jan. 3, 1989, now U.S. Pat. No. 4,047,928 which is a continuation-in-part
of patent application Ser. No. 922,689 filed Oct. 24, 1986 now U.S. Pat.
No. 4,796,181. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 4796181 Wiedemer 705/52 Jan,1989 |      Your vote accepted [0 after 0 votes] | | 4683553 Mollier 705/55 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4658093 Hellman 705/52 Apr,1987 |      Your vote accepted [0 after 0 votes] | | 4609777 Cargile 713/184 Sep,1986 |      Your vote accepted [0 after 0 votes] | | 4562306 Chou 726/20 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4513389 Devchoudhury 711/164 Apr,1985 |      Your vote accepted [0 after 0 votes] | | 4511970 Okano 705/41 Apr,1985 |      Your vote accepted [0 after 0 votes] | | 4504915 Daniels 705/409 Mar,1985 |      Your vote accepted [0 after 0 votes] | | 4494114 Kaish 340/5.31 Jan,1985 |      Your vote accepted [0 after 0 votes] | | 4471163 Donald 705/55 Sep,1984 |      Your vote accepted [0 after 0 votes] | | 4462078 Ross 726/32 Jul,1984 |      Your vote accepted [0 after 0 votes] | | 4458315 Uchenick 726/30 Jul,1984 |      Your vote accepted [0 after 0 votes] | | 4450535 de Pommery 705/41 May,1984 |      Your vote accepted [0 after 0 votes] | | 4447890 Duwel 705/403 May,1984 |      Your vote accepted [0 after 0 votes] | | 4446519 Thomas 711/164 May,1984 |      Your vote accepted [0 after 0 votes] | | 4433207 Best 713/190 Feb,1984 |      Your vote accepted [0 after 0 votes] | | 4310720 Check, Jr.
Jan,1982 |      Your vote accepted [0 after 0 votes] | | 4278837 Best 713/190 Jul,1981 |      Your vote accepted [0 after 0 votes] | | 4246638 Thomas 712/208 Jan,1981 |      Your vote accepted [0 after 0 votes] | | 4168396 Best 713/190 Sep,1979 |      Your vote accepted [0 after 0 votes] | | 3806882 Clarke 711/164 Apr,1974 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
I claim:
1. A security system for deciphering information in the form of programs or
data for a personal computer including a central microprocessor and a bus
for communication with other devices and components comprising:
security circuit means connected into the personal computer bus for
controlling data access and telecommunications capability of the personal
computer;
a security module electrically inserted into the security circuit, the
security module including thereon a non-volatile, alterable code memory
module containing a computer unique external code;
permuter circuit means located in the security circuit for performing
permutation and exclusive-or operation on blocks of data presented to it;
memory means of the personal computer for containing therein information in
the form of both data and programs, both enciphered and unenciphered; and
a storage medium for the computer carrying security program means for
causing the central microprocessor to read the external code from the
memory module on the security module an to use that code and their
permuter circuit means in the security circuit to decipher enciphered
information received from the memory means in a fashion that is dependent
on both the permuter circuit means and on the external code so that
unenciphered information may be returned to the memory means.
2. A security system as claimed in claim 1 wherein the security circuit
further includes a fixed memory means carrying therein a fixed computer
unique internal code, both the internal and external codes being necessary
to properly decipher the information.
3. A security system as claimed in claim 1 wherein the security module
further includes a memory portion into which usage information may be
written so that a user can be billed for use of the information.
4. A security system as claimed in claim 1 wherein there is a microcomputer
in the security circuit for controlling access to the security module and
the permuter circuit.
5. A security system as claimed in claim 1 wherein the security circuit
means is in the form of an expansion card which may be added to the
expansion bus of the personal computer.
6. A security system as claimed in claim 1 wherein the security module is
physically removable from the security circuit.
7. A security system for deciphering information for a personal computer
including a central microprocessor and a bus through which other devices
may be connected to it comprising:
security circuit means connected to the bus of the personal computer for
controlling data access and telecommunications capability of the personal
computer;
a fixed unalterable memory circuit in the security circuit containing
therein a computer unique internal code;
an alterable memory module electrically inserted into the security circuit
means including thereon a computer unique external code;
microcomputer means in the security circuit means for controlling access to
the memory module;
memory means of the computer for containing therein information in the form
of both data and programs, both enciphered and unenciphered; and
a storage medium for the computer carrying at least one code thereon and
security program means for causing the central microprocessor to read the
code from the storage medium and present that code to the microcomputer
means in the security circuit means;
the microcomputer means using the code presented to it from the central
microprocessor, the internal code obtained from the fixed memory circuit,
and the external code obtained from the memory module to generate a
decipher code to be used by the security program means to decipher the
enciphered information from the memory means and return the unenciphered
information to the memory means.
8. A security system as claimed in claim 7 wherein the memory module also
includes a portion into which usage information is written by the security
program means so that the user can be billed on a usage bases.
9. A security system as claimed in claim 7 wherein the alterable memory
module is physically removable from the security circuit.
10. A security circuit for a personal computer having a processor to
control access to enciphered information in the from of a program or data
comprising:
interface circuit means for connecting the security circuit to the bus of
the personal computer;
permuter circuit means for rearranging and logically altering the
information in a determinable and reversible method;
a security module containing an electrically alterable memory portion which
carries therein an alterable user unique external code; and
microcomputer means in the security circuit programmed to recognizes codes
transferred to it from the processor of the personal computer and upon
recognition of appropriate codes to access the external code so that that
external code can be passed to the processor of the personal computer to
decipher the information and further programmed to pass the information
through the permuter circuit to further decipher that information so that
multiple redundant levels of security are provided before a user can
access the information which has been enciphered so that the information
is only accessible to a user having the security module with the proper
external code.
11. A security system as claimed in claim 10 further including a fixed
memory portion carrying a computer unique internal code which must be
combined with the external code for the processor of the personal computer
to decipher the information.
12. A security system as claimed in claim 10 wherein the circuit is
contained on an expansion card insertable into the expansion bus of the
personal computer.
13. A method of operating a computer data and access security system for
transferring data and allowing access to information in the form of data
or programs to users who have installed on their computers a hardware
security circuit including a microcomputer and into which a security
module is removably received, the security circuit including a fixed
memory portion thereon which carries an enciphered internal code and the
security module including an electrically alterable memory which carries
an enciphered external code, the computer of the user also being provided
with a security program, the method comprising the steps of:
(a) commencing operation of the security program by the computer by means
of access codes supplied to the computer with the information to be
deciphered, the access codes being provided to the microcomputer in the
hardware security circuit;
(b) the microcomputer in the hardware security circuit accessing the
internal and the external codes and deciphering these codes with the codes
passed to it by the computer and then combining the deciphered external
and internal codes to device a decipher code which it passes back to the
counter; and
(c) the computer using the decipher code passed to it by the microcomputer
in the hardware security circuit to decipher the information to which
access is sought.
14. A security system for a personal computer including a central
microprocessor and a bus to which other peripherals may be connected
comprising:
security circuit means connected to the personal computer for controlling
data access and telecommunications capability of the personal computer;
a fixed unalterable memory circuit on the security circuit means containing
therein a computer unique internal code;
a security module electrically inserted into the security circuit means,
the security module including thereon (1) a non-volatile, alterable code
memory module containing a fixed computer unique external code, and (2)
microcomputer means for controlling access to the memory module;
a hardware key module connectable to the personal computer and carrying a
user unique hardware key code therein; and
a storage medium for the computer carrying security program means for
causing the central microprocessor to read the code from the hardware key
and present that code to the microcomputer means on the security module;
the microcomputer means using the code presented to it from the central
microprocessor, the internal code obtained from the fixed memory circuit,
and the external code obtained from the security module to generate
decipher codes to be used by the security program means to decipher data.
15. A security system as claimed in claim 14 wherein the memory module is
easily removable so that it may be periodically replaced.
16. A security system as claimed in claim 14 wherein the memory module also
includes a portion into which billing information can be written so that
users may be billed on a usage basis from information in the memory
module.
17. A security system as claimed in claim 14 wherein the security circuit
means is on a card which may be inserted into the expansion bus of the
personal computer.
18. A security system for a personal computer including a central
microprocessor and a bus to which other peripherals may be connected
comprising:
security circuit means connected to the bus of the personal computer for
controlling data access and telecommunications capability of the personal
computer;
a fixed unalterable memory circuit on the security circuit means containing
therein a computer unique internal code;
a security module electrically inserted into the security circuit means,
the security module including thereon (1) a non-volatile, alterable code
memory module containing a fixed computer unique external code, and (2)
microcomputer means for controlling access to the memory module;
a biometric identification module connected to the computer for identifying
a particular user of the computer; and
a storage medium for the computer carrying security program means for
causing the central microprocessor to identify the user with the biometric
module, and if the identification is correct, then to present a code
corresponding to the user to the microcomputer means on the security
module;
the microcomputer means using the code presented to it from the central
microprocessor, the internal code obtained from the fixed memory circuit,
and the external code obtained from the alterable memory of the removable
module to generate a decipher code to be used by the security program
means to decipher data.
19. A security system as claimed in claim 18 wherein the memory module is
easily removable so that it may be periodically replaced.
20. A security system as claimed in claim 18 wherein the memory module also
includes a portion into which billing information can be written so that
users may be billed on a usage basis from information in the memory
module.
21. A security system as claimed in claim 18 wherein the security circuit
means is on a card which may be inserted into the expansion bus of the
personal computer. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates to the field of the marketing of computer
software in general, and relates, in particular, to a system for securing
and/or encoding personal computer software so that it can be marketed to
the ultimate user on a pay-per-usage arrangement rather than on a fixed
fee purchase price.
BACKGROUND OF THE INVENTION
The personal computer industry has grown enormously in the past decade and
has created a large market in software suitable for operation of personal
computers. Many companies are in the business of creating and publishing
computer software packages which are then marketed to personal computer
owners for use in their machines. Typically such computer software
packages are marketed on a fixed fee basis in which a user purchases a
copy of the software, usually under terms of a written license, for a
fixed price thereby granting to the user perpetual use of the software. It
has been a characteristic of this industry that in order for the
publishers of the software to recover the often quite large investment in
research and development of the software, and also the costs of
manufacture and marketing, that the purchase price of many such software
items has been relatively high, particularly for limited distribution or
special-purpose software. This high purchase price has been a barrier, in
some circumstances, to the widespread sale of some software and has
limited the penetration of software publishers in some markets. In
addition, some users are reluctant to incur such a purchase price without
first operating the software, since the suitability of software is very
difficult to judge without actually using it.
The relatively high purchase price of software has lead to another
phenomenon perceived as a problem by many software publishers. It is often
relatively easy for a personal computer owner to make duplicate copies of
any software which the owner has purchased unless the software is in some
fashion protected from such copying. It has become quite common for some
personal computer owners to make and disseminate such copies to their
friends and acquaintances. This often widespread unauthorized copying
dilutes the market for the software product and may cause the publisher to
ask even a higher price for each legitimate copy of the product in order
to ensure a reasonable amount of return.
One solution to this dilemma has been for manufacturers to institute copy
protection schemes which are intended to allow media carrying personal
computer software to be sold with the media containing technical devices
intended to ensure that unauthorized copies cannot be made on personal
computers. Copy protection schemes were put into place by a variety of
companies using various techniques. One technique was to use a
non-standard format for the magnetic disk on which the program was stored,
with the non-standard format not being copyable given the operating system
for the personal computer for which the program was intended A second
technique which was used was to introduce limited format error or an
altered physical characteristic into the disk which the computer is unable
to duplicate when copying the disk. Special commands in the program would
then check for that identifying information before allowing operation of
any programs on the disk and thus to ensure that the disk was not a copy.
It has been a more recent trend that a third category of software
protection schemes have been proposed which involve physical protection
either by making physical variances in the disk which must be checked by
the program before it can operate or by requiring hardware devices, known
as "locks," which must be purchased along with the software in order to
operate it. All such copy protection schemes have suffered from some
disadvantages in that the technique of protection of many of the schemes
have been deduced by individual computer owners who then widely publish
how the copying protection scheme may be avoided. Certain programs are
also sold commercially which enable the copying of certain disks which are
otherwise intended to be copy protected. Hardware based systems can also
be avoided by the custom creation of hardware devices which can emulate
the lock intended to be sold with the system.
It is also generally known in the prior art that computer programs can be
encrypted or encoded so that they must be used with a special
microprocessor or other unique hardware having the capacity to decrypt or
decode the program. Such systems are limited to the particular
encryption/decryption system hard-wired into the computer and thus are
vulnerable to unauthorized use once the methodology of the system is
deduced once by a user.
SUMMARY OF THE INVENTION
The present invention is summarized in that a billing system for the
distribution of personal computer software includes a security module
which may be installed in the personal computer of the user; a billing
module which may be installed and removed from the expansion module
contained in the computer and which contains therein suitable memory
location for the writing and reading of billing information; and at least
two programs on a memory media deliverable to the user, one program being
a security program and the other program being an enciphered application
program, the security program serving to interrogate the security module
and the billing module to determine the codes therefrom, using that
information to generate a decipher algorithm and using that decipher
algorithm to decipher the application program which may then be operated
by the personal computer.
It is an object of the present invention to provide a security and billing
system for personal computers which allows users to make an unlimited
number of copies of the program without endangering the overall program
security or the appropriate return of income to the software publisher.
It is yet another object of the present invention to provide a software
dissemination and billing system which allows for users to obtain access
to personal computer software on a pay-per-usage basis so that software
can be evaluated, tested, and used without a large initial investment in
the software package while still ensuring a return of income to the
software creators for actual use of the software.
It is yet another object of the present invention to provide a security
system for software distributed in such a billing system such that the
billing system is extremely difficult to evade.
Other objects, features, and advantages of the present invention will
become apparent from the following specification when taken in conjunction
with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
FIG. 1 is a schematic illustration of a personal computer including a
security module constructed in accordance with the present invention.
FIG. 2 is a flow chart illustration of the method of operation of the
security system in accordance with the present invention.
FIG. 3 is a schematic block diagram of another embodiment of the security
system connected to a computer and constructed in accordance with the
present invention.
FIG. 4 is a schematic block diagram of the permuter circuit details
contained within the circuitry of the embodiment of FIG. 2.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The invention disclosed herein can be conceptualized as having a minimum
basic system for software security and billing and a series of additional
options or features which may be added thereto. The additional options and
features on this system may either increase the desirability of the system
from a commercial viewpoint or enhance the security of the system, and may
be added individually or in groups to the basic system. Some of the
options and enhancements are likely to be used in an actual commercial
embodiment of this invention. However, in order to understand the concept
of the present invention most fully, it is first necessary to understand
what the basic core concept contained herein is. Accordingly, it is first
necessary to examine the simplest possible system constructed in
accordance with the present invention.
A basic computer software security and billing system according to the
present invention is illustrated by the block diagram of FIG. 1 as used in
a personal computer. A personal computer, having a central processing unit
(CPU), resident memory, input/output interfaces, and other related
circuitry, is generally indicated at 10 and is otherwise conventional and
well-known in the art. The computer CPU and memory unit would normally
include one or more media on which computer software programs can be
stored, typically a disk drive, such as that generally indicated at 12 in
FIG. 1. While the present invention is particularly described with regard
to a conventional magnetic disk media currently as is used in personal
computers, it is to be understood that it is equally applicable to other
permanent memory media such as magnetic cartridge, optical disk, rom chip.
etc. In the embodiment of FIG. 1, the conventional disk drive 12 may be
loaded with an appropriately formatted magnetic diskette 14 containing
thereon programs to be utilized by the user. The diskette 14 is a
conventional diskette in its physical make-up, although the programs
carried on it will be somewhat unique as will be discussed below. The
unique hardware required by the present system is a security module
generally indicated at 16. The security module 16 is a hard-wired logic
circuit electronically attached to the personal computer 10. The security
module 16 may be constructed as an expansion card which can be inserted
into the chassis of a personal computer having a so-called "open"
architecture. The security module may also be a stand-alone accessory to
the main computer which is attached to the computer by an appropriate
serial or parallel port. The method of communication, i.e., whether it is
parallel or serial, between the main computer and the security module 16
is unimportant as long as there are address and bi-directional data paths
for information to be transferred between the security module 16 and the
personal computer 10.
Within the security module 16 is located at least one 15 fixed memory
device 18, preferably a PROM or programmable read-only memory. Other fixed
memory devices than a PROM may also be used within the scope of the
present invention as long as the device used is capable of holding fixed
numerical information of the type required here. The PROM 18 in the
security module carries thereon a fixed pre-selected numerical code,
referred to here as an internal code. The internal code is unique to each
individual security module 16. The security module 16 also may carry
elsewhere there on it a serial number also unique to the security module
16. The serial number on the security module 16, which is usually not the
same in numerical value as the internal code carried in the PROM, is
preferably fixed in both electrical form (such as in a PROM or switch
settings) and in human readable form so that security modules 16 can be
matched with appropriate internal codes.
Also carried on the security module 16, when it is in use, is a billing
module 20. The billing module 20 is a removable memory device which can be
inserted into a previously provided access interface on the security
module 16. In other words, the billing module 20 is a removable memory
module which can be easily removed from and inserted into the security
module 16. The billing module 16 must have a memory portion which can be
read by the computer 10 through the security module and written thereon.
Accordingly, the exact media of the billing module can be varied within
the scope of the present invention. Many media can be used for the billing
module 20 based on magnetic, electronic, optical or even physical data
storage technologies. A suitable medium might include a paper card having
a magnetic memory portion thereon which can be inserted in a read/write
interface provided on the security module 16. For example, the security
module 16 could be a stand-alone accessory to a personal computer and
could have a simple card slot into which a paper card carrying a magnetic
strip thereon is inserted with the magnetic strip serving as the billing
module 20. It is the preferred embodiment of the billing module in the
present invention, however, that the billing module 20 consist of an
EEPROM. An EEPROM is an electrically alterable and erasable programmable
read-only 20 memory. Preferably the EEPROM billing module 20 is
encapsulized in such a fashion that it is easy to handle by a user and is
designed to interface with a simple mechanical and electrical interface
provided on the security module 16 into which the billing module 20 can be
inserted.
While the billing module may often be removable, it is also envisioned that
in some variations, the billing module might not be removable. In one such
variation, the billing module could be connected through a modem to be
updated and read for billing purposes by telephone Another possibility is
that the billing module could be connected to appropriate circuitry to be
updated by fixed wire or by radio signal. It is also possible for the
billing module to be located some distance from the computer, for example
at a different station in a local area network where it could be polled
and updated as needed and could be used by a number of personal computers.
The billing module 20, of whatever media it is constructed, has at least
two portions of memory thereon. The first memory portion carries a
numerical value referred to here as an external code. The second portion
of the billing module memory consists of billing memory. The external code
is a number designed by the computer to be read from the billing module
20. There may be more than one external code and the external code may
consist of more than one portion or part. The billing memory is intended
to store billing information which may be data previously loaded onto the
billing module 20 or may be a blank area on the billing module 20 onto
which information may be written. In either event, it is critical to the
present invention that the billing memory portion of the billing module 20
be alterable by the computer 10 in accordance with information received
and processed by it. It is therefore also possible that the billing module
itself could be embodied in a removable magnetic storage media, such as a
floppy diskette, which could have an area onto which the external code was
pre-recorded and a separate portion into which billing information is
loaded.
The application diskette 14 for use within the present invention carries
thereon at least one computer program which the user desires to operate.
This is referred to herein as the "application" program. In accordance
with the present invention, the application program is enciphered in
accordance with an algorithm driven by a numerical key, as will be
discussed in more detail. The diskette 14 therefore carries the
application program in its enciphered form. The diskette 14 also carries
unenciphered start program. In addition, the diskette 14 also carries a
security program which may or may not be enciphered depending on the level
of redundant security desired in the embodiment of the present invention.
If the security program is not enciphered, then the start program may
merely be a portion of the security program.
In its operation, the basic system illustrated in FIG. 1 is intended to
operate as follows. The computer 10 is operated in a normal fashion and
the diskette 14 carrying the enciphered application program which the user
desires to operate is loaded into the computer disk drive 12. As is
conventional, the computer CPU loads the program from a previously
designated portion of the diskette 14. Carried on that previously
designated portion of the diskette 14 is the unenciphered start program
which is thus loaded into the resident memory in the computer 10. The
start program then operates. In its most basic embodiment, the first thing
that the start program does is verify the presence of the security module
carrying an active billing module in it. The start program also verifies
from the billing module that the user still has billing credit to operate
the program before it will proceed. Assuming that the billing module is
present, and billing credit is available to the user, the security program
is run. The security program reads the external code from the billing
module 20. This code serves as a "key" to a previously selected algorithm
utilized by the security program. No single particular algorithm is to be
used for the enciphering and deciphering of all application programs. In
fact, it is intended that different algorithms be used on different
diskettes 14, as long as the security program on any diskette corresponds
to the algorithm used to encipher the application program on the diskette.
Each algorithm so used is preferably based on a numeric key so that the
same key must be available to decipher the program as was used to encipher
it, although it would also be possible to use a two key system in which
the encoding key is different from the decoding key. Thus, the algorithm
used by the security program is the inverse of the algorithm used to
encipher the application program. The security program uses the key from
the external code to operate a deciphering algorithm to decipher the
enciphered application program. The security program may decipher the
entire application program, or may only decipher one or more modules of
the application program which are to be used by the user at one time, or
may decipher only a small number of very important program instructions,
addresses or locations. The security program may also shift a small number
of mislocated instructions. The security program then turns over execution
to the application program which thereby proceeds to execute for the user.
As the application program executes, the security program periodically
monitors application program execution. This can be done by formatting the
application program as a routine called by the security program with
program execution periodically returned to the security program or
alternatively may be accomplished through one or more interrupts by which
the security program interrupts operation of the application program. In
any event, during this periodic process, the security program verifies
continued use of the application program within the computer, and assuming
| | |