AES加密算法在身份識別中的應(yīng)用

電子郵件系統(tǒng),網(wǎng)上銀行系統(tǒng),各種C/S模式的客戶端,B/S模式的登錄界面,甚至個(gè)人計(jì)算機(jī)等等,都要應(yīng)用到身份識別系統(tǒng)。這些系統(tǒng)的身份識別大都使用“用戶名+固定密碼”的認(rèn)證方式,用戶直接在登錄界面輸入用戶名和密碼,然后提交服務(wù)器端認(rèn)證。這種身份識別方式的優(yōu)點(diǎn)是簡單、方便、便于記憶,但是卻隱藏著很多的安全隱患,非法用戶只要知道合法用戶的用戶名和密碼,就可獲得合法用戶的使用權(quán)限,從而竊取相關(guān)資料。為此基于AES加密算法的適合各種身份識別的動(dòng)態(tài)密碼生成機(jī)制應(yīng)運(yùn)而生。

一、AES加密算法

AES加密算法是美國國家標(biāo)準(zhǔn)技術(shù)研究所NIST旨在取代DES的加密標(biāo)準(zhǔn)。

AES加密數(shù)據(jù)塊分組長度必須為128比特,密鑰長度可以是128比特、192比特、256比特中的任意一個(gè)(如果數(shù)據(jù)塊及密鑰長度不足時(shí),會補(bǔ)齊)。AES加密有很多輪的重復(fù)和變換。大致步驟如下:

1、密鑰擴(kuò)展(KeyExpansion),

2、初始輪(Initial Round),

3、重復(fù)輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,

4、最終輪(Final Round),最終輪沒有MixColumns。

二、AES加密算法在身份識別中的應(yīng)用及可行性分析

1、AES加密算法在身份識別中的應(yīng)用

在身份識別系統(tǒng)的應(yīng)用中,我們先設(shè)計(jì)一種加密計(jì)算器用于生成動(dòng)態(tài)密碼,該計(jì)算器中存有用戶ID(數(shù)字)和原始密碼。在每次需要身份認(rèn)證之前,登錄系統(tǒng)給用戶6-8位的隨機(jī)數(shù),用戶將隨機(jī)數(shù)輸入至加密計(jì)算器中,計(jì)算器將用戶ID、原始密碼和隨機(jī)數(shù)按照一定的規(guī)則組成128位的明文,再將其按不同的規(guī)則組成128位的密鑰,利用AES加密算法將明文和密鑰計(jì)算得到128位的密文。

為了方便用戶,我們再將計(jì)算器計(jì)算得到的128位的密文用哈希函數(shù)進(jìn)行壓縮至3字節(jié),該3字節(jié)壓縮密文即作為每次身份認(rèn)證的動(dòng)態(tài)密碼。將該動(dòng)態(tài)密碼輸入至身份識別系統(tǒng),在身份識別系統(tǒng)中運(yùn)用同樣的算法生成3字節(jié)的密文,若用戶輸入的密文同身份識別系統(tǒng)生成的密文一致,則認(rèn)為該用戶為合法用戶,否則為非法用戶,拒絕其登錄。

由于用戶的原始密碼只存在加密計(jì)算器和登錄驗(yàn)證系統(tǒng)中,是完全不公開的,而且登錄系統(tǒng)每次提供給用戶的隨機(jī)數(shù)都不相同,根據(jù)AES加密算法計(jì)算出的密文也不相同,即每次的登錄密碼不同,因此可以非常有效地保護(hù)合法用戶的密碼信息。

2、AES加密算法在身份識別中的應(yīng)用的可行性分析

對身份認(rèn)證系統(tǒng)的這種改進(jìn),是利用了每次計(jì)算生成的登錄密碼的隨機(jī)性來對用戶信息進(jìn)行保護(hù),因此產(chǎn)生的動(dòng)態(tài)登錄密碼的重復(fù)率要低,才能保證每次操作足夠的安全性。為此,我們做了以下實(shí)驗(yàn)來驗(yàn)證該算法產(chǎn)生動(dòng)態(tài)密碼的重復(fù)率:

實(shí)驗(yàn)一:

明文前3字節(jié)為000000—999999,后13字節(jié)全為零;密鑰為000102030405060708090A0B0C0D0E0F;用上述的AES加密算法進(jìn)行加密,得到128位的密文,再利用哈希函數(shù)將該密文壓縮至3字節(jié)。表1給出其中二十萬個(gè)數(shù)的重復(fù)率;表2給出其中四十萬個(gè)數(shù)的重復(fù)率;表3給出百萬個(gè)數(shù)的重復(fù)率。由表3可以計(jì)算出,對于任給一個(gè)隨機(jī)數(shù),使用者猜出另一個(gè)隨機(jī)數(shù),使兩個(gè)數(shù)對應(yīng)密文相同的概率為6*10-8。

實(shí)驗(yàn)二:

明文前0字節(jié)為000000—999999,后13字節(jié)全為零;密鑰為010102030405060708090A0B0C0F(和實(shí)驗(yàn)一比較密鑰僅改變了一位);用AES加密算法進(jìn)行加密,得到128位的密文,再利用哈希函數(shù)將該密文壓縮至3字節(jié)。表4給出其中二十萬個(gè)數(shù)的重復(fù)率;表5給出其中四十萬個(gè)數(shù)的重復(fù)率。

三、AES加密算法在身份識別中的應(yīng)用的可行性分析實(shí)驗(yàn)結(jié)果比較、分析

分析實(shí)驗(yàn)一、實(shí)驗(yàn)二的結(jié)果及對其比較可得以下結(jié)論:

1、密鑰任意改變一位對應(yīng)同一明文其密文改變很大,即AES加密算法的擴(kuò)散性很好。

2、密鑰任意改變一位其重復(fù)率改變不大并且重復(fù)率很小,這樣可以保證足夠高的安全性。

3、對于百萬個(gè)數(shù)進(jìn)行窮舉比較,重復(fù)率為5.83%,任給兩個(gè)數(shù)對應(yīng)密文相同的概率為6*10-8。

由此可以看出,將AES加密算法運(yùn)用到各種身份識別系統(tǒng)中,由于采用的是動(dòng)態(tài)密碼的形式,可以很好地保護(hù)用戶的登錄信息,從而有效地保護(hù)用戶信息。但是使用這種身份識別方式也會帶來一些弊端,例如要求用戶配備加密計(jì)算器,這無疑會增加開支;對于原來的身份識別系統(tǒng)也要進(jìn)行重新的改進(jìn);對于大量的用戶同時(shí)在線時(shí)如何提高其執(zhí)行速度也是一個(gè)待解決的難題。

小知識之身份識別技術(shù):

身份識別技術(shù)采用密碼技術(shù)(尤其是公鑰密碼技術(shù))設(shè)計(jì)出安全性高的協(xié)議??煞譃橐韵聝煞N方法:

(一)口令方式:口令是應(yīng)用最廣的一種身份識別方式,一般是長度為5~8的字符串,由數(shù)字、字母、特殊字符、控制字符等組成。用戶名和口令的方法幾十年來一直用于提供所屬權(quán)和準(zhǔn)安全的認(rèn)證來對服務(wù)器提供一定程度的保護(hù)。

(二)標(biāo)記方式:標(biāo)記是一種個(gè)人持有物,它的作用類似于鑰匙,用于啟動(dòng)電子設(shè)備,標(biāo)記上記錄著用于機(jī)器識別的個(gè)人信息。