Patent ID: 7913085

Claim:
A method of per packet keying for encrypting data transferred between two or more parties, each party having knowledge of a shared session key, the method comprising: generating, using a computing apparatus, a first random number; deriving, using a computing apparatus, a sequence number from the first random number by incrementing the first random number according to a packet number value; manipulating, using a computing apparatus, the sequence number by encrypting the sequence number with the shared session key using an encryption algorithm to form a derived value; concatenating, using a computing apparatus, the derived value with a function of the derived value to form an offset, wherein the function of the derived value comprises a two's complement of the derived value; determining, using a computing apparatus, a per packet key by combining the offset with the shared session key; encrypting, using a computing apparatus, plain text data with the per packet key to generate ciphertext; transmitting, using a computing apparatus, the ciphertext together with an index associated with the sequence number to a communication channel; and incrementing, using a computing apparatus, the sequence number to calculate a next per packet key, wherein the step of encrypting the sequence number and encrypting the plain text data are performed within a token operably coupled to an apparatus that performs the step of transmitting.