簡述TEA加密算法

QQ是我們生活中常用到的一種即時社交工具,那么今天我們就來了解一種在QQ的數(shù)據(jù)傳輸協(xié)議中使用的對稱加密算法——TEA加密算法。

TEA加密算法

TEA加密算法是一種分組密碼算法,全稱為"Tiny Encryption Algorithm" ,特點就是速度快,代碼量小,但卻擁有很強(qiáng)的抗差分分析能力,對 64 位數(shù)據(jù)加密的密鑰長達(dá) 128 位,安全性相當(dāng)好。

TEA加密算法

TEA加密算法的原理

TEA加密和解密時都使用一個常量值,這個常量值為0x9e3779b,這個值是近似黃金分割率。然后利用不斷增加的Delta(黃金分割率)值作為變化,使得每輪的加密是不同,該加密算法的迭代次數(shù)可以改變,建議的迭代次數(shù)為32輪。

TEA算法每一次可以操作64bit(8byte),采用128bit(16byte)作為key,算法采用迭代的形式,推薦的迭代輪數(shù)是64輪,最少32輪。

TEA加密算法

TEA加密算法的演變

由于針對TEA加密算法的攻擊不斷出現(xiàn),TEA也出現(xiàn)了很多版本的升級版。

  • XTEA

相比于TEA,XTEA算法的安全性顯然是更高的,其中的過程要比TEA稍微復(fù)雜一點點,增加了更多的密鑰表,移位和異或操作等。

TEA加密算法

  • Block TEA

Block TEA算法可以對32位的任意整數(shù)倍長度的變量塊進(jìn)行加解密的操作,該算法將XTEA輪循函數(shù)依次應(yīng)用于塊中的每個字,并且將它附加于被應(yīng)用字的鄰字。

  • XXTEA

XXTEA使用跟Block TEA相似的結(jié)構(gòu),但在處理塊中每個字時利用了相鄰字,且用擁有兩個輸入量的MX函數(shù)代替了XTEA輪循函數(shù)。

TEA加密算法的優(yōu)點

TEA采用與DES算法類似的Feistel結(jié)構(gòu),迭代的每次循環(huán)使用加法和移位操作,對明文和密鑰進(jìn)行擴(kuò)散和混亂,實現(xiàn)明文的非線性變換。

TEA密鑰長度和迭代次數(shù)都是DES的兩倍,抗“試錯法”攻擊的強(qiáng)度不低于DES算法。算法以32bits的字為運算單位,而不是耗費計算能力的逐位運算。但并沒有采用像DES那樣的轉(zhuǎn)換矩陣,所以TEA算法安全、高效、占用存儲空間少,非常適合在嵌入式系統(tǒng)中應(yīng)用。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。