Method of cryptographically transforming electronic digital data from one form to another
First Claim
1. A method of cryptographically transforming electronic digital data from one form to another comprising the steps of:
- a. establishing in memory at least one transformation table associated with a predetermined cryptographic function, said table including a plurality of addressable entries which each direct a predetermined transformation of data in accordance with said function;
b. establishing in memory one or more key based determinants;
c. selecting one of said entries in said transformation table based upon certain information in one of said data key based determinants; and
d. cryptographically transforming said data by said function in accordance with the directions of said selected entry in said transformation table.
3 Assignments
0 Petitions
Accused Products
Abstract
A cryptographic system creates a key table from a single key such that the relationship between the keys in the key table cannot be determined even if the system implementation is known. The system uses variable functions in which the determinants are changed by the variable function chosen by the determinant. Thus, the functions used in creating the key table do not have to be one-to-one functions. From the key table, four blocks of bytes of additional key based determinants are formed which are called masks. The original key does not exist in either the key table or the mask table. The system preferably uses the key table in a multiple round encryption process. The keys chosen from the table for a key addition operation are a function of the plaintext, the current state of the ciphertext, and the mask values. Therefore, the order in which the keys are chosen is not predetermined or patterned. The system also selects the other encryption functions, including permutations and substitutions, by the plaintext, current state of the ciphertext and the mask values. The cryptographic system also can include a function referred to as the enclave function. This function operates on lookup tables and creates complete inter-symbol dependency on the block of bytes.
-
Citations
62 Claims
-
1. A method of cryptographically transforming electronic digital data from one form to another comprising the steps of:
-
a. establishing in memory at least one transformation table associated with a predetermined cryptographic function, said table including a plurality of addressable entries which each direct a predetermined transformation of data in accordance with said function; b. establishing in memory one or more key based determinants; c. selecting one of said entries in said transformation table based upon certain information in one of said data key based determinants; and d. cryptographically transforming said data by said function in accordance with the directions of said selected entry in said transformation table.
-
-
2. A method of generating a table of keys for use in cryptographically transforming electronic digital data from one form to another comprising the steps of:
-
a. establishing an initial key; b. establishing in memory at least one transformation table associated with a predetermined cryptographic function, said table including a plurality of addressable entries which each direct a predetermined transformation of data in accordance with said function; c. selecting at least one of said entries in said transformation table based upon certain information in said initial key; d. transforming said initial key by said function in accordance with the directions of said selected entry in said transformation table; e. storing said transformed initial key as an entry in the key table memory; f. selecting at least one of said entries in said transformation table based upon certain information in the initial key or in a key stored in the key table memory; g. transforming the key used in step (f) above by said function in accordance with the directions of said selected entry in said transformation table; h. storing said transformed key as another entry in the key table memory; and i. performing steps (f)-(h) above repetitively until said key table memory has a desired plurality of keys stored therein. - View Dependent Claims (3, 4)
-
-
5. A method of generating a table of keys for use in cryptographically transforming electronic digital data from one form to another comprising the steps of:
-
a. establishing an initial key having a plurality of bytes; b. establishing in memory a plurality of transformation tables, each associated with a predetermined cryptographic function, each of said tables including a plurality of addressable entries which direct a predetermined transformation of data in accordance with said function; c. selecting, in turn, at least one of said entries in each of said transformation tables based upon certain information in said initial key; d. transforming said initial key by said functions in accordance with the directions of said selected entries in said transformation tables; e. storing said transformed initial key as an entry in the key table memory; f. selecting, in turn, at least one of said entries in each of said transformation tables based upon certain information in at least one of the keys stored in the key table memory; g. transforming the key used in step (f) above by said functions in accordance with the directions of said selected entries in said transformation tables; h. storing said transformed key as another entry in the key table memory; and i. performing steps (f)-(h) above repetitively until said key table memory has a desired plurality of keys stored therein. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory a key table with a plurality of multi-byte key entries; b. selecting a multi-byte block of data for transformation; c. selecting an entry from the key table based on information in at least one of the bytes of the data block; d. arithmetically combining each byte in the selected key with a corresponding byte in the data block, except that the bytes in the data block used to select the entry from the key table remain unchanged; and e. repeating steps (c) and (d) above for a plurality of rounds and using a different byte of the data block in each round for selecting the entry from the key table. - View Dependent Claims (19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
18. A method of cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory a key table with a plurality of multi-byte key entries; b. selecting a multi-byte block of data for transformation; c. selecting an entry from the key table based on information in at least one of the bytes of the data block; d. arithmetically combining each byte in the selected key with a corresponding byte in the data block, except that the bytes in the data block used to select the entry from the key table remain unchanged; and e. repeating steps (c) and (d) above for a plurality of rounds.
-
-
23. A method of cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory a key table with a plurality of multi-byte key entries; b. establishing in memory one or more multi-byte key based determinants; c. selecting a multi-byte block of data for transformation; d. selecting an entry from the key table based on information in at least one of the bytes of one of said key based determinants; e. arithmetically combining each byte in the selected key with a corresponding byte in the data block; and f. repeating steps (d) and (e) above for a plurality of rounds.
-
-
34. A method cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory at least one transformation table associated with a predetermined cryptographic function, said table including a plurality of addressable entries which direct a predetermined transformation of data in accordance with said function; b. selecting at least one of the entries in said transformation table based upon certain information in the data undergoing transformation; c. cryptographically transforming the data by said function in accordance with the directions of the entry in the transformation table selected in step (b); d. arithmetically combining the data transformed in step (c) above with a key; e. selecting at least one other entry in said transformation table based upon certain information in the data transformed in step (d) above; and f. cryptographically transforming the data transformed in step (d) above by said function in accordance with the directions of the entry in the transformation table selected in step (e). - View Dependent Claims (35)
-
-
36. A method of cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory a first transformation table associated with a first cryptographic function and a second transformation table associated with a second cryptographic function, said tables each including a plurality of addressable entries which direct a predetermined transformation of data in accordance with said functions; b. selecting at least one of the entries in said first transformation table based upon certain information in said data undergoing transformation; c. cryptographically transforming said data by said first function in accordance with the directions of the entry in the first transformation table selected in step (b); d. arithmetically combining the data transformed in step (c) above with a key; e. selecting at least one of the entries in the second transformation table based upon certain information in the data transformed in step (d) above; and f. cryptographically transforming the data transformed in step (d) above by the second function in accordance with the directions of the entry in the second transformation table selected in step (e). - View Dependent Claims (37)
-
-
38. An enclave function for cryptographically transforming electronic digital data from one form to another comprising the steps of:
-
a. establishing in memory an enclave table with a plurality of entries for directing an autoclave function on a portion of the data undergoing transformation; b. selecting a block of data having an even number of bytes; c. dividing said data block into a first half-block including one-half of the bytes of the data block and into a second half-block including the remaining bytes of the data block; d. transforming the first half-block by said autoclave function as directed by a first entry in said enclave table; e. transforming the resultant first half-block after step (d) above by said autoclave function as directed by a second entry in said enclave table; f. combining the second half-block with the resultant first half-block after step (e) above by an Exclusive OR operation to generate resultant second half-block; g. transforming the resultant second half-block after step (f) above by said autoclave function as directed by a third entry in said enclave table; h. transforming the resultant second half-block after step (g) above by said autoclave function as directed by a fourth entry in said enclave table; i. combining the resultant second half-block after step (h) above with the resultant first half-block after step (e) above by an Exclusive OR operation to generate a resultant first half-block; and j. joining said resultant first half-block after step (i) above to said resultant second half-block after step (h) above to form the transformed data block. - View Dependent Claims (39)
-
-
40. A method of cryptographically transforming electronic data from one form to another comprising the steps of:
-
a. establishing in memory a permutation table with a plurality of addressable entries for directing a particular permutation of said data undergoing transformation; b. establishing in memory a substitution table with a plurality of addressable entries for directing a particular substitution on said data undergoing transformation; c. selecting at least one of the entries in one of said permutation and substitution tables based upon certain information in said data undergoing transformation; d. cryptographically transforming said data in accordance with the table entry selected in step (c) above and the function associated therewith; e. arithmetically combining the data transformed in step (d) with a key; f. selecting at least one of the entries in the other of said permutation and substitution tables; and g. cryptographically transforming the data transformed in step (e) in accordance with the table entry selected in step (f) and the function associated therewith. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62)
-
Specification