在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 拿來(lái)即用,指紋識(shí)別保密系統(tǒng)完整解決方案

      拿來(lái)即用,指紋識(shí)別保密系統(tǒng)完整解決方案

      作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

      本文引用地址:http://www.biyoush.com/article/201706/348667.htm

      1 作品背景

      1.1 需求概述

      在信息技術(shù)突飛猛進(jìn)的今天,人們?cè)谙硎苓M(jìn)步的同時(shí),也要遭受越來(lái)越多的數(shù)字危機(jī)。U盤(pán), 由于其 擁有容量大、體積小、價(jià)格便宜等眾多優(yōu)點(diǎn) ,已成為人 們移動(dòng)存 儲(chǔ)的首選設(shè)備。因此 U盤(pán)的數(shù)據(jù)安全問(wèn)題也日益露出水面。世界各地關(guān)于 U盤(pán)數(shù)據(jù)泄露的事件層出不窮,既有企業(yè)私人的,也有政府軍方的。

      1.2 現(xiàn)有安全方案調(diào)研

      U 盤(pán)安全問(wèn)題早已引起人們的關(guān)注,各大 U 盤(pán)制造廠家也都紛紛拿出自己的解決方案,經(jīng)過(guò)調(diào)研,我們對(duì)市場(chǎng)上現(xiàn)有的 U 盤(pán)保密方案進(jìn)行了如下總結(jié)。

      在 U 盤(pán)市場(chǎng)上,近來(lái)又出現(xiàn)了基于身份認(rèn)證技術(shù)的產(chǎn)品,硬件上增加了模塊,但仍會(huì)依賴(lài)一段在 PC 上執(zhí)行的程序,這段程序或預(yù)先安裝在 PC 上,或來(lái)自 U 盤(pán)上的某塊存儲(chǔ)區(qū)域,國(guó)內(nèi)代表作是亞略特系列 U 盤(pán)。除了解決了無(wú)需手動(dòng)輸入密碼外,軟硬結(jié)合方案的其他缺點(diǎn)依舊沒(méi)有解決。

      表 1-1 現(xiàn) 有解 決方 案比 較

      解決方案

      方案簡(jiǎn)述

      優(yōu)點(diǎn)

      缺點(diǎn)

      代表產(chǎn)品

      機(jī)械方式

      采用機(jī)械裝置

      鎖住 USB 插頭

      通 用

      性好

      安全性差

      不常見(jiàn),只找到一款

      日本產(chǎn)品

      軟件方式

      通過(guò)在 PC 上運(yùn)

      行的軟件程序

      對(duì)磁盤(pán)分區(qū)或

      文件進(jìn)行加解

      代 價(jià)

      低,硬

      件 上

      無(wú) 需

      做 變

      動(dòng)

      1 通用性不佳,一般各廠家軟件都不同,通用的軟

      件,如高強(qiáng)度 U 盤(pán)文件夾加密,只能做到文件加

      密層次,安全性低于磁盤(pán)的分區(qū)加密。

      2 受到 PC 病毒威脅。

      3 手動(dòng)輸入密碼位數(shù)有限,安全強(qiáng)度不高。

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

      清華紫光系列

      軟硬結(jié)合

      方式

      將原本放在 PC

      上運(yùn)行的程序

      存放到 U盤(pán)中,

      插上后上傳到

      PC 執(zhí)行

      無(wú) 需

      在 PC

      上 安

      裝 軟

      1 通用性不佳,各 U 盤(pán)廠家由于各自硬件不同實(shí)現(xiàn)

      方法也不同,且 U 盤(pán)硬件需改動(dòng),這種方案對(duì)老 U

      盤(pán)束手無(wú)策。一般只能運(yùn)行于 Windows XP/2000

      系統(tǒng)。

      2 安全強(qiáng)度未知,廠家一般都未公布自己的加密方 念

      案和所用加密標(biāo)準(zhǔn)。

      3 仍依賴(lài)于在 PC 上執(zhí)行的程序進(jìn)行操作,依舊受 PC

      病毒的威脅。

      4 主流產(chǎn)品依舊靠鍵盤(pán)輸入密碼。

      Kingston 08 鼠年紀(jì)

      版, 臺(tái)電 加密 大

      師 U 盤(pán)

      1.3 解決方案

      我們的目 標(biāo)是要制作這樣 一個(gè)作品:作品在 整個(gè)系統(tǒng)中 類(lèi)似一個(gè)讀卡器 ,PC無(wú)需安裝任何驅(qū)動(dòng)和程序,U 盤(pán)無(wú)需做任何改動(dòng),針對(duì)不同廠家的 U 盤(pán),不同的操作系統(tǒng)(本身插上普通 U 盤(pán)能工作),作品要有一定的通用性(最起碼理論上要可行)。由指紋產(chǎn)生密鑰,采用公認(rèn)安全的加密標(biāo)準(zhǔn) ,快速加解密,最終達(dá)到令人能夠接受的傳輸 速率。無(wú)需上傳任何程序至 PC 運(yùn)行。

      2 功能與指標(biāo)

      本作品連接在電腦 USB 接口與 U 盤(pán)之間,通過(guò)解析USB 協(xié)議,提取出需要加密的部分,對(duì)其進(jìn)行加解密后置換,再轉(zhuǎn)發(fā)。密碼由用戶(hù)的指紋特征數(shù)據(jù)經(jīng)過(guò)處理后產(chǎn)生。

      本作品對(duì)整個(gè) U 盤(pán)進(jìn)行加密(屬于磁盤(pán)加密中的分區(qū)加密,相對(duì)文件加密而言安全度將更高)。加密后的 U 盤(pán)直接插在電腦上或輸入的指紋不正確時(shí),盤(pán)內(nèi)數(shù)據(jù)將無(wú)法被訪問(wèn)。

      為實(shí)現(xiàn)友好的用戶(hù)操作界面,作品工作流程采用向?qū)?。作品給用戶(hù)提供三個(gè)按鈕、一個(gè)工作模式選擇開(kāi)關(guān)來(lái)對(duì)其進(jìn)行控制。提供兩種工作模式:1)正常工作模式——流程中沒(méi)有添加指紋、刪除指紋的操作;2)管理工作模式——在進(jìn)入正常工作模式前,用戶(hù)可以進(jìn)行添加、刪除指紋的操作。通過(guò) LCD 向用戶(hù)提供操作提示信息。

      本設(shè)備采用硬件方法實(shí)現(xiàn)了高速、高強(qiáng)度的加密標(biāo)準(zhǔn)—AES,具備高率,達(dá)到全速 USB 設(shè)備傳輸速 率標(biāo)準(zhǔn)。同時(shí)本設(shè)備相對(duì) U 盤(pán)、PC,是一個(gè)獨(dú)立的設(shè)備,有很好的通用性,適用多數(shù) U 盤(pán)和操作系統(tǒng)。

      3 系統(tǒng)方案

      3.1 系統(tǒng)框圖


      圖 3-1系統(tǒng)總體示意圖

      本作品在 Xilinx 芯片 上搭建以 Microblaze 軟核為核心的微處理器系統(tǒng),在 Starter Kit 開(kāi)發(fā)板外擴(kuò)展 USB 接口電路和指紋模塊,結(jié)合開(kāi)發(fā)板上的豐富資源來(lái)構(gòu)成整個(gè)作品的硬件部分。其中 AES 算法在 片內(nèi)用 VHDL 實(shí)現(xiàn)。USB 協(xié)議解析、磁盤(pán)加密、密鑰生成等軟件部分通過(guò)為 MicroBlaze 處理器編寫(xiě) C 代碼實(shí)現(xiàn)。

      整個(gè) 系統(tǒng)框圖 如圖 3-1 所示, 其中,虛 框內(nèi)微處 理器系 統(tǒng)和加解 密模塊在 開(kāi)發(fā)板上 的 芯片內(nèi)實(shí)現(xiàn),指紋模塊、USB 接口電路則在自行設(shè)計(jì)的外部電路板上實(shí)現(xiàn)。硬件開(kāi)發(fā)平臺(tái)為 Xilinx Starter Kit 開(kāi)發(fā)板,主要開(kāi)發(fā)軟件 ISE 9.1i 和 EDK 9.1i。

      3.2 USB 接口方案

      本模塊電路以?xún)善?MAX3421E 芯片為核心,分別與 PC、U 盤(pán)相連。USB 協(xié)議由底層到高層分為電氣層、設(shè)備層、功能層,MAX3421E 可以實(shí)現(xiàn)從電氣層到設(shè)備層數(shù)據(jù)的轉(zhuǎn)化,從而使微處理器系統(tǒng)可以在設(shè)備層以上操作。該芯片內(nèi)部不包含微處理器核。

      目前市場(chǎng)上的 USB 接口芯片種類(lèi)繁多,功能和應(yīng)用場(chǎng)合各異,從 USB1.0 到 USB2.0,從主、從單功能控制器到主從集成控制器,從 帶單片機(jī)核到功能單一的純 USB 接口芯片。要在這么多的芯片中選擇一款合適本系統(tǒng)的芯片必須通過(guò)如下的篩選:

      1) 支持全速模式的傳輸,波特率達(dá)到 12Mb/s。

      2) 片內(nèi)不帶有單片機(jī)核的單一 USB 芯片,因?yàn)樵诒鞠到y(tǒng)中 FPGA 將作為中心控制器,

      不應(yīng)該有過(guò)多的單片機(jī)介入處理。

      3) 最好有兩種模式的集成以便選擇,能分別提供到 PC 和到 U 盤(pán)的接口功能,即兼容

      USB 主機(jī)和外設(shè)兩種模 式。

      4) 接口芯片與控制器之間最好使用串行通信,約寶貴的控制器 I/O 資源。

      5) 外觀上要盡量小巧,便于產(chǎn)品的小型化。

      基于以上的五點(diǎn),我們將選擇的焦點(diǎn)放在了 Maxim 公司生產(chǎn)的 MAX3421E 上,它完全符合以上要求,是一款微處理器獨(dú)立的 USB 接口轉(zhuǎn)化解決方案,具備最大頻率高達(dá) 26MHz的 SPI 接口,配備收發(fā)各有 64Byte 的雙緩沖,有助于提高 USB 的傳輸速率。芯片采用 5mm×5mm 的 TQFP 封裝,有利于產(chǎn)品的小型化。

      3.3 微處理器系統(tǒng)

      微處理器系統(tǒng)采用 Xinlinx 公司推出的 32 位處理器 IP 軟核 MicroBlaze 作為CPU,這是最適合本開(kāi)發(fā)平臺(tái)的解決方案。MicroBlaze 支 持 CoreConnect 總線的標(biāo)準(zhǔn)外設(shè)集合,具有兼容性和重復(fù)利用性。

      設(shè)計(jì)中 Microblaze 通過(guò) OPB 總線和相應(yīng)的接口轉(zhuǎn)換 IP 核連接使用片內(nèi)外硬件資源。

      微處理器系統(tǒng)通過(guò) SPI 總線與指紋模塊通信,獲得指紋特征數(shù)據(jù)。

      微處理器系統(tǒng)通過(guò) SPI 總線與 USB 接口電路相連,解析并控制流經(jīng)作品的數(shù)據(jù)流。

      微處理器系統(tǒng)和加解密模塊之間通過(guò)并行 GPIO 接口通信。

      考慮到 FPGA 片內(nèi)資源有限,指紋模塊內(nèi)部實(shí)現(xiàn)了指紋采集、指紋圖像的預(yù)處理、特征提 取、存 儲(chǔ)讀取 指紋特 征數(shù) 據(jù)、匹 配等算 法。 能響應(yīng) 微控制 器系 統(tǒng)的注 冊(cè)、刪 除、 識(shí)別驗(yàn)證、傳輸存儲(chǔ)的特征數(shù)據(jù)等命令。

      在選擇指紋傳感器類(lèi)型 時(shí)我們的調(diào)研結(jié)果如表 3-1,最后確定采用 射頻原理指紋傳感器AES2510,其能采集識(shí)別 真皮層指紋,對(duì)各種指紋類(lèi) 型適應(yīng)性強(qiáng),解決了人造 假指紋問(wèn)題,增加了安全性。采用刮擦式設(shè)計(jì),面積更小,成本更低,且能采集到足夠大的指紋圖像。

      采用運(yùn)算功能強(qiáng)勁的 DSP 芯片 TMS320VC5416 作為核心控制處理芯片,外接 Flash、DDR芯片構(gòu)成模塊固件執(zhí)行和存儲(chǔ)數(shù)據(jù)的硬件平臺(tái)。 向微控制器系統(tǒng)提供 SPI 接口通信。

      表 3-1 各 種類(lèi) 型指 紋傳 感器 對(duì)比 表

      采集技術(shù)

      貼膜光學(xué)

      不貼膜光學(xué)

      電感電容壓感

      熱敏

      射頻

      人造指紋的判別能力

      很壞

      較好

      手指識(shí)別率

      較好

      較好

      臟手指識(shí)別率

      較好

      油手指識(shí)別率

      較好

      較好

      較好

      老人識(shí)別率

      較好

      較好

      氣候變化適應(yīng)能力

      較好

      較好

      抗震動(dòng)適應(yīng)能力

      抗靜電適應(yīng)能力

      表面耐磨

      較好

      溫度范圍

      0-40℃

      0-40℃

      -5~40℃

      夏天不能使用

      -30~70℃

      3.5 密鑰生成

      作品中密鑰生成算法采用 ANSI X9.17 標(biāo)準(zhǔn)。之所以選擇 ANSI 9.17 算法來(lái)將指紋特征數(shù)據(jù)轉(zhuǎn)換為密鑰,主要有兩點(diǎn)原因:1)作品中已經(jīng)實(shí)現(xiàn)了 AES 加密模塊使得該算法實(shí)現(xiàn)非常方便;2)相對(duì)研究過(guò)程中我們?cè)褂眠^(guò)的 SHA512 算法而言,該算法有效地減少了代碼量和執(zhí)行代價(jià),節(jié)省了空間。因?yàn)?FPGA 片內(nèi)允許的最大代碼量為 32K,若超過(guò) 32K,就得將代碼放至片外 DDR 中執(zhí)行。這樣的缺點(diǎn)是程序執(zhí)行速度相對(duì)片內(nèi)將大大變慢,此外,F(xiàn)PGA 配置、程序自動(dòng)加載到 DDR 中執(zhí)行也將是個(gè)問(wèn)題,一是 需編寫(xiě) Bootloader 程序,二是 DDR 消耗資源較多,大概占 20%片內(nèi)資源(在本作品開(kāi)發(fā)平臺(tái)上),在本作品現(xiàn)有架構(gòu)上加上 DDR 之后根本沒(méi)有資源再加掛一個(gè) Flash,故 Bootloader 程序也無(wú)法編寫(xiě)和使用 。

      3.6 加解密模塊

      加解密模塊采用 AES 算法,通過(guò) VHDL 設(shè)計(jì)的數(shù)字電路實(shí)現(xiàn)。該模塊從 MCU 系統(tǒng)獲得密鑰和明(密)文,處 理后返回密(明)文。由于采用硬件電路實(shí)現(xiàn),因此 可以獲得很高的工作速度,同時(shí)也使 FPGA 中剩余的邏輯資源得到了充分的利用。

      在設(shè)計(jì)該模塊電路及其 通信協(xié)議時(shí),還充分考慮了其移植性,密鑰擴(kuò)展和加 解密模塊是可以分離的,因此 在某些邏輯資源受限情形下,可以將密鑰擴(kuò)展部分放到微 處理器系統(tǒng)中以軟件方式實(shí)現(xiàn),而不影響整個(gè)模塊的工作速度。

      在設(shè)計(jì)該模塊時(shí)亦反復(fù) 權(quán)衡了工作速度與資源消耗兩個(gè)指標(biāo),在資源許可的 情況下盡量

      提高工作速度。

      3.7 USB 協(xié)議解析及磁盤(pán)加密


      圖 3-2系 統(tǒng)加 解密 協(xié)議 棧到


      圖 3-2 描述的是整個(gè)系統(tǒng)對(duì) USB 數(shù)據(jù)的處理過(guò)程。USB 接口芯片 MAX3421E 通過(guò)連接PC 的 USB 接 口 獲 得 底 層 的 差 分 數(shù) 據(jù) 信 號(hào) , 對(duì)其 進(jìn) 行 轉(zhuǎn) 化 , 利 用 SPI 總 線 接 口 向MicroBlaze 系統(tǒng)提交解析后的數(shù)據(jù)包。然后 MicroBlaze 進(jìn)行后續(xù)向上的進(jìn)一步解析。在 SCSI層解析出的數(shù)據(jù)包是要寫(xiě)入到 Flash 中的數(shù)據(jù)塊、地址及其數(shù)據(jù)長(zhǎng)度等信息。調(diào)用 AES 模塊,對(duì) 數(shù) 據(jù) 加 密 , 之 后 把 它 按 照 加 密 前 的 方 式 轉(zhuǎn) 發(fā) , 在 物 理層 再 次 通 過(guò) 工 作 在 主 機(jī) 模 式 的MAX3421E 發(fā)送給 U 盤(pán)。

      4 實(shí)現(xiàn)原理

      本章將圍繞圖 3-2 做詳細(xì)的闡述。

      4.1 USB 物理、設(shè)備層解析

      有四種 packet(令牌、幀開(kāi)始、數(shù)據(jù)包和握手)進(jìn)入 MAX3421E,通過(guò)讀取 MAX3421E的寄存器可以獲得以上四種 packet 的信息,將它分為配置數(shù)據(jù)和傳輸數(shù)據(jù)分別處理。配置數(shù)據(jù)是 PC 控制 U 盤(pán)的,流向只可能從 PC 至 U 盤(pán),而傳輸數(shù)據(jù)則是雙向的。要從這些數(shù)據(jù)中區(qū)分出哪些數(shù)據(jù)是將要被存到 Flash 中的,哪些是控制 U 盤(pán)操作的。對(duì)于那些控制 U 盤(pán)操作的數(shù)據(jù),MicroBlaze 直接轉(zhuǎn)發(fā)給 U 盤(pán),而從 Flash 讀來(lái)的或者是要寫(xiě)到 Flash 中的數(shù)據(jù)就需要進(jìn)行加解密再轉(zhuǎn)發(fā)。

      從主機(jī)發(fā)來(lái)的數(shù)據(jù)包根據(jù)它們不同的類(lèi)型發(fā)往不同的 USB 端點(diǎn)。USB 端點(diǎn)是 USB 設(shè)備特有的一種硬件的接收發(fā)送單元。USB 主機(jī)與 設(shè)備之間都是通過(guò)端點(diǎn)來(lái)傳輸數(shù)據(jù)的。端點(diǎn)是橋 梁 和 紐帶 , 不 同的 端 點(diǎn) 其傳 輸 數(shù) 據(jù) 的能 力 不 同, 適 于 不 同的 應(yīng) 用 場(chǎng)合 。 在 Bulk OnlyTransportation 的海量存儲(chǔ)實(shí)現(xiàn)規(guī)范(見(jiàn) 4.3 節(jié))中,使用了三個(gè)端點(diǎn),他們分別是控制端點(diǎn)、數(shù) 據(jù)輸出 端點(diǎn)和 數(shù)據(jù)輸 入端 點(diǎn)???制端點(diǎn) 可以 用于控 制命令 的輸 出,配 置信息 的輸 入和輸出,它通常表示為 0 端點(diǎn),這個(gè)端點(diǎn)的流向是雙向的,不會(huì)出現(xiàn) STALL 的狀態(tài),它負(fù)責(zé)設(shè)備的配置交互,最大 信息包 64 字節(jié)。輸入輸出端點(diǎn)負(fù)責(zé)數(shù)據(jù)的輸 入、輸出,他們都是單向的只能負(fù)責(zé)輸出或者輸入,最大信息包 64 字節(jié)(USB 全速設(shè)備)。

      表 4-1 B OT 端點(diǎn) 的屬 性

      端點(diǎn)

      傳輸類(lèi)型

      端點(diǎn)類(lèi)型

      傳輸方向

      最大傳輸包

      0

      控制輸入

      控制輸出

      默認(rèn)

      輸入

      輸出

      64Byte

      1

      數(shù)據(jù)輸出

      普通

      輸出

      64Byte

      2

      數(shù)據(jù)輸入

      普通

      輸入

      64Byte

      4.2 USB 的枚舉過(guò)程

      枚舉過(guò)程定義為:當(dāng)設(shè)備插入系統(tǒng)時(shí),主機(jī)對(duì)設(shè)備進(jìn)行配置,獲取 USB 設(shè)備的各種描述(包括設(shè)備描述、配置描述、Bulk Only 數(shù)據(jù)接口描述、Bulk-In 端點(diǎn)描述、Bulk-Out 端點(diǎn)描述和字符描述),這也就是 USB 設(shè)備為什么可以熱插撥的原因。USB 設(shè)備可分為以下幾類(lèi):顯示器、通訊設(shè)備、 音頻設(shè)備、人機(jī)輸入、海量存儲(chǔ)„„特定類(lèi)的 設(shè)備又可劃分成子類(lèi)。枚舉使得主機(jī)可以精確定位 USB 設(shè)備類(lèi)型,搜 索相應(yīng)的驅(qū)動(dòng)程序。

      通用海量存儲(chǔ)設(shè)備(General Mass Storage Device)的設(shè)備描述中,不同的 U 盤(pán)在某些具體的字段會(huì)具備不同的值。對(duì)于不同的字段值,在程序中采取了相應(yīng)的措施以提高 U 盤(pán)的兼容性。USB-IF 推薦 使用批量傳輸(Bulk-Only Transportation)模式,所以 我們的系統(tǒng)也將采用批量傳輸模式。

      4.3 批量傳輸協(xié)議(Bulk-Only Transportation Protocol)

      在完成 U 盤(pán)的枚舉過(guò)程之后,識(shí)別出為 Bulk-Only 的 Mass Storage 設(shè)備,然后即進(jìn)入Bulk-Only 傳輸方式。 在此方式下,PC 與 U 盤(pán)之間所有數(shù)據(jù)均通過(guò) Bulk- In 和 Bulk-Out 來(lái)進(jìn)行傳輸,不再通過(guò)控制端點(diǎn)傳輸任何數(shù)據(jù)。

      圖 4-1命令 、數(shù) 據(jù) 、狀 態(tài)流程 圖

      在這種 傳輸方式下,有三種類(lèi)型 的數(shù)據(jù)在USB 和 設(shè)備之間傳送,CBW、CSW 和普通數(shù)據(jù)。CBW(Command Block Wrapper)是從 USB Host 發(fā)送到設(shè)備的命令,命令格式遵從接口中的 bInterfaceSubClass 所指定的命令塊,這里為 SCSI 傳輸命令集。USB 設(shè)備需要將 SCSI命令從 CBW 中提取出來(lái),執(zhí)行相應(yīng)的命令,完成以后,向 Host 發(fā)出反映當(dāng)前命令執(zhí)行狀態(tài)的 CSW(Command Status Wrapper),Host 根據(jù) CSW 來(lái)決定是否繼續(xù)發(fā)送下一個(gè) CBW 或是數(shù)據(jù)。Host 要求 USB 設(shè)備執(zhí)行的命令可能為發(fā)送數(shù)據(jù),則此時(shí)需要將特定數(shù)據(jù)傳送出去,完畢后發(fā)出 CSW,以使 Host 進(jìn)行下一步的操作。USB 設(shè)備所執(zhí)行的操作可用圖 4-1 描述。

      在流程圖中包括了三種形式的數(shù)據(jù)包,USB 的設(shè)備層統(tǒng)一將他們看成數(shù)據(jù),不加區(qū)分的進(jìn)行傳輸,而在功能層上才開(kāi)始區(qū)分這三種不同形式、不同功能的數(shù)據(jù)包。

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

      在 4.3 節(jié)中介紹的 BOT(Bulk-Only Transportation)協(xié)議的 CBW 數(shù)據(jù)包中有一個(gè)長(zhǎng)度為 6到 12 不等的字段 CBWCB,其傳輸?shù)木褪?SCSI 命令。

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

      INQUIRY

      命令描述查詢(xún)?cè)O(shè)備的詳細(xì)信息,如生產(chǎn)廠家、序列號(hào)等

      READ CAPACITY(10)

      READ(10)

      REQUEST SENSE

      TEST UNIT READY

      WRITE(10)

      讀取 Flash 容量,扇區(qū)大小以及總扇區(qū)數(shù)

      輸入要讀取的數(shù)據(jù),從 Flash 讀出

      請(qǐng)求判斷,用于發(fā)生錯(cuò)誤時(shí)系統(tǒng)自我糾正

      測(cè)試單元準(zhǔn)備,電腦通過(guò)此命令保持 U 盤(pán)一直處于激活狀態(tài)

      提供 Flash 地址,向 Flash 寫(xiě)數(shù)據(jù)

      SCSI命令集是 一套能夠完成 對(duì)一般外接存 儲(chǔ)系統(tǒng)設(shè)備 的存取、配置 、檢查等任務(wù) 的完備指令 集。SCSI擁 有的這套指令 集有很多指 令,不同的 版本分別用 在光驅(qū)、硬盤(pán)、 軟驅(qū)等設(shè)備的控制中,表 4-2 列出的 6 條指令已經(jīng)可以完全實(shí)現(xiàn) USB 存儲(chǔ)設(shè)備的操作了,這一特性大大減小了設(shè)備設(shè)計(jì)的難度與復(fù)雜度。Bulk-Only 的 CBW 中的 CBWCB 字段就是對(duì)以上這些命令的描述。

      4.5 基于 CBC-ESSIV 模式的磁盤(pán)加密機(jī)制

      在過(guò)去的很多年里用戶(hù) 數(shù)據(jù)的保護(hù)大多停留在文件級(jí)別的加密技術(shù)上,而磁 盤(pán)加密技術(shù)一直由于軟硬件上的瓶 頸而止步不前。隨著計(jì)算機(jī)理論以及硬件的飛速發(fā)展 ,現(xiàn)在的計(jì)算機(jī)使用者,不管是專(zhuān)業(yè)人 員還是普通用戶(hù),在選擇自己的加密手段 時(shí)則更加傾向于磁盤(pán)加密。

      一是因?yàn)榇疟P(pán)加密可以 通過(guò)高速的硬件實(shí)現(xiàn)透明訪問(wèn);二是可以在磁 盤(pán)加密的基礎(chǔ)上再使用文件加密,從而達(dá)到雙重加密的高強(qiáng)度加密效果。

      在加密方式上,毋庸置疑 AES 一直被用在了磁盤(pán)加密上,不只是因?yàn)樗陌踩阅埽驗(yàn)?AES 是一種很好的分析加密算法。但是在加密模式上一直存在一定的問(wèn)題。普通的 ECB模式因?yàn)樗囊灰粚?duì)應(yīng)容易受到水印攻擊(watermarking attack),而 CBC(Cipher Block Chain)式一直以來(lái)是眾 多模式中使用最為廣泛的加密模式,即便是在某些方面存 在一些不足。綜合考慮各種因素,CBC 仍然具有多方面的優(yōu)越性。

      在一塊可以扇區(qū)尋址的 Flash 或者硬盤(pán)上,通常一個(gè)扇區(qū)的大小為 512Byte,那么一個(gè)扇區(qū) 所需 要 的 AES 加 密 次 數(shù) 為 32 次 。 這 32 次 加 密 我 們 就 使 用 CBC 模 式 完 成 , 由ESSIV(Encrypted Salt-Sector IV)算法生成 IV(In itiation Vector)初始化向量。

      經(jīng)過(guò)其中 H (k ) 是由密鑰生成的散列。由于 IV 的生成涉及到密碼 k 的介入,所以 IV 的不可預(yù)測(cè)性很大程度增加了破解的難度。

      4.6 FAT 文件系統(tǒng)

      FAT 文件系統(tǒng)包括 FAT16 和 FAT32 兩種,他們分別應(yīng)用在不同大小的 U 盤(pán)中,有的 U盤(pán)兩者都可以使用,但 是根據(jù)簇的大小以及尋址的位數(shù),在不同容量的系統(tǒng) 中,他們會(huì)體現(xiàn)出不同的磁盤(pán)效率。

      圖 4-3FAT 文件 系統(tǒng)

      如圖 4-3 所示,F(xiàn)AT 主要有四部分組成:DBR (DOS Boot Record) 即操作系統(tǒng)引導(dǎo)記錄區(qū)、FAT (File Allocation Table) 即文件分配表、 根目錄、數(shù)據(jù)區(qū)。這四個(gè)部分隨著 FAT 的位數(shù)的不同有略微的變化,但是磁盤(pán)的實(shí)現(xiàn)原理是一樣的。

      DBR 主要存儲(chǔ)了跳轉(zhuǎn)指 令、BPB 等一些分區(qū)信息,用于操作系統(tǒng)對(duì) 分區(qū)的識(shí)別以及進(jìn)一步的操作。FAT 用于存儲(chǔ)磁盤(pán)中大于一簇的文件的跨簇存儲(chǔ)的信息,采用鏈表的方式實(shí)現(xiàn)了文件的連續(xù)和不連續(xù)的存儲(chǔ),同時(shí) FAT 會(huì)存有相同的兩份,以供其中一個(gè)出現(xiàn)錯(cuò)誤時(shí)恢復(fù)用。根目錄記錄了 根目錄下的文件、文件夾信息和他們所在的實(shí)際首地址、 長(zhǎng)度等信息。最后便是所有文件數(shù)據(jù)存儲(chǔ)的區(qū)塊。

      在 USB 的讀寫(xiě)過(guò)程中,USB 控制器無(wú)需對(duì)文件系統(tǒng)有任何了解,在對(duì)文件的處理過(guò)程中所需要的操作全部由 PC 機(jī)上的操作系統(tǒng)完成,將需要讀寫(xiě)的數(shù)據(jù)讀出或?qū)懙?Flash 中。而USB 所要做的就是不斷的響應(yīng) PC 的請(qǐng)求,這些請(qǐng)求就是 4.4 節(jié)所述的 SCSI 的讀寫(xiě)命令,完全不需要管上層的文件 系統(tǒng)究竟在做什么工作。這一層與層之間 的獨(dú)立的特性也為系統(tǒng)的實(shí)現(xiàn)以及對(duì)磁盤(pán)的加密提供了理論前提。

      4.7 指紋特征提取與密鑰生成

      4.7.1 指紋特征提取

      指紋模塊完成指紋采集、指紋登記、指紋 1:N 和 1:1 比對(duì)等與指紋有關(guān)的操作。它由高速信號(hào)處理器 DSP 芯片 TMS320VC5416、指紋傳感器(滑動(dòng)式)、高性能指紋比對(duì)算法等軟硬件組成。采用 SPI 總線接口和控制器通信。模塊上的指紋傳感器芯片為 AuthenTec 公司的EntréPad 2510 芯片,該芯片體積功耗都很小,對(duì)各種指紋適應(yīng)能力非常強(qiáng),并且從原理上講只對(duì)人的真皮皮膚有反應(yīng),從根本上杜絕了人造指紋的問(wèn)題。

      下面是指紋模塊硬件內(nèi)部原理框圖:


      圖 4-4指紋 模塊 內(nèi)部 硬件 框圖

      下面是指紋模塊識(shí)別算法流程圖:


      圖 4-5指 紋識(shí) 別算 法流 程圖

      4.7.2密鑰生成

      這部分 工作是由MicroBlaze完成的。MicroBlaze從指紋模塊讀取到某個(gè) 指紋特征數(shù)據(jù)后,通過(guò) ANSI X9.17 算法產(chǎn)生密鑰。ANSI X9.17 是最強(qiáng)的偽隨機(jī)數(shù)發(fā)生器之一,有一些應(yīng)用使用了這種方法,如金融安全應(yīng)用和 PGP 等。


      圖 4-6ANSI X9.17 偽 隨機(jī) 數(shù)發(fā) 生器

      上圖中 K 為密鑰,按照 ANSI X9.17 這個(gè)密鑰是保密的。指紋特征數(shù)據(jù)分為 128bit 每組,最后一組若不足 128bit 則以 0 補(bǔ)足,作為 DTi 輸入。Vi 為第 i 輪的初始種子值。Ri 為第 i輪產(chǎn)生的偽隨機(jī)數(shù)。作品中取最后一輪產(chǎn)生的偽隨機(jī)數(shù)作為密鑰。

      5 硬件框圖

      系統(tǒng)硬件實(shí)現(xiàn)框圖如圖 5-1 系 統(tǒng) 硬 件 實(shí) 現(xiàn) 框 圖 所 示 。 虛 線 框 內(nèi) 均 在starter kit 開(kāi)發(fā)板上實(shí)現(xiàn),虛線框外在自行設(shè)計(jì)的電路板上實(shí)現(xiàn)。

      圖 5-1系統(tǒng)硬 件實(shí) 現(xiàn)框 圖

      5.1 微處理器模塊(MicroBlaze 系統(tǒng))

      本系統(tǒng)中使用了 Xilinx 公司 IP Version 為 6.00a 的 Microblaze 軟核作 為 CPU。其主要工作是過(guò)濾 PC 與 U 盤(pán)之間的數(shù)據(jù)傳輸,解析協(xié)議,提取需要加/解密部分交給 AES 模塊,與指紋模塊通信并生成密鑰。系統(tǒng)部分 IP 核定義總結(jié)如表 5-1 所示:

      表 5-1 MicroBlaze 系統(tǒng)部分 IP 核定義

      5.2 AES 加密模塊

      AES 模塊是用 VHDL 語(yǔ)言設(shè)計(jì)的加密電路,采用 128 位密鑰,工作在 CBC 模式。用戶(hù)通過(guò)指紋驗(yàn)證后,MicroBlaze 獲得 128 位密鑰,然后將其寫(xiě)入 AES 模塊。AES 模塊內(nèi)部存儲(chǔ)并擴(kuò)展密鑰,用其加密 MicroBlaze 發(fā)來(lái)的數(shù)據(jù)。圖 5-2 是本模塊引腳圖。


      圖 5-2AES 模塊引腳圖

      Microblaze 首先 將 密 鑰發(fā) 給 AES 模 塊 , AES 模 塊完 成 密 鑰擴(kuò) 展 后發(fā) 出 信 號(hào)通 知Microblaze。 這 時(shí) ,Microblaze 便可 以 將 數(shù)據(jù) 寫(xiě) 入 AES 模 塊, 運(yùn) 算完 成 后 讀出 數(shù) 據(jù) 。當(dāng)Microblaze 發(fā)到“de”端口的信號(hào)為“0”時(shí),AES 模塊工作在加密模式,為“1”時(shí)工作在解密模式。

      Microblaze 是 32 位的處理器,密鑰和數(shù)據(jù)需要分 4 次寫(xiě)入或讀出。我們定義了一組握手協(xié)議來(lái)完成密鑰及數(shù)據(jù)的交互。寫(xiě)入密鑰時(shí),首先 Microblaze 將最低的 1 個(gè)字寫(xiě)進(jìn) idata_enc, 再將 key_check_enc 設(shè)為“00”。AES 模塊判斷出 key_check_enc 等于 key_kw_enc,在下一個(gè)時(shí)鐘周期將 idata_enc 的數(shù)據(jù)讀入,并將 key_kw_enc 信號(hào)加 1。Microblaze 發(fā)現(xiàn) key_check_enc 與 key_kw_enc 不等,證實(shí)上一次寫(xiě)入的數(shù)據(jù)已經(jīng)被 AES 模塊接收,于是將下一個(gè)字的密鑰加到 idata_enc,再將key_check_enc 加 1。這樣,新的一個(gè)字的密鑰就被寫(xiě)入 AES 模塊。當(dāng) key_kw_enc 為“11”時(shí),加 1 后又重新回到“00”,4 個(gè)字的密鑰就成功寫(xiě)入。寫(xiě)入密鑰的波形圖如下:

      圖 5-3

      寫(xiě)入數(shù)據(jù)的過(guò)程相似,不再贅述。

      密鑰 寫(xiě)入 波形 圖讀出數(shù)據(jù)時(shí),以 data_check_enc 信號(hào)為地址, odata_enc 輸出運(yùn)算結(jié)果中相應(yīng)的字。 AES 算法需要進(jìn)行 10 輪運(yùn)算。本模塊中每輪運(yùn)算僅需 8 個(gè)時(shí)鐘周期 ,80 個(gè)時(shí)鐘周期即可 完 成 一 次 加 密 或 解 密 運(yùn) 算 。 按 照 系 統(tǒng) 50MHz 的 時(shí) 鐘 頻 率 計(jì) 算 , 本 模 塊 最 高 可 達(dá) 到10Mbyte/s 的加解密速度。當(dāng)然,每次加密前需要將數(shù)據(jù)寫(xiě)入 AES 模塊,加密后再將數(shù)據(jù)讀出。這部分占用的時(shí)間取決于 Microblaze 處理器的指令周期,所以實(shí)際應(yīng)用中的運(yùn)算速度要比 10Mbyte/s 小。

      5.3 USB 接口電路模塊

      USB 接口電路以?xún)蓧K美國(guó) MAXIM 公司的 MAX3421E 芯片為核心。MAX3421E 是一款USB 控制器,既可作 USB 外設(shè)又可作 USB 主機(jī)。在這里,與 PC 相連的 MAX3421E 芯片使用 USB 外設(shè)工作模式 ,與 U 盤(pán)相連的 MAX3421E 芯片使用 USB 主機(jī)工作模式。

      圖 5-4

      芯片具有通信速 率可高達(dá)USB 接 S 口電 路信 號(hào)圖 26MHz 的 SPI 接口,在Micro Blaze系統(tǒng)中使用的是v1.00.d 版本的 opb_spi IP 核實(shí)現(xiàn) SPI 接口,其允許的最小分頻數(shù)為 2,而 opb bus 的時(shí)鐘頻率為 50MHz, 所以 此 處 spi bus 時(shí) 鐘 頻率 為 25MHz。兩 塊 芯片 均 工作 在 SPI 從機(jī) 模 式,MicroBlaze 系 統(tǒng)的 SPI 口為 主 機(jī)模 式。 主 從機(jī) 的 SPI 工 作方 式均 保 持默 認(rèn): CPHA=0,CPOL=0。 MAX3421 芯片提供了 D+、D-引腳,在串聯(lián) 33Ω電阻后可直接連至 USB 總線。而且芯片內(nèi)部集成了 ESD 保護(hù)和 VBCOMP,使外圍電路進(jìn)一步簡(jiǎn)化。為進(jìn)一步保護(hù)插入的設(shè)備,我們?cè)谥鳈C(jī)工作模式的 MAX3421 芯片外部又添加了限流芯片 MIC2545A,限流電阻選取 470Ω,最大允許電流為 490mA。

      MAX3421 芯片內(nèi)部集成了±15KV ESD 保護(hù)功能,故外圍電路中沒(méi)有再增加靜電防護(hù)電路。

      5.4 指紋模塊

      指紋模塊采用深圳艾菲爾公司設(shè)計(jì)生產(chǎn)的 EFM-200 通用型指紋識(shí)別模塊。它由高速信號(hào)處理器 DSP、指紋傳感器芯片 AES2510、高性能指紋比對(duì)算法等軟硬件組成。

      圖 5-5指 紋模 塊接 口定 義

      指紋模塊通過(guò) SPI 接口與 MicroBlaze 系統(tǒng)通信,指紋模塊為從機(jī),MicroBlaze 系統(tǒng)為主機(jī)。工作模式為:CPHA=0,CPOL=1。Pin3 為 SPI 從機(jī)選擇引腳(低電平使能),Pin7 為SPI CLOCK 引腳,Pin8 為 MISO 引腳,Pin10 為 MOSI 引腳。MicroBlaze 系統(tǒng)中使用 v1.00.e版本的 opb_spi IP 核實(shí)現(xiàn) SPI 接口,opb 總線頻率為 50MHz,分頻系數(shù)采用 16。

      Pin1 為指紋模塊中斷腳,本系統(tǒng)中采用查詢(xún)?cè)撘_的方式來(lái)獲得指紋模塊狀態(tài)信息,當(dāng)該引腳為低電平時(shí),說(shuō)明指紋模塊準(zhǔn)備好數(shù)據(jù)待主機(jī)讀取。Pin9 為電源使能引腳,當(dāng)其置低時(shí),指紋模塊上電。在 MicroBlaze 系統(tǒng)中通過(guò) opb_gpio IP 核對(duì)其進(jìn)行控制。Pin6、Pin5 為電源和地,均與開(kāi)發(fā)板相連。Pin2、Pin4 為保留引腳。圖 4.7 是其示意圖。

      5.5 配置電路

      作為一個(gè)完整的 FPGA 設(shè)計(jì),配置方案是最后一步也是不可缺少的一步。本設(shè)計(jì)中采用是 Xilinx Platform Flash 作為我們?cè)O(shè)計(jì)的配置方案。在 Spartan3E starter kit 開(kāi)發(fā)板上有一塊 4Mbit Xilinx XCF04S serial Platform Flash PROM,通過(guò) iMPACT 工具可以方便地生成FlashPROM 文件,然后采用主串行模式將 Platform Flash PROM 上的存儲(chǔ)信息配置到 FPGA,實(shí)現(xiàn)FPGA 的上電自動(dòng)加載功能。這是最簡(jiǎn)單也是最適合本開(kāi)發(fā)環(huán)境的解決方案。

      參考應(yīng)用文檔 XAPP482,還可應(yīng)用該 Flash 實(shí)現(xiàn)更多功能,限于本設(shè)計(jì)的應(yīng)用,不再做進(jìn)一步探索,提出這一點(diǎn)只是為了說(shuō)明,這個(gè)配置方案也支持對(duì)設(shè)計(jì)的進(jìn)一步開(kāi)發(fā)和改進(jìn)。


      6 軟件流程

      圖 6-1軟件 工作 流程 圖

      首先,當(dāng) USB 接口模塊全部完成初始化之后就開(kāi)始最初的 USB 枚舉(enumeration)過(guò)程,涉及到各種描述的 獲取,包括設(shè)備描述、地址設(shè)置、配置描述、字符串 描述、端點(diǎn)描述等等,而且隨著描述請(qǐng)求的進(jìn)行,部分描述還會(huì)不斷的重復(fù),直到計(jì)算機(jī)完全明白這個(gè) USB設(shè)備究竟 具有什么功能 、該調(diào)用什么驅(qū) 動(dòng)程序來(lái)對(duì)這個(gè) 設(shè)備操作。對(duì)于 市場(chǎng)上眾多的 Flash閃盤(pán),我們保證讓每一條 PC 請(qǐng)求都能夠到達(dá) U 盤(pán),U 盤(pán)的每一個(gè)回應(yīng)都轉(zhuǎn)發(fā)給 PC。這樣保證了直接插到PC 端能夠識(shí)別的 U 盤(pán),使用本作品也能夠被識(shí)別。

      枚舉完成之后 USB 進(jìn)入數(shù)據(jù)傳輸階段,當(dāng)然這些數(shù)據(jù)都是對(duì)底層 USB 控制器而言的數(shù)據(jù),對(duì)于要對(duì) USB 數(shù)據(jù)進(jìn)行解析的 FPGA 中的 MicroBlaze 程序而言,則仍然需要將其中的數(shù) 據(jù) 分 為 三 個(gè) 類(lèi) 型 : CBW 、 數(shù) 據(jù) 、 CSW 。 這 三 種 類(lèi) 型 數(shù) 據(jù) 的 詳 情 請(qǐng) 參 考 4.3 節(jié) 。 當(dāng)MicroBlaze 收到 CBW 之后就將它轉(zhuǎn)發(fā)出去,在轉(zhuǎn)發(fā)的同時(shí)判斷該 CBW 是不是一個(gè)讀寫(xiě)操作的命令,如果是則代表跟在 CBW 之后的數(shù)據(jù)是直接來(lái)自 Flash 或?qū)⒁獙?xiě)到 Flash 中去的,那么在數(shù)據(jù)段的轉(zhuǎn)發(fā)操作之前還需要將他們送到 AES 模塊進(jìn)行 CBC 模式的加解密。在數(shù)據(jù)傳輸完成之后,必須等待 USB 設(shè)備回應(yīng) CSW 表示整個(gè)會(huì)話過(guò)程完整無(wú)誤之后才能進(jìn)入到下一個(gè)請(qǐng)求回應(yīng)的處理循環(huán)中去。

      7 測(cè)試與總結(jié)

      7.1 總述

      系統(tǒng)測(cè)試采用先局部后整體的方案,首先將各個(gè)模塊(USB 數(shù)據(jù)透?jìng)髂K、指紋模塊、AES 加密模塊)在分離的情況下單獨(dú)測(cè)試,通過(guò)對(duì)它的各種操作來(lái)盡可能多的暴露問(wèn)題,并一一解決。最后再將三者組合起來(lái)進(jìn)行總體測(cè)試。

      對(duì) 于硬 件測(cè) 試, 依靠 SPATARN 開(kāi)發(fā) 板上 的按 鈕、 LCD、 LED 燈 來(lái)幫 助調(diào) 試。 同時(shí)RS232 串口能更加方便的將程序中產(chǎn)生的數(shù)據(jù)、變量實(shí)時(shí)的發(fā)送到計(jì)算機(jī)供,借助 PC 端的串口程序(Terminal v1.9b、AccessPort),硬件程序中的數(shù)據(jù)得以在 PC 上保存、分析。測(cè)試中用到的主要工具有:

      1) Bus Hound 5.0。一款用于分析 PC 上 IO 數(shù)據(jù)軟件,能夠?qū)Χ喾N協(xié)議的數(shù)據(jù)包進(jìn)行截取、解析并保存。這些數(shù)據(jù)代表了在 PC 上看到的 USB 數(shù)據(jù),與串 口發(fā)回的 USB 數(shù)據(jù)對(duì)比可以找到程序的漏洞,并作出相應(yīng)的改進(jìn)。

      2) USB- IF Test Suite。USB 開(kāi)發(fā)者論壇提供的用于 USB 標(biāo)準(zhǔn)測(cè)試的軟件,能夠查看當(dāng)前設(shè)備是否符合國(guó)際標(biāo)準(zhǔn)。

      3) HD Tach v3.0.4.0。用來(lái)對(duì) USB 的傳輸速 率測(cè)試,它會(huì)對(duì) U 盤(pán)提供大小不同的數(shù)據(jù)包,分別計(jì)算他們的傳輸速率。

      4) ATTO Disk Benchmark v2.34。同樣是 USB 測(cè)速軟件,使用不同的兩款軟件可以提高測(cè)試數(shù)據(jù)的可信度。

      WinHex 15.0 SR-2。用于觀察 Flash 上每一個(gè)扇區(qū)的數(shù)據(jù)變化,有效地判斷加密的正確性并評(píng)估效果。

      7.2 指紋模塊的測(cè)試

      指紋模塊由深圳艾菲爾公司設(shè)計(jì)生產(chǎn),相關(guān)測(cè)試指標(biāo)及結(jié)果均由艾菲爾公司提供。

      表 7-1 指 紋模 塊 各項(xiàng) 指標(biāo) 性能( 深圳 艾菲 爾 公司 提供)

      技術(shù)指標(biāo)名稱(chēng)

      數(shù)值

      探測(cè)皮層

      真皮層

      認(rèn)假率 FAR(實(shí)際測(cè)試值)

      0.00008%

      拒真率 FRR(實(shí)際測(cè)試值)

      0.005%

      指紋容量

      15 枚

      圖像分辨率

      500dpi

      平均匹配速度

      1 秒

      抗靜電能力

      IEC61000-4-2 標(biāo)準(zhǔn) 15KV

      抗磨損強(qiáng)度高

      1 百萬(wàn)次

      峰值耗電

      150mA

      工作環(huán)境溫度

      -10°C 至 70°C

      最大工作濕度

      98%

      工作電壓

      3.3V

      尺寸

      4.4 x 6.6 cm

      7.3 VHDL 實(shí)現(xiàn)的 AES 加密模塊的測(cè)試

      測(cè)試方案

      National Institute of Standards and Technology (NIST) 發(fā)布 AES 標(biāo)準(zhǔn)的文檔Announcing the ADVANCED ENCRYPTION STANDARD (AES) 中,以附錄的形式給出了一組 128 位密鑰的加解密數(shù)據(jù)。我 們選擇 ISE Simulator 為仿 真器,將這組數(shù)據(jù)的明文與密鑰作為 輸入,看加密后的結(jié)果是否正確。再將加密結(jié)果作為輸入,看解密后是否為原文。

      測(cè)試數(shù)據(jù)

      數(shù)據(jù)來(lái)自于 NIST 發(fā)布的聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS PUBS) 197 。

      明文:00112233445566778899aabbccddeeff

      密鑰:000102030405060708090a0b0c0d0e0f

      密文:69c4e0d86a7b0430d8cdb78070b4c55a

      結(jié)果分析

      在 ISE Simulator 提供的可視化波形輸入編輯平臺(tái) TBW(Test Bench Waveform)下,編輯仿真波形。其中密鑰部分:

      明文部分:

      加密結(jié)果:

      密文為

      69c4e0d86a7b0430d8cdb78070b4c55a,與文檔中給出的完全一樣,說(shuō)明加密電路正確。將密文 69c4e0d86a7b0430d8cdb78070b4c55a 作為輸入,進(jìn)行解密仿真,仿真結(jié)果為:


      與輸入的明文一樣,說(shuō)明 AES 模塊能夠進(jìn)行正確的加解密操作。

      下面是 ISE 中 AES 模塊編譯后的資源消耗情況如表 7-2。

      表 7-2 AES資源消耗表

      其中邏輯資源使用了 1688 Slices,占整個(gè)可用資源的 36%,存儲(chǔ)資源用了 2 塊 RAM,占全部可用量的 10%。關(guān)于 AES 的 VHDL 實(shí)現(xiàn)已經(jīng)有了不少研究成果,在此做一個(gè)比較。電子科技大學(xué)的劉珍楨在其碩士論文《AES 加、解密算法的 FPGA 優(yōu)化設(shè)計(jì)》一文中介紹了他的設(shè)計(jì)。他的設(shè)計(jì)是基于 ATERA 公司的 Stratix 系列 FPGA 芯片,在 QUARTUSII 環(huán)境下實(shí)現(xiàn)的。資源消耗情況如下:

      Total logic elements: 30626

      Total memor y bits: 231544.

      將本模塊同樣放到 QUARTUSII 環(huán)境下進(jìn)行編譯,資源消耗情況如下:

      通過(guò)比較發(fā)現(xiàn),本模塊 在資源消耗方面有明顯的優(yōu)勢(shì),這是以犧牲加解密速 度獲得的。

      劉珍楨的設(shè)計(jì)中,每 5 個(gè)時(shí)鐘周期即可完成一次加密或解密運(yùn)算,而本模塊則需要 80 個(gè)時(shí)鐘周期。本模塊在 50MHz 的系統(tǒng)時(shí)鐘下,最高可達(dá) 10MByte/s 的加解密速度,完全能夠滿(mǎn)足需求。由 此可 見(jiàn) ,AES 模 塊 的設(shè) 計(jì) 在速 度與 資 源消 耗 上取 得了 很 好的 平 衡。 既適 當(dāng)利 用 了FPGA 片上資源,也很好滿(mǎn)足了應(yīng)用需求。

      7.4 作品整合測(cè)試

      將作品插到電腦 USB 端口,再將 U 盤(pán)連接到本作品。在正確輸入指紋之前,電腦不顯示 U 盤(pán)盤(pán)符。正確輸入指紋后,開(kāi)始顯示盤(pán)符,電腦與 U 盤(pán)可以正常通信。傳輸速率測(cè)試結(jié)果如下表:

      再將加密后的文件重新 拷貝到電腦上,打開(kāi)后與原文件一樣,作 品加解密運(yùn)算正確。將加密后的 U 盤(pán)直接連到電腦上,電腦無(wú)法讀寫(xiě) U 盤(pán)中的數(shù)據(jù)。

      通過(guò)以上測(cè)試,作品完全能夠正確完成加解密運(yùn)算,有效識(shí)別指紋,為 U 盤(pán)提供可靠的保護(hù),完全實(shí)現(xiàn)了預(yù)期目標(biāo)。

      7.5 開(kāi)發(fā)板資源資源利用情況

      本 作 品 充 分 利 用 了 開(kāi) 發(fā) 板 上 的 資 源 。 FPGA芯 片 、 Platform Flash 、 LCD顯 示 屏、push-button switchesHirose FX2 、expansion connector 等資源得到了合理利用,并且開(kāi)發(fā)了外擴(kuò)電路板。其中,F(xiàn)PGA 芯片內(nèi)部自用利用率見(jiàn)下表:


      8 作品功能特色與應(yīng)用前景

      8.1 功能特色與創(chuàng)新

      完全靠硬件實(shí)現(xiàn),通用性好,無(wú)需為 PC 編寫(xiě)任何驅(qū)動(dòng)或應(yīng)用程序,同樣也沒(méi)有上傳任何程序到 PC 執(zhí)行,理論上對(duì)所有普通 U 盤(pán)和支持 USB 協(xié)議的操作系統(tǒng)均適用。采用磁盤(pán)分區(qū)加密技術(shù),安全性高于普通的文件加密技術(shù)。采用 AES 加密標(biāo)準(zhǔn)。VHDL 邏輯模塊實(shí)現(xiàn) AES,加解密速度快。由指紋特征產(chǎn)生密鑰,安全強(qiáng)度高,用戶(hù)使用方便。作品可同時(shí)存儲(chǔ)多個(gè)指紋,可同時(shí)服務(wù)于多個(gè)用戶(hù),節(jié)約成本。作品與 U 盤(pán)分離,安全管理更可靠。

      8.2 技術(shù)難點(diǎn)

      在作品的完成過(guò)程中,我們遇到并解決了以下難點(diǎn):

      1 USB 協(xié)議解析

      2 AES 的 VHDL 實(shí)現(xiàn),權(quán)衡資源利用率和加解密速度

      3 磁盤(pán)分區(qū)加密技術(shù)在本作品中的應(yīng)用

      4 設(shè)備對(duì)各種 U 盤(pán)的通用性

      8.3 應(yīng)用前景

      作品擁有廣闊的應(yīng)用前景,能為私人、企業(yè)、政府等機(jī)構(gòu)提供便捷、可靠的 U 盤(pán)安全解決方案。加密器與 U 盤(pán)相分離,減小指紋信息泄露的威脅,在需要保密的部門(mén)更便于安全上的管理,因此將大受歡迎。



      評(píng)論


      相關(guān)推薦

      技術(shù)專(zhuān)區(qū)

      關(guān)閉