Cryptography-data-encryption-standard
データ暗号化標準
Data Encryption Standard(DES)は、米国国立標準技術研究所(NIST)によって公開された対称キーブロック暗号です。
DESはFeistel Cipherの実装です。 16ラウンドFeistel構造を使用します。 ブロックサイズは64ビットです。 キーの長さは64ビットですが、DESの有効なキーの長さは56ビットです。これは、キーの64ビットのうち8ビットが暗号化アルゴリズムによって使用されないためです(チェックビットとしてのみ機能)。 DESの一般的な構造は、次の図に示されています-
DESはFeistel Cipherに基づいているため、DESを指定するために必要なものはすべて-
- ラウンド関数
- キースケジュール
- 追加の処理-初期および最終の順列
初期および最終順列
最初と最後の順列は、互いに逆の直線の順列ボックス(Pボックス)です。 DESには暗号化の意味はありません。 初期および最終の順列は次のように示されています-
ラウンド関数
この暗号の中心はDES関数_f_です。 DES関数は、右端の32ビットに48ビットキーを適用して、32ビット出力を生成します。
- 拡張置換ボックス-右の入力は32ビットであり、ラウンドキーは48ビットなので、最初に右の入力を48ビットに拡張する必要があります。 順列ロジックは、次の図にグラフィカルに描かれています-
- グラフィカルに描かれた置換ロジックは、一般的に示されるように示されたDES仕様の表として説明されています-
- * XOR(ホワイトナー)。*-拡張順列の後、DESは拡張された右セクションとラウンドキーでXOR演算を実行します。 ラウンドキーは、この操作でのみ使用されます。
- 置換ボックス-Sボックスは実際のミキシング(混乱)を実行します。 DESは8個のSボックスを使用し、各ボックスには6ビット入力と4ビット出力があります。 次の図を参照してください-
- Sボックスのルールは以下に示されています-
- 合計8つのS-boxテーブルがあります。 8つのSボックスすべての出力は、32ビットセクションに結合されます。
- ストレート順列-S-ボックスの32ビット出力は、次の図に示すルールでストレート順列になります。
キー生成
ラウンドキージェネレーターは、56ビット暗号キーから16個の48ビットキーを作成します。 キー生成のプロセスは、次の図に示されています-
パリティドロップ、シフト、および圧縮Pボックスのロジックは、DESの説明に記載されています。
DES分析
DESは、ブロック暗号の望ましい特性の両方を満たします。 これらの2つの特性により、暗号は非常に強力になります。
- アバランシェ効果-平文の小さな変更は、暗号文の非常に大きな変更をもたらします。
- 完全性-暗号文の各ビットは、平文の多くのビットに依存しています。
過去数年間、選択されたキーが弱いキーである場合、暗号解読によりDESにいくつかの弱点が見つかりました。 これらのキーは使用しないでください。
DESは、非常に適切に設計されたブロック暗号であることが証明されています。 完全なキー検索以外のDESに対する重大な暗号解読攻撃はありません。