throbber
4,658,093
`(11) Patent Number:
`115)
`United States Patent
`
` Hellman [45] Date of Patent: Apr. 14, 1987
`
`
`[54] SOFTWARE DISTRIBUTION SYSTEM
`
`[76]
`
`[56]
`
`Inventor: Martin E. Hellman, 730 Alvarado
`Ct., Stanford, Calif. 94305
`
`man IEEE Transaction on Information Theory, vol. 22
`#6, 11/76.
`“Multiuser Cryptographic Techniques”, by Diffie and
`Hellman AFIPS-Conference Proceedings, vol. 45, pp.
`109-112, 6/8/76.
`. No.: 512,68
`Primary Examiner—Salvatore Cangialosi
`No
`[21] Appl.
`5
`Assistant Examiner—Aaron J. Lewis
`[22] Filed:
`Jul. 11, 1983
`Attorney, Agent, or Firm—Flehr, Hohbach, Test,
`
`[S50]. Inte OU ccassccctecaccacains HO4L 9/00=Allbritton & Herbert
`
`[52] WSs Cae sccctsssnsiascoassasnse onseeneecsnsscecns 380/25;ae [57]
`ABSTRACT
`[58] Field of Search ............... 178/22.08, 22.11, 22.09;
`Software (programs, videogames, music, movies, etc.)
`358/86
`can be authorized for use a given number oftimes by a
`base unit after which the base unit (computer, video-
`~ oe Mion record playensviteoreoeroct or “ee
`References Cited
`e manufac-
`isk player) cannot use that software un
`turer sends an authorization for additional uses to the
`U.S. PATENT DOCUMENTS
`
`3,798,605 3/1974 Feistel ...........s+sse 178/22.08—user’s base unit. Authorizations may be sent via tele-
`4,200,770 4/1980 Hellman etal. .
`~ 178/22.11
`phoneline, mail, or whatever form of communicationis
`
`4,218,582
`8/1980 Hellman etal. .
`. 178/22.11
`most suited to the application. Authorizations cannot be
`
`4,264,782
`°4/1981 Konheim .......
`+ 178/22.08
`reused, for example by recording the telephone authori-
`
`tena TEASE: RIVESOF Ble ecseneeecrrores Vesa)
`zation signal and replayingit to the base unit. Similarly,
`424,414
`1/1984 Hellman et al.
`wee 178/22.11
`oes
`‘i
`,
`
`$446,519 5/1984 Thomas secsesscssssccssssecsoone 178/22.08
`authorizations can be made base unit specific, so that an
`
`4,458,315
`7/1984 Uchemick
`erocscccsscsessensese 178/22.08
`authorization for one base unit cannotbe transferred to
`
`4,465,901
`8/1984 Best .scsccsesssssesscsssesssneeesnnes 178/22.08
`another base unit. This invention also solves the “soft-
`4,567,512
`1/1986 Abraham veces. 358/86
`Ware piracy problem” and allows telephone sales of
`ftw
`additional benefits.
`OTHER PUBLICATIONS
`software as
`acieionar
`sens
`“New Directions in Cryptography”, by Diffie and Hell-
`10 Claims, 11 Drawing Figures
`
`ONE Way
`HASH
`
`
`
`
`
`womens
`MEMORY
`
`CRYP
`oe
`|_M_,| UPDATE
`feet} UNIT ma UNIT
`|
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 1
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 1
`
`

`

`U.S. Patent Apr. 14, 1987
`
`Sheetl of4
`
`4,658,093
`
`AUTHORIZATION
`BILLING
`
`PUBLIC
`
`SER.NO.
`
`
`
`TABLE OF SER. NO'S
`TABLE OF
`
`
`AND SECRET KEYS
`SOFTWARE
`
`
`
`NAME
`
`
`
`SOFTWARE
`ONE WAY
`
`PACKAGE
`
`HASH
`
`FUNCTION
`
`UNIT
` SOFTWARE
`FOR LARGE
`
`CRYPTOGRAPHIC
`FUNCTION
`
`SOFTWARE
`
`MODIFIED
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 2
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 2
`
`

`

