WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software    
United States Patent4864494   
Link to this pagehttp://www.wikipatents.com/4864494.html
Inventor(s)Kobus, Jr.; Paul (Phoenix, AZ)
AbstractA computer based function control system is particularly suited for use as a software security device on the highly popular personal computers or a micro-processor driven function. The system includes an encrypted security message uniquely encoded at predetermined locations within the software or function program. The software or function program includes pre-set errors in it to cause failure of execution of the function or software program unless the errors are nulled during operation of the function or software program. A separate electronic key for retrieving, recognizing, decrypting, encrypting, and producing the null signals is connected to the communications port of the computer from which the key draws its power as well as the security message passed from the computer to the key and back to the computer. There is interchange of moving target and validation information between the computer software and the electronic key. This information is transferred via the security message under the cover of encryption and is monitored by the key and the software to insure that operation of the program can be effected only by authorized users of the function or software program (that is those having the key uniquely associated with that program).



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4864494
Software usage authorization system with key for

     decrypting/re-encrypting/re-transmitting moving target security codes

     from protected software - US Patent 4864494 Drawing
Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
Inventor     Kobus, Jr.; Paul (Phoenix, AZ)
Owner/Assignee     Computerized Data Ssytems for Mfg., Inc. (Phoenix, AZ)
Patent assignment
All assignments
Publication Date     September 5, 1989
Application Number     06/842,552
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 21, 1986
US Classification     726/33 340/5.74 705/55
Int'l Classification     H04L 009/00 H04K 009/00 G06F 012/14
Examiner     Williams Jr.; Archie E.
Assistant Examiner     Mohamed; Ayni
Attorney/Law Firm     Ptak; LaValle D.
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File 380/3 380/4 380/25 380/29 340/825.31 340/825.34
Patent Tags     software usage authorization key for decrypting/re-encrypting/re-transmitting moving target security codes protected software
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4683968
Appelbaum
705/59
Aug,1987

[0 after 0 votes]
4652900
Hashimoto
257/547
Mar,1987

[0 after 0 votes]
4590470
Koenig
340/5.74
May,1986

[0 after 0 votes]
4588991
Atalla
713/165
May,1986

[0 after 0 votes]
4558176
Arnold
713/190
Dec,1985

[0 after 0 votes]
4525599
Curran
713/190
Jun,1985

[0 after 0 votes]
4523271
Levien
726/22
Jun,1985

[0 after 0 votes]
4471163
Donald
705/55
Sep,1984

[0 after 0 votes]
4458315
Uchenick
726/30
Jul,1984

[0 after 0 votes]
4433207
Best
713/190
Feb,1984

[0 after 0 votes]
4430728
Beitel
379/93.02
Feb,1984

[0 after 0 votes]
4278837
Best
713/190
Jul,1981

[0 after 0 votes]
4262329
Bright
713/164
Apr,1981

[0 after 0 votes]
4168396
Best
713/190
Sep,1979

[0 after 0 votes]
4120030
Johnstone
713/190
Oct,1978

[0 after 0 votes]
3976840
Cleveland
379/93.02
Aug,1976

[0 after 0 votes]
3806882
Clarke
711/164
Apr,1974

[0 after 0 votes]
4465901
Best
713/190
Dec,1969

[0 after 0 votes]
4634808
Moerder
380/29
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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