System for preventing software piracy employing multi- encrypted keys and single decryption circuit modules
Abstract
17- A system (FIG. 1) which enables a protected program (e.g., prog. A, prog. B., ...) to run only a selected plurality of computers (e.g., computer 10) including a respective unique key Ki for each computer of the plurality, the key being triple encrypted (14a) in the form EFK¢EFK¢Ki!!!. A respective module (16) is coupled (via 17) to each computer (10) of the plurality. A checker program (15) in each computer responds to a request (from station 11) to use the protected program by performing a single decryption procedure E?? on the triple encrypted key (step 22 of FIG. 2) and sends the result (step 23) to the module (16) as a message. The module (16) performs a single decryption procedure E?? on the message (step 25) and sends that result (step 26) back to the computer. The checker program (15) receives the module's result and performs another single decryption procedure E?? on it (step 28) to obtain key Ki. Then the checker program (15) uses key Ki to decrypt an identifier, (e.g., 14b, 14c, ...) and proceeds with the execution of the protected program only if it is identified by the decrypted identifier (step 32).
Term
Term ended
Expired 31 October 2006, 19.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
10 claims: 3 independent, 7 dependent
- 1A system for enabling a protected program to run on only a selected plurality of computers, comprising:a respective triple encrypted key for each of said computers of the form EFK[EKi[EFK[Ki]]] where Ki is an unencrypted key that is unique to each of said computers, EKi is an encryption procedure E which uses key Ki, and EFK is the same encryption procedure E using a single fixed key FK for all of said computers;a respective unique module coupled to each computer of said plurality for performing a decryption procedure EKi-1 where Ki is unique to each module;a checker program in each computer which responds to requests to use said protected program by performing a single decryption procedure EFK-1 on said triple encrypted key and sends the result to said module as a message M;said module being adapted to perform said single decryption procedure EKi-1 on said message M and send EKi-1[M] back to said computer;a means in said checker program for receiving EFK-1[M] from said module and for performing another single decryption procedure EFR-1 on it to obtain key Ki;an identifier that is encrypted with said key Ki;and a means in said checker program for using key Ki to decrypt said identifier, and for proceeding with the execution of said protected program only if it is identified by the decrypted identifier.
- 5A data processing system comprised of:a computer having a key Ki that is unique to said computer and is at least double encrypted in the form EKi[EFK[Ki]] where EKi is an encryption procedure E which uses key Ki, and EFK is the same encryption procedure E using another key FK;a module coupled to said computer for receiving said key in said double encrypted form in response to a request for said computer to run a protected program and for partially decrypting said double encrypted key to a single encrypted key EFK[Ki];a checker program for receiving said single encrypted key EFK[Ki] from said module and for completing its decryption to Ki;an identifier that is encrypted with said key Ki;and a means in said checker program for using Ki to decrypt said identifier, and for proceeding to run said protected program only if it is identified by the decrypted identifier.
- 10A data processing system of the type which includes a computer, a protected program for said computer, and a module coupled to said computer; said system further including:a key Ki that is unique to said computer and is double encrypted;a means in said computer for receiving a request to use said protected program, and in response thereto, for sending said double encrypted key to said module;a means in said module for performing a decryption procedure EKi-1 on said double encrypted key to obtain a single encrypted key and for sending the latter back to said computer;a means in said computer for decrypting said single encrypted key to an unencrypted key;and a means in said computer for utilizing said unencrypted key to decrypt an encrypted identifier, and for proceeding with the execution of said protected program only if the decrypted identifier has a predetermined value. 14
Independent claims3
61 paragraphs in 1 section, as filed
2S7~
--1--
SYSTEM FOR PREVENTI~G SOFltWARE PIRACY EMPLOYING
MULTI--ENCRYPTED KEYS A~D SINGLE DECRYPTION CIRCUIT MODUr,ES
lE3ACKGROVND OF TE~ INVENTION . This invention relates to data proce3sing systems; and in particular it relates to data processing systems which include some means for preventing the piracy of soft- ware programs. Basically, every data processing sys~em includes a digital computer which perform~ various tasks in response to a sequence of instruction~ called a program or software.
Many different programs can be written for the ~ame compu- ter; and in each program, the ~equence of instruction~ i5differently arranged in accordance with the particular task that the computer is to perform. For example, one program can direct the computer to perform inventory operations, another program can direct ~he computer to perform payroll operations, etc. Often, the programs which are writ~en for a compu- ter are very co~plex, comprise thou~ands of in.s~ructions, and represent a considerable investment in time and money.
: .. : . : : : .
..
25P75 --2--
Therefore, efforts have been made in the prior art to prevent software from being stolen by software pirates.
However, software is very easy to copy since it usually is stored on a magnetic tape or magnetic disk which is readily duplicated. Consequently, prot~cting software from piracy is difficult to achievP. This problem of protecting software is most diffi- cult for corporations which produce and license software programs, a~ a product, to many di~ferent customers. Each time a program is distributed under a license to a differ- ent customer, that customer become~ a potential software pirate. For e~ample, the potential Pxists for a customer to copy the licensed software, terminate his license, and thereafter run the software copy. Also, the potential exists for the customer to copy the sof~ware and distribute it to third parties. One of the prior art means which has been devised to prevent software piracy is described in United States
Patents 4,168,396 and 4,278,837 to ~est. In these patents, each instruction of the program is encrypted and sent to the customer in the encrypted form. Then, when the program is to be run, it is read into the computer in encrypted form, decrypted inside of the compute~, and executed. In the Best ~ystem, the decrypted program is not available for copying since the program on the storage media is always encrypted. However, since each :instruction must be decrypted prior to being executed, execut:ion of the program i8 very 810w. Further, the program only runs on sp~cially con~tructed computers which do the decryption.
These computers are only supplied by the software vendor; so the Best system does not even work in the typical case where the ~oftware customer wants to run a licensed program on a computer which he already owns.
, , ;'
;2~75 --3--
Ano~her prior art software protection system is described in Patent 4,471,163 by Donald et al. In ~ha~ ~ystem, the customer of a licensed program is supplied a program lock unit which performs a predetermined calcula- tion on a number, and the program it~el is modified toalso perform t~e same calculation on the ~ame number. Then the program compares the result of its calculations to the r~sult obtained from the lock unit and the program stops if the two re~ult~ are not equal. A problem, however, with the Donald et al system is that ~he result of the calculation which the lock unit perfonms i~ passed to the computer over a co~ductor on which it could be read by a line analyzer. After being read, that same result could be generated by any memory circuit, such a~ a programmed read only memory. Thu~ a copy of the protected program could be made to run by simply replacing the lock unit with the read only memory. Also in the Donald et al system, no further checks are made after the two results have been compar~d and the program has started ~o run. Iherefore, one copy of ~he program can be started on a sy~tem to which the lock unit is attached, and thereafter the lock unit can be remo~ed and transfsrred to another system whereupon another copy of the program can be started. Thus the protection system is not suitable for programs of ~ type which operate for long time periods, - ~uch as graphic6 programs which operate all day in an interactive fashion with an operator. Another problem with the Donald et al system is that the cu~tomer of a licensed program must be given a copy of a Xey that contain~ several parameters which the customer then enters via a keyboard into the lock unit.
Tho~e parameters are opera~ed on by the lock unit to pro- duce ~he re3ult which the licensed program compares~
However, having thi~ key enables a customer of one program (program A) to copy his key and his program, and then give
.
~. ,
r~ 5 75 --4-- ;
those c~opies to a customer of anothPr program ( program B ) .
In return, the customer o:f program B can copy hic program and his key, and give thelTI to the cu~tomer of progrzun A. In view, therefore all o~ these prior art probl~m~ with prote~:ting sotware, it is a prima:ry object o the inventi~n 1:o provide an improved ystem for prevent- ing ~oftwar~ pirary in w~ich the~e and other prior art deficiencies are overcome.
1~ In accordance with embodiments of the present invention, the above object, and others, are achieved by a system which enables a protected program to run on only a selected plurality of computers, and which comprises: . lS a respective u~ique key for each computer of 1:he plurality: the key being triple encrypted in the form
E~K~EKi~EF~CKi]]] where Ki i~ the unencrypted key, EKi is an encryption procedure E which u.~es Ki r and EFK iq the same encryption procedure E using a single f ixed key FK 20 for all of the computers; a respective module coupled to each computer of the plurality; a checker program in each computer which responds to a reque3t to use the protected program by performing a 25 single decryption procedur~ EFl on the triple encrypted key and send the result to the module as a message M, a means in the module which performs a single decryption procedure EKli on message M and sends E~ M] back ~o the computer a means in the checker program for receiving
EK~CM~ from the module and for performing another single decryption procedure l~K on it to obtain k~y Ki; an identifier for the protected program that is encrypted with Xey Ki, and
`
~L~22575 a means in ~he checker program for usi~g key Ki to decrypt th2 identifier, and or proceeding with the execution of th@ protected program only if it is ldentifled by the decrypted identifier.
8RIEF DESCRIPTIO~ OF THE DRAWINGS Various ~eatures and advantages of embodiments of th~ inventlon are described in detail in the following Detailed Description in conjunction with the accompanying drawings wherein: FIG. 1 illustrates a system for preventing software piracy in accordance with an embodiment of the invention; and FIG. 2 illustrates additional details of a decryptor checker program in the FIG. 1 system.
DETAILED DESCRIPTION Reerring now to FIG. 1, a preferred embodiment of a ~y~tem w~ich prev~nts software piracy in accordance with one embodiment will be descr~ed in detail. This system includes a digital computer 10, a plurality of worX sta- 20 ~ion~ 11, and an input/output bus 12 ~hich coup:Les the work ~tations 12 to computer 10. Computer 10 may be any type of general purpose digital computer, such as a G~TEK* Comet.
Similarly, each work ~tation 11 may be any type of terminal which has- a keyboard that enabl~s an operator to request computer 10 to e~ecute various progr~ms, such as a GRA~TEX
Meteor. Al~o included in ~he FIG. 1 system i.s a dis~ 13 which s~ores protected software programs that run on com- puter 10. These programs are i~dicated as PROG A, PROG B, and P~O~ C. E~ch program may direct computer 10 to perform any type of de~ired functions, and it~ exact makeup is un.im- portant. For example, the program~ could interact with an operator at the worX~tation to rotate a graphic~ image on a
CRT screen in the worXstation, display two graph.ics image.s * Trade l~ark
5~;
in a split screen fashion on the CRT screen, or zoom in on a particular feature of the image that is being displayed. Disk 13 al50 stores an encrypted list 14. Entry 14a of this list i~ a triple encryptecl key of the form
EFK~EKi[EFK[Ki]~. In this expression, Ki i5 an unencryp- ted Xey that is unique to computer 10. That is, each time the FIG. 1 system is duplicated for a different customer, key Ki is changed. Term EKi in the above expression represents an encryption procedure E which uses key Ki. Thus, when the
FIG. 1 ~ystem i~ duplicated for different customer3, the encryption procedure E in each system is the same, but the key Ki in each system is diffPrent. Similarly, term EFK in the above e~pression repre- gents the encryption procedure E a~ recited above but w~lich is performed with a ~ingle fixed key FK. Thu~, when the
FIG. 1 sy~tem i9 duplicated for different customers, the encryption procedure E and it~ key FK is the same in each system. All oP the protected programs on the FIG. 1 system also have a corrasponding encrypted identifier in list 14.
Entry 14b is the encrypted identifier for PROG A; entry 14c is the encrypted identifier for PROG B; and entry I4d is the encrypted identifier for PROG C. Each of these identi- 25 fiers is encrypted first with procedure EFK and thereaft~r with procedure EKi. Diek 13 al90 stores a decryptor-checker program 15. All of the de~ails of this program will be described ~hortly in conjunction with FIG. 2. In general, however, program 15 operates i~ response ~-o a request Prom an opera- tor at work station 11 for computer lO to run a particular program. During its operation, program 15 checks whether the requested program i5 included in ~he encrypted list 14.
IP the requested program is in list 14, then execution of 35 that proyram is permitted to occur; otherwise, it is not.
-7- '~L,2~575
A software pro~ection module (SPM~ 16 which operate~ in conjunction with program 15 is also included in the FIG. 1 sys~em~ Module 16 is coupled to computer 10 via a serial I/o bu3 17. In operation, module 16 recei~es a m~s~age via bus 17 from computer 10, performs a d~cryption f~ction EKi on that message, and sends ~he re~ult~ bac~ via bu 17 ~o computer 10. If the FIG. 1 sy~tem i duplicated ~or diferent customer~, ~he decryption st~ps E-l which module 16 perform~ i~ the same in each sy3tem~ ~owever, the key Ki which ~odule 16 use3 in those steps is differ~nt in each sys~em. Preferably, module 16 is packaged such that it is very difficult, if not impossible, ~o open the package without de~troying the key Ki. This may be achieved by integrating the key inside of a microprocessor chip which is programmed to perform the EKi function, and by putting the microproce~sor chip in a very hard and chemically resi3tant substance, such as a polyimid~, Teflon* or ladder-organosiLoxane*polymers. Referring r~ext to FIG. 2, the decryp~or-checker program 15 will be described in detail. This program is entered at a point 20 in response to a request from an operator at work station 11 for computer 10 to run PROG A,
PROG B, or PROG C. Program 15 begins by reading the triple encrypted key 14a from li~t 14. Then it performs the single decryption functon E ~ on entry 14a and sends the result to module 16 as a me~sage M. This is indicated by reference numerals 21, 22, and 23. Module 16 responds by receiving the message M : which computer 10 sent and performing a single decryption function E~l on that information. Then module 16 sends the result back to computer 10 as ~Ki~M~. This is indicated in FIG. 2 by reference numerals 24, 25 and 26. * Trade Marks
s~ --8--
Program 15 receiveS the information which module 16 s~nt and performs the single decryption function EFK on it to obtain the unencrypted key Ki. This is indicated by reference numerals 27 and 28. Thereafter, program 15 reads the remaining entries in list 14 and perform~ the decryption function~ E~i and
EFK on them. If the result of those decryption operations yield# the name of *he program which was requested by work qtation 11, then execution of that program continue5.
Otherwiqe, execution of the r~quested prcgram i5 bypassed.
Thi8 i8 indica~ed by reference numerals 29 thru 33. One important feature of the above described ~ys- tem i~ that the list 14 and module 16 are matched such that they only work together a-~ a pair. Thus a pc>tential soft-- ware pirate cannot make and sell copies of the protectl3dprograms becau~e each program will only run on a system which has a particular module 16. Another important feature of the above de~cribed system is that none of the messages on bus 17 b~tween com- puter 10 and module 16 contain key Ki in itq unencryptedform. Therefore, a potential software pirate cannot cletect the key Ki by placing a line analyzer on bus 17 to read the mes~ages on the bus. Yet another feature of the above system is that none of the messages that are transmitted on bus 17 corres pond to any entry in the encryp~d list 14. Therefore, a potential software pirate cannot even determine what part~ of li~t 14 are being transmitted on bus 17 by placing a line analy~er on bu8 17 to record the me.qsages ancl by lat~r comparing thos~ messages to the data which is stor~d on the di~k. Still another ~eature of the a~ove described sy6tem i~ that key Ki permanently exis~s in its une~crypted orm only in module 16. Bu~ module 16 is tamperproo~ in
g
the sense that key Ki is destroyed if the module is opened.
Therefore, there is no permanent copy of key Ki for a potential sotware pirate to obtain. ~no~her feature of the above system is that it 5 provides a very practical means for a software vendor to protect his program~. This is because most computers h~ve a serial I/O bus, and so the software vendor doesn't need to design a module ~ith a new bus interface for each custo- mer. In~tead for each cu~tomer, only l:ist 14 needs to be encrypted differently and a different key Ki needs to be potted in module 16. Program 15 also has a ~econd entry point as in~i- cated by reference numeral 40. This point of the program i9 entered at randomly select2d time instants while any of lS the authorized programs are running. Upon entering point 40, program 15 generates a ran- dom number and sends it to module 16. In response, module 16 receives the random number, performs the decryption function EKi on the random number, and sends the result back to computer lO. This is indicated by referencP numerals 41 thru 45. After receiving the decrypted random number, program 15 acquires key Ki and performs the encryption function EKi on the decrypted random number. This result is then compared to the originally generated random number of ~tep 41. If the two numbers are equal, the running of the reque~ted program is continued. Otherwise, the running of the requested program is terminated. This is indicated by reference numeral~ 46 49. One feature of thi~ portion of program 15 is that it prevents a thief from removing module 16 after a pro- tected program has started running. Therefore, a thief can- no~ start the protected programs on ~he FIG. 1 system, move
.:
~2~75 -10--
module 16 to another system which has a copy of the protec- ted programs/ and start the copied programs running without having FIG. 1 system stop. Yet another feature of the above portion of program 15 is that it prevents a thief from duplicating module 16 by placing a line analyzer on bus 17, monitoring and storing all of the responses which module 16 make~, and building a circuit which duplicates those responRes. Such an attempt will not work ince the numbers sent via step 42 and the response received via ~tep 46 will alway~ be changing with time. A preferred embodiment of ~he invention has now been de~cribed in detail. In addition, however, many changes and modifications can be made ~o these de~aiLs withou~ departing from the nature and spirit o:E the invention. For example, the details of the encryption steps E and decryption steps E-l as well as their specific implemen- tation i~ unimportant. Any encryption-decryption algorithm will work so long as it meets the constraint ~Ki~EKi~Ki3~-Ki.
Many ~uitable algorithms and implementations are described, for example, in the text Cry~tography: A New Dimension :in
Computer Data Security by Meyer et al, published by John
Wiley ~ Sonc. As another modification, entry 14a in list 14 may be replaced with a double encrypted key of the form
EKi[EFK[~i]]. ThiS would eliminate the need for ~tep 22 .in program 14, which would make the program run fa.~ter.
However, ~he price for this increase in speed will be a decreased degree of ~ecurity. As still another modification, checker program 15 can be partitioned into many parts which are scramble~d throughout the protected program~ (e.g., - program A, pro- gram B, and program C). Usually the protected programs axe
~2~2S~
much larger than the checker program, so locating the checker program after such 5cr~mbling is essentially impos~ sible. Thu5, this gives an added degree of security since it prevents a potential software pirate from locating the checker program and bypassing it. Ascordingly, ~ince many such modifications are possible, it is to be understood that the invention is not limited to the above details but is defined by the appended claims.
` , . : , ~ ,
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7752139B2 | Cited by | United States of America | Applicant |
10 members in 7 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 77190185 | United States of America | A | |
| 77190185 | United States of America | A | |
| 771901 | – | – | – |
| US19850771901 | – | – | – |
Members10
| Document | Office | Kind | |
|---|---|---|---|
| WO8701483A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US4683968A | United States of America | A | |
| JPS62502080A | Japan | A | |
| EP0238537A1 | European Patent Office (EPO) | A1 | |
| CA1262575AThis record | Canada | A | |
| EP0238537B1 | European Patent Office (EPO) | B1 | |
| AT57029T | Austria | T | |
| ATE57029T1 | Austria | T1 | |
| DE3674581D1 | Germany | D1 | |
| JPH0260008B2 | Japan | B2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| LapsedLapsedMKLA | MKLA |
Numbers
- Publication, DOCDB
- 1262575
- Publication, EPODOC
- CA1262575
- Application
- 517059
- Application, DOCDB
- 517059
- Application, EPODOC
- CA19860517059
Titles2
- English
- SYSTEM FOR PREVENTING SOFTWARE PIRACY EMPLOYING MULTI- ENCRYPTED KEYS AND SINGLE DECRYPTION CIRCUIT MODULES
- French
- SYSTEME POUR EMPECHER LE PIRATAGE DES LOGICIELS AU MOYEN DE CLES A CODAGES MULTIPLES ET DE MODULES DE DECODAGE UNIQUE
Classification
- CPC, 1
- G06F21/10
- IPC, 11
- G06F12 14
- G06F1 00
- G06F9 06
- G06F21 10
- G06F21 12
- G06F21 14
- G06F21 62
- G06F21 75
- G09C1 00
- H04L9 10
- H04L9 14