sm4分组密码算法
*************************************************************************************
SMS4 算法是一个分组算法,该算法的分组长度为 128 比特,密钥长度为 128 比 特,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,解密过程与加密过程的 结构相同,只是轮密钥的使用顺序相反,解密算法的轮密钥是加密算法的轮密钥的逆 序。
*************************************************************************************
术语说明
S 盒 :S 盒为固定的 8 比特输入 8 比特输出的置换,记为 Sbox()。
基本运算 : ⊕:32 比特异或 <<< i : 32 比特循环左移 i 位
密钥及密钥参量 :
加密密钥长度128比特,表示为 0123 (,,,)M K MK MK MK MK = ,其中MKi(i=0,1,2,3)为 32 比特。
轮密钥表示为 0 1 31 ( , ,..., ) rk rk rk ,其中 rki(i=0,…,31)为 32 比特。轮密钥由加密密钥生成。
系统参数 0123 (,,,) FK FK FK FK 和固定参数 0 1 31 ( , ,..., ) CK ck ck ck = 用于密钥扩展算法,其中 i FK (i=0,…,3)、 j ck (j=0,…,31)均为 32 比特。
**************************************************************************************