[摘 要] 隨著電子商務(wù)的發(fā)展,計算機(jī)信息的保密問題顯得越來越重要,信息安全的核心是密碼技術(shù),IDEA密碼安全技術(shù)是當(dāng)今最新一門加密解密技術(shù)。
[關(guān)鍵詞] 信息安全 密碼技術(shù)
一、背景
1990年XueJia Lai和Massey開發(fā)出IDEA加密算法雛形,稱為PES,即“建議的加密標(biāo)準(zhǔn)”。第二年,根據(jù)有關(guān)專家對這—密碼算法的分析結(jié)果,設(shè)計者對該算法進(jìn)行了強(qiáng)化并稱之為IPES,即“改進(jìn)的建議加密標(biāo)準(zhǔn)”。該算法于1992年更名為IDEA,即“國際加密標(biāo)準(zhǔn)”。
IDEA有大量的弱密鑰,這些弱密鑰是否會威脅它的安全性還是一個迷。IDEA密碼能夠抵抗差分分析和線性分析。 設(shè)計者Lai認(rèn)為IDEA不是一個群,但目前仍未得到證實。 Eurocrypt'97會議上給出了兩種新的攻擊低圈IDEA的方法,第一種攻擊方法可破譯大約3·5-圈的IDEA;第二種攻擊方法可破譯大約3-圈的IDEA。但從分析結(jié)果來看,這兩種攻擊方法并未對IDEA的安全性構(gòu)成威脅。
IDEA(International Data Encryption Algorithm)是一種國際信息加密算法。它是1991年的瑞士ETH Zurich由James Massey 和Xueiia Lai發(fā)明的),于l992年正式公開,是一個分組大小為64位,密鑰為l28位,迭代輪數(shù)為八輪的迭代型密碼體制。密鑰主要是通過二元和,模216加及216+l乘三種運算來完成,IDEA另一特點是用戶可以根據(jù)需求選用64位或128位密鑰以滿足所需的安全要求。
二、算法框架
輸入的64-位數(shù)據(jù)分組被分成4個16-位子分組:xl,X2,x3和x4。這4個子分組成為算法的第一輪的輸入,總共有8輪。在每一輪中,這4個子分組相互相異或,相加,相乘,且與6個16-位子密鑰相異或,相加,相乘。在輪與輪間,第二和第三個子分組交換。最后在輸出變換中4個子分組與4個子密鑰進(jìn)行運算。
在每一輪中,執(zhí)行的順序如下:
(1)X1和第一個子密鑰相乘。(2)x2和第二個子密鑰相加。(3)X3和第三個子密鑰相加。(4)x4和第四個子密鑰相乘。(5)將第(1)步和第(3)步的結(jié)果相異或。 (6)將第(2)步和第(4)步的結(jié)果相異或。(7)將第(5)步的結(jié)果與第五個子密鑰相乘。(8)將第(6)步和第(7)步的結(jié)果相加。(9)將第(8)步的結(jié)果與第六個子密鑰相乘。(10)將第(7)步和第(9)步的結(jié)果相加。(11)將第(1)步和第(9)步的結(jié)果相異或。(12)將第(3)步和第(9)步的結(jié)果相異或。(13)將第(2)步和第(10)步的結(jié)果相異或。(14)將第(4)步和第(10)步的結(jié)果相異或。
每一輪的輸出是第(11)、(12)、(13)和(14) 步的結(jié)果形成的4個子分組。將中間兩個分組分組交換(最后一輪除外)后,即為下一輪的輸入。
經(jīng)過8輪運算之后,有一個最終的輸出變換:
(1)X1和第一個子密鑰相乘。(2)x2和第二個子密鑰相加。(3)x3和第三個子密鑰相加。(4)x4和第四個子密鑰相乘。
最后,這4個子分組重新連接到一起產(chǎn)生密文。產(chǎn)生子密鑰也很容易。這個算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用與輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是算法的第一批8個子密鑰(第一輪六個,第二輪的頭兩個)。然后,密鑰向左環(huán)移x位后再分成8個子密鑰。開始4個用在第二輪,后面4個用在第三輪。密鑰再次向左環(huán)移25位產(chǎn)生另外8個子密鑰,如此進(jìn)行直到算法結(jié)束。
三、加密解密算法詳解
1.產(chǎn)生密鑰。算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用與輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是算法的第一批8個子密鑰(第一輪六個,第二輪的頭兩個)。然后,密鑰向左環(huán)移x位后再分成8個子密鑰。開始4個用在第二輪,后面4個用在第三輪。密鑰再次向左環(huán)移25位產(chǎn)生另外8個子密鑰,如此進(jìn)行直到算法結(jié)束。具體是:
IDEA總共進(jìn)行8輪迭代操作,每輪需要6個子密鑰,另外還需要4個額外子密鑰,所以總共需要52個子密鑰,這個52個子密鑰都是從128位密鑰中擴(kuò)展出來的。
首先把輸入的Key分成8個16位的子密鑰, 1~6號子密鑰供第一輪加密使用,7~8號子密鑰供第二輪使用,然后把這個128位密鑰循環(huán)左移25位,這樣Key = k26k27k28…k24k25。
把新生成的Key在分成8個16位的子密鑰,1~4號子密鑰供第二輪加密使用(前面已經(jīng)提供了兩個)5~8號子密鑰供第三輪加密使用。到此我們已經(jīng)得到了16個子密鑰,如此繼續(xù),當(dāng)循環(huán)左移了5次之后已經(jīng)生成了48個子密鑰,還有四個額外的子密鑰需要生成,再次把Key循環(huán)左移25位,選取劃分出來的8個16位子密鑰的前4個作為那4個額外的加密密鑰.供加密使用的52個子密鑰生成完畢。
輸入的64-位數(shù)據(jù)分組被分成4個16-位子分組:xl,X2,x3和x4。這4個子分組成為算法的第一輪的輸入,總共有8輪。在每一輪中,這4個子分組相互相異或,相加,相乘,且與6個16-位子密鑰相異或,相加,相乘。在輪與輪間,第二和第三個子分組交換。最后在輸出變換中4個子分組與4個子密鑰進(jìn)行運算。
2.加、解密過程。在每一輪中,執(zhí)行的順序如下:(1)X1和第一個子密鑰相乘。(2)x2和第二個子密鑰相加。(3)X3和第三個子密鑰相加。(4)x4和第四個子密鑰相乘。(5)將第(1)步和第(3)步的結(jié)果相異或。 (6)將第(2)步和第(4)步的結(jié)果相異或。(7)將第(5)步的結(jié)果與第五個子密鑰相乘。(8)將第(6)步和第(7)步的結(jié)果相加。(9)將第(8)步的結(jié)果與第六個子密鑰相乘。(10)將第(7)步和第(9)步的結(jié)果相加。(11)將第(1)步和第(9)步的結(jié)果相異或。(12)將第(3)步和第(9)步的結(jié)果相異或。(13)將第(2)步和第(10)步的結(jié)果相異或。(14)將第(4)步和第(10)步的結(jié)果相異或。
每一輪的輸出是第(11)、(12)、(13)和(14)步的結(jié)果形成的4個子分組。將中間兩個分組分組交換(最后一輪除外)后,即為下一輪的輸入。
經(jīng)過8輪運算之后,有一個最終的輸出變換:
(1)X1和第一個子密鑰相乘。(2)x2和第二個子密鑰相加。(3)x3和第三個子密鑰相加。(4)x4和第四個子密鑰相乘。
最后,這4個子分組重新連接到一起產(chǎn)生密文。
四、評價
IDEA算法的密鑰長度為128位。設(shè)計者盡最大努力使該算法不受差分密碼分析的影響,數(shù)學(xué)家已證明IDEA算法在其8圈迭代的第4圈之后便不受差分密碼分析的影響了。假定窮舉法攻擊有效的話,那么即使設(shè)計一種每秒種可以試驗10億個密鑰的專用芯片,并將10億片這樣的芯片用于此項工作,仍需1013年才能解決問題;另一方面,若用1024片這樣的芯片,有可能在一天內(nèi)找到密鑰,不過人們還無法找到足夠的硅原子來制造這樣一臺機(jī)器。目前,尚無一片公開發(fā)表的試圖對IDEA進(jìn)行密碼分析的文章。因此,就現(xiàn)在來看應(yīng)當(dāng)說IDEA是非常安全的。并且,IDEA數(shù)據(jù)比較RSA算法加、解決速度快得多,又比DES算法要相對安全得多。
參考文獻(xiàn):
[1]陳 運:信息加密原理[M].成都:電子科技大學(xué)出版社,1990
[2]黃 偉:加密與解密算法研究[J].論文天下論文網(wǎng)