您的位置 首页 分销

拿来即用,指纹识别保密体系完好解决方案

我们的目 标是要制作这样 一个作品:作品在 整个系统中 类似一个读卡器 ,PC无需安装任何驱动和程序,U 盘无需做任何改动,针对不同厂家的 U 盘,不同的操作系统(本身插上普通 U 盘能工作),作品要

1 著作布景

1.1 需求概述

在信息技能日新月异的今日,人们在享用前进的一起,也要遭受越来越多的数字危机。U盘, 因为其 具有容量大、体积小、价格便宜等许多长处 ,已成为人 们移动存 储的首选设备。因而 U盘的数据安全问题也日益显露水面。世界各地关于 U盘数据走漏的事情层出不穷,既有企业私家的,也有政府军方的。

1.2 现有安全计划调研

U 盘安全问题早已引起人们的重视,各大 U 盘制造厂家也都纷繁拿出自己的处理计划,经过调研,咱们对市场上现有的 U 盘保密计划进行了如下总结。

在 U 盘市场上,近来又呈现了依据指纹辨认身份认证技能的产品,硬件上添加了指纹辨认模块,但仍会依托一段在 PC 上履行的程序,这段程序或预先装置在 PC 上,或来自 U 盘上的某块存储区域,国内代表作是亚略特系列 U 盘。除了处理了无需手动输入暗码外,软硬结合计划的其他缺陷仍旧没有处理。

表 1-1 现 有解 决方 案比 较

处理计划

计划简述

长处

缺陷

代表产品

机械办法

选用机械设备

锁住 USB 插头

通 用

性好

安全性差

不常见,只找到一款

日本产品

软件办法

经过在 PC 上运

行的软件程序

对磁盘分区或

文件进行加解

代 价

低,硬

件 上

无 需

做 变

1 通用性欠安,一般各厂家软件都不同,通用的软

件,如高强度 U 盘文件夹加密,只能做到文件加

密层次,安全性低于磁盘的分区加密。

2 遭到 PC 病毒要挟。

3 手动输入暗码位数有限,安全强度不高。

4 占用 PC 资源,加解密速度受限。

清华紫光系列

软硬结合

办法

将本来放在 PC

上运转的程序

存放到 U盘中,

插上后上传到

PC 履行

无 需

在 PC

上 安

装 软

1 通用性欠安,各 U 盘厂家因为各自硬件不同完结

办法也不同,且 U 盘硬件需改动,这种计划对老 U

盘束手无策。一般只能运转于 Windows XP/2000

体系。

2 安全强度不知道,厂家一般都未发布自己的加密方 念

案和所用加密规范。

3 仍依托于在 PC 上履行的程序进行操作,仍旧受 PC

病毒的要挟。

4 主流产品仍旧靠键盘输入暗码。

Kingston 08 鼠年岁

版, 台电 加密 大

师 U 盘

1.3 处理计划

咱们的目 标是要制造这样 一个著作:著作在 整个体系中 类似一个读卡器 ,PC无需装置任何驱动和程序,U 盘无需做任何改动,针对不同厂家的 U 盘,不同的操作体系(自身插上一般 U 盘能作业),著作要有必定的通用性(最起码理论上要可行)。由指纹发生密钥,选用公认安全的加密规范 ,快速加解密,终究抵达令人可以承受的传输 速率。无需上传任何程序至 PC 运转。

2 功用与方针

本著作衔接在电脑 USB 接口与 U 盘之间,经过解析USB 协议,提取出需求加密的部分,对其进行加解密后置换,再转发。暗码由用户的指纹特征数据经过处理后发生。

本著作对整个 U 盘进行加密(归于磁盘加密中的分区加密,相对文件加密而言安全度将更高)。加密后的 U 盘直接插在电脑上或输入的指纹不正确时,盘内数据将无法被拜访。

为完结友爱的用户操作界面,著作作业流程选用导游式。著作给用户供给三个按钮、一个作业办法挑选开关来对其进行操控。供给两种作业办法:1)正常作业办法——流程中没有添加指纹、删去指纹的操作;2)办理作业办法——在进入正常作业办法前,用户可以进行添加、删去指纹的操作。经过 LCD 向用户供给操作提示信息。

本设备选用硬件办法完结了高速、高强度的加密规范—AES,具有高指纹辨认率,抵达全速 USB 设备传输速 率规范。一起本设备相对 U 盘、PC,是一个独立的设备,有很好的通用性,适用大都 U 盘和操作体系。

3 体系计划

3.1 体系框图

图 3-1体系全体示意图

