Patent ID: 7200227

Claim:
A computer-implemented parallelizable authenticated-encryption method that provides for associated-data and uses a key, a nonce, and an n-bit tweakable block cipher to encrypt a message of arbitrary bit length into a ciphertext core of the same length and a tag, all invocations of the n-bit tweakable block cipher keyed by the key, the method comprising: partitioning the message into m−1 message blocks of n bits and a message fragment of at most n bits; for each number i between 1 and m−1, computing an i th ciphertext block by applying the n-bit tweakable block cipher to an i th message block, using a first tweak consisting of the nonce, the number i, and a constant 0; computing a pad by applying the n-bit tweakable block cipher to a string that encodes a length of the message fragment, using a second tweak consisting of the nonce, the number m, and a constant 1; computing a ciphertext fragment by xoring the message fragment and a portion of the pad that has a same number of bits as the message fragment; defining the ciphertext core as a concatenation of the m ciphertext blocks and the ciphertext fragment; computing an n-bit padded ciphertext fragment from the ciphertext fragment; computing a checksum by xoring the m−1 message blocks, the pad, and the n-bit padded ciphertext fragment; computing a full tag by applying the n-bit tweakable block cipher to the checksum, using a third tweak consisting of the nonce, the number m, and a constant 2; computing an associated-data authenticator by applying a pseudorandom function to the associated-data; defining the tag as a portion of the string that is an xor of the full tag and the associated-data authenticator, and transmitting the ciphertext core, the nonce, and the tag to a receiver.