S盒设计全解析:从DES到Rijndael
1. S盒设计方法
目前,S盒设计主要有以下几种方法:
- 伪随机数生成法 :该方法为S盒中的每个条目使用伪随机数生成器。不过,此方法的问题在于无法预先判断所设计的S盒是否满足有效S盒的三个标准,需要进行大量测试。
- 人工设计法 :这是DES采用的方法。DES的S盒设计细节并未公开,虽然实际的S盒是公开的,但设计方法却不为人知。这些S盒是与美国国家安全局(NSA)合作设计的。
- 数学方法 :AES使用这种方法,通过特定的数学算法来生成S盒的值。
2. DES S盒
NSA深度参与了DES的S盒设计。曾有参与DES项目的IBM员工表示:“我们把S盒送到华盛顿,回来后它们全变了。”这使得很多人怀疑DES的S盒中可能嵌入了密码学后门,方便NSA破解DES加密的通信。但多年的研究和分析并未发现这样的后门。
DES的S盒具有抵抗差分密码分析的能力。差分密码分析在DES发明时并不为公众所知,直到20世纪80年代末才由Eli Biham和Adi Shamir公开提出。有趣的是,Biham和Shamir都注意到DES对差分密码分析有很强的抵抗力,这表明NSA可能在其公开之前就已经了解差分密码分析,并设计DES来抵抗这种攻击。
DES的S盒是压缩S盒,输入6位,输出4位。以第一个S盒为例,输入的四个中间位的所有可能组合列在S盒的顶行,外部两位的所有可能组合列在最左列。通过匹配左侧的外部位和顶部的内部位,可以找到输出位。有些替换会改变多个位,而有些则改变较少。
超级会员免费看
订阅专栏 解锁全文
28

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



