新しいフォルダー(1)

メモです。よろしくおねがいします。

[暗号] ラウンド関数

ITC Advent Calendar 5日目.

今日はDESのラウンド関数についてです.

誰も興味ないとか知らねーです.

ラウンド関数

32bitのビット列と48bitのサブ鍵を入力し, 32bitのビット列を出力する関数である.

1. Expansion function(E)

32bitのビット列を48bitに拡張する.

拡張には以下のテーブルが用いられる.

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1

f:id:Q_tyokinuhata:20171202043636p:plain

DES supplementary material (August. 7, 2017, 08:20 UTC). In Wikipedia: The Free Encyclopedia. Retrieved from https://en.wikipedia.org/wiki/DES_supplementary_material

2. XORを取る

サブ鍵と48bitに拡張されたビット列のXORを取る.

3. Subscription(S)

サブ鍵と48bitに拡張されたビット列のXORから得られたビット列を, 6bitずつに分割し, Sボックス(substitution box, S-box)に入力する.

8つのSボックスは入力された6bitのビット列から4bitのビット列を生成して出力される.

このとき, 非線形な変換が行われ, ルックアップテーブルの形式で出力される.

SボックスがDESの安全の根幹であるため, このプロセスが無い場合, 暗号は線形なものとなり容易に破ることができるようになる.

4. Permutation(P)

Sボックスから出力された32bit(4bit * 8)のビット列に対して固定の並び替えを施す.

並び替えには以下のテーブルが用いられる.

16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25

f:id:Q_tyokinuhata:20171202094310p:plain

DES supplementary material (August. 7, 2017, 08:20 UTC). In Wikipedia: The Free Encyclopedia. Retrieved from https://en.wikipedia.org/wiki/DES_supplementary_material

Eでの拡張とSボックスでの置換, Pでの並び替えが各ラウンドで左側32bitと右側32bitに交互に行われることで, クロード・シャノンが安全で実用的な条件とした「拡散とかく乱」が提供される.