#### Abstract

The present paper on classification of -variable Boolean functions highlights the process of classification in a coherent way such that each class contains a single affine Boolean function. Two unique and different methods have been devised for this classification. The first one is a recursive procedure that uses the Cartesian product of sets starting from the set of one variable Boolean functions. In the second method, the classification is done by changing some predefined bit positions with respect to the affine function belonging to that class. The bit positions which are changing also provide us information concerning the size and symmetry properties of the classes/subclasses in such a way that the members of classes/subclasses satisfy certain similar properties.

#### 1. Introduction

Classification of non-linear Boolean functions has been a long standing problem in the field of theoretical computer science. A systematic classification of Boolean functions with -variable having a representative in each class is a welcomed step in this area of study. It has been very accurately considered as vital and meaningful because of two important well-defined reasons: (a) equivalent functions in each class possess similar properties and (b) the number of representatives in each class is much less than that of Boolean functions.

Earlier, when two Boolean functions of -variable differ only by permutation or complementation of their variables, they fall into equivalence classes. The formula for counting the number of such equivalence classes is given in [1]. Further, it has also been elaborated in [2] about the procedures of selection of a *representative assembly*, with one member from each equivalence class. In [3], the linear group and the affine Boolean function group of transformations have been defined and an algorithm has been proposed for counting the number of classes under both groups. The classification of the set of -input functions is specifically based on three criteria: the number of functions, the number of classes, and the number of NPN classes, which are first introduced in [4]. Classification of the affine equivalence classes of cosets of the first order Reed-Muller code with respect to cryptographic properties such as correlation immunity, resiliency, and propagation characteristics has been discussed in [5–8]. Heuristic design of cryptographically strong balanced Boolean function was envisaged in [9]. In [10], three variable Boolean functions in the name of 3-neighborhood cellular automata rules have been classified on the basis of hamming distance with respect to linear rules. The characterization of 3-variable non-linear Boolean functions has been undertaken in three different ways, by Boolean derivatives, by deviant states, and by matrices as elaborated in the papers [10–12], respectively.

In this paper, two methods have been proposed for generating equivalence classes of Boolean functions with a specific objective in our mind that, in each class, exactly one affine Boolean function is present. The first method is a recursive approach to classify -variable Boolean functions starting from -variable to higher variables. In the second method, the classification is done through changing some variable bit positions with respect to the affine function belonging to that class.

In the following sections, the paper is organized in a precise methodical manner. In Section 2, the literature of Boolean functions of different variables relevant to our work is reviewed. In Section 3, the method of recursive classification of -variable Boolean functions is introduced and the properties of these classes are discussed. Based on these properties another efficient method has also been proposed for generating the same classes of -variable Boolean functions. In Section 4, we have studied the behavior of those classes by using different binary operations such as Hamming distance (HD), XOR operation, and Carry value transformation (CVT) [13]. Section 5 deals with concluding remarks emphasizing the key factors of the entire analysis.

#### 2. Relevant Review

An -variable Boolean function is a mapping from the set of all possible -bit strings into . The number of different -variable Boolean functions is , where each function can be represented by a truth table output as a binary string of length . The decimal equivalent of the binary string starting from bottom to top (least significant bit) in the truth table is called the rule number of that function [14]. The complement of is denoted as .

A Boolean function with algebraic expression, where the degree is at most one is called an affine Boolean function. The general form for -variable affine function is where the coefficients are either zero or one.

If the constant term of an affine function is zero then the function is called a *linear Boolean function.* Thus, affine Boolean functions are either linear Boolean functions or their complements. The number of different -variable affine Boolean functions is out of which are linear. As an example, the 16 affine Boolean functions in -variables are , , , , , , , , , , , , , , , and out of which the first eight are linear and the remaining Boolean functions are their corresponding complements [3].

The concatenation of the Boolean function with itself and the concatenation of with its complement are denoted as and , respectively. For example,

Note that if is a Boolean function of -variable, then and are Boolean functions of -variable.

Theorem 1. *is linear if and only if and are linear.*

Apart from the above concatenations as stated in Theorem 1, all other concatenations give non-linear Boolean functions [15].

Corollary 2. * is an affine Boolean function if and only if , , , and are affine Boolean functions.*

*Proof. *The proof of the corollary easily follows from Theorem 1 as affine Boolean functions are either linear Boolean functions or their complements.

#### 3. Proposed Methods for Classification of Boolean Functions

In this section, two different methods have been proposed to classify the set of all possible -variable Boolean functions such that each class is of equal cardinality and contains only a single affine function.

##### 3.1. A Recursive Procedure to Classify -Variable Boolean Functions

