轻量级分组加密算法CRAFT

CRAFT是一种基于SPN结构的128bit密钥、32轮迭代的轻量级加密算法,包括列混淆、轮常数加、轮密钥加、单元置换和S盒替换等步骤。文章详细描述了加密和轮密钥生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

轻量级分组加密算法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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金龙PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值