[发明专利]一种适用于嵌入式系统的基于高速缓存的AES加速器有效
申请号: | 201110232411.X | 申请日: | 2011-08-15 |
公开(公告)号: | CN102411683A | 公开(公告)日: | 2012-04-11 |
发明(设计)人: | 韩军;李辉楷;贺中柱;王帅;曾晓洋 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F12/08 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 嵌入式 系统 基于 高速缓存 aes 加速器 | ||
技术领域
本发明属于集成电路设计技术领域,具体涉及到一种适用于嵌入式系统的AES加速器。
背景技术
随着信息技术的飞速发展,计算机技术的突飞猛进使得越来越多的敏感信息将通过公开的媒介进行传播。为了保护敏感信息,各种密码算法被广泛地应用到网络和无线通信领域中。虽然目前有些密码算法通过增加额外的查找表来实现高速运算,但是所需的芯片面积较大,为了解决这个问题,本设计在通用处理器的基础上添加一些特殊指令与专用单元,并且使用cache(高速缓存)的部分资源来实现并行查找表的功能,从而有效地提高了密码算法的运算速度。
分组密码一直是密码学中一种重要的加密技术,在很多的密码系统中都处于核心地位,也可以作为消息认证技术、数据完整性机制以及数字签名中的核心部件。于2001年被美国国家标准和技术协会NIST定为美国政府新的加密标准的AES(Advanced Encryption Standard)算法是一种常见的分组密码算法,其应用场合见于诸多安全领域。AES是以块为单位对数据进行操作,它所允许的数据块和密钥的长度可以是128,192或256位。在AES标准算法中采用的数据块长度为128位,密钥长度可为128,192或256位。
发明内容
本发明的目的在于设计一种能加速AES算法的运算,同时能显著地降低硬件成本的适用于嵌入式系统的AES加速器。
附图1给出了集成了AES加速器嵌入式系统的基本框图,该系统由中央处理器(1)、指令高速缓存(2)、数据高速缓存(7)、缓存控制器(3)、总线接口部件(4)、总线(5)、外围存储器(8)以及AES加密运算单元(6)(即AES加速器)组成。该系统的工作过程如下:中央处理器(1)从指令高速缓存(2)中读取指令,如果指令不在指令高速缓存中,将通过缓存控制器(3)向总线接口部件(4)发出访问外围存储器(8)的请求,并通过总线(5)取回所需的指令,中央处理器(1)在取到指令后继续运行。接着,中央处理器(1)中的译码模块对指令进行译码,如果发现这条指令是AES加速器(6)的特殊指令,则根据该指令执行相应的操作。
本发明通过将查找表导入到4路组相连的cache中,并将查找表的数据锁存,这种方式能够有效地减小芯片的面积,从而降低了硬件成本。因此,本发明使用cache中的部分资源来充当并行查找表。
本发明可以从cache中并行地查找数据,并且完成相关数据的运算,因此能够实现高速的AES加解密运算,从而在有效地降低硬件成本的基础上实现快速的加解密运算。
本发明在中央处理器(1)中引入了8条特殊指令,它们分别是FETCHLOCK,LD_CACHELINE,CONFIG,CACHE_AES0,CACHE_AES1,CACHE_AES2,CACHE_AES3和SW_AES,这8条指令都是原系统指令集中所保留而未使用的指令,它们的指令编码分别为:
FETCHLOCK 011001xx_xxxxxxxx_xxxxxxxx_xxxxxxxx
LD_CACHELINE: 011010xx_xxxxxxxx_xxxxxxxx_xxxxxxxx
CONFIG: 011010xx_xxxxxxxx_xxxxxxxx_xxxxxxxx
SW_AES: 011011xx_xxxxxxxx_xxxxxxxx_xxxxxxxx
CACHE_AES0: 011100xx_xxxxxxxx_xxxxxxxx_xx001000
CACHE_AES1: 011100xx_xxxxxxxx_xxxxxxxx_xx001001
CACHE_AES2: 011100xx_xxxxxxxx_xxxxxxxx_xx001010
CACHE_AES3: 011100xx_xxxxxxxx_xxxxxxxx_xx001011
本发明的AES加速器使用12个32位寄存器以及上述特殊指令的译码逻辑,其中第0寄存器组(由第0寄存器、第1寄存器、第2寄存器、第3寄存器组成)和第1寄存器组(由第4寄存器、第5寄存器、第6寄存器、第7寄存器组成)用于交替存储当前需要进行轮变换的数据,第2寄存器组(由第8寄存器、第9寄存器、第10寄存器、第11寄存器组成)用于存储128bit的轮密钥,根据特殊指令产生控制信号,来控制数据在AES加密运算单元内的运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110232411.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种油加热器冷却系统
- 下一篇:一种直下式褐煤干燥管道