Abstract

We present a method to iteratively construct new bent functions of variables from a bent function of variables and its cyclic shift permutations using minterms of variables and minterms of 2 variables. In addition, we provide the number of bent functions of variables that we can obtain by applying the method here presented, and finally we compare this method with a previous one introduced by us in 2008 and with the Rothaus and Maiorana-McFarland constructions.

1. Introduction

Boolean functions are widely used in different types of cryptographic applications, such as block ciphers, stream ciphers, and hash functions [13], and in coding theory [4, 5], among others. For example, the implementation of an S-box needs nonlinear Boolean functions to resist attacks such as the linear and differential cryptanalysis [69]. For an even number of variables, Boolean functions bearing maximum nonlinearity are called bent functions [10, 11]. The construction of one-to-one S-boxes so that any linear combination of the output functions is balanced has already been explained [12, 13] and also the issue of making such linear combination a bent function [14]. However, no conclusive approaches have been presented yet for the construction of all S-boxes so that they satisfy the property that any linear combination of the outputs is also bent. It is precisely for this reason that a thorough study of the properties of bent functions as well as of the methods to construct them has occupied the minds of many authors in the last decades (see, e.g., [9, 11, 1535] and the references therein).

Bent functions constitute a fascinating issue in cryptography but, unfortunately, there is a mist hovering over their properties, their classification, and their actual number. The origin of the concept of bent function takes us back to a theoretical article by McFarland [36] where he discussed difference sets in finite noncyclic groups. Dillon [24], a year later, systematized and further elaborated McFarland’s insights and provided proofs for a great number of properties; Dillon’s Ph.D. dissertation has been an excellent source in the field of bent functions up to the mid s. But it was Rothaus [37] who came up with the name for the concept. These functions are called perfect nonlinear Boolean functions by Meier and Staffelbach [30].

There are different ways to obtain bent functions; most of them are based on the algebraic normal form of a Boolean function and the Walsh transform. However, there are very few constructions of bent functions based on the truth table of Boolean functions, for example, the partial spread class of bent functions introduced by Dillon [24]; moreover, from the truth tables of linear functions and bent functions, it is possible to construct bent functions with a greater number of variables [38]. But not all the bent functions in variables can be obtained from bent functions and linear functions with a smaller number of variables, as proved by Chang [21]. Hou and Langevin [28] described how, from a well-known bent function, new bent functions can be obtained with the same number of variables.

Charnes et al. [39, 40] discovered a surprising relation with the classical invariant theory. Qu et al. [41] have found, by computer enumeration, an interesting class of bent functions with variables. Carlet and Guillot [19], Dobbertin [25], Kumar et al. [29], and Langevin [42] have analyzed some bent function constructions, characterizations, properties, and generalizations. Tokareva [34] introduces lower bound on the number of bent functions that can be obtained by the iterative constructions proposed by Canteaut and Charpin [43].

A general method for generating all bent functions is not known to exist yet, except for some particular cases. For example, it is well known that, for , there are only different bent functions, for , Preneel [32] (see also [21]) proved that the number of different bent functions is , and, for , Langevin and Leander [44] proved recently that the number of bent functions is . Nevertheless, the classification and counting for is still an open problem.

We refer the reader to the two excellent surveys in [18] and [23, Chapter 5] about bent functions.

The mentioned literature so far makes an intensive use of the representation of Boolean functions either in polynomial form, in matrix form, or in sequential form. Nevertheless, the classical concept of minterm, which, by the way, is directly related to the implementation of logic circuits and its complexity, has not been frequently applied (see [22]). This paper purports to practically generate bent functions using the representation of Boolean functions as a sum of minterms.

The use of the algebraic normal form or the truth table or both has its advantages and disadvantages. For example, the algebraic normal form of a Boolean function of variables provides directly its degree, and, if it is greater than , we can ensure that is not a bent function [37]; nevertheless, we do not know the cardinality of its support (i.e., the number of minterms). On the other hand, if we know the truth table of , then we know if its support has the necessary number of elements to be a bent function, although we do not know its degree.

