摘要:設計了基于FPGA芯片的硬盤數據加密系統。該加密系統運行在Ultra DMA傳輸模式下,其加密核支持常用對稱密碼算法(AES、DES、3DES)和用戶自主開發的各種對稱密碼算法。測試結果表明,在Ultra DMA模式2下系統運行速度為32 Mbps,對計算機正常運行沒有任何影響。
關鍵詞:極端直接存儲器存取模式; 硬盤數據加密系統;現場可編程門陣列
中圖分類號:TP309.7文獻標志碼:A
文章編號:1001-3695(2007)12-0174-03
筆記本電腦和個人電腦硬盤被盜而導致硬盤上的數據泄密,已經成為人們關心的信息安全問題。在以往的解決方案中,通常采用軟件進行加密。但軟件加密存在著加密速度低、降低系統性能和加密軟件自身安全性等方面的問題。以前的基于硬件的數據加密系統速度較慢,僅支持PIO(programming input/output model)模式下的數據傳輸。因此,研究Ultra DMA傳輸模式下硬盤數據加密系統具有重要意義。本文提出了一種在Ultra DMA傳輸模式下基于FPGA 芯片的硬盤數據加密系統。與以往的硬件加密方法相比,該加密系統可同時支持PIO傳輸模式和Ultra DMA傳輸模式下的數據加/解密功能,明顯地提高了加密系統的運行速度。此外,該加密系統還具有對用戶完全透明、穩定性和安全性高等特點。
1ATA/IDE接口硬盤
IDE(integrated drive electronics)是由Compaq和Conner共同開發并由Western Digital公司生產的控制器接口。它遵循ATA/ATAPI(AT attachment with packet interface)協議體系。其傳輸方式有PIO和DMA兩種。PIO傳輸模式通過CPU執行I/O端口指令來進行數據的讀寫,CPU占有率高,數據傳輸速率低,其傳輸模式分為PIO Mode1~PIO Mode5,傳輸速率為3.3~16.6 MBps。DMA傳輸模式不需要CPU參與數據交換,大大提高了傳輸速率。DMA傳輸模式分為單字DMA、多字DMA和Ultra DMA。現行硬盤中,均采用Ultra DMA傳輸模式,其有六種模式,即Ultra DMA Mode0~Ultra DMA Mode5,傳輸速率最高可達133 MBps。
2ATA/IDE接口硬盤數據加密系統體系
本文所設計的ATA/IDE接口硬盤的加密系統整體設計如圖1所示。在此硬盤加密系統體系中,PIO控制模塊和DMA控制模塊分別對硬盤的PIO和DMA兩種工作方式下的控制信號和數據信號進行控制,將待處理的數據在加密核中進行加/解密處理后,再傳輸給數據接收方。由于PIO模式下數據處理相對簡單,本文著重描述Ultra DMA模式下的數據加密系統設計。本文所設計的在Ultra DMA工作模式下數據加密系統的體系結構如圖2所示。
2.1狀態機
此模塊根據主機端的CSDA(CS1、CS0、DA2、DA1、DA0),DMACK、DIOR、DIOW和硬盤端的DMARQ、IORDY、INTRQ信號來判定主機與硬盤當前的傳輸模式和工作狀態。狀態機控制著信號控制模塊的產生響應的信號,以及數據加密核的工作狀態。
2.2信號控制
此模塊根據主機與硬盤所處的工作狀態及傳輸模式,產生相應的控制信號C_DMARQ、C_IORDY、C_INTRQ發送給主機,C_CSDA、C_DMACK、C_DIOW、C_DIOR發送硬盤。
2.3加密核
該模塊作用是采用對稱密碼算法對主機與硬盤之間傳輸的、需要加/解密的數據進行加/解密操作。本文設計支持AES、DES、3DES以及用戶自主開發的對稱密碼算法。
2.4CRC校驗
計算在DMA傳輸模式下的CRC校驗碼,并進行校驗碼的比較。當接收到的校驗碼與計算得到的值不一致,則報錯;否則,不報錯。在主機端和硬盤端各有一個CRC(cyclical redundancy check)校驗模塊,對進出加密核的數據分別進行CRC校驗碼的計算和比較,完成校驗過程。CRC校驗碼的計算生成過程如圖3所示。
2.5FIFO數據存儲單元
由于加密核的處理速率與數據傳輸速率之間不完全一致,在加密核的兩端分別加入一個FIFO作為數據緩沖,以減小加密核的處理影響數據傳輸的速率。
3硬盤數據加密系統的FPGA實現
DMA傳輸模式的狀態機設計如圖4所示。
根據DMA傳輸模式的工作原理和各信號的時序關系,將其工作過程劃分為初始化狀態、PIO傳輸模式狀態、讀DMA空閑態、讀DMA通道建立狀態、讀DMA數據傳輸狀態(DMA數據解密狀態)、讀DMA傳輸結束狀態、寫DMA空閑態、寫DMA通道建立狀態、寫DMA數據傳輸狀態(DMA數據加密狀態)、寫DMA傳輸結束狀態、CRC校驗狀態共11個工作狀態。
主機上電進入初始態(即硬件復位),加密系統和硬盤均處于復位狀態。當復位信號置高,即reset=1時,進入PIO傳輸模式狀態。由于在操作系統啟動過程中需要傳輸一些計算機硬件和系統的基本信息,需要主機參與,這些數據均是在PIO模式下傳輸。當主機發出ReadDMA命令時,狀態機跳轉到讀DMA空閑狀態;在讀DMA空閑狀態中,當主機向硬盤發出WriteDMA命令時,狀態機則跳轉到寫DMA空閑態。若有DMA傳輸請求DMARQ=1時,則進行讀DMA通道建立狀態;否則狀態不變,此時,主機和硬盤的數據通過PIO模式傳輸。當處于讀DMA通道建立狀態中,主機與加密系統以及加密系統與硬盤之間的DMA傳輸通道建立,當硬盤響應DMA請求將DMACK信號置高,即DMACK=1時,狀態機進入讀DMA數據傳輸狀態。在讀DMA數據傳輸態中,硬盤數據通過DMA通道傳輸給加密系統,經過解密操作后轉發給主機。當DMA傳輸結束,即DMARQ=0時,加密系統需要對CRC校驗碼進行校驗,并完成錯誤處理;之后,當DMACK=1時,狀態機回到讀DMA空閑態。由于寫DMA操作與讀DMA操作過程相似,只是在對數據處理過程為加密操作,本文不再對此傳輸過程的狀態機跳轉作詳細描述。
對本文設計的加密系統進行編程、編譯、綜合、仿真得到以下波形圖(圖5)。圖5中信號state為內部狀態機。其中狀態0~5分別為復位態、PIO傳輸模式態、讀DMA空閑態、讀DMA通道建立態、讀DMA數據傳輸解密態和CRC校驗錯誤處理態。在狀態4中,數據經加密核處理后與加密系統生成的選通(strobe)信號Host IORDY配合傳送給主機。數據流經加密核后有一定的延時,但是不影響整體系統的傳輸速率。此后,在狀態5中,加密系統將對主機發送的CRC校驗碼進行比較和錯誤處理。
4系統測試
4.1功能測試
將加密系統加載在主機與硬盤之間,對硬盤進行分區和格式化,再對硬盤進行數據讀寫操作,數據讀寫完全正確,無誤碼情況。在不加載硬盤數據加密系統,硬盤直接與主機進行連接的情況下啟動計算機,結果無法找到硬盤上的操作系統和分區信息——硬盤數據被加密。再次將加密系統加載到硬盤與主機之間,主機又可以正常啟動并能看到所寫入硬盤的數據,測試結果與正常情況相同。通過試驗證明,加密系統設計正確,工作正常。
4.2性能測試
在測試實驗中采用測試硬盤讀/寫速率的工具HD-TECH對掛在硬盤加密系統上的硬盤進行測試。被測試硬盤是希捷ST 80 GB。實驗結果如圖6、7和表1所示。由圖表可以看出,在正常工作的情況下,加掛硬盤加密系統對硬盤的突發傳輸速率(即在Ultra DMA模式2下傳輸速率)并沒有太大的影響。這表明該硬盤加密系統經達到了設計中提出的要求。
5結束語
a)測試結果表明,筆者已成功研發出一種基于FPGA芯片在硬盤加密系統。該加密系統加密速率在Ultra DMA傳輸模式2下達到32 Mbps,對硬盤讀寫速率基本無影響,達到了設計的要求。
b)在這種加密系統中,硬盤上的操作系統和用戶數據一
起被加密,信息隱藏級別高。同時,由于操作系統被加密,加密
系統對操作系統是透明的,支持多操作系統下的IDE 硬盤數據加密。這種數據流硬加密體系結構具有良好的可擴展性,它可以升級并應用到不同的數據安全傳輸領域。
參考文獻:
[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]時宏偉. FPGA技術在工程中的應用[J].電訊技術,1995,35(4):332-339.
[7]侯伯亨.VHDL硬件描述語言與數字邏輯設計[M].西安:西安電子科技大學出版社,1999.
[8]DAEMEN J, RIJMEN V.高級加密標準(AES)算法——Rijndael的設計[M].谷大武,徐勝波,譯.北京:清華大學出版社,2003.
[9]SCHMIDT F. SCSI總線和IDE接口:協議、應用和編程[M].2版.北京:中國電力出版社,2001.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”