本著作在 Xilinx Spartan3E FPGA 芯片 XC3S500E 上建立以 Microblaze 软核为中心的微处理器体系,在 Spartan3E Starter Kit 开发板外扩展 USB 接口电路和指纹模块,结合开发板上的丰厚资源来构成整个著作的硬件部分。其间 AES 算法在 FPGA 片内用 VHDL 完结。USB 协议解析、磁盘加密、密钥生成等软件部分经过为 MicroBlaze 处理器编写 C 代码完结。

整个 体系框图 如图 3-1 所示, 其间,虚 框内微处 理器系 统和加解 密模块在 开发板上 的FPGA 芯片内完结,指纹模块、USB 接口电路则在自行规划的外部电路板上完结。硬件开发渠道为 Xilinx Spartan3E Starter Kit 开发板,首要开发软件 ISE 9.1i 和 EDK 9.1i。

3.2 USB 接口计划

本模块电路以两片 MAX3421E 芯片为中心,别离与 PC、U 盘相连。USB 协议由底层到高层分为电气层、设备层、功用层,MAX3421E 可以完结从电气层到设备层数据的转化,然后使微处理器体系可以在设备层以上操作。该芯片内部不包含微处理器核。

现在市场上的 USB 接口芯片品种繁复,功用和运用场合各异,从 USB1.0 到 USB2.0,从主、从单功用操控器到主从集成操控器,从 带单片机核到功用单一的纯 USB 接口芯片。要在这么多的芯片中挑选一款适宜本体系的芯片有必要经过如下的挑选:

1) 支撑全速办法的传输,波特率抵达 12Mb/s。

2) 片内不带有单片机核的单一 USB 芯片,因为在本体系中 FPGA 将作为中心操控器,

不该该有过多的单片机介入处理。

3) 最好有两种办法的集成以便挑选,能别离供给到 PC 和到 U 盘的接口功用,即兼容

USB 主机和外设两种模 式。

4) 接口芯片与操控器之间最好运用串行通讯,约名贵的操控器 I/O 资源。

5) 外观上要尽量细巧,便于产品的小型化。

依据以上的五点,咱们将挑选的焦点放在了 Maxim 公司出产的 MAX3421E 上,它彻底契合以上要求,是一款微处理器独立的 USB 接口转化处理计划,具有最大频率高达 26MHz的 SPI 接口,装备收发各有 64Byte 的双缓冲,有助于进步 USB 的传输速率。芯片选用 5mm×5mm 的 TQFP 封装,有利于产品的小型化。

3.3 微处理器体系

微处理器体系选用 Xinlinx 公司推出的 32 位处理器 IP 软核 MicroBlaze 作为CPU,这是最适合本开发渠道的处理计划。MicroBlaze 支 持 CoreConnect 总线的规范外设调集,具有兼容性和重复运用性。

规划中 Microblaze 经过 OPB 总线和相应的接口转化 IP 核衔接运用片表里硬件资源。

微处理器体系经过 SPI 总线与指纹模块通讯,取得指纹特征数据。

微处理器体系经过 SPI 总线与 USB 接口电路相连,解析并操控流经著作的数据流。

微处理器体系和加解密模块之间经过并行 GPIO 接口通讯。

考虑到 FPGA 片内资源有限,指纹模块内部完结了指纹收集、指纹图画的预处理、特征提 取、存 储读取 指纹特 征数 据、匹 配等算 法。 能呼应 微操控 器系 统的注 册、删 除、 辨认验证、传输存储的特征数据等指令。

在挑选指纹传感器类型 时咱们的调研成果如表 3-1,最终确认选用 射频原理指纹传感器AES2510,其能收集辨认 真皮层指纹,对各种指纹类 型适应性强,处理了人工 假指纹问题,添加了安全性。选用刮擦式规划,面积更小,本钱更低,且能收集到足够大的指纹图画。

选用运算功用微弱的 DSP 芯片 TMS320VC5416 作为中心操控处理芯片,外接 Flash、DDR芯片构成模块固件履行和存储数据的硬件渠道。 向微操控器体系供给 SPI 接口通讯。

表 3-1 各 品种 型指 纹传 感器 比照 表

收集技能

贴膜光学

不贴膜光学

电感%&&&&&%压感

热敏

射频

人工指纹的判别才干

很坏

较好

手指辨认率

较好

较好

脏手指辨认率

较好

油手指辨认率

较好

较好

较好

白叟辨认率

较好

较好

气候改变适应才干

较好

较好

抗轰动适应才干

抗静电适应才干

外表耐磨

较好

温度规模

0-40℃

0-40℃

-5~40℃

夏天不能运用

-30~70℃

3.5 密钥生成

