Uniloc USA, Inc. et al v. NATIONAL INSTRUMENTS CORP. et al

Filing 265

Responsive CLAIM CONSTRUCTION BRIEF filed by FileMaker, Inc., Pervasive Software, Inc., Symantec Corp.. (Attachments: # 1 Exhibit 1 - '216 patent, # 2 Exhibit 2 - PTO Amendment, # 3 Exhibit 3 - Reply to PTO, # 4 Exhibit 4 - Response to PTO, # 5 Exhibit 5 - PTO Notice of Reexam, # 6 Exhibit 6 - PTO Dec of Pooch, # 7 Exhibit 7 - PTO Interview Summary, # 8 Exhibit 8 - PTO Dec of Rosenblatt)(Jones, Michael)

Download PDF
DEFENDANTS’ RESPONSIVE BRIEF ON CLAIM CONSTRUCTION EXHIBIT 8 IN THE UNITED STATES PATENT AND TRADEMARK OFFICE In re reexam of: U.S. Patent 5,490,216 to Confirmation No.: 2214 RICHARDSON, ill Art Unit: 3992 Reexam Control No.: 901010,831 Examiner: HENEGHAN, Matthew E. Filed: January 22, 2010 Atty. Docket: 2914.001REXO For: System for Software Registration Declaration of William R. Rosenblatt Under 37 C.F.R. § 1.132 Mail Stop Ex Parte Reexam Commissioner for Patents PO Box 1450 Alexandria, VA 22313-1450 Sir: 1, William R. Rosenblatt, declare as follows: Retention: 1. I have been retained as a technical expert witness on behalf of Uniloc USA, Inc. and Uniloc Singapore Private Limited (collectively "UniIoc" herein) for the above-captioned reexamination. I understand that this reexamina60n involves U.S. Patent No. 5,490,216 ("the '216 patent") which resulted from Application No. 081124,718, filed on September 21, 1993 on behalf of Frederic B. Richardson, ill I further understand that the '216 patent i currently assigned to Uniloc Singapore Private Limited. Introduction: 2. Over the past seven year I have been retained as a technical expert witness in nine cases and have testified in that capacity in Federal Court. UNI076163 -9- RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/010,83] Analysis of Claim lOver HeUman in View of Grundy: 34. Claim 1 of the '216 patent stands rejected on grounds of obviousness over Hellman in view of Grundy. Claim 1 recites local and remote "licensee unique ID" generation by the same algorithm on botb local and remote systems. 35. The Office action asserts that ''Hellman discloses several algorithms for local licensee unique ID and remote licensee unique ID generation" and then relies on Grundy to supply an algorithm for unique ID generation, noting that "it would be obvious to one of ordinary skill in the art at the time the invention was made to modify Hellman to use Grundy's checksum for ID generation, because it is easier to implement" than the summer disclosed in the '216 patent. (,216 Office action, p. 7). Neither Hellman Nor Grundy Teach a Local or Remote Licensee Unique ID 36. To form an opinion on the above assertion in the Office action, first I consider whether either Hellman or Grundy teaches the generation of "licensee unique ID" (hereinafter "LUID") in any form. My opinion is that they do not. In support of the rejection, the '2]6 Office action cite to Hellman at 10:14-18, which refers to the "base unit" in Hellman's Figure 7, and equates that to the "local platfonn" in the '216 patent. The Examiner also cites to HeUman at 6:62-7:2, which refers to the "authorization and billing unit" in Hellman's Figure 2, and equates that to the "remote platform" in the '216 patent. 37. My showing that Hellman in combination with Grundy does not teach LUID generation follows three steps: First, I show that Hellman does not teach "licellsee ID generation." Second, I show that Hellman does not teach "ullique ID generation" (at Atty. Dkt. No. 2914.001 REXO UNI076171 - 10- either local or remote locations). RICHARDSON, ill Reexarn of Pat. No. 5,490,216 Reexam Control No.: 901010,831 Third, I show that Grundy does not cure the deficiencies of Hellman such that the resulting combination teaches local or remote LUIDs. First. regarding Hellman and "licensee ID generation": the process in 38. Hellman cited by the examiner above shows that the "check value C" (Hellman at 10: 17), which the Examiner equates to LUID, is generated from four inputs, designated as K, N, R, and H. Of these: K is a key to a cryptographic function, which is an indicium of the computer on which the software is intended to be run. N i the number of usages of the software requested by the user (see Hellman at 5:65-66); R is a random number (Hellman at 5:66); H is an indicium of the software package being authorized for use (Hellman at 6:31-35), which is computed by means of a hash function. A hash function produces a value that serves as a mathematical "shorthand" for some data that has properties described appropriately in Hellman at 6:38-61 , including that it is efficient to calculate and store. 39. None of these four inputs is an indicium of the licensee of the software, i.e., the user intending to run the software On the computer. Therefore Hellman does not teach "licensee ID generation." 40. I have reviewed Hellman' s sworn testimony at trial. It reinforces my conclusion. The following is an excerpt from examination of Hellman at trial: (Attorney] Question: If you wanted to indicate that information associated with the user, unique information was input into the cryptographic function, you certainly had the abjlity to disclose that in the figures, if you so chose. (HeUman] Answer: Correct. [Attorney] Question: And you didn't? [Hellman] Answer: Correct. Atty. Dkt. No. 2914.001REXO UNI076172 RICHARDSON, m Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/010,831 - 11 - [Attorney] Question: And you also had the ability to describe in the patent, if you so chose? [Hellman] Answer: In the specification? Yes. [Attorney] Question: And you didn't? [Hellman] Answer: Correct. (March 31, 2009 Trial Transcript: p. 61, II 17 - p. 62, II 4, Uniloc USA, Inc. et al. v. Microsoft Corp., c.A. No. 03440 (D.R.I.)) 41. Second, I show that Hellman does not teach "unique ID generation" at either local or remote locations. Three figures in Hellman depict the generation of the ID that is to be checked for validity: Figures 2, 6, and 7 (shown below). Figure 2 shows a Cryptographic Function with inputs SK, N, R, and H that is used on the base unit (equivalent to the local system in the '216 patent); its output is marked A and labeled 23. Figure 6 show a more complete picture of the base unit. Figure 7 shows a Cryptographic Function with inputs K, N, R, and H and output C, which is part of the authorization and billing unit (equivalent to remote system in the '216 patent). These have outputs designated A and C respectively. Because these are intended to be equal if the software is authorized to run, I use the designation C hereinafter to refer to either of the outputs. The Examiner equates C to the LUID in the '216 patent. NH 12 CRYPTO CHECK UNIT A 34 14 Atty. Dkt. No. 2914.001REXO UNI076173 RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 901010,831 - 12 - CRYPTOGRAPHIC AJ/tICTION c N,H COMPARATOR a. TO 36 SOFTWARE NAME A 42. Hellman does not teach that C is unique. Here are descriptions of C (or A) as disclosed in the patent specification: "Generator 23 bas the property that new authorizations cannot be inferred from old authorizations." (Hellman at 7:3-4 describing Figure 2.) This property is not the same thing as "authorizations must be unique." Authorizations need not be unique to satisfy this property, nor would a POSA infer uniqueness from tbjs property. 43. For Figure 6, Hellman refers the reader to the ensuing description of Figure 7 for a disclosure of the output of the Cryptographic Function: "In a manner to be described shortly. the cryptographic check unit 34 determines if the authorization A is valid for the software package 17 being presened to the base unit 12 for he current authorization request" (Hellman at 9:54-57) 44. For Figure 7, Hellman discloses: "FIG. 7 depicts an implementation of the cryptographic check unit 34. Signals representing K. N, Rand H are applied as inputs to a cryptographic function generator 38 which generates a check value C as an output signal." (Hellman at 10: 14-18) Atty. Dkt. No. 2914.00lREXO UNI076174 - 13 - 45. RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/010,831 These are the only disclosures in Hellman that describe any properties of C. None of them teach that C must be unique, nor would they suggest such teaching to a POSA. 46. Therefore Hellman does not teach "unique ID generation." 47. Because Hellman teaches neither "licensee ID generation" or "unique ID generation," Hellman does not teach local LUID generation, nor does Hellman teach remote LUID, and thus cannot by itself satisfy the "licensee unique ID generating means" element of claim 1 of the '216 patent. Neither HeUman Nor Grundy Disclose or Teach Any Means for Generating Unique IDs: 48. The Office action claims that the combination of Hellman with Grundy teaches "local or remote licensee unique ID generation." The Office action relies on Hellman to teach ID generation, and introduces Grundy in order to add Grundy's checksum algorithm for generating unique IDs. As I will show, Grundy's checksum algorithm does not do this; therefore Grundy does not cure the acknowledged deficiency in Hellman. In short, neither Hellman nor Grundy disclose or teach any "local or remote licensee unique ID generation." 49. In support, I will now show that Grundy does not supply an adequate algorithm for generating unique IDs. The Examiner cites to Grundy, including "the cbeckswn originally calculated ... from the owner data as entered by the user during the registration process" (See, Grundy 15: 11-13, figure citation omitted) and "a checksum of the user data" (See, Grundy 18:25-26). (,2]6 Office action p. 7.) Atty. Diet. No. 2914.001REXO UNI076175 - 14- 50. RICHARDSON, ill Reexarn of Pat. No. 5,490,216 Reexam Control No.: 901010,831 First, it is worth noting that the Order granting reexamination of the '21 6 patent characterizes checksums as non-unique: "Checksums are not unique fields, even if there [sic] are at least in part derived from unique data." (Order Granting/Denying Request for Ex Parte Reexamination, p. 9, emphasis added) 51. I concur with that characterization of checksums. A checksum is not usable as a generator of unique IDs. Grundy does not define "checksum" in the specification in the context of "a checksum of the user data," but rather suggests definitions elsewhere in his specification that are consistent with both dictionary definitions and a definition that a POSA would use, as I will now show. 52. A POSA would understand "checksum" to mean a small Dumber of check digit that are typically appended to data in order to ensure the data's integrity when it is copied, entered by a user, or transmitted. To calculate a checksum of some data, the data can be added up (e.g., broken up into C-byte chunks, where C is a small number such as 1,2,4, or 8, and summed); the sum is chopped to a fixed length (e.g., C bytes) and appended to the data before storage or transmission. Checksum algorithms used in practice are variations on this scheme. When the data is received or retrieved later, the checksum is re-calculated to ensure that the result is the same as the original checksum; if the result differs then the data must have been corrupted. 53. The Grundy patent was filed in April 1992 and issued in March 1994. Definitions of "checksum" from dktionaries of computer terms from that era concur with the POSA' definition that I have provided above. 54. For example: The Computer Glossary: The Complete Illustrated Desk Reference, 6th Edition, 1993 defines "checksum" as a "Value used to ensure data is Atty. Dkt. No. 2914.001REXO UNI076176 - IS - RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 901010,831 transmitted without error. It is created by adding the binary value of each alphanumeric character in a block of data and sending it with the data. At the receiving end, a new checksum is computed and matched against the transmitted checksum. A non-match indicates an error." 55. As another example, the IBM Dictionary of Computing, loth Edition, 1994 defines "checksum" as: "(1) The sum of a group of data associated with the group and used for checking purposes. (2) In error detection, a function of all bits in a block. If the written and calculated urns do not agree, an error is indicated. (3) On a diskette, data written in a sector for error detection pwposes; a calculated checksum that does not match the checksum of data written in the sector indicates a bad sector. The data are either numeric or other character strings regarded as numeric for the purposes of calculating the checksum." 56. In all of the e cases, a checksum is much smaller in length than its input data. For example, a 16-bit (2-byte) or 64-bit (8-byte) checkswn may be calculated on thousands, .millions, or billions of bytes of data.. This fulfills the checksum's intended purpose well, given that most errors in data storage or transmission are small and localized, making it highly likely that the resulting checksum will differ from the one originally calculated, and extremely unlikely that corrupted data will produce the same checksum as the original one. For example, if one or two bits are altered, the checksum will differ. 57. A few examples bighlight this point. Most credit card numbers contain check digits that serve to make sure that a credit card holder enters the number properly (e.g., on a website). The check digits are often calculated by means of an Atty. Okt. No. 2914.001REXO UNI076177 - 16 - RICHARDSON, III Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/0lD,831 algorithm called the Luhn algorithm, which is a type of checksum algorithm. Because it is a single digit (with values 0-9), it is clearly impossible for the check digit to be unique, given that most credit card numbers are 15 digits long (not counting the check digit) and 15 therefore that there are up to 10 or 1 quadrillion possible credit card numbers. 58. As another example, consider social security numbers, which are 9 digits long. Suppose we wanted to calculate the checksum of a social security number. We can use the most basic check um algorithm, in which all the digits in the input data are added and the re ult is the checksWll. All checksum algorithms in practical use are derived from this basic one. The social security numbers 123-45-6789 and 987-65-4321 are clearly different, but they both have the same checksum of 45; moreover, it is impossible to reconstruct (preserve the uniqueness of) the original social security number given the checksum. 59. As a final example, electronic devices often have memory chips in them that contain data stored at the factory. These are known as PROMs (Programmable Read-Only Memory). A typical PROM wm contain a checksum of 8 bytes in length, even though the capacity of the PROM may be in the thousands or millions of bytes, as illustrated in the diagram below. The data in the PROM can be added up byte by byte, and the lowest 8 bytes of the result can be used as the checksum. The checksum is used to ensure that the data in the PROM was copied correctly during manufacturing. It works welJ for that purpose, because errors are typically limited to a few bytes, which would result in a different checksum being calculated. However, many different sets of PROM data would lead to the same checksum, meaning that uniqueness of the data is not preserved. Atty. Dkt. No. 2914.001REXO UNI076178 - 17 - Data RICHARDSON, m Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/0lD,831 Checksum ---------------~---------------~~ l ~ ,-- I II 60. Grundy himself suggests the use of checksums as error-checking means in disclosures of checksums in his invention other than the "checksum of the user data" used to generate the code that the Office action alleges satisfies the LUID element of claims in the '216 patent Here are some examples: • "If there is a match, the anti-virus checksum as originally calculated during the Franking process retrieved from the central database is compared with the checksum of the host software product as calculated in the process of generating the registration code. If these two checksums do not match, it indicates that the host software product has in some way been deliberately or accidentally corrupted." (Grundy at 15:28-36, figure citations omitted, emphasis added.) • "If the user data validity check passes, a checksum of the user data is created. This checksum will be used during the Authorization process as a crossreference to validate the user data as communicated to the Manufacture Control Agency." (Grundy at 18:26-29, figure citations omitted, emphasis added.) • "A checksum is then calculated from the bits in the array and added to the packed bit array. This checksum will be used by the Manufacture Control Agency to avoid operator data-entry errors." (Grundy at 19:4-8, figure citations omitted, emphasis added.) Atty. Dkl. No. 29 14.001REXO UNI076179 - 18 - 61. RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/010,831 From the foregoing, Grundy understood well the use of checksums according to the POSA's and dictionary definitions described above; therefore one may assume that his understanding of checksums applies to all of the disclosures of that term in his patent, including the "checksum of the user data" as referred to above. 62. Grundy shows the input data to this checksum routine in Fig. 2, 212, ''ENTER NEW USER DETAU.S." This is "new user data, such as the user's name, address and telephone number" (Grundy at 12:37-38). Such data might take up roughly a hundred bytes of data. As indicated above, a checksum of this data would not preserve its uniqueness; many different sets of user data could produce the same checksum. 63. For the above reasons, a checksum cannot possibly preserve whatever uniqueness the input data may possess. In particular, a POSA would not ascribe any reasonable definition of "unique" to the output of a checksum routine. 64. Therefore the checksum as disclosed in Grundy cannot function as a generator of unique identifiers, which is a required characteristic of the claimed LUID. Grundy thus does not overcome the acknowledged deficiency in Hellman. 65. I therefore disagree with the factual conclusions stated in the Office action with respect to the teachings of HeUman and Grundy- neither of them teach or disclo e licensee unique ID generation. Extension of Arguments to Independent Claim 12: 66. A with claim 1, the '216 Office action also rejects claim 12 of the '216 patent on grounds of obviousness with respect to Hellman in view of Grundy. Claim 12 of the '216 patent recites a "registration system" to generate a "security key" Atty. Dkt. No. 2914.001REXO UNI076180 - 24- RICHARDSON, ill Reexam of Pat. No. 5,490,216 Reexam Control No.: 90/01 0,83 1 I hereby declare that all statements made herein of my own knowledge are true and that all statements made on information and belief are believed to be true; and further that these statements were made with the knowledge that willful false statements and the like so made are punishable by fine or imprisonment, or both, under Section 1001 of Title 18 of the United States Code, and that such willful false statements may jeopardize tbe validity of the '216 patent. Executed this 23rd day of November 2010 in New York, NY. Respectfully submitted, William R. Rosenblatt Atty. Dkt. No. 2914.001REXO UNI076186

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?