Triple_DES
[Wikipedia|▼Menu]

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 DES、3DES)とは、共通鍵ブロック暗号であるDESを3回施す暗号アルゴリズム。正式名称はTriple Data Encryption Algorithm(TDEA、Triple DEA)。時代の流れに伴い、鍵長56ビットのDESでは総当たり攻撃への耐性が低くなったことから、これを補う目的で考案された。
概要

平文を単にDESで3回暗号化するのではなく、暗号化→復号→暗号化の順に施す暗号アルゴリズムである。C = encryptk3(decryptk2(encryptk1(P)))

ただしP ... 平文C ... 暗号文ki ... 鍵 #iencrypt, 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ビットであっても総当たりには相当なコンピュータパワーが必要となるが、年々の性能向上を考慮し、アメリカ国立標準技術研究所は2023年末をもって全てのアプリケーションで廃止するとしている[3]
実利用

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

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

トリプルDESをサポートしているライブラリは以下の通り。

Botan

Bouncy Castle(英語版)

cryptlib(英語版)

Crypto++(英語版)

Libgcrypt(英語版)

Nettle(英語版)

OpenSSL

wolfSSL

(上記のライブラリの中の最近のバージョンでは、デフォルトビルドでトリプルDESが有効でないものもある。)
出典[脚注の使い方]^ a b NIST SP 800-57, §5.6.1.1.
^ Campbell & Wiener 1992.
^ NIST SP 800-131A, §2.

参照文献

“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. 

関連項目

DES - DES-X

暗号

暗号理論

多重暗号 / カスケード暗号










ブロック暗号
アルゴリズム

AES

ARIA

Blowfish

Camellia

CAST-128

CAST-256

DES

DES-X

3DES

FEAL

IDEA

KASUMI

Lucifer

MISTY1

MULTI2

RC2

RC5

RC6

SEED

Serpent

Square

Twofish

スキップジャック

設計

Feistel構造

S-box

SPN構造

攻撃
(暗号解読)

総当たり攻撃

レインボーテーブル


中間一致攻撃

線形解読法

差分解読法

切詰

高階


関連鍵攻撃

標準化

AES公募

CRYPTREC

NESSIE

用語

初期化ベクトル

暗号利用モード



カテゴリ












暗号


暗号史

暗号解読

Cryptography portal

en:Outline of cryptography



共通鍵暗号

ブロック暗号

ストリーム暗号

暗号利用モード

公開鍵暗号

暗号学的ハッシュ関数


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef