读《Evolving Algebraic Constructions for Designing Bent Boolean Functions》

Picek, S., Jakobovic, D.: Evolving algebraic constructions for designing bent
Boolean functions. In: Proceedings of the 2016 on Genetic and Evolutionary Computation
Conference, Denver, CO, USA, 20–24 July 2016, pp. 781–788 (2016)

1. 文中的一些观点

  1. 将 bent 转换为高非线性平衡函数的方法有不少1
  2. 构建布尔函数的三种方法:代数构造、启发式和随即搜索或者几种结合。

  • 该文章提出的方法结合了代数构造和启发式方法。
  • 与直接使用启发式方法演化布尔函数不同,该方法演化代数结构。
  • 提供足够的输入,可以得到大变元的 bent 函数。
  • 采用的是进化算法,更准确地说,遗传规划。

    we employ evolutionary algorithms (EAs), and more precisely Genetic Programming (GP).


  • 单纯启发式算法的缺点:
    • 搜索空间大小
      随着变元 n n n的增大,空间幂指数级 2 2 n 2^{2^n} 22n上升
    • 评估成本
      运算量和所需算力、时间同样急剧增加
      一个布尔函数要能够抵御一些密码分析攻击,至少需要有13个输入1
  • 目标是演化代数结构,还设计了一个如何编码解决方案的模型和 f i t n e s s fitness fitness函数。

    Therefore, in this work we aim to evolve algebraic constructions, which we believe is an approach with a number of benefits. Furthermore, to succeed in our investigation, we devise a model how to encode solutions and the appropriate fitness function.

2. 布尔函数和一些符号

2.1 符号
  • 正整数 n . m ∈ N n.m\in\mathbb{N} n.mN
  • 有限域 F 2 \mathbb{F}_2 F2
  • n n n元向量集合 F 2 n \mathbb{F}_2^n F2n
  • m o d   2 mod~2 mod 2 的向量内积 a ⃗ ⋅ b ⃗ \vec{a}\cdot\vec{b} a b
  • a ⃗ \vec{a} a 的汉明重量( H W HW HW)、
  • ( n , m ) (n,m) (n,m)-函数指从 F 2 n \mathbb{F}_2^n F2n F 2 m \mathbb{F}_2^m F2m 的函数
  • 布尔函数的表示方法
    • 真值表
    • Walsh
  • 布尔函数的性质
    • 平衡性
    • 非线性度

2.2 构造技术
  1. 代数构造:
    优点是可以证明它们将生成具有某些性质的函数,并且通常同样容易构造任意维数的函数。
    缺点是构造出的函数属于同类,数量有限,且很难由想要的性质出发来构造。
  2. 随即搜索
    优点是种类多数量大,缺点是性质难以保证
  3. 启发式算法
    小变元时种类多数量大
  • 代数构造有直接构造与间接构造,区别:是否使用已知函数构造。
    • 直接构造举例: M a i o r a n a − M c F a r l a n d Maiorana-McFarland MaioranaMcFarland 构造
      f ( x ⃗ , y ⃗ ) = x ⃗ ⋅ π ( y ⃗ ) ⊕ h ( y ⃗ ) f(\vec{x},\vec{y})=\vec{x}\cdot\pi(\vec{y})\oplus h(\vec{y}) f(x ,y )=x π(y )h(y )
    • 间接构造举例: R o t h a u s Rothaus Rothaus构造
      三个 n n n b e n t bent bent h 1 、 h 2 、 h 3 h_1、h_2、h_3 h1h2h3 h 1 ⊕ h 2 ⊕ h 3 h_1\oplus h_2\oplus h_3 h1h2h3同样是 bent。
      n + 2 n+2 n+2元 bent:
      f ( x ⃗ , x n + 1 , x n + 2 ) = h 1 ( x ⃗ ) h 2 ( x ⃗ ) ⊕ h 1 ( x ⃗ ) h 3 ( x ⃗ )      ⊕ h 2 ( x ⃗ ) h 3 ( x ⃗ ) ⊕ [ h 1 ( x ⃗ ) ⊕ h 2 ( x ⃗ ) ] x n + 1      ⊕ [ h 1 ( x ⃗ ) ⊕ h 3 ( x ⃗ ) ] x n + 2 ⊕ x n + 1 x n + 2 f(\vec{x}, x_{n+1}, x_{n+2})=h_{1}(\vec{x}) h_{2}(\vec{x}) \oplus h_{1}(\vec{x}) h_{3}(\vec{x})~~ ~~\oplus h_{2}(\vec{x}) h_{3}(\vec{x}) \oplus [h_{1}(\vec{x}) \oplus h_{2}(\vec{x})] x_{n+1}~~ ~~\oplus[h_{1}(\vec{x}) \oplus h_{3}(\vec{x})] x_{n+2} \oplus x_{n+1} x_{n+2} f(x ,xn+1,xn+2)=h1(x )h2(x )h1(x )h3(x )    h2(x )h3(x )[h1(x )h2(x )]xn+1    [h1(x )h3(x )]xn+2xn+1xn+2

