Substitution-Cipher
Feistel 網路和 SPN 之間有什麼區別?
我最近讀到了 Feistel Networks 和 Substitution Permutation Networks 的概念,但兩者之間到底有什麼區別?
在一個 Feistel 網路(來自德國 IBM 密碼學家Horst Feistel)中,輸入分為兩個塊( $ L_0 $ 和 $ R_0 $ ) 相互影響。主要範例是 DES。
基本建設:
在 SPN(替代置換網路)中,輸入被分成多個小塊,應用於 S-box(替代),然後比特位置被混合(置換)。密鑰添加可能發生在這兩個操作之前或之後。
目前分組密碼:
來自維基百科:
儘管使用 S-box(例如 DES)的 Feistel 網路與 SP 網路非常相似,但存在一些差異,使得在某些情況下這個或那個更適用。對於給定數量的混淆和擴散,SP 網路具有更多的“內在並行性” 1,因此 - 給定具有許多執行單元的 CPU - 可以比 Feistel 網路更快地計算。
$$ 2 $$執行單元很少的 CPU(例如大多數智能卡)無法利用這種固有的並行性。此外,SP 密碼要求 S-box 是可逆的(執行解密);Feistel 內部函式沒有這樣的限制,可以構造為單向函式。