Hardware assist for protecting PC software
First Claim
1. A method of controlling the use and replication of diskette software contents on unauthorized diskette-driven computing systems, said method comprising the steps of:
- placing a first ID code in a preselected computing system;
identifying a source of programming software for said computing system with a second ID code;
placing said second ID code on a diskette bearing a program obtained from said source, said program including a execution protection feature;
deriving a first check number through encryption of one of said ID codes with the other of said ID codes;
placing said first check number on said diskette; and
upon access of said diskette by any computing system, deriving a second check number through encryption of said second ID code on said diskette with an ID code in said accessing computing system, comparing said second with said first check number, and bypassing the protection feature in the event of a match.
1 Assignment
0 Petitions
Accused Products
Abstract
The copy protection of personal computer (PC) software distributed on diskettes is assisted by providing a unique identification (ID) stored in read only memory (ROM) of a personal computer in which software on a diskette is to be used. This ID is accessible to the user of the computer. A vendor who wishes to protect his diskette-distributed software from illegal copying or use provides a source ID on the diskette. The personal computer ID is used with the source ID on the distributed diskette to produce an encoded check word, using any available encryption modality. The check word is generated and written onto the distributed diskette during installation and copied onto all backup versions made by the user'"'"'s personal computer. Prior to each use of the program, the software on the diskette uses the personal computer and the source IDs and check word to verify that the software is being used on the same personal computer on which it was installed.
420 Citations
9 Claims
-
1. A method of controlling the use and replication of diskette software contents on unauthorized diskette-driven computing systems, said method comprising the steps of:
-
placing a first ID code in a preselected computing system; identifying a source of programming software for said computing system with a second ID code; placing said second ID code on a diskette bearing a program obtained from said source, said program including a execution protection feature; deriving a first check number through encryption of one of said ID codes with the other of said ID codes; placing said first check number on said diskette; and upon access of said diskette by any computing system, deriving a second check number through encryption of said second ID code on said diskette with an ID code in said accessing computing system, comparing said second with said first check number, and bypassing the protection feature in the event of a match. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for authorizing use or replication of diskette software contents on identified computing systems, comprising:
-
a diskette containing a software program; a source identification (SID) code on said diskette associated with and identifying the source of said software; a check store number on said diskette, said check store number representing the encryption of said SID code; a computing system for receiving said diskette and including at least one CPU having an embedded CPU identification (CPUID) code associated with and identifying said CPU; and program means in said software program, said program means being executable on said CPU for generating a check number through encryption of one of said ID codes with the other of said ID codes and for preventing the execution of said software on a CPU other than said one CPU if said check number is not identical with said check store number. - View Dependent Claims (7, 8)
-
-
9. A system for authorizing use of diskette software contents on authorized computing systems, comprising:
-
a diskette; a first computing system for entering software on said diskette, said first computing system including a first ID code identifying said first computing system, and a list of ID codes identifying CPUs authorized to execute said software; an encryption procedure in said software for generating a first check number based upon an ID code from said list, said first check number being written onto said diskette with said software by said first computing system; a second computing system with a CPU for receiving said diskette and executing said software, said second computing system including a second ID code identifying its CPU; encryption means in said first and second computing systems for generating a first check number based upon public-key encryption of said first ID code and a second ID drawn from said list, said first check number being written onto said diskette with said software, and for generating a second check number based upon said public-key encryption of said second ID code; and means in said first and second computing systems for comparing said first and second check numbers and preventing execution of said software by said second computing system based upon mismatch of said check numbers.
-
Specification