论文部分内容阅读
代数攻击是近来密码学领域中受到广泛关注的一种密码攻击方法。对加密算法的代数攻击可以描述为:将加密算法的密钥恢复问题转化为求解有限域上多元多项式方程组的问题。由于方程组的次数是决定代数攻击复杂性的关键因素,密码学家对加密算法中使用的布尔函数定义其代数攻击免疫度,以衡量代数攻击中构造出的多项式方程组的最低次数。本文围绕代数攻击免疫度作了如下工作:
1.给出Fq上代数攻击免疫度的一种新定义,并证明对F2上布尔函数的情形与原有定义等价。新的定义比原有利用零化子的定义更能够体现代数攻击的本质。而且新的定义与计算机代数领域中广泛使用的Grobner基建立起联系。利用这一联系可以得到计算任意布尔函数的代数攻击免疫度的算法。与基于零化了的算法相比,新的算法适用于一般的有限域Fq。而且本文计算了许多已有算法无法计算的例子,以此说明新的算法更加有效。
2.讨论传统的布尔函数设计准则针对代数攻击应该如何修改和补充。对于流密码中使用的非线性过滤/合成函数,本文通过分析代数攻击免疫度与非线性度等传统密码学性质的关系,说明代数攻击免疫度必须作为一条新的布尔函数设计准则。比较了目前仅有两类代数攻击免疫发达到上界的布尔函数的其他密码学性质。对其中对称布尔函数的构造,本文证明对奇数个变量的对称布尔函数,这是唯一的代数攻击免疫度达到上界且平凡平衡的。此外还分析了常用的二级构造方法的代数攻击免疫度和其他密码学性质。
对于分组密码中使用的S盒函数,本文分析了最重要的APN幂函数的代数攻击免疫度及线性无关的低次代数方程的个数。计算结果表明大多数APN幂函数都存在2次方程。