Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
Patent 4817140 Issued on March 28, 1989. Estimated Expiration Date: November 5, 2006. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
The invention provides a software asset protection mechanism which is based on the separation of the software to be protected from the right to execute that software. Protected software can only be executed on composite computing systems in which a physically and logically secure coprocessor is associated with a host computer. The software to be protected is broken down into a protected (encrypted) portion and an (optional) unprotected or plain text portion. The software is distributed by any conventional software distribution mechanism (for example a floppy disk) including the files already identified along with an encrypted software decryption key. The coprocessor is capable of decrypting the software decryption key so it can thereafter decrypt the software, for execution purposes. However, the coprocessor will not perform these functions unless and until the user's right to execute is evidenced by presentation of a physically secure token. The physically secure token provides to the coprocessor token data in plain text form (the physical security of the plain text token data is provided by the cartridge within which token data is stored). The physical properties of that cartridge taken together with the correspondence between the token data provided by the cartridge and the encrypted token data evidence the user's right to execute. While the coprocessor can, thereafter, decrypt and execute the protected portion of the software, access to that software is denied the user by the physical and logical features of the coprocessor. Other properties of the cartridge (specifically a destructive read property) ensure that the act of transferring token data to the coprocessor obliterates that data from the cartridge so it cannot be revised. Further, the protocol for the coprocessor/cartridge exchange is arranged so that observation of even the entire exchange provides inadequate information with which to simulate or spoof the effect of an authentic, unused cartridge.
Other References
Best, Preventing Software Piracy with Crypto-Microprocessors, IEEE, 1980
Everett, "Padlock", Computer Bulletin, Mar. 1985, pp. 16-17 + Padlock Public Key Software Protection System
Goldschmitt, "Thou Shall Not Dupe", Computerworld, Jan. 28, 1985
Herzberg, "Public Protection of Software", Lecture Notes in Computer Science, vol. 218, 1986 (Proc. Crypto 85), pp. 158-178
Kent, Protecting Externally Supplied Software in Small Computers, Phd. thesis, M.I.T., Sep. 1980
Lipson, "Little Black Box `Blocks` Illicit Software Copying", Stamford Advocate, Sep. 14, 1986, pp. E1-E2
Maude, "Hardware Protection Against Software Piracy", Communications of the ACM, vol. 27, No. 9, Sep. 1984, pp. 950-959
Purdy, "A Software Protection Scheme", IEEE, 1982
Simmons, "How to (Selectively) Broadcast a Secret", IEEE, 1985
Winslow, "For Software Firms, Questions is How to Cope with Piracy", Wall Street Journal, Apr. 12, 1985