基于加密USB2.0接口芯片的设计及验证
0 引言
USB 总线因其具有高速度、即插即用、功耗低等特点,深受广大用户的青睐。但USB 规范本身并未考虑数据传输时的安全性问题,所以它的安全性能低,不适合用来传输安全性 要求较高的信息。本文在研究USB2.0 规范以及应用密码学等安全防护技术的基础上,提出 一个基于ASIC 的整体解决方案。目的是用硬件描述语言设计一个既符合USB2.0 规范,同 时又可以将流经该接口芯片的数据进行自动加密的专用集成电路。最后,对所设计的系统在 FPGA 上进行验证,给出系统在FPGA 上所耗用的资源以及性能参数,对得到的数据进行分 析。
1 相关知识
1.1 USB 简介
从USB1.0 版本发布到2.0 版本,中间经历了多次版本更新。从1998 年7 月的Windows98 开始,USB 外围设备开始陆续出现,同时也成为最受欢迎的接口.它的优点为:容易使用、 传输速度快、低价位、低能耗、高稳定性、操作系统支持、外围设备的支持、有弹性.缺点 为:缺乏对数据安全性的考虑、缺乏对旧硬件的支持、点对点的通信、速度的限制、距离的 限制、硬件的错误或故障、协议的复杂性、版权费。
1.2 AES 简介
1.2.1 原理及起源
AES(Advanced EncrypTIon Standard)是由美国国家标准与技术研究所于1997 年提出征集 该算法的公告并最终选定了两个比利时研究者Vincent Rijmen 和Joan Daemen 发明的 Rijndael)算法,并于2001 年正式发布了AES 标准。
1.2.2 AES 工作流程
Rijndael 算法本质上是一种对称分组密码体制,采用代替/转换网络,每轮由三层组成: 线性混合层确保多轮之上的高度扩散;非线性层由16 个S 盒并置起到混淆的作用;密钥加 密层将子密钥层异或到中间状态。Rijndael 是一个迭代分组密码,其分组长度和密钥长度都 是可变的,只是为了满足AES 的要求才限定处理的分组大小为128 位。而密钥长度为128 位、192 位或256 位,相应的迭代轮数Nr 为10 轮、12 轮、14 轮。可以抵御强大和实时的攻击。
2 系统解决方案
2.1 系统原理
本文主要目的是要设计一个既符合USB2.0 规范的数据接收和发送,又可以对接收到的 数据进行自动加密的专用集成电路的设计,并将所设计的系统用FPGA 对其进行功能验证。
该系统由两大模块组成:USB 模块和AES 加密模块。 系统结构如图1 所示:
其中,USB 模块实现流经数据依照USB2.0 规范进行接收和发送。将要发送的数据进行装配、 打包处理,并对接收到的数据包进行分解,在存储器接口与优先级判别模块的处理之后将数 据存入外部存储器 (SSRAM)或通过WISHBONE 接口电路与外围设备进行通讯;AES 加密 模块负责对接收到的数据进行加密处理,密钥封装在芯片中的存储器中。
2.1.1 USB 接口模块原理
该模块实现了符合USB2.0 规范的数据处理以及不同的外设与计算机的互连和数据通 信。 该模块的主要功能包括:
(1) 完全支持 USB2.0 规范,提供全速模式和高速模式,其数据率分别为12Mbit/s 和 480Mbit/s。
(2) 支持 WISHBONE 接口电路和该模块之间采用DMA 方式进行数据通信。
(3) 模块的挂起/恢复功能。 该模块结构如图2 所示。其中。PHY 模块负责将数据发送到与USB 连接器相连的计算 机,或接收来自计算机的数据;UTMI(数据通用收发宏单元接口)与PL(协议层)模块及内部 数据存储器、控制寄存器相连负责保持通信数据的格式符合USB2.0 规范中的协议格式; WISHBONE(主接口电路)是内部数据存储器、控制寄存器与外部设备之间的通信桥梁。
2.1.2 AES 模块原理
该模块负责将USB 模块接收并解包的数据进行加密然后将加密后的数据存入外部存储器或通过WISHBONE 接口电路送到外围设备中。
该模块结构图如图3 所示。它主要包括数据位宽变换模块和AES 加密单元。在USB 模 块数据接收和处理的位宽为8,而AES 加密模块中,明文和密钥的位宽为128,所以在USB 模块将接收来的数据包解包后所获得的数据不能直接加密,需要进行位宽调整后才可以加 密。数据位宽变换模块的功能就是将PL 解包后的8 位数据连接成128 位后再送入AES 加密 单元;AES 加密单元将送入的128 位明文与密钥存储器中的密钥进行十轮AddRoundkey、 SubBytes、ShiftRows、MixColumns 变换后完成明文加密,并将加密后的数据(密文)送入外 部存储器或通过WISHBONE 接口电路送到外围设备中。
2.2 性能分析
本文采用StraTIx 系列的EP1S10F484C5 芯片对该系统进行验证。
2.2.1 USB2.0 模块的性能分析
下表为USB 模块综合后的性能参数:
2.2.2 AES 模块的性能分析
当输入信息={32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34},轮数Nr=10,加 密密钥={2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c},加密结果={39 25 84 1d 02 dc 09 fb dc 11 85 97 19 6a 0b 32},经检验该结果是正确的,完全符合AES 加密算法。
下表为AES 加密算法综合后的数据:
2.2.3 整个系统的性能分析
下表为系统综合后的性能参数:
由以上综合结果分析可以得出,该系统在FPGA 上进行验证是完全可行的,而且它的频 率可以达到336.02MHz,完全可以实现USB480Mbits/s 的传输速度。
2.3 系统实施的必要性和可行性分析
该系统的主要目的是设计一个可以对数据进行自动加密的USB2.0 接口芯片,常规的USB 接口芯片是不带加密功能的。而现今USB 的应用领域中有很大一部分需要对所传输的数据进 行加密。对安全性要求特别高,所以制作一个既符合USB2.0 规范,又可对数据进行自动加密 处理的专用集成电路在应用上将会有很大的应用空间.制作这样的集成电路很有必要.
FPGA 是一种可重构硬件,它既具有硬件的安全性和高速性又有软件的灵活性和易维护性,已经成为分组密码算法硬件实现的热点研究方向;另外FPGA 研发的启动开销比ASIC 要小,FPGA 从设计到投入市场的周期很短,FPGA 芯片重配置和扩充十分方便,它能够商定 所需的密码算法,更换的密码算法可以适时配置到目标设备中。当前,FPGA 芯片的容量不 断的增大,片内还有内嵌存储器,这就使查找表和变换操作可以很容易的实现,因此在百万 门的FPGA 中实现本文所提系统是可行的。
3 系统优势分析
提高USB 数据通讯可靠性的措施基本上可以分为两种:一种经过计算机软件处理,对数 据进行加密;另一种方法是在硬件的层面上对数据直接加密。其中软件处理实现起来较简单, 但软件加密处理速度比硬件加密慢许多,如果需要对大量数据进行实时加密,软件处理将会 消耗太多的时间,不适合数据的实时加密和通讯。相反,用硬件的方法来解决,在速度方面 将获得较理想的实时加密通讯的效果。
另外,由于加密算法中都大量使用了复杂的按位运算,而通常这类运算不适合在通用处 理器上运行,因此用软件来实现必然会带来效率低下的问题,而加密芯片体系结构是针对加 密算法的结构特征专门设计的,采用了一些特殊的优化技术(如流水线和查找表等),可以 极大地提高数据的流量并减少密钥的生成时间;另外软件只能提供有限的物理安全,尤其在 密钥的存储方面。而用硬件实现加密算法及与之相关的密钥生成过程,并且封装到芯片中, 因为它们不易被外部攻击者读取或更改,会有较高的物理安全性。因此基于硬件的密码算法 就受到业界的普遍关注,可以完全胜任整个系统的安全保密工作。
由以上分析可知,该系统采用硬件处理加密和USB 通讯,可以在满足USB2.0 规范的数 据传输的基础上,极大地提高系统的安全性。
4 结论
综上所述, 通过研究对USB 通讯安全性的需求,开发一个具有数据实时自动加密的USB 设备控制器可以开创USB 安全通信的新领域,而且,现在市面上大多数器件的外围接口的都 支持USB,如果可以开发一块保密性高而又不影响原有USB 通讯高速率、简单易用的芯片将 会受到广大用户的青睐.