簡介
SMS4分組加密算法是中國無線標準中使用的分組加密算法,在2012年已經被國家商用密碼管理局確定為國家密碼行業標準,標準編號GM/T 0002-2012並且改名為SM4算法,與SM2橢圓曲線公鑰密碼算法,SM3密碼雜湊算法共同作為國家密碼的行業標準,在我國密碼行業中有著極其重要的位置。
SMS4算法的分組長度為128bit,密鑰長度也是128bit。加解密算法均採用32輪非平衡Feistel疊代結構,該結構最先出現在分組密碼LOKI的密鑰擴展算法中。SMS4通過32輪非線性疊代後加上一個反序變換,這樣只需要解密密鑰是加密密鑰的逆序,就能使得解密算法與加密算法保持一致。SMS4加解密算法的結構完全相同,只是在使用輪密鑰時解密密鑰是加密密鑰的逆序。
S盒是一種利用非線性變換構造的分組密碼的一個組件,主要是為了實現分組密碼過程中的混淆的特性和設計的。SMS4算法中的S盒在設計之初完全按照歐美分組密碼的設計標準進行,它採用的方法是能夠很好抵抗差值攻擊的仿射函式逆映射複合法。
SMS4算法流程
128bit的明文被分為4個32bit的字,記成X0,X1,X2,X3。密文也分為4個字,記成Y0,Y1,Y2,Y3,這些明文會經過32輪的疊代加密。假設32bit的中間變數為ki,0<=i<=31,則加密變換為: