发明名称 针对AES对称加密算法的指令优化方法及其处理器
摘要 本发明公开了针对AES对称加密算法的指令优化方法及其指令处理器,它主要由数据存储器、代码存储器、寄存器堆和流水线四部分组成;其中:所述流水线包括取址单元、译码单元、执行单元和流水线控制器。利用本发明的指令优化方法,在执行效率方面,通过周期级仿真统计出AES_ASIP运行AES加密算法所需要的时钟周期数,相对ARM处理器减少了57.3x%,极大地提高了算法的执行效率;在代码空间方面在ARM处理器上指令代码占用783bytes内存空间,而在AES_ASIP上指令代码仅占用416bytes,节省了46.6x%的代码内存空间。
申请公布号 CN102221990B 申请公布日期 2014.01.22
申请号 CN201110137511.4 申请日期 2011.05.26
申请人 山东大学 发明人 夏辉;贾智平;陈仁海;张志勇;颜冲
分类号 G06F9/30(2006.01)I 主分类号 G06F9/30(2006.01)I
代理机构 济南圣达知识产权代理有限公司 37221 代理人 张勇
主权项 一种针对AES对称加密算法的指令优化方法,其特征是,在满足新指令操作码长度和原有处理器模型中指令操作码长度相同,新指令的操作码和操作数总和不能超出原指令集的指令位数,新指令的执行部件不能过于复杂,新指令执行过程不能降低系统的运行速度,新扩展的指令条数不能过多,降低由此带来的硬件资源开销的前提下,针对AES对称加密算法进行指令集架构扩展优化,优化方法如下:1)在S盒字节置换过程中,仿射变换过程需要对位进行操作,每次仿射变换都需要把八位二进制数的每一位取出,对取位操作采用指令getbit <dest> = <src>, <bitpos>,该指令的功能是从src寄存器中取出第bitpos位,然后存入dest寄存器的最后一位,执行完成该指令将在一个时钟周期内完成,从而对取位运算进行了加速;2) 仿射变换过程在取出八位二进制数的所有位后,需要对每一位进行五元异或操作,对五元异或操作采用指令xor_5 <dest> = <src1>, <src2>, <src3>, <src4>, <src5>,该指令的功能是将src1到src5所代表的寄存器中的内容进行异或操作,结果保存在dest所代表的寄存器中,执行完成该指令将在一个时钟周期内完成,从而对异或运算进行了加速;3) 列混淆中使用伽罗瓦域GF内的乘法运算,针对乘法操作采用指令ifand <src1>, <src2>, <xor_src1>, <xor_src2>,该指令的功能是src1和src2相与,如果结果不为0,则xor_src1和xor_src2执行异或,并将结果保存在xor_src1中;如果结果为0,则不执行异或操作,执行完成该指令将在一个时钟周期内完成,从而对域内乘法运算进行了加速;4) 在列混淆中进行矩阵相乘操作时需要多次定位矩阵中数据的位置,对矩阵内数据查找采用指令matrixpos <dest> = <src1> , <src2> , <src3> , <src4>,该指令的功能是查找矩阵中指定位置的数据,执行完成该指令将在一个时钟周期内完成,从而对查找指定位置数据运算进行了加速;5) 另外,在列混淆中还用到数据交换操作,实现数据交换采用指令swap <src1>,<src2>,该指令的功能是将源操作数src1和src2交换,即将源操作数src1的数值赋给src2同时将src2的数值赋给src1,执行完成该指令将在一个时钟周期内完成,从而对数据交换运算进行了加速;通过上述五条指令的运行,提高AES算法执行效率并且同时降低算法指令代码存储空间。
地址 250101 山东省济南市历城区山大南路27号