《Hyper-bent Boolean Functions and Evolutionary Algorithms》读书笔记

初步阅读文章:Mariot L, Jakobovic D, Leporati A, et al. Hyper-bent Boolean Functions and Evolutionary Algorithms[C]. Cham: Springer International Publishing, 2019.

0. 摘要

Bent布尔函数很重要,因为它能达到最高非线性度.
Hyper Bent 与双射单调函数(all bijective monomial functions)距离最远.
对近似攻击(approximation attacks)提供了更进一步的保障.
有着严格的定义,更少,构造起来也比 Bent 更难.
使用了一些进化算法来演化不同的 Hyper-Bent。

结果表明:

  • 真难找,只在最小的研究尺度上找到了
  • 很有趣,不是它难找,是它的部分(bent)就很难找
  • 最后,提出了一个附加参数来评价演化布尔函数时算法的性能:所获得解的多样性。

Bent Boolean functions play an important role in the design of secure symmetric ciphers, since they achieve the maximum distance from affine functions allowed by Parseval’s relation. Hyper-bent functions, in turn, are those bent functions which additionally reach maximum distance from all bijective monomial functions, and provide further security towards approximation attacks. Being characterized by a stricter definition, hyper-bent functions are rarer than bent functions, and much more difficult to construct. In this paper, we employ several evolutionary algorithms in order to evolve hyper-bent Boolean functions of various sizes. Our results show that hyper-bent functions are extremely difficult to evolve, since we manage to find such functions only for the smallest investigated size. Interestingly, we are able to identify this difficulty as not lying in the evolution of hyper-bent functions itself, but rather in evolving some of their components, i.e. bent functions. Finally, we present an additional parameter to evaluate the performance of evolutionary algorithms when evolving Boolean functions: the diversity of the obtained solutions.

1. 介绍

为什么找超Bent

布尔函数应用广泛且重要,受到极大关注。
Bent 非线性度最高。
方法有直接构造和间接构造(使用小Bent构造大Bent)。
作为替代可以使用启发式算法,其中进化算法近年被证明很有用。
事实上,进化算法取得的大量成功结果使得演化 Bent 几乎成为一个简单问题。123

当然,这一主张太简单,足够大尺度的函数会让算力显得不足。
Hyper Bent 是 Bent 的一个子类,具有更强的属性和更少的数量。
事实上,超弯曲函数不仅尽可能地远离所有的仿射函数,而且也远离所有双项单调的所有坐标函数。

Indeed, Hyper-bent functions are not only as far as possiblefrom all affine functions, but also from all coordinate functions of all bijective monomials.

因此,设计分组密码时它们是很好的非线性源。4

很不幸,更少见意味着更难生成。

有研究人员4证明了每个偶数元都有。

该文章

检验进化算法是否适合构造 超Bent 。
考虑了一些能够进化出不同大小的 Bent 的算法,遗传算法genetic algorithms, GA)、遗传规划(genetic programming, GP) 和 进化策略(evolution strategy, ES)。

  • 提出问题:能进化出 Hyper-Bent 吗?
    如果是,对解的丰富程度也感兴趣。
    更确切地说,使用启发式的一个常见论点就是能够得到许多不同的解,有时代数方法是不行的。

More precisely, a common argument for using heuristicsis that it allows us to obtain a number of different solutions which is some-times not possible with algebraic constructions.

  • 因此还对能构造不同 超Bent 的数量感兴趣
    据作者所知,这是第一次考虑进化算法来演化 Hyper-Bent
  • 结果表明,比 Bent 要难得多,后者已有研究了。
    所以这个问题也可以用来评估启发式算法。

Hence, this problem could also represent agood benchmark for evaluating the performance of heuristics.

篇章结构

  • 2 介绍 Bent 和 超 Bent 及其相关性质。
  • 3 相关工作
  • 4 使用的进化算法和实验中的适应度函数
  • 5 给出一些进化算法的结果,提出点评和一些未来可能的研究方向。
  • 6 总结

