基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子_第1頁
基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子_第2頁
基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子_第3頁
基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子_第4頁
基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)-基礎電子摘要:隨著信息量的急劇增長,信息安全日益受到人們重視。一個完整的數(shù)據(jù)加解密系統(tǒng)應該具備安全可靠的密碼機制和加解密算法。本文基于MEMS強鏈、USB控制器和FPGA設計了一種USB接口的高效數(shù)據(jù)加解密系統(tǒng),采用AES加密算法。普通IDE硬盤掛接該系統(tǒng)后成為安全性極高的加密USB移動硬盤,其平均數(shù)據(jù)吞吐率接近普通U盤,達到10MB/s.

1.系統(tǒng)結(jié)構(gòu)布局

該系統(tǒng)由CypressCY7C68013USB2.0控制器、AlteraEP2C35FPGA和MEMS強鏈構(gòu)成,圖1描述了整個系統(tǒng)的硬件布局。

MEMS強鏈負責對用戶輸入的密碼進行驗證。CY7C68013USB控制器內(nèi)含增強型51核,它不但能高效處理USB協(xié)議事務,而且是整個系統(tǒng)的控制中心。EP2C35FPGA一端連接USB控制芯片的GPIF接口,一端連接IDE硬盤,它負責從IDE總線中區(qū)分出控制信號、讀寫硬盤寄存器的數(shù)據(jù)信號和讀寫硬盤扇區(qū)的數(shù)據(jù)信號,然后僅對寫入硬盤扇區(qū)的數(shù)據(jù)作加密處理,對讀出硬盤扇區(qū)的數(shù)據(jù)作解密處理。

2.MEMS強鏈

MEMS強鏈的棘爪能卡住棘輪,從而能定位到固定的位置,棘爪裝有電磁驅(qū)動型電機,使其具有誤碼鑒別與自復位功能,因而可用于信息安全,實現(xiàn)密碼鎖的功能。鑒碼機構(gòu)由兩組電磁型微步進電機驅(qū)動反干涉齒輪集A和B,反干涉碼輪集中機械固化了密碼。反干涉齒輪集在正確解碼時,碼齒之間互相沒有接觸;當出現(xiàn)錯碼時,碼齒相互干涉,反干涉齒輪集卡死。使用光電耦合機構(gòu),在正確接收到24位密碼時光電能量耦合,系統(tǒng)開啟。圖2是MSMS強鏈結(jié)構(gòu)圖。

3.物理密鑰與密碼

物理密鑰是相對于邏輯密鑰而言的,邏輯密鑰通常以二進制形式存在于芯片內(nèi)部ROM區(qū),容易被破解。而物理密鑰固化在機械結(jié)構(gòu)內(nèi)部。本設計采用的反向嚙合齒輪集鑒碼機構(gòu)所蘊含的密鑰就屬于物理密鑰。它的結(jié)構(gòu)相當隱含,不是人士即使知道了鑒碼機構(gòu),也很難推出其密碼。

密碼開始時,USB控制器把接收到的來自PC的24位待驗證二進制密碼以脈沖的形式傳遞給強鏈。強鏈的電機會根據(jù)脈沖驅(qū)動碼輪。若密碼正確,反干涉齒輪*無摩擦的走通一周回到原位;只要有一位密碼錯誤,反干涉齒輪*在該位卡死。USB控制器根據(jù)強鏈的反饋信號作出判斷,如果驗證通過,則將該系統(tǒng)枚舉成一個可移動磁盤,并把該正確密碼傳遞給FPGA,作為AES加密算法的密鑰;否則向PC機返回驗證失敗的信息。

4.ATA協(xié)議控制器的實現(xiàn)