The remainder of the paper is organized as follows. In Section 2, we present some basic definitions and notations used. In Section 3, we introduce a general method for the construction of bent functions of variables using a bent function of variables and some of its shifts; we also introduce some other important results required to prove the main theorems. In Section 4, we present the necessary results to count the number of bent functions we can construct based on the method dealt with in Section 3. Finally, in Section 5, we show that our construction generates bent functions which are not Rothaus or Maiorana-McFarland type (see, e.g., [29, 37]); we also show that the construction introduced in this paper is basically different from the construction introduced in [22] and we compute the number of bent functions we can obtain using one construction but not by the other one. In addition, we summarize the number of bent functions obtained by the different methods here considered.

2. Preliminaries

Consider the binary field with the addition modulo (denoted by ) and the multiplication modulo . For any positive integer , it is well known that is a linear space over with the addition given by for and in . Also, we consider the inner product of and . Furthermore, we say that if there exists (with ) such that So, we can order the elements such that Furthermore, if , then and we call the vector the binary expansion of the integer . With this representation, we can identify the vector with the integer and, consequently, we can identify the set with the set .

A Boolean function of variables is a map . The set of all Boolean functions of variables is a linear space over with the addition given by for . For a function of , the -sequence of length , is called the truth table of . The truth table of a Boolean function can be obtained by its minterms. A minterm on variables is an expression of the form where .

For , it is evident that if and only if . We will write instead of . So, the truth table, of has in the th position and elsewhere. Consequently, Also, since if and only if , we can identify the minterm with the integer (or with the vector as best suited).

Now, for all , it is well known that and since the identity implies for , we can state that the set is a basis of .

For all , we call the support of the set according to expression (11) and the identification of with . So, we can identify as the set of minterms of . Therefore, we can rewrite expression (11) as where or as best suited.

The Hamming weight of a -sequence , denoted by , is the number of s in . The Hamming weight of a Boolean function , denoted by , is the Hamming weight of its truth table ; that is, , and consequently, is the number of minterms in the expression of taken as a sum of minterms. A -sequence is balanced if it contains an equal number of s and s, so a function in is balanced if its truth table is balanced.

We say that is an affine function if it takes the form where , , and . If , is called a linear function.

The nonlinearity of a function is defined as where is the set of all affine functions and the distance , for , is defined as . The nonlinearity of is upper bounded (see, e.g., [11, 18, 23, 30]) by The Boolean functions achieving the maximum nonlinearity are called bent functions (see, e.g., [11, 18, 23, 30]). As a consequence, bent functions only exist for even.

It is well know that the above upper bound on the nonlinearity of a Boolean function of variables coincides with the covering radius of the first order binary Reed-Muller code of length (see, e.g., [30, 45]).

The following result (see, e.g., [11, 46]) that we quote for further references gives us a characterization of a bent function.

Theorem 1. Let be a function of variables. The following statements are equivalent. (1) is a bent function.(2)The Boolean function is balanced for all .(3)The number of s in the truth table of the Boolean function is for all .

Taking into account that, and as a consequence of the previous theorem, if is a bent function of variables, then the number of s in its truth table is ; so that and is not balanced. Equivalently, is expressed as a sum of minterms.

Finally, it is well known that for any bent function , the functions and , for all , are also bent functions.

Before moving onto the next section, remember that two Boolean functions and are called affine equivalent if there exist an invertible matrix , two vectors , and a bit such that .

It is known (see, e.g., [47]) that affine equivalent functions are both bent or both not bent. So, many authors work on the problem of finding the number and representatives of affine equivalent classes of bent functions. Nevertheless, we are interested in the problem of finding how many different bent functions there exist or we can construct, because not all affine equivalent bent functions are different as we can see in the following example.

Example 2. Consider the bent function of variables; the invertible matrix the vectors , , and the bit . It is easy to check that the Boolean functions and have both the same truth table and, consequently, are the same Boolean function.

3. Main Results

In the rest of the paper, we consider that is a vector of and that is a vector of .

