【密码应用-轻量级分组加密算法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,Yi)到(Xi+1,Yi+1)的更新过程可以描述为:
算法加密过程
其中α和β为系统参数,在Speck32/64中,其它系列算法中α=8,β=3。
算法加密流程
轮密钥生成算法
系列算法的密钥扩展函数利用轮函数来生成所需要的子密钥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。
更多【密码应用-轻量级分组加密算法Speck】相关视频教程:www.yxfzedu.com