`
`JAN 11 7":')
`
`UNILOC USA, INC. AND UNILOC SINGAPORE
`PRIVATE LIMITED,
`Plaintiffs-Appellants,
`v.
`MICROSOFT CORPORATION,
`Defendant-Cross Appellant.
`
`2010-1035, -1055
`
`Appeal from the United States District Court for the
`District of Rhode Island in Case No. 03-CV-0440, Judge
`William E. Smith.
`
`Decided: January 4,2011
`
`DONALD R. DUNNER, Finnegan, Henderson, Farabow,
`Garrett and Dunner, LLP, of Washington, DC, argued for
`plaintiff-appellant. With him on the brief were DON O.
`BURLEY; ERIK R. PUKNYS and AARON J. CAPRON, of Palo
`Alto, California. Of counsel on the brief were PAUL J.
`HAYES and DEAN G. BOSTOCK, Mintz, Levin, Cohn, Ferris,
`Glovsky & Popeo PC, of Boston, Massachusetts
`
`Petitioners Ex. 1005 Page 1
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 2 of 59 PageID #: 8799
`
`UNILOC USA v. MICROSOFT
`
`2
`
`FRANK E. SCHERKENBACH, Fish and Richardson p.e.,
`of Boston, Massachusetts, argued for defendant-cross
`appellant. With him on the brief were KURT L.
`GLITZENSTEIN;
`JOHN W. THORNBURGH, of San Diego,
`California and LAURA R. BRADEN, of Washington, DC.
`
`Before RADER, Chief Judge, LINN and MOORE, Circuit
`Judges.
`
`LINN, Circuit Judge.
`Uniloc USA, Inc. and Uniloc Singapore Private Lim(cid:173)
`ited (collectively, "Uniloc") appeal from the decision of the
`United States District Court for the District of Rhode
`Island granting Microsoft Corporation's
`(''Microsoft'')
`motion for judgment as a matter of law ("JMOL") of non(cid:173)
`infringement of asserted
`infringement and no willful
`claims of Uniloc's U.S. Patent No. 5,490,216 ('''216 pat(cid:173)
`in the alternative, granting a new trial on
`ent"), and,
`infringement and willfulness. Uniloc USA, Inc. v. Micro(cid:173)
`soft Corp., 640 F. Supp. 2d 150 (D.R.I. Sept. 29, 2009)
`("Uniloc Ir'). Uniloc also appeals the district court's
`alternative grant of a new trial on damages. Microsoft
`cross-appeals the district court's denial of its motion for
`JMOL ofinvalidity of the '216 patent. Id. at 179-83.
`Because the jury's verdict on infringement was sup(cid:173)
`this court reverses the
`ported by substantial evidence,
`district court's grant of JMOL of non-infringement; this
`court also reverses the district court's alternative grant of
`a new trial on infringement as an abuse of discretion.
`Because the jury's verdict on willfulness was not sup(cid:173)
`this court affirms the
`ported by substantial evidence,
`district court's grant of JMOL of no willfulness; the dis(cid:173)
`trict court's alternative grant of a new trial for willfulness
`
`Petitioners Ex. 1005 Page 2
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 3 of 59 PageID #: 8800
`
`3
`
`UNILOC USA v. MICROSOFT
`
`is thus rendered moot. Because the jury's damages award
`was fundamentally tainted by the use of a legally inade(cid:173)
`quate methodology, this court affirms the grant of a new
`trial on damages. Finally, because the district court did
`not abuse its discretion in determining that the jury
`verdict of no invalidity of the '216 patent was supported
`by substantial evidence, we affirm the district court's
`denial of Microsoft's motion for JMOL of invalidity.
`
`1. BACKGROUND
`
`Commercial software manufacturers like Microsoft
`lose significant sales as a result of the "casual copying" of
`software, where users install copies of a software program
`on multiple computers in violation of applicable software
`license conditions. Uniloc's '216 patent was an early
`attempt to combat such software piracy. There is no
`dispute as to the actual functioning of Uniloc's patented
`invention and Microsoft's accused products. The following
`background information is taken from the district court's
`opinion. Uniloc II, 640 F. Supp. 2d 150.
`A. The '216 Patent
`
`Uniloc's '216 patent is directed to a software registra(cid:173)
`tion system to deter copying of software. The system
`allows the software to run without restrictions (in "use
`mode") only if the system determines that the software
`installation is legitimate. A representative embodiment
`functions as follows. First, a user intending to use the
`software in "use mode" enters certain user information
`when prompted, which may include a software serial
`number and/or name and address information. An algo(cid:173)
`rithm on the user's computer (a "local licensee unique ID
`generating means") combines the inputted information
`into "a registration number unique to an intending licen(cid:173)
`see" (a "local licensee unique ID").
`'216 patent, Abstract.
`The user information is also sent to the vendor's system,
`
`Petitioners Ex. 1005 Page 3
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 4 of 59 PageID #: 8801
`
`UNILOC USA v. MICROSOFT
`
`4
`
`,
`I
`,
`
`totAL UCOISEE LOC:ATIDJI
`,
`I
`ImJlIW. .'
`...... ~ c.RI'
`
`which performs the identical algorithm (a "remote licen(cid:173)
`see unique ID generating means") to create a "remote
`licensee unique ID" for the user. When the application
`boots again, a "mode switching means" compares the local
`If they match, the pro(cid:173)
`and remote licensee unique IDs.
`If they do not match, the
`gram enters into "use mode."
`program enters into "demo mode," wherein certain fea(cid:173)
`tures are disabled. Figure 8 from the '216 patent shows
`the fifth preferred embodiment:
`r-------------,
`i·1 &;J·.mJ Ii
`. ,
`,
`I
`I
`
`.
`
`-,
`
`I
`
`,
`~
`
`I
`
`,II,I
`
`_
`
`,I,,IL
`
`.,
`
`fI
`
`II
`
`'216 patent, Fig. 8.
`Uniloc asserts only independent claim 19:
`19. A remote registration station incorpo(cid:173)
`rating remote licensee unique ID generat-
`
`Petitioners Ex. 1005 Page 4
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 5 of 59 PageID #: 8802
`
`5
`
`UNILOC USA v. MICROSOFT
`
`ing means, said station forming part of a
`registration system for licensing execution
`of digital data in a use mode, said digital
`data executable on a platform, said system
`including local licensee unique ID generat(cid:173)
`ing means, said system further including
`mode switching means operable on said
`platform which permits use of said digital
`data in said use mode on said platform
`only if a licensee unique ID generated by
`said local liceI:lsee unique ill generating
`means has matched a licensee unique ID
`generated by said remote licensee unique
`ID generating means; and wherein said
`ID generating
`licensee unique
`remote
`means comprises software executed on a
`the algorithm
`platform which includes
`utilized by said local licensee unique ID
`generating means to produce said licensee
`unique ID.
`'216 patent, col. 15 1.21 - col. 161.9 (emphasis added).
`B. The Accused Product
`The accused product is Microsoft's Product Activation
`feature that acts as a gatekeeper to Microsoft's Word XP,
`Word 2003, and Windows XP software programs. Upon
`the user
`receipt of Microsoft's retail software program,
`must enter a 25-character alphanumeric product key
`retail
`contained within the packaging of Microsoft's
`products. If the Key is valid, the user is asked to agree to
`the End User License Agreement (UEULA"), by which the
`licensor-licensee relationship is initiated.
`At about this time, the software creates a Product ID
`(UPID") and a Hardware ID (UHWID") on the user's com(cid:173)
`puter. The PID is formed from the combination of the
`
`Petitioners Ex. 1005 Page 5
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 6 of 59 PageID #: 8803
`
`UNILOC USA v. MICROSOFT
`
`6
`
`information from the software CD, and a
`Product Key,
`random number from the user's computer. The HWID is
`generated from information about the user's computer.
`The user may use the software without initiating Product
`Activation, but such use is temporally limited (50 start(cid:173)
`ups of Office and 30 days use of Windows until basic
`functions like saving and printing are deactivated) and
`functionally limited (no updates can be downloaded and
`installed). If the user elects to initiate Product Activation,
`the software sends a digital license request to Microsoft
`over the internet, wh!ch includes: the PID,
`the HWID,
`and additional activation information. At Microsoft's
`remote location,
`this information is entered into one of
`two software algorithms: the MD5 message digest algo(cid:173)
`rithm (''MD5'') for Office products and the SHA-1 secure
`hash algorithm ("SHA-l") for Windows products. 1
`The functionality of the MD5 and SHA-1 algorithms is
`at the heart of this case. As the district court noted,
`Microsoft's expert, Dr. Wallach, provided a demonstrative
`animation, which gives a clear, detailed, an<;l uncontested
`explanation of the functionality of these algorithms. The
`animation and the explanation of it given by Dr. Wallach
`at the trial (Trial Tr. 157:21-166:3, Mar. 31, 2009) may be
`downloaded at http://oralarguments.cafc.uscourts.gov/ani
`mationIUniloc.2010-1035.Animation.pdf. The first frame
`is explained below.
`
`1 As discussed in the animation referred to, in(cid:173)
`fra, the only differences between MD5 and SHA-1 are the
`added logical operation group and shifting step in SHA-l.
`Throughout this litigation, the two algorithms have been
`treated as functionally identical for infringement pur(cid:173)
`poses. For ease of presentation, this opinion discusses
`only the MD5 algorithm, but it is uncontested that the
`same analysis applies to both.
`
`Petitioners Ex. 1005 Page 6
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 7 of 59 PageID #: 8804
`
`7
`
`UNILOC USA v. MICROSOFT
`
`First, A, B, C, and Dare 32-bit numbers and F, G, H,
`and I are logical operations into which the numbers B, C,
`and
`D
`are
`entered.
`For
`example,
`F(x, y, z) = (x AND y) OR «NOT x) AND z). Thus, if B, C,
`and Dare 0, 1, 1, respectively, F(O, 1, 1) = 1. The result is
`that three 32-bit numbers are compressed into a single
`32-bit number.
`Second,
`the resulting number is added to A using
`modular addition. Modular addition is a way of adding
`that resets the count of a sum after a certain threshold
`number is reached. The most familiar example is the
`American A.M.lP.M. clock system. If a three hour movie
`begins at 11:00 A.M., it will end at 2:00 P.M. This is an
`example of mod12 addition: one first adds 11+3=14 then
`subtracts 12 to get 2. Modular addition, or modulo(cid:173)
`addition, is used throughout the MD5 algorithm.
`
`Petitioners Ex. 1005 Page 7
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 8 of 59 PageID #: 8805
`
`UNILOCUSA v. MICROSOFT
`
`8
`
`Third, M1, the first component of the source message
`being hashed, is modulo-added to the result from step 2.
`Fourth, additive constant Ki is modulo-added to the
`result from step 3.
`Fifth, the resulting number is "circular shifted" (ac(cid:173)
`cording to Microsoft) or "left shifted" (according to Dniloc);
`the shift is depicted by the green box with the three
`arrows in th~ diagram. Because the actual functionality
`is not disputed, we will refer to it as "circular shifting" for
`the purposes of this opprion. Inserting into the shifter the
`binary number 0100 1011 2 (which is the binary equiva(cid:173)
`lent of 75), and shifting it by 1 place would yield 1001
`0110 (which is the binary equivalent of 150). The result
`of this operation is a multiplication by two for each single
`If the number is again shifted (or if the origi(cid:173)
`unit shift.
`nal shift was by 2 places), the output becomes 0010 1101
`(which is the binary equivalent of 45). Because a single 8(cid:173)
`bit string cannot represent numbers larger than 255
`(1111 1111), such numbers are represented in mod255;
`thus the 300 expected from multiplying 150 by 2, becomes
`45 in mod255 (300-255).
`Sixth, the resulting number is then modulo-added to
`initial value B, which final number becomes the new
`value B'.
`Initial value C becomes new value D', D be(cid:173)
`comes A', and A becomes B'. The hashing algorithm is
`then run again using these new values (A', B', C', D') in
`place of the old (A, B, C, D) and the second component of
`the message (M2) in place of the first (M1). After sixteen
`rounds of this, a different logical function, G(x, y, z) is
`used, and the same message string is input in a different
`
`For demonstration purposes, we use an 8-bit
`2
`number, though the MD5 algorithm uses a 32-bit number.
`Four of the characters are italicized to demonstrate the
`effect of the circular shifter.
`
`Petitioners Ex. 1005 Page 8
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 9 of 59 PageID #: 8806
`
`9
`
`UNILOC USA v. MICROSOFT
`
`order. The function G is used for sixteen rounds, followed
`by sixteen rounds of function H and sixteen rounds of
`function I. The end result is a "license digest," i.e. "a
`shortened fixed·bit output," Uniloc II, 640 F. Supp. 2d at
`157, derived from the original message.
`Microsoft encrypts this digest, and sends it along with
`the original data back to the user's computer. The soft(cid:173)
`ware on the user's computer decrypts the message and
`It then inputs the original
`recovers the "license digest."
`the PID, HWID, and additional activation in(cid:173)
`data (i.e.
`formation) and enters it into the same MD5 or SHA-1
`algorithm used by Microsoft's computers, resulting in a
`local "license digest." Microsoft's Product Activation
`software compares the local license digest and the remote
`is
`the software product
`if they match,
`license digest;
`the software returns to pre(cid:173)
`If they do not,
`activated.
`Product Activation mode.
`C. Procedural History
`In the first iteration of this case, the district court is(cid:173)
`sued a claim construction ruling, construing several terms
`that are relevant to the instant appeal. Uniloc USA, Inc.
`v. Microsoft Corp., 447 F. Supp. 2d 177 (D.R.I. 2006)
`("Uniloc I Claim Construction"). These appear below.
`
`Petitioners Ex. 1005 Page 9
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 10 of 59 PageID #: 8807
`
`UNIWC USA v. MICROSOFT
`
`10
`
`"Licensee unique
`ID"
`"Local licensee
`unique ID generat-
`ing means" and
`"Remote licensee
`unique ID generat-
`ing means"
`"Use mode"
`
`''Mode switching
`means"
`
`"Registration
`system"
`
`"A unique identifier associated with
`a licensee." Id. at 183.
`Means plus function. "Function: to
`generate a local or remote licensee
`unique ID" and "Structure: a sum-
`mation algorithm or a summer and
`equivalents thereof." Id. at 190.
`
`"A mode that allows full use of the
`digital data or software in accor-
`dance with the license." Id. at 196.
`Means plus function. "Function: to
`permit the digital data or software
`to run in a use mode if the locally
`generated licensee unique ID
`matches with the remotely gener-
`ated licensee unique ID." and
`"Structure: program code which
`performs a comparison of two
`numbers or a comparator and
`equivalents thereof." Id. at 198
`(synonyms in the claim construction
`not relevant to the claim at issue
`are removed for simplicity).
`"A system that allows digital data
`or software to run in a use mode on
`a platform if and only if an appro-
`priate licensing procedure has been
`followed." Id. at 202.
`
`The district court granted summary judgment of non(cid:173)
`infringement, Uniloc USA, Inc. v. Microsoft Corp., No. 03(cid:173)
`440 (D.R.I. Oct. 19, 2007), concluding that the algorithm
`used at Microsoft's remote station to generate a licensee
`
`Petitioners Ex. 1005 Page 10
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 11 of 59 PageID #: 8808
`
`11
`
`UNILOC USA v. MICROSOFT
`
`unique ID was not identical to the algorithm used on the
`user's local station as required by the last limitation in
`the claim. Id. at 24.
`.
`On appeal, this court reversed and remanded the find(cid:173)
`ing of non-infringement, holding that Uniloc had put forth
`"extensive and by no means conclusory" evidence that
`Microsoft's Product Activation used the same algorithm at
`the local and remote sites (respectively, the "local licensee
`unique ID generating means" and "remote licensee unique
`ID generating means"), and that the issue of whether the
`accused products met this limitation should have gone to
`the jury. Uniloc USA, Inc. v. Microsoft Corp., 290 Fed.
`App'x 337, 343 (Fed. Cir.
`2008)
`(non-precedential)
`(" Uniloc I').
`In that appeal, Microsoft presented several
`alternative grounds for affirmance,
`including several
`arguments centered around the lack of any information in
`that is "uniquely associated with the person" that results
`in a "licensee unique ID." Br. of Microsoft Corp. at 37-53,
`Uniloc I (Mar. 19, 2008). This court held that "the licen(cid:173)
`see unique ID does not require personal
`information
`about the user," so long as it is "unique," and not "based
`solely on platform-related user information." Uniloc I,
`290 Fed. App'x at 342-43. We explicitly noted that the
`specification of the '216 patent "leave[s] open the possibil(cid:173)
`ity that vendor-provided information,
`like Microsoft's
`Product Key, could be the basis for a 'licensee unique ID.'"
`Id. at 344. Microsoft also argued that Product Activation
`lacked a "licensee unique ID generating means." This
`court summarily rejected that argument, noting that "[w]e
`have considered these arguments
`[for affirmance on
`alternative grounds] and conclude they are without
`merit." Id. at 342.
`On remand, the district court first rejected several in
`limine motions, including a motion by Microsoft to exclude
`any testimony by Uniloc's damages expert, Dr. Gemini,
`
`Petitioners Ex. 1005 Page 11
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 12 of 59 PageID #: 8809
`
`UNILOC USA v. MICROSOFT
`
`12
`
`under Daubert v. Merrell Dow Pharmaceuticals, Inc., 509
`U.S. 589 (1993) and Federal Rule of Evidence 702, for his
`use of an allegedly arbitrary baseline rate of $10-per(cid:173)
`activation, and the use of a 25 percent rule of thumb.
`Uniloc USA, Inc. v. Microsoft Corp., 632 F. Supp. 2d 147,
`150-51 (D.R.I. Mar. 16, 2009) ("In Limine"). After a full
`trial, the jury returned a verdict of infringement and no
`invalidity of claim 19 of the '216 patent, and found Micro(cid:173)
`soft's infringement to be willful. The jury awarded Uniloc
`$388 million in damages. In post trial motions, Microsoft
`asked for: (1) JMOL of invalidity due to anticipation and
`obviousness; (2) JMOL of non-infringement of the "licen(cid:173)
`see unique ID generating means" and "registration sys(cid:173)
`tem"l"mode switching means" limitations; (3) JMOL of
`non-infringement because Microsoft could not have di(cid:173)
`rectly infringed the system because claim 19 requires acts
`to be taken on the user's local computer over which Micro(cid:173)
`soft has no control; (4) JMOL of no willfulness; (5) a new
`trial on damages for the improper use of the 25% rule of
`thumb and the entire market value rule; and (6) in the
`alternative, a new trial on infringement and· willfulness.
`in a comprehensive and well(cid:173)
`The district court,
`reasoned opinion, denied JMOL of invalidity, granted
`JMOL of non-infringement on the basis of both contested
`claim limitations, granted JMOL of no willfulness,
`granted a new trial on damages on the improper use of
`the entire market value rule, rejected Microsoft's argu(cid:173)
`ments regarding the 25 percent rule of thumb as having
`been previously decided, Uniloc II, 640 F. Supp. 2d at 184
`and n.42, and granted in the alternative a new trial on
`infringement and willfulness.
`The district court also
`considered and rejected Microsoft's contentions that it
`could not directly infringe the asserted claims.
`The
`details of the district court's opinion are discussed more
`fully below.
`
`Petitioners Ex. 1005 Page 12
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 13 of 59 PageID #: 8810
`
`13
`
`UNILOC USA v. MICROSOFT
`
`Uniloc appeals all but the denial of JMOL of invalid(cid:173)
`ity, which Microsoft cross-appeals. We have jurisdiction
`under 28 U.S.C. § 1295(a)(1).
`II. DISCUSSION
`
`A. Infringement
`
`To prove infringement, the plaintiff bears the burden
`of proof to show the presence of every element or its
`equivalent in the accused device. Lemelson v. United
`States, 752 F.2d 1538, 1551 (Fed. Cir. 1985). The under(cid:173)
`lying infringement issue is a question of fact reviewed for
`substantial evidence. Finisar Corp. v. DirecTV Group,
`Inc., 523 F.3d 1323, 1332 (Fed. Cir. 2008).
`This court's review of a district court's grant of JMOL
`Union Carbide
`is governed by regional circuit
`law.
`Chems. & Plastics Tech. Corp. v. Shell Oil Co., 425 F.3d
`1366, 1372 (Fed. Cir. 2005). The First Circuit reviews a
`district court's denial of JMOL after a jury verdict de
`novo, asking whether "the evidence points so strongly and
`overwhelmingly in favor of the moving party that no
`reasonable jury could have returned a verdict adverse to
`that party." Keisling v. Ser-Jobs for Progress, Inc., 19
`F.3d 755, 759-60 (1st Cir. 1994). This court may not
`evaluate "the credibility of witnesses, resolve conflicts in
`testimony, or evaluate the weight of the evidence," but
`must view the evidence in the light most favorable to
`Uniloc. Gibson v. City of Cranston, 37 F.3d 731, 735 (1st
`Cir. 1994).
`Microsoft argues that because there is no dispute
`about how the accused products work,
`infringement
`should be reviewed de novo. Br. of Microsoft Corp. at 18,
`22-23 (citing Athletic Alts., Inc. v. Prince Mfg., Inc., 73
`F.3d 1573, 1578 (Fed. Cir. 1996) ("Where, as here, the
`parties do not dispute any relevant facts regarding the
`
`Petitioners Ex. 1005 Page 13
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 14 of 59 PageID #: 8811
`
`UNILOC USA v. MICROSOFT
`
`14
`
`accused product but disagree over which of two possible
`meanings of Claim 1 is the proper one, the question of
`literal infringement collapses to one of claim construction,
`and should thus be reviewed de novo.") and General Mills,
`Inc. v. Hunt-Wesson, Inc., 103 F.3d 978, 983 (Fed. Cir.
`It is well-settled that infringement is a
`1997) (similar)).
`reviewed for substantial evidence. E.g.
`factual
`issue,
`Finjan, Inc. v. Secure Computing, Corp., 2010 U.S. App.
`LEXIS 23216 (Fed. Cir. Nov. 4, 2010); Connell v. Sears,
`Roebuck & Co., 722 F.2d 1542, 1546 (Fed. Cir. 1983). The
`cases cited by Microsoft involve a procedural posture not
`present in this case. As this court noted in International
`Rectifier Corp. v. IXYS Corp., 361 F.3d 1363, 1374 (Fed.
`the infringement issue in General Mills col(cid:173)
`Cir. 2004),
`lapsed into claim construction because "the parties agreed
`with each other and the district court about how each of
`two competing claim constructions would apply to the
`undisputed structure of the accused invention." In other
`words,
`the parties conceded that under one claim con(cid:173)
`struction there was infringement and under the other
`there was none, and were arguing only over which claim
`construction was appropriate. The infringement issue in
`Althetic Alternatives also came to this court with the same
`posture. See 73 F.3d at 1581 ("We conclude that Claim 1
`of the '097 patent includes the limitation that the splay(cid:173)
`creating string end offset distance take on at least three
`i.e., a minimum, a maximum, and at least one
`values,
`intermediate value. We thus affirm the district court's
`conclusion that Claim 1 does not literally read on the
`Vortex racket."). As discussed below, this case presents
`the opposite procedural posture;
`the claim construction
`itself is not contested, but the application of that claim
`construction to the accused device is. Thus, this court
`applies the traditional rule for review of jury verdicts of
`factual issues discussed above.
`
`Petitioners Ex. 1005 Page 14
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 15 of 59 PageID #: 8812
`
`15
`
`UNILOC USA v. MICROSOFT
`
`This case presents three primary infringement issues:
`1) whether the accused products contain "licensee unique
`ID generating means"; 2) whether the accused products
`contain a "registration system" with a "mode switching
`means" that precludes full use of the software unless the
`outputs of the local and remote algorithms match; and 3)
`whether Microsoft can be liable for direct infringement
`when it has no control over the user's computer.
`1. "Licensee Unique ID Generating Means"
`
`The '216 patent specification describes the licensee
`unique ID generating means as an algorithm that func(cid:173)
`tions by "combin[ing] by addition the serial number 50
`with the software product name 64 and customer infor(cid:173)
`mation 65 and previous user identification 22 to provide
`registration number 66." Id. col. llil. 53-56. The district
`court's construction of "licensee unique ID generating
`means" is undisputed on appeal: it is a means plus func(cid:173)
`tion claim, with the function being "to generate a local or
`remote licensee unique ID" and the structure being "a
`summation algorithm or a summer and equivalents
`thereof." Uniloc I Claim Construction, 447 F. Supp. 2d at
`190.
`The district court determined that no reasonable jury
`could find that the accused products were summation
`algorithms, and granted JMOL of non-infringement. The
`district court gave seven reasons for its decision: (1) the
`"circular shifting and mixing functions fundamentally
`create a more secure result compared to an algorithm
`based in summation as the specification discloses," Uniloc
`II, 640 F. Supp. 2d at 170; (2) summation is reversible and
`id.
`MD5 is irreversible and much more complicated,
`(citing Business Objects, S.A. u. Microstrategy, Inc., 393
`F.3d 1366, 1370 (Fed. Cir. 2005»; (3) "MD5 achieves its
`function in a wayan algorithm based in summation could
`
`Petitioners Ex. 1005 Page 15
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 16 of 59 PageID #: 8813
`
`UNILOC USA v. MICROSOFT
`
`16
`
`not," id.;
`(4) the '216 patent contained only a narrow
`structural disclosure that is not entitled to a broad scope,
`id. at 171; (5) the documentary evidence presented by
`Uniloc did not show what "the complex hashes in this case
`actually do, and whether that is equivalent to the 'by
`addition' structure Uniloc disclosed," id. at 172; (6) Uniloc
`did not put forth expert opinion interpreting the docu(cid:173)
`ments, except
`for Klausner's presentation of "factual
`information under the guise of opinion," id. at 172 and
`n.25 (citing Centricut, LLC v. Esab Grp., Inc., 390 F.3d
`1361, 1369-70 (Fed. Cir. 2004), but noting that that case
`is "not a perfect fit"); and (7) "[t]he jury 'lacked a grasp of
`the issues before it,'" id. at 173 (citing Tex. Instruments
`Inc. v. Cypress Semiconductor Corp., 90 F.3d 1558, 1570
`(Fed. Cir. 1996» because it "ignored Dr. Wallach's admit(cid:173)
`tedly complex explanation and embraced Mr. Klausner's"
`"incomplete, oversimplified and frankly inappropriate
`explanation," id. at 170 n.21.
`Uniloc argues that a reasonable jury could have con(cid:173)
`cluded that MD5 and SHA1 were summation algorithms
`within the meaning of the '216 patent, and that
`the
`district
`court
`erred
`in
`granting
`JMOL of
`non(cid:173)
`infringement. The jury heard two sets of evidence in
`favor of Uniloc's contention that MD5 and SHA1 were
`summation algorithms.
`First, Dr. Klausner, Uniloc's
`expert, testified that MD5 makes a digest of the message
`it receives
`by doing addition and multiplication in a
`It
`series of rounds over and over again.
`takes a piece of the input, adds and shifts
`it, takes another piece of the input, adds
`It does a number of other
`and shifts it.
`operations, what are called logical opera(cid:173)
`tions in mathematics. But the essence is
`it eventually adds each of the results of
`
`Petitioners Ex. 1005 Page 16
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 17 of 59 PageID #: 8814
`
`17
`
`UNILOC USA v. MICROSOFT
`
`these piece-wise operations into a bucket
`or a hash, and that hash becomes the out(cid:173)
`put of the algorithm.
`He also testified that MD5 uses "two primary kinds of
`operations to do its work. One is addition, summing; and
`the other is what we call left shifting
`[which is] actu-
`[which] is noth-
`ally nothing more than multiplication
`ing more than addition done over and over again."
`Klausner then identified the source code that was the
`basis of his understanding that MD5 performed addition,
`noting that "I'm not saying that that's all that MD5 does,
`but that's a significant portion of the MD5 algorithm."
`the jury saw documentary evidence identifying
`Second,
`MD5 as, or equating it to, a summation algorithm. For
`example, in Microsoft's Windows Protocols Master Glos(cid:173)
`sary, one entry reads "checksum: A value that is the
`summation of a byte stream. By comparing the check(cid:173)
`sums computed from a data item at two different times,
`one can quickly assess whether the data items are identi(cid:173)
`caL" That same document equates "hashes" and "check(cid:173)
`sums," and notes that "[w]ell-known hash algorithms for
`computer hashes include MD4, MD5, and SHAl." Other
`Microsoft documents also refer to the outcome of the MD5
`algorithm as a "checksum."
`See Kenneth Pfeil, Data
`Security and Data Availability in the Administrative
`Microsoft
`TechNet,
`Authority,
`available
`at
`http://technet.microsoft.comlen-usllibrary/cc722918.aspx
`("Hashing. Hashing is also referred to as MD5 check(cid:173)
`sum.").
`See also Windows Driver Kit: Network Devices
`and Protocols: NDIS_TASKJPSEC, MSDN, updated
`http://msdn.microsoft.comlen(cid:173)
`document
`available
`at
`usllibrary/ff558990.aspx ("MD5 Set by a miniport driver
`to indicate that its NIe can use the keyed MD5 algorithm
`for computing and/or validating a cryptographic checksum
`for an AH payload and/or ESP payload.").
`In addition,
`
`Petitioners Ex. 1005 Page 17
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 18 of 59 PageID #: 8815
`
`UNILOC USA v. MICROSOFT
`
`18
`
`Uniloc relied on U.S. Patent No. 6,263,432 ("'432 patent"),
`which, in describing the procedure for generating a secure
`e-ticket, includes the following step:
`In this example, each of the four fields in
`the 'eticket' framework 302 and user ex(cid:173)
`tension 304 include data represented by
`the number'!' in step S1. The message
`DigestJHash is represented by a summa(cid:173)
`tion (E) algorithm (equated to, or exem(cid:173)
`plary of,
`the MD5 protocol or other
`hashing algorithm). Hence,
`to calculate
`the Message DigestlHash, a summation
`algorithm is implemented using all eight
`fields of data in step 2.
`'432 patent col: 9ll.50-57.
`Uniloc also argues that the district court improperly
`narrowed the claim construction on JMOL from "summa(cid:173)
`tion algorithm" to a "simple combination of inputs by
`addition," Uniloc, 640 F. Supp. 2d at 17.0, which was
`improper under Hewlett-Packard Co. v. Mustek 8ys., Inc.,
`340 F.3d 1314, 1320 (Fed. Cir. 2003).
`Microsoft counters with three arguments.
`First,
`Uniloc's interpretation of "summation algorithm" would
`be so broad as to cover any algorithm with a plus sign,
`and would be akin to adopting the rejected claim con(cid:173)
`struction of licensee unique ID generating means as
`simply "an algorithm." Microsoft argues that such a
`broad reading is inconsistent with the patent, which
`disclosed only the specific structure where "the algorithm,
`in this embodiment, combines by addition," '216 patent,
`col. 11 11.53-56. Second, Microsoft notes that its expert,
`Dr. Wallach, established that the algorithms as a whole
`are not "summation algorithm[s]" because neither circular
`shifting nor the logical operations of MD5 and SRAI are
`
`Petitioners Ex. 1005 Page 18
`
`
`
`Case 1:03-cv-00440-WY-DLM Document 443 Filed 01/11/11 Page 19 of 59 PageID #: 8816
`
`19
`
`UNILOC USA v. MICROSOFT
`
`addition-based, and that his testimony was unrebutted,
`because the district court prevented Uniloc's expert, Dr.
`Klausner, from opining that MD5 and SHA1 were sum(cid:173)
`mation algorithms within the scope of claim 19 of the '216
`patent. Finally, Microsoft contrasts the purpose of MD5
`and SHA1-to irreversibly scramble the data so that the
`inputs cannot be derived-with the purpose of the sum(cid:173)
`mation algorithms in the '216 patent, to put data together
`by addition.
`As this court held in Uniloc l, 290 Fed. App'x at 342,
`there was substantial evidence for a jury to conclude that
`the output of the MD5 and SHA1 algorithms was a licen(cid:173)
`see unique ID. Thus, both MD5 and the summation
`algorithm in the '216 patent perform the same function of
`It is also undisputed
`generating a licensee unique ID.
`that MD5 and SHA1 use some addition to perform this
`function. Uniloc II, 640 F. Supp. 2d at 168. Thus, the
`issue is whether the additional structural components of
`MD5 and SHAI preclude a reasonable jury from finding
`that
`they are "summation algorithm[s]."
`This court
`agrees with Uniloc that they do not.
`First, the breadth of claim 19 is not as narrow as Mi(cid:173)
`crosoft argues and the district court concluded. "The
`literal scope of a properly construed means-plus-function
`limitation does not extend to all means for performing a
`certain function. Rather,
`the scope of such claim lan(cid:173)
`guage is sharply limi