摘 要: 對基于DSP技術(shù)的PC加密卡進(jìn)行了綜述,,對目前軟件和硬件實(shí)現(xiàn)網(wǎng)絡(luò)與信息安全的方法作了比較,,并提出了一種采用TMS320C54x和PCI接口芯片實(shí)現(xiàn)高速加密卡的設(shè)計(jì)方案,。
關(guān)鍵詞: 數(shù)字信號處理器DSP 數(shù)據(jù)安全 PCI總線 可編程器件
隨著Internet/Intranet的高速發(fā)展和普及,如何保證網(wǎng)絡(luò)上信息的安全逐漸成為人們關(guān)注的焦點(diǎn),,個人和普通公司,、企業(yè)對安全的需求也日益迫切。密碼技術(shù)作為解決安全問題的有效手段,,在各種安全解決方案中得到了越來越廣泛地應(yīng)用,。將網(wǎng)絡(luò)上傳輸?shù)男畔⒑拖到y(tǒng)內(nèi)存儲的信息進(jìn)行加密可以極大地提高網(wǎng)絡(luò)與信息的安全性。但一般作為個人或低成本辦公使用的PC計(jì)算機(jī)不可能都配備價(jià)格高昂的加密機(jī),,而使用軟件來實(shí)現(xiàn)加密解密雖然價(jià)格上可以承受,,升級也比較方便,但系統(tǒng)性能會因此受到很大影響,,此外在安全強(qiáng)度上與經(jīng)過特殊設(shè)計(jì)的硬件加密也無法相比,,例如應(yīng)用于安全領(lǐng)域的軟件屢屢被黑客通過各種手段攻破,又無很好的對付手段就是證明,。因此對需要經(jīng)常在廣域網(wǎng)或Internet上進(jìn)行大量保密數(shù)據(jù)通信的用戶而言,,期待著有一種低成本且性能較高的加解密解決方案。本文闡述的基于TI公司高性能DSP的PC加密卡正是適應(yīng)這種要求的產(chǎn)品,。
作為網(wǎng)絡(luò)安全問題一種較好的解決方案,,加密卡通常需要具備下列功能:
·使用密碼算法對數(shù)據(jù)進(jìn)行加密解密,密碼算法應(yīng)可更換,、升級,、克服硬件改動困難的缺點(diǎn),保護(hù)用戶投資,;
·存放密鑰,、證書及其他必需的數(shù)據(jù),主密鑰和重要的密鑰應(yīng)受到保護(hù),,而且這種保護(hù)應(yīng)該比通常的軟件能達(dá)到的強(qiáng)度更高,;
·與主機(jī)、外圍設(shè)備和系統(tǒng)軟件有良好接口,方便用戶開發(fā)相應(yīng)的高層軟件,。
上述要求決定了PC加密卡的設(shè)計(jì)目標(biāo)以及基本結(jié)構(gòu),。
1 PC加密卡的基本結(jié)構(gòu)
PC加密卡主要由主CPU、計(jì)算機(jī)總線接口,、板上RAM/ROM,、隨機(jī)數(shù)生成模塊和外部設(shè)備接口等組成。TI公司新推出的TMS320C6x系列DSP功能強(qiáng),,速度也非??欤壳皟r(jià)格仍然太高,,不適合一般加解密使用,。而TMS320C54x系列具有性能適中,價(jià)格低廉,,產(chǎn)品成熟等特點(diǎn),,是較好的選擇。本文所介紹的PC加密卡以TMS320C54x DSP為其主CPU,。TMS320C54x系列DSP的部分產(chǎn)品具有HPI接口,,設(shè)計(jì)為容易與ISA總線相連。但基于ISA總線的產(chǎn)品已經(jīng)處于逐漸落伍的狀態(tài),,PCI總線是當(dāng)前和今后一段時(shí)間PC適配卡的主要開發(fā)平臺,,因此需要在PCI總線平臺上開發(fā)加密卡產(chǎn)品。
使用通用的PCI接口芯片能夠減少開發(fā)時(shí)間和成本,,并獲得較好的數(shù)據(jù)傳輸性能,。在眾多通用的PCI接口芯片中,AMCC公司的S5920,、PLX公司的PCI9050/52等芯片是從ISA到PCI總線平臺平滑過渡的最佳選擇,,這些芯片實(shí)現(xiàn)了PCI目標(biāo)設(shè)備的功能,提供了與ISA總線信號兼容或時(shí)序相似的本地總線信號,。但從DSP和適配卡的發(fā)展方向來說,,3.3V低電壓的信號環(huán)境是更主流的選擇,因此加密卡采用的是PLX公司的PCI9054與TI公司的TMS320LC(VC)54x的,,外圍信號都是3.3V電平,。圖1是整個加密卡的基本結(jié)構(gòu)框圖。
2 PC加密卡的設(shè)計(jì)
雖然PC機(jī)的CPU的速度越來越快,,但是在加解密等大量科學(xué)計(jì)算面前,,還是有些力不從心。而且由于加解密要占用CPU大量的時(shí)間,,在加解密運(yùn)算時(shí),,使計(jì)算機(jī)系統(tǒng)性能降低,,其他工作的處理大大放慢。加密卡由于專為加解密目的設(shè)計(jì),,采用適用于科學(xué)計(jì)算的DSP芯片,,因此能夠減輕CPU的計(jì)算負(fù)擔(dān),提高加解密速度和整個PC的性能,。目前C54x系列的DSP芯片主頻已高達(dá)100MHz以上,,運(yùn)算能力亦能達(dá)到200MIPS的水平,并且隨著工藝水平的進(jìn)步,,將進(jìn)一步提高,,C54x系列DSP采用同一套指令系統(tǒng),具有極好的向下兼容特性,,推出系列硬件產(chǎn)品可以減少軟件開發(fā)的成本,。
由于除C541、C542等少數(shù)芯片之外,,其他C54x系列芯片的標(biāo)稱電壓均為3.3V以下。而目前多數(shù)PCI接口芯片為5V標(biāo)稱電壓(其中PCI9054可工作于雙電壓,,可用于設(shè)計(jì)通用卡),,因此兩種芯片之間還需要信號電平的轉(zhuǎn)換芯片,常用的芯片有74LVC4245等雙電壓驅(qū)動芯片,、SN74CBTD3384等總線開關(guān),。可編程邏輯芯片,、Flash ROM及A/D芯片等則均有5V和3.3V的產(chǎn)品,,選擇范圍較廣。采用PCI接口芯片而不是使用FPGA,、CPLD等芯片來實(shí)現(xiàn)部分的PCI接口邏輯,,主要是因?yàn)镻CI接口芯片功能全而強(qiáng)大(例如FIFO速度快、容量大,,可支持DMA方式等),,而且可以減少設(shè)計(jì)失誤,縮短開發(fā)周期,,降低總體開發(fā)成本,。
考慮到DSP中的片上RAM已經(jīng)能夠滿足大部分程序的容量要求,而因?yàn)樗惴缮?,對外部存儲器的寫入頻度較小但不可缺,,所以將卡上的RAM和ROM合二為一,采用適合此項(xiàng)功能的閃存(Flash) ROM,。選擇該類型芯片可以簡化設(shè)計(jì),,具體使用的是AMD公司512KB容量的29F040(5V)或29LV040(3.3V),,選取該容量主要依據(jù)卡上的算法代碼的大小以及所需存放密鑰、證書的數(shù)量而定,,這樣Flash ROM除存儲程序之外,,還可存放數(shù)千個1024比特的公鑰和同等數(shù)量的私鑰,可以滿足大多數(shù)安全通信系統(tǒng)的需要,。
3 模塊的功能描述
本PC加密卡所實(shí)現(xiàn)的主要功能有:
·數(shù)據(jù)加密解密功能:這是PC加密卡所具有的最基本的功能,。PC加密卡目前封裝了DES、IDEA,、TUC等對稱加密算法,,以及RSA等公鑰算法。DES作為傳統(tǒng)的加密算法具有應(yīng)用廣,、速度快的優(yōu)點(diǎn),。IDEA是已公開的可用算法中速度快且安全性強(qiáng)的分組密碼算法,具有良好的應(yīng)用前景,。而公鑰加密算法RSA則具有較高的安全性和密鑰管理方便的特點(diǎn),,通常用來對會話密鑰加以保護(hù)。
·數(shù)字簽名與認(rèn)證功能:數(shù)字簽名在當(dāng)前的商業(yè)和金融業(yè)中已經(jīng)有了廣泛的應(yīng)用,,為滿足多方面的要求,,在卡中實(shí)現(xiàn)了簽名和認(rèn)證功能,主要利用RSA算法模塊來實(shí)現(xiàn),。
·密鑰管理功能:為維護(hù)PC加密卡的正常運(yùn)行,,密鑰的產(chǎn)生、保存,、分配與管理功能是必不可少的,。由于私鑰等重要密鑰在卡中保存,這一功能由加密卡的配套軟件與加密卡本身協(xié)同實(shí)現(xiàn),??ㄉ蟽?nèi)置的軟件設(shè)計(jì)為可自動生成RSA的一對密鑰,外界軟件和系統(tǒng)只能得到其中的公鑰,,而無法得到私鑰的任何信息,,保證密鑰的安全。
上述功能的實(shí)現(xiàn)依賴于加密卡各模塊間的協(xié)調(diào)工作,,下面是各主要模塊的具體功能描述:
DSP與Flash ROM構(gòu)成密碼算法運(yùn)算和重要數(shù)據(jù)存儲的平臺,。系統(tǒng)啟動時(shí),DSP從Flash ROM調(diào)入自舉和主控程序,,接收主機(jī)送來的指令和數(shù)據(jù),,調(diào)入相應(yīng)的算法程序,對數(shù)據(jù)進(jìn)行加密或解密處理后,,由主機(jī)通過PCI接口芯片讀出(見圖2),。
在這里可編程邏輯芯片主要實(shí)現(xiàn)Flash ROM的讀寫信號和C54x外部等待狀態(tài)的生成,。因?yàn)槟壳岸鄶?shù)Flash ROM的讀寫速度跟不上DSP芯片的速度,除了DSP芯片的內(nèi)部等待狀態(tài)(最多7個DSP時(shí)鐘周期)之外,,還要加上外部等待狀態(tài),。下面就是一個生成8時(shí)鐘周期等待狀態(tài)的模塊(不使用MSC#信號),修改Q寄存器的數(shù)目和計(jì)數(shù)器的計(jì)數(shù)值,,可以任意添加或減少等待狀態(tài)至最佳狀態(tài),。
START node istype 'reg_d';
Q0,,Q1,,Q2,Q3 node istype 'reg_d',;
COUNT=[Q3,,Q2,Q1,,Q0],;
START.D=1;
START.CLK=!OE#!WE;
START.AR=Q3;
COUNT:=(COUNT+1)&START#COUNT&!START;
COUNT.AR=!START*Q3;
COUNT.CLK=CLK;
READY=!START;
PCI接口芯片,、串行EEPROM與可編程邏輯芯片構(gòu)成與主機(jī)的接口模塊,,使主機(jī)與DSP之間可以透明的交換指令和數(shù)據(jù)。另外,,PCI接口模塊提供了PCI配置功能,支持Windows平臺的即插即用,,最大程度的方便用戶的安裝與使用,。
PCI9054同步的Local總線與C54x異步的HPI接口之間需要信號邏輯轉(zhuǎn)換,該功能由可編程邏輯芯片方便地實(shí)現(xiàn),。圖3是PCI9054與3.3V的LC54x芯片HPI口的連接示意框圖,,其中的PCI9054工作在32位Local總線,非突發(fā)的目標(biāo)設(shè)備讀寫模式,。
LHOLDA由LHOLD延遲一個Local總線時(shí)鐘周期得到,,并在反相后接到DSP的HCS腳。其他主要信號的基本時(shí)序關(guān)系見圖4,。
根據(jù)芯片的時(shí)序數(shù)據(jù),,在保證PCI9054的工作時(shí)序與LC54x的HPI口的時(shí)序滿足要求的條件下,Local總線可以工作在40MHz以上,。
隨機(jī)數(shù)生成模塊的功能是產(chǎn)生真正意義上的隨機(jī)數(shù),,而不是由軟件通常所產(chǎn)生的偽隨機(jī)數(shù)。真隨機(jī)數(shù)在密碼技術(shù)中的用途有:產(chǎn)生工作密鑰和會話密鑰,,為公鑰算法提供生成素?cái)?shù)所需的隨機(jī)數(shù),,某些公鑰算法和協(xié)議(例如密鑰交換協(xié)議等)直接需要一個或多個隨機(jī)數(shù)參與運(yùn)算等,。模塊生成隨機(jī)數(shù)的機(jī)理源于大自然中永恒的噪聲,將元器件(例如雪崩二極管)所固有的噪聲加以放大,,再通過A/D芯片采樣轉(zhuǎn)換,,便得到了真正意義上的隨機(jī)數(shù)。本文設(shè)計(jì)的PC加密卡該模塊使用的器件較少,,而且采用的A/D芯片MAX152的轉(zhuǎn)換精度僅為8位,,因此成本很低,而所產(chǎn)生的隨機(jī)數(shù)足以滿足一般對隨機(jī)數(shù)性能的要求,。僅采用D0即LSB作為所生成的隨機(jī)數(shù),,其產(chǎn)生速率亦可達(dá)100Kbit/s以上。圖5是一個簡易而實(shí)用的隨機(jī)數(shù)生成電路的示意圖,。
總之,,本文描述了一種低成本、高性能的數(shù)據(jù)加解密硬件解決方案——PC加密卡,。該卡采用性能價(jià)格比較高的DSP芯片實(shí)現(xiàn)加密算法的運(yùn)算,,利用PCI接口芯片、可編程邏輯芯片及Flash ROM等優(yōu)化接口及邏輯設(shè)計(jì),。典型的分組密碼加解密速度達(dá)Mbit/s,,RSA加解密在數(shù)十Kbit/s以上。由于其通用,、高速及價(jià)廉的特點(diǎn),,具有很好的實(shí)際應(yīng)用前景,尤其適用于構(gòu)建在廣域網(wǎng)或Internet上的中小規(guī)模網(wǎng)絡(luò)各主機(jī)間的信息交換與傳輸,。
參考文獻(xiàn)
1 TMSC320C54x DSP Reference Set.Texas Instruments,1996
2 PCI 9054 Data Book.PLX Technology,1999
3 馬衛(wèi)國,,何佩琨.通用高速PCI總線目標(biāo)模塊的設(shè)計(jì).電子技術(shù)應(yīng)用,1999,;25(1)