Firstly, we introduce two important properties of the minterms which allow us to construct functions of variables from functions of variables. In the first one, for each minterm of variables, we obtain four different minterms of variables.

Lemma 3 (see Lemma 1 of [22]). Suppose that and . If is a minterm of variables and is a minterm of variables, then is a minterm of variables, where

The previous lemma tells us that the four minterms of variables, which can be obtained from the minterm of variables, are Note that if we use the vector representation for the indices of the minterms, the four minterms of variables obtained from the minterm of variables are

Furthermore, minterms have the following property that makes them operative from the algebraic point of view.

Lemma 4. One has for all .

Proof. Assume that then

The following theorem is the main result of this paper. Here, we present a construction of bent functions of variables from a bent function of variables and some cyclic shifts of .

Theorem 5. Let be a bent function of variables and consider . If is any permutation of , then is a bent function of variables.

Proof. According to Theorem 1 we must prove that the Boolean function, is balanced for all with . In the following, we use the vector as the argument of the functions and its integer representation as subindex of a minterm. So, by Lemma 4,
Now, for each , if we denote by the permutation of given by then it is not difficult to prove that the cases, corresponding to the different values of and , are reduced to one of the following four cases for some permutation of .
Consider
Consider
Consider
Consider Observe that each one of the factors which multiply to for can be written as
Now, by Theorem 1, since is balanced for all nonzero , we have that is balanced, unless .

Note that, as a consequence of Lemma 4, if is the support of , then is the support of for all . Furthermore, as a consequence of Lemma 3, if we use the decimal notation for the indices of the minterms and consider the permutation , then the support of the bent function constructed in Theorem 5 is the set Nevertheless, if we use the vector notation for the indices of the minterms and consider the permutation , then the support of is the set Note that the sets of expression (35) (resp., (36)) are pairwise disjoints by Lemma 3.

4. Counting Bent Functions

In this section we introduce some results in order to compute the number of bent functions we can construct using Theorem 5. Firstly, we consider three particular cases (see Corollaries 6, 7, and 8) which we can derive directly from Theorem 5. The first one corresponds to the case ; the second one to the case , and the third one to the case .

Corollary 6. If is a bent function of variables and is any permutation of , then is a bent function of variables.

Corollary 7. If is a bent function of variables, , and is any permutation of , then is a bent function of variables.

Corollary 8. If is a bent function of variables, , with , and is any permutation of , then is a bent function of variables.

The following result establishes that the bent functions constructed in Corollary 6 are all different from one another.

Lemma 9. Let and be bent functions of variables. Assume that is the bent function constructed in Corollary 6 using and the permutation of . Assume also that is the bent function constructed in Corollary 6 using and the permutation of . If , then .

Proof. If and are the truth tables of and , respectively, then the truth tables of and have four blocks (not necessarily in that order and not the same order for all):
If , then the four blocks of the second row are a permutation of the four blocks of the first row. But if we consider the cases corresponding to these permutations, we obtain that , or that and both have the same number of minterms and the complementary number of minterms. So, in all cases, we obtain a contradiction and, therefore, .

Our next result, whose proof is similar to the previous one, establishes that the bent functions constructed in Corollary 7 are all different from one another.

Lemma 10. Let and be bent functions of variables. Assume that is the bent function constructed in Corollary 7 using , the vector , and the permutation of . Assume also that is the bent function constructed in Corollary 7 using , the vector , and the permutation of  . If , then .

The same result is not true for the bent functions constructed using Corollary 8 as we can see in the following example.

Example 11. Assume that . Consider the vectors , and the bent function . Then, according to expression (10), Lemmas 3 and 4, and Corollary 8, we have that is a bent function of variables.
On the other hand, consider the vectors and and the bent function . Again, by expression (10), Lemmas 3 and 4, and Corollary 8, we have that is a bent function of variables. Clearly .

Note that, in the previous example, and that and are bases of the same linear subspace of . With the aim to avoid this situation which provides equal bent functions, we will consider only vectors such that is a Gauss-Jordan basis of cardinality . Remember that a set is a Gauss-Jordan basis of cardinality if the matrix whose rows are is in reduced row echelon form (see also [48, 49]).

