轻量级分组加密算法Speck

本文详细介绍了轻量级分组加密算法Speck,其基于变形Feistel结构,提供10个不同版本,包括轮函数的四种操作和密钥扩展方法。重点讲解了轮函数的更新过程以及子密钥的生成公式。

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

轻量级分组加密算法Speck

Speck算法为基于变形Feistel结构设计的轻量级分组密码算法。n表示字长,2n表示分组长度,mn表示密钥长度。Speck算法一共10个版本,均可用Speck 2n/mn表示。这10个版本分别为32/64,48/72,48/96,64/96,64/128,96/96,96/144,128/128,128/192,128/256。Speck的轮函数包含4种操作:按位异或(⊕)、模加(⊞)、循环左移(<<<)、循环右移(>>>)。

Speck系列算法的轮函数可以看作变形的两轮Feistel结构。记Speck算法第i轮的输入为(Xi,Yi),输出为(Xi+1,Yi+1),则状态(Xi,Yi)到(Xi+1,Yi+1)的更新过程可以描述为:

Speck算法加密过程

其中α和β为系统参数,在Speck32/64α=7,β=2,其它系列算法中α=8,β=3。

Speck算法加密流程

轮密钥生成算法

Speck系列算法的密钥扩展函数利用轮函数来生成所需要的子密钥Ki。记算法主密钥K=(Lm-2,Lm-3,……,L0,K0),其中Li,K0∈GF(2)n。密钥扩展函数的输入为主密钥K,输出为T个子密钥K0,K1,……,KT-1。计算Ki和Li的公式为:

其中Ki为第i轮子密钥,0≤i≤T-1,m为各算法密钥块数大小,例如,在Speck 32/64和Speck 48/96算法中都有m=4。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄金龙PLUS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值