《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 面向移動安全存儲的密碼SoC設計與實現
面向移動安全存儲的密碼SoC設計與實現
來源:電子技術應用2012年第4期
王雪瑞1,何永強1,公 鑫2
1.河南工程學院,河南 鄭州450001; 2.解放軍信息工程大學,河南 鄭州451191
摘要: 針對目前移動存儲設備大量的失泄密事件,提出了一種適用于移動安全存儲設備的密碼SoC設計方案,并在FPGA開發板上進行了驗證。該SoC集成自主設計的安全協處理器,能夠支持多種密碼算法。介紹了NAND Flash控制器的設計方案,并在此基礎上提出了高速存取技術。基于FPGA的測試結果表明,該SoC能夠有效完成多種密碼操作,具有較高的數據吞吐率。基于SMIC 0.18 μm工藝綜合后的結果顯示,工作頻率能夠達到100 MHz,面積約為250萬門。
中圖分類號: TP343
文獻標識碼: 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

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

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

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

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

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

 

 


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

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

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

    經過SMIC 0.18 μm工藝庫的綜合,整個平臺的面積約為250萬門,最高工作頻率為100 MHz。
    本文設計的面向大安全存儲的密碼SoC集成了多個高性能安全協處理器,極大地提高了系統的密碼處理性能。設計的NAND Flash可支持外接多種類型(如SLC、MLC和TLC)的NAND Flash芯片,并且支持多片NAND Flash的并行讀寫和流水線讀寫操作,最大支持160 GB存儲容量。基于FPGA的驗證表明,其能夠靈活支持多種密碼算法的實現,具有較高的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存儲控制器的研究與開發[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] 胡偉,慕德俊,劉航,等.移動硬盤硬件加密的設計與實現[J].計算機工程與應用,2010,46(22).
[5] 沈弼龍.基于應用程序特征分析的SoC任務分配技術研究與實現[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].現代電子技術,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.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日本一区深夜影院深a | 免费黄网站在线观看 | 18videosex性vr日 | 成人在线一区二区三区 | 精品福利在线观看 | 日韩不卡手机视频在线观看 | 亚洲成人免费观看 | 日韩不卡在线 | 一本大道香蕉在线高清视频 | 亚洲韩国日本欧美一区二区三区 | 亚洲视频1| 91视频网页 | 国产亚洲精彩视频 | 甜性涩爱在线观看e8 | 国产丝袜护土调教在线视频 | 国产亚洲精品线观看77 | 一级毛片看真人在线视频 | 日韩不卡视频在线观看 | 日日操夜夜操免费视频 | 91综合网 | 草草视频在线播放 | 亚洲精品免费在线视频 | 国产福利影院在线观看 | 九九九色视频在线观看免费 | 天天看天天色 | 色在线观看视频 | 一个人看日本www | 欧美性猛交xxxxbbbb | 免费黄色小片 | 日本三级3本三级带黄 | 91香蕉网站| 色人视频| 1204手机在线观看免费高清 | 免费看一级a一片毛片 | 在线观看国产精成人品 | 国产成人精品s8p视频 | 五月天激情婷婷婷久久 | 伊人久久中文 | 日本一区二区三区免费在线观看 | 色偷偷91久久综合噜噜噜 | 国产特黄特色一级特色大片 |