混淆与扩散

密码学当中,混淆(confusion)与扩散(diffusion)是设计密码学算法的两种主要方法。这样的定义最早出现在克劳德·香农1945年的论文《密码学的数学理论》当中[1]

在克劳德·香农的定义之中,混淆主要是用来使密文对称式加密方法中金钥的关系变得尽可能的复杂;而扩散则主要是用来使用明文和密文的关系变得尽可能的复杂,明文中任何一点小更动都会使得密文有很大的差异。

混淆用于掩盖明文与密文之间的关系。这可以挫败通过研究密文以获取冗余度和统计模式的企图。做到这一点最容易的方法是“代替”。

扩散通过将明文冗余度分散到密文中使之分散开来。即将单个明文或密钥位的影响尽可能扩大到更多的密文中去。产生扩散最简单的方法是换位(置换)。

参考文献

  1. ^ Model Based Inference in the Life Sciences: A Primer on Evidence. Springer New York. 2008-01-01: 51–82 [2018-05-07]. ISBN 9780387740737. doi:10.1007/978-0-387-74075-1_3. (原始内容存档于2018-06-28) (英语). 
  • Claude E. Shannon, "Communication Theory of Secrecy Systems", Bell System Technical Journal, vol.28-4, page 656--715, 1949. [1]页面存档备份,存于互联网档案馆
  • Wade Trappe and Lawrence C. Washington, Introduction to Cryptography with Coding Theory. Second edition. Pearson Prentice Hall, 2006.
  • William Stallings, Cryptography and Network Security, 3rd Edition, Prentice Hall, 2003