JDM Journal of Discrete Mathematics 2090-9845 2090-9837 Hindawi Publishing Corporation 270424 10.1155/2013/270424 270424 Research Article Classification of Boolean Functions Where Affine Functions Are Uniformly Distributed http://orcid.org/0000-0002-1546-1702 Rout Ranjeet Kumar 1 http://orcid.org/0000-0002-1440-1679 Pal Choudhury Pabitra 1 Sahoo Sudhakar 2 Stǎnicǎ Pantelimon 1 Applied Statistics Unit Indian Statistical Institute Kolkata 700108 India isical.ac.in 2 Institute of Mathematics and Applications Bhubaneswar 751003 India iomaorissa.ac.in 2013 31 10 2013 2013 17 05 2013 22 08 2013 11 09 2013 2013 Copyright © 2013 Ranjeet Kumar Rout et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

The present paper on classification of n-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 n-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 n-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 . Further, it has also been elaborated in  about the procedures of selection of a representative assembly, with one member from each equivalence class. In , 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 n-input functions is specifically based on three criteria: the number of functions, the number of P classes, and the number of NPN classes, which are first introduced in . 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 . Heuristic design of cryptographically strong balanced Boolean function was envisaged in . In , 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 , 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 n-variable Boolean functions starting from 1-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 n-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 n-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) . Section 5 deals with concluding remarks emphasizing the key factors of the entire analysis.

2. Relevant Review

An n-variable Boolean function f is a mapping from the set of all possible n-bit strings {0,1}n into {0,1}. The number of different n-variable Boolean functions is 22n, where each function can be represented by a truth table output as a binary string of length 2n. 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 . The complement of f is denoted as f¯.

A Boolean function with algebraic expression, where the degree is at most one is called an affine Boolean function. The general form for n-variable affine function is (1)faffine(x1,x2,x3,,xn)=knxnkn-1xn-1k2x2k1x1k0, where the coefficients are either zero or one.

If the constant term k0 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 n-variable affine Boolean functions is 2n+1 out of which 2n are linear. As an example, the 16 affine Boolean functions in 3-variables are 0, 60, 90, 102, 150, 170, 204, 240, 15, 51, 85, 105, 153, 165, 195, and 255 out of which the first eight are linear and the remaining Boolean functions are their corresponding complements .

The concatenation of the Boolean function f with itself and the concatenation of f with its complement f¯ are denoted as ff and ff¯, respectively. For example, (2)iff=(00),then  ff=(0000),  ff¯=(0011).

Note that if f is a Boolean function of n-variable, then ff and ff¯ are Boolean functions of (n+1)-variable.

Theorem 1.

f    is linear if and only if ff and ff¯ are linear.

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

Corollary 2.

f is an affine Boolean function if and only if ff, ff¯, f¯f, and f¯f¯ 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 n-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 <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M63"><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula>-Variable Boolean Functions

Let S1={{00},{10},{11},{01}} be a set of all 1-variable Boolean functions. Here all the Boolean functions are affine. Let S1={{00},{10}} be a set containing all linear Boolean functions of 1-variable, and S1′′={{11},{01}} is the complement of the set S1. The Cartesian product of the sets S1 with S1 and S1′′ is defined successively as follows: (3)S1×S1={{0000,0010},{1000,1010},{1100,1110},{0100,0110}},S1×S1′′={{0011,0001},{1011,1001},{1111,1101},{0111,0101}}. Note that, S1 contains four classes each containing a 1-variable Boolean functions whereas, the set (S1×S1)(S1×S1′′) contains eight disjoint classes of all 2-variable Boolean functions. Here, each class contains exactly one 2-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.

Base case: (for n=1) (4)S1={{00},{10}},S1′′={{11},{01}},S1=(S1S1′′)={{00},{10},{11},{01}}.

Recursion: (for n2) (5)Sn=(Sn-1×Sn-1),Sn′′=(Sn-1×Sn-1′′),Sn=(Sn-1Sn-1′′),

