【豆丁推荐】-》基于AES_128的加密芯片的设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0.引言
高级加密标准AES (Advanced Encryption Standard )由于速度快,安全级别高的特点,正日益成为加密各种形式电子数据的实际标准,被广泛应用于电子商务、移动存储、智能IC 卡、数字机顶盒等领域。

目前,基于加密算法的实现方式分为硬件实现和软件实现,前者较后者而言,首先具有速度上的优势;其次,硬件加密设备可以将算法和密钥安全地封装起来,攻击者无法获取密钥,具有更高的安全性。

此外,加密芯片采用可编程逻辑器件FPGA (Field Programmable Gate Array )实现,用户可以很方便地随时更换所使用的密码算法而不需要对硬件做任何改动,便于密码算法的升级换代,能够适应不同的应用需求。

可移动电脑加密机是以AES 加密芯片为核心模块,采用USB 接口与PC 机通信的移动式加密设备。

它由USB 接口芯片和加密处理芯片以及其它有关元器件组成,其中USB 接口芯片负责电脑与加密芯片之间的数据传输;加密芯片负责完成数据的加/解密处理,用硬件逻辑电路实现高级加密标准AES-128密码算法。

论文重点论述了可移动电脑加密机中AES 加密芯片的设计方法,包括AES 加密芯片的总体设计,AES 加/解模块与USB 芯片之间的接口模块设计和AES 加/解密模块的设计。

1.AES 算法原理
AES 算法是一种迭代分组算法,采用128bits 的分组长度,三种可选密钥长度128bits ,192bits 和256bits 。

对于不同的密钥长度,所需要的加/解密轮数不同。

本文采用128bits 密钥长度的AES 算法,即AES-128,算法的详细加/解密过程可参阅文献[1]。

整个加/解密过程需要经过10轮变换,每一轮变换都包括字节替换、行移位变换、列混合变换和子密钥加4个子变换。

其中字节替换是对状态矩阵中的所有字节进行非线性变换得到新的状态字节,行移位变换是对状态矩阵中的行进行字节移位变换,列混合变换是对状态矩阵中的列进行字节乘法和异或操作,子密钥加是简单的异或操作。

在第一轮变换之前有一个初始密钥加变换,而第十轮没有列混合变换。

AES 算法的解密过程是其加密过程的逆过程。

另外,在加/解密过程中所需要的全部子密钥由种子密钥经过一个密钥扩展算法产生。

2.AES 加密芯片的总体设计方法
AES 加密芯片采用AES-128算法设计,由接口模块和AES 加/解密模块组成。

其中AES 加/解密模块又包括控制模块、明/密文和密钥寄存器、密钥扩展、加/解密运算模块,其系统结构如图1所示。

其中USB 接口芯片负责电脑与AES 加密芯片之间的数据传输,即从电脑向加密芯片传输控制信息和待加/解密数据,以及把加密芯片的加/解密处理结果传输回电脑。

AES 加密芯片负责完成数据的加/解密处理,用硬件逻辑电路实现高级加密标准AES-128密码算法。

3.AES 加/解模块与USB 芯片之间的接口模块设计
接口模块用于将USB 接口芯片从PC 机接收到的信息转换为
AES 加/解密模块的控制信号和相关数据,并将AES 加/解密模块的处理结果传输到USB 接口芯片。

从USB 接口芯片输出的信息包括操作指令和数据两种类型,由于两者都是通过16位双向数据总线fd 与接口模块进行传输,因此接口模块必须按照已制定的协议规则识别出操作指令以及跟随其后传输的数据的具体含义,并转入相应的状态,利用有限状态机控制各种状态间的转移,从而控制整个加/解密过程。

图1
系统结构图
图2接口模块状态转移图
接口模块有限状态机(如图2所示)包括六个状态,分别为:初始状态S0,密钥装载状态S1,加密S 盒装载状态S2,明文装载/加密/结果
基于AES-128的加密芯片的设计方法
王春蕾
(青岛科技大学信息科学技术学院
山东
青岛
266061)
【摘要】可移动电脑加密机是以AES 加密芯片为核心模块,采用USB 接口与PC 机通信的移动式加密设备。

其中AES 加密芯片的设计直接决定了可移动电脑加密机的性能。

论文重点论述了AES 加密芯片的设计方法,包括AES 加密芯片的总体设计,AES 加/解密模块与USB 芯片之间的接口模块设计和AES 加/解密模块的设计。

最终采用Altera 公司Cyclone 系列的EP1C12Q240C8FPGA 实现了该AES 加密芯片。

