プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

情報セキュリティにおけるDES(データ暗号化標準)の構造とは?

DES(Data Encryption Standard:データ暗号化標準)は、平文を64ビット単位のブロックに分割し、48ビットの鍵を用いて暗号文へ変換するブロック暗号アルゴリズムです。DESは対称鍵暗号方式に分類され、暗号化と復号に同一の鍵を使用する点が大きな特徴です。

暗号化処理は、初期置換と最終置換と呼ばれる2つの置換(Pボックス)と、16回のFeistelラウンドによって構成されています。各ラウンドでは、暗号鍵から所定のアルゴリズムに従って生成された、固有の48ビットのラウンド鍵が使用されます。

DES暗号の主な構成要素

暗号化側におけるDES暗号の構成要素は、以下のとおりです。

初期置換と最終置換

各置換は64ビットの入力を受け取り、あらかじめ定められた規則に従ってビットを並べ替えます。図表などでは一部の入力ポートとそれに対応する出力ポートのみが示されることがありますが、これらの置換は互いに逆の関係にある「鍵を使用しない直接置換」です。

具体例として、初期置換では入力の58番目のビットが出力の1番目のビットとなります。同様に、最終置換では入力の1番目のビットが出力の58番目のビットに変換されます。

言い換えれば、この2つの置換の間でラウンド処理が一切行われなかった場合、初期置換に入った58番目のビットは、最終置換を抜けた時点でも58番目のビットのままとなるのです。

ラウンド(Feistel構造)

DESは16ラウンドの処理を行います。各ラウンドはFeistel暗号の構造を採用しており、前のラウンドから受け取ったLI-1とRI-1をもとに、次のラウンドへ引き渡すLIとRIを生成します。各ラウンドは「ミキサー」と「スワッパー」という2つの暗号要素から構成されていると考えることができます。

これらの要素はいずれも可逆(元に戻せる)です。スワッパーはテキストの左半分と右半分を入れ替える操作であり、可逆性を持ちます。また、ミキサーはXOR演算を用いるため可逆です。一方、可逆性のないすべての要素は、関数f(RI-1, KI)の内部に集約されています。

暗号と逆暗号

ミキサーとスワッパーを組み合わせることで、それぞれ16ラウンドを持つ「暗号(暗号化処理)」と「逆暗号(復号処理)」を構築できます。暗号は暗号化側で使用され、逆暗号は復号側で使用されます。ここでの設計思想は、暗号と逆暗号のアルゴリズムをできる限り同一の構造にすることにあります。

この目的を達成する方法の一つが、最終ラウンド(第16ラウンド)だけを他のラウンドと異なる構造にし、ミキサーのみを備えてスワッパーを省くというものです。ラウンドの並び自体は左右非対称ですが、個々の要素(ミキサーやスワッパー)は対称的な性質を持ちます。

もう一つのアプローチとしては、第16ラウンドにもスワッパーを1つ追加し、さらにその後に余分なスワッパーを1つ挿入する方法があります。2つのスワッパーは互いの効果を打ち消し合うため、結果的に全16ラウンドを同一の構造に統一できるのです。これにより、暗号化と復号で同じハードウェアやソフトウェア実装を再利用できるという実用上のメリットが生まれます。

  1. 現代ブロック暗号の構成要素とは?Dボックス・Sボックス・循環シフトを徹底解説

    現代ブロック暗号とは現代のブロック暗号とは、mビットの平文ブロックを暗号化し、mビットの暗号文ブロックを復号する暗号方式です。暗号化および復号の処理にはKビットの鍵が使用され、復号アルゴリズムは暗号化アルゴリズムの逆操作として機能します。また、暗号化と復号の両方で同じ鍵が用いられます。ブロック暗号は、nビットの平文ブロックを入力としてnビットの暗号文ブロックを出力します。取り得る平文ブロックの組み合わせは複数存在するため、暗号化を可逆(=復号が可能)にするためには、それぞれの平文ブロックが一意の暗号文ブロックへ対応しなければなりません。このような変換は「可逆変換」または「非特異変換」と呼ばれま

  2. 情報セキュリティにおけるDESの強みとは?56ビット鍵からタイミング攻撃対策まで解説

    DES(Data Encryption Standard:データ暗号化標準)の強みは、主に以下の3つの観点から説明できます。 1. 56ビット鍵の使用 DESでは56ビットの鍵が暗号化に用いられます。可能な鍵の組み合わせは256通りにも及び、この膨大な数に対する総当たり攻撃(ブルートフォース攻撃)は現実的に不可能とされてきました。 仮に1マイクロ秒に1回のDES暗号化を実行できるマシンを使用しても、暗号文を解読するには数千年以上の時間が必要になると試算されています。 ただし、1マイクロ秒に1回という想定は控えめすぎるという指摘もあります。DiffieとHellmanは、それぞれが1マイクロ秒