999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TMS320VC5410的DES加密系統設計

2010-01-29 07:19:14趙旭東
電子設計工程 2010年9期

於 輝,石 濤,趙旭東

(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)

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

1 DES算法簡介

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

每輪中都有換位和代替運算;最后再經過一個逆初始置換IP-1(為IP的逆變換)輸出一組64 bit長的密文[2]。

圖1 DES加密算法流程Fig.1 Flow chart of DES encryption algorithm

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

2 系統硬件設計

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

2.1 McBSP簡介

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

2.2 DSP與IC卡連接模塊

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

表1 SLE5542引腳定義和功能說明Tab.1 Pins definition and functions description of SLE5542

IC卡連接電路如圖2所示。

圖2 TMS320VC5410與SLE5542連接電路圖Fig.2 Circuit connection between TMS320VC5410 and SLE5542

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

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

2.3 DSP與PC通信模塊設計

系統設計中選擇了McBSP0作為TMS320VC5410從外界PC機接收明文數據和輸出密文的通道,直接通過PC機的RS232異步串口與TMS320VC5410之間進行加密解密數據的傳送。這種方法通過軟件實現PC機與DSP之間的串行雙工通信,它的硬件設計簡單且不會過多占用CPU的時間,可以實現數據的高速傳輸[4]。

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

圖3 TMS320VC5410與RS232接口通信電路Fig.3 Interface communication circuit of TMS320VC5410 and RS232

3 系統軟件設計

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

3.1 DSP讀IC卡軟件實現

3.1.1 McBSP1串口配置

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

此時FSR1、FSX1、CLKR1和CLKX1均用作通用輸出管腳。把 PCR中的 FSRP位設置為‘0’,PCR1&=0xFFFB;則卡片VCC觸點電平為低,卡片處于掉電狀態;通過語句PCR1|=0x0004把FSR1引腳置高電平給卡片上電。

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

#define set_IOout() SPSA1=PCR1;SPSD1|=0x0800;FSX1 引腳處于輸出狀態

#define set_IOin() SPSA1=PCR1;SPSD1&=0xF7FF;FSX1 引腳處于輸入狀態

3.1.2 復位與復位應答

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

3.1.3 DSP讀卡主程序設計

圖4為DSP讀IC卡主程序設計。卡片復位應答之后,則處于等待指令輸入的狀態。SLE5542每個指令均由控制字節、地址字節和數據字節組成,傳輸時從控制字節的最低位開始。控制字節傳送完畢之后,依次傳送地址字節和數據字節,均為低位在前。每個指令的傳輸都開始于一個Start條件(在時鐘信號為高電平狀態,通過DSP發送卡片IO口一個下降沿),結束于Stop條件(在時鐘信號為高電平狀態,通過DSP發送卡片IO口一個上升沿)。根據指令作用的不同,SLE5542接收完成后可能處于數據輸出模式(DSP讀卡)或者內部處理模式(DSP寫卡)。

圖4 DSP讀IC卡主程序設計Fig.4 Main program design of DSP reading IC card

通過TMS320VC5410發送讀卡命令和所要讀取內容的地址(N=0,…,255)后,在CLK信號的作用下卡片將主存儲器中的數據按比特移至I/O引腳發送至DSP內存中。讀取數據完成后,額外的一個時鐘信號將使I/O引腳變為高阻狀態,卡片退出輸出模式等待接收新的指令,也可以用Break條件(在CLK為低時,把RST信號由低電平變為高電平狀態)結束此次操作。

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

圖5 DSP讀卡程序CCS調試結果Fig.5 Debug results of DSP card reader program in CCS

3.2 PC通信軟件設計

3.2.1 McBSP0的初始化配置

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

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

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

3.2.2 數據格式的統一

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

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

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

圖6 加密系統實驗結果Fig.6 Test result of the encryption system

4 結 論

