基于計(jì)算機(jī)網(wǎng)絡(luò)加密接口卡的硬件實(shí)現(xiàn)方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
【摘 要】本文根據(jù)作者的實(shí)際的開發(fā)過程,提出了一種切實(shí)可行的基于計(jì)算機(jī)網(wǎng)絡(luò)的橢圓曲線加密接口系 統(tǒng)。內(nèi)容包括橢圓密碼體制的選擇、有效算法的設(shè)計(jì)和快速加、解密的硬件實(shí)現(xiàn)及雙端口共享器的設(shè)計(jì)。并且詳細(xì)闡述了利用多片數(shù)字信號(hào)處理器TMS320C50 在微機(jī)上實(shí)現(xiàn)并行橢圓曲線加、解密系統(tǒng)的方法。
前言
隨著信息時(shí)代的到來,計(jì)算機(jī)網(wǎng)絡(luò)已成為人們進(jìn)行信息交流的主要手段之一。但由于計(jì)算機(jī)網(wǎng)絡(luò)的固有的弱點(diǎn)——開放性,使得傳統(tǒng)的物理措施和人員管理措施難以抵御計(jì)算機(jī)網(wǎng)絡(luò)上不斷增加的各種安全侵害,因此密碼技術(shù)在實(shí)現(xiàn)網(wǎng)絡(luò)安全方面已被作為關(guān)鍵的手段。雖然目前已有一些加密軟件運(yùn)行在聯(lián)網(wǎng)的微機(jī)上,但它們大多數(shù)都存在加密速度低或安全強(qiáng)度有限的缺點(diǎn),不能滿足高級(jí)別的網(wǎng)絡(luò)安全要求。在開發(fā)計(jì)算機(jī)網(wǎng)絡(luò)加密系統(tǒng)的過程中,我們以橢圓密碼體制為基礎(chǔ),利用一系列有效的算法,最終設(shè)計(jì)出了增強(qiáng)微機(jī)加密能力的密碼加密板,在計(jì)算機(jī)網(wǎng)絡(luò)加密方面取得了較好的實(shí)踐效果。
一、 計(jì)算機(jī)網(wǎng)絡(luò)加密系統(tǒng)的理論基礎(chǔ)
近年來,橢圓曲線作為公開密碼體制的基礎(chǔ),已引起了通信保密領(lǐng)域內(nèi)的廣泛關(guān)注。利用橢圓曲線進(jìn)行加解密的過程可以用圖一來表示。橢圓曲線在通信保密中的具體應(yīng)用體現(xiàn)在各種信息傳輸協(xié)議上,比較常用的有:類Diffie-Hellman 密鑰交換規(guī)程和類ElGamal 體制,我們在系統(tǒng)設(shè)計(jì)中采用了后者。橢圓曲線加解密流程圖如圖1所示。
圖1 橢圓曲線加解密流程圖
橢圓曲線密碼體制要用到點(diǎn)乘、點(diǎn)加、模乘、模加、模逆、模冪這些基本運(yùn)算,它們的執(zhí)行速度直接決定著橢圓曲線的加密速度。為了提高它們的速度,可從以下幾方面考慮:
①有效算法的設(shè)計(jì)。加解密算法的設(shè)計(jì)是密碼體制具體實(shí)現(xiàn)的過程,它為系統(tǒng)軟硬件設(shè)計(jì)提供了基礎(chǔ),算法的好壞決定了系統(tǒng)的實(shí)用性。
② 快速加解密的實(shí)現(xiàn)。我們設(shè)計(jì)的網(wǎng)絡(luò)加密系統(tǒng)采用硬件加密板(主要部件為多片數(shù)字信號(hào)處理器TMS320C50)作為最終實(shí)現(xiàn)方案,它的優(yōu)點(diǎn)在于利用了算法中大量存在的并行性,提高了系統(tǒng)加解密的速度。
遵循以上原則,我們在計(jì)算機(jī)網(wǎng)絡(luò)加密系統(tǒng)的開發(fā)方面取得了較好的實(shí)踐效果。本文根據(jù)作者的實(shí)際開發(fā)經(jīng)驗(yàn),本文主要對(duì)網(wǎng)絡(luò)加密系統(tǒng)的硬件設(shè)計(jì)進(jìn)行較為詳細(xì)的論述。
二、基于并行加、解密算法的加密卡的設(shè)計(jì)
在我們研制的計(jì)算機(jī)網(wǎng)絡(luò)加密系統(tǒng)過程中,硬件結(jié)構(gòu)采用了主從式的共享存儲(chǔ)型多處理機(jī)系統(tǒng),互連結(jié)構(gòu)采用雙端口存儲(chǔ)器方式,之所用這樣的結(jié)構(gòu)是由于:
① 我們所研制的橢圓曲線加密系統(tǒng)主要用于計(jì)算機(jī)網(wǎng)絡(luò)上微機(jī)的安全。由于微機(jī)的硬件環(huán)境,故采用以微機(jī)為主結(jié)點(diǎn),以多片并行處理器作為從結(jié)點(diǎn)的主從式多處理機(jī)系統(tǒng)。
② 提供了訪問沖突解決電路,并允許外部同時(shí)訪問不同的單元,從而簡化了電路設(shè)計(jì),并極大地減少了訪問沖突的可能性。
由于從結(jié)點(diǎn)的運(yùn)算具有很大的獨(dú)立性,并且其運(yùn)算需要大量的數(shù)據(jù)存儲(chǔ),所以各個(gè)從結(jié)點(diǎn)都有自己的局部存儲(chǔ)器。網(wǎng)絡(luò)加密系統(tǒng)的硬件卡體系結(jié)構(gòu)如圖2所示:
圖2加密接口板硬件系統(tǒng)結(jié)構(gòu)圖
在選擇處理結(jié)點(diǎn)時(shí),我們使用了數(shù)字信號(hào)處理器(DSP)TMS320C50,它的特點(diǎn)是對(duì)密碼運(yùn)算既有針對(duì)性,同時(shí)又易于開發(fā)。對(duì)于微機(jī)在網(wǎng)絡(luò)上傳輸?shù)奈募?,其大小一般都至少?00 個(gè)字符以上。也就是說,至少有25 個(gè)明文、密文組(本系統(tǒng)中,明密文組的長度為20 個(gè)字符)。面系統(tǒng)的硬件的并行規(guī)模由于微機(jī)對(duì)電路板大小的限制及插槽個(gè)數(shù)的限制,最大允許10 個(gè)從結(jié)點(diǎn),即有5 個(gè)加、解密電路板。從而明、密文組這一級(jí)的并行性對(duì)于系統(tǒng)的硬件環(huán)境來說已經(jīng)足夠用了。因此,我們僅采用算法中明、密文組級(jí)的并行性。由于本系統(tǒng)采用雙端口共享存儲(chǔ)互連方式,可以利用共享存儲(chǔ)器來存放被加載的程序,從而引導(dǎo)方式設(shè)置為16 位并行EPROM,主機(jī)通過控制端口來對(duì)TMS320C50 進(jìn)行初始化。
三、網(wǎng)絡(luò)加密的并行處理的實(shí)現(xiàn)
針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)加密的特點(diǎn),本文采用了Pentium 4 與兩個(gè)高速數(shù)字信號(hào)處理器TMS320C50 組成三機(jī)并行處理系統(tǒng),如圖2所示。TMS320C50 具有獨(dú)立的內(nèi)存單元,并具有32 位浮點(diǎn)格式,浮點(diǎn)運(yùn)算精度高。兩個(gè)TMS320C50 分別為獨(dú)立的子系統(tǒng),通過PC 機(jī)ISA 總線與PC 機(jī)相連。TMS320C50 與主控機(jī)之間的通訊采用共享存儲(chǔ)技術(shù),用雙端口RAM 作為共享存儲(chǔ)器。
圖3 多處理器并行處理系統(tǒng)
該系統(tǒng)運(yùn)行時(shí),算法采用靜態(tài)調(diào)度方法,PC 機(jī)作為主控機(jī)。PC 機(jī)執(zhí)行算法并進(jìn)行任務(wù)分配協(xié)調(diào),A 結(jié)點(diǎn)TMS320C50 執(zhí)行加密,B 結(jié)點(diǎn)TMS320C50 執(zhí)行加密。所有和程序都用C 語言開發(fā)。PC 機(jī)向TMS320C50發(fā)出復(fù)位命令,程序聯(lián)機(jī)加載。PC 機(jī)將初始數(shù)據(jù)通過雙端口RAM 傳送到每個(gè)子系統(tǒng)。子系統(tǒng)與PC 機(jī)并行計(jì)算,獨(dú)立完成自己的計(jì)算任務(wù)后將結(jié)果再傳送回PC 機(jī),由PC 機(jī)完成最后輸出。由于本系統(tǒng)采用共享存儲(chǔ)互連方式,可以利用共享存儲(chǔ)器來存放被加載的程序,從而引導(dǎo)方式設(shè)置為16位并行EPROM。我們由主機(jī)通過控制端口來對(duì)TMS320C50 進(jìn)行初始(RESET)。主機(jī)啟動(dòng)從結(jié)點(diǎn)的過程為:
① 通過控制端口將從結(jié)點(diǎn)的RESET 引腳置低。
② 從主機(jī)將程序代碼裝入雙端口存儲(chǔ)器(此時(shí)由于TMS320C50 不活動(dòng),故不會(huì)干擾雙端口存儲(chǔ)器數(shù)據(jù))。
③ 在雙端口存儲(chǔ)器中設(shè)置引導(dǎo)程序選擇字及其它引導(dǎo)參數(shù)。
④ 通過控制端口將從結(jié)點(diǎn)的RESET 引腳置高。
由于從結(jié)點(diǎn)在大數(shù)取模時(shí)使用的是模余數(shù)表的方法,從而需要大容量的局部數(shù)據(jù)存儲(chǔ)器,我們采用了32K字的快速RAM,能夠保證TMS320C50 的無等待訪問。由于我們的從結(jié)點(diǎn)程序比較大(超過8K 字),故另外又配置了32K 字的局部程序存儲(chǔ)器。[!--empirenews.page--]