2. 背景

布尔函数可以从这里5了解。

  • 有限域的概念
  • 布尔函数的概念
  • 点乘的概念
  • 迹的概念

(The absolute trace of an element x x x in the finite field F 2 n \mathbb{F}_{2^n} F2n equals: T r ( x ) = x + x 2 + ⋯ + x x n − 1 Tr(x)=x+x^2+\cdots+x^{x^{n-1}} Tr(x)=x+x2++xxn1

  • Walsh谱的概念
    • 谱半径(the spectral radius of f f f
    • Parseval 's relation ∑ a ∈ F 2 n { W f ( a ) } 2 = 2 2 n \sum_{a\in\mathbb{F}_2^n}\{W_f(a)\}^2=2^{2n} aF2n{Wf(a)}2=22n
  • 非线性度的概念
    N l f = 2 n − 1 − 1 2 max ⁡ a ∈ F 2 n ∣ W f ( a ) ∣ Nl_f=2^{n-1}-\frac12\max_{a\in\mathbb{F}_2^n}|W_f(a)| Nlf=2n121aF2nmaxWf(a)
  • Bent 的非线性度 2 n − 1 − 2 n 2 − 1 2^{n-1}-2^{\frac{n}{2}-1} 2n122n1

注意到,Bent 的概念与 Walsh 谱中的内积无关5。因此,可以用 T r ( a x ) Tr(ax) Tr(ax) 来代替 a ⋅ x a\cdot x ax
W f ( a ) = ∑ x ∈ F 2 n ( − 1 ) f ( x ) ⊕ a ⋅ x = ∑ x ∈ F 2 n ( − 1 ) f ( x ) ⊕ T r ( a x i ) W_f(a)=\sum_{x\in\mathbb{F}_2^n}(-1)^{f(x)\oplus a\cdot x}=\sum_{x\in\mathbb{F}_2^n}(-1)^{f(x)\oplus Tr(ax^i)} Wf(a)=xF2n(1)f(x)ax=xF2n(1)f(x)Tr(axi)

i i i is coprime with 2 n − 1 ,   g c d ( i , 2 n − 1 ) = 1 2^n-1,~gcd(i, 2^n-1)=1 2n1, gcd(i,2n1)=1

  • bijective monomial

Hence, in the extendedtransform we are computing several spectra of Walsh coefficients. The reason toconsider the linear functions defined by T r ( a x i ) Tr(ax^i) Tr(axi) is that x i x^i xi represents a bijective monomial, since i i i is coprime with 2 n − 1 2^n−1 2n1. By considering only i = 1 i= 1 i=1, one getsthe usual Walsh-Hadamard transform.

  • 超 Bent,

A function f f f which is bent with respect to the extended transform for all i i i coprime with 2 n − 1 2^n−1 2n1 is called hyper-bent.

i 取决于欧拉函数(Euler’s totient function) ϕ ( 2 n − 1 ) \phi(2^n-1) ϕ(2n1),增长指数级 O ( 2 n ) O(2^n) O(2n)
对小 n n n 来说计算量也很大( A n A_n An是 Bent 数量)

n468
B n B_n Bn 2 16 2^{16} 216 2 64 2^{64} 264 2 256 2^{256} 2256
I n I_n In836128
A n A_n An896 ≈ 2 32.3 \approx 2^{32.3} 232.3 ≈ 2 106.3 \approx 2^{106.3} 2106.3
H n H_n Hn5625248620
N l n Nl_n Nln628120

3. 最近工作

  1. 超 Bent 的提出6
  2. 如何对超 Bent 分类7
  3. 属于 P S a p # PS_{ap}^\# PSap# 类的超 Bent
  4. 如何从小维数的扩展循环码字中得到这些函数,并列举了n=10的超 Bent 函数8

  1. 第一篇使用进化算法来演化布尔函数9
  2. 高非线性(遗传+爬山)10
  3. 自适应策略的局部搜索算法11,和仿射等价类图(the graph of affine equivalence classes of Boolean functions)的性质。
  4. 遗传和遗传策略,多个特征优良布尔函数12,也是第一次遗传策略。

  1. 使用CGP得到16输入的bent1,多种配置算法加速演化,未限制代数

  1. 粒子群优化器13,使用 walsh 谱的遗传算法找 semi-bent14
  2. 分析满足不同密码性质时的效率15
  3. 到了24 的 bent2,遗传策略、代数结构
  4. 免疫算法3

4. 实验设计

主要包括解的表示算法以及适应度函数

4.1真值表

最直观的布尔函数表示方法

利用这种表示做了两种试验:

  • 一、遗传算法 genetic algorithm
    • 三回合选择3-tournament selection,淘汰最坏的
    • 淘汰后,交叉算子应用剩余两个产生新个体
      • 交叉算子为单点均匀交叉,对每一个新后代进行均匀随机交叉
    • 根据突变率,立即对新个体突变
      • 突变在简单突变和混合突变直接均匀随机选择
        • 简单突变将单个“位”翻转
        • 混合突变将位随机打乱到随机选择的子集中
      • 突变对单一个体仅进行一次
    • 种群大小为 100 个个体,突变概率0.3
  • 二、进化策略 evolution strategy
    • 使用 ( μ + λ ) − Evolution Strategy (\mu+\lambda)-\text{Evolution Strategy} (μ+λ)Evolution Strategy
    • 每一代,父母与子女竞争,保留联合集合 μ \mu μ 中的最优个体
    • 实验中,子代种群大小 λ \lambda λ 拟合为 5 5 5,亲代种群大小 μ \mu μ 设为100
    • ES本不是这么大族群

4.2 树表示

树编码通常与遗传规划(genetic programming,GP)有关,其中经过优化的数据结构是可执行表达式(这GP翻译成基因编程????)​
  • GP群体中的每个个体代表一个可计算表达式,其最常见的形式是对应于解析树的符号表达式。

  • 树型GP中的构建元素是函数(内部节点)和终端(叶子、问题变量)。

  • 符号表示(a symbolic representation of a Boolean function)

    • 与真值表编码相反,我们考虑的另一种选择是使用布尔函数的符号表示。
    • 使用 GP ,以语法树(syntactic tree)的形式
    • 终端集由 n 输入布尔变量组成。
    • 函数集(即树的内部节点集)应该由适当的布尔运算符组成,允许对任何具有n个输入的函数进行定义。
      • OR XOR AND NOT IF
      • 函数IF有三个参数,如果第一个参数的值为“true”,则返回第二个参数,反之则返回第三个参数。
  • 使用与GA相同的稳态竞争选择算法(the same steady-state tournament selection algorithm)

  • 变异算子有简单树交叉、均匀交叉、大小公平、单点和上下文保留交叉(随机选择)和子树变异

    simple tree crossover, uniform crossover, size fair, one-point, and context preserving crossover (selected at random), and subtree mutation

  • 所有的实验都表明,树的最大深度等于布尔变量的数量就足够了。初始种群是随机创建的,种群大小为500。

4.3 布尔构造表征

最后,尝试一个源于布尔代数构造方法的概念:尝试用之前得到的n个变量的布尔函数来构造一个n+2个变量的布尔函数。
描述:

  • 首先,对优化问题进行布尔函数大小的求解很简单。

    first, the optimization problem is solved for a Boolean function size which allows the solutions to be found without much effort.

    • 从可以穷尽搜索的小变元开始,n = 4,共 56 个 hyper-bent
  • 其次,使用 GP 演化 n + 2 n+2 n+2 的函数。

    • 终端集是 4 个预设 n 元布尔函数而不是 n+2 个布尔变量
      • 标记为 f 0 , f 1 , f 2 , f 3 f_0,f_1,f_2,f_3 f0,f1,f2,f3
    • 此外,终端集包含两个独立的布尔变量 v 0 , v 1 v_0,v_1 v0,v1(为了n+2)
    • 三个bent只用 OR 还是 bent(4种可能)?????
  • 最后,每一个包含输入函数和附加两个变量的结果构造(一个GP表达式),都代表一个新的 n + 2 n+2 n+2 元布尔函数,其变量数为 n + 2 n+2 n+2

  • 类似下图

f_1
OR XOR AND NOT IF
f_2
f_3
f_0
v_1
v_0
0/1
  • 为了得到 n+2元Hyper-Bent,假设输入本身为HB。
  • 4元56个函数划分为14个集合
  • 每一个构造都使用全部14个输入集合进行评估
  • 将一个候选构造的强度函数作为所有可能的14个结果函数中的最佳目标值。
    • 因为只对优化目标值感兴趣(而不是在确定一个一般的构造方法)
    • 过程可自我维持 self-sustained
      • 如果产生的构造产生了所需的解,那么这些解可以作为下一个大小为 n+4 的构造阶段的输入函数。
      • 在每个阶段,我们只需要增加两个额外的布尔变量
      • 除终端设置外,其他GP参数和功能设置均保持不变。
        • 这大大减少了搜索大小和计算量,相比于常见的方法(解决方案的大小直接关联布尔变量的数量)。

4.4 适应度函数

  • 第一个,越小越好,目标 HB
    • 所得函数非线性度减去bent非线性度​
    • f i t n e s s 1 = ∑ i = 1 , g c d ( i , 2 n − 1 ) = 1 2 n − 1 ( 2 n − 1 − 2 n / 2 − 1 − N l f i ) fitness_1=\sum^{2^n-1}_{i=1,gcd(i,2^n-1)=1}(2^{n-1}-2^{n/2-1}-Nl_{f_i}) fitness1=i=1,gcd(i,2n1)=12n1(2n12n/21Nlfi)
      • 二次构造也用
  • 第二个,考虑Walsh谱变换,越小越好
    • T i T_i Ti 是每个i对应Walsh谱中不同于 2 n / 2 2^{n/2} 2n/2的个数​​
    • f i t n e s s 2 = ∑ i = 1 , g c d ( i , 2 n − 1 ) = 1 2 n − 1 T i fitness_2=\sum^{2^n-1}_{i=1,gcd(i,2^n-1)=1}T^i fitness2=i=1,gcd(i,2n1)=12n1Ti
  • 第三个,它试图增加上述总和的情况(不同的 I 值),得到的函数是 bent
    • 这个因子与任意常数相乘作为首要准则。 ​

    This factor is multiplied with an arbitrary constant to make it a primary criterion;

    • 次要准则是未发现 bent 函数的所有情况中,与最大非线性度的差值。

    the secondary criterion is then simply the relative difference from maximum nonlinearity for all the cases where a bent function is not found.

    • f i t n e s s 3 = 100 × S i + ∑ i = 1 , g c d ( i , 2 n − 1 ) = 1 2 n − 1 ( 1 − N l f i 2 n − 1 − 2 n / 2 − 1 ) fitness_3=100\times S_i+\sum^{2^n-1}_{i=1,gcd(i,2^n-1)=1}(1-\frac{Nl_{f_i}}{2^{n-1}-2^{n/2-1}}) fitness3=100×Si+i=1,gcd(i,2n1)=12n1(12n12n/21Nlfi)
      • 其中 S i S_i Si 是 Nlfi不等于最大非线性度时 上述和中 i 不同值的个数。

5. 试验

  1. 首先给出 GA、GP 和 ES 的结果
  2. 之后讨论问题的难度、解决方案的多样性
  3. 可能的未来工作
  • 结果
    • 每次实验重复 30 次,停止条件是 fitness 判定 500000 次
    • n = 4 时一定能找到 HB,不展示
    • n = 6 时: Table Optimization results for Boolean functions of 6 variables6变量布尔函数的优化结果
      表中是三种 f i t n e s s fitness fitness 与三种算法的对比,后两种 f i t n e s s fitness fitness 所得结果用 f i t e n e s s 1 fiteness_1 fiteness1 计算后的对比。
      再就是8元结果如下:
      在这里插入图片描述

  1. Hrbacek, R., Dvorak, V.: Bent function synthesis by means of cartesian geneticprogramming. In: Bartz-Beielstein, T., Branke, J., Filipiˇc, B., Smith, J. (eds.)PPSN 2014. LNCS, vol. 8672, pp. 414–423. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10762-2_41 ↩︎ ↩︎

  2. Picek, S., Jakobovic, D.: Evolving algebraic constructions for designing bentBoolean functions. In: Proceedings of the 2016 on Genetic and Evolutionary Com-putation Conference, Denver, CO, USA, 20–24 July 2016, pp. 781–788 (2016) ↩︎ ↩︎

  3. Picek, S., Sisejkovic, D., Jakobovic, D.: Immunological algorithms paradigm forconstruction of Boolean functions with good cryptographic properties. Eng. Appl.Artif. Intell.62, 320–330 (2016) ↩︎ ↩︎

  4. Youssef, A.M., Gong, G.: Hyper-bent functions. In: Pfitzmann, B. (ed.) EURO-CRYPT 2001. LNCS, vol. 2045, pp. 406–419. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44987-6_25 ↩︎ ↩︎

  5. Carlet, C.: Boolean functions for cryptography and error correcting codes. In:Crama, Y., Hammer, P.L. (eds.) Boolean Models and Methods in Mathematics,Computer Science, and Engineering, pp. 257–397. Cambridge University Press,Cambridge (2010) ↩︎ ↩︎

  6. Gong, G., Golomb, S.W.: Transform domain analysis of DES. IEEE Trans. Inf. Theory 45(6), 2065–2073 (1999) ↩︎

  7. Charpin, P., Gong, G.: Hyperbent functions, Kloosterman sums, and Dickson polynomials. IEEE Trans. Inf. Theory 54(9), 4230–4238 (2008) ↩︎

  8. Carlet, C., Gaborit, P.: Hyper-bent functions and cyclic codes. J. Comb. Theory Ser. A 113(3), 466–482 (2006) ↩︎

  9. Millan, W., Clark, A., Dawson, E.: An effective genetic algorithm for finding highly nonlinear Boolean functions. In: Proceedings of the First International Conference on Information and Communication Security, ICICS 1997, pp. 149–158 (1997) ↩︎

  10. Millan, W., Clark, A., Dawson, E.: Heuristic design of cryptographically strong balanced Boolean functions. In: Nyberg, K. (ed.) EUROCRYPT 1998. LNCS, vol. 1403, pp. 489–499. Springer, Heidelberg (1998). https://doi.org/10.1007/ BFb0054148 ↩︎

  11. Millan, W., Fuller, J., Dawson, E.: New concepts in evolutionary search for Boolean functions in cryptology. Comput. Intell. 20(3), 463–474 (2004) ↩︎

  12. Picek, S., Jakobovic, D., Golub, M.: Evolving cryptographically ↩︎

  13. Mariot, L., Leporati, A.: Heuristic search by particle swarm optimization of Boolean functions for cryptographic applications. In: GECCO (Companion), pp. 1425–1426. ACM (2015) ↩︎

  14. Mariot, L., Leporati, A.: A genetic algorithm for evolving plateaued cryptographic Boolean functions. In: Dediu, A.-H., Magdalena, L., Mart´ın-Vide, C. (eds.) TPNC 2015. LNCS, vol. 9477, pp. 33–45. Springer, Cham (2015). https://doi.org/10.1007/ 978-3-319-26841-5 3 ↩︎

  15. Picek, S., Jakobovic, D., Miller, J.F., Batina, L., Cupic, M.: Cryptographic Boolean functions: one output, many design criteria. Appl. Soft Comput. 40, 635–653 (2016) ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值