當前位置:首頁 > EDA > 電子設計自動化
[導讀]摘要 為增強數(shù)據(jù)信息的安全性,設計了一種基于FPGA的高性能加密卡。該加密卡通過PCI Express總線與主機通信,由FPGA芯片內置的Nios ll軟核處理器和PCI—E硬核分別實現(xiàn)控制器模塊與通信接口模塊功能;采用SM1、R

摘要 為增強數(shù)據(jù)信息的安全性,設計了一種基于FPGA的高性能加密卡。該加密卡通過PCI Express總線與主機通信,由FPGA芯片內置的Nios ll軟核處理器和PCI—E硬核分別實現(xiàn)控制器模塊與通信接口模塊功能;采用SM1、RSA算法對數(shù)據(jù)進行加密或解密。將加密卡的數(shù)據(jù)通信和算法控制等功能集成在單片F(xiàn)PGA芯片上實現(xiàn),優(yōu)化了電路結構、提高了加密卡的穩(wěn)定性和可靠性。實際測試結果表明,所設計的加密卡功能正確,運算速度快,達到了預期的目標,具有良好的應用前景。
關鍵詞 信息安全;FPGA;PCI Express;NiosⅡ軟核;加密

    計算機網絡技術以及各種網絡應用的快速發(fā)展,在給社會、企業(yè)、個人帶來便利的同時,也由于目前網絡無法有效防止傳輸信息被第三方非法竊取和修改,而產生信息安全性問題。采用信息加密技術是解決信息安全的有效手段,目前信息加密技術主要分為軟件加密和硬件加密。軟件加密的優(yōu)勢在于其成本及工藝難度低,而加密速度依賴于計算機的性能,消耗了大量系統(tǒng)資源,且安全性和可靠性差。硬件采用專用加密卡實現(xiàn),具有較高的安全性和可靠性,是現(xiàn)代信息加密技術的發(fā)展方向。加密卡采用的總線技術經歷了ISA(Industrial Standard Archit ecture)總線、PCI(Peripheral Component Interconnect)總線和PCI Express(Peripberal Component Interconnect Express,PCI—E),目前的硬件加密卡主要采用PCI總線或PCI Express與DSP(Digital Signal Processing)芯片組合的方式,PCI總線或PCI—E總線負責與上位機通信,DSP芯片作為CPU(Central Processing Unit)。隨著計算機總線技術的發(fā)展,PCI總線已逐漸被具有更高傳輸性能的PCI—E總線取代,所以采用PCI總線的加密卡將逐漸被淘汰,采用PCI Express總線的加密卡通過橋接芯片實現(xiàn)PCI—E總線,雖然這種方式面向事務處的接口實現(xiàn)簡單,但需要兩片單獨的芯片,導致加密卡的結構復雜、控制分散、靈活性較差。基于上述因素,本文選用可編程邏輯器件(Field Programmable CateArray,F(xiàn)PGA)設計實現(xiàn)了一款高速率、高可靠性的硬件加密卡,通過FPGA內部資源實現(xiàn)PCI—E總線和CPU功能。

1 加密卡設計
    
加密卡的基本功能是數(shù)據(jù)加解密。本文所設計加密卡可實現(xiàn)的主要功能包括:SM1算法、RSA(Rivest-Shamir-Adleman)算法、密鑰管理、權限管理、隨機數(shù)生成等。SM1算法是高性能分組密碼算法,具有較高的加解密速率,用于對大量數(shù)據(jù)進行數(shù)據(jù)加解密操作;RSA算法是目前較優(yōu)秀的公鑰方案之一,具有較高的安全性,但其加解密速度較慢,主要用于對少量數(shù)據(jù)進行數(shù)字簽名操作;密鑰管理是保證加密卡安全性的重要組成部分,主要包括密鑰的生成、存儲、備份和刪除等功能;權限管理是為增強加密卡的安全性而設計的一種權限管理機制,只有通過身份認證后的操作命令才能被加密卡接受,以此有效地防止加密卡信息泄露;隨機數(shù)生成采用專用數(shù)字物理噪聲源實現(xiàn),負責產生真隨機數(shù)序列。
1.1 加密卡硬件結構
    
