The Full Wiki

Bent function: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Did you know ...

More interesting facts on Bent function

Include this on your site/blog:


From Wikipedia, the free encyclopedia

In the mathematical field of combinatorics, a bent function is a special type of Boolean function. Defined and named in the 1960s by Oscar Rothaus in research not published until 1976, bent functions are so called because they are as different as possible from all linear and affine functions. They have been extensively studied for their applications in cryptography, but have also been applied to spread spectrum, coding theory, and combinatorial design. The definition can be extended in several ways, leading to different classes of generalized bent functions that share many of the useful properties of the original.


Definition and properties

Rothaus defined a bent function as a Boolean function f:\mathbb{Z}_2^n \to \mathbb{Z}_2 whose Walsh transform has constant absolute value. Here the Walsh transform is the function \hat{f}:\mathbb{Z}_2^n \to \mathbb{Z} given by

\hat{f}(a)=\sum(-1)^{f(x) + (a \cdot x)}

where a·x is a dot product on \mathbb{Z}_2^n, and the sum is over all x \in \mathbb{Z}_2^n.[1] That is, \hat{f}(a)=2k-2^n, where k is the number of x \in \mathbb{Z}_2^n such that f(x)=a·x. So the value of \hat{f}(a) gives a measure of how close f(x) is to the linear function a·x and the affine function a·x + 1, the extreme values of \hat{f}(a) being 2n when f(x)=a·x and -2n when f(x)=a·x + 1. A bent function is in a sense equidistant from all of these, equally hard to approximate with any affine function.

The simplest examples of bent functions are F(x1,x2) = x1x2 and G(x1,x2,x 3,x4) = x1x2 + x3x4. This pattern continues: x1x2 + x3x4 + ... + xn-1xn is a bent function \mathbb{Z}_2^n \to \mathbb{Z}_2 for every even n, but there is a wide variety of different types of bent functions as n increases.[2] The sequence of values (-1)f(x), with x \in \mathbb{Z}_2^n taken in lexicographical order, is called a bent sequence; bent functions and bent sequences have equivalent properties. In this ±1 form, the Walsh transform is easily computed as \hat{f} = W(2n)(-1)f(x), where W(2n) is the natural-ordered Walsh matrix and the sequence is treated as a column vector.[3]

Rothaus proved that bent functions exist only for even n, and for a bent function f, |\hat{f}(a)|=2^{n/2} for all a \in \mathbb{Z}_2^n.[1] In fact, \hat{f}(a)=2^{n/2}(-1)^{g(a)}, where g is also bent. In this case, \hat{g}(a)=2^{n/2}(-1)^{f(a)}, so f and g are considered dual functions.[3] Every bent function has a Hamming weight (number of times it takes the value 1) of 2n-1 ± 2n/2-1, and in fact agrees with any affine function at one of those two numbers of points. So the nonlinearity of f (minimum number of times it equals any affine function) is 2n-1 - 2n/2-1, the maximum possible. Conversely, any Boolean function with nonlinearity 2n-1 - 2n/2-1 is bent.[1] The degree of f in algebraic normal form (called the nonlinear order of f) is at most n/2 (for n>2).[2]

Although bent functions are vanishingly rare among Boolean functions of many variables, they come in many different kinds. There has been detailed research into special classes of bent functions, such as the homogeneous ones[4] or those arising from a monomial over a finite field,[5] but so far the bent functions have defied all attempts at a complete enumeration or classification.


As early as 1982 it was discovered that maximum length sequences based on bent functions had cross-correlation and autocorrelation properties rivalling those of the Gold codes and Kasami codes for use in CDMA.[6] These sequences have several applications in spread spectrum techniques.

The properties of bent functions are naturally of interest in modern digital cryptography, which seeks to obscure relationships between input and output. By 1988 Forré recognized that the Walsh transform of a function can be used to show that it satisfies the Strict Avalanche Criterion (SAC) and higher-order generalizations, and recommended this tool to select candidates for good S-boxes achieving near-perfect diffusion.[7] Indeed, the functions satisfying the SAC to the highest possible order are always bent.[8] Furthermore, the bent functions are at the maximum distance from having what are called linear structures, nonzero vectors a such that f(x+a)+f(x) is a constant. In the language of differential cryptanalysis (introduced after this property was discovered) the derivative of a bent function f at every nonzero point a (that is, fa(x)=f(x+ a)+f(x)) is a balanced Boolean function, taking on each value exactly half of the time. This property is called perfect nonlinearity.[2]

Given such good diffusion properties, apparently perfect resistance to differential cryptanalysis, and resistance by definition to linear cryptanalysis, bent functions might at first seem the ideal choice for secure cryptographic functions such as S-boxes. Their fatal flaw is that they fail to be balanced. In particular, an invertible S-box cannot be constructed directly from bent functions. Instead, one might start with a bent function and randomly complement appropriate values until the result is balanced. The modified function still has high nonlinearity, and as such functions are very rare the process should be much faster than a brute-force search.[2] But functions produced in this way may lose other desirable properties, even failing to satisfy the SAC—so careful testing is necessary.[8] A number of cryptographers have worked on techniques for generating balanced functions that preserve as many of the good cryptographic qualities of bent functions as possible.[9][10][11]

Some of this theoretical research has been incorporated into real cryptographic algorithms. The CAST design procedure, used by Carlisle Adams and Stafford Tavares to construct the S-boxes for the block ciphers CAST-128 and CAST-256, makes use of bent functions.[11] The cryptographic hash function HAVAL uses Boolean functions built out of all four of the non-equivalent bent functions on six variables.[12] The stream cipher Grain uses an NLFSR whose nonlinear feedback polynomial is, by design, the sum of a bent function and a linear function.[13]


