>
首页 » 业界动态 » 基于FPGA的PCMCIA加密网卡

基于FPGA的PCMCIA加密网卡

作者:钟雄光,戎蒙恬,陈赟  时间:2006-09-27 00:40  来源:
摘要:介绍了采用Altera 公司的FPGA 芯片实现的基于PCMCIA 接口的加密网卡。核心模块用VHDL 描述,在QuartusII 软件下进行综合和仿真,并在EP20K200E FPGA 目标板上进行了成功的验证。这种在单片上实现PCMCIA 接口控制和数据加密的高集成方案具有较好的安全性。

关键词:个人计算机存储卡国际协会;FPGA;加密网卡

引言

当前互联网上数据的加密通常采用软件加密的方法,易受黑客的攻击。虽然加密方法不断改进,但针对软件加密的破解方法亦层出不穷,因此对需要高保密性的数据采用软件加密的方式进行保护的效果并不理想。与软件加密相比,硬件加密方法中的数据加密直接由硬件来完成,加密的整个过程不会被外部总线所探知,具有较高的数据保护能力,而且具有较快的运算速度,也不需要消耗太多的主机资源。

由于硬件加密有较好的性能,我们设计了面向笔记本电脑和便携式终端的基于FPGA 的PCMCIA 加密模块,在Altera 公司的单片EP20K200E FPGA 上实现PCMCIA 接口、加密模块和网络适配器接口。加密过程在FPGA 内实现,不暴露在外部引脚或外部数据总线上,提高了系统的安全性。本模块可与网络适配器构成一个完整的面向移动终端的加密网卡。

PCMCIA 接口简介

个人计算机存储卡国际协会接口最初是为存储卡而制定的,而它现在已经成为笔记本电脑和便携式终端的事实上外部扩展总线标准,并且不再局限于存储卡运用,现在台式机、智能仪器、消费类电子产品以及各种嵌入式系统等也提供PCMCIA 扩展槽。越来越多的运用都可以通过PCMCIA卡来实现,如网络适配卡、图像加速卡、硬盘驱动器、视频/音频接收卡、游戏摇杆卡等。

PCMCIA 卡依据不同的分类标准有不同的分类,主要有以下3 种:(1)按功能分为存储卡、I/O 卡以及多功能卡。(2)按接口总线分为16 位PC 卡和32 位CardBus PC 卡。16 位PC 卡接口类似于ISA 总线,但也有区别,16 位PC 卡接口支持总线上的事件管理及卡插入时的自动配置功能。32 位CardBus PC 卡接口比16 位PC 卡接口有更高的性能,类似于PCI 总线。(3)按外部尺寸分为I 型、II 型和III 型。三者长宽都与普通的信用卡一致,但厚度不一样,I 型厚度为3.3mm,II 型厚度为5mm,III 型厚度为10.5mm,这样的小尺寸卡显然非常适用于便携式终端设备,可为移动终端的功能扩展提供理想的方案。

为了简化设计,我们采用16 位的PCMCIA 接口,其最大传输速率可以达到20Mbps,可以满足现在的大部分网卡的速率要求。16 位的PC 卡有两种工作模式,分别为memory-only 模式和I/O-Memory 接口模式。当卡被插入主机插槽或卡加电或复位时,卡总处在memory-only 模式,此后才可进入I/O-memory 接口模式,因此至少要有一个配置寄存器在上电时禁止I/O 功能。

16 位PC 卡定义了3 个独立的地址空间,分别为属性存储空间、普通存储空间和I/O 空间。属性存储空间包括:卡信息结构(CIS)空间和卡配置寄存器(CCR)空间,通常CCR地址空间紧随CIS 地址空间之后;另外需要注意的一点是属性存储空间只能8 位访问,而且只使用了偶地址空间。普通存储空间,提供对卡上存储器的直接访问,可以8 位或16位访问,支持的存储器包括Masked ROM、DRAM 、SRAM、Flash EPROM 等。I/O 空间用于访问I/O 器件,如fax/modem和以太网卡等,支持8 位和16 位访问;只有进入I/O 接口模式后才可对此空间进行访问,在I/O 模式下亦可对属性存储空间和普通存储空间进行访问。由此可见16 位PC 卡支持包含存储器和I/O 器件的PC 卡。

加密网卡的设计

为了达到较高的安全性能,整个加密模块全部在FPGA上实现。PCMCIA 接口比较复杂,如果采用专用接口控制芯片虽然可以节省不少设计时间,但这样降低了系统的集成度,因此PCMCIA 接口部分也在FPGA 上实现。将绝大部分功能块集成在一块FPGA 芯片上,使外部无法探测其内部数据处理,可达到较高的安全性能。系统框图如图1 所示。

图1 系统框图

虚框内模块全部由Altera 公司的EP20K200E 芯片来实现,并提供与网络适配器的数据接口和控制接口。其中控制模块分布在各子模块当中,协调各模块的工作,实现与主机的交互,控制加密模块对RAM 的读写操作,为外部网络适配器电路提供交互信号等。网络适配器接口完成加密模块和网络适配器的信息交换。下面分析较难处理的几个模块。

PCMCIA 接口设计
PCMCIA 接口完成与主机的PCMCIA 总线的接口,按设计要求可以完成以下功能:

(1)将PCMCIA 总线信号转换为读写卡内部RAM 和ROM 时所需要的控制信号及系统内部时序控制信号。

(2)在主机开机自检或者PCMCIA 卡插入主机卡座时,检测主机发送的探测信号,并返回卡信息结构,帮助主机完成系统初始化和标识工作。

(3)接收主机通过该模块I/O 空间传送的开始加密指令,启动加密模块;同时,通过I/O 端口,发送加密完成信号,主机通过查询方式来获取该信号。

(4)在数据加密阶段,从主机接收加密数据并存储于系统RAM 中,从RAM 中读取密文数据输出到网络适配器。

在设计验证板时,为了提高兼容性,采用了机械锁为5V 的卡端母槽,并将接口信号VS1 在卡端接地、将VS2在卡端直接连至母槽的相应管脚,以同时支持3V 和5V 的工作电压。卡检测管脚CD1 和CD2 都在卡端接地。68针中的其他管脚参照PCMCIA 标准,进行适当的连接,需要上拉或下拉的管脚分别接33kΩ的上拉电阻和100kΩ下拉电阻。另外,在存储器模式、I/O 接口模式下,功能定义不同但共用管脚的信号需要通过多路选择器输出,这些信号共用的管脚为16、33、62和63管脚。

存储模块设计
EP20K200E 集成了片上存储器,PC 卡上的存储器都可以使用片上存储器来实现。RAM 分配到普通存储空间,用于数据的缓存。ROM 也采用片上存储器来实现并分配到属性存储空间,用于保存卡配置信息CIS,该信息为主机提供了卡所需资源情况及卡标识信息。

加密模块设计
在加密模块设计中,我们使用DES 算法作了测试。由于采取模块化设计,因此当需要更换其他算法时,不需要作太大的全局改动。为了减小设计规模,我们没有采用流水线来设计加密模块。因为采取流水线虽然提高了速率,但所需资源也大大增加,根本无法在EP20K200E 芯片上实现,因而加密通过迭代的方式进行。

我们采取状态机来控制加密模块的工作,状态机包含idle(空闲状态)、working(加密状态)、waiting(等待状态)3 个状态。上电复位时,处在空闲状态;若数据输入有效信号及开始加密信号有效,则进入加密状态,对数据包进行加密;加密结束进入等待状态,加密后的数据写回到RAM 并被发送到网络适配器。

仿真与分析

我们用VHDL 对整个模块进行了描述,在Altera 公司的QuartusII 软件下进行了综合和时序仿真。在QuartusII 编译的结果中可以看到,整个设计占用了3245 个逻辑单元,使用了154 个I/O 管脚,用到嵌入式系统块(embedded system block,ESB)中的20480 位。时序分析还表明最大频率为26.76MHz,最大的管脚到管脚延时为48.745ns,最大的输入信号建立时间为39.904ns。通过PCMCIA 向主机写入数据及模块内数据加密的过程如图2 和图3 所示。

图2 加密数据写入

图3 内部加密时序

结论

设计通过FPGA 验证,速率可以达到20Mbps,整个系统也很好地满足了设计要求,并且将系统大部分的功能集成到一片FPGA 上具有较高的安全性能。当然本设计最后也可以做成ASIC,进一步提高性能。如将加密由更为先进的密码算法实现,完全可运用到当今的移动安全数据通信领域。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点