著作中密钥生成算法选用 ANSI X9.17 规范。之所以挑选 ANSI 9.17 算法来将指纹特征数据转化为密钥,首要有两点原因:1)著作中现已完结了 AES 加密模块使得该算法完结十分便利;2)相对研讨进程中咱们曾运用过的 SHA512 算法而言,该算法有用地减少了代码量和履行价值,节省了空间。因为 FPGA 片内答应的最大代码量为 32K,若超越 32K,就得将代堆放至片外 DDR 中履行。这样的缺陷是程序履行速度相对片内将大大变慢,此外,FPGA 装备、程序主动加载到 DDR 中履行也将是个问题,一是 需编写 Bootloader 程序,二是 DDR 耗费资源较多,大约占 20%片内资源(在本著作开发渠道上),在本著作现有架构上加上 DDR 之后底子没有资源再加挂一个 Flash,故 Bootloader 程序也无法编写和运用 。

3.6 加解密模块

加解密模块选用 AES 算法,经过 VHDL 规划的数字电路完结。该模块从 MCU 体系取得密钥和明(密)文,处 理后回来密(明)文。因为选用硬件电路完结,因而 可以取得很高的作业速度,一起也使 FPGA 中剩下的逻辑资源得到了充沛的运用。

在规划该模块电路及其 通讯协议时,还充沛考虑了其移植性,密钥扩展和加 解密模块是可以别离的,因而 在某些逻辑资源受限景象下,可以将密钥扩展部分放到微 处理器体系中以软件办法完结,而不影响整个模块的作业速度。

在规划该模块时亦重复 权衡了作业速度与资源耗费两个方针,在资源答应的 状况下尽量

进步作业速度。

3.7 USB 协议解析及磁盘加密


图 3-2系 统加 解密 协议 栈到


图 3-2 描绘的是整个体系对 USB 数据的处理进程。USB 接口芯片 MAX3421E 经过衔接PC 的 USB 接 口 获 得 底 层 的 差 分 数 据 信 号 , 对其 进 行 转 化 , 利 用 SPI 总 线 接 口 向MicroBlaze 体系提交解析后的数据包。然后 MicroBlaze 进行后续向上的进一步解析。在 SCSI层解分出的数据包是要写入到 Flash 中的数据块、地址及其数据长度等信息。调用 AES 模块,对 数 据 加 密 , 之 后 把 它 按 照 加 密 前 的 方 式 转 发 , 在 物 理层 再 次 通 过 工 作 在 主 机 模 式 的MAX3421E 发送给 U 盘。

4 完结原理

本章将环绕图 3-2 做详细的论述。

4.1 USB 物理、设备层解析

有四种 packet(令牌、帧开端、数据包和握手)进入 MAX3421E,经过读取 MAX3421E的寄存器可以取得以上四种 packet 的信息,将它分为装备数据和传输数据别离处理。装备数据是 PC 操控 U 盘的,流向只可能从 PC 至 U 盘,而传输数据则是双向的。要从这些数据中区别出哪些数据是即将被存到 Flash 中的,哪些是操控 U 盘操作的。关于那些操控 U 盘操作的数据,MicroBlaze 直接转发给 U 盘,而从 Flash 读来的或许是要写到 Flash 中的数据就需求进行加解密再转发。

从主机发来的数据包依据它们不同的类型发往不同的 USB 端点。USB 端点是 USB 设备特有的一种硬件的接纳发送单元。USB 主机与 设备之间都是经过端点来传输数据的。端点是桥 梁 和 枢纽 , 不 同的 端 点 其传 输 数 据 的能 力 不 同, 适 于 不 同的 应 用 场合 。 在 Bulk OnlyTransportation 的海量存储完结规范(见 4.3 节)中,运用了三个端点,他们别离是操控端点、数 据输出 端点和 数据输 入端 点。控 制端点 可以 用于控 制指令 的输 出,配 置信息 的输 入和输出,它一般表明为 0 端点,这个端点的流向是双向的,不会呈现 STALL 的状况,它担任设备的装备交互,最大 信息包 64 字节。输入输出端点担任数据的输 入、输出,他们都是单向的只能担任输出或许输入,最大信息包 64 字节(USB 全速设备)。

表 4-1 B OT 端点 的属 性

端点

传输类型

端点类型

传输方向

最大传输包

0

操控输入

操控输出

默许

输入

输出

64Byte

1

数据输出

一般

输出

64Byte

2

数据输入

一般

输入

64Byte

4.2 USB 的枚举进程

枚举进程界说为:当设备刺进体系时,主机对设备进行装备,获取 USB 设备的各种描绘(包含设备描绘、装备描绘、Bulk Only 数据接口描绘、Bulk-In 端点描绘、Bulk-Out 端点描绘和字符描绘),这也便是 USB 设备为什么可以热插拨的原因。USB 设备可分为以下几类:显现器、通讯设备、 音频设备、人机输入、海量存储„„特定类的 设备又可划分红子类。枚举使得主机可以准确认位 USB 设备类型,搜 索相应的驱动程序。