【关键词】AES ;加密;解密;设计
Design M ethod of E ncryption C hip B ased on AES-128E ncryption A lgorithm
WANG Chun-lei
(School of Information Science and Technology,Qingdao University of Science and Technology,Qingdao Shandong ,266061,China )【Abstract 】The mobile computer cryptographic machine is one kind of mobile encryption device.It takes the AES encryption chip as the core module and uses USB interface for communication between it and PC.The design of AES encryption chip decides the performance of the mobile computer cryptographic machine immediately.This paper introduces the design method of AES encryption chip,including the architecture design,the design of interface module between AES encryption/decryption module and USB chip,and the design of AES encryption/decryption module.The AES encryption chip is implemented by the Altera ’s Cyclone series FPGA EP1C12Q240C8.
【Key words 】AES;E ncryption;D ecryption;D
esign
834

传输状态S3,解密S 盒装载状态S4,密文装载/解密/结果传输状态S5,各个状态之间的转换方法以及每个状态下状态机实现的功能描述如下:
3.1当加密芯片上电或复位时,状态机处于初始状态。

当USB 接口芯片向其传送数据时,状态机立即读入两个字节的数据,在初始状态读到的数据将作为操作指令字节,不同的值将导致状态机进入不同的状态。

3.2当操作指令字节的值为16进制的0010时,状态机进入密钥装载状态。

随后USB 接口芯片连续向其传送16个字节的种子密钥,系统将其保存在密钥寄存器中,同时接口模块内的计数器开始计数,每接收两个字节则计数器值增1,当计数器(wordcount)的值等于8时,密钥传输完毕,系统停止从USB 接口芯片读出数据,同时使密钥扩展使能信号keyexpen 有效,进行密钥扩展。

一旦状态机接收到的密钥扩展完成信号keyexprdy 有效,便返回到初始状态。

3.3当操作指令字节的值为16进制的0008时,状态机进入加密S 盒装载状态。

随后USB 接口芯片连续向其传送256个字节的加密S 盒数据,系统将其写入到对应FPGA 芯片的RAM 单元中,同时接口模块内的计数器开始计数,当计数器的值等于128时,S 盒配置完毕,状态机便返回到初始状态。

3.4当操作指令字节的值为16进制的0004时,状态机进入明文装载/加密/结果传输状态。

随后USB 接口芯片连续向其传送16个字节的明文,系统将其保存在明文寄存器中,同样由接口模块内的计数器控制明文传输。

当系统停止从USB 接口芯片读出数据时,加密使能信号staenc 有效,系统进行加密处理。

一旦状态机接收到的加/解密完成信号encdecrdy 有效,便将加密结果寄存在接口模块的输出缓冲区中,在结果移位输出使能信号shift 和计数器的控制下,每个时钟周期向数据总线fd 移位输出16位数据。

之后状态机返回到初始状态。

3.5当操作指令字节的值为16进制的0002时,状态机进入解密S 盒装载状态。

它与加密S 盒配置的操作一致,只是传输的S 盒数据不同。

一旦S 盒信息配置完成,状态机便返回到初始状态。

3.6当操作指令字节的值为0001时,状态机进入密文装载/解密/结果传输状态。

它与明文装载/加密/结果传输的过程一致,一旦密文装载结束,系统停止从USB 接口芯片读出数据,同时使解密使能信号stadec 有效,随后进行解密处理。

一旦加/解密完成信号encdecrdy 有效,系统将解密结果寄存在接口模块的输出缓冲区中,通过数据总线fd 依次输出解密结果,之后状态机便返回到初始状态。

4.AES 加/解密模块的设计
4.1控制模块
AES 加/解密模块分为两部分:数据通路和控制器。

数据通路部分又包括寄存器模块、密钥扩展模块和加/解密运算模块。

控制器则由3个状态机构成,密钥扩展状态机、加密状态机和解密状态机。

由于AES 算法经过10轮变换迭代完成,而且在第一轮变换前有一个初始密钥加变换,因此利用三个状态机产生的11个状态来分别控制这11轮变换。

4.2明/密文和密钥寄存器模块
系统采用16位数据传输,而AES-128算法需要128位数据的计算,因此该模块的功能是将在8个时钟周期内依次输入的16位数据通过移位保存在128位的寄存器中,并且输入的种子密钥、明文、密文共用该寄存器模块。

在控制模块产生的控制信号控制下,将种子密钥、明文和密文适时地传输到密钥扩展模块和加/解密运算模块。

4.3密钥扩展模块
密钥扩展就是产生包括种子密钥在内的11个子密钥,分别用于11轮加/解密变换。

由于系统采用密钥扩展电路与加解密电路分时的工作方式,而且在分组密码实际应用中,同一次加密过程中密钥不会更换,考虑到最终要将AES 加/解密系统模型下载到FPGA 中进行验证测试,而FPGA 芯片提供了足够的RAM 单元,因此为了提高加/解密速度,采用了先扩展后存储的密钥扩展方法。