where Sn contains the classes of all n-variable Boolean functions, where each class contains exactly one n-variable affine function. Here both the sets Sn and Sn′′ are complement to each other.

Theorem 3.

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

Proof.

The result follows because of the fact that (Sn-1×Sn-1)(Sn-1×Sn-1)=Sn-1×(Sn-1Sn-1′′)=Sn-1×Sn-1=Sn and (Sn-1×Sn-1)(Sn-1×Sn-1′′)=Sn-1×(Sn-1Sn-1′′)=Sn-1×ϕ=ϕ. And the property that each class contains exactly one n-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 (6)S2={{0000,0010},{1000,1010},{1100,1110},{0100,0110}{0011,0001},{1011,1001},{1111,1101},{0111,0101}}, and this set contains the classes of all 2-variable Boolean functions. The set S2={{0000,0010},{1000,1010},{1100,1110},{0100,0110}} is the first four classes of S2 and S2′′={{0011,0001},{1011,1001},{1111,1101},{0111,0101}} is the set containing the remaining classes of S2 and complement of the set S2. Now, the classes of 3-variables are generated using the formula as S3=(S2×S2), S3′′=(S2×S2′′), and S3=(S3S3′′). Some of the class members are shown in the following:(7)S3={00000000,00000010,00001000,00001010,00001100,00001110,00000100,00000110,Class  2,,Class  800100000,00100010,00101000,00101010,00101100,00101110,00100100,00100110},S3′′={00000011,00000001,00001011,00001001,00001111,00001101,00000111,00000101,Class  10,,Class  1600100011,00100001,00101011,00101001,00101111,00101101,00100111,00100101}. The naming of the classes is given as class 1, class 2,, class 2n+1 such that the complement of class k is the class (2n+k) where k=1,2,3,,2n. In (7), only the members of 1 and 13 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 2n+1.

Proof.

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

Theorem 5.

The classes are of equal size and the cardinality of each class is equal to 22n-(n+1).

Proof.

The equal size of the classes easily follows from the cardinality of the two sets Sn and Sn′′. On using Theorem 4, the cardinality of each class = (total  number  of  n-variableBoolean  functions)/(total  number  of  n-variable  affine  Boolean  functions)=(22n)/(2n+1)=22n-(n+1).

Theorem 6.

The least significant bit of all the Boolean functions in Sn is 0, whereas in Sn′′ it is 1.

Proof.

When n=1, that is for the base case of the recursion, the least significant bit position of all the Boolean functions in the set S1 is 0 and for the set S1′′ it is 1. 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 (n-1)-variable Boolean functions, but the partition is obtained in the set of n-variable Boolean functions. Therefore, an equivalence relation must exist on the set of n-variable Boolean functions, which divides the set into disjoint equivalence classes.

Theorem 7.

For each class of n-variable, the length of a Boolean function is 2n, out of which (n+1) bits are fixed and the remaining (2n-(n+1)) bits are changing with respect to the affine Boolean function of that class. The (n+1) bit positions of a Boolean function which are fixed in a class are calculated using the formula Pn-2k, where Pn=(2n+1) and the values of k=0,1,2,,n.

Proof (using mathematical induction).

Basis. For n=1, each class contains a single Boolean function of length 2. Hence both the first and second bit positions are fixed and it satisfies the formula P1-2k=(21+1)-2k for k=0 and 1. So, the bit positions are 3-20=2 and 3-21=1. Hence the formula is valid for n=1.

Induction Hypothesis. Assume that the formula is valid for the classes of (n-1)-variable Boolean functions, Sn-1. From recursive definition, the formula is also valid for all the classes of Sn-1 and Sn-1′′. Thus, by induction hypothesis, the invariant bit positions of a class of Sn-1 is calculated using the formula as given below: (8)Pn-1-2k,where  Pn-1=2n-1+1,k=0,1,2,,n-1.