So, our next result establishes that the bent functions constructed in Corollary 8 are all different if is a Gauss-Jordan basis of cardinality of .

Lemma 12. Let and be bent functions of variables. Assume that is the bent function constructed in Corollary 8 using , the Gauss-Jordan basis of cardinality of , and the permutation of . Assume also that is the bent function constructed in Corollary 8 using , the Gauss-Jordan basis of cardinality of , and the permutation of . If , then .

Proof. If and are the truth tables of and , respectively, then the truth tables of and have four blocks (not necessarily in that order and not the same order for all): where , , , , , and are the truth tables of , , , , , and , respectively.
If , then the four blocks of the second row are a permutation of the four blocks of the first row. But if we consider the cases corresponding to these permutations, we obtain that or that and both have the same number of minterms and the complementary number of minterms, or that note that if is a Gauss-Jordan basis of cardinality , then cannot be a Gauss-Jordan basis of cardinality . So, in all cases we obtain a contradiction and, therefore, .

Our next result establishes that none of the bent functions, obtained by one of Corollaries 6, 7, and 8, can be obtained by any of the others involved.

Lemma 13. Let , , and be three bent functions of variables (not necessarily different). Assume that is the bent function constructed in Corollary 6 using and the permutation of . Assume that is the bent function constructed in Corollary 7 using , the vector , and the permutation of . Assume also that is the bent function constructed in Corollary 8 using , the Gauss-Jordan basis of cardinality of , and the permutation of . Then , , and .

Proof. If , , and are the truth tables of , , and , respectively, then the truth tables of , , and have four blocks (not necessarily in that order and not the same order for all): where , , , and are the truth tables of , , , and , respectively.
The result is now evident because has three identical blocks, has only two identical blocks, and all the blocks of are different.

Now, as a consequence of the previous lemmas, we can obtain the number of bent functions of variables that we can construct using Corollaries 6, 7, and 8.

Theorem 14. If is the number of bent functions of variables, then using Corollaries 6, 7, and 8 one can construct different bent functions of variables.

Proof. According to Lemma 9, using Corollary 6, we can construct bent functions of variables.
Similarly, according to Lemma 10, using Corollary 7, we can construct bent functions of variables.
Finally, according to Lemma 12, using Corollary 8, we can construct bent functions of variables where is the number of Gauss-Jordan basis of cardinality in . Now, taking into account that each linear subspace of dimension has a unique Gauss-Jordan basis of cardinality , we have that is the number of linear subspaces of dimension in ; so (see [50, page 46])
The result follows now by replacing expression (49) in expression (48) and by adding expressions (46), (47), and (48) because Lemma 13 guarantees that bent functions constructed according to Corollaries 6, 7, and 8 are all different from one another.

5. Comparison with Other Methods

Our examples now show some bent functions constructed according to Corollaries 7 and 8 that are not Maiorana-McFarland functions or Rothaus functions.

Example 15. Assume that and consider the bent function , the vector , and the permutation . Then Corollary 7, expression (10), and Lemmas 3 and 4 provide the bent function which is not a Maiorana-McFarland function.

Example 16. Assume that and consider the bent function , the vectors , , and the permutation . Then Corollary 8, expression (10), and Lemmas 3 and 4 provide the bent function which is not a Rothaus function, because it does not contain the monomial .

In [22] we introduced the following construction of bent functions of variables using bent functions of variables and the minterms of two variables.

Theorem 17. (1) (Corollary 1 of [22]). If is a bent function of variables and if , then is a bent function of variables.
(2) (Corollary 2 of [22]). Let and be bent functions of variables such that
If is any permutation of , then is a bent function of variables.

In addition, we also establish [22, Theorem 3] that the number of different bent functions of variables we can construct using the previous theorem is that is, from Theorem 17(1) and from Theorem 17(2).

