CA2051576C

Method and apparatus for protecting multiple copies of computer software from unauthorized use

Abstract

A hardware device containing a first permanent key anda second key is plugged in a specified port of a computer toestablish a communication path between the hardware device andcomputer. The first and second keys are presented with anaccess sequence from the computer in the software which isdesired to be controlled generating outputs which are applied toan algorithm decoder which provides a control key which is usedto protect the software from unauthorized use. The control keyis the resultant of the algorithm decoder and the first andsecond keys. One of the keys is supplied with the hardwareunder the control of the developer whereas the second key may besupplied with the hardware device but is not restricted to thehardware device and may be entered through a separate port ofthe computer. The algorithm decoder can be included in any partof the software, the computer hardware or any combinationthereof. Many combinations of the first and second keys may bedesigned to produce the same control key when decoded. One ofthe keys may be altered without regard to security, but thereare certain values of the second key for each given value of thefirst key which will operate the software. Providing aplurality of first and matching second keys which produce theplurality of different valid control keys allows the use ofadditional software that works in conjunction with the originaldistributed software acquired at a later date without theaddition of additional hardware devices.

Term

Term ended

Expired 17 September 2011, 15 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

8 claims: 4 independent, 4 dependent

  1. 1
    - 13 The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows. 1. A method of protecting computer software using a combination of computer hardware and software comprising the steps of:permanently establishing a first key in a hardware device and storing a second key in said hardware device;coupling said hardware device having said first key and said second key stored therein to a computer utilizing software which is desired to be protected;interrogating the hardware device using an access sequence generated by the computer software which is desired to be protected;generating outputs from the hardware device indicative of said first key and said second key;extracting a single control key by using an algorithm which processes said first and second keys to produce the same control key;and preventing the unauthorized use of software desired to be protected using said control key.
  2. 5
    A combination of computer hardware and software means for protecting computer software comprising a hardware device having first and second sections for generating first and second keys, respectively, coupled to said computer operating on software that is desired to be protected;means for permanently establishing said first key in said first section of said hardware;software means for providing an access sequence to said first and second sections of said hardware means for generating said first and second keys, respectively;and algorithm decoder means coupled to said hardware means for decoding an algorithm using said first and second keys and providing a control key output which is used to protect said software. - 15
  3. 7
    A method of protecting computer software using a combination of computer hardware and software comprising the steps of:permanently establishing a first key in a hardware device;providing and storing a second key in said hardware device;plugging said hardware device having said first key and said second key stored therein into a computer utilizing software which is desired to be protected for establishing a communications path between the hardware device and said computer;interrogating said first and second keys in said hardware device using an access sequence generated by the computer software which is desired to be protected;generating output from the hardware device indicative of said first key and said second key;extracting a single control key by applying said first key and second key to an algorithm which processes said first and second keys to produce a control key;generating a plurality of second keys any of which when processed by a given algorithm along with said first key produce a corresponding control key;- 16 preventing the unauthorized use of software desired to be protected using said control key.
  4. 8
    A combination of computer hardware and software means for protecting computer software comprising a hardware device having first and second sections for generating first and second keys, respectively, coupled to said computer operating on software that is desired to be protected;means for permanently establishing said first key in said first section of said hardware;software means for providing an access sequence to said first and second sections of said hardware means for generating said first and second keys, respectively;algorithm decoder means coupled to said hardware means for decoding an algorithm using said first and second keys and providing a control key output which is used to protect said software;said second section of said hardware device has a plurality of second keys each of which when processed along with said first key by an algorithm decoder means provides the said control key.