• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向移動(dòng)安全存儲(chǔ)的密碼SoC設(shè)計(jì)與實(shí)現(xiàn)

      2012-07-03 00:24:20王雪瑞何永強(qiáng)
      電子技術(shù)應(yīng)用 2012年4期
      關(guān)鍵詞:協(xié)處理器指令密碼

      王雪瑞 ,何永強(qiáng) ,公 鑫

      (1.河南工程學(xué)院,河南 鄭州 450001;2.解放軍信息工程大學(xué),河南 鄭州451191)

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

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

      1 硬件設(shè)計(jì)

      1.1 系統(tǒng)架構(gòu)

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

      1.2 安全協(xié)處理器結(jié)構(gòu)

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

      表1 AES計(jì)算特征分析結(jié)果

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

      1.3 NAND Flash控制器設(shè)計(jì)

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

      總線接口模塊負(fù)責(zé)接收CPU發(fā)送的指令,將收發(fā)數(shù)據(jù)送至相應(yīng)數(shù)據(jù)寄存器和指令寄存器,并將狀態(tài)寄存器內(nèi)容返回給CPU核;主控邏輯模塊負(fù)責(zé)整個(gè)Flash控制器的控制工作,包含指令、狀態(tài)、配置、數(shù)據(jù)、頁(yè)交換使能、錯(cuò)誤地址等寄存器,是控制器的核心。

      ECC模塊主要負(fù)責(zé)對(duì)存入NAND Flash中的數(shù)據(jù)進(jìn)行糾錯(cuò)編碼并對(duì)從NAND Flash中讀出的數(shù)據(jù)進(jìn)行糾錯(cuò)譯碼的工作。DMA握手接口模塊在系統(tǒng)DMA參與數(shù)據(jù)傳輸?shù)那闆r下,負(fù)責(zé)DMA與NAND Flash控制器之間的硬件握手功能。相比與直接由CPU核發(fā)送命令字給NAND Flash,然后直接從I/O口讀寫(xiě)數(shù)據(jù)的工作方式,通過(guò)DMA方式的傳輸效率明顯要高。特別在連續(xù)讀取大批量數(shù)據(jù)的情況下,這種工作方式的優(yōu)點(diǎn)能更好地體現(xiàn)出來(lái)。在實(shí)際產(chǎn)品應(yīng)用中(如數(shù)碼照片的存取),讀寫(xiě)數(shù)據(jù)量一般都是頁(yè)大小的上千倍,所以這樣的設(shè)計(jì)有助于提高產(chǎn)品的實(shí)用性。

      該NAND Flash控制器支持外接8片NAND Flash芯片。為了提高數(shù)據(jù)的讀寫(xiě)速度,實(shí)現(xiàn)對(duì)并行數(shù)據(jù)讀寫(xiě)的支持,控制器的數(shù)據(jù)線位寬設(shè)置為16 bit,可以支持對(duì)兩片數(shù)據(jù)線位

      寬為8 bit的NAND Flash的并行讀寫(xiě)操作;同時(shí),本設(shè)計(jì)對(duì)控制器的結(jié)構(gòu)進(jìn)行了優(yōu)化,使其能夠支持對(duì)多片NAND Flash芯片的流水線讀寫(xiě)操作。為了更好地支持SLC、MLC和TLC NAND Flash器件,還設(shè)計(jì)了基于漢明碼的1 bit ECC糾錯(cuò)模塊和可糾正8 bit隨機(jī)錯(cuò)誤的BCH編/譯碼器,用戶可以根據(jù)需要選擇相應(yīng)的ECC操作。

      2 高速存儲(chǔ)技術(shù)

      NAND Flash器件屬于低速設(shè)備。以K9WBG08U1M為例,芯片的寫(xiě)入時(shí)間分為加載時(shí)間和編程時(shí)間兩部分,寫(xiě)滿一頁(yè)所需的命令、地址和數(shù)據(jù)的加載時(shí)間約為102.5 μs,最大編程時(shí)間約為 700 μs。 在寫(xiě)入過(guò)程中,因還要進(jìn)行BCH編碼等操作,也會(huì)消耗一些時(shí)間,所以設(shè)計(jì)中,使用最大的編程時(shí)間進(jìn)行計(jì)算,而單片F(xiàn)lash其寫(xiě)入速度最高也只有5.1 MB/s,NAND Flash的讀寫(xiě)速度也會(huì)成為系統(tǒng)性能的瓶頸。為了解決這個(gè)問(wèn)題,可以采用如下技術(shù)。

      2.1 數(shù)據(jù)并行處理技術(shù)

      因Flash的數(shù)據(jù)位寬一般為8 bit,如果按傳統(tǒng)的操作方法對(duì)Flash進(jìn)行讀寫(xiě),即寫(xiě)完一片NAND Flash之后再寫(xiě)下一片,其最高的存儲(chǔ)速度只有5.1 MB/s,無(wú)法適用于高速數(shù)據(jù)傳輸?shù)囊?。為此,本文設(shè)計(jì)的NAND Flash控制器將I/O數(shù)據(jù)線設(shè)為16 bit,主控制可以通過(guò)配置來(lái)選擇數(shù)據(jù)線的位數(shù)。當(dāng)需要對(duì)數(shù)據(jù)進(jìn)行并行處理時(shí),將兩片低速Flash芯片并聯(lián)起來(lái),使用相同的控制線、片選和讀寫(xiě)信號(hào)線,組成一個(gè)多位寬的Flash組;兩片F(xiàn)lash并行工作時(shí),一片存儲(chǔ)數(shù)據(jù)的高8 bit,一片存儲(chǔ)數(shù)據(jù)的低8 bit,這樣,存儲(chǔ)容量和存儲(chǔ)速度都是單片F(xiàn)lash的2倍。

      2.2 流水線技術(shù)

      流水線技術(shù)在計(jì)算機(jī)領(lǐng)域得到廣泛運(yùn)用,它是提高硬件資源利用率和執(zhí)行效率的有效手段,該技術(shù)可以有效提高存儲(chǔ)系統(tǒng)的性能。本文設(shè)計(jì)的NAND Flash控制器中只有一個(gè)讀數(shù)據(jù)FIFO和一個(gè)寫(xiě)數(shù)據(jù)FIFO,大小均為4 KB。當(dāng)對(duì)一片NAND Flash進(jìn)行操作時(shí),在命令或數(shù)據(jù)加載完成后,該片NAND Flash會(huì)處于忙狀態(tài),此時(shí)讀或?qū)憯?shù)據(jù)FIFO由于處于空閑或等待狀態(tài)未被使用,因此控制器可以繼續(xù)對(duì)處于空閑狀態(tài)的NAND Flash進(jìn)行操作,如此便形成流水線操作。還可以把兩片NAND Flash作為一組進(jìn)行數(shù)據(jù)并行處理,共4組進(jìn)行流水線操作,以達(dá)到最大的數(shù)據(jù)吞吐率。其流水寫(xiě)操作時(shí)序如圖4所示。

      3 功能驗(yàn)證與性能分析

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

      安全協(xié)處理器性能、面積與參考文獻(xiàn)中的設(shè)計(jì)比較結(jié)果如表2所示。

      表2 性能與面積比較

      經(jīng)過(guò)SMIC 0.18 μm工藝庫(kù)的綜合,整個(gè)平臺(tái)的面積約為250萬(wàn)門,最高工作頻率為100 MHz。

      本文設(shè)計(jì)的面向大安全存儲(chǔ)的密碼SoC集成了多個(gè)高性能安全協(xié)處理器,極大地提高了系統(tǒng)的密碼處理性能。設(shè)計(jì)的NAND Flash可支持外接多種類型(如SLC、MLC和 TLC)的 NAND Flash芯片,并且支持多片 NAND Flash的并行讀寫(xiě)和流水線讀寫(xiě)操作,最大支持160 GB存儲(chǔ)容量?;贔PGA的驗(yàn)證表明,其能夠靈活支持多種密碼算法的實(shí)現(xiàn),具有較高的NAND Flash訪問(wèn)速度。

      該設(shè)計(jì)可應(yīng)用于加密U盤(pán)、加密U盤(pán)KEY、加密移動(dòng)硬盤(pán)、高速加密流轉(zhuǎn)接器等設(shè)備中。

      [1]Chen Hanlin.The single-chip solution of embedded USB encryptor[C].Information Theory and Information Security,2010:42-45.

      [2]寧超.基于 SOC存儲(chǔ)控制器的研究與開(kāi)發(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]胡偉,慕德俊,劉航,等.移動(dòng)硬盤(pán)硬件加密的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(22).

      [5]沈弼龍.基于應(yīng)用程序特征分析的SoC任務(wù)分配技術(shù)研究與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(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ì)[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.

      猜你喜歡
      協(xié)處理器指令密碼
      聽(tīng)我指令:大催眠術(shù)
      密碼里的愛(ài)
      基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
      密碼疲勞
      基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
      ARINC661顯控指令快速驗(yàn)證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      HBase分布式二級(jí)索引通用方案研究
      密碼藏在何處
      奪命密碼
      兴仁县| 涞水县| 双桥区| 茶陵县| 电白县| 大港区| 北流市| 海口市| 类乌齐县| 琼结县| 安徽省| 城市| 苏尼特左旗| 安徽省| 六枝特区| 酒泉市| 新兴县| 伽师县| 岫岩| 巢湖市| 桂林市| 聂荣县| 郸城县| 平泉县| 双江| 兴隆县| 清水县| 左云县| 玛曲县| 札达县| 寻甸| 烟台市| 萝北县| 体育| 阜新| 上蔡县| 龙岩市| 卓资县| 高青县| 天等县| 东阿县|