混淆與擴散

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