对于采用 SPN 结构的密码算法, 如果扩散层为简单的比特置换,单比特输入差分能引起单比特输出差分的差分特征个数如何计算
时间: 2024-03-31 13:38:59 浏览: 64
对于采用SPN结构的密码算法,如果扩散层为简单的比特置换,单比特输入差分能引起单比特输出差分的差分特征个数可以通过计算扩散层比特置换矩阵的秩来得到。
具体地,假设扩散层的比特置换矩阵为 $P$,$P$ 的行数和列数均为 $n$,则单比特输入差分向量 $a$ 经过比特置换矩阵 $P$ 变成单比特输出差分向量 $b$ 的条件是 $aP = b$,其中 $a$ 和 $b$ 均为 $n$ 元 01 串。由于 $a$ 和 $b$ 均只有一个比特位为1,因此上述条件可以转化为矩阵 $P$ 的第 $i$ 行和第 $j$ 行相同,即 $P_{i} = P_{j}$,其中 $i$ 和 $j$ 分别为 $a$ 和 $b$ 中比特位为1的位置。
因此,单比特输入差分能引起单比特输出差分的差分特征个数等于矩阵 $P$ 的秩。这是因为只有当矩阵 $P$ 的秩为 $n$ 时,才能保证任意两个不同的 $n$ 元 01 串都存在一个单比特输入差分能引起单比特输出差分的差分特征。如果矩阵 $P$ 的秩小于 $n$,则存在一些单比特输入差分不能引起单比特输出差分,这会降低算法的安全性。
阅读全文