Bent Boolean functions are important objects in cryptography and coding theory, and there are several general approaches for constructing such functions. Metaheuristics proved to be a strong choice as they can provide many bent functions, even when the size of the Boolean function is large (e.g., more than 20 inputs). While bent Boolean functions represent only a small part of all Boolean functions, there are several subclasses of bent functions providing specific properties and challenges. One of the most interesting subclasses comprises (anti-)self-dual bent Boolean functions. This paper provides a detailed experimentation with evolutionary algorithms with the goal of evolving (anti-)self-dual bent Boolean functions. We experiment with two encodings and two fitness functions to directly evolve self-dual bent Boolean functions. Our experiments consider Boolean functions with sizes of up to 16 inputs, and we successfully construct self-dual bent functions for each dimension. Moreover, when comparing with the evolution of bent Boolean functions, we notice that the difficulty for evolutionary algorithms is rather similar. Finally, we also tried evolving secondary constructions for self-dual bent functions, but this direction provided no successful results.
翻译:弯曲布尔函数是密码学与编码理论中的重要研究对象,目前已有若干通用构造方法。元启发式算法被证明是强有力的选择——即使布尔函数规模较大(如输入变量超过20个),仍能生成大量弯曲函数。尽管弯曲布尔函数仅占全体布尔函数的极小部分,但存在若干具备特殊性质与构造挑战的子类。其中最受关注的子类之一即为(反)自对偶弯曲布尔函数。本文详细展示了采用演化算法演化(反)自对偶弯曲布尔函数的实验过程。我们尝试了两种编码方式与两种适应度函数,直接演化自对偶弯曲布尔函数。实验考虑的布尔函数输入规模达16个变量,成功为每个维度构建了自对偶弯曲函数。此外,与弯曲布尔函数的演化过程对比发现,两类演化难度基本相当。最后,我们还尝试演化自对偶弯曲函数的二次构造方法,但该方向未取得有效结果。