RISC-V MCU中文社区

【分享】 SM4算法实现分享(一)算法原理

发表于 全国大学生集成电路创新创业大赛 2021-06-10 15:54:14
0
2682
2

队伍编号: CICC1238 ,队伍名称:青稞ASIC小队。

SM4分组加密算法采用的是非线性迭代结构,以字为单位进行加密、解密运算,每次迭代称为一轮变换,每轮变换包括S盒变换、非线性变换、线性变换、合成变换。加解密算法与密钥扩展都是采用32轮非线性迭代结构。而解密算法与加密算法采用同一结构,只是轮密钥使用的顺序不同,加密采用顺序的,解密采用逆序的。

SM4加密算法是典型的分组密码算法,分组密码算法实质上就是在密钥的控制下,简单而迅速地找到一个置换,用来对明文进行分组加密变换。SM4加密算法由32次迭代运算和一次反序变换R组成。

设输入明文为(X0X 1X 2X 3),共128位,设密文输出为(Y0Y 1Y 2Y 3),轮密钥为rkiXiYirki为字,i=0,1,2,…,31。则本算法的加密实现为:


本算法的解密实现与加密实现结构是相同的,不同的只是提供的轮密钥的使用次序。加密变换时使用轮密钥的顺序为:(rk0, rk1, , rk31), 解密变换时使用轮密钥的顺序为:(rk31, rk30, , rk0)。



喜欢2
用户评论
y233d233

y233d233 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板