Block encryption algorithm with data-dependent rotations
First Claim
Patent Images
1. A method of forming a key table, the method comprising the steps of:
- (a) storing in one of a first table and a second table a sequence of elements corresponding to a secret key;
(b) initializing the other of the first table and the second table to comprise a pseudorandom sequence of elements;
(c) updating at least one element of the first table, using information in the second table, to produce an updated first table;
(d) updating at least one element of the second table, using information in the updated first table, to produce an updated second table; and
(e) repeating the updating steps (c) and (d) for at least one additional element of each of the updated first table and the updated second table, such that a final version of one of the updated first table and the updated second table corresponds to the key table.
5 Assignments
0 Petitions
Accused Products
Abstract
A simple encryption and decryption device has been developed. The underlying algorithm is a fast block cipher that may be implemented efficiently in hardware or software. The algorithm makes heavy use of data-dependent rotations. The amount of each rotation depends on the data being encrypted and intermediate encryption results. The variables for the algorithm include word size, rounds, and the length of a secret key.
94 Citations
13 Claims
-
1. A method of forming a key table, the method comprising the steps of:
-
(a) storing in one of a first table and a second table a sequence of elements corresponding to a secret key; (b) initializing the other of the first table and the second table to comprise a pseudorandom sequence of elements; (c) updating at least one element of the first table, using information in the second table, to produce an updated first table; (d) updating at least one element of the second table, using information in the updated first table, to produce an updated second table; and (e) repeating the updating steps (c) and (d) for at least one additional element of each of the updated first table and the updated second table, such that a final version of one of the updated first table and the updated second table corresponds to the key table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for forming a key table, comprising:
-
a memory for storing in one of a first table and a second table a sequence of elements corresponding to a secret key, and for storing in the other of the first table and the second table a pseudorandom sequence of elements; and a processor associated with the memory and operative;
(i) to update at least one element of the first table, using information in the second table, to produce an updated first table;
(ii) to update at least one element of the second table, using information in the updated first table, to produce an updated second table; and
(iii) to repeat the updating operations for at least one additional element of each of the updated first table and the updated second table, such that a final version of one of the updated first table and the updated second table corresponds to the key table. - View Dependent Claims (12)
-
-
13. A computer-readable medium containing one or more programs which when executed by a computer and applied to first and second tables of information, with one of the first table and the second table storing a sequence of elements corresponding to a secret key, and the other of the first table and the second table storing a pseudorandom sequence of elements, implement the following steps:
-
updating at least one element of the first table, using information in the second table, to produce an updated first table; updating at least one element of the second table, using information in the updated first table, to produce an updated second table; repeating the updating steps for at least one additional element of each of the updated first table and the updated second table, such that a final version of one of the updated first table and the updated second table corresponds to a key table.
-
Specification