论文部分内容阅读
高阶差分分析是差分分析的高阶推广,又是积分分析的一个特例。差分分析研究的是迭代密码中一个明密文差分对的概率分布,而高阶差分分析和积分分析研究的是迭代密码中多个差分对的密码特性。高阶差分分析和积分分析的不同之处在于前者是对一组线性子空间中的明文所对应的密文求和,而后者对这个集合没有硬性要求,前者具有普遍性,而后者依赖于迭代密码的结构。1994年来学嘉首次将高阶差分的概念引入到密码学中,他推导了离散函数高阶导数的基本性质,并将差分分析的思想推广到高阶差分分析。1997年Jakobsen和Knudsen给出了第一个针对具体密码算法的有效的高阶差分攻击。从此,高阶差分分析作为一种非常有效的密码分析方法,应用到了很多密码算法的分析之中。经过不断的实践和总结之后,2001年,Knudsen将高阶差分分析的思想扩展到了积分攻击。2007年Vielhaber在对流密码Trivium进行分析时提出了AIDA攻击,紧接着的2008年,Shamir在美密会的报告中介绍了Cube攻击,这些发现又重新将密码学团体的注意力吸引到高阶差分分析上。AIDA攻击方法和Cube攻击方法类似,Shamir承认前者是后者的先驱,而Vielhaber认为后者对前者的改进不足以重新命名这种攻击技术,Bernstein则认为后者是高阶差分攻击的重发现,这些发现和争议说明高阶差分还有很多问题值得深入研究。我们从理论和实际出发,对高阶差分分析技术进行了深入分析,主要得到了如下结果。1、我们证明了已知的高阶差分相关攻击方法,高阶差分攻击、AIDA攻击、Cube攻击、Cube测试和比特高阶差分攻击,本质上都是基于布尔函数高阶导数的基本性质,这些性质的给出有利于加深对这些攻击的理解。然后我们给出了一个基于布尔函数高阶导数性质的高阶差分分析框架,该框架能够涵盖以上所有高阶差分相关攻击。注意到高阶差分相关攻击方法都是基于布尔函数高阶导数的如下性质:布尔函数在任意点上进行求导运算得到的导函数的次数比原函数的次数至少要降低1次,导函数的次数降得越快,攻击中用到的选择明文数量就越少,所以探讨布尔函数导函数次数下降至少2次以上的差分点的性质对高阶差分分析有着很重要的意义。自然地,我们定义这种差分点为快速点。受到高阶差分分析框架的启发,我们深入研究了布尔函数某些特殊差分点为快速点的充分必要条件,并且计算了其概率,这些结果对高阶差分分析有着很好的参考价值。进一步的,我们基于一个布尔函数特殊差分点为快速点的必要条件给出了一个实际的高阶差分分析技术,利用该技术我们给出了一个可行的攻击算法。2、我们给出了布尔函数高阶导数关于快速点性质的一个相对完整和有规律的总结。我们证明了一个n变元的布尔函数的快速点构成一个线性子空间,并且其维数与函数的代数次数之和不超过变元个数n。我们还证明了非零的快速点必定存在于如下函数之中:任意n变元n1次的布尔函数、任意次数d满足n≡d (mod2)的对称布尔函数和任意奇数变元二次布尔函数。我们还详细地给出了n变元n2次的布尔函数快速点的特殊性质并指出了其它类型布尔函数快速点的大致规律。这些性质都是对布尔函数高阶导数基本性质的一个补充。3、我们证明了拥有最高次数不足以保证分组密码算法能够抵抗高阶差分区分攻击。具体地,我们证明了一个有最优次数n1的n比特分组密码算法在如下两种情况下能够以不可忽略的区分优势和2n1的区分复杂度进行区分:超过一半的分量布尔函数的次数低于n1或者超过一半的n1次分量布尔函数的最高次单项式完全相同。基于上述性质,我们为分组密码提出了一个基于输出分量布尔函数次数概率分布的设计准则,即一个好的分组密码算法应该有尽可能多的分量布尔函数次数达到最高,尽可能少的分量布尔函数具有完全相同的n1次单项式。这是第一个关于次数的设计准则。4、Keccak是一族密码学海绵函数,它是SHA-3算法竞选中第三轮也是最终轮5个候选算法之一,它的核心组件是一个长为1600比特的置换Keccak-f,该置换由五个变换迭代构成,其中只有一个是非线性变换。我们深入研究了该非线性变换的逆变换的性质,发现该逆变换的输出分量布尔函数的任意两个乘积的代数次数没有增加,这使得我们能够构造关于全24轮置换Keccak-f的大小为21575的零和分布,这低于之前的最优结果21590。