【密码应用-轻量级分组加密算法Simon】此文章归类为:密码应用。
轻量级分组加密算法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系列分组密码算法的轮函数是相同的,其不同之处在于密钥扩展算法。假设初始密钥为K0,K1,……Km-1,利用轮密钥递推公式可以得到全部轮密钥K0,K1,……Kr-1。根据初始密钥字长m不同,递推公式分为3种:
其中常量c=2-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。
更多【密码应用-轻量级分组加密算法Simon】相关视频教程:www.yxfzedu.com