トリプルDES

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
Triple Data Encryption Algorithm
一般
初版発行日 1998 (ANS X9.52)
派生元 DES
暗号詳細
鍵長 168, 112 or 56 bits (Keying option 1, 2, 3 respectively)
ブロック長 64 bits
構造 Feistel構造
ラウンド数 48
最良の暗号解読
Lucks: 232 known plaintexts, 2113 operations including 290 DES encryptions, 288 memory; Biham: find one of 228 target keys with a handful of chosen plaintexts per key and 284 encryptions
3DES

トリプルDESトリプルデス、英語: Triple DES3DES)とは、共通鍵ブロック暗号であるDESを3回施す暗号アルゴリズム。正式名称はTriple Data Encryption Algorithm(TDEATriple DEA)。時代の流れに伴い、鍵長56ビットのDESでは総当たり攻撃への耐性が低くなったことから、これを補う目的で考案された。

概要[編集]

平文を単にDESで3回暗号化するのではなく、暗号化→復号化→暗号化の順に施す暗号アルゴリズムである。

C = encryptk3(decryptk2(encryptk1(P)))

ただし

P ... 平文
C ... 暗号文
ki ... 鍵 #i
encrypt, decrypt ... DES

この鍵の選択について3つのオプションが存在する。

Keying option 1
k1, k2, k3 すべてが異なる場合。
3 × 56 = 168ビットの鍵長となるが、既知の攻撃法が存在するため実質的な暗号強度は112ビットとなる[1]。3TDEA、3-key 3DES などと呼ばれる。
Keying option 2
k1 と k2 が異なり、k3 = k1 の場合。
2 × 56 = 112ビットの鍵長となるが、既知の攻撃法が存在するため実質的な暗号強度は80ビットとなる[1]。中間一致攻撃への耐性があるため、単純にDESで2回暗号化するよりは安全である。2TDEA、2-key 3DES などと呼ばれる。
Keying option 3
k1 = k2 = k3の場合。
DESと同じであり、56ビットの鍵長を持つ。このオプションにより、トリプルDESはDESに対して上位互換性を持つ(DESによって暗号化された文章をトリプルDESで復号できる。)

理論[編集]

3つの鍵{k1,k2,k3}を使うトリプルDES (-EEE) が、1つの鍵k4でDESを行う場合よりも安全性が向上するかが問題となる。ここで任意の{k1、k2、k3}について

C1 = DES<k3>( DES<k2>( DES<k1>( P ) ) )
C2 = DES<k4>( P )

とすると、全てのPについてC1 == C2となるk4が存在するならば、トリプルDES (-EEE) の鍵空間はDESと同じであり、安全性は向上しないことになる。この問題について、任意の{k1,k2}に対して、DES<k2>( DES<k1>( * ) ) == DES<k3>( * ) となるk3は存在しないことが証明され、DESを多段にすることで鍵空間は拡大できることが示された[2]。つまり、DESはをなさない。

安全性[編集]

一般的にトリプルDESでは3つの異なる鍵(Keying option 1)を用いて168ビットの鍵長を持っているが、中間一致攻撃により安全性は112ビット相当となる。2つの異なる鍵(Keying option 2)を用いる場合は112ビットの鍵長を持っているが、選択平文攻撃または既知平文攻撃により安全性は80ビット相当となる。112ビットであっても総当たりには相当なコンピュータパワーが必要となるため、トリプルDESの暗号解読は未だ現実的ではないが、アメリカ国立標準技術研究所は2030年までの使用を推奨している。

実利用[編集]

DESと同じアルゴリズムで簡単に実装できることから、ICカードの共通仕様であるEMVなどをはじめ現在でも広く利用されている。

ただし、安全性が実質112ビットまでとなることや、DESを3回施すことで計算負荷も3倍となることから、現在はより安全で高速なAESに置き換わりつつある。AESをサポートしておらず、トリプルDESまでの対応にとどまるWindows XP等への下位互換性を維持する目的でも使われている。

参考文献[編集]

  1. ^ a b NIST Special Publication 800-57 Recommendation for Key Management — Part 1: General (Revised)” (2007年3月8日). 2014年7月3日閲覧。
  2. ^ K.W.Campbell, M.J.Wiener, "DES is not a group", CRYPTO '92.

関連項目[編集]