この記事では、データ暗号化標準(DES)ブロック暗号で参照されるさまざまなテーブルについて詳しく説明します。
このドキュメントでは、すべてのビットとバイトはビッグ エンディアン順に並べられています。つまり、ビット番号 1 は常に最上位ビットです。
初期順列(IP)

この表は、64 ビット ブロックの入力順列を指定します。意味は次のとおりです。出力の最初のビットは入力の 58 番目のビットから取得され、2 番目のビットは 50 番目のビットから取得され、出力の最後のビットは入力の 7 番目のビットから取得されます。
この情報は、表示しやすいように表として提示されます。これは行列ではなくベクトルです。
最終順列(IP−1)

最終的な順列は最初の順列の逆であり、表も同様に解釈されます。
展開関数(E)

拡張機能は、最初の順列と最後の順列と同様に解釈されます。入力の一部のビットは出力で複製されることに注意してください。たとえば、入力の 5 番目のビットは、出力の 6 番目と 8 番目のビットの両方で複製されます。したがって、32 ビットのハーフ ブロックは 48 ビットに拡張されます。
順列(P)

P 順列は、32 ビットのハーフブロックのビットをシャッフルします。
並べ替え選択肢 1 (PC-1)

表の「左」と「右」の半分は、入力キーのどのビットがキースケジュール状態の左側と右側のセクションを形成するかを示しています。入力の 64 ビットのうち 56 ビットのみが選択され、残りの 8 ビット (8、16、24、32、40、48、56、64) はパリティ ビットとして使用するために指定されていることに注意してください。
並べ替え選択肢 2 (PC-2)

この順列は、56 ビットのキー スケジュール状態から各ラウンドの 48 ビットのサブキーを選択します。この順列では、以下の 8 ビットは無視されます。
並べ替えられた選択肢 2「PC-2」では、ビット 9、18、22、25、35、38、43、54 は無視されます。
置換ボックス(Sボックス)
この表は、DES で使用される 8 つの S ボックスの一覧です。各 S ボックスは、6 ビットの入力を 4 ビットの出力に置き換えます。6 ビットの入力が与えられた場合、4 ビットの出力は、外側の 2 ビットを使用して行を選択し、内側の 4 ビットを使用して列を選択することによって見つけられます。たとえば、入力 " 0 1101 1 " には外側のビット " 01 " と内側のビット "1101" があります。最初の行が "00" で最初の列が "0000" であることに注目すると、S ボックス S 5に対応する出力は "1001" (=9) となり、これは 2 行目の 14 列目の値です ( S ボックスを参照)。
キー生成
ユーザから提供されるメインキーは 64 ビットです。これを使用して次の操作が実行されます。
パリティビットをドロップする
灰色の位置のビット (8 倍) を削除して、各ラウンドのさらなる操作用に 56 ビットのスペースを確保します。
その後、ビットは次の表に従って並べ替えられます。
表は行を主とする方式であり、
実際のビット位置=行 * 8 + 列のビットに置き換えます。
ビットの回転
ラウンド サブキーが選択される前に、キー スケジュール状態の各半分が、指定された数だけ左に回転されます。この表は、回転される位置の数を指定します。
• キーは28ビットの2つの部分に分割されます
• 各部分は1ビットまたは2ビット左にシフトされます(循環的)。
• シフト後、2つの部分が結合されて再び56ビットの一時キーが形成される。
キー圧縮
• 圧縮 P ボックスは 56 ビットのキーを 48 ビットのキーに変更し、対応するラウンドのキーとして使用されます。
表は行を主とする方式であり、
実際のビット位置=行 * 8 + 列のビットに置き換えます。
この後、呼び出された関数に 48 ビットのラウンド キー(つまりラウンド) を返します。
参考文献
- データ暗号化規格 (DES) (PDF) .米国国立標準技術研究所(NIST). 1999-10-25. FIPS PUB 46-3.
外部リンク
- DES アルゴリズムの図解
