您的位置:電子發(fā)燒友網 > 電子技術應用 > 行業(yè)新聞 > 可編程邏輯 >
基于MEMS強鏈和FPGA的USB移動硬盤數據加解密系統(tǒng)
基于MEMS強鏈和FPGA的USB移動硬盤數據加解密系統(tǒng)
隨著信息量的急劇增長,信息安全日益受到人們重視。一個完整的數據加解密系統(tǒng)應該 具備安全可靠的密碼認證機制和加解密算法。本文基于MEMS 強鏈、USB 控制器和FPGA 設 計了一種USB 接口的高效數據加解密系統(tǒng),采用AES 加密算法。普通IDE 硬盤掛接該系統(tǒng)后 成為安全性極高的加密USB 移動硬盤,其平均數據吞吐率接近普通U 盤,達到10MB/s.
1. 系統(tǒng)結構布局
該系統(tǒng)由Cypress CY7C68013 USB2.0 控制器、Altera EP2C35 FPGA 和MEMS 強鏈構成, 圖1 描述了整個系統(tǒng)的硬件布局。
MEMS 強鏈負責對用戶輸入的密碼進行驗證。CY7C68013 USB 控制器內含增強型51 核,它不 但能高效處理USB 協(xié)議事務,而且是整個系統(tǒng)的控制中心。EP2C35 FPGA 一端連接USB 控制 芯片的GPIF 接口,一端連接IDE 硬盤,它負責從IDE 總線中區(qū)分出控制信號、讀寫硬盤寄存器的數據信號和讀寫硬盤扇區(qū)的數據信號,然后僅對寫入硬盤扇區(qū)的數據作加密處理,對讀出 硬盤扇區(qū)的數據作解密處理。
2. MEMS 強鏈
MEMS 強鏈的棘爪能卡住棘輪,從而能精確定位到固定的位置,棘爪裝有電磁驅動型電機, 使其具有誤碼鑒別與自復位功能,因而可用于信息安全,實現密碼鎖的功能。鑒碼機構由兩組 電磁型微步進電機驅動反干涉齒輪集A 和B,反干涉碼輪集中機械固化了密碼。反干涉齒輪集 在正確解碼時,碼齒之間互相沒有接觸;當出現錯碼時,碼齒相互干涉,反干涉齒輪集卡死。 使用光電耦合機構,在正確接收到24 位密碼時光電能量耦合,系統(tǒng)開啟。圖2 是MSMS 強鏈 結構圖。
3. 物理密鑰與密碼認證
物理密鑰是相對于邏輯密鑰而言的,邏輯密鑰通常以二進制形式存在于芯片內部ROM 區(qū),容易被破解。而物理密鑰固化在機械結構內部。本設計采用的反向嚙合齒輪集鑒碼機構所蘊含 的密鑰就屬于物理密鑰。它的結構相當隱含,不是專業(yè)人士即使知道了鑒碼機構,也很難推出其密碼。
密碼認證開始時,USB 控制器把接收到的來自PC 的24 位待驗證二進制密碼以脈沖的形 式傳遞給強鏈。強鏈的電機會根據脈沖驅動碼輪。若密碼正確,反干涉齒輪*無摩擦的走通 一周回到原位;只要有一位密碼錯誤,反干涉齒輪*在該位卡死。USB 控制器根據強鏈的反 饋信號作出判斷,如果驗證通過,則將該系統(tǒng)枚舉成一個可移動磁盤,并把該正確密碼傳遞給 FPGA,作為AES 加密算法的密鑰;否則向PC 機返回驗證失敗的信息。
4. ATA 協(xié)議控制器的實現
從密碼認證通過,枚舉開始的那一刻起,USB 控制器得到了對硬盤的訪問權。 根據 ATA 協(xié)議,對支持Ultra DMA 傳輸方式的IDE 硬盤而言,操作歸結為兩種,對硬盤接 口寄存器讀寫以及對硬盤扇區(qū)進行Ultra DMA 批量扇區(qū)。為了對硬盤數據進行加解密,我們把 FPGA 插入連接GPIF 接口和硬盤接口的IDE 總線,這樣所有控制信號和數據信號都要通過 FPGA,受到FPGA 的監(jiān)視和控制。
FPGA 必須實現有限狀態(tài)機,能夠對信號進行協(xié)議解析,區(qū) 分出那些需要加解密的扇區(qū)數據,也就是在Ultra DMA 傳輸過程中出現在數據總線上的數據。 在PIO 狀態(tài)時,FPGA 讓所有信號保持直通,因而讀寫硬盤接口寄存器的操作不受任何影響,但狀態(tài)機監(jiān)測對硬盤接口寄存器的寫入操作。一旦發(fā)現寫入命令寄存器的命令代碼為DMA 讀 (0xC8 或0x25)或DMA 寫(0xCA 或0x35)命令,則有限狀態(tài)機進入DMA 狀態(tài)。
因為考慮到數據經加解密模塊會有200ns 左右的延時,如果控制信號仍然直通一定不能滿 足DMA 傳輸協(xié)議的時序要求,所以理想的辦法是把控制信號也延時相應的時間。
延時多少的確定很困難,況且也沒有必要,我們采取的方法是設計了三個主要模塊:數據 接收模塊、數據處理模塊和數據發(fā)送模塊,連成一條處理流水線,這樣既能對數據流進行完全 時序化的控制,又能維持較高的數據吞吐。如圖3 所示。數據接收模塊的任務是把硬盤發(fā)送過來的讀扇區(qū)數據或者USB 控制器發(fā)送來的寫扇區(qū)數 據正確的接收和緩存;數據處理模塊的任務是對扇區(qū)數據進行加密或解密處理;數據發(fā)送模塊 的任務是把處理完的結果數據發(fā)送出去。
由于數據流是雙向的,所以兩個方向上各有一條數據 收發(fā)流水線。在一次DMA 傳輸中,只有一條流水線是工作的,且它們暫時獲得IDE 總線的控 制權。
不失一般性,我們討論下執(zhí)行DMA 讀命令的全過程。首先,在PIO 狀態(tài)下將DMA 讀命 令的代碼0xC8(或0x25)寫入硬盤的命令寄存器。此后狀態(tài)機進入DMA 讀狀態(tài),總線切換給 DMA 讀數據接收模塊和DMA 讀數據發(fā)送模塊。DMA 讀數據接收模塊與硬盤進行握手確認, 啟動UDMA 讀傳輸,此后每當硬盤DMA strobe 信號(DMA 同步信號)發(fā)生跳變,就對16 位 硬盤數據總線進行采樣,并更新CRC 接收校驗;每采樣8 次則整合成一個128 位并行數據,提 供給AES 解密模塊,該模塊取走這128 位數據開始新一輪AES 解密迭代運算,同時輸出前一 輪處理完的128 位解密數據,并拆分為8 個16 位并行數據,陸續(xù)存入一個16 位寬的FIFO。與 此同時,DMA 讀數據發(fā)送模塊查詢到FIFO 中出現了數據,就開始不斷的從中讀取,并放在16 位數據總線上提供給USB 控制器,每放一次數據,便翻轉一次DMA strobe 電平使得USB 控制 器的GPIF 接口能夠同步接收數據,同時更新CRC 發(fā)送校驗。
當硬盤把所有指定數量的加密數據都發(fā)送給FPGA 后會收到FPGA 的CRC 接收校驗反饋, 若與硬盤內部的CRC 校驗一致,則硬盤認為這次DMA 讀命令被正確執(zhí)行。
當 FPGA 把所有處理完的解密數據都發(fā)送給USB 控制器后也會收到USB 控制器的CRC 校 驗反饋,若與FPGA 內部的CRC 發(fā)送校驗一致,則可以認為一次完整的含解密的DMA 讀命令 被正確執(zhí)行。
圖 3 中的全局控制狀態(tài)機負責整個系統(tǒng)的控制和協(xié)調,它實時的監(jiān)測PIO 寫入命令,并在恰當的時機把IDE 總線控制權切換給加密流水線或解密流水線。當加解密流水線執(zhí)行完一次 DMA 傳輸命令后,總線控制權會重新交還給全局控制狀態(tài)機。
5. AES 加密模塊的實現
AES 的設計原理可參考文獻[1],下面只簡單介紹算法過程。AES 是一個迭代的分組密碼, 每一輪迭代稱為一個輪變換,包括一個混合和三個代換:
(1)字節(jié)代換(SubBytes):利用S 盒對狀態(tài)的每一個字節(jié)進行非線性變換。
(2)行移位(ShiftRow):對狀態(tài)的每一行,按不同的位移量進行行移位。
(3)列混合(MixColumn):對狀態(tài)中的每一列并行應用列混合,在最后一輪省略該步。
(4)擴展密鑰加(AddRoundKey):與擴展密鑰異或。 加密算法的流程如圖4 所示。
相應的,解密算法使用逆序的擴展密鑰,輪變換分別為InvSubByte,InvShiftRow, InvMixColumn,數據流程稍有不同。
我們設計的AES 加密運算模塊以128 位為一個分組,完成一個分組的運算需要11 個時鐘 周期。第1 個時鐘周期,密鑰擴展模塊輸出第1 個擴展密碼,也就是初始密碼本身;同時初始 變換模塊用這個擴展密碼對128 位明文作AddRoundKey 操作。
第2 個到第11 個時鐘周期,密 鑰擴展模塊依次生成10 個擴展密碼,同時,輪變換模塊利用這些擴展密碼對輸入密文作10 個 輪次的輪變換,其中最后一輪缺少列混合操作,然后輸出最終的密文,結束一個分組的運算。
6. 數據吞吐率分析
Ultra DMA 在模式2 下的數據傳輸率為33.33MB/s。由于FPGA 全局時鐘頻率為100MHz, 所以加解密一個128 位分組需要110ns。加上數據的輸入和輸出階段各占用一個時鐘周期,總共 需要130ns。所以加解密模塊的數據處理速率約為61.54MB/s,完全能夠達到實時處理的要求。
7. 結束語
本文提出了一種安全高效的USB 移動硬盤數據加解密系統(tǒng)。其中,MEMS 強鏈的應用開辟 了系統(tǒng)物理認證的新方向;Ultra DMA 協(xié)議接口的FPGA 實現大大提高了硬盤讀寫的吞吐率,同時AES 加解模塊的處理速率又能完全滿足Ultra DMA 傳輸帶寬,兩者的有機協(xié)作使得一種高 效的硬件加解密流水線得以實現。
相關閱讀:
- [電子動態(tài)] MEMS產業(yè)預強勢發(fā)展 2010-03-17
- [電子動態(tài)] 全球五大MEMS買家 各具特色 2010-03-25
- [電子動態(tài)] Altera和Apical交付WDR FPGA監(jiān)控應用解決方 2010-03-25
- [電子動態(tài)] 全球前三十大MEMS廠營收下滑 2010-03-31
- [電子動態(tài)] FPGA實現與40G QSFP光學模塊的互操作性 2010-04-02
(責任編輯:發(fā)燒友)
發(fā)表評論:
最新評論
已有0條評論,共64人參與,點擊查看相關下載
- fpga入門教程下載pdf8776
- FPGA-SOPC入門中文教程V2.037305
- Altera FPGA/CPLD設計(高級篇)4848
- Altera FPGA/CPLD設計 (基礎篇)4463
- 可編程邏輯陳列fpga和cpld3362
電子技術文章排行
本類排行
總排行