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