《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 面向移動安全存儲的密碼SoC設(shè)計與實現(xiàn)
面向移動安全存儲的密碼SoC設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第4期
王雪瑞1,何永強(qiáng)1,公 鑫2
1.河南工程學(xué)院,河南 鄭州450001; 2.解放軍信息工程大學(xué),河南 鄭州451191
摘要: 針對目前移動存儲設(shè)備大量的失泄密事件,提出了一種適用于移動安全存儲設(shè)備的密碼SoC設(shè)計方案,并在FPGA開發(fā)板上進(jìn)行了驗證。該SoC集成自主設(shè)計的安全協(xié)處理器,能夠支持多種密碼算法。介紹了NAND Flash控制器的設(shè)計方案,并在此基礎(chǔ)上提出了高速存取技術(shù)?;贔PGA的測試結(jié)果表明,該SoC能夠有效完成多種密碼操作,具有較高的數(shù)據(jù)吞吐率?;赟MIC 0.18 μm工藝綜合后的結(jié)果顯示,工作頻率能夠達(dá)到100 MHz,面積約為250萬門。
中圖分類號: TP343
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)04-0010-03
Design and implementation of a cipher SoC for removable secure storage devices
Wang Xuerui1,He Yongqiang1,Gong Xin2
1.Henan Institute of Engineering,Zhengzhou 450001,China; 2.PLA Information Engineering University, Zhengzhou 451191,China
Abstract: Aiming at the vast secret leak event of removable storage devices, this paper proposed a cipher SoC design for removable secure storage devices,and verified it on FPGA platform.Special-designed cipher coprocessor is integrated to realize kinds of cryptographic algorithms.Then this paper introduces the architecture of the NAND Flash controller,based on which the high-speed access technology is proposed.The verification results based on FPGA platform show that this design can realize kinds of cryptographic algorithms and has high data throughput. Based on SMIC 0.18 μm standard CMOS technology, the area of our SoC is 250 million gates and can work at the frequency of 100 MHz.
Key words : SoC;NAND Flash;coprocessor;secure storage;cryptographic

    移動存儲產(chǎn)品已廣泛應(yīng)用于各行各業(yè),是不可或缺的信息交換載體,特別在日常辦公系統(tǒng)中,以U盤、固態(tài)移動硬盤為代表的存儲介質(zhì)的使用日益普遍。而在實際應(yīng)用中,移動存儲設(shè)備易丟失、易損壞、易染病毒、不可控的特性也使數(shù)據(jù)安全無法得到充分保證。因遺失、暴力破解、主動泄密、木馬攻擊等方式導(dǎo)致的泄密事件也在逐漸上升[1]。為了解決這一問題,國內(nèi)外已經(jīng)研制出多款相關(guān)安全產(chǎn)品,但是這些安全產(chǎn)品大多采用單一算法或固定的幾種算法,其靈活性和安全性都不夠高,無法滿足不同設(shè)計的安全需求[2]。

    針對現(xiàn)有安全SoC存在的問題,本文基于高性能嵌入式CPU構(gòu)建并設(shè)計了一款密碼SoC平臺。該SoC平臺采用自主設(shè)計的安全協(xié)處理器執(zhí)行密碼操作,經(jīng)驗證可適用于三類主要的密碼算法[3]:對稱密鑰加密算法、散列算法和公開密鑰加密算法。此外,設(shè)計了高性能NAND Flash控制器,支持外接多種類型的NAND Flash芯片(SLC、MLC 和TLC),最大支持容量為160 GB。本設(shè)計可應(yīng)用于加密U盤、加密U盤KEY、加密移動硬盤、高速加密流轉(zhuǎn)接器等設(shè)備中。
