DES算法S盒学习
在密碼學中,S盒(Substitution-box)是對稱密鑰算法執行置換計算的基本結構。
S盒用在分組密碼算法中,是唯一的非線性結構。
?
S盒是將48比特壓縮成32比特,S盒接受特定數量的輸入48比特,經過8個盒將其轉換為32比特輸出。
在DES算法中替代由8個不同的S盒完成,每個S盒有6位輸入4位輸出。
一個S盒就是一個4行16列的表,盒中的每一項都是一個4位二進制數表示的十進制數。
輸入的高低兩位做為行數H,中間四位做為列數L,在S-BOX中查找第H行L列對應的數據。
S盒的行列計數都是從0開始。
例如,S1盒如下;
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
以s8盒為例,輸入110011,
第一位和第六位(最高位和最低位)組合為11(二進制),轉換為十進制為3,則在s8盒中行號為3;
接下來計算列,原始數據第二位到第五位為1001(二進制),轉換為十進制為9,則在s8盒中列號為9;
s盒8的03行09列的數字為12,轉換為二進制為1100,因此用二進制1100來代替110011;
?
S盒代替是DES算法的關鍵步驟,所有的其他的運算都是線性的,易于分析,而S盒是非線性的,相比于其他步驟,提供了更好安全性。
總結
- 上一篇: 【光通信】参数'G'和'GE’的技术实现
- 下一篇: 标称型和数值型的区别