`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