《武汉工程大学学报》  2012年2期 67-70   出版日期:2012-03-10   ISSN:1674-2869   CN:42-1779/TQ

嵌入式安全存储系统的研究



0引言  USB移动存储设备由于其方便小巧,易于携带,具备了防磁、防震、防潮的等诸多优点得到使用者广泛的好评.同时,以USB接口为传输通道的方法使得该类设备具备传输速度快、使用方便、可热插拔等特点,拥有良好的市场.但是从“艳照门”等系列个人隐私泄露的事情来看,发现USB存储设备必需加强数据的安全性.市场常见加密型U盘主要分为普通口令认证型、软件加密型和硬件加密型,而主流的加密USB存储设备均采用安全级别较高,数据加密速度快,但是其硬件加密的实现需要用到价位较高的专用芯片,推高了USB存储设备的价格.例如,文献[1]就采用基于FPGA(现场可编程门阵列)的USB移动硬盘硬件加密方案,将智能卡的功能与USB移动硬盘的功能结合的安全设计方案.文献[2]则选用中兴的Z32UF芯片实现了加密U盘的系统原型UDisk(移动磁盘),该系统能支持多种国家认证的加密算法,如SSF33、SCBZ等,扩展性较强.文献[3]则采用单片机CY7C68013和安全Flash(闪存)芯片X76F640实现了集数据加解密、认证于一体的加密U盘,该U盘的信息加密采用AES(高级加密标准)算法,通过安全Flash芯片保存用户密钥,硬件电路比较复杂.针对嵌入式系统[4]在安全与性价比这一问题上的权衡,发现其实可以选用CY7C68013芯片配以XXTEA(一种微型分组加密算法)加密算法就能很好的解决这一问题.为此,通过研究在CY7C68013芯片平台下,针对USB安全存储系统中实现一个基于XXTEA加密算法的USB存储设备实现安全存储的功能.最后,给出了具体硬件平台环境下的采用安全加密和未采用安全加密的设备访问测试结果对比.1USB安全存储设备的系统构造  本USB安全存储设备系统采用USB接口控制芯片,并以该芯片为控制中心,结合CF(闪存存储卡)存储卡和安全存储设备的存储接口、访问安全特性,设计实现对USB存储设备使用认证、口令管理、存储载体安全保护,并对数据存储底层设备进行加密和存储管理.其概念图如图1所示,硬件层由USB接口控制芯片和CF存储卡构成;固件层则在硬件基础上实现USB与主机通信、系统控制、存储接口和加密解密安全管理;接口层在Windows系统中提供应用接口、驱动开发和存储与安全管理.  为了控制成本,USB安全存储设备系统采用USB接口控制芯片通过固件实现口令保护载体密钥、数据有效期等安全参数,加密算法采用XXTEA算法,并设计存储数据完整性校验.图1USB安全存储设备系统模型图
Fig.1USB secure storage system model2USB安全存储设备的加密算法分析数据加密算法主要分对称密钥与非对称密钥两种类型,根据两种算法类型的特点的不同,其应用领域也不尽相同.对称加密算法主要应用于数据块加密,因为一般的对称数据加密算法的特点就是加密解密速度快,吞吐量大,而且易于硬件实现.而非对称数据加密算法的特点是加密算法的安全性能高,但是加密解密算法计算量特别大,因此广泛应用与数据签名等安全领域.本USB安全存储设备系统采用的XXTEA算法是一种对称密钥加密算法.该类加密算法是从TEA算法(分组加密算法)改进而来,其中TEA算法[5]由剑桥大学Wheeler D J和Needham R M首先提出,TEA算法采用128 位bit(16 byte)作为密钥,每一次可以操作8个字节的数据,通过数据迭代计算加密,文献[5]要求迭代轮数最少32轮,并推荐的迭代轮数是64轮.TEA算法自推出以来由于实现简单,加密解密速度快,得到了广泛的应用,但是文献[6]指出TEA算法的密钥表可以被攻击,并提出改进的XTEA算法,该算法采取不正规的方式将4个子密钥混合处理.文献[7]提出的Block TEA算法进一步改进XTEA轮循函数,不仅将轮循函数作用于块内的数据,同时应用与相邻的数据,实现对任意32位长度的数据块进行加解密的操作.Needham R M最终改进了自己提出的TEA算法并提出XXTEA算法[8],该算法处理数据块时不仅利用相邻数据块(类似于Block TEA算法),同时改进XTEA轮循函数,采用二输入量的MX函数,提高算法的抗攻击能力,相比较TEA算法来说,XXTEA算法的6轮加密次数所需算法攻击的明文数据量由234提高至280,在提高安全性能(排除暴力攻击的可能性)的同时不降低加密解密的处理速度.第2期罗肖,等:嵌入式安全存储系统的研究
武汉工程大学学报第34卷
  这里给出XXTEA算法的一轮加密过程的图示,如图2所示,其中表示异或,表示求和, >>表示右移,<<表示左移.改进的XXTEA算法是根据加密的数据长度来确定其加密迭代轮次,而根据文献[8]的要求加密轮次至少为6轮,最多可以为32轮.因此,可以发现XXTEA 算法主要包括异或、加法和移位等运算,它的结构非常简单,只需要执行异或、加法和移位等运算的硬件即可快速实现加密解密算法,且软件实现的代码可以用C语言或者汇编语言实现,算法短小精悍,具有良好的可移植性,非常适合嵌入式系统应用.综合XXTEA算法的优点,它可以很好地应用于本USB安全存储系统.图2XXTEA算法的一轮加密过程
