Next Article in Journal
Relative Growth of Series in Systems of Functions and Laplace—Stieltjes-Type Integrals
Previous Article in Journal
Gradation of Fuzzy Preconcept Lattices
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A New Family of Boolean Functions with Good Cryptographic Properties

by
Guillermo Sosa-Gómez
1,*,
Octavio Paez-Osuna
2,
Omar Rojas
1 and
Evaristo José Madarro-Capó
3
1
Facultad de Ciencias Económicas y Empresariales, Universidad Panamericana, Álvaro del Portillo 49, Zapopan, Jalisco 45010, Mexico
2
Ronin Institute, Montclair, NJ 07043, USA
3
Institute of Cryptography, University of Havana, Havana 10400, Cuba
*
Author to whom correspondence should be addressed.
Axioms 2021, 10(2), 42; https://doi.org/10.3390/axioms10020042
Submission received: 9 February 2021 / Revised: 16 March 2021 / Accepted: 22 March 2021 / Published: 25 March 2021

Abstract

:
In 2005, Philippe Guillot presented a new construction of Boolean functions using linear codes as an extension of the Maiorana–McFarland’s (MM) construction of bent functions. In this paper, we study a new family of Boolean functions with cryptographically strong properties, such as non-linearity, propagation criterion, resiliency, and balance. The construction of cryptographically strong Boolean functions is a daunting task, and there is currently a wide range of algebraic techniques and heuristics for constructing such functions; however, these methods can be complex, computationally difficult to implement, and not always produce a sufficient variety of functions. We present in this paper a construction of Boolean functions using algebraic codes following Guillot’s work.

1. Introduction

In today’s society, there is a dependency-based communications security for financial transactions [1], telematic services, and telephony networks. Each day, new challenges arise for the protection of sensitive information from unauthorized entities. Cryptosystems are divided into two main types: symmetric and asymmetric ciphers [2]. Symmetric cryptosystems are classified in two families: block ciphers and stream ciphers. A fundamental piece of many symmetric ciphers are Boolean functions [3] used, for example, in internal state S-boxes. For example, the well known DES block cipher uses 6 input bits and 4 output bits [4] and stream ciphers, like Mickey and Sosemanuk, in the eSTREAM final round portfolio [5].
Symmetric ciphers are classified, generally, in block cipher and stream cipher and a fundamental piece in the design of both type of ciphers are Boolean functions [3]. Block ciphers include Boolean functions as component function of internal state non-linear Vectorial function, called S-boxes [4], while stream ciphers that are feedback shift register based used them as non-linear combination, non-linear filtering, or irregular clock-control [5].
In a symmetric cipher system, one seeks cryptographically strong Boolean functions that can be of practical use and resistant to different kinds of attacks that have appeared over the years (differential attack, linear attack, correlation attack, algebraic attack, etc.).
Boolean functions appear in various scientific disciplines, including Coding Theory, Combinatorics, Complexity Theory, Cryptography, and Graphic Theory, among others. In Cryptography, the design and analysis of Boolean functions that possess specific properties has often being the focus of attention. A productive field of research for most of these cryptographic properties is the Walsh-Hadamard spectrum, one of the most widely used representations of the Boolean function.
The construction of cryptographically strong Boolean functions is a daunting task, and there is currently a wide range of algebraic techniques and heuristics for constructing such functions; however, these methods can be complex, computationally difficult to implement, and not always produce a sufficient variety of functions. We present in this paper a construction of Boolean functions using algebraic codes following Guillot’s work.

2. Preliminaries

