千兆國(guó)產(chǎn)化商用密碼卡技術(shù)_第1頁(yè)
千兆國(guó)產(chǎn)化商用密碼卡技術(shù)_第2頁(yè)
千兆國(guó)產(chǎn)化商用密碼卡技術(shù)_第3頁(yè)
千兆國(guó)產(chǎn)化商用密碼卡技術(shù)_第4頁(yè)
千兆國(guó)產(chǎn)化商用密碼卡技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

0引言商用加密卡作為基礎(chǔ)密碼設(shè)備,在金融、電力、社保等行業(yè)中為各種類型的上層安全應(yīng)用提供了底層的算法加速、身份認(rèn)證、密鑰管理和敏感數(shù)據(jù)保護(hù)等服務(wù)。目前市面上的千兆商用密碼卡在設(shè)計(jì)上大都采用集成度高的進(jìn)口器件,在算法實(shí)現(xiàn)上也過(guò)分依賴進(jìn)口邏輯器件,所用算法也大都是國(guó)際公開(kāi)算法,如:AES(AdvancedEncryptionStandard)、DES(DataEncryptionStandard)、RSA(RivestShamirAdleman)、ECDSA(EllipticCurveDigitalSignatureAlgorithm)等等,且對(duì)于敏感資源和密鑰的管理、保護(hù)都沒(méi)有滿足國(guó)家相關(guān)的密碼行業(yè)標(biāo)準(zhǔn)。本文通過(guò)分析加密卡的設(shè)計(jì)要素,描述該千兆密碼卡的設(shè)計(jì)實(shí)現(xiàn)思路及國(guó)產(chǎn)化的實(shí)現(xiàn)途徑,最終呈現(xiàn)出這款產(chǎn)品化的密碼卡的接口特性和實(shí)測(cè)性能。實(shí)測(cè)結(jié)果表明,該千兆密碼卡的對(duì)稱運(yùn)算性能逼近1Gbps,非對(duì)稱運(yùn)算簽名性能超過(guò)50000tps。1設(shè)計(jì)思路1.1硬件組成密碼卡的硬件部分主要由主控單元、總線接口單元以及密碼運(yùn)算單元組成。密碼卡采用國(guó)產(chǎn)正向設(shè)計(jì)的PH5系列FPGA實(shí)現(xiàn)高速PCI-E(PeripheralComponentInterconnectExpress)總線協(xié)議,使得密碼卡可以通過(guò)該總線單元實(shí)現(xiàn)與主機(jī)的互聯(lián)。上層軟件安全服務(wù)接口調(diào)用的命令均通過(guò)該總線單元發(fā)送給密碼卡的主控單元。密碼卡的主控單元采用的是國(guó)產(chǎn)的X1000E作為主控芯片,接受應(yīng)用層軟件的接口調(diào)用,負(fù)責(zé)密碼卡上各部分硬件資源的管理和調(diào)度,完成具體的密碼業(yè)務(wù)。密碼卡提供多種算法的密碼運(yùn)算服務(wù),其中:對(duì)稱密碼算法提供SMI、SM4;非對(duì)稱密碼算法提供SM2;雜湊算法提供SM3。密碼卡通過(guò)密碼算法提供數(shù)據(jù)加密/解密、簽名/驗(yàn)證及雜湊運(yùn)算等基礎(chǔ)密碼運(yùn)算服務(wù)。密碼卡的密碼運(yùn)算由專用算法引擎(SSX30-D實(shí)現(xiàn)SMI;SSX1510實(shí)現(xiàn)SM2/3/4)共同構(gòu)成,如圖1所示。圖1

硬件組成框1.2嵌入式軟件架構(gòu)密碼卡的嵌入式軟件是為應(yīng)用提供安全服務(wù)的關(guān)鍵所在,它的主要功能是向應(yīng)用提供硬件資源的管理和調(diào)度,因此在設(shè)計(jì)上主要考慮各種安全服務(wù)的實(shí)現(xiàn)以及設(shè)備自身的安全防護(hù),嵌入式軟件架構(gòu)圖如圖2所示。密碼卡的嵌入式軟件運(yùn)行在X1000E處理器上,嵌入式軟件由5個(gè)部分組成:硬件驅(qū)動(dòng)程序、接口命令處理、存儲(chǔ)資源管理、任務(wù)管理和狀態(tài)管理。圖2嵌入式軟件架構(gòu)(1)硬件驅(qū)動(dòng)程序從整個(gè)軟件架構(gòu)考慮,將直接訪問(wèn)硬件資源的程序抽象出來(lái),形成一層軟件模塊,即硬件驅(qū)動(dòng)程序。這樣,密碼卡的其他嵌入式軟件模塊就不用考慮如何訪問(wèn)硬件,全部交給硬件驅(qū)動(dòng)程序來(lái)處理。硬件驅(qū)動(dòng)程序在內(nèi)部實(shí)現(xiàn)對(duì)板卡上各類硬件資源的正確、快速和穩(wěn)定的訪問(wèn),提供抽象后的訪問(wèn)硬件的調(diào)用接口,將密碼卡嵌入式軟件與硬件資源在邏輯上隔離開(kāi)。(2)接口命令處理接口命令處理模塊從處理器角度來(lái)看就是一個(gè)中斷處理程序,處理主機(jī)的請(qǐng)求。主機(jī)向密碼卡發(fā)出請(qǐng)求后,X1000E會(huì)收到來(lái)自主機(jī)的中斷信號(hào),然后進(jìn)入中斷處理程序,同時(shí)請(qǐng)求的命令數(shù)據(jù)會(huì)進(jìn)AX1000E可訪問(wèn)的PH5接口芯片例化出的一塊雙口存儲(chǔ)區(qū)中。在中斷處理程序中,X1000E將命令數(shù)據(jù)讀出進(jìn)行解析后交由任務(wù)管理模塊處理,將處理結(jié)果回寫(xiě)到PH5接口芯片對(duì)應(yīng)的存儲(chǔ)區(qū)中,然后觸發(fā)接口芯片向主機(jī)發(fā)送中斷,這樣主機(jī)側(cè)的驅(qū)動(dòng)程序就會(huì)將處理結(jié)果從接口芯片讀出。(3)存儲(chǔ)資源管理整個(gè)硬件板卡的存儲(chǔ)資源分為兩部分:SPIFlash和eMMC。

Flash上主要存儲(chǔ)X1000E的Boot程序、系統(tǒng)文件和一些管理信息。eMMC則主要用于存儲(chǔ)密碼卡在正常工作狀態(tài)下需要存儲(chǔ)的一些配置信息、密鑰文件及部分對(duì)外開(kāi)放的存儲(chǔ)文件。(4)任務(wù)管理任務(wù)管理模塊是密碼卡嵌入式軟件的關(guān)鍵部分,它是密碼卡提供安全密碼服務(wù)的具體執(zhí)行部件。任務(wù)管理模塊的“命令”來(lái)源于接口命令處理模塊,它的處理結(jié)果也送往接口命令處理模塊,在程序代碼上表現(xiàn)為一個(gè)函數(shù)向量表。根據(jù)接口命令處理模塊對(duì)主機(jī)命令的解析結(jié)果,任務(wù)管理模塊執(zhí)行具體的命令操作,比如:加解密、雜湊運(yùn)算、采集隨機(jī)數(shù)、登錄認(rèn)證等等。任務(wù)執(zhí)行結(jié)束后,不管成功與否都將結(jié)果交予接口命令處理模塊。(5)密碼資源管理密碼資源管理模塊用于對(duì)密碼算法及其參數(shù)和對(duì)應(yīng)密鑰的管理。針對(duì)算法及其參數(shù)的管理,主要的工作體現(xiàn)在對(duì)算法的配置、算法的安全處理。針對(duì)密鑰的管理,表現(xiàn)在密鑰的產(chǎn)生、存儲(chǔ)、輸入輸出、密鑰的保護(hù)及銷毀等多個(gè)環(huán)節(jié)的安全性、正確性的保障。密碼卡嵌入式軟件的主要流程圖如圖3所示。圖3

嵌入式軟件流程圖1.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是上層應(yīng)用與密碼卡之間通信的橋梁,它支持多進(jìn)程、多線程并發(fā)處理。設(shè)備驅(qū)動(dòng)程序是整個(gè)主機(jī)軟件工作的基礎(chǔ)部分,驅(qū)動(dòng)程序的實(shí)現(xiàn)是否正確高效,直接關(guān)系到密碼卡能否在相應(yīng)的操作系統(tǒng)中運(yùn)行的穩(wěn)定性與高效性。密碼卡的設(shè)備驅(qū)動(dòng)程序主要由下面幾個(gè)模塊以組成:(1)驅(qū)動(dòng)程序入口處理。(2)設(shè)備對(duì)象的創(chuàng)建。(3)驅(qū)動(dòng)程序的卸載。(4)即插即用處理。(5)電源管理。(6)數(shù)據(jù)傳輸。(7)中斷處理。由于大部分模塊在Windows內(nèi)核下都是標(biāo)準(zhǔn)的處理流程,因此下面只描述與密碼卡硬件設(shè)計(jì)密切相關(guān)的“數(shù)據(jù)處理”和“中斷處理”兩個(gè)模塊的實(shí)現(xiàn)原理。(1)數(shù)據(jù)處理數(shù)據(jù)傳輸模塊是驅(qū)動(dòng)程序中最重要的部分,我們采用標(biāo)準(zhǔn)的StartIO例程來(lái)處理請(qǐng)求數(shù)據(jù)包,圖4是驅(qū)動(dòng)程序中數(shù)據(jù)處理邏輯圖。當(dāng)應(yīng)用程序調(diào)用DevicelOControl時(shí),I/O管理函數(shù)就會(huì)創(chuàng)建一個(gè)IRP,并把這個(gè)IRP派發(fā)給對(duì)應(yīng)驅(qū)動(dòng)程序的派發(fā)例程。當(dāng)大量讀寫(xiě)請(qǐng)求進(jìn)入設(shè)備,我們把這些請(qǐng)求放入一個(gè)隊(duì)列中以便使硬件串行化處理。每個(gè)設(shè)備對(duì)象都自帶一個(gè)請(qǐng)求隊(duì)列對(duì)象,接著進(jìn)入StartIO例程。圖4

數(shù)據(jù)處理流程當(dāng)派發(fā)例程調(diào)用IoStartPacket()處理一個(gè)IRP時(shí),I/O管理器就調(diào)用一次StartIO例程,StartIO例程的工作就是處理IRP,這就需要訪問(wèn)密碼卡接口單元的內(nèi)部寄存器,把應(yīng)用層的數(shù)據(jù)拷貝到內(nèi)核緩存中,然后啟動(dòng)主機(jī)向密碼卡的DMA傳輸。當(dāng)密碼卡處理完當(dāng)前的數(shù)據(jù)并將處理結(jié)果傳向主機(jī)時(shí),主機(jī)就會(huì)收到相應(yīng)的中斷。(2)中斷處理密碼卡使用異步方式的中斷來(lái)告知主機(jī)CPU其I/O操作的完成,當(dāng)密碼卡處理完當(dāng)前的數(shù)據(jù)并將處理結(jié)果傳向主機(jī)時(shí),主機(jī)就會(huì)收到相應(yīng)的中斷。設(shè)備的驅(qū)動(dòng)程序收到這個(gè)中斷后進(jìn)行相應(yīng)的處理,并完成一次數(shù)據(jù)從設(shè)備向主機(jī)的傳輸。2關(guān)鍵技術(shù)及創(chuàng)新點(diǎn)密碼卡支撐著PCIE總線上大量數(shù)據(jù)的傳輸處理,數(shù)據(jù)處理性能越高,對(duì)主機(jī)性能的影響就越小。因此提升密碼卡的整體性能,從而減少主機(jī)上由于增加密碼功能而帶來(lái)的額外負(fù)擔(dān)具有十分重要的意義。在硬件設(shè)計(jì)上從以下幾個(gè)方面提升了性能:(1)高效地實(shí)現(xiàn)密碼算法密碼卡采用高性能的SSX30-D芯片和SSX1510芯片來(lái)分別實(shí)現(xiàn)SM1和SM2/3/4算法,以滿足高速數(shù)據(jù)處理的需要。如圖5所示。

圖5運(yùn)算單元邏輯圖在調(diào)度單元的控制下,運(yùn)算單元分別針對(duì)每種密碼運(yùn)算業(yè)務(wù)實(shí)現(xiàn)運(yùn)算引擎的管理和并發(fā)調(diào)度。密碼卡的主控制器X1000E通過(guò)SRAM總線來(lái)操作密碼運(yùn)算引擎接口邏輯部分的配置寄存器,對(duì)密鑰、初始向量和工作模式等參數(shù)進(jìn)行預(yù)置和管理。運(yùn)算單元引擎接口的另外一個(gè)數(shù)據(jù)通道直接與PCIE總線相連,直通主機(jī),使主機(jī)上的業(yè)務(wù)數(shù)據(jù)可以在不通過(guò)主控制器而直接進(jìn)入運(yùn)算單元,在調(diào)度模塊的管理下執(zhí)行算法運(yùn)算。在各算法業(yè)務(wù)的流程中,由于減少了數(shù)據(jù)傳輸需要主控制器參與和數(shù)據(jù)搬移的中間環(huán)節(jié),從而極大提升了整體的密碼運(yùn)算性能。(2)高效實(shí)現(xiàn)PCIE總線接口單元基于PH5芯片自帶的PCIEcore,DMA控制器以及在邏輯中例化出的主控制器接口通道和運(yùn)算單元接口通道共同完成了接口單元的設(shè)計(jì)。如圖6所示。圖6

總線接口單元邏輯圖當(dāng)密碼運(yùn)算的速率越接近總線傳輸速率時(shí),總線的數(shù)據(jù)傳輸開(kāi)銷對(duì)整個(gè)性能的影響就變得越明顯。如果總線數(shù)據(jù)傳輸和密碼運(yùn)算串行執(zhí)行,密碼運(yùn)算芯片就無(wú)法滿負(fù)荷工作,必然會(huì)極大地影響密碼卡的整體數(shù)據(jù)吞吐率,因此我們?cè)诳偩€接口單元上釆用了DMA和多緩沖流水線調(diào)度技術(shù),使總線數(shù)據(jù)傳輸和密碼運(yùn)算并發(fā)執(zhí)行,從而使密碼卡的密碼整體運(yùn)算性能逼近密碼運(yùn)算芯片的輸出性能。(3)安全機(jī)制為了增強(qiáng)密碼卡的安全性和穩(wěn)定性,針對(duì)可能受到的各類攻擊、風(fēng)險(xiǎn),密碼卡采取了多種安全防護(hù)措施,主要功能如下:采用國(guó)家密碼局批準(zhǔn)使用的SM1/2/3/4算法,且算法實(shí)現(xiàn)采用具有國(guó)密型號(hào)的芯片;通過(guò)嵌入式軟件的設(shè)計(jì),實(shí)現(xiàn)了完善的上電自檢、周期性自檢措施;采用具有國(guó)密型號(hào)的USBKey作為分離式身份認(rèn)證介質(zhì),防止非法用戶操作密碼卡;采用三層密鑰結(jié)構(gòu)體制,實(shí)現(xiàn)密鑰的逐層保護(hù),保證密鑰在生成、安裝、導(dǎo)入、存儲(chǔ)、備份、恢復(fù)及銷毀整個(gè)生命周期的安全;物理性安全措施的加持,例如:密碼卡具有帶散熱功能的屏蔽防護(hù)蓋、結(jié)構(gòu)件由防撬螺釘固定、主要器件電源均使用電容對(duì)地做平滑處理以降低能量分析攻擊風(fēng)險(xiǎn)等;主要元器件全國(guó)產(chǎn)。3性能指標(biāo)基于龍芯3A2000平臺(tái)對(duì)密碼卡進(jìn)行了各項(xiàng)算法指標(biāo)的測(cè)試,平臺(tái)信息如圖7所示。

圖7主機(jī)配置各項(xiàng)性能測(cè)試指標(biāo)詳情如表1所示。表1性能測(cè)試(包長(zhǎng)204

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論