通用海量存储设备(General Mass Storage Device)的设备描绘中,不同的 U 盘在某些详细的字段会具有不同的值。关于不同的字段值,在程序中采取了相应的措施以进步 U 盘的兼容性。USB-IF 引荐 运用批量传输(Bulk-Only Transportation)办法,所以 咱们的体系也将选用批量传输办法。

4.3 批量传输协议(Bulk-Only Transportation Protocol)

在完结 U 盘的枚举进程之后,辨认出为 Bulk-Only 的 Mass Storage 设备,然后即进入Bulk-Only 传输办法。 在此办法下,PC 与 U 盘之间一切数据均经过 Bulk- In 和 Bulk-Out 来进行传输,不再经过操控端点传输任何数据。

图 4-1指令 、数 据 、状 态流程 图

在这种 传输办法下,有三品种型 的数据在USB 和 设备之间传送,CBW、CSW 和一般数据。CBW(Command Block Wrapper)是从 USB Host 发送到设备的指令,指令格局遵照接口中的 bInterfaceSubClass 所指定的指令块,这儿为 SCSI 传输指令集。USB 设备需求将 SCSI指令从 CBW 中提取出来,履行相应的指令,完结今后,向 Host 宣布反映当时指令履行状况的 CSW(Command Status Wrapper),Host 依据 CSW 来决议是否持续发送下一个 CBW 或是数据。Host 要求 USB 设备履行的指令可能为发送数据,则此刻需求将特定数据传送出去,结束后宣布 CSW,以使 Host 进行下一步的操作。USB 设备所履行的操作可用图 4-1 描绘。

在流程图中包含了三种办法的数据包,USB 的设备层一致将他们当作数据,不加区别的进行传输,而在功用层上才开端区别这三种不同办法、不同功用的数据包。

4.4 SCSI 指令(Small Computer Systems Interface Block Commands)

在 4.3 节中介绍的 BOT(Bulk-Only Transportation)协议的 CBW 数据包中有一个长度为 6到 12 不等的字段 CBWCB,其传输的便是 SCSI 指令。

表 4-2 MSC 基 本 S CSI 命 令集

INQUIRY

指令描绘查询设备的详细信息,如出产厂家、序列号等

READ CAPACITY(10)

READ(10)

REQUEST SENSE

TEST UNIT READY

WRITE(10)

读取 Flash 容量,扇区巨细以及总扇区数

输入要读取的数据,从 Flash 读出

恳求判别,用于发生错误时体系自我纠正

测验单元预备,电脑经过此指令坚持 U 盘一向处于激活状况

供给 Flash 地址,向 Flash 写数据

SCSI指令集是 一套可以完结 对一般外接存 储体系设备 的存取、装备 、检查等使命 的齐备指令 集。SCSI拥 有的这套指令 集有许多指 令,不同的 版别别离用 在光驱、硬盘、 软驱等设备的操控中,表 4-2 列出的 6 条指令现已可以彻底完结 USB 存储设备的操作了,这一特性大大减小了设备规划的难度与复杂度。Bulk-Only 的 CBW 中的 CBWCB 字段便是对以上这些指令的描绘。

4.5 依据 CBC-ESSIV 办法的磁盘加密机制

在曩昔的许多年里用户 数据的维护大多停留在文件等级的加密技能上,而磁 盘加密技能一向因为软硬件上的瓶 颈而止步不前。跟着核算机理论以及硬件的飞速发展 ,现在的核算机运用者,不管是专业人 员仍是一般用户,在挑选自己的加密手法 时则愈加倾向于磁盘加密。

一是因为磁盘加密可以 经过高速的硬件完结通明拜访;二是可以在磁 盘加密的基础上再运用文件加密,然后抵达两层加密的高强度加密作用。

在加密办法上,毋庸置疑 AES 一向被用在了磁盘加密上,不仅仅因为它的安全功用,更因为 AES 是一种很好的剖析加密算法。可是在加密办法上一向存在必定的问题。一般的 ECB办法因为它的逐个对应简略遭到水印进犯(watermarking attack),而 CBC(Cipher Block Chain)式一向以来是众 多办法中运用最为广泛的加密办法,即便是在某些方面存 在一些缺乏。归纳考虑各种因素,CBC 依然具有多方面的优越性。

在一块可以扇区寻址的 Flash 或许硬盘上,一般一个扇区的巨细为 512Byte,那么一个扇区 所需 要 的 AES 加 密 次 数 为 32 次 。 这 32 次 加 密 我 们 就 使 用 CBC 模 式 完 成 , 由ESSIV(Encrypted Salt-Sector IV)算法生成 IV(In itiation Vector)初始化向量。

经过其间 H (k ) 是由密钥生成的散列。因为 IV 的生成涉及到暗码 k 的介入,所以 IV 的不行猜测性很大程度添加了破解的难度。

