版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-s盒

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

在密碼學(xué)中,S盒(Substitution-box)是對(duì)稱密鑰算法1執(zhí)行置換計(jì)算的基本結(jié)構(gòu)。S盒用在分組密碼算法中,是非線性結(jié)構(gòu),其密碼強(qiáng)度直接決定了密碼算法的好壞。

基本信息S盒的功能就是一種簡(jiǎn)單的“代替”操作。S盒是將48比特壓縮成32比特,S盒接受特定數(shù)量的輸入48比特,經(jīng)過8個(gè)盒將其轉(zhuǎn)換為32比特輸出2,如圖1所示。

原理壓縮后的密鑰與擴(kuò)展分組異或以后得到48位的數(shù)據(jù),將這個(gè)數(shù)據(jù)送入S盒3,進(jìn)行替代運(yùn)算。替代由8個(gè)不同的S盒完成,每個(gè)S盒有6位輸入4位輸出。48位輸入分為8個(gè)6位的分組,一個(gè)分組對(duì)應(yīng)一個(gè)S盒,對(duì)應(yīng)的S盒對(duì)各組進(jìn)行代替操作。

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

8個(gè)S盒變換如下:

S1盒

|| ||

S2盒

|| ||

S3盒

|| ||

S4盒

|| ||

S5盒

|| ||

S6盒

|| ||

S7盒

|| ||

S8盒

|| ||

舉例我們以s8盒為例,輸入110011,第一位和第六位(最高位和最低位)組合為11(二進(jìn)制),轉(zhuǎn)換為十進(jìn)制為3,則在s8盒中對(duì)應(yīng)第三行。接下來我們計(jì)算列,原始數(shù)據(jù)第二位到第五位為1001(二進(jìn)制),轉(zhuǎn)換為十進(jìn)制為9,則在s8盒中對(duì)應(yīng)第九列。s盒8的第3行第9列的數(shù)字為12,轉(zhuǎn)換為二進(jìn)制為1100,因此用二進(jìn)制1100來代替110011。

S盒代替是DES算法4的關(guān)鍵步驟,所有的其他的運(yùn)算都是線性的,易于分析,而S盒是非線性的,相比于其他步驟,提供了更好安全性。

本詞條內(nèi)容貢獻(xiàn)者為:

王慧維 - 副研究員 - 西南大學(xué)

評(píng)論
中國(guó)科普N
大學(xué)士級(jí)
看過
2023-01-24