2、2,MK3),其中MKi(i=0,1,2,3)為字。輪密鑰表示為(rk0,rk1,…,rk31),其中rki(i=0,…,31)為字。輪密鑰由加密密鑰生成。FK=(FK0,FK1,FK2,FK3)為系統(tǒng)參數(shù),CK=(CK0,CK1,…,CK31)為固定參數(shù),用于密鑰擴(kuò)展算法,其中FKi(i=0,…,3)、CKi(i=0,…,31)為字。2.輪函數(shù)F本算法采用非線性迭代結(jié)構(gòu),以字為單位進(jìn)行加密運(yùn)算,稱一次迭代運(yùn)算為一輪變換。設(shè)輸入為324,輪密鑰為32,則輪函數(shù)F為:(X0,X1,X2,X3)∈(Z2)rk∈Z2F(X,X,X,X,rk)=X⊕T(X⊕X⊕X⊕rk)01230123
3、12.1合成置換T3232T:Z→Z,是一個(gè)可逆變換,由非線性變換τ和線性變換L復(fù)合而成,即T(.)=L(τ(.))。222.1.1非線性變換ττ由4個(gè)并行的S盒構(gòu)成。8484設(shè)輸入為A=(a,a,a,a)∈(Z),輸出為B=(b,b,b,b)∈(Z),則0123201232(b,b,b,b)=τ(A)=(Sbox(a),Sbox(a),Sbox(a),Sbox(a))012301232.1.2線性變換L3232非線性變換τ的輸出是線性變換L的輸入。設(shè)輸入為B∈Z,輸出為C∈Z,則22C=L(B)=B⊕(B<<<)2⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)2.2S盒
4、S盒中數(shù)據(jù)均采用16進(jìn)制表示。0123456789abcdef0d690e9fecce13db716b614c228fb2c0512b679a762abe04c3aa4413264986069929c4250f491ef987a33540b43edcfac623e4b31ca9c908e89580df94fa758f3fa644707a7fcf37317ba83593c19e6854fa85686b81b27164da8bf8eb0f4b70569d3561e240e5e6358d1a225227c3b012178877d40046579fd327524c3602e7a0c4c8
5、9e8eabf8ad240c738b5a3f7f2cef96115a19e0ae5da49b341a55ad933230f58cb1e3a1df6e22e8266ca60c02923ab0d534e6fbd5db3745defd8e2f03ff6a726d6c5b51c8d1baf92bbddbc7f11d95c411f105ad8d0ac13188a5cd7bbd2d74d012b8e5b4b0e8969974a0c96777e65b9f109c56ec684f18f07dec3adc4d2079ee5f3ed7cb3948例:輸入‘ef’,則經(jīng)S盒后的值為表中第e行和第f列的
6、值,Sbox(‘ef’)=‘84’。23.加/解密算法定義反序變換R為:32R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z2,i=3,2,1,0。324324設(shè)明文輸入為(X,X,X,X)∈(Z),密文輸出為(Y,Y,Y,Y)∈(Z),輪密鑰012320123232為rk∈Z,i=2,1,0,...,31。則本算法的加密變換為:i2X=F(X,X,X,X,rk)=X⊕T(X⊕X⊕X⊕rk,)i=1,0,...,.13i+4ii+1i+2i+3iii+1i+2i+3i(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X3
7、2)。本算法的解密變換與加密變換結(jié)構(gòu)相同,不同的僅是輪密鑰的使用順序。加密時(shí)輪密鑰的使用順序?yàn)椋海╮k0,rk1,…,rk31)解密時(shí)輪密鑰的使用順序?yàn)椋海╮k31,rk30,…,rk0)4.密鑰擴(kuò)展算法本算法中加密算法的輪密鑰由加密密鑰通過密鑰擴(kuò)展算法生成。32加密密鑰MK=(MK0,MK1,MK2,MK3),MKi∈Z2,i=0,1,2,3;3232令Ki∈Z2,i=0,1,…,35,輪密鑰為rki∈Z2,i=1,0,...,31,則輪密鑰生成方法為:首先,(K0,K1,K2