基于比特置换的密码设计与非线性滤波器生成器的等效密钥研究
在密码学领域,设计安全的加密算法和评估随机数生成器的安全性至关重要。本文将围绕基于比特置换的密码设计以及非线性滤波器生成器的等效密钥问题展开探讨。
基于比特置换的密码设计
不变子空间攻击与S盒选择
在设计基于比特置换的密码时,不变子空间攻击是一个需要重点考虑的问题。通过一个例子可以更好地理解这一点。假设部分密钥加法将密钥位添加到每个半字节的第1位和第2位,考虑S盒的子空间转换:0 ⊕{0, 2, 4, 6} → 1 ⊕{0, 2, 4, 6}。经过SubNibbles操作后,如果PermBits保留仿射子空间1 ⊕{0, 2, 4, 6},并且AddKey对每个半字节异或x ∈{1, 3, 5, 7},子空间将回到0 ⊕{0, 2, 4, 6},形成一个不变子空间。但由于部分密钥加法未更新第0位,1 ⊕{0, 2, 4, 6}不会被送回0 ⊕{0, 2, 4, 6},所以这种子空间转换对密码无威胁。
总结来说,我们可以检查部分密钥加法和/或常量加法是否能将S盒输出的子空间转换与输入连接起来。如果不能,该S盒候选方案仍能抵抗不变子空间攻击。为此,我们引入S盒抵抗不变子空间攻击的第三个条件:若密钥加法或常量加法无法获得连接仿射子空间所需的必要值,则可视为满足条件。
比特置换与轮密钥添加
在使用部分密钥加法时,设计者需要考虑内部状态如何用密钥材料进行掩码。通常假设操作顺序为PermBits – AddKey – SubNibbles,因为AddKey的异或门可以轻松跨越比特布线(PermBits)移动。
一个理想的特性是,在SubNibble
超级会员免费看
订阅专栏 解锁全文
1383

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



