Uniloc USA. Inc v. Microsoft Corp., 2010-1035

Decision Date04 January 2011
Docket NumberNo. 2010-1035,No. 2010-1055,2010-1035,2010-1055
PartiesUNILOC USA, INC. and UNILOC SINGAPORE PRIVATE LIMITED, Plaintiffs-Appellants, v. MICROSOFT CORPORATION, Defendant-Cross Appellant.
CourtUnited States Courts of Appeals. United States Court of Appeals for the Federal Circuit

Appeal from the United States District Court for the District of Rhode Island in Case No. 03-CV-0440, Judge William E. Smith.

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 Frank E. Scherkenbach, Fish and Richardson P.C., 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 Limited (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-infringement and no willful infringement of asserted claims of Uniloc's U.S. Patent No. 5, 490, 216 ("'216 patent"), and, in the alternative, granting a new trial on infringement and willfulness. Uniloc USA, Inc. v. Microsoft Corp., 640 F. Supp. 2d 150 (D.R.I. Sept. 29, 2009) ("Uniloc II"). 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 of invalidity of the '216 patent. Id. at 179-83.

Because the jury's verdict on infringement was supported by substantial evidence, this court reverses the 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 supported by substantial evidence, this court affirms the district court's grant of JMOL of no willfulness; the district court's alternative grant of a new trial for willfulnessis thus rendered moot. Because the jury's damages award was fundamentally tainted by the use of a legally inadequate 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.

I. 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 registration 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 algorithm on the user's computer (a "local licensee unique ID generating means") combines the inputted information into "a registration number unique to an intending licensee" (a "local licensee unique ID"). '216 patent, Abstract. The user information is also sent to the vendor's system, which performs the identical algorithm (a "remote licensee 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 and remote licensee unique IDs. If they match, the program enters into "use mode." If they do not match, the program enters into "demo mode," wherein certain features are disabled. Figure 8 from the '216 patent shows the fifth preferred embodiment:

'216 patent, Fig. 8.

Uniloc asserts only independent claim 19:

19. A remote registration station incorporating remote licensee unique ID generat-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 generating 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 licensee unique ID generating means has matched a licensee unique ID generated by said remote licensee unique ID generating means; and wherein said remote licensee unique ID generating means comprises software executed on a platform which includes the algorithm utilized by said local licensee unique ID generating means to produce said licensee unique ID.

'216 patent, col. 15 l.21-col. 16 l.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 receipt of Microsoft's retail software program, the user must enter a 25-character alphanumeric product key contained within the packaging of Microsoft's retail products. If the Key is valid, the user is asked to agree to the End User License Agreement ("EULA"), by which the licensor-licensee relationship is initiated.

At about this time, the software creates a Product ID ("PID") and a Hardware ID ("HWID") on the user's computer. The PID is formed from the combination of the Product Key, information from the software CD, and a 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 startups 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, which 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 algorithm ("MD5") for Office products and the SHA-1 secure hash algorithm ("SHA-1") 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, and 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/animation/Uniloc.2010-1035.Animation.pdf. The first frame is explained below.

First, A, B, C, and D are 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 D are 0, 1, 1, respectively, F(0, 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./P.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-addition, is used throughout the MD5 algorithm.

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" (according to Microsoft) or "left shifted" (according to Uniloc); the shift is depicted by the green box with the three arrows in the diagram. Because the actual functionality is not disputed, we will refer to it as "circular shifting" for the purposes of this opinion. Inserting into the shifter the binary number 0100 10112(which is the binary equivalent 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 unit shift. If the number is again shifted (or if the original shift was by 2 places), the output becomes 0010 1101 (which is the binary equivalent of 45). Because a single 8bit 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 becomes 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...

To continue reading

Request your trial
1 cases
  • Ericsson, Inc. v. D-Link Sys., Inc.
    • United States
    • United States Courts of Appeals. United States Court of Appeals for the Federal Circuit
    • December 4, 2014
    ...for the jury’ ” and “make a patentee's proffered damages amount appear modest by comparison” (quoting Uniloc USA, Inc. v. Microsoft Corp., 632 F.3d 1292, 1320 (Fed.Cir.2011) )). Thus, where the entire value of a machine as a marketable article is “properly and legally attributable to the pa......

VLEX uses login cookies to provide you with a better browsing experience. If you click on 'Accept' or continue browsing this site we consider that you accept our cookie policy. ACCEPT