轻量级分组加密算法Simon

本文详细介绍了Simon算法,一种基于平衡Feistel结构的轻量级分组密码,涉及其版本、轮函数构成、轮密钥生成过程以及特定的轮常数序列。

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

轻量级分组加密算法Simon

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

Simon算法加密过程

Simon算法加密流程

轮密钥生成算法

Simon系列分组密码算法的轮函数是相同的,其不同之处在于密钥扩展算法。假设初始密钥为K0,K1,……Km-1,利用轮密钥递推公式可以得到全部轮密钥K0,K1,……Kr-1。根据初始密钥字长m不同,递推公式分为3种:

其中常量c=2^n-4=0xff…fc,c的二进制位数与轮密钥Ki相同。z0,z1,z2,z3,z4是5个不同的二进制常数数列,不同版本的Simon密码可以采用不同的z。

设u,v,w是周期为31的序列,t是周期为2的序列,

u=1111101000100101011000011100110···,

v=1000111011111001001100001011010···,

w=1000010010110011111000110111010···,

t=010101010101···。

则SIMON算法的轮常数序列为:

z0=u,z1=v,z2=u⊕t,z3=v⊕t,z4=w⊕t。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄金龙PLUS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值