Here, we follow Reference [6]. Let F 2 n be the binary vector space of dimension n over the Galois field of two elements F 2 . Given two vectors a, b F 2 n , we define the scalar product as
a · b = ( a 1 b 1 a n b n ) ,
and the sum as
a b = ( a 1 b 1 , , a n b n ) ,
where the product and sum ⊕ (also called XOR) are over F 2 .
An n-variable Boolean function f is a mapping
f : F 2 n F 2 .
We will denote by B n the set of all Boolean functions of n variables. The set B n is a vector space over F 2 with the addition ⊕ defined by
( f g ) ( x ) = f ( x ) g ( x ) ,
for any f , g B n and any x F 2 n . The polar form f ^ : F 2 n R , or sign function, of a Boolean function f B n , is defined by
f ^ ( x ) = 1 f ( x ) .
The truth table of a Boolean function f is the vector, indexed by the elements of F 2 n (in lexicographical order),
( f ( 0 ¯ ) , f ( 1 ¯ ) , , f ( 2 n 1 ¯ ) ) ,
where 0 ¯ = ( 0 , , 0 , 0 ) , 1 ¯ = ( 0 , , 0 , 1 ) , , 2 n 1 ¯ = ( 1 , , 1 , 1 ) . The polar truth table of f is the ( 1 , 1 ) sequence defined by
1 f ( 0 ¯ ) , , 1 f ( 2 n 1 ¯ ) .
The support f, denoted by S u p p ( f ) , is the set of vectors in F 2 n in which the image under f is 1, i.e.,
S u p p ( f ) = { x F 2 n f ( x ) = 1 } .
The weight of a Boolean function f B n , denoted by w ( f ) , is the cardinality of its support, i.e., w ( f ) = | S u p p ( f ) | . We will say that a function f B n is balanced if w ( f ) = 2 n 1 , i.e., if the truth table of f contains the same number of 0 and 1. This property is desirable in a Boolean function to resist differential attacks, such as those introduced by Shamir against the DES algorithm [7]. A Boolean function f B n is called affine if we can write it as
f ( x ) = a , x b ,
for some a F 2 n and b F 2 . If b = 0 , we say that f is a linear function. The set of affine functions will be denoted by A n . Let f , g B n . The distance, d ( f , g ) , between f and g, is the weight of the function f g , i.e.,
d ( f , g ) = w ( f g ) .
The non-linearity of a Boolean function f B n , denoted by N f , is the minimum distance between f and the set of affine functions A n , i.e.,
N f = m i n { d ( f , φ ) φ A n } .
A high non-linearity is desired to reduce the effect of linear cryptanalysis attacks [8].
A Boolean function in F 2 n can be expressed uniquely as a polynomial in
F 2 x 1 , , x n / x 1 2 x 1 , , x n 2 x n ,
through its Algebraic Normal Form (ANF)
f ( x ) = a F 2 n c a x 1 a 1 x n a n ,
where c a F 2 , and a = ( a 1 , , a n ) , with c a = x a f ( x ) , where x a means that x i a i , for all 1 i n , i.e., c a = g ( a 1 , , a n ) , and g is a function in B n called the Möbius Transform of f, denoted by g = μ ( f ) . The Algebraic Degree of a Boolean function f is the degree of its ANF. It follows that the algebraic degree of f B n does not exceed n, that is, is the number of variables in the highest order term with non-zero coefficient.
The Walsh-Hadamard Transform of a function f in F 2 n is the mapping H ( f ) : F 2 n R , defined by
H ( f ) ( h ) = x F 2 n f ( x ) ( 1 ) h · x .
Let f B n be a Boolean function, and let S be an arbitrary subspace of F 2 n and S the dual (annihilator) of S, i.e.,
S = { x F 2 n : x · s = 0 , s S } ,
then
u S H ( f ) ( u ) = 2 d i m S u S f ( u ) .
From the definition of the Walsh-Hadamard Transform, it follows that H ( f ^ ) ( u ) equals the number of zeros minus the number of ones in the binary vector f l u ( l u A n and l u ( v ) = i = 1 n u i v i ) such that
H ( f ^ ) ( u ) = 2 n 2 d ( f , i = 1 n u i v i ) ,
d ( f , i = 1 n u i v i ) = 1 2 ( 2 n H ( f ^ ) ( u ) ) ,
d ( f , 1 i = 1 n u i v i ) = 1 2 ( 2 n + H ( f ^ ) ( u ) ) .
We summarize these results in the following
Theorem 1.
The non-linearity f is determined by the Walsh-Hadamard Transform of f, i.e.,
N f = 2 n 1 1 2 max u F 2 n | H ( f ^ ) ( u ) | .
Proof. 
See proof in Reference [9]. □
In what follows, we summarize some factors which are important in the design of Boolean functions with good cryptographic properties [10]. An n-variable Boolean function is said to have correlation immunity of order m if and only if H ( f ^ ) ( u ) = 0 , with 1 w ( u ) m . A Boolean function with correlation immunity of order m and balanced is called m-resilient. The fundamental relationship between the number of variables n, the algebraic degree d, and the order of correlation immunity m of a Boolean function is m + d n ; see Reference [11].
The autocorrelation function r f ^ ( s ) of a Boolean function f is defined from its polar representation as
r f ^ ( s ) = x F 2 n f ^ ( x ) f ^ ( x s ) .
This value is proportional to the imbalance of all the first-order derivatives of the Boolean function. Small autocorrelation values are desirable, while Boolean functions having larger values are considered weak.
We say that a Boolean function has propagation criteria of order l, denoted by P C ( l ) if f ( x ) f ( x u ) is balanced for all u with 1 w ( u ) l .
The Strict Avalanche Criterion (SAC) [12], refers to the effect of changing all input bits. A Boolean function f is said to satisfy SAC if f ( x ) f ( x u ) is balanced for all u with w ( u ) = 1 .
Let q = 2 m , and let F q be the finite field with q elements. An F q linear error correcting codeC of length n is an F q linear subspace of F q n . The elements of C are called words. The weight w t ( x ) of a word x in C is the number of its non-zero coordinates. The minimum weight d of the code C is defined as the minimum of the weights among all non-zero words occurring in C. For x , y C , we define the Hamming distance d ( x , y ) between x and y as w t ( x y ) . The minimum distance of a code C is defined as
d = m i n { d ( x , y ) | x , y C , x y } .
If k is the dimension of C as a vector space over F q , then we say that C is a [ n , k , d ] q error correcting code. The Singleton bound states that the parameters of a code C must satisfy
n + 1 k + d .
A code satisfying the previous inequality with equality is called a maximum distance separable code, or simply a maximum distance separable (MDS)-code [13].
For q 2 , h 1 . Let Q = q h . Consider two codes which we call outer code and inner code. Let C be outer code with parameters [ N , K , D ] Q , and let I be inner code with parameters [ n , h , d ] q . The concatenation method [14] constructs a code F over F q out of a code over F Q . The first step is to fix any isomorphism φ : F Q I F q n . Then,
F : = { ( φ ( x 1 ) , , φ ( x N ) ) | ( x 1 , , x N ) C } .
The code F has parameters [ N · n , K · h , D · d ] q .

