Patent ID: 7783046

Claim:
A method of recovering a key used to produce a cyphertext-plaintext pair, the method comprising: (a) loading at least a portion of a probabilistic key table into memory; (b) generating corresponding keys and distributing the keys into a first plurality of buffer files that are in random access memory, such that a beginning portion of each key is used as an index identifying the buffer file; (c) when any of the files in the first plurality of buffer files is full, storing contents of the each of the first plurality of buffer files in unused space of a corresponding file of a second plurality of buffer files, wherein the second plurality of buffer files are kept on a hard disk drive; (d) resetting the files in the first plurality of buffer files to zero; (e) repeating steps (a)-(d) for all keys in the probabilistic key table until at least one of the files of the second plurality of buffer files is full; (f) for each of the second plurality of buffer files, updating a bitmask file corresponding to keys missing from the probabilistic key table; (g) resetting the files in the second plurality of buffer files to zero; (h) repeating steps (a)-(g) for all keys in the probabilistic key table; and wherein if the key used to generate the plaintext-cyphertext pair is not in the probabilistic key table, the missing keys can be tested to identify the key used to generate the plaintext-cyphertext pair.