新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PCI总线加密卡硬件设计

基于PCI总线加密卡硬件设计

作者:时间:2012-04-14来源:网络收藏

PCI是基于加解密芯片和卡技术实现的安全保密设备,为计算机提供数据加密、数据完整性、数字签名、访问控制等安全功能,可用于计算机文件保护、电子邮件系统安全保密、办公自动化安全保密、数据库保护、网络加密等。主要用于带PCI插槽的台式PC机和工作站, 在防火墙、VPN加密机等方面具有极为广泛的应用前景[1][2]。

PCI的数据加密分为软件实现和硬件实现两种方式,软件实现是指在PCI配置嵌入式微处理器或DSP芯片实现加密算法;硬件实现是指采用密码算法芯片实现加/解密、签名算法,具有处理速度快,安全性好的特点。在上述硬件实现中,接口可以采用专门的接口芯片,例如PCI9054实现;也可以采用PCI接口IP核在密码专用芯片中实现。本文采用一片Altera的Cyclone 系列FPGA实现了加解密算法和PCI接口,并为开发了WDM驱动程序,设计了一个能为PC机提供数据加密、数据完整性、访问控制等安全功能的PCI加密卡。

1 系统硬件架构设计

整个PCI加密卡硬件以一片FPGA为中心,配以FPGA配置芯片、时钟等模块构成。PCI接口、3DES、MD5算法等全部在FPGA内部实现。整个加密卡的硬件结构如图1所示,系统主要设计任务在FPGA内部的逻辑功能完成,包括:PCI接口模块、控制模块、输入输出缓存模块和数据加密模块。PCI接口模块由IP软核实现,主要功能是控制和实现数据的双向传输;控制模块主要控制PCI接口与数据加密模块之间的数据传输;输入输出缓存模块主要用于寄存由PCI接口模块输入后等待处理的数据,以及系统内部运算后等待输出的数据结果;数据加密模块主要包含硬件实现后的加密算法,用于对输入的数据进行加解密运算。


  在各个主要模块中,密码运算模块的速度将直接影响到整个加密系统的工作效率。此外,由于控制模块的主要功能是控制输入输出缓存中的数据依次进入加密模块,同时,根据加密模块反馈的状态信息发出相应的控制信息,所以,控制模块的设计在整个加密设备的设计实现中十分重要。

  2 PCI接口IP核及其应用方法


  接口有两种设计方案,一是采用专门的PCI接口芯片(例如PCI9054或)实现,二是采用PCI接口IP核在密码专用芯片中实现[3]。本加密卡采用第二种方案,由VHDL描述的软核下载到FPGA中实现。该PCI接口IP核符合标准的PCI2.2协议,支持I/O操作、配置读、写操作、总线BUS_MASTER读、BUS_MASTER写以及DMA中断方式和DMA数据传输方式。该IP核设计主要采用有限状态机实现,包括中断应答、突发读操作、突发写操作、配置读操作、配置写操作、I/O读写传输、存储器读写传输7个状态机组成。其工作流程如图2所示。收到帧开始信号(#FRAM信号为低)后,根据PCI总线C/BE[3..0]上的命令,分别进入7个状态机中的一个。操作结束后,主机发出帧结束信号(#FRAM为信号低),进入等待状态,进入下个操作。


  利用该PCI接口IP核完成加密卡设计,必须先确定数据传输的实现方式。该PCI接口IP核支持两个256K字节的I/O空间;支持一个4M字节的PCI内存空间。在PCI的数据传输中,主要依靠I/O读、I/O写、存储器读、存储器写等操作完成数据传输。I/O读、写命令用来从一个映射到I/O地址空间的设备中读、写数据。存储器读、写命令用来从一个映射到存储器地址空间的设备读、写数据。在加密卡初期设计中,数据都被映射到I/O地址空间进行操作。系统工作的基本过程如下:数据从PC机进入PCI接口模块,先存入PCI接口模块中指定的I/O存储单元中;在控制模块的控制下,依次进入密码算法模块,数据经过处理后输出到输出缓存之中,由驱动程序将运算结果传输给应用程序。

  确定了数据传输方式后,下一步的工作是完成加密算法模块设计,并设计适当的接口控制模块,按照事先确定的数据传输方式将其连接到PCI接口模块。

  3 密码算法模块设计

  密码算法模块是整个加密卡设计的核心,其设计的优劣直接关系到加密卡的性能和安全性。下面以3DES算法为例,介绍密码算法模块的设计方法。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