## 定義 ブロック暗号(block cipher)は、固定長の平文ブロックを同じ長さの暗号文ブロックに可逆変換する暗号プリミティブで、ランダムオラクルモデルでは「ランダム順列」としてモデル化される。実用的な設計は大きく 2 系統に分かれる。1 つは Claude Shannon が 1940 年代に提案した SP-network(換字-置換ネットワーク)で、換字(S-box)と転置(permutation)を交互に繰り返し、confusion(鍵と平文の関係を隠す)と diffusion(平文の情報を暗号文全体に拡散する)という 2 つの性質を作り込む。安全な SP-network の設計には (1) 十分なブロック幅、(2) 十分なラウンド数、(3) 適切に選ばれた S-box、の 3 条件が必要で、これらを誤ると線形解読法(linear cryptanalysis)・差分解読法(differential cryptanalysis)で破られる。AES(Advanced Encryption Standard、開発時名称 Rijndael)はこの系統の標準実装で、128 ビットブロック・128/192/256 ビット鍵・10/12/14 ラウンドを持つ。もう 1 つの系統は Horst Feistel が考案した Feistel 暗号で、入力を左右に分割しラウンド関数を交互に XOR で混ぜ込む「はしご」構造を持つ。Feistel 構造の利点は、ラウンド関数自体が可逆である必要がなく、復号は同じラウンド関数を逆順に適用するだけでよいことにある。Mike Luby と Charlie Rackoff は 1988 年に、ラウンド関数が真にランダムなら 3 ラウンドの Feistel が選択平文攻撃に対して、4 ラウンドが選択平文/暗号文攻撃に対して擬似ランダム順列(識別不可能)になることを証明した。DES(Data Encryption Standard)はこの系統の代表例で、64 ビットブロック・56 ビット鍵を持つが、鍵長の短さゆえに 1997〜1998 年に実際に鍵探索で破られ、3DES(3 回の DES 適用)や DESX(ホワイトニングによる鍵長の実効的な拡張)といった延命策が使われてきた。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 5 Cryptography]], ch.5 §5.4〜§5.4.3.2) ## 横断的知見 - (このconceptは本 ingest が最初のソースであるため、複数ソースの突き合わせによる横断的知見はまだ無い。他章・他ソースが AES・DES・Feistel構造・SP-networkに触れた際に、ここへ積み増す。) ## 未解決の問い - AES に対するビクリック暗号解読(biclique cryptanalysis, 2009 年)は理論的な計算量を 2^126(128 ビット鍵の場合)まで下げたが、実用上の影響が「ゼロ」とされる根拠(必要な平文・暗号文の量)を、より詳細な章(第 20 章など)で確認する必要があるか。 - 第 20 章(Advanced Cryptographic Engineering)は本 concept のどの部分に積み増しを行うか。本 concept は基礎的な設計原則(SP-network・Feistel・AES・DES の内部構造)に限定し、HSM 実装・サイドチャネル対策などの応用は第 19 章(Side Channels)・第 20 章に譲る。 - 各国政府が独自の暗号(Camellia・GOST 等)を推進する動機について、本章は示唆にとどめている。第 8 章(Economics)や第 26 章(Surveillance or Privacy?)との関連は要確認。 ## 関連 - [[@2020__Wiley__Security Engineering 3e - Chapter 5 Cryptography]] — SP-network・AES・Feistel構造・DESの解説 - [[ランダムオラクルモデル]] — ブロック暗号を「ランダム順列」としてモデル化する枠組み - [[暗号利用モード]] — ブロック暗号を複数ブロックのメッセージに拡張する利用モード ## 出典 - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 5, §5.4.