Abstract
Boolean functions are used as nonlinear filter functions and combiner functions in several stream ciphers. The security of these stream ciphers largely depends upon cryptographic properties of Boolean functions. Finding a balanced Boolean function with optimal cryptographic properties is an open research problem in the cryptographic community. Since the number of n-variable Boolean functions is \(2^{2^n}\), it is not computationally feasible to search the entire space of such functions for cryptographically significant functions when \(n \ge 6\). In general, the construction of Boolean functions with optimal or near optimal cryptographically significant properties is formulated as combinatorial optimization problems. In this paper, we apply the Genetic algorithm with the integration of a local search procedure called hybrid GA (HGA) searching for the Boolean functions with high nonlinearity and low autocorrelation. The performance of the Genetic algorithm depends upon the tuning parameters such as crossover mechanism, mutation probability, selection criteria, and the choice of fitness/cost function. To achieve an optimal trade-off among two cryptographic properties, the choice of the cost function plays an important role for finding an optimal solution. So our main focus is to construct balanced Boolean functions using HGA with a new cost function and compare it with existing cost functions. Our experimental results shows that the HGA is more efficient than GA and the new cost function is more efficient than existing cost functions for reaching the optimal solutions.



Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Menezes AJ, Van Oorschot, PC., Vanstone, SA. (1996) Handbook of applied cryptography. CRC Press, Boca Raton
Stinson DR (2005) Cryptography: theory and practice. Chapman and Hall/CRC, London
Daemen J, Rijmen V (2013) The design of Rijndael: AES-the advanced encryption standard
Katz J, Lindell Y (2014) Introduction to modern cryptography. CRC Press, Boca Raton
Sarkar P, Maitra S (2000) Nonlinearity bounds and constructions of resilient Boolean functions. In: Annual international cryptology conference, pp 515–532
Banegas G (2014) Attacks in stream ciphers: a survey. IACR Cryptology ePrint Archive
Picek S, Knezevic K, Mariot L, Jakobovic D, Leporati A (2018) Evolving bent quaternary functions. In: IEEE congress on evolutionary computation (CEC), pp 1–8
Carlet C (2010) Boolean functions for cryptography and error correcting codes. Boolean models and methods in mathematics, computer science, and engineering, pp 257–397
Carlet C (2010) Vectorial Boolean functions for cryptography. In: Boolean models and methods in mathematics, computer science, and engineering, pp. 398–469
Clark AJ (1998) Optimization heuristics for cryptology. Doctoral dissertation, Queensland University of Technology
Picek S, Sisejkovic D, Jakobovic D (2017) Immunological algorithms paradigm for construction of Boolean functions with good cryptographic properties. Eng Appl Artif Intell 62:320–330
Cusick TW, Stanica P (2017) Cryptographic Boolean functions and applications. Academic Press, New York
Rothaus OS (1976) On bent functions. J Comb Theory 20(3):300–305
Eiben AE, Smith JE (2003) Introduction to evolutionary computing. Springer, Berlin
Picek S, Golub M (2011) On evolutionary computation methods in cryptography. In: 2011 34th International convention MIPRO, pp 1496–1501
Mariot L, Jakobovic D, Leporati A, Picek S (2019) Hyper-bent Boolean functions and evolutionary algorithms. In: European conference on genetic programmin, pp 262–277
Picek S, Jakobovic D (2019) On the design of S-box constructions with genetic programming. In: Proceedings of the genetic and evolutionary computation conference companion, pp 395–396
Moskovchenko I, Kuznetsov A, Kavun S, Akhmetov B, Bilozertsev I, Smirnov S (2019) Heuristic methods for the design of cryptographic Boolean functions. Int J Comput 18(3):265–277
López-López I, Sosa-Gómez G, Segura C, Oliva D, Rojas O (2020) Metaheuristics in the optimization of cryptographic Boolean functions. Entropy 22(9):1052
Millan W, Clark A, Dawson E (1997) An effective genetic algorithm for finding highly nonlinear Boolean functions. In: International conference on information and communications security, pp 149–158
Millan W, Clark A, Dawson E (1999) Boolean function design using hill climbing methods. In: Australasian conference on information security and privacy, pp 1–11
Clark JA, Jacob JL (2000) Two-stage optimization in the design of Boolean functions. In: Australasian conference on information security and privacy, pp 242–254
Clark JA, Jacob JL, Stepney S, Maitra S, Millan W (2002) Evolving Boolean functions satisfying multiple criteria. In: International conference on cryptology in India, pp 246–259
Kavut S, Yücel MD (2003) Improved cost function in the design of Boolean functions satisfying multiple criteria. In: International conference on cryptology in India, pp 121–134
Gangopadhyay S, Riera C, Stanica P (2019) Gowers U2 norm of Boolean functions and their generalizations
Aguirre H, Okazaki H, Fuwa Y (2007) An evolutionary multi-objective approach to design highly non-linear boolean functions. In: Proceedings of the 9th annual conference on Genetic and evolutionary computation, pp 749–756
Izbenko Y, Kovtun V, Kuznetsov A (2009) The design of boolean functions by modified hill climbing method. In: Information technology: new generations. ITNG’09, sixth international conference, pp. 356–361
Picek S, Jakobovic D, Miller JF, Batina L, Cupic M (2016) Cryptographic Boolean functions: one output, many design criteria. Appl Soft Comput 40:635–653
Mariot L, Leporati A (2015) Heuristic search by particle swarm optimization of boolean functions for cryptographic applications. In: Proceedings of the companion publication of the 2015 annual conference on genetic and evolutionary computation, pp 1425–1426
Behera PK, Gangopadhyay S (2018) Analysis of cost function using genetic algorithm to construct balanced boolean function. In: TENCON IEEE Region 10 conference, pp 1445–1450
Haupt RL, Haupt SE (1998) Practical Genetic algorithms
Holland JH (1992) Genetic algorithms. Sci Am 267(1):66–73
Wang HF, Wu KY (2004) Hybrid genetic algorithm for optimization problems with permutation property. Comput Oper Res 31(14):2453–2471
Wan W, Birch JB (2013) An improved hybrid genetic algorithm with a new local search procedure. J Appl Math
Gangopadhyay S, Mandal B, Stănică P (2017) Gowers \(U _3\) norm of some classes of bent Boolean functions. In: Designs, codes and cryptography, pp 1–8
Chen VY (2009) The Gowers norm in the testing of Boolean functions. Doctoral dissertation, Massachusetts Institute of Technology
Millan W, Clark A, Dawson E (1998) Heuristic design of cryptographically strong balanced Boolean functions. In: International conference on the theory and applications of cryptographic techniques, pp 489–499
Burnett LD (2005). Heuristic optimization of Boolean functions and substitution boxes for cryptography. Doctoral dissertation, Queensland University of Technology
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflicts of interest
The authors declared that they have no conflicts of interest to this work.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix
Appendix
n = 6, Balanced: yes, nl: 26, ac: 16
1111001001100100110100100100010011
010010010011000010110111111011
n = 8, Balanced: yes, nl: 116, ac: 24
1001100011011100101110001101111010110000
110111100100011100100001101110001101111010111000
1101111010111000110111100100010100100001
1011000001011110101110001101111010111000110111
000100011100100001010001110010000101000111
0010000101000111001000010011100011011110
n = 10, Balanced: yes, nl: 488, ac: 40
0110000011100101011001001100010101100000110001011
001111100111010011000001100010101100000
11000101011001001100010111011111001110100110000011
000101011000001100010101100000110001
01100111110011101010011111001110101001111100111010
100111110011101001100000110001010110
00001100010101100000111001010110000011000101100111
110011101001100000110001010110000011
00010101100000110001011001111100111010011000001100
010101100000110001010110000011000101
100111111111101010011111001110101001111100111010100
11111001110100110000011000101011000
0011100101011000001101010101100000110001011001111100
1110100110000011100101011000001100
0101011000001110110110011111001110100110000011000101
0110000011000101011000101100010110
0111110011101010011111001110101001111100111010100111
1100111010011001001100010110011111
0011101010011111001110101001111100111010011000001100
1101100111110011101011011111001110
10100111110011101001100000110001011001111100
111010100111110011101010011111001110100110
00001100010101100000110001010110000011000101011
00000110001011001111100111010
n = 12, Balanced: yes, nl: 2002, ac: 88
01000111001000010100011100100001010001110010000110
11100011011110010001110010000101000111
00100001010001110010000110111000110111100100011100
100001010001110010000101000111001000
01101110001101111010111010110111101011100011011110
101110001101111001000111001000010100
01110010000101000111001000010100011100101001101110
001101111001000111001000010100011100
10000101000111001000011011100011011110010001110010
000101000111001000010100011100100001
10111000110111101011100011011110101111001101111010
111000110111100100011100100001010001
11001000010100011100100001010001110010000110111000
110111100110011100100001010001110010
00011100011100100001101110001101111001000111001000
010100011100100001010001110010000110
11100011011110101110001101111010111000110111101011
100011011110010001110010000110111000
11011110101110001101111010111000110111100100011100
100001101110001101111010111000110111
10101110001101111001010111001000011011100011011111
101110001101111010111000110111100100
01110010000101000111001000010100011100100001010001
110010000110111010110111100100011100
10000101000111001000010100011100100001101110001101
111001000111001000010100011100100001
01000111011000011011100111011110010001110010000101
000111001000010100011100100001101110
00110111101011100011011110101110001101111010111000
110111100100011100100001010001110010
00010100011100100001010001110010000110111000110111
100100011100100001010001110010000101
00011100100001101110001101111011000111001000010100
011100100001010001110010000110111000
11011110101110001101111010111000110111101011100011
011110010001110010000101001111001000
01010001110010000101000111011000011011100011011110
010001110010000101000111001000010100
01110010000110111000110111100100011100100001010001
110010000101000111001000011011100011
01111010111000110111101011100011011110101110001101
111001000111001000011011100111011110
10111000110111101011100011011110010001110010000110
111000110111101011100011011110101110
00110111100100011100100001101110001101111010111000
110111101011101011011110010001110010
00011100011101100001010001110010000101000111001000
011011100011011110010001110010000101
00011100100001010001110010000110111000110111100100
011100100001010001110010000101000111
00100001101110001101111001000111001000010100011100
100001010001110010010110111000110111
10101110001101111010111100110111101011100011011110
010001110010000101000111001000010100
01110010000101000111001000011011100011011110110001
110010000101000111001000010100011100
10000110111000110111100100011100100001010001110010
000101000111001000011011100011011110
10111000110111101011100011011110101110001101111001
000111001000110100011100100001010001
11001000010100011100100001101110001101111001000111
001000010100011100100001010001110010
00011011100011011110010001110010000101000111001000
010100011100100001101110001101111010
11100011011110101110001101111010111000110111100100
011100100001101110001101111010111000
11011110101110001101111001100111001000011011100011
011110101110001101111010111100110111
10010001110010000110111000110111101011100011011110
101110001101111001000111001000010100
01110010000101000111001000010100011100100001101110
001101111010111000110111101011100011
01111010111001110111100100011100100001101111001101
111010111000110111101011100011011110
01000111001000011011100011011110101111001101111010
111000110111100100011100100011010001
11001000010100011100100001010001110010000110111000
110111101011100011011110101110001101
11101011100011111110010001110010000111111000110111
101011100011011110101110001101111001
01011100100001101110001101111010111000110111101011
100011011110010001110010000101000111
00100001010001110010000101000111011000011011100011
011110101110001101111010111000110111
10101110001101111001000111001000011111100011011110
101110001101111010111000110111100100
01110010000110111000110111101011100011011110101110
001101111001000111001000010100011100
10000101000111001000010100011100100001101110001101
111001000111001000010100011100100001
01000111001000011011100011011110010001110010000101
000111001000010100011100100001101110
00110111100100011100100001010001110010000101000111
001000011011100011011110101110001101
1110101110001101111010111000
110111100100011100100001
Rights and permissions
About this article
Cite this article
Behera, P.K., Gangopadhyay, S. An improved hybrid genetic algorithm to construct balanced Boolean function with optimal cryptographic properties. Evol. Intel. 15, 639–653 (2022). https://doi.org/10.1007/s12065-020-00538-x
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12065-020-00538-x