论文部分内容阅读
在密码体制中,布尔函数起着关键的作用,而布尔函数的非线性度作为一个重要的密码学强度指标,其高低直接影响到密码系统的安全性能。一般来讲,布尔函数的密码学强度指标有:平衡性、代数次数、项数分布、非线性度、差分均匀度、相关免疫性、线性结构、自相关度、雷崩准则和扩散准则等几个方面[1]。但是这几个指标之间有一定的制约关系,比如在追求高非线性度的同时,代数次数有可能下降,相关免疫性也有可能下降。所以在构造布尔函数的过程中,应该折衷考虑使其满足不同的需要。布尔函数的非线性度通常指的是该布尔函数到全体n元仿射函数的汉明距离的最小值。Bent函数是1976年Rothaus等为了抵抗最佳线性逼近引入的概念[2],它到全体n元仿射函数集的汉明距离达到了最大值,因此属于一类具有最高非线性度的布尔函数。Bent函数在应用密码、纠错编码理论、序列设计理论中有着重要应用,有大量学者对此进行了相关的研究[3-9],并且基于此提出了具有更好密码性质的部分Bent函数和plateaued函数[33,34]。本文首先回顾了布尔函数非线性度的研究和应用现状,介绍了一些密码学基础知识以及密码学强度指标:平衡性、非线性度、差分均匀度、扩散准则、雷崩准则等,并给出构造高非线性度并且具有其他较好密码性质的布尔函数的一些理论;接着介绍了布尔函数与其非线性度,研究了Bent函数、部分Bent函数、plateaued函数以及它们之间的关系;随后分析了衡量非线性度时经常要用到的Walsh谱,以及如何使用Walsh谱分析布尔函数的非线性度;最后给出构造高非线性度布尔函数的一些方法,重点介绍了爬山算法及其修正算法,以及利用遗传算法对爬山算法进行优化,然后对爬山算法和修正爬山算法进行了程序实现,利用matlab对实验产生的数据进行数据模拟,并对实验结果进行了分析。论文的主要成果概况如下:1)可以通过两个m元布尔函数的k次递归,构造出一个m+k元的布尔函数,以此来构造出高非线性度的布尔函数。2)将布尔函数非线性度进行扩展,结合非线性度,综合两个指标来衡量布尔函数抵抗最佳仿射逼近攻击的能力;并研究了快速代数攻击相关方面的理论。3)对于n元布尔函数,分析了Walsh谱和非线性度的关系,使得布尔函数的非线性度在概率意义有了合理的解释。4)分析了Bent函数、部分Bent函数、plateaued函数之间的关系,以及Bent函数的对偶性和具有特殊Walsh谱的布尔函数;指出一些部分Bent函数在保持高非线性度的同时可以满足平衡性以及k次雷崩准则;并刻画了部分Bent函数和plateaued函数的结构关系。5)基于爬山算法,给出修正爬山算法,以及利用遗传算法来优化爬山算法的方法,并对三种方法进行了比较分析,最后编程实现了爬山算法和修正爬山算法,对实验数据进行matlab数据模拟,并对实验结果进行了分析。