Table of Contents
Fetching ...

A Systematic Study on the Design of Odd-Sized Highly Nonlinear Boolean Functions via Evolutionary Algorithms

Claude Carlet, Marko Đurasevic, Domagoj Jakobovic, Stjepan Picek, Luca Mariot

TL;DR

This work tackles the challenge of designing highly nonlinear Boolean functions with an odd number of variables using evolutionary algorithms. It systematically compares three encodings (bitstring, symbolic GP, floating-point) across four problem sizes (7,9,11,13) and multiple algorithms, showing that genetic programming (GP) typically yields the best results but still lags behind specialized heuristics for larger instances. The study demonstrates that augmentations like local search and rotation symmetry can improve certain GA outcomes (notably achieving nonlinearity 241 for a 9-variable function under rotation symmetry) but may hamper GP performance, highlighting trade-offs in representation and search dynamics. Overall, GP remains strong for this hard, high-dimensional search, while the insights point to future work in fitness landscape analysis and semantically-aware evolutionary operators to close the gap with expert-crafted constructions.

Abstract

This paper focuses on the problem of evolving Boolean functions of odd sizes with high nonlinearity, a property of cryptographic relevance. Despite its simple formulation, this problem turns out to be remarkably difficult. We perform a systematic evaluation by considering three solution encodings and four problem instances, analyzing how well different types of evolutionary algorithms behave in finding a maximally nonlinear Boolean function. Our results show that genetic programming generally outperforms other evolutionary algorithms, although it falls short of the best-known results achieved by ad-hoc heuristics. Interestingly, by adding local search and restricting the space to rotation symmetric Boolean functions, we show that a genetic algorithm with the bitstring encoding manages to evolve a $9$-variable Boolean function with nonlinearity 241.

A Systematic Study on the Design of Odd-Sized Highly Nonlinear Boolean Functions via Evolutionary Algorithms

TL;DR

This work tackles the challenge of designing highly nonlinear Boolean functions with an odd number of variables using evolutionary algorithms. It systematically compares three encodings (bitstring, symbolic GP, floating-point) across four problem sizes (7,9,11,13) and multiple algorithms, showing that genetic programming (GP) typically yields the best results but still lags behind specialized heuristics for larger instances. The study demonstrates that augmentations like local search and rotation symmetry can improve certain GA outcomes (notably achieving nonlinearity 241 for a 9-variable function under rotation symmetry) but may hamper GP performance, highlighting trade-offs in representation and search dynamics. Overall, GP remains strong for this hard, high-dimensional search, while the insights point to future work in fitness landscape analysis and semantically-aware evolutionary operators to close the gap with expert-crafted constructions.

Abstract

This paper focuses on the problem of evolving Boolean functions of odd sizes with high nonlinearity, a property of cryptographic relevance. Despite its simple formulation, this problem turns out to be remarkably difficult. We perform a systematic evaluation by considering three solution encodings and four problem instances, analyzing how well different types of evolutionary algorithms behave in finding a maximally nonlinear Boolean function. Our results show that genetic programming generally outperforms other evolutionary algorithms, although it falls short of the best-known results achieved by ad-hoc heuristics. Interestingly, by adding local search and restricting the space to rotation symmetric Boolean functions, we show that a genetic algorithm with the bitstring encoding manages to evolve a -variable Boolean function with nonlinearity 241.

Paper Structure

This paper contains 24 sections, 10 equations, 10 figures, 6 tables.

Figures (10)

  • Figure 1: Example of bitstring encoding for a $3$-variable function. The genotype is a bitstring of length $2^3=8$ used as the output column of the truth table of the function, once we sort lexicographically all vectors of $\mathbb{F}_2^3$.
  • Figure 2: Example of bitstring encoding for a $3$-variable rotation symmetric function. The genotype is a bitstring of length $g_3=4$ whose loci refer to the rotation class representatives.
  • Figure 3: Example of symbolic encoding for a $3$-variable Boolean function. The genotype is a Boolean tree where the leaf nodes correspond to the input variables $x_1$, $x_2$, and $x_3$. The output of the function is given by the root node, from which one can reconstruct the full truth table by evaluating the tree over all $2^3=8$ assignments of the leaf nodes.
  • Figure 4: Example of the two approaches to represent a rotation symmetric Boolean function under the symbolic encoding (grey cells are not used).
  • Figure 5: An example of evolving Boolean construction using $4$ seed functions of $2$ variables, with the construction resulting in a $n + 2 = 4$ variable Boolean function.
  • ...and 5 more figures