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

DESは何ラウンドで構成されている?16ラウンドの暗号処理ステップを徹底解説

DES(Data Encryption Standard:データ暗号化標準)は、16ラウンドで構成される共通鍵暗号方式です。64ビットの平文ブロックを、16回の繰り返し処理を経て暗号化します。それぞれのラウンドでは、以下のような主要なステップが順番に実行されます。

1. 鍵変換(Key Transformation)

初期の64ビット鍵から、8ビットごとのビット(パリティビット)を破棄することで、56ビットの鍵が生成されます。そのため、各ラウンドでは56ビットの鍵が利用可能です。この56ビットの鍵から、「鍵変換」と呼ばれるプロセスによって、ラウンドごとに異なる48ビットのサブキーが作り出されます。

具体的には、56ビットの鍵を28ビットずつの2つの半分に分割します。これらの半分は、ラウンド番号に応じて1ビットまたは2ビットだけ左へ循環シフトされます。

例えば、ラウンド番号が1、2、9、16の場合はシフトは1ビットのみで、それ以外のラウンドでは2ビットの循環シフトが行われます。ラウンドごとのシフトビット数は以下の表の通りです。

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

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

2. 拡大置換(Expansion Permutation)

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

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

Sボックス置換は、圧縮された鍵と拡張されたRPTとのXOR演算によって得られた48ビットの入力を受け取り、置換技術を用いて32ビットの出力を生成するプロセスです。48ビットの入力は8つの6ビットブロックに分割され、それぞれが対応するSボックスによって4ビットの出力へ変換されます(8×4=32ビット)。この段階でデータの非線形性が生まれ、暗号の安全性を大きく左右します。

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

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

Pボックスの内容は以下の表に示されています。例えば、最初のブロックにある「16」は、元の入力の16番目のビットが出力の1番目の位置へ移動することを意味し、16番目のブロックにある「10」は、元の入力の10番目のビットが出力の16番目の位置へ移動することを示しています。

16720212912281711523265183110
28241432273919133062211425

5. XORとスワップ(XOR and Swap)

上記のすべての操作は、64ビットの元の平文のうち32ビットの右半分(RPT)に対してのみ実施されます。左半分はここまで一切影響を受けていません。この時点で、初期の64ビット平文ブロックの左半分が、Pボックス置換によって生成された出力とXOR演算されます。この結果をもとに左右のデータが入れ替わり、次のラウンドへと引き継がれます。

まとめ

DESは16ラウンドの反復処理を通じて、64ビットの平文を暗号化する仕組みです。各ラウンドでは「鍵変換」「拡大置換」「Sボックス置換」「Pボックス置換」「XORとスワップ」という一連の処理が行われ、最終ラウンドの後には左右の半分を入れ替えてから最終置換(逆初期置換)が適用されて暗号文が完成します。

なお、現在では56ビットという鍵長が短く、総当たり攻撃に対して脆弱であることが判明しているため、実運用ではより強固なAES(Advanced Encryption Standard)への移行が推奨されています。ただし、DESのラウンド構造を理解することは、現代のブロック暗号の基礎を学ぶうえで依然として重要な第一歩となります。

  1. セキュリティ脆弱性は年間1万8千件超、実際に悪用されるのは約2%――CVEの実態とCVSS評価の仕組み

    毎年、セキュリティ企業やテック企業は数千件に及ぶ脆弱性の詳細を公表しています。メディアもそれらの脆弱性を取り上げ、特に危険度の高い問題を強調しながら、ユーザーへの安全対策を伝えています。 しかし、こう考えてみてください。公表される何千もの脆弱性のうち、実際にインターネット上で悪用されているものはごくわずかだということを。 では、セキュリティ脆弱性は全部でいくつあるのでしょうか。そして、セキュリティ企業は脆弱性の危険度をどのように判断しているのでしょうか。 セキュリティ脆弱性は全部でいくつある? Kenna Security(現Cisco)の「Prioritization to Predicti

  2. ゲーミング キーボードのキーの数は?

    ここ数年、世界のゲーム市場の成長は著しく増加しています。最高のゲーム体験を得るために、ゲーマーは自分のゲーム デバイスをよく理解する必要があります。理解しておくべき重要な概念の 1 つは、キーボードのフォーム ファクターです。これは基本的に、キーボードの物理的な形状とサイズ、およびキーボードにあるキーの数を指します。 フルサイズのキーボードには 104 ~ 109 個のキーがあります。テンキーレス (TKL) キーボードには約 87 個のキーがあり、65 % キーボードには 66 ~ 68 個のキーがあり、60 % キーボードには約 61 個のキーがあります。 キーボードのフォーム フ