论文部分内容阅读
密码学的分析与设计是两个既相互依存又相互对立的研究方向,分组密码的这种对立统一关系促进了它的快速发展。S盒是诸多分组密码系统中的唯一非线性部件,它提供了香农理论中最重要的混淆作用,其密码强度决定了整个分组密码算法的安全强度。因此,设计安全S盒就成为设计分组密码算法的核心任务之一。几乎完全非线性(Almost Prefect Nonlinear, APN)函数以其低差分的特性在抗击差分密码分析和线性密码分析攻击中具有最佳的抵抗效果。因而,在密码学应用中,它是构造S盒的最佳选择。在APN函数的发展进程中,有限域GF(2n)上是否存在n为偶数的APN置换函数一直都是理论界的公开难题。这也造成了利用APN函数设计分组密码S盒的瓶颈,限制了它在密码学中的应用。然而,随着理论研究的深入和大量APN多项式函数构造方法的提出,Dillon在域GF(26)上寻找到一个APN置换多项式函数,他也从理论上证明了其方法不适合于n为偶数的其他有限域。AES密码S盒的设计原理是针对当前主流的密码分析技术差分密码分析和线性密码分析的,它的先求逆再仿射的设计方法值得后续密码设计者们借鉴。充分发挥APN函数和AES密码S盒设计原理的优势,将APN函数应用到分组密码S盒的设计中。在特定有限域上,利用将APN函数取代逆函数再仿射变换的设计思路,文中利用APN幂置换函数求解n分别为3和5时的域GF(2n)上的APN S盒,以及APN多项式置换函数求解域GF(26)上的APN S盒。当前,在分组密码中所使用的S盒,大多是8位方盒,域GF(28)上不存在APN置换函数用于直接构造APN S盒。动态S盒的设计初衷是为了提高密码强度。它在一个密码系统中使用选取概率一致、安全强度相近、互不关联的多个S盒,不同S盒的选择依赖于轮函数中的子密钥。动态S盒的设计原理为利用输入位数低的APN S盒设计主流的8位S盒提供了依据。将8位输入拆分为两部分,一部分用于APN S盒的置换对应关系,另一部分经过“S盒选择器”置换,其输出结果一方面作为选择不同APN S盒的依据,同时还连同APN S盒的输出一起组合成8位输出。基于此,文中给出了两种拆分组合方法,即3+5和2+6,并构造出了对应的S盒3+5 S盒和2+6_S盒。在构造3+5_S盒时3位的S盒选择器的置换关系采用了域GF(23)上的APNS盒,2+6_S盒的2位S盒选择器置换关系因在域GF(22)上不存在APN S盒而采用类似AES密码S盒构造方法利用逆函数构造的置换关系来实现。