`U.S. Patent Apr. 14, 1987
`
`Sheet20f4
`
`4,658,093
`
`O (64 BITS)
`
`168 BITS
`
`OF KEY
`
`H (64 BITS)
`
`FIG_GA
`
`26
`
`‘«! MODIFIED
`
`SK
`
`
`
`TEMPORARY
`
`MEMORY SER. NO.
`
`PERM. MEM. NR
`
`SOFTWARE NAME
`
`
`27~.|SOFTWARE NAME SER. NO.
`USER
`IBILLING INFO
`BILLING INFO
`
`FIG_S
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 3
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 3
`
`

`

`U.S. Patent Apr. 14, 1987
`
`Sheet3 of4
`
`4,658,093
`
`
`SOFTWARE
`
`
`
`ONE WAY
`
`MEMORY
`HASH
`
` PERM.
`
`
`NON
`VOLATILE
`MEMORY
`
`
`CRYPTO
`CHECK
`UNIT
`
`CRYPTOGRAPHIC
`
`FUNCTION
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 4
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 4
`
`

`

`U.S. Patent Apr. 14, 1987
`
`Sheet4of4
`
`4,658,093
`
`SOFTWARE
`
`42
`
`eeway
`
`
`
`
`
`
`NON
`VOLITILE
`
`UPDATE
`UNIT
`MEMORY
`
`
`
`
`FIG_8
`
`PUBLIC KEY
`CRYPTO
`
`SYSTEM
`
`
`
` PUBLIC KEY
`
`CRYPTO
`SYSTEM
` A
`
`46
`
`H,R,N
`
`44
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 5
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 5
`
`

`