According to expression (10) it is evident that Corollary 6 and Theorem 17(1) provide the same bent functions. It is also evident that the bent functions constructed by Corollary 7 can be obtained by Theorem 17(2) if we take In fact, for , both constructions provide the same bent functions of variables. The following result establishes that this is the only case when both constructions provide the same bent functions.

Theorem 18. Let , , and be bent functions of variables and consider . If then .

Proof. If , , , and are the truth tables of the functions , , , and , respectively, then, according to Theorem 17(2) and Corollary 7, the truth tables of the functions and have four blocks (not necessarily in that order and not the same order for all):
If , then the four blocks of the second row are a permutation of the four blocks of the first row. But if we consider the cases corresponding to these permutations, we obtain that , , , , or . So, in all cases, we obtain a contradiction and, therefore, .

Although, for , both constructions provide the same bent functions of variables, for , Theorems 18 and 14 ensure that Theorem 17(2) provides (see expression (47) and the comment explaining expression (55)) bent functions of variables which cannot be obtained by Corollary 7.

Now, the following result, whose proof is similar to the previous one, establishes that none of the bent functions obtained by Corollary 8 can be obtained by Theorem 17(2) and vice versa.

Theorem 19. Let , , and be bent functions of variables and assume that is a Gauss-Jordan basis of cardinality of ; then .

So, Theorem 19 and expressions (48) and (49) ensure that the number of different bent functions of variables constructed by Corollary 8, which cannot be obtained by Theorem 17(2), is

Finally, adding expressions (55) and (60), we have the following result which establishes the number of different bent functions we can construct using Theorems 5 and 17.

Theorem 20. If is the number of bent functions of variables, then using Theorems 5 and 17 we can construct different bent functions of variables.

Table 1 summarizes the number of bent functions we can construct using Theorems 5 and 17 compared with the number of bent functions of the classes of Rothaus and Maiorana-McFarland and the iterative construction. The number of Rothaus functions for more than variables is unknown. Also, the number of bent functions of more than variables is unknown. Note that for variables the number of bent functions provided by Theorem 5 or by Theorem 17 (see comments after Theorem 18) is the same as the number of bent functions provided by Rothaus construction; nevertheless, both constructions provide different bent functions as we can see in Example 16. Using the iterative construction of Canteaut and Charpin [43], Tokareva [34] obtain the same number of bent functions for variables and more functions for a greater number of variables, but for and variables, she only provides a lower bound on the number of bent functions that can be obtained. Finally, an exhaustive computer search shows that the bent functions of variables obtained by iterative construction and Theorem 17 are the same.

6. Some Remarks

Note that the bent functions obtained by Theorem 5 can be obtained from some affine transformations of the bent function obtained in Theorem 17(1).

For example, for , consider the matrix, where is the identity matrix. It is not difficult to see that the bent function has the same truth table as the bent function and, therefore, both expressions define the same bent function. Analogously, for the matrix the bent function has the same truth table as the bent function and, therefore, both expressions define the same bent function.

We use the construction of Theorem 5 instead of the affine transformations because of the following.(i)As we explained in Example 2, not all the bent functions that are affine equivalent to a given function are different. This fact makes the computation of the number of functions we can construct a difficult task.(ii)The simplicity of the operations with minterms makes the computation of the support of the new bent functions evident.(iii)Finally, in Example 11, using two different bent functions of variables and two different pairs of vectors, we have obtained the same bent function of variables faster and in a clearer fashion. However, to achieve the same result using the affine equivalence, we need a greater number of algebraic manipulations and, besides, it is far from evident the choice of the appropriate pair of vectors to prevent the equality of the obtained functions.

The following example emphasizes the latter two items.

Example 21. For the functions and of Example 11, using the first and the second affine transformations introduced at the beginning of this section, we have, after some algebraic manipulations, the following functions:
As we know, both functions are the same, but, in this way, it is our contention that the support of those functions is not obtainable straightforwardly. Nevertheless, from Example 11, the support of the above functions is the set .

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

Acknowledgment

The work of the first author was partially supported by Spanish Grant MTM2011-24858 of the Ministerio de Economía y Competitividad of the Gobierno de España.