1、安全通信系统的 FPGA 实现绪论 信息安全的解决方案目前主要集中于采取单一的措施来保证信息的安全性,针对各种攻击手段,防范措施主要集中于信息加密技术、安全交换机技术、防火墙技术、认证技术,入侵检测技术等,这些技术从不同的方面对安全性提供了较好的保障,但各有缺点和不足,这将成为网络防护的软肋,因此,本文也尝试性地提出了一种集数据加密技术和访问控制策略于一体的信息安全解决方案。加密算法的硬件实现具有高速率、高可靠性、高安全等特点,因此,加密算法在 FPGA 平台中实现是一种很好的硬件实现方案。本文在 xilinx 公司的 spartan-3e 平台中构建一个嵌入式系统来实现安全网络通信。系统设计
2、该系统主要针对信息传输过程中存在信息泄露、信息篡改、非法用户入侵等安全威胁而设计的一套基于 FPGA 平台的网络信息安全传输系统。该系统采用客户机/服务器模式,因此,系统主要包括两个部分:客户端和服务器端。客户端作为整个系统的控制中心,根据实际需要,向服务器端发送请求,并显示接收到的信息。服务器端响应客户端的请求,发送相应信息。服务器端和客户端之间的信息都是经过加密后进行传输的,保证信息的安全可靠性。系统服务器端设计服务器端采用 XILINX 公司的 Spartan-3e 开发平台,在该平台上构建基于 MicrBlaze 处理器和 Xilkernel 操作系统的嵌入式系统,在该系统中通过定制
3、AES 加密 IP、键盘 IP、LCD IP、通用扩展接口控制 IP 并添加 EDK 中自带的网络控制器 IP、串口 IP 等,服务器端的系统结构框图如图 1 所示。当服务器端收到经过 AES 加密的请求 IP 数据包时,在服务器端,信息需要经过 AES 解密处理,根据解密后信息分析并提取请求方的 ID 信息和 IP 信息,客户端的 ID 信息是唯一的授权证号,根据客户端的 ID 信息,作出相应的处理。图 1 服务器端的系统结构框图系统服务器端设计客户端同样采用 XILINX 公司的 Spartan-3e 开发平台,但该系统中只需要定制 AES 加解密 IP、键盘 IP、LCD IP 并添加
4、EDK 中自带的网络控制器 IP,客户端的系统结构框图如图 2-2 图所示。客户端作为整个系统的控制中心,当需要采集信息时,客户端经 md5 算法形成自己的唯一授权 ID,指令信息和 ID 信息经过 AES 加密后发送至服务器端,当服务器端响应其请求后,视其身份权限做出相应处理。图 2 客户端的系统结构框图系统具体实现该系统采用模块化设计实现,系统包括客户端和服务器端。系统客户端和服务器端的实现都是基于 xilinx 公司的spartan-3e 平台来实现的。系统服务器端实现 AES 算法的硬件实现AES 算法是一种迭代分组密码,采用的是代替/置换网络(SP)。AES 加密算法的实现包括密钥扩
5、展过程和加密过程。AES 解密算法的实现包括密钥扩展过程和解密过程。解密过程与加密过程类似,是加密过程的逆运算,AES 加解密过程如图 3 所示。图 3 AES 加解密过程AES 加解密算法通过硬件描述语言来实现,在该系统中采用 VHDL 语言编写代码。根据 AES 加解密算法的相似性,很多电路模块可以共用,其占用资源可以尽可能的少。在该系统中采用密钥长度和分组数据块长度都为 128bits,输入信息都为字符型的数据,采用对字符加解密,因此,每一个字符都将对应其 ASCII 值输入。AES 加解密实现主要有 4 个模块:控制模块、AES 加解密运算实现模、SBOX 模块、密钥操作模块,实现的框
6、图如图 3-4 图所示。AES 加解密模块的实现经过 ISE 综合后占用资源利用情况如表 1 所示。表 1 AES 加解密资源利用表图 4 AES 加解密实现框图接口模块的实现服务器端采用 Spartan-3e 平台扩展了 PS2 接口、16X2 的 LCD 液晶显示,3 个 6 针的通用扩展接口,这些接口方便了外设的连接和扩展。键盘在该系统中实现了单向通信,扩展接口模块通过平台通用扩展接口 J1、J2 、J3 与外接设备进行信息交互。Spartan-3e 平台通过串口 DTE 和 GSM 模块进行通信,将相应的信息通过短信的方式发送到指定手机中。各个接口模块通过 EDK 添加自定义 IP 的
7、方式添加到 OPB 总线中,其中键盘、LCD、串口 DTE 使用中断。驱动程序在自动生成的驱动程序模板基础上完成各个模块的驱动程序。网络安全检测及报警实现服务器端通过添加 EDK 中网络控制器 IP 核,移植 LwIP 网络协议栈,实现基于 SOCKET 的网络通信。服务器端收到客户端请求时,对接收到的 IP 数据包进行解密,对请求的 IP 数据包进行分析,提取对应的 ID 信息和 IP 信息,由于该 ID信息是经过 md5 算法产生的,因此该 ID 作为授权客户的唯一 ID,根据 ID 信息与授权的 ID 列表进行比较,若为授权ID,则根据客户请求把相应的信息加密处理后发送至客户端;若为非授
8、权 ID,则说明该网络已存在非授权 ID 用户,此网络已经存在不安全性,则把提取的 IP 信息通过 GSM 网络发送至指定接收端手机,达到网络的实时检测和报警功能。 服务器端软件实现 服务器端构建基于 MicroBlaze 处理器和 Xilkernel 操作系统的嵌入式系统,通过扩展 PS2 键盘,LCD 液晶显示屏等设备,实现具有良好的人机交互接口的系统。Xilkernel 操作系统支持多线程操作,通过配置一些参数就可以灵活应用。虽然其没有网络系统,但可以通过移植 LwIP 协议栈就可以实现基于 SOCKET 的网络通信。应用程序的设计主要包括系统的初始化、系统对客户端请求的处理、网络安全监
9、测及报警等。系统的初始化主要针对外设的初始化,LCD 初始化工作:允许中断函数 microblaze_enable_interrupts(),初始化函数 LCD INIT_LCD(),PS2 键盘初始化:初始化键盘函数 init_kbd(),允许中断函数 enable_interrupt(),系统调用xilkernel_main()进入 xilkernel,创建 socket_thread。初始化 lwip,并创建 socket_app_thread。该线程主要是针对网络参数设定,通过 IP4_ADDR()函数设定 ip、网关、子网掩码。当系统运行时,液晶显示相关信息,当出现等待键盘输入密钥时
10、,输入 16 个字符密钥,同时对密钥进行密钥确认。系统调用 socket()函数创建 socket,调用 listen()函数开始监听。一旦接收到用户请求时就创建 socket_process_thread 线程。在 socket_process_thread 线程中,提取 IP 数据包的相关信息,首先检查客户端发送的 ID 是否在授权 ID 列表之内,如果 ID 无误,将从无线模块接收到的数据进行 AES 加密,发送加密过后的数据给客户端。如果 ID 有错误,提取其收到 IP 数据包中的 IP,并启用 GSM 模块,将提得的 IP 通过短信发送给指定接收端。整个服务器端的软件设计流程图如图
11、5 图所示。图 5 服务器端软件流程图系统客户端实现客户端的系统构建与服务器端相似,系统的原理可以参考服务器端的系统设计。应用程序的设计也包括系统的初始化,客户请求的处理及解密处理,服务器端返回的信息处理。初始化外设,LCD 初始化:允许中断函数microblaze_enable_interrupts(),初始化 LCD 函数 INIT_LCD(),PS2 键盘初始化:初始化键盘函数 init_kbd(),允许中断函数 enable_interrupt()。系统调用 xilkernel_main()进入 xilkernel,创建 socket_thread。液晶显示等待键盘输入密钥,输入密钥后
12、需再次确认密钥,确认成功后启动客户端。初始化 LwIP,并创建socket_app_thread。配置网络参数,通过 IP4_ADDR()函数设定 ip、网关、子网掩码。等待用户按键,提出所要数据申请。调用 socket()函数创建 socket,连接 server,发送经过 md5 加密后的授权 ID,等待 server 响应。.当接收到 server 返回的数据时,调用 AES 解密模块进行解密。在 LCD 上显示数据,并等待用户再次提出所要数据申请。客户端软件流程图如图 3-4 图所示。结论 该系统采用 FPGA 平台构建基于 Microblaze 软核和 Xilkernel 操作系统的嵌入式系统。本文主要对下述内容进行了论述和自主开发:1AES 加解密算法的原理介绍及基于 FPGA 的硬件自主实现。2构建基于 Microblaze 软核和 Xilkernel 操作系统的嵌入式系统,自定制外设接口 IP。3网络安全检测的实现及通过 GSM 网络报警机制的设计与实现。经过单元测试和整体评测,各模块独立运行功能良好,均达到系统设计要求。系统整体测试运行平稳,可靠性强。完全可以达到实际应用的性能及技术要求。