簡(jiǎn)述LBlock算法
近年來,隨著物聯(lián)網(wǎng)無線傳感技術(shù)的廣泛應(yīng)用,如何將加密算法用盡可能小的面積實(shí)現(xiàn),同時(shí)又要保證加密效率的問題成了研究熱點(diǎn),因此,輕量級(jí)分組密碼應(yīng)運(yùn)而生并不斷發(fā)展完善。下面我們就來了解一下LBlock算法。
LBlock算法簡(jiǎn)介
LBlock算法是我國(guó)學(xué)者吳文玲和張蕾在ACNS2011提出的輕量級(jí)分組加密算法,其分組長(zhǎng)度是64比特,密鑰的長(zhǎng)度是80比特,是32輪迭代分組算法,采用Feistel算法結(jié)構(gòu),加密算法和解密算法互逆,使用的輪密鑰順序相反,其次對(duì)密鑰擴(kuò)展算法進(jìn)行了獨(dú)創(chuàng)設(shè)計(jì),采用的是Feistel結(jié)構(gòu)和SPN結(jié)構(gòu)。

LBlock算法的加密過程
LBlock算法的加密過程主要包括輪密鑰加(AddKey),S盒變換(SubCell),P混合(Permutation)操作;同時(shí)對(duì)密鑰擴(kuò)展key進(jìn)行S盒變換(SubCell)、p置換(Exchange)操作、與輪數(shù)異或。
在設(shè)計(jì)上LBlock算法仍采用與傳統(tǒng)分組密碼類似的迭代結(jié)構(gòu),將明文用輪函數(shù)在密鑰的作用下進(jìn)行多次迭代得到密文。密鑰擴(kuò)展算法的設(shè)計(jì)借鑒了PRESENT算法的設(shè)計(jì)理念,采用非線性移位寄存器, 利用S盒變換和循環(huán)移位生成輪密鑰。
設(shè)M=X1‖X0表示64比特明文,則加密過程如下:
- 對(duì)i=2,3,…,33,執(zhí)行Xi=F(Xi-1,Ki-1)⊕(Xi-2<<<8),其中<<<8表示左循環(huán)移8位。
- 輸出C=X32‖X33為64比特密文。

每輪所使用的F函數(shù)根據(jù)如下定義:
輪函數(shù)F:輪函數(shù)F是由混淆函數(shù)S和擴(kuò)散函數(shù)P組成,組成方式如下:
F{0, 1}32*{0, 1}32?→{0,1}32→(X, Ki)→U=P (S (X⊕Ki))

混淆函數(shù)S是非線性層,是輪函數(shù)F的重要部分,它由8個(gè)S盒組成,每個(gè)S盒為4x4比特。擴(kuò)散函數(shù)P是8個(gè)4比特字組成的置換。
LBlock算法的解密過程
LBlock算法的解密過程就是加密過程的逆過程,具體過程如下:
- 對(duì)i=31,30,…,1,0,計(jì)算Xi=F(Xi+1,Ki+1)⊕(Xi+2>>>8)。
- 輸入P=X1‖X0為64比特明文。
LBlock算法的密鑰擴(kuò)展算法
將80比特主密鑰K存入密鑰寄存器中,定義密鑰寄存器K=k79k78k77k76……k1k0,輸出密鑰寄存器K中的最左邊的32比特作為輪密鑰K1,然后進(jìn)行如下操作:
- For i=1,2,...,31,根據(jù)如下方式更新密鑰寄存器K。
- K<<<29。
- {k79k78k77k76}=s9{k79k78k77k76},{k75k74k73k72}=S8{k75k74k73k72}。
- {k50k49k48k47k46}⊕{i}2。
- 輸出密鑰寄存器K中的最左邊32比特作為輪密鑰Ki+1,其中S8、S9是兩個(gè)4X4比特S盒。
LBlock算法的優(yōu)點(diǎn)
與其他輕量級(jí)分組密碼相比,LBlock算法執(zhí)行效率更高,適應(yīng)性更強(qiáng),其占用資源小,易于實(shí)現(xiàn),且具有良好的隨機(jī)性以及安全性。
免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。