加密卡主要由控制器模塊、算法模塊、通信接口模塊等組成??刂破魇羌用芸ǖ暮诵哪K,其根據(jù)主機發(fā)送的命令控制加密卡的整體操作;通信接口模塊負責完成加密卡與主機之間的數(shù)據(jù)通信。設計選用Altera公司的CycloneIV CX系列的EP4CGX30 FPGA芯片,采用FPGA芯片內置的NiosII軟核處理器和PCI—E硬核來分別實現(xiàn)控制器模塊和通信接口模塊功能,分別代替現(xiàn)有加密卡中的DSP芯片和PCI—E橋接芯片,這種實現(xiàn)方式將控制器和通信接口以及其他邏輯功能模塊等集成在單片F(xiàn)PGA中,使加密卡的控制集中、結構簡單、集成度高,在保證信息安全性的同時,使加密卡具有更高的靈活性和可靠性。圖1為所設計的加密卡結構框圖。


1.2 FPGA內部電路
    
加密卡的主要控制功能被集成在FPGA中實現(xiàn)。其內部主要功能結構框圖如圖2所示。加密卡所執(zhí)行的操作由主機發(fā)起,具體操作流程:(1)首先PCI—E總線接口獲取FPGA內部數(shù)據(jù)緩存的控制權,通過該接口將主機中的數(shù)據(jù)存儲到FPGA內部的數(shù)據(jù)緩存中。(2)當數(shù)據(jù)全部存入數(shù)據(jù)緩存中后,將數(shù)據(jù)緩存的控制權交給NiosII軟核,NiosII軟核讀取數(shù)據(jù)緩存中的數(shù)據(jù),然后依據(jù)操作命令控制算法模塊和各種功能模塊進行相應的操作,并將操作結果存儲到數(shù)據(jù)緩存中。(3)當NiosII軟核控制操作完成后,釋放數(shù)據(jù)緩存的控制權并啟動PCI—E總線接口,NiosII軟核等待接受下一次的操作命令。(4)PCI—E總線接口將數(shù)據(jù)發(fā)送給主機,完成加密卡的一個操作流程。


