淺析TEA算法
在計算能力有限的嵌入式系統(tǒng)中實現(xiàn)加、解密算法,不但要求密文難以破解,還對計算速度、代碼長度的要求苛刻。對稱加密算法相對簡單、實現(xiàn)容易、速度快。我們在“智能遠程抄表系統(tǒng)”中,對傳輸數(shù)據(jù)采用了對稱加密TEA算法保護,獲得了理想的效果。
TEA算法介紹
TEA算法是由劍橋大學計算機實驗室的DavidWheeler和RogerNeedham設(shè)計的,意為微型加密算法,其目的是設(shè)計一種可以用各種語言實現(xiàn)的,能在大多數(shù)機器上運行的可靠的加密算法。算法對64bits的明文數(shù)據(jù)塊,用128bits密鑰加密,得到64bits的密文數(shù)據(jù)塊。
TEA采用與DES算法類似的Feistel結(jié)構(gòu),迭代的每次循環(huán)使用加法和移位操作,對明文和密鑰進行擴散和混亂,實現(xiàn)明文的非線性變換。TEA密鑰長度和迭代次數(shù)都是DES的兩倍,抗“試錯法”攻擊的強度不低于DES算法。算法以32bits的字為運算單位,而不是耗費計算能力的逐位運算。算法沒有采用DES那樣的轉(zhuǎn)換矩陣,它安全、高效、占用存儲空間少,非常適合在嵌入式系統(tǒng)中應用。
下面給出TEA算法的C語言描述:


設(shè)計者認為算法中DELTA的值對算法并無什么影響,只是為了避免不良的取值,推薦DELTA的值取為黃金分割數(shù)(5√-2)/2與232的乘積,取整后的十六進制值為0x9e3779B9。TEA算法的迭代次數(shù)可以改變,明文或密鑰的1bit信息擴散到32bits中最多需6次迭代,所以迭代16輪可能就夠了,而算法設(shè)計者推薦的迭代次數(shù)為32輪。





