SPN(置換転置ネットワーク)
置換と転置(ビットの並べ替え)を何ラウンドも交互に繰り返す設計で、現代のブロック暗号の中核をなす構成要素。
SPNは複数のラウンドを順に実行する。各ラウンドでは、まずS-boxが小さなビット群を別のものに置き換え(置換)、次にその結果をブロック全体に散らす並べ替え(転置)を行う。Claude Shannonは1949年に撹乱(confusion)と拡散(diffusion)の原理を示しており、SPNはその両方を実現する実用的な方法である。
最も有名なSPNはAESだ。DESが使うFeistel構造は別の設計である。置換だけなら、ビット群ごとに分けて解析できてしまうが、転置があるおかげで、数ラウンド後にはすべての出力ビットが多くの入力ビットに依存するようになる。