throbber
United States Patent 19
`Richardson, III
`
`54 SYSTEM FOR SOFTWARE REGISTRATION
`75 Inventor: Frederic B. Richardson, III,
`Brookvale, Australia
`(73) Assignee: Uniloc Private Limited, Singapore
`
`21 Appl. No.: 124,718
`22 Filed:
`Sep. 21, 1993
`(30)
`Foreign Application Priority Data
`Sep. 21, 1992 AU) Australia ................................. PL4842
`Oct. 26, 1992 AU Australia ................................. PL5524
`(51) Int. Cl. ............................................ H04L 9/00
`52 U.S. Cl. ................................................ 380/4; 380/23
`58) Field of Search ............................... 380/3, 4, 23, 24,
`380/25
`
`56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,654,799 3/1987 Ogaki et al. .
`4,688,169 8/1987 Joshi.
`4,796,220
`1/1989 Wolfe.
`4,982,430
`1/1991 Frezza et al..
`380/4
`4,999,806 3/1991 Chernow et al. ...
`380/4
`5,191,611 3/1993 Lang ...............
`380/4
`5,199,066 3/1993 Logan .....
`5,222,133 6/1993 Chou et al. ................................. 380/4
`5,239,166 8/1993 Graves.
`5,239,648 8/1993 Nukui.......................................... 380/4
`5,287,408 2/1994 Samson ....................................... 380/4
`5,291,598 3/1994 Grundy.
`5,313,637 5/1994 Rose ............................................ 380/4
`5,319,705 7/1994 Halter et al. ................................ 380/4
`5,337,357 8/1994 Chou et al. ................................. 380/4
`5,343,526 8/1994 Lassers ........................................ 380/4
`5,349,643 9/1994 Cox et al. ................................... 380/4
`5,371,792 12/1994 Asai et al. .................................. 380/4
`5,379,433
`1/1995 Yamagishi................................... 380/4
`
`
`
`||||I|||||
`US005490216A
`5,490,216
`11
`Patent Number:
`(45) Date of Patent:
`Feb. 6, 1996
`
`1/1995 Akiyama et al. ........................... 380/4
`5,386,468
`2/1995 Hornbuckle .........
`5,388,211
`5,390,297 2/1995 Barber et al. ............................... 380/4
`FOREIGN PATENT DOCUMENTS
`WO9209160 5/1992 WIPO.
`Primary Examiner-David C. Cain
`Attorney, Agent, or Firm-Knobbe, Martens, Olson & Bear
`57)
`ABSTRACT
`A registration system allows digital data or software to run
`in a use mode on a platform if and only if an appropriate
`licensing procedure has been followed. Preferably, the sys
`tem detects when part of the platform on which the digital
`data has been loaded has changed in part or in entirety, as
`compared with the platform parameters, when the software
`or digital data to be protected was last booted or run. The
`system relies on a portion of digital data or code which is
`integral to the digital data to be protected by the system. This
`integral portion is termed the code portion and may include
`an algorithm that generates a registration number unique to
`an intending licensee of the digital data based on informa
`tion supplied by the licensee which characterizes the lic
`ensee. The algorithm in the code portion is duplicated at a
`remote location on a platform under the control of the
`licensor or its agents, and communication between the
`intending licensee and the licensor or its agentis required so
`that a matching registration number can be generated at the
`remote location for subsequent communication to the
`intending licensee as a permit to licensed operation of the
`digital data in a use mode. The code portion can be identical
`for all copies of the digital data. The algorithm provides a
`registration number which can be "unique' if the details
`provided by the intending licenses upon which the algorithm
`relies when executed upon the platform are themselves
`“unique'.
`
`20 Claims, 12 Drawing Sheets
`
`Page 1 of 27
`
`GOOGLE EXHIBIT 1009
`
`

