基于AHB总线的多模式低功耗DES/3DES IP 核的实现

时间:2022-08-01 02:04:57

基于AHB总线的多模式低功耗DES/3DES IP 核的实现

摘要:设计了一种低功耗低资源的DES/3DES加解密软核,可以兼容ECB,CBC,CFB 三种模式,具有AMBA AHB总线接口,可以方便集成在一些低功耗SoC下作为加解密数据协处理模块。该软核在90nm工艺130MHz时钟频率下逻辑综合结果为8835门,通过了FPGA验证 ,最高吞吐量达到416Mbps,表明其为可重用的软核。

关键词: DES;3DES;低功耗;IP;AHB

Implementation of multi mode low power

DES/3DES IP core based in AHB bus

LIN Xiao-mu,ZHENG Xue-ren

( School of Electronic and Information Engineering,

South China University of Technology,Guangzho 510640 ,China)

Abstract: Designed a low power and low resources DES/3DES encrypt and decrypt soft IP core. It has 3 different mode: ECB, CBC, CFB and an AMBA AHB interface. It can be integrated in some low power SoC as an encrypt/decrypt co-process module. This core is synthesized under 90nm technology 130MHz clock frequency, about 8835 gates, and it’s verified by FPGA.,the highest throughput is 416Mbps. So it’s proved to be a reused IP.

Keywords: DES; 3DES; low power; IP; AHB

1引言

DES(Data Encryption Standard)[1]数据加密标准是美国国家标准局(NBS)于1977年公布的由IBM公司研制的分组密码算法。自后的30多年来,它广泛地应用于POS(Point of Sells)、ATM(Automated Teller Machine)、磁卡及IC卡、加油站、高速公路收费站等领域,以此来实现关键数据的保密。近年来随着计算机技术的大幅提升,强化版3DES应运而生,它将密钥长度延长至原先的三倍,从而延长了它的使用年限。该算法简洁有效,软硬件均容易实现,资源消耗小,加解密数据量大,现今许多地方仍能看到它的身影,如信用卡持卡人的个人标识号(Personal Identification Number,PIN)的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC(Message Authentication Code)校验等。由于DES算法在硬件实现上具有优势,随着近年来SoC(System on Chip)的迅速发展,将DES加解密模块以IP(Intellectual Property)的形式集成在SoC中作为数据安全的协处理模块已成为当前的主流芯片系统设计趋势。因此,本文基于ARM公司的AMBA(Advanced Microprocessor Bus Architecture) AHB(Advanced High-performance Bus) [2]总线设计了一种低功耗低资源DES/3DES加解密IP核, 并采用了美国国家标准 ANSI X3.106[3]中ECB(Electronic Code Book),CBC(Cipher Block Chaining ),CFB(Cipher Feedback)三种加解密模式,作为采用AMBA总线的SoC中的通用标准加解密模块。

2原理介绍

DES是一个分组加密算法,它以64位为分组对数据加密。DES加密和解密用的是同一个算法,因此也是一个对称算法。它的密钥长度是64位,实际是56位(每8 位都用作奇偶校验位),密钥可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密钥,但是很容易避开它们,因此保密性依赖于密钥。

DES加密算法的数据流程如图1所示。该算法输人的是64比特明文,在64比特的密钥控制下,通过初始置换,再经过16轮的加密变换,最后通过末置换(逆初始变换)得到64比特的密文。而后增加的3DES实际上就是对同一组数据进行三次DES加解密运算,加密过程的顺序为加密解密加密,解密过程为解密加密解密,其中使用了3组密钥,按上述顺序参与运算。由于最长有效密钥被扩展至168比特,安全性大大提高。

本设计采用ANSI X3.106区块加密标准中的三种:ECB模式、CBC模式、CFB模式。ECB模式即为分组加密后直接输出的模式;CBC模式如图2所示,采用链接特性加强了ECB模式的安全性,即对于相同的明文,加密结果不同。这就加大了密码破解者的破译难度。CFB模式如图3所示,是采用密文反馈的模式增强密文之间的相关性,图中的K比特可以为小于64bits的任意长度数据,在本设计中采用了64bits, 8bits 以及1bit三种模式。

CBC与CFB模式都用到了一个64比特初始向量(Initial Vector,IV),IV的值可以由软件配置。在CBC模式中,IV与第一组明文异或后加密,所得的结果即第一组密文,之后该密文参与下一组密文的运算;解密过程则是第一组密文解密后与IV异或得到第一组明文,之后该密文参与下一组明文的运算,如此传递。在CFB模式中,64比特IV直接作为第一组运算的输入区块,输出区块的左K比特与K比特明文相异或后即为密文,之后该K比特密文与左移K位的IV组成新的64比特输入区块,进行下一组运算;解密过程为第一组密文与IV加密后的输出区块左K比特异或后得到第一组明文,然后该组密文移进输入区块,参与下一组明文运算,如此传递。

3设计方案

该设计主要包括加解密核以及高性能总线接口, 构成一个完整的加解密IP核,具体设计方案如下。

3.1低资源加解密核设计

本加解密模块主要完成数据加解密的功能,按照64bits一组进行操作,同时需要提供64bits的密钥。在3DES模式下,采用了低资源的设计方法,通过MUX控制连续调用3次DES加解密核完成,大大减小了芯片面积,基本结构如图4所示。

该加解密模块主要有如下特点:

(1) DES与3DES算法均支持模式ECB, CBC,CFB(1bit, 8bit, 64bit),共计20种模式,通过配置相应的模式寄存器完成。

(2) DES/3DES核每64bits操作分别为16/48时钟周期。除ECB以外的模式都是通过数据反馈,移位寄存等方式调用DES/3DES核,因此增加了Feed Back Resistor参与控制,以及初始向量IV参与计算。

(3) DES/3DES均支持1个密钥。3DES还支持2个密钥和3个密钥操作,通过配置密钥寄存器Key1, Key2, Key3的值来完成,配置中应注意不能使Key1和Key2或者Key2和Key3相等,否则效果等同于只有一把密钥。由于保密性依赖密钥,实际应用中密钥往往使用64bits随机数。

3.2 高性能接口设计

接口设计方面采用了ARM公司提出的AMBA(Advanced Microprocessor Bus Architecture)总线标准。在基于ARM处理器内核的SoC设计中,AMBA已经成为广泛支持的现有互联标准之一。该规范引入的AHB(Advanced High-performance Bus)是现阶段AMBA实现的主要形式。AHB接口已与互连功能分离,不再仅仅是一种总线,而是一种带有接口模块的互连体系。鉴于AMBA 2.0 AHB总线的高性能,本设计采用其作为总线接口。作为AHB slave模块,可以方便的集成到诸如以ARM核为核心的SoC中完成数据加解密工作。图5为模块结构与接口示意图。

接口部分具有如下若干特点:

(1) 支持32bits AHB总线,但由于加解密核的处理位宽为64bits,因此设计了两个位宽为32bits FIFO用于缓冲数据,通过时序控制达到最大限度的资源复用。

(2) 支持DMA(Direct Memory Access)操作,可根据DMA传输长度灵活配置FIFO触发寄存器,使之在FIFO内的数据或空位在不同的状态下向DMA控制器发出single与burst请求,同时接受DMA控制器发送的清除信号。

(3) 支持FIFO上下溢中断,且可屏蔽,可清除,由中断控制线INT_REQ与中断控制器通讯。

(4) 采用了时钟门控设计,设计了时钟请求CLK_REQ与时钟管理模块通讯。在加解密工作结束或者因为FIFO的数据或空位不满足加解密运算而暂停的时候会关断时钟,从而达到大大降低动态功耗的目的

3.3 模块工作过程

模块的工作模式为:当CPU选择该模块并进行数据传输时,模块会发出时钟请求,进而门控时钟到达开始工作。之后CPU经过AHB总线配置接口模块中的寄存器,配置好各种模式,如模块使能寄存器、加解密模式寄存器、中断使能寄存器、DMA请求使能寄存器、DMA触发阈值寄存器(用于传输DMA不同的猝发传输长度数据),以及若干存放数据和密钥的寄存器。当配置完成并使能模块后,模块会向DMA控制器发送传输请求,此时总线控制权交给DMA控制器,进行大量数据的搬运工作。数据处理完毕后DMA控制器把总线控制权交还予CPU,CPU通过使能寄存器将模块停止,进而发出时钟关断请求,时钟关断,模块停止工作,自动进入省电模式。

4结果分析

本设计使用Verilog 2001实现,利用仿真工具Synopsys VCS 在Synopsys公司的的验证平台Verification IP[4]下通过了功能验证。图 6为Novas Verdi提取的顶层仿真波形,在ECB模式下对ANSI X3.106提供的16进制64比特明文例子4e6f772069732074加密结果为3fa40e8a984d4815, 由于hrdata为32位,分两个cycle输出,与标准结果一致,其余模式加解密结果均经过严格的验证,结果与参考模型一致,各种异常输入及边界情况均不会出现不可预测的结果。

同时代码还通过Mentor Graphics公司的Seamless CVE[5]软硬件协同验证,并且在Xinlinx公司的VIRTEX5系列XC5VLX330T芯片中通过

(下转第47页)

FPGA验证,多重验证确保了IP功能的正确性。最后使用TSMC 90nm工艺库在Design Compiler中完成逻辑综合,在工作频率为133MHz的条件下,综合面积约为0.04mm2,规模约为8835门,结果证实其占用的面积和资源均较少。

在ECB模式下,DMA传输数据时的最高吞吐量在130MHz下可达到416Mbps,随着ARM核频率的提升,其数据吞吐率也会不断提高;此外,模块具备时钟关断请求,具有省电模式。综上所示,该IP很适合应用于手持通讯设备等低功耗工作场合。

参考文献

[1] DATA ENCRYPTION STANDARD (DES),National Institute of Standards and Technology,1999.

[2] ANSI X3[1].106-1983, American National Standards Institute, 1983.

[3] AMBA Specification (Rev 2.0) , ARM co.ltd , 1999.

[4] Guide to the Design Ware AMBA/AXI VerificationIP Suite,Synopsys, Inc, 2008

[5] Seamless CVE User's and Reference Manual ,Mentor Graphics Corporation, 2002

作者简介

林晓牧,华南理工大学电信学院微电子专业在读硕士,现于中兴通讯股份有限公司微电子研究院SoC设计部实习,研究方向为SoC硬件开发;

郑学仁,华南理工大学电信学院,教授,博士生导师,华南理工大学微电子研究所所长,主要从事半导体器件与传感器、光电子器件、集成电路技术、专用集成电路与系统设计等领域的研究。

上一篇:彩色PDP中FPGA的时序控制设计 下一篇:基于VLIW DSP的可重定向编译器设计与实现