Let be a set of all -variable Boolean functions. Here all the Boolean functions are affine. Let be a set containing all linear Boolean functions of -variable, and is the complement of the set . The Cartesian product of the sets with and is defined successively as follows: Note that, contains four classes each containing a -variable Boolean functions whereas, the set contains eight disjoint classes of all -variable Boolean functions. Here, each class contains exactly one -variable affine Boolean function as highlighted above in (3). This process is repeated for the next higher variable, using the recursive formula of the following.(i)Base case: (for ) (ii)Recursion: (for ) where contains the classes of all -variable Boolean functions, where each class contains exactly one -variable affine function. Here both the sets and are complement to each other.

Theorem 3. *The recursive procedure of (4) and (5), when repeated up to times, classifies the set of all -variable Boolean functions into number of disjoint classes. such that each class contains exactly one -variable affine Boolean function along with some -variable non-linear Boolean functions.*

*Proof. *The result follows because of the fact that and . And the property that each class contains exactly one -variable affine Boolean function can be ascertained on using Corollary 2 of Section 2.

*Illustration (from 2-variable classes to 3-variable classes). *From (4) and (5) the set
and this set contains the classes of all -variable Boolean functions. The set is the first four classes of and is the set containing the remaining classes of and complement of the set . Now, the classes of -variables are generated using the formula as , , and . Some of the class members are shown in the following:
The naming of the classes is given as class , class , class such that the complement of class is the class where . In (7), only the members of and are shown and other classes of Boolean functions are shown in Appendix A.

Theorem 4. *The number of different classes in the above classification is .*

*Proof. *As each class contains exactly one affine Boolean function, the number of classes of -variable is the same as the number of affine Boolean functions and equals to .

Theorem 5. *The classes are of equal size and the cardinality of each class is equal to .*

*Proof. *The equal size of the classes easily follows from the cardinality of the two sets and . On using Theorem 4, the cardinality of each class = .

Theorem 6. *The least significant bit of all the Boolean functions in is , whereas in it is .*

*Proof. *When , that is for the base case of the recursion, the least significant bit position of all the Boolean functions in the set is and for the set it is . Therefore, the recursive procedure using the Cartesian product also preserves the same property for the next higher variable.

Interestingly, the relation defined in the recursive procedure is operating on the set of -variable Boolean functions, but the partition is obtained in the set of -variable Boolean functions. Therefore, an equivalence relation must exist on the set of -variable Boolean functions, which divides the set into disjoint equivalence classes.

Theorem 7. *For each class of -variable, the length of a Boolean function is , out of which bits are fixed and the remaining bits are changing with respect to the affine Boolean function of that class. The bit positions of a Boolean function which are fixed in a class are calculated using the formula , where and the values of .*

*Proof (using mathematical induction). **Basis*. For , each class contains a single Boolean function of length . Hence both the first and second bit positions are fixed and it satisfies the formula for and . So, the bit positions are and . Hence the formula is valid for .*Induction Hypothesis.* Assume that the formula is valid for the classes of -variable Boolean functions, . From recursive definition, the formula is also valid for all the classes of and . Thus, by induction hypothesis, the invariant bit positions of a class of is calculated using the formula as given below:
*Induction.* Here we have to prove that the formula is true for all classes in . According to the recursive formula where and . Consider a particular class of and let it be . The corresponding classes of which will be generated using must contain the Boolean functions of length , where the first (starting from most significant bit) bit positions are from a single class . And hence by induction hypothesis, number of bit positions is fixed and satisfies (9). From Theorem 6, the least significant bit position of the remaining string of length is for all the members of the classes of . Therefore, the bit positions of a Boolean function, which are fixed in a class of is calculated by adding to all the numbers generated from (9). Along with this, we have to include the least significant bit position (or the first position) in the formula, which gives invariant positions of a class in . Thus for , the formula is calculated as follows:

for ,
for , the value is 1:

So the formula is true for all the values of . The above formula is also true for all the classes of , as any class in is either generated using the formula or . Hence, by the principle of mathematical induction, we conclude that is true for all positive integers .*Illustration.* For every -variable Boolean function, all the bit positions are fixed and the bit positions are and . For every -variable Boolean function, three bit positions are fixed and the bit positions are , , and . Similarly, for every -variable Boolean function, four bit positions are fixed and the bit positions are , , , and . For -variable functions, all classes and their subclasses are given in Appendix A.

The set of bit positions which are changing in a class can be calculated by subtracting the set of invariant bit positions from the set .

Corollary 8. *The bit positions which are fixed or changing are invariant for all classes with respect to the concerned affine function of that class.*

*Proof. *The formula given in Theorem 7 is used to calculate the bit positions which are fixed or changing and valid for an arbitrary class. Hence, it is also valid for all classes.

Using the result of Theorem 7, an equivalence relation has been defined on the set of all possible -variable Boolean functions by which the same class or classes can be generated without using recursion.