Induction. Here we have to prove that the formula is true for all classes in Sn. According to the recursive formula Sn=(SnSn′′) where Sn=(Sn-1×Sn-1) and Sn′′=(Sn-1×Sn-1′′). Consider a particular class of Sn-1 and let it be C1. The corresponding classes of Sn which will be generated using (C1×Sn-1) must contain the Boolean functions of length 2n, where the first 2n-1 (starting from most significant bit) bit positions are from a single class C1. And hence by induction hypothesis, n number of bit positions is fixed and satisfies (9). From Theorem 6, the least significant bit position of the remaining string of length 2n-1 is 0 for all the members of the classes of Sn. Therefore, the bit positions of a Boolean function, which are fixed in a class of Sn is calculated by adding 2n-1 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 (n+1) invariant positions of a class in Sn. Thus for Sn, the formula is calculated as follows:

for k=0,1,2,,n-1, (9){Pn-1-2k}+2n-1={(2n-1+1)-2k}+2n-1={2n+1}-2k=Pn-2k; for k=n, the value is 1: (10)1=(2n+1)-2n=Pn-2n=Pn-2k.

So the formula is true for all the values of k=0,1,2,,n. The above formula is also true for all the classes of Sn, as any class in Sn is either generated using the formula (Sn-1×Sn-1) or (Sn-1×Sn-1′′). Hence, by the principle of mathematical induction, we conclude that Pn-2k is true for all positive integers n.

Illustration. For every 1-variable Boolean function, all the bit positions are fixed and the bit positions are (21+1)-20=2 and (21+1)-21=1. For every 2-variable Boolean function, three bit positions are fixed and the bit positions are (22+1)-20=4, (22+1)-21=3, and (22+1)-22=1. Similarly, for every 3-variable Boolean function, four bit positions are fixed and the bit positions are (23+1)-20=8, (23+1)-21=7, (23+1)-22=5, and (23+1)-23=1. For 3-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 {1,2,3,,2n}.

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 n-variable Boolean functions by which the same class or classes can be generated without using recursion.

Let f and g be two n-variable Boolean functions, and R is a binary relation on the set of n-variable Boolean functions defined as fRg if and only if “there exist (n+1) bit positions calculated on using Theorem 7 and the calculated bit positions are the same for the functions f and g.” Clearly,

fRff. So, R is reflexive.

If fRg then gRf. So, R is symmetric.

If fRg and gRh then fRh. So, R is transitive.

Hence, R 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 f be an n-variable affine Boolean function. Let B 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 B can be calculated using Algorithm 9. The worst case time complexity of the Algorithm is O(n).