1 硬件設(shè)計
1.1 系統(tǒng)架構(gòu)

    本文提出的密碼SoC架構(gòu)如圖1所示。其中集成了兩種處理器核,分別是通用處理器(LEON2)和4個安全協(xié)處理器(Security ASIP),兩者通過系統(tǒng)總線相連。所有涉及加解密的運算都被映射到安全協(xié)處理器中執(zhí)行。DMA控制器負(fù)責(zé)把將要執(zhí)行的加解密任務(wù)按照CPU的配置分配到各安全處理器中,CPU只承擔(dān)控制和部分?jǐn)?shù)據(jù)傳輸任務(wù),絕大部分的運算由安全協(xié)處理器完成,CPU在大部分時間處于掛起(suspend)狀態(tài),直到有中斷將其喚醒。片上存儲器主要包括EFlash/SRAM,用于存儲操作系統(tǒng)引導(dǎo)程序、用戶程序等;物理噪聲源主要用于產(chǎn)生真隨機(jī)數(shù),生成密碼運算時的消息密鑰;兩個USB-OTG 接口可根據(jù)應(yīng)用需求設(shè)置成Host、Device 或OTG,支持多達(dá)6 個端點,可設(shè)置成多重復(fù)合設(shè)備,最大限度地滿足用戶的設(shè)計需求;NAND Flash控制器負(fù)責(zé)產(chǎn)生符合NAND Flash接口操作規(guī)范的時序信號,帶有ECC校驗?zāi)K,每512 B可修正位數(shù)為1 bit或8 bit,支持外接8片NAND Flash。另外還包含有低速通信接口、定時器、中斷控制器、存儲保護(hù)單元、功耗管理單元等輔助模塊,用于完成平臺的其他功能。

1.2 安全協(xié)處理器結(jié)構(gòu)
    分析現(xiàn)有的安全存儲設(shè)備[4]可以發(fā)現(xiàn),在使用存儲設(shè)備之前,必須對使用者進(jìn)行身份驗證;文件讀寫時,必須對數(shù)據(jù)進(jìn)行加解密操作;為了保證數(shù)據(jù)的完整性,必須對數(shù)據(jù)進(jìn)行完整性驗證操作。所以,密碼SoC必須能夠靈活處理對稱、公鑰和雜湊三類算法,這個任務(wù)主要由安全協(xié)處理器完成。在進(jìn)行安全協(xié)處理器的設(shè)計之前,必須對各類密碼的執(zhí)行特點進(jìn)行分析。由專門的工具[5]分析可以得出各種密碼算法的執(zhí)行特點。部分AES算法的計算特征分析結(jié)果如表1所示。

    對各類密碼算法的特點進(jìn)行分析后,本文提出了如圖2所示的安全協(xié)處理器架構(gòu)。該安全協(xié)處理器基于傳統(tǒng)的RISC處理器結(jié)構(gòu)所設(shè)計,分為取指令(IF)級、譯碼(ID)級、執(zhí)行(EXE)級/memory訪存級和寫回(write)級四級,能支持標(biāo)準(zhǔn)的RISC指令,并且還能執(zhí)行一些專門設(shè)計的特殊指令。在執(zhí)行級,不僅有處理正常RISC標(biāo)準(zhǔn)指令的ALU單元,還有專用的硬件功能單元、PTLU(Parallel Table Look-Up)和MHU(Mul/Div unit&Hash Unit),用來對算法中比較耗時的運算(如查找表、模乘等操作)進(jìn)行加速。為了加快安全協(xié)處理器的指令和數(shù)據(jù)的存取速度,在協(xié)處理器內(nèi)部分別嵌入1 KB大小的指令RAM和數(shù)據(jù)RAM,用來存放協(xié)處理器的指令和數(shù)據(jù)。該協(xié)處理器指令集不僅包括標(biāo)準(zhǔn)的算術(shù)和邏輯運算指令,還包括專用的密碼運算指令,如PTAES、 PTW、MOD_MUL等。

 

 


