US 7,321,659 B2 | ||
Simple universal hash for plaintext aware encryption | ||
William Eric Hall, Clinton, Conn. (US); and Charanjit Singh Jutla, Elmsford, N.Y. (US) | ||
Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
Filed on Oct. 27, 2003, as Appl. No. 10/694,610. | ||
Claims priority of provisional application 60/508015, filed on Oct. 01, 2003. | ||
Prior Publication US 2005/0074116 A1, Apr. 07, 2005 | ||
Int. Cl. H04K 1/04 (2006.01); H04K 1/06 (2006.01); H04L 9/00 (2006.01); H04L 9/28 (2006.01); G06F 7/04 (2006.01); G06F 17/30 (2006.01); G06K 9/00 (2006.01) |
U.S. Cl. 380—37 [380/28; 380/42; 380/43; 713/168; 713/169; 713/170; 713/171; 726/26; 726/27; 726/30] | 13 Claims |
1. A method for generating a simple universal hash value, the method comprising:
inputting a plurality of Plaintext blocks into an integrity aware encryption scheme using at least one of two secret keys
to obtain a corresponding plurality of Ciphertext blocks;
computing a Plaintext checksum value responsive to each of the plurality of Plaintext blocks;
processing the plurality of Ciphertext blocks and a third key to obtain a Ciphertext checksum responsive to each of the corresponding
plurality of Ciphertext blocks;
combining the Plaintext checksum and the Ciphertext checksum to obtain the simple universal hash value;
dividing the Ciphertext block into a plurality of equal sized segments;
assigning each one of a plurality of bits from the third key to each of the plurality of segments, respectively;
selecting a single bit from the assigned segment in correspondence with the plurality of bits of the third key; and
concatenating the plurality of single bits selected from each of the segments to obtain the partial Ciphertext,
wherein:
the Plaintext checksum, the Ciphertext checksum and the universal hash value are all of the same size;
the size of the first of the plurality of Plaintext blocks is a multiple of the size of the universal hash value;
obtaining the Ciphertext checksum comprises selecting partial Ciphertexts using the third key from each of the plurality of
Ciphertext blocks and combining the partial Ciphertexts using an exclusive-or sum to obtain the Ciphertext checksum; and
selecting partial Ciphertexts using the third key from a Ciphertext block comprises the process of using the bits of the third
key as an index into the Ciphertext block.
|