摘要:設(shè)計(jì)了基于FPGA芯片的硬盤(pán)數(shù)據(jù)加密系統(tǒng)。該加密系統(tǒng)運(yùn)行在Ultra DMA傳輸模式下,其加密核支持常用對(duì)稱(chēng)密碼算法(AES、DES、3DES)和用戶自主開(kāi)發(fā)的各種對(duì)稱(chēng)密碼算法。測(cè)試結(jié)果表明,在Ultra DMA模式2下系統(tǒng)運(yùn)行速度為32 Mbps,對(duì)計(jì)算機(jī)正常運(yùn)行沒(méi)有任何影響。
關(guān)鍵詞:極端直接存儲(chǔ)器存取模式; 硬盤(pán)數(shù)據(jù)加密系統(tǒng);現(xiàn)場(chǎng)可編程門(mén)陣列
中圖分類(lèi)號(hào):TP309.7文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2007)12-0174-03
筆記本電腦和個(gè)人電腦硬盤(pán)被盜而導(dǎo)致硬盤(pán)上的數(shù)據(jù)泄密,已經(jīng)成為人們關(guān)心的信息安全問(wèn)題。在以往的解決方案中,通常采用軟件進(jìn)行加密。但軟件加密存在著加密速度低、降低系統(tǒng)性能和加密軟件自身安全性等方面的問(wèn)題。以前的基于硬件的數(shù)據(jù)加密系統(tǒng)速度較慢,僅支持PIO(programming input/output model)模式下的數(shù)據(jù)傳輸。因此,研究Ultra DMA傳輸模式下硬盤(pán)數(shù)據(jù)加密系統(tǒng)具有重要意義。本文提出了一種在Ultra DMA傳輸模式下基于FPGA 芯片的硬盤(pán)數(shù)據(jù)加密系統(tǒng)。與以往的硬件加密方法相比,該加密系統(tǒng)可同時(shí)支持PIO傳輸模式和Ultra DMA傳輸模式下的數(shù)據(jù)加/解密功能,明顯地提高了加密系統(tǒng)的運(yùn)行速度。此外,該加密系統(tǒng)還具有對(duì)用戶完全透明、穩(wěn)定性和安全性高等特點(diǎn)。
1ATA/IDE接口硬盤(pán)
IDE(integrated drive electronics)是由Compaq和Conner共同開(kāi)發(fā)并由Western Digital公司生產(chǎn)的控制器接口。它遵循ATA/ATAPI(AT attachment with packet interface)協(xié)議體系。其傳輸方式有PIO和DMA兩種。PIO傳輸模式通過(guò)CPU執(zhí)行I/O端口指令來(lái)進(jìn)行數(shù)據(jù)的讀寫(xiě),CPU占有率高,數(shù)據(jù)傳輸速率低,其傳輸模式分為PIO Mode1~PIO Mode5,傳輸速率為3.3~16.6 MBps。DMA傳輸模式不需要CPU參與數(shù)據(jù)交換,大大提高了傳輸速率。DMA傳輸模式分為單字DMA、多字DMA和Ultra DMA。現(xiàn)行硬盤(pán)中,均采用Ultra DMA傳輸模式,其有六種模式,即Ultra DMA Mode0~Ultra DMA Mode5,傳輸速率最高可達(dá)133 MBps。
2ATA/IDE接口硬盤(pán)數(shù)據(jù)加密系統(tǒng)體系
本文所設(shè)計(jì)的ATA/IDE接口硬盤(pán)的加密系統(tǒng)整體設(shè)計(jì)如圖1所示。在此硬盤(pán)加密系統(tǒng)體系中,PIO控制模塊和DMA控制模塊分別對(duì)硬盤(pán)的PIO和DMA兩種工作方式下的控制信號(hào)和數(shù)據(jù)信號(hào)進(jìn)行控制,將待處理的數(shù)據(jù)在加密核中進(jìn)行加/解密處理后,再傳輸給數(shù)據(jù)接收方。由于PIO模式下數(shù)據(jù)處理相對(duì)簡(jiǎn)單,本文著重描述Ultra DMA模式下的數(shù)據(jù)加密系統(tǒng)設(shè)計(jì)。本文所設(shè)計(jì)的在Ultra DMA工作模式下數(shù)據(jù)加密系統(tǒng)的體系結(jié)構(gòu)如圖2所示。
2.1狀態(tài)機(jī)
此模塊根據(jù)主機(jī)端的CSDA(CS1、CS0、DA2、DA1、DA0),DMACK、DIOR、DIOW和硬盤(pán)端的DMARQ、IORDY、INTRQ信號(hào)來(lái)判定主機(jī)與硬盤(pán)當(dāng)前的傳輸模式和工作狀態(tài)。狀態(tài)機(jī)控制著信號(hào)控制模塊的產(chǎn)生響應(yīng)的信號(hào),以及數(shù)據(jù)加密核的工作狀態(tài)。
2.2信號(hào)控制
此模塊根據(jù)主機(jī)與硬盤(pán)所處的工作狀態(tài)及傳輸模式,產(chǎn)生相應(yīng)的控制信號(hào)C_DMARQ、C_IORDY、C_INTRQ發(fā)送給主機(jī),C_CSDA、C_DMACK、C_DIOW、C_DIOR發(fā)送硬盤(pán)。
2.3加密核
該模塊作用是采用對(duì)稱(chēng)密碼算法對(duì)主機(jī)與硬盤(pán)之間傳輸?shù)摹⑿枰?解密的數(shù)據(jù)進(jìn)行加/解密操作。本文設(shè)計(jì)支持AES、DES、3DES以及用戶自主開(kāi)發(fā)的對(duì)稱(chēng)密碼算法。
2.4CRC校驗(yàn)
計(jì)算在DMA傳輸模式下的CRC校驗(yàn)碼,并進(jìn)行校驗(yàn)碼的比較。當(dāng)接收到的校驗(yàn)碼與計(jì)算得到的值不一致,則報(bào)錯(cuò);否則,不報(bào)錯(cuò)。在主機(jī)端和硬盤(pán)端各有一個(gè)CRC(cyclical redundancy check)校驗(yàn)?zāi)K,對(duì)進(jìn)出加密核的數(shù)據(jù)分別進(jìn)行CRC校驗(yàn)碼的計(jì)算和比較,完成校驗(yàn)過(guò)程。CRC校驗(yàn)碼的計(jì)算生成過(guò)程如圖3所示。
2.5FIFO數(shù)據(jù)存儲(chǔ)單元
由于加密核的處理速率與數(shù)據(jù)傳輸速率之間不完全一致,在加密核的兩端分別加入一個(gè)FIFO作為數(shù)據(jù)緩沖,以減小加密核的處理影響數(shù)據(jù)傳輸?shù)乃俾省?/p>
3硬盤(pán)數(shù)據(jù)加密系統(tǒng)的FPGA實(shí)現(xiàn)
DMA傳輸模式的狀態(tài)機(jī)設(shè)計(jì)如圖4所示。
根據(jù)DMA傳輸模式的工作原理和各信號(hào)的時(shí)序關(guān)系,將其工作過(guò)程劃分為初始化狀態(tài)、PIO傳輸模式狀態(tài)、讀DMA空閑態(tài)、讀DMA通道建立狀態(tài)、讀DMA數(shù)據(jù)傳輸狀態(tài)(DMA數(shù)據(jù)解密狀態(tài))、讀DMA傳輸結(jié)束狀態(tài)、寫(xiě)DMA空閑態(tài)、寫(xiě)DMA通道建立狀態(tài)、寫(xiě)DMA數(shù)據(jù)傳輸狀態(tài)(DMA數(shù)據(jù)加密狀態(tài))、寫(xiě)DMA傳輸結(jié)束狀態(tài)、CRC校驗(yàn)狀態(tài)共11個(gè)工作狀態(tài)。
主機(jī)上電進(jìn)入初始態(tài)(即硬件復(fù)位),加密系統(tǒng)和硬盤(pán)均處于復(fù)位狀態(tài)。當(dāng)復(fù)位信號(hào)置高,即reset=1時(shí),進(jìn)入PIO傳輸模式狀態(tài)。由于在操作系統(tǒng)啟動(dòng)過(guò)程中需要傳輸一些計(jì)算機(jī)硬件和系統(tǒng)的基本信息,需要主機(jī)參與,這些數(shù)據(jù)均是在PIO模式下傳輸。當(dāng)主機(jī)發(fā)出ReadDMA命令時(shí),狀態(tài)機(jī)跳轉(zhuǎn)到讀DMA空閑狀態(tài);在讀DMA空閑狀態(tài)中,當(dāng)主機(jī)向硬盤(pán)發(fā)出WriteDMA命令時(shí),狀態(tài)機(jī)則跳轉(zhuǎn)到寫(xiě)DMA空閑態(tài)。若有DMA傳輸請(qǐng)求DMARQ=1時(shí),則進(jìn)行讀DMA通道建立狀態(tài);否則狀態(tài)不變,此時(shí),主機(jī)和硬盤(pán)的數(shù)據(jù)通過(guò)PIO模式傳輸。當(dāng)處于讀DMA通道建立狀態(tài)中,主機(jī)與加密系統(tǒng)以及加密系統(tǒng)與硬盤(pán)之間的DMA傳輸通道建立,當(dāng)硬盤(pán)響應(yīng)DMA請(qǐng)求將DMACK信號(hào)置高,即DMACK=1時(shí),狀態(tài)機(jī)進(jìn)入讀DMA數(shù)據(jù)傳輸狀態(tài)。在讀DMA數(shù)據(jù)傳輸態(tài)中,硬盤(pán)數(shù)據(jù)通過(guò)DMA通道傳輸給加密系統(tǒng),經(jīng)過(guò)解密操作后轉(zhuǎn)發(fā)給主機(jī)。當(dāng)DMA傳輸結(jié)束,即DMARQ=0時(shí),加密系統(tǒng)需要對(duì)CRC校驗(yàn)碼進(jìn)行校驗(yàn),并完成錯(cuò)誤處理;之后,當(dāng)DMACK=1時(shí),狀態(tài)機(jī)回到讀DMA空閑態(tài)。由于寫(xiě)DMA操作與讀DMA操作過(guò)程相似,只是在對(duì)數(shù)據(jù)處理過(guò)程為加密操作,本文不再對(duì)此傳輸過(guò)程的狀態(tài)機(jī)跳轉(zhuǎn)作詳細(xì)描述。
對(duì)本文設(shè)計(jì)的加密系統(tǒng)進(jìn)行編程、編譯、綜合、仿真得到以下波形圖(圖5)。圖5中信號(hào)state為內(nèi)部狀態(tài)機(jī)。其中狀態(tài)0~5分別為復(fù)位態(tài)、PIO傳輸模式態(tài)、讀DMA空閑態(tài)、讀DMA通道建立態(tài)、讀DMA數(shù)據(jù)傳輸解密態(tài)和CRC校驗(yàn)錯(cuò)誤處理態(tài)。在狀態(tài)4中,數(shù)據(jù)經(jīng)加密核處理后與加密系統(tǒng)生成的選通(strobe)信號(hào)Host IORDY配合傳送給主機(jī)。數(shù)據(jù)流經(jīng)加密核后有一定的延時(shí),但是不影響整體系統(tǒng)的傳輸速率。此后,在狀態(tài)5中,加密系統(tǒng)將對(duì)主機(jī)發(fā)送的CRC校驗(yàn)碼進(jìn)行比較和錯(cuò)誤處理。
4系統(tǒng)測(cè)試
4.1功能測(cè)試
將加密系統(tǒng)加載在主機(jī)與硬盤(pán)之間,對(duì)硬盤(pán)進(jìn)行分區(qū)和格式化,再對(duì)硬盤(pán)進(jìn)行數(shù)據(jù)讀寫(xiě)操作,數(shù)據(jù)讀寫(xiě)完全正確,無(wú)誤碼情況。在不加載硬盤(pán)數(shù)據(jù)加密系統(tǒng),硬盤(pán)直接與主機(jī)進(jìn)行連接的情況下啟動(dòng)計(jì)算機(jī),結(jié)果無(wú)法找到硬盤(pán)上的操作系統(tǒng)和分區(qū)信息——硬盤(pán)數(shù)據(jù)被加密。再次將加密系統(tǒng)加載到硬盤(pán)與主機(jī)之間,主機(jī)又可以正常啟動(dòng)并能看到所寫(xiě)入硬盤(pán)的數(shù)據(jù),測(cè)試結(jié)果與正常情況相同。通過(guò)試驗(yàn)證明,加密系統(tǒng)設(shè)計(jì)正確,工作正常。
4.2性能測(cè)試
在測(cè)試實(shí)驗(yàn)中采用測(cè)試硬盤(pán)讀/寫(xiě)速率的工具HD-TECH對(duì)掛在硬盤(pán)加密系統(tǒng)上的硬盤(pán)進(jìn)行測(cè)試。被測(cè)試硬盤(pán)是希捷ST 80 GB。實(shí)驗(yàn)結(jié)果如圖6、7和表1所示。由圖表可以看出,在正常工作的情況下,加掛硬盤(pán)加密系統(tǒng)對(duì)硬盤(pán)的突發(fā)傳輸速率(即在Ultra DMA模式2下傳輸速率)并沒(méi)有太大的影響。這表明該硬盤(pán)加密系統(tǒng)經(jīng)達(dá)到了設(shè)計(jì)中提出的要求。
5結(jié)束語(yǔ)
a)測(cè)試結(jié)果表明,筆者已成功研發(fā)出一種基于FPGA芯片在硬盤(pán)加密系統(tǒng)。該加密系統(tǒng)加密速率在Ultra DMA傳輸模式2下達(dá)到32 Mbps,對(duì)硬盤(pán)讀寫(xiě)速率基本無(wú)影響,達(dá)到了設(shè)計(jì)的要求。
b)在這種加密系統(tǒng)中,硬盤(pán)上的操作系統(tǒng)和用戶數(shù)據(jù)一
起被加密,信息隱藏級(jí)別高。同時(shí),由于操作系統(tǒng)被加密,加密
系統(tǒng)對(duì)操作系統(tǒng)是透明的,支持多操作系統(tǒng)下的IDE 硬盤(pán)數(shù)據(jù)加密。這種數(shù)據(jù)流硬加密體系結(jié)構(gòu)具有良好的可擴(kuò)展性,它可以升級(jí)并應(yīng)用到不同的數(shù)據(jù)安全傳輸領(lǐng)域。
參考文獻(xiàn):
[1]PETER T M. Working T13,Draft 1115D, Information technology: AT attachment with packet interface-5(ATA/ATAPI-4)[S/OL].(1998)[2002-02-29].http://www.t13.org/.
[2]MAYER C H, MATYAS S M. Cryptography: a new dimension in computer data security[M]. New York: Wiley, 1987.
[3]PATTERSON C. High performance DES encryption in Virtex FPGAs using JBits[C]//Proc of FCCM’00. Napa Valley:[s.n.], 2000:113-121.
[4]WONG K, WAKRK M, DAWSON E. A single-chip FPGA implementation of the data encryption standard(DES) algorithm[C]//Proc of IEEE Globecom Communications Conference.[S.l.]: IEEE, 1998:8272-8832.
[5]CHUENG T P, YUSOFF Z M, SHA’AMERI A Z, et al. Implementation of pipelined data encryption standard(DES) using altera CPLD[C]//Proc of TENCON 2000.[S.l.]:IEEE,2000:17-21.
[6]時(shí)宏偉. FPGA技術(shù)在工程中的應(yīng)用[J].電訊技術(shù),1995,35(4):332-339.
[7]侯伯亨.VHDL硬件描述語(yǔ)言與數(shù)字邏輯設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1999.
[8]DAEMEN J, RIJMEN V.高級(jí)加密標(biāo)準(zhǔn)(AES)算法——Rijndael的設(shè)計(jì)[M].谷大武,徐勝波,譯.北京:清華大學(xué)出版社,2003.
[9]SCHMIDT F. SCSI總線和IDE接口:協(xié)議、應(yīng)用和編程[M].2版.北京:中國(guó)電力出版社,2001.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”