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