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

DESラウンド関数における最もセキュリティ上重要な構成要素とは?

DESラウンド関数を構成する主要な要素

DES(Data Encryption Standard)のラウンド関数は、複数の重要な構成要素から成り立っています。それぞれの役割と仕組みを詳しく見ていきましょう。

鍵変換(Key Transformation)

初期の64ビット鍵から、8ビットごとのパリティビットを破棄することで56ビット鍵が生成され、この56ビット鍵が各ラウンドで使用されます。さらに、鍵変換と呼ばれる手順によって、毎ラウンドごとに48ビットのサブキーが作り出されます。具体的には、56ビット鍵を28ビットずつの2つの半分に分割し、ラウンドごとに以下の表に示すビット数だけ循環シフトを行います。

ラウンド12345678910111213141516
シフトされる鍵ビット数1122222212222221

ラウンドごとにシフトされる鍵ビット数

鍵変換の手順では、元の56ビット鍵から48ビット鍵を選択・置換する処理が行われ、これは「圧縮置換(Compression Permutation)」と呼ばれます。圧縮置換では、各ラウンドで異なる鍵ビットの部分集合が使用されるため、DESの解読が困難になっています。

拡張置換(Expansion Permutation)

初期置換の後、平文は32ビットずつの2つの領域、すなわち左側平文(LPT:Left Plain Text)と右側平文(RPT:Right Plain Text)に分割されます。拡張置換では、RPTが32ビットから48ビットへと拡張されます。ビットサイズを32から48に増やす際、ビットの並べ替えも同時に行われるため、「拡張置換」と呼ばれます。

ここで注目すべきは、鍵変換プロセスが56ビット鍵を48ビットに圧縮するのに対し、拡張置換プロセスは32ビットのRPTを48ビットに拡張するという点です。これにより両者のサイズが一致し、後続のXOR演算が可能になります。

Sボックス置換(S-box Substitution)

Sボックス置換は、圧縮された鍵と拡張されたRPTのXOR演算結果である48ビット入力を受け取り、置換手法を用いて32ビット出力を生成するプロセスです。

この置換は、8つの置換ボックス(Sボックス)によって実装されます。各Sボックスは6ビット入力に対して4ビット出力を持ちます。48ビットの入力ブロックは8つのサブブロック(各6ビット)に分割され、それぞれが対応するSボックスに入力されます。SボックスはDES全体の中で唯一の非線形要素であり、暗号強度の中核を担う、最もセキュリティ上重要な構成要素といえます。

Pボックス置換(P-box Permutation)

Sボックスの出力は32ビットです。これらの32ビットはPボックスによって並べ替えられます。この単純な置換構造では、Pボックステーブルで定義された通り、各ビットが別の位置のビットと単純に入れ替えられるだけで、拡張や圧縮は一切行われません。これを「Pボックス置換」と呼びます。

XORとスワップ(XOR and SWAP)

以上の操作はすべて、64ビット元平文のうち32ビットの右半分(RPT)に対してのみ実施されます。左半分(LPT)はこの段階まで影響を受けていません。

この時点で、初期の64ビット平文ブロックの左半分(LPT)が、Pボックス置換によって生成された出力とXOR演算されます。このXOR演算の結果が新しい右半分(RPT)となり、古い右半分(RPT)はスワップ処理によって新しい左半分となります。この一連の流れが16ラウンド繰り返されることで、DESの暗号化が完成します。

  1. Double DES(ダブルDES)とは?仕組みと中間一致攻撃のリスクを徹底解説

    DES(データ暗号化標準)の基礎知識DES(Data Encryption Standard:データ暗号化標準)は対称鍵ブロック暗号の一種で、64ビットの平文と56ビットの鍵を入力として受け取り、64ビットの暗号文を出力します。DESの処理はPボックスとSボックスによって構成されており、Pボックスがビットを転置し、Sボックスがビットを置換することで暗号文を生成します。DESは「LUCIFER」と呼ばれるFeistelブロック暗号の実装であり、16ラウンドからなるFeistel構造を採用しているのが特徴です。各ラウンドでは異なる部分鍵を使用できます。DESを学ぶことの大きな意義は、それが数多くの

  2. DESのバリエーションとは?Double DESとTriple DESの違いを徹底解説

    DESのバリエーションとは? データ暗号化標準(DES)には、主に以下の2つのバリエーションがあります。 Double DES(ダブルDES) Triple DES(トリプルDES) Double DES(ダブルDES)の仕組み Double DESは、同じ平文に対して2段階のDES処理を適用する暗号化方式です。各段階では異なる鍵を使用して平文を暗号化し、復号時には両方の鍵が必要になります。 64ビットの平文は、まず最初のDESインスタンスに入力され、1つ目の鍵を使って64ビットの中間テキストへと変換されます。続いて、この中間テキストが2番目のDESインスタンスに入力され、2つ目の鍵によ