`

`Feb. 6, 1996
`Feb. 6, 1996
`
`Sheet 1 of 12
`Sheet 1 of 12
`
`5,490,216
`5,490,216
`
`|‘Ol4
`
`U.S. Patent
`U.S. Patent
`
`
`
`Page 2 of 27
`
`Page 2 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 2 of 12
`
`5,490,216
`
`
`
`
`
`S
`THIS A NEW
`COPY 2
`(INTERNAL CHECKING
`BY APPLICATION)
`
`
`
`
`
`GO TO
`FIG. 3C OR 3b
`
`
`
`
`
`DIALOG
`BOX:
`"DEMO OR
`REGISTER"
`p
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A
`
`REGISTER
`
`DISPLAY PRODUCT
`INFORMATION BOX:
`e.g. SOFTWARE
`PUBLISHER DETALS
`
`DEMO MODE OF APPLICATION:
`NO SAVE OR PRINT CAPABILITY
`
`
`
`CANGEL
`AGREE
`
`
`
`
`
`
`
`
`
`
`
`FIG.2a.
`
`LCENSE INFO. DIALOG BOX:
`DETALS OF NEW LICENSING
`AGREEMENT
`
`CANCEL
`OR
`CONTINUE
`
`
`
`
`
`CONTINUE
`
`GO TO FIG. 2b
`
`Page 3 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 3 of 12
`
`5,490,216
`
`FIG. 215
`
`FROM FIG. 2d
`
`
`
`
`
`
`
`A SERA, NO. S GENERATED
`BY THE APPLICATION USING
`INFORMATION FROM THE USER
`ENVIRONMENT (E.G. TIME, MACHINE
`TYPE, LAST MODIFICATION DATE)
`
`SERIAL NO. IS ENCRYPTED,
`REARRANGED AND PRESENTED AS
`A NUMBER IN THE SERIAL NO. FIELD
`OF THE REGISTRATION DIALOG BOX.
`
`
`
`REGISTRATION DIALOG BOX: USER MUST
`ENTER DETALS IN THE SPECIFIED
`FIELDS IN ORDER TO REGISTER THE PRODUCT INCLUDING:
`NAME, COMPANY, ADDRESS, CONTACT NUMBER (PHONE
`AND CREDIT CARD DETAILS OR CORPORATE ACCOUNT NO.)
`
`USER CALLS THE NEAREST ADMINISTRATION CENTER
`(FROM CONTACT DIALOG BOX) AND COMMUNICATES
`THE REGISTRATION DETALS AS WELL AS
`THE SERAL NO. GENERATED BY APPLICATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`PAYMENT
`DETALS
`CONFIRMED
`(E.G. CREDIT CARD)
`
`
`
`
`
`
`
`PUBLISHER USES
`REGISTRATION DETALS
`N UNLOCKING APPLICATION
`
`REGISTRATION NO. GENERATED
`FROM USER DETALS ADDED TO
`SERIAL NO. IS ENCRYPTED
`AND RE-ARRANGED
`
`USER GIVEN REGISTRATION NO.
`
`GO TO FIG. 2C
`
`Page 4 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 4 of 12
`
`5,490,216
`
`FIG. 2C
`
`FROM FIG. 2b
`
`USER TYPES IN
`REGISTRATION NUMBER
`
`APPLICATION USES UNLOCKING
`ALGORTHM TO CHECK VALIDITY
`
`NO
`
`YES
`
`
`
`
`
`
`
`
`
`
`
`ALERT DIALOG BOX: USER TOLD
`THE REGISTRATION NO. IS INCORRECT
`AND ASKED TO CALL THE OPERATOR FOR
`ASSISTANCE IN CHECKING REGISTRATION
`DETALS. USER GIVEN 3 ATTEMPTS TO
`REGISTER AFTER WHICH THE PROGRAM
`AUTOMATICALLY REVERTS TO DEMO VERSION
`
`RUN FULL
`VERSION
`
`RUN DEMO
`VERSION
`
`Page 5 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 5 of 12
`
`5,490,216
`
`FIG. 3
`
`
`
`REGISTRATION
`NOC(KEY) DEFAIESExis), YES
`N APPLICATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DOES
`DUPLICATE
`KEY FILE
`EIST
`
`
`
`
`
`
`
`
`
`REMOVE KEY
`NFORMATION
`
`
`
`
`
`RUN DEMO
`VERSION
`
`LOOK FOR DUPLICATE
`KEY FILE STORED
`ELSEWHERE ON MACHINE
`
`
`
`
`
`DO
`REGISTRATION (KEY)
`DETALS MATCH
`ENVIRONMENT
`2
`
`YES
`
`COPY DUPLICATE
`KEY FILE INFORMATION
`TO APPLICATION
`
`DO
`REGISTRATION (KEY)
`ENVIRONMENT
`p
`
`RUN FULL
`
`Page 6 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 6 of 12
`
`5,490,216
`
`
`
`NAME:
`ORGANIZATION
`ADDRESS
`CITY
`ZIP/POST CODE
`COUNTRY
`CREDIT CARD/ORDERh
`EXPRE DATE
`
`LAST USER NO.
`SERAL NO.
`PRODUCT NO.
`YOUR USER NO.
`
`REGISTRATION NO.
`
`--------m---Mo
`
`Page 7 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 7 of 12
`
`5,490,216
`
`37
`- - - -
`39
`32
`----
`
`I
`
`3a
`
`34
`
`
`
`ENVIRONMENT/PLATFORM
`
`33
`
`32
`
`OOOOO
`OOOOO
`on
`to
`OOOOOO o
`Doooo
`
`Page 8 of 27
`
`

