密碼學(xué)是信息安全中的重要內(nèi)容,因此,加密算是信息安全課堂上的重點(diǎn),更是難點(diǎn),然而,在教學(xué)過程中,有些加密算法并不能輕而易舉地描述清楚,我從多年的教學(xué)中發(fā)現(xiàn):在高校使用的教材中,幾乎沒有教材把DES算法描述的讓學(xué)習(xí)者能通過自學(xué)掌握算法加解密的詳細(xì)過程。如何才能快速且通俗易懂地講解清楚DES算法呢?我結(jié)合教學(xué)經(jīng)驗(yàn)加以分析。
一、主要知識(shí)點(diǎn)介紹
在介紹DES加密算法過程中,教師不要一開始就介紹流程圖,而應(yīng)先把基本概念介紹完后,接下來把算法中的幾個(gè)抽象概念挖出來單獨(dú)講解,最后再整體串起來。其加密過程中主要有以下幾個(gè)抽象概念。
1.初始置換IP
IP置換表的含義是:輸出的第1比特是輸入的第58比特,該表示方法實(shí)現(xiàn)方便。讀者可以觀察IP表會(huì)發(fā)現(xiàn)它的規(guī)律,即畫一張8行8列的表格,把明文的二進(jìn)制數(shù)順序從表中最后一列開始上四行按2、4、6、8,下四行1、3、5、7的次序按列倒著往前寫。
2.函數(shù)F(Ri-1,Ki)
函數(shù)F有兩個(gè)輸入:32的消息A=R(32bits)作第一個(gè)輸入,48比特的子密鑰J=K(48bits)作為第二個(gè)輸入。產(chǎn)生的輸出為長(zhǎng)度為32的位串。
(1)對(duì)第一個(gè)變?cè)狝,先利用擴(kuò)展函數(shù)E,擴(kuò)展成48位E(A)。
3.E-盒擴(kuò)展置換
擴(kuò)展變換的作用是將輸入的32比特?cái)?shù)據(jù)擴(kuò)展為48比特?cái)?shù)據(jù)。
擴(kuò)展方式:
(1)將輸入的32比特每4比特為一組分為8塊;
(2)分別將第m-1塊的最右比特和第m+1塊的最左比特添到第m塊的左邊和右邊,形成輸出的第k個(gè)6比特塊。
4.S-盒置換
的48位比特串就變?yōu)?2位了。
5.P置換
將S-盒變換后的32比特?cái)?shù)據(jù)再進(jìn)行P盒置換,置換后得到的32比特即為f函數(shù)的輸出。
基本特點(diǎn):
(1)P盒的各輸出塊的4個(gè)比特都來自不同的輸入塊。
(2)P盒的各輸入塊的4個(gè)比特都分配到不同的輸出塊之中。
(3)P盒的第t輸出塊的4個(gè)比特都不來自第t輸入塊。
第四步:將右半部分進(jìn)行擴(kuò)展置換,這樣就將32位擴(kuò)展為48位,這一步擴(kuò)展置換是按照給定的E-盒置換表(教材中一般都有給出)進(jìn)行置換。
第五步:生成第一輪子密鑰,具體做法:首先把64位的密鑰的第8、16、24、32、40、48、56、64刪除,使之成為56位的密鑰,接下來要對(duì)56位的密鑰進(jìn)行給定的置換選擇1(PC-1)置換(教材一般有給出PC-1表)。置換后即生成56位的初始子密鑰。
第六步:將上一步生成的56位初始子密鑰分成左28位和右28位,然后對(duì)左右兩部分分別循環(huán)移位操作。各輪移位位數(shù)按給定的移位位數(shù)表進(jìn)行(教材一般有給出)。然后將移位后的左右兩部分合拼回56位的位串。
第七步:將上一步合拼后的56位的密鑰進(jìn)行置換選擇2(PC-2)置換(教材一般有給出PC-2表)。值得注意的是:該置換過程是壓縮置換,也就是說輸入的是56位的密鑰,經(jīng)過PC-2置換后會(huì)變?yōu)?8位,例如:在這個(gè)過程中,處在第33位輸入位置的那一位在輸出時(shí)移到了第35位的位置,而處在第9、18、22、25、35、38、43、54位位置的那些位被略去了。置換后即為本輪的子密鑰,再將本輪了密鑰與第四步經(jīng)過擴(kuò)展的數(shù)據(jù)進(jìn)行異或運(yùn)算,得到48位比特串。
第八步:將上一步得到的48位比特串按順序每6位分成一組,共有8組。接下來對(duì)這8組進(jìn)行S-盒變換(變換表教材一般有給出)。
第九步:S-盒輸出的32位數(shù)據(jù)經(jīng)過給定的P置換(P置換表在教材中一般有給出),P置換后再與上一輪(在此處就是第二步中所說的L0)左32位按位異或運(yùn)算,所得即為新的右半部分(在此處就是R1)。
第十步:到第九步為止,只是16輪迭代中的第一輪,在經(jīng)過16輪迭代后,把得到的64位比特串進(jìn)行初始逆置換(IP-1,在教材中一般有給出),便得到了64位要輸出的密文。至此才算完成了一次DES加密。
DES解密過程和加密過程類似,不同的是,16輪子密鑰的順序是顛倒的,在此不再介紹。
參考文獻(xiàn):
[1]袁津生,吳硯農(nóng).計(jì)算機(jī)網(wǎng)絡(luò)安全基礎(chǔ)[M].人民郵電出版社,2004,4.
[2]戚文靜,劉學(xué).網(wǎng)絡(luò)安全原理與應(yīng)用[M].中國水利水電出版社,2005,9.