EP0478969A2

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

Abstract

A hardware device containing a first permanent key and a second key is plugged in a specified port of a computer to establish a communication path between the hardware device and computer. The first and second keys are presented with an access sequence from the computer in the software which is desired to be controlled generating outputs which are applied to an algorithm decoder which provides a control key which is used to protect the software from unauthorized use. The control key is the resultant of the algorithm decoder and the first and second keys. One of the keys is supplied with the hardware under the control of the developer whereas the second key may be supplied with the hardware device but is not restricted to the hardware device and may be entered through a separate port of the computer. The algorithm decoder can be included in any part of the software, the computer hardware or any combination thereof. Many combinations of the first and second keys may be designed to produce the same control key when decoded. One of the keys may be altered without regard to security, but there are certain values of the second key for each given value of the first key which will operate the software. Providing a plurality of first and matching second keys which produce the plurality of different valid control keys allows the use of additional software that works in conjunction with the original distributed software acquired at a later date without the addition of additional hardware devices.

EP0478969A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 3 September 2011, 15.1 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

6 claims: 2 independent, 4 dependent

  1. 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. 2
    The method as claimed in Claim 1 including the step 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.
  3. 3
    The method as claimed in Claim 1 including the step of establishing a plurality of first keys for a plurality of computer hardware devices;providing a plurality of corresponding second keys for said first key in each of said hardware devices;and processing any corresponding pair of first and second keys in a given algorithm for producing the same control key with any of said computer hardware devices.
  4. 4
    The method as claimed in Claim 1 including the step of including the algorithm in the computer and/or software.
  5. 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.
  6. 6
    The structure as claimed in Claim 4 wherein said second section of said hardware device has a plurality of second keys each of which when processed along with said first control key by an algorithm decoder means provides the said control keys.