s盒

s盒

在密碼學中,S盒(Substitution-box)是對稱密鑰算法 執行置換計算的基本結構。S盒用在分組密碼算法中,是唯一的非線性結構,其S盒的指標的好壞直接決定了密碼算法的好壞。

基本信息

S盒的功能就是一種簡單的“代替”操作。S盒是將48比特壓縮成32比特,S盒接受特定數量的輸入48比特,經過8個盒將其轉換為32比特輸出 ,如圖1所示。

圖1 S盒變換 圖1 S盒變換

原理

壓縮後的密鑰與擴展分組異或以後得到48位的數據,將這個數據送入S盒 ,進行替代運算。替代由8個不同的S盒完成,每個S盒有6位輸入4位輸出。48位輸入分為8個6位的分組,一個分組對應一個S盒,對應的S盒對各組進行代替操作。

s盒原理 s盒原理

一個S盒就是一個4行16列的表,盒中的每一項都是一個4位二進制數表示的十進制數。S盒的6個輸入確定了其對應的那個盒。輸入的高低兩位做為行數H,中間四位做為列數L,在S-BOX中查找第H行L列對應的數據。(S盒的行列計數都是從0開始。)

8個S盒變換如下:

S1盒

0123456789101112131415
01441312151183106125907
10157414213110612119538
24114813621115129731050
31512824917511314100613

S2盒

0123456789101112131415
01518146113497213120510
13134715281412011069115
20147111041315812693215
31381013154211671205149

S3盒

0123456789101112131415
01009146315511312711428
11370934610285141211151
21364981530111212510147
31101306987415143115212

S4盒

0123456789101112131415
07131430691012851112415
113811561503472121101419
21069012117131513145284
33150610113894511127214

S5盒

0123456789101112131415
02124171011658315130149
11411212471315015133986
24211110137815912563014
31181271142136150910453

S6盒

0123456789101112131415
01211015926801334147511
11015427129561131401138
29141552812370410113116
34321295151011141760813

S7盒

0123456789101112131415
04112141508133129751061
11301174911014351221586
21411131237141015680592
36111381410795015142312

S8盒

0123456789101112131415
01328461511110931450127
11151381037412561101492
27114191214206101315358
32114741081315129035611

舉例

我們以s8盒為例,輸入110011,第一位和第六位(最高位和最低位)組合為11(二進制),轉換為十進制為3,則在s8盒中行號為3。接下來我們計算列,原始數據第二位到第五位為1001(二進制),轉換為十進制為9,則在s8盒中列號為9。s盒8的03行09列的數字為12,轉換為二進制為1100,因此用二進制1100來代替110011。

S盒代替是DES算法 的關鍵步驟,所有的其他的運算都是線性的,易於分析,而S盒是非線性的,相比於其他步驟,提供了更好安全性。

相關詞條

相關搜尋

熱門詞條

聯絡我們