www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于SOPC的USB密碼模塊硬件與固件設計

引 言

密碼模塊是指被容納在加密邊界范圍中,執(zhí)行認可安全功能(包括加密算法與密鑰產(chǎn)生)的硬件、軟件和固件的組合。集加密存儲、安全認證等功能于一體的USB密碼模塊,可作為USB安全鑰載體、USB加密卡、USB大容量加密存儲體應用于保護信息系統(tǒng)和秘密信息的主要工具,具有十分良好的市場應用背景。

SOPC(System On a Programmable Chip)技術(shù)是一種靈活、高效的軟硬件綜合解決方案。硬件上可裁剪、可擴充、可升級,有豐富的IP核可供集成,使得設計變得十分靈活。

本文提出了基于SOPC的USB密碼模塊設計思想,其目標是設計一款集加密存儲、安全認證等功能于一體的基于SOPC的USB密碼模塊應用系統(tǒng)。

1 基于SOPC的USB密碼模塊總體設計

1.1 設計思想

本設計是基于模塊的設計思想,充分利用SOPC現(xiàn)有資源開發(fā)特殊功能的應用子系統(tǒng)。用USB2.0接口控制芯片、有豐富可編程資源的FPGA芯片、安全存儲專用芯片以及大容量Flash構(gòu)成密碼模塊硬件基礎。以FPGA為控制中心,實現(xiàn)FPGA對相連部件的操作。

1.2功能模塊及組成

整個模塊系統(tǒng)包括硬件層、固件層、驅(qū)動層、應用層4部分。硬件層包括嵌入式主控制器及其周邊環(huán)境、高性能密碼處理單元、內(nèi)部安全控制引擎、應用平臺通信接口等模塊;固件層包括協(xié)議棧、嵌入式軟件等;驅(qū)動層包括器件驅(qū)動程序;應用層包括基于操作系統(tǒng)的各類應用軟件API。其總體架構(gòu)如圖1所示。

1.3 安全策略

本系統(tǒng)中安全策略包括模塊安全管理和數(shù)據(jù)安全管理。具體內(nèi)容包括基于口令的認證、口令設置修改、模塊有效期管理、安全參數(shù)保護管理、數(shù)據(jù)有效期管理、數(shù)據(jù)加密和數(shù)據(jù)銷毀等。

口令認證:通過硬件實現(xiàn)用戶對模塊訪問操作的口令認證。

口令設置修改:系統(tǒng)設計有多種級別的口令權(quán)限,負責不同的操作。

模塊有效期管理:若判斷到達或超過使用期限,則自動銷毀存儲數(shù)據(jù)和安全參數(shù),并鎖定密碼模塊。

數(shù)據(jù)有效期管理:當達到數(shù)據(jù)使用期限時,可自動銷毀存儲在大容量Flash里的數(shù)據(jù)。

數(shù)據(jù)銷毀:分為自動銷毀和主動銷毀。當非法使用、口令攻擊和數(shù)據(jù)有效期失效時,自動銷毀用戶存儲在大容量Flash中的數(shù)據(jù)。

數(shù)據(jù)加密:使用分組算法,通過密碼模塊密鑰對用戶存儲在大容量Flash中的數(shù)據(jù)寫人加密;讀出時解密,以保證存儲在其內(nèi)的始終是密文。

2 硬件設計

2.1硬件架構(gòu)模型

本文在研究了應用需求的基礎上,提出了圖2所示的硬件架構(gòu)模型。

它主要包括如下5部分:

①嵌入式微控制器:主要負責模塊的整體協(xié)調(diào)以及與外部通信接口的處理,實現(xiàn)系統(tǒng)控制、安全協(xié)議等功能。

②內(nèi)部安全控制引擎:為了減少中心控制模塊的工作,加快密碼運算處理速度,專門設計一個專用的微控制器來進行調(diào)度密碼運算處理。

③密碼運算IP核:面向信息安全領域的安全應用,集成對稱、非對稱、雜湊等密碼運算單元,通過內(nèi)部安全控制引擎控制。

④總線橋:為讓外部接口與內(nèi)部運算模塊更為高效地通信,通過總線橋使兩條總線連接起來,較好地實現(xiàn)時序匹配和數(shù)據(jù)傳輸。

⑤數(shù)據(jù)存儲模塊:為了讓密碼運算處理模塊與外部接口之間的通信同步,需設計一個數(shù)據(jù)存儲模塊來存儲外部來的數(shù)據(jù)以及加密后來不及輸出的數(shù)據(jù)。