`

`U.S. Patent
`U.S. Patent
`
`Feb.6, 1996
`Feb. 6, 1996
`
`Sheet 8 of 12
`Sheet 8 of 12
`
`5,490,216
`5,490,216
`
`92
`
`
`
`57 /
`
`
`
`TO
`TV/Hi Fl
`TV/Hi FI
`
`Page 9 of 27
`
`FIG. 6
`F1IG.6
`
`Page 9 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 9 of 12
`
`5,490,216
`
`FIRST PIECE OF ENCODED
`INFORMATION IS BROUGHT
`INTO CONTROLLER INCLUDING
`A PRODUCT DENTIFIER.
`
`
`
`
`
`
`
`
`
`
`
`YES
`
`IS
`THE CURRENT
`PRODUCT REGISTERED
`FOR USE
`p
`
`
`
`
`
`DEMO OR
`BUY
`p
`
`
`
`ALLOWS ACCESS TO
`DEMONSTRATION RECORDINGS
`THAT ARE NOT ENCRYPTED.
`
`
`
`
`
`
`
`
`
`REGISTRATION DATA
`ENTRY eg: PAYMENT
`DETALS AND
`PERSONAL DATA
`
`COMMUNICATION
`WITH REGISTRATION
`SERVICE PROVIDOR
`
`
`
`
`
`
`
`
`
`
`
`SUPPLY OF
`REGISTRATION
`NUMBER TO
`CUSTOMER
`
`STORE REGISTRATION
`NUMBER IN WRITABLE
`MEMORY OF LOCAL
`CONTROLLER AND
`WRITABLE STORAGE
`AREA OF SMART CARD.
`
`
`
`
`
`ALLOWS ACCESS
`TO DAC AND
`DECRYPTION
`ENGINE
`
`FIG. 7
`
`Page 10 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 10 of 12
`
`5,490,216
`
`LOCAL LICENSEE LOCATION -
`INTERNAL
`BOND
`
`32
`
`39
`USER
`PROGRAM
`
`
`
`
`
`EXECUTE ON PLATFORM
`
`TREMOTEREGISTRATION
`DATABASE LOCATION
`
`REGISTRATION
`DATABASE
`PROGRAM
`
`
`
`
`
`
`
`
`
`
`
`LICENSEE
`UNIOUE
`.D.
`GENERATOR
`
`
`
`
`
`REMOTE
`LICENSEE
`UNIOUE
`I.D.
`GENERATOR
`
`K.
`
`:)
`
`
`
`44
`
`PROGRAM
`SUBSET
`(DEMO)
`O -- MODE
`-1--
`SWITCHER
`FULL
`PROGRAM
`
`
`
`
`
`PLATFORM
`UNIOUE
`I.D
`GENERATOR
`
`
`
`Page 11 of 27
`
`