1.2.1 PCI—E總線接口
    PCI—E總線是新一代總線標準,采用了目前業(yè)內流行的點對點的串行連接,具有較高的傳輸速率。PCI—E總線1.x版和2.x版的單通道速率分別為2.5 Gbit·s-1和5 Gbit·s-1,均采用8 b/10 b編碼,最新的PCI—E總線3.0版兼容1.x版和2.x版,同時可采用128 b/130 b編碼,單通道速率可達8 Gbit·s-1。雖然PCI—E總線在傳輸速率方面具有突出的優(yōu)勢,但是其體系結構復雜,設計難度大。
    設計選用的FPGA芯片,其內置收發(fā)器是可獨立操作的全雙工高速收發(fā)器,支持8 b/10 b編碼,單通道最大速率為2.5 Gbit·s-1,能夠滿足PCI—E總線的速率要求;其內置的PCI—E硬核占用較少的FPGA資源,能夠實現(xiàn)PCI—E總線物理層、數(shù)據(jù)鏈路層以及傳輸層的功能,支持根端口與端點配置和x1、x2、x4通道模式,符合PCI—E 1.1基本規(guī)范協(xié)議和電氣特性要求,可通過Avalon總線與FPGA內部的其他模塊互聯(lián),是一個完整的PCI—E協(xié)議解決方案。圖3為PCI—E硬核IP(Intellectual Property)模塊的高級結構框圖,內部包含2 kB的重試緩存和4 kB的接收緩存。本次PCI—E總線接口采用PCI—E硬核的x1通道、端點配置模式和DMA讀寫方式,DAM讀寫方式不需要主機中的CPU參與,使PCI—E總線接口可以直接和主機中的內存進行數(shù)據(jù)交互,適合大批量的數(shù)據(jù)傳輸。DMA讀寫方式通過Altera公司提供的SOPCBuilder工具中的DMA控制器實現(xiàn),并且通過該工具實現(xiàn)PCI—E硬核、高速收發(fā)器和DMA控制器的級聯(lián)組成PCI—E總線接口。


    主機向PCI—E總線接口發(fā)送數(shù)據(jù)的過程:(1)主機向加密卡發(fā)送數(shù)據(jù)時,首先將其內存起始地址、硬件存儲器地址、數(shù)據(jù)長度等信息寫入PCI—E總線接口的寄存器中。(2)PCI—E總線接口檢測到寄存器中的信息后,向主機發(fā)送讀請求。(3)主機接收到這些讀請求后,將數(shù)據(jù)從內存中取出,組包后發(fā)送給FPGA。(4)PCI—E總線接口將接收到的數(shù)據(jù)包轉換成自定義的數(shù)據(jù)格式,存儲到數(shù)據(jù)緩存中。(5)當主機將待發(fā)送的數(shù)據(jù)發(fā)送完畢后,給PCI—E總線接口發(fā)送一個中斷信號,告知此次數(shù)據(jù)傳輸完成,至此完成主機向PCI—E總線接口發(fā)送數(shù)據(jù)的操作。 

    PCI—E總線接口向主機發(fā)送數(shù)據(jù)的過程:(1)PCI—E總線接口檢測到由FPGA內部發(fā)送的啟動PCI—E總線接口信號后,首先向主機發(fā)送中斷信號,然后將數(shù)據(jù)緩存的數(shù)據(jù)組包后發(fā)送給主機。(2)主機接收到PCI—E總線接口的中斷信號后,將PCI—E總線接口發(fā)送來的數(shù)據(jù)存入內存中。(3)PCI—E總線接口發(fā)送完數(shù)據(jù)后再次向主機發(fā)送中斷信號,至此PCI—E總線接口向主機發(fā)送數(shù)據(jù)操作完成。
1.2.2 NiosII軟核設計
    NiosII軟核處理器是Altera公司推出的第二代集成在FPGA內部的可配置的32位RSIC(Reduced InstructionSet Computer)嵌入式處理器,具有經濟型、標準型和快速型3種,占用少量的FPGA資源,其中快速性NiosII軟核性能較高,速度較快,可獲得超過250DMIPS(Dhrystone Million Instructions executed Per Second)的性能。為使加密卡達到最快的運算速度,本次選用快速型NiosII軟核處理器作為CPU,其通過Avalon總線與SM1算法芯片接口電路、數(shù)據(jù)緩存、PCI—E硬核接口以及其他接口模塊等互聯(lián),共同組成硬件結構?;贜iosII的軟核處理器采用C語言進行加密卡軟件部分設計,軟件主要功能是根據(jù)主機發(fā)送的命令控制加密卡完成數(shù)據(jù)加解密、密鑰管理、權限管理和隨機數(shù)生成等操作。同時通過NiosII軟核指令與自定義硬件模塊相結合,以軟硬件協(xié)同的方式完成RSA算法電路的設計。
1.2.3 RSA算法設計
    