The most common class of generalized bent functions is the mod m type, f:\mathbb{Z}_m^n \to \mathbb{Z}_m such that \hat{f}(a)=\sum_{x \in \mathbb{Z}_m^n} e^{\frac {2\pi i}{m}(f(x) - (a \cdot x))} has constant absolute value mn/2. Perfect nonlinear functions f:\mathbb{Z}_m^n \to \mathbb{Z}_m, those such that for all nonzero a, f(x+a)-f(a) takes on each value mn-1 times, are generalized bent. If m is prime, the converse is true. In most cases only prime m are considered. For odd prime m, there are generalized bent functions for every positive n, even and odd. They have many of the same good cryptographic properties as the binary bent functions.[14]

Semi-bent functions are an odd-order counterpart to bent functions. A semi-bent function is f:\mathbb{Z}_m^n \to \mathbb{Z}_m with n odd, such that |\hat{f}| takes only the values 0 and m(n+1)/2. They also have good cryptographic characteristics, and some of them are balanced, taking on all possible values equally often.[15]

The partially bent functions form a large class defined by a condition on the Walsh transform and autocorrelation functions. All affine and bent functions are partially bent. This is in turn a proper subclass of the plateaued functions.[16]

The idea behind the hyper-bent functions is to maximize the minimum distance to all Boolean functions coming from bijective monomials on the finite field GF(2n), not just the affine functions. This distance is constant for these functions, which may make them resistant to an interpolation attack.

Other related names have been given to cryptographically important classes of functions \mathbb{Z}_2^n \to \mathbb{Z}_2^n, such as almost bent functions and crooked functions. While not Boolean functions themselves, these are closely related to the bent functions and have good nonlinearity properties.


  1. ^ a b c C. Qu; J. Seberry, T. Xia (29 December 2001). Boolean Functions in Cryptography. Retrieved 14 September 2009.  
  2. ^ a b c d W. Meier; O. Staffelbach (April 1989). "Nonlinearity Criteria for Cryptographic Functions". Eurocrypt '89. pp. 549–562.  
  3. ^ a b C. Carlet; L.E. Danielsen, M.G. Parker, P. Solé (19 May 2008). "Self Dual Bent Functions" (PDF). Fourth International Workshop on Boolean Functions: Cryptography and Applications (BFCA '08). Retrieved 21 September 2009.  
  4. ^ T. Xia; J. Seberry, J. Pieprzyk, C. Charnes (June 2004). "Homogeneous bent functions of degree n in 2n variables do not exist for n > 3". Discrete Applied Mathematics 142 (1-3): 127–132. ISSN 0166-218X. Retrieved 21 September 2009.  
  5. ^ A. Canteaut; P. Charpin, G. Kyureghyan (January 2008). "A new class of monomial bent functions" (PDF). Finite Fields and Their Applications 14 (1): 221–241. ISSN 1071-5797. Retrieved 21 September 2009.  
  6. ^ J. Olsen; R. Scholtz, L. Welch (November 1982). "Bent-Function Sequences". IEEE Transactions on Information Theory IT-28 (6): 858–864. ISSN 0018-9448. Retrieved 24 September 2009.  
  7. ^ R. Forré (August 1988). "The Strict Avalanche Criterion: Spectral Properties of Boolean Functions and an Extended Definition". CRYPTO '88. pp. 450–468.  
  8. ^ a b C. Adams; S. Tavares (January 1990). The Use of Bent Sequences to Achieve Higher-Order Strict Avalanche Criterion in S-Box Design. Technical Report TR 90-013. Queen's University. Retrieved 23 September 2009.  
  9. ^ K. Nyberg (April 1991). "Perfect nonlinear S-boxes". Eurocrypt '91. pp. 378–386.  
  10. ^ J. Seberry; X. Zhang (December 1992). "Highly Nonlinear 0-1 Balanced Boolean Functions Satisfying Strict Avalanche Criterion". AUSCRYPT '92. pp. 143–155. Retrieved 24 September 2009.  
  11. ^ a b C. Adams (November 1997). "Constructing Symmetric Ciphers Using the CAST Design Procedure". Designs, Codes, and Cryptography 12 (3): 283–316. ISSN 0925-1022. Retrieved 20 September 2009.  
  12. ^ Y. Zheng; J. Pieprzyk, J. Seberry (December 1992). "HAVAL—a one-way hashing algorithm with variable length of output" (PDF). AUSCRYPT '92. pp. 83–104. Retrieved 24 September 2009.  
  13. ^ M. Hell; T. Johansson, A. Maximov, W. Meier (PDF). A Stream Cipher Proposal: Grain-128. Retrieved 24 September 2009.  
  14. ^ K. Nyberg (May 1990). "Constructions of bent functions and difference sets". Eurocrypt '90. pp. 151–160.  
  15. ^ K. Khoo; G. Gong, D. Stinson (February 2006). "A new characterization of bent and semi-bent functions on finite fields" (PostScript). Designs, Codes, and Cryptography 38 (2): 279–295. ISSN 0925-1022. Retrieved 24 September 2009.  
  16. ^ Y. Zheng; X. Zhang (November 1999). "Plateaued Functions". Second International Conference on Information and Communication Security (ICICS '99). pp. 284–300. Retrieved 24 September 2009.  

Further reading



Got something to say? Make a comment.
Your name
Your email address