2.2 內(nèi)部硬件電路關(guān)鍵部件設計

2.2.1 內(nèi)部安全控制引擎MCU的設計

根據(jù)密碼處理的特殊性,MCU一方面要實現(xiàn)兩個設備之間的數(shù)據(jù)直接交換;另一方面要及時對運算完成標志作出快速響應,以減少不必要的時間延遲。因此,MCU除具備通用微控制器的數(shù)據(jù)傳輸指令之外,還要增加如下2類指令:

①直接數(shù)據(jù)傳輸指令:實現(xiàn)外部存儲器與密碼模塊之問的直接數(shù)據(jù)傳輸。不同于通用微處理器的DMA功能,它通過專用指令實現(xiàn)兩個外部緩沖區(qū)之間的數(shù)據(jù)交換。

②輸入判斷分支指令:按位對外部輸入信號進行判斷,無須微處理器執(zhí)行算術(shù)運算或邏輯運算,即可直接判斷外部引腳電平,決定程序分支。

MCU設計:

◆采用哈佛結(jié)構(gòu)模型來實現(xiàn);

◆MCU為了與嵌入式控制器NiosII更好地協(xié)調(diào)工作,采用32位寬指令;

◆可以同時讀取指令和數(shù)據(jù),使流水設計變得簡單易行;

◆指令和數(shù)據(jù)都存放在內(nèi)嵌的存儲器中,使控制器、運算器和程序存儲器的處理效率較高;

◆主要進行數(shù)據(jù)傳輸指令和跳轉(zhuǎn)指令設計。

微控制器主要由取指電路、譯碼電路、執(zhí)行部件3部分組成,實現(xiàn)各項功能。其電路整體框架如圖3所示。

2.2.2嵌入式控制器NiosII與內(nèi)部安全控制引擎

MOU的協(xié)調(diào)控制設計

由于本密碼模塊系統(tǒng)較為復雜,內(nèi)嵌的NiosII需要完成數(shù)據(jù)的傳輸、控制、通信、調(diào)度等任務。若采用傳統(tǒng)的單CPU結(jié)構(gòu)進行控制,因受到CPU速度和自身資源的影響,系統(tǒng)很可能出現(xiàn)任務過于繁重的情況。一旦出現(xiàn)故障,系統(tǒng)將不能正常工作。因此,在本設計中采用雙CPU設計方案。其相互的協(xié)調(diào)控制模型如圖4所示。

對于NiosII而言:

外部如有數(shù)據(jù)要進行加/解密處理,NiosII首先寫命令到MCU命令接收寄存器,待MCU明確表示接收到命令后,返回一個確認信號給:NiosII;NiosII接收到確認信號后,則轉(zhuǎn)入到寫數(shù)據(jù)狀態(tài)。在寫數(shù)據(jù)狀態(tài),NiosII把數(shù)據(jù)按一定長度分組進行填充,輸入到橋接器的輸入FIFO。待數(shù)據(jù)輸入完后,發(fā)出輸入FIFO有效信號到MCU,轉(zhuǎn)入判斷IP運算核是否有效;若未完成,則繼續(xù)在該狀態(tài)進行等待。當IP運算完后,MCU置讀FIFO信號有效,NiosII判斷這個信號有效后直接從橋接器的輸出FIFO,把數(shù)據(jù)從輸出FIFO送到外部接口部件,完成一次數(shù)據(jù)加/解密過程;否則,繼續(xù)等待,超出規(guī)定時限后,發(fā)出錯誤警告。

對于MCU而言:

MCU接收到NiosII過來的命令,對命令進行解析后,向NiosII發(fā)出確認收到命令信號,并判斷輸入FIFO里有沒有數(shù)據(jù)。若有數(shù)據(jù),則轉(zhuǎn)入從輸入FIFO取數(shù)據(jù)狀態(tài),分組送入密碼運算IP核進行處理,待一組處理完后,送數(shù)據(jù)到輸出FIFO,置讀信號有效,完成一次數(shù)據(jù)加/解密過程;若輸入FIFO為空,則等待。當所有數(shù)據(jù)全部處理完成后,做出完成標志。

2.2.3總線橋的設計

本密碼模塊包括Avalon總線和自行設計的總線,兩條總線通過一個橋模塊進行連接,完成總線與總線的數(shù)據(jù)通信。外部接口模塊通過Avalon總線與NiosII進行通信,自行設計的總線主要負責密碼專用控制器MCU與密碼運算IP核之間的通信。為使這兩條總線實現(xiàn)時序匹配,能夠較好地數(shù)據(jù)傳輸,設計了總線橋。

