`Wolfe
`
`[11] Patent Number:
`[45] Date of Patent:
`
`4,796,220
`Jan. 3, 1989
`
`[54] METHOD OF CONTROLLING THE
`COPYING 0F SOFTWARE
`[75] Inventor:
`Everett W. Wolfe, Lauderdale Lakes,
`Fla.
`[73] Assignee: Pride Software Development Corp.,
`Boca Raton, Fla.
`[21] Appl. No.: 941,411
`[22] Filed:
`Dec. 15, 1986
`[51] Int. Cl.‘ ............................................ .. G06F 12/ 14
`[52] US. Cl. .................................................. .. 364/900
`[58] Field of Search
`364/200 MS File, 900 MS File,
`364/300; 380/4; 340/825.3l, 825.34
`References Cited
`U.S. PATENT DOCUMENTS
`
`[56]
`
`4,562,306 12/ 1985 Chou et a1. ....................... .. 364/200
`
`. . . . . .. 364/200
`4,593,353 6/ 1986 Pickholtz . . . . . .
`..... .. 364/90)
`4,644,493 2/ 1987 Chandra et a1
`..... .. 364/200
`4,652,990 5/ 1987 Pailen et a1. ..
`364/200
`4,685,055 8/1987 Thomas
`364/200
`4,688,169 8/1987 Joshi ..
`364/200
`4,740,890 4/1988 William .
`4,748,561 5/1988 Brown ............................... .. 364/300
`Primary Examiner-Raulfe B. Zache
`Assistant Examiner-Eric Coleman
`Attorney, Agent, or Firm-Harry W. Barron
`[57]
`ABSTRACT
`An authorized user of the program is allowed to make
`
`any number of backup copies of a computer program
`and to execute each such backup copy on the same
`authorized machine, but is inhibited from executing
`either the original or any copy thereof on any other
`machine. The method is implemented by including a
`control program with the application program to be
`copy controlled, which control program causes an in
`teraction and registration of the program during initial
`ization of the program with a central computer. The
`method includes generating a con?guration code based
`on the con?guration of the user's computer and the
`communication of the con?guration code to the central
`computer. The central computer thereafter generates a
`permission code based on the communicated con?gura
`tion code and communicates the permission code back
`to the user. The permission code is then entered into the
`user’s computer and stored_as a part of the control pro
`gram. Prior to each subsequent execution of the pro
`gram, a recalculation of the permission code is made by
`the control program and a comparison of the recalcu
`lated and the stored permission codes allows further
`execution of the program. The con?guration code may
`include special data unique to the user's authorized
`computer and the recalculation of the permission code
`may be enabled only by data supplied by the central
`computers generated permission code. Further, self
`destruct code may be included in the control code to
`avoid tampering with the copy control scheme.
`
`12 Claims, 2 Drawing Sheets
`
`ew
`[ne'er
`DzLsL/edde
`
`:4
`
`|
`
`I
`
`44
`J
`
`fdfZJP/IZ MW
`and Dds-connect
`
`660L941 CPdJéar-w
`pee: Wear/aar
`mum @éz Baas-e,
`age-um: krmzlr...
`Sm code rum
`Pea/gamete? (Ed?
`and @mwzcaate:
`Permzb'sz'm C’ada
`
`ta user 61%; é
`
`Petitioners Ex. 1002 Page 1
`
`
`
`US. Patent
`
`Jan. 3, 1989
`
`Sheet 1 of 2
`
`4,796,220
`
`
`
`20
`
`/
`12
`
`
`
`
`
`
`
`
`IIIIIIIIIIEE
`
`flag/72 J — Number of Disc: Drive:
`
`New: 2 — [00$ Digit of 2m 52126
`Mam .3 “'1 15 chc'é of Pm 54:28
`War/2 4 “NU/7258.!” '01” Hard .0555 Braves
`My”? 5 “Logged Brave Naméep
`Mgr/27 6 — .703 56ch of B471! 5526
`Maw? 7 — 13‘ @5956 of Amie Aézméer’
`New? 5- ]3‘ 174955 of Free é’zxzce %
`Nm 9 ~ .703 224956 0/ Hard Disk 5&9
`Nam fl - .75 .05ng 0/ 84M 5:229
`Nam 3—— 1015 195926 0/ Mode Waméez‘
`Nam 6— 203 .06ch of Free @6403 7:
`
`[765. Z.
`
`Petitioners Ex. 1002 Page 2
`
`Petitioners Ex. 1002 Page 2
`
`
`
`US. Patent
`
`Jan. 3, 1989
`
`Sheet 2 of 2
`
`4,796,220
`
`-
`
`fine/“é New
`Ed‘s/(€668
`
`5604? Permission
`55a? (/2 “S‘Ofi’fwd/‘e
`
`
`
`
`
`C’cz anéazfe 40d
`Fecazazc'czée Pep/v
`
`
`@65pr €0afg§am~
`
`”25555:” Code at
`
`6600 Cod}? @203
`war Cog/outer
`
`Message 426 [/jé’f‘
`
`based 0/2 .
`
`CPQ
`Cory/guru {co/2 of
`
`are!" com/ow
`
`
`
`Commwc'ca cfe
`Sendai flambefi czxzcz
`
`
`
`C00 Mae Procefi‘z'flg
`Coafg’gwadc’oxz
`
`
`
`«if Pecaécczdaéed
`Code/790m (fire/4
`
`
`CZ/Zd Orz'gc'flczc’ per
`(7ch to C’e/zafraé'
`
`02:5“55'0/2 (Ede anyw-
`
`UPQ
`
`gape; 05/29/3055?
`
`
`up a9 M‘eisczge
`and 4501?:
`
`4'3)
`[affirm Oaé'éer"
`ma? .DziSCO/zoecé
`
`
`
`
`690 5rd! 0P4 550mg?
`
`1346a updaées/oen—
`
`”765500 m Base)
`
`
`Cgc'cac’atef Pen/725:5N
`350/2 coal? fro/22
`
`Coofcgarac‘c’ay (Ea/e
`
`cwd Cb/7z/22afzc'ca5‘535
`
`
`Der/725 $5.500 Code
`<50 afar C’Pq.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Petitioners Ex. 1002 Page 3
`
`Petitioners Ex. 1002 Page 3
`
`
`
`5
`
`50
`
`1
`
`METHOD OF CONTROLLING THE COPYING OF
`SOFTWARE
`
`BACKGROUND OF THE INVENTION
`This invention relates to a method of controlling the
`copying of computer so?ware and more particularly, to
`such a method which allows an unlimited number of
`backup copies of a program to be made for the same
`machine, but selectively prevents the execution of such
`backup copies or the original on other unauthorized
`machines.
`In recent years, the sale and/or licensing of computer
`software has become an established industry of it own.
`In this industry, more than any other, the illegal copy
`ing of copyrighted works of authorship has robbed the
`copyright owner of large amounts of revenue. The
`illegal copying has come from many different segments
`of users and other sellers of computer software. On one
`extreme, the organized pirate copies software and then
`sells it at discount to potential purchasers from the true
`owner, in effect, putting the developer of the copy
`righted version of the software out of business. On the
`other extreme, a rightful
`r of the software may
`25
`make a limited number of additional copies for use as
`backup copies on the original computer, or, if autho
`rized by the owner of the so?ware, for use on a home
`computer, or for use on a replacement or additional
`computer used by the authorized user in the same office.
`Between these two extremes, many rightful possessors
`of software may merely give, or even lend the software
`to friends or others in the same office.
`In the ?rst case, the copyright owner is generally
`unwilling to grant his permission to the pirate. In the
`second case, however, the copyright owner generally
`should have no objection to true backup copies being
`used, since the user of the so?ware has a legitimate right
`to make a backup copy of the software for protection
`against the inadvertent destruction of the original copy.
`0n the other hand, the owner of the software copyright
`may or may not be willing to allow the user to copy the
`software for use on other computers, or the owner of
`the software copyright may be willing to allow the
`copying of the software for use on other computers in
`the same office for an additional fee.
`Attempts to solve copying problems in the past have
`included various techniques of copy protection. Com
`mon for most of these techniques is the placing of code
`in the program which limits the number of executable
`copies of a particular copy of software which can be
`made. However, as soon as a new technique for copy
`protection is developed, it is quickly broken by knowl
`edgeable computer experts. These experts then market
`programs which allow the so called copy-protected
`software to be copied at will. In some situations, such
`copying may be approved by the owner, such as, mak
`ing backup copies, but in other situations, the copying
`may be without the owner’s approval, and hence illegal,
`such as the making copies for friends. However, the
`copy protect schemes typically don’t distinguish be
`tween the allowable copying and the illegal copying.
`Even to the extent that the copy protection schemes of
`the prior art have allowed the making of a backup copy
`of the software, such schemes generally don't allow a
`65
`legitimate backup of the backup or multiple backups of
`the original for execution on the same machine. Fur
`ther, the copy protect schemes of the prior art do not
`
`4,796,220
`2
`prevent the permitted backup copies to be given to a
`friend for a disallowed use on a different machine.
`One drawback of many copy protection schemes of
`the past is that problems may occur after an authorized
`user copies the software into a hard disk, or other type
`of permanent large memory associated with the ma
`chine. These problems, as well as the protests of the user
`to the inconveniences and inability to make sufficient
`legitimate copies, have led many software vendors to
`discontinue the use of copy protection schemes. The
`result, of course, is that many unauthorized copies of
`software are being made, thereby causing the author of
`the program to lose rightful rewards for his creative
`endeavors.
`Another problem with the marketing of software has
`more recently appeared as hardware technology has
`advanced to allow a local area networks of many com
`puters and other sophisticated communications between
`computers in either the same general area or across
`country. One problem the software industry is facing as
`a result of this new technology is that large companies
`with many computers are demanding either site licenses
`or large volume discounts. In either case, the price of
`the software is directly tied to the number of copies and
`it, thus, becomes necessary for the software owner, or
`licensed distributor, to keep track of the number of
`copies of the software being made by or for the large
`customer. Further, many of the same problems of unau
`thorized copies made for friends or for machines be
`yond the site licensed still remain. Traditional copy
`protection schemes offer no solution to these problems.
`It would be preferable to utilize a copy control
`scheme, rather than the copy protection, or prevention,
`schemes of the prior art in order to overcome the above
`noted problems. A copy control scheme is one in which
`the scheme does not interfere with the proper execution
`of the software on an authorized machine, in which the
`rightful
`r of the software can make as many
`backup copies as is desired, and in which the party
`charged with authorizing copies, such as a copyright
`owner, is able to approve, control and have knowledge
`of all copies made for additional machines. In addition,
`such a scheme should allow any of the backup copies to
`be executed on the authorized machine, but stop the
`execution of all such backup, or other unauthorized,
`copies on machines other than the authorized machine.
`Finally, such a scheme should be able to prevent over
`ride techniques, such as those programs of the prior art
`that override copy protection schemes, from avoiding,
`overriding or bypassing the copy control scheme.
`Another problem of the prior art has been the ability
`of authorized distributors of software to assure the re
`gistration of licensed software and obtain desired feed
`back from users regarding computer con?gurations.
`Registration is desirable in the current environment of
`so?ware marketing using unsigned license agreements,
`since the registration of the software with the autho
`rized distributor may manifest the acceptance of the
`license terms. Further, the system con?guration feed
`back of the software developer's customer base is valu
`able business information for the developer so that the
`developer knows what additional functions can or
`should be added to future enhancements of the software
`product, or what customer segment should be targeted
`in a marketing program based on hardware availability
`for future software products.
`
`Petitioners Ex. 1002 Page 4
`
`
`
`S
`
`3
`SUMMARY OF THE INVENTION
`In accordance with one aspect of this invention, there
`is provided a method of controlling the use of copies of
`computer software, which software includes an applica
`tion program for performing a desired task and an asso
`ciated a ?rst control program. The ?rst control pro
`gram allows the application program, and a copy made
`therefrom, to be executed on a given machine, but pre
`vents the application program, and all copies thereof,
`from being executed on another machine. The method
`comprises the steps of generating a con?guration code
`related to the hardware of the given machine and trans
`mitting the con?guration code to a remote machine.
`The remote machine is programmed with a second
`control program related to the ?rst control program.
`Further, the method includes the steps of generating, by
`the second control program, a permission code at the
`remote machine related to the con?guration code trans
`mitted thereto, transmitting the permission code to the
`given machine, and storing the permission code as a part
`of the ?rst control program to allow the associated
`application program, or copies thereof, to be executed
`only on the given machine.
`
`25
`
`4,796,220
`4
`controls the tasks performed by CPU 26 to cause a
`desired application to be performed.
`One of the tasks that CPU 26 may be programmed to
`perform is to copy the program stored on either the disk
`or the diskette associated with drives 20 or 22 onto
`another diskette. In the past, programmers have tried to
`prevent this copying of the program code, as opposed
`to data generated by using the program, by techniques
`generally known as copy protection schemes. Brie?y,
`copy protection schemes worked by preventing certain
`critical code from being copied, or from being copied
`more than a certain number of times, such as one or
`two. However, as soon as a programmer came up with
`a particularly scheme for copy protection, another pro
`grammer was able to come up with a scheme to over
`ride the protection scheme. One problem with the con
`ventional copy protection schemes is that the code
`implementing the scheme is always the same for any
`given program. Thus, a person desiring to break the
`code, only has to do it once for a given program, and
`then all copies of the program can be copied.
`' The subject invention utilizes a different philosophy
`than has been used in the past. Rather than placing copy
`preventing code on the media containing the program,
`a footprint of the machine is taken and a control pro
`gram responding to only the footprint is placed within
`the application program to allow that machine to make
`and use as many copies of the program as desired. How
`ever, the control program prevents the application pro
`gram from being executed on a machine having a differ
`ent footprint. Thus, a person with the right to use the
`program is not be prevented from enjoying the full use
`of his program on the approved machine, but such per
`son is not be able to make copies of the program for use
`on unapproved machines. Controls are also included in
`the code to allow multiple machines to be approved, or
`to allow changes to be made to the approved machine
`from time to time, such as the addition of more memory
`to RAM 24.
`In practice, the manner in which the invention is to be
`implemented is that the ?rst time the application pro
`gram is used, a prompt appears on the screen requiring
`the user to register the program for use on a de?ned
`user computer 10 with the owner or the authorizing
`agent of the owner. This prompt may include the serial
`number of the program and a con?guration code gener
`ated by the application program based on the con?gura
`tion of user machine 10.
`The serial number of the program will have been
`previously assigned by the licensor or seller of the pro
`gram and may include information relating to how
`many di?‘erent machines have been authorized. For
`example, a serial number may allow the application
`program to be copied into two hard disks for execution
`on two different machines, or it may limit the copying
`to only a single machine con?guration. The price the
`user pays for this privilege may be related to the number
`of machines upon which the application program is to
`operate. Alternatively, a purchaser or licensee of the
`application program may obtain a site license, allowing
`a certain number of copies to be made and that certain
`number is included as a part of the serial number. Fur
`ther, in other situations, the so?ware owner may inven
`tory programs in a central location of a customer and
`only bill for the programs after distribution by the cus
`tomer to its employees or other users. The billing
`amount could, in turn, be related to the number of pro
`grams actually in use.
`
`35
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`One preferred embodiment of the subject invention is
`hereafter described, with reference being made to the
`following Figures, in which,
`FIG. 1 shows a general system block diagram of
`apparatus used to perform the software copy control
`method of the subject invention;
`FIG. 2 shows an example of the con?guration code
`generated at the user's machine; and
`FIG. 3 shows a flow diagram of the procedures in
`obtaining authorization to use software subject to copy
`control on a given computer.
`
`30
`
`DESCRIPTION OF THE EMBODIMENT
`Referring now to FIG. 1, a user computer system 10
`and a central computer system 12, located at a location
`remote from the user computer system 10, are shown. A
`communications link 14 connects user computer system
`10 with central computer system 12. Communications
`45
`link 14 may take the form of either a direct processor to
`processor link, such as through modem 16 of user com
`puter 10 to an associated modem (not shown) included
`as a part of computer 12, or an indirect link, such as
`through a conventional telephone 18. Ifan indirect link,
`such as telephone 18, is used, central computer 12 may
`communicate using a voice synthesizer prompter unit
`(not shown) and a signal receiver unit (not shown) in
`cluded therein responsive to telephone tone signals.
`User computer system 10 may be any conventional
`computer system, from the smallest personal computer
`to the largest main frame system. For example, system
`10 may be a typical business personal computer system
`including a hard disk drive 20, one or more diskette
`drives 22, a de?ned amount of random access memory
`60
`(RAM) 24, a microprocessor system (CPU) 26, one or
`more input devices 28, such as a keyboard, and one or
`more output devices 30, such as a display or a printer. In
`a typical operating environment, an application pro
`gram is stored on either the disk associated with disk
`drive 20, or on a diskette inserted into on of the diskette
`drives 22. This program is then executed, on command
`of the user, that is, it is copied into the RAM 24 and
`
`SS
`
`Petitioners Ex. 1002 Page 5
`
`
`
`Digit Number
`
`Meaning
`Number of Disk Drives
`l00‘s Digit of RAM size
`1’: Digit of Hard Disk Partition Size
`Number of Hard Drives
`Logged Drive Number
`10's Digit of RAM Size
`1‘: Digit of Mode Number
`l’s Digit of Free Space Percent
`10's Digit of Hard Disk Size
`1's Digit of RAM Size
`l0’s Digit of Mode Number
`llYs Digit of Free Space Percent
`
`4,796,220
`5
`n
`.
`6
`The con?guration code is generated a?er the pro
`on the part of the application program owner is, in part
`gram is loaded into the machine is based on the particu
`at least, based on the value of always knowing the exact
`lar hardware parameters of the machine. For example,
`hardware con?guration of its customer base.
`the con?guration code may be a multi-digit number, in
`Referring now to FIG. 2, an example of the con?gu
`which each group of one or more digits includes differ
`ration code is shown. In this example, the code includes
`ent hardware con?guration information. Further, spe
`twelve digits, labeled for convenience 1-9 and A-C.
`cial information, unique to a particular machine, such as
`Each of the digits may include any number 0-9 therein,
`information unique to a disk, disk drive or RAM based
`and these numbers may be encrypted, if desired. In the
`on speci?c tests, may also be included as a part of the
`example chosen, the following hardware elements are
`con?guration code.
`measured:
`The prompt screen informs the user starting to load
`1. Total Number of Hard Drive Units
`the application program for the ?rst time to call a cer~
`2. Hard Disk Partition Size
`tain telephone number to obtain a permission code to be
`3. Free Space Percentage on Hard Disk
`entered into the user’s computer 10. This call can be
`4. RAM memory size
`made using the modem 16 or the telephone 18 and con
`5. Total Number of Disk Drives
`nects the user with central computer 12. If the tele
`6. Current Logged Disk Drive
`phone 18 is used, computer 12 requests that the serial
`7. Mode Number
`number of the program be ?rst entered using the keypad
`The hardware data may be encoded into a twelve
`of a tone generating telephone. Then, computer 12
`digit con?guration code number, as follows:
`requests that the con?guration code be entered in the
`same way. This can all be accomplished by using a
`voice synthesizer as a part of computer 12, so that no
`human labor is involved. If modem 16 is used, informa
`tion can be transmitted directly between the two com
`puters 10 and 12 to obtain the same information.
`Once computer 12 has received the correct informa
`tion, it can first check to determine if another copy has
`been authorized for the particular serial number. If such
`a copy is authorized, the records are updated for that
`serial number. If no additional copies are permitted, a
`message so indicating is generated and computer 12
`disconnects the link.
`After computer 12 determines that a copy can be
`made, it generates a permission code based on the con
`?guration code previously transmitted to it. This con
`?guration code may be based on an algorithm de?ned
`only by the special, or con?guration unique, code por
`tion of the con?guration code. Once the permission
`code is generated, it is transmitted to the user machine,
`either directly through modem 16, or to the operator of
`40
`user machine 10 over the telephone 18. At that point,
`the user enters the permission code. The control pro
`gram portion of the software then recreates the genera
`tion of the permission code based on the hardware and
`can compare the internally generated code to the en
`45
`tered permission code. If the two codes compare, exe
`cution of the program is allowed; if the two codes do
`not compare, then further execution of the application
`program is stopped and a message is displayed indicat
`ing to the user that execution on that machine has not
`been approved. This, of course, should only happen if
`the con?guration of the machine upon which execution
`is attempted is not the same as the con?guration of the
`machine which received the original permission code.
`In order to allow the owner of user machine 10 to
`55
`upgrade computer 10, such as by adding more memory
`to RAM 24 or adding or replacing diskette drives 22,
`arti?cial intelligence type of programming may be in
`cluded as a part of the control program to accept and
`remember normal type upgrades and make appropriate
`modi?cations to the calculation and comparison
`scheme, so that the modi?ed con?guration is still able to
`have the application program executed thereon. Alter
`natively, when any change occurs, or when certain
`types of changes occur, the owner of the application
`program may desire that a new con?guration code be
`generated and a new registration and permission code
`generation and entry procedure occur. Such a decision
`
`The two digit Mode Number used in the con?gura
`tion code may be a special number calculated for a
`particular machine based on a unique con?guration
`footprint of the user’s computer 10. For example, the
`Mode Number may be determined by utilizing the fact
`that the oxide coating on all hard disks is not perfectly
`uniform and further that the nonuniformity is di?'erent
`from one computer to another computer. A special
`formatting utility program, such as those used by the
`disk manufacturers for quality control, can then be used
`to allow unstable bytes of information, as de?ned by the
`special formatting program but not by normal commer
`cial standards, found in one or more sectors of the disk
`to be determined. Since the nonuniformities on the disk
`or diskette remain constant with time, the test is repeat
`able, since the special format program will arrive at the
`same number each time it measures the same disk or
`diskette. Once the number of unstable bytes is deter
`mined, that number can be reduced to the two digit
`Mode Number by, for example, only using the two least
`signi?cant digits, or by summing the digits until a one or
`two digit number is found. The Mode Number can
`further be modi?ed so that it can differentiate between
`soft disks, that is ?oppy disks or diskettes as such are
`commonly called, or hard disks, by for instance reserv
`ing certain numbers for each type or using even num
`bers for soft disks and odd numbers for hard disks. The
`copy control scheme can then differentiate and use
`different copy control procedures for software designed
`to be stored on different types of media.
`The remaining information relating to the hardware
`de?ned portions of the con?guration code are easily
`obtained by conventional techniques and can be in
`serted into the con?guration code in the proper position
`by the control program portion of the software. It
`
`10
`
`25
`
`35
`
`50
`
`60
`
`65
`
`Petitioners Ex. 1002 Page 6
`
`
`
`10
`
`35
`
`45
`
`4,796,220
`7
`computer 12, as previously explained, and would re
`should be understood that the con?guration code may,
`if desired, be encrypted or compressed in any conven
`ceive a new, and different, permission code based on the
`hardware con?guration of the second machine. How
`tional or proprietary manner. It is only necessary that a
`corresponding second control program in central com
`ever, where all of the allowed machines had previously
`puter 12 is correspondingly programmed to understand
`been registered, central computer 12 would immedi
`the con?guration code. For example, the Mode Num
`ately know this fact from checking its data base infor~
`ber, as previously mentioned, may be any number be
`mation. In such an event, central computer 12 would
`tween 00 and 99 and this number is based on a physical
`communicate back the message indicating that no addi
`measured criteria, such as the number of unstable bytes
`tional machines had been authorized. The customer
`found on a hard disk by using a special formatting pro
`could then obtain the additional authorization by pay
`gram. However, the Mode Number included in the
`ing the required fee or use the software only on an
`con?guration code may be di?‘erent than the number
`authorized machine, such as user computer 10.
`measured, due to an encryption technique. For exam
`Referring now to FIG. 3, a ?ow diagram of the pro
`ple, the Mode Number in the con?guration code may be
`cedure for
`the copy control scheme on a
`determined by ?rst adding a number found by multiply
`given item of software is shown. FIG. 3 includes blocks
`ing the sum of the ?rst and last digits of the con?gura
`40 through 56 (even numbers only). Beginning at block
`tion code by three and then adding that number to the
`40, the diskette containing the application program and
`measured value. Such addition could occur either be
`the control program is inserted into the user’s computer
`fore or a?er the measured physical criteria number is
`10 and according to block 42, the con?guration code is
`reduced to two digits. Further, the Mode Number may
`20
`calculated and displayed by the user’s computer 10
`be forced to an even or odd number if it is desirable to
`along with the serial number of the program and a mes
`control the copying of soft and hard disks in different
`sage instructing the user to communicate with central
`manners.
`computer 12. Other information regarding the copy
`Once the serial number and con?guration code is
`control scheme may also be conveyed, such as the gen
`communicated to central computer 12 by either modem
`25
`eral manner in which the scheme operates to allow an
`16 or telephone 18, central computer 12 performs the
`unlimited number of backup copies to be made for exe
`necessary checks against the serial number and stores
`cution on the user’s computer 10, but not for execution
`the hardware con?guration data in an appropriate data
`on any other computer.
`base. Then, central computer 12 calculates the permis
`Next, according to block 44, the user communicates
`sion code based on the hardware con?guration informa
`the serial number and con?guration code to central
`tion provided thereto. Central computer 12 has many
`computer 12 using either modem 16 or telephone 18, as
`different algorithms it can use to calculate the permis
`previously explained. Additional information may also
`sion code and the particular one selected relates to the
`be communicated at this point, such as the telephone
`unique Mode Number portion of the con?guration
`number of the user or a security code. Thereafter, ac
`code. For example, if the Mode Number is 75, then the
`cording to block 46, central computer 12 checks its data
`algorithm to calculate the permission code may be the
`base to be sure that a copy of the software is permitted.
`sumoftheRAMsizeplustheharddisksize,timesthe
`If not, then according to block 48, central computer 12
`percent of free space. For a different Mode Number, a
`informs the user that no additional copies have been
`di?'erent algorithm using different portions of the con
`authorized and terminates the communication link. If
`?guration code information is used to calculate the
`central computer concludes that another machine is
`permission code.
`authorized to copy and execute the software, then, as
`After the permission code generated by computer 12
`indicated at block 50, central computer 12 stores the
`is returned to and entered in user computer 10, user
`con?guration data and updates its data base for the
`computer 10 is able to duplicate, with the appropriate
`transmitted serial number. Next, central computer 12
`additional information that may be contained in the
`calculates the permission code from the information
`permission code (or previously included in the control
`contained in the transmitted con?guration code and
`program) the recalculation of a permission code based
`communicates the calculated permission code back to
`on retesting the hardware con?guration. As long as the
`the user over the communication link.
`recalculated permission code and the originally entered
`Therea?er, as indicated at block 52, the user enters
`permission code are the same, execution of the applica
`the communicated permission code for storage with and
`tion program on the user computer 10 is allowed to
`subsequent use by the software. The subsequent use, as
`continue. This is also be true for any backup copies of
`indicated at block 54, is the recalculation of a permis
`the application program which the user desires to cre
`sion code by user's computer 10 under the control of the
`ate, since the regeneration of the permission code re
`software and, as indicated at block 56, a comparison
`sults in the same permission code as was originally en
`between the originally entered permission code and the
`tered.
`recalculated permission code occurs. The recalculation
`However, if a person attempted to execute a copy of
`may, in part, either include or be controlled by a unique
`the software on another machine, the attempt to recal
`response to information communicated from central
`culate the permission code would result in a different
`computer 12 as a part of the original permission code. If
`permission code being recalculated. In this instance, the
`the comparison is made, execution is allowed to con
`control program associated with the application pro
`tinue; however, if no comparison is found, execution is
`gram would see non-matching permission codes and
`stopped and an appropriate message is displayed in
`would then prevent execution. However, if the propri
`forming the user that authorization for that computer
`etor of the software had granted rights to run the soft
`has not been granted. A reauthorization procedure,
`ware on a second machine, a message could be placed
`beginning at block 40, may then be attempted and if use
`on the screen advising the user that the use on second
`machine must be registered. In such an instance, the
`of the software on additional machines is authorized, a
`new permission code for the new machine will be given.
`second machine user would communicate with central
`
`50
`
`55
`
`65
`
`Petitioners Ex. 1002 Page 7
`
`
`
`10
`
`25
`
`30
`
`4,796,220
`9
`It should be noted that when the user computer 10
`recalculates the permission code at block 56, the recal
`culation is based on both the hardware con?guration
`and the original permission code. In order to