Method and apparatus for the protection of proprietary computer software.
Abstract
Apparatus for protecting proprietary computer software against unauthorised use comprises a store (11) for selected data, means (10) for comparing data successively communicated by a program running on a computer (1) with data from the storage means, means such as an indelible memory (15) associated with a microprocessor (14) for storing identifying data, and transmitting means (14) for sending stored identifying data to the computer. When a match is detected by the comparator, the identifying data are sent to the computer, which requires this data for continued normal running. A copy of the software cannot run on a computer without associated protection apparatus and unauthorised copies will therefore be unusable unless the protection apparatus can be obtained. For a great degree of protection, a sequence of matches and identifying data messages may be required to allow continued normal running of a program.

Term
Term ended
Projected expiry passed 13 January 2003, 23.7 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
9 claims: 5 independent, 4 dependent
- 1Apparatus capable of protecting proprietary computer software against unauthorised use, comprising storage means for storing selected data, comparison means for comparing data successively communicated by a program running on a computer with data from the storage means, means for storing identifying data and transmitting means for sending stored identifying data to the computer, whereby on detection of a match in use, the transmitting means send said identifying data to the computer, said data being required for continued normal running of a proprietary program.
- 4Apparatus as claimed in any preceding claim, including communications means for the transfer of data to and from a computer associated with the apparatus.
- 5Apparatus as claimed in any preceding claim wherein the apparatus is adapted for communication with a peripheral device.
- 8Apparatus as claimed in any preceding claim comprising a programmed microcomputer, wherein the storage means for the selected data and the identifying data comprise programmable read only memories and the comparison means is adapted to operate under the instructions of the programmed microcomputer by carrying out a sequence of logical operations to detect a match.
- 9A method for protecting proprietary computer software against unauthorised use, comprising storing selected data and identifying data in protection apparatus associated with a programmed computer, successively communicating data from the computer to the apparatus, comparing said communicated data with said selected data and, on detection of a match, transmitting said identifying data to the computer, the identifying data being required by a proprietary program for continued normal running.
Independent claims5
26 paragraphs, as filed
0001The present invention relates to apparatus for the . protection of proprietary computer software, and in particular for protecting such software against unauthorised use.
0002The large amount of time and skill which is frequently involved in the writing of computer programs means that software is very often expensive. When a hardware and software package is sold to users of computer systems, a significant part of the cost will be attributable to the software. Currently, hardware costs are falling as the number of users increases and mass production techniques can be used. For software, reproduction costs are low, but initial development costs remain high. The market has become very competitive and the unscrupulous, instead of commissioning their own programs, may be tempted to take the much cheaper alternative of copying without authority the programs of others. For sophisticated computer systems which are tailored to the particular user's requirements it is relatively straightforward to monitor the system and avoid unauthorised adoption by others of the associated software. For standard systems, on the other hand, software products are frequently shipped in volume, often through distributors, to a large buying public, giving the opportunity for copying.
0003One proposal for protecting software is for the software package to be sold with a hardware key. The key could, for example, be physically connected to the computer data bus. With such an arrangement, the software would be written to read a code, such as the serial number of the particular software package, embedded in the hardware. Provided this code matched counterparts held at suitable places in the software, the running of the program would be allowed to continue, but if there was no match, the program would be stopped from running. A person who copied the program and attempted to use it with a different hardware key or with no key at all would not be able to do so.
0004The above proposal has two disadvantages: one is that the key is very simple and can quite easily be copied and the other is that the key is specific to each type of hardware. Software is often written in a form which allows it to be easily transferred from one basic hardware system to another. This enables the user to upgrade his hardware without having to invest in new software at the same time and also enables the supplier to offer his software for use on the latest equipment at little extra expense to him. The simple key proposed would not therefore be of much value.
0005The present invention provides apparatus for protecting software which is adaptable for use on all kinds of computer hardware conforming to certain standards and which cannot easily be copied.
0006Accordingly, the invention provides apparatus capable of protecting proprietary computer software against unauthorised use, comprising storage means for storing selected data, comparison means for comparing data successively communicated by a program running on a computer with data from the storage means, means for storing identifying data and transmitting means for sending stored identifying data to the computer, whereby on detection of a match in use, the transmitting means send said identifying data to the computer, said data being require for continued normal running of a proprietary program.
0007If the program were to be run on a computer without associated protection apparatus, the program would cease running normally as it would not receive the required identifying data.
0008The apparatus may be provided with communications means which enable data to be transferred to and from a computer associated with the apparatus. The apparatus may also be adapted for communication with a peripheral device. The communications means can consist of simple and standard communications hardware, making the apparatus very versatile and usable with many kinds of computer hardware. ,
0009In one form, the apparatus comprises blocking means to prevent transfer of data to the peripheral device after detection of a match and until after said identifying data has been transmitted by said transmitting means. It may also include switching means for preventing actuation of the blocking means, to allow the running of a non-proprietary program without interruption by the blocking means.
0010In a preferred form of the apparatus which provides particularly effective protection, said selected data comprises a code of data bits and said identifying data comprises a message of data bits and a plurality of the data codes and data messages are stored in said respective storage means for the data codes to be successively compared and said data messages to be successively transmitted, whereby a proprietary program on an associated computer will cease running normally unless a predetermined sequence of identifying data messages is received by the program from the apparatus. The apparatus can be programmed to alter in a predeteremined manner the selected group of data bits which are to be matched and to send a sequence of messages to the computer, these being required by the computer in order to allow continued normal running of the program.
0011The invention will now be described, by way of example, with reference to the accompanying drawing which is designated Figure 1. <sub>1</sub>
0012The Figure shows, in block schematic form, particular protection apparatus constructed in accordance with the invention, in combination with other apparatus.
0013Referring to the Figure, a programmed computer 1 is connected to a peripheral device 6, which could be for example a printer, a visual display unit, or another computer. Connected between the computer 1 and peripheral device 6 is protection apparatus 5 according to the invention. Communications means 2, 3 and 7, 8 are standard RS-223-C interfaces for transmission of data to and from the computer and peripheral device.
0014Protection apparatus 5 comprises a shift register 9 which receives groups of data bits from the computer 1 via line 2. A further register 11 stores data in the form of an eight digit code number for example the particular code of the proprietor of the software, and is under the control of a microprocessor 14 which can, via lines 24, alter the data stored in the register 11 if required. Registers 9 and 11 are connected respectively via lines 18 and 19 to a comparator 10. The output of the comparator is connected via line 20 to a bistable 12 which is also controlled by a switch 17 and a line 33 from microprocessor 14. The output of the bistable 12 is connected via line 21 to the microprocessor 14 and line 34 to an AND-gate 13. The output of shift register 9 is directly connected with the AND-gate 13 via line 22 and also has a line 32 to the microprocessor 14. Data from gate 13 passes via line 7 to peripheral device 6 and data from device 6 may be transmitted to the computer 1 via line 8, OR-gate 16 and line 3. The microprocessor 14 is also connected to OR-gate 16 via line 23.
0015It will be apparent from the foregoing that microprocessor 14 receives data from and supplies data to various components of the protection apparatus 5. The microprocessor is associated with a non-volatile memory 15 which stores the multi-digit serial number of the software, or other identifying data such as a serialised message of coded characters. A program running on the computer requires transmission of the serial number (or identifying data) from the protection apparatus 5 in order to continue running.
0016The operation of the apparatus 5 is as follows. A program running on computer 1 sends data via line 2 as a sequence of bits to the shift register 9, where the bits are held a byte (8 bits) at a time for the purposes of comparison with the 8 digit code in register 11. Bits are successively passed to register 9 for comparison and, in the absence of a match with the code in register 11, the data passes via line 22 to AND-gate 13. As long as there is no match between the contents of registers 9 and 11, bistable 12 continues to enable AND-gate 13 and the data passes via line 7 to the peripheral device 6. All data passing via line 22 to the peripheral device 6 can be read by microprocessor 14 which is connected to the output of register 9 via line 32.
0017The bistable 12 and AND-gate 13 function as a temporary blocking means. If the comparator 10 detects a match, the state of bistable 12 is changed and the AND-gate 13 is disabled. This prevents peripheral 6, which may for example be a VDU or a printer, from displaying or printing data which is part of the checking operation and in unrelated to the purpose of the program. Bistable 12 is connected via line 21 to the microprocessor 14 and the bistable 12 prompts the microprocessor to transmit the serial number stored in memory 15 to the computer via line 23, OR-gate 16 and line 3.
0018The proprietary program running on the computer is so written as to require transmission of the serial number to keep on running normally, that is to say to continue to run and perform its intended tasks instead of carrying out checks. The program receives and checks the serial number from apparatus 5. If the number is incorrect, the program will cease running. In an alternative form, the program may be compiled to send appropriate messages to the peripheral device 6 if the correct serial number is not received, telling the user to check that the correct apparatus and program are being used in conjunction, or warning that the program in use is an unauthorised copy.
0019If the serial number is found to be correct, the program is allowed to continue running normally and data passes to the apparatus via line 2, and register 9. The data is read by the microprocessor 14 via line 32, the microprocessor causes a signal to be sent to bistable 12 via line 33 which enables AND-gate 13, previously disabled on detection of a match, allowing data to pass via line 7 to peripheral device 6 which can resume its display or printing of relevant data.
0020If it is desired to run a non-proprietary program on computer 1, the apparatus 5 need not be disconnected as the program is permitted to run and is unaffected by the apparatus. Data from the computer 1 passes via line 2 to register 9. It is unlikely that a match will be detected by comparator 10 but to prevent a spurious match disabling gate 13, switch 17 may be closed to cause bistable 12 to keep the gate 13 enabled, allowing data to pass directly from the register 9 to gate 13 via line 22 and thence to peripheral device 6 via line 7. Data from the peripheral device may pass via line 8 through the protection apparatus, emerging from gate 16 on line 3 to reach computer 1.
0021A producer of proprietary computer software can protect the software from unauthorised copying by selling the software together with apparatus according to the invention, suitably a piece of hardware in a "black box". The program is compiled so as to require specific data for continued normal running and the apparatus of the present invention provides that data. In the embodiment described above, the program is written to include the code required by register 11 of apparatus 5 to provide a match, and the match causes microprocessor 14 to send the serial number of the program to the computer 1, this being the data required to cause the program to continue running. An unauthorised person who has copied the program but has not been supplied with the apparatus 5 cannot run the program past a certain point because the serial number will not be transmitted, thus causing the running to cease. A manufacturer need not go to considerable trouble and expense, as has been necessary in the past, to stop his programs from falling into the hands of the unscrupulous because copies of proprietary programs are unusable without associated protection apparatus according to the invention.
0022The apparatus described and illustrated is one example of an embodiment of the invention, which has been shown for convenience as comprising a number of hardware components. It will be appreciated that these could be replaced by fixed firmware in a dedicated microcomputer to perform similar functions. The code or other data store which in the embodiment described above was register 11 could comprise a PROM. The incoming data from the computer could be stored for comparison purposes in a memory register and the comparison carried out by the firmware through a sequence of logical operations under the instructions of the microcomputer.
0023The apparatus of Figure 1 is a particularly simple example, and more sophisticated forms could provide a greater degree of software protection. For example, microprocessor 14, which can control register 11 via lines 24, may be programmed to modify the contents of the register once or several times after comparator 10 has detected a first match, the program running on the computer being programmed to supply the appropriate codes via line 2. Memory 15 may store a sequence of serial numbers or messages to be released in turn, after detection of successive matches by comparator 10, to the program which requires these numbers for the performance of a sequence of tasks or checks, necessary to allow continued running of the program and for the sending of a message via line 2 for the enabling of gate 13.
0024Gate 13, or an equivalent device, is optional and may be included if a peripheral device is running in.series with the protection apparatus. If a peripheral device is running on a different line or there is no such device, lines 2 and 3 will communicate solely with apparatus 5, and gate 13, which serves to prevent data present purely for the purpose of checking from reaching the peripheral device, would be redundant.
0025The versatility of the apparatus may be increased by carrying out the initial comparison on an arbitrary time base with repeated sampling so as to determine the baud rate of the data prior to checking the pattern of bits for a match. Once a match has been detected the apparatus may allow all data unconnected with the checking operation to be transmitted to a peripheral device running on the computer.
0026Where the apparatus is connected in an on-line mode on a communications port on a computer, it may act as a terminal concentrator for more than one output channel. The apparatus would then be provided with several interfaces such as interface 7, 8 with associated logic in the microprocessor. The apparatus is versatile because it is connected via a standard. interface to the particular user's hardware and can still be used if the hardware is updated, in association with suitably modified software.
2 sheets
Sheet 1 Sheet 2
Every citation, both ways
| Document | Relation | Office | Category | Cited during |
|---|---|---|---|---|
| EP0175557A1 | Cited by | European Patent Office (EPO) | – | Search report |
| WO2008068704A2 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| EP0417611A2 | Cited by | European Patent Office (EPO) | – | Search report |
| US4791565A | Cited by | United States of America | – | Search report |
| DE3320378A1 | Cited by | Germany | – | Search report |
| WO9927503A1 | Cited by | World Intellectual Property Organization (WIPO) | – | Applicant |
| EP0359220A3 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0165789A2 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0279733A1 | Cited by | European Patent Office (EPO) | – | Search report |
| US7370008B1 | Cited by | United States of America | – | Search report |
| FR2618926A1 | Cited by | France | – | Search report |
| WO2008068704A3 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| EP0370791A1 | Cited by | European Patent Office (EPO) | – | Search report |
| DE3525827A1 | Cited by | Germany | – | Search report |
| FR2657705A1 | Cited by | France | – | Search report |
| WO8504032A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| FR2610744A1 | Cited by | France | – | Search report |
| US4991193A | Cited by | United States of America | – | Search report |
| FR2577332A1 | Cited by | France | – | Search report |
| US4901168A | Cited by | United States of America | – | Search report |
| GB2175422A | Cited by | United Kingdom | – | Search report |
| DE3511674A1 | Cited by | Germany | – | Search report |
| EP0417611A3 | Cited by | European Patent Office (EPO) | – | Search report |
| US9953328B2 | Cited by | United States of America | – | Applicant |
| EP0183608A2 | Cited by | European Patent Office (EPO) | – | Search report |
| US5410598A | Cited by | United States of America | – | Search report |
| US4785361A | Cited by | United States of America | – | Search report |
| US4868736A | Cited by | United States of America | – | Search report |
| EP0989555A1 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0359220A2 | Cited by | European Patent Office (EPO) | – | Search report |
| DE3518319A1 | Cited by | Germany | – | Search report |
| EP0314530A1 | Cited by | European Patent Office (EPO) | – | Search report |
| US7249103B2 | Cited by | United States of America | – | Applicant |
| SG81313A1 | Cited by | Singapore | – | Search report |
| WO8805941A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US7158954B2 | Cited by | United States of America | – | Applicant |
| AU755690B2 | Cited by | Australia | – | Search report |
| US7092908B2 | Cited by | United States of America | – | Applicant |
| US7085743B2 | Cited by | United States of America | – | Applicant |
| US7089212B2 | Cited by | United States of America | – | Applicant |
| EP0135422A1 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0183608A3 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0279733A1 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0165789A3 | Cited by | European Patent Office (EPO) | – | Search report |
| US7065508B2 | Cited by | United States of America | – | Applicant |
| US7031472B1 | Cited by | United States of America | – | Applicant |
| EP0440545A1 | Cited by | European Patent Office (EPO) | – | Search report |
| US7209901B2 | Cited by | United States of America | – | Applicant |
| GB2154769A | Cited by | United Kingdom | – | Search report |
| GB2145856A | Cited by | United Kingdom | – | Search report |
| FR2550638A1 | Cited by | France | – | Search report |
| US7330837B2 | Cited by | United States of America | – | Applicant |
| US3609697A | Cites | United States of America | A | Search report |
| US3996449A | Cites | United States of America | A | Search report |
| IBM TECHNICAL DISCLOSURE BULLETIN, vol. 12, no. 8, January 1970, pages 1294-1295, New York, USA | Non-patent | – | – | Search report |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 8201353 | United Kingdom | A | |
| 8201353 | United Kingdom | – | |
| GB19820001353 | – | – | – |
| 8201353 | – | – | – |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | |
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| Designated contracting statesAK | AK | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0084441
- Publication, DOCDB
- 0084441
- Publication, EPODOC
- EP0084441
- Application
- 83300178
- Application, DOCDB
- 83300178
- Application, EPODOC
- EP19830300178
Titles6
- German
- Verfahren und Einrichtung zur Sicherung von Computer-Software-Eigentum.
- English
- Method and apparatus for the protection of proprietary computer software.
- French
- Méthode et appareil pour la protection de la propriété de programmes d'ordinateur.
- German
- Verfahren und Einrichtung zur Sicherung von Computer-Software-Eigentum
- English
- Method and apparatus for the protection of proprietary computer software
- French
- Méthode et appareil pour la protection de la propriété de programmes d'ordinateur
Classification
- CPC, 2
- G06F21/123
- G06F2211/007
- IPC, 1
- G06F21 12
Designated states6
- Contracting states, 6
- Austria
- Germany
- France
- United Kingdom
- Netherlands (Kingdom of the)
- Sweden