Opinion ID: 182125
Heading Depth: 3
Heading Rank: 1

Heading: Licensee Unique ID Generating Means

Text: The '216 patent specification describes the licensee unique ID generating means as an algorithm that functions by combin[ing] by addition the serial number 50 with the software product name 64 and customer information 65 and previous user identification 22 to provide registration number 66. Id. col. 11 ll.53-56. The district court's construction of licensee unique ID generating means is undisputed on appeal: it is a means plus function 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 MD5 is irreversible and much more complicated, id. (citing Business Objects, S.A. v. Microstrategy, Inc., 393 F.3d 1366, 1370 (Fed. Cir.2005)); (3) MD5 achieves its function in a way an algorithm based in summation could 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 documents, 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 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 admittedly 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 concluded that MD5 and SHA1 were summation algorithms within the meaning of the '216 patent, and that the district court erred in granting JMOL of noninfringement. 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 series of rounds over and over again. It takes a piece of the input, adds and shifts it, takes another piece of the input, adds and shifts it. It does a number of other operations, what are called logical operations in mathematics. But the essence is it eventually adds each of the results of these piece-wise operations into a bucket or a hash, and that hash becomes the output 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] actually nothing more than multiplication. . . [which] is nothing 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. Second, the jury saw documentary evidence identifying MD5 as, or equating it to, a summation algorithm. For example, in Microsoft's Windows Protocols Master Glossary, one entry reads checksum: A value that is the summation of a byte stream. By comparing the checksums computed from a data item at two different times, one can quickly assess whether the data items are identical. That same document equates hashes and checksums, and notes that [w]ell-known hash algorithms for computer hashes include MD4, MD5, and SHA1. 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 Authority, Microsoft TechNet, available at http://technet.microsoft.com/en-us/library/cc722918.aspx (Hashing. Hashing is also referred to as MD5 checksum.). See also Windows Driver Kit: Network Devices and Protocols: NDIS_TASK_IPSEC, MSDN, updated document available at http://msdn.microsoft.com/enus/library/ff558990.aspx (MD5 Set by a miniport driver to indicate that its NIC can use the keyed MD5 algorithm for computing and/or validating a cryptographic checksum for an AH payload and/or ESP payload.). In addition, 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 extension 304 include data represented by the number '1' in step S1. The message Digest/Hash is represented by a summation (Σ) algorithm (equated to, or exemplary of, the MD5 protocol or other hashing algorithm). Hence, to calculate the Message Digest/Hash, a summation algorithm is implemented using all eight fields of data in step 2. '432 patent col. 9 ll.50-57. Uniloc also argues that the district court improperly narrowed the claim construction on JMOL from summation algorithm to a simple combination of inputs by addition, Uniloc, 640 F.Supp.2d at 170, which was improper under Hewlett-Packard Co. v. Mustek Sys., 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 construction 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 ll.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 SHA1 are 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 summation 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 summation algorithms in the '216 patent, to put data together by addition. As this court held in Uniloc I, 290 Fed.Appx. at 342, there was substantial evidence for a jury to conclude that the output of the MD5 and SHA1 algorithms was a licensee unique ID. Thus, both MD5 and the summation algorithm in the '216 patent perform the same function of generating a licensee unique ID. It is also undisputed 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 SHA1 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 Microsoft 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 language is sharply limited to the structure disclosed in the specification and its equivalents. J & M Corp. v. Harley-Davidson, Inc., 269 F.3d 1360, 1367 (Fed.Cir.2001). Nevertheless, in determining equivalence under § 112 ¶ 6, the range of permissible equivalents depends upon the extent and nature of the invention. IMS Tech., Inc. v. Haas Automation, Inc., 206 F.3d 1422, 1436 (Fed.Cir. 2000) (citing Tex. Instruments, Inc. v. ITC, 805 F.2d 1558, 1563 (Fed.Cir.1986)). More particularly, when in a claimed `means' limitation the disclosed physical structure is of little or no importance to the claimed invention, there may be a broader range of equivalent structures than if the physical characteristics of the structure are critical in performing the claimed function in the context of the claimed invention. Id. The structural disclosure in the '216 patent is not limited to simple addition in the colloquial sense of adding numbers together and nothing more. In the sixth embodiment, from which the summation structure was derived, the algorithm combines by addition the serial number 50 with the software product name 64 and customer information 65 and previous user identification 22 to provide registration number. '216 patent col. 11 ll.54-57. This combination by addition necessarily incorporates an initial step of converting the information into a common format to be added, which requires more than simple addition. Moreover, there is no indication that the summation structure was critical to the '216 patent's licensee unique ID generating means algorithm's function of generating a licensee unique ID. In fact, the '216 patent repeatedly refers to the licensee unique ID generating means by the generic phrase, an algorithm, e.g. '216 patent col.2 ll.65-66, and makes clear that the importance of the algorithm is only that it be adapted to generate a registration number which is unique to an intending licensee. Id. col.2 ll.66-67. It may well be that the structural disclosure of the licensee unique ID generating means limitation is minimal because of the relative unimportance of the particular structure of that element. This does not, as Microsoft argues, result in pure functional claiming, nor expand the claim construction to Uniloc's proposed and rejected one of an algorithm. Declining to limit the construction to simple addition does not also extend the claims to any algorithm that includes a plus sign; the construction retains its explicit limitation that the algorithm used be fairly capable of categorization as a summation algorithm. Second, a jury could reasonably determine that MD5 and SHA1 were not as radically different from the summation algorithm disclosed in the '216 as Microsoft and the district court determined them to be. Klausner testified that the essence of MD5 is that it adds each of the results of [the logical operations and shifts] into a bucket or hash, and that addition is one of the two primary kinds of operations [that MD5 performs], and the second is left shifting, which he equated to multiplication, which he testified is nothing more than addition done over and over again. To be sure, Microsoft's Dr. Wallach disagreed with Klausner's testimony, choosing to focus on the logical functions, which he called the heart and soul that makes MD5 what it is, and the circular shifter, both of which he opined were not summation. However, Microsoft has not explained why all the steps of an algorithm must be summation steps in order for the algorithm to qualify as a summation algorithm. The jury could reasonably have believed that MD5 is a summation algorithm. As this court noted in IMS Tech., though two structures arguably would not be considered equivalent structures in other contexts, e.g., if performing functions other than the claimed function, they may nevertheless be equivalent under § 112 ¶ 6 when performing the same function. 206 F.3d at 1436. Here, the claimed function is the generation of a licensee unique ID, see infra section I.C, and if as Klausner testified, MD5 uses addition to perform this function, the enhanced functionality of MD5 in making the output more secure should not prevent it from being considered an equivalent structure. Microsoft's argument that because MD5 is irreversible it cannot be a summation algorithmsuch that even if you know the output of the algorithm, it is impossible even to guess any one input that would create the output, Br. of Microsoft at 21is likewise unconvincing, because the same is true of the most basic simple addition algorithm (e.g., it is impossible to identify the two numbers whose sum is 23). Third, the district court improperly rejected Klausner's testimony as incomplete, oversimplified and frankly inappropriate, justifying its rejection by Klausner's failure to discuss hashing, summation, or left-shifting in his expert report, and his analogizing of an MD5 digest to a Reader's Digest book. Uniloc II, 640 F.Supp.2d at 170 n. 21. In common with the other circuits, First Circuit law does not allow the district court in a jury trial to evaluate the credibility of witnesses, resolve conflicts in testimony, or evaluate the weight of the evidence. Gibson, 37 F.3d at 735. Under Daubert, the district court must exercise its gatekeeper function in ensuring that scientific testimony is relevant and reliable. Kumho Tire Co. v. Carmichael, 526 U.S. 137, 137, 119 S.Ct. 1167, 143 L.Ed.2d 238 (1999) (discussing Daubert v. Merrell Dow Pharm., Inc., 509 U.S. 579, 589, 113 S.Ct. 2786, 125 L.Ed.2d 469 (1993)). Here, the district court explicitly noted that Klausner was qualified. Uniloc II, 640 F.Supp.2d at 172 n. 25. It is decidedly the jury's role to evaluate the weight to be given to the testimony of dueling qualified experts. i4i Ltd. P'ship v. Microsoft Corp., 598 F.3d 831, 856 (Fed.Cir.2010), cert. granted, 562 U.S. ____, 131 S.Ct. 647, 178 L.Ed.2d 476 (2010) ([I]t is not the district court's role under Daubert to evaluate the correctness of facts underlying an expert's testimony.). The district court's criticism of Klausner's use of the analogy of a digest to a reader's digest is also improper, because Microsoft did not object at trial and has used the same analogy in describing the output of SHA1 as a hash digest, where digest indicates a shortened size, similar to Reader's Digest condensed books. Klausner's testimony was certainly a simplification of the functioning of MD5, but neither the district court nor Microsoft demonstrate why it was oversimplified, Uniloc II, 640 F.Supp.2d at 171 n. 21, or even why it was inaccurate. Klausner recognized that summation was not all that MD5 did, but opined that it was a significant portion of the MD5 algorithm. Finally, Microsoft's attacks on the documentary evidence presented by Uniloc are unwarranted. In particular, the contemporaneous Microsoft documents that define the output of MD5 as a checksum, or cryptographic checksum, or indicate that MD5 is indicative of a summation algorithm, '432 patent col. 9 ll.50-57, help to associate the MD5 procedure within the reasonable bounds of the word summation. It is reasonable to consider MD5 a summation algorithm where those skilled in the art refer to its output as a hash sum  or an MD5 sum. Dr. Wallach had the opportunity to respond at trial. For example, in discussing Microsoft's Tech-Net document, which included an entry, Hashing. Hashing is also referred to as MD5 checksum, Dr. Wallach and Uniloc's attorney engaged in the following colloquy: Q. Thank you. And so, then, apparently, you disagree that it would be fair to say that athat an MD5 is a checksum? A. MD5 is a cryptographic checksum. It's a specialized kind of checksum. Q. No, no, I didn't ask that question. A. Yes, you did. Q. I said would you agree that it would be fair to refer to the MD5 as just a checksum, as specifically done in Microsoft's document here? A. Computer scientists would call MD5 a cryptographic checksum to distinguish it from other kinds of checksums. Microsoft has failed to show why a reasonable jury could not have rejected this distinction. Moreover, the district court's response to these documents is puzzling. The district court acknowledged that [s]ome of these documents no doubt say that MD5 and SHA-1 are a type of hash, or checksum, but noted that the documents did not show what the complex hashes in this case actually do, Uniloc II, 640 F.Supp.2d at 172. However, MD5 and SHA-1 are the complex hashes in this case. For the above reasons, this court concludes that a reasonable jury could rely on Klausner's testimony and the documentary evidence to conclude that MD5 and SHA1 were summation algorithm[s] as that phrase is used in the context of the '216 patent.