深入解析S盒设计:从DES到Rijndael
1. S盒设计的重要标准
在有效的S盒设计中,有几个关键标准起着至关重要的作用。
1.1 平衡性(Balance)
平衡性是S盒设计的重要特性之一。简单来说,当输入遍历所有可能的值时,每个输出符号应该出现相同的次数。对于具有n个输入位和m个输出位(m < n)的S盒,如果每个输出出现$2^{n - m}$次,那么这个S盒就是平衡的。例如,一个6位输入和4位输出的S盒,每个输出位需要出现$2^{6 - 4}=4$次。
1.2 位独立性准则(Bit Independence Criterion,BIC)
位独立性准则是S盒设计的第三个重要标准。它规定,对于所有的输入位i、输出位j和k,当任何单个输入位i取反时,输出位j和k应该独立变化。也就是说,输出位之间相互独立,但都依赖于输入位。
2. S盒设计的常见方法
目前,有几种常见的S盒设计方法:
- 伪随机数生成法 :使用伪随机数生成器为S盒中的每个条目赋值。然而,这种方法的问题在于无法预测生成的S盒是否满足有效S盒的三个标准,因此需要进行大量测试。
- 人工设计法 :由人员手动为S盒选择值,希望是基于合理的标准。DES的S盒就是采用这种方法设计的,不过DES S盒的设计细节并未公开。这些S盒是与美国国家安全局(NSA)合作设计的。
- 数学方法 :利用基于数学的方法生成S盒的值,AES的S盒就是采用这种方法。
超级会员免费看
订阅专栏 解锁全文
51

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



