基于TMS320VC5410的DES加密系統設計

發(fā)布時(shí)間:2010-12-28 21:17    發(fā)布者:designer
關(guān)鍵詞: DES , TMS320VC5410 , 加密
數據加密是為了保證所傳輸信息的安全而在特定參數(稱(chēng)為密鑰)的控制下按照某種規律對原始數據進(jìn)行的人為擾亂,將其轉換成秘密形式的信息。數據加密標準 (Data Encrvption Standard,DES)是第一個(gè)廣泛應用于商用數據保密的、公開(kāi)的密碼算法,在其公布和正式實(shí)施后,成為許多國家政府、銀行和標準組織的信息安全處理標準。然而DES實(shí)現信息保密的前提是對于密鑰的有效管理,這就要求基于DES的加密系統必須提供可靠、方便的密鑰保存設備。同時(shí)在近20年,DSP處理器的性能得到很大改善,軟件和開(kāi)發(fā)工具也得到相應發(fā)展,價(jià)格大幅下降,應用也越來(lái)越廣泛。本文選用TI公司TMS320VC54x系列DSP,采用軟件方式實(shí)現DES加密算法,同時(shí)以集成電路卡(Integrated Circuit Card)作為密鑰存儲設備。為了解決DSP的通用IO口較少的問(wèn)題,使DSP片上的一些特殊功能引腳工作在通用輸入輸出引腳狀態(tài)顯得尤為重要。本文結合 DSP運算速度快、片上資源多的特點(diǎn),研究并實(shí)現基于DSP的DES加密系統及其與IC卡以及終端PC機之間的通信協(xié)議。

1 DES算法簡(jiǎn)介

DES作為美國國家標準的加密算法,既可用于加密又可用于解密。其加密過(guò)程主要分為3個(gè)部分,如圖1所示。首先把輸入的數據比特流以每64 bit為一組進(jìn)行分組得到明文x,之后是一個(gè)初始置換,IP,記為Xo=IP(x)=LoRo(Lo代表左邊32 bit,Ro代表右邊32 bit);然后以每一組作為加密單元,在16個(gè)子密鑰(每個(gè)子密鑰的長(cháng)度為48 bit)的控制下根據下列規則計算LiRi(1≤i≤16),進(jìn)行16輪的非線(xiàn)性變換:





每輪中都有換位和代替運算;最后再經(jīng)過(guò)一個(gè)逆初始置換IP-1(為IP的逆變換)輸出一組64 bit長(cháng)的密文。





對于數據較大的文件加密要求芯片具有很高的處理速度。出于保密通信系統的需求,該系統設計以IC卡作為密鑰的存儲設備,采用TI公司 TMS320VC54x系列DSP實(shí)現對來(lái)自PC機的明文數據進(jìn)行DES加密處理。該方案運算速度快、保密性好,具有很高的可擴展性,用于保密的數據采集系統中,對來(lái)自數據采集模塊的信號進(jìn)行DES加密后,傳輸給PC機。

2 系統硬件設計

結合運算速度,外設接口以及性?xún)r(jià)比等方面的考慮,選用TI公司TMS320VC54x系列16位定點(diǎn)TMS320VC5410型DSP作為實(shí)現DES加密的硬件平臺。它具有較低的功耗與杰出的性能,時(shí)鐘最高頻率可以達到100 MHz。另外,TMS320VC5410片上提供了3個(gè)可以設置為GPIO接口的多通道緩沖串口(McBSP),這對外圍設備接口子系統的設計至關(guān)重要。系統中除TMS320VC5410基本的工作外圍電路如電源晶振模塊、Flash模塊和JT-AG接口模塊以外,還主要包括以下2部分:1)TMS320VC541O與SLE5542型IC卡片的接口模塊,主要用于系統工作時(shí)IC卡向DSP傳送用于數據加密的密鑰和卡片存儲的其他一些用戶(hù)信息;2)DSP與PC主機的通信接口模塊,它是DSP與個(gè)人電腦的通信接口,主要用于DSP接收明文數據以及將加密后的數據反饋至PC機。

  2.1 McBSP簡(jiǎn)介

TMS320VC5410片內包含了3個(gè)全雙工的多通道緩沖串口(Multichannel Buffered Serial Ports,McBSP),分別為McBSP0、McBSPI和McB-SP2。它們可以提供全雙工通信、連續數據流的雙緩沖數據寄存器、接收和發(fā)送獨立的幀和時(shí)鐘,可以直接和系統中的其他器件接口連接并可以配置為通用IO口。McBSP與外設的數據交換,通過(guò)DX引腳發(fā)送,RX引腳接收。通信的時(shí)鐘與幀信號由CLKX、CLKR、FSX及FSR引腳來(lái)控制。T-MS320VC5410對McBSP的控制由2個(gè)16 bit的串口控制寄存器(SPCR[1,2])和引腳控制寄存器(PCR)來(lái)實(shí)現。DSP的CPU或DMA從數據接收寄存器(DRR [1,2])讀取接收數據;發(fā)送時(shí),向數據發(fā)送寄存器(DXR[1,2])寫(xiě)數據,數據寫(xiě)入后通過(guò)傳輸移位寄存器(XSR[1,2]),移位輸出到DX 上。同樣,從DR上接收的數據,移位存儲到接收移位寄存器(RSR[1,2]),并復制到接收緩存寄存器(RBR[1,2])。然后,再由 (RBR[1,2])復制到DRR[1,2]。DRR[1,2]可以由CPU或DMA讀出。

2.2 DSP與IC卡連接模塊

選用西門(mén)子公司SLE5542型卡片,其引腳定義和功能說(shuō)明如表1所示。它是一種按字節操作的多存儲器邏輯加密卡,應答復位符合ISO78 16-3標準。該型卡片內置了3個(gè)存儲器:32×1 bit的PROM型保護存儲器、256×1 bit的EEPROM型主存儲器以及32x1 bit的EEPROM型加密存儲器。主存儲器可重復擦除使用,按字節操作,并分為保護數據區和應用數據區,讀出均不受限制,但應用數據區的擦除和寫(xiě)入則受加密存儲器中的密碼及密碼計數器保護。





為了提高硬件的利用率和解決DSP片上通用IO口較少的問(wèn)題,本系統設計將MeBSPI配置為通過(guò)IO口實(shí)現其與IC卡片通信的模塊。由于McB-SP引腳中的DX只能配置用作通用輸出腳,DR只能配置用作通用輸入腳,不方便程序編寫(xiě)對引腳狀態(tài)控制。所以在DSP對卡片讀寫(xiě)的硬件電路中選擇了MeBSP1 的FSR1、CLKR1、CLKX1、和FSX1這4個(gè)引腳,它們均可以通過(guò)16位的引腳控制寄存器(PCR)配置為通用I/O引腳。FSR1引腳通過(guò) CD4066開(kāi)關(guān)電源芯片來(lái)控制SLE5542卡片的上電與掉電;由CLKR1連接卡片的RST觸點(diǎn),卡片復位時(shí)改變引腳的高低電平狀態(tài);CLKX1引腳與IC卡片的時(shí)鐘觸點(diǎn)CLK相連,該引腳狀態(tài)的高低變化為卡片正常工作提供時(shí)鐘信號;FSX1連接卡片數據I/O觸點(diǎn),負責DSP與IC卡片之間讀寫(xiě)命令字和用戶(hù)有用數據的傳送。注意CLKX1和FSX1引腳要接上拉電阻,且FSX1配置的輸入或輸出狀態(tài)要根據DSP與IC卡之間數據流向而定。

為了使McBSP1的相關(guān)引腳工作在系統需求的通用I/O狀態(tài),首先需要將該串口的控制寄存器SPCR1中的RRST位和SPCR2中的XRST位均設置為‘O’,使串口復位,串口操作禁止。然后設置引腳控制寄存器PCR中的XIOEN和RIOEN為‘1’,使串口的接收和發(fā)送引腳均工作在通用I/0模式;另外將FSRM、CLKXM和CLKRM位均設置為‘1’,使FSR1、CLKX和CLXR引腳作為通用輸出管腳,將要輸出的值分別存儲在PCR中的FSRP位、CLKXP和CLKRP;對于FSXM位的設置,則需要根據通信時(shí)的具體情況而定。

2.3 DSP與PC通信模塊設計

系統設計中選擇了McBSP0作為T(mén)MS320VC5410從外界PC機接收明文數據和輸出密文的通道,直接通過(guò)PC機的RS232異步串口與TMS320VC54 10之間進(jìn)行加密解密數據的傳送。這種方法通過(guò)軟件實(shí)現PC機與DSP之間的串行雙工通信,它的硬件設計簡(jiǎn)單且不會(huì )過(guò)多占用CPU的時(shí)間,可以實(shí)現數據的高速傳輸。

RS232異步串口采用負邏輯傳送數據,以10 V電壓狀態(tài)表示數據‘O’,-10 V電壓狀態(tài)表示數據‘1’;而DSP的IO口則以3.3 V表示高電平‘1’狀態(tài)或者無(wú)數據傳送,以0 V表示低電平‘O’狀態(tài)。因此為了使TMS320VC54lO的多通道緩沖串口與RS232接口進(jìn)行通信,需要電平轉換電路,本文使用了MAXIM公司MAX232電平轉換器,如圖3所示。





3 系統軟件設計

選用TI公司CCS(Code Composer Studio)作為該加密系統軟件設計時(shí)的開(kāi)發(fā)和調試工具,使用C語(yǔ)言和匯編混合編程的模式完成軟件設計。由于C語(yǔ)言編程具有便于閱讀、維護、交流和可移植性好的特點(diǎn),因此采用C語(yǔ)言完成整個(gè)程序的主框架設計,在對時(shí)間要求比較苛刻的地方或對代碼運行效率有較大影響的場(chǎng)合采用匯編指令編寫(xiě)。

3.1 DSP讀IC卡軟件實(shí)現

3.1.1 McBSP1串口配置

當把卡片插入卡座時(shí),狀態(tài)開(kāi)關(guān)選通,并且電路板上提示燈亮表示插卡到位,DSP內存中的讀卡狀態(tài)標志位設置為‘1’。TMS320VC5410開(kāi)始初始化 McBSP1,使其工作在通用IO口狀態(tài),采用子地址尋址的方式對SPCR11(映射地址為0049h,子地址為00h)、SPCR12(子地址為 01h)和PCR1(子地址為0Eh)等寄存器進(jìn)行配置。配置代碼如下:

SPCR11=0x0000;

SPCR12=0x0000;

PCR1=0x3F00;

此時(shí)FSR1、FSX1、CLKR1和CLKX1均用作通用輸出管腳。把PCR中的FSRP位設置為‘O’,PCR1&=0xFFFB;則卡片Voc觸點(diǎn)電平為低,卡片處于掉電狀態(tài);通過(guò)語(yǔ)句PCR1l=0x0004把FSR1引腳置高電平給卡片上電。

由于DSP的FSX1引腳與卡片的數據I/O觸點(diǎn)相連,要求FSX1引腳具有雙向傳輸的功能,但該引腳在同一時(shí)刻只能處于輸入或輸出一種狀態(tài),為此定義了以下兩個(gè)宏實(shí)現引腳在輸入與輸出狀態(tài)的改變。

3.1.2 復位與復位應答

DSP檢測到讀卡狀態(tài)位為‘1’時(shí),給卡片上電,CLK(和RST保留于狀態(tài)L,開(kāi)始運行讀卡程序將卡中存儲的密鑰讀取至內存中。首先按照 ISO7816-3標準對SLE5542卡片進(jìn)行應答復位,復位可以發(fā)生在操作過(guò)程的任意時(shí)刻。之后,RST線(xiàn)被置于H狀態(tài),并維持至少15μs。在 RST狀態(tài)由高電平到低電平的轉換期間CLK提供一個(gè)時(shí)鐘脈沖,卡片內的地址計數器(address counter)清零,I/O引腳輸出有效數據的第1位,這一數據可視為復位應答;在此后連續31個(gè)時(shí)鐘脈沖的作用下,主存儲器中的前4個(gè)地址中的32位標頭數據被讀出;下一個(gè)時(shí)鐘脈沖使I/O引腳變?yōu)楦咦锠顟B(tài);此時(shí)卡片復位與復位應答完成。

3.1.3 DSP讀卡主程序設計

圖4為DSP讀IC卡主程序設計?ㄆ瑥臀粦鹬,則處于等待指令輸入的狀態(tài)。SLE5542每個(gè)指令均由控制字節、地址字節和數據字節組成,傳輸時(shí)從控制字節的最低位開(kāi)始?刂谱止潅魉屯戤呏,依次傳送地址字節和數據字節,均為低位在前。每個(gè)指令的傳輸都開(kāi)始于一個(gè)Start條件 (在時(shí)鐘信號為高電平狀態(tài),通過(guò)DSP發(fā)送卡片IO口一個(gè)下降沿),結束于Stop條件(在時(shí)鐘信號為高電平狀態(tài),通過(guò)DSP發(fā)送卡片IO口一個(gè)上升沿)。根據指令作用的不同。SLE5542接收完成后可能處于數據輸出模式(DSP讀卡)或者內部處理模式(DSP寫(xiě)卡)。





通過(guò)TMS320VC5410發(fā)送讀卡命令和所要讀取內容的地址(N=0,…,255)后,在CLK信號的作用下卡片將主存儲器中的數據按比特移至I/O 引腳發(fā)送至DSP內存中。讀取數據完成后,額外的一個(gè)時(shí)鐘信號將使I/O引腳變?yōu)楦咦锠顟B(tài),卡片退出輸出模式等待接收新的指令,也可以用Break條件 (在CLK為低時(shí),把RST信號由低電平變?yōu)楦唠娖綘顟B(tài))結束此次操作。





圖5顯示了TMS320VC5410對SLE5542卡片讀卡程序的調試結果,為了驗證讀卡功能的實(shí)現,系統讀取了卡片中的所有字節的內容。其中前8個(gè)字節為‘A2131091FFFF8115’為IC卡的廠(chǎng)商標識;之后地址8~20的13個(gè)字節全為‘FF’是寫(xiě)保護區;地址21~26是6個(gè)字節的用戶(hù)代碼‘D27600000400’,之后又是5個(gè)字節的寫(xiě)保護區;從地址32~255之間的數據是用戶(hù)數據區,可以在這些地址里存放加密系統的密鑰和其他的用戶(hù)信息。

3.2 PC通信軟件設計

3.2.1 MeBSP0的初始化配置

首先通過(guò)SPCR1O=0x0000,SPCR20=Ox0000把RRST與XRST位設置為‘O’,使串口復位。設置PCR0=0x0BOC;采樣率由DSP內部產(chǎn)生,接收與發(fā)送幀同步信號為低有效,時(shí)鐘上升沿發(fā)送數據、下降沿接收數據。其次通過(guò)接收控制寄存器RCR1O(子地址為02h)和 RCR20(子地址為03h)來(lái)對DSP串口接收模式進(jìn)行設置,令RCR10=0x0940;RCR20=0x0004;接收幀長(cháng)度10字、每字16 bit,忽略除第一個(gè)幀同步后的其他幀同步信號。通過(guò)傳輸控制寄存器XCR10(子地址為04h)和XCR20(子地址為05h)來(lái)對DSP串口發(fā)送模式進(jìn)行設置,令XCR10=0x0940;XCP20=0x0004;使數據的發(fā)送與接收模式一致。另外,采樣率發(fā)生器控制寄存器SRGR10(子地址為 06h)和SRGR20(子地址為07h)控制采用率發(fā)生器的工作模式。本系統中選擇PC機的串口工作波特率為38 400,采樣率發(fā)生器計算公式為:

