スリー‐ディー‐イー‐エス【3DES】
読み方:すりーでぃーいーえす
3DES
別名:トリプルDES,Tripre DES
3DESとは、共通鍵暗号方式の1つであるDESで3回暗号化することで、より暗号強度を高める手法のことである。IBM社によって開発された。
手順としては、まず、鍵Aで平文を暗号化し、次に鍵Bで復号化する。この鍵Bでの復号化は、実際には鍵Bでの暗号化の逆のアルゴリズムを適用しており、平文に戻るわけではない。さらにこれに対し、鍵C(鍵Aで行う場合もある)で暗号化を行う。
こうしてできあがった暗号文は、通常のDESでいうと80~112ビット程度の暗号強度を持つと言われている。なお、2回の暗号化では、暗号強度が逆に弱まることが証明されている。
トリプルDES
(3DES から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/07/02 13:09 UTC 版)
| 一般 | |
|---|---|
| 初版発行日 | 1998 (ANS X9.52) |
| 派生元 | DES |
| 暗号詳細 | |
| 鍵長 | 168, 112 or 56 bits (Keying option 1, 2, 3 respectively) |
| 安全性の主張 | 脆弱なため2023年12月31日にNISTが廃止[1] |
| ブロック長 | 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 | |
トリプルDES(トリプルデス、英語: Triple DES、3DES)とは、共通鍵ブロック暗号であるDESを3回施す暗号アルゴリズム。正式名称はTriple Data Encryption Algorithm(TDEA、Triple DEA)。2023年12月31日にNISTは脆弱であるため廃止した[1]。1998年当時、鍵長56ビットのDESでは総当たり攻撃への耐性が低くなったことから、これを補う目的で考案された。
概要
平文を単にDESで3回暗号化するのではなく、暗号化→復号→暗号化の順に施す暗号アルゴリズムである。
- C = encryptk3(decryptk2(encryptk1(P)))
ただし
この鍵の選択について3つのオプションが存在する。
- Keying option 1
- k1, k2, k3 すべてが異なる場合。
- 3 × 56 = 168ビットの鍵長となるが、既知の攻撃法が存在するため実質的な暗号強度は112ビット程度となる[2]。3TDEA、3-key 3DES などと呼ばれる。
- Keying option 2
- k1 と k2 が異なり、k3 = k1 の場合。
- 2 × 56 = 112ビットの鍵長となるが、既知の攻撃法が存在するため実質的な暗号強度はせいぜい80ビットとされる[2]。中間一致攻撃への耐性があるため、単純に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を多段にすることで鍵空間は拡大できることが示された[3]。つまり、DESは群をなさない。
安全性
一般的にトリプルDESでは3つの異なる鍵 (Keying option 1) を用いて168ビットの鍵長を持っているが、中間一致攻撃により安全性は112ビット相当となる。2つの異なる鍵 (Keying option 2) を用いる場合は112ビットの鍵長を持っているが、選択平文攻撃または既知平文攻撃により安全性はせいぜい80ビット相当とされる。
総当たりには相当なコンピュータパワーが必要となるが、年々の性能向上を考慮し、アメリカ国立標準技術研究所は以下の時系列で廃止した。[1]
- 2017年に2TDEAを廃止(利用禁止)
- 2019年より使用する用途を制限
- 2023年12月31日をもって全ての用途で廃止(利用禁止)
実利用
DESと同じアルゴリズムで簡単に実装できることから、ICカードの共通仕様であるEMVやFelicaなど広く利用されていた。
ただし、安全性が実質112ビットまでとなることや、DESを3回施すことで計算負荷も3倍となることから、現在はより安全で高速なAESに置き換わった。AESをサポートしておらず、トリプルDESまでの対応にとどまるWindows XP等への下位互換性を維持する目的等で使われた。
実装ライブラリ
トリプルDESをサポートしているライブラリは以下の通り。
(上記のライブラリの中の最近のバージョンでは、デフォルトビルドでトリプルDESが有効でないものもある。)
出典
- 1 2 3 “NIST to Withdraw Special Publication 800-67 Revision 2 | CSRC”. csrc.nist.gov (2023年6月29日). 2026年7月2日閲覧。
- 1 2 NIST SP 800-57, §5.6.1.1.
- ↑ Campbell & Wiener 1992.
参照文献
- “NIST Special Publication 800-57 Recommendation for Key Management: Part 1 — General (Revision 5)”. NIST (2020年5月). doi:10.6028/NIST.SP.800-57pt1r5. 2020年6月7日閲覧。
- “NIST Special Publication 800-131A Transitioning the Use of Cryptographic Algorithms and Key Lengths (Revision 2)”. NIST (2019年3月). doi:10.6028/NIST.SP.800-131Ar2. 2023年5月23日閲覧。
- Campbell, Keith W.; Wiener, Michael J. (1992), “DES is not a Group”, CRYPTO '92.
関連項目
- 3DESのページへのリンク