Method and apparatus for cryptographically transforming an input block into an output block
First Claim
1. A method of transforming an input block into an output block using a cryptographic procedure, one of sad blocks comprising a plaintext block and the other of said blocks comprising a ciphertext block, the input block having a first block size and being partitionable into a plurality of input subblocks having a second block size, the method comprising the steps of:
- passing the input subblocks through respective first substitution functions to generate a first plurality of modified subblocks, each of said first substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified subblocks corresponding to one of said input subblocks and being generated as a function of only that one of said input subblocks independently of any other of said input subblocks;
passing the first plurality of modified subblocks through a keyless mixing function to generate a second plurality of modified subblocks, each of the second plurality of modified subblocks depending on each of the first plurality of modified subblocks; and
passing the second plurality of modified subblocks through respective second substitution functions to generate a plurality of output subblocks that are combinable into an output block, each of said second substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of output subblocks corresponding to one of said second plurality of modified subblocks and being generated as a function of only that one of said second plurality of modified subblocks independently of any other of said second plurality of modified subblocks.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for cryptographically transforming an input block into an output block. The input block has a first block size and is partitionable into a plurality of input subblocks having a second block size that is a submultiple of the first block size. To encrypt or decrypt, the input subblocks are passed through respective first substitution functions controlled by one or more keys to generate a first plurality of modified subblocks. The first plurality of modified subblocks are then passed through a mixing function to generate a second plurality of modified subblocks, each of which depends on each of the first plurality of modified subblocks. Finally, the second plurality of modified subblocks are passed through respective second substitution functions controlled by one or more keys to generate a plurality of output subblocks that are combinable into an output block.
-
Citations
16 Claims
-
1. A method of transforming an input block into an output block using a cryptographic procedure, one of sad blocks comprising a plaintext block and the other of said blocks comprising a ciphertext block, the input block having a first block size and being partitionable into a plurality of input subblocks having a second block size, the method comprising the steps of:
-
passing the input subblocks through respective first substitution functions to generate a first plurality of modified subblocks, each of said first substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified subblocks corresponding to one of said input subblocks and being generated as a function of only that one of said input subblocks independently of any other of said input subblocks;
passing the first plurality of modified subblocks through a keyless mixing function to generate a second plurality of modified subblocks, each of the second plurality of modified subblocks depending on each of the first plurality of modified subblocks; and
passing the second plurality of modified subblocks through respective second substitution functions to generate a plurality of output subblocks that are combinable into an output block, each of said second substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of output subblocks corresponding to one of said second plurality of modified subblocks and being generated as a function of only that one of said second plurality of modified subblocks independently of any other of said second plurality of modified subblocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
passing the original ciphertext subblocks through respective first inverse substitution functions to generate a first plurality of modified ciphertext subblocks, each of said first inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified ciphertext subblocks corresponding to one of said original ciphertext subblocks and being generated as a function of only that one of said original ciphertext subblocks independently of any other of said original ciphertext subblocks;
passing the first plurality of modified subblocks through a keyless inverse mixing function to generate a second plurality of modified ciphertext subblocks, each of the second plurality of modified ciphertext subblocks depending on each of the first plurality of modified ciphertext subblocks; and
passing the second plurality of modified ciphertext subblocks through respective second inverse substitution functions to generate a plurality of regenerated plaintext subblocks that are combinable into a regenerated plaintext block, each of said second inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of regenerated plaintext subblocks corresponding to one of said second plurality of modified ciphertext subblocks and being generated as a function of only that one of said second plurality of modified ciphertext subblocks independently of any other of said second plurality of modified ciphertext subblocks.
-
-
4. The method of claim 1 in which the input block is a ciphertext block and the cryptographic procedure is a decryption procedure.
-
5. The method of claim 1 in which the mixing function comprises a plurality of rounds, each of which comprises the steps of:
-
generating a first intermediate value as a first round function of a first input half;
reversibly combining the first intermediate value with a second input half to generate a second output half;
generating a second intermediate value as a second round function of the second output half; and
reversibly combining the second intermediate value with the first input half to generate a first output half.
-
-
6. The method of claim 5 in which the first and second round functions comprise modular addition and multiplication.
-
7. The method of claim 1 in which each of said substitution functions comprises a plurality of successively performed DES operation, each of said DES operations comprising DES encryption or DES decryption.
-
8. The method of claim 7 in which said DES operations are interleaved with modular arithmetic operations.
-
9. Apparatus for transforming an input block into an output block using a cryptographic procedure, one of said blocks comprising a plaintext block and the other of said blocks comprising a ciphertext block, the input block having a first block size and being partitionable into a plurality of input subblocks having a second block size, the apparatus comprising:
-
means for passing the input subblocks through respective first substitution functions to generate a first plurality of modified subblocks, each of said first substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified subblocks corresponding to one of said input subblocks and being generated as a function of only that one of said input subblocks independently of any other of said input subblocks;
means for passing the first plurality of modified subblocks through a keyless mixing function to generate a second plurality of modified subblocks, each of the second plurality of modified subblocks depending on each, of the first plurality of modified subblocks; and
means for passing the second plurality of modified subblocks through respective second substitution functions to generate a plurality of output subblocks that are combinable into an output block, each of said second substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of output subblocks corresponding to one of said second plurality of modified subblocks and being generated as a function of only that one of said second plurality of modified subblocks independently of any other of said second plurality of modified subblocks. - View Dependent Claims (10, 11, 12)
means for passing the ciphertext subblocks through respective first inverse substitution functions to generate a first plurality of modified ciphertext subblocks, each of said first inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified ciphertext subblocks corresponding to one of said original ciphertext subblocks and being generated as a function of only that one of said original ciphertext subblocks independently of any other of said original ciphertext subblocks;
means for passing the first plurality of modified subblocks through a keyless inverse mixing function to generate a second plurality of modified ciphertext subblocks, each of the second plurality of modified ciphertext subblocks depending on each of the first plurality of modified ciphertext subblocks; and
means for passing the second plurality of modified ciphertext subblocks through respective second inverse substitution functions to generate a plurality of regenerated plaintext subblocks that are combinable into a regenerated plaintext block, each of said second inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of regenerated plaintext subblocks corresponding to one of said second plurality of modified ciphertext subblocks and being generated as a function of only that one of said second plurality of modified ciphertext subblocks independently of any other of said second plurality of modified ciphertext subblocks.
-
-
11. The apparatus of claim 9 in which each of said substitution functions comprises a plurality of successively performed DES operations, each of said DES operations comprising DES encryption or DES decryption.
-
12. The apparatus of claim 11 in which said DES operations are interleaved with modular arithmetic operations.
-
13. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for transforming an input block using a cryptographic procedure, one of said blocks comprising a plaintext block and the other of said blocks comprising a ciphertext block, the input block having a first block size being partitionable into a plurality of input subblocks having a second block size, the method steps comprising:
-
passing the input subblocks through respective first substitution functions to generate a first plurality of modified subblocks, each of said first substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified subblocks corresponding to one of said input subblocks and being generated as a function of only that one of said input subblocks independently of any other of said input subblocks;
passing the first plurality of modified subblocks through a keyless mixing function to generate a second plurality of modified subblocks, each of the second plurality of modified subblocks depending on each of the first plurality of modified subblocks; and
passing the second plurality of modified subblocks through respective second substitution functions to generate a plurality of output subblocks that are combinable into an output block, each of said second substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of output subblocks correspond to one of said second plurality of modified subblocks and being generated as a function of only that one of said second plurality of modified subblocks independently of any other of said second plurality of modified subblocks. - View Dependent Claims (14, 15, 16)
passing the original ciphertext subblocks through respective first inverse substitution functions to generate a first plurality of modified ciphertext subblocks, each of said first inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said first plurality of modified ciphertext subblocks corresponding to one of said original subblocks and being generated as a function of only that one of said original ciphertext subblocks independently of any other of said original ciphertext subblocks;
passing the first plurality of modified subblocks through a keyless inverse mixing function to generate a second plurality of modified ciphertext subblocks, each of the second plurality of modified ciphertext subblocks depending on each of the first plurality of modified ciphertext subblocks; and
passing the second plurality of modified ciphertext subblocks through respective second inverse substitution functions to generate a plurality of regenerated plaintext subblocks that are combinable into a regenerated plaintext block, each of said second inverse substitution functions comprising a plurality of keyed cryptographic operations performed in succession using a plurality of different keys of predetermined length for an effective key length that is greater than said predetermined length, each of said plurality of regenerated plaintext subblocks corresponding to one of said second plurality of modified ciphertext subblocks and being generated as a function of only that one of said second plurality of modified ciphertext subblocks independently of any other of said second plurality of modified ciphertext subblocks.
-
-
15. The program storage device of claim 14 in which each of said substitution functions comprises a plurality of successively performed DES operations, each of said DES operations comprising DES encryption or DES decryption.
-
16. The storage device of claim 15 in which said DES operations are interleaved with modular arithmetic operations.
Specification