從密碼通過,枚舉開始的那一刻起,USB控制器得到了對硬盤的訪問權。根據(jù)ATA協(xié)議,對支持UltraDMA傳輸方式的IDE硬盤而言,操作歸結(jié)為兩種,對硬盤接口寄存器讀寫以及對硬盤扇區(qū)進行UltraDMA批量扇區(qū)。為了對硬盤數(shù)據(jù)進行加解密,我們把FPGA插入連接GPIF接口和硬盤接口的IDE總線,這樣所有控制信號和數(shù)據(jù)信號都要通過FPGA,受到FPGA的監(jiān)視和控制。

FPGA必須實現(xiàn)有限狀態(tài)機,能夠?qū)π盘栠M行協(xié)議解析,區(qū)分出那些需要加解密的扇區(qū)數(shù)據(jù),也就是在UltraDMA傳輸過程中出現(xiàn)在數(shù)據(jù)總線上的數(shù)據(jù)。在PIO狀態(tài)時,F(xiàn)PGA讓所有信號保持直通,因而讀寫硬盤接口寄存器的操作不受任何影響,但狀態(tài)機監(jiān)測對硬盤接口寄存器的寫入操作。一旦發(fā)現(xiàn)寫入命令寄存器的命令代碼為DMA讀(0xC8或0x25)或DMA寫(0xCA或0x35)命令,則有限狀態(tài)機進入DMA狀態(tài)。

因為考慮到數(shù)據(jù)經(jīng)加解密模塊會有200ns左右的延時,如果控制信號仍然直通一定不能滿足DMA傳輸協(xié)議的時序要求,所以理想的辦法是把控制信號也延時相應的時間。

延時多少的確定很困難,況且也沒有必要,我們采取的方法是設計了三個主要模塊:數(shù)據(jù)接收模塊、數(shù)據(jù)處理模塊和數(shù)據(jù)發(fā)送模塊,連成一條處理流水線,這樣既能對數(shù)據(jù)流進行完全時序化的控制,又能維持較高的數(shù)據(jù)吞吐。如圖3所示。數(shù)據(jù)接收模塊的任務是把硬盤發(fā)送過來的讀扇區(qū)數(shù)據(jù)或者USB控制器發(fā)送來的寫扇區(qū)數(shù)據(jù)正確的接收和緩存;數(shù)據(jù)處理模塊的任務是對扇區(qū)數(shù)據(jù)進行加密或解密處理;數(shù)據(jù)發(fā)送模塊的任務是把處理完的結(jié)果數(shù)據(jù)發(fā)送出去。

由于數(shù)據(jù)流是雙向的,所以兩個方向上各有一條數(shù)據(jù)收發(fā)流水線。在DMA傳輸中,只有一條流水線是工作的,且它們暫時獲得IDE總線的控制權。

不失一般性,我們討論下執(zhí)行DMA讀命令的全過程。首先,在PIO狀態(tài)下將DMA讀命令的代碼0xC8(或0x25)寫入硬盤的命令寄存器。此后狀態(tài)機進入DMA讀狀態(tài),總線切換給DMA讀數(shù)據(jù)接收模塊和DMA讀數(shù)據(jù)發(fā)送模塊。DMA讀數(shù)據(jù)接收模塊與硬盤進行握手確認,啟動UDMA讀傳輸,此后每當硬盤DMAstrobe信號(DMA同步信號)發(fā)生跳變,就對16位硬盤數(shù)據(jù)總線進行采樣,并更新CRC接收校驗;每采樣8次則整合成一個128位并行數(shù)據(jù),提供給AES解密模塊,該模塊取走這128位數(shù)據(jù)開始新一輪AES解密迭代運算,同時輸出前一輪處理完的128位解密數(shù)據(jù),并拆分為8個16位并行數(shù)據(jù),陸續(xù)存入一個16位寬的FIFO。與此同時,DMA讀數(shù)據(jù)發(fā)送模塊查詢到FIFO中出現(xiàn)了數(shù)據(jù),就開始不斷的從中讀取,并放在16位數(shù)據(jù)總線上提供給USB控制器,每放數(shù)據(jù),便翻轉(zhuǎn)DMAstrobe電平使得USB控制器的GPIF接口能夠同步接收數(shù)據(jù),同時更新CRC發(fā)送校驗。