加密卡中的RSA算法操作主要包括密鑰生成、密鑰存儲和加解密。到目前為止,密鑰長度為1 024位的RSA算法已經無法保證加密數(shù)據(jù)的安全性,因此本次加密卡中的RSA算法采用2 048位的密鑰。RSA算法操作中的密鑰生成和密鑰存儲部分需要生成隨機數(shù),并對大量數(shù)據(jù)進行存儲和轉換,用硬件實現(xiàn)難度大,且效率不高,所以本次采用基于NiosII軟核的軟件方式實現(xiàn)該部分操作。RSA算法中的加解密操作需要對大位數(shù)的數(shù)據(jù)進行模冪運算,運算復雜,雖已有成熟的軟件實現(xiàn)方式,但是該種方法實現(xiàn)的RSA算法運算速度慢,無法滿足設計要求,而硬件實現(xiàn)方式已有成熟的算法,運算速度快,所以本次RSA算法的加解密部分采用硬件方式實現(xiàn),通過NiosII軟核控制RSA運算模塊完成加解密操作。
模冪運算是RSA加解密的核心,可以通過模乘運算來實現(xiàn),本次采用蒙哥馬利算法實現(xiàn)模乘運算,該算法利用移位和加法代替了復雜的乘、模操作,易于在硬件上實現(xiàn)。NiosII軟核中定制的RSA加解密運算指令的輸入為密鑰、數(shù)據(jù)長度和啟動信號,輸出為運算完成信號。當NiosII軟核接收到RSA運算命令后,通過定制的模冪運算指令向RSA運算模塊寫入密鑰和數(shù)據(jù)長度信號,然后啟動該運算模塊,RSA運算模塊接收到Nios II軟核的啟動信號后,從數(shù)據(jù)緩存讀取待運算數(shù)據(jù)進行加解密運算,運算完成后將運算結果存入數(shù)據(jù)緩存中,并向NiosII軟核發(fā)送完成信號,NiosII軟核接收到RSA運算完成信號后啟動PCI—E總線接口,將運算結果發(fā)送給主機。這樣采用軟硬件結合的方式實現(xiàn)RSA加解密功能,不但能夠保證RSA運算的正確性,降低RSA算法實現(xiàn)的復雜度,而且比采用純軟件實現(xiàn)方式提高了運算速度。
1.2.4 SM1接口電路設計
    
在FPGA內設計有一個專用SM1算法芯片的接口控制電路,用于控制SM1算法芯片實現(xiàn)數(shù)據(jù)的加解密操作。SM1算法芯片采用雙總線命令和組包操作方式,具有較高的運算速率。所以接口電路主要由寫狀態(tài)機和讀狀態(tài)機組成,分別控制對SM1算法芯片進行寫數(shù)據(jù)操作和讀運算結果操作。接口電路的工作原理:加密卡上電后,首先對SM1算法芯片進行硬件復位,然后檢查由NiosII軟核發(fā)送的SM1算法啟動信號,若該信號有效,則同時啟動寫狀態(tài)機和讀狀態(tài)機,這樣能夠在進行寫數(shù)據(jù)操作時,也讀取運算結果值,從而提高SM1算法命令的執(zhí)行速率。圖4和圖5分別為寫操作狀態(tài)機和讀操作狀態(tài)機的設計。



2 設計實現(xiàn)
    
設計采用NiosII Eclipse開發(fā)軟件完成加密卡軟件程序設計,采用QuaxtusII 11.0工具軟件完成加密卡硬件電路設計,并對所設計的軟硬件進行了整合和仿真驗證。在驗證設計的正確性后,完成了對FPGA內部整體電路的布局及綜合,并制作成加密卡樣品。在Windows系統(tǒng)下對所設計的加密卡連續(xù)測試168 h,加密卡工作正確;和已有的基于DSP和PCI—E橋接芯片設計的加密卡進行測試比較,結果如表1所示,本次設計的加密卡能夠正確地完成各項功能,同時RSA算法的運算速度為5.9次/s,SM1運算速度為295 Mbit·s-1,較已有加密卡RSA運算的3.5次/s和SM1運算的240 Mbit·s-1有了大幅提高,所以本次加密卡在保證可靠性的同時,運算速度更快。



3 結束語
    
基于增強信息安全的思想,設計了一種基于FPGA的低成本、高性能的加密卡。采用FPGA內部資源實現(xiàn)了加密卡的控制器模塊、算法模塊、通信接口模塊和各種接口等主要功能。并對兩種不同結構設計方式的加密卡進行了性能比較測試,結果表明采用FPGA單芯片結構設計方式的加密卡功能正確,電路板結構簡單,可靠性強并且具有更高的靈活性和運算速度,達到了預期的目標。目前所設計的加密卡只集成了SM1和RSA算法,今后根據(jù)需要,可在FPGA內部通過擴展硬件或軟件的方式來增加其它的加密算法功能,所以,該加密卡實用性強,具有可擴展性,在信息安全領域具有良好的發(fā)展前景。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