4.6 FAT 文件体系

FAT 文件体系包含 FAT16 和 FAT32 两种,他们别离运用在不同巨细的 U 盘中,有的 U盘两者都可以运用,但 是依据簇的巨细以及寻址的位数,在不同容量的体系 中,他们会体现出不同的磁盘功率。

图 4-3FAT 文件 体系

如图 4-3 所示,FAT 首要有四部分组成:DBR (DOS Boot Record) 即操作体系引导记载区、FAT (File Allocation Table) 即文件分配表、 根目录、数据区。这四个部分跟着 FAT 的位数的不同有稍微的改变,可是磁盘的完结原理是相同的。

DBR 首要存储了跳转指 令、BPB 等一些分区信息,用于操作体系对 分区的辨认以及进一步的操作。FAT 用于存储磁盘中大于一簇的文件的跨簇存储的信息,选用链表的办法完结了文件的接连和不接连的存储,一起 FAT 会存有相同的两份,以供其间一个呈现错误时恢复用。根目录记载了 根目录下的文件、文件夹信息和他们地点的实践首地址、 长度等信息。最终便是一切文件数据存储的区块。

在 USB 的读写进程中,USB 操控器无需对文件体系有任何了解,在对文件的处理进程中所需求的操作悉数由 PC 机上的操作体系完结,将需求读写的数据读出或写到 Flash 中。而USB 所要做的便是不断的呼应 PC 的恳求,这些恳求便是 4.4 节所述的 SCSI 的读写指令,彻底不需求管上层的文件 体系终究在做什么作业。这一层与层之间 的独立的特性也为体系的完结以及对磁盘的加密供给了理论条件。

4.7 指纹特征提取与密钥生成

4.7.1 指纹特征提取

指纹模块完结指纹收集、指纹挂号、指纹 1:N 和 1:1 比对等与指纹有关的操作。它由高速信号处理器 DSP 芯片 TMS320VC5416、指纹传感器(滑动式)、高功用指纹比对算法等软硬件组成。选用 SPI 总线接口和操控器通讯。模块上的指纹传感器芯片为 AuthenTec 公司的EntréPad 2510 芯片,该芯片体积功耗都很小,对各种指纹适应才干十分强,而且从原理上讲只对人的真皮皮肤有反响,从底子上杜绝了人工指纹的问题。

下面是指纹模块硬件内部原理框图:

图 4-4指纹 模块 内部 硬件 框图

下面是指纹模块辨认算法流程图:


图 4-5指 纹识 别算 法流 程图

4.7.2密钥生成

这部分 作业是由MicroBlaze完结的。MicroBlaze从指纹模块读取到某个 指纹特征数据后,经过 ANSI X9.17 算法发生密钥。ANSI X9.17 是最强的伪随机数发生器之一,有一些运用运用了这种办法,如金融安全运用和 PGP 等。

图 4-6ANSI X9.17 伪 随机 数发 生器

上图中 K 为密钥,依照 ANSI X9.17 这个密钥是保密的。指纹特征数据分为 128bit 每组,最终一组若缺乏 128bit 则以 0 补足,作为 DTi 输入。Vi 为第 i 轮的初始种子值。Ri 为第 i轮发生的伪随机数。著作中取最终一轮发生的伪随机数作为密钥。

5 硬件框图

体系硬件完结框图如图 5-1 系 统 硬 件 实 现 框 图 所 示 。 虚 线 框 内 均 在starter kit 开发板上完结,虚线框外在自行规划的电路板上完结。

图 5-1体系硬 件实 现框 图

5.1 微处理器模块(MicroBlaze 体系)

本体系中运用了 Xilinx 公司 IP Version 为 6.00a 的 Microblaze 软核作 为 CPU。其首要作业是过滤 PC 与 U 盘之间的数据传输,解析协议,提取需求加/解密部分交给 AES 模块,与指纹模块通讯并生成密钥。体系部分 IP 核界说总结如表 5-1 所示:

表 5-1 MicroBlaze 体系部分 IP 核界说

5.2 AES 加密模块

AES 模块是用 VHDL 言语规划的加密电路,选用 128 位密钥,作业在 CBC 办法。用户经过指纹验证后,MicroBlaze 取得 128 位密钥,然后将其写入 AES 模块。AES 模块内部存储并扩展密钥,用其加密 MicroBlaze 发来的数据。图 5-2 是本模块引脚图。


图 5-2AES 模块引脚图

Microblaze 首要 将 密 钥发 给 AES 模 块 , AES 模 块完 成 密 钥扩 展 后发 出 信 号通 知Microblaze。 这 时 ,Microblaze 便可 以 将 数据 写 入 AES 模 块, 运 算完 成 后 读出 数 据 。当Microblaze 发到“de”端口的信号为“0”时,AES 模块作业在加密办法,为“1”时作业在解密办法。

