密碼學當中,混淆(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