總線橋的總體結(jié)構(gòu)如圖5所示。它包括地址譯碼和外設IP選擇模塊、寫數(shù)據(jù)寄存器模塊、讀數(shù)據(jù)寄存器模塊和狀態(tài)機模塊。

狀態(tài)機模塊主要協(xié)調(diào)兩側(cè)總線的協(xié)議時序,從而滿足數(shù)據(jù)的正確傳輸要求;同時,還將根據(jù)MCU發(fā)送過來的傳輸命令得到外設IP相關(guān)的特征信息,產(chǎn)生用于NiosII的控制信號。地址譯碼和外設IP選擇模塊根據(jù)自定義總線發(fā)出的地址信號,譯碼后選擇待操作的外設IP,并獲取該IP的特征信息。

3 固件設計

3.1 固件工作原理

USB密碼模塊初始化完成后,首先需要對用戶進行身份認證。驗證通過,即啟動生命期管理模塊,并根據(jù)口令的權(quán)限級別,實現(xiàn)對密碼模塊系統(tǒng)的安全訪問。再繼續(xù)接收主機命令,并進行相關(guān)操作。

若口令驗證不正確,則啟動口令計數(shù)器計數(shù),繼續(xù)進行口令驗證。當計數(shù)達到預定值時,則鎖定安全專用模塊并清空其所有數(shù)據(jù),使用戶不能進行任何操作。等待管理員重新進行復位設備操作,銷毀密鑰與數(shù)據(jù)。

數(shù)據(jù)的加密存儲以頁為單位進行,調(diào)用AES分組加密算法加密。由128位的模塊保護密鑰對每頁(2 KB)64個分組的存儲數(shù)據(jù)采用密碼反饋鏈接(CBC)模式進行加密。

3.2 固件工作流程

圖6描述了基于SOPC的USB密碼模塊的基本工作流程。系統(tǒng)啟動后首先進行系統(tǒng)自檢,若自檢不正常就退出模塊;若自檢正常,則調(diào)用總控程序,接收用戶命令并進行口令認證。若認證成功,則命令有效,啟動安全期管理,繼續(xù)分析命令,完成相應的控制操作(如口令設置、密鑰配置、頁讀或頁寫、數(shù)據(jù)銷毀),然后繼續(xù)等待接收用戶的命令。若認證不成功,則進入審計過程,開啟計數(shù)器功能,并繼續(xù)進行口令認證;當計數(shù)達到預定值時,將安全Flash中存儲的數(shù)據(jù)和密鑰銷毀,并鎖定密碼模塊,使非法用戶無法使用。只有管理員可以對模塊進行重新配置。

4 驗證與測試

4.1 橋的基本讀操作仿真時序

從圖7中可以看出,Avalon總線一側(cè)信號在ready信號有效時,S_bus總線已經(jīng)將運算IP核處理好的數(shù)據(jù)寫入到橋接器。這時,橋的狀態(tài)檢測模塊進入初始狀態(tài)S0,根據(jù)Avalon總線一端輸入的外設地址及外設接口信號,解析出需要具體寫入的外設接口模塊。待數(shù)據(jù)發(fā)送到總線后,然后置讀有效,表示NiosII可以將數(shù)據(jù)寫入外設接口模塊了,至此完成了一次數(shù)據(jù)的傳輸。

4.2橋的基本寫操作仿真時序

從圖8中可以看出,S_bus一側(cè)在wr_vail信號有效時,Avalon總線已經(jīng)將外設接口核的數(shù)據(jù)寫入到橋接器中。這時,狀態(tài)機從MCU中解析出需要傳輸?shù)降哪康腎P核的地址,將數(shù)據(jù)送到S_bus總線,由S_bus總線寫入到運算IP核中。

4.3數(shù)據(jù)加解密模塊驗證

USB密碼模塊加電后,密碼模塊首先完成自檢、配置寄存器等一系列操作。然后,便可以向數(shù)據(jù)密碼模塊內(nèi)送入數(shù)據(jù),按用戶要求進行操作;此時開始計時,先后寫入需要加密或解密的數(shù)據(jù),以及加密、解密命令。以上操作完成后,開始寫入數(shù)據(jù)。算法IP完成運算后,便可讀出密/明文。如此循環(huán),直至整個過程結(jié)束,停止計時。