文章从 Rothaus 构造 出发,使用四个n元bent来产生一个n+2元bent。

We follow the former approach since it is easier to generate bent functions without the constraint that the result of the exclusive OR operationis also a bent function.

提到有文章2详细分析了几种进化算法在演化满足不同条件的布尔函数时的效率。

3. 文章的遗传规划方法

分为两种,一种是输入仅为布尔变量,第二种依赖于预定义的布尔函数作为构造的一部分.

3.1 演化布尔函数
  • 使用遗传规划以树的形式来演化函数,每棵树都根据它所产生的真值表来进行评估(例如,对于非线性属性)。
  • 终端集由给定数量的布尔变量组成,表示为 v 0 , v 1 , ⋯   , v n v_0,v_1,\cdots,v_n v0,v1,,vn
  • 函数集由表示任何布尔函数所必需的几个布尔基元组成( O R , X O R , A N D , X N O R OR, XOR, AND, XNOR OR,XOR,AND,XNOR,翻转第二个输入后再 A N D 2 {AND}_2 AND2AND with the second input inverted)。
3.2 演化函数构造
  • 终端集有预设函数( f 1 , f 2 , f 3 , f 0 f_1,f_2,f_3,f_0 f1,f2,f3,f0)和两个布尔变量( v 0 , v 1 v_0,v_1 v0,v1
  • 从小变元(4)逐渐演化,解码出真值表来保存
3.3 f i t n e s s fitness fitness
  1. 直接使用非线性度很难区分不同函数,需要增加更多信息。
    f i t n e s s 1 = 2 n − f r e q ( ∣ W f ( a ⃗ ) ∣ ) fitness_1= 2^n−freq(|W_f(\vec{a})|) fitness1=2nfreq(Wf(a ))
    其中, f r e q ( ∣ W f ( a ⃗ ) ∣ ) freq(|W_f(\vec{a})|) freq(Wf(a )) ∣ W f ( a ⃗ ) ∣ |W_f(\vec{a})| Wf(a ) 的值不是 2 n 2 2^\frac n2 22n 的次数。

  2. 为了获得更一般的结构(3.2)而非单个的函数(3.1)
    f i t n e e 2 = ∑ i = 1 4 f i t n e s s 1 , i fitnee_2=\sum^4_{i=1}fitness_{1,i} fitnee2=i=14fitness1,i
    使用了四组函数, f i t 2 fit_2 fit2 就是四组 f i t 1 fit_1 fit1 的和。
    f i t 2 fit_2 fit2能达到的最大值是四组 f i t 1 fit_1 fit1都最大值,即,四组函数都通过该构造得到了 bent

  3. 实验中有些构造不包含全部四个函数,但都包含 v 0 v_0 v0 v 1 v_1 v1
    为了保证包含全部四个函数(参考 R o t h a u s Rothaus Rothaus构造):

    Since we said that we take asan inspiration the Rothaus construction (see Sec. 2.3), weneed to ensure that there are indeed all four input functionsin every construction.

    f i t n e s s 3 = f i t n e s s 2 1 + m i s s i n g _ t e r m i n a l s ′ fitness_3=\frac{fitness_2}{1+missing\_terminals'} fitness3=1+missing_terminalsfitness2

4. 试验

GP 种群规模为500个个体,停止标准设置为500000次评价或达到已知最优适配值。
选择过程见算法1

  1. 随机选择 k k k 个个体;
  2. 遗弃其中最差的个体
  3. c h i l d = crossover(best two of the tournament) child = \text{crossover(best two of the tournament)} child=crossover(best two of the tournament)
  4. 给定突变率的情况下对 c h i l d child child 进行突变
  5. c h i l d child child 加入种群

其中, k = 3 k = 3 k=3,突变率 0.5 0.5 0.5,变异算子为简单的树形交叉,功能节点3和子树突变的偏度为 90 % 90\% 90%。如果没有特别说明,每个实验重复30次。
演化函数时树的深度为 7 7 7,演化结构为 5 5 5

4.1 演化 Bent 函数

8、12元可得到 Bent,16、18元不能且耗时很长:
直接使用GP演化布尔函数

4.2 演化间接构造
  1. 定义1: W e a k   S E C Weak~SEC Weak SEC,弱间接进化构造
    对特定组合可生成 bent
  2. 定义2: S t r o n g   S E C   T y p e   I Strong~SEC~Type~I Strong SEC Type I I I I型强间接进化构造
    不同组合可生成 bent,但不能推广到不同变元
  3. 定义3: S t r o n g   S E C   T y p e   I I Strong~SEC~Type~II Strong SEC Type II I I II II型强间接进化构造
    不同组合可得到 bent,可推广到不同变元
  • 需要考虑是否是已知的构造
  • 构造尽量简单
  • 弱构造很容易得到,无论4、6变元还是16、18变元。
  • 使用 f i t n e s s 2 fitness_2 fitness2 后,每次实验都能得到强构造(得到的构造暂不能数学证明但多次实验结果都是 bent)

    Although we do not prove that this is actually a strong construction of type I, this solution was able to produce a bent function with every input group it was subsequently tested with.

    4 4 4元到 6 6 6元的例子:
    ( ( v 1   AND 2   v 0 )  XOR  f 0 ) ((v_1~\text{AND}_2~v_0)~\text{XOR}~f_0) ((v1 AND2 v0) XOR f0)
    f i t n e s s 3 fitness_3 fitness3 的例子:
    ( ( ( ( v 0   AND 2   v 1 ) XOR f 0 ) XOR ( f 1 XOR f 1 ) ) XOR ( ( f 2 AND f 3 ) AND ( v 0 AND 2 f 2 ) ) ) ((((v_0~\text{AND}_2~v_1) \text{XOR} f_0)\text{XOR} (f_1 \text{XOR} f_1)) \text{XOR} ((f_2 \text{AND} f_3) \text{AND} (v_0 \text{AND}_2 f_2))) ((((v0 AND2 v1)XORf0)XOR(f1XORf1))XOR((f2ANDf3)AND(v0AND2f2)))
    注意到,其中的 f 1 X O R f 1 f_1 \mathbf{XOR} f_1 f1XORf1
    检查类似 f XOR ff XNOR f的结构后:
    ( ( ( ( v 1 XNOR f 0 ) OR ( f 3 A N D f 0 ) ) XOR ( ( f 1 XOR v 0 ) XNOR v 1 ) ) AND 2 ( ( v 0 AND 2 f 2 ) AND 2 ( ( f 0 XNOR f 3 ) XOR ( f 1 AND 2 v 1 ) ) ) ) ((((v_1 \text{XNOR} f_0) \text{OR} (f3 AND f0)) \text{XOR} ((f_1 \text{XOR} v_0) \text{XNOR} v_1)) \text{AND}_2 ((v_0 \text{AND}_2 f_2) \text{AND}_2 ((f_0 \text{XNOR} f_3) \text{XOR} (f_1 \text{AND}_2 v_1)))) ((((v1XNORf0)OR(f3ANDf0))XOR((f1XORv0)XNORv1))AND2((v0AND2f2)AND2((f0XNORf3)XOR(f1AND2v1))))
    演化构造的时间比函数短得多,即使大变元实际消耗时间还要包括之前所有小变元:
    演化构造的计算消耗


  1. C. Carlet. Boolean Functions for Cryptography andError Correcting Codes. In Y. Crama and P. L.Hammer, editors,Boolean Models and Methods inMathematics, Computer Science, and Engineering,pages 257–397. Cambridge University Press, NewYork, NY, USA, 1st edition, 2010. ↩︎ ↩︎

  2. S. Picek, D. Jakobovic, J. F. Miller, L. Batina, andM. Cupic. Cryptographic Boolean functions: Oneoutput, many design criteria.Applied Soft Computing,40:635 – 653, 2016. ↩︎

  3. R. Poli, W. B. Langdon, and N. F. McPhee. A Field Guide to Genetic Programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk, 2008. (With contributions by J. R. Koza). ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值