AES加密算法的高速低功耗ASIC设计
1 引言
从1976年美国数据加密标准算法(DES)公布以来,到20世纪末,DES算法或其某些变形基本上主宰了对称算法的研究与开发进程。随着密码分析水平、芯片处理能力和计算技术的不断进步,DES的安全强度已经难以适应新的安全需要,其实现速度、代码大小和跨平台性均难以继续满足性的应用需求。因此,AES(高级加密标准)应运而生。作为DES的继承者,AES自从被接纳为标准之日起就已经被工业界、银行业和行政部门作为事实上的密码标准。在网络通信和某些工业控制应用场合,对加密速度的需求成为对AES算法的最关键要求,同时功耗成为日渐突出的问题,必须进行低功耗设计。
2 AES加密算法简介
AES是一个密钥迭代分组密码,对加密来说,输入是一个明文分组和一个密钥,输出是一个密文分组。它将分组长度固定为128比特,而且仅支持128、196或256比特的密钥长度,本文仅对密钥长度为128比特的情况进行讨论。
加密过程包括一个初始密钥加法,记作AddRoundKey,接着进行9次轮变换(Round),最后再使用一个轮变换(FinalRound)。轮变换由SubBytes、ShiftRows、MixColumns 和AddRoundKey 共4个步骤构成。轮变换及其每一步均作用在中间结果上,将该中间结果称为状态,可以形象地表示为一个4*4字节的矩阵。
3 AES的改进算法(T盒算法)
假设加密过程中轮变化的输入为a,输出为d,则:
上式中SRD(S盒)由有限域GF(28)中的乘法逆变换和GF(2)中的仿射变换复合而成,符号
代表有限域GF(28)中的加法运算,符号 代表有限域GF(28)中的乘法运算。
这样我们可以定义4个表:T0,T1,T2以及T3:
则d简化为:
该实现方案中T0~T3,每个表都包含了256个双字,一共占用4KByte的空间。在每次循环迭代中,只要通过4次表查询和4次异或运算,就能快速地得到一次轮操作中一列的运算结果。改进算法有效降低了关键时序路径的传输延迟,能够明显的提高ASIC工作频率。
4 CMOS功耗
对于一个CMOS逻辑门,其功耗主要由静态功耗和动态功耗两部分组成。静态功耗是指门处于非活动状态时的功耗,大部分是由扩散层到衬底,源极到漏极存在的反偏二极管造成的泄露电流产生的。一般来说,泄漏电流功耗在总功耗中所占的比重不到1%。动态功耗是门处于活动状态下产生的,它又包含两部分:开关功耗和内部功耗。内部功耗包括对门内部的寄生电容充放电的翻转电流功耗,以及PMOS管和NMOS管瞬间同时导通所形成的短路电流功耗。对于信号上升(下降)快的电路,短路电流功耗很小,但对信号上升(下降)较慢的电路,短路电流功耗可能要占总功耗的30%以上。开关功耗是对输出端负载电容充放电的翻转电流引起的。
相关文章
- 2024-07-15结构振动复合控制信号的重构及实验研究
- 2023-11-29高精度刀具测量仪的视觉系统研究与设计
- 2024-07-26望远镜跟踪架结构形式及测量原理浅析
- 2024-01-26相干梯度敏感干涉测量技术及在静态断裂力学实验中的应用
- 2024-07-16望远镜数码摄影联接支架的结构设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。