3. Maiorana-McFarland-Guillot’s Construction

The Maiorana–McFarland (MM) construction was originally designed to obtain bent functions [15]. It has been extended to construct resilient functions [16].
For n N , n 2 and F 2 n = E F , a decomposition into two complementary subspaces E of dimension p and F of dimension q = n p . For any application π : E F 2 n and any application h : E F 2 , the MM construction defines a Boolean function f as follows:
f : E F F 2 x + y π ( x ) · y + h ( x ) .
The application π is defined on F 2 n , but, since π ( x ) is wrapped by an internal product with an element of F, the value of f is invariant when π ( x ) is moved by a vector of F . So, π can be considered to be defined over the space F 2 n / F E , so that π : E E .
One of the properties we are interested in from a Boolean function is the Propagation Criteria. In Reference [16], it was shown that for a Boolean function to have Propagation Criteria of order k it is enough that the coset x 0 + F , with x 0 E , has w ( x 0 + F ) > k . Therefore, to find a Boolean function with P C ( k 1 ) , it is enough to select an appropriate x 0 in the complement of F, such that the lateral class x 0 + F has weight k .

4. Construction of π and h

4.1. π One-to-One

Following Guillot’s ideas, we note that we need to have all the values of π ( E ) . For u E , we will construct the lateral class u + F and calculate the minimum weight of this class for each u. Let us save these weights in the set U ( l ) = { u E : w ( u + F ) l + 1 } . In order to build π one by one, we must have q > p because we want our Boolean function to be balanced; this implies that H ( f ^ ) ( 0 ) = 0 , i.e., 0 π ( E ) . To build a Boolean function with a high resiliency order ( l ) , we must take care that the cardinality of U ( l ) 2 p . To build the image of π ( E ) , we take 2 p non-zero elements of U ( l ) , and we assign it randomly. In the same way, we randomly generate the values of h ( E ) using any pseudo-random generator.

