データ暗号化標準
データ暗号化規格(DES)は、米国国立標準技術研究所(NIST)によって公開されている対称鍵ブロック暗号です。
DESは、FeistelCipherの実装です。16ラウンドのFeistel構造を使用しています。ブロックサイズは64ビットです。キーの長さは64ビットですが、キーの64ビットのうち8つは暗号化アルゴリズムによって使用されないため、DESの有効なキーの長さは56ビットです(チェックビットとしてのみ機能します)。DESの一般的な構造を次の図に示します-

DESはFeistelCipherに基づいているため、DESを指定するために必要なのは-だけです。
- ラウンド関数
- 鍵スケジュール
- 追加の処理-最初と最後の順列
初期および最終順列
最初と最後の順列は、互いに逆のストレート順列ボックス(Pボックス)です。DESでは暗号化の重要性はありません。最初と最後の順列は次のように示されます-

ラウンド関数
この暗号の中心はDES関数fです。DES関数は、48ビットキーを右端の32ビットに適用して、32ビット出力を生成します。

Expansion Permutation Box−右入力は32ビット、ラウンドキーは48ビットであるため、最初に右入力を48ビットに拡張する必要があります。順列ロジックは、次の図にグラフで示されています。

グラフィカルに描かれた順列ロジックは、一般に、示されているように示されているDES仕様の表として記述されています。

XOR (Whitener).−拡張置換の後、DESは拡張された右側のセクションと丸いキーに対してXOR演算を実行します。丸鍵は、この操作でのみ使用されます。
Substitution Boxes.− Sボックスは実際のミキシング(混乱)を実行します。DESは8つのSボックスを使用し、それぞれに6ビットの入力と4ビットの出力があります。次の図を参照してください-

Sボックスルールを以下に示します-

合計8つのSボックステーブルがあります。次に、8つのSボックスすべての出力が32ビットセクションに結合されます。
Straight Permutation −次に、Sボックスの32ビット出力は、次の図に示すルールでストレート順列にかけられます。

鍵の生成
ラウンドキージェネレータは、56ビットの暗号化キーから16個の48ビットキーを作成します。鍵生成のプロセスを次の図に示します-

パリティドロップ、シフト、および圧縮Pボックスのロジックは、DESの説明に記載されています。
DES分析
DESは、ブロック暗号の両方の望ましい特性を満たします。これらの2つの特性により、暗号は非常に強力になります。
Avalanche effect −平文の小さな変更は、暗号文の非常に大きな変更になります。
Completeness −暗号文の各ビットは、平文の多くのビットに依存しています。
過去数年の間に、暗号解読は、選択されたキーが弱いキーである場合、DESにいくつかの弱点を発見しました。これらのキーは避けなければなりません。
DESは、非常によく設計されたブロック暗号であることが証明されています。徹底的なキー検索以外に、DESに対する重大な暗号解読攻撃はありませんでした。