密碼學當中,混淆(confusion)與擴散(diffusion)是設計密碼學算法的兩種主要方法。這樣的定義最早出現在克勞德·夏農1945年的論文《密碼學的數學理論》當中[1]

在克勞德·夏農的定義之中,混淆主要是用來使密文對稱式加密方法中金鑰的關係變得盡可能的複雜;而擴散則主要是用來使用明文和密文的關係變得盡可能的複雜,明文中任何一點小更動都會使得密文有很大的差異。

混淆用於掩蓋明文與密文之間的關係。這可以挫敗通過研究密文以獲取冗餘度和統計模式的企圖。做到這一點最容易的方法是「代替」。

擴散通過將明文冗餘度分散到密文中使之分散開來。即將單個明文或密鑰位的影響儘可能擴大到更多的密文中去。產生擴散最簡單的方法是換位(置換)。

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.