轻量级分组加密算法Speck

轻量级分组加密算法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_第1张图片

Speck系列算法的轮函数可以看作变形的两轮Feistel结构。记Speck算法第i轮的输入为(Xi,Yi),输出为(Xi+1,Yi+1),则状态(Xi,Yi)到(Xi+1,Yi+1)的更新过程可以描述为:

轻量级分组加密算法Speck_第2张图片

Speck算法加密过程

其中α和β为系统参数,在Speck32/64中α=7,β=2,其它系列算法中α=8,β=3。

轻量级分组加密算法Speck_第3张图片

Speck算法加密流程

轮密钥生成算法

Speck系列算法的密钥扩展函数利用轮函数来生成所需要的子密钥Ki。记算法主密钥K=(Lm-2,Lm-3,……,L0,K0),其中Li,K0∈GF(2)n。密钥扩展函数的输入为主密钥K,输出为T个子密钥K0,K1,……,KT-1。计算Ki和Li的公式为:

轻量级分组加密算法Speck_第4张图片

其中Ki为第i轮子密钥,0≤i≤T-1,m为各算法密钥块数大小,例如,在Speck 32/64和Speck 48/96算法中都有m=4。

你可能感兴趣的:(分组加密算法,密码学,同态加密,算法,安全,网络安全)