対称鍵ブロック暗号の一つ。1977年に米国国立標準局(NBS)(現在の米国国立標準技術研究所(NIST))によって標準化された対称鍵ブロック暗号です

DES(Data Encryption Standard)は対称鍵ブロック暗号方式で、暗号化されたデータを送信します。DESは、64ビットのブロック単位でデータを暗号化する対称鍵ブロック暗号です。 つまり、64ビットの平文を入力として暗号化関数に入力すると、64ビットの暗号文が出力されるということです。 DESの鍵長は56ビットです。 この暗号化規格では、暗号化と復号化に同じ鍵を使用します(対称鍵)。
DESには主に3つの段階があります。
01. 初期パーミュテーション
02. 暗号化ラウンド01~16
03. 最終的なパーミュテーション

。
- 入力ブロックサイズ。
- 出力ブロックサイズ:64ビット
初期順列の段階では、ビット位置の並べ替えを行うだけです。 この段階では、暗号化は行われません。

暗号化ラウンド 01 – 1616
- 入力ブロックサイズ。 64ビット
- 入力キーサイズ:56ビット
- 出力ブロックサイズ。 64ビット

同一の暗号化ラウンドのたびに。
同一の暗号化ラウンドごとに、初期順列を通過した64ビットの平文ブロックは、それぞれが32ビットの2つのサブブロックに分割されます。
左の32ビットのブロックは、32ビットのブロックである関数fの出力とXORされます。このXOR関数の出力は、2回目の暗号化ラウンドの次の右の32ビットのブロックになります。
関数f
- 入力 Ri ブロック サイズ: 32 ビット
- 入力 キー サイズ: 48 ビット
- 出力 ブロック サイズ: 32ビット

Function fには大きく分けて4つのステップがあります。
01. 展開
- 入力ブロックサイズ:32ビット
- 出力ブロックサイズ。 48ビット

02. XOR
- 入力ブロックサイズ:48ビット
- 入力キーサイズ:48ビット
- 出力ブロックサイズ:48ビット
03. Sボックス(置換ボックス)
- 入力ブロック・サイズ:48ビット
- 出力ブロック・サイズ:32ビット
- Sボックスの数。 08
以下のようになります。 S box 01


04. Permutation
- 入力ブロックサイズ:32ビット
- 出力ブロックサイズ。 32ビット

。
鍵変換機能
- 初期の鍵サイズ。 64ビット

です。
- 暗号化キーとしてのC0=C16とD0=D16は、復号化キーと等しくなければなりません。
- i = 1,2,9,16のラウンドでは、2つのハーフを1ビットだけ左に回転させます。
Final permutation
- Input block Size: 64 bits
- Output block Size: 64 bits
Final permutationの段階では、再びビット位置の並べ替えを行います。 これは初期順列の逆になります。 この段階では、暗号化は行われません。

最後の暗号化と最初の復号化に関する プロセス

しかし、です。 DESは網羅的な鍵検索攻撃で比較的簡単に破られます。 DESの問題点は、アルゴリズムの鍵長が56ビットしかないことにあります。
これでData Encryption Standard (DES)について理解していただけたでしょうか。 またお会いしましょう。 👋