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 加密 模块负责对接收到的数据进行加密处理,密钥封装在芯片中的存储器中。