首页
社区
课程
招聘
[原创]轻量级分组加密算法HIGHT
2023-10-26 17:05 3742

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

2023-10-26 17:05
3742

轻量级分组加密算法HIGHT

HIGHT算法为基于8分支广义Feistel结构设计的轻量级分组密码算法。算法分组大小为64bit,密钥长度为128bit。HIGHT算法共迭代32轮,每轮使用2个不同的轮函数F0和F1。设64bit明文为(P7,P6,P5,P4,P3,P2,P1,P0),经过32轮算法后变换成64bit密文(C7,C6,C5,C4,C3,C2,C1,C0)。

  

HIGHT算法加密流程

(1)初始白化密钥加变换

(2)轮变换

(Xi-1,7Xi-1,6,Xi-1,5,Xi-1,4,Xi-1,3,Xi-1,2,Xi-1,1,Xi-1,0)为第i轮的输入,其中i=1,2……31,则输出为:

(X31,7,X31,6,X31,5,X31,4,X31,3,X31,2,X31,1,X31,0)为第32轮的输入,则对应的输出为:

(3)结尾白化密钥加变换

轮密钥生成算法

HIGHT的密钥扩展算法由2部分组成,第1部分是常数生成部分,利用线性反馈移位寄存器生成128个7bits的常数,表示为δ0,……,δ127;第2部分为子秘钥生成部分,通过主密钥与第一部分生成的常数模加得到子秘钥。子秘钥与主密钥的下标对应关系如下图所示,其中第i行第j列表示的是SK16i+j所对应的MK的下标,假设MK的下标用ω表示,则SK16i+j=MKω+δ16i+j

在HIGHT加密的前后各使用了4Bytes的白化密钥,8Bytes的白化子秘钥与主密钥的对应关系如下所示:

WK0=MK12  WK1=MK13  WK2=MK14  WK3=MK15

WK4=MK0  WK5=MK1  WK6=MK2  WK7=MK3



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 19349
活跃值: (28971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-10-29 22:36
2
1
感谢分享
游客
登录 | 注册 方可回帖
返回