矩阵实现优化框架
1. 引言
线性层作为密码原语中提供扩散的主要部分,一直受到广泛关注和精心设计。它通常可以用从 $F_2^n$ 到 $F_2^m$ 的线性函数表示,输入为 $(x_0, x_1, \cdots, x_{n - 1})$,输出为 $(y_0, y_1, \cdots, y_{m - 1})$。
具有良好密码学特性的线性层有助于抵抗一些常见攻击,如差分攻击和线性攻击。AES 采用最大距离可分(MDS)矩阵,以提供对差分攻击和线性攻击的最优抵抗。同时,随着资源受限设备的广泛应用,轻量级密码学在过去十年受到了大量关注。在设计轻量级密码原语时,需要考虑软件、硬件或两者的因素,这也激发了轻量级组件的设计。此外,优化标准密码中已使用的各种组件的实现,也是一个重要的研究方向,这可以大大降低密码的成本,具有很高的实际意义。
对于 S 盒的优化实现,已经有一些工具和平台可以使用,这些工具关注不同的标准,如位片门复杂度、门等效复杂度、乘法复杂度和深度复杂度等。在线性层中,也讨论了门等效复杂度和深度复杂度。为了优化矩阵的门等效复杂度,需要考虑使用最少异或门数量的矩阵实现;而如果考虑深度复杂度,则需要最小化连接输入和输出的最长路径。
寻找具有最少异或门的矩阵实现是一个 NP 难题。基于 SAT 的方法和 LIGHTER 可以为小矩阵提供最优实现,但对于大域规模可能会失败。不过,仍然有许多启发式方法可以给出相当不错的实现,其中最常用的两种启发式方法分别在 [28] 和 [11] 中提出。
2. 预备知识
2.1 符号表示
- $F_2$:表示包含两个元素 0 和 1 的有限域。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