Fig.2One round of XXTEA algorithm3USB安全设备系统的加密解密流程如图1所示,USB安全设备系统中,固件层加密解密模块处于USB接口与ATA接口(嵌入式接口)之间,必须对CF存储卡的命令、数据与状态进行分类,并根据实际情况进行分类,对需要加密的数据,并调用加密模块进行相应的加密操作,对需要解密的数据则需要调用解密模块进行相应的解密操作.因此,对IDE接口(电子集成驱动器)的ATA协议命令解析模块和传输控制模块就非常重要.因为,ATA协议命令解析模块负责实现对IDE接口的主机的命令解析过程,从而识别出每条命令的基本信息.传输控制模块则负责对主机的控制信号进行命令响应,从而管理硬盘控制期于主机之间的数据传输过程.  USB安全系统在具体实现上是对整盘的加密,暂时还未涉及目录与存储对象细颗粒的加密操作.因此,对于具体加密解密处理的命令分类情况来看,从ATA/ATAPI-7(IDE设备的相关标准)协议中的每条命令分析可以得到命令代码及其相应的传输类型和传输模式,以及在该条命令下传输的数据加密/解密与否的判断.在PIO(程序输入输出模式)传输模式下,写命令代码为0xC5h需要进行加密处理,而同类模式下读命令代码为0xC4h需要进行解密处理;在Ultra-DMA(高速直接内存存取) 传输模式下, 写命令代码为 0xCAh需要进行加密处理,读命令代码为0xC8h需要进行相应的解密处理.对于大部分命令的下传的数据均不需要加密/解密处理,一般为直通处理.  USB安全系统的设备接口及核心控制模块芯片采用的是Cypress公司的CY7C68013芯片.该芯片是一款全速USB控制器,内嵌一个增强型的8051CPU.在整个安全系统中,CY7C68013芯片担当了USB内核与主机通信、传输数据、加密解密存储数据等重要工作.其具体工作流程如下:  a给系统设备上电,启动系统固件,USB系统按照USB规范应答主机,并提供本USB设备的标识.  bUSB设备枚举本系统设备,并加载相应的驱动,在驱动加载完成之后将控制权转给内核中8051CPU.  c8051CPU与主机交互,验证用户身份.  d用户身份通过后,提取相应的安全密钥,对存储芯片的数据进行加密/解密处理.4实验环境和实验分析  系统测试主机是一台安装有Windows XP SP3系统的Intel Core(TM)2 Duo处理器的PC机.本安全存储系统由一块基于CY7C68013芯片的开发板和CF存储卡(包括ATA连接设备)构成.基于CY7C68013芯片的开发板固件编程与调试采用USB接口直接下载和调试,同时也采用smart ICE(并口微处理器仿真器)进行在线调试.  为了测试虚拟U盘的读取性能,因而采用Iometer软件对未加密的USB存储系统和使用加密的USB安全存储系统分别进行了测试,同时为了删除测试系统中读写负载对测试数据的影响,整个测试环境要求测试时不发生其他程序读写USB存储系统的情况,测试数据块大小为0.512 kb,4 kb,16 kb,32 kb,分别进行了时间段为2 min的顺序读取和写入等两个方面的测试,其对比结果如图3所示,安全USB存储系统中的加密后U盘的速率与未加密的U盘的访问速率基本一致,显然经过加密后的数据造成的对数据读写性能的影响很小.通过对数据的分析,可以发现经过加密处理的数据基本不影响USB数据的读取操作,因此,可以认为XXTEA加密解密算法在安全USB存储系统得到了较好的应用.图3顺序读取速率性能比较图
Fig.3Sequential read rate performance test results
注:5结语  USB存储设备有着良好的市场和口碑,但是USB存储设备期待加强数据的安全防护.USB存储设备的安全技术正日益发挥其重要作用,但是对于常见的加密型U盘中普通口令认证型安全性能相对较弱,软件加密型依赖于计算机主端的安全性能,而硬件加密型则需要用到价位较高的专用芯片,推高了USB存储设备的价格.本文从USB存储设备的安全与性价比的角度出发,给出如何在通过在USB存储系统中设计实现一个基于存储设备的固件加密解密方法,实现在USB设备固件级别的安全存储系统的功能.最后给出了相应的测试性能分析,说明本文给出的方法基本不影响存储设备的读写吞吐率.通过系统性能测试分析,可以发现数据传输随着传输数据块大小性能有所下降,因此,下一步的研究方案将逐步改进以提高嵌入式系统性能从而提高安全USB存储