4.2. π Two-to-One

Let u E . The linear functional v v · x 0 partitions the lateral class u + F into the sets
E 0 = { v u + F v · x 0 = 0 } ,
and
E 1 = { v u + F v · x 0 = 1 } .
Let w 0 and w 1 be the minimum weights of E 0 and E 1 , respectively. In order to construct an l resilient function, we need that
m a x { w 0 , w 1 } l + 1 .
We will store the pairs ( u , i ) such that w i = m a x { w 0 , w 1 } in the set U, i.e.,
U = { ( u , i ) | u E , w i = m a x { w 0 , w 1 } } .
We proceed to construct the image π ( E ) and the image h ( E ) . To do so, we first notice that translating by x 0 partitions E into two parts of size 2 p 1 : a p 1 dimensional subspace S 0 E not containing x 0 and its translate S 1 = x 0 + S 0 . We construct the image of π in such a way that π ( x ) = π ( x + x 0 ) for all x E . There are many possible ways of achieving this. For the image of h, we choose the value of h ( x ) at random for x S 0 , and we define h ( x + x 0 ) = h ( x ) + i such that ( π ( x ) , i ) U .

5. Construction of f

Recall that the Boolean function f is expressed as
f ( z ) = π ( x ) · y + h ( x ) ,
with z = x + y ; x E , y F . We have all the ingredients in place to compute f. For example, we may proceed as follows: without loss of generality, we may assume that the information coordinates for the code F are the first q coordinates. Then, given z = ( z 1 , z 2 , , z q , z q + 1 , , z n ) F 2 n , we may compute y using any systematic generator matrix G F for F as
y = ( z 1 , z 2 , , z q ) · G F ,
and then we obtain x by computing x = y + z . As we know the images of π an h for all x E (see previous section), we may obtain the value of f ( z ) .

6. Reed-Solomon Codes

The class of Reed-Solomon Codes [17] is considered of great importance in coding theory. They are members of the family of algebraic codes. Recall one of the standard descriptions of an extended Reed-Solomon code over F q [18]. Let F q = { 0 , 1 , α , α 2 , , α q 2 } . Consider the set
L = { f ( x ) F q x d e g r e e ( f ( x ) ) < r } .
The Reed-Solomon code R S ( r , q ) of length n = q is defined by
R S ( r , q ) : = { c = ( f ( 0 ) , f ( 1 ) , f ( α ) , f ( α 2 ) , , f ( α q 2 ) ) f ( x ) L } .
Because a polynomial of degree l has at most l zeros in F q , we see that R S ( r , q ) has minimum distance d = q r + 1 , which is the best possible, i.e., R S ( r , q ) is a maximum distance separable (MDS) code [18]. The code R S ( r , q ) has parameters
q , r , q r + 1 q .
In this paper, we will assume that q = 2 m ; then, R S ( r , 2 m ) has parameters
2 m , r , 2 m r + 1 2 m .

7. Boolean Functions from RS ( r , 2 m )

