Enhanced block ciphers with data-dependent rotations
AssigneeRSA Security Inc.
InventorsRonald L. Rivest, Matthew John Barton Robshaw, Raymond Mark Sidney, Yiqun Lisa Yin
Life of this patent
Estimating the term…
Loading patent…
AssigneeRSA Security Inc.
InventorsRonald L. Rivest, Matthew John Barton Robshaw, Raymond Mark Sidney, Yiqun Lisa Yin
Estimating the term…
A plaintext message to be encrypted is segmented into a number of words, e.g., four words stored in registers A, B, C and D, and an integer multiplication function is applied to a subset of the words, e.g., to the two words in registers B and D. The integer multiplication function may be a quadratic function of the form ƒ(x)=x(ax+b) or other suitable function such as a higher-order polynomial. The results of the integer multiplication function are rotated by lg w bits, where lg denotes log base 2 and w is the number of bits in a given word, to generate a pair of intermediate results t and u. An exclusive-or of another word, e.g., the word in register A, and one of the intermediate results, e.g., t, is rotated by an amount determined by the other intermediate result u. Similarly, an exclusive-or of the remaining word in register D and the intermediate result u is rotated by an amount determined by the other intermediate result t. An element of a secret key array is applied to each of these rotation results, and the register contents are then transposed. This process is repeated for a designated number of rounds to generate a ciphertext message. Pre-whitening and post-whitening operations may be included to ensure that the input or output does not reveal any internal information about any encryption round. Corresponding decryption operations may be used to decrypt the ciphertext message.
A method of encrypting a plaintext message, comprising the steps of:
An apparatus for encrypting a plaintext message, comprising:
A computer-readable medium for storing one or more programs for encrypting a plaintext message, wherein the one or more programs when executed implement the steps of:
A method of decrypting a ciphertext message, comprising the steps of:
An apparatus for decrypting a ciphertext message, comprising:
Dependencies are inferred from the claim text.