s盒

s盒

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

基本介紹

  • 中文名:s盒
  • 外文名:Substitution-box
  • 結構:非線性結構
  • 基本信息:簡單的“代替”操作
  • 常用方法:隨機選擇、人為構造
  • 作用:混淆密鑰與密文之間的關係
基本信息,原理,S1盒,S2盒,S3盒,S4盒,S5盒,S6盒,S7盒,S8盒,舉例,

基本信息

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盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
1
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
2
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
3
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13

S2盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
1
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
2
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
3
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9

S3盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
1
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
2
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
3
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12

S4盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
2
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14

S5盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
2
12
4
1
7
10
11
6
5
8
3
15
13
0
14
9
1
14
11
2
12
4
7
13
1
5
0
15
13
3
9
8
6
2
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
3
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3

S6盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
2
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
3
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13

S7盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
2
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
3
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12

S8盒

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
3
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11

舉例

我們以s8盒為例,輸入110011,第一位和第六位(最高位和最低位)組合為11(二進制),轉換為十進制為3,則在s8盒中行號為3。接下來我們計算列,原始數據第二位到第五位為1001(二進制),轉換為十進制為9,則在s8盒中列號為9。s盒8的03行09列的數字為12,轉換為二進制為1100,因此用二進制1100來代替110011。
S盒代替是DES算法的關鍵步驟,所有的其他的運算都是線性的,易於分析,而S盒是非線性的,相比於其他步驟,提供了更好安全性。

相關詞條

熱門詞條

聯絡我們