For our construction of Boolean functions, we will use a concatenated Reed-Solomon code. Let C = R S ( r , 2 m ) ; this is our outer code. Let I be the all even-weight codewords, then with parameters m + 1 , m , 2 2 . After concatenation, we obtain a code F with parameters
( m + 1 ) 2 m , m · r , 2 ( 2 m r + 1 ) 2 .
We will use our code F as the main ingredient to the MM construction, obtaining a new family of Boolean functions, in n = ( m + 1 ) 2 m variables. The dimension of the complementary vector space E is, therefore, ( m + 1 ) 2 m m · r , and F 2 n = E F .
We focus now in the lateral class x 0 + F . As F is constructed by evaluating all polynomials of degree less than r over F 2 m x , we can assume that x 0 is also constructed by evaluating a polynomial L ( x ) over F 2 m x . A polynomial L ( x ) can be obtained using Lagrange interpolation in which the evaluation produces a suitable concatenated x 0 . Let a 1 , . . . , a r be a set of information coordinates for the code R S ( r , 2 m ) , by Lagrange interpolation, we can obtain a polynomial L ( x ) of degree r such that L ( a i ) = 0 for i = 1 , . . . , r and L ( a i + 1 ) = s , s F 2 m { 0 } . The vector e v ( L ) is a vector in the complement of R S ( r , 2 m ) as a vector space over F 2 m , and the lateral class e v ( L ) + R S ( r , 2 m ) has minimum weight ≥ 2 m r . Let x 0 be the image of e v ( L ) under concatenation; it follows that x 0 is a vector in the complement of F as a binary vector space, and, by construction, the minimum weight of the lateral class x 0 + F is 2 ( 2 m r ) . Thus, by using our proposed F and x 0 in Guillot’s construction, we obtain a Boolean function satisfying P C ( 2 m + 1 2 r 1 ) .

8. On the Number of Distinct Boolean Functions

The cryptographic properties of the functions obtained in our construction depend solely on the properties of the code F and the image π ( E ) . Once π ( E ) and F are fixed, we may construct 2 p ! × 2 2 p (see Reference [16]) distinct Boolean functions with identical cryptographic properties. In our construction, we have incorporated extra choices in the concatenation step; namely, we have 2 2 k 1 choices for the isomorphism:
ϕ : F 2 2 k F 2 2 k + 1 ,
bringing the total number of distinct Boolean functions up to
2 p ! × 2 2 p × ( 2 2 k 1 ) .

9. Examples

9.1. Example # 1. π One-to-One

For this example, we will take n = 16 ; so, the d i m ( F ) = 9 and the d i m ( E ) = 7 was the one that was selected. For this, we select a code R S ( 3 , 4 ) over F 2 3 with primitive polynomial α 3 + α 2 + 1 and a concatenation code of even weight I = 4 , 3 , 2 .
Now,
G F = 1 1 1 1 0 a 1 a 2 1 + a 1 0 a 2 a 1 + a 2 1 + a 2 F 2 3 ,
G F = 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 ,
G E = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 .
We build all cosets of the form u + F , where u E , and we calculate the minimum weights of each class.
For n = 16 , the maximum resistance we can aspire to is l = 3 ; so, since E has 128 elements, we choose exactly from E , and we determinate.
U(3) = {D600, B900, 6B00, 5B00, EF00, DF00, D280, 3980, DB80, D200, B200, 7200, CA00, AA00, 6A00, 9A00, 5A00, 3A00, C600, A600, 6600, 9600, 5600, 3600, F600, 8E00, 2E00, EE00, DE00, BE00, D100, B100, 7100, A900, 6900, 9900, 5900, 3900, D800, F900, C500, A500, 6500, 9500, 5500, 3500, F500, 8D00, 2D00, ED00, DD00, BD00, C300, A300, 6300, 9300, 5300, F300, 8B00, 4B00, 2B00, B800, EB00, 1B00, 7800, DB00, BB00, 7B00, 4700, 2700, E700, 1700, D700, 7700, 0F00, CF00, AF00, 6F00, D400, 9F00, 5F00, 7400, 3F00, FF00, D080, B080, 7080, C880, A880, 6880, 5880, 3880, F880, 5480, 3480, F480, 2C80, EC80, DC80, BC80, C280, A280, 9280, 5280, CC00, 3280, F280, 8A80, 4A80, 2A80, EA80, 1A80, DA80, BA80, 4680, 2680, E680, 1680, D680, 0E80, CE80, AE80, C180, A180, 6180, 9180, 3180, F180} in hexadecimal but with u 0 to ensure that the function is balanced and in turn these vectors will be the images of π .
Now, we get the h ( E ) values randomly using any binary pseudo-random generator. In summary, our function will have the following properties: balanced, N f = 32,512, 3-resilient, and d e g ( f ) = 8 .

