- 密碼算法應(yīng)用實(shí)踐
- 文仲慧等
- 592字
- 2020-04-03 12:47:00
1.13 TEA加密算法
TEA是一種小型的加密算法,是由英國劍橋大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室的D.J.Wheeler和R.M.Needham于1994年提出的。
TEA是DES型多層迭代分組加密算法,迭代層數(shù)r=2n,分組長度為64比特,密鑰長度為128比特。TEA加密算法是一個(gè)很簡單的程序,設(shè)置時(shí)間極短,不需要預(yù)置非線性代替表。TEA加密算法的每層變換都很簡單,是一個(gè)弱非線性變換,經(jīng)過足夠?qū)訑?shù)的迭代,可以使算法達(dá)到安全、保密的目的,所以迭代層數(shù)比較多,建議使用64層。
128比特的密鑰分成4個(gè)32比特的字,記為K0~K3,層密鑰為2個(gè)字,第i層密鑰記為Ki0、Ki1:

TEA加密算法還要用到一個(gè)常數(shù)C,用十六進(jìn)制表示為:
C=9e3779b9=(-1)×231
C來自黃金分割數(shù),由C生成各層所用常數(shù)C1~Cr,即
C2i-1=C2i=i×C mod 232, i=1, …, n
輸入明文記為(X0, X1),計(jì)算
Xi+1=[(Xi<<4+Ki0)⊕(Xi+Ci)⊕(Xi>>5+Ki1)]+Xi-1
式中,“+”為模232加。
TEA加密算法由交替使用模2加和模232加來提供非線性,由相反方向的移位使密鑰比特和數(shù)據(jù)比特反復(fù)混合。TEA加密算法沒有設(shè)置非線性代替表,使初始設(shè)置時(shí)間極短。
TEA加密算法存在等價(jià)密鑰,當(dāng)K0和K1的最高位同時(shí)取反時(shí)等價(jià),同樣當(dāng)K2和K3的最高位同時(shí)取反時(shí)也等價(jià),所以至少有3個(gè)等價(jià)的密鑰。
下面給出r=64時(shí)TEA加密算法C語言的描述。64層迭代可以看成32個(gè)循環(huán),每次循環(huán)為2層。密鑰為4個(gè)字,放在k[0]~k[1],明文放在k[0]~k[1]。C語言程序如下:
void code (unsigned long*p, unsigned long*k) { unsigned long y=p[0], z=p[1], sum=0, /*置初值*/ delta=0x9e3779b9, /*常數(shù)*/ n=32; while (n>0) { sum+=delta; y+=((z<<4)+k[0])^(z+sum)^((z>>5)+k[1]); z+=((y<<4)+k[2])^(y+sum)^((y>>5)+k[3]); n--; } p[0]=y; p[1]=z; }
經(jīng)上述運(yùn)算后,p[0]和p[1]為密文。
- 元器件易學(xué)通:常用元件分冊
- 電子線路CAD設(shè)計(jì)與仿真
- 通信專業(yè)綜合能力(中級)
- 配電網(wǎng)可靠性規(guī)劃
- 電子工程師自學(xué)速成:設(shè)計(jì)篇(第2版)
- 5G社會:從“見字如面”到“萬物互聯(lián)”
- 電子線路基礎(chǔ)輕松入門
- 短距離無線通信系統(tǒng)技術(shù)
- 數(shù)字視頻處理與顯示
- 現(xiàn)代通信工程制圖與概預(yù)算
- 3GPP系統(tǒng)架構(gòu)演進(jìn)(SAE)原理與設(shè)計(jì)(第2版)(“十二五”國家重點(diǎn)圖書出版規(guī)劃項(xiàng)目)
- 電子電路知識與實(shí)踐課堂
- Kamailio實(shí)戰(zhàn)
- 5G新時(shí)代與邊緣計(jì)算
- 新型手機(jī)原理與維修