`1
`
`SOFTWARE DISTRIBUTION SYSTEM
`
`4,658,093
`
`The invention relates to a software distribution sys-
`tem and moreparticularly to a secure software distribu-
`tion system in which the numberofuses of software can
`be controlled.
`Control of software is a major problem in the record,
`movie (videotape and disk), computer, and videogame
`industries. In the record industry, illegal home and com-
`mercial taping of recordsis depriving artists, recording
`studios, and manufacturers of significant income which
`is rightfully due them. A similar problem exists with
`illegal taping of movies in the videotape and videodisk
`industries. So called “software piracy” is a major prob-
`lem in the computer and videogameindustry.
`Even if adequate control of software piracy were
`possible with prior art, so that software sold to one
`customercould not be copied and used by another cus-
`tomer, it would still be desirable to sell software on a
`per use basis. Such a system would allow a customer to
`sample software at low cost and only buy more uses of
`software which he found interesting or useful.
`Current methods of software control address primar-
`ily the first issue (piracy or copy protection), and even
`there, do not provide adequate protection against a
`dedicated adversary.
`Software copy protection does not currenty exist in
`the record industry.
`Videotaped movies are sometimes copy protected by
`degrading the horizontal or vertical synchronizing sig-
`nals slightly. A videorecorder requires a cleaner syn-
`chronizing signal than a TV receiver, so that the video-
`taped movie cannot be copied by another videore-
`corder,but will be displayed properly on a TV receiver.
`But, the videotape can still be copied by putting a spe-
`cial device between the two videorecorders which
`cleans up the synchronizing signal.
`Copyprotection has received greater attention in the
`computer software industry. One approach is to use a
`non standard disk format for recording the program of
`real interest. Standard copying programs can only read
`or write data in standard format, making copyingofthis
`program impossible. A short, machine language pro-
`gram,
`in standard format, is included as an auxiliary
`program on the disk. This machine language program
`tells the computer howto read the non standard format
`in which the program is recorded. While this approach
`prevents standard copy programs from copying the
`disk, an adversary can always makea bit for bit copy of
`the disk which will be executable by the computer.
`Another approach to copy protecting computer pro-
`grams is to put a small pin hole or other defect at a
`particular spot on the disk. The program being sold
`avoids using this ruined portion of the disk, but checks
`to make sure that that portion of the disk is, in fact,
`ruined.If it is ruined, the program continues its normal
`execution. If it is not ruined, then the program stops
`execution. Even a bit for bit copy of the program onto
`a new disk will not execute properly because there is
`hidden “information” on the disk (which part is ruined)
`which must be copied if the program is to execute prop-
`erly.
`An adversary can overcomethis copy protection by
`one of two methods. First, he can determine which
`portion of the disk is checked and makesureit is ruined
`on the copy. Or, he can delete the part of the program
`which checks for the ruined portion of the disk. This
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`60
`
`65
`
`2
`produces a slightly shorter program which does every-
`thing ofvalue to the user that the original program did,
`but this new version of the program can be copied with-
`out any special effort and used on all other base units
`without further modification to the program or the
`other base unit.
`The second problem (pay per use or allowing a cus-
`tomer to preview software before purchasing it) is a
`moredifficult one. It is remotely related to the practice,
`in the photographic industry, of giving a customer
`“proofs” of his pictures. The proofs are of poor quality
`or fade with time, thus allowing the customer to pre-
`view his purchase.
`At least one software manufacturer uses a related
`approach to software sales. The manufacturer provides
`each customer for its program with two versions: the
`regular version is in a sealed enevelope, and a “‘de-
`graded”version, which only allow up to 30 records per
`file. Within a 30 day trial period, the manufactureral-
`lows the customer to return the regular version in its
`sealed envelope for a refund. This way, the customer
`can experiment with the degraded version to determine
`if he wants the full package.
`However, there is no copy protection, so that one
`dishonest customer can make as may copies as he wants
`of the regular version and give or sell them to acquaint-
`ances with similar base units (computers). These ac-
`quaintances can in turn give orsell generation copies to
`their acquaintances, etc.
`It would also be desirble for the customer to experi-
`ment with the full version of the program because cer-
`tain characteristics of the program can ony be deter-
`mined with large data bases with more than 30 records.
`Another method for allowing users to preview soft-
`ware is a system called “‘crypt lock”. As an example, a
`customer might buy a degraded version of a data base
`management program for a small sum which is limited
`to a smal] number ofrecordsperfile.
`If, after using the degraded software, the buyer de-
`cides he wants to buy the complete program hecalls the
`manufacturer, gives the serial numberof his disk and a
`credit card number, receives an authorization code
`from the manufacturer, and uses this code to “unlock”
`the full power of the software. The full version of the
`-program is really contained on the “degraded”disk, but
`parts ofit are not accessible until certain instructions are
`changed. This change is made once the right authoriza-
`tion code is entered.
`This approach suffers from the same drawbacks as
`the approach described immediately beforehand: Once
`the program has been “unlocked” it can be copied at
`will and the customer can only preview a degraded
`version of the program.
`The prior art in cryptography which is relevant to
`this application is described in Diffie and Hellman’s
`tutorial paper “Privacy and Authentication: An Intro-
`duction to Cryptography”, Proceedings of the IEEE,
`November 1979. The prior art describes one-way func-
`tions and cryptographic functions of the type needed as
`components of the present software control system.
`For completeness,three prior art cryptographic func-
`tions required to carry out the present invention are
`described: conventional cryptographic functions or
`systems, One-way functions, and public key cryptosys-
`tems.
`A conventional cryptographic function or system can
`be described by an enciphering and a deciphering func-
`tion. The enciphering function E(K,P)=C operates on
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 6
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 6
`
`

`

`4,658,093
`
`25
`
`35
`
`40
`
`45
`
`20
`
`3
`4
`a plaintext (unscrambled message) P with a key K to
`The recipient of a message M' whichis purported to
`produce ciphertext (scrambled message) C. The deci-
`be signed by the signature SIG’ must verify the signa-
`phering function D(K,C)=P operates on the ciphertext
`ture. To verify that SIG’ is the correct signature for
`C thus produced with key K to reproduce the plaintext
`message M’, the recipient needs only the public key and
`P. Both E(K,P) and D(K,C)are easily implemented and
`not the secret key. Otherwise, he would be able to sign
`easily computed.
`messages as well as authenticate them.
`Such a conventional cryptographic system implicitly
`The recipient operates on the received signature SIG’
`defines a third function T(P,C)=K which computes K
`with PK to obtian H'=PK(SIG’). Therecipient also
`from knowledge of P and C. T(P,C) is the function a
`operates on M’ with the one-way hash function H to
`cryptanalyst must implement and compute when he has
`obtain a check value C=H(M’). If and only if H’=C
`some matched plaintext and ciphertext. T(P,C) must
`does he acceptthe signature as valid. (Since PK and SK
`therefore be difficult to compute—ideally taking mil-
`effect inverse operations, if the received message M’
`lions of years to compute with any imaginablecircuitry.
`equals the original message M andif the signature SIG’
`An example of such a conventional cryptographic
`was properly generated as SK H(M) then H’=PK
`system is the Data Encryption Standard or DES,de-
`SIG'=H(M)andCalso will equal H(M).)
`scribed in Federal Information Processing Standard
`Herein, the term “crytpographic function” is used to
`Publication (FIPS PUB) 46 and available from the Na-
`mean a function that can be implemented either as a
`tional Technical Information Service, 5285 Port Royal
`conventional
`cryptographic
`function, E(K,P) or
`Road, Sprngfield, VA 22161.
`D(K,C), or as a public key cryptographic function,
`A one-way function is a function which is easy to
`PK(SIG) or SK(H(M)).
`compute in the forward direction, but hard to compute
`Accordingly, it is an objective of the invention to
`in the reverse direction. Thatis, if Y=f(X) is a one-way
`allow a software manufacturerto control the numberof
`function then given any X it is easy to compute the
`times a piece of software is used by a customer, in a
`corresponding Y, taking typically a fraction of a second
`mannersuch that the authorization cannot be recorded
`on a small computer. But given any Y it is extremely
`and reused, and such that the authorization is not trans-
`difficult
`to find the corresponding X, ideally taking
`ferable to another base unit.
`millions of years on the most powerful computer imag-
`Another objective of the invention is to allow the use
`inable.
`of software to be sold over the telephone or other simi-
`A method for deriving a one-way function from a
`lar communication channels, but in a way which pre-
`conventional cryptographic system is described in sec-
`vents recording of the software or authorization signal
`tion V of Diffie and Hellman’s paper, “New Directions
`sent over the channel from being reused on that custom-
`in Cryptography”, IEEE Transactions on Cryptogra-
`er’s or another customer’s base unit.
`phy, vol. IT-22, November 1976 (see, especially FIG. 3
`Another objective of the invention is to prevent
`therein): A conventional cryptographic enciphering
`“software piracy.” That is the illegal use of software on
`function E(K,P) is used to obtain Y as Y=E(X,PO),
`a base unit which has not paid a license fee.
`where PO is some fixed, publicly known plaintext
`An illustrated embodiment of the present invention
`value. That is, the input X to the one-way function is
`describes a method and apparatus in which use of the
`used as the key, PO is used as the plaintext, and the
`software can be authorized for a particular base unit a
`output Y from the one-way function is taken as the
`specific number of times. The illustrated embodiment
`computed ciphertext. Computing Y from X merely
`differs from prior approaches to software controlin that
`involves an enciphermentandis therefore a simple com-
`no modification to the software will allow the software
`putation. But computing X from Y involves cryptanaly-
`to be used on all other base units, and in that the soft-
`sis because X=T(PO,Y) and is therefore difficult to
`ware can be used only a specific number of times even
`compute.
`on the licensed base unit.
`A one-way function can be expansionary (i.e., Y is
`In the present invention, a manufacturer of base units
`longer than X), compressive, or neither, depending on
`and software generates a random key andstores it in a
`the relative sizes of the ciphertext (Y) and key (X). For
`base unit whichis sold to a user. When wishing to use a
`purposes of this invention, we are primarily concerned
`certain software package, the user’s base unit generates
`with one-way compressive functions, where X is much
`a random number and communicates it to the manufac-
`longer than Y. Typical values herein will be a 100,000
`turer of the software. The software manufacturer gener-
`bit length for X and a 100 bit length for Y. A method for
`ates an authenticator which is a cryptographic function
`generating such an extremely compressive one-way
`of the base unit’s key, the software, the numberof times
`function is described in the patent.
`use of the software is authorized, and the random num-
`Compressive functions are also called “hash func-
`tions” and a one-way compressive functionis therefore
`ber generated by the base unit. The authenticator is
`communicated to the user’s base unit. The user’s base
`called a one-way hash function.
`unit then uses the same cryptogaphic function to gener-
`The third and last cryptographic entity we shall de-
`ate a check value of the key, the software, the number
`scribe from the priorart is a public key cryptosystem. A
`of times use is authorized, and the random number
`public key cryptosystem differs from a conventional
`cryptographic system in that two different keys are
`which the base unit generated. If the check value and
`the authenticator agree, the base unit accepis the au-
`used. One of these keysis a public key PK and the other
`thenticator as valid and increments the number of times
`is a secret key SK.
`use of that software is authorized.
`For purposes of this invention, the public key cryp-
`tosystem is used in digital signature mode so that the
`Additional objects and features of the present inven-
`secret key is used first to obtain the digital signature
`tion will appear from the description that follows
`SIG from the message M bythe operation SIG=SK H
`wherein the preferred embodiments have been set forth
`(M), where H is a one-way hash function of the mes-
`in detail in conjunction with the accompanying draw-
`sage.
`ings in which:
`
`55
`
`65
`
`PMCExhibit 2083
`Apple v. PM
`IPR2016-0075
`Page
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 7
`
`

`

`4,658,093
`
`30
`
`35
`
`45
`
`20
`
`6
`5
`TIONis a credit car numberor similar meansforbilling
`FIG. 1 is a block diagram of a pay per use software
`the user for use of the software.
`control system.
`Authorization and billing unit 13 receives the signal
`FIG. 2 is a block diagram of an authorization and
`representing the user originated request for software
`billing unit for generating an authorization for addi-
`use, generates a signal representing an authorizaiton A
`tional software use in the pay per use software control
`for that particular base unit 12 to use the software pack-
`system of FIG.1.
`age 17 an additional N times, and communicates the
`FIG. 3 is a block diagram of a one-way hash function
`signal representing authorization A to base unit 12.
`for performing one-way hashing operations in the au-
`Base unit 12 receives the signal representing authori-
`thorization and billing unit of FIG. 2, in the base unit
`zation A over insecure channel 11. As will be explained
`during verification of authorization of FIG. 6, and in
`shortly in FIG. 6, base unit 12 then checks whether the
`the base unit during use of software of FIG.8.
`authorization is from the software manufacturerand, if
`FIG.3Ais a block diagram of a DES modified for the
`the authorization is correct, base unit 12 updates its
`large key used in FIG. 3.
`memory to allow N additional uses of software package
`FIG.4 is a block diagram of a cryptographic function
`17.
`used for generating authorizations in the authorization
`FIG. 2 depicts an implementation of authorization
`and billing unit of FIG. 2 and in the cyrptographic
`and billing unit 13. Authorization and billing unit 13
`checking unit of FIG.7.
`contains a memory 18 having a table of serial numbers
`FIG.5 is a block diagram ofa base unit during gener-
`and secret keys which allows authorization andbilling
`ation of a request for additional software uses in the pay
`unit 13 to determine a base unit’s secret key, SK, from
`per use software control system of FIG. 1.
`knowledge of the base unit’s public serial number. Au-
`FIG.6 is a block diagram of a base unit during verif-
`thorization and billing unit 13 also contains in another
`ciation of authorization of additional software uses in a
`portion of the memory orin an additional memory 19 a
`pay per use software control system of FIG.1.
`table of software whichallows authorization andbilling
`FIG. 7 is a block diagram of a cryptographic check-
`unit 13 to determine the complete contents of software
`ing unit in a base unit during verification of authoriza-
`package 17 from knowledgeof the much smaller infor-
`tion of additional software uses of FIG.6.
`mation SOFTWARE NAME.Thesoftware package
`FIG.8 is a block diagram ofa base unit during use of
`21 produced at the authorization and billing unit 13 is an
`software in a pay per use software contro] system of
`exact replica of software package 17 whichis available
`FIG.1.
`at base unit 12.
`FIG. 9 is a block diagram ofan alternative implemen-
`Software package 21 is applied as an input signal to
`tation of a cryptographic function used for generating
`one-wayhash function generator 22 to produce an out-
`authorizations in the authorization and billing unit of
`put signal H. This outputsignal H is used as an “abbre-
`FIG.2.
`viation” or name for describing the software package
`FIG. 10 is a block diagram of an alternative imple-
`21. To prevent an opponent from modifying one soft-
`mentation of a cryptographic checking unit in a base
`ware package so that it has the same abbreviation or
`unit during verification of authorization of additional
`name as another software package, one-way hash func-
`software uses of FIG.6.
`tion generator 22 has the following property: Its output
`Referring to FIG. 1, a pay per use software control
`signal, H, is easily commputed from its input signal,
`system is shown in which communication takes place
`software package21, but given an H valueitis difficult,
`over an insecure communication channel 11, for exam-
`taking perhaps millions of years, to compute any other
`ple a telephoneline. Communication is effected over the
`software package wich produces this same H value.
`insecure channel 11 between the base unit 12 and the
`This property is necessary because any two software
`authorization and billing unit 13 using transmitter-
`packages with the same H value are considered equiva-
`lent and therefore have the same authorization A. An
`receiver units 14 and 16, which may be modemssuch as
`Bell 201 modems. Transmit-receive units 14 and 16
`authorization to use the cheaper of two software pack-
`could be humans conversing over a telephoneline. The
`ages with the same H value could also be used as an
`human at the transmit-receive unit 16 would then type
`authorization to use the more expensive of the two. As
`the voice information into a keyboard for entry in the
`with any has function, the one-way has function genera-
`unit 13.
`tor 22 has a much shorter output, perhaps 100 bits, than
`The user at base unit 12 obtains software package 17
`its input, typically 10,000 to 1,000,000 bits in this inven-
`by purchasing it at a store, over telephoneline, or in
`tion. This allows H to be stored more economically than
`some similar manner. The cost for software package 17
`the software package 17 in the base unit’s memory.
`can be set low because additional revenue will be ob-
`Storage of H orof the complete software package 17is
`tained by the software manufacturer when issuing addi-
`desirable to increase the security of the system because
`tional authorizations for use of the software package.
`storage of only SOFTWARE NAME would allow a
`dishonest user to rename software packages and pay for
`Base unit 12 generates and communicates to authori-
`zation and billing unit 13 a signal representing a user
`uses of less expensive packages when really using more
`expensive ones. A method for implementing one-way
`originated request for software use. This request con-
`hash function generator 22 is depicted in FIG. 3, which
`sists of several parts SOFTWARE NAME, SERIAL
`will be explained shortly.
`NUMBER, N, R, and BILLING INFORMATION.
`Thesignal H whichis the output of the one-way hash
`SOFTWARE NAME isthe nameofthe software pack-
`function generator 22 is applied as one of four input
`age to be used. SERIAL NUMBERisaserial number,
`signals to cryptographic function generator 23 to pro-
`identification number, user name or similar identifier
`65
`duce a signal representing authorization A which is
`unique to base unit 12. N is the number of additional
`communicated to base unit 12 over channel 11. The
`uses of software requested. R is a random number,
`other three input signals to generator 23 are R and N
`counter value, or other non-repeating number gener-
`which were received over channel 11 from base unit 12
`ated by the base unit 12, And BILLING INFORMA-
`
`50
`
`55
`
`60
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 8
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 8
`
`

`

`4,658,093
`
`7
`and SK whichis obtained from authorization andbilling
`unit’s table of serial numbers and secret keys.
`Generator 23 has the property that new authoriza-
`tions cannot be inferred from old authorizations. More
`precisely, if cryptographic function generator 23 gener-
`ates a publicly known function and if an opponent has
`many authorizations 'A(i) which go with different se-
`cret keys ‘SK(i), hash values 'H(i), random numbers
`‘RG@), and numbers ‘N(i), so long as the secret keys
`"SK(i) are kept secret, it is difficult for an opponent to
`compute a new authorization A’ which goes with any
`SK’, N’, R', H’ for which an authorization has not al-
`ready been given. Methods and apparatus for imple-
`menting cryptographic functions with this property are
`depicted in FIG. 4 and FIG. 9, which will be explained
`shortly.
`FIG. 3 depicts an implementation of the one-way
`hash function generator 22. As explained by W.Diffie
`and M. Hellman in section V of their paper “New Di-
`rections in Cryptography” (IEEE Transactions on In-
`formation Theory, November 1976) a one-way function
`from a value X to a value Y can be generated from a
`conventional cryptographic system by fixing the plain-
`text at some value, for exampleall binary 0's, applying
`X to the key port, and taking Y as the ciphertext com-
`puted from this plaintext and key. Computing Y from X
`is computationally simple because only an encryptionis
`involved. But computing X from Y is equivalent to
`cryptanalysis, and is thus difficult if the cryptographic
`system is secure.
`In order to make the one-way hash function genera-
`tor 22 in this manner, one needs a cryptographic system
`with a much larger key, typically 10,000 to 1,000,000
`bits, than ciphertext, typically 100 bits in this invention.
`The Data Encryption Standard (DES), described in
`Federal Information Processing Standard 46, is typical
`of a conventional cryptographic system. While the
`DEShas a shorter key (56 bits) than ciphertext (64 bits),
`DES can easily be changed to a DES modified for a
`larger key which then has the desired property.
`FIG. 3A depicts the simplest way to implement a
`DES modified for a large key. In this figure, the plain-
`text P is enciphered four times with the normal DESto
`produce a ciphertext C. te four keys used are K1, K2,
`K3 and K1, so that one key, K1, is repeated. The three
`independent keys used have
`a
`total
`length of
`3X 56= 168 bits, but the plaintext and ciphertext lengths
`are unchangedat 64 bits. Hence the modified DES has
`a key length of 168 bits and a ciphertext of 64 bits.
`K1 is repeated to strengthen security. Ideally, each
`key would be repeated several times. The same basic
`DES circuitry can be used iteratively, rather than repli-
`cated, so that the cost of the circuitry shownin FIG. 3A
`need not be muchgreater than that for a basic DES.
`An alternative, and usually more efficient way of
`producing a DES modified for a large key would be to
`increase the number ofiterations or rounds in DES.
`Since 48 bits of key comeinto play in each DESitera-
`tion, a 1,000 iteration DES would use 48,000 bits of key
`yetstill have only a 64 bit ciphertext. For cryptographic
`security it is necessary that each bit of key be used
`several times, so at least a 3,000 round DES would be
`desirable for compressing 48,000 bits of software pack-
`age into 64 bits of hash value H. the ciphertext size of
`DESis also easily increased if, for example, a 100 bit
`hash value H is needed instead of a 64 bit value.
`While DES is used here for illustative purposes,
`many other methods and apparatus for generating a
`
`20
`
`25
`
`35
`
`45
`
`55
`
`60
`
`65
`
`8
`one-wayhash function are knownto exist. DES encryp-
`tion is very slow on a general purpose signal processor
`such as a microprocessor. Thus, if the signal processing
`in the base unit 12 or authorization andbilling unit 13is
`done primarily with a microprocessor then a one-way
`hash function generator 22 which is computed more
`rapidly on a microprocessor would be desirable. Since it
`is mostly DES’s mixing operation, a permutation or
`tranposition on 32 bits, which makes DES slow on a
`microprocessor, replacement of the mixing operation
`by one more suited to a microprocessor would be desir-
`able.
`One implemenation of the cryptographic function
`generator 23 of FIG. 2 would also involve a one-way
`hash function as depicted in FIG. 3, except H, R and N
`together, instead of the software package, would be the
`input to the one-way hash function and the authoriza-
`tion A, instead of H, would be the output. This imple-
`mentation would have the required property that new
`authorizations could not be predicted from the property
`that given an output valve,
`it is difficult to find the
`corresponding input value to the one-way function.
`FIG. 4 depicts an alternative implementation of the
`cryptographic function generator 23. A modified DES
`26 would have the secret key SK as inputto its key port
`and H, R and N would bethe inputto theplaintext port.
`The authorization A would be obtained as the output of
`the ciphertext port. The DES would have to be modi-
`fied,
`in the manner described above, to have its key
`length equal to the length of SK.
`length
`In addition,
`the modified DES’s plaintext
`would have to be equal to the total length of H, R and
`N andits ciphertext length would have to be equal to
`the length of A. Usually the plaintext and ciphertext are
`the same length, but for our purposes any portion of the
`ciphertext could serve as A. So if the length of A is
`shorter than the combined lengths of H, R and N then
`the modified DES 26 could have its plaintext and ci-
`phertext length equal to the combined lengths of H, R
`and N and the ciphertext could be truncated to generate
`A. Similarly, if the lengths of A is greater than the
`combined lengths of H, R and N then the plaintext and
`ciphertext length of modified DES 26 could be equal to
`the length of A and the plaintext could be padded out
`with binary 0’s to make the proper size input.
`This alternative implemenation would also inherently
`have the property that new authorizations could not be
`predicted from old authorizations because, in a conven-
`tional cryptographic system, given past plaintext-
`ciphertext pairs, it must be difficult to determine the
`plaintext which goes with a new ciphertext.
`For ease of understanding, the implementation of the
`base unit 12 is shown in three figures, corresponding to
`its three phases of operation: when a user generates a
`request for use of a software package; when the base
`unit verifies the validity of the received authorization;
`and when a user later uses the software package. Only
`those elements of the base unit 12 which are needed in
`a particular phase are shown in the corresponding fig-
`ure.
`
`FIG. 5 depicts the operation of the base unit 12 dur-
`ing generation of a request for software use. A user 27
`communicates
`signals
`representing SOFTWARE
`NAME, BILLING INFORMATIONand N,the num-
`ber of additional uses desired, to the base unit 12, for
`example by typing them into a keyboard whichis part
`of base unit. Base unit 12 stores these values in a tempo-
`rary memory 28, for example a RAM,so that they can
`
`PMC Exhibit 2083
`
`Apple v. PM
`IPR2016-00753
`Page 9
`
`PMC Exhibit 2083
`Apple v. PMC
`IPR2016-00753
`Page 9
`
`

`

`4,658,093
`
`25
`
`45
`
`50
`
`20
`
`10
`9
`software being used. Update unit 36 applies to interrog-
`be used later whenverifyingthe validity of the received
`authorization for additional software use. A random
`atory signal representing H to a non-volatile memory
`37, for example an EEPROM or a CMOS memory with
`number generator 29 (e.g. a noisy operational amplifier
`battery backup. The non-volatile memory 37 applies a
`with hard quantization) generates a signal representing
`signal to the update unit 36, said signal representing M,
`a random number R whichis also stored in temporary
`the numberof authorized uses of the software package
`memory 28 for later use during verification of the re-
`ceived authorization. The base unit’s serial numberis
`with hash value H which still remain unused prior to
`this new authorization. The update unit 36 adds M and
`stored in a permanent memory 3

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket