首页
社区
课程
招聘
[原创]轻量级分组加密算法PRINCE
2023-10-12 15:19 4284

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

2023-10-12 15:19
4284

轻量级分组加密算法PRINCE

PRINCE算法为基于SPN结构设计的轻量级分组密码算法。算法分组大小为64位,密钥长度为128bit(LED-128),迭代轮数为12轮。每轮轮函数F由S盒替换、扩散层M′、行移位变换、轮常数加变换、轮密钥加变换共5部分组成。分组状态表示为4X4的16个4bit的形式,每个比特块为半字节(4-bit)

PRINCE算法加密流程

(1)S盒替换层

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

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

(2)扩散层M′

扩散层对应对角矩阵M′=diag(M0,M1,M1,M0),作用在状态X上为:M′●X=(M0●X1||M1●X2||M1●X3||M0●X4)

这里Xi表示X的第i列,1i4,矩阵M0,M1分别为:

(3)行移位

与AES的行移位操作相同,将状态的第i行向左循环移动i个块,0i3

(4)轮常数加层

将64位的中间状态与64位的轮常数逐比特异或。

中间状态为S0…S15(16半字节),轮密钥为C0…C15(16半字节),则输出为Bi=Si+Ci0i15

(5)轮密钥加层

将64位的中间状态与64位的轮密钥逐比特异或。

中间状态为S0…S15(16半字节),轮密钥为RK0…RK15(16半字节),则输出为Bi=Si+RKi0i15

轮密钥生成算法

128比特的密钥被分为2个64比特的子密钥k0和k1,其中k1应用于核心部件PRINCEcore,k0和k0′用于算法输入、输出两端的白化,这里k0′=(k01)⊕(k063)。PRINCEcore采用对称结构,中间2轮是对合的,前后5轮除轮常数不同外互为逆变换,轮常数满足RCi⊕RC11-i=α,0i11,这里α是个固定常数。

PRINCE算法可以通过加密操作来实现解密,即D(k0∥k0′∥k1)(·)=E(k0′∥k0∥k1⊕α)(·)。



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

最后于 2023-10-14 09:46 被kanxue编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 3298
活跃值: (4336)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东关之南 2023-10-12 15:38
2
0
为什么帖子内容中会出现空白?有人知道这是为什么吗?
雪    币: 19349
活跃值: (28971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-10-13 09:20
3
1
感谢分享
雪    币: 29410
活跃值: (18710)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2023-10-14 09:47
4
0
东关之南 为什么帖子内容中会出现空白?有人知道这是为什么吗?
你是word里复制出来的,带有一些其他格式,你查看html可以看到,编辑时去除下格式,就正常了。已帮你处理好了。
雪    币: 3298
活跃值: (4336)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东关之南 2023-10-14 15:14
5
0
kanxue 你是word里复制出来的,带有一些其他格式,你查看html可以看到,编辑时去除下格式,就正常了。已帮你处理好了。
多谢了
游客
登录 | 注册 方可回帖
返回