本文采用SLE5542型IC卡存儲密鑰,TMS320VC5410中的McBSP引腳與卡片觸點連接并實現對卡片的應答復位和內容的讀取,同時通過RS232串口與個人PC機實時交換數據,接收PC機發送的明文并對其DES加密后反饋輸出。由于McBSP的工作機制是同步串口,把其當作通用I/O口和異步串口使用時必須注意內部寄存器的設置和輸入輸出方向的設定。經軟硬件調試,實驗結果表明該方案完全可以滿足大數據量的加密,合理使用了硬件資源,可以進一步升級擴展作為數據采集保密系統的加密模塊。

[1]楊曉云.現代密碼學[M].西安:西安電子科技大學出版社,2009.

[2]Mao W.現代密碼學理論與實踐[M].王繼林,伍前紅,譯.北京:電子工業出版社,2004.

[3]彭啟琮,李玉柏,管慶.DSP技術的發展與應用[M].北京:高等教育出版社,2007.

[4]張坤,張冠男,王樹勛.McBSP在DSP與PC機通信中的研究與設計[J].電子設計應用,2003(7):28-30.ZHANG Kun,ZHANG Guan-nan,WANG Shu-xun.Research and design of McBSP used between DSP and PC communication[J].Electronic Design Application,2003(7):28-30.

[5]王愛英.智能卡技術[M].北京:清華大學出版社,2000.

[6]Texas Instruments.TMS32OVC5410 fixed-point digital signal processor datasheet[EB/OL].(2008-10-01)[2010-03-08].http://focus.ti.com/lit/ds/symlink/tms320vc5410a.pdf.

主站蜘蛛池模板: 亚洲日韩精品欧美中文字幕| 99在线观看视频免费| 91久久精品国产| 国产人在线成免费视频| 91精品国产丝袜| 国产一区二区网站| 成人国产精品网站在线看| 免费三A级毛片视频| 日韩欧美亚洲国产成人综合| 日韩黄色大片免费看| a级免费视频| 国产不卡一级毛片视频| 一级做a爰片久久免费| 免费看一级毛片波多结衣| 老熟妇喷水一区二区三区| 亚洲综合极品香蕉久久网| 亚洲无码日韩一区| 亚洲国产日韩欧美在线| 亚洲无码日韩一区| 干中文字幕| 毛片a级毛片免费观看免下载| 中文字幕有乳无码| 97色伦色在线综合视频| 精品一区国产精品| 伊人五月丁香综合AⅤ| 久久国产精品国产自线拍| 国产老女人精品免费视频| 色综合手机在线| 国产精品成人啪精品视频| 中国一级毛片免费观看| 2021天堂在线亚洲精品专区| 伊人成人在线| 国产白浆在线| 日本黄色不卡视频| h网站在线播放| 97在线国产视频| 男女男免费视频网站国产| 夜夜高潮夜夜爽国产伦精品| AV熟女乱| 毛片网站在线播放| 99精品国产自在现线观看| 日本黄色a视频| 国产女人在线| 99中文字幕亚洲一区二区| 国产在线观看人成激情视频| 国产成人精品无码一区二| 亚洲午夜片| 国产麻豆aⅴ精品无码| 国产小视频在线高清播放 | 国产无码精品在线| 天堂久久久久久中文字幕| 天天摸天天操免费播放小视频| 人妻无码中文字幕第一区| 国产成人亚洲无码淙合青草| 久久夜色精品国产嚕嚕亚洲av| 国产成人亚洲无码淙合青草| 在线a视频免费观看| 黄色a一级视频| 中文字幕1区2区| 99热这里只有精品久久免费| 久久人与动人物A级毛片| 亚洲欧美日韩精品专区| 久久这里只精品国产99热8| 国产福利不卡视频| 国产精品 欧美激情 在线播放| 久久精品国产亚洲麻豆| 免费久久一级欧美特大黄| 免费高清毛片| 特级毛片免费视频| 真实国产乱子伦视频| 亚洲大尺码专区影院| 老司机久久99久久精品播放| www.精品国产| 婷婷六月在线| 成人小视频在线观看免费| 99视频在线免费看| 精品国产Av电影无码久久久| 热思思久久免费视频| 中文无码精品a∨在线观看| 一级做a爰片久久毛片毛片| 污网站在线观看视频| 日本三级黄在线观看|