轻量级分组加密算法CHAM

轻量级分组加密算法CHAM

CHAM算法为基于四分支广义Feistel结构设计的轻量级分组密码算法族。每个密码由CHAM-n/m表示,分组长度为n比特,密钥长度为m比特。下图显示了该家族的密码及其参数列表,在这里,r、w和kw分别表示迭代的轮数、一个分支(字)的长度以及密钥的字数。

CHAM算法轮函数

CHAM算法的轮函数

明文P=(X0[0],X0[1],X0[2],X0[3])作为加密函数的输入,利用轮函数加密r轮可以得到密文C=(Xr[0],Xr[1],Xr[2],Xr[3])。值得注意的是,CHAM算法的奇数轮和偶数轮对应轮函数的参数不同。

当轮数r(0⩽i⩽r)为偶数时,轮函数为:

当轮数r(0⩽i⩽r)为奇数时,轮函数为:

轮密钥生成算法

CHAM-n/k的密钥扩展算法是利用主密钥K=(K[0],K[1],···,K[kw−1])生成2·kw个w比特的轮子密钥(rk[0],rk[1],···,rk[2·kw−1]),生成轮子密钥的过程如下所示:

其中0⩽i<kw。加密过程则循环使用这些轮子密钥,加密2·kw轮循环使用一次全部轮子密钥。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄金龙PLUS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值