报名编号:CICC2353
称团队名:不划水队
所选杯赛:芯来RISC-V杯
一、 AES和SM4算法特点分析
基于前面几篇分享,我们对AES和SM4的算法流程有了较为清晰的认识,接下来对AES和SM4算法的共同点进行分析,得出二者的可重构设计思路。
首先,这里把AES和SM4的算法流程图再贴出来方便对比分析:
AES算法流程图
SM4算法流程图
可以看到AES和SM4存在相同的操作符,例如异或、S盒替换、循环左移操作等。其中异或、循环左移操作符在理论上可以实现复用,但是需要增加额外的控制逻辑。这对于简单的逻辑操作符而言,并不能够明显的减少硬件开销。相较而言,S盒占用的硬件开销更大且使用频繁,故可对S盒进行复用。而S盒在实现上分为基于查找表(Look-up Table,LUT)和基于伽罗瓦域(Galois Field,GF)两种方式。基于LUT实现S盒,AES加解密需要2块LUT,SM4加解密需要1块LUT,合计3块LUT。然而,两种算法的S盒在GF下具有相似的实现过程,可以进行可重构设计。同时,这两种算法在加解密过程中会频繁使用寄存器来存储数据
二、 可重构S盒设计思路
在GF下,AES的S盒输出公式为 Z=M(X^-1)+V, SM4的S盒公式为:Y=A(AX+C)^-1+C 。
通过对比以上两个计算公式可以发现,它们都具有的仿射变换操作和求逆操作,于是可以通过以下流程图对AES和SM4算法进行S盒的可重构。具体实现过程需要具备有限域上的知识,感兴趣的读者可参考本文末尾列出的链接进行延伸阅读。
三、
参考资料
[1] Canright D . A very compact
Rijndael S-box[J]. technical reports collection, 2005.
[2]斯托林斯, 斯托林斯. 密码编码学与网络安全:原理与实践[M]. 电子工业出版社, 2006.
往期分享:
【1】蜂鸟E203协处理器EAI指令及接口_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【2】加密算法的应用_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【3】国密系列算法简介及SM4算法原理介绍_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【4】Demo_NICE软件源码解读及应用_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)
【5】AES加密流程_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)