基于EPIC技术的可编程密码处理器设计
本文引用地址:https://www.eepw.com.cn/article/148928.htm

数据通路是处理器的关键部件之一,包含FUO~FU5共6个可并行执行的功能单元、32个32bit通用寄存器、4×32个32bit密钥寄存器和回写单元。
功能单元是处理器执行指令运算的核心,由若干个密码运算模块组成。其中,FUO~FU3内部运算模块的组成与结构完全相同,输入为3个32bit运算数据,其中2个来自通用寄存器堆、1个来自密钥寄存器堆,输出的运算结果亦为32bit。FUO~FU3内部分别设置了7个运算模块,分别为S盒运算模块、模加,减运算模块、模乘运算模块、32bit移位运算模块、有限域乘法运算模块、二输入逻辑运算模块、三输入逻辑运算模块。FU4内部设置了1个128bit,置换运算模块,输入为12个32bit运算数据,其中8个来自通用寄存器堆,4个来自密钥寄存器堆。FU5内部设置了1个128bit移位运算模块,输入也为12个32bit运算数据,其中8个来自通用寄存器堆,4个来自密钥寄存器堆。
上述这些运算模块功能不是单一的,而是可重构的。表2中给出了4个可重构运算模块所支持的模式。

除了上述运算模式可重构外,各运算模块根据具体情况还支持运算前增加‘异或 i操作、运算后增加‘异或 i操作或者运算前后都增加‘异或 i操作。由于‘异或 i操作延时很小,它的加入并不影响运算的关键路径,这就使得密码运算时减少了单一‘异或 i操作的时钟,从而减少了整个运算的时钟数,并且不影响整体性能。表3中给出了Rijndael算法轮运算流程,采用有限域乘法运算后加入‘异或 i操作,时钟周期数由4减为3,10轮运算将减少10个时钟周期。

控制单元完成指令存取、指令译码、指令存储器地址生成等工作,协调处理器内部指令与外部用户命令正确执行。
评论