【密码应用-轻量级分组加密算法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轮循环使用一次全部轮子密钥。
更多【密码应用-轻量级分组加密算法CHAM】相关视频教程:www.yxfzedu.com