首页
社区
课程
招聘
[原创]轻量级分组加密算法CRAFT
2023-10-21 15:11 3605

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

2023-10-21 15:11
3605

轻量级分组加密算法CRAFT

CRAFT算法为基于SPN结构设计的轻量级可调分组密码算法。算法分组大小为64位,密钥长度为128bit,迭代轮数为32轮。每轮轮函数F由列混淆(MixColumn)轮常数加(AddConstants)、轮密钥加(AddTweakey)、单元置换(PermuteCells)和S盒替换(SubCells)共5部分组成。分组状态表示为16个比特块的形式,每个比特块为半字节(4-bit)

                                               

CRAFT算法单轮加密过程

(1)  列混淆层

内部状态的每一列都乘以下面的二进制矩阵M。

(2)  轮常数加

将状态矩阵异或一个轮常数。

RC3[32]={0x1,0x4,0x2,0x5,0x6,0x7,0x3,0x1,0x4,0x2,0x5,0x6,0x7,0x3,0x1,0x4,0x2,0x5,0x6,0x7,0x3,0x1,0x4,0x2,0x5,0x6,0x7,0x3,0x1,0x4,0x2,0x5}

RC4[32]={0x1,0x8,0x4,0x2,0x9,0xc,0x6,0xb,0x5,0xa,0xd,0xe,0xf,0x7,0x3,0x1,0x8,0x4,0x2,0x9,0xc,0x6,0xb,0x5,0xa,0xd,0xe,0xf,0x7,0x3,0x1,0x8}

(3)轮密钥加

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

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

(4)置换

将置换P应用于中间状态进行重新排列。

P=(15,12,13,14,10,9,8,11,6,5,4,7,1,2,3,0)

(5)S盒替换

把(4)中输出的64位中间状态划分为16个4-bitU0…U15,然后U0…U15依次进入16个相同的4X4S盒(S),输出为V0…V15,Vi=S(Ui)(0≤i≤15)

轮密钥生成算法

128bit主密钥被分成两个64bit密钥K0和K1。从K0K1和相关的调柄值T派生出四个64bit密钥TK0TK1TK2和TK3,最终生成轮密钥TKi

TK0=K0⊕T

TK1=K1⊕T

TK2=K0⊕Q(T)

TK3=K1⊕Q(T)

TKi=TKimod40≤i≤31

Q(T)是应用在调柄值T的半字节上的置换,Q=(12,10,15,5,14,8,9,2,11,3,7,4,6,0,1,13)。

Tweak[16]={0x5,0x4,0xc,0xd,0x9,0x4,0xf,0xf,0xd,0x0,0x6,0x7,0x0,0xa,0x5,0x8}



[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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