2. Preliminaries
It is to be noted that the notation is the field with two elements 0 and 1, with addition modulo 2 denoted by ⨁ and multiplication modulo 2 denoted by writing two elements conjointly. is used for representing the n-dimensional vector space over the field that consists of n-tuples with entries from . The elements in have been denoted using bold letters and 0 is used to denote the vector . consists of all elements of except 0.
For any two vectors and , define the following:
Scalar product of
and
as
Denote
as the cardinality of the set
A.
denotes the set of all Boolean functions in
n-variable. For any
and
, the
affine function is a Boolean function defined as
There are many ways of representing Boolean functions. However, in this paper, we use a truth table to represent Boolean functions. The
truth table representation of an
n-variable Boolean function
f is denoted by
where
are the elements in
in lexicographical order. Similarly, define
as
where
. The
algebraic normal form of
f at
is given by
where
and
.
The product
represents the point-wise multiplication of values of
and
. The hamming weight (or weight) of a vector, denoted by
, is the number of ones in the vector
. The hamming weight of a Boolean function is the weight of its truth table. An
n-variable Boolean function
f is balanced if
. Hamming distance (or distance) between two functions
denoted by
is defined as
. The support of a function
f denoted by
is defined as the set
. The algebraic degree of the function
f is defined as
Definition 1 (Nonlinearity)
. The Nonlinearity of f is given by The classification of Boolean functions based on nonlinearity led to the discovery of affine equivalence and extended affine equivalence.
Definition 2 (Affine equivalence). Two Boolean functions, f and g, are said to be affine equivalent if there exists an non-singular matrix A and a vector with .
Definition 3 (Extended affine equivalence)
. Two Boolean functions, f and g, are said to be extended affine equivalent if there exists an non-singular matrix A, vectors and , with Definition 4 (Bent functions). An n-variable Boolean function f with is called a bent function.
It is to be noted that bent functions can be defined only for positive even integers. The weight of a bent function is either or . So, corresponding to each n, we can partition the collection of all bent functions into two equal halves with weights and . If , then will be . Without any loss of generality, throughout this paper, we are considering bent functions with weight .
There are a good number of papers in the literature discussing the iterative, combinatorial, and exhaustive techniques for constructing bent functions [
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19]. There are two types of bent function constructions: primary and secondary. In the primary construction, the bent functions are constructed with respect to their properties, whereas, in the secondary construction, they are constructed using the known bent functions. Maiorana and McFarland independently came up with a primary construction technique known as Maiorana–McFarland construction. They have also calculated the number of functions that can be constructed using the Maiorana–McFarland construction; for
variable Boolean functions, it is
, which is still being used as the lower bound for the number of bent functions. The Maiorana-McFarland class is an example of an algebraic method for constructing bent functions. Additionally, bent functions can be generated iteratively by combining existing ones. One such approach involves using the direct sum of two bent functions to produce a new one, making it particularly useful for generating bent functions of higher dimensions from those of lower dimensions. This iterative process is part of the secondary construction method for bent functions. Later, a lot of primary construction techniques were developed. Depending on the techniques, bent functions are categorized into different classes, like Maiorana–McFarland class, partial spread class, class
, etc. [
2,
20]. The high algebraic degree of Boolean functions is also as important as that of nonlinearity. In 1962, Eliseev and Stepchenkov demonstrated that, if
, the degree of an
n-variable bent function cannot be greater than
. Using this concept, an upper bound for the number of bent functions was derived; for an
n-variable Boolean function, the value is
. This also reveals that the construction of Boolean functions with maximum nonlinearity and high algebraic degree is not possible. In most cases, Boolean functions are represented in algebraic normal form; however, a few papers represent Boolean functions using their support [
21]. A Boolean function
f is said to be perfect nonlinear if
is balanced for all non-zero elements
[
22,
23]. It is worth noting that all bent functions are perfect nonlinear functions.
Exploring Boolean functions becomes easier when we use alternative representations of them. So, understanding the concept of an incidence matrix becomes important.
Definition 5 (Incidence matrix)
. Let f be an n-variable Boolean function and S be the support of the function. We define the incidence matrix as Definition 6 (2-Rank of a Boolean function). The rank of the incidence matrix corresponding to the Boolean function is defined as the 2-rank of the Boolean function.
The relationship between bent functions’ rank and affine equivalence is explained in [
24]. Bent functions with different ranks will never be affine equivalent; however, all bent functions with the same rank need not be affine equivalent.
Let
denote the difference set
This also implies that
can be represented as the sum of two elements from the support of
f in
different ways. The definition of difference set has an important role in our construction.
3. Construction of Bent Function
The following theorem describes the relationship between the weight and nonlinearity of Boolean functions whose support is contained in the support of a bent function.
Theorem 1. Let f be an n-variable bent function with and g be an n-variable Boolean function with . Then, .
Proof. Let f be an n-variable bent function with . We have . Hence, if and only if for all and .
We know that .
From our assumption on g, it is clear that .
Since f is bent, is either 0, , or .
Therefore, .
The case is trivial, so, without any loss of generality, we consider .
Then,
gives . (Since , .) □
One method to construct bent functions is by extending a subset X of such that the Boolean function f with has until the .
Theorem 2. (Corollary 3.2 of [25]) Let f be an n-variable Boolean function. If , then . By Theorem 2, it is possible to choose first
elements randomly. In [
26], the authors tried to construct bent functions by extending an empty set to the support of an
n-variable bent function.
Theorem 3. (Lemma 2 of [26]). Let f be an n-variable Boolean function with for some . Then, For a bent function, for all .
By Theorem 3, the authors have tried to add elements in support by filling until it reaches the cardinality . This method has a limitation that it may not be possible to fill all the sets with the required number of elements. To overcome this issue, we have constructed bent functions using the structure of a known bent function. Corresponding to each subset of , we can define a tuple , where S is a subset of . For our convenience, we can also define for a Boolean function f as , where S is the support of the Boolean function f. The following definition will help to describe the construction process.
Definition 7. For an n-variable Boolean function f with support , we define , where represents the number of with .
Note that more than one Boolean function may have the same ND. For example, all the
n-variable bent functions with weight
have the tuple
where
. The term
refers to the
Number of
Difference sets.
Definition 8. Let f and g be two n-variable Boolean functions. f and g are -related if the support of f and g can be expressed as and , respectively, with for all .
We will now prove that the -relation is an equivalence relation.
Theorem 4. relation is an equivalence relation.
Proof. We need to prove that the relation is reflexive, symmetric, and transitive.
For an n-variable Boolean function f with , it is clear that for all . Hence, the relation is reflexive.
If any two n-variable Boolean functions f and g with supports A and B, respectively, are -related, then there are arrangements for the supports A and B as and , respectively, with for all . Clearly, for all . Hence, the relation is symmetric.
Let , g, and h be n-variable Boolean functions with supports A, B, and C, respectively. Suppose that f is -related with g and g is -related with h. Then, there are arrangements for the supports A and B as and , respectively, with for all . Similarly, there are arrangements for the supports B and C as and , respectively, with for all . Now, it is clear that for all . Hence, the relation is transitive. □
Definition 9 (-equivalence). Let f and g be two n-variable bent functions with supports A and B, respectively. Then, f and g are said to be -equivalent if the support of f and g can be expressed as and , respectively, with for all .
It is also possible to represent the inputs of an n-variable Boolean function as integers from 0 to . We use the integer form of the inputs whenever we use a Boolean function’s support. Here, , and 255 are used to represent , , , , and , respectively.
Affine equivalence and -equivalence are not the same but affine equivalence implies -equivalence. The following theorem explains it.
Theorem 5. Let f and g be n-variable affine equivalent Boolean functions; then, f and g are -equivalent.
Proof. Given that f and g are n-variable affine equivalent Boolean functions, there exist a non-singular matrix A and a vector with . Let ; then, we can take with . Since is a permutation on , both and have the same cardinality.
Claim: .
Let and .
.
That is, .
Let ; then, . □
Remark 1. The extended affine equivalence does not imply -equivalence.
Theorem 6. For n-variable Boolean function , Proof. Case 1: If , then for all ; hence, the support will be empty, that is, for all .
Case 2: If and , then for all ; hence, the support will be and all the elements of can be represented as the sum of 2 elements from the support in different ways, that is, for all .
Case 3: If , then will be a non-constant linear function; hence, its support will be a subspace of . Its cardinality will be , and also from the subspace (except zero) can be represented as a sum of 2 elements from the support in ways, that is, for different elements from and for the remaining elements. □
Remark 2. Since and , we obtain .
Theorem 7. Let f be a Boolean function with ; then, Proof. We are proving this lemma using three different cases.
Case 1: Let . There is no element in the support. It is not possible to represent elements in as the sum of two elements from the support. That is, for each . Now, .
Case 2: Let . There is only one element in the support. It is not possible to represent elements in as the sum of two elements (there is only one element) from the support. That is, for each . Now, .
If , then at least one of the , that is .
Case 3: Let , where . Then, we can represent different elements as the sum of two elements from the support. The expression will give us the total number of elements represented, which will be . From this, we can compute . □
By Theorem 7, it is clear that any two -equivalent functions have equal weight. It remains to verify whether the nonlinearities coincide for all -equivalent functions. The following results can be gathered directly from Definition 8:
If f is an n-variable bent function with , then = ;
If f is an n-variable bent function with , then = ;
If and are either 0 or 1, then ;
If with , then ;
If , then f and g are -equivalent;
If and , then f and g are -equivalent.
Our requirement is to construct the support of a bent function by adding elements to an empty set.
3.1. Construction Using ND-Equivalence
By Definition 9, it is possible to make -equivalent Boolean functions easily. Steps for constructing an -equivalent collection of bent functions is mentioned below:
Take the support of an n-variable bent function (with weight ) as K;
Let X be an empty set; it will become the support of a bent function by adding elements using Algorithm 1;
Arrange the elements in
K in a specific order (as mentioned in
Section 3.2). Let it be
. Compute
for
and add elements
one by one to
S. In each step, we need to add elements from the domain
to
X such that
;
In this way, a set X with is constructed, which turns into the support of a bent function.
For constructing a four-variable bent function, arranging elements from its support is not essential.
We have arranged the support of a six-variable bent function to generate many six-variable bent functions. The arrangement is {19, 52, 11, 23, 13, 18, 49, 8, 14, 22, 0, 2, 51, 32, 39, 1, 57, 29, 25, 27, 54, 62, 3, 31, 33, 38, 58, 61}. We are still working on arrangement of other bent functions. We could find the arrangement for a small number of bent functions, namely, four, six, and eight variables. In six and eight variables, we could find one arrangement for the support. It is possible to make four-, six-, and eight-variable
-equivalent bent functions concerning those arrangements. By following secondary construction techniques, it is also possible to construct bent functions on a higher number of variables, but they need not be
-equivalent. We have computed the rank of 10,000 eight-variable bent functions, which is captured in
Table 1.
Algorithm 1: Construction of n-variable bent functions |
![Symmetry 16 01501 i001]() |
The following conclusions are based on the data from
Table 1:
More than five different affine classes of bent functions belong to the same -equivalent class;
-equivalence is different from affine equivalence;
The number of -equivalent classes is fewer than that of affine equivalent classes.
The graph in
Figure 1 provides a geometric interpretation of the distribution of bent functions with respect to rank in the construction. Two of the functions generated using the algorithm is included in
Appendix A.
3.2. Bent Function Support Structure
From the definition of bent functions, they are the only non-constant functions that have NDF representation with all zeros except at one position, where the value is . As mentioned earlier, for our convenience, we can use decimal integers to represent vectors. Suppose we choose the support of 8-variable bent function as Y = {127, 191, 63, 223, 239, 207, 247, 87, 151, 23, 103, 167, 39, 71, 135, 7, 251, 91, 155, 27, 107, 171, 43, 75, 139, 11, 243, 83, 147, 19, 99, 163, 35, 67, 131, 3, 253, 93, 157, 29, 109, 173, 45, 77, 141, 13, 117, 181, 53, 213, 229, 197, 121, 185, 57, 217, 233, 201, 113, 177, 49, 209, 225, 193, 254, 94, 158, 30, 110, 174, 46, 78, 142, 14, 118, 182, 54, 214, 230, 198, 122, 186, 58, 218, 234, 202, 114, 178, 50, 210, 226, 194, 252, 92, 156, 28, 108, 172, 44, 76, 140, 12, 116, 180, 52, 212, 228, 196, 120, 184, 56, 216, 232, 200, 112, 176, 48, 208, 224, 192}; we obtain 160, 65, 230, 7, 112, 50, 116, 91, 29, 127 as the first 10 elements, but could not find any further elements. Such situations will happen if we do not arrange the elements from the support. For 8-variable bent functions, we have arranged them as Y = {99, 163, 35, 67, 131, 3, 243, 83, 147, 19, 107, 171, 43, 75, 139, 11, 251, 91, 155, 27, 103, 167, 39, 71, 135, 7, 247, 87, 151, 23, 127, 191, 63, 223, 239, 207, 109, 173, 45, 77, 141, 13, 253, 93, 157, 29, 110, 174, 46, 78, 142, 14, 254, 94, 158, 30, 108, 172, 44, 76, 140, 12, 252, 92, 156, 28, 117, 181, 53, 213, 229, 197, 121, 185, 57, 217, 233, 201, 113, 177, 49, 209, 225, 193, 118, 182, 54, 214, 230, 198, 122, 186, 58, 218, 114, 116, 180, 52, 212, 228, 196, 120, 184, 232, 200, 112, 176, 48, 178, 50, 210, 226, 194, 56, 224, 192, 234, 202, 216, 208}.
We have tried various well-known methods to arrange the support in order to obtain a bent function at each iteration. Among them, we explored the concept of the least squares method by minimizing and maximizing (). Our approach was to add elements to the support in such a way that the maximum difference between the difference sets would be minimized, but we could not find a proper arrangement for constructing bent functions. An 8-variable bent function with weight 120 has arrangements to its support, which is a huge number considering the computational capacity of present-day computers. Since it is easy to find four-variable bent functions using the algorithm, we have arranged the domain as cosets of a four-dimensional subspace. Using these four variable cosets, it is possible to find five-dimensional cosets; similarly, six- and seven-dimensional cosets can be generated. This construction is similar to the construction of difference sets in Boolean functions. In previous construction techniques, authors have constructed bent functions in separate difference sets and taken their union, but here we have constructed by adding elements to a set—the support.
Least squares method: The least squares method is a statistical procedure to find the best fit for a set of data points [
27]. The method works by minimizing the sum of the offsets or the residuals of points from the plotted curve. Least squares regression is used to predict the behavior of dependent variables.
In the required scenario, we can try the least squares method. We are adding elements to the support such that the difference between the cardinalities of each
becomes minimum. For this purpose, we can restrict the value of
to the minimum for adding each element to the support. The process works until the cardinality of the set becomes 102.
However, restricting the value of to its maximum will not yield the desired results.
Still, we are investigating the appropriate arrangement of the elements of the support for the construction.
3.3. Counting
Counting the number of Boolean functions in each specific class is important for explaining the complexity in cryptanalysis [
28,
29,
30,
31]. But, in some cases, finding the upper or lower bounds for the number of functions is also important [
32]. It is possible to calculate the number of supports that can be constructed using the algorithm in
Section 3. However, many of the sets are equal. To overcome this, we need to classify the supports, with respect to set equality. This will help to find the number of equal sets, which will be the cardinality of each class. The division of the total number of sets with the number of sets in each class will give the number of bent functions that can be constructed using Algorithm 1.
It is required to use the principle of counting to find the number of functions that can be constructed using Algorithm 1.
Counting principle: Consider a process that consists of r stages. Suppose the following:
- (a)
There are possible results for the first stage;
- (b)
For every possible result of the first stage, there are possible results at the second stage;
- (c)
More generally, for all possible results of the first stages, there are possible results at the stage. Then, the total number of possible results of the r-stage process is .
Corresponding to the support of each bent function, it is possible to construct different bent functions with the same weight. Furthermore, is an n-variable bent function if and only if f is an n-variable bent function. Effectively, it is possible to generate bent functions using each bent function.
We have also generated bent functions in four, six, and eight variables, but we are still investigating the exact number of sets in each class. Using the first counting principle, we have attempted to enumerate the number of distinct bent functions that we could generate in each variable. Estimation process included in
Table 2. The classification of generated functions into already known classes is not an easy task, but, with the help of 2-rank, it is possible to differentiate functions which are affinely equivalent from functions which are not.
One -equivalent class of bent function has functions from more than five different affine equivalent classes. Together with the Theorem 5, we can conclude that each -equivalent class has cardinality greater than that of the affine equivalent class. Further study on -equivalence will help us to find the count of bent functions.