Английская Википедия:Bent function

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description

Файл:Boolean functions like 1000 nonlinearity.svg
The four 2-ary Boolean functions with Hamming weight 1 are bent; i.e., their nonlinearity is 1 (these Hadamard matrices show the Hamming distance to each of the eight linear and affine functions).Шаблон:Paragraph The following formula shows that a 2-ary function is bent when its nonlinearity is 1: Шаблон:GlossaryШаблон:DefnШаблон:Glossary end
Файл:0001 0001 0001 1110 nonlinearity.svg
The Boolean function <math>x_1 x_2 \oplus x_3 x_4</math> is bent; i.e., its nonlinearity is 6 (which is what these Hadamard Matrices show).Шаблон:Paragraph The following formula shows that a 4-ary function is bent when its nonlinearity is 6: Шаблон:GlossaryШаблон:DefnШаблон:Glossary end

In the mathematical field of combinatorics, a bent function is a Boolean function that is maximally non-linear; it is as different as possible from the set of all linear and affine functions when measured by Hamming distance between truth tables. Concretely, this means the maximum correlation between the output of the function and a linear function is minimal. In addition, the derivatives of a bent function are balanced Boolean functions, so for any change in the input variables there is a 50 percent chance that the output value will change.

The maximal nonlinearity means approximating a bent function by an affine (linear) function is hard, a useful property in the defence against linear cryptanalysis. In addition, detecting a change in the output of the function yields no information about what change occurred in the inputs, making the function immune to differential cryptanalysis.

Bent functions were defined and named in the 1960s by Oscar Rothaus in research not published until 1976.[1] 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.

It is known that V. A. Eliseev and O. P. Stepchenkov studied bent functions, which they called minimal functions, in the USSR in 1962.[2] However, their results have still not been declassified.

Bent functions are also known as perfectly nonlinear (PN) boolean functions. Certain functions that are as close as possible to perfect nonlinearity (e.g. for functions of an odd number of bits, or vectorial functions) are known as almost perfectly nonlinear (APN).[3]

Walsh transform

Bent functions are defined in terms of the Walsh transform. The Walsh transform of a Boolean function <math>f:\Z_2^n \to \Z_2</math> is the function <math>\hat{f}:\Z_2^n \to \Z</math> given by

<math>\hat{f}(a) = \sum_{\scriptstyle{x \in \Z_2^n}} (-1)^{f(x) + a \cdot x},</math>

where Шаблон:Nowrap is the dot product in ZШаблон:Sup sub.[4] Alternatively, let Шаблон:Nowrap and Шаблон:Nowrap. Then Шаблон:Nowrap and hence

<math>\hat{f}(a) = \left|S_0(a)\right| - \left|S_1(a)\right| = 2 \left|S_0(a)\right| - 2^n.</math>

For any Boolean function f and Шаблон:Nowrap, the transform lies in the range

<math>-2^n \leq \hat{f}(a) \leq 2^n.</math>

Moreover, the linear function Шаблон:Nowrap and the affine function Шаблон:Nowrap correspond to the two extreme cases, since

<math>
 \hat{f}_0(a) = 2^n,~
 \hat{f}_1(a) = -2^n.

</math>

Thus, for each Шаблон:Nowrap the value of <math>\hat{f}(a)</math> characterizes where the function f(x) lies in the range from f0(x) to f1(x).

Definition and properties

Rothaus defined a bent function as a Boolean function <math>f:\Z_2^n \to \Z_2</math> whose Walsh transform has constant absolute value. Bent functions are in a sense equidistant from all the affine functions, so they are equally hard to approximate with any affine function.

The simplest examples of bent functions, written in algebraic normal form, are Шаблон:Nowrap and Шаблон:Nowrap. This pattern continues: Шаблон:Nowrap is a bent function <math>\Z_2^n \to \Z_2</math> for every even n, but there is a wide variety of other bent functions as n increases.[5] The sequence of values (−1)f(x), with Шаблон:Nowrap 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

<math>\hat{f}(a) = W\left(2^n\right) (-1)^{f(a)},</math>

where W(2n) is the natural-ordered Walsh matrix and the sequence is treated as a column vector.[6]

Rothaus proved that bent functions exist only for even n, and that for a bent function f, <math>\left|\hat{f}(a)\right| = 2^{n/2}</math> for all Шаблон:Nowrap.[4] In fact, <math>\hat{f}(a) = 2^{n/2}(-1)^{g(a)}</math>, where g is also bent. In this case, <math>\hat{g}(a) = 2^{n/2}(-1)^{f(a)}</math>, so f and g are considered dual functions.[6]

Every bent function has a Hamming weight (number of times it takes the value 1) of Шаблон:Nowrap, 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 Шаблон:Nowrap, the maximum possible. Conversely, any Boolean function with nonlinearity Шаблон:Nowrap is bent.[4] The degree of f in algebraic normal form (called the nonlinear order of f) is at most Шаблон:Sfrac (for Шаблон:Nowrap).[5]

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[7] or those arising from a monomial over a finite field,[8] but so far the bent functions have defied all attempts at a complete enumeration or classification.

Constructions