輸入明文向量:

00112233445566778899AABBCCDDEEFF

輸入初始密鑰:

000102030405060708090A0B0C0D0E0F

輸出密文結(jié)果:

69C4E0D86A780430D8CDB7807084C55A

AES模塊仿真結(jié)果與加密功能測試結(jié)果如圖9和圖10所示。

將得到的運算結(jié)果與AES仿真結(jié)果相比,以驗證整個加密過程的正確性。結(jié)果表明,整個數(shù)據(jù)加密功能正確實現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

港交所擬修改主板上市規(guī)則,以便利尚未有盈利或業(yè)績支持的先進技術(shù)企業(yè)融資。港交所刊發(fā)有關(guān)特??萍脊旧鲜兄贫鹊淖稍兾募?,提議對《上市規(guī)則》進行修訂,建議設立新渠道,以讓特??萍脊居诼?lián)交所主板上市,并就此征詢市場意見。新規(guī)...

關(guān)鍵字: 信息技術(shù) 新能源 硬件

流水賬式的推文比較亂,不夠系統(tǒng),也形成不了好的宣傳效應,所以我整理了一個硬件基礎知識框架,后面推文會圍繞這個展開,中間也會穿插一些項目和實際應用例程。

關(guān)鍵字: 硬件 項目 例程

Linux內(nèi)核是從V2.6開始引入設備樹的概念,其起源于OF:OpenFirmware, 用于描述一個硬件平臺的硬件資源信息,這些信息包括:CPU的數(shù)量和類別、內(nèi)存基地址和大小、總線和橋、外設連接、中斷控制器和中斷使用情...

關(guān)鍵字: Linux內(nèi)核 硬件 CPU

USB-C接口全稱為USB Type-C,屬于USB 3.0下一代接口,其亮點在于更加纖薄的設計、更快的傳輸速度(最高可達10Gbps)、更強的電力傳輸(最高100W),此外USB-C接口還支持雙面插入,正反面隨便插,相...

關(guān)鍵字: iPhone 15 Lightning USB

珀金埃爾默日前推出Cellaca PLX圖像式細胞分析系統(tǒng),這是業(yè)界第一款能讓研究人員在單個自動化工作流中實現(xiàn)對細胞樣本多個關(guān)鍵質(zhì)量屬性進行分析和評估的臺式平臺,包括對細胞性質(zhì)、質(zhì)量和數(shù)量的分析評估。擁有尖端技術(shù)的Cel...

關(guān)鍵字: AC EXCEL 硬件 自動化

上周說開始盤三極管,周末我專門花時間去研究了小伙伴的留言,又去翻了模電的書,目的是尋找好的切入點。去翻課本,發(fā)現(xiàn)課本上總是會從三極管的發(fā)展歷程講起,談談三極管的物理構(gòu)成,分析內(nèi)部載流子的傳輸過程,電流的分配關(guān)系等等。這些...

關(guān)鍵字: 三極管 內(nèi)部載流子 硬件

據(jù)相關(guān)消息報道,愛立信近日表示,自從俄烏沖突發(fā)生以來,愛立信方面只向俄羅斯提供軟件和技術(shù)支持,已經(jīng)停止了向移動運營商出售任何電信硬件設備的渠道和業(yè)務。

關(guān)鍵字: 愛立信 俄羅斯 硬件

有人問我射頻怎么學?能不能速成?老實說我這水平也只是剛?cè)腴T,5G/4G/V2X/毫米波雷達/相控陣等等我都沒有設計過,僅僅是對PA,LNA,混頻器,濾波器,單芯片收發(fā)(零中頻/低中頻),超外差架構(gòu)等等有一些對應的項目設計...

關(guān)鍵字: 射頻 硬件

近日,隨著萬眾矚目的蘋果秋季發(fā)布會告一段落,幾款新產(chǎn)品也進入大眾視野。這一屆新產(chǎn)品雖在軟件上令人耳目一新,但硬件上卻無太大更新。不過在硬件的布置方面,蘋果仍有值得一提的動作,比如被嵌入到AirPods Pro耳機盒中的U...

關(guān)鍵字: 蘋果 硬件 U1芯片

GRL東莞實驗室將與上海和臺北實驗室一同,提供Windows Host認證服務 加利福尼亞州圣克拉拉市2022年9月22日 /美通社/ -- 高速信號和充電技術(shù)測...

關(guān)鍵字: Windows THUNDERBOLT USB OS

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