Microblaze 是 32 位的处理器,密钥和数据需求分 4 次写入或读出。咱们界说了一组握手协议来完结密钥及数据的交互。写入密钥时,首要 Microblaze 将最低的 1 个字写进 idata_enc, 再将 key_check_enc 设为“00”。AES 模块判别出 key_check_enc 等于 key_kw_enc,鄙人一个时钟周期将 idata_enc 的数据读入,并将 key_kw_enc 信号加 1。Microblaze 发现 key_check_enc 与 key_kw_enc 不等,证明上一次写入的数据现已被 AES 模块接纳,所以将下一个字的密钥加到 idata_enc,再将key_check_enc 加 1。这样,新的一个字的密钥就被写入 AES 模块。当 key_kw_enc 为“11”时,加 1 后又从头回到“00”,4 个字的密钥就成功写入。写入密钥的波形图如下:

图 5-3

写入数据的进程类似,不再赘述。

密钥 写入 波形 图读出数据时,以 data_check_enc 信号为地址, odata_enc 输出运算成果中相应的字。 AES 算法需求进行 10 轮运算。本模块中每轮运算仅需 8 个时钟周期 ,80 个时钟周期即可 完 成 一 次 加 密 或 解 密 运 算 。 按 照 系 统 50MHz 的 时 钟 频 率 计 算 , 本 模 块 最 高 可 达 到10Mbyte/s 的加解密速度。当然,每次加密前需求将数据写入 AES 模块,加密后再将数据读出。这部分占用的时刻取决于 Microblaze 处理器的指令周期,所以实践运用中的运算速度要比 10Mbyte/s 小。

5.3 USB 接口电路模块

USB 接口电路以两块美国 MAXIM 公司的 MAX3421E 芯片为中心。MAX3421E 是一款USB 操控器,既可作 USB 外设又可作 USB 主机。在这儿,与 PC 相连的 MAX3421E 芯片运用 USB 外设作业办法 ,与 U 盘相连的 MAX3421E 芯片运用 USB 主机作业办法。

图 5-4

芯片具有通讯速 率可高达USB 接 S 口电 路信 号图 26MHz 的 SPI 接口,在Micro Blaze体系中运用的是v1.00.d 版别的 opb_spi IP 核完结 SPI 接口,其答应的最小分频数为 2,而 opb bus 的时钟频率为 50MHz, 所以 此 处 spi bus 时 钟 频率 为 25MHz。两 块 芯片 均 作业 在 SPI 从机 模 式,MicroBlaze 系 统的 SPI 口为 主 机模 式。 主 从机 的 SPI 工 作方 式均 保 持默 认: CPHA=0,CPOL=0。 MAX3421 芯片供给了 D+、D-引脚,在串联 33Ω电阻后可直接连至 USB 总线。而且芯片内部集成了 ESD 维护和 VBCOMP,使外围电路进一步简化。为进一步维护刺进的设备,咱们在主机作业办法的 MAX3421 芯片外部又添加了限流芯片 M%&&&&&%2545A,限流电阻选取 470Ω,最大答应电流为 490mA。

MAX3421 芯片内部集成了±15KV ESD 维护功用,故外围电路中没有再添加静电防护电路。

5.4 指纹模块

指纹模块选用深圳艾菲尔公司规划出产的 EFM-200 通用型指纹辨认模块。它由高速信号处理器 DSP、指纹传感器芯片 AES2510、高功用指纹比对算法等软硬件组成。

图 5-5指 纹模 块接 口定 义

指纹模块经过 SPI 接口与 MicroBlaze 体系通讯,指纹模块为从机,MicroBlaze 体系为主机。作业办法为:CPHA=0,CPOL=1。Pin3 为 SPI 从机挑选引脚(低电平使能),Pin7 为SPI CLOCK 引脚,Pin8 为 MISO 引脚,Pin10 为 MOSI 引脚。MicroBlaze 体系中运用 v1.00.e版别的 opb_spi IP 核完结 SPI 接口,opb 总线频率为 50MHz,分频系数选用 16。

Pin1 为指纹模块中断脚,本体系中选用查询该引脚的办法来取得指纹模块状况信息,当该引脚为低电平时,阐明指纹模块预备好数据待主机读取。Pin9 为电源使能引脚,当其置低时,指纹模块上电。在 MicroBlaze 体系中经过 opb_gpio IP 核对其进行操控。Pin6、Pin5 为电源和地,均与开发板相连。Pin2、Pin4 为保存引脚。图 4.7 是其示意图。

5.5 装备电路

