DES-X

DES-X (DESX) はDES (Data Encryption Standard) から派生したブロック暗号の一種で、"" と呼ばれる技法を使って総当り攻撃への耐性を強化している。
元々のDESのアルゴリズムは1976年に策定されたもので、鍵長が56ビットであり、鍵のとりうる値は 256 個ある。このため、例えばアメリカ国家安全保障局 (NSA) などの政府機関が総当り攻撃を実行できるかもしれないという指摘があった。DESのアルゴリズムを実質的には変更せず、鍵長だけを大きくしたのがDES-Xで、1984年5月にロナルド・リベストが提案した。
このアルゴリズムは、1980年代末以降、RSAセキュリティのBSAFE暗号ライブラリに含まれている。
DES-Xは、追加の64ビットの鍵 (K1) を平文にXORで適用してから、DESの暗号化を行い、さらに別の64ビットの鍵 (K2) を暗号文にXORで適用する。
formula_1
したがって鍵長は 56 + 2 × 64 = 184 ビットに強化されている。
しかし、実効鍵長（セキュリティ）は 56+64-1-"lb(M)" = 119 - "lb(M)" = ~119 ビットにしかならない。ここで "M" は、解読しようとする者が入手できる平文と暗号文のペアの数、"lb" は2を底とする対数である（このため、実装によっては K1 と K から一方向関数で K2 を生成することもある）。
DES-XはDESに比較して差分解読法や線形解読法に対しても強くなっているが、その度合いは総当り攻撃の場合よりも小さい。差分解読法の場合、261 個の選択平文を必要とすると見積もられている（DESの場合は 247）。線形解読法では 260 の既知平文を必要とする（DESの場合は 243）。なお、DESの場合（あるいはブロック長が64ビットのブロック暗号全般では）、264 の平文（選択か既知かは問わない）があれば、完全に破ることができる。