0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高速低功耗的AES ASIC设计如何实现

电子设计 作者:电子设计 2018-10-09 09:45 次阅读

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:

高速低功耗的AES ASIC设计如何实现

则d简化为:

该实现方案中T0~T3,每个表都包含了256个双字,一共占用4KByte的空间。在每次循环迭代中,只要通过4次表查询和4次异或运算,就能快速地得到一次轮操作中一列的运算结果。改进算法有效降低了关键时序路径的传输延迟,能够明显的提高ASIC工作频率。

4 CMOS功耗

对于一个CMOS逻辑门,其功耗主要由静态功耗和动态功耗两部分组成。静态功耗是指门处于非活动状态时的功耗,大部分是由扩散层到衬底,源极到漏极存在的反偏二极管造成的泄露电流产生的。一般来说,泄漏电流功耗在总功耗中所占的比重不到1%。动态功耗是门处于活动状态下产生的,它又包含两部分:开关功耗和内部功耗。内部功耗包括对门内部的寄生电容充放电的翻转电流功耗,以及PMOS管和NMOS管瞬间同时导通所形成的短路电流功耗。对于信号上升(下降)快的电路,短路电流功耗很小,但对信号上升(下降)较慢的电路,短路电流功耗可能要占总功耗的30%以上。开关功耗是对输出端负载电容充放电的翻转电流引起的。

5 低功耗设计

该实现方案中主要采用了以下两种低功耗设计方法。

1) 动态功耗管理

动态功耗管理是一种系统级低功耗设计方法,降低功耗的主要思路是根据芯片工作状态改变功耗管理模式,从而在保证性能的基础上降低功耗。在不同模式下,时钟的频率可以进行调整,一些空闲模块甚至整个芯片的时钟也可能会被停止。还可以通过调整芯片的电压,进一步降低功耗。由于工作库的限制,本文没有对动态电压管理作进一步的研究。

本文采用动态功耗管理,分为normal和idle两种功耗模式。有开始(START)信号时,芯片由idle模式进入normal模式,开始对明文分组加密。经过初始密钥加法和10次轮变换,输出密文分组,并产生结束(STOP)信号,使芯片返回idle模式。因此设计了一个鉴相器产生idle模式的控制信号(EN)。电路由与非门和基本RS触发器组成(图1),对输入信号(开始和结束)的上升沿感应,由D触发器输出EN。具有结构简单的特点,并对噪声的影响有很好的抑制作用,并能有效地去除毛刺。

2) 时钟门控

EN有关闭和打开ASIC内部模块的作用,但这样不是最佳的,因为EN只是关闭了内部模块的功能操作,而并没有把模块内的时钟网络关闭,也就是说时钟网络依然处于激活状态,而时钟网络造成的功耗占总功耗的很大部分,只有关闭时钟网络才能同时达到关闭模块功能和降低功耗的目的。

采用时钟门控技术可以达到关闭时钟网络的目的。以图2(a)中所示电路为例,仿真生成的波形如图2(b)所示。可以看到只有在EN信号为1和时钟信号CLK上跳同时发生,ENCLK才会从0变为1,激活时钟网络。在其他时刻,时钟网络是关闭的。插入的时钟门控单元不仅能通过关闭时钟网络而明显的降低功耗外,还有其他几个重要的功能:

① D触发器的时钟输入端口对毛刺敏感,门控单元能有效地滤除信号EN的毛刺,从而确保进入D触发器时钟端口的ENCLK信号不会出现毛刺,避免因竞争而导致触发器发生错误的状态变化。

② 锁存器的插入增加了ENL信号的延时。

③ 对于n位寄存器组,n条反馈连线和n个多路选择器被一个门控单元所取代,不仅带来面

积上的节省,降低后端布线的拥塞,同时又进一步降低了功耗。

6 实现方案

该实现方案采用Synopsys公司的芯片设计流程和VeriSilicon公司0.18μm CMOS工艺。首先根据设计规范,使用Verilog硬件描述语言编写可综合的RTL代码,并对RTL代码进行仿真。然后对RTL代码进行综合。综合后生成的门级网表和RTL代码进行等效性检验并做静态时序分析。接着进行版图设计,先是根据各逻辑单元间的时序采用时序驱动布局策略来做物理布局和全局布线,之后在设计中插入时钟树。然后进行详细布线,并从详细布线后的版图中提取出真实的时延值并将其反标给网表,再作等效性检验、静态时序分析和仿真验证保证满足时序约束。最后对版图做设计规则检查。

7 结论

