摘 要: 對基于DSP技術(shù)的PC加密卡進(jìn)行了綜述,對目前軟件和硬件實現(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ù)作為解決安全問題的有效手段,在各種安全解決方案中得到了越來越廣泛地應(yīng)用。將網(wǎng)絡(luò)上傳輸?shù)男畔⒑拖到y(tǒng)內(nèi)存儲的信息進(jìn)行加密可以極大地提高網(wǎng)絡(luò)與信息的安全性。但一般作為個人或低成本辦公使用的PC計算機不可能都配備價格高昂的加密機,而使用軟件來實現(xiàn)加密解密雖然價格上可以承受,升級也比較方便,但系統(tǒng)性能會因此受到很大影響,此外在安全強度上與經(jīng)過特殊設(shè)計的硬件加密也無法相比,例如應(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)可更換、升級、克服硬件改動困難的缺點,保護(hù)用戶投資;
·存放密鑰、證書及其他必需的數(shù)據(jù),主密鑰和重要的密鑰應(yīng)受到保護(hù),而且這種保護(hù)應(yīng)該比通常的軟件能達(dá)到的強度更高;
·與主機、外圍設(shè)備和系統(tǒng)軟件有良好接口,方便用戶開發(fā)相應(yīng)的高層軟件。
上述要求決定了PC加密卡的設(shè)計目標(biāo)以及基本結(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總線是當(dāng)前和今后一段時間PC適配卡的主要開發(fā)平臺,因此需要在PCI總線平臺上開發(fā)加密卡產(chǎn)品。
使用通用的PCI接口芯片能夠減少開發(fā)時間和成本,并獲得較好的數(shù)據(jù)傳輸性能。在眾多通用的PCI接口芯片中,AMCC公司的S5920、PLX公司的PCI9050/52等芯片是從ISA到PCI總線平臺平滑過渡的最佳選擇,這些芯片實現(xiàn)了PCI目標(biāo)設(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的速度越來越快,但是在加解密等大量科學(xué)計算面前,還是有些力不從心。而且由于加解密要占用CPU大量的時間,在加解密運算時,使計算機系統(tǒng)性能降低,其他工作的處理大大放慢。加密卡由于專為加解密目的設(shè)計,采用適用于科學(xué)計算的DSP芯片,因此能夠減輕CPU的計算負(fù)擔(dān),提高加解密速度和整個PC的性能。目前C54x系列的DSP芯片主頻已高達(dá)100MHz以上,運算能力亦能達(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è)計通用卡),因此兩種芯片之間還需要信號電平的轉(zhuǎn)換芯片,常用的芯片有74LVC4245等雙電壓驅(qū)動芯片、SN74CBTD3384等總線開關(guān)??删幊踢壿嬓酒lash 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īng)用廣、速度快的優(yōu)點。IDEA是已公開的可用算法中速度快且安全性強的分組密碼算法,具有良好的應(yīng)用前景。而公鑰加密算法RSA則具有較高的安全性和密鑰管理方便的特點,通常用來對會話密鑰加以保護(hù)。
·數(shù)字簽名與認(rèn)證功能:數(shù)字簽名在當(dāng)前的商業(yè)和金融業(yè)中已經(jīng)有了廣泛的應(yīng)用,為滿足多方面的要求,在卡中實現(xiàn)了簽名和認(rèn)證功能,主要利用RSA算法模塊來實現(xiàn)。
·密鑰管理功能:為維護(hù)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)入相應(yīng)的算法程序,對數(shù)據(jù)進(jìn)行加密或解密處理后,由主機通過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ā)的目標(biāo)設(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)生速率亦可達(dá)100Kbit/s以上。圖5是一個簡易而實用的隨機數(shù)生成電路的示意圖。
總之,本文描述了一種低成本、高性能的數(shù)據(jù)加解密硬件解決方案——PC加密卡。該卡采用性能價格比較高的DSP芯片實現(xiàn)加密算法的運算,利用PCI接口芯片、可編程邏輯芯片及Flash ROM等優(yōu)化接口及邏輯設(shè)計。典型的分組密碼加解密速度達(dá)Mbit/s,RSA加解密在數(shù)十Kbit/s以上。由于其通用、高速及價廉的特點,具有很好的實際應(yīng)用前景,尤其適用于構(gòu)建在廣域網(wǎng)或Internet上的中小規(guī)模網(wǎng)絡(luò)各主機間的信息交換與傳輸。
參考文獻(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è)計.電子技術(shù)應(yīng)用,1999;25(1)