当前位置:首页 > EDA > 电子设计自动化
[导读]引言密码模块作为安全保密系统的重要组成部分,其核心任务就是加密数据。分组密码算法AES以其高效率、低开销、实现简单等特点目前被广泛应用于密码模块的研制中。密码模块一般被设计成外接在主机串口或并口的一个硬件

引言

密码模块作为安全保密系统的重要组成部分,其核心任务就是加密数据。分组密码算法AES以其高效率、低开销、实现简单等特点目前被广泛应用于密码模块的研制中。密码模块一般被设计成外接在主机串口或并口的一个硬件设备或是一块插卡,具有速度快,低时延的特点。而从整体发展趋势来看,嵌入式密码模块由于灵活,适用于多种用户终端、通信设备和武器平台,将会得到更加广泛的应用。基于FPGA实现的嵌入式密码模块与以往的主流硬件实现方式(如DSP芯片、单片机)相比,具有低成本、高速度、微功耗、微小封装以及保密性强等优点,与ASIC相比具有设计灵活、成本低、周期短等优点。另一个明显的优点在于:在对时间代价和空间代价的取舍上,基于FPGA实现的加密技术提供了多种实现方案,分别对时间代价和空间代价有不同的偏重,有利于在各种应用环境中进行优化。硬件实现无论是ASIC方案还是FPGA方案,数据处理速度的提高都离不开优化技术,包括算法轮函数和设计结构的优化。AES算法的快速实现方案包括:优化 S盒的结构(如使用复合域、查表等方法),列混合与密钥加的结合,以及采用流水线技术等。表1为几种典型的AES算法实现性能对比情况。

AES算法结构

AES是一个迭代型的分组密码,包含了轮变换对状态的重复作用。用State表示待加密状态,CipherKey表示初始加密密钥,ExpandedKey表示扩展密钥,其加密过程描述如下:

