トリプルDES (Triple Data Encryption Standard)の概要

Security Muhammad Raza

トリプルDES (Triple Data Encryption Standard)は、対称ブロック暗号方式の暗号化標準で、固定長の鍵を用いてDESアルゴリズムを3回繰り返します。対称暗号方式のため、DESの実装では送信者と受信者が同じ秘密鍵を共有して使用します。

トリプルDESは中間者攻撃を防ぐ手段として開発されました。これについては後ほど説明します。まずはDESから見ていきましょう。

DES (Data Encryption Standard)の起源

暗号鍵は、中間者攻撃でよく標的にされる機密性、完全性、可用性(CIA)侵害から保護する必要があります。その対策として、暗号化と復号化を複数回実行するDESアルゴリズムが導入されました。

このアルゴリズムでは、メモリーへの依存を減らすために、暗号化の実装にオンラインアプローチを適用します。暗号化と復号化を一括で行うため、送信中の鍵を保存する必要がありません。

DESはブロック暗号方式(メモリーに依存しないアルゴリズム)です。暗号化の際には大きな平文のデータユニットを複数の暗号文ブロックに変換し、復号化の際にはその逆の処理を行います。この処理を複数回繰り返し、平文と暗号文のブロックのペアを生成します。

1977年に開発されたDESは、1980年から2004年まで、ブロック暗号方式の暗号システム実装において事実上の世界標準でした。具体的に言うと、DESはFeistel構造(暗号型の一種)をベースとしており、次の図にあるように、置換と転置の演算を交互に実行します。

Feistel構造

Feistelブロックは、データブロックとサブ鍵の間で複数のRound関数を使用して、入力ブロックと同じサイズの出力ブロックを返します。入力では前半のブロックがサブ鍵で暗号化され、出力では残り半分のデータブロックを使用したXOR関数が実行されます。このプロセスを複数回繰り返すことで、データが暗号化され、この数学関数の逆の操作が実行できるようになります。要するに、同じブロック処理、つまり鍵スケジュールを逆に実行して暗号文を復号化します。

DESの仕組み

DES暗号化の仕組みは次のとおりです。

  1. 拡大:拡大転置によって、32ビットの半分のブロックが加わり、32ビットが48ビットに拡大されます。
  2. 鍵の混合:このデータに対してXOR演算が実行され、そのたびに48ビット長の16個のサブ鍵が使用されます。
  3. 置換(S):結果のブロックが6ビットの小さなブロックに分割され、Sボックスで処理されます。ここでは、Sボックスのルックアップテーブルを使用して入力データの非線形変換が実行されます。
  4. 転置(P):出力がPボックスによって固定の順序に並べ替えられます。

トリプルDESのアルゴリズム

では、トリプルDESについて見てみましょう。トリプルDESのアリゴリズムは、次のように実装されます。

トリプルDESのアルゴリズム

この暗号化方式は次のように表すことができます。

また、この復号化方式は次のように表すことができます。

ここで、

DESとトリプルDESの使い分け

DESブロック暗号方式は、暗号化と復号化の両方のプロセスに同じコードと回路を使用できるため、メモリーの少ないハードウェア処理装置に特に適しています。

トリプルDES方式は、DESの登場からわずか1年後の1978年に考案されました。この方式では、暗号化と復号化のプロセスとしてDESアルゴリズムを3回繰り返します。また、168ビット長の鍵を使用することでセキュリティを高めています。ただし、処理速度は標準のDES実装と比べて劣ります。

1999年には、DES (および逆DES)アルゴリズムの3回の実行すべてに同じ鍵を使用する新たな型のトリプルDESが導入されました。これは2TDESアルゴリズムと呼ばれ、112ビットの鍵長を使用します。

DESアルゴリズムの実行回数を2回ではなく3回にするというアイデアは、中間者攻撃を防ぐために考え出されたものです。ダブルDES実装の設定では、DESパスの暗号化された出力を、攻撃者がストリームの両端で読み取ることができます。そのため、ブルートフォース攻撃によって、ブロックセットと数学演算子の間の関係を見つけられる可能性があります。また、両方向で同じ結果を生成する鍵が、DESを解読するための手段として特定される可能性もあります。これは古典的な衝突攻撃として知られており、通常ブルートフォース攻撃よりも高速で実行されます。

NIST (publication 800-67)によると、各実装の仕様は次のとおりです。

その他の暗号化アルゴリズム

さらに新たな方式として登場したAESアルゴリズムは、トリプルDESと同じくらい強力なだけでなく、トリプルDESより効率的で、128ビットのブロック長と、128ビット、192ビット、256ビットの鍵長を持っています。また、ポスト量子暗号や全体的な鍵管理についても検討することをお勧めします。

このブログはこちらの英語ブログの翻訳です。

関連記事

Splunkの『2025年のセキュリティの現状』で未来志向のSOCを考察
セキュリティ
5 分程度

Splunkの『2025年のセキュリティの現状』で未来志向のSOCを考察

Splunkの『2025年セキュリティの現状:強力でスマートな未来志向のSOCを構築』では、セキュリティリーダーが考える今後の展望、期待、現在の課題が明らかになりました。
求められるのは防御だけでなく“回復力” ― 今、実践すべきサイバーレジリエンスとは
セキュリティ
6 分程度

求められるのは防御だけでなく“回復力” ― 今、実践すべきサイバーレジリエンスとは

セキュリティ対策が「攻撃をいかに防御するか」から、攻撃者に侵入されてしまうことを前提とした対策へと大きな変化を迫られるなか、被害が発生したあとの回復・復旧を見据えた「サイバーレジリエンス」が注目されています。サイバーレジリエンスとは具体的に何を示しているのか、基本から実践ステップまで詳しく解説します。
KaseyaユーザーがREvillで暗号化される?
セキュリティ
29 分程度

KaseyaユーザーがREvillで暗号化される?

多くのマネージドサービスプロバイダー(MSP)が使用するリモート監視および管理(RMM)ソフトウェア「Kaseya (カセヤ) VSA」がREvilの攻撃を受け、そのオンプレミス版を使用する顧客にランサムウェアを送り込むための踏み台として悪用されました。このブログ記事では、環境内でREvilを検出する方法について説明します。