作为一个完好的 FPGA 规划,装备计划是最终一步也是不行短少的一步。本规划中选用是 Xilinx Platform Flash 作为咱们规划的装备计划。在 Spartan3E starter kit 开发板上有一块 4Mbit Xilinx XCF04S serial Platform Flash PROM,经过 iMPACT 东西可以便利地生成FlashPROM 文件,然后选用主串行办法将 Platform Flash PROM 上的存储信息装备到 FPGA,完结FPGA 的上电主动加载功用。这是最简略也是最适合本开发环境的处理计划。

参阅运用文档 XAPP482,还可运用该 Flash 完结更多功用,限于本规划的运用,不再做进一步探究,提出这一点仅仅为了阐明,这个装备计划也支撑对规划的进一步开发和改善。


6 软件流程

图 6-1软件 作业 流程 图

首要,当 USB 接口模块悉数完结初始化之后就开端开端的 USB 枚举(enumeration)进程,涉及到各种描绘的 获取,包含设备描绘、地址设置、装备描绘、字符串 描绘、端点描绘等等,而且跟着描绘恳求的进行,部分描绘还会不断的重复,直到核算机彻底理解这个 USB设备终究 具有什么功用 、该调用什么驱 动程序来对这个 设备操作。关于 市场上许多的 Flash闪盘,咱们确保让每一条 PC 恳求都可以抵达 U 盘,U 盘的每一个回应都转发给 PC。这样确保了直接插到PC 端可以辨认的 U 盘,运用本著作也可以被辨认。

枚举完结之后 USB 进入数据传输阶段,当然这些数据都是对底层 USB 操控器而言的数据,关于要对 USB 数据进行解析的 FPGA 中的 MicroBlaze 程序而言,则依然需求将其间的数 据 分 为 三 个 类 型 : CBW 、 数 据 、 CSW 。 这 三 种 类 型 数 据 的 详 情 请 参 考 4.3 节 。 当MicroBlaze 收到 CBW 之后就将它转宣布去,在转发的一起判别该 CBW 是不是一个读写操作的指令,如果是则代表跟在 CBW 之后的数据是直接来自 Flash 或即将写到 Flash 中去的,那么在数据段的转发操作之前还需求将他们送到 AES 模块进行 CBC 办法的加解密。在数据传输完结之后,有必要等候 USB 设备回应 CSW 表明整个会话进程完好无误之后才干进入到下一个恳求回应的处理循环中去。

7 测验与总结

7.1 总述

体系测验选用先部分后全体的计划,首要将各个模块(USB 数据透传模块、指纹模块、AES 加密模块)在别离的状况下独自测验,经过对它的各种操作来尽可能多的露出问题,并逐个处理。最终再将三者组合起来进行全体测验。

对 于硬 件测 试, 依托 SPATARN 开发 板上 的按 钮、 LCD、 LED 灯 来帮 助调 试。 一起RS232 串口能愈加便利的将程序中发生的数据、变量实时的发送到核算机供,凭借 PC 端的串口程序(Terminal v1.9b、AccessPort),硬件程序中的数据得以在 PC 上保存、剖析。测验中用到的首要东西有:

1) Bus Hound 5.0。一款用于剖析 PC 上 IO 数据软件,可以对多种协议的数据包进行截取、解析并保存。这些数据代表了在 PC 上看到的 USB 数据,与串 口发回的 USB 数据比照可以找到程序的缝隙,并作出相应的改善。

2) USB- IF Test Suite。USB 开发者论坛供给的用于 USB 规范测验的软件,可以检查当时设备是否契合国际规范。

3) HD Tach v3.0.4.0。用来对 USB 的传输速 率测验,它会对 U 盘供给巨细不同的数据包,别离核算他们的传输速率。

4) ATTO Disk Benchmark v2.34。相同是 USB 测速软件,运用不同的两款软件可以进步测验数据的可信度。

WinHex 15.0 SR-2。用于调查 Flash 上每一个扇区的数据改变,有用地判别加密的正确性并评价作用。

7.2 指纹模块的测验

指纹模块由深圳艾菲尔公司规划出产,相关测验方针及成果均由艾菲尔公司供给。

表 7-1 指 纹模 块 各项 方针 功用( 深圳 艾菲 尔 公司 供给)

技能方针称号

数值

勘探皮层

真皮层

认假率 FAR(实践测验值)

0.00008%

拒真率 FRR(实践测验值)

0.005%

指纹容量

15 枚

图画分辨率

500dpi

均匀匹配速度

1 秒

抗静电才干

IEC61000-4-2 规范 15KV

抗磨损强度高

1 百万次

峰值耗电

150mA

作业环境温度

-10°C 至 70°C

最大作业湿度

98%

作业电压

3.3V

尺度

4.4 x 6.6 cm

7.3 VHDL 完结的 AES 加密模块的测验

测验计划

