throbber
_
`
`United States Patent [19]
`Logan
`
`US005199066A
`
`[11] Patent Number:
`[45] Date of Patent:
`
`5,199,066
`Mar. 30, 1993
`
`[54] METHOD AND APPARATUS FOR
`PRQTECI'ING SOFTWARE
`
`v
`
`4,685,055 8/1987 Thomas ............................. .. 364/200
`4,740,890 4/1988 William ..
`364/200
`
`"
`
`4,866,769 9/1989 Karp . . . . . . . . . . .
`
`. . . . . . .. 380/4
`
`"""""""""""" "
`' """
`
`[56]
`
`_
`References cued
`US. PATENT DOCUMENTS
`
`4,901,168 2/1990 Yoshida et a1. ..................... .. 360/60
`[75] Inventor: Andrew J- Losm, Gladwyne, Pa-
`Primary Examiner-Bernarr E. Gregory
`[73] Assignee: Special Effects Software, Inc,
`Attorney, Agent, or Firm—Woodcock Washbum Kurtz
`Philadelphia, Pa-
`Mamew‘cz 8‘ N°ms
`[21] Appl. NO.: 339,760
`[57]
`ABSTRACT
`[22] Filed:
`Apr. 18, 1989
`[51] Int Cl 5
`“ML 9/00‘ H04L 9/32 A method and system for protecting a software pro
`[52] U
`382V‘ 380/2}
`gram recorded within a storage medium for use with or
`' '
`346/825 311
`transmission to computer or processor based hardware
`’ 340/8253‘;
`comprises inputting a hardware code uniquely associ
`’
`'
`[58] Field of swell .................. .. 364/200, 900 380/3, md will‘ ‘he pmiwl'lr lmdwm and “mulling 1* ?rst
`380/4’ 23, 25’ 49, 50’ 22. 360/60. 34O/’825_31’
`software code uniquely associated with the particular
`’
`’
`82534
`embodiment of the software. A ?rst predetermined
`operation is performed upon the hardware code and the
`?rst software code to produce an intermediate code. A
`unique activation code obtained from the software sup
`lier is in utted and a second redetermined o ration
`P
`P
`.
`P.
`PC .
`
`15 perform upon th= mmwm code and the tion code to Produce a Second intermediate code’ The
`
`4
`....................................... ..
`
`21123155? 311331 32221181, .......................... .. 33814 4,471,163 9/1984 Donald et al. .................... .. 380/4
`
`4,558,176 12/ 1985 Arnold et a1. .................... .. 380/4
`4,562,306 12/1985 Chou et a1. ........................... .. 380/4
`i’ggi’ggi i/iggg gfuiohz """""""""""" " 3624392
`’
`'
`Pr cy e
`' """""""""""" "
`{12112; 81' """"""" "
`4:670:857 6/1987 Rackmani':
`‘ml... 380/4
`
`second intermediate code is compared to a second soft
`ware code uniquely associated with the particular em
`bodiment of the software and stored in a hidden loca
`tion within the software. The use of the software is
`enabled only if the second intermediate code and the
`“mud w?wm °°de 1" idcmical
`
`4,683,553 7/1987 Mollier . . . . . . . . . . . . . . . . . . .
`
`. . . .. 380/4
`
`4,683,968 8/1987 Appelbaum et a1. ................. .. 380/4
`
`20 Claims, 2 Drawing Sheets
`
`Petitioners Ex. 1003 Page 1
`
`

`
`US. Patent
`
`Mar. 30, 1993
`
`Sheet 1 of 2
`
`5,199,066
`
`SOFTWARE SEFNALI‘DrFi OBTAIN
`HARDMSERMLNO.’ INFORMATION
`(RIGIML SG’TWARE—> FROM USER ‘
`G? C(PY NUMBER
`
`'
`YE
`'Fsrca mooeu NUMBER
`FOR SPECIFIED somme
`RIAL NUMBER
`
`FETCH moocu NUMBER
`F R SPECIFIE sorwms
`8 IAL NUM ER
`1
`mmmoommm
`
`L__
`SCI-‘WARE SEHAL no.
`SERIMNQANO
`HIIDEN NO. TO CREME ‘
`_ AC'ITVATION NWER
`
`OUTPUT ncizmmum
`TQ ussa
`I
`Fl 6. 2
`
`Petitioners Ex. 1003 Page 2
`
`

`
`US. Patent
`
`Mar. 30, 1993
`
`Sheet 2 of 2
`
`5,199,066
`
`BEGIN
`
`l N PUT HARDWARE
`SERIAL NUMBER
`i
`FETCH SOFTWARE
`SERIAL NUMBER
`
`ADD HNDWNRE MD
`SOFTWME
`SERIAL NUMBERS
`h——‘_
`|sroRE aesmrsn nselsmul
`
`_
`
`Acnvmmmn
`
`ENQBLE SOFTWARE
`
`STOP
`
`FIG. 3
`
`Petitioners Ex. 1003 Page 3
`
`

`
`1
`
`METHOD AND APPARATUS FOR PROTECTING
`SOFTWARE
`
`5
`
`BACKGROUND OF THE INVENTION
`The present invention relates to computer software
`or programs and, more particularly, to a method and
`system for protecting software programs from unautho
`rized use and/or copying.
`With the tremendous increase in the number of home
`computers, as well as business computers that are cur
`rently in use, there has been a corresponding increase in
`computer software or programs for use with such home
`and business computers. For example, specialized appli
`cations programs have been developed for everything
`from presenting elaborate spread sheets and desk top
`publishing to sophisticated computer games. In general
`such applications programs are sold to the end user
`either directly by the individual or company which
`developed the program, or through an established dis
`tribution network which may include mail order and/ or
`retail sales outlets. In many cases, the applications pro
`gram is stored within a standard magnetic storage me
`dium, such as ?oppy disk, to facilitate loading of the
`program into the home or business computer for per
`forming the desired task.
`Control of the software, particularly software distrib
`uted on a ?oppy disk, has become a major problem, due
`to the ease with which a program stored within a ?oppy
`disk may be duplicated. Although, in theory, the copy
`right laws protect software developers from unautho
`rized copying of such programs, it is impractical, if not
`impossible, for software developers to fully enforce
`their copyrights, particularly against companies or indi
`viduals making a relatively small number of copies. For
`example, a small company may purchase one copy of
`the original software from the developer and may then
`produce four or ?ve unauthorized copies of the soft
`ware for separate use on computers at different loca
`tions within the company.
`Likewise, a group of individuals may combine their
`money to purchase one original of the software for a
`particular computer game and then make a number of
`unauthorized copies for separate use of the software by
`45
`each of the individuals within the group on their own
`computers. In either event, the developer of the soft
`ware is unable to enforce its rights against the copiers
`since, without having inside information, it is not possi
`ble for the software developer to know that the unau
`thorized copies of the software were made and/or who
`made the unauthorized copies. Moreover, it would be
`prohibitively expensive to take legal action to enforce
`copyrights with respect to such small numbers of unau
`thorized copies. Accordingly, software developers are
`generally unable to enforce their rights and, therefore,
`are suffering economic loss.
`Various methods have been developed to prevent the
`unauthorized copying of software. One such method
`involves requiring the purchaser of the software to
`enter into a license agreement which permits use of the
`software only upon a single designated computer and
`prohibits the purchaser from making unauthorized cop
`ies. This form of protection is difficult and expensive to
`enforce, particularly when dealing with smaller compa~
`nies and individuals.
`A second form of protection requires utilizing a se
`cret code or password which must be obtained from the
`software supplier and entered when using the software.
`
`5,199,066
`2
`While this form of protection has merit, it still does not
`preclude unauthorized use or copying on a relatively
`small scale since the code or password can be obtained
`by one person from the software supplier and can be
`given to the other users within the company or group.
`A third form of protection involves placing restric
`tions within the computer program which completely
`preclude copying or permit only a single copy of the
`program to be made. While this form of protection can
`be effective, it may prevent a legitimate purchaser of
`the software from making a single backup copy, as
`permitted by law. In addition, specialized programs
`have been developed to circumvent or override this
`type of protection. Other forms of copy protection have
`been developed and employed with limited success. In
`some cases, the other forms of protection are too expen
`sive to employ with some software, and, in other cases,
`these other forms of protection are not technically suit
`able for some software.
`The present invention overcomes many of the prob
`lems inherent in the existing forms of protection for
`computer software and provides protection from both
`unauthorized use and copying. With one embodiment of
`the present invention, the serial number of the particular
`hardware, as well as the serial number of the particular
`copy of the software, must be entered, along with a
`unique activation number obtained from the software
`supplier, in order to enable use of the software. The
`software performs an operation upon the hardware
`serial number, the software serial number and the acti
`vation number to produce an intermediate code which
`is compared to a number hidden within the software
`and uniquely associated with the particular copy of the
`software. The program is arranged to automatically
`change the hidden number in a predetermined manner
`whenever the software is copied. The software is only
`operable if the comparison indicates that the intermedi
`ate code and the hidden number are identical. In this
`manner, only a single embodiment of the software can
`be used with the activation number initially supplied by
`the software developer. Every time a copy of the soft
`ware is made, the user must contact the software devel
`oper to obtain a new activation number. In this manner,
`the software developer is able to keep accurate records
`with respect to the number of copies made and may
`charge the user accordingly.
`SUMMARY OF THE INVENTION
`Brie?y stated, the present invention comprises a
`method and system for protecting a software program
`recorded within a storage medium for use with, or
`transmission to, computer or processor based hardware.
`The method comprises inputting a hardware code
`uniquely associated with the particular hardware with
`which the software is to be employed and inputting a
`?rst software code uniquely associated with the particu
`lar embodiment of the software being employed. A first
`predetermined operation is performed upon the hard
`ware code and the ?rst software code to produce a first
`intermediate code. A unique activation code for the
`particular embodiment of the software being employed
`is inputted, the activation code being received from the
`software supplier. A second predetermined operation is
`performed upon the first intermediate code and the
`activation code to produce a second intermediate code.
`The second intermediate code is compared with a sec
`ond software code uniquely associated with the particu
`
`25
`
`30
`
`60
`
`65
`
`Petitioners Ex. 1003 Page 4
`
`

`
`3
`lar embodiment of the software and stored at a hidden
`location within the software, the second software code
`not being ascertainable by the user. The software is
`enabled for use if the second intermediate code and the
`second software code are identical.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The foregoing summary, as well as the following
`detailed description of a preferred embodiment, will be _
`better understood when read in conjunction with the
`appended drawings. For the purpose of illustrating the
`invention, there is shown in the drawings an embodi
`ment which is presently preferred, it being understood,
`however, that the invention is not limited to the speci?c
`methods and instrumentalities disclosed.
`In the drawings:
`FIG. 1 is a perspective view of a personal computer
`and a ?oppy disk, within which is stored a computer
`program;
`FIG. 2 is a schematic ?ow diagram which depicts a
`method for a software supplier to generate an activation
`code in accordance with a preferred embodiment of the
`invention; and
`FIG. 3 is a schematic ?ow diagram of a preferred
`embodiment of a portion of a computer program which
`25
`veri?es that an activation number received from the
`software supplier is correct and enables use of the re
`mainder of the computer program.
`
`15
`
`20
`
`5,199,066
`4
`Likewise, while in connection with the description of
`the presently preferred embodiment, the computer pro
`gram or software is illustrated as being stored within a
`?oppy disk 18, it will be appreciated by those skilled in
`the art that the program or software could alternatively
`be stored in any other type of storage medium, for ex
`ample, a different magnetic medium, such as a hard disk
`magnetic card, magnetic tape, etc.; a semiconductor
`based storage medium, such as a random access mem
`ory (RAM), a read only memory (ROM), a programma
`ble read only memory (PROM), etc.; or a nontraditional
`storage medium, such as a digital audio or video tape or
`disk or network of storage devices. Accordingly, it
`should be clearly understood that the present invention
`is not limited to the particular computer hardware 10 or
`storage medium 18 used to illustrate the preferred em
`bodiment of the invention.
`.
`FIG. _3 shows the operation of the presently preferred
`embodiment of the invention. Each original copy or
`embodiment of the computer software has a ?rst soft
`ware code which is uniquely associated with that one
`particular embodiment. In the presently preferred em
`bodiment of the invention, the first software code is
`comprised of the serial number for that particular copy
`of the software. When the software is stored within a
`?oppy disk 18, the serial number is generally imprinted
`upon a label or other indicia applied to the upper por
`tion of the ?oppy disk 18 in a manner well known in the
`art. In the present embodiment, the ?rst software code
`or serial number is preferably numeric and is comprised
`of any number of digits.
`Associated with each original copy of the software is
`a second software code which is stored within the soft
`ware at a hidden location. The second software code is
`unique for each original copy of the software and may
`have a predetermined relationship with the ?rst soft
`ware code or serial number. In any event, the software
`supplier is able to identify the second software code for
`each particular embodiment of the software by refer
`ence to the ?rst software code or serial number. As
`previously indicated, the second software code is hid
`den within the software at a location which is not identi
`?able or ascertainable by the software user. In the pres
`ently preferred embodiment, the second software code
`is numeric and may sometimes be referred to as the
`hidden number. However, it will be appreciated by
`those skilled in the art that the second software code
`could be some other specialized code, such as alpha,
`alphanumeric or digitally coded signal.
`The computer program automatically changes or
`increments the second software code in _a predeter
`mined manner each time the software is copied. In the
`presently preferred embodiment, the numeric second
`software code or hidden number is incremented by the
`addition of a predetermined number, such as 7, each
`time the software is copied. The software user is not
`made aware of the manner in which the hidden number
`is changed and cannot ascertain this information. It will
`be appreciated by those skilled in the art that the second
`software code could alternatively be changed in some
`other manner such as by multiplying the code by a
`predetermined number, or performing any other type of
`mathematical or logical operation upon the second soft
`ware code.
`-
`When a user wishes to use a program protected by
`the present invention, the software program is installed
`into the hardware being employed by the user. Of
`course, it will be appreciated by those skilled in the art
`
`60
`
`35
`
`40
`
`45
`
`~DESCRIPTION OF PREFERRED EMBODIMENT
`30
`Referring to the drawings, wherein like numerals
`indicate like elements throughout, there is shown in
`FIG. 1 a typical personal computer 10 of a type well
`known in the art, and commercially available from a
`variety of manufacturers, for example, IBM Corpora
`tion. The personal computer 10 includes a standard
`’ keyboard 12, a standard cathode ray tube (CRT) or
`screen 14 and a pair of ?oppy disk drives 16. The key
`board 12 is employed to facilitate communication be
`tween an individual user and the computer 10 in a man
`ner which is generally well known in the computer art.
`The CRT 14 also functions in a manner well known in
`the computer art for displaying information inputted
`through the keyboard 12, as well as information output
`ted by the inner workings of the computer 10. The disk
`drives 16 are employed in a manner well known in the
`computer art for receiving one or more ?oppy disks to
`facilitate the loading or entry of computer software or
`programs stored within a ?oppy disk into the computer
`10. A typical ?oppy disk 18 is illustrated in FIG. 1. As
`50
`used herein, the terms, “program,” “computer pro
`gram,” “software” and “software program” are inter
`changeably used to mean a series of instructions which
`are used to control the operation of computer hardware
`or other computer based or processor based hardware.
`While in the present description of a preferred em
`bodiment of the invention, a personal computer 10 is
`shown and described, it will be appreciated by those
`skilled in the art that the present invention may be em
`ployed in conjunction with any other type of computer,
`including standard computers such as a mini computer
`or a main frame computer, and/or special purpose com
`puters. In addition, the present invention may be em
`ployed in connection with any other type of computer
`or processor based hardware such as computer or pro
`cessor controlled machinery or equipment and any
`device or network of devices using digital signals or
`switching.
`
`65
`
`Petitioners Ex. 1003 Page 5
`
`

`
`5
`that in some circumstances, such as when employing a
`hard disk or a ?xed storage medium such as an EPROM
`or the like, the software will already be “installed” into
`the computer and need only be recalled and transferred
`from the storage medium into the active memory of the
`computer. The program then requests that the user
`input a hardware code uniquely associated with the
`particular hardware with which the software is to be
`employed. In the presently preferred embodiment, the
`hardware code is the numeric serial number of the hard
`ware upon which the program is to operate. However,
`the hardware code could be something other than the
`hardware serial number and need not be numeric. The
`program also, requests that the user input the ?rst soft
`ware code or serial number for the particular software.
`Of course, it will be appreciated by those skilled in the
`art that in the case of some computers and some storage
`media, the program may have the ability to recall or
`otherwise obtain and input the software serial number
`and possibly the hardware serial number without any
`20
`speci?c action by the user.
`The program performs a ?rst predetermined opera
`tion upon the hardware code or hardware serial number
`and the ?rst software code or software serial number to
`produce a ?rst intermediate code. In the presently pre
`ferred embodiment, the ?rst predetermined operation
`comprises the operation of adding the numeric hard
`ware serial number to the numeric software serial num
`ber to produce the ?rst intermediate code which is also
`numeric. However, it will be appreciated by those
`skilled in the art that a different mathematical operation,
`such as multiplication, division, etc. may alternatively
`be employed. Moreover, since the hardware code and
`the ?rst software code need not be numeric, some other
`type of operation or data manipulation may alterna
`tively be employed. In the preferred embodiment, the
`result of the ?rst predetermined operation or ?rst inter
`mediate code may be stored in a predetermined location
`or register.
`40
`The computer also requests the user to input an acti
`vation code received from the software supplier. The
`activation code is unique for the particular embodiment
`of the software being employed, as well as for the par—
`ticular hardware with which the software is employed,
`and is individually determined or generated by the soft
`ware supplier in a manner which will hereinafter be
`described. In the presently preferred embodiment, the
`activation code is numeric and may be referred to as an
`activation number. However, it will be appreciated by
`those skilled in the art that the activation code need not
`be numeric but could be some other form, such u alpha,
`alphanumeric or any digitally coded signal.
`The program performs a second predetermined oper
`ation upon the ?rst intermediate code and the activation
`code to produce a second intermediate code. In the
`presently preferred embodiment, the second predeter
`mined operation comprises the operation of addition
`and the numeric ?rst intermediate code is added to the
`numeric activation code to provide a second intermedi
`ate code which is also numeric. However, it will be
`appreciated by those skilled in the art that the second
`predetermined operation may be a mathematical opera
`tion other than addition (i.e., multiplication, division,
`etc.) or may be a non-mathematical operation, such as a
`logical operation.
`In the presently preferred embodiment, the second
`intermediate code is temporarily stored in a predeter
`mined location, such as a register. The program then
`
`5,199,066
`6
`compares the second intermediate code with the second
`software code or hidden number. The comparison may
`be made in any known manner. If the comparison indi
`cates that the second intermediate code and the second
`software code are identical, the software is enabled and
`the user is permitted to operate the software uninhib
`ited. On the other hand, if the comparison indicates that
`the second intermediate code and the second software
`code are not identical, the program is halted and the
`user is prevented from using the software. The user is
`then required to contact the software supplier and pro
`vide the software supplier with information to permit
`the software supplier to determine or generate a correct
`activation code. The information which must be pro
`vided to the software supplier includes the serial num
`ber of the hardware upon which the program is to oper
`ate, the serial number of the software and the number of
`copies of the software which have been made. In this
`manner, the software supplier may confu-m how many
`copies have been made and upon which different hard
`ware serial numbers the particular program has been
`operated in the past and can utilize this information to
`obtain compensation from the software user commensu
`rate with the number of copies and the number of differ
`ent computers upon which the software is, or has been,
`operated. Thus, a software purchaser is precluded from
`using unauthorized software copies and is also pre
`cluded from using the software on more than a single
`computer without compensating the software supplier.
`FIG. 2 illustrates a flow diagram of a preferred
`method for the software supplier to determine or gener
`ate an activation code or activation number to be sup
`plied to the user. The purchaser of the software must
`contact the software supplier and provide to the soft
`ware suppler the ?rst software code or software serial
`number, the hardware code or hardware serial number,
`as well as whether the original software is to be em
`ployed or, if not, the number of times copies have been
`made and the copy number. The software supplier then
`accesses its records to obtain the second software code
`or hidden number uniquely associated with the particu
`lar serial number of the software purchased. If the origi
`nal software is being used and one or more copies of the
`original software have been made, the second software
`code is appropriately changed or incremented in the
`same manner in which the software increments the
`hidden number so that the software supplier has a sec
`ond software code which is identical to the then current
`second software code in the particular embodiment of
`the software (original or copy) that the user is about to
`operate. The software supplier then performs the ?rst
`predetermined operation, in the presently preferred
`embodiment, addition, upon the software serial number
`and the hardware serial number to produce a ?rst inter
`mediate code in the same manner in which it would be
`accomplished by the software. The software supplier
`then performs a third predetermined operation upon the
`then'current second software code and the ?rst interme
`diate code to produce the activation code. In general,
`the third predetermined operation is complementary to
`the second predetermined operation which is per
`formed by the software. Thus, in the present embodi
`ment, the ?rst intermediate code is subtracted from the
`second software code to produce the activation code or
`activation number. The activation code is then pro
`vided to the software user to enable use of the software
`in the manner described above. Preferably, the software
`supplier will establish a telephone “hot line” to permit
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`Petitioners Ex. 1003 Page 6
`
`

`
`7
`software users to conveniently obtain the proper activa
`tion code for the software. Preferably, the software
`supplier will have a computer system available for
`prompt generation of the activation code upon receiv
`ing the necessary information from the user.
`From the foregoing description, it can be seen that
`the present invention comprises a method and apparatus
`for protecting a software program from unauthorized
`use or copying. It will be appreciated by those skilled in
`the art that changes may be made to the embodiment
`described above without departing from the broad in
`ventive concepts thereof. It is understood, therefore,
`that this invention is not limited to the particular em
`bodiment disclosed, but is intended to cover all modi?
`cations which are within the scope and spirit of the
`invention as de?ned by the appended claims.
`What is claimed is:
`1. A method of protecting a software program re
`corded within a storage medium for use with or trans
`mission to computer or processor based hardware, the
`method comprising:
`inputting a hardware code uniquely associated with
`the particular hardware with which the software is
`to be employed;
`inputting a ?rst software code uniquely associated
`with the particular embodiment of the software
`being employed;
`performing a ?rst predetermined operation upon the
`hardware code and the ?rst software code to pro
`duce a ?rst intermediate code;
`inputting a unique activation code for the particular
`embodiment of the software being employed, the
`activation code being received from a software
`supplier;
`performing a second predetermined operation upon
`the ?rst intermediate code and the activation code
`to produce a second intermediate code;
`comparing the second intermediate code with a sec
`ond software code uniquely associated with the
`particular embodiment of the software being em
`ployed and stored at a hidden location within the
`software, the second software code not being as
`certainable by the user; and
`enabling the use of the software if the second interme
`diate code and the second software code are identi
`cal.
`2. The method as recited in claim 1 wherein the hard
`ware code is comprised of the serial number for the
`particular hardware.
`3. The method as recited in claim 1 wherein the ?rst
`software code is comprised of the serial number of the
`particular software.
`4. The method as recited in claim 1 wherein the hard
`ware code and the ?rst software code are numbers and
`wherein the ?rst predetermined operation comprises a
`mathematical manipulation of the hardware code and
`the ?rst software code to produce the ?rst intermediate
`code, which is also a number.
`5. The method as recited in claim 4 wherein the acti
`vation code is a number and wherein the second prede—
`termined operation comprises a mathematical manipula
`tion of the ?rst intermediate code and the activation
`code to produce the second intermediate code, which is
`also a number.
`6. The method as recited in claim 5 wherein both the
`first and second predetermined operations comprise
`addition.
`
`5,199,066
`8
`7. The method as recited in claim 1 further compris
`ing the step of changing the second software code in a
`predetermined manner each time the software is copied
`so that a different activation code is required to enable
`use’ of the software.
`8. The method as recited in claim 1 wherein the acti
`vation code is generated by the software supplier re
`ceiving the hardware code and the ?rst software code
`from the user and performing the ?rst predetermined
`operation upon the hardware code and the ?rst soft
`ware code to produce the ?rst intermediate code, the
`software supplier obtaining the second software code
`from its records and performing a third predetermined
`operation upon the second software code and the ?rst
`intermediate code to produce the activation code, the
`third predetermined operation being complementary to
`the second predetermined operation.
`9. The method as recited in claim 8 wherein prior to
`the generation of the activation code the software sup
`plier obtains information from the user regarding the
`copy status of the software and changes the second
`software code in a predetermined manner in accordance
`with the copy status of the software.
`10. A method of preventing use of an unauthorized
`copy of a computer software program recorded within
`a storage medium for use in computer hardware by
`preventing the software from operating in the absence
`of a proper activation code, the method comprising:
`inputting a numeric hardware code uniquely associ
`ated with the particular hardware with which the
`software is to be employed;
`inputting a ?rst numeric software code uniquely asso
`ciated with the particular software storage me
`dium;
`performing a ?rst predetermined mathematical oper
`ation upon the hardware code and the ?rst soft
`ware code to produce a ?rst numeric intermediate
`code;
`inputting a numeric activation code received from a
`software supplier, the activation code being
`uniquely determined for activation of the software
`having the particular ?rst software code for use
`with hardware having the particular hardware
`code;
`performing a second predetermined mathematic op
`eration upon the ?rst numeric intermediate code
`and the numeric activation code to produce a sec
`ond numeric intermediate code;
`comparing the second numeric intermediate code
`with a second numeric software code uniquely
`associated with the particular storage medium and
`stored at a hidden location within the software, the
`second numeric software code not being ascertain
`able by the user, the second numeric software code
`being changed in a predetermined manner each
`time the software is copied; and
`enabling the use of the software if the second numeric
`intermediate code and the second numeric soft
`ware code are identical.
`11. The method as recited in claim 10 wherein the
`hardware code is the hardware serial number.
`12. The method as recited in claim 11 wherein the
`?rst numeric software code is the software serial num
`ber.
`13. The method as recited in claim 12 wherein the
`?rst and second predetermined mathematical operations
`comprise addition.
`
`55
`
`60
`
`65
`
`25
`
`35
`
`45
`
`Petitioners Ex. 1003 Page 7
`
`

`
`5
`
`10
`
`20
`
`25
`
`30
`
`35
`
`5,199,066
`10
`9
`computer means for performing a second predeter
`14. A method of generating an activation code for
`mined operation upon the ?rst intermediate code
`enabling the use of a software program with particular
`and the activation code to produce a second inter
`computer or processor based hardware, the method
`comprising:
`mediate code;
`computer means for comparing the second intermedi
`obtaining from the user a hardware code uniquely
`ate code with a second software code uniquely
`associated with the particular hardware with
`associated withthe particular embodiment of the
`which the software is to be employed;
`software and stored at a hidden location within the
`obtaining from the user a ?rst software code uniquely
`software, the second software code not being as
`associated with the particular embodiment of the
`software being employed;
`certainable by the user; and
`means for enabling the use of the software if the sec
`performing a predetermined operation upon the hard
`ond intermediate code and the second software
`ware code and the ?rst software code to produce a
`code are identical.
`?rst intermediate code;
`16. The system as recited in claim 15 wherein the
`obtaining a second software code uniquely associated
`hardware code is comprised of the serial number for the
`with the particular embodiment of the software
`from stored information corresponding to the ?rst
`. particular hardware.
`17. The system as recited in claim 15 wherein the ?rst
`software code; and
`software code is comprised of the se

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