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