《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 基于DSP的PC加密卡

基于DSP的PC加密卡

2009-06-03
作者:蘇 江 郭寶安 李武軍

  摘 要: 對(duì)基于DSP技術(shù)的PC加密卡進(jìn)行了綜述,對(duì)目前軟件和硬件實(shí)現(xiàn)網(wǎng)絡(luò)與信息安全的方法作了比較,并提出了一種采用TMS320C54x和PCI接口芯片實(shí)現(xiàn)高速加密卡的設(shè)計(jì)方案。
  關(guān)鍵詞: 數(shù)字信號(hào)處理器DSP 數(shù)據(jù)安全 PCI總線 可編程器件


  隨著Internet/Intranet的高速發(fā)展和普及,如何保證網(wǎng)絡(luò)上信息的安全逐漸成為人們關(guān)注的焦點(diǎn),個(gè)人和普通公司、企業(yè)對(duì)安全的需求也日益迫切。密碼技術(shù)作為解決安全問題的有效手段,在各種安全解決方案中得到了越來(lái)越廣泛地應(yīng)用。將網(wǎng)絡(luò)上傳輸?shù)男畔⒑拖到y(tǒng)內(nèi)存儲(chǔ)的信息進(jìn)行加密可以極大地提高網(wǎng)絡(luò)與信息的安全性。但一般作為個(gè)人或低成本辦公使用的PC計(jì)算機(jī)不可能都配備價(jià)格高昂的加密機(jī),而使用軟件來(lái)實(shí)現(xiàn)加密解密雖然價(jià)格上可以承受,升級(jí)也比較方便,但系統(tǒng)性能會(huì)因此受到很大影響,此外在安全強(qiáng)度上與經(jīng)過特殊設(shè)計(jì)的硬件加密也無(wú)法相比,例如應(yīng)用于安全領(lǐng)域的軟件屢屢被黑客通過各種手段攻破,又無(wú)很好的對(duì)付手段就是證明。因此對(duì)需要經(jīng)常在廣域網(wǎng)或Internet上進(jìn)行大量保密數(shù)據(jù)通信的用戶而言,期待著有一種低成本且性能較高的加解密解決方案。本文闡述的基于TI公司高性能DSP的PC加密卡正是適應(yīng)這種要求的產(chǎn)品。
  作為網(wǎng)絡(luò)安全問題一種較好的解決方案,加密卡通常需要具備下列功能:
  ·使用密碼算法對(duì)數(shù)據(jù)進(jìn)行加密解密,密碼算法應(yīng)可更換、升級(jí)、克服硬件改動(dò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),速度也非???,但目前價(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ā)平臺(tái),因此需要在PCI總線平臺(tái)上開發(fā)加密卡產(chǎn)品。
  使用通用的PCI接口芯片能夠減少開發(fā)時(shí)間和成本,并獲得較好的數(shù)據(jù)傳輸性能。在眾多通用的PCI接口芯片中,AMCC公司的S5920、PLX公司的PCI9050/52等芯片是從ISA到PCI總線平臺(tái)平滑過渡的最佳選擇,這些芯片實(shí)現(xiàn)了PCI目標(biāo)設(shè)備的功能,提供了與ISA總線信號(hào)兼容或時(shí)序相似的本地總線信號(hào)。但從DSP和適配卡的發(fā)展方向來(lái)說(shuō),3.3V低電壓的信號(hào)環(huán)境是更主流的選擇,因此加密卡采用的是PLX公司的PCI9054與TI公司的TMS320LC(VC)54x的,外圍信號(hào)都是3.3V電平。圖1是整個(gè)加密卡的基本結(jié)構(gòu)框圖。


2 PC加密卡的設(shè)計(jì)
  雖然PC機(jī)的CPU的速度越來(lái)越快,但是在加解密等大量科學(xué)計(jì)算面前,還是有些力不從心。而且由于加解密要占用CPU大量的時(shí)間,在加解密運(yùn)算時(shí),使計(jì)算機(jī)系統(tǒng)性能降低,其他工作的處理大大放慢。加密卡由于專為加解密目的設(shè)計(jì),采用適用于科學(xué)計(jì)算的DSP芯片,因此能夠減輕CPU的計(jì)算負(fù)擔(dān),提高加解密速度和整個(gè)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ì)通用卡),因此兩種芯片之間還需要信號(hào)電平的轉(zhuǎn)換芯片,常用的芯片有74LVC4245等雙電壓驅(qū)動(dòng)芯片、SN74CBTD3384等總線開關(guān)??删幊踢壿嬓酒lash ROM及A/D芯片等則均有5V和3.3V的產(chǎn)品,選擇范圍較廣。采用PCI接口芯片而不是使用FPGA、CPLD等芯片來(lái)實(shí)現(xiàn)部分的PCI接口邏輯,主要是因?yàn)镻CI接口芯片功能全而強(qiáng)大(例如FIFO速度快、容量大,可支持DMA方式等),而且可以減少設(shè)計(jì)失誤,縮短開發(fā)周期,降低總體開發(fā)成本。
  考慮到DSP中的片上RAM已經(jīng)能夠滿足大部分程序的容量要求,而因?yàn)樗惴缮?jí),對(duì)外部存儲(chǔ)器的寫入頻度較小但不可缺,所以將卡上的RAM和ROM合二為一,采用適合此項(xiàng)功能的閃存(Flash) ROM。選擇該類型芯片可以簡(jiǎn)化設(shè)計(jì),具體使用的是AMD公司512KB容量的29F040(5V)或29LV040(3.3V),選取該容量主要依據(jù)卡上的算法代碼的大小以及所需存放密鑰、證書的數(shù)量而定,這樣Flash ROM除存儲(chǔ)程序之外,還可存放數(shù)千個(gè)1024比特的公鑰和同等數(shù)量的私鑰,可以滿足大多數(shù)安全通信系統(tǒng)的需要。
3 模塊的功能描述
  本PC加密卡所實(shí)現(xiàn)的主要功能有:
  ·數(shù)據(jù)加密解密功能:這是PC加密卡所具有的最基本的功能。PC加密卡目前封裝了DES、IDEA、TUC等對(duì)稱加密算法,以及RSA等公鑰算法。DES作為傳統(tǒng)的加密算法具有應(yīng)用廣、速度快的優(yōu)點(diǎn)。IDEA是已公開的可用算法中速度快且安全性強(qiáng)的分組密碼算法,具有良好的應(yīng)用前景。而公鑰加密算法RSA則具有較高的安全性和密鑰管理方便的特點(diǎn),通常用來(lái)對(duì)會(huì)話密鑰加以保護(hù)。
  ·數(shù)字簽名與認(rèn)證功能:數(shù)字簽名在當(dāng)前的商業(yè)和金融業(yè)中已經(jīng)有了廣泛的應(yīng)用,為滿足多方面的要求,在卡中實(shí)現(xiàn)了簽名和認(rèn)證功能,主要利用RSA算法模塊來(lái)實(shí)現(xiàn)。
  ·密鑰管理功能:為維護(hù)PC加密卡的正常運(yùn)行,密鑰的產(chǎn)生、保存、分配與管理功能是必不可少的。由于私鑰等重要密鑰在卡中保存,這一功能由加密卡的配套軟件與加密卡本身協(xié)同實(shí)現(xiàn)??ㄉ蟽?nèi)置的軟件設(shè)計(jì)為可自動(dòng)生成RSA的一對(duì)密鑰,外界軟件和系統(tǒng)只能得到其中的公鑰,而無(wú)法得到私鑰的任何信息,保證密鑰的安全。
  上述功能的實(shí)現(xiàn)依賴于加密卡各模塊間的協(xié)調(diào)工作,下面是各主要模塊的具體功能描述:
  DSP與Flash ROM構(gòu)成密碼算法運(yùn)算和重要數(shù)據(jù)存儲(chǔ)的平臺(tái)。系統(tǒng)啟動(dòng)時(shí),DSP從Flash ROM調(diào)入自舉和主控程序,接收主機(jī)送來(lái)的指令和數(shù)據(jù),調(diào)入相應(yīng)的算法程序,對(duì)數(shù)據(jù)進(jìn)行加密或解密處理后,由主機(jī)通過PCI接口芯片讀出(見圖2)。


  在這里可編程邏輯芯片主要實(shí)現(xiàn)Flash ROM的讀寫信號(hào)和C54x外部等待狀態(tài)的生成。因?yàn)槟壳岸鄶?shù)Flash ROM的讀寫速度跟不上DSP芯片的速度,除了DSP芯片的內(nèi)部等待狀態(tài)(最多7個(gè)DSP時(shí)鐘周期)之外,還要加上外部等待狀態(tài)。下面就是一個(gè)生成8時(shí)鐘周期等待狀態(tài)的模塊(不使用MSC#信號(hào)),修改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平臺(tái)的即插即用,最大程度的方便用戶的安裝與使用。
  PCI9054同步的Local總線與C54x異步的HPI接口之間需要信號(hào)邏輯轉(zhuǎn)換,該功能由可編程邏輯芯片方便地實(shí)現(xiàn)。圖3是PCI9054與3.3V的LC54x芯片HPI口的連接示意框圖,其中的PCI9054工作在32位Local總線,非突發(fā)的目標(biāo)設(shè)備讀寫模式。
  LHOLDA由LHOLD延遲一個(gè)Local總線時(shí)鐘周期得到,并在反相后接到DSP的HCS腳。其他主要信號(hào)的基本時(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)生工作密鑰和會(huì)話密鑰,為公鑰算法提供生成素?cái)?shù)所需的隨機(jī)數(shù),某些公鑰算法和協(xié)議(例如密鑰交換協(xié)議等)直接需要一個(gè)或多個(gè)隨機(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ù)足以滿足一般對(duì)隨機(jī)數(shù)性能的要求。僅采用D0即LSB作為所生成的隨機(jī)數(shù),其產(chǎn)生速率亦可達(dá)100Kbit/s以上。圖5是一個(gè)簡(jiǎn)易而實(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)國(guó),何佩琨.通用高速PCI總線目標(biāo)模塊的設(shè)計(jì).電子技術(shù)應(yīng)用,1999;25(1)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。