9.2. Example # 2. π Two to One

Suppose we want to build a 12-variable Boolean function. As the main ingredient, we use the Reed-Solomon code C = R S ( 3 , 4 ) over F 4 with parameters [ 4 , 3 , 2 ] . A generator matrix for C is
G = 1 1 1 1 0 α α + 1 1 0 α + 1 α 1 ,
where α 2 + α + 1 = 0 . We now obtain a binary code from C by concatenation with the even weight code I = { 000 , 101 , 011 , 110 } with parameters [ 3 , 2 , 2 ] . Any other 2-dimensional binary code will serve as an inner code. The next step is to choose any homomorphism ν between F 4 and I as vector spaces over F 2 . For our example, we choose 0 000 , 1 101 , α 011 , α + 1 110 . After concatenation, we obtain a binary code F with parameters [ 12 , 6 , 4 ] . A systematic generator matrix for F is given by
G F = 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 .
The row span of G F is the binary vector space F in the MM construction. As G F is systematic, i.e., the first 6 columns are the information coordinates of code F, we may easily describe the complementary space E with generator matrix
G E = 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 .
In this example, we have n = 12 , p = 6 , q = 6 , so we will build a two to one function π . The next step is to build x 0 E by concatenation of the evaluation vector of L ( x ) = x 2 + x . We obtain x 0 = { 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 } E . For each lateral class u + F with u E , we construct the sets E 0 = { v u + F : v · x 0 = 0 } and E 1 = { v u + F : v · x 0 = 1 } . Let d 0 = d ( E 0 ) , d 1 ( E 1 ) be the minimum distances of E 0 and E 1 , respectively, and let d j = m a x { d 0 , d 1 } . Next, we store the pairs ( u , j ) in an array. In this example, the array is given by
( u , 0 / 1 ) = u h u { 0 , 0 , 1 , 0 , 1 , 1 } 0 { 0 , 0 , 1 , 1 , 0 , 1 } 0 { 0 , 0 , 1 , 1 , 1 , 0 } 0 { 0 , 1 , 0 , 0 , 1 , 1 } 0 { 0 , 1 , 0 , 1 , 1 , 0 } 0 { 0 , 1 , 0 , 1 , 1 , 1 } 1 { 0 , 1 , 1 , 0 , 0 , 1 } 0 { 0 , 1 , 1 , 0 , 1 , 0 } 1 { 0 , 1 , 1 , 0 , 1 , 1 } 0 { 0 , 1 , 1 , 1 , 0 , 0 } 0 { 0 , 1 , 1 , 1 , 0 , 1 } 1 { 0 , 1 , 1 , 1 , 1 , 0 } 0 { 0 , 1 , 1 , 1 , 1 , 1 } 1 { 1 , 0 , 0 , 0 , 1 , 1 } 0 { 1 , 0 , 0 , 1 , 0 , 1 } 0 { 1 , 0 , 0 , 1 , 1 , 0 } 1 { 1 , 0 , 0 , 1 , 1 , 1 } 0 { 1 , 0 , 1 , 0 , 0 , 1 } 1 { 1 , 0 , 1 , 0 , 1 , 1 } 0 { 1 , 0 , 1 , 1 , 0 , 0 } 0 { 1 , 0 , 1 , 1 , 0 , 1 } 0 { 1 , 0 , 1 , 1 , 1 , 0 } 0 { 1 , 0 , 1 , 1 , 1 , 1 } 1 { 1 , 1 , 0 , 0 , 0 , 1 } 0 { 1 , 1 , 0 , 0 , 1 , 0 } 0 { 1 , 1 , 0 , 1 , 0 , 0 } 0 { 1 , 1 , 0 , 1 , 0 , 1 } 1 { 1 , 1 , 0 , 1 , 1 , 0 } 0 { 1 , 1 , 0 , 1 , 1 , 1 } 1 { 1 , 1 , 1 , 0 , 0 , 0 } 0 { 1 , 1 , 1 , 0 , 0 , 1 } 0 { 1 , 1 , 1 , 0 , 1 , 0 } 0 .
As might be noticed, all u in the previous arrays have weight ≥ 3 , as expected from Guillot’s results; so, the Boolean function we will construct will have resilience order 2. For x E , we define π ( x ) = π ( x + x 0 ) F 2 at random, and we define h ( x ) = h u and h ( x + x 0 ) = h u + h t , where h t is a random value in F 2 .
Using π and h defined above in the MM construction, the following cryptographic parameters for the Boolean function f were checked using sage: Balanced, non-linearity of 1984, propagation criteria of order 3, and resilience of order 2.

