Fast Software Encryption

Volume 3557 of the series Lecture Notes in Computer Science pp 18-31

New Applications of T-Functions in Block Ciphers and Hash Functions

  • Alexander KlimovAffiliated withComputer Science department, The Weizmann Institute of Science
  • , Adi ShamirAffiliated withComputer Science department, The Weizmann Institute of Science


A T-function is a mapping from n-bit words to n-bit words in which for each 0 ≤ i <n, bit i of any output word can depend only on bits 0,1,..., i of any input word. All the boolean operations and most of the numeric operations in modern processors are T-functions, and all their compositions are also T-functions. Our earlier papers on the subject dealt with “crazy” T-functions which are invertible mappings (including Latin squares and multipermutations) or single cycle permutations (which can be used as state update functions in stream ciphers). In this paper we use the theory of T-functions to construct new types of primitives, such as MDS mappings (which can be used as the diffusion layers in substitution/permutation block ciphers), and self-synchronizing hash functions (which can be used in self-synchronizing stream ciphers or in “fuzzy” string matching applications).