National Institute of Standards and Technology (NIST) 发布 AES 规范的文档Announcing the ADVANCED ENCRYPTION STANDARD (AES) 中,以附录的办法给出了一组 128 位密钥的加解密数据。我 们挑选 ISE Simulator 为仿 真器,将这组数据的明文与密钥作为 输入,看加密后的成果是否正确。再将加密成果作为输入,看解密后是否为原文。

测验数据

数据来自于 NIST 发布的联邦信息处理规范(FIPS PUBS) 197 。

明文:00112233445566778899aabbccddeeff

密钥:000102030405060708090a0b0c0d0e0f

密文:69c4e0d86a7b0430d8cdb78070b4c55a

成果剖析

在 ISE Simulator 供给的可视化波形输入修改渠道 TBW(Test Bench Waveform)下,修改仿真波形。其间密钥部分:

明文部分:

加密成果:

密文为

69c4e0d86a7b0430d8cdb78070b4c55a,与文档中给出的彻底相同,阐明加密电路正确。将密文 69c4e0d86a7b0430d8cdb78070b4c55a 作为输入,进行解密仿真,仿真成果为:


与输入的明文相同,阐明 AES 模块可以进行正确的加解密操作。

下面是 ISE 中 AES 模块编译后的资源耗费状况如表 7-2。

表 7-2 AES资源耗费表

其间逻辑资源运用了 1688 Slices,占整个可用资源的 36%,存储资源用了 2 块 RAM,占悉数可用量的 10%。关于 AES 的 VHDL 完结现已有了不少研讨成果,在此做一个比较。电子科技大学的刘珍桢在其硕士论文《AES 加、解密算法的 FPGA 优化规划》一文中介绍了他的规划。他的规划是依据 ATERA 公司的 Stratix 系列 FPGA 芯片,在 QUARTUSII 环境下完结的。资源耗费状况如下:

Total logic elements: 30626

Total memor y bits: 231544.

将本模块相同放到 QUARTUSII 环境下进行编译,资源耗费状况如下:

经过比较发现,本模块 在资源耗费方面有显着的优势,这是以献身加解密速 度取得的。

刘珍桢的规划中,每 5 个时钟周期即可完结一次加密或解密运算,而本模块则需求 80 个时钟周期。本模块在 50MHz 的体系时钟下,最高可达 10MByte/s 的加解密速度,彻底可以满意需求。由 此可 见 ,AES 模 块 的设 计 在速 度与 资 源消 耗 上取 得了 很 好的 平 衡。 既适 当利 用 了FPGA 片上资源,也很好满意了运用需求。

7.4 著作整合测验

将著作插到电脑 USB 端口,再将 U 盘衔接到本著作。在正确输入指纹之前,电脑不显现 U 盘盘符。正确输入指纹后,开端显现盘符,电脑与 U 盘可以正常通讯。传输速率测验成果如下表:

再将加密后的文件从头 拷贝到电脑上,翻开后与原文件相同,作 品加解密运算正确。将加密后的 U 盘直接连到电脑上,电脑无法读写 U 盘中的数据。

经过以上测验,著作彻底可以正确完结加解密运算,有用辨认指纹,为 U 盘供给牢靠的维护,彻底完结了预期方针。

7.5 开发板资源资源运用状况

本 作 品 充 分 利 用 了 开 发 板 上 的 资 源 。 FPGA芯 片 、 Platform Flash 、 LCD显 示 屏、push-button switchesHirose FX2 、expansion connector 等资源得到了合理运用,而且开发了外扩电路板。其间,FPGA 芯片内部自用运用率见下表:


8 著作功用特征与运用远景

8.1 功用特征与立异

彻底靠硬件完结,通用性好,无需为 PC 编写任何驱动或运用程序,相同也没有上传任何程序到 PC 履行,理论上对一切一般 U 盘和支撑 USB 协议的操作体系均适用。选用磁盘分区加密技能,安全性高于一般的文件加密技能。选用 AES 加密规范。VHDL 逻辑模块完结 AES,加解密速度快。由指纹特征发生密钥,安全强度高,用户运用便利。著作可一起存储多个指纹,可一起服务于多个用户,节省本钱。著作与 U 盘别离,安全办理更牢靠。

8.2 技能难点

在著作的完结进程中,咱们遇到并处理了以下难点:

1 USB 协议解析

2 AES 的 VHDL 完结,权衡资源运用率和加解密速度

3 磁盘分区加密技能在本著作中的运用

4 设备对各种 U 盘的通用性

8.3 运用远景

著作具有宽广的运用远景,能为私家、企业、政府等组织供给快捷、牢靠的 U 盘安全处理计划。加密器与 U 盘相别离,减小指纹信息走漏的要挟,在需求保密的部分更便于安全上的办理,因而将大受欢迎。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/199288.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部