1.3 NAND Flash控制器設(shè)計
    本文設(shè)計的NAND Flash控制器[7]結(jié)構(gòu)如圖3所示。NAND Flash控制器包含總線接口模塊、DMA握手接口模塊、控制狀態(tài)機(jī)轉(zhuǎn)換的主控邏輯模塊,用以緩沖數(shù)據(jù)、收發(fā)命令和狀態(tài)字的緩沖器(buffer);提供ECC校驗糾錯功能的ECC模塊和直接控制NAND Flash存儲體的接口模塊。

    總線接口模塊負(fù)責(zé)接收CPU發(fā)送的指令,將收發(fā)數(shù)據(jù)送至相應(yīng)數(shù)據(jù)寄存器和指令寄存器,并將狀態(tài)寄存器內(nèi)容返回給CPU核;主控邏輯模塊負(fù)責(zé)整個Flash控制器的控制工作,包含指令、狀態(tài)、配置、數(shù)據(jù)、頁交換使能、錯誤地址等寄存器,是控制器的核心。
    ECC模塊主要負(fù)責(zé)對存入NAND Flash中的數(shù)據(jù)進(jìn)行糾錯編碼并對從NAND Flash中讀出的數(shù)據(jù)進(jìn)行糾錯譯碼的工作。DMA握手接口模塊在系統(tǒng)DMA參與數(shù)據(jù)傳輸?shù)那闆r下,負(fù)責(zé)DMA與NAND Flash控制器之間的硬件握手功能。相比與直接由CPU核發(fā)送命令字給NAND Flash,然后直接從I/O 口讀寫數(shù)據(jù)的工作方式,通過DMA方式的傳輸效率明顯要高。特別在連續(xù)讀取大批量數(shù)據(jù)的情況下,這種工作方式的優(yōu)點能更好地體現(xiàn)出來。在實際產(chǎn)品應(yīng)用中(如數(shù)碼照片的存取),讀寫數(shù)據(jù)量一般都是頁大小的上千倍,所以這樣的設(shè)計有助于提高產(chǎn)品的實用性。
    該NAND Flash控制器支持外接8片NAND Flash芯片。為了提高數(shù)據(jù)的讀寫速度,實現(xiàn)對并行數(shù)據(jù)讀寫的支持,控制器的數(shù)據(jù)線位寬設(shè)置為16 bit,可以支持對兩片數(shù)據(jù)線位寬為8 bit的NAND Flash的并行讀寫操作;同時,本設(shè)計對控制器的結(jié)構(gòu)進(jìn)行了優(yōu)化,使其能夠支持對多片NAND Flash芯片的流水線讀寫操作。為了更好地支持SLC、MLC和TLC NAND Flash器件,還設(shè)計了基于漢明碼的1 bit ECC糾錯模塊和可糾正8 bit隨機(jī)錯誤的BCH編/譯碼器,用戶可以根據(jù)需要選擇相應(yīng)的ECC操作。
2 高速存儲技術(shù)
    NAND Flash器件屬于低速設(shè)備。以K9WBG08U1M為例,芯片的寫入時間分為加載時間和編程時間兩部分,寫滿一頁所需的命令、地址和數(shù)據(jù)的加載時間約為102.5 ?滋s,最大編程時間約為700 μs。在寫入過程中,因還要進(jìn)行BCH編碼等操作,也會消耗一些時間,所以設(shè)計中,使用最大的編程時間進(jìn)行計算,而單片F(xiàn)lash其寫入速度最高也只有5.1 MB/s,NAND Flash的讀寫速度也會成為系統(tǒng)性能的瓶頸。為了解決這個問題,可以采用如下技術(shù)。
2.1 數(shù)據(jù)并行處理技術(shù)
    因Flash的數(shù)據(jù)位寬一般為8 bit,如果按傳統(tǒng)的操作方法對Flash進(jìn)行讀寫,即寫完一片NAND Flash之后再寫下一片,其最高的存儲速度只有5.1 MB/s,無法適用于高速數(shù)據(jù)傳輸?shù)囊?。為此,本文設(shè)計的NAND Flash控制器將I/O數(shù)據(jù)線設(shè)為16 bit,主控制可以通過配置來選擇數(shù)據(jù)線的位數(shù)。當(dāng)需要對數(shù)據(jù)進(jìn)行并行處理時,將兩片低速Flash芯片并聯(lián)起來,使用相同的控制線、片選和讀寫信號線,組成一個多位寬的Flash組;兩片F(xiàn)lash并行工作時,一片存儲數(shù)據(jù)的高8 bit,一片存儲數(shù)據(jù)的低8 bit,這樣,存儲容量和存儲速度都是單片F(xiàn)lash的2倍。
