AES算法特點(diǎn)與應(yīng)用注意事項(xiàng)
LKT系列加密產(chǎn)品具有硬件AES算法協(xié)處理器,可以有效的為用戶開發(fā)提供更多的選擇和安全性。
AES是一種區(qū)塊加密標(biāo)準(zhǔn)算法,它的提出是為了升級替換原有的DES加密算法。因此它的安全強(qiáng)度高于DES算法。但不應(yīng)片面理解,系統(tǒng)和數(shù)據(jù)的安全不僅與應(yīng)用的加密算法有關(guān),更與加密應(yīng)用方案有關(guān)。和DES算法一樣,AES也屬于對稱加密算法,對密鑰的存儲與保護(hù),直接決定了整個系統(tǒng)的安全。
AES最常見的有3種方案,分別是AES-128、AES-192和AES-256,它們的區(qū)別在于密鑰長度不同,AES-128的密鑰長度為16bytes(128bit / 8),后兩者分別為24bytes和32bytes。密鑰越長,安全強(qiáng)度越高,但伴隨運(yùn)算輪數(shù)的增加,帶來的運(yùn)算開銷就會更大,所以用戶應(yīng)根據(jù)不同應(yīng)用場合進(jìn)行合理選擇。
用戶在應(yīng)用過程中,除了關(guān)注密鑰長度外,還應(yīng)注意確認(rèn)算法模式。AES算法有五種加密模式,即CBC、ECB、CTR、OCF、CFB,后三種模式因其較為復(fù)雜且應(yīng)用較少,不做詳細(xì)說明,僅對ECB和CBC模式進(jìn)行介紹。
ECB模式的全稱是Electronic Codebook Book,即電碼本模式。這種模式是將整個明文分成若干個長度相同的分組,然后對每一小組進(jìn)行加密,并將加密結(jié)果拼接為最終結(jié)果,C = C1C2C3......Cn。它與ECB模式的DES算法加密流程基本一致。
CBC模式的全稱是Cipher Block Chaining,這種模式是先將明文切分成若干個長度相同的分組(與ECB模式一樣),此時(shí)先利用初始向量IV與第一組數(shù)據(jù)進(jìn)行異或后再進(jìn)行加密運(yùn)算生成C1。將C1作為初始向量與第二組數(shù)據(jù)進(jìn)行異或后再進(jìn)行加密運(yùn)算生成C2。以此類推,當(dāng)最后一組數(shù)據(jù)加密完畢后,將加密結(jié)果拼接為最終結(jié)果,C = C1C2C3......Cn。
綜上,AES192算法與DES算法很相似,均為塊加密算法,密文數(shù)據(jù)以16字節(jié)為單位獨(dú)立存在。若明文長度為16字節(jié),當(dāng)改變明文的前16字節(jié)時(shí),只會影響密文的前16字節(jié),密文后16字節(jié)不變。因此,在應(yīng)用AES算法對線路傳輸數(shù)據(jù)加密過程中,若想保證密文的整體變化,要保證每塊明文數(shù)據(jù)都是變化的。
希望本文能讓大家對AES的算法特點(diǎn)有個更直觀的認(rèn)識,更安全有效的利用AES算法設(shè)計(jì)數(shù)據(jù)加解密的方案,將LKT中自帶的AES算法接口高效利用起來。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。