Triple DES:DESの寿命を延ばす
3DESが複数回の暗号化によってDESの安全性を延長した仕組みと、現在も使われている場面を学びます。
「Triple DES:DESの寿命を延ばす」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
Double DESに対する中間一致攻撃
DESの短い鍵長を補う明白な方法は、DESを2回適用することです(Double DES):C = DES_K2(DES_K1(P))。56ビット鍵を2つ使うため、名目上の鍵空間は2^112になります。
しかし、中間一致攻撃によってこの優位性は崩れます。すべての2^56個のK1の値で平文を暗号化し、すべての2^56個のK2の値で暗号文を復号して、一致する中間値を見つけるのです。この攻撃に必要なのは2^56の計算量と2^56の記憶容量だけであり、Double DESには単一のDESを上回る安全性がありません。
2鍵Triple DESの安全性
2鍵Triple DESは3回のDES演算を使用しますが、鍵は2つだけです:C = DES_K1(DES^-1_K2(DES_K1(P)))。EDE(Encrypt-Decrypt-Encrypt)の順序は後方互換性のために使われます。
2鍵3DESの安全性は、既知の攻撃に対しておよそ112ビットですが、中間一致攻撃によって多少低下します。2鍵3DESは、多くのレガシーな銀行システムや決済システムで使われています。
3鍵Triple DES
3鍵3DESでは、K1、K2、K3という3つの独立した鍵を使用します:C = DES_K3(DES^-1_K2(DES_K1(P)))。名目上の鍵長は3 x 56 = 168ビットですが、既知の最良の攻撃に対する実効安全性は約112ビットです。
3鍵3DESは2鍵3DESより高い安全性を提供します。3DES自体が非推奨になる前には、NIST SP 800-131Aなどの標準で新規アプリケーションに推奨されていました。
EDEモードの解説
Triple DESのEncrypt-Decrypt-Encrypt(EDE)構造は、任意に決められたものではありません。K1 = K2 = K3の場合、中央の復号が最初の暗号化を打ち消し、最後の暗号化によって単一のDESと同じ結果が得られます。
この単一DESとの後方互換性は、段階的な移行に不可欠でした。既存のDESハードウェアとソフトウェアは、移行期間中にデータを失うことなく、3DESシステムと相互運用できました。
単一DESとの後方互換性
Triple DESは、3つすべての鍵を同じ値に設定することで単一のDESに縮退できます。つまり、3DESハードウェアは同じ回路を使って、DESで暗号化されたデータと3DESで暗号化されたデータの両方を処理できます。
これは、数十億ドル規模のDESベースのインフラを保有していた銀行や決済システムにとって特に重要でした。3DESにより、すべての機器を同時に交換することなく、後方互換性を保った段階的な移行が可能になりました。
銀行業務とEMVにおける3DES
3DESは新規アプリケーションでは非推奨ですが、銀行インフラでは依然として広く使われています。EMVチップ決済カードでは、カード認証と取引の暗号処理に3DESが使われています。
SWIFTの銀行間メッセージングでも、レガシーなメッセージ認証コードに3DESが使われています。導入済みの金融インフラがあまりにも大規模であるため、3DESは非推奨になった後も、今後何年にもわたって現場で使われ続けるでしょう。
NISTによる3DESの非推奨化(2023年)
NISTは、SP 800-131A改訂第2版により、2023年に3DESを正式に非推奨としました。現在、3DESの使用はすべて非推奨です。つまり、新しいシステムでは使用せず、レガシーシステムでは別の方式へ移行すべきです。
推奨される置き換え先はAESです。AESはより高速で、より大きなブロック(64ビットに対して128ビット)を使用し、128、192、256ビットの鍵長を利用でき、実用上知られている弱点がありません。
Sweet32誕生日攻撃
2016年に発表されたSweet32は、HTTPS上の3DESに対する実用的な攻撃を実証しました。64ビットのブロックサイズでは、2^32ブロック(約32GBのデータ)を処理すると、CBCモードで誕生日のパラドックスによる衝突が発生し始め、平文に関する情報が漏えいします。
HTTPSセッションに対する攻撃では、同じ鍵を使う通信が約785GBに達する必要があり、長時間継続する認証済みセッションであれば実現可能でした。この攻撃を受け、ブラウザーはAES-GCMを優先し、デフォルトの暗号スイートから3DESを削除するようになりました。
3DESの性能上の不利
Triple DESでは、1ブロックにつき3回のDES演算を実行します。DES自体も現代のハードウェアでは低速です。1970年代のハードウェアを前提に設計されており、現代のCPUとはビット単位の演算パターンが異なるためです。
ソフトウェアでの効率と、AES-NI命令を備えた現代のハードウェアの活用を考慮して設計されたAESは、ソフトウェア上で3DESより10~100倍高速です。現代のIntel/AMD CPUに搭載されたAES-NIなら毎秒数ギガバイトを暗号化できますが、3DESは毎秒100MBに達するのも困難です。
ブロックサイズは64ビットのまま
3DESはDES演算を3回実行し、より長い鍵を使用しますが、ブロックサイズはDESと同じ64ビットのままです。ブロックサイズはFeistel構造の基本パラメータであり、アルゴリズムを再設計しない限り変更できません。
この64ビットのブロックサイズが、Sweet32脆弱性の根本原因です。AESの128ビットのブロックサイズでは、誕生日攻撃に2^64ブロック(約18エクサバイト)が必要になるため、実際には計算上実行不可能です。
NISTによる3DESからAESへの移行方針
NIST SP 800-131Aでは、3DESからAESへ移行するための詳細なガイドが示されています。TLS暗号スイートから保存データの暗号化まで、3DESを使用しているすべての用途の置き換えとして、128、192、または256ビットの鍵を使用するAESが推奨されています。
移行を支える環境は十分に整っています。現在の暗号ライブラリやハードウェアプラットフォームはすべてAESをサポートしており、多くの場合はハードウェアアクセラレーションも利用できます。組織には、移行をハードウェア交換プロジェクトではなく、ソフトウェア設定の更新として扱うことが推奨されています。
3DESの鍵オプションに関するクイズ
Triple DESの構成に関する知識を確認しましょう。
重要ポイント:Triple DES
Triple DESは、EDE構造を使用してDESの寿命を延ばすために作られました。Meet-in-the-middle攻撃によって、Double DESでは安全性を2倍にできません。同じ鍵を使用する3DESは単一のDESに劣化するため、後方互換性を実現できます。
3DESは、64ビットのブロックサイズに起因する脆弱性(Sweet32)と、AESと比べた性能の低さを理由に、NISTによって2023年に非推奨となりました。ただし、レガシーシステムとして銀行やEMVのインフラストラクチャには残っています。
よくある質問
「Triple DES:DESの寿命を延ばす」レッスンは無料ですか?
はい。「Triple DES:DESの寿命を延ばす」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「Triple DES:DESの寿命を延ばす」で何を学びますか?
3DESが複数回の暗号化によってDESの安全性を延長した仕組みと、現在も使われている場面を学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「Triple DES:DESの寿命を延ばす」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- DESの設計とLucifer暗号
- DESはどのように破られたのか
- Triple DES:DESの寿命を延ばす
- DESからの教訓:私たちが学んだこと