随着微电子技术的发展,集成电路正向超大规模集成(VIsI)的方向发展,芯片的规模达到千万门级,IC的制造特征尺寸达到纳米级,设计复杂度也大大增加,在这种背景下,基于IP的设计方法开始逐步发展起来,越来越多的功能,甚至一个完整系统都可以集成到一个芯片当中,形成SOC。由于其设计基于IP,所以具有产品开发周期短,可靠性高,低功耗,面积小等优点。目前集成电路设计中越来越多的采用SOC方法来进行设计。

数据加密技术在当今社会中起着很重要的作用,如军事、国防、商贸等,尤其是随着网络技术的快速发展,网上交易越来越频繁,数据加密得到了更多的重视,出现了各种类型的加密算法,尤其以3DES和AES等非对称加密算法应用最为广泛。传统的加密是通过在主机上运行加密软件来工作的,其占用主机的资源,并且处理速度相对于硬件加密要慢很多。而硬件加密由于其独立于主机,数据存储、运算等都通过硬件实现,所以有速度快、安全性高等优点。

本文主要是将加密算法用硬件来实现,集成到SOC芯片中,通过AMBA总线来实现内部处理器与硬件加密模块的连接,实现对数据加密的控制,而数据加密的过程由加密硬件模块来实现。

一、加密算法简介

加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原懈密)。加密技术包括两个元素:算法和密钥。算法是将信息与加密结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。

密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(从开密钥加密)。对称加密以数据加密标准(DES,Data EncDption StandaKI)算法为典型代表,非对称加密通常以R&\ (Rivest ShanirAdleman)算法为代表。本文主要研究非对称加密算法3DES和AES,下面将简单介绍一下这两种加密算法。

1、3DES加密

DES算法有三个输入:key data、mode,其中key为64bit,是DES的密钥;data为64bit,是加密解密的数据;mode为DES的工作方式,加密或者解密。如果mode为加密,则用key对数据data进行加密,生成dataout作为输出结果;如果mode为解密,则用key去解密data的密码形式,还原data的明码形式作为输出结果。3DES是DES的一个变形,它以DES为基本模块,通过组合分组来组织加密算法。

2、AES加密

AES是一种迭代分组密码,输入数据是128bit,密钥长度支持128bit) 196bit. 256bit AES加密算法的实现包括密钥扩展过程和加密过程,加密过程又包含一个作为初始轮的初始密钥加法,接着进行九次轮变换,最后再使用一个轮变换。

二、加密算法在SOC中的实现

1、加密模块在SOC中的结构

3DES加密模块和AES加密模块作为SOC芯片的一个组成部分,通过AMBA总线同处理器和内存控制器等其他模块联系起来,实现对加密算法的控制和加密数据的传输,架构图如图1所示。

加密算法在SOC中的设计实现

3DES加密模块和AES加密模块内部分别包含输入数据寄存器、输入密钥寄存器、输出数据寄存器、控制寄存器。控制寄存器为32bit,其他的寄存器3DES模块中为64bit,AES模块中为128bit最后加密或者解密后的数据通过内存控制器传送给内存,3DES和AES加密模块的寄存器如表1所示。

加密算法在SOC中的设计实现

2、加密模块的功能仿真

(1)3DES加密模块的功能仿真

分别给3DES模块的输入数据,3个key和mode相应的激励后,得到的加密和解密后(mode为1时为加密,mode为0时为解密)的波形图如图2和图3所示。

加密算法在SOC中的设计实现

通过仿真可以看到进行一次3DES加密过程需要56个cycle,同理解密的过程也是一样。在SOC中采用的主时钟的频率是200M Hz,同时采用3级流水线(每一级DES使用一级流水),得到的吞吐率是686Mb/s。另外还可以看到对64bit的输入数据进行加密然后解密后得到的输出数据跟输入数据一致,也就是证明逻辑功能的正确性。

(2)AES加密模块的功能仿真

给AES模块加入相应的激励后得到的加密和解密后的波形图如图4和图5所示。

加密算法在SOC中的设计实现

通过仿真可以看到进行一个AES加密过程需要12个cycle,解密过程也是12个cycle,SOC采用200m Hz的主时钟得到的吞吐率是2.1Gb/s,同时加密解密后的数据一致,逻辑功能是正确的。

3、加密模块所占的资源

采用Cyclone III EP3C55 FPGA上对3DFS和AFS进行综合。其中3 DES模块所占的资源是2410个LE(logic element);AES模块所占的资源是4798个LE。

4、3DES和AES加密模块比较

从上面分析可看出,AES模块的吞吐率大约为3DES模块的3倍;而AES模块所占的资源大约为3DES模块所占资源的2倍。

小知识之SoC

SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来, SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。