当前位置: 首页 > 专利查询>山东大学专利>正文

针对AES对称加密算法的指令优化处理器制造技术

技术编号:7385143 阅读:257 留言:0更新日期:2011-06-01 15:08
本实用新型专利技术公开了针对AES对称加密算法的指令优化处理器,它主要由数据存储器、代码存储器、寄存器堆和流水线四部分组成;其中:所述流水线包括取址单元、译码单元、执行单元和流水线控制器。利用本实用新型专利技术的指令优化方法,在执行效率方面,通过周期级仿真统计出AES_ASIP运行AES加密算法所需要的时钟周期数,相对ARM处理器减少了57.3x%,极大地提高了算法的执行效率;在代码空间方面在ARM处理器上指令代码占用783bytes内存空间,而在AES_ASIP上指令代码仅占用416bytes,节省了46.6x%的代码内存空间。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

针对AES对称加密算法的指令优化处理器
本技术涉及AES对称加密算法的加解密领域,尤其涉及AES对称加密算法的指令优化处理器。
技术介绍
AES算法汇聚了对数据加密的强安全性、高性能、高效率、易用和灵活等优点。然而由于加密与解密过程占用较多的处理器资源,处理器的性能成为加密算法高效运行的主要限制因素。虽然微处理器性能在不断提升,但在许多领域中加密算法的执行效率并不能符合所有的运算设计需求,尤其是在计算资源有限的嵌入式环境下。由于嵌入式微处理器性能较低、运算速度较慢,加密算法在该类微处理器中运行的效率较低。如何提高加密算法在嵌入式环境下的执行效率,保证数据高效安全传输成为国内外研究的热点问题。目前学术界存在三种提高密码算法执行效率的方式第一种是用纯软件方式优化密码算法的程序流程,使算法流程更加合理,运行更加高效。Bertoni等人提出AES算法的优化版本来加速该算法[1]在内存受限的32位处理器上的执行效率。随着嵌入式环境下微处理器性能的不断提高,这种优化方式也相应地提高了密码算法的执行效率,这种优化方式虽然灵活,但其优化空间非常狭隘,在同一类型的微处理器下优化幅度最多达到21 %左右。此外纯软件优化方式的实现需使用查找表,在数据的查找过程中,查找表容易受到基于 cache的侧信道攻击,这种攻击方式致使加密算法运行过程中易将对称密钥泄露给攻击者; 第二种是用纯硬件方式实现密码算法,将底层程序语言中一条或若干条连续指令用专门的硬件电路实现。基于该优化方法,Kuo等人[2]提出基于专用集成电路ASIC(AppliCati0n Special Integrated Circuit)的方式来实现AES算法,该方法仅用10个周期即可完成 AES-U8算法,文章同时讨论了执行算法的芯片架构和优化设计。这种优化方式可以快速实现密码算法,但其可扩展性较弱,占用的硬件资源较多,致使微处理器电路硬件成本大幅上升,且很难与其它运算模块相融合;第三种是采用指令集架构(ISA)扩展的方式对密码算法进行优化。其面向特定的应用对处理器指令进行扩展,采用硬件实现影响密码算法性能的基本操作部件,并在指令集中添加相应的指令,最终生成专用指令处理器(ASIP)。基于该优化方法,mi等人[3]介绍了一种快速灵活的加密处理器-协处理器,作者首先验证了协处理器作用于3DES算法上的优质效果,在保持灵活性的同时,也可以支持多种加密算法。Sim 等人[4]为高效实现基于细粒度随机掩码操作分解的AES算法定义了三种扩展指令,并结合指令随机调度方法给出了 AES算法完整的实现流程。该优化方式融合了纯软件、硬件方式优化的优点,既保留软件实现的灵活性,又进一步地提升系统性能,以增加较少的硬件资源为代价换取算法执行效率的大幅提升和指令代码占用空间的大幅降低。并且其扩展性较强,可以与其他运算模块相融合。mi等人的方法需要在原有的嵌入式微处理器外附带专门的嵌入式微处理器(协处理器),而不是在原有的微处理器中完成算法的指令优化操作。此方法另外占用一部分处理器资源,成本较高且不适用。Sim等人的方法并未最大限度的优化算法扩展指令操作,且其提出的优化方法的优化效果并不十分明显。本课题组于2011. 1. 24说明书2/15 页申请的申请号为201110024766X的专利专门针对AES加密算法中Sbox生成算法采用指令集架构(ISA)扩展的方式做了指令优化,并且提出2条扩展优化指令,使Sbox生成算法效率得到较大的提升;本课题组于同日申请的申请号为201110024639X的另一专利针对AES 算法中列混淆模块也采用指令集架构(ISA)扩展的方式做了指令优化,使该模块的执行效率得到较大提升。但是以上两技术进行的工作仅仅针对AES算法的某一个运算模块进行指令优化扩展操作,而没有考虑对整个AES算法进行指令集扩展,同时将其单独应用于整个AES算法中时,对AES算法执行效率的改善效果并不是十分明显。
技术实现思路
为弥补现有技术的不足,本技术提供一种AES专用指令集处理器,本技术采用指令集架构扩展优化的方法对AES算法进行指令扩展优化,基于电子系统级ESL方法设计流程,技术中设计实现了 5条专门用于加速AES的扩展指令,并使用基于LISA 语言的处理器生成工具构建完成一个高效AES专用指令处理器模型(AES_ASIP),用以满足该算法在运算速度和内存空间有限的嵌入式环境下的需求,并且最终将处理器模型实现于 FPGA中,完成实体验证。为实现上述目的,本技术采用如下技术方案一种针对AES对称加密算法的指令优化方法,在满足新指令操作码长度和原有处理器模型中指令操作码长度相同,新指令的操作码和操作数总和不能超出原指令集的指令位数,新指令的执行部件不能过于复杂,新指令执行过程不能降低系统的运行速度,新扩展的指令条数不能过多,降低由此带来的硬件资源开销的前提下,针对AES对称加密算法进行指令集架构扩展优化,优化方法如下1)在S盒字节置换过程中,仿射变换过程需要对位进行操作,每次仿射变换都需要把八位二进制数的每一位取出,对取位操作采用指令getbit<dest> = <src>,<bitpos>, 该指令的功能是从src寄存器中取出第bitpos位,然后存入dest寄存器的最后一位,以上过程将在一个时钟周期内完成,从而对取位运算进行了加速;2)仿射变换过程在取出八位二进制数的所有位后,需要对每一位进行五元异或操作,对五元异或操作采用指令 xor_5<dest> = <srcl>, <src2>, <src3>, <src4>, <src5>,该指令的功能是将srcl到src5所代表的寄存器中的内容进行异或操作,结果保存在dest所代表的寄存器中,以上过程将在一个时钟周期内完成,从而对异或运算进行了加速;3)列混淆中使用伽罗瓦域GF内的乘法运算,针对乘法操作采用指令 ifand<srcl>, <src2>, <xor_srcl>, <xor_src2>,该指令的功能是 srcl 和 src2 相与,如果结果不为0,则XOr_srcl和XOr_src2执行异或,并将结果保存在XOr_srcl中;如果结果为 0,则不执行异或操作,以上过程将在一个时钟周期内完成,从而对域内乘法运算进行了加速;4)在列混淆中进行矩阵相乘操作时需要多次定位矩阵中数据的位置,对矩阵内数据查找采用指令matrixpos<dest> = <srcl>, <src2>, <src3>, <src4>,该指令的功能是查找矩阵中指定位置的数据,以上过程将在一个时钟周期内完成,从而对查找指定位置数据运算进行了加速;5)另外,在列混淆中还用到数据交换操作,实现数据交换采用指令SWap<Srcl>,<src2>,该指令的功能是将源操作数srcl和src2交换,即将源操作数srcl的数值赋给 src2同时将src2的数值赋给srcl,以上过程将在一个时钟周本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对AES对称加密算法的指令优化处理器,其特征是,它主要由数据存储器、代码存储器、寄存器堆和流水线四部分组成;其中所述流水线包括取址单元、译码单元、执行单元和流水线控制器,所述取址单元的输出端与流水线寄存器I的输入端连接,流水线寄存器I的输出端与译码单元的输入端连接,译码单元的输出端与流水线寄存器II的输入端连接,流水线寄存器II的输出端与执行单元的输入端...

【专利技术属性】
技术研发人员:夏辉贾智平陈仁海张志勇颜冲
申请(专利权)人:山东大学
类型:实用新型
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术