首页
社区
课程
招聘
[原创]轻量级分组加密算法LED
发表于: 2023-10-16 10:10 5626

[原创]轻量级分组加密算法LED

2023-10-16 10:10
5626

轻量级分组加密算法LED

LED算法为基于SPN结构设计的轻量级分组密码算法。算法分组大小为64位,密钥长度分别为64bit(LED-64)和128bit(LED-128),对应的迭代轮数为32轮与48轮。每轮轮函数F由轮密钥加变换、轮常数加变换、单元替代变换、行移位变换、列混合变换共5部分组成。分组状态表示为4X4的16个比特块的形式,每个比特块为半字节(4-bit)

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,状态更新函数定义如下:

(rc5,rc4,rc3, rc2,rc1,rc0)= (rc4,rc3, rc2,rc1,rc0,rc5⊕rc4⊕1)

轮常数对应的值如下表所示。

(3)单元替换层

把(2)中输出的64位中间状态划分为16个4-bitS0…S15,然后S0…S15依次进入16个相同的4X4S盒(S),输出为B0…B15

将中间状态中的每4bit通过S盒非线性地变换为另外一个半字节。

(4)行移位层

对一个状态的每一行循环不同的位移量.第0行移位保持不变,第1行循环左移4bit,第2行循环左移8bit,第3行循环左移12bit.

(5)列混合层

LED算法的列字节混合设计参照了AES的MixColumns。将(4)中输出的4X16位中间状态的16个4bit也就是4(bit)X4(行)X4(列)中间状态逐列乘以相同的4X4的矩阵M

M为对合MDS矩阵

轮密钥生成算法

LED算法的轮密钥生成方案是不需要进行扩展运算的。

在LED-64算法中,种子K通过密钥编排方案生成了K1,它们的关系为K=K1

在LED-128算法中,种子K通过密钥编排方案生成了K1和K2,它们的关系为K=K1||K2

 



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-10-16 10:13 被东关之南编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//