throbber
United States Patent [191
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket