【密码应用-轻量级分组加密算法LED】此文章归类为:密码应用。
轻量级分组加密算法LED
算法为基于SPN结构设计的轻量级分组密码算法。算法分组大小为64位,密钥长度分别为和128bit(LED-128),对应的迭代轮数为32轮与48轮。每轮轮函数F由变换、变换、单元替代变换、行移位变换、列混合变换共5部分组成。分组状态表示为4X4的16个比特块的形式,每个比特块为半字节。
LED算法加密流程
(1) 轮密钥加层
将64位的中间状态与64位的轮密钥逐比特异或。
中间状态为S0…S15(16半字节),轮密钥为RK0…RK15(16半字节),则输出为Bi=Si+RKi(0≤i≤15)
(2) 轮常数加层
常数加AddConstant简单对中间状态异或如下形式的常数:
其中(ks7……ks0)是密钥长度的比特表示;轮常数(rc5……rc0)是6比特线性反馈移位寄存器的状态,LFSR的初始状态为全0,每次常数加变换之前更新LFSR,状态更新函数定义如下:
= (rc4,rc3, rc2,rc1,rc0,rc5⊕rc4⊕1)
轮常数对应的值如下表所示。
(3)单元替换层
把(2)中输出的64位中间状态划分为16个的,然后依次进入16个相同的4X4S盒(S),输出为B0…B15。
将中间状态中的每4bit通过S盒非线性地变换为另外一个半字节。
(4)行移位层
对一个状态的每一行循环不同的位移量.第0行移位保持不变,第1行循环左移4bit,第2行循环左移8bit,第3行循环左移12bit.
(5)列混合层
算法的列字节混合设计参照了AES的MixColumns。将(4)中输出的4X16位中间状态的16个4bit也就是4(bit)X4(行)X4(列)中间状态逐列乘以相同的4X4的矩阵M。
M为对合MDS矩阵
轮密钥生成算法
LED算法的轮密钥生成方案是不需要进行扩展运算的。
在LED-128算法中,种子K通过密钥编排方案生成了K1和K2,它们的关系为K=K1||K2
更多【密码应用-轻量级分组加密算法LED】相关视频教程:www.yxfzedu.com