`

`U.S. Patent
`
`Feb. 6, 1996
`
`Sheet 11 of 12
`
`5,490,216
`
`VARIABLE
`KEY PORTION
`22
`-n-
`
`SYSTEM
`INFORMATION
`77
`
`(2
`-/
`
`a/
`
`it
`+
`
`ab
`
`22
`
`as INFORMATION
`ragg
`
`IDENTIFICATION
`
`aa
`-/ REGISTRATION
`NUMBER
`
`FIG. 9
`
`Page 12 of 27
`
`

`

`U.S. Patent
`U.S. Patent
`
`Feb. 6, 1996
`Feb. 6, 1996
`
`Sheet 12 of 12
`Sheet 12 of 12
`
`5,490,216
`5,490,216
`
`69
`68
`
`OAM
`s
`
`&§f
`
`0!“OF
`
`
`
`ZA?
`LE
`
`
`
`Page 13 of 27
`
`Page 13 of 27
`
`

`

`1.
`SYSTEM FOR SOFTWARE REGISTRATION
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`This invention relates to improvements in systems for
`software registration and, more particularly, to improve
`ments in arrangements where software is transferable by
`media such as magnetic disks, CD ROMS and the like.
`2. Description of the Related Art
`Much commercially available software is provided at time
`of purchase (or license) on a magnetic media, typically a
`floppy disk. Frequently the only security feature attached to
`the software is a simple registration number stored on the
`media. This registration number identifies that particular
`copy of the software and it is often required at the time of
`installation of the software onto any given computer that the
`installer must provide the registration number independently
`to the installation routines.
`However, such simple security arrangements for the dis
`tribution of software on media suffer from at lest two
`disadvantages: (1) each copy of the software made on any
`given media at the time of manufacture must include an
`individual, unique number, programmed into the media, and
`(2) this arrangement does not prevent copying of the soft
`ware, once installed on any given computer, to another
`computer by means of file transfer (as opposed to reinstal
`lation).
`WO92109,160 to Tan Systems Corporation discloses a
`registration system which is relatively sophisticated which
`relies for its security on a requirement that an intending
`software licensee must obtain from a remote location by file
`transfer significant and essential portions of the program
`which the licensee desires to execute. The arrangement
`disclosed in WO92/09,160 suffers from a number of defi
`ciencies including:
`a. the shell program which the intending licensee initially
`executes requires a unique identity embodied within the
`shell prior to distribution of the shell program;
`40
`b. the shell program is not, itself, a functional program
`that is, it does not include all of the code which the
`intending licensee wishes to execute. That program
`must be obtained remotely with all the delays, incon
`veniences and possibilities of corruption during transit
`that that entails;
`c. the prior art system appears to require and indeed, rely
`on, encryption to ensure that the program material
`which is communicated from a remote location is not
`intercepted for utilization in an unauthorized manner;
`and
`d. it is unclear whether the system can accommodate and
`react appropriately to the situation where the program,
`once registered, is transferred in its entirety from one
`platform to another so as to avoid the requirement for
`payment of a further registration fee.
`U.S. Pat. No. 4,796,220, assigned to Pride Software
`Development Corporation, discloses a system for unique
`recognition of a platform on which licensed software is to be
`executed. However, U.S. Pat. No. 4,796,220 does not con
`template or disclose utilization of information which is
`unique to the user or intended licensee as part of the
`registration process which is to be distinguished from iden
`tification of the platform upon which the software is pro
`posed to be run.
`U.S. Pat. No. 4,688,169 to Joshi broadly discloses the
`same principles as U.S. Pat. No. 4,796,220 in that it dis
`
`60
`
`2
`closes a computer software security system which relies for
`its security on a "machine identification code unique to the
`machine' upon which the software to be protected is to be
`run. Again, the disclosure is limited to identification of the
`platform and there is no suggestion or contemplation of
`linking platform identification with unique user identifica
`tion.
`Also this arrangement does not allow the flexibility of
`transfer of copies of the program from platform to platform
`which can be run in a demonstration mode.
`It is an object of the present invention to address or reduce
`the above-mentioned disadvantages.
`Definitions
`Throughout this specification the term "software” is to be
`interpreted broadly so as to include all forms of digital data
`which are executable on a platform (as to be later defined).
`The digital data comprising the software can, for example,
`be code comprising a word processing program adapted to
`run on a PC or the like. The software can also, for example,
`be digital data stored on a CD ROM adapted for playback as
`music on a CD ROM audio drive. The digital data can be
`displayable information or information which is otherwise
`usable by a licensed user.
`Throughout this specification the term "platform' denotes
`an environment to be associated with a computing device
`such as a microprocessor or other data processing device
`which permits execution of the digital data (to which refer
`ence has previously been made in relation to the term
`"software”) whereby the computer can perform functions on
`input and output devices associated therewith.
`In some circumstances, the "software' or digital data may
`itself be the operating system environment. Typically, but by
`no means exclusively, examples of operating system envi
`ronments include the MicroSoft DOS operating system, the
`IBM OS/2 operating system or the Macintosh System 7
`environment. In the degenerate case of microcontrollers
`operating from ROM, the operating system environment
`may be the microcode of the microcontroller which enables
`the microcontroller to execute machine code.
`In this specification, “use mode” refers to use of the
`digital data or software by its execution on a platform so as
`to fulfill the seller's/licensor's obligations in relation to the
`sale or license of the right to execute the digital data or
`software in the use mode. The use mode is to be distin
`guished from what might generally be termed unlicensed
`modes of operation (which is not to say unauthorized modes
`of operation) as typified by the demonstration modes later
`described in this specification.
`
`SUMMARY OF THE INVENTION
`In broad terms, the system according to the invention is
`designed and adapted to allow digital data or software to run
`in a use mode on a platform if and only if an appropriate
`licensing procedure has been followed. In particular forms,
`the system includes means for detecting when parts of the
`platform on which the digital data has been loaded has
`changed in part or in entirety as compared with the platform
`parameters when the software or digital data to be protected
`was for example last booted or run or validly registered.
`The system relies on digital data or code which forms part
`of the digital data to be protected by the system. This portion
`of the digital data which preferably is integral to the digital
`data to be protected has been termed the "code portion'
`elsewhere in this specification. The code portion includes an
`algorithm adapted to generate a registration number which is
`unique to an intending licensee of the digital data based on
`
`5,490,216
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`Page 14 of 27
`
`

`

`3
`information supplied by the licensee which characterizes the
`licensee.
`The algorithm in the code portion is duplicated at a remote
`location on a platform under the control of the licensor or its
`agents and communication between the intending licensee
`and the licensor or its agent is required so that a matching
`registration number can be generated at the remote location
`for subsequent communication to the intending licensee as a
`permit to licensed operation of the digital data in a use mode.
`Preferably, the code portion is integral with the digital
`data and can be identical for all copies of the digital data. It
`is the algorithm embedded within the code portion (and
`which is duplicated at the remote location) which provides
`a registration number which can be “unique' if the infor
`mation provided by the intending licensee upon which the
`algorithm relies when executed upon the platform is itself
`"unique.”
`In any event, in particular preferred forms, a serial num
`ber (see further on) is included in the registration number
`generation algorithm which introduces an additional level of
`uniqueness into the registration number calculation process.
`Accordingly, in one broad form of the invention there is
`provided a system for licensing use of digital data in a use
`mode, the digital data executable on a platform, the system
`including local licensee unique ID generating means and
`remote licensee unique ID generating means, the system
`further including mode switching means operable on the
`platform which permits use of the digital data in the use
`mode on the platform only if a licensee unique ID generated
`by the local licensee unique ID generating means has
`matched a licensee unique ID generated by the remote
`licensee unique ID generating means.
`Preferably, the system further includes platform unique
`ID generating means, wherein the mode switching means
`will permit the digital data to run in the use mode in
`subsequent execution of the digital data on the platform only
`if the platform unique ID has not changed.
`Preferably, the mode switching means permits operation
`of the digital data in the use mode in subsequent execution
`of the digital data only if the licensee unique ID generated
`by the local licensee unique ID generating means has not
`changed.
`Preferably, the mode switching means includes part of the
`digital data.
`Preferably, the remote licensee unique ID generating
`means comprises software which includes the algorithm
`utilized by the local licensee unique ID generating means to
`produce the licensee unique ID.
`Preferably, the information utilized by the local licensee
`unique ID generating means to produce the licensee unique
`ID comprises prospective licensee credit card number, date
`of birth and full name and address.
`Preferably, the platform unique ID generating means
`forms part of the digital data.
`Preferably, the platform unique ID generating means
`utilizes hard disk information and/or other computer hard
`ware or firmware information to determine the platform
`unique ID.
`Preferably, the platform comprises a computer operating
`system environment.
`Preferably, the digital data comprises a software program
`adapted to run under the operating system environment.
`In a further broad form of the invention, there is provided
`a security routine or registration means attachable to soft
`ware to be protected, the registration means generating a
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,490,216
`
`10
`
`15
`
`20
`
`25
`
`30
`
`4
`security key from information input to the software which
`uniquely identifies an intended registered user of the soft
`ware on a computer on which the software is to be installed.
`Preferably, the security key is generated by a registration
`number algorithm.
`Preferably, the registration number algorithm combines
`information entered by a prospective registered user unique
`to that user with a serial number generated from information
`provided by the environment in which the software to be
`protected is to run (e.g., system clock, last modify date, user
`name).
`Preferably, the registration means is replicated at a reg
`istration authority and used for the purposes of checking by
`the registration authority that the information unique to the
`user is correctly entered at the time that the security key is
`generated by the registration means.
`Preferably, the registration means checks at the time of
`boot of the software as to whether it is a first boot of the
`software to be protected or a subsequent boot. If a subse
`quent boot is detected, then environment and user details are
`compared to determine whether the program reverts to a
`demonstration mode and a new user registration procedure
`is to commence, or a full version run.
`Preferably, the environment details comprise one or more
`of disc volume name, user name or computer, initialization
`date of hard disk, hardware identifier (e.g., ROM checksum)
`or other elements which are generally not user-configurable
`on the platform.
`In a further broad form of the invention, there is provided
`a method of control of distribution of software, the method
`comprising providing mode-switching means associated
`with the software adapted to switch the software between a
`fully enabled mode and a partly enabled or demonstration
`mode; the method further comprising providing registration
`key generating means adapted to generate an enabling key
`which is a function of information unique to an intending
`user of the software; the mode-switching means switching
`the software into fully enabled mode only if an enabling key
`provided to the mode-switching means by the intending user
`at the time of registration of the software has matched
`identically with the registration key generated by the regis
`tration key generating means.
`Preferably, the enabling key is communicated to the
`intending user at the time of registration of the software by
`a third party operating a duplicate copy of the registration
`key generating means.
`In yet a further broad form of the invention, there is
`provided digital data incorporating registration code, the
`digital data executable on a platform; the registration code
`comprising a portion of the digital data executable on the
`platform so as to switch the digital data between a demon
`stration mode and a use mode.
`Preferably, the registration code when executed on the
`platform provides local licensee unique ID generating means
`whereby the digital data can be switched from the demon
`stration mode to the use mode by execution of the registra
`tion code only if a licensee unique ID generated by the local
`licensee unique ID generating means has matched a licensee
`unique ID generated by remote licensee unique ID gener
`ating means.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`Embodiments of the invention will now be described with
`reference to the accompanying drawings wherein:
`
`Page 15 of 27
`
`

`

`5,490,216
`
`10
`
`15
`
`5
`FIG. 1 is a schematic diagram of the relationship and
`interaction between an intending registered user and a
`registration authority of software on media secured accord
`ing to a first embodiment of the invention;
`FIGS. 2a, 2b and 2c are segments of a flow chart of the
`procedure to be followed during registration of software by
`a user according to a first embodiment of the invention;
`FIG. 3 is a flow chart of alternative boot processes
`according to a second embodiment of the invention;
`FIG. 4 is a personal information dialogue box relating to
`the procedure of FIGS. 2a, 2b, 2c in accordance with a third
`embodiment;
`FIG. 5 is a schematic diagram of a system according to a
`fourth embodiment of the invention;
`FIG. 6 is an implementation of the fourth embodiment of
`FIG. 5 in relation to a CD ROM drive;
`FIG. 7 is a logic flow chart in relation to the decoderbox
`of FIG. 6;
`FIG. 8 is a block diagram of a generalized system
`according to a fifth embodiment of the invention;
`FIG. 9 is a block diagram indicating one particular
`example of generation of a registration number for the
`system of FIG. 8; and
`FIG. 10 is a schematic diagram of a sixth embodiment
`comprising a particular example of the generalized system
`of FIG. 8.
`
`6
`The algorithm in the code portion is duplicated at a remote
`location on a platform 67 under the control of the licensor or
`its agents, and communication between the intending lic
`ensee and the licensor or its agent is required so that a
`matching registration number or enabling key can be gen
`erated at the remote location for subsequent communication
`to the intending licensee as a permit to licensed operation of
`the digital data 39 in a use mode.
`Execution of the duplicated code portion on platform 67
`comprises, in this instance, the remote licensee unique ID
`generating means.
`Mode switching means can comprise execution of the
`code portion which additionally performs a comparison of
`the locally and remotely generated registration numbers.
`Preferably, the code portion 38 is integral with the digital
`data and can be identical for all copies of the digital data. It
`is the algorithm embedded within the code portion (and
`which is duplicated at the remote location) which provides
`a registration number which can be “unique' if the infor
`mation provided by the intending licensee upon which the
`algorithm relies when executed upon the platform is itself
`"unique".
`In any event, in particular preferred forms, a serial num
`ber (see further on) is included in the registration number
`generation algorithm which introduces an additional level of
`uniqueness into the registration number calculation process.
`With particular reference to FIG. 1, a program comprising
`digital data protected according to a first embodiment of the
`invention is supplied recorded on a magnetic disk 10.
`Included as part of the software on that disk 10 is a
`registration and re-registration routine which executes
`whenever the program protected by the arrangement of the
`first embodiment "boots'.
`With reference to FIG. 1 and FIGS. 2a, 2b and 2c, the
`operation of the security routine will be described on the
`assumption that the program on the disk 10 protected by the
`registration routine has not been registered on the platform
`or is otherwise being loaded for the first time.
`The prospective new user 11 inserts disk 10 into the user
`PC 12 so as to be read by PC 12.
`As part of the software installation procedure, the regis
`tration routine is activated causing a series of dialogue boxes
`to appear on the display 13 of the user PC 12. Having
`checked to ensure that the software has not previously been
`registered on the PC 12, a dialogue box A (in FIG. 2a) is
`displayed which provides the user with a choice of either
`seeing a demonstration of the software (which typically has
`features such as save and/or print disabled) or alternatively
`an invitation to register ownership/licensee of the software
`(after which all features of the software are made available
`to the user).
`If the register option is selected or if the user cancels the
`demonstration in favor of registration, then a contact dia
`logue box B (in FIG. 2a) is presented on the display 13
`which provides a list (stored on disk 10 as part of the
`registration routine) which provides for example, names and
`contact numbers of the software publishing company
`together with other general product information.
`Following the user's indication of agreement during dis
`play of license details (box B1) to proceed to register, the
`user can contact the registration center after filling out the
`registration dialogue box Cas detailed below. After selecting
`"continue", the registration routine begins the first step in the
`generation of a security key which will be unique to the
`current copy of the software and to certain features of the
`environment in which it runs.
`
`20
`
`25
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`It is to be understood that, in its various embodiments, the
`present invention is for the protection of digital code/
`software by control of permission to use the digital code/
`software. A hardware platform and a remote registration
`station implemented at least partially by means of electronic
`hardware are required by the various embodiments.
`The code/software to be protected requires at least some
`adaption to be usable with the invention in its various
`embodiments. The adaptation can be universal for all copies
`of the code/software to be protected.
`
`First Embodiment
`With reference to FIGS. 1 and 8, the system according to
`embodiments of the invention is designed and adapted to
`allow digital data 39 or software to run in a use mode on a
`platform 31 if and only if an appropriate licensing procedure
`has been followed. In particular forms, the system includes
`means for detecting when parts of the platform 31 on which
`the digital data 39 has been loaded has changed in part or in
`entirety as compared with the platform parameters when the
`software or digital data to be protected was, for example, last
`booted or run or validly registered.
`The system relies on digital data or code 38 which forms
`part of the digital data to be protected by the system. This
`portion of the digital data, which preferably is integral to the
`digital data to be protected, has been termed the code portion
`38 elsewhere in this specification. The code portion 38
`includes an algorithm adapted to generate a registration
`number 66 or local licensee unique ID or registration key
`which characterizes the licensee. In this instance, the local
`licensee unique ID generator which generates the registra
`tion number comprises the execution of code 38 on
`platform 31.
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 16 of 27
`
`

`

