基于DSP的PC加密卡沒計(jì)方案
在本文中,基于TI公司研發(fā)的高性能DSP如果應(yīng)用在PC加密卡中,不失為一種有效的保密方法。
作為一種有效的網(wǎng)絡(luò)安全解決方案,加密卡應(yīng)當(dāng)具有的功能如下:
(1)使用密碼算法對(duì)數(shù)據(jù)進(jìn)行加密和解密,密碼算法應(yīng)當(dāng)多種多樣以便更換、定期升級(jí)解決硬件難以變動(dòng)的缺點(diǎn),減少用戶投資。
(2)應(yīng)保護(hù)存儲(chǔ)證書、密鑰以及重要的數(shù)據(jù),主密鑰及重要的密鑰應(yīng)受到額外的保護(hù),這種保護(hù)強(qiáng)度應(yīng)超過(guò)其他通常的軟件。
(3)與主機(jī)、外圍設(shè)備和系統(tǒng)軟件有一個(gè)良好的接口,使用戶還有研發(fā)升級(jí)軟件的空間。
這些功能決定了PC加密卡的設(shè)計(jì)和目標(biāo)的基本結(jié)構(gòu)。
1 PC加密卡的基本結(jié)構(gòu)
本文介紹的PC加密卡主要由DSP芯片、計(jì)算機(jī)總線接口(PCI)、板上的FLASH ROM、隨機(jī)數(shù)生成模塊和外部設(shè)備接口等組成。TI全新DSP TM S320C6x系列功能強(qiáng),速度非???,但價(jià)格過(guò)高,不適合應(yīng)用于一般的加密和解密。中等性能的TMS320C54x系列,成本低,產(chǎn)品成熟,是一個(gè)更好的選擇。在本文中的PC加密卡以TMS320C54x DSP為主CPU來(lái)實(shí)現(xiàn)加密算法的運(yùn)算,很大程度上減輕了計(jì)算機(jī)CPU的計(jì)算負(fù)擔(dān),提高整體運(yùn)算速度。又因?yàn)橄盗蠨SP產(chǎn)品具有HPI接口,因此可以很容易地實(shí)現(xiàn)DSP與PCI總線之問(wèn)的連接。所以該加密卡就需要在PCI總線平臺(tái)上開發(fā)實(shí)現(xiàn)。
為了減少產(chǎn)品的開發(fā)時(shí)間和成本,以及獲得更好的數(shù)據(jù)傳輸性能,通常使用通用PCI接口芯片??紤]到TMS320C54x 3.3 V低電壓的運(yùn)行環(huán)境與未來(lái)DSP的發(fā)展方向,PLX公司的PCI9054芯片是最好的選擇。其兩者的外圍信號(hào)都是3.3 V電壓。
另外采用FLASH ROM作為外部?jī)?chǔ)存介質(zhì),存儲(chǔ)所有的加密算法、主控程序和密鑰管理程序,構(gòu)成與DSP之間的密碼算法運(yùn)算和重要數(shù)據(jù)的存儲(chǔ)平臺(tái)。具體使用AMD公司512 KB的29LV040,選擇此規(guī)格的原因:第一符合3.3 V的運(yùn)行環(huán)境;第二除了存儲(chǔ)程序外,依據(jù)容量還可存放數(shù)千個(gè)1 024 b的公鑰或密鑰,滿足了更多通信系統(tǒng)安全的需要。圖1是加密卡的基本框圖。
2 PC加密卡的設(shè)計(jì)
雖然現(xiàn)在PC機(jī)的CPU運(yùn)行速度越來(lái)越快,但加密和解密是一個(gè)極為復(fù)雜的過(guò)程,需要大量的科學(xué)計(jì)算霸占CPU的時(shí)間,這樣會(huì)使CPU運(yùn)行負(fù)荷,從而導(dǎo)致計(jì)算機(jī)系統(tǒng)的性能下降,其他方面工作的處理能力也會(huì)變得極為緩慢。而PC加密卡是一種專為加密和解密設(shè)計(jì)的硬件,配備專業(yè)的DSP信號(hào)處理芯片來(lái)專一地進(jìn)行加解密的科學(xué)計(jì)算,分擔(dān)了CPU的處理運(yùn)算強(qiáng)度,提高了加解密的速度和PC的性能。C54x系列的DSP芯片目前擁有主頻高達(dá)500 MHz或以上超快速度,計(jì)算能力也可以實(shí)現(xiàn)200 MIPS的水平,并且有望進(jìn)一步提高,使用C54x系列產(chǎn)品的另一個(gè)優(yōu)勢(shì)是它們采用同一套指令集,這就意味著有很好的軟件兼容性,無(wú)需反復(fù)更新。
加密卡能夠成功實(shí)現(xiàn)就依賴與上述各模塊之間的協(xié)調(diào)工作。當(dāng)系統(tǒng)啟動(dòng)時(shí),DSP與FLASH ROM之間構(gòu)成密碼算法運(yùn)算和重要數(shù)據(jù)存儲(chǔ)的平臺(tái),DSP從FLASH ROM中調(diào)入預(yù)先設(shè)定好的加密算法和主控程序,并接收主機(jī)送來(lái)的指令和數(shù)據(jù),由主控程序調(diào)入相應(yīng)的加密算法程序,對(duì)數(shù)據(jù)進(jìn)行加密或解密處理后,最終的數(shù)據(jù)由主機(jī)通過(guò)PCI接口芯片讀出。
3 加密卡的功能描述
本PC加密卡所實(shí)現(xiàn)的主要功能有:
數(shù)據(jù)加密解密功能 這是PC加密卡所具有的最基本的功能。加密卡目前封裝了DES,AES等對(duì)稱加密算法,RSA等非對(duì)稱公鑰算法,以及MD5等Hash算法。DES是使用最廣泛的密鑰系統(tǒng),特別是用在保護(hù)金融數(shù)據(jù)的安全中,該加密算法具有應(yīng)用廣、速度快的優(yōu)點(diǎn)。AES作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn),匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),具有良好的應(yīng)用前景。而MD5作為Hash算法,特點(diǎn)在于它是一種單向算法,用戶可以通過(guò)Hash算法對(duì)目標(biāo)信息生成一段特定長(zhǎng)度的惟一的Hash值,卻不能通過(guò)這個(gè)Hash值重新獲得目標(biāo)信。因此Hash算法常用在不可還原的密碼存儲(chǔ)、信息完整性校驗(yàn)等。
數(shù)字簽名與認(rèn)證功能 主要利用RSA算法模塊來(lái)實(shí)現(xiàn)。它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法,易于理解和操作,也很流行。RSA是目前最有影響力的公鑰加密算法,能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。經(jīng)歷了各種攻擊,至今未被完全攻破。該算法特別適合在商業(yè)和金融業(yè)中的應(yīng)用,為滿足多方面的要求,在卡中實(shí)現(xiàn)了簽名和認(rèn)證功能。
密鑰管理功能 密鑰是加密與解密的核心,密鑰的產(chǎn)生、保存、分配、修改與刪除必須有一個(gè)完善的管理體系。而加密卡中的隨機(jī)數(shù)生成模塊便是完成這項(xiàng)任務(wù)的關(guān)鍵。該模塊可以利用物理噪聲源產(chǎn)生一個(gè)真正的隨機(jī)數(shù),這就保證了一切密鑰都是在加密卡內(nèi)部完成的,并且都是通過(guò)加密卡加密后才與外部進(jìn)行交換。外界軟件和系統(tǒng)只能得到其中的公鑰,而無(wú)法得到私鑰的任何信息,保證密鑰的安全。[!--empirenews.page--]4 PCI9054簡(jiǎn)介
本文設(shè)計(jì)的PC加密卡,對(duì)接口芯片PCI9054的理解,涉及到產(chǎn)品的成敗,下面對(duì)PCI9054的結(jié)構(gòu)和功能進(jìn)行簡(jiǎn)要的介紹。
PCI9054是美國(guó)PLX公司生產(chǎn)的一種功能強(qiáng)、靈活性大,并且符合PCI V2.2規(guī)范的32位33 MHz總線接口控制器,它的出現(xiàn)使原本復(fù)雜化的PIC接口應(yīng)用設(shè)計(jì)變得簡(jiǎn)單明了,成為目前使用最廣泛的PCI接口芯片之一,能夠輕松實(shí)現(xiàn)TMS320C54x系列DSP的HPI接口與PCI總線之間的無(wú)縫連接。作為PCI目標(biāo)設(shè)備,其傳輸速率最高可達(dá)132 MB/s。圖2顯示了PCI9054的內(nèi)部結(jié)構(gòu)框圖。
從整體看,PCI9054共提供了三個(gè)對(duì)外接口:PCI總線接口、LLOCAL總線接口和E2PROM接口。PCI9054可看做是一種“橋接”芯片,完成DSP與PC之間數(shù)據(jù)和信息傳遞。另外,PCI9054具有可選的串行E2PROM接口,用來(lái)存放配置信息,完成啟動(dòng)時(shí)9054板卡的“熱插拔”功能。
PCI9054內(nèi)部有6個(gè)FIFO,分別作為三種數(shù)據(jù)傳輸模式的讀/寫數(shù)據(jù)通道,這些FIFO最主要的作用是使LOCAL總線與PCI總線的操作相互獨(dú)立完成,以及使PCI9054擁有零等待突發(fā)傳輸?shù)哪芰ΑR彩菍?shí)現(xiàn)PCI9054同步的LOCAL總線與C54x異步的HPI接口之間信號(hào)邏輯轉(zhuǎn)換的必備元素。LOCAL總線工作速率最高可達(dá)50MHz。
4.1 PCI9054配置寄存器
PCI9054有5個(gè)內(nèi)部寄存器:PCI配置寄存器、本地配置寄存器、運(yùn)行寄存器、DMA寄存器組、消息隊(duì)列寄存器等,是非常繁瑣和復(fù)雜的。要想成功完成PCI9054的控制,就需要很好地理解與控制一些關(guān)鍵的寄存器。圖3為PCI9O54配置寄存器的信息。
PCI9054提供了一個(gè)256 B支持即插即用功能的兼容PCI標(biāo)準(zhǔn)配置空間。PCI9054的配置寄存器配置的讀取和寫入,通常通過(guò)BIOS支持的PCI總線的中斷調(diào)用來(lái)實(shí)現(xiàn)。BIOS中斷調(diào)用,獲取總線和單元號(hào),進(jìn)行配置的讀寫;配置HPI CSR的基址寄存器,以訪問(wèn)HPICSR的地址;配置控制空間基地址寄存器,配置命令寄存器生產(chǎn)相應(yīng)對(duì)的PCI周期。
4.2 PCI9054與DSP之間的傳輸過(guò)程
當(dāng)PCI9054配置成功后,便可通過(guò)DSP芯片的HPI接口進(jìn)行PC與DSP之間的數(shù)據(jù)傳輸。步驟如下:首先清除HPI的復(fù)位寄存器,PCI9054解析由PCI總線傳來(lái)的新地址匹配控制空間寄存器的值,選取將要通信的DSP芯片。接著主機(jī)發(fā)起HPI控制寄存器的BOB和HWOB位,選擇正確的字節(jié)定位,主機(jī)加載HPI地址寄存器,DSP便完成了一次完整的HPI存儲(chǔ)器的訪問(wèn),數(shù)據(jù)被放置在HPI數(shù)據(jù)寄存器里,最后主機(jī)從HPI數(shù)據(jù)寄存器里讀寫數(shù)據(jù)。由此便完成了PC與DSP之間數(shù)據(jù)的傳輸。
5 結(jié)語(yǔ)
本文介紹了一種新型基于DSP技術(shù)上的PC加密卡沒計(jì)方案及原理,具有成本低、性能高、操作簡(jiǎn)便等特點(diǎn),是抵抗網(wǎng)絡(luò)信息危險(xiǎn)與黑客竊密的有力武器,由于其各方面性價(jià)比的優(yōu)勢(shì),適用于個(gè)人、企業(yè)、軍隊(duì)等廣泛領(lǐng)域,是保證信息安全必不可少的元素,具有廣闊的應(yīng)用前景。