`Schull
`
`llllllllllllll|||ll|||llllllllllllllllllllllllllllll|ll||ll||||ll|||l||||ll
`5,509,070
`Apr. 16, 1996
`
`USO05509070A
`Patent Number:
`[11]
`[45] Date of Patent:
`
`[54] METHOD FOR ENCOURAGING PURCHASE
`OF EXECUTABLE AND NON-EXECUTABLE
`SOFTWARE
`
`[75] Inventor: Jonathan Schull, Haverford, Pa.
`
`[73] Assignee: SoftLock Services Inc., Rochester, NY.
`
`[21] Appl. No.: 990,455
`[22] Filed:
`Dec. 15, 1992
`
`[51] Int. Cl.6 ........................................... ... ........ .. H04L 4/00
`
`[52] US. Cl. . . . . . . . . . . . . . . . . . . . . . . .
`
`. . . . .. 380/4; 380/23
`
`[58] Field of Search .......... ..
`
`. 380/3, 4, 23, 24,
`380/25, 49, 50
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`8/1987 Joshi.
`4,688,169
`4/1988 Wiliam .................................. .. 380/4 X
`4,740,890
`5/1988 Taaffe .
`4,747,139
`111989 Wolfe .
`4,796,220
`4,864,494 9/1989 Kobus, Jr. .
`4,864,616
`9/1989 Pond et a1. .
`4,888,798 12/1989 Earnest ...................................... .. 380/4
`4,991,208
`2/1991 Walker et al. .
`4,998,279
`3/1991 Weiss.
`4,999,806
`3/1991 Chernow et a1. .
`5,023,907
`6/1991 Johnson et a1. ........................... .. 380/4
`5,027,398
`6/1991 Miyoshi.
`5,046,090
`9/1991 Walker et a1. .
`5,046,092
`9/1991 Walker et a1. .
`5,047,928
`9/1991 Wiedemer ............................. .. 380/4 X
`5,054,064 10/1991 Walker et a1. .
`5,058,162 10/1991 Santon et al. .
`
`ABSTRACT
`
`5,065,429 11/1991 Lang.
`5,070,479 12/1991 Nakagawa .
`5,099,516
`3/1992 Durkin et a1. .
`5,103,476
`4/1992 Waite et a1. .............................. .. 380/4
`5,109,413
`4/1992 Comerford et a1. ...................... .. 380/4
`5,113,518
`5/1992 Durst Jr. et a1. .
`5,117,458
`5/1992 Takaragi et al. .
`5,119,319
`6/1992 Tanenbaum .
`5,126,728
`6/1992 Hall.
`5,166,866 11/1992 Moinar et a1. ........................ .. 380/4 X
`5,319,705
`6/1994 Halter et a1. .............................. .. 380/4
`Primary Examiner-David C. Cain
`Attorney, Agent, or Firm—Oppedahl & Larson
`[57]
`A method and apparatus of encouraging distribution, regis
`tration, and purchase of free copyable software and other
`digital information which is accessed on a User’s System via
`a Programmer’s Program. Software tools which can be
`incorporated into a Programmer’s Program allow the User to
`access Advanced Features of the Programmer’s Program
`only in the presence of a valid Password which is unique to
`a particular Target ID generated on an ID-Target such as the
`User’s system. Advanced features will thus re-loek if the
`Password is copied to another ID-target. If a valid Password
`is not present, the User is invited to obtain one, and provided
`with the means of doing so, and of installing that Password
`in a place accessible to the User’s System on subsequent
`occasions. The present invention also provides Programmers
`with means to invoke business operations as well as com
`putational operations with their programs, and thus to auto
`matically obtain payment from Users who elect to obtain
`passwords.
`
`19 Claims, 2 Drawing Sheets
`
`Laissez Faire Distribution Channel 10
`User puts
`User receives
`User passes
`“ copy-able —->Software |n—>copies on to
`yj Software
`Processor
`other Users
`U W
`L) W
`Locked 15
`Locked
`20
`us?z's
`PRFGRAMMER'S
`PROCESSOR
`PROGRAM
`
`GENERATE
`PASSWORD/ABLE‘ ID
`_
`‘"“GENERATE TARGET ID
`APPLY FEATURE lD
`APPLY PROGRAM ID
`
`4O
`_
`PREVIOUSLY
`INSTALLED
`PASSWORD
`
`CHECK
`FOR VALID
`PASSWORD?
`-
`
`55
`
`/25
`
`PROT ECTED
`50 SOFTWARE
`
`?
`4
`
`OBTAIN VALID
`PASSWORD?
`
`UNLOCK ADVANCED
`FEATURES
`g)
`E
`LICENSING
`LICENSING
`PROCESSOR PROGRAM
`Transmit ID Payment Authorization and
`Registration Information
`
`Q
`
`d GENERATE
`H P
`INSTALL T
`PASSWORD ransm
`asswor PASSWORD
`UNLOCK
`ADVANCED
`FEATURES
`
`LEAVD
`ADVANCE
`FEATURES
`LOCKED
`
`100
`
`93
`
`USER
`$ l
`CREDIT
`PROGRAMMER
`
`r
`(But Advanced Features are
`automatically relocked when Software “
`is copied to another lD-target)
`
`Petitioners Ex. 1002 Page 1
`
`
`
`US. Patent
`
`Apr. 16, 1996
`
`Sheet 1 of 2
`
`5,509,070
`
`Loissez Foire Dis’rribu’rion Channel 10
`User pu'I's
`User p
`User receives
`‘‘ copy-Obie —>SofTw0rein—->copies onTo
`SOfTwore
`Processor
`other Users
`|\/ WI ___>
`20
`Locked
`PRDGRAIVIMER'S
`PROGRAM
`
`US$85 $3
`
`IL) W,
`15
`Locked
`USER'S
`3t~~NL
`PROCESSOR
`“g 30
`GENERATE
`PASSWORDABLE- ID
`T"“GENERATE TARGET ID
`ID TARGET
`APPLY FEATURE ID
`(eg. USERS VOICE)
`APPLY PROGRAM ID
`
`/25
`
`PROTECTED
`50 SOFTWARE
`
`40
`_
`
`4s
`
`PREVIOUSLY
`INSTALLED
`PASSWORD
`
`?
`é
`
`CHECK
`‘ FOR VALID
`PASSWORD?
`-
`
`55
`\
`OFFER
`PASSWORD
`
`UNLOCK ADVANCED
`FEATURES
`g@
`@5-
`LICENSING
`LICENSING
`PROCESSOR PROGRAM
`Au'rhOrizOTiOn 0nd
`
`OBTAIN VALID
`PASSWORD P
`NOT L——I
`
`60
`
`LEAVE
`ADVANCED
`FEATURES
`LOCKED
`
`100
`
`8_O_
`AUTHORIZATION
`CHANNEL
`INSTALL /|——+————GENERATE
`PASSWORD TI'GFISmI‘I' Password PASSWORD
`\'
`UNLOCK
`ADVANCED
`FEATURES
`
`DEBIT
`USER
`$ I
`
`93/
`
`CREDIT
`PROGRAMMER
`
`OS OOw
`
`Locked
`
`(BUT Advanced FeOTUres are
`automatically relocked when SOf’IWore Q
`IS Copied To ono’rher lD~TorgeTI
`
`FIG. 1
`
`Petitioners Ex. 1002 Page 2
`
`
`
`US. Patent
`
`Apr. 16, ‘1996
`
`Sheet 2 of 2
`
`5,509,070
`
`21G
`
`ENCRYPT TEXT USING ENCRYPTING SEED s
`
`ASSIGN FEATURE ID TO ENCRYPTED TEXT
`
`PROVIDE LICENSING SYSTEM WITH 8 FOR EACH ,
`FEATURE ID
`
`220
`\
`
`GENERATE PASSWORDABLE-ID
`I
`TRANSMIT PASSWORDABLE-ID
`AND FEATURE ID TO
`LICENSING SYSTEM
`
`230
`v
`\
`USE FEATURE ID TO ACCESS
`ENCRYPTING SEED
`
`240
`
`USE PASSWORDABLE ID TO
`ENCRYPT ENCRYPTING SEED S
`
`USE ENCRYPTED SEED S AS
`PASSWORD
`
`I
`
`USE PASSWORDABLE ID TO
`DECRYPT ENCRYPTING
`SEED S FROM PASSWORD
`
`TRANSMIT PASSWORD TO
`USER SYSTEM
`
`I
`
`USE ENCRYPTING SEED S TO
`DECRYPT TEXT
`
`FIG. 2
`
`Petitioners Ex. 1002 Page 3
`
`
`
`1
`METHOD FOR ENCOURAGING PURCHASE
`OF EXECUTABLE AND NON-EXECUTABLE
`SOFTWARE
`
`5,509,070
`
`BACKGROUND-‘FIELD OF THE INVENTION
`
`2
`in the software marketplace, and which have given rise to
`the alternative approach, copy-encouragement.
`Copy-encouragement
`Shareware programmers and vendors encourage their
`users to copy, share, and distribute software to others in
`hopes that an adequate proportion of recipients will volun
`tarily contact the vendors, register themselves, and pay for
`the software which they are using. Only a small fraction of
`users actually oblige, but the non-traditional distribution
`channels reach so many potential customers so cheaply, that
`the shareware strategy has been adopted by small-scale
`vendors who do not have the resources for traditional
`manufacturing, advertising, packaging, and distribution
`methods.
`In addition to the explicitly-shareware oriented software
`vendors, it has been observed that many purveyors of
`popular software packages actually tolerate a large amount
`of illicit copying in the hopes that users will eventually
`purchase a copy or an upgrade. In any case, it is obviously
`and crucially desirable to the vendors of easily-copyable
`software that users register and pay for software.
`Users of freely copyable software are often encouraged to
`register and pay for software by offering them additional
`bene?ts including “enhanced” versions of the software. But
`this strategy is de?cient: withholding such bene?ts reduces
`the attractiveness of the product to potential users, and
`reduces the probability that users will recommend or give
`the program to other paying customers. And once a user has
`purchased one enhanced copy, he or she has even less
`incentive for registering additional copies to be used on
`additional machines, and is now able to pirate the more
`powerful program, thus undercutting incentives for registra
`tion among future users who might receive copies. There is
`a need for a means of INSTANTLY rewarding Users who
`register and pay for freely copyable software, without under
`cutting future incentives for registering, copying, and dis
`tributing additional copies.
`Another problem with the prior art is that the people who
`actually create software (i.e., programmers) often do not
`have the ?nancial resources, business experience, time or
`motivation required for registering, billing, and collecting
`money from paying users. This is why they often license
`their programs to established publishers and settle for a
`small percentage of the pro?ts which arise from the sale of
`their creations. Programmers would bene?t greatly if they
`could “program a business operation” into their software just
`as they can now “program a computational operation” into
`their software—-i.e., by adding a few lines of code which
`activate other routines which will do their bidding. The
`present invention provides a means of satisfying this unrec
`ognized need in the industry.
`
`OBJECTS OF THE PRESENT INVENTION
`
`One object of the present invention is to encourage users
`to pay for, and register the freely-copyable software they
`actually use.
`Another object is to enable programmers to “program a
`business operation” by writing a few lines of code, and thus
`reduce their ?nancial and other dependence upon software
`publishers, distributors, and vendors.
`Another object is to allow programmers to be con?dent
`that their licensed representatives (software distributors and
`vendors) are in fact reporting and paying royalties on all
`product sales.
`Another object is to encourage and allow users to evaluate
`and exploit useful software before deciding whether to
`
`This invention relates to a method of encouraging distri
`bution, registration, and purchase of freely copyable soft
`ware and other digital information. The invention applies to
`software as well as other information which can be repeat
`edly copied with little loss of ?delity, and which is expressed
`via a hardware- or software-programmable apparatus, such
`as a computer or a digital audio tape player.
`The copyability of software—problem and opportunity.
`' Digitally encoded information (“software”) is one of the
`most economically important commodities of the era. The
`ease and economy with which perfect copies can be made,
`copied and distributed has promoted the spread of software
`and related technologies through “traditional” commercial
`channels (retail and mail order sales, etc.) and through
`“non-traditional” distribution channels: computer user
`groups, user-to-user copying and sharing (e.g., of software
`and of music and video tapes), digital data networks such as
`the internet, Compuserve, static media such as CD-ROM
`disks loaded with large quantities of data, public libraries,
`and broadcast media. These non-traditional distribution
`channels in particular have made it di?icult for software
`creators and copyright holders to regulate the use of their
`creations, or to receive payment and registration information
`from their users. Consequently, software producers forfeit
`substantial revenues and valuable information about their
`customer base and potential markets, while businesses and
`universities ?nd themselves subject to legal prosecution and
`intimidation for software piracy.
`Two approaches to these problems are copy-deterrence,
`and copy-encouragement. Copy-deterrence is implemented
`through laws, licence agreements and copy-protection tech- '
`nologies. Copy-encouragement is practiced by “shareware”
`and small scale marketers who tolerate the low registration
`rates in order to reach the many potential users who can be
`reached at little cost through non-traditional distribution
`channels. Separately and in combination, however, these
`approaches have had signi?cant disadvantages.
`Copy-deterrence.
`Legal copy-deterrence techniques such as licensing agree—
`ments, and litigation against companies and universities
`whose members knowingly or unknowingly engage in
`piracy are ine?icient, expensive, and often unsuccessful.
`
`They incidentally create large numbers of “software rials” or “pirates” who routinely violate these unenforceable,
`hard-to-understand, and often unreasonable contracts.
`Hardware and software copy-deterrence technologies
`have also been developed, but they often raise the price and
`complexity of the software product, and inspire the devel
`opment, sale and use of counter-technologies intended to
`defeat these copy~protection technologies. Copy-protection
`techniques often inconvenience Users who have legitimate
`needs and good reasons for making copies, and User protests
`against such inconveniences have in fact caused many
`software vendors to abandon copy-protection schemes. Yet
`another disadvantage of hardware-based copy-protection
`techniques, as well as those which involve modi?cation or
`customization of the executable program itself is that they
`prevent software vendors from exploiting the remarkable
`non-traditional distribution networks which have sprung up
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Petitioners Ex. 1002 Page 4
`
`
`
`5,509,070
`
`10
`
`15
`
`3
`purchase, and to provide a convenient and rapid way for
`them to purchase access to advanced features severally or
`individually, as they and the programmer choose.
`Another object is to incent users to distribute freely
`copyable software to other people who would bene?t from,
`and possibly purchase the software.
`Another object is to create economic and pragmatic
`incentives which deter piracy: the idea is that if higher
`registration rates could be attained, software prices could
`more accurately re?ect their actual utility to the average
`user. This would reduce the incentives for piracy and asso
`ciated technologies.
`Another object is to increase the availability and pro?t- ‘
`ability of freely copyable software and of the grassroots
`distribution channels.
`Another object is to enable users to gain instant access to
`advanced features of freely copyable software with minimal
`delay through virtually any form of communication tech
`nology with or without auxiliary telecommunications equip
`ment such as modern.
`Another object is to eliminate the need for costly and
`inconvenient non-copy-able adjuncts to software programs
`(such as expensively printed manuals and packaging, hard
`ware locks) etc., whose only purpose is to deter illegal
`copying of software and whose effect is to in?ate software
`prices.
`Another object is to improve upon the technology embed
`ded in the author’ s prior art (TAU) so that technology can be
`made available to other programmers as freely-copyable
`software tools.
`Still further objects and advantages of the present inven
`tion will become apparent from a consideration of the
`ensuing description and drawings.
`
`4
`ing serious users to register and pay for not-merely-evalu
`ative use.
`During two years of experimental monitoring, some de?
`ciencies of this method were identi?ed. While the method
`did ensure that the software vendor would report and pay
`royalties to the author (who was the only party with the
`routine for generate appropriate passwords) the process by
`which the user obtained a password proved inconvenient for
`vendor, author, and customer. The protocol for obtaining
`passwords was: Program presents ID to User, User gives ID
`to Vendor (by phone, mail or fax), Vendor gives ID to Author
`(by phone), Author gives Password to Vendor (by phone),
`the Vendor gives ID to User, User gives ID to program (via
`the keyboard), the program installs the ID. The present
`invention preserves the security advantages while simplify
`ing and making more ?exible the process by which pass
`words are obtained. A second de?ciency was that while the
`method allows selective locking of particular features in an
`otherwise functional program, it became clear that we
`needed a method by which ‘Users could selectively purchase
`only those advanced features which were required on a
`particular machine. A third de?ciency was that when users
`upgraded or repaired their computers over the course of the
`experimental period, we had to issue replacement passwords
`at no charge, and had no convenient means of verifying
`claims about computer modi?cations. During testing it
`became clear that if such de?ciencies could be addressed,
`and if the scheme could be disembedded from the particular
`biological rhythms program for which it had been devel
`oped, it could be of quite general utility. The present
`invention addresses these de?ciencies, generalizes the
`scheme tested in the authors earlier creation, and disembeds
`it from that experimental context in such a way that it can be
`incorporated into other programmer’s and software produc
`ers creations.
`
`20
`
`25
`
`30
`
`35
`
`SUMMARY DESCRIPTION OF THE
`INVENTION
`
`Some of the above objects have been partially realized in
`a a computer program developed for different purposes by
`the present author in 1989. This is probably the most
`relevant prior art, and the present invention is both an
`improvement and a new use of the authors earlier invention,
`and of other related inventions, such as US. Pat. Nos.
`4,796,220 and 5,113,118.
`My previously-developed program (“TAU” for the scien
`ti?c analysis of biological rhythms data) is not copy~pro~
`tected, and copying is encouraged. However certain
`“advanced features” of the program are inaccessible on a
`given machine until a unique, or nearly-unique password is
`installed on that machine. These advanced features (such as
`the ability to make publication-quality reports) are inessen
`tial for educational and evaluation purposes (and so they do
`not discourage distribution along the grassroots channel),
`but they are desirable for serious or professional use (and so
`they do encourage user registration). The instant the pass
`word is installed, the “advanced features” of the program are
`unlocked. The password, like the program itself, is freely
`copyable (so backups can be made and restored freely on the
`machine for which that password is appropriate). However,
`since the password is useless on other machines to which
`copies might be transferred, a new password must be pur
`chased for each new machine on which the advanced
`features are desired. Thus the method encourages all users to
`evaluate, copy, and distribute the software to other machines
`and other potential users, while at the same time encourag
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`The invention will be described with respect to a drawing,
`of which:
`FIG. 1 is an illustration of the physical entities, processes,
`and functions which comprise the present invention: and
`FIG. 2 is an illustration of a technique used in connection
`with the invention whereby the Encrypting/Decrypting Seed
`only needs to exist transiently in the User’s System.
`
`40
`
`45
`
`OVERVIEW OF THE INVENTION
`
`The invention as described is most easily understood as a
`set of software tools which computer programmers can
`incorporate into their own programs by‘ adding a few lines of
`code. These programmer-written lines activate the software
`tools which enable or perform some or all of the functions
`to be described. However, it should be understood that the
`scope of the present invention is not restricted to the
`distribution of executable software such as computer pro
`grams per Se. For example, the invention could just as easily
`apply to a freely-copyable audio tape which would play at
`full ?delity only on an audio processor which was pro
`grammed to require a valid password. Thus, the protected
`software and the programmer’s program might be separate
`entities with the latter integrated into ?rmware, the protected
`software and the programmer’s program might be integrated
`with each other as in the case of my program TAU, and so
`on.
`FIG. 1 illustrates the physical entities, processes, and
`functions comprise the present invention.
`
`55
`
`60
`
`65
`
`Petitioners Ex. 1002 Page 5
`
`
`
`5,509,070
`
`5
`FIG. 2 illustrates the encryption protocol. The User
`acquires freely~copyable software through the “Laissez
`Faire Distribution Channel” 10 which comprises all of the
`methods previously described as non-traditional distribution
`channels as well as other distribution methods which might
`be developed in order to exploit the present invention. The
`“User’s Processor” 15 is the device (typically a computer, or
`digital signal processing device) which processes “the Pro
`tected Software” under the control of the “Programmer’s
`Program” 20, and the Licensing Processor 90 under the
`control of the Licensing Program 85, generates passwords
`for one or more Programmer’s Programs and may also
`transact ?nancial other transactions with eh User. The
`Authorization Channel 80 will often consist of a 2-way
`telecommunications channel such as a telephone line, and
`participates in the transmission of IDs, Passwords and other
`information between the User’ s Processor and the Licensing
`Processor.
`When a Valid Password is already present.
`We ?rst describe the processes which occur when a User
`executes the Protected Software in the presence of a previ
`ously-installed valid password. When the Programmer’s
`Program 20 is loaded and executed on the User’s Processor,
`one of its component processes is to “Generate a Password
`able ID” 25 based in part upon the adequately-unique
`characteristics of an ID-Target. The ID-Target 30 is the
`entity to which access to the Software’s advanced features is
`linked. In the ?gure, it is supposed that the ID-Target is the
`User’s voice, but in other embodiments it might be the serial
`number or other distinct features of the User’s processor.
`(Prior art methods by which ID-targets such as voices might
`be characterized for the production of Target-IDs will be
`discussed below.) Once a Passwordable ID is generated, the
`Programmer’s Program looks in an information storage
`location for a “Previously Installed Password 40. In a
`computer, the information storage location would typically
`be a ?le on a hard disk drive, but in principle the Password
`could be installed in any location accessible by the Pro
`grammer’s Program, including the memory of the User
`interacting with his or her Processor. The Programmer’s
`Program then conducts a Check 45 to determines whether
`the Previously Installed Password (if any) is the correct
`match for the speci?c Password-able ID which has been
`generated. If the password is valid the Programmer’s Pro
`gram Unlocks the Advanced Features of the Software, and
`gives the User full and unimpeded access to the program’s
`advanced features (End State 50).
`No Valid Password
`If Check 45 does not ?nd a Valid Password, the Program
`mer’s Program gives the User the information he or she
`needs in order to decide whether to a password for the
`Software’s still-locked Advanced Features. Given this Offer
`55, it is up to the User to decide whether or not to Obtain a
`Valid Password (60) and communicate that decision to the
`Progamrner’s program. If the User decides not to obtain a
`valid password, the program simply leaves the advanced
`features Locked (End State 70).
`User decides to obtain a valid password
`However, if the User’s Decision 60 is to obtain a valid
`password, an Authorization channel 80 must be activated
`which establishes communication between the User (or his
`processor) and the Licensing system which is comprised of
`Licensing Processor 85 executing Licensing Software 90.
`The function of the Authorization Channel 80 is to send the
`Passwordable ID, and typically other payment information
`as well, from the Programmer’s Program to the Licensing
`system and then to transmit a valid Password from the
`
`6
`Licensing System to the Programmer’s Program. The func
`tions of the Licensing system is typically to receive payment
`information from the User, arrange for the transfer of funds
`from the User to the Programmer, and generate and transmit
`the speci?c password required by the Passwordable ID.
`Upon receipt of the password the Programmer’s program
`unlocks the advanced features of the program just as in Step
`50, and also installs the Password in storage location 40 so
`that on subsequent executions of the Programmer’ s program
`the ?ow of control will terminate at End State 120, (identical
`to end state 50) with Advanced Features Unlocked.
`Punchline
`Note that if a copy of the now-Unlocked software is
`copied to another ID-target it will automatically relock,
`provided either that the new target-ID is different from the
`old target-ID, and/or that the Password for the original
`ID-target was installed in such a way that it could not be
`transferred to the new ID-target.
`
`DETAILED EXPLICATION OF THE INVENTION
`
`The Laissez Faire Distribution Channel
`The present invention differs from earlier inventions in
`separating the distribution channel by which software is
`acquired and distributed from the authorization channel by
`which licensing is transacted. One advantage of this inno
`vation is that it allows Users and software distributors to
`support rather than impede the ?ow of information through
`the Laissez Faire Distribution channel which develops rela
`tively spontaneously and at little cost to participants when
`freely-copyable software is present. Another advantage is
`that relatively little information needs to ?ow through the
`proprietary authorization channel. The present invention
`may well expand the Laissez Faire Distribution channel by
`making it economically viable for Software publishers to
`distribute software through the mail, as give-away items
`tucked into the volumes of third-party books, or as donations
`to public libraries, and so on. Note however, that while the
`Laissez Faire Distribution Channel may thus support and be
`supported by the present invention, it is not a necessary part
`of the present invention. The present invention could also
`support the distribution, by mail and other means, of non
`copyable software (e.g., on CDROMs), provided only that
`access to advanced features can be locked in the absence of
`a valid password on the User’s'System.
`The User’s System
`The nature of the User’s Processor and the Programmer’s
`Program will depend on the nature of the Protected Software
`being processed. The processor for a protected computer
`program or a protected text ?le is typically a traditional
`computer; the processor for a protected audio-tape is a tape
`player, and so on. In essence then the User’s processor is a
`device which processes the protected software under control
`of the Programmer’s Program. Several observations are
`pertinent. First as multi-media processors are developed
`they will be able to deal with more and more kinds of
`protected software in an integrated fashion, so the scope of
`the present invention should be increasingly broad. Second,
`the Programmer’s Program need not necessarily be distrib
`uted or distributable through the Liassez Faire Distribution
`Channel. It could therefore be incorporated into the hard
`ware, ?rmware, or software of the User’s Processor. Thus, to
`the extent that the User’s Processor has been made to
`mediate the methods of the present invention, it is intended
`that it be covered by this patent.
`Generic Passwordable-ID
`The Passwordable ID is the adequately-unique string of
`symbols for which a speci?c password is required. The
`
`15
`
`20
`
`25
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`Petitioners Ex. 1002 Page 6
`
`
`
`5,509,070
`
`7
`oxymoron “adequately-unique” is used because (1) adequate
`utility may be achieved even if Passwordable IDs are just
`variegated enough to signi?cantly reduce the probability that
`a password obtained for one ID-target will work for another
`ID-target to which the ?rst password might be transferred,
`and (2) because the need for one-of-a-kind uniqueness can
`be further reduced if passwords are installed (in step 100) in
`such a way that they are not transferrable from one ID-target
`to another.
`The ID must be generated in such a way that two
`ID-Targets will generate different IDs. Also, in order that a
`plurality of Licensed-features in a plurality of software
`programs be independently licensable on the same ID
`Target, any two Licensed features must be able to generate
`different IDs even in conjunction with a single ID~Target.
`Those familiar with the art will recognize that this can be
`achieved a variety of ways, in one preferred embodiment,
`each item of protected software is assigned an adequately
`unique P-digit Program ID, and each licensed Feature is
`assigned an F-digit Feature-ID, and each ID~Target can be
`associated with a T-digit Target-ID such as a serial number.
`Once assigned (using methods described below) these ID
`numbers are combined in a fashion which preserves their
`uniqueness (e.g., by concatenating them to produce a num
`ber with N+M+T digits capable encoding l0“(N+M+n values)
`and then using this combination, an encryption of it, or some
`other adequately-unique transform of it, as the ID.
`In addition, to ensure error-checking when the Password
`able ID is transmitted to the central computer (80), it is
`desirable that a Passwordable ID satisfy some kind of
`coherence constraint such that the mis-report of a single
`digit can be detected. One coherence constraint would be to
`append two more digits to the ID which would constitute a
`checksum for the preceding digits. Thus an error would be
`detected when the checksum and the preceding digits were
`inconsistent.
`Other information could usefully be encrypted into the ID
`as well. For example, to facilitate compensation of the
`software creator and to ensure that the correct price is being
`assessed for a given Password (Step 95), the ID could also
`encrypt the price of the software and the name of the party
`who should receive royalties, and so on.
`Thus the invention requires only that an adequately
`unique ID be generated; it does not require that the ID be
`generated any particular way, and our invention should not
`be considered to be dependent on any particular method. As
`illustrated in the next paragraphs, a variety of methods can
`be adopted by individual programmers to suit the needs of
`their application.
`Method of assigning Feature-IDs and Program IDs
`To the extent that a su?iciently large number of digits
`have been allocated Feature and Program IDs, the program
`mer can safely use a randomly-seeded number generator to
`select values for these IDs, since the probability that two
`programmers would fall upon the same numbers is
`adequately small. Alternatively, unpredictable Feature-IDs
`can be assigned by a central computer maintained by opera
`tor the Licensing System, which computer maintains a
`data-base of previously assigned IDs.
`Method of assigning Target-IDs
`The method of assigning target-IDs, will depend upon the
`nature of the ID-Target device, the requirements of the
`Programmer’s program, and the intended distribution. It
`should be noted that target-IDs need not be genuinely unique
`for the present invention to be of substantial utility: it is
`sufficient that they be rare enough to substantially reduce the
`probability that the ID assigned to one ID-Target will not
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`60
`
`65
`
`8
`also be assigned to one of the ID-Targets to which the
`software might be copied. Furthermore, to the extent that
`adequately rare Target-IDs cannot be assigned, the objec
`tives of the invention can still be achieved by rendering the
`installed password non-copyable using conventional copy
`protection techniques. Thus, the purpose of the next para
`graph is to demonstrate that adequately unique IDs can be
`generated in a variety of existing and anticipatable situations
`using currently-available technology.
`Those with ordinary skill in the art will recognize that
`many ID-Target devices possess unique identi?ers which
`can be accessed by the Programmer’s Program and used as
`the basis for target-IDs. For example, many computers,
`printers, hard-disks, and CD-Rom disks have software
`accessible serial numbers. Of those devices which do not
`have serial numbers, many have software-assessable char
`acteristics (such as the number and kind of peripherals,
`central processing unit chips, the interleave factor and
`timing characteristics of the hard drive, etc.) which can be
`used to generate a target-ID which is sufficiently unique to
`satisfy the needs of the situation. In addition, a variety of
`computer devices have been invented for retro?tting a
`computer with a unique serial number, and these too could
`be used to generate target-IDs on computers which were
`so-equipped.
`Other kinds of ID-targets, such as the voice of the User
`can be characterized using existing pattern-recognition tech
`nologies to generate a user-speci?c target-ID which is
`“fuzzy enough” to recognize the user under varying condi
`tions, but speci?c enough to rej