-
-
[原创]轻量级分组加密算法HIGHT
-
发表于:
2023-10-26 17:05
6122
-
轻量级分组加密算法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,7,Xi-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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)