微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于AES的网络加解密系统系统硬件图及完整源代码

基于AES的网络加解密系统系统硬件图及完整源代码

时间:07-01 来源:3721RD 点击:

1、作品简介

本作品以AES-128/192/256算法的相似性为基础,设计一个AES加/解密IP核,在32位的Microblaze软核下,并配合相应的软件完成网络传输数据的加密与解密功能,实现可根据具体应用资源数与安全系数需求而灵活配置以达到最佳性能的动态可配置加/解密系统。AES从设备作为系统的协处理器专门负责完成数据的加解密操作,通过总线从存储器中取出数据,然后将计算结果返回给存储器,网络控制器负责网络数据与缓冲区数据的传输,再利用32位Microblaze处理器和FPGA完成外围电路,使之和处理器集中在一块芯片上减小了系统的体积,简化了系统的规模,在一定意义上实现了片上系统。具有硬件结构简单、运行速度快、安全性高、实用价值高等优势,可被广泛应用于网路信息安全领域。

本作品中的AES加/解密IP核提供3种长度的密钥可以根据资源多少以及安全系数需求的具体情况灵活选择。并针对总线接口规范,设计了相应接口及其地址空间的映射,使该IP核能够方便的作为系统自定义组件使用。通过32位Microblaze处理器的调度,该系统可以处理任意长度的数据,可灵活的应用于各种数据加密。同时该设计以精简硬件结构为目标,与传统的以吞吐率为目标的流水线模式AES加/解密系统相比,具有消耗硬件资源小,性价比突出的优点。并利用FPGA的片上存储模块加快读写速度,在S盒的设计上采用可重构技术,使整个设计具有了更高的安全性、可靠性与灵活性。

2、作品的总体设计方案

本作品包括硬件设计部分与软件设计部分,硬件设计主要是自定义AES IP核,并完成硬件系统板级的设计和连接工作,优化处理性能及各模块效率,完成数据传输的接口电路、完善外围电路及辅助外设。软件设计部分主要是AES组件的驱动程序,组件调用常用函数以及应用程序的编写,主要是对计算机接口的数据进行校验和加/解密验证显示。图2.1和2.2分别给出了硬件设计框图和软件设计框图。

图2.1系统硬件结构图

图2.2系统软件流程图

2.1 硬件设计

2.1.1 AES组件的设计

该AES IP核包含两条路径,加密路径和解密路径。由于AES算法不是完全的对称,所以加、解密路径是由各自的硬件构成。其加/解密流程如图2.3所示。

图2.3 AES 加/解密流程

以AES算法的数据块为研究对象,来设计整个IP核的各个子模块。首先,需要确定该IP核的接口,考虑到该IP核的可移植性,本文采用PLB总线接口规范,控制总线中包含时钟信号、复位信号、控制使能信号、功能选择信号、状态信号和中断信号。其次,根据数据块的加解密流程可将该IP核划分为:有限状态机模块(Fine State Machine)、密钥扩展模块(KeyExpansion)、轮密钥异或运算模块(AddKey)、字节替换模块(SubByte)、行移位变换模块(ShiftRow)、列混合模块(MixCol)和多路复用器模块(AddKeyMux)七部分,如图2.4所示;有限状态机模块与多路复用器模块共同控制着IP core 的整个迭代过程,使得数据块在其它各个模块正确的运行完成加/解密操作。

图2.4 IP核结构图

为了方便该IP core作为自定义组件用于系统集成,该IP core设计了内存映射空间。在系统中,总线宽度为32位,IP core所有的写操作都是基于从端口的写传输,一个时钟周期传输32位数据,加/解密的数据块需要多个时钟周期来完成输入。因此,该IP core设计的关键在于接口设计及其地址空间映射、有限状态机的设计和密钥扩展模块的设计。

IP核设计中主要介绍以下几个重要模块的设计,比较简单的模块不再赘述。

(1)S 盒变换模块

S盒变换是该算法硬件实现时的重要环节,在整个算法中占用了比较大的资源,本设计中,采用近年来对AES S盒硬件实现的改进策略,将查找表的内容存储到FPGA内部的存储器中,根据输入字节的数值进行快速的查表操作,避免了传统设计使用CASE语句描述而占用大量的逻辑资源。同时该设计让加/解密共用一个S盒模块,将S盒和逆S盒设计成一个可重构处理单元,然后在处理单元内部增加了一个可控节点,使它即能用于加密又能用于解密。

(2) 可配置密钥扩展模块

分析AES 3种密钥长度的密钥扩展算法可知,128、192Bit的密钥生成圈函数都可视为256Bit密钥生成圈函数的一部分[4],因此可以将3种密钥扩展算法设计为一个可配置的共用模块。本设计以256Bit密钥生成算法圈函数为基础,在其内部添加了1个控制单元R,通过控制指令选择路径,即可改变内部结构及和其它模块的连接关系,从而灵活匹配不同类型的密钥算法。密钥扩展算法的可配置结构设计如图2.5所示。

图2.5 AES密钥扩展算法的可配置结构

(3) 接

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top