`(12) Patent Application Publication
`Schull
`
`(10) Pub. No.: US 2002/0004785 Al
`Jan. 10, 2002
`(43) Pub. Date:
`
`I lllll llllllll II llllll lllll lllll lllll lllll 1111111111111111111111111111111111
`US 20020004 785Al
`
`(54) METHOD FOR SELLING, PROTECTING,
`AND REDISTRIBUTING DIGITAL GOODS
`
`(76)
`
`Inventor: Jonathan Schull, Hudson, MA (US)
`
`Publication Classification
`
`Int. Cl.7 .............................. H04L 9/00; G06F 17/60
`(51)
`(52) U.S. Cl. ............................... 705/51; 705/59; 713/186
`
`Correspondence Address:
`BROWN RUDNICK FREED AND GESMER P
`c
`BOX IP
`18TH FLOOR ONE FINANCIAL CENTER
`BOSTON, MA 02111 (US)
`
`(21)
`
`Appl. No.:
`
`09/942,232
`
`(22)
`
`Filed:
`
`Aug. 29, 2001
`
`Related U.S. Application Data
`
`(63)
`
`Continuation-in-part of application No. 09/764,293,
`filed on Jan. 19, 2001, which is a continuation of
`application No. 08/631,411, filed on Apr. 12, 1996,
`now Pat. No. 6,266,654, which is a continuation-in(cid:173)
`part of application No. 07/990,445, filed on Dec. 15,
`1992, now abandoned.
`
`(57)
`
`ABSTRACT
`
`This is a method for limiting access to selected features of
`a freely distributed multimedia file, by disabling selected
`features of the file (using encryption, compression, or other
`access denial), distributing the file with some enabled fea(cid:173)
`tures as an inducement to new users, and offering to enable
`more features when a new user attempts to use a disabled
`feature. A licensing system then receives a request from the
`user's system, identifying a specific operating context and
`one or more features desired by the corresponding user.
`Accounting is done and an authorization is sent to the user
`or the user's system to enable the features. However, the
`authorization is uniquely associated with the measured oper(cid:173)
`ating context of the user and the features remain enabled
`only for said operating context, thus limiting full operation
`to authorized users, while permitting new users access to
`limited operations.
`
`Laissez Faire Distribution Channel 10
`User puts
`User passes
`User receives
`copy-able -software in-copies on to
`Software
`Processor
`other Users
`
`-<
`
`~ "'
`
`) J J
`I 20 ~ -
`
`USER'S
`
`~ 15
`J PROCESSOR
`
`GENERATE
`30
`~---_,.(_
`PASSWORDABLE-ID
`GENERATE TARGET ID
`ID TARGET
`(e.g. USER's VOICE) APPLY FEATURE ID
`APPLY PROGRAM ID
`
`PROGRAMMER'S
`PROGRAM
`
`25
`
`PROTECTED
`50 SOFTWARE
`
`40
`PREVIOUSLY
`INSTALLED-~
`PASSWORD
`
`O>-.--..__.,
`YES
`
`0 0
`
`UNLOCK ADVANCED
`FEATURES
`90
`85
`LICENSING
`LICENSING
`PROCESSOR
`PROGRAM
`Transmit ID Payment Authorization and
`Registration Information
`
`LEAVE
`ADVANCED
`FEATURES
`LOCKED
`
`100
`
`UNLOCK
`ADVANCED
`FEATURES
`
`93
`
`CREDIT
`PROGRAMMER
`
`O&
`
`Locked
`
`0 0 (But Advanced Features are
`
`)
`outomotically relocked when Software ~
`
`is copied to another ID-target) -
`
`APPLE EXHIBIT 1006
`Page 1 of 16
`
`
`
`Patent Application Publication
`
`Jan. 10, 2002 Sheet 1 of 2
`
`US 2002/0004785 Al
`
`Laissez Faire Distribution Channel 10
`User receives
`User puts
`User passes
`copy-able --software in --copies on to
`Software
`Processor
`other Users
`
`I 20
`
`[Yoc'ZJ
`
`PROGRAMMER~
`PROGRAM
`
`30
`GENERATE
`--
`~---./
`PASSWORDABLE-ID
`GENERATE TARGET ID
`ID TARGET
`(e.g. USER's VOICE) APPLY FEATURE ID
`APPLY PROGRAM ID
`
`[J:c~ 15
`
`USER~
`
`J PROCESSOR
`
`40
`PREVIOUSLY
`INSTALLED ----1><
`PASSWORD
`
`55
`
`25
`
`PROTECTED
`SOFTWARE
`
`YES
`
`OFFER
`PASSWORD
`
`UNLOCK ADVANCED
`FEATURES
`90
`85
`.
`LICENSING
`LICENSING
`PROGRAM
`PROCESSOR
`Transmit ID Payment Authorization and
`Registration Information
`
`80
`AUTHORIZATION
`CHANNEL
`
`GENERATE
`INSTALL
`PASSWORD Transmit Password PASSWORD
`
`DEBIT
`USER
`
`$ t
`
`CREDIT
`PROGRAMMER
`
`LEAVE
`ADVANCED
`FEATURES
`LOCKED
`
`100
`
`UNLOCK
`ADVANCED
`FEATURES
`
`93
`
`o~
`Locked
`
`0 0 (But Advanced Features are
`
`)
`automatically relocked when Software
`is copied to another ID-target)
`
`-4
`
`FIG. 1
`
`APPLE EXHIBIT 1006
`Page 2 of 16
`
`
`
`Patent Application Publication
`
`Jan. 10, 2002 Sheet 2 of 2
`
`US 2002/0004785 Al
`
`210
`\
`ENCRYPT TEXT USING ENCRYPTING SEED S
`
`ASSIGN FEATURE ID TO ENCRYPTED TEXT
`
`PROVIDE LICENSING SYSTEM WITH S FOR EACH
`FEATURE ID
`
`22~
`
`GENERATE PASSWORDABLE-ID
`
`USE FEATURE ID TO ACCESS
`~ ENCRYPTING SEED S
`
`•
`
`TRANSMIT PASSWORDABLE-10
`AND FEATURE ID TO
`LICENSING SYSTEM
`
`240
`
`.\
`
`USE PASSWORDABLE ID TO
`DECRYPT ENCRYPTING
`SEED S FROM PASSWORD
`+
`USE ENCRYPTING SEED S TO
`DECRYPT TEXT
`
`t
`t
`t
`
`USE PASSWORD ABLE ID TO
`ENCRYPT ENCRYPTING SEED S
`
`USE ENCRYPTED SEED S AS
`PASSWORD
`
`~TRANSMIT PASSWORD TO
`USER SYSTEM
`
`FIG. 2
`
`APPLE EXHIBIT 1006
`Page 3 of 16
`
`
`
`US 2002/0004 785 Al
`
`Jan. 10, 2002
`
`1
`
`METHOD FOR SELLING, PROTECTING, AND
`REDISTRIBUTING DIGITAL GOODS
`
`[0001] This is a Continuation in Part based upon pending
`application U.S. Ser. No. 09/764,293, which was filed on
`Jan. 19, 2001, which was a Continuation of U.S. Ser. No.
`08/631,411, filed on Apr. 12, 1996, now issued as U.S. Pat
`No. 6,266,654, which was a Continuation in Part of U.S. Ser.
`No. 07/990,445, filed on Dec. 15, 1992, now issued on Apr.
`16, 1996 as U.S. Pat. No. 5,509,070.
`
`BACKGROUND-FIELD OF THE INVENTION
`
`[0002] This invention relates to a method of encouraging
`distribution, registration, and purchase of freely copyable
`software and other digital information. The invention
`applies to software as well as other information which can
`be repeatedly copied with little loss of fidelity, and which is
`expressed via a hardware- or software- programmable appa(cid:173)
`ratus, such as a computer or a digital audio tape player.
`
`[0003] The Copyability of Software-problem and
`Opportunity.
`
`[0004] 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 net(cid:173)
`works 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 difficult 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 pro(cid:173)
`ducers forfeit substantial revenues and valuable information
`about their customer base and potential markets, while
`businesses and universities find themselves subject to legal
`prosecution and intimidation for software piracy.
`
`[0005] Two approaches to these problems are copy-deter(cid:173)
`rence, and copy- encouragement. Copy-deterrence is imple(cid:173)
`mented through laws, license agreements and copy-protec(cid:173)
`tion technologies. 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, how(cid:173)
`ever, these approaches have had significant disadvantages.
`
`[0006] Copy-deterrence.
`
`[0007] Legal copy-deterrence techniques such as licensing
`agreements, and litigation against companies and universi(cid:173)
`ties whose members knowingly or unknowingly engage in
`piracy are inefficient, expensive, and often unsuccessful.
`They incidentally create large numbers of "software crimi(cid:173)
`nals" or "pirates" who routinely violate these unenforceable,
`hard-to-understand, and often unreasonable contracts.
`
`[0008] Hardware and software copy-deterrence technolo(cid:173)
`gies have also been developed, but they often raise the price
`and complexity of the software product, and inspire the
`
`development, 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(cid:173)
`protection techniques, as well as those which involve modi(cid:173)
`fication 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 in the software marketplace, and which have
`given rise to the alternative approach, copy-encouragement.
`
`[0009] Copy-encouragement
`
`[0010] Shareware programmers and vendors encourage
`their users to copy, share, and distribute software to others
`in hopes that an adequate proportion of recipients will
`voluntarily 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.
`
`[0011]
`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 even(cid:173)
`tually purchase a copy or an upgrade. In any case, it is
`obviously and crucially desirable to the vendors of easily(cid:173)
`copyable software that users register and pay for software.
`
`[0012] Users of freely copyable software are often encour(cid:173)
`aged to register and pay for software by offering them
`additional benefits including "enhanced" versions of the
`software. But this strategy is deficient: withholding such
`benefits 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(cid:173)
`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(cid:173)
`cutting future incentives for registering, copying, and dis(cid:173)
`tributing additional copies.
`
`[0013] Another problem with the prior art is that the
`people who actually create software (i.e., programmers)
`often do not have the financial resources, business experi(cid:173)
`ence, 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 profits which arise from the sale
`of their creations. Programmers would benefit 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(cid:173)
`ognized need in the industry.
`
`APPLE EXHIBIT 1006
`Page 4 of 16
`
`
`
`US 2002/0004 785 Al
`
`Jan. 10, 2002
`
`2
`
`[0014] Objects of the Present Invention
`
`[0015] One object of the present invention is to encourage
`users to pay for, and register the freely-copyable software
`they actually use.
`
`[0016] Another object is to enable programmers to "pro(cid:173)
`gram a business operation" by writing a few lines of code,
`and thus reduce their financial and other dependence upon
`software publishers, distributors, and vendors.
`
`[0017] Another object is to allow programmers to be
`confident that their licensed representatives (software dis(cid:173)
`tributors and vendors) are in fact reporting and paying
`royalties on all product sales.
`
`[0018] Another object is to encourage and allow users to
`evaluate and exploit useful software before deciding
`whether to 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.
`
`[0019] Another object is to incent users to distribute
`freely-copyable software to other people who would benefit
`from, and possibly purchase the software.
`
`[0020] 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 reflect their actual utility to the average
`user. This would reduce the incentives for piracy and asso(cid:173)
`ciated technologies.
`
`[0021] Another object is to increase the availability and
`profitability of freely copyable software and of the grass(cid:173)
`roots distribution channels.
`
`[0022] 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
`technology with or without auxiliary telecommunications
`equipment such as modem.
`
`[0023] Another object is to eliminate the need for costly
`and inconvenient non-copy-able adjuncts to software pro(cid:173)
`grams (such as expensively printed manuals and packaging,
`hardware locks) etc., whose only purpose is to deter illegal
`copying of software and whose effect is to inflate software
`prices.
`
`[0024] Another object is to improve upon the technology
`embedded in the author's prior art (TAU) so that technology
`can be made available to other programmers as freely(cid:173)
`copyable software tools.
`
`[0025] Still further objects and advantages of the present
`invention will become apparent from a consideration of the
`ensuing description and drawings.
`
`SUMMARY DESCRIPTION OF IBE
`INVENTION
`
`[0026] Some of the above objects have been partially
`realized in 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 author's earlier invention,
`and of other related inventions, such as U.S. Pat. Nos.
`4,796,220 and 5,113,118.
`
`[0027] My previously-developed program ("TAU" for the
`scientific analysis of biological rhythms data) is not copy(cid:173)
`protected, 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(cid:173)
`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(cid:173)
`word is installed, the "advanced features" of the program are
`unlocked. The password, like the program itself, is freely(cid:173)
`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(cid:173)
`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(cid:173)
`ing serious users to register and pay for not-merely-evalu(cid:173)
`ative use.
`
`[0028] During two years of experimental monitoring,
`some deficiencies of this method were identified. 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(cid:173)
`ing and making more flexible the process by which pass(cid:173)
`words are obtained. A second deficiency 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 deficiency 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 modifications. During testing it
`became clear that if such deficiencies could be addressed,
`and if the scheme could be disembedded from the particular
`biological rhythms program for which it had been devel(cid:173)
`oped, it could be of quite general utility. The present
`invention addresses these deficiencies, generalizes the
`scheme tested in the author's 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(cid:173)
`ers creations.
`
`OVERVIEW OF IBE INVENTION
`[0029] The invention as described is most easily under(cid:173)
`stood as a set of software tools which computer program(cid:173)
`mers 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
`
`APPLE EXHIBIT 1006
`Page 5 of 16
`
`
`
`US 2002/0004 785 Al
`
`Jan. 10, 2002
`
`3
`
`that the scope of the present invention is not restricted to the
`distribution of executable software such as computer pro(cid:173)
`grams per Se. For example, the invention could just as easily
`apply to a freely-copyable audio tape which would play at
`full fidelity only on an audio processor which was pro(cid:173)
`grammed to require a valid password. Thus, the protected
`software and the programmer's program might be separate
`entities with the latter integrated into firmware, 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.
`
`[0030] FIG. 1 illustrates the physical entities, processes,
`and functions comprise the present invention.
`
`software
`freely-copyable
`[0031] The User acquires
`through the "Laissez Faire Distribution Channel"lO which
`comprises all of the methods previously described as non(cid:173)
`traditional distribution channels as well as other distribution
`methods which might be developed in order to exploit the
`present invention. The "User's Processor"l5 is the device
`(typically a computer, or digital signal processing device)
`which processes "the Protected Software" under the control
`of the "Programmer's Program"20, and the Licensing Pro(cid:173)
`cessor 90 under the control of the Licensing Program 85,
`generates passwords for one or more Programmer's Pro(cid:173)
`grams and may also transact financial other transactions with
`the 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.
`
`[0032] When a Valid Password is Already Present.
`
`[0033] We first describe the processes which occur when
`a User executes the Protected Software in the presence of a
`previously-installed valid password. When the Program(cid:173)
`mer'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(cid:173)
`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 figure, 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 file on a hard disk drive, but in principle
`the Password could be installed in any location accessible by
`the Programmer's Program, including the memory of the
`User interacting with his or her Processor. The Program(cid:173)
`mer's Program then conducts a Check 45 to determines
`whether the Previously Installed Password (if any) is the
`correct match for the specific Password-able ID which has
`been generated. If the password is valid the Programmer's
`Program Unlocks the Advanced Features of the Software,
`and gives the User full and unimpeded access to the pro(cid:173)
`gram's advanced features (End State 50).
`
`[0034] No Valid Password
`
`If Check 45 does not find a Valid Password, the
`[0035]
`Programmer'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
`Programmer's program. If the User decides not to obtain a
`valid password, the program simply leaves the advanced
`features Locked (End State 70).
`
`[0036] User Decides to Obtain a Valid Password
`
`[0037] However, if the User's Decision 60 is to obtain a
`valid password, an Authorization channel 80 must be acti(cid:173)
`vated which establishes communication between the User
`(or his processor) and the Licensing system which is com(cid:173)
`prised of Licensing Processor 85 executing Licensing Soft(cid:173)
`ware 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 Licensing System to the Programmer's Program. The
`functions 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 specific 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 flow of control will terminate at End State 120, (identical
`to end state 50) with Advanced Features Unlocked.
`
`[0038] Punchline
`
`[0039] 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
`[0040] The Laissez Faire Distribution Channel
`
`[0041] The present invention differs from earlier inven(cid:173)
`tions in separating the distribution channel by which soft(cid:173)
`ware is acquired and distributed from the authorization
`channel by which licensing is transacted. One advantage of
`this innovation is that it allows Users and software distribu(cid:173)
`tors to support rather than impede the flow of information
`through the Laissez Faire Distribution channel which devel(cid:173)
`ops relatively spontaneously and at little cost to participants
`when freely-copyable software is present. Another advan(cid:173)
`tage is that relatively little information needs to flow 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(cid:173)
`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.
`
`[0042] The User's System
`
`[0043] The nature of the User's Processor and the Pro(cid:173)
`grammer's Program will depend on the nature of the Pro(cid:173)
`tected Software being processed. The processor for a pro-
`
`APPLE EXHIBIT 1006
`Page 6 of 16
`
`
`
`US 2002/0004 785 Al
`
`Jan. 10, 2002
`
`4
`
`tected computer program or a protected text file is typically
`a traditional computer; the processor for a protected audio(cid:173)
`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 obser(cid:173)
`vations 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
`distributed or distributable through the Laissez Faire Distri(cid:173)
`bution Channel. It could therefore be incorporated into the
`hardware, firmware, 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.
`
`[0044] Generate Passwordable-ID
`
`[0045] The Passwordable ID is the adequately unique
`string of symbols for which a specific password is required.
`The oxymoron "adequately-unique" is used because (1)
`adequate utility may be achieved even if Passwordable IDs
`are just variegated enough to significantly reduce the prob(cid:173)
`ability that a password obtained for one ID-target will work
`for another ID-target to which the first 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.
`
`[0046] 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(cid:173)
`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(cid:173)
`ber with N+M+T digits capable encoding lOA(N+M+T)
`values) and then using this combination, an encryption of it,
`or some other adequately-unique transform of it, as the ID.
`
`[0047]
`In addition, to ensure error-checking when the
`Passwordable 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.
`
`[0049] 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.
`
`[0050] Method of Assigning Feature-IDs and Program IDs
`
`[0051] To the extent that a sufficiently large number of
`digits have been allocated Feature and Program IDs, the
`programmer 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(cid:173)
`tor the Licensing System, which computer maintains a
`database of previously assigned IDs.
`
`[0052] Method of Assigning Target-IDs
`
`[0053] 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
`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(cid:173)
`tives of the invention can still be achieved by rendering the
`installed password non-copyable using conventional copy(cid:173)
`protection techniques. Thus, the purpose of the next para(cid:173)
`graph is to demonstrate that adequately unique IDs can be
`generated in a variety of existing and anticipatable situations
`using currently-available technology.
`
`[0054] Those with ordinary skill in the art will recognize
`that many ID-Target devices possess unique identifiers
`which can be accessed by the Programmer's Program and
`used as the basis for target-IDs. For example, many com(cid:173)
`puters, printers, hard disks, and CD-ROM disks have soft(cid:173)
`ware-accessible serial numbers. Of those devices which do
`not have serial numbers, many have software-assessable
`characteristics (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 retrofitting a
`computer with a unique serial number, and these too could
`be used to generate target-IDs on computers which were
`so-equipped.
`
`[0055] Other kinds of ID-targets, such as the voice of the
`User can be characterized using existing pattern-recognition
`technologies to generate a user-specific target-ID which is
`"fuzzy enough" to recognize the user under varying condi(cid:173)
`tions, but specific enough to reject other Users.
`
`[0048] 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.
`
`[0056]
`In this paragraph we disclose a software-based
`method we have developed to retrofit Target-IDs with write(cid:173)
`able non-volatile storage devices (such as computer hard
`drives or programmable read