10. Conclusions

In this work, a complete description is made of how the images of π and h should be chosen to build the well-desired Boolean functions. The desirable cryptographic properties were carefully reviewed given the chosen construction, and we described the advantages and disadvantages of the aforementioned construction. We set which are going to do the optimal parameters to find the Boolean functions. Thus, it will be possible to know when the functions will be balanced and what order of propagation criterion they will have; thus, it will be possible to know the non-linearity and resiliency order. It is also important to note that a non-trivial factor is obtained in terms of the number of different functions obtained with the same properties. All of the above can be known beforehand by the characteristics and properties of the Reed-Solomon code used, according to the function that wants to be built from n-variables.

Author Contributions

Conceptualization, E.J.M.-C., G.S.-G. and O.P.-O.; methodology, E.J.M.-C., G.S.-G. and O.R.; software, E.J.M.-C., G.S.-G. and O.P.-O.; validation, E.J.M.-C., and O.R.; formal analysis, E.J.M.-C., G.S.-G., O.R. and O.P.-O.; investigation, E.J.M.-C., G.S.-G., O.R. and O.P.-O.; writing—original draft preparation, E.J.M.-C., G.S.-G., O.R. and O.P.-O.; writing—review and editing, G.S.-G., O.R. and O.P.-O.; supervision, O.R. and O.P.-O. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Informed Consent Statement

Informed consent was obtained from all subjects involved in the study.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Lachowicz, P. Walsh–Hadamard Transform and Tests for Randomness of Financial Return- Series. Presented at Quant at Risk (Online), 7 April 2015. Available online: https://quantatrisk.com/2015/04/07/walsh-hadamard-transform-python-tests-for-randomness-of-financial-return-series/ (accessed on 15 March 2021).
  2. Menezes, A.J.; Van Oorschot, P.C.; Vanstone, S.A. Handbook of Applied Cryptography; CRC Press: Boca Raton, FL, USA, 2018. [Google Scholar]
  3. Pasalic, E. On Boolean Functions in Symmetric-Key Ciphers; Lund University: Lund, Sweden, 2003. [Google Scholar]
  4. Zeebaree, S.R. DES encryption and decryption algorithm implementation based on FPGA. Indones. J. Electr. Eng. Comput. Sci. 2020, 18, 774–781. [Google Scholar] [CrossRef]
  5. Jiao, L.; Hao, Y.; Feng, D. Stream cipher designs: A review. Sci. China Inf. Sci. 2020, 63, 131101. [Google Scholar] [CrossRef] [Green Version]
  6. Cusick, T.W.; Stanica, P. Cryptographic Boolean Functions and Applications; Academic Press: Cambridge, MA, USA, 2017. [Google Scholar]
  7. Biham, E.; Shamir, A. Differential cryptanalysis of DES-like cryptosystems. J. Cryptol. 1991, 4, 3–72. [Google Scholar] [CrossRef]
  8. Langford, S.K.; Hellman, M.E. Differential-linear cryptanalysis. In Annual International Cryptology Conference; Springer: Berlin/Heidelberg, Germany, 1994; pp. 17–25. [Google Scholar]
  9. Chuan-Kun, W.; Dengguo, F. Boolean Functions and Their Applications in Cryptography; Springer: Berlin/Heidelberg, Germany, 2016. [Google Scholar] [CrossRef]
  10. Henríquez, F.R. De la búsqueda de funciones booleanas con buenas propiedades criptográficas. Cinvestav 2007, 26, 50–65. [Google Scholar]
  11. Chee, S.; Lee, S.; Lee, D.; Sung, S.H. On the correlation immune functions and their nonlinearity. In International Conference on the Theory and Application of Cryptology and Information Security; AsiaCrypt; Springer: Berlin/Heidelberg, Germany, 1996; pp. 232–243. [Google Scholar] [CrossRef]
  12. Forrié, R. The strict avalanche criterion: Spectral properties of Boolean functions and an extended definition. In Conference on the Theory and Application of Cryptography; Springer: Berlin/Heidelberg, Germany, 1988; pp. 450–468. [Google Scholar]
  13. Stichtenoth, H. A Note on Hermitian Codes Over GF(q2). IEEE Trans. Inf. Theory 1988, 34, 1345–1348. [Google Scholar] [CrossRef]
  14. Forney, G.D. Concatenated Codes; Citeseer: Princeton, NJ, USA, 1966; Volume 11. [Google Scholar]
  15. Carlet, C. A Larger Class of Cryptographic Boolean Functions via a Study of the Maiorana-McFarland Construction. In Advances in Cryptology; Springer: Berlin/Heidelberg, Germany, 2002; Volume 2442, pp. 549–564. [Google Scholar] [CrossRef] [Green Version]
  16. Guillot, P. Cryptographical boolean functions construction from linear codes. Boolean Funct. Cryptogr. Appl. 2005, 387, 141. [Google Scholar]
  17. Wicker, S.B.; Bhargava, V.K. Reed-Solomon Codes and Their Applications; John Wiley & Sons: Hoboken, NJ, USA, 1999. [Google Scholar]
  18. Van Lint, J.H. Introduction to Coding Theory; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2012; Volume 86. [Google Scholar]
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Sosa-Gómez, G.; Paez-Osuna, O.; Rojas, O.; Madarro-Capó, E.J. A New Family of Boolean Functions with Good Cryptographic Properties. Axioms 2021, 10, 42. https://doi.org/10.3390/axioms10020042

AMA Style

Sosa-Gómez G, Paez-Osuna O, Rojas O, Madarro-Capó EJ. A New Family of Boolean Functions with Good Cryptographic Properties. Axioms. 2021; 10(2):42. https://doi.org/10.3390/axioms10020042

Chicago/Turabian Style

Sosa-Gómez, Guillermo, Octavio Paez-Osuna, Omar Rojas, and Evaristo José Madarro-Capó. 2021. "A New Family of Boolean Functions with Good Cryptographic Properties" Axioms 10, no. 2: 42. https://doi.org/10.3390/axioms10020042

APA Style

Sosa-Gómez, G., Paez-Osuna, O., Rojas, O., & Madarro-Capó, E. J. (2021). A New Family of Boolean Functions with Good Cryptographic Properties. Axioms, 10(2), 42. https://doi.org/10.3390/axioms10020042

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop