一种高安全性的便携式USB存储加密系统
2009-07-24
作者:陈汉林1, 刘鸿伟2
摘 要: 设计了一种高安全性的便携式USB存储加密系统。该系统基于嵌入式USB主机CH375设计,采用智能卡实现人机安全认证和密钥的安全存储,采用反熔丝型FPGA 芯片AX250高速实现3DES算法,能够在完全脱离PC机的情况下对USB存储设备中的文件进行加解密,具有很高的安全性和整体性,并可满足野外或移动应用的需求。
关键词: USB存储加密; 嵌入式USB主机; 智能卡; 安全认证; 反熔丝型FPGA
日益增加的信息安全要求,需对USB移动存储设备中的个人隐私或敏感信息进行加解密。传统的USB存储加密系统基于PC机。PC机是USB拓扑结构中的主机(Host),加解密时明文和密文必须经过PC机,PC机的软硬件安全性给文件的加解密留下了很大的安全隐患。因此,传统的USB存储加密系统安全性较低,且不能满足野外或移动应用的需求。基于嵌入式设计的本系统,可以完全脱离PC机工作,并且采用智能卡、反熔丝型FPGA实现USB文件安全、高速的加解密,提高了系统的安全性和整体性能,提供了便携使用性,具有较高的实用价值和良好的应用前景。
1 系统总体结构
系统总体结构框图如图1所示。系统由智能卡和加密机两大部分构成,智能卡通过ISO 7816接口与加密机相连。加密机主要由51单片机、嵌入式USB主机、FPGA、智能卡接口电路、电源电路和按键、LED等人机交互接口电路构成。嵌入式USB主机作为USB拓扑结构中的主机(Host),完成USB存储设备的访问管理和USB文件的读写。USB文件的加解密由FPGA高速实现3DES算法来完成。智能卡实现系统的安全管理。智能卡接口电路实现ISO 7816接口到并行接口的转换。51单片机通过并行总线与嵌入式USB主机、FPGA和智能卡接口电路相连,负责整个系统的管理和控制。
2 系统安全性设计
安全性是加密系统一项至关重要的性能指标。本系统从以下几方面进行了严密的安全性设计,确保系统的高安全性。
2.1 工作模式
基于嵌入式USB主机设计,实现可完全脱离PC机运行的嵌入式工作模式,从而消除了PC机软硬件安全隐患,提高了系统的安全性。
2.2 安全认证
安全认证包括加密机与智能卡之间的设备认证和智能卡与操作者之间的身份认证。
设备认证通过对比加密机和智能卡中存放的设备认证码来实现。每个加密机与唯一一个智能卡配对使用,均存放着相同的设备认证码,且不同的加密机和智能卡有不同的设备认证码,通过对比各自存放的设备认证码可对智能卡的合法性进行认证。
身份认证通过智能卡的口令验证实现,只有输入正确的智能卡口令才能通过口令验证,从而对操作者的合法性进行认证。
在安全认证过程中,任何一个认证若不通过加密机,则结束操作。因此只有当密码机、唯一与之配对的智能卡和正确的智能卡口令三个要素同时具备时,才能通过认证。缺乏其中任何一个要素,认证都将失败,加密机结束操作,从而使系统的安全性大大提高。
2.3 加解密算法的安全性
加解密算法的安全性包括算法自身的安全性以及算法存放和调用的安全性。
本系统的加解密算法选用3DES算法。3DES算法的密钥长度为168位,用穷举搜索结果攻击密文需要测试2 168次,可以有效克服穷举攻击,并且增强了抗差分分析和线性分析能力,具有极其强大的安全性[1]。
算法存放和调用的安全性依赖于器件自身具有的安全防护能力。本系统选用ACTEL公司反熔丝型FPGA芯片AX250存放和调用算法。反熔丝型FPGA不需要专门的编程芯片,且具有编程内容不可读、运行时不能改的性能,可有效地保护算法,从而提高系统的安全性。
2.4 密钥的安全性
本系统选用智能卡实现密钥的安全存放和调用。智能卡中集成了微处理器、存储单元以及芯片操作系统COS(Chip Operating System),从而构成一个完整的计算机系统。它不仅具有数据存储功能,同时还具有命令处理和数据安全保护等功能,因此安全性大大增强。本系统选用智能卡作为密钥存放的介质,密钥的调用受卡内COS操作系统的安全保护,利用智能卡自身的物理安全机制和COS操作系统的安全体系为密钥的存放和调用提供双重的安全保证。
2.5 其他安全防范措施
(1)设备认证码的存放和调用受AX250和智能卡的保护,避免外部访问。
(2) 加密机与智能卡可分离存放,减少失密的可能。
(3)在系统开机时对算法和密钥联合运行的正确性进行自检,防止加解密错误。
3 系统硬件设计
3.1 51单片机电路设计
51单片机选用CYGNAL公司的C8051F023。C8051F023是完全集成的系统级SoC芯片,具有25 MIPS的CIP-51内核,内部资源丰富、功耗低、可提高系统的可靠性和便携性。
单片机电路原理如图2所示。C8051F023外接25 MHz晶振,程序执行速度可高达25 MIPS。为提高数据通信速率,单片机通过8位非复用并行总线与嵌入式USB主机、FPGA和智能卡接口电路通信。因外部所需地址空间较少,单片机采用线选的方式进行片选,A15片选USB主机,端口地址范围为6000H~7FFFH;A14片选FPGA,端口地址范围为A000H~BFFFH;A13片选智能卡接口电路,端口地址范围为C000H~DFFFH。
3.2 嵌入式USB主机电路设计
嵌入式USB主机选用CH375。CH375是一款USB通用接口芯片,支持Host主机方式和Slave设备方式,主机端点输入和输出缓冲区各为64 B。在Host主机方式下支持各种常用的USB全速设备,外部处理器可以方便地通过CH375按照相应的USB协议与USB设备通信[2]。
嵌入式USB主机电路原理如图3所示。TXD管脚接地,CH375通过并行接口与C8051F023通信。地址输入线A0连接至单片机的地址线A0,当A0为高电平时选择命令端口,可以写入命令;当A0为低电平时选择数据端口,可以读写数据,因此CH375命令端口的访问地址为6XX1H或7XX1H,数据端口的访问地址为6XX0H或7XX0H。中断请求INT连接到单片机的中断输入/INT0。V3管脚接3.3 V,选择工作电压为3.3 V,从而与接口的C8051F023保持电平兼容。接插件J201为通用USB插座,外接待加解密的USB存储设备。
3.3 FPGA电路设计
FPGA选用反熔丝型FPGA芯片AX250。该芯片除具有较高的安全性,还具有资源丰富、速度快、功耗低、抗辐射能力强和耐高低温等优点,可大幅提高系统的整体性能[3]。
FPGA电路原理如图4所示。AX250通过8位并行接口与单片机C8051F023通信。内部工作电压VCC PL接1.5 V,保证芯片低功耗运行。外部IO电压VCC IB接3.3 V,保持与C8051F023电平兼容。AX250的时钟由晶振CRY301输入,时钟频率根据FPGA内部程序逻辑综合后的时钟频率而定,系统最终实现的频率为33 MHz。因单片机只有两个外部中断,FPGA与智能卡接口电路共用同一个中断为智能卡接口电路的中断请求。系统在FPGA中设置一中断标志寄存器,当FPGA或智能卡接口电路请求中断时会分别置对应的中断标志位为1,单片机通过查询中断标志寄存器即可确定的中断源。
3.4智能卡接口电路设计
智能卡接口电路选用Philips公司的TDA8007。TDA8007能够提供两个满足ISO7816 标准的智能卡接口,并通过并行总线与微处理器通信,可实现ISO7816接口到8位并行接口的转换。TDA8007 内部集成的电源管理功能允许TDA8007的供电范围可达2.7~6.0 V,并且通过电源管理可以给智能卡提供5.0 V、3.0 V及1.8 V电源,以适合不同工作电压的智能卡应用[4]。
智能卡接口电路原理如图5所示。工作电压选择3.3 V,保持与接口的C8051F023电平兼容。并行总线接口为非复用方式,ALE信号接高电平,AD0~AD3与单片机A0~A3相连。中断请求连至FPGA,与FPGA共用单片机的同一中断。接插件J401为智能卡ISO7816接口插座。
4 系统软件设计
4.1 单片机C8051F023软件设计
C8051F023是本系统的控制核心,负责管理及协调系统其他各部分的工作,程序流程图如图6所示。其中与USB有关的操作由单片机控制CH375完成,自检、安全认证和数据加解密等操作由单片机控制智能卡和FPGA完成。
4.2 3DES算法的实现
3DES算法用硬件描述语言VHDL编程实现,算法实现的整体结构框架如图7所示。加解密密钥K1、K2、K3存储在密钥存储RAM中,经子密钥产生模块产生三组子密钥SUBK1、SUBK2、SUBK3,分别提供给3个DES模块。待加解密数据存储在输入FIFO中,在控制模块的控制下每次读取64位送到DES模块1,经DES模块1、DES模块2和DES模块3处理完后,把加解密的结果送到输出FIFO中,从而完成一组数据的3DES加解密。
此设计采用循环全部打开和流水线结构来设计单个的DES模块。循环打开后,实现DES模块的全部16轮圈函数便级联在一起,上一圈函数的输出作为下一圈函数的输入,然后在每轮的中间加上寄存器来实现流水线,从而最多可有16个数据分组被同时执行圈函数运算,流水线的各个圈函数以重叠并行的方式工作[5]。这样,在理想的流水线操作情况下,完成一个数据分组的DES运算相当于只需1个时钟,每个DES模块的加解密速度提高近16倍。同理,3个DES模块之间的级联也采用流水线结构来设计。通过采用三级流水,可以使3个DES模块同时并行工作,从而进一步提高3DES算法的加解密速度。
5 结果测试
5.1 安全认证测试
在以下几种情况下使用本系统对USB存储设备进行加解密:
(1)不插入智能卡,只使用加密机。
(2)使用不配对的加密机、智能卡。
(3)使用配对的加密机、智能卡,但不输入或输入错误的智能卡口令。
测试结果显示,以上3种情况下系统均不能通过安全认证,加密机停止操作,无法完成USB存储设备的加解密。
5.2 保密数据的安全性测试
通过多种访问途径或接口方式,尝试从系统外部访问智能卡和FPGA中存放的密钥、算法和设备认证码等保密数据,结果显示均失败,保密数据无法被外部访问。
5.3 加解密性能测试
加解密性能测试包括准确性测试和速度测试。使用本系统对U盘中100个不同大小的文件进行加密操作,将得到的密文与正确的密文进行对比;再将得到的密文进行解密操作,将得到的明文与原有文件进行对比。结果显示全部正确,系统具有很高的加解密准确性。记录下各文件加解密的时间,测得系统的平均加解密速度为355 kb/s,系统具有较快的加解密速度。
本文采用嵌入式USB主机CH375、智能卡和反熔丝型FPGA芯片AX250设计并实现了一种高安全性的便携式USB存储加密系统。该系统可以完全脱离PC机工作,安全性高、便携性好、加解密速度快、整体性能良好。
参考文献
[1] 吉杰,林洽欣.用三重DES加密.NET数据库连接字符串[J].计算机工程与设计,2007,28(4):817-819.
[2] 李海军.基于USB总线接口芯片CH375的虚拟仪器设计[J].三峡大学学报(自然科学版),2005,27(2):168-170.
[3] 卿辉,肖红跃.反熔丝FPGA在密码芯片设计中的运用[J]. 通信技术,2001(1):62-63.
[4] 飞利浦半导体公司.TDA8007 Multiprotocol smart card interface [EB/OL] . http://www.semiconductors.philips.com/products/TDA8007.html.
[5] 王简瑜,张鲁国.基于FPGA实现DES算法的性能分析[J]. 微计算机信息,2007,23(3-2):217-218.