为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

USB2.0加密接口芯片的设计及其FPGA验证

2019-01-31 7页 doc 9MB 19阅读

用户头像 机构认证

金水文库

鑫淼网络科技有限公司主要经营:PPT设计 、课件制作,软文策划、合同简历设计、计划书策划案、各类模板等。公司秉着用户至上的原则服务好每一位客户

举报
USB2.0加密接口芯片的设计及其FPGA验证 硕士学位论文 摘要 摘 要 信息安全在当今的社会生产生活中已经被广为关注,对敏感信息 进行加密是提高信息安全性的一种常见的和有效的手段。 常见的加密方法有软件加密和硬件加密。软件加密的方法因为加 密速度低、安全性差以及安装不便,在一些高端或主流的加密处理中 都采用硬件加密手段对数据进行处理。硬件加密设备如加密狗和加密 卡已经广泛地应用于信息加密领域当中。 但是加密卡和加密狗因为采用的...
USB2.0加密接口芯片的设计及其FPGA验证
硕士学位论文 摘要 摘 要 信息安全在当今的社会生产生活中已经被广为关注,对敏感信息 进行加密是提高信息安全性的一种常见的和有效的手段。 常见的加密方法有软件加密和硬件加密。软件加密的方法因为加 密速度低、安全性差以及安装不便,在一些高端或主流的加密处理中 都采用硬件加密手段对数据进行处理。硬件加密设备如加密狗和加密 卡已经广泛地应用于信息加密领域当中。 但是加密卡和加密狗因为采用的是多芯片结构,即采用独立的 USB通信芯片和独立的加密芯片来分别实现数据的USB传输和加密 功能,如果在USB芯片和加密芯片之间进行数据窃听的话,很轻易 地就可以获得未加密的明文数据。作者提出了一种新的基于单芯片实 现的USB加密接口芯片的构想,采用一块芯片实现数据的USB2.0 通信和AES加密功能,命名为USB2.0加密接口芯片。 USB2.0加密接口芯片采用了USB2.0接口标准和AES加密算法。 该加密芯片可以实现与主机的快速通信,具有快速的密码处理能力, 对外提供USB接口,支持基于USB密码载体的自身安全初始化方式。 根据设计思想,课题研究并设计了USB2.0加密接口芯片的总体 硬件架构,设计了USB模块和AES加密模块。为了解决USB通信 模块与AES加密模块之间存在的数据处理单元匹配以及速度匹配问 题,本文设计了AESUSB缓冲器,优化了AES有限域加密算法。最 后,利用VerilogHDL语言在FPGA芯片上实现了USB2.0加密接VI 芯片的功能,并在此基础之上对加密芯片的通信和加密性能进行了测 试和验证。 关键词通用串行总线,高级加密算法,加密芯片,现场可编程逻辑 阵列 硕士学位论文 ABSTRACT ABSTRACT The information.security has been widely attended both in people’S daily life and the producting work..,nle most common method to enhance the information.security iS Data-encryption. 砀e software.encryption and the hardware encryption are the most common ways of the Data.encrytion methods.The software.encryption method has many disadvantages such as:low encrypt speed,low safety,and di伍cult to be settled.these disadvantage make the software.encrytion rarely used in Data-encrypt area.In substitute,the hardware-encryption Can solve these problems easily.So nowadays,most important Data-encryption work use the hardware.encryption method.The hardware··encryption systems like the encrypt·-dog and the encrypt--card has been widely used in the information.encryption domain. Based on the research of the encryption method described above.I found there are still many problems existed to be solved.The encrypt-dog and the encrypt-card use the multi-chip architecture(USB interface chip and the Encrypt-chip)to realize the USB communication and the Data-encrypt function.The original data can easily be listened and stolen from the USB chip,without the encrypt-chip process.I proposed a new kind of encrypt method named USB2.0 Encrypt Interface Chip(UEIC for short).The UEIC is based on the single chip,it can communicate according to the USB2.0 protocol and encrypt the data automatically by AES encrypt algorithm. The UEIC Can communicate with the PC rightly and encrypt the data fastly,it provide the USB interface,support the self-initialization of the USB password carrier. According to the design concept,the paper research and design the whole hardware structure of the UEIC.a USBmodule and a AES encrypt module.Finally,the Paper realise the function of the UEIC based on the FPGA chip.then test and analyse the performance of the UEIC’S USB communication and its encrypt function. KEY WORDS USB,AES,Cipher Chip,FPGA II 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获 得中南大学或其他单位的学位或证而使用过的材料。与我共同工作的 同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名: 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校有权 保留学位论文并根据国家或湖南省有关部门规定送交学位论文,允许学 位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以 采用复印、缩印或其它手段保存学位论文。同时授权中国科学技术信息 研究所将本学位论文收录到《中国学位论文全文数据库》,并通过网络向 社会公众提供信息服务。 作者签名: 要童盘导师签名 日期:逊年白军日 硕士学位论文 第一章绪论 第一章 绪论 1.1研究课题的背景及技术现状 在今天信息社会里,科学技术的研究和发展以及商业活动等,无一不与信息 密切相关,特别是一些新业务的不断兴起,如电子商务、数字货币、网络银行等, 对信息安全提出了更高的要求,保护信息的安全是信息时代的迫切需要。 在目前的计算机环境中,利用~些运行在计算机内部的加密所进行的数 据传输是较安全的,但是一旦微机连接到Intemet上,在系统安全环节上就会形 成一个脆弱的链接。在网络上传输未加密的信息,极有可能让黑客获得如用户密 码和帐号这样的敏感信息Il捌。由此看来,信息加密在保证数据安全传输的领域 中占有非常重要的地位。 现有的加密技术包含软件加密和硬件加密。常见的硬件加密有加密卡、 加密狗,采用的计算机接口有并口加密和串口加密,下面对上述内容一一进行分 析讨论。 l 软件加密和硬件加密 加密的本质是验证使用者是否为授权用户,然而在实际使用加密验证的过程 中,加密手段却表现得多种多样,主要分为软件加密和硬件加密两种形式。 (1)软件加密 几乎任何加密算法都可以用软件实现。软件实现的好处是它具有的灵活性和 可移植性并且易于使用和升级。现在软件加密程序的使用已经大众化了,并可以 用于大多数操作系统。对于这些加密软件来说,它们可以用来保护个人文件,但 用户通常必须手工加、解密文件,而且密钥的管理方案也非常重要,它不应当被 存储在磁盘的任何一处,甚至不应该写在处理器与磁盘交换数据的内存中,密钥 和未加密文件在加密后应删除13,4],所有这些弊端给加密工作带来了不少的麻烦。 另外,软件加密还有下述几个不足之处。第一:速度较慢,比如通常软件实 现的AES加密程序运算速度是要远远比硬件实现的速度要低的。当然,随着IT 产业的飞速发展,计算机的运算速度越来越快,存储空间越来越大,软件加密的 速度也有大幅的提升,但总体来讲软件加密的运算速度还是比不上同时代的硬件 加密速度【5】。第--:易于被人改动,因为软件程序由代码组成,加密软件本身的 代码可以轻易地被攻击者获得,攻击者经过分析可以找出对应的解密方法,获得 原始数据。这样一来,软件加密就不能使数据安全得到保障[6,zl。 (2)硬件加密 硕士学位论文 第一章绪论 随着信息产业的发展,集成电路产业提供了越来越强大的芯片,现在高端的 加密产品都采用特定的硬件加密形式。这些加解密芯片被嵌入到通信线路中,然 后对所有通过的数据进行加密。虽然由于价格方面的原因软件加密在今天变得很 流行,但是硬件加密仍然是商业和军事应用的主要选择,因为硬件在加密速度、 安全性以及安装难易程度等方面有着很大的优点。 第一:速度高 加密算法通常含有很多对明文位的复杂运算,没有哪类这样的操作能在一 般的计算机上直接进行。加密算法AES在普通用途的微处理器上运行几乎没有 效率可言。另外,加密常常是高强度的计算任务,计算机微处理器对此效率不高, 将加密移到专用芯片上,可以分担计算机微处理器的工作,使整个系统速度加快 【8卜【lO】 o 第二:安全性强 对运行在没有物理保护的计算机上的软件,加密数据很可能被别有用心的人 利用各种跟踪工具悄无声息地获取密码并窃取数据,硬件加密设备可以安全地把 数据封装起来,并在芯片表面覆盖一层特殊化学物质,使得任何企图对加密设备 内部进行的不法访问都将导致芯片逻辑的破坏,这样一来就可以使得外部攻击难 以控制和监听硬件加密设备内部的数据加密过程,提高了数据的安全性【11以31。 第三:易于安装 大多数加密应用与普通计算机无关,将专用加密硬件放在电话、传真机和调 制解调器中比在微处理器或者软件中要常见得多。即使当加密数据来自计算机 时,安装一个专用加密设备也比修改计算机系统软件更容易【6】。 目前市场上有三类基本的加密硬件: (1)自带加密模块(可完成一些如银行1:3令确认和密钥管理等功能)1141; (2)用于通讯链路的专用加密芯片‘14,17】; (3)可插入个人电脑的插卡1161。 2并口加密和串口加密 使用加密硬件,就必须要考虑计算机接口的问题。常见的计算机的接口有串 口和并口。串口的出现是在1980年前后,数据传输率是115kbps,一230kbps,一般 用来连接鼠标和外置Modem:并口的数据传输率比串口快8倍,标准并口的数 据传输率为1Mbps左右,一般用来链接打印机,扫描仪等【18】。早期的加密狗类 加密硬件基本上都是使用并口的,不但极易与打印机冲突,而且容易被破解,要 想设计出更可靠更完善的加密硬件,必须采用新的适合加密的计算机接口119】。 现在市场上已有的很多新的接口总线标准,发展迅速而且在业界比较流行的 有三种:IEEEl 394、蓝牙和USBt20--221。 2 硕士学位论文 第一章绪论 IEEEl394是为了增强外部多媒体设备与电脑连接性能而设计的通用串行总 线,传输速率可以达到400Mbps,利用IEEEl394技术我们可以把电脑和摄像机、 高速硬件、音响设备等多种多媒体设备连接,然而正EEl394有它的局限性,就 是价格昂贵。在当今PC机越来越走向低价位的时代,作为一种接口总线,如果 价格上没有优势就意味着它很难普及120-22】。 蓝牙技术是一种无线通信的开放性全球规范,它以近距离无线连接为基础, 为固定与移动设备通信环境建立一个特别连接。蓝牙的数据速率为1Mbps,时分 双工传输方案被用来实现全双工传输。同样蓝牙技术也有它的局限,技术太过复 杂,设备价格过高,并且使用蓝牙技术需要支付专利费用[23之61。 1994年,Compaq、Intel、Microsoft、NEC、Digital、IBM、Northern Telecom 等七家世界著名的计算机和通讯公司成立了USB论坛,花了近两年的时间形成 了统一的,于1995年11月正式制定了USB通用串行总线(删versal Serial Bus)规范,1997年开始有真正符合USB技术标准的外设出现。1999年初在Intel 的开发者论坛大会上,与会者介绍了USB2.0规范,该规范的支持者除了原有的 Compaq、Intel、Microsoft和NEC四个成员外,还有惠普、朗讯和飞利浦三个新 成员。USB2.0向下兼容USBl。1,数据传输速率将达到480Mbps,还可以支持宽 带数字摄像设备及下一代扫描仪,打印机及存储设备【27J。 USB技术具有很多优点[2S--301: (1)热插拨:既可以带电插拨又支持即插即用,使设备安装连接都很方便; (2)单一的连接器类型:便于多个设备扩展连接; (3)可以连接多个设备:每个USB总线接口理论上可以支持127个设备; (4)支持低、中、高速设备:可以满足不同传输速度的应用; (5)不占用PC机系统资源:可以解决现行总线的资源冲突问题; (6)数据传输可靠:有完整的错误检测和恢复机制; (7)可引导系统:为USB设计的驱动程序和应用软件可以自动启动,无需用 户干预; (8)电源保护:节省电能,而且宿主设备PC的USB接口还能向低功耗外设 提供电源: (9)支持四种传输类型:能满足不同传输要求的设备; (10)良好的兼容性:USB规范的不同版本有着良好的向下兼容性。 3加密狗和加密卡 现在,市场上已经出现了很多USB的加密产品,如带加密功能的USB闪 存,USB加密卡,加密狗等。这些技术都属于硬件加密技术,具有加密强度大、 可靠性高等特点,已广泛应用于计算机软件保护领域,在保护软件开发者利益、 3 硕士学位论文 第一章绪论 防止软件盗版方面起了很大作用【31—331。其工作原理如图1.1所示。 PC机 密卡/ 密狗 图l-1加密卡仂Ⅱ密狗工作原理框图 如图所示,加密卡或加密狗是由独立的USB接口芯片和独立的加密芯片构 成。其工作过程为:上位机通过USB驱动程序向加密卡或加密狗发送数据,USB 接口芯片负责接收数据,并将接收到的数据通过缓冲器(实现USB和加密的数 据匹配)送到加密芯片,对数据进行加密处理。 这几种加密方案采用多芯片体系将负责实现USB通讯功能的芯片和专门负 责加密的密码芯片制作在一块电路板上实现加密通讯功能的,这种加密方式由于 采用了多块芯片,信号的流动会因芯片之间的距离而增加时间和电能量的消耗。 因此在加密的运算速度、系统功耗,以及整机体积方面仍有进一步改善的必要和 可能性。另外,由于数据加密过程是在USB接口芯片之外的加密芯片中实现的, 在USB接口芯片和加密芯片之间数据很容易被窃取得到,如果攻击者直接从 USB接口芯片读取数据,就可以获得未加密的明文数据,这样就降低了加密卡 和加密狗对数据安全性的保障。为了解决上述问题,本文设计了USB2.0加密接 口芯片。 1.2本课题要解决的问题和方案的确定 1.2.1课题要解决的问题及所做的内容 由以上分析可知,以往的USB硬件加密技术往往采用将USB芯片与专门负 责数据加密的专用密码芯片设计在同一块电路板上实现的,这种有着设 计简单、资源来源广的优点。但是,因为信号要在不同的芯片之间来回传递,芯 片与芯片之间的距离会增加信号流动及运算所消耗的时间,不利于高速、实时的 USB加密作业。设计一个既满足USB2.0通讯规范,又可以对数据进行加密的专 4 硕士学位论文 第一章绪论 用集成电路(ASIC),不仅可以解决上述多芯片加密系统在速度、功耗方面的缺 陷,同时也可以很好地实现USB2.0的安全通信。 本课题采用硬件加密的方法,在详细学习USB2.0接口规范及AES加密算 法的基础之上,找出USB与AES的安全结合点并设计了一个既可以按照USB2.0 规范进行通讯又可以对通讯数据进行安全性高并可以自动实时加密的USB2.0加 密接口芯片。然后采用VerilogHDL硬件描述语言对所设计的系统进行设计描述, 将设计好的系统在QuartusII等一些EDA软件中进行软件仿真和测试,再将调试 合格的结果下载到FPGA实验板中进行硬件测试。为了使AES与USB结合起来 以后在实现加密通讯的基础之上不影响USB的传输速度和AES的加密性能,本 文设计并使用了两个关键技术:AESUSB缓冲器和AES中有限域运算的优化技 术。 1.2.2方案论证 (1)加密算法的可靠性 本文采用的加密算法为AES(Advanced Encryption Standard)高级加密算法, 它是为了解决DES(Data Encryption Standard)加密安全性差的缺陷而设计的。 据专家报道,这种算法可以抵御目前已知的所有攻击【31]q331。AES算法在设计时, 设计者通过轮函数的多轮迭代,为抵抗通用攻击提供了必要的混淆和扩展,同时 这种多轮迭代的方法也消除了AES算法面向字节处理的不安全因素,有效地抵 抗了对算法的专用攻击。AES算法的运算是针对字节进行的,密码运算也非常 简单,并且结构紧凑,每一轮变换也基本一致,易于在FPGA中实现阱】。 (2)USB2.0与AES结合的可能性 USB2.0是一种计算机通用串行总线规范,负责数据通讯,它的速度可以高 达480Mbps,被广泛应用于计算机行业;AES是一种数据加密算法,它的加密 吞吐量可以达到1055Mbps以上【35~391。由此看来加密算法并不会影响USB2.0的 通讯速度。 (3)采用一块FPGA对系统进行集成的可能性 据已有文献描述,采用Altem芯片EP 1 S 1 0F484C5实现USB2.0通信模块仅 需要25%的片内资源[40l,而AES模块则只消息19%的片内资源14l】。因为现在 FPGA资源的不断扩充,将USB与AES用同一块FPGA集成实现是可行的。 1.3论文结构 本课题分七个章节对USB2.0加密接口芯片进行设计和论述。从国内外的研 硕士学位论文 第一章绪论 究现状及一些相关的基本知识入手,挖掘现行USB力n密方案存在的问题,提出本 课题所采用解决方案的整体框架和工作原理,然后对USB2.0通信模块和AES力n密 模块以及加密芯片所用到的关键技术进行了详细的设计,并在论文的最后对本课 题所设计的USB2.0加密接口芯片进行测试和验证,并得出结论。 论文的主要内容和组织结构如下: 第一章,阐述论文的研究背景、意义和目的,并概述USB加密的国内外研 究现状,提出并论证本文的解决方案。 第二章,本章在分析加密芯片的常规设计方案和功能设置的基础上,提出 USB2.0加密接口芯片的功能以及工作原理,是第三章、第四章、第五章的基础。 第三章,本章先从结构设计、时钟、接口、协议层、操作方式等方面对USB2.0 的工作过程进行了分析,从中找出USB的数据通道,确定数据加密位置,然后 详细设计了USB2.0信模块,并在章后给出了USB2.0模块硬件描述的文件结构。 第四章,本章从结构设计、时序控制、端口定义等方面着手对AES的加密 过程进行了分析。然后,详细设计了AES模块,并在章后给出了AES模块硬件 描述的文件结构。 第五章,本章介绍了USB2.0加密接口芯片的整体设计,并详细说明了加密 芯片实现的关键技术:AESUSB缓冲器和AES有限域运算的优化。通过上述两 个关键技术将第三章和第四章设计的USB模块和AES模块有效地整合在一起, 实现USB2.0通讯加密功能。 第六章,本章的主要目的是对设计好的USB2.0加密接口芯片进行验证,该 章首先介绍了FPGA芯片验证的方法和优势,然后系统介绍了本文所采用的验证 平台和验证方法,最后给出了验证的结果。 第七章,本章为论文的最后一章,该章总结了前面几章所得出来的结论之后, 又提出了论文工作的延伸和扩展,提出了可能的发展趋势。 6 硕士学位论文 第二章USB2.0加密接口芯片功能及工作原理 第二章 USB2.0加密接口芯片的功能及其工作原理 2.1 功能介绍 USB2.0加密接口芯片是将USB2.0通讯模块与AES加密模块集成在一块芯 片上,以实现USB2.0通讯数据的自动加密,加密算法为AES高级加密算法。 该USB2.0加密接口芯片的功能可以分为两大类: (1) USB2.0通讯功能 ·完全支持USB2.0规范,提供全速模式和高速模式这两种数据通信模式, 其数据率分别为12 Mb/s和480Mb/s。 ·最多可同时支持16个节点,实际的外设结点数目可以通过编程更改。 ·支持WISHBONE接口电路和串行通信接口芯片之间DMA方式进行数 据通信。 ·支持物理接口设备(PID)时序模式,保持通信数据的同步性。此外, 通信接口芯片还提供了数据恢复和同步时序重整的机制。 ·利用存储器完成串行通信数据和节点控制信息的排序。 ◆提供两个中断输出,即INT A和INT B。 ◆实现了串行通信芯片的挂起/恢复功能。 (2) AES加密功能(不包含解密功能) 加密算法采用高级加密算法AES,轮循次数为10,密钥存储在FPGA内部 的设计的存储器中。 值得说明的是USB2.0加密接口芯片不实现数据的解密功能。原始数据从PC 机流向USB加密芯片,数据在加密芯片中完成加密后流到PC外围设备;当PC 机从指定的设备中读取数据时,想要获得原始数据,必须经过解密处理。 一般来说解密处理过程可以在两个地方实现:加密芯片内部或上位机解密软 件。加密芯片内部的解密过程是指当数据从设备中上传到PC机时,在芯片内部 对数据进行解密。这种方案具有速度高,功耗低的优点,但不足之处在于数据在 读写整个过程既使用加密又使用解密处理,对数据而言没有任何变化,数据的安 全性没有任何提高。 本课题将数据解密过程放在计算机软件中进行处理,在验证本课题AES加 密正确性的基础之上,将AES解密过程作为课题的的延伸和扩展内容,为后续 研究作铺垫。 7 硕士学位论文 第二章USB2.0加密接口芯片功能及工作原理 2.2 工作原理 软件层l匿 篮 应用程序 本课题设计的USB2.0加密接口芯片的工作原理可以根据图2.1进行描述。 主机 设备驱动 l —’1 I PCB板 UTMI I协议层I存储器I AES 接口l接口I接口I USB ONE I存器l存器恒 WISHBI控制寄l状态寄I缓冲 USB2.0加密 固件层 接口芯片 AES加密模块 硬件层 硬件基础 图2-1 USB2.0加密接1:2芯片系统结构模型 整个工作环境由主机、上位机软件、USB驱动程序、集成USB2.0加密接口 芯片的PCB板等几个部分组成。PCB板上的核心器件为本文所设计的USB2.0 加密接口芯片,负责完成该芯片的所有功能的运行和测试工作。图2.2中软件层 位于主机端,包括驱动程序和应用程序,负责完成系统用户管理服务、密钥管理 服务以及密码功能服务。该部分不是本人所做,具体细节不做描述;.固件层位 于PCB板,它由UTMI接口、协议层接口、存储器接口、控N/状态寄存器、 MSHBONE接口、AESUSB缓冲器和AES加密模块,其中TMI接口、协议层 接口、存储器接口、控制/状态寄存器、WISHBONE接口用来实现USB2.0通信 功能。AES加密模块负责数据加密。AESUSB缓冲器负责协调AES和USB的工 作。 系统的工作过程及原理可以根据数据的流向将其分成两个步骤。 (1) PC一芯片 数据在上位机软件的控制下,经过PC机的USB驱动程序从PC机的USB 接口流向载有USB2.0加密接口芯片的PCB板。USB2.0加密接口芯片依照 USB2.0规范对数据进行接收,并将接收到的数据进行解包等处理,然后,对数 据进行AES加密,把加密后的数据送到存储器或WISHBONE接口。 (2) 芯片--PC 数据由芯片流向PC机的过程与PC一芯片的数据流向相反,但中间没有数 据解密的环节,也就是说,PC机在读取USB数据的时候,数据不经过AES解 密模块,而是直接通过USB2.0加密接口芯片中的USB2.0通讯模块的处理以后, 8 硕士学位论文 第二章USB2.0加密接口芯片功能及工作原理 经PC机的驱动程序,将数据送到上位机的应用软件进行处理。 如1.1所述,以往的USB加密设备如USB加密卡和加密狗,它们采用多芯 片结构来实现USB加密,即分别采用独立的USB接口芯片和专用加密芯片来实 现数据的USB通信和加密功能。数据先经过USB接口芯片完成数据按照USB 协议进行收发处理,然后再送数据送到加密芯片对数据进行加密处理。由于数据 的USB通信与加密过程是分别在两块芯片当中实现的,数据流经整个加密设备 以后可以达到提高数据安全性的目的,但是,在USB通信处理过程与AES加密 之间存在着一个致命的弱点,设想如果将数据直接从USB接口芯片引出,而不 经过加密芯片的处理,原始数据就可以很容易地被窃取到。本课题鉴于以上加密 设备存在的这种问题,提出了将USB通信与AES加密功能在同一块芯片中实现 的构想,并命名为USB2.0加密接口芯片,其设计框图如图2.2所示。 外围设备 7 .·--◆USB连接器 图2—2 USB2.0加密芯片体系结构 它主要由两大功能模块组成:USB2.0通信模块和AES加密模块。其中,USB 模块实现流经的数据依照USB2.0规范进行接收和发送,将要发送的数据进行装 配、打包处理,并对接收到的数据包进行分解,在存储器接口与优先级判别模块 的处理之后将数据存入外部存储器或通过WISHBONE接口电路与外围设备进行 通讯;AES加密模块负责对接收到的数据进行加密处理,密钥固封在系统的存 储器中。 因为加密算法与USB通信所处理的基本数据位数不同,所以大多数的加密 设备都在USB通信与加密之间设置数据缓冲模块,协调USB通信与加密的正常 工作。以往的加密设备往往将数据缓冲模块直接设置在USB通信芯片与专用加 密芯片之间,对经过USB通信芯片处理过的数据进行缓冲,然后再送到专用加 密芯片,对数据进行加密处理。由于USB通信芯片设置有多个数据通道如存储 器接口、WISHBONE接口以及DMA数据通道,常规加密设备仅将存储器接口 输出的数据进行缓冲和加密,对其它数据通道不作处理,所以攻击者可以从其他 的数据通道中获取原始数据。本课题将数据缓冲模块AESUSB缓冲器直接设置 在USB的协议层,对经协议层解包的数据直接进行加密后理,然后再将加密后 9 硕士学位论文 第二章USB2.0加密接口芯片功能及工作原理 的数据通过WISHBONE、存储器接口或DMA通信接口输出,这样就有效地避 免了数据的泄露。AESUSB缓冲器有效地协调USB与AES的正常工作,其工作 原理框图如图2.3所示。 USB接口 图2.3 AESUSB工作原理框图 lO 硕士学位论文 第三章USB2.0模块设计 第三章 USB2.0模块设计 3.1.USB2.0概述 3.1.1 USB2.0系统结构 USB规范具有向下兼容性,USB2.0规范具有与USBl.X相同的结构特征。 USB2.0和USBI.1使用的连接电缆及端口均相同。 (1)总线拓扑结构 USB2.0系统采用与USBl.X相同的树型结构,如图3.1所示,一个USB2.0 系统由USB2.0主机、USB集线器和USB设备组成。 /, USB2.0主机 、 二}竺生≮∑ .USB2.0集线器l I USB2.0集线器 USB低速设备I l USB2.0集线器 USB低速设各l I USB低速设备 图3—1 USB2.0系统结构 (2)系统组件 一个USB2.0系统主要由USB主机、USB集线器和USB设备组成。一个 USB系统只能有一个USB主机,包括USB集线器在内,一个USB系统最多只 能支持127个USB设备。一个USB系统可以连接不同类型的USB设备,如USB 高速设备、USB全速设备、USB低速设备和USB复合设备Ⅲ51。 3.1.2 USB2.0电气信号特征 (1)数据编码和数据帧 在电气信号、数据编码和数据包格式等方面,USB2.0每个数据包传输都包 含SYNC和EOP,所不同的是在全/低速数据传输时,SYNC用8个数据位来表 示,EOP用3个位来表示,在高速数据传输时,SYNC用32个数据位来表示, EOP用8个位来表示m1。 在USB2.0规范中,为了提高总线的利用率,USB2.0提出微帧的概念。如 图3.2所示,每个微帧时间长度为1/Sms,每个微帧以SOF数据包开始,然后再 硕士学位论文 第三章USB2.0模块设计 进行其它类型的数据传输。 载荷 图3-2 USB2.0的微帧结构 (2)高速设备检测 USB集线器通过设备连接和断开时的电气信号来判断设备的插拔动作,并 通过D+和D.信号线电平来判断设备类型(低速设备或全速设备)。 在USB系统中,高速设备总是首先以全速设备的方式连接到USB集线器端 口上。在高速设备连接到集线器端口后,通过硬件信号协议,USB集线器可以 进一步判断是否为高速设备,同时发送相关的硬件信号,USB设备也可判断出 该集线器端口是否支持高速数据传输。在完成USB集线器和USB设备的硬件握 手以后,USB集线器和USB设备将通信方式转换成高速数据传输方式【4M】。 3.1.3 USB2.0数据传输协议新特点 为了支持高速数据传输,USB2.0规范在USBl.1规范的基础上添加了新的 数据传输特性。 (1)新的数据包标识PID(Package Identification) 为了支持高速数据传输,USB2.0增加了新的PID,如表3.1所列15 0。。 (2)SPLIT事务及SSPLIT/CSPLIT令牌包 在功能上,USB2.0规范的SPLIT令牌包同USBl.X规范的PRE令牌相似。 在USB2.0规范中,当USB主机和USB集线器处于高速通信连接的情况时,SPLIT 令牌包被用来支持USB集线器端口的全速/'fl£速设备的连接。 SPLIT令牌包支持两种SPLIT事务处理传输,分别是SPLIT开始事务处理 (SSPLIT)和SPLIT完成事务处理(CSPLIT)。一个SPLIT令牌包由4个字节 12 硕士学位论文 第三章USB2.0模块设计 构成,格式与其他USB令牌包相似,但是有一些不同,因为其他USB令牌包的 通信对象是关联在具有惟一地址的USB设备的特定端点,而SPLIT令牌包的对 象是一个连接该设备的特定USB集线器的下游端口号。 表3.1 USB2.0的新PID USB主机与全速/低速USB设备的通信过程一般由以下三部分组成: @USB主机以高速数据传输方式,将相关全速/低速设备的数据传输包发送 到USB集线器。 ●USB集线器采用合适的通信速率完成与USB设备间的数据传输。 ·在延迟一段时间以后,USB主机通过高速数据传输方式从USB集线器 处得到的相关的数据传输状态,从而完成与全速/低速USB设备数据传 输的整个过程。 (3)数据PID 为了支持高速数据传输,USB2.0在DATA0/1的基础上添加了两个数据PID, 即DATA2和MDATA。这两个数据PID只在高速实时数据传输中才会用到。 如图3.3和图3-4所示,DATA2主要用于高速实时输入7输出数据传输。在 1个数据事务,<1024 B: 圃 r‘————————1 r’’—‘‘。‘——1 2个数据事务,512—1024 B: l DATAl I I DATA0 I r。’—。‘——_—__’1 r‘‘·_‘_。‘’。。11 r。_。。。。。。。。。‘_’ 3个数据事务,683~1024 B: l DATA2 l l DATAl l I DATA0 I I d---__-____-____--__·-__一-_·_______··___··______一 图3-3高速等时IN事务中的DATA2 1个数据事务,<1024 B: 圃 2个数据事务,512~1024 B: 圆圆 3个数据事务,683~1024 B: 圆圆圆 图3-4高速等时OUT事务中的MDATA 硕士学位论文 第三章USB2.0模块设计 实时输入玳数据传输过程中,当在一个微帧中的传输数据必须分为三次事务处 理过程来完成时,第一个数据包的PID为DATA2,第二个数据包的PID为 DATAl,第三个数据包的PID为DATA0。而在实时输出数据传输过程中,当在 一个微帧中的传输数据必须分为三次事务处理过程来完成时,前两个数据包的 PID必须为MDATA,第三个数据包的PID必须为DATA2,这样,主机可通过数 据包的PID判断这个帧中还有没有其他事务,比如PID为MDATA时,则后面 一定还有事务。 如图3-4所示,MDATA主要用于高速实时输出OUT数据传输。当在一个微 帧中的传输数据必须分为两次或两次以上的事务处理过程来完成时,除最后一个 数据包外,其余数据包的PID必须为MDATA。 (4)ERR令牌包 在高速数据传输情况下,USB集线器用ERR数据包来向USB主机报告集线 器下游端口上的错误状态。ERR仅仅在SPLIT事务处理作为应答包使用。 3.1.4 USB2.0带宽计算 USB的传输过程以帧为基础。USB2.0中的高速传输规格将每个帧分割成8 个微帧。在每个微帧中,各种传输模式各自分配适当的带宽进行传输服务。 USB的带宽是通过每个帧可以承载多少数据包量来计算的,每种USB传输 模式都可通过下面的基本公式计算出预估的传输值Ntrans(其中INT表示取整 Ntra珊:胛l 星竺 I L8牛(PL+OH)牛FRJ 数)【49】。其中各量的含义如下。 OBW:USB带宽,单位为B/s; *PL:端点承载,单位为字节(B); *OH:通信协议数据负荷,单位为字节(B); OFR:USB帧传输速率,单位为每秒的帧数量。 3.1.5 USB2.0描述符和请求命令 USB2.0设备支持USBl.1模式下的全速或低速传输。在支持USBl.x规范的 基础上,USB2.0规范添加了两个新的描述符,分别是设备限定描述符和其他速 度配置描述符,这两个新添加的描述符可以通过标准的GetDescriptor请求来读 取。 1.设备限定描述符 设备限定描述符如表3—2所示【50l。 14 硕士学位论文 第三章USB2.0模块设计 bLength 1 Number 描述符大小 bDescdptorType l Constant 类型为设备 bcdUSB 2 BCD USB版本号 bDeviceClass 1 Class 设备类 bDevieeSubClass l SubClass 子类 bDeviceProtocol l Protocol 协议 bMaxPacketSize0 l Number 最大传输包大小 bNumConfigumtions 1 Number 含有的配置数 bReserved 1 Zero 保管 2.其他速度配置描述符 其他速度配置描述符描述设备在其他传输速度下的配置,如表3.3所示【50】。 表3.3 USB2.0其他速度配置描述符 3.请求码 在标准设备命令上,USB2.0规范定义了与USBl.x规范完全相同的标准命 令。对于USB2.0规范新添加的描述符,可通过标准的GetDescriptor请求来读取。 当GetDescriptor请求中的请求类型字为Ox06时,为读取设备限定描述符; 硕士学位论文 第三章USB2.0模块设计 当GetDeseriptor请求中的请求类型字为0x07时,为读取其他速度配置描述符。 4.描述符 USB2.0高速数据传输在USBl.X规范定义的端点描述符的基础上,添加了 与高速数据传输相关的属性。USB2.0端点描述符如表3-4所示【501。 表3-4 USB2.0端点描述符 3.2.USB2.0模块设计 3.2.1结构设计 USB2.0串行通信模块的总体结构如图3.5所示。该模块包括如下5个主要 功能模块。 ◆ WISHBONE接口电路 ● 存储器接口与优先级判别 ● 控制/状态寄存器 ● 协议层 ● 数据通用收发宏单元接口(UTlVlI) 其中SSRAM和PHY是外围设备,不是内部模块。 陋!ss队扯M|弘≯★硎忏,:唧吖H热 落储器接占蟛≮制,族髫 錾啦先级判别,《貉寄存器霹 系统时钟1 ,,◆ V。。o 系统时钟 2 ~ IWISHBONEit I::1电路i 令 淤围设备羹 16 硕士学位论文 第三章USB2.0模块设计 主接口电路(WISHBONE接口)是内部数据存储器、控制寄存器与外部设备 之间的通信桥梁。协议层(PL,Protocol Layer)与内部数据存储器、控制寄存 器和数据通用收发宏单元接口(UTMI)连接,负责保持通信数据的格式符合 USB2.0规范中的协议格式。UTMI模块与USB物理层(PHY,Physicfl Layer)连 接,PHY模块负责数据发送到与USB连接器相连的计算机,或接收来自计算机 的数据。 3.2.2时钟 USB2.0通信模块具有两个系统时钟。时钟1由外部模块PHY提供,同时提 供1 7叫I接口模块的工作时钟;时钟2是WISHBONE接口电路的工作时钟,同 时提供芯片内部其他模块的工作时钟。 时钟l是通过PHY模块产生的,其最高频率为60MHz。但实际的工作频率 将根据芯片的操作模式来具体确定。这里所说的操作模式是指高速数据通信模式 和全速数据通信模式。此外,时钟1还为UTMI模块提供了一个同步控制逻辑的 基准,这个控制逻辑可用来复位芯片。 时钟2的工作范围很广,它提供了WISHBONE接口电路的工作时钟,还提 供了所有内部模块(除UTMI模块外)的工作时钟。由于串行通信存在一定的数 据延时,ⅥSHBONE主电路接口必须使用频率在60MHz以上的工作时钟。这样 做的目的是为了保证芯片整体的工作频率不低于100MHz,保证数据通信的速 率。 3.2.3 WISHBONE接口与存储器接口 1.WISHBONE接口 WISHBONE接口电路模块在芯片内部功能模块和特定功能模块(或控制器) 之间找寻了一个数据通信接口。该接口模块直接影响USB2.0通信模块的数据传 输速率。虽然USB2.0规范的理论数据传输速率为480Mbi∥s,即60M字节内, 但WISHBONE接口采用的是32bit宽度的数据总路线,即每时钟周期传送4字 节。因此接口电路的数据带宽应不小于15M字符/s。 WISHBONE接口的信号定义如表3.5所示。 袁3.5 WISHBONE4妻口电路的信号定义 二 硕士学位论文 第三章USB2.0模块设计 续表3-5 WISHBONE接口电路的信号定义 wb addr i 18 输入端口 输入的地址信息 wb data i 32 输入端口 输入的数据信思 wb data 0 32 输出端口 输出的数据信息 wb ack 0 1 输出端口曩嵩肇翁嬲器搿棚加蝴有 l 输入端口磊弄磊麓:器鬻舻熟则表明数 该信号表明接口电路的总线周期是否有效 输入端口喜曩挚搿萎翥蠹髫玺妻蔷黼信 号 据传送周期) 输入端口 (若有效,则说明该周期是一个有效的数 wb stb i l Inta 0 l 输出端口 中断A的输出信号 Imb O 1 输出端口 中断B的输出信号 DMA访问请求信号。每一个节点设备都可 输出端口凳雩葑孳曩糍鬟器罢耸薯璺斋 Dma—ack—i 15 输入端口戮翌嬲认信号’其用法与 SuSp 0 1 输出端口 芯片挂起模块的状态信号输出 2.存储器接口 存储器接口和优先级判定模块用来处理USB2.0通信模块和WISHBONE接 口电路之间的存储器访问控制,并对存储器访问的优先级做出明确的判定,如图 3-6所示。该模块允许芯片使用标准的单端口同步SRAM存储器件,并负责控制 数据的流向。图3-6所示的SSRAM器件用来缓存串行通信芯片的输入和输出。 协议层 模块 、^rISHBoNE 电路接口 SSRAM 存储器件 图3-6存储器接口与优先级判定 存储器接口电路的信号定义如表3-6所示。 表3-6 存储器接口电路的信号定义 18 硕士学位论文 第三章USB2.0模块设计 3.2.4 UTMI接口 UTMI接口模块包含有接口状态引擎子模块、通信速率判定引擎子模块、数 据收发FIFO存储器子模块和数据收发总路线接口子模块,如图3.7所示。 图3.7 UTMI接口模块框图 1.接口状态引擎 该子模块用于跟踪接口的各状态信息,它可以控制串行通信芯片的挂起/恢 复工作模块,还可以控制芯片的全速/高速通信速率的转换。接口状态引擎子模 块采用一个内部状态机保持各状态信息和芯片操作模块转换的信息。 各节点设备的控制和状态信息都存放在相应的节点控制/状态寄存器中,它 是一个32bit宽度的寄存器,其具体定义如表3.7所示。 .表3.7 节点控制/状态寄存器定义 19 硕士学位论文 第三章USB2.0模块设计 2.速率判定引擎 该子模块用来判定数据通信的速率,并处理USB2.0通信模块挂起和恢复操 作的数据流方向。它和接口状态引擎共同作用,应对不同应用的数据通信速率要 求。 3.数据收发FIFO存储器与接口 数据收发FIFO存储器临时保持芯片的接收数据和发送数据。来自外部的数 据首先利用FIFO缓存,然后利用芯片的写周期或DMS直接写入到SSRAM存 储器中。需发送的串行通信数据则先暂存在FIFO中,等待系统确认后发送。FIFO 是数据收发过程中的缓冲模块,一旦系统确认了数据的收发操作,那么数据收发 接口子模块将保证通信的握手信号,并与PHY接口对应起来。 此外,芯片内部设置了一个用于节点数据通信的缓存控制寄存器,它用来指 定数据收发FIFO的大小,并控制FIFO的状态,具体定义如表3.8。 表3.8数据通信缓存寄存器定义 3.2.5协议层 协议层模块负责所有串行通信芯片的数据FO端口,并实现对数据通信的控 硕士学位论文 第三章USB2.0模块设计 制。协议层模块的结构框图如图3.8所示。 数据包装 DⅣ队 配、打包 数据通 害 信和存 协议 l 储器接 引擎 k 口子模 善 块 数据包 分解 —一 L!*止-I,、LjL+J=b.t∞“ r0 巾u,一I八j西可竹响订{扛 ● 图3.8 协议层模块框图 (1) 与存储器接子模块 与存储器接口子模块是数据存储器的接口电路模块,它提供了存储器 的随机访问方式和 传输方式。此外,该子模块在传送字节与数据错位的情 况下提供了预处理机制,保证串行通信的准确性。 (2)协议引擎 协议引擎子模块处理所有符合 .规范的标准协议握手和控制应答信 号。这些信号包括 令牌信号(ACK、 和NYET)以及 回复信 号。 (3)数据包装配 该子模块完成数据包的打包、装配,并将它们送至输出 存储器中。数 据包装配的步骤为:组织数据包的包头>适当的 数据和数据校验和插入到包 头之后>在系统请求的情况下添加数据域信息。 (4)数据包分解 该子模块解码输入的全部数据包,然后将这些解码数据传送到适当的内部子 模块中。数据包解码包含 数据与数据域信息的解码,还包含包头校验和的 验证。 . .通信模块的操作分析 本节将根据各模块的结构设计分析串行通信模块整体的操作步骤,并总结一 各模块之间的调用关系。将分全速模式和高速模式两个部分来分析串行通信芯片 的操作步骤。 (1)全速模式分析 · 在全速模式下,串行通信的数据包大小将受到限制,具体描述如下: · 计时同步传送的数据包最大不能超过 字节。 · 中断传送类型的数据包最大不能超过64字节。 2l 硕士学位论文 第三章USB2.0模块设计 ● 批量传送类型的数据包最大不能超过8、16、32或64字节。 · 数据包错误与匹配处理是由协议层模块实现的,它涵盖了5方面的错误 处理。 · 数据包收到,单地址信息误匹配时,芯片将忽略这个数据包,不做任何 处理。 ● 节点域信息误匹配时,芯片将忽略这个数据包,不做任何处理。(但是 内部的功能控制器可能会进入中断处理) · 数据包收到,并收到了PID顺序校验和时,芯片将忽略这个数据包, 不做任何处理。 · 数据包的厅偶校验信息出错时,芯片将忽略这个数据包,不做任何处理。 · 输入类型节点的操作是由UTMI模块实现的,它包含5方面的内容。 ● 接收到输入令牌信号,但节点被设置为停止(HALL)状态时,节点发 出的握手信号为“延迟(STAJLL)”。 · 接收到输入令牌信号,但两个已置位USED控制寄存器位的数据缓存 无法寻址定全时,节点发出的握手信号为“不确认(M蛾)”。 ● 接受到输入令牌信号时,节点将发送数据包。 ● 芯片在接收到数据包后发出ACK握手信号时,节点完成一次的数据传 送,并进入到空闲(IDLE)状态。 · 节点没有收到芯片的确认信号,且等待超时,那么节点将重新发送数据 包。 · 输出类型节点的操作是由UTMI模块实现的,它包含4方面的内容。 ● 接收到输出令牌信号,但节点被设置为停止(HALT)状态时,节点发 出的握手信号为“延迟(STALL)”。 · 接收到输出令牌信号,但PID顺序误匹配时,节点发出的握手信号为“确 认(ACK)芯片将忽略当前的数据包。 · 接收到输出令牌信号,但两个已置位USED控制寄存器位的数据缓存 无法寻址定位时,节点发出的握手信号为“不确认(NACK)”。 ● 接受到输出令牌信号时,节点将发送数据包,与芯片完成确认(ACK) 握手。 (2)高速模式分析 ● 高速模式与全速模式基本一致,它们之间最大的不同是数据包的大小, 具体描述如下: · 计时同步传送的数据包最大不能超过1024字节 · 中断传送类型的数据包最大不能超过1024字节。 硕士学位论文 第三章USB2.0模块设计 ● 批量传送类型的数据包最大不能超过5 12字节。 3.2.7寄存器与端口定义 寄存器与端121定义是存储控制器设计的核心环节之一。端IZl主要是指接121电 路部分的端口和存储器访问的端口,寄存器是指USB2.0通信模块内部5种不同 用途的寄存器。 1.寄存器定义 本节定义存储控制器内部所有的控制寄存器和状态寄存器。各寄存器都分配 了一个相对地址,用于系统检索使用。内部所有寄存器的数据宽度都是32bit, 它们中有些是只读寄存器,有些是读/写寄存器,如表3-9所示。寄存器的系统 保留位应该写入零值,若系统读取这些保留位,则有返回一个不确定的值。 表3-9 片内/节点控制寄存器与状态寄存器的定义 (1)内部控制/状态寄存器 该寄存器是USB2.0通信模块的主配置状态寄存器,其具体定义如表3.10 所示。 (2)功能地址寄存器 该寄存器在USB2.0通信模块功能设定后利用功能控制器进行设置,寄存器 硕士学位论文 第三章USB2.0模块设计 的更新操作通过与芯片主系统交换控制和状态信息来实现。 表3.10片内控制/状态寄存器定义 (3)中断掩码寄存器 该寄存器定义了中断输出int_a和int—b的功能含义,且这些中断事件与具体 的节点无关。若中断掩码寄存器位置为1,那么中断源可产生一个稳定的中断输 出;否则不产生中断输出。中断掩码寄存器的具体定义如表3.11所示。 表3-11 中断掩码寄存器的定义 (4)中断源寄存器 该寄存器用于确定中断的中断源。每当功能控制器接收到中断输出,该中断 的旬柄必须读取中断源寄存器以确定中断源和引起中断输出的事件。本寄存器中 硕士学位论文 第三章USB2.0模块设计 的某些控制位在句柄完成读取后自动清零。中断源寄存器的具体定义如表3.12 所示。 表3.12 中断源寄存器的定义 (5)数据帧编号与定时寄存器 该寄存器将详细记录接收到的数据帧的标号以及接收时间,具体定义如表 3·13。 表3.13 中断源寄存器的定义 (6)节点中断掩码/中断源寄存器 该寄存器为每一个节点的中断输出int—a和int—b提供了中断掩码寄存器位, 硕士学位论文 第三章USB2.0模块设计 此外还提供了用于存放中断源信息的寄存器位。节点中断掩码/中断源寄存器的 个体定义如表3.14所示。 表3.14中断源寄存器的定义 3.2.8 HDL文件结构描述 USB2.0通信模块的电路描述由多个描述文件组成,如图3-9所示。 l 。胜压%ol】Ⅲ“^lI ”“一”P·’ 1 . ..』.一一. , 每‘,。。。. MsHB。N上E电路髑 I n11i“if l U l 存储器优 wb·V Usbf m‘ “,m二ar“b.v—l l I口usbf l 山 ● UTMI迂线状态 片内奇存器模块 Usbf utmi IS.V Usbf rf.V ’ , 士 协议层模块 USB节点奇存器模 Usbf.01.V 块usbfep rf.v 上 上 上 上 数据包分解 数据包配置/打包 内邵DMA模块 协议引孥于模块 Usbf pd.V Usbf pa.V Usbf idma.v Usbf pe.V . 图3-9 电路描述文件结构 26 硕士学位论文 第三章USB2.0模块设计 USB2.0通信模块的顶层设计文件是整体工程的主文件,它负责协调各子模 块的描述文件。电路描述文件与功能模块的对应关系如下。 ·Usbf .v描述文件对应 USB2 0 · Usbf wb.v描述文件对应WISHBONE接口电路模块 ·Usbf rf.v和usbf eprf..v描述文件对应USB2.0通信模块的寄存器文件单元, 即内部的各种寄存器和节点上的各种寄存器 ·Usbf mem arb.v描述文件对应存储器接口与优先级模块 ●Usbf p1.v描述文件对应协议层模块,它由4个子模块组成,分别由独立的电 路描述文件与之对应。包括数据包配置/打包(Usbf pa.v)、内部DMA模块 (Usbf idma.v)、数据包分解(USbf pd.v)和协议引擎子模块(Usbf pe.v) · Usbf utmi if.v和Usbf utmi Is.v描述文件对应UTMI接口模块 27 硕士学位论文 第四章AES模块设计 第四章AES模块设计 4.1 AES概述 加密技术是保障信息安全的核心技术之一,应用涉及商务、军事、国贸以及 人们日常生活的各个方面。在20世纪70年代中期,由美国IBM提出了一种使 用56位密钥的对称分组密码算法,1977年被美国国家标准局(NBS)公布为数 据加密标准DES(Data Encryption Standard)算法【”一71。 随着计算机硬件的迅猛发展,以及互联网所带来的巨大并行计算能力,DES 的安全性日显脆弱,已难以应付密码界激烈的分析攻击。 1977年1月,美国国家标准与技术研究所(NIST,前身是NBS)开始公开 征集、挑选DES的替代者,称为高级加密标准AES(Advanced Ecryption Standard),经过三轮筛选,2000年lO月2日,比利时的两位密码学家Joan Damen 和Vincent Rijmen设计的Rijndael算法因在安全性、实现代价和实现特性等方面 都超过其他算法而胜出,成为高级加密标准AES算法【5引。该算法是迭代分组密 码算法,其分组长度和密钥长度都可改变,算法的扩充形式允许分组长度和密钥 长度以32bit的步长,从128bit到256bit范围内进行特定的变化。算法的主要优 点是:设计简单,密钥安装快,需要的内存空间少,在所有平台上运行良好,支 持并行处理,可抵御目前所有已知攻击【59稍】。 4.1.1有限域内的运算 抽象代数的发展引入了群、环、域的概念,使得代数运算达到了高度的统一, 为密码学提供了有利的数学工具。AES在设计上理论上很大程度地依赖有限域 的特殊性质,其中基于有限域的运算为算法的安全性提供可靠保障。 有限域就是具有有限个元素的域。通常记X阶有限域为GF(x)。AES使用有限 域GF(28)上的加法、乘法运算。对于有限域的加法、乘法,分别用符号“O”和“·” 表示【舡731。使用的既约多项式为: m(x)--x8+x4+X3+x+1 (1)加法 加法操作就是两个多项式的系数在GF(28)上相加。如果将GF(28)中的元素看 成是8位的串,那么加法就等价于按位异或操作,其实现只需利用异或门。若用 硬件描述语言实现有限域加法逻辑仅需一条语句,例如: 硕士学位论文 第四章AES模块设计 C 2 a xor b (2)乘法 乘法操作和一般多项式乘法差不多,但系数是在OF(28)上相乘,并且结果多 项式需要模多项式m(x)。以fix)、g(x)为例: f(x)xg(x):-x13+x1 1h|9+xS+x6+x5+X4+f+l 舡)‘g(x)--f(x)xg(x)mod m(x):x7+xo+l (3)基fOF(28)乘法的简化 简单的异或运算不能完b-茈GF(28)的乘法,但是可以通过使用一些技巧达到简 化运算的目的。考虑GF(28')上的多项式: 取)-b7x7+b6)“bsx5+b4x4+b3xs啦X2+blx+bo 将它乘上x,可得: x。f酞)= (b7x3+1)16)【7+b5x6+bax5+b3x4+b2x3+bIx2+box)modm(x)= b6x7+b5X6+b4x5+(b30bT)x4+(b20b7)x3+blx2+(boob7)x+b7 观察上式,如果b7=o,那么结果是一个次数小于8的多项式,不需进一步计 算。如果b7=1,那么可以进行除m(x)取余运算: x·f(x)=(b6x7+b5x6+b4X5+b3X4+b2x3+blx2+box)+(x4+f斗.X+1) 这表明蕾阻)乘以x(如00000010)的运算可以通过左移一位后按位异或0001 1011 (可用多项式表示为x4+X3+x+1)来实现。总结如下: I x。f(x)=b6bsb4bsb2blboO b7r=0 1 0a6b5b4b3b2blb00)O(0001 101 1) b7=1 乘以一个高于1次的多项式可以重复使用上式来实现[64--671。 4.1.2 AES算法原理 AES的结构可分为1个密钥扩展阶段和4个加密阶段(包括1次混淆运算和3次 代换运算)。下面依次介绍(以128分组情况为例)【7蝴】。 (1)密钥扩展 AES算法的密钥长度用Nb表示(Nb反映了密钥中的32位字的数目),分别取值 4、6、8,对应128、192、256--种分组情况。其运算的轮数用Nr表示,分别取10、 12、14。密钥扩展一共生成Nb(N什1)个字,每一个字有32位,要求初始时有Nb 个字,Nr轮运算中的每一轮都要求有Nb个字。 (2)字节代换 用一个S盒函数完成分组中的按字节代换。代数式表达为bij=S[aU],S口是一 个变换函数,功能表现为8输入8输出的查找表。 硕士学位论文 第四章AES模块设计 (3)行移位 一个简单的置换操作。即输入分组的STATE矩阵的第1行保持不变,第2行循 环左(右)移1个字节,第3行循环左(右)移2个字节,第4行循环左(右)移3个字节。 (4)列混淆 一个利用在域GF(28)上的算术特性的代换。其代数式为: 跏跏助咖 缸加翰蚴 缸缸坳咖 缸加助知 3 1 aoo ao, a02 a03 2 3 alo a11 a12 a13 l 2 a20 口2l a22 a23 1 1 ajo ajl a32 a33 (5)轮密钥加 图4-l包含全部加密轮的结构。利用当前分组和扩展密钥的一部分进行按位 异或操作。代数式表达为:bij=如。‰,AESl28算法结构简单,对加密和解密操 阳寸 I 明文 轮密钥加 :==二互 二 !r—————j色————一 ;I行移位求 逆 i===[= ●r。。。-———o‘—————一 :I列混淆求逆 w[4,7】 :=二=[= = !r—————|L——一 f两 j ;面i ●r—。’。。。‘。‘。’’。—。—‘。 H轮密钥 加 i=二=【= :l字节代换求逆 行移位求逆【.j ;垂 ; ;眄强硎 l匝鲴 ; :l列混淆求逆l i ’■___·’_--·____。·。__’_·’____一 : i区两 ; ● 刊轮密钥加l: ’■__·_’·___-·__。·。__-_______一 :I字节代换求逆 l ;=二】; i f {匝高 畔 :l轮密钥加k 竺 ●L-----·---.,........一J! 虻豳l ;I堑鳖垡垄望I; 31 !一一上 .: : 一..士 ; 密文 图4-1 AES加密工作流图 30 硕士学位论文 第四章AES模块设计 作,算法由轮密钥加开始,先执行9轮迭代运算,每轮都包含所有4个阶段的代换, 然后执行只包含3个阶段的最后一轮运算。 4.2 AES模块设计 4.2.1结构设计 AES核包括两个模块:(1)AES加密模块,实现加密运算。(2)AES解密 模块,实现解密运算。两个模块当中都包括密钥扩展模块,而且都可以类似地进 行描述和说明。本课题只用到AES加密模块,解密模块为系统功能扩展时使用。 图4.2是AES的实现框图,整个系统主要由字节代换、行移位、列混淆、 轮密钥加和控制器组成,其中各运算模块作用己在前面叙述过,字节代换使用一 个256字节的ROM实现,利用输入的8位数据作地址,输出相应的S盒变换数据。 行移位由简单的控制电路完成,轮密钥加实质为异或运算,列混淆由后面所述的 优化运算逻辑构成,控制器由一个计数器和控制逻辑组成。 数据 图4-2加密流程实现框图 密文 AES加密工作过程如下:首先将输入的密钥进行扩展,将结果保存在寄存器 组中,以备轮密钥加操作调用。当数据流入系统时,先经过一次轮密钥加,再循 环9次依次执行字节代换、行移位、列混淆、轮密钥加4个模块,控制器根据循 环次数选用不同的密钥寄存器组,依次送出密钥w(o,3),W(4,7), ,W(36, 39),W(40,43)作异或运算。在完成9次运算后,控制器打开三态门,让数据流 入最后一个运算块(字节代换、行移位、轮密钥加),运算完成后,给出READY 信号,等待数据输入。 硕士学位论文 第四章AES模块设计 4.2.2 AES模块时序控制 前面描述的加密模块可以在12个周期内执行一个完整的加密序列(12个周 期是10次轮循,加上一次初始密钥扩展和一做输出过程,共十二个周期)。加密 模块在加密序列开始前输入一个密钥和一个原始未加密的文本或数据。由Ld管 脚置“高”位表示加密过程开始运作。当加密核完成一次加密运算后,将Done置 “高”位表示加密过程结束。如果忽略了done的输出信号会导致加密序列的溢 出。加密模块接口时序如图4.3所示。 加密开始 1 2 3 4 5 6 7 8 9 10 11 12 CLK 几n n几几几几几『]几n n几几几n几n Ld Done key Text in Te)ct out 图4-3 AES加密核接12时序 4.2.3 AES加密模块端口定义 表4.1所示为AES加密核的接口描述。根据第二章的讨论,AES加密模块 主要负责对USB通信数据的加密任务,即数据经过USB通信模块的处理以后, 进入AES加密模块,AES加密模块对数据进行加密处理,将加密后的数据输出。 所以在AES加密模块中输入端口应包括数据输入端口、密钥输入端口。输出包 括数据输出端口。这里用Text in表示数据输入端口,用key表示密钥输入端13, 用Text out表示数据输出端口。另外为了对数据的输入输出以及整个加密过程进 行有效地控制,AES加密模块中增加了ld、done、elk、rst四个端口。其中elk 和rst分别表示时钟和复位端口。Ld是表示数据加密开始的信号(置l表示开始), done是表示数据加密完成(置1表示加密结束)。 表4.1 AES核接口描述 名称 宽度方向描述 Clk 1 I 接口 Rst 1 I 同步低电平复位信号 ld 1 I 加载开始 done l O 完成 32 硕士学位论文 第四章AES模块设计 续表4.1 AES核接口描述 4.2.4 HDL文件结构 这部分总述了AES加密模块的VerilogHDL描述文件的项层结构。AES加密 模块和解密模块的电路描述由多个描述文件组成,如图4_4所示。 厂二 ≈ 厂————] 厂——ll——] 图“AES加密核顶层结构 其中aes_cipher_top.v是AES加密模块VHDL描述的顶层文件,实现AES 加密功能,包括轮密钥、行移位、列混淆以及字节代换运算;aes_key__expand_128.V 表示密钥扩展模块,为每轮置换提供密钥;aes_sbox.v实现S盒操作。 硕士学位论文 第五章USB2.0加密接口芯片的总体设计及关键技术 第五章USB2.0加密接口芯片设计关键技术 USB与AES的结合会存在几下几个问题: (1)AES数据处理模式会与USB通信时数据处理模式产生冲突。 (2)AES的加密所消耗的时间会影响USB原有的高速通信性能。 为了解决上述问题,本文进行了AESUSB缓冲器的设计和AES中有限域运 算的优化及FPGA设计研究。 5.1 AESUSB缓冲器 USB2.0通信模块与AES加密模块在进行连接的时候是通过一个时钟转换模 块(AESUSB缓冲器)来实现的。因为USB2.0模块进行数据通讯的时候是按八 位数据为单位进行处理,而AES加密运算则是以128位数据为单位进行加密处 理的,所以在两个模块进行相连接的时候必须采用一个数据缓冲单元。该缓冲单 元的作用是将USB2.0通讯的数据串接成128位,然后送到AES加密模块进行加 密处理。工作原理和工作时序分别如图5.1(a)和5.1(b)所示。 图中clkl和clk2分别表示USB的数据输出时钟和AES数据接收时钟。USB 输出数据在AESUSB缓冲器的作用下实现8位.128位的转换,然后将128位数 据送到AES加密模块,实现数据加密。 送到 AESl28 8位数据 USB 数据输入 图5-1(a)AESUSB缓冲器工作原理框图 1 2 3 4 5 6 7 8 Clkl Clk2 图5-l(b)AESUSB缓冲器工作时序 硕士学位论文 第五章USB2.0加密接121芯片的总体设计及关键技术 AESUSB缓冲器的程序描述如下。 module elk(rst,data in,data_out,clkbig,clksmall); input[7:0】data_in; input clkbig,clksmaU,rst; output【1 27:0]data out; reg[1 27:0]data_out; reg【7:0]data_midO; reg【7:0]data midl; reg【7:0]data mid2; reg【7:0]data mid3; reg【7:0]data mid4; reg[7:0]data_mid5; reg【7:0]data mid6; reg[7:0]data_mid7; reg【7:0]data mid8; reg[7:0]data_mid9; reg【7:0]data_midlO; reg【7:0]data_midl 1; reg【7:0]data midl2; reg【7:0]data_midl 3; reg【7:0]data midl4; reg【7:0]data_midl 5; reg[3:0]counter; //行为描述 always@(posedge elkbig Or negedge rSt)//大时钟输出 begin if(!rsO data_out<=128%0; else data_out[127:0]<={data_midl5,data_midl4,data_midl3,data midl2, data—mid l l,data rnid l O,data_mid9,data_mid8,data_mid7,data_mid6,data_mid5, data_mid4,data mid3,data_mid2,data_midl,da:ca_midO}; end always@(posedge clksmaU or negedge rst)//dx时钟中间状态赋值 35 ●-_—-_-——●-———,—__●_-____-—--●--_————_-●——————_-_——-_—_-——_●——_———●——●———_—-_—-__———_-—_-—-——●———一 一 硕士学位论塞 箜至童旦塑!:!垫奎堡旦苎生塑整堡垦生垦叁壁垫查 begin if(!rst) begin data_midO<=8"oO; data_midl<=8’bO; data_mid2<=8"oO; data_mid3<=8’bO; data_mid4<=8’bO; data_mid5<=8’bO; data_mid6<=8’bO; data_rnid7<=8’bO; data_mid8<=8’bO; data_mid9<=8’bO; data_midl 0<=8%0; data_midl 1<-8’bO; data_mid l 2<=8’bO; data_midl 3<=8’bO; data_midl4<=8’bO; data_midl 5<=8’bO; counter<=4’bO; end else case(counter) 4'bOOOO:begin data_midO[7:O]<=datajn[7:O];counter<=counter+1;end 4'b0001:begin data_midl[7:0]<=data_in[7:0];counter<=counter+1;end 4'bOOlO:begin data——mid2[7"O]<=data in[7:O];counter<=counter+l;end 4"00011:begin data_mid3[7:0]<=data_in[7:0];counter<=counter+1;end 4"00 1 00:begin data_mid4[7:0]<=data_in[7:O];counter<=counter+1;end 4'b0101:begin data_mid5[7:0]<=data_in[7:O];counter<=counter+I;end 4'b01 10:begin data_mid6[7:O]<=data_in[7:Ol;counter<=eounter+1;end 4"00 1 1 1:begin data_rnid7[7:O]<=data_in[7:0];counter<=counter+1;end 4"Ol 000:begin data_mid8[7:0]<=data_in[7:O];counter<=counter+l;end 4'b1 001:begin data_mid9[7:O]<=data_in[7:O];counter<=counter+l;end 4"olOlO:begin data_midl0[7:0]<=data in[7:O];counter<=counter+1;end 硕士学位论文 第五章USB2.0加密接口芯片的总体设计及关键技术 4"0101 1:begin data—.midl 1[7:0]<=data_in[7:0];counter<=eounter+1;end 4'b1100:begin data_midl2[7:0]<=data_in[7:0];counter<=eounter+1;end 4"01101:begin data_midl3[7:0]<----data_in[7:0];counter<=counter+l;end 4"01110:begin data_midl4[7:0]<---data in[7:0];counter<=counter+l;end 4"01 1 1 1:begin data_midl 5[7:0]<=data_in[7:0];counter<=counter+1;end endcase end endmodule 寄存器传输级描述如图5.2所示。 翌一 型 型 —【 1 刊 图5.2AESUSB IU’L描述图 37 硕士学位论文 第五章USB2.0加密接口芯片的总体设计及关键技术 5.2 AES中有限域运算的优化及FPGA设计研究 AES算法的4个阶段中,列混淆是一个基于GF(28)代数运算的数据代换过 程(见图5.3)。由于运算中的系数是常数,所以可以通过对运算的分解做出优化。 图5-3列混淆变换示意图 boj=02aojQ03aljQ01。a2jQ01’a3j =02。aoaQ(02Q01)。aljQ01‘a2j001’a3J =02‘(ao,jOal,j)001‘al,iG01。a2,jGOl。a3j 记有限域运算02‘a为X2,U=ai,j(Z)ai+l,i,T=ao,jOaljOa2jOa3j,上式可化简为: bo,j-X2(ao,joal,j)oao,jOT 整个运算中只包含一个有限域运算X2模块和若干个异或运算。具体运算电 路如图5.4所示,有效节约了设计资源。 CLK D6 D5 84 D3 D2 Dl DO D7 图5-4(a)-g体运算电路 硕士学位论文 第五章USB2.0加密接口芯片的总体设计及关键技术 图5-4(b)AES中有限域乘法运算电路实现 在FPGA设计中,还可以使用查表的方法来取代乘法操作,代价是要花费 一定的存储空间。定义一个包含256字节的表X2,实现8位输入8位输出的线 性变换,使得X2[i]=02·i。由于该运算频繁使用,故采用FPGA中的查找表 (Look-Up-Table)完成。目前FPGA中多使用4输入的LUT,所以每一个LUT 可以看成一个有4位地址线的16xl的RAM。使用8个UJT即可完成8.8变换。 将输入的8位数据分为高4位和低4位,分别作为4个U丌组成的RAM查找 地址,再将输出的2个4位数据合并,完成8.8的数据置换操作(见图5.5)。 ==刮4*LUT}= 令 ‘.世 l l‘.眦 8位 8位 · > 4位 4位 I I ==叫4·LUT F=今 图5-5X2查找表结构 AES的逆运算结构与加密相似,但逆列混淆运算使用的系数表不同,额外 定义一个查询表则浪费资源,通过对算法分析,列混淆多项式c(X)与逆列混淆多 项式d(x)满足关系: d(x)-(04x2+05)’c(x)‘(mod x4+01) 可用矩阵表达为: E B D 9 2 3 1 l 5 0 4 0 9 E B D 1 2 3 1 O 5 0 4 D 9 E B l 1 2 3 4 0 5 0 B D 9 E 3 1 1 2 O 4 0 5 因而,逆列混淆可用一个简单的预处理过程加上一个列混淆运算实现。预处理运 算式推导如下: aO=5·a004·a2 39 硕士学位论文 第五章USB2.0加密接口芯片的总体设计及关键技术 =2·(2·a0)o·300(2·a2)=2·(2·(aOoa2))OaOal=2‘(2‘(al Qa3))Gala2=2‘(2‘(a0(弓a2)) @a2a3=2·(2·(al Oa3))0a3 根据公式,可得如图5-6所示的电路。 图5-6逆列混淆运算预处理电路 如果设计资源紧张,可以使用该处理电路来节省资源,但这样做使得逆列混 淆处理时间等于一个列混淆运算加上与处理的时间,故降低了速度,即用FPGA 设计中的“用速度换面积”。而在资源充分,对速度要求较高的设计中,可以采用 额外定义一个查找表的方式,来加快处理速度。即设计中常用的“用面积换速度"。 硕士学位论文 第六章FPGA设计与验证 第六章FPGA设计与验证 6.1 FPGA设计与验证方法概述 利用FPGA数字系统设计,一般采用硬件描述语言(如VHDL,VerilogHDL 等)或采用原理图完成系统设计描述,然后利用FPGA生产商提供的开发平台完 成系统综合、仿真、布局布线、编程配置,也可以使用第三方综合工具和仿真工 具,如Synplify、SynplifyPro和ModelSim等。本节介绍本文开发设计所用到的 硬件描述语言VerilogHDL和开发平台Altera Quartusll5.0介绍如下。 1 FPGA概述 随着微电子技术与工艺的发展,数字集成电路从电子管、晶体管、中小规模 集成电路、超大规模集成电路逐步发展到今天的专用集成电路(ASIC)。ASIC 的出现降低了产品的生产成本,提高了系统的可靠性,减少了产品的物理尺寸。 但是全定制ASIC因其设计周期长、改版投资大、灵活性差等缺陷制约着它的应 用范围。硬件工程师希望有一种更灵活的设计方法,根据需要,在实验室就能设 计、更改大规模的数字逻辑,研制自已的ASIC并马上投入使用,这就是可编程 逻辑器件提出的基本思想。可编程逻辑器件随着微电子制造工艺的发展取得了长 足的进步,从早期的只能存储少量数据,完成简单逻辑功能的可编程只读存储器 (PROM)、紫外线可擦除只读存储器(EPROM)和电可探险只读存储器 (EEPROM),发展到能完成中大规模的数字逻辑功能的可编程阵列逻辑(PAL) 和通用阵列逻辑(GAL),今天已经发展成为可以完成超大规模的复杂组合逻辑 与时序逻辑的现场可编程器件(FPGA)和复杂可编程逻辑器件(CPLD)。随着 工艺技术的发展和市场需要,超大规模、高速、低功耗的新型(FPG~CPLD不 断推陈出新【酬。 在介绍FPGA之前先业介绍一下CPLD,因为,FPGA是在CPLD的基础上 发展起来的新型高性能可编程逻辑器件。CPLD一般采用E2CMOS工艺,也有少 数厂商采用Flash工艺,其基本结构有可编程I/O单元、基本逻辑单元、布线池 和其它辅助功能模块。FPGA一般采用SARM-!-艺,也有些专用器件采用Flash 工艺或反熔丝工艺,FPGA的集成度很高,其器件密度从数万门到数千万门不等, 可完成极其复杂的时序与组合逻辑电路,适用于高速,高密度的高端数字系统设 计领域,FPGA的基本组成部分有可编程I/O单元、基本编程逻辑单元、嵌入式 块RAM、丰富的布线资源,底层嵌入功能单元、内嵌专用硬核等。基本I/O单 元是芯片与外界电路的接口部分,完成不同电气我下对输入/输出信号的驱动与 41 硕士学位论文 第六章FPGA设计与验证 匹配需求。目前大多数FPGA的I/0单元设计成可编程模式,便于FPGA的灵活 应用。基本逻辑单元是可编程逻辑的主体,可以根据设计灵活地改变其内部连接 与配置,完成不同的逻辑功能。目前大多数FPGA都有内嵌的块RAM,这些块 RAM都有可编程的,大大拓展了FPGA的应用范围和使用性,它们一般可以灵 活地配置为单口RAM,双口RAM,FIFO以及ROM等存储器形式。布线资源 连通FPGA内部所有单元,连线长度和工艺决定着信号在连线上的驱动能力和传 输速度哺引。 FPGA既继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普 通ASIC设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设 计中的理想首选。 ·规模越来越大,单片逻辑门数已愈千万,更适合于实现片上系统(SOC)。 ●开发过程投资小,FPGA芯片在出厂前都经过严格测试,设计灵活,发 现错误可及时更改,减小了投资风险。 ·FPGA可以反复编程、擦除。在不改变外围电路的情况下,设计不同的 片内逻辑就能实现不同的电路功能。 ●FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可以作为片上可编 程系统,(SOPC)的硬件平台。 ●FPGA的开发工具智能化、功能强大、易学易用,使得设计人员更能集 中精力进行电路设计,快速将产品推向市场。 ·新型FPGA内部嵌有专用硬核(Hardware Core),便于完成高速复杂系 统设计,提高系统的工作频率与效能,减轻工程师的设计任务,降低了 研发风险。 ·下面简要介绍FPGA的设计流程。 ●一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综 合优化、布局布线、布线后仿真与验证(时序仿真)、板级仿真验证与调 试等。 2 硬件描述语言VerilogHDL 硬件描述语言(Hardware Description Language,HDL)发展至今已有了40多 年的历史,出现了很多各类,其中最有代表性的VHDL和Verilog HDL,现在都 已成为IEEE标准。VerilogHDL语言是在C语言的基础上发展起来的一种硬件描 述语言,它易学易用,很适合门级开关电路描述,VHDL(VHSIC Hardware Description Language)是一个详细且庞大的硬件描述语言。它在20世纪80年代 后期由美国国防部开发,并成功地应用在软硬件系统的设计综合、仿真、验证等 领域,对EDA(电子设计自动化)的发展起了极大的促进和推动作用。VHDL 42 硕士学位论文 第六章FPGA设计与验证 很适合大型数字系统的设计【85-87】。 VerilogHDL语言的主要优势:功能强大,灵活;设计不依赖于任何具体器 件:可以进行程序移植;易于ASIC移植;语言标准、规范,易于共享和复用。 本文采用VerilogHDL编码器的硬件编程设计。 3开发工具QuartuslI简介 Altera的综合开发平台QuartusII,是完成基于FPGA的数字系统的开发设计、 综合、仿真、布局布线、编程配置的有力工具。Quartusll支持硬件描述语言(HDL)、 原理图等设计输入,集成了综合工具,仿真工具等开发流程所涉及的所有工具 和第三方工具软件接口。通过使用该综合开发工具,设计者可以创建、组织和管 理自己的设计。QuartusII具有以下特点:支持多时钟定时分析,基于块的逻辑锁 定技术(LogicLock),SOPC(可编程片上系统),内嵌逻辑分析仪(signalTal II), 功能估计器等高级工具;易于分配和时序约束;强大的HDL综合能力:支持 W'mdows、Linux等多种操作系统:支持器件各类众多。本设计采用的是Altem QuartusIl5.0,在软件的层面上完成对USB2.0加密接1:3芯片的设计和验证工作 【8町 o 4基于FPGA的数字系统设计原则 FPGA设计的原则概括如下t面积和速度的平衡与互换原则;硬件原则;系 统原则:同步设计原则【89-a2]。 (1)面积和速度的平衡与互换原则 这里“面积”是指一个设计所消耗的FPGA逻辑资源数数量:对FPGA,可以 用所消耗的角发器和查找表来衡量,用设计所战胜的等价逻辑门数来衡量设计所 消耗的FPGA逻辑资源也是一种常用的衡量方式。“速度”是指设计在芯片上稳定 运行时所能达到的最高频率,这个频率的时序状况决定,怀设计满足的时钟周期 等时序牲量有关。面积和速度在FPGA设计中是一对矛盾,科学的设计目标应该 是在满足设计时序要求的前提下,占用最小的芯片面积,或者是在所规定的面积 下合设计的时序余量更大,工作频率更高,作为矛盾的两个组成部分,面积和速 度的地位是汪样的,相比之下,满足时序、工作频率的要求更重要一些,妙哉两 者冲突时,采用速度优先的原则。 (2)硬件原则 硬件原则主要针对HDL代码编写。首先应该对设计的电路硬件结构与连接 十分清晰,然后再用适当的HDL语句表达出来。理解硬件设计中的“并行”和“串 行”概念,硬件系统比软件系统运行速度快,实时性高,一个重要原因就是硬件 系统中各个单元的运算是独立的,信号流是并行的。 (3)系统原则 43 硕士学位论文 第六章FPGA设计与验证 系统原则包含两个层次的含义:更高层面上看,是一个硬件系统,一块单 板如何进行模块划分与任务分配,什么样的算法和功能适合用FPGA实现,什么 样的算法适合用DSP、CPU实现,或者在使用内嵌CPU和SDP的FPGA中如 何划分软硬件功能,以及FPGA模块估算数据接口设计等。具体到FPGA设计 就要求对设计的全局有个宏观上的合理安排,比如时钟域、模块复用、约束、面 积和速度等问题。一般来说,实时性要求高,频率快的模块适合用FPGA来实现。 (4)同步设计原则 同步时序设计是FPGA设计的最重要的原则之一。同步时序电路:电路的核 心逻辑用各种触发器来实现;其主要信号、输出信号都是由某个时钟沿驱动触发 器产生的;可以减少或避免毛刺现象;利于器件移植,静态时序分析,验证时序 性能。 异步时序电路的核心逻辑是用组合电路实现的,其主要信号、输出信号并 不依赖于任何一个时钟信号,不是由时钟信号驱动触发器产生的,设计的电路容 易产生毛刺,不利于器件移植、静态时序分析和验证时序性能。 虽然异步时序电路可节约面积,但是随着低成本FPGA的流行,器件资源不 再是设计的主要矛盾,而同步时序电路对全面提高设计的频率和稳定性至关重 要,从这个层面上讲,设计时应尽量使用同步时序电路。另外,随着FPGA资源 规模的不断扩大,在FPGA中完成复杂且质量优良的异步时序设计过于费时费 力,其所需要调整的时序路径和附加的相关约束相当繁琐,异步时序方法和可编 程设计理念是背道而驰的。随着EDA工具的发展,大规模设计的综合、实现的 优化效果越来越强,而且目前大多数综合、实现等EDA工具都是基于时序驱动 优化策略的,异步时序电路增加了时序分析的难度,对异步电路很难实现。异步 时序电路增加了时序分析的难度,而且对异步电路而言很多综合、实现工具的编 译会带来歧义,对于同步时序设计则恰恰相反。综上所述,应尽可能采用同步时 序设计。 6.2 FPGA实现及验证 6.2.1验证方法及内容 本课题的硬件验证平台是一块带有PDIUSBDl2接口器件的FPGA实验板, 操作系统是Microsoft Visual XP,开发工具是QuarmsII(FPGA固件开发), Compuware Driverstudio(驱动开发)。目的是用FPGA实验板实现和验证本文所 设计的USB2.0加密接口芯片功能。用实验板和PC之间的USB接口进行数据通 信,来模拟一个硬件加密设备的工作过程,即上位机软件通过USB接口向FPGA 硕士学位论文 第六章FPGA设计与验证 实验板发送数据,在实验板的作用下,实现数据的USB通信和AES自动加密, 并将加密后的数据存储起来。验证的内容包含两个部分:USB2.0通信功能的正 确性和AES加密功能正确性。 (1)USB2.0功能验证 通过JTAG接口将USB2.0加密接口芯片的HDL编译结果下载到FPGA实 验板,通过USB接口将实验板与PC机连起来,上位机安装USB总线驱动程序 和USB开发工具Bus Hound和EZ-USB Control Pannel。准备就绪后,通过上述 两款软件对实验板进行操作和控制,观察数据窗口,记录USB通讯的各项参数, 验证USB通信功能的正确性。 (2)AES加密功能验证 验证平台的准备工作如USB2.0功能验证时所作的工作一样。准备就绪后, 对实验板发送一串数据,然后再用上位机软件读取实验板中存储的数据,将该数 据在上位机上用AES解密软件(AES.Password.Manager.v2.5.0.Crack)对加密存 储的数据进行解密处理,然后将加密前与加密后的数据进行比较,验证AES加 密功能的正确性。 6.2.2验证平台介绍 本文采用红色飓风ⅡI代.百万门级全功能开发平台以及上位机USB、AES 验证软件对系统进行模块级验证和系统级验证。分别对两个功能模块(USB模 块、AES模块)和整个系统进行实体验证。红色飓风ⅡI代实物如图6.1所示。 1 FPGA实验板 ●FPGA芯片:EP2C20F484C8EP2C35F484Cg(Les为1 8,75233,21 6) ·配置芯片:CPLD+FLASH:支持多配置文件选择配置最大支持 16MBxl6bit高速SDARM两片,两片SDRAM并联,形成32位带宽, 最高166MHz读写速度 图6-1 红色飓风III开发平台 45 硕士学位论文 第六章FPGA设计与验证 ·支持最大单片8Mx8Bit快速FLASH读写速度为90ns ·CPLD采用EPM240T100C5,产生配置时序在上电时对FPGA进行配置 视频输入接口视频输出VGA接口 ·USB2.0高速数据接口音频接口 ●9针RS.232串口 ·PS/2鼠标,键盘接口 ●10M以太网RTL8019接口各种基础输入输出设备(16x2标准字符型液 晶模块、4位七段数码管、8位发光LED管、蜂鸣器、8位按键、8位波 码开关) 2 PC机 ●CPU:Intel(R)Pentium(R)4 CPU 2.00GHz ●USB接口:4个USB2.0接口 ●RS232接口:一个 3 USB验证工具 EZ-USB Control Pannel是Cypress公司提供的一款USB硬件调试工作,它 可以用来对USB芯片的功能进行调试。该工具具有良好的用户界面,其主界面 如图6-2所示。该工具提供设备固件的下载,提供向USB设备的命令和数据传 输,支持同步传输、中断传输、批量传输和控制传输,可以实现USB总线的标 准设备请求等,提供数据的显示功能【931。 竺蚓竺到j竺型j竺到竺蚓竺型竺型二些刿兰纠| ■ 一,t 1/r。‘o‘。。‘。' 。-o。。。。。。。‘。—I i =roo‘‘‘。。。o‘—_t 。,‘‘_---。。‘·一-‘■__■■■■__- jI戆叫攀i广———];。鞲黼i盯鬻汀F]i岛麟 F ■■■■■■■■■■_’ ,f.j一■__■_-_-_-一 。 ¨¨I I”‘1·_-_-_-__。_--·J 一 1I一’‘__----__···● .■●_ ≥塑卿黪渖赣溺0xA2隧:翻,,10×oooo}霸霸io×BEE唯塘疆蚓1 6 lim ll IN l ●■■■_■■_■_■_一 ●●■一■__■■■■●_●■-一●-__-●__o■o■■_ 。'-一 ● ,= v●_o-_--_--●o·■■■--_____--__--■-■■■■__‘-_-_-叶f‘---__-_--。-1●__■-___o_-_____---_■■_ ¨ 7“ i爨哟啦}乎暾毒1 0≮萄酶ii 164 圈蔽鼙蛹融|5 哟啤}『:懒州 FbTr黼-!i嘞一,1 1。jj j『j『-;爹i j㈡j¨;i,j 图6.2 USB验证工具 4 AES验证工具 硕士学位论文 第六章FPGA设计与验证 AES Password Manager(如图6—3所示)是~款用于安全存储和管理诸如网 站密码,信用卡号码,PIN代码等机密数据的全功能应用软件。AES Passwords Manager提供了一个带有特权管理支持的可以被多个用户同时地访问的数据库。 该软件可以被安装到可移动设备上(诸如闪存驱动器)并且集成到了Interact Explorer浏览器当中以便利网络表格的填写。 图6—3 AES Password Managerr操4/f界面 5 USB驱动开发工具 DriverStudio是一套用来简化微软Windows平台下设备驱动程序的开发, 调试和测试的工具包。 6.3系统性能测试与验证 在测试验证前,首先必须了解几个硬件实现的性能参数。一个系统结构的优 劣需要通过参数指标来衡量,在密码算法的硬件实现中,最重要的参数是速度和 电路面积。 硬件实现的密码算法中,与速度有关的参数包括吞吐量、带宽和加解密时延。 一般将单位时间内完成加密(或解密)的位数称为加密(或解密)的吞吐量,记 为throughput。通常一个密码算法的加密和解密过程吞吐量差不多,因此加密和 解密的吞吐量可用同一个参数来表示,吞吐量的单位为兆位每秒(Mbit/s)或兆 字节每秒Mbyte/s。而单位时间内完成的加密(或解密)过程的次数则为带宽 (bandwidth),带的单位为珧;加解密时延,用lateney表示,则是指系统完成 一次分组加密(或解密)所需要的时间,单位是11S。 在实际应用中,当需要处理大批量的加密数据时,采用吞吐量可以较好的反 应完成所有的数据处理所需要的时间,因此可以用吞吐量来衡量数据加密的速 度,而当需要处理的数据数量较少,只有几个分组时,则比较适合采用来衡量加 47 硕士学位论文 第六章FPGA设计与验证 密算法的速度。 用硬件密码算法还必须要考虑电路面积问题,与软件实现不一样,在硬件实 现中电路面积直接关系到成本,通常的集成电路设计,若不考虑封装,一般认为 集成电路的成本是与电路的面积是成正比的,同样,在用FPGA芯片布线和可编 程单元的限制,可用的电路面积也是有限的,所以在实际设计中,要尽可能地节 约需要消耗的电路面积,具体实现中,可用基本的可配置逻辑块(CLBs)和相 关的逻辑阵列数量来作为电路面积的衡量指标。 本节将从三个方面着手,对系统性能进行测试和验证。 (1)VerilogHDL描述文件仿真结果 本文以QuartuslI为软件平台对所研究的内容进行验证。选用Alterar的stratix 系列FPGA器件为载体,进行编译和仿真。编译结果如表6—1所示。 表6-1 USB2.0加密接口芯片性能参数 Project Data Family Stratix Device EP 1$20F780C5 Total logic elements 3,44418,460(19%) Total pins 507/587(86%) Total memory bits 40,960/1,669,248(0%) Frequency 307.13MHz 由以上综合编译结果综合分析可以得出,该系统在FPGA上进行验证是完 全可行的,而且它的频率可以达到307.13MHz(结果如图6.4),可以胜任USB2.0 480Mbits/s的实际速度(据文献[53]-[67]描述,加密速度可以达到226.86 MHz)。 翮2 50,300 150 i‘。7 ’套。350 博/。≯ |50哮舡 《咯4∞| 壁i二:.:。垒塑 图6—4时序分析结果 (2)USB通信性能测试 将下载有USB2.0加密接口芯片设计文件的FPGA芯片(以下简称USB设 备)通过实验板上的USB接口接入主机,首先对USB端口进行配置。配置过程 48 硕士学位论文 第六章FPGA设计与验证 分为如下步骤:将设备复位;进行读取设备描述符的控制传输;重新复位;设置 设备地址的控制传输;读取设备配置描述符的控制传输;再次进行读取设备配置 描述符的控制传输。设置设备配置值的控制传输。至此配置过程结束。USB设 备处于可用状态,可以对USB设备进行读写操作。 读取设备描述符控制传输过程中,USB设备控制器与主机之间完成3次数 据往返。首先主机发送SETEUP令牌包,接着发送命令数据包(触发位为0,数 据包标志为DATA0)。USB接收到令牌包与之后的命令数据包后,而要向主机返 回ACK握手包。同时USB设备控制器对命令数据包内的命令进行解码。确定当 前命令为读取状态描述符,将状态描述符送入端点0的RAM中,等待主机发送 IN令牌包读取描述符数据。主机在接收到USB设备发送的ACK握手包后,将 发送酣令牌包,读取描述符,此时USB2.0加密接口芯片将端点O的RAM内数 据返回给主机,SIE将该数据打包(触发位为1,数据包标志为DATAl),主机 在接收到USB设备返回的数据后,需要向设备发送ACK扬包,向USB设备确 认己收到数据。由于RAM长度为8个字,而描述符一般大于该值,所以主机会 连续发送数次的Ⅳ令牌包,以读取完整的设备描述符。期间每一次都要进行完 整的握手处理,以保证数据正确的收发。在描述符成功读取后,进入控制传输的 状态阶段,该阶段下,主机发送OUT令牌包以及一个0长度数据包(触发位为 l,数据包标志为DATAl)给USB设备,设备需要返回一个ACK握手包。至此 一次完整的传输结束。主机成功读取了设备描述符。期间任何一个步骤发生错误 都会导致传输失败。 在设置设备地址的控制传输过程中,首先主机发送SETUP令牌包,接着发 送命令数据包(触发位为O,数据包标志为DArAO)。USB接收到令牌包与之后 的命令数据包后,需要向主机返回ACK握手包。同时USB设备控制器对命令数 据包内的命令进行解码。确定当前命令为设置设备地址。设备地址包含在命令数 据包内,因而该协会我数据传输阶段。当主机接收到USB发送的ACK握手包后, 将开始控制传输的状态阶段:向USB设备发送IN令牌包(该令牌包的地址段仍 使用为更新的设备地址),此时USB设备返回一个0长度数据包(触发位为l, 数据包标志为DATAl),主机接收到这个数据包后,发送给USB设备一个ACK 握手包。此时本次传输过程结束。这时设备地址才按新地址更新。 读取设备配置描述符的控制传输,与读取设备描述符的控制传输基本相似, 不同之处是,当主机发送斟令牌包要求配置描述符时,商战需要返回配置描述 符、配置描述符下属的接口描述符、接口描述符下属的端点描述会。因此端点0 控制器在向端点0的RAM写数据时需要进行控制。这一部分若发生错误将导致 读取配置描述符不成功,配置过程终止。 49 硕士学位论文 第六章FPGA设计与验证 设置设备配置值的控制传输与设置设备地址的控制传输基本相似,不同的是 在USB设备地址设置命令是在控制传输全部结束后才执行,而设置配置值的命 令在USB设备润滑是将命令解码后,便执行。 USB设备控制器配置部分完成后,便可以对USB设备控制器进行读写操作。 本课题使用DriverStudio制作的USB驱动程序,在该驱动程序控制台上可以对 USB设备控制器的管道进行读写操作,并报告操作结果。该测试成功完成。 (3)AES加密性能测试 为了证明系统仿真所执行的算法是AES算法,可以采用高级加密标准开发 文档中所提供的测试数据。这些数据如下: 密钥:287F 1516 28AE D2A6ABF7 1588 09CF 4F3C 明文:3243 F6A8 885A 308D 3131 98A2 E037 0734 密文:3925 841D 02DC 09FB DCll 8597 196A 0832 通过对这些测试数据的仿真,仿真结果同文档所提供的数据是一致的,在 32位数据宽度下,在时钟频率分别是8MHz,25MHz,50MHz,100MHz和300Ⅻz 的情况下,测试结果均是正确的。另外,对其他的密钥和明文进行了测试,测试 内容和结果如下所示。 ●明文={32 43 f6 ag 88 5a 30 8d 31 31 98 a2 e0 37 07 34},密钥={2b 7e 15 16 28 ae 42 a6 ab f7 15 88 09 cf4f3c},密文={39 25 84 ld 02 de 09 fb de 1l 85 97 19 6a 0b 32}。 ● 明文={oo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00l,密钥={oo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 oo},密文={66 E9 4B D4 EF 8A 2C 3B 88 4C FA 59 CA 34 2B 2E)。 ● 明文={FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF},密钥=(oo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 oo},密文={3F 5B 8C C9 3A 85 5AOAFA73 47 D2 3E 8D 664E}。 ● 明文={FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF,,奢罕钥={99 F1 BA 68 6C 59 lD lB E4 5A 13 64 5F B9 CO DC},密文=f96 38 65 32 58 AF ED 28 5A CO E1 85 D5 20 79 D8}。 ● 明文={oo 00 00 00 00 00 00 00 00 00 00 00 00 00 oo},密钥={2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C},密文={7D F7 6B 0C 1A B8 99 B3 3E 42 F0 47 B9 1B 54 6F}。 ● 明文={27 DA BD 46 F9 DA 52 D7 99 67 B7 A0 B3 3A 49 2E},密钥={2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C_},密文={29 00 F4 80 40 27 A7 CB EE 5A 53 AF 6B B8 DF 3F'。 硕士学位论文 第六章FPGA设计与验证 ●明文={27 DABD 46 F9 DA52 D7 99 67 B7A0 B3 3A49 2E},密钥={99 F1 BA 68 6C 59 1D 1B E4 5A 13 64 5F B9 CO DC},密文={E2 DD A2 2F B0 1E CE 67 EF EB 82 45 C8 04 30 88)。 ●明文={27 DABD 46 F9 DA52 D7 99 67 B7A0 B3 3A49 2E},密钥={oo oo 00 oo oo OO 00 00 00 00 00 00 oo 00 oo),密文={8c 31 6D 18 F5 06 75 7A4E 88 F0 70A3 2AOC D4)。 图6.5所示为输入信息={32 43 f6 a8 88 5a 30 8d 3l 31 98 a2 e0 37 07 34),加 密密钥={2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf4f3e}时AES模块的仿真结果, 加密结果={39 25 84 1d 02 dc 09 fb dc 11 85 97 19 6a 0b 32}。该结果显示的是AES 加密过程,其中,text int和text out分别代表原始数据和加密后的数据。具体定 义在4.2.3节中有详细描述。 ㈣☆:j1二;=_一::’;==:、jj一:、一j、~“、j。、=一、=’:一:ji:J“;-一:‘%o::=。。。。j。。_。?二+:::1::“j?·。j一 争- l nF丽i■———————————一 一 羽.9酗40.9埘 ∞.0勰 ∞.9 nl l∞·】P舢120.p皿 !竺上竺 !竺:2竺苎j I-t 峥 clk 乙几 厂]广]厂]广]厂]广]厂]几r11厂]厂]厂]厂]厂]厂]广] 移 妇 广] 毋 团hr H 2耵115l 细唧焚 !i型唧咄珈。姗∞姗咖∞∞ 。‘_1 峥 1d |_ 广 玲 rst 毋 囝text—ia M兹l研BJ i90∞磁 耐 嘲∞∞∞∞∞∞嘲∞∞呻∞∞ 移 团text. M∞唧 细哪珈 瑚哪咖糊嘲煺艇嘲杠肆固陋涸固啦刭回啦强园圃嘲 图6—5 AES仿真结果 将上述加密得到的结果数据用AES Password Manager进行解密处理,解密 后的结果与原始输入信息完全相同,AES加密功能正确。 (4)片上测试 仿真验证设计能够满足系统要求后,就可以将编译产生的.sof文件编程下 载到具体的FPGA芯片中,来测试系统在芯片上是否能够正常工作。片上测试是 借助于开发板来完成的,开发板上的晶振、按钮、开关以及七段数码管方便用户 控制和观察结果。本文采用的是红色飓风III代.百万门级全功能实验板作为验证 平台。 为了便于控制测试,在设计的顶层原理图中添加了三个模块:send data、 FIFO in和FIFO out。Send data的功能是发送数据(密钥和明文),数据是预先 放置的,发送信号send使能后将数据一一送出;FIFO in是一个用于接收数据的 同步FIFO,将发送模块传送来的数据缓存,在write全能信号的控制下,分时向 USB2.0加密接口芯片写入数据,FIFO out是一个用于显示数据的异步FIFO,加 密后的数据自动存放到该FIFO中,该FIFO的写时钟就是板上提供的时钟,该 FIFO的读时钟是一个按钮式的触发时钟,发出读(read)信号后,每按一次触 硕士学位论文 第六章FPGA设计与验证 发时钟的按钮,就会有~个数据读出,通过板上的七段数码管显示出来。 在300MHz时钟频率下,加密测试的数据同仿真得到的数据是相同的,该 系统能够正常工作。 52 硕士学位论文 第七章结论与展望 第七章结论与展望 7.1结论 课题在研究现有加密方案如软件加密、硬件加密狗/加密卡的基础这上,发 现这些加密方案存在着以下几个方面的不足: (1)软件加密速度低、安全性差、不易安装。 (2)加密狗和加密卡功耗高、数据易于获取而且加密速度有很大的提升空 间。 为了解决上述问题,作者提出了一种新的解决方案—USB2.0加密接口芯片, 该方案可以实现USB2.0通信和AES数据加密功能。课题最后,对所设计的方案 进行了FPGA验证。 课题在以下几个方面对USB加密作了改进: (1)单芯片实现 以往的硬件加密设备采用的是多芯片实现方案,即采用独立的USB芯片和 加密芯片实现USB通信和加密功能,本课题设计的方案采用一块芯片实现,在 速度方面和整机功耗方面有了很大的改进。 (2)调整加密位置 加密狗/力口密卡是将加密功能通信功能独立实现,本课题将加密位置设置在 USB模块的协议层和数据接口之间,即在数据从接口输出之前进行加密处理, 这样流出的数据都是经过加密的数据,避免如加密狗/力口密卡可以在USB芯片之 后泄露数据的弊端。 (3)提出并设计了AESUSB缓冲器 AESUSB缓冲器用于协调AES加密模块与USB通信模块之间的有效工作。 (4)优化AES有限域算法及其FPGA实现 优化AES算法,减少算法消耗的资源。 通过前面几个章节的介绍,可以得出以下结论: (1)速度方面 USB2.0的在高速模式下的理论通信速度是480Mbps,本课题设计的USB2.0 加密接口芯片通过软件仿真测试可得整机速度为307Mbps,比常规加密设备的速 度(200Mbps左右)有了很大的提高,虽然同USB2.0理论通信速度仍有一定差 别,但是已经可以满足现有的实时加密作业了。 (2)安全性方面 硕士学位论文 第七章结论与展望 本课题采用单芯片模式将USB通信功能和AES加密功能集成到同一块芯片 中实现,在物理结构方面避免了如加密卡/N密狗等多芯片加密结构存在的芯片 间数据的泄漏,而且将数据加密过程设置在USB通信模块的协议层与数据接口 之间,彻底切断了数据窃取的途径,极大地提高了数据的安全性。 (3)加密稳定性 本课题在FPGA上进行了USB2.0接口芯片的验证,经过多次加密过程的测 试,最终得出该加密过程是稳定的按照AES加密算法进行的,但是在测试的过 程中,作者采用了多组加密频率对其进行测试,当频率超过400MHz的时候,加 密稳定性就会有所下降,使得整个加密系统的速度受到了限制。 7.2展望 课题实现了USB加密的单芯片设计,达到了预期的加密和通信目的,但是 在速度、加密稳定性以及系统功能方面仍有着改进之处。在该本课题的的基础之 上,可以从下几个方向进行延伸研究。 ·换一种加密算法。 ·设计上位机软件,与加密芯片配合完成加密任务 ·深入研究芯片结构,进一步提高芯片加密通信的速度,实现系统性能的 最优化。 硕士学位论文 参考文献 参考文献 【1】罗岚,魏正耀.范明钰,张涛,瞿泽辉。分组密码算法芯片的模块保护设计川.信 息安全与通信保密,2006,(07):55.57. 【2】吕永其.高速分组密码芯片设计技术【J】.通信技术,2002,(07):27.30. 【3】洪伟.2001年IEEE MTT-S介绍叨.微波学报,2001,(03):33.37 【4】袁朝晖.IEEE 1394接口介绍和常见故障处理【J】.广播电视技术, 2007,(2):121-125. 【5】田志刚,周克生.蓝牙TCS协议介绍阴.无线电工程,2001,(11):15.17. 【6】李爽,赵琛.蓝牙技术介绍及前景展望【J】.中国数据通信,2001,(1 1):57.61. 【7】张全林,刘雅辉,李勤,祝跃飞.AES加密机制在IPSee协议中的应用研究【J】.计 算机工程,2006,(02):156.158. 【8】金晨辉,孙莹.AES密码算法S盒的线性冗余研究田.电子学 报,2004,(04):639-641. 【9】胡斌,金晨辉.AES算法S盒中的等价线性变换阴.计算机工程与应 用,2005,(22):70-72. 【10】叶世芬.安全芯片物理防护研究【D】.浙江大学2005,(09):2.15. 【11】沈涵飞,甘萌.Rijndael加密算法在低成本FPGA上的实现阴.计算机工程与应 用,2004,(22):116—119. 【12】董长虹.移动安全锁【J】.中国计算机用户,2001,(33):48. [13】吕晓斌,杨峰,赵志新.基于FPGA的AES密码协处理器的设计和实现【J】.微 电子学与计算机,2005,(05):36.38. 【14]Kaur S,Vig R Efficient implementation of AES algorithm in FPGA device【J】. 1NTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND MULTIMED认APPLICATIONS,2007,(03):179-187. 【15】董长虹.移动安全锁【J】.中国计算机用户,2001,(33):48-50. 【16】吕晓斌,杨峰,赵志新.基于FPGA的AES密码协处理器的设计和实现【J】.微 电子学与计算机,2005,(05):36.38. 【17】董洪波,范明钰,张九华.AES算法介绍和硬件设计【J].广西师范大学学报, 2005,(01):11-13. 【18】崔灵果,曹元大,许丽艳.AES线性层分析及扩散特性仿真[J】.计算机工程与应 用,2005,(13)., 【19】胡斌,金晨辉.AES算法S盒中的等价线性变换[J].计算机工程与应用, 2005,(22). 【20]李金花,周大水,李大兴.AES算法在DSP中的实现及优化川.计算机工程, 硕士学位论文 参考文献 2004,(12). 【21】周轶男,李曦,冯朝阳.高速全并行的AES加解密算法在单片FPGA上的实现 叨.计算机应用,2004,(22). 【22]陆浪如,匡友华,杨强浩,高山.AES算法的FPGA实现叨.交通与计算机, 2001,(05). [23]龚晶,邓元庆.AES与Camellia算法性能比较阴.计算机应用与软件, 2005,(11). 【241陈海进,刘炎华.AES算法的C语言实现及测试向量生成[J】.南通工学院学报, 2004,(03). 【25】吕晓斌,杨峰,赵志新.基于FPGA的AES密码协处理器的设计和实现[J】.微 电子学与计算机,2005,(05). 【261钱松,周钦,俞军.AES算法的一种高效FPGA实现方法川.微电子学与计算 机,2005,(07). 【27]黄小苑,戴紫彬.基于FPGA的AES算法芯片设计实现【J】.微电子学与计算 机,2005,(08). 【28]Chang,Huang CW,Tai HY.AES FPGA implementation using block ghM[J]. ELECTRONICS SOCIETY,2007,(05):2654-2659. 【29]Aziz八Ikram N.Memory efficient implementation of AES S-BOXES on FPGA[J].JOURNAL OF CIRCUITS SYSTEMS AND COMPUTERS, 2007:603.61 1. [30]Huang CW:Chang CJ,Lin,MY The FPGA implementation of 1 28一bits AES algorithm based on four 32-bits parallel operation[J].ROCEEDINGS OF THE FIRST INTERNATIONAL SYMPOSIUM ON DATA,2007:462-464. 【3 1]Chang CJ,Huang CW'喇HY.8一bit AES implementation in FPGA by multiplexing 32一bit AES operation.PROCEEDINGS OF THE FIRST INTERNATIoNAL SYMPOSIUM ON DATA,2007,(1 4):505-507. 【32]Liberatori M,Otero F Bonadero.AES-128 cipher Hi曲speed,low cost FPGA implementation[J].2007 3RD SOUTHERN CONFERENCE ON PROGRAM~【ABLE LOGIC,.2007,(12):195—198. 【331董洪波,范明钰,张九华.AES算法介绍和硬件设计【J】.广西师范大学学报(自然 科学版),2005,(01). 【34]崔灵果,曹元大,许丽艳.AES线性层分析及扩散特性仿真【J].计算机工程与应 用,2005,(13). 【351胡斌,金晨辉.AES算法S盒中的等价线性变换川.计算机工程与应用, 硕士学位论文 参考文献 2005,(22). 【36]李金花,周大水,李大兴.AES算法在DSP中的实现及优化【J】.计算机工程, 2004,(12). 【37]周轶男,李曦,冯朝阳.高速全并行的AES加解密算法在单片FPGA上的实现 【J】.计算机应用,2004,(s2). 【38]陆浪如,匡友华,杨强浩,高山.AES算法的FPGA实现明.交通与计算机, 2001,(05). 【39]龚晶,邓元庆.AES与Camellia算法性能比较叨.计算机应用与软件, 2005,(11). 【40】陈海进,刘炎华.AES算法的C语言实现及测试向量生成叨.南通工学院学报 (自然科学版),2004,(03). 【41】吕晓斌,杨峰,赵志新.基于FPGA的AES密码协处理器的设计和实现叨.微 电子学与计算机,2005,(05). [421钱松,周钦,俞军.AES算法的一种高效FPGA实现方法[J】.微电子学与计算 机,2005,(07). 【43]黄小苑,戴紫彬.基于FPGA的AES算法芯片设计实现阴.微电子学与计算 机,2005,(08). 【44]Perez,O;Berviller,Y;Tanougast.C,et a1.The use of nmtime recontiguration on FPGA circuits to increase the performance of the AES algorithm implementation[J].JOURNAL OF UNⅣERSAL COMPUTER SCIENCE.2007: 349.362. 【45】Jing,MH;Chen,ZH;Chcn,JH,ct a1.Reconfigurable system for high·speed and diversified AES using FPGA[J].MICROPROCESSORS AND MICROSYSTEMS.2007:94.1 02. [46]Liberatod,MC;Bonadero,JC.AES一128 cipher.Minimum area,low cost FPGA implementation[J].LATIN AMERICAN APPLIED RESEARCH,2007:71—77. 【47】储奕锋.AES算法的FPGA实现叨.电脑知识与技术,2007(4):191-193. 【48】刘珍桢.AES加密算法的一种优化的FPGA实现方法【J】.现代电子技 术,2007(12):103—106. [49]梅迎春.基于AES一128的高性能智能安全卡的设计与实现阴.计算机应用研 究,2005(4):1 57—1 58. 【501韩煜,邹雪城,刘政林,陈毅成.AES硬件实现的能量分析攻击仿真[J】.微电子学 与计算机,2007(12):47.54. 【5l】刘鸣,陈弘毅,白国强.功耗分析研究平台及其应用【J】.微电子学与计算机,2005 硕士学位论文 参考文献 (’7).134。138. 【52]黄小苑,戴紫彬.基于FPGA的AES算法芯片设计实现【J】.微电子学与计算 机,2005(8):62-64. 【53]高峻,李订芳.AES算法的改进用法及其在数据库加密中的应用【J】.中南民族大 学学报(自然科学版),2002(4):67.69. 【54】阮晔,张学杰.一种基于FPGA的AES算法的低功耗实现【J】.云南大学学报(自 然科学版),2007(29):254.258. 【55]郑志安,夏国荣.基于FPGA的高级数据加密AES中的字节替换设计【J】.国外电 子元器件,2005(8):57.59. 【56]唐明,张焕国,刘树波,赵波.AES的高性能硬件设计与研究【J】.计算机工 程,2006(8):257—259. 【57]李雪梅,路而红,欧海文.AES算法的快速硬件设计与实现【J】.电子技术应 用,2006(5):48.50. 【58】李雪梅,欧海文,路而红,童新海.基于FPGA快速AES算法IP核的设计与实现 【J】.计算机工程与应用,2006(24):84-86. 【59]蒋伟荣.EDA设计中流水线技术的应用阴.湖北汽车工业学院学报,2000 【60】郭书军,王玉花.流水线技术在FPGA设计中的应用【J】.北方工业大学学报,2004 (1):63—70. [6l】陆浪如,匡友华,杨强浩,高山.AES算法的FPGA实现【J】.交通与计算机, 2001,(5):14—17. 【62]夏劲伟,高俊芳,曹秀英,吕俊怀.AES加密算法在AP中的设计和实现[J】.电子 科技,2006(12):39-44. 【63]赵波,刘树波,唐明,陈谨.基于大规模集成电路的AES密码计算的实现阴.计 算机应用,2004,(6):1 9.20. 【64】肖良军,江波.流水线技术在高速数字电路设计中的应用[J】.压电与声 光,2003(5):422-424. 【65]张树春,刘成安.基于USB总线的FPGA与PC机接E1通信的实现[J】.微计算机 信息,2005(4):202.203. [66]支wJ杰,牛燕雄,董伟,刘佳栋.基于USB总线的PC机与FPGA通信系统设计[J】. 兵工自动化,2007(8):85.86. [67】王晶晶,黄克强.基于USB总线的FPGA主控多功能测试系统阴.机电工 程,2007(3):71.73. 【68]张秀艳.基于FPGA的神经网络硬件实现中的关键问题研究【J】.科技情报开发 硕士学位论文 参考文献 与经济,2005(5):273.275. 【69]朱光磊,和敬涵.基于ARM和FPGA的圆网印花机控制器的实现[J】.科技创业 月刊,2005(2):1 52—1 54. 【70]吴爱平,熊晓东.基于FPGA的测井信号分离卡的设计叨.石油仪器,2005 (5):17—19. 【711/司敏,付慧生,李雪峰.基于流水线的RISC微处理器设计[J】.大众科 技,2006,(5):55.57. 【72]廖日坤,张立民,金镇.基于FPGA技术的AC.Link数字音频编/解码的VHDL 设计川.广西师范大学学报,2005,(1):54.57. 【731马文华,甘达.FPGA在数字相位差测量仪中的应用【J】.广西师范大学学 报,2005,(1):1 02-1 05. 【74]杨鸿珍,徐元欣,王匡.基于USB接口的实时双向数据流传输叨.计算机工程, 2005,(1 0):223—225. 【751浏波,钟子发,叶春逢.基于CPLD的USB2.0控制系统接口电路的设计与实现 叨.舰船电子对抗,2006,(7):42-46. 【76]雍尚刚,邓龙江,朱向东.USB设备控制器口核系统设计及FPGA实现叨.计算 机工程与科学,2005,(12):86.89. 【77】阮利华,王祥,黄全平.USB2.0接口IP核的开发与设计川.复旦学报, 2005,(2):173—177. [78]赵志勇,候继光,浦晓波,沈林.USB2.0通信接口的设计叨.网络信息技 术,2005,(3):56.57. 【79]张春树,刘成安.基于USB总线的FPGA与PC机接口通信的实现【J】.微计算机 信息,2005,(4):202-203. 【80]周芳,基于FPGAR的USB接口读写设计【J].安微工业大学学报,2006,(1):76.79. 【8l】武甲东,梅张雄,张志敏,陈新华.USB主机控制器端串行接121引擎IP的实现[J】. 微电子学与计算机,2005,(2):35.38. 【82]萧世文.USB 2.0硬件设计[M】.北京:清华大学出版社,2002:101.104. 【83】阿克塞尔森,陈逸.USB主机控SfJ器[M].北京:中国电力出版社,2001:76.78. 【84]周立功.USB2.0与OTG规范及开发指南[M】.北京:北京航空航天大学出版 社,2004:89.91. [85】李英伟,王成儒,练秋生.USB2.0原理与工程开发[M】.北京:国防工业出版 社,2007:153.155. 【86】胡晓军,张爱成.USB接口开发技术【M】.西安:西安电子科技大学出版 社,2005:26.27. 硕士学位论文 参考文献 [87]张宏.USB接口设计[M】.西安:西安电子科技大学出版社,2002:89.97. 【88]DonAnderson.USB系统体系【M】.北京:中国电力出版社,2001:129.132. 【89】冯登国,裴定一.密码学导引【M】.北京:科学出版社,1999:99.103. 【90】陶仁骥.密码学进展[M】.北京:科学出版社,1992:165—172. 【9 1]Kahate,Atul.Cryptography and network security[M].北京:清华大学出版 社,2005:76-82. 【92]Stallings,William.密码学与网络安全:原理与实践【M】.北京:清华大学出版 社,2002:99.1 02. 【93】向海涛,郑加强,周宏平.基于机器视觉的树木图像实时采集与识别系统[J].林 业科学,2004,(3):121.129. 硕士学位论文 致谢 致谢 在此论文完成之际,我要衷心地感谢那些曾经关心过我和帮助过我的人, 不论在学习中还是在生活当中,如果没有他们为我排忧解难,就不会有我今天的 我。 首先要感谢我的导师蒋礼教授,本论文是在他的亲切关怀和细心指导下 完成的。从论文的选题,查阅文献,实验操作到文章的撰写和修改先后得到蒋老 师不厌其烦,一丝不苟的不遗余力的指导和教诲。同时在研究生学习的三年中蒋 礼老师严谨的治学态度、平易近人的待人处世方式和渊博的学识使我永生难忘并 将永远是我学习的榜样。在此,谨向蒋老师致以最崇高的敬意和衷心的感谢! 同时,在攻读学位期间,本人得到尹林子,邓宏贵,丁家峰等诸位老师 的热心帮助和指导,在此表示谢意! 感谢曹祥、杨科灵、向可、吕良飞、陈晓敏等同学给我带来的帮助和快乐, 是他们的欢声笑语,合我的研究生生活丰富多彩。 感谢我的爸爸、妈妈、刘蓓蓓是他们在背后默默地支持和鼓励,是他们的期 望时刻激励着我,给我力量,让我一往无前,才使我能够顺利完成学业,没有他 们就没有我的今天! 最后愿所有关心和帮助过我的人和我关心和帮助过的人一生平安幸福1 王文杰 2008年4月于中南大学 61 硕士学位论文 致谢 攻读学位期间主要的研究成果 公开发表的学术论文: 1)王文杰.加密USB2.0接口芯片的设计及验证.微计算机信息.2008年 2月26录用. 2)徐富新,刘蓓蓓,刘碧兰,王文杰,吴承德,谭司庭.基于IMAQVision 的数字式全景钻孔摄像图像的处理.<
/
本文档为【USB2.0加密接口芯片的设计及其FPGA验证】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索