2.2 流水線技術(shù)
    流水線技術(shù)在計算機(jī)領(lǐng)域得到廣泛運用,它是提高硬件資源利用率和執(zhí)行效率的有效手段,該技術(shù)可以有效提高存儲系統(tǒng)的性能。本文設(shè)計的NAND Flash控制器中只有一個讀數(shù)據(jù)FIFO和一個寫數(shù)據(jù)FIFO,大小均為4 KB。當(dāng)對一片NAND Flash進(jìn)行操作時,在命令或數(shù)據(jù)加載完成后,該片NAND Flash會處于忙狀態(tài),此時讀或?qū)憯?shù)據(jù)FIFO由于處于空閑或等待狀態(tài)未被使用,因此控制器可以繼續(xù)對處于空閑狀態(tài)的NAND Flash進(jìn)行操作,如此便形成流水線操作。還可以把兩片NAND Flash作為一組進(jìn)行數(shù)據(jù)并行處理,共4組進(jìn)行流水線操作,以達(dá)到最大的數(shù)據(jù)吞吐率。其流水寫操作時序如圖4所示。

3 功能驗證與性能分析
    本文采用兩塊FPGA開發(fā)板完成SoC平臺的驗證,F(xiàn)PGA型號均為Xilinx Virtex5-xc5vlx85,兩者之間通過自制的電路板進(jìn)行通信驗證流程:首先通過JTAG接口向EFlash中下載一個boot-loader程序,用于SoC系統(tǒng)的啟動和測試向量的下載;SoC系統(tǒng)的硬件驅(qū)動和安全協(xié)處理器程序通過UART接口下載到系統(tǒng)中;PC端通過UART接口給出控制命令,選擇NAND Flash控制器和安全協(xié)處理的工作模式;PC端通過USB接口對NAND Flash進(jìn)行數(shù)據(jù)讀寫的測試。系統(tǒng)工作時鐘為80 MHz,選擇K9WBG08U1M作為實體NAND Flash器件對SoC進(jìn)行測試。單片K9WBG08U1M的情況下,讀速度可以達(dá)到19.3 MB/s,寫速度可以達(dá)到9.6 MB/s;兩片K9F1208UOB并行連接時,讀速度可達(dá)37.5 MB/s,寫速度可達(dá)18.4 MB/s。
    安全協(xié)處理器性能、面積與參考文獻(xiàn)中的設(shè)計比較結(jié)果如表2所示。

    經(jīng)過SMIC 0.18 μm工藝庫的綜合,整個平臺的面積約為250萬門,最高工作頻率為100 MHz。
    本文設(shè)計的面向大安全存儲的密碼SoC集成了多個高性能安全協(xié)處理器,極大地提高了系統(tǒng)的密碼處理性能。設(shè)計的NAND Flash可支持外接多種類型(如SLC、MLC和TLC)的NAND Flash芯片,并且支持多片NAND Flash的并行讀寫和流水線讀寫操作,最大支持160 GB存儲容量?;贔PGA的驗證表明,其能夠靈活支持多種密碼算法的實現(xiàn),具有較高的NAND Flash訪問速度。
該設(shè)計可應(yīng)用于加密U盤、加密U盤KEY、加密移動硬盤、高速加密流轉(zhuǎn)接器等設(shè)備中。
參考文獻(xiàn)
[1] Chen Hanlin.The single-chip solution of embedded USB encryptor[C].Information Theory and Information Security,2010:42-45.
[2] 寧超.基于SOC存儲控制器的研究與開發(fā)[D].西安:電子科技大學(xué),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] 胡偉,慕德俊,劉航,等.移動硬盤硬件加密的設(shè)計與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2010,46(22).
[5] 沈弼龍.基于應(yīng)用程序特征分析的SoC任務(wù)分配技術(shù)研究與實現(xiàn)[D].長沙:國防科學(xué)技術(shù)大學(xué),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設(shè)計[J].現(xiàn)代電子技術(shù),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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。