`5,490,216
`
`10
`
`15
`
`20
`
`7
`As shown in FIG.2b, the first step in the generation of the
`security key comprises the generation of a serial number
`generated from the current time on the system and, in this
`example, the last modify date of the software and other
`information from the computer environment. The serial
`number is encrypted and rearranged and then presented as a
`number in the registration dialogue box on the display 13.
`The registration dialogue box C (in FIG. 2b) prompts the
`user for details unique to that user (including, for example,
`name, company, address, state, contact number) together
`with financial details for payment for the purpose of becom
`ing a registered user of the software protected by the
`registration routine (for example Mastercard or corporate
`account number details). This information, unique to the
`user, is passed through a registration number algorithm 14
`(represented symbolically in FIG. 1) which generates a
`registration number or security key from the information
`unique to the user together with the serial number previously
`generated. The registration number or security key is not
`made available to the user of the PC 12 by the PC 12.
`An identical registration number algorithm 14 resides on
`the registration authority PC 15. As an integral part of the
`registration procedure, the prospective new user 11 commu
`nicates the information unique to the user which was entered
`by the user on the user PC 12, along with the serial number
`generated by the user's algorithm, to the registration author
`ity 16. The registration authority feeds this information into
`the registration authority PC 15 wherein the registration
`number algorithm 14 should produce an identical registra
`tion number or security key to that produced by the user PC
`30
`12 if the details communicated to the registration authority
`by the prospective new user 11 match with the details that
`have been entered on the user PC 12. Optionally, the user
`can communicate the information to the registration author
`ity electronically, e.g., by fax or modem or tone phone.
`As a final stage in registration (refer to FIG. 2d), the
`registration authority 16 provides the registration number
`generated by the registration authority PC 15 to the user 11.
`The user 11 enters the registration number into the user PC
`40
`12 where the registration routine checks to see whether the
`entered registration number matches the calculated registra
`tion number. If the two match, then a valid registration has
`taken place and access is provided by the registration routine
`to a full operating version of the software protected by the
`registration routine. If there is no match and a preference file
`(which stores the user details) does not exist then a dialogue
`box D (FIG. 2c) appears on the display 13 of user PC 12
`providing the prospective new user 11 with the opportunity
`to check his/her details or switch to the demonstration
`version of the software

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