在加/解密之前将所需的11个子密钥一次性计算出来,分别存储在11个寄存器中,在加/解密过程中选择相应的寄存器以读取对应轮的子密钥即可。

该设计方法充分利用了硬件资源,同时又提高了处理速度,是一个较理想的实现方法。

4.4加/解密运算模块
当接口模块输出的加密使能信号staenc 有效,或者解密使能信号stadec 有效时,该模块执行加密或解密运算。

加密状态机产生相应的
加密控制信号,控制此模块依次进行字节替换、行移位变换、列混合变换和子密钥加操作。

解密状态机产生相应的解密控制信号,控制此模块依次进行逆字节替换、逆行移位变换、子密钥加和逆列混合变换操作。

其中,字节变换实现的是8输入8输出的逻辑函数,设计采用了查找表的方式实现。

在加/解密运算之前,需要将加/解密S 盒数据装载到FPGA 芯片的RAM 单元中。

为了提高加/解密运算速度,可以一次性对128位数据同时进行字节替换,此时需配置16个加/解密S 盒。

另外,为了降低硬件资源的消耗,可使加密和解密运算共享同一套S 盒电路,只不过在进行加密运算之前,需要将其配置为加密S 盒,而在进行解密运算之前,则需要将其配置为解密S 盒。

行移位变换的基本操作都是移位操作,具体到硬件的实现,可以采用直接连线的方式,几乎不占用硬件资源和产生时延。

根据AES 算法原理,列混合变换就是输入状态矩阵与一个系数矩阵相乘,由文献[1]可知,可以利用x ·f(x)算法对其进行快速实现。

子密钥加是状态矩阵中的所有字节按位与轮密钥进行异或操作,设计中采用并行异或运算,将16组的2个8bits 的数直接进行异或运算。

5.验证和测试
根据上述设计方法,使用Verilog 硬件描述语言设计了一个AES 加密芯片的模型系统,并采用ModelSim 和QuartusII 7.0工具进行了功能仿真、逻辑综合、布局布线和时序仿真。

在此基础上,进一步设计了一个完整的可移动电脑加密样机,该样机由一片Altera 公司Cyclone 系列的EP1C12Q240C8FPGA 芯片和一片USB 接口芯片CY7C68013A 以及其它元器件组成。

将已经通过综合验证的AES 加密芯片的模型系统下载到该FPGA 芯片中,并利用大量的数据在上述可移动电脑加密样机上进行了测试。

综合验证结果表明,在40MHz 的时钟频率下,该AES 加密芯片的数据吞吐率达到465Mbps ,规模为4102个逻辑单元(logic elements )和40960个存储位(memory bits )。

测试结果表明该设计方案能够满足硬件资源消耗较少,吞吐率较高的要求。

6.结束语
论文论述了可移动电脑加密机中的核心模块—AES 加密芯片的设计方法,测试结果表明该方案能够满足硬件资源消耗较少,吞吐率较高的要求。

由于该芯片内集成了AES 加/解模块与USB 芯片之间的接口模块,因此该AES 加密芯片可直接与USB 接口芯片连接。

由此可见,由该AES 加密芯片和一片USB 接口芯片,再配以少量必要的元器件,即可方便的构成一个可移动的便携式的电脑加密机。

将该电脑加密机插入电脑的USB 接口,即可对电脑上的文件进行加/解密处理,因此该电脑加密机具有可移动、便携、安全、方便等特点,可广泛应用于军队、政府、企事业单位、金融部门、商业领域以及个人的信息安全事务。

【参考文献】
[1]FIPS.Publication 197Announcing the Advanced Encryption Standard (AES)[S].NIST,2001.
[2]曲英杰.可重构密码协处理器的组成与结构[J].计算机工程与应用,2003,39(23):32-34.
[3]王简瑜,张鲁国.基于FPGA 的AES 加/解密算法的可重构设计[J].计算机工程,2008,34(7):163-164.
[4]Nachiketh R.Potlapally and Anand Raghunathan.A Study of the Energy Consumption Characteristics of Cryptographic Algorithms and Security Protocols[J].IEEE Transactions on mobile computing,2006,5(2):128-14.
[5]Stefan Managard,Manfred Aigner and Sandara Dominikus.A Highly Regular and Scalable AES Hardware Architecture [J].IEEE Transaction on computers,2003,52(4):483-491.
作者简介:王春蕾,女,硕士研究生,主要研究方向为集成电路设计和信息安全等。

※基金项目:青岛市科技计划项目(06-2-2-10-jch )。

[责任编辑:张艳芳]
835。

相关文档
最新文档