DES
Data Encryption Standard
https://scrapbox.io/files/630c86bcca91c0001d576e5a.png
暗号化
平文が64bitsより短い場合はパディング処理、長い場合は暗号モードを用いる
初期転置
以下を16回行う
入力(64bits)のうち後半32bitsを"F関数"に入力する
前半32bitsと"F関数"の排他的論理和をとる
上の結果と入力の後半32bitsを結合して次のラウンドの入力とする
最終転置
F関数
入力(32bits)を拡大転置
上の結果とサブ鍵$ k_iの排他的論理和をとる
8個の6bitsチャンクに分割する
各チャンクにS-boxを適用して6bitsから4bitsに変換していく
table:初期転置(IP)の変換表
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
table:最終転置(FP)の変換表
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
table:拡大転置(Expansion Permutation)
32 1 2 3 4 5 6 7 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