AjaxによるDES暗号アルゴリズム体験

こちらはAjaxによるRSAアルゴリズム体験

作成目的:このページは作成者の担当する 「情報セキュリティ」(短大、2年後期開講)授業科目のために作られたもので あり、共有鍵暗号(DES暗号)の理解のお助けになれば幸いです。各ステップを 手動で行いながら、体験してください。
注:JavaScript仕様互換性の関係上、Internet Explorer6.0のブラウザ環境を利 用してください
Step 1:サブ鍵を生成する
DESは、16のラウンドによって構成される。秘密鍵から各ラ ウンド用のサブ鍵を生成する必要がある。

LSi は、ラウンドを示すiの値に依存した1ビットある いは2ビットの左巡回シフトを表す。各ラウンドに対して次のように定めら れている。
PC-1(64bits⇒56bits)
57494133 25179
1585042 342618
1025951 433527
1911360 524436
63554739 312315
7625446 383022
1466153 453729
2113528 20124
PC-2(56bits⇒48bits)
1417112415
3281562110
2319124268
1672720132
415231374755
304051453348
444939563453
464250362932

16進数で16桁の鍵【k】を入力せよ:


転置PC-1とPC-2        

C0 
D0

 
K1  

 
K2  

 
K3  

 
K4  

 
K5  

 
K6  

 
K7  

 
K8  

 
K9  

 
K10  

 
K11  

 
K12  

 
K13  

 
K14  

 
K15  

 
K16  

Step 2:DES暗号の詳細
左の図は、DES暗号の全体処理を表している。全体は同じような16個のラウンド 処理を含む。右の図は各ラウンド処理の詳細を示している。

図:DES暗号化流れ
図:DES復号の流れ
図:DESの1ラウンドとf関数の流れ

初期転置IP、逆初期転置 IP-1 、 拡大転置EPP 転置(P Box )     
8つのS Box
16進数で16桁の平文ブロック【PT 】を入力せよ:


L0
R0

    
L1 (=R0)
R1 (=L0⊕f(R0, K1))

 
L2 (=R1)
R2 (=L1⊕f(R1, K2))

 
L3 (=R2)
R3 (=L2⊕f(R2, K3))

 
L4 (=R3)
R4 (=L3⊕f(R3, K4))

 
L5 (=R4)
R5 (=L4⊕f(R4, K5))

 
L6 (=R5)
R6 (=L5⊕f(R5, K6))

 
L7 (=R6)
R7 (=L6⊕f(R6, K7))

 
L8 (=R7)
R8 (=L7⊕f(R7, K8))

 
L9 (=R8)
R9 (=L8⊕f(R8, K9))

 
L10 (=R9)
R10 (=L9⊕f(R9, K10))

 
L11 (=R10)
R11 (=L10⊕f(R10, K11))

 
L12 (=R11)
R12 (=L11⊕f(R11, K12))

 
L13 (=R12)
R13 (=L12⊕f(R12, K13))

 
L14 (=R13)
R14 (=L13⊕f(R13, K14))

 
L15 (=R14)
R15 (=L14⊕f(R14, K15))

 
R16 (=L15⊕f(R15, K16))
L16 (=R15)