新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于EPIC技术的密码处理器体系结构研究与设计

基于EPIC技术的密码处理器体系结构研究与设计

作者:时间:2010-09-30来源:网络收藏

  2 可编程

  在典型的可编程结构(AFPC)中,结构开发的是标量操作之间的随机并发性,并且增加了功能部件的个数。不相关的指令由编译显式地编入到一个超长的机器指令字中,并发射到流水线,在各个功能部件中并发执行,指令级并行度为4~8。这种结构的硬件控制相对简单,在计算密集型应用时内在并行性很明显。且不需要很多转移预测。在这种结构上运行指令能够达到较高的实际指令级并行度。正是由于以上特点,结构在很大程度上符合了算法的需求,即计算密集且顺序执行。

  可编程密码的硬什结构如图1所示,整个处理器包括三部分:数据通路、控制单元和输入/输出接口电路。

可编程密码处理器体系结构的硬什结构

  数据通路是处理器的关键部件之一,包含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个可重构运算模块所支持的模式。

4个可重构运算模块所支持的模式

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

Rijndael算法轮运算流程

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

  输入/输出接口电路包括16个32bit输入寄存器、16个32bit输出寄存器、4个数据 长度计数器、1个32bit命令寄存器等,完成指令、运算数据从32bit数据总线装载到指令存 储器和输人寄存器以及运算结果从内部通用寄存器写入输出寄存器等操作。

  3 指令系统

  指令系统是算法要素和密码处理器特性的集中体现,指令系统的必须支 持硬件的并行执行,即开发指令级并行性(ILP),指令级并行性的开发程度对发挥密码微处理器的硬件特性,提高程序运行性能至为关键。ILP实际上是指一套完整的处理器设计和编译,这些通过并行地执行独立的机器操作(如存储器读写、逻辑运算、算术运算等)来加速程序的执行。ILP的大小可以采用每周期平均执行的指令数(IPC)朱衡量,或者采用整个程序的每条指令平均执行的周期数CPI(CPT=l/IPC)来衡量。在可编程密码处理器体系结构中采用了显式并行指令计算结构,指令级并行数达到5。

  3.1 指令分类

  可编程密码处理器体系结构中的指令分为以下几类:

  (1)静态配置指令。它是在密钥生成及加/解密过程中保持不变或者改变次数很少的控制信息配置指令,算法确定后,其S盒查找表信息、有限域乘数矩阵和不可约多项式、若干个置换的控制信息等就确定了,它们不会因为操作模式不同而改变。在加/解密过程中采用将配置指令分离出来的方法,可以大大减少执行密码运算时指令的冗余编码,从而缩短了指令字的长度,增加了运算指令字中包含有效操作的个数,有效地提高了加/解密速度并减少了密码程序的代码量。



评论


相关推荐

技术专区

关闭