CLKGDV=CPU工作頻率/(16x波特率)-1

由于TMS320VC5410工作頻率為100 MHz,因此CLKGDV=100 000 000/(16x38 400)-1=161,設置SRGR1=0x00A1,SRGR2=0x2000;最后通過(guò)SPCR1=0x0001,SRGR2=0x2000;對串口使能,處于可操作狀態(tài),至此完成了McBSPO的初始化配置。

3.2.2 數據格式的統一

DSP通過(guò)McBSP0接收外界PC機數據采用中斷方式。這里為了實(shí)現TMS320VC5410同步串口與PC機異步串口通信時(shí)數據格式的統一,把 McBSP的1個(gè)16位字等效為PC機串口傳送的1個(gè)8N1模式數據(1個(gè)起始位+8個(gè)數據位+1個(gè)停止位)的1位。PC機串口每發(fā)送1個(gè)位的數據,DSP采樣16次暫存數據接收寄存器DRR10(地址為21h)中。例如PC機通過(guò)RS232串口傳送數據為‘1’,則DRR10經(jīng)過(guò)16次采用后接收一個(gè)字的數據為‘FFFFh’,同理若前者后‘0’,則后者為‘0000h’。之后觸發(fā)McBSPO串口接收中斷,DSP執行中斷服務(wù)程序將DRR1O 中的有效數據(除去起始位和停止位)取走至內存中,并對計數器加1。當接收到一個(gè)完整的幀后,DSP置串口數據解碼標志位為‘1’,DSP開(kāi)始運行解碼程序,將‘FFFFh’和‘0000h’分別等效為一個(gè)比特位‘1’和‘0’,從而恢復出原始的數據幀。

當DSP對接收到的數據完成加密之后需要反饋輸出,TMS320VC5410串口數據向PC機發(fā)送的過(guò)程與數據接收的過(guò)程正好相反。每幀數據都需要進(jìn)行串口編碼之后通過(guò)數據發(fā)送寄存器DXR1O(地址為23h)發(fā)出。即把8位有效數據中的‘0’編碼為‘0000h’,‘1’編碼為‘FFFFh’,按照從低位到高位的順序重新排列編碼后的數據,并在幀首和幀尾分別添加起始位‘0000h’和結束位‘FFFFh’,將每組10個(gè)數據作為一幀信號發(fā)出。





圖6顯示了本文設計的加密系統的實(shí)驗結果。通過(guò)PC機和RS-232串口發(fā)送字符‘11112222’的十六進(jìn)制形式為‘3131313132323232’共64 bit,TMS320VC5410接收到64 bit明文數據后,通過(guò)讀取IC卡中的64 bit密鑰‘310000000000031’并對明文進(jìn)行DES加密后,輸出密文的十六進(jìn)制形式為‘96B466D634DE9A2D’。結果顯示系統工作穩定可靠,符合設計要求。

4 結論

本文采用SLE5542型IC卡存儲密鑰,TMS320VC5410中的McBSP引腳與卡片觸點(diǎn)連接并實(shí)現對卡片的應答復位和內容的讀取,同時(shí)通過(guò)RS2 32串口與個(gè)人PC機實(shí)時(shí)交換數據,接收PC機發(fā)送的明文并對其DES加密后反饋輸出。由于McBSP的工作機制是同步串口,把其當作通用I/O口和異步串口使用時(shí)必須注意內部寄存器的設置和輸入輸出方向的設定。經(jīng)軟硬件調試,實(shí)驗結果表明該方案完全可以滿(mǎn)足大數據量的加密,合理使用了硬件資源,可以進(jìn)一步升級擴展作為數據采集保密系統的加密模塊。
本文地址:http://selenalain.com/thread-48117-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页