淺析幾種私密密鑰加密算法

私密密鑰算法是密碼學(xué)的基本算法。兩人共享一個共同密鑰,一個人用密鑰加密明文,產(chǎn)生密文,另一個人用密鑰脫密密文,恢復(fù)出明文。

DES算法

DES算法是一種被公認(rèn)為世界標(biāo)準(zhǔn)達(dá)16年以上的私密密鑰算法,縱然它面對若干年頭的密碼分析攻擊而令人矚目地生存了下來,但畢竟已顯出“年事已高”的跡象。數(shù)據(jù)加密標(biāo)準(zhǔn)是一種分組密碼,它以64比特分組加密數(shù)據(jù)。由算法的一端進(jìn)入64比特明文組。從算法的另一端出來61比特密文組。加密和脫密算法相同。DES由16輪組成,每一輪都是一個代替—置換網(wǎng)絡(luò)—明文比特被弄亂并與密鑰混合。輪的核心是S盒—代替盒。在代替盒里,分組中的特定二進(jìn)制數(shù)碼代替了其他二進(jìn)制數(shù)碼。算法的密鑰長度為56比特,不過密鑰常被表示為64比特的數(shù),這是因?yàn)槊總€第8比特被用做奇偶校驗(yàn)而被算法略去不記。密鑰可以是任意的56比特?cái)?shù),也可以在任意時間變更,少量的數(shù)被認(rèn)為弱密鑰,可以很容易地把他們避開。全部算法安全性取決于密鑰。

三重DES算法

提高DES安全性的一種比較實(shí)在的辦法是用兩個不同的密鑰兩次加密成一個分組。首先,用第一個密鑰加密分組,然后再用第二個私密密鑰加密它。脫密則是逆過程。產(chǎn)生雙重加密的密文分組應(yīng)當(dāng)是非常難于用窮舉搜索法破譯的。

C=EK2(EK1P)

P=DK1(DK2C)

具有獨(dú)立密鑰的DES

另一個變化是每一輪(選代)都使用一個不同的子密鑰,而不是由單獨(dú)一個56比特密鑰產(chǎn)生它們。由于16輪的每一輪都使用48個密鑰比特,這意味著這個變型的密鑰長度為768個比特。這個變型能大大地提高DES的復(fù)雜性。

帶有交換S盒的DES算法

其他DES改進(jìn)型皆以S盒為中心。有的設(shè)計(jì)使S盒的順序可變且依賴于密鑰,其他 一些設(shè)計(jì)使S盒本身的內(nèi)容可變。更換DES的8個S盒的順序可以使DES變得更加脆弱,特定代替順序的16輪DES可在246步之內(nèi)被破譯。具有隨機(jī)S盒的DES已被證明非常容易破譯。

Lucifer算法

Lucifer是IBM公司在70年代設(shè)計(jì)的一種分組算法,它是IBM對之進(jìn)行改進(jìn)成為DES算法的原始算法。Lucifer具有可變的輪數(shù)及可變的分組長度,其密鑰長度為128比特,這使得針對Lucifer的強(qiáng)力攻擊成為不可行的事。

FEAL-N

FELAL-N密碼算法是日本NTT的清水和宮口設(shè)計(jì)的,他們的想法是形成一種類似與DES算法,但卻是一種其間的每一輪都比DES算法強(qiáng)的多的算法。因此,算法的輪數(shù)會較少而運(yùn)算速度快。FEAL-4是最后得到的結(jié)果。

LOKI算法

LOKI是作為DES的一種潛在代替算法于1990年在密碼學(xué)界首次亮相的。像DES一樣,它以64比特分組加密數(shù)據(jù)。LOKI使用64比特密鑰,不存在如DES所擁有的奇偶校驗(yàn)比特,所有64比特都是密鑰部分。LOKI未取得專利權(quán),任何人都可以實(shí)現(xiàn)或使用該算法。

Khufu和khafre算法

Khufu是一種64比特分組密碼,總體設(shè)計(jì)同于DES算法,它擁有512比特(64字節(jié))長度的密鑰。Khafre與Khufu類似,預(yù)定用于不能進(jìn)行預(yù)先計(jì)算的場合。S盒不能進(jìn)行預(yù)先計(jì)算,密鑰長度聽任公開。