Let and be two -variable Boolean functions, and is a binary relation on the set of -variable Boolean functions defined as if and only if “there exist bit positions calculated on using Theorem 7 and the calculated bit positions are the same for the functions and .” Clearly, (1). So, is reflexive.(2)If then . So, is symmetric.(3)If and then . So, is transitive. Hence, is an equivalence relation. The next procedure uses the above equivalence relation and can efficiently generate the same class or classes without using the recursive procedure.

##### 3.2. Procedure to Generate the Same Class without Using Recursion

Let be an -variable affine Boolean function. Let be an array which is used to store the bit positions, which are fixed for a Boolean function with respect to the affine function. Array can be calculated using Algorithm 9. The worst case time complexity of the Algorithm is .

*Algorithm 9 (fixed-bit positions ()). *(1)Initialize (2)for to (3)
{
(4) = (5) = (6)
}
(7)return .

By invoking the above function in an algorithm, we can get other non-linear functions in a class. For this purpose, one has to put all possible binary sequences of length , except those fixed bit positions of . Taking different affine functions as input, different classes can be generated.

##### 3.3. List of Inferences Drawn from the above Classification Method

(1)The method of keeping some of the bit positions fixed and varying other bit positions with respect to a Boolean function will be a handle to find out equivalence classes of equal cardinality.(2)The number of equivalence classes is equal to , where is the number of fixed positions.(3)Different set of fixed positions generates different classes of Boolean functions.(4)The number of members in a particular class is for , where is the number of changing bit positions.(5)How to select the set of representative functions that generate disjoint equivalence classes of equal cardinality? The generators are all possible bit sequences in the fixed positions and the rest of the positions are arbitrarily filled up by 0/1. Any Boolean function generated through this procedure can be a representative for the class. The number of generators for the proposed classification is .(6)Any Boolean function of a class can be a representative of that class. In fact, taking affine function as the representative of a class will provide us with the guarantee of the inclusion of that affine function in that class.

#### 4. Different Operations in Classes

In this section, classes are divided into several subclasses on using the Hamming distance (HD) between the Boolean functions and the affine function in that class. Also, the classes are analyzed on performing XOR and CVT operations among the functions of a class.

##### 4.1. Subclassification

Hamming distance (HD) between two Boolean functions is denoted as , where can be where is a Boolean function and is an affine Boolean function and both belong to the same class of -variable. Further, Boolean functions in a class having with respect to the corresponding affine Boolean function form subclasses whose cardinality is* binomial coefficients* of the form , where .

*Illustration.* Table 1 shows the -variable Boolean functions belonging to class , where the affine Boolean function is . There are five subclasses having cardinality , , , , and with Hamming distance , , , , and , respectively. For -variables all classes and their subclasses are given in Appendix A.

##### 4.2. XOR Operation in Classes

Let and be two -variable Boolean functions belonging to a particular class. The XOR operation of all the classes when arranged in a table only gives those entries given by class functions, as , where, the XOR operation of and is defined as .

*Illustration.* Suppose we want the XOR operation of = and = both belonging to class of -variables. And == . Table 2 is constructed for all classes of -variable Boolean functions that contain only the XOR values of all the functions in a class. The functions are arranged in ascending order in both rows and columns of the table. It can be proved that the content of each table remain invariant under the XOR operation and the decimal values of the content in the table are same as in class 1. For -variables the XOR operation of other classes are given in Appendix B.

##### 4.3. CVT Operation in Classes

Let and be two Boolean functions in a Class. Then the Carry Value Transform (CVT) of and is defined in [13] as . Carry Value Transformation (CVT) is a kind of representation of -variable Boolean functions and is used to produce many interesting patterns [13]. Under the CVT operation, we have observed some interesting self-similar fractal patterns which are invariant for all classes of -variable Boolean functions.

*Illustration.* The CVT operation of and is . The patterns for class functions using CVT operation is shown in Table 3 and others are shown in Appendix C.

#### 5. Conclusion

The novelty of this paper lies in its systematic classification of Boolean functions with focal emphasis on the prominent binary operations like Hamming distance, XOR, and CVT. The present analytical study introduces a new way towards the formulation of an universal classifier of arbitrary length which is being actively pursued. The procedures followed in this paper are very handy and useful even for our future experimental research in this domain of theoretical computer science. A number of tables have been incorporated in this paper for easy reference and clear comprehension showing varied subclasses, patterns, and values of different classes.

#### Appendices

#### A. Subclassification

Table 4 shows the classes and subclasses of 3-variable Boolean functions.

#### B. XOR Operations in Classes

Table 5 shows the XOR operation values of class-1, class-2 and class-3 of 3-variable Boolean functions.

#### C. CVT Operations in Classes

Table 6 shows the CVT (Carry Value Transformation) patterns of class 1, class 2 and class 3 of 3-variable Boolean Functions.

#### Acknowledgment

The authors are grateful to Professor Birendra Kumar Nayak of Utkal University and Mr Sk. Sarif Hassan of Institute of Mathematics and Applications, Bhubaneswar, for their valuable suggestions.