There are several types of constructions for bent functions.[2]

  • Combinatorial constructions: iterative constructions, Maiorana–McFarland construction, partial spreads, Dillon's and Dobbertin's bent functions, minterm bent functions, bent iterative functions
  • Algebraic constructions: monomial bent functions with exponents of Gold, Dillon, Kasami, Canteaut–Leander and Canteaut–Charpin–Kuyreghyan; Niho bent functions, etc.

Applications

As early as 1982 it was discovered that maximum length sequences based on bent functions have cross-correlation and autocorrelation properties rivalling those of the Gold codes and Kasami codes for use in CDMA.[9] 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.[10] Indeed, the functions satisfying the SAC to the highest possible order are always bent.[11] Furthermore, the bent functions are as far as possible from having what are called linear structures, nonzero vectors a such that Шаблон:Nowrap 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, Шаблон:Nowrap is a balanced Boolean function, taking on each value exactly half of the time. This property is called perfect nonlinearity.[5]

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, and a stream cipher using a bent combining function is vulnerable to a correlation attack. 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.[5] But functions produced in this way may lose other desirable properties, even failing to satisfy the SAC – so careful testing is necessary.[11] 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.[12][13][14]

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.[14] The cryptographic hash function HAVAL uses Boolean functions built from representatives of all four of the equivalence classes of bent functions on six variables.[15] The stream cipher Grain uses an NLFSR whose nonlinear feedback polynomial is, by design, the sum of a bent function and a linear function.[16]

Generalizations

More than 25 different generalizations of bent functions are described in Tokareva's 2015 monograph.[2] There are algebraic generalizations (q-valued bent functions, p-ary bent functions, bent functions over a finite field, generalized Boolean bent functions of Schmidt, bent functions from a finite Abelian group into the set of complex numbers on the unit circle, bent functions from a finite Abelian group into a finite Abelian group, non-Abelian bent functions, vectorial G-bent functions, multidimensional bent functions on a finite Abelian group), combinatorial generalizations (symmetric bent functions, homogeneous bent functions, rotation symmetric bent functions, normal bent functions, self-dual and anti-self-dual bent functions, partially defined bent functions, plateaued functions, Z-bent functions and quantum bent functions) and cryptographic generalizations (semi-bent functions, balanced bent functions, partially bent functions, hyper-bent functions, bent functions of higher order, k-bent functions).

The most common class of generalized bent functions is the mod m type, <math>f:\mathbb{Z}_m^n \to \mathbb{Z}_m</math> such that

<math>\hat{f}(a) = \sum_{x \in \mathbb{Z}_m^n} e^{\frac{2\pi i}{m} (f(x) - a \cdot x)}</math>

has constant absolute value mn/2. Perfect nonlinear functions <math>f:\mathbb{Z}_m^n \to \mathbb{Z}_m</math>, those such that for all nonzero a, Шаблон:Nowrap takes on each value Шаблон:Nowrap 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.[17][18]

Semi-bent functions are an odd-order counterpart to bent functions. A semi-bent function is <math>f:\mathbb{Z}_m^n \to \mathbb{Z}_m</math> with n odd, such that <math>\left|\hat{f}\right|</math> 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.[19]

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.[20]

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. For these functions this distance is constant, which may make them resistant to an interpolation attack.

Other related names have been given to cryptographically important classes of functions <math>f:\Z_2^n \to \Z_2^n</math>, such as almost bent functions and crooked functions. While not bent functions themselves (these are not even Boolean functions), they are closely related to the bent functions and have good nonlinearity properties.

See also

References

Шаблон:Reflist

Further reading

  1. Ошибка цитирования Неверный тег <ref>; для сносок rothaus не указан текст
  2. 2,0 2,1 2,2 Ошибка цитирования Неверный тег <ref>; для сносок bent-book не указан текст
  3. Шаблон:Cite journal
  4. 4,0 4,1 4,2 Ошибка цитирования Неверный тег <ref>; для сносок bool не указан текст
  5. 5,0 5,1 5,2 5,3 Ошибка цитирования Неверный тег <ref>; для сносок nonlin не указан текст
  6. 6,0 6,1 Ошибка цитирования Неверный тег <ref>; для сносок dual не указан текст
  7. Ошибка цитирования Неверный тег <ref>; для сносок homo не указан текст
  8. Ошибка цитирования Неверный тег <ref>; для сносок mono не указан текст
  9. Ошибка цитирования Неверный тег <ref>; для сносок seq не указан текст
  10. Ошибка цитирования Неверный тег <ref>; для сносок spectral не указан текст
  11. 11,0 11,1 Ошибка цитирования Неверный тег <ref>; для сносок sac не указан текст
  12. Ошибка цитирования Неверный тег <ref>; для сносок nyberg не указан текст
  13. Ошибка цитирования Неверный тег <ref>; для сносок highly не указан текст
  14. 14,0 14,1 Ошибка цитирования Неверный тег <ref>; для сносок cast не указан текст
  15. Ошибка цитирования Неверный тег <ref>; для сносок haval не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок grain не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок nyberg2 не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок gbf2 не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок semi не указан текст
  20. Ошибка цитирования Неверный тег <ref>; для сносок plat не указан текст