Nova Patents
EP0489742A1

Encryption system.

Abstract

We put the round number (R) at zero (100), then increase the round number (R) by 1 (102). The plaintext data (104) is subject to variable permutation (106). An entry in the memory (108) of the permutation table is selected, and a value is selected from the memory (110) of the mask table to proceed with the variable permutation (106). Then, we assign to a chosen component (C) the value of the round number (R). A first variable code addition operation (114) is then performed on the data employing code from the code table memory (116) and employing a value from the mask table memory (110). . In the next step (118), the selected component (C) is assigned a value greater than 1 to the round number (R). The

Term

Term ended

Projected expiry passed 14 March 2010, 16.5 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

62 claims: 20 independent, 42 dependent

  1. 1
    Claims of equivalent WO 9103113 A1 I Claim :1. A method of cryptographically transformin electronic digital data from one form to anothe comprising the steps of: a. establishing in memory at least on transformation table associated with a predetermine cryptographic function, said table including a pluralit of addressable entries which each direct a predetermine transformation of data in accordance with said function;b. selecting one of said entries in sai transformation table based upon certain information i said data undergoing transformation;and c. cryptographically transforming sai data by said function in accordance with the directions o said selected entry in said transformation table.
  2. 2
    A method of generating a table of keys fo use in cryptographically transforming electronic digita data from one form to another comprising the steps of:a. establishing an initial key;b. establishing in memory at least on transformation table associated with a predetermine cryptographic function, said table including a plurali of addressable entries which each direct a predetermin transformation of data in accordance with said function;c. selecting at least one of said entri in said transformation table based upon certa information in said initial key;d. transforming said initial key by sa function in accordance with the directions of sa selected entry in said transformation table;e. storing said transformed initial k 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.
  3. 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 ke as an entry in the key table memory;f. selecting, in turn, at least one o said entries in each of said transformation tables base upon certain information in at least one of the key stored in the key table memory;g. transforming the key used in step (f) above by said functions in accordance with the direction of said selected entries in said transformation tables;h. storing said transformed key a another entry in the key table memory;and i. performing steps (f) - (h) abov repetitively until said key table memory has a desire plurality of keys stored therein.
  4. 17
    A method cryptographically transformin electronic data from one form to another comprising t steps of:a. establishing in memory a key tabl with a plurality of multi-byte key entries;b. selecting a multi-byte block of da for transformation;c. selecting an entry from the key tab based on information in at least one of the bytes of t data block;d. arithmetically combining each byte the selected key with a corresponding byte in the da block, except that the bytes in the data block used select the entry from the key table remain unchanged;an j5 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.
  5. 18
    A method of cryptographically transforming electronic data from one form to another comprising the steps of:a. establishing in memory a key table 5 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 10 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 j5 e. repeating steps (c) and (d) above for a plurality of rounds.
  6. 19
    A method of cryptographically transforming electronic data from one form to another comprising the steps of:a. establishing in memory a key table 5 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 a key 10 based determinant;d. arithmetically combining each byte in the selected key with a corresponding byte in the data block;and e. repeating steps (c) and (d) above for a plurality of rounds.
  7. 20
    The method of claims 17, 18 or 19 wherein the bits in the .selected key are arithmetically combined with the corresponding bits in the data block undergoing transformation by an Exclusive OR operation.
  8. 21
    The method of claims 17, 18 or 19 wherein the values of the bytes in the selected key are added to the values of the corresponding bytes in the data bloc undergoing transformation.
  9. 22
    The method of claims 17, 18 or 19 furthe including the steps of generating from the key table determinant table having a plurality of entries which ar each the result of an arithmetic combination of two o more values in the key table, and then combining an entr from said determinant table with said one of the values i the data block undergoing transformation to select a entry from the key table.
  10. 26
    The method of claims 17, 18 or 19 wherei said key table is established -by the steps of:f. establishing an initial key;g. 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;h. selecting at least one of said entries in said transformation table based upon certain information in said initial key;i. transforming said initial key by said function in accordance with the directions of said selected entry in said transformation table;j. storing said transformed initial key as an entry in the key table memory;k. 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;1. transforming the key used in step (k) above by said function in accordance with the directions of said selected entry in said transformation table;m. storing said transformed key as another entry in the key table memory;and n. performing steps (k) - (m) above repetitively until said key table memory has a desired plurality of keys stored therein.
  11. 29
    The method of claims 17, 18 or 19 wherein said key table is generated by the steps of:f. establishing an initial key having a plurality of bytes;- g.. 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;h. selecting, in turn, at least one of said entries in each of said transformation tables based upon certain information in said initial key;i. transforming said initial key by said functions in accordance with the directions of said selected entries in said transformation tables;j. storing said transformed initial key as an entry in the key table memory;k. 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;1. transforming the key used in step (k) above by said functions in accordance with the directions of said selected entries in said transformation tables;m. storing said transformed key as another entry in the key table memory;and n. performing steps (k) - (m) above repetitively until said key table memory has a desired plurality of keys stored therein.
  12. 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) .
  13. 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 cryptographi function and a second transformation table associated wit a second cryptographic function, said tables eac including a plurality of addressable entries which direc a predetermined transformation of data in accordance wit said functions;b. selecting at least one of the entrie in said first transformation table based upon certai information in said data undergoing transformation;c. cryptographically transforming sai data by said first function in accordance with th directions of the entry in the first transformation tabl 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) .
  14. 38
    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 entrie in the other of said permutation and substitution tables and g. cryptographically transforming th data transformed in step (e) in accordance with the tabl entry selected in step (f) and the function associate therewith.
  15. 46
    The method of claims 43, 44 or 45 wherei bits in the selected key are arithmetically combined wit the corresponding bits in the data undergoin transformation by an Exclusive OR operation.
  16. 47
    The method of claims 43, 44 or 45 furthe including the steps of generating from the key table determinant table having a plurality of entries which ar each the result of an arithmetic combination of two o more values in the key table, and then combining an entr from said determinant table with said one of the values i the data undergoing transformation to select an entry fro the key table.
  17. 50
    The method of claims 43, 44 or 45 wherei said key table is established by the steps of:k. establishing an initial key having plurality of bytes;1. selecting, in turn, at least one of said entries in each of said permutation and substitution tables based upon certain information in said initial key;m. transforming said initial key by said substitution and permutation functions in accordance with the directions of said selected entries in said tables;n. storing said transformed initial key as an entry in the key table memory;o. selecting, in turn, at least one of said entries in each of said substitution and permutation tables based upon certain information in at least one of the keys stored in the key table memory;p. transforming the key used in step (o) above by said substitution and permutation functions in accordance with the directions of said selected entries in said tables;q. storing said transformed key as another entry in the key table memory;and r. performing steps (o) - (q) above repetitively until said key table memory has a desired plurality of keys stored therein.
  18. 55
    The method of claims 43, 44 or 45 furth including the steps of establishing an enclave table wi a plurality of entries for directing an encla transformation in which each byte in the data undergoin transformation becomes a function of itself and of eve other byte in the data, selecting at least one of sai entries in said enclave table, and transforming the da in accordance with the directions of the selected entry the enclave table.
  19. 60
    The method of claims 43, 44 or 45 further including the steps of selecting a second key from the key table memory based on the value of one of the bytes in the data undergoing transformation, excluding the byte used in claims 43, 44 or 45 and arithmetically combining each byte in the selected second key with a corresponding byte in the data undergoing transformation, except that the byte used to select the second key remains unchanged, with a different byte in the data undergoing transformation used in each round to select the second key.
  20. 61
    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 -firs half-block including one-half of the bytes of the dat block and into a second half-block including the remainin bytes of the data block;d. transforming the first half-block b 5 said autoclave function as directed by a first entry i said enclave table;e. transforming the resultant firs half-block after step (d) above by said autoclave functio as directed by a second entry in said enclave table;fl f. combining the second half-block wit the resultant first half-block after step (e) above by a Exclusive OR operation to generate resultant second half block;g. transforming the resultant secon 5 half-block after step (f) above by said autoclave functio as directed by a third entry in said enclave table;h. transforming the resultant secon half-block after step (g) above by said autoclave functio as directed by a fourth entry in said enclave table;0 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 t generate a resultant first half-block;and j. joining said resultant first half 5 block after step (i) above to said resultant second half block after step (h) above to form the transformed dat block.
Independent claims20