本文针对AES的ASIC实现,使用改进算法和低功耗设计方法,实现了高速低功耗的AES ASIC设计,其基本思想是:采用T盒算法,只要通过4次表查询和4次异或运算,就能快速地得到一次轮操作中一列的运算结果,同时在满足时序约束的前提下,通过动态功耗管理和时钟门控等方法,根据芯片的工作状态关闭模块的功能操作并关闭时钟网络,达到了降低功耗的目的。从表1可以清晰地看出,采用T盒算法后,设计的数据吞吐率提高了13.8%,同时采用功耗优化方案后,normal模式下功耗下降了10.7%,在idle模式时更低。该实现方案适用于ECB,CBC等运行模式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • asic
    +关注

    关注

    34

    文章

    1141

    浏览量

    119246
  • 寄存器
    +关注

    关注

    30

    文章

    5020

    浏览量

    117628
  • 低功耗
    +关注

    关注

    9

    文章

    2223

    浏览量

    102572
收藏 人收藏

    评论

    相关推荐

    ASIC的物理设计的低功耗实现技术解析

    在半导体领域,单个模块中的器件工作频率和晶体管数量随时间增加。在本文中,我们将介绍可以在ASIC的物理设计实现中使用的广为人知的低功耗实现技术。CMOS器件有三大功率损耗:动态功率,静
    的头像 发表于 04-12 11:25 3263次阅读
    在<b class='flag-5'>ASIC</b>的物理设计的<b class='flag-5'>低功耗</b><b class='flag-5'>实现</b>技术解析

    物联网时代产品设计如实现低功耗

    事实上,从全局来考虑低功耗设计已经成为了一个越来越迫切的问题。因此,低功耗设计排在电子产品设计的重要地位。
    发表于 11-15 20:23 1662次阅读

    FPGA设计怎么降低功耗

    消费电子领域,OEM希望采用FPGA的设计能够实现ASIC相匹敌的低功耗。尽管基于90nm工艺的FPGA的功耗已低于先前的130nm产品,但它仍然是整个系统
    发表于 07-15 08:16

    高速隔离应用的超低功耗方法

    MS-2644:超低功耗开启高速隔离应用之门
    发表于 09-24 10:36

    STM32是如何实现低功耗待机的

    STM32是如何实现低功耗待机的?有哪些步骤?如何对STM32低功耗待机实现调试?
    发表于 10-11 06:08

    如何实现数字IC低功耗的设计?

    为什么需要低功耗设计?如何实现数字IC低功耗的设计?
    发表于 11-01 06:37

    基于FPGA的AES加密算法的高速实现

    介绍AES 算法的原理以及基于FPGA 的高速实现。结合算法和FPGA 的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合
    发表于 01-25 14:26 29次下载

    基于FPGA的AES加密算法的高速实现

    介绍AES算法的原理以及基于FPGA的高速实现。结合算法和FPGA的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合的流水线
    发表于 07-17 18:09 44次下载

    低功耗AES信息安全芯片设计与实现

    个性化的远程医疗是医疗保健服务发展的必然趋势,远程信息处理对保护用户数据传输的安全性和设备的功耗方面都提出了更高的要求。高级加密标准 AES 是当前最为安全有效的商用对
    发表于 06-10 16:26 33次下载
    <b class='flag-5'>低功耗</b><b class='flag-5'>AES</b>信息安全芯片设计与<b class='flag-5'>实现</b>

    低功耗设计技巧与实现

    低功耗设计技巧与实现
    发表于 01-18 14:59 105次下载
    超<b class='flag-5'>低功耗</b>设计技巧与<b class='flag-5'>实现</b>

    新型流水线实现高速低功耗ADC的原理及方法

    新型ADC正在朝着低功耗高速、高分辨率的方向发展,新型流水线结构正是实现高速低功耗ADC的有效方法。而MAX1200则是采用这一新技术的
    发表于 07-09 15:04 4233次阅读
    新型流水线<b class='flag-5'>实现</b><b class='flag-5'>高速</b><b class='flag-5'>低功耗</b>ADC的原理及方法

    SHA_1算法的高速ASIC实现

    SHA_1算法的高速ASIC实现_杜晓婧
    发表于 01-07 21:28 2次下载

    基于超低功耗设计技巧与实现

    基于超低功耗设计技巧与实现
    发表于 10-15 10:44 12次下载
    基于超<b class='flag-5'>低功耗</b>设计技巧与<b class='flag-5'>实现</b>

    什么是低功耗,对FPGA低功耗设计的介绍

    功耗高度依赖于用户的设计,没有哪种单一的方法能够实现这种功耗的降低。目前许多终端市场对可编程逻辑器件设计的低功耗要求越来越苛刻。在消费电子领域,OEM希望采用FPGA的设计能够
    的头像 发表于 10-28 15:02 2548次阅读

    还在了解什么是低功耗?FPGA低功耗设计详解

    功耗高度依赖于用户的设计,没有哪种单一的方法能够实现这种功耗的降低。目前许多终端市场对可编程逻辑器件设计的低功耗要求越来越苛刻。在消费电子领域,OEM希望采用FPGA的设计能够
    的头像 发表于 10-26 18:51 2621次阅读