-
-
[原创]轻量级分组加密算法Speck
-
发表于:
2023-11-24 16:32
5730
-
轻量级分组加密算法Speck
Speck算法为基于变形Feistel结构设计的轻量级分组密码算法。n表示字长,2n表示分组长度,mn表示密钥长度。Speck算法一共10个版本,均可用Speck 2n/mn表示。这10个版本分别为32/64,48/72,48/96,64/96,64/128,96/96,96/144,128/128,128/192,128/256。Speck的轮函数包含4种操作:按位异或(⊕)、模加(⊞)、循环左移(<<<)、循环右移(>>>)。
Speck系列算法的轮函数可以看作变形的两轮Feistel结构。记Speck算法第i轮的输入为(Xi,Yi),输出为(Xi+1,Yi+1),则状态(Xi,Yi)到(Xi+1,Yi+1)的更新过程可以描述为:
Speck算法加密过程
其中α和β为系统参数,在Speck32/64中α=7,β=2,其它系列算法中α=8,β=3。
Speck算法加密流程
轮密钥生成算法
Speck系列算法的密钥扩展函数利用轮函数来生成所需要的子密钥K。记算法主密钥K=(Lm-2,Lm-3,……,L0,K0),其中Li,K0∈GF(2)n。密钥扩展函数的输入为主密钥K,输出为T个子密钥K0,K1,……,KT-1。计算Ki和Li的公式为:
其中Ki为第i轮子密钥,0≤i≤T-1,m为各算法密钥块数大小,例如,在Speck 32/64和Speck 48/96算法中都有m=4。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)