摘要: 針對目前移動存儲設備大量的失泄密事件,提出了一種適用于移動安全存儲設備的密碼SoC設計方案,并在FPGA開發(fā)板上進行了驗證。該SoC集成自主設計的安全協(xié)處理器,能夠支持多種密碼算法。介紹了NAND Flash控制器的設計方案,并在此基礎上提出了高速存取技術。基于FPGA的測試結果表明,該SoC能夠有效完成多種密碼操作,具有較高的數(shù)據(jù)吞吐率。基于SMIC 0.18 μm工藝綜合后的結果顯示,工作頻率能夠達到100 MHz,面積約為250萬門。
移動存儲產(chǎn)品已廣泛應用于各行各業(yè),是不可或缺的信息交換載體,特別在日常辦公系統(tǒng)中,以U盤、固態(tài)移動硬盤為代表的存儲介質的使用日益普遍。而在實際應用中,移動存儲設備易丟失、易損壞、易染病毒、不可控的特性也使數(shù)據(jù)安全無法得到充分保證。因遺失、暴力破解、主動泄密、木馬攻擊等方式導致的泄密事件也在逐漸上升[1]。
為了解決這一問題,國內外已經(jīng)研制出多款相關安全產(chǎn)品,但是這些安全產(chǎn)品大多采用單一算法或固定的幾種算法,其靈活性和安全性都不夠高,無法滿足不同設計的安全需求[2]。
針對現(xiàn)有安全SoC存在的問題,本文基于高性能嵌入式CPU構建并設計了一款密碼SoC平臺。該SoC平臺采用自主設計的安全協(xié)處理器執(zhí)行密碼操作,經(jīng)驗證可適用于三類主要的密碼算法[3]:對稱密鑰加密算法、散列算法和公開密鑰加密算法。此外,設計了高性能NAND Flash控制器,支持外接多種類型的NAND Flash芯片(SLC、MLC 和TLC),最大支持容量為160 GB。本設計可應用于加密U盤、加密U盤KEY、加密移動硬盤、高速加密流轉接器等設備中。
1 硬件設計
1.1 系統(tǒng)架構
本文提出的密碼SoC架構如圖1所示。其中集成了兩種處理器核,分別是通用處理器(LEON2)和4個安全協(xié)處理器(Security ASIP),兩者通過系統(tǒng)總線相連。所有涉及加解密的運算都被映射到安全協(xié)處理器中執(zhí)行。DMA控制器負責把將要執(zhí)行的加解密任務按照CPU的配置分配到各安全處理器中,CPU只承擔控制和部分數(shù)據(jù)傳輸任務,絕大部分的運算由安全協(xié)處理器完成,CPU在大部分時間處于掛起(suspend)狀態(tài),直到有中斷將其喚醒。
片上存儲器主要包括EFlash/SRAM,用于存儲操作系統(tǒng)引導程序、用戶程序等;物理噪聲源主要用于產(chǎn)生真隨機數(shù),生成密碼運算時的消息密鑰;兩個USB-OTG 接口可根據(jù)應用需求設置成Host、Device 或OTG,支持多達6 個端點,可設置成多重復合設備,最大限度地滿足用戶的設計需求;
NAND Flash控制器負責產(chǎn)生符合NAND Flash接口操作規(guī)范的時序信號,帶有ECC校驗模塊,每512 B可修正位數(shù)為1 bit或8 bit,支持外接8片NAND Flash。另外還包含有低速通信接口、定時器、中斷控制器、存儲保護單元、功耗管理單元等輔助模塊,用于完成平臺的其他功能。
1.2 安全協(xié)處理器結構
分析現(xiàn)有的安全存儲設備[4]可以發(fā)現(xiàn),在使用存儲設備之前,必須對使用者進行身份驗證;文件讀寫時,必須對數(shù)據(jù)進行加解密操作;為了保證數(shù)據(jù)的完整性,必須對數(shù)據(jù)進行完整性驗證操作。所以,密碼SoC必須能夠靈活處理對稱、公鑰和雜湊三類算法,這個任務主要由安全協(xié)處理器完成。在進行安全協(xié)處理器的設計之前,必須對各類密碼的執(zhí)行特點進行分析。由專門的工具[5]分析可以得出各種密碼算法的執(zhí)行特點。
對各類密碼算法的特點進行分析后,本文提出了如圖2所示的安全協(xié)處理器架構。該安全協(xié)處理器基于傳統(tǒng)的RISC處理器結構所設計,分為取指令(IF)級、譯碼(ID)級、執(zhí)行(EXE)級/memory訪存級和寫回(write)級四級,能支持標準的RISC指令,并且還能執(zhí)行一些專門設計的特殊指令。
在執(zhí)行級,不僅有處理正常RISC標準指令的ALU單元,還有專用的硬件功能單元、PTLU(Parallel Table Look-Up)和MHU(Mul/Div unit&Hash Unit),用來對算法中比較耗時的運算(如查找表、模乘等操作)進行加速。為了加快安全協(xié)處理器的指令和數(shù)據(jù)的存取速度,在協(xié)處理器內部分別嵌入1 KB大小的指令RAM和數(shù)據(jù)RAM,用來存放協(xié)處理器的指令和數(shù)據(jù)。該協(xié)處理器指令集不僅包括標準的算術和邏輯運算指令,還包括專用的密碼運算指令,如PTAES、 PTW、MOD_MUL等。
1.3 NAND Flash控制器設計
本文設計的NAND Flash控制器[7]結構如圖3所示。NAND Flash控制器包含總線接口模塊、DMA握手接口模塊、控制狀態(tài)機轉換的主控邏輯模塊,用以緩沖數(shù)據(jù)、收發(fā)命令和狀態(tài)字的緩沖器(buffer);提供ECC校驗糾錯功能的ECC模塊和直接控制NAND Flash存儲體的接口模塊。
總線接口模塊負責接收CPU發(fā)送的指令,將收發(fā)數(shù)據(jù)送至相應數(shù)據(jù)寄存器和指令寄存器,并將狀態(tài)寄存器內容返回給CPU核;主控邏輯模塊負責整個Flash控制器的控制工作,包含指令、狀態(tài)、配置、數(shù)據(jù)、頁交換使能、錯誤地址等寄存器,是控制器的核心。
ECC模塊主要負責對存入NAND Flash中的數(shù)據(jù)進行糾錯編碼并對從NAND Flash中讀出的數(shù)據(jù)進行糾錯譯碼的工作。DMA握手接口模塊在系統(tǒng)DMA參與數(shù)據(jù)傳輸?shù)那闆r下,負責DMA與NAND Flash控制器之間的硬件握手功能。相比與直接由CPU核發(fā)送命令字給NAND Flash,然后直接從I/O 口讀寫數(shù)據(jù)的工作方式,通過DMA方式的傳輸效率明顯要高。
特別在連續(xù)讀取大批量數(shù)據(jù)的情況下,這種工作方式的優(yōu)點能更好地體現(xiàn)出來。在實際產(chǎn)品應用中(如數(shù)碼照片的存取),讀寫數(shù)據(jù)量一般都是頁大小的上千倍,所以這樣的設計有助于提高產(chǎn)品的實用性。
該NAND Flash控制器支持外接8片NAND Flash芯片。為了提高數(shù)據(jù)的讀寫速度,實現(xiàn)對并行數(shù)據(jù)讀寫的支持,控制器的數(shù)據(jù)線位寬設置為16 bit,可以支持對兩片數(shù)據(jù)線位寬為8 bit的NAND Flash的并行讀寫操作;同時,本設計對控制器的結構進行了優(yōu)化,使其能夠支持對多片NAND Flash芯片的流水線讀寫操作。為了更好地支持SLC、MLC和TLC NAND Flash器件,還設計了基于漢明碼的1 bit ECC糾錯模塊和可糾正8 bit隨機錯誤的BCH編/譯碼器,用戶可以根據(jù)需要選擇相應的ECC操作。
2 高速存儲技術
NAND Flash器件屬于低速設備。以K9WBG08U1M為例,芯片的寫入時間分為加載時間和編程時間兩部分,寫滿一頁所需的命令、地址和數(shù)據(jù)的加載時間約為102.5 ?滋s,最大編程時間約為700 μs。在寫入過程中,因還要進行BCH編碼等操作,也會消耗一些時間,所以設計中,使用最大的編程時間進行計算,而單片F(xiàn)lash其寫入速度最高也只有5.1 MB/s,NAND Flash的讀寫速度也會成為系統(tǒng)性能的瓶頸。為了解決這個問題,可以采用如下技術。
2.1 數(shù)據(jù)并行處理技術
因Flash的數(shù)據(jù)位寬一般為8 bit,如果按傳統(tǒng)的操作方法對Flash進行讀寫,即寫完一片NAND Flash之后再寫下一片,其最高的存儲速度只有5.1 MB/s,無法適用于高速數(shù)據(jù)傳輸?shù)囊蟆榇耍疚脑O計的NAND Flash控制器將I/O數(shù)據(jù)線設為16 bit,主控制可以通過配置來選擇數(shù)據(jù)線的位數(shù)。
當需要對數(shù)據(jù)進行并行處理時,將兩片低速Flash芯片并聯(lián)起來,使用相同的控制線、片選和讀寫信號線,組成一個多位寬的Flash組;兩片F(xiàn)lash并行工作時,一片存儲數(shù)據(jù)的高8 bit,一片存儲數(shù)據(jù)的低8 bit,這樣,存儲容量和存儲速度都是單片F(xiàn)lash的2倍。
2.2 流水線技術
流水線技術在計算機領域得到廣泛運用,它是提高硬件資源利用率和執(zhí)行效率的有效手段,該技術可以有效提高存儲系統(tǒng)的性能。本文設計的NAND Flash控制器中只有一個讀數(shù)據(jù)FIFO和一個寫數(shù)據(jù)FIFO,大小均為4 KB。
當對一片NAND Flash進行操作時,在命令或數(shù)據(jù)加載完成后,該片NAND Flash會處于忙狀態(tài),此時讀或寫數(shù)據(jù)FIFO由于處于空閑或等待狀態(tài)未被使用,因此控制器可以繼續(xù)對處于空閑狀態(tài)的NAND Flash進行操作,如此便形成流水線操作。還可以把兩片NAND Flash作為一組進行數(shù)據(jù)并行處理,共4組進行流水線操作,以達到最大的數(shù)據(jù)吞吐率。其流水寫操作時序如圖4所示。
3 功能驗證與性能分析
本文采用兩塊FPGA開發(fā)板完成SoC平臺的驗證,F(xiàn)PGA型號均為Xilinx Virtex5-xc5vlx85,兩者之間通過自制的電路板進行通信驗證流程:首先通過JTAG接口向EFlash中下載一個boot-loader程序,用于SoC系統(tǒng)的啟動和測試向量的下載;SoC系統(tǒng)的硬件驅動和安全協(xié)處理器程序通過UART接口下載到系統(tǒng)中;
PC端通過UART接口給出控制命令,選擇NAND Flash控制器和安全協(xié)處理的工作模式;PC端通過USB接口對NAND Flash進行數(shù)據(jù)讀寫的測試。系統(tǒng)工作時鐘為80 MHz,選擇K9WBG08U1M作為實體NAND Flash器件對SoC進行測試。單片K9WBG08U1M的情況下,讀速度可以達到19.3 MB/s,寫速度可以達到9.6 MB/s;兩片K9F1208UOB并行連接時,讀速度可達37.5 MB/s,寫速度可達18.4 MB/s。
安全協(xié)處理器性能、面積與參考文獻中的設計比較結果如表2所示。
經(jīng)過SMIC 0.18 μm工藝庫的綜合,整個平臺的面積約為250萬門,最高工作頻率為100 MHz。
本文設計的面向大安全存儲的密碼SoC集成了多個高性能安全協(xié)處理器,極大地提高了系統(tǒng)的密碼處理性能。設計的NAND Flash可支持外接多種類型(如SLC、MLC和TLC)的NAND Flash芯片,并且支持多片NAND Flash的并行讀寫和流水線讀寫操作,最大支持160 GB存儲容量。基于FPGA的驗證表明,其能夠靈活支持多種密碼算法的實現(xiàn),具有較高的NAND Flash訪問速度。
該設計可應用于加密U盤、加密U盤KEY、加密移動硬盤、高速加密流轉接器等設備中。
參考文獻
[1] Chen Hanlin.The single-chip solution of embedded USB encryptor[C].Information Theory and Information Security,2010:42-45.
[2] 寧超。基于SOC存儲控制器的研究與開發(fā)[D]。西安:電子科技大學,2008:50-53.
[3] Huang Wei,Han Jun,Wang Shuai.The design and implement of a mobile security SoC[C].Conference on Solid-State and Integrated Circuit Technology,2010:96-98.
[4] 胡偉,慕德俊,劉航,等。移動硬盤硬件加密的設計與實現(xiàn)[J]。計算機工程與應用,2010,46(22)。
[5] 沈弼龍。基于應用程序特征分析的SoC任務分配技術研究與實現(xiàn)[D]。長沙:國防科學技術大學,2009:31-33.
[6] AIGNER G,DIWAN A,HEINE D L,et al.An over- view of the SUIF2 compiler infrastructure[R].Computer Systems Laboratory,Stanford University,1999.
[7] 李璐,周海燕。一種含BCH編解碼器的SLC/MLC NAND Flash控制器的VLSI設計[J]。現(xiàn)代電子技術,2009,32(7)。
[8] Wang Chenhsing,YEH J C,HUANG C T,et al.Scalable security processor design and its implementation[C].ASSCC,2005:513-516.
[9] SREEDHARAN D,AKOGLU A.A hybrid processing element based reconfigurable architecture for hashing algorithms[C].Parallel and Distributed Processing,2008:1-8.
[10] BERTONI G B,VENTURI L.ECC hardware coprocessor for 8-bit systems and power consumption considerations[C]。 ITNG,2006:573-574.
編輯:jq
-
cpu
+關注
關注
68文章
10855瀏覽量
211592 -
soc
+關注
關注
38文章
4163瀏覽量
218168 -
SMIC
+關注
關注
0文章
21瀏覽量
19922
發(fā)布評論請先 登錄
相關推薦
評論