Algorithm 9 (fixed-bit positions (<inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M227"><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:math></inline-formula>)).

Initialize X=2n

for (i=0 to n)

{

B [ i ] = X

X = B[i]-2i

}

return B.

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 2n-(n+1), except those fixed bit positions of f. Taking different affine functions as input, different classes can be generated.

3.3. List of Inferences Drawn from the above Classification Method

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.

The number of equivalence classes is equal to 2k, where k is the number of fixed positions.

Different set of fixed positions generates different classes of Boolean functions.

The number of members in a particular class is 2l for 0l2n-k, where l is the number of changing bit positions.

How to select the set of representative functions that generate disjoint equivalence classes of equal cardinality? The generators are all possible k 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 2k.

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 HD(f,g)=k, where k can be 0,1,2,,2n-(n+1) where f is a Boolean function and g is an affine Boolean function and both belong to the same class of n-variable. Further, Boolean functions in a class having HD=k with respect to the corresponding affine Boolean function form subclasses whose cardinality is binomial coefficients of the form Ck2n-(n+1), where k=0,1,2,,2n-(n+1).

Illustration. Table 1 shows the 3-variable Boolean functions belonging to class 1, where the affine Boolean function is 0=(00000000). There are five subclasses having cardinality 1, 4, 6, 4, and 1 with Hamming distance (HD)  0, 1, 2, 3, and 4, respectively. For 3-variables all classes and their subclasses are given in Appendix A.

Different subclasses of class 1.

Boolean functions Decimal value HD wrt affine Boolean function No. of Boolean function
00000000 (Affine) 0 0 1

00000010 2 1 4
00100000 32
00001000 8
00000100 4

00100010 34 2 6
00001010 10
00101000 40
00001100 12
00000110 4
00100100 36

00101010 42 3 4
00001110 14
00101100 44
00001100 12
00100110 38

00101110 36 4 1
4.2. XOR Operation in Classes

Let a=(a2n,a2n-1,,a1) and b=(b2n,b2n-1,,b1) be two n-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 1 functions, as (a+k)(b+k)=(ab)+(kk)=(ab), where, the XOR operation of a and b is defined as ab=(a2nb2n,a2n-1b2n-1,,a1b1).

Illustration. Suppose we want the XOR operation of (44)10 = (00101100)2 and (34)10 = (00100010)2 both belonging to class 1 of 3-variables. And 4434 =(00101100)(00100010)=(00001110)= 14. Table 2 is constructed for all classes of n-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 3-variables the XOR operation of other classes are given in Appendix B.

XOR values of class 1 of 3-variable Boolean functions.

XOR 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
0 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
2 2 0 6 4 10 8 14 12 34 32 38 36 42 40 46 44
4 4 6 0 2 12 14 8 10 36 38 32 34 44 46 40 42
6 6 4 2 0 14 12 10 8 38 36 34 32 46 44 42 40
8 8 10 12 14 0 2 4 6 40 42 44 46 32 34 36 38
10 10 8 14 12 2 0 6 4 42 40 46 44 34 32 38 36
12 12 14 8 10 4 6 0 2 44 46 40 42 36 38 32 34
14 14 12 10 8 6 4 2 0 46 44 42 40 38 36 34 32
32 32 34 36 38 40 42 44 46 0 2 4 6 8 10 12 14
34 34 32 38 36 42 40 46 44 2 0 6 4 10 8 14 12
36 36 38 32 34 44 46 40 42 4 6 0 2 12 14 8 10
38 38 36 34 32 46 44 42 40 6 4 2 0 14 12 10 8
40 40 42 44 46 32 34 36 38 8 10 12 14 0 2 4 6
42 42 40 46 44 34 32 38 36 10 8 14 12 2 0 6 4
44 44 46 40 42 36 38 32 34 12 14 8 10 4 6 0 2
46 46 44 42 40 38 36 34 32 14 12 10 8 6 4 2 0
4.3. CVT Operation in Classes

Let a=(ak,ak+1,,a1) and b=(bk,bk+1,,b1) be two Boolean functions in a Class. Then the Carry Value Transform (CVT) of a and b is defined in  as CVT(a,b)=(akbk,ak-1bk-1,,a1b1,0). Carry Value Transformation (CVT) is a kind of representation of n-variable Boolean functions and is used to produce many interesting patterns . Under the CVT operation, we have observed some interesting self-similar fractal patterns which are invariant for all classes of n-variable Boolean functions.

Illustration. The CVT operation of (44)10=(00101100)2 and (34)10=(00100010)2 is 64. The patterns for class 1 functions using CVT operation is shown in Table 3 and others are shown in Appendix C.

CVT patterns of class 1 of 3-variable Boolean functions.

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.

 Class 1 BF DV HD No. of BF 00000000 0 0 1 00000010 2 1 4 00100000 32 00001000 8 00000100 4 00100010 34 2 6 00001010 10 00101000 40 00001100 12 00000110 6 00100100 36 00101010 42 3 4 00001110 14 00101100 44 00100110 38 00101110 46 4 1 Class 2 BF DV HD No. of BF 10101010 170 0 1 10100010 162 1 4 10101000 168 10001010 138 10101110 174 10100000 160 2 6 10000010 130 10001000 136 10101100 172 10001110 142 10100110 166 10000000 128 3 4 10001100 140 10100100 164 10000110 134 10000100 132 4 1 Class 3 BF DV HD No. of BF 11001100 204 0 1 11001000 200 1 4 11001110 206 11101100 236 11000100 196 11000000 192 2 6 11001010 202 11101000 232 11101110 238 11000110 198 11100100 228 11000010 194 3 4 11100000 224 11101010 234 11100110 230 11100010 226 4 1 Class 4 BF DV HD No. of BF 01100110 102 0 1 01100010 98 1 4 01101110 110 01100100 100 01000110 70 01100000 96 2 6 01000010 66 01101010 106 01101100 108 01001110 78 01000100 68 01000000 64 3 4 01101000 104 01001010 74 01001100 76 01001000 72 4 1 Class 5 BF DV HD No. of BF 11110000 240 0 1 11110010 242 1 4 11010000 208 11111000 248 11110100 244 11010010 210 2 6 11111010 250 11011000 216 11111100 252 11110110 246 11010100 212 11011010 218 3 4 11111110 254 11011100 220 11010110 214 11011110 222 4 1 Class 6 BF DV HD No. of BF 01011010 90 0 1 01010010 82 1 4 01011000 88 01111010 122 01011110 94 01010000 80 2 6 01110010 114 01111000 120 01011100 92 01111110 126 01010110 86 01110000 112 3 4 01111100 124 01010100 84 01110110 118 01110100 116 4 1 Class 7 BF DV HD No. of BF 00111100 60 0 1 00111000 56 1 4 00111110 62 00011100 28 00110100 52 00110000 48 2 6 00111010 58 00011000 24 00011110 30 00110110 54 00010100 20 00110010 50 3 4 00010000 16 00011010 26 00010110 22 00010010 18 4 1 Class 8 BF DV HD No. of BF 10010110 150 0 1 10010010 146 1 4 10011110 158 10010100 148 10110110 182 10010000 144 2 6 10110010 178 10011010 154 10011100 156 10111110 190 10110100 180 10110000 176 3 4 10011000 152 10111010 186 10111100 188 10111000 184 4 1 Class 9 BF DV HD No. of BF 11111111 255 0 1 11111101 253 1 4 11011111 223 11110111 247 11111011 251 11011101 221 2 6 11110101 245 11010111 215 11110011 243 11111001 249 11011011 219 11010101 213 3 4 11110001 241 11010011 211 11011001 217 11010001 209 4 1 Class 10 BF DV HD No. of BF 01010101 85 0 1 01011101 93 1 4 01010111 87 01110101 117 01010001 81 01011111 95 2 6 01111101 125 01110111 119 01010011 83 01110001 113 01011001 89 01111111 127 3 4 01110011 115 01011011 91 01111001 121 01111011 123 4 1 Class 11 BF DV HD No. of BF 00110011 51 0 1 00110111 55 1 4 00110001 49 00010011 19 00111011 59 00111111 63 2 6 00110101 53 00010111 23 00010001 17 00111001 57 00011011 27 00111101 61 3 4 00011111 31 00010101 21 00011001 25 00011101 29 4 1 Class 12 BF DV HD No. of BF 10011001 153 0 1 10011101 157 1 4 10010001 145 10011011 155 10111001 185 10011111 159 2 6 10111101 189 10010101 149 10010011 147 10110001 177 10111011 187 10111111 191 3 4 10010111 151 10110101 181 10110011 179 10110111 183 4 1 Class 13 BF DV HD No. of BF 00001111 15 0 1 00001101 13 1 4 00101111 47 00000111 7 00001011 11 00101101 45 2 6 00000101 5 00100111 39 00000011 3 00001001 9 00101011 43 00100101 37 3 4 00000001 1 00100011 35 00101001 41 00100001 33 4 1 Class 14 BF DV HD No. of BF 10100101 165 0 1 10101101 173 1 4 10100111 167 10000101 133 10100001 161 10101111 175 2 6 10001101 141 10000111 135 10100011 163 10000001 129 10101001 169 10001111 143 3 4 10000011 131 10101011 171 10001001 137 10001011 139 4 1 Class 15 BF DV HD No. of BF 11000011 195 0 1 11000111 199 1 4 11000001 193 11100011 227 11001011 203 11001111 207 2 6 11000101 197 11100111 231 11100001 225 11001001 201 11101011 235 11001101 205 3 4 11101111 239 11100101 229 11101001 233 11101101 237 4 1 Class 16 BF DV HD No. of BF 01101001 105 0 1 01101101 109 1 4 01100001 97 01101011 107 01001001 73 01101111 111 2 6 01001101 77 01100101 101 01100011 99 01000001 65 01001011 75 01001111 79 3 4 01100111 103 01000101 69 01000011 67 01000111 71 4 1

BF: Boolean function, DV: decimal value, HD: Hamming distance, and No. BF: number of 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.

XOR 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
0 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
2 2 0 6 4 10 8 14 12 34 32 38 36 42 40 46 44
4 4 6 0 2 12 14 8 10 36 38 32 34 44 46 40 42
6 6 4 2 0 14 12 10 8 38 36 34 32 46 44 42 40
8 8 10 12 14 0 2 4 6 40 42 44 46 32 34 36 38
10 10 8 14 12 2 0 6 4 42 40 46 44 34 32 38 36
12 12 14 8 10 4 6 0 2 44 46 40 42 36 38 32 34
14 14 12 10 8 6 4 2 0 46 44 42 40 38 36 34 32
32 32 34 36 38 40 42 44 46 0 2 4 6 8 10 12 14
34 34 32 38 36 42 40 46 44 2 0 6 4 10 8 14 12
36 36 38 32 34 44 46 40 42 4 6 0 2 12 14 8 10
38 38 36 34 32 46 44 42 40 6 4 2 0 14 12 10 8
40 40 42 44 46 32 34 36 38 8 10 12 14 0 2 4 6
42 42 40 46 44 34 32 38 36 10 8 14 12 2 0 6 4
44 44 46 40 42 36 38 32 34 12 14 8 10 4 6 0 2
46 46 44 42 40 38 36 34 32 14 12 10 8 6 4 2 0
XOR 128 130 132 134 136 138 140 142 160 162 164 166 168 170 172 174
128 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
130 2 0 6 4 10 8 14 12 34 32 38 36 42 40 46 44
132 4 6 0 2 12 14 8 10 36 38 32 34 44 46 40 42
134 6 4 2 0 14 12 10 8 38 36 34 32 46 44 42 40
136 8 10 12 14 0 2 4 6 40 42 44 46 32 34 36 38
138 10 8 14 12 2 0 6 4 42 40 46 44 34 32 38 36
140 12 14 8 10 4 6 0 2 44 46 40 42 36 38 32 34
142 14 12 10 8 6 4 2 0 46 44 42 40 38 36 34 32
160 32 34 36 38 40 42 44 46 0 2 4 6 8 10 12 14
162 34 32 38 36 42 40 46 44 2 0 6 4 10 8 14 12
164 36 38 32 34 44 46 40 42 4 6 0 2 12 14 8 10
166 38 36 34 32 46 44 42 40 6 4 2 0 14 12 10 8
168 40 42 44 46 32 34 36 38 8 10 12 14 0 2 4 6
170 42 40 46 44 34 32 38 36 10 8 14 12 2 0 6 4
172 44 46 40 42 36 38 32 34 12 14 8 10 4 6 0 2
174 46 44 42 40 38 36 34 32 14 12 10 8 6 4 2 0
XOR 192 194 196 198 200 202 204 206 224 226 228 230 232 234 236 238
192 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46
194 2 0 6 4 10 8 14 12 34 32 38 36 42 40 46 44
196 4 6 0 2 12 14 8 10 36 38 32 34 44 46 40 42
198 6 4 2 0 14 12 10 8 38 36 34 32 46 44 42 40
200 8 10 12 14 0 2 4 6 40 42 44 46 32 34 36 38
202 10 8 14 12 2 0 6 4 42 40 46 44 34 32 38 36
204 12 14 8 10 4 6 0 2 44 46 40 42 36 38 32 34
206 14 12 10 8 6 4 2 0 46 44 42 40 38 36 34 32
224 32 34 36 38 40 42 44 46 0 2 4 6 8 10 12 14
226 34 32 38 36 42 40 46 44 2 0 6 4 10 8 14 12
228 36 38 32 34 44 46 40 42 4 6 0 2 12 14 8 10
230 38 36 34 32 46 44 42 40 6 4 2 0 14 12 10 8
232 40 42 44 46 32 34 36 38 8 10 12 14 0 2 4 6
234 42 40 46 44 34 32 38 36 10 8 14 12 2 0 6 4
236 44 46 40 42 36 38 32 34 12 14 8 10 4 6 0 2
138 46 44 42 40 38 36 34 32 14 12 10 8 6 4 2 0
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.

Slepian D. On the number of symmetry types of Boolean functions of n variables Canadian Journal of Mathematics 1953 5 2 185 193 MR0056560 ZBL0051.24802 Golomb S. W. On the classification of Boolean functions IRE Transactions on Circuit Theory 1959 6 5 176 186 10.1109/TCT.1959.1086595 Harrison M. A. On the classification of Boolean functions by the general linear and affine groups Journal of the Society for Industrial and Applied Mathematics 1964 12 2 285 299 MR0167431 ZBL0134.25802 Correia V. P. Reis A. I. Classifying n-input Boolean functions Proceedings of the 7th Workshop IBERCHIP (IWS '01) March 2001 Montevideo, Uruguay 58 66 Braeken A. Borissov Y. Nikova S. Preneel B. Caires L. Italiano G. F. Monteiro L. Palamidessi C. Yung M. Classification of Boolean functions of 6 variables or less with respect to some cryptographic properties Automata, Languages and Programming 2005 3580 Berlin, Germany Springer 324 334 Lecture Notes in Computer Science 10.1007/11523468_27 MR2184642 ZBL1082.94011 Stănică P. Sung S. H. Boolean functions with five controllable cryptographic properties Designs, Codes and Cryptography 2004 31 2 147 157 10.1023/B:DESI.0000012443.88578.69 MR2034592 ZBL1061.94050 Taranikov Y. V. Roy B. Okamoto E. On resilient functions with maximum possible nonlinearity Progress in Cryptology—INDOCRYPT 2000 2000 1977 Springer 19 30 Lecture Notes in Computer Science 10.1007/3-540-44495-5_3 Zhang X.-M. Zheng Y. Cryptographically resilient functions IEEE Transactions on Information Theory 1997 43 5 1740 1747 10.1109/18.623184 MR1476818 ZBL0890.94029 Millan W. Clark A. Dawson E. Nyberg K. Heuristic design of cryptographically strong balanced Boolean functions Advances in Cryptology—EUROCRYPT'98 1998 1403 Springer 489 499 Lecture Notes in Computer Science 10.1007/BFb0054148 Choudhury P. P. Sahoo S. Chakraborty M. Characterization of the evolution of nonlinear uniform cellular automata in the light of deviant states International Journal of Mathematics and Mathematical Sciences 2011 2011 16 605098 10.1155/2011/605098 MR2793388 Choudhury P. P. Sahoo S. Chakraborty M. Bhandari S. K. Pal A. Investigation of the global dynamics of cellular automata using Boolean derivatives Computers and Mathematics with Applications 2009 57 8 1337 1351 10.1016/j.camwa.2008.11.012 MR2512232 ZBL1186.68308 Sahoo S. Choudhury P. P. Chakraborty M. Characterization of any non-linear Boolean function using a set of linear operators Journal of Orissa Mathematical Society 2010 2 1-2 111 133 Choudhury P. P. Sahoo S. Nayak B. K. Hassan Sk. S. Theory of Carry Value Transformation (CVT) and its application in fractal formation Global Journal of Computer Science and Technology 2010 10 14 98 107 Wolfram S. A New Kind of Science 2002 Champaign, Ill, USA Wolfram Media MR1920418 Nayak B. K. Sahoo S. Biswal S. Cellular automata rules and linear numbers http://arxiv.org/abs/1204.3999