Round(State,ExpandedKey) --轮变换
{
SubByte(State); --字节代替

表1几种典型的AES算法实现性能对比

ShiftRow(State); --行移位
MixColumn(State); --列混合
AddRoundKey(State,ExpandedKey[i]); --密钥加
}
AES(State,CipherKey)--主函数
{
KeyExpansion(CipherKey,ExpandedKey); --密钥扩展
AddRoundKey(State,ExpandedKey[0]); --模加轮密钥
For(i=1;i FinalRound(State,ExpandedKey[Nr]); --末轮运算
}

在AES的单轮运算中包含了SubByte(字节代替)、ShiftRow(行移位)、MixColumn(列混合)、AddRoundKey(密钥加)四个步骤。图1所示为单轮运算的加/脱密结构。


图1 单轮运算的加/脱密结构

AES算法芯片IP核的完整结构包括:接口模块,密钥扩展模块,控制模块,加/脱密模块。各模块之间的统一调度、协调配合是芯片性能的保证。然而制约芯片吞吐率的瓶颈是加/脱密模块的实现。本文在第三部分着重分析了加/脱密模块实现方案。

加/脱密模块实现方案

对于分组密码芯片加/脱密模块的实现,有迭代结构、轮展开结构和并行流水线结构等方法。迭代结构需要n(n为加/脱密轮数)个时钟周期完成一个分组的加/ 脱密操作。这种结构占用面积最小,速度较慢。而轮展开结构能够有效提高加/脱密速率,却需要大量占用存储单元和布线资源,因而面积最大。在设计芯片时,我们需要采用一种速度和面积的有效折衷方案,使得在满足速率要求的前提下尽可能减少资源占用。并行流水线结构就是这样一种方案。

流水线技术其实质就是在适当的地方加入寄存器,将前面的运算结果或输入数据暂存,并在下一个时钟到来时将寄存值作为后一级运算的输入。

流水线处理如同生产装配线那样,将操作执行工作量分成若干个时间上均衡的操作段,从流水线的起点连续地输入,流水线的各操作段以重叠方式执行。这使得操作执行速度只与流水线输入的速度有关,而与处理所需的时间无关。AES分组密码在非反馈模式下,后续块的加密与前块的加密结果无关,即所有块的加密可并发执行,因而采用流水结构能显著提高性能。

流水线的引入可以采用轮内流水线结构或者轮间流水线结构来实现。轮内流水线结构把在一个时钟周期内欲完成的运算划分为若干子运算(模加运算、查表和各级移位相加运算),采用寄存输出模式,这种方式既可缩短延时路径,提高时钟频率,又可使各子运算同时进行。这样一来虽然速度有可能提高,但是增加了控制的复杂度同时占用大量的存储单元,这对于FPGA实现来说将是很大的负担,所以本设计采用轮间流水线结构来实现。图2为轮内流水线结构和轮间流水线结构对比。以 10轮运算为例,可以按轮数(3、3、3、1)拆分为4个流水段,即:第1-3轮为第1段,第4-6轮为第2段,第7-9轮为第3段,第10轮为第4段。为了使各流水段的时间片均衡,在第4段内部需要加入锁存器使输出与前3段匹配。用VHDL语言描述实现这个流水线式电路的代码如下:

Proc1:process(Data_in)begin
A<=Round1(Data_in);
Endprocess;
R1:processbegin
waituntilCLK'EventandCLK=‘1’;
A_REG<=A;
Endprocess;
Proc2:process(A_REG)begin
B<=Round2(A_REG);
Endprocess;
R2:processbegin
waituntilCLK'EventandCLK=‘1’;
B_REG<=B;
Endprocess;
Proc3:process(B_REG)begin
C<=Round3(B_REG);
Endprocess;
R3:processbegin
waituntilCLK'EventandCLK=‘1’;
C_REG<=C;
Endprocess;
Proc4:process(C_REG)begin
D<=FinalRound(C_REG);
Data_out<=D;
Endprocess;

图2 轮内流水线结构和轮间流水线结构对比

其中Round1-Round3、FinalRound是由组合逻辑完成的操作,都能够在一个时钟周期内执行完成。这种风格的代码在生成流水线电路时,还需要控制指令的配合。

图3是拆分轮运算的流水线时空图。图中数字表示数据分组的序号,整个流水线操作由启动、发起、流水线核、收尾和结束5部分组成,当进入流水线核时的效率是最高的。


图3 拆分轮运算的流水线时空图

 用加速比(Speedup)可以衡量采用流水结构之后加密过程相对于非流水结构速度的提高。计算流水线加速比的基本公式为。

设加密N个分组,10轮运算每轮的运算时间为!,则

当N的取值无限增大时,这个比值将接近于3.33…。因而使用流水结构数据处理速度比非流水结构提高到3倍多。

仿真实验和结果

图4为加密过程时序。针对128bit明文分组和128bit初始密钥的AES算法,在QuartusII软件下,采用中间相遇的设计方法将顶层模块化图形设计与底层VHDL语言描述相结合实现。实验时选用APEX20KE系列的EP20K1500EFC33-3为目标芯片进行仿真和功能验证。密钥装载完毕之后每加密输出一个分组需3个时钟周期,吞吐率为689.500Mbits/s。使用了3056个LUTs,81626个Memorybits,可以满足SDH标准速率STM-4规定的622.080Mbits/s的要求。


图4 加密过程时序

 结合FPGA的结构特点,本设计实现的IP核具有如下特点:接口设计灵活,外部接口的设计和定义可以根据不同加密芯片的接口设计要求现场改动。资源占用小,脱密电路采用与加密电路部分复用的结构实现,从而节省了资源。设计支持重用,在算法实现顶层设计时采用了模块化设计方法,结构清晰,可以根据不同的功能需求进行改动,利于设计重用

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

尽管相较2022年有所下滑,但2023年最赚钱的十家国内芯片设计上市公司的净利润总额超过了159家A股和港股上市内地半导体企业利润总额的55%,但是其市值之和仅占159家上市半导体公司总市值的20%左右。他们还有什么表现...

关键字: 半导体 芯片设计 集成电路

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

大面积分析技术可以预防、探测和修复热点,从而将系统性、随机性和参数缺陷数量降至最低,并最终提高良率

关键字: 半导体 芯片设计 3D建模

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

芯片制造商与EDA解决方案和广泛的IP组合紧密合作,能够提升产品性能并加快上市时间

关键字: 芯片设计 EDA 模拟设计
关闭
关闭