跳转到内容

密码学/S盒

来自维基教科书,自由的教科书

在密码学中,S盒(替换盒)是对称密钥算法的基本组成部分,用于执行替换操作。在分组密码中,它们通常用于模糊密钥和密文之间的关系——克劳德·香农的混淆特性。[1] 在许多情况下,S盒的精心选择是为了抵抗密码分析。

一般来说,S盒接受一定数量的输入位 m,并将它们转换为一定数量的输出位 n:一个 m×n S盒可以实现为一个查找表,其中包含 个 n 位的单词。通常使用固定表,如数据加密标准 (DES),但在某些密码中,表是从密钥动态生成的;例如 Blowfish 和 Twofish 加密算法。布鲁斯·施奈尔将 IDEA 的模乘步骤描述为一个密钥相关的 S 盒。

给定一个 6 位输入,通过使用外侧两位(第一位和最后一位)选择行,使用内侧四位选择列来找到 4 位输出。例如,输入 “011011” 具有外侧位 “01” 和内侧位 “1101”;相应的输出将是 “1001”。

DES 的 8 个 S 盒多年来一直是深入研究的主题,原因是人们担心在密码中可能存在一个后门——一种只有设计者知道的漏洞。S 盒设计标准最终公布[2],这是在公开重新发现差分密码分析后,表明它们已被精心调整以提高对这种特定攻击的抵抗力。其他研究已经表明,即使对 S 盒进行微小的修改也会显著削弱 DES。

在良好 S 盒的设计方面已经进行了大量的研究,并且与 DES 发布时相比,人们对其在分组密码中的使用有了更多的了解。

参考文献

[编辑 | 编辑源代码]
  1. Chandrasekaran, J. et al. (2011). "A Chaos Based Approach for Improving Non Linearity in the S-Box Design of Symmetric Key Cryptosystems". Advances in Networks and Communications: First International Conference on Computer Science and Information Technology, CCSIT 2011, Bangalore, India, January 2-4, 2011. Proceedings, Part 2. Springer. p. 516. ISBN 978-3-642-17877-1. {{cite book}}: Explicit use of et al. in: |authors= (help); Unknown parameter |editors= ignored (|editor= suggested) (help)CS1 maint: uses authors parameter (link)
  2. Coppersmith, Don (1994). "The Data Encryption Standard (DES) and its strength against attacks" (PDF). IBM Journal of Research and Development. 38 (3): 243–250. doi:10.1147/rd.383.0243. Retrieved 2007-02-20.{{cite journal}}: CS1 maint: ref duplicates default (link)
华夏公益教科书