當硬盤把所有指定數(shù)量的加密數(shù)據(jù)都發(fā)送給FPGA后會收到FPGA的CRC接收校驗反饋,若與硬盤內(nèi)部的CRC校驗一致,則硬盤認為這次DMA讀命令被正確執(zhí)行。

當FPGA把所有處理完的解密數(shù)據(jù)都發(fā)送給USB控制器后也會收到USB控制器的CRC校驗反饋,若與FPGA內(nèi)部的CRC發(fā)送校驗一致,則可以認為完整的含解密的DMA讀命令被正確執(zhí)行。

圖3中的全局控制狀態(tài)機負責整個系統(tǒng)的控制和協(xié)調(diào),它實時的監(jiān)測PIO寫入命令,并在恰當?shù)臅r機把IDE總線控制權切換給加密流水線或解密流水線。當加解密流水線執(zhí)行完DMA傳輸命令后,總線控制權會重新交還給全局控制狀態(tài)機。

5.AES加密模塊的實現(xiàn)

AES的設計原理可參考文獻[1],下面只簡單介紹算法過程。AES是一個迭代的分組密碼,每一輪迭代稱為一個輪變換,包括一個混合和三個代換:

(1)字節(jié)代換(SubBytes):利用S盒對狀態(tài)的每一個字節(jié)進行非線性變換。

(2)行移位(ShiftRow):對狀態(tài)的每一行,按不同的位移量進行行移位。

(3)列混合(MixColumn):對狀態(tài)中的每一列并行應用列混合,在一輪省略該步。

(4)擴展密鑰加(AddRoundKey):與擴展密鑰異或。加密算法的流程如圖4所示。

相應的,解密算法使用逆序的擴展密鑰,輪變換分別為InvSubByte,InvShiftRow,InvMixColumn,數(shù)據(jù)流程稍有不同。

我們設計的AES加密運算模塊以128位為一個分組,完成一個分組的運算需要11個時鐘周期。第1個時鐘周期,密鑰擴展模塊輸出第1個擴展密碼,也就是初始密碼本身;同時初始變換模塊用這個擴展密碼對128位明文作AddRoundKey操作。

第2個到第11個時鐘周期,密鑰擴展模塊依次生成10個擴展密碼,同時,輪變換模塊利用這些擴展密碼對輸入密文作10個輪次的輪變換,其中一輪缺少列混合操作,然后輸出終的密文,結(jié)束一個分組的運算。

6.數(shù)據(jù)吞吐率分析

UltraDMA在模式2下的數(shù)據(jù)傳輸率為33.33MB/s。由于FPGA全局時鐘頻率為100MHz,所以加解密一個128位分組需要110ns。加上數(shù)據(jù)的輸入和輸出階段各占用一個時鐘周期,總共需要130ns。所以加解密模塊的數(shù)據(jù)處理速率約為61.54MB/s,完夠達到實時處理的要求。

7.結(jié)束語

本文提出了一種安全高效的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)。其中,MEMS強鏈的應用開辟了系統(tǒng)物理的新方向;UltraDMA協(xié)議接口的FPGA實現(xiàn)大大提高了硬盤讀寫的吞吐率,同時AES加解模塊的處理速率又能完全滿足UltraDMA傳輸帶寬,兩者的有機協(xié)作使得一種高效的硬件加解密流水線得以實現(xiàn)。

本文作者創(chuàng)新點:把MEMS強鏈應用到計算機信息安全領域,成為一種可以電機驅(qū)動的機械密碼鎖,實現(xiàn)了系統(tǒng)的物理;開發(fā)CypressCY7C68013USB控制器固件,實現(xiàn)USB-IDE橋,并使用它的通用IO控制強鏈電機;硬盤扇區(qū)讀寫全部采用UltraDMA方式,大大提高數(shù)據(jù)吞吐率,基于FPGA的ATA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論