Jump to content

T-function

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Intgr (talk | contribs) at 00:50, 24 December 2006 (remove inappropriate section; WP:NOT a cristal ball). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A T-function is a bijective mapping that updates every bit of the state in a way that can be described as x[i] += f(x[0],...,x[i-1]), or in simple words a function in which each bit of the state depends only on the less significant bits of the state. Thanks to its bijectivity (no collisions, therefore no entropy loss) regardless of the used Boolean functions and regardless of the selection of inputs (as long as they all come from one side of the output bit), it is now widely used in cryptography to construct block ciphers, stream ciphers, PRNGs and hash functions. T-functions were first proposed in 2002 by A. Klimov and A. Shamir in their paper "A New Class of Invertible Mappings". Ciphers such as TSC-1, TSC-3, TSC-4, ABC, Mir-1 and VEST are built with different types of T-functions.

Because arithmetic operations such as addition, subtraction and multiplication are also T-functions, software-efficient word-based T-functions can be easily constructed by combining bitwise logic with arithmetic operations. Another important property of T-functions based on arithmetic operations is predictability of their period, which is highly attractive to cryptographers. Although T-functions based on arithmetic operations are naturally vulnerable to guess-and-determine attacks, well chosen bitwise transpositions between rounds can neutralise that imbalance. In software efficient ciphers it can be done by interleaving arithmetic operations with byte-swapping operations and to a small degree with bitwise rotation operations. However, T-functions based on arithmetic operations remain highly inefficient in hardware.

T-functions do not have any restrictions on the types and the widths of the update functions used for each bit. Subsequent transposition of the output bits and iteration of the T-function also do not affect bijectivity. This freedom allows the code-maker to choose the update functions or s-boxes that satisfy all other cryptographic criteria and even choose arbitrary or key-dependent update functions (see family keying).

VEST-4 T-function followed by a transposition layer

Hardware-efficient lightweight T-functions with identical widths of all the update functions for each bit of the state can thus be easily constructed. The core accumulators of VEST ciphers are a good example of such reasonably light-weight T-functions that are balanced out after 2 rounds by the transposition layer making all the 2-round feedback functions of roughly the same width and losing the "T-function" bias of depending only on the less significant bits of the state.

References

  • J. Hong, D. Lee, Y. Yeom, and D. Han: “A New Class of Single Cycle T-functions”, Fast Software Encryption, FSE 2005, LNCS 3557, pp.68-82, Springer Verlag, 2005.
  • A. Klimov and A. Shamir: “New Applications of T-functions in Block Ciphers and Hash Functions”, Fast Software Encryption, FSE 2005, LNCS 3557, pp.18-31, Springer Verlag, 2005. PS.GZ