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.
MSC:
06E30; 94C10
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 be the binary vector space of dimension n over the Galois field of two elements . Given two vectors a,, we define the scalar product as
and the sum as
where the product and sum ⊕ (also called XOR) are over .
An n-variable Boolean function f is a mapping
We will denote by the set of all Boolean functions of n variables. The set is a vector space over with the addition ⊕ defined by
for any and any . The polar form , or sign function, of a Boolean function , is defined by
The truth table of a Boolean function f is the vector, indexed by the elements of (in lexicographical order),
where , , . The polar truth table of f is the sequence defined by
The support f, denoted by , is the set of vectors in in which the image under f is 1, i.e.,
The weight of a Boolean function , denoted by , is the cardinality of its support, i.e., . We will say that a function is balanced if , 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 is called affine if we can write it as
for some and . If , we say that f is a linear function. The set of affine functions will be denoted by . Let . The distance, , between f and g, is the weight of the function , i.e.,
The non-linearity of a Boolean function , denoted by , is the minimum distance between f and the set of affine functions , i.e.,
A high non-linearity is desired to reduce the effect of linear cryptanalysis attacks [8].
A Boolean function in can be expressed uniquely as a polynomial in
through its Algebraic Normal Form (ANF)
where , and , with , where means that for all , i.e., , and g is a function in called the Möbius Transform of f, denoted by . The Algebraic Degree of a Boolean function f is the degree of its ANF. It follows that the algebraic degree of 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 is the mapping , defined by
Let be a Boolean function, and let S be an arbitrary subspace of and the dual (annihilator) of S, i.e.,
then
From the definition of the Walsh-Hadamard Transform, it follows that equals the number of zeros minus the number of ones in the binary vector and such that
We summarize these results in the following
Theorem 1.
The non-linearity f is determined by the Walsh-Hadamard Transform of f, i.e.,
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 , with . 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 ; see Reference [11].
The autocorrelation function of a Boolean function f is defined from its polar representation as
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 if is balanced for all u with .
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 is balanced for all u with .
Let , and let be the finite field with q elements. An linear error correcting codeC of length n is an linear subspace of . The elements of C are called words. The weight 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 , we define the Hamming distance between x and y as . The minimum distance of a code C is defined as
If k is the dimension of C as a vector space over , then we say that C is a error correcting code. The Singleton bound states that the parameters of a code C must satisfy
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 . Let . Consider two codes which we call outer code and inner code. Let C be outer code with parameters , and let I be inner code with parameters . The concatenation method [14] constructs a code F over out of a code over . The first step is to fix any isomorphism . Then,
The code F has parameters .
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 and , a decomposition into two complementary subspaces E of dimension p and F of dimension . For any application and any application , the MM construction defines a Boolean function f as follows:
The application is defined on , but, since is wrapped by an internal product with an element of F, the value of f is invariant when is moved by a vector of . So, can be considered to be defined over the space , so that .
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 , with , has . Therefore, to find a Boolean function with , it is enough to select an appropriate in the complement of F, such that the lateral class has weight .
4. Construction of and
4.1. One-to-One
Following Guillot’s ideas, we note that we need to have all the values of . For , we will construct the lateral class and calculate the minimum weight of this class for each u. Let us save these weights in the set . In order to build one by one, we must have because we want our Boolean function to be balanced; this implies that , i.e., . To build a Boolean function with a high resiliency order , we must take care that the cardinality of . To build the image of , we take non-zero elements of , and we assign it randomly. In the same way, we randomly generate the values of using any pseudo-random generator.
4.2. Two-to-One
Let . The linear functional partitions the lateral class into the sets
and
Let and be the minimum weights of and , respectively. In order to construct an resilient function, we need that
We will store the pairs such that in the set U, i.e.,
We proceed to construct the image and the image . To do so, we first notice that translating by partitions E into two parts of size : a dimensional subspace not containing and its translate . We construct the image of in such a way that for all . There are many possible ways of achieving this. For the image of h, we choose the value of at random for , and we define such that .
5. Construction of
Recall that the Boolean function f is expressed as
with ; . 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 we may compute y using any systematic generator matrix for F as
and then we obtain x by computing As we know the images of an h for all (see previous section), we may obtain the value of .
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 [18]. Let . Consider the set
The Reed-Solomon code of length is defined by
Because a polynomial of degree l has at most l zeros in , we see that has minimum distance , which is the best possible, i.e., is a maximum distance separable (MDS) code [18]. The code has parameters
In this paper, we will assume that ; then, has parameters
7. Boolean Functions from
For our construction of Boolean functions, we will use a concatenated Reed-Solomon code. Let ; this is our outer code. Let I be the all even-weight codewords, then with parameters . After concatenation, we obtain a code F with parameters
We will use our code F as the main ingredient to the MM construction, obtaining a new family of Boolean functions, in variables. The dimension of the complementary vector space E is, therefore, , and .
We focus now in the lateral class . As F is constructed by evaluating all polynomials of degree less than r over , we can assume that is also constructed by evaluating a polynomial over . A polynomial can be obtained using Lagrange interpolation in which the evaluation produces a suitable concatenated . Let be a set of information coordinates for the code , by Lagrange interpolation, we can obtain a polynomial of degree r such that for and . The vector is a vector in the complement of as a vector space over , and the lateral class has minimum weight ≥. Let be the image of under concatenation; it follows that is a vector in the complement of F as a binary vector space, and, by construction, the minimum weight of the lateral class is . Thus, by using our proposed F and in Guillot’s construction, we obtain a Boolean function satisfying .
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 . Once and F are fixed, we may construct (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 choices for the isomorphism:
bringing the total number of distinct Boolean functions up to
9. Examples
9.1. Example # 1. One-to-One
For this example, we will take ; so, the and the was the one that was selected. For this, we select a code over with primitive polynomial and a concatenation code of even weight .
Now,
We build all cosets of the form , where , and we calculate the minimum weights of each class.
For , the maximum resistance we can aspire to is ; so, since E has 128 elements, we choose exactly from , 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 to ensure that the function is balanced and in turn these vectors will be the images of .
Now, we get the values randomly using any binary pseudo-random generator. In summary, our function will have the following properties: balanced, 32,512, 3-resilient, and .
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 over with parameters . A generator matrix for C is
where . We now obtain a binary code from C by concatenation with the even weight code with parameters . Any other 2-dimensional binary code will serve as an inner code. The next step is to choose any homomorphism between and I as vector spaces over . For our example, we choose . After concatenation, we obtain a binary code F with parameters . A systematic generator matrix for F is given by
The row span of is the binary vector space F in the MM construction. As 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
In this example, we have , so we will build a two to one function . The next step is to build by concatenation of the evaluation vector of . We obtain . For each lateral class with , we construct the sets and Let be the minimum distances of and , respectively, and let . Next, we store the pairs in an array. In this example, the array is given by
As might be noticed, all u in the previous arrays have weight ≥, as expected from Guillot’s results; so, the Boolean function we will construct will have resilience order 2. For , we define at random, and we define and , where is a random value in .
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
- 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).
- Menezes, A.J.; Van Oorschot, P.C.; Vanstone, S.A. Handbook of Applied Cryptography; CRC Press: Boca Raton, FL, USA, 2018. [Google Scholar]
- Pasalic, E. On Boolean Functions in Symmetric-Key Ciphers; Lund University: Lund, Sweden, 2003. [Google Scholar]
- 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]
- Jiao, L.; Hao, Y.; Feng, D. Stream cipher designs: A review. Sci. China Inf. Sci. 2020, 63, 131101. [Google Scholar] [CrossRef]
- Cusick, T.W.; Stanica, P. Cryptographic Boolean Functions and Applications; Academic Press: Cambridge, MA, USA, 2017. [Google Scholar]
- Biham, E.; Shamir, A. Differential cryptanalysis of DES-like cryptosystems. J. Cryptol. 1991, 4, 3–72. [Google Scholar] [CrossRef]
- Langford, S.K.; Hellman, M.E. Differential-linear cryptanalysis. In Annual International Cryptology Conference; Springer: Berlin/Heidelberg, Germany, 1994; pp. 17–25. [Google Scholar]
- Chuan-Kun, W.; Dengguo, F. Boolean Functions and Their Applications in Cryptography; Springer: Berlin/Heidelberg, Germany, 2016. [Google Scholar] [CrossRef]
- Henríquez, F.R. De la búsqueda de funciones booleanas con buenas propiedades criptográficas. Cinvestav 2007, 26, 50–65. [Google Scholar]
- 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]
- 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]
- Stichtenoth, H. A Note on Hermitian Codes Over GF(q2). IEEE Trans. Inf. Theory 1988, 34, 1345–1348. [Google Scholar] [CrossRef]
- Forney, G.D. Concatenated Codes; Citeseer: Princeton, NJ, USA, 1966; Volume 11. [Google Scholar]
- 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]
- Guillot, P. Cryptographical boolean functions construction from linear codes. Boolean Funct. Cryptogr. Appl. 2005, 387, 141. [Google Scholar]
- Wicker, S.B.; Bhargava, V.K. Reed-Solomon Codes and Their Applications; John Wiley & Sons: Hoboken, NJ, USA, 1999. [Google Scholar]
- 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. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).