差分解読法
差分解読法は、攻撃者が自由に選択した平文に対する暗号文が入手できるという条件で可能な攻撃法であり、選択平文攻撃に分類できる。 DESを解読するためには、2の選択平文が必要である。 しかしながら、既知平文攻撃や暗号文単独攻撃を適用できるような拡張も存在する。 基本的な手法においては、ある固定された差を持つ二つの平文の組を用いる。差の定義にはいくらかの変形があるが、たいていは排他的論理和が用いられる。 攻撃者は、暗号文の組の差を計算し、その分布の中に統計的パターンを発見しようとする。これらの差を差分と呼ぶ。 この統計的性質は、暗号化に用いられるSボックスの性質に由来している。 それゆえ攻撃者はこれらのSボックス S {\displaystyle S} に対して、 ( Δ X , Δ Y ) {\displaystyle (\Delta _{X},\Delta _{Y})} (ただし Δ Y = S ( X ) ⊕ S ( X ⊕ Δ X ) {\displaystyle \Delta _{Y}=S(X)\oplus S(X\oplus \Delta _{X})} )となるような差分を解析する。 基本的な攻撃では、ひとつの特徴的な暗号文差分が高い確率で生起することが期待される。このようにして、暗号アルゴリズムは、ランダム関数と区別される。さらに洗練された手法では、全数探索法より速く鍵を復元できる。 ほとんどの暗号では、攻撃が成功するためには、差分を注意深く選ぶ必要がある。解析はアルゴリズムの内部構造を調査する。標準的な手法では、それぞれの段の高確率の差分のパスを追跡することによって行われる。このようにして得られたものを差分特性と呼ぶ。