COMPUTER SOFTWARE PROTECTION

Abstract: A computer program is supplied together with an identifying element encoded so as to identify the particular program. The identifying element is read by a code reader coupled to the computer and the program causes the computer to read this code and compare it with a corresponding code included in the program, before the program can be run. These arrangements prevent the use in computers of programs which have been made by unauthorised copying.

Description: COMPUTER SOFTWARE PROTECTION This invention relates to arrangements for pre¬ venting the use in computers of programs which have been made by unauthorised copying. Unauthorised copying of software has hitherto been difficult or impossible to stop and represents a con¬ siderable loss of revenue to the industry, whether the original programs are provided on tape cassettes, floppy discs or otherwise. We have.now devised arrangements which are not intended to prevent copying, but which instead prevent use of a program by anyone not possessing an identifying element which is unique to the particular program being protected. In accordance with this invention, there is prα- vided, in or for a computer system which comprises a com¬ puter together with a program input device and a code reader coupled to separate inputs of the computer, the combina¬ tion of a computer program receivable by the input device and an identifying element receivable by the reader, the computer program including a code unique only to that particular program, the identifying element having a read- only memory which holds a corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that program in the computer unless the two codes agree, and the computer program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer. Most usually the computer program will be pro¬ vided on a record medium such as a tape cassette or a floppy disc or a ROM chip. The read-only-memory of the identifying element may conveniently comprise a short length or stripe of magnetic material: this may be pro¬ vided on a plastics card, or an the casing of the record medium (e.g. on the cassette body or its library case, the floppy disc, the micro drive cartridge, or the ROM cartridge) or on some packaging within which the program is contained when purchased. * The arrangements may be such that the compari¬ son step or security check is carried out after the entire program has been loaded into the computer, the program being prevented from running unless the code read from the identifying element agrees with the program-identi¬ fying code read from program. Alternatively, the arrange¬ ments may be such that the computer loads an initial rou¬ tine of the program, which then causes the computer to carry out the comparison step and to prevent the remaiπ- der of the program being loaded unless the compared codes agree. Embodiments of this invention will now be descri¬ bed, by way of examples only, with reference to the accom¬ panying drawings, in whichs Figures 1 and 2 are respectively side and plan views of a first embodiment of reader for the identifying element; Figures 3 and 4 are respectively plan and side views of a second enbodiment of reader for the identifying element; Figure 5 is a plan view of a circuit board used - with the hand-held reader of Figures 3 and 4; Figures 6 and 7 are respectively side and plan * views of a third embodiment of reader; Figure 8 is a plan view of a tape cassette on which the identifying element is provided; Figure 9 is a plan view of a plastics card for¬ ming an alternative identifying element; Figure 10 is a circuit diagram of the alternative readers; Figure 11 is a flow diagram of the security rou¬ tine included in the computer program; and Figure 12 is a diagram showing one possible arrangement of magnetic pulses on a stripe of magnetic material used for the identifying element. In the arrangements which are shown in the draw¬ ings by way of examples only, the computer will have a cassette player or disc drive coupled to it as usual for loading the program into the computer from cassette or disc, and a data reader coupled to a separate input of the computer for reading the program-identifying code from the identifying element: in the examples shown, the reader is coupled to the Expansion Port of the computer and the identifying code is recorded on a stripe of magnetic mater- ial, forming a read-only-memory. The magnetic stripe 1 may be embedded in the self-adhesive label on the tape cassette, as shown in Figure 8, or formed on a plastics card of the same type as a banker's card, as shown in Figure 9. In the embodiment of reader shown in Figures 1 and 2, a printed circuit board 3 plugs via an edge connec¬ tor 6 into the Expansion Port of the computer. On the PCB 3 is mounted a standard tape recorder replay head 2 together with an electronic circuit serving to amplify and shape the signal picked up by the tape head, as a card 10 with its magnetic stripe 1 is drawn past the head. The signal is then fed via the edge connector Item 6 onto a Data Line into the computer. The PCB 3 is further pro¬ vided, at the opposite end to the edge connector, with a replica of the computer port so as to allow for connec¬ tion of other add-on units. To ensure good contact be- weeπ the magnetic stripe and the tape head 2, a pressure pad 8 is provided. A plastics case 4 provides protection for the PCB, and location for the plastics card 10 as it is pulled past the tape head. Due to differences in the positioning of expan¬ sion ports in computers e.g. at the rear, on the lε-ft or the right sides, different designs of reader may be need- -ed. For example, the reader of Figures 6 and 7 is arranged for the card 10 to be pulled parallel to the Expansion Port instead of at 90 degrees as in Figure 2. To facili¬ tate the connection of other add-ons to this device via the card edge connector 7, the tape head and electronic components are mounted on a separate PCB 3. Otherwise all other components are as described for Figures 1 and 2. To allow for further flexibility as regards the placing of the magnetic stripe e.g. on a part of the pro¬ duct or part of the packaging too awkward to be drawn past the tape head, the reader shown in Figures 3 to 5 may be used. Here, the tape head, together with the same elec¬ tronic components as in the other two examples, are built into a tubular case 4. This now becomes a hand-held unit, capable of drawing the tape head across the magnetic stripe and picking up its code. This signal is then fed via a cable 5, to a second PCB 7, which is plugged into the com¬ puter's expansion port. Again further add-on units can be connected to the computer via the repeat of the expan¬ sion port at the opposite end of the PCB 7. On some computers the expansion port is a 'socket' rather than a 'plug' as assumed in the above descriptions. This only means a reversal of the connectors on PCB 3 in Figure 2 and PCB 7 in Figure 5 and 7. Figure 10 is a circuit diagram of the magnetic stripe readers. There are five connections from this reader circuit into the computer. They are the terminal marked +12 volts, +5 volts and 0 volts; and the two ter¬ minals 17 and 18. In operation, the tape head 2 picks up variations in magnetic flux density from the tape. This low level signal is amplified by the two transistors 12, 13. The signal is then processed by two diodes 14, 15 to remove the negative half of the wave form and limit the maximum positive component to plus five volts. The signal, which is now TT1 compatible, is passed to a tri- state IC buffer item 16. This buffer is controlled by the signal on terminal 17 from the computer. When the buffer is enabled by the computer, any signals produced by the tape head are passed via terminal 18 direct onto a data line and into the computer. The magnetic stripe reader is to be left per¬ manently plugged into the computer (or alternatively it may form a. permanent part of the computer). Then after loading and auto-running a program as usual, the security routine of the program causes the computer to wait for the reader to read the magnetic stripe (i.e. for the stripe to be pulled past the tape head): only after the security code has thus been read, and approved, will the computer run the program. Figure 11 is a flow chart of an example of security routine and Figure 12 is a diagram of the mag- netic pulses on the magnetic stripe, the flow chart of Figure 11 being for this arrangement of magnetic pulses. Once the program has been allowed to run, the code reader is not addressed again. However, in another embodiment of reader, where a plastics card carrying the magnetic stripe is read as the card is inserted into the reader, a hole is formed through the card on the middle line of the stripe so that a light path is completed through this hole when the card is in its fully-inserted position. If the card is removed and the light path thus temporarily interrupted, this causes a signal to be passed to the computer to stop the program running further. During insertion of the card, the initial interruption of the light path serves to pass a signal to the computer to indicate that the card is being inserted, so that the computer can prepare for the code reading. As mentioned prev iously , instead o f the program being allowed to load but prevented from running unless the compared codes agree , an initial routine o f the program may carry out the security check be fore the remainder o f the program is loaded , and prevent the remainder o f the program being loaded un less the compared codes agree . Whilst mention has been made o f the supply o f a record medium ( e . g . a tape or disc or a ROM chip ) on which the computer program is rec orded , the p rogram may instead be supplied to the user by a telephone link or data line . In any event , the user needs also to be supp¬ lied with the identi fying element , encoded with its identi¬ fication unique to the particular p rogram concerned .

Claims: CLAIMS 1. In or for a computer system which comprises a computer together with a program input device and a code reader coupled to separate inputs of the computer, the combination of a computer program receivable by the input device and an identifying element receivable by the reader, the computer program including a code unique only to that particular program, the identifying element having a read¬ only memory which holds corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that program in the computer unless the tw-o codes agree, and the computer program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer. 2. A combination of identifying element and computer program as claimed in claim 1, in which the computer program is arranged to cause the computer to carry out the compari- son step after the entire program has been loaded into the computer, and to prevent the program from running un¬ less the compared codes agree. 3. A combination of identifying element and computer program as claimed in claim 1, in which the computer program includes an initial routine arranged to cause the computer to carry out the comparison step prior to the remainder of the program being loaded into the computer, and to pre¬ vent that remainder of the program being loaded unless the compared codes agree. 4. A combination of identifying element and computer program as claimed in any preceding claim, in which the computer program is recorded on a record medium e.g. a tape, disc or ROM chip. 5. A combination of identifying element and computer program as claimed in any preceding claim, in which the identifying element comprises a stripe of magnetic mater¬ ial encoded with the identifying code. 6. A combination of identifying element and computer program as claimed in claim 5, in which the identifying element comprises a plastics card provided with the enco¬ ded magnetic stripe. 7. A combination of identifying element and computer program as claimed in claim 5, in which the encoded mag¬ netic stripe is provided on a casing of a record medium on which the program is recorded. 8. A combination of identifying element and computer program substantially as herein described with reference to the accompanying drawings. 9. A computer system which comprises a computer, a program input device and a code reader coupled to sep¬ arate inputs of the computer, a computer program received or receivable by the input device and an identifying ele- meπt received or receivable by the reader, the computer program including a code unique to that particular program, the identifying element having a read-only-memory which holds a corresponding code, the computer program being arranged to cause the computer to read the code from the identifying element (via the code reader), to compare the code as read from the identifying element with the code included in the program, and to prevent use of that pro¬ gram in the computer unless the two codes agree, the com¬ puter program being further arranged to cause the computer only to carry out the comparison step prior to the program running in the computer, and the code reader being arranged to read upon insertion of the identifying element into the reader and to respond to any subsequent physical re¬ moval of the identifying element to pass a signal to the computer to stop the program running.

Inventors: SHAW MICHAEL JOHN, SHAW, MICHAEL, JOHN
Applicants: GANDLAKE SOFTWARE LTD, GANDLAKE SOFTWARE LTD.
Application year: 1985
Main classification: G06F12
IPC codes: G06F1, G06F21