Patent ID: 7095850

Claim:
A method of automatically generating an updated key value for a segment of keystream for use in a cipher, with forward security, the method comprising the computer-implemented steps of: receiving a location value that identifies a location of the segment within the keystream; generating the updated key value corresponding to the identified segment and based on a current key value by performing: creating and storing values in a memory that correspond to a logical tree, wherein the tree represents the keystream, wherein each leaf node of the tree represents a particular keystream segment associated with a discrete location in the keystream, and wherein an order of each leaf node in pre-order traversal of the tree corresponds to a sequential order of all keystream segments; creating and storing an ordered plurality of data elements, wherein each of the data elements is identifiable by a node value that is associated with a unique leaf node or intermediate node in the tree, and wherein each of the data elements stores a keystream segment; advancing to the updated key by outputting that particular keystream segment stored in a next data element from among the ordered plurality of data elements, and updating the ordered plurality of data elements to discard used data elements; seeking a future key without discarding the updated key by locating a highest internal node in the tree that is an ancestor node of that node corresponding to the updated key and applying one or more pseudo-random functions to each node in the tree that is traversed from the highest internal node to a node representing the future key.