當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]通用串行總線(USB)具有傳輸速度快、可靠性高、使用靈活等優(yōu)點(diǎn),作為通信接口規(guī)范他被廣泛地應(yīng)用在PC外設(shè)和便攜式系統(tǒng)中。介紹了一種基于USB和EDA的硬件加密系統(tǒng)的設(shè)計(jì)方案,使用EDA技術(shù),將USB控制器和加密算法的硬件集成到FPGA芯片中,實(shí)現(xiàn)了結(jié)構(gòu)簡(jiǎn)單,實(shí)時(shí)性好的硬件加密系統(tǒng)。實(shí)際使用情況表明該系統(tǒng),達(dá)到了設(shè)計(jì)要求。

硬件加密,就必須要考慮計(jì)算機(jī)接口的問(wèn)題。計(jì)算機(jī)的接口有許多種,如傳統(tǒng)的串口和并口。串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115~230kb/s,一般用來(lái)連接鼠標(biāo)和外置Modem;并口的數(shù)據(jù)傳輸率比串口快8倍,標(biāo)準(zhǔn)并口的數(shù)據(jù)傳輸率為IMb/s左右,一般用來(lái)連接打印機(jī)、掃描儀等。早期的軟件狗類加密硬件基本上都是使用并口的,不但極易與打印機(jī)沖突,而且容易被破解。要想設(shè)計(jì)出更可靠更完善的加密硬件,必須采用新的計(jì)算機(jī)接口。而近年來(lái)發(fā)展快速的USB接口技術(shù)為硬件加密提供了一條很好的道路。

1 總體方案的提出

設(shè)計(jì)系統(tǒng)原則是在實(shí)用、可靠、經(jīng)濟(jì)的原則基礎(chǔ)上,保證系統(tǒng)不僅能滿足應(yīng)用需要,而且要有靈活性、可擴(kuò)展性和通用性。該系統(tǒng)有EDA技術(shù)、USB 總線協(xié)議、加密算法優(yōu)化組合而成,系統(tǒng)的構(gòu)成如圖1所示。FPGA的作用之一是和PDIUSBD12進(jìn)行通信,實(shí)現(xiàn)USB協(xié)議,從PDIUSBD12中獲取數(shù)據(jù)并根據(jù)主機(jī)的要求發(fā)送數(shù)據(jù)。第二個(gè)作用就是加密算法的實(shí)現(xiàn),完成傳送數(shù)據(jù)的加密。

2 USB協(xié)議的實(shí)現(xiàn)

2.1 PDIUSBD12簡(jiǎn)介

PDIUSBD12是Philips公司的一款較新型的專用USB通信控制芯片,符合USBI.1規(guī)范,是一款高性能USB接口器件,集成了SIE,F(xiàn)IFO存儲(chǔ)器,收發(fā)器以及電壓調(diào)整器??膳c任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口(2 MB/5),在批量模式和同步模式下均可實(shí)現(xiàn)IMB/5的數(shù)據(jù)傳輸速率以及完全自治的直接內(nèi)存存取DMA操作。

2.2USB控制器的設(shè)計(jì)

從硬件實(shí)現(xiàn)的角度出發(fā),將PDIUSBD12控制器劃分為分頻器模塊、沿控制器模塊、輸人/輸出切換模塊、設(shè)備收發(fā)器模塊和請(qǐng)求處理模塊。當(dāng)系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)確定后,對(duì)于每個(gè)模塊的設(shè)計(jì)首先要使用硬件描述語(yǔ)言(VHDL)完成系統(tǒng)的描述,然后使用語(yǔ)言級(jí)系統(tǒng)仿真及調(diào)試工具進(jìn)行語(yǔ)言級(jí)功能仿真與調(diào)試。

系統(tǒng)用VHDL語(yǔ)言來(lái)描述。VHDL語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,他支持結(jié)構(gòu)化設(shè)計(jì)。結(jié)構(gòu)化設(shè)計(jì)就是將一個(gè)系統(tǒng)劃分為多個(gè)子模塊,而每個(gè)子模塊又可以繼續(xù)劃分為更多的模塊。首先根據(jù)系統(tǒng)的功能描述,將系統(tǒng)劃分為接口清晰、相互關(guān)系簡(jiǎn)單的子系統(tǒng),從而得到系統(tǒng)級(jí)的描述。之后,依次對(duì)各個(gè)子系統(tǒng)(或功能模塊)進(jìn)行結(jié)構(gòu)設(shè)計(jì)和描述。逐級(jí)細(xì)化,最后完成設(shè)計(jì)。這實(shí)際上給出了模塊劃分的方法。在對(duì)系統(tǒng)進(jìn)行劃分時(shí),并不是一次就把系統(tǒng)的所有模塊劃分得非常細(xì)致,而是按照層次化的思想自頂向下逐步細(xì)化。圖2描述了本處理器的硬件模塊結(jié)構(gòu)框圖,各模塊的功能定義如下:

(1)分頻器模塊

由于PDUSBD12在讀寫時(shí)序上有時(shí)間限制,例如每次些操作之間的間隔不能小于50 ns,而FPGA的系統(tǒng)時(shí)鐘頻率一般都比較高,所以不能直接使用系統(tǒng)時(shí)鐘控制PDIUSB12,必須進(jìn)行分頻。分頻器模塊的功能也就是按照要求有系統(tǒng)時(shí)鐘生成所需頻率的時(shí)鐘信號(hào)。

(2)沿控制器模塊

PDIUSBD12的讀寫操作都各自有一個(gè)讀寫控制信號(hào)WR-N和RD-N,每次讀寫操作都在對(duì)應(yīng)的控制信號(hào)的下降沿觸發(fā),沿控制模塊的功能就是可控的產(chǎn)生一個(gè)下降沿信號(hào),用于控制讀寫操作。

(3)輸入/輸出切換模塊

輸入/輸出切換模塊在整個(gè)系統(tǒng)中非常重要,因?yàn)镕PGA芯片和PDIUSBD12芯片之間的數(shù)據(jù)總線是雙向的總線,所以當(dāng)讀寫操作之一在進(jìn)行的時(shí)候另一個(gè)操作的信號(hào)源必須關(guān)閉,否則就會(huì)造成雙驅(qū)動(dòng),這不但不能得到正確的數(shù)據(jù)還會(huì)損害芯片。輸人/輸出切換模塊的功能就是根據(jù)當(dāng)前的讀寫狀況控制信號(hào)源,保證在一個(gè)時(shí)刻只有一個(gè)信號(hào)源驅(qū)動(dòng)總線。

(4)設(shè)備收發(fā)器模塊

這個(gè)模塊是整個(gè)固件的核心模塊,他完成的工作包括配置PDIUSBD12芯片、處理PDIUSBD12產(chǎn)生的中斷、完成從緩存讀取數(shù)據(jù),并且根據(jù)需要將數(shù)據(jù)通過(guò)PDIUSBD12發(fā)送。設(shè)備收發(fā)器模塊完成對(duì)每個(gè)主機(jī)請(qǐng)求的解析工作,此外,還要將解析完成的請(qǐng)求數(shù)據(jù)傳遞給請(qǐng)求處理模塊。

(5)請(qǐng)求處理模塊

請(qǐng)求處理模塊的作用是接收設(shè)備收發(fā)器模塊解析完成的主機(jī)請(qǐng)求,并且決定如何處理此請(qǐng)求。

3 加密算法的實(shí)現(xiàn)

3.1 硬件加密的優(yōu)點(diǎn)

隨著信息產(chǎn)業(yè)的發(fā)展,集成電路產(chǎn)業(yè)提供了越來(lái)越強(qiáng)大的芯片,現(xiàn)在所有的加密產(chǎn)品都是特定的硬件加密形式。這些加/解密芯片被嵌人到通信線路中,然后對(duì)所有通過(guò)的數(shù)據(jù)進(jìn)行加密。雖然軟件加密在今天變得很流行,但是硬件仍然是商業(yè)和軍事應(yīng)用的主要選擇。

(1)速度

加密算法通常含有很多對(duì)明文位的復(fù)雜運(yùn)算,沒(méi)有哪類這樣的操作能在一般的計(jì)算機(jī)上進(jìn)行。兩種最常用的加密算法,DES和RSA在普通用途的微處理器上運(yùn)行沒(méi)有效率可言。另外,加密常是高強(qiáng)度的計(jì)算任務(wù)。計(jì)算機(jī)微處理器對(duì)此效率不高,將加密移到芯片上,可以分擔(dān)計(jì)算機(jī)微處理器的工作,使整個(gè)系統(tǒng)速度加快。

(2) 安全性

對(duì)運(yùn)行在沒(méi)有物理保護(hù)的一般的計(jì)算機(jī)上的每個(gè)加密算法,很可能被別有用心的人用各種跟蹤工具密碼修改算法而使任何人都不知道。硬件加密設(shè)備可以安全的封裝起來(lái),以避免此類事情的發(fā)生,防篡改盒能防止別人修改硬件加密設(shè)備。特殊目的的VLSI芯片可以覆蓋一層化學(xué)物質(zhì),使得任何企圖對(duì)他們內(nèi)部進(jìn)行訪問(wèn)都將導(dǎo)致芯片邏輯的破壞。

(3)易于安裝

大多數(shù)加密應(yīng)用與普通計(jì)算機(jī)無(wú)關(guān),將專用加密硬件放在電話、傳真機(jī)和調(diào)制解調(diào)器中比放在微處理器或者軟件中要便宜的多。即使當(dāng)加密數(shù)據(jù)來(lái)自計(jì)算機(jī)時(shí),安裝一個(gè)專用加密設(shè)備也比修改計(jì)算機(jī)系統(tǒng)軟件更容易.加密應(yīng)該是不可見(jiàn)的,他不應(yīng)該妨礙用戶.對(duì)于軟件要做到這點(diǎn)的惟一辦法是將加密程序?qū)懺诓僮飨到y(tǒng)軟件的底層,這很不容易。

3.2DES加密算法的實(shí)現(xiàn)

DES(DataEncryptionstandard)加密算法在成為加密標(biāo)準(zhǔn)到今天,經(jīng)歷了長(zhǎng)期的考驗(yàn).實(shí)踐證明DES算法的安全性是能夠滿足大部分的安全要求的。采用軟件方式實(shí)現(xiàn)的DES算法會(huì)在很大程度上占用系統(tǒng)資源,造成系統(tǒng)性能的嚴(yán)重下降,而DES算法本身并沒(méi)有大量的復(fù)雜數(shù)學(xué)計(jì)算,在加/解密過(guò)程和密鑰生成過(guò)程中僅有邏輯運(yùn)算和查表運(yùn)算,因而,無(wú)論是從系統(tǒng)性能還是加/解密速度的角度來(lái)看,采用硬件實(shí)現(xiàn)都是一個(gè)理想的方案。

DES算法設(shè)計(jì)中的關(guān)鍵部分在于5盒的設(shè)計(jì)、每一輪密鑰的產(chǎn)生和整個(gè)16輪加密過(guò)程中流水線設(shè)計(jì)。

根據(jù)實(shí)際需求,將加密算法模塊進(jìn)行獨(dú)立設(shè)計(jì),如圖3所示為封裝后I/0接口示意圖。

作為輸人接口包括3大部分,系統(tǒng)輸入、數(shù)據(jù)輸人和系統(tǒng)控制。系統(tǒng)輸入主要是時(shí)鐘信號(hào)輸入ClK和出現(xiàn)異常情況時(shí)的系統(tǒng)自動(dòng)重起信號(hào)RST。時(shí)鐘信號(hào)輸入可以采用加密板卡的系統(tǒng)時(shí)鐘,也可以獨(dú)立使用自己的時(shí)鐘。

這里為了便于擴(kuò)展和升級(jí),采用跳線方式來(lái)選擇時(shí)鐘信號(hào),支持兩種時(shí)鐘頻率選擇。

數(shù)據(jù)輸人部分包括64位的加密數(shù)據(jù)的輸人data_in[63:o],64位密鑰的輸入key1[65:o],key2[63:0],key3[63:0]和初始化向量rant val[63:0].因?yàn)閁SB總線接口是串行總線,因此從主設(shè)備上發(fā)送過(guò)來(lái)的加密數(shù)據(jù)在進(jìn)入該加密芯片之前必須用鎖存器保存,而同樣,作為密鑰數(shù)據(jù)也需要鎖存器保存以確保輸人數(shù)據(jù)的完整性。輸出接口主要包括64位的加密數(shù)據(jù)輸出dat_out[63:0]、輸出準(zhǔn)備信號(hào)ready-out、系統(tǒng)繁忙信號(hào),busy和差錯(cuò)反饋信號(hào)par-err。系統(tǒng)完成數(shù)據(jù)的加密后,會(huì)及時(shí)通知將ready_out信號(hào)由低電平升至高電平,同時(shí)busy信號(hào)變?yōu)榈碗娖接行В@樣在后置模塊會(huì)根據(jù)ready_out和busy信號(hào)來(lái)判斷是否應(yīng)該讀取輸出數(shù)據(jù)。

(1)s盒的實(shí)現(xiàn)

s盒是DES算法的一個(gè)關(guān)鍵,因?yàn)樵诿恳惠営?jì)算中有8個(gè)s盒,而總共16輪加密,則共需要128個(gè)s盒,因此s盒的實(shí)現(xiàn)效率尤為重要。s盒是一個(gè)復(fù)雜的非線性函數(shù),硬件實(shí)現(xiàn)時(shí),s盒的實(shí)現(xiàn)具有一定難度,其設(shè)計(jì)實(shí)現(xiàn)的好壞是影響算法整體加解密速度的主要因素。在設(shè)計(jì)中,從資源的角度出發(fā),應(yīng)盡可能減少FPGA器件中邏輯單元(LE)、嵌人式陣列塊(EAB)的耗用,但這可能是以降低系統(tǒng)速度為代價(jià)。從速度的角度出發(fā),應(yīng)最大限度提高系統(tǒng)處理速度,但這樣往往需要較多資源。因此,在大多數(shù)情況下這兩種選擇是矛盾的,需要根據(jù)實(shí)際環(huán)境做出權(quán)衡。

因此本文遵循的原則是在保證速度的情況下盡量節(jié)約資源。本設(shè)計(jì)采用VHDL語(yǔ)言中的case語(yǔ)句來(lái)直接實(shí)現(xiàn)s盒的非線性變換。

(2) 密鑰產(chǎn)生單元的實(shí)現(xiàn)

密鑰產(chǎn)生單元由選擇控制電路PC 一1、循環(huán)移位寄存器及壓縮置換電路PC 一2構(gòu)成。該部分的輸人是64 b初始密鑰;輸出為每次迭代運(yùn)算用的子密鑰。對(duì)于總共16輪循環(huán)運(yùn)算,每一輪密鑰的使用采用的方式如圖4所示,在初始密鑰輸人的第一個(gè)周期產(chǎn)生所有16輪加密需要的不同密鑰同時(shí)并行輸出,然后根據(jù)相應(yīng)的周期順序,每一輪的密鑰輸出采用寄存器向后順延一個(gè)時(shí)鐘周期作為該輪算法的密鑰輸人。

此種方式的好處是每一輪的密鑰都會(huì)在每一輪的運(yùn)算之前準(zhǔn)備,便于采用流水線實(shí)現(xiàn)加密過(guò)程。本文的設(shè)計(jì)是將全部16輪密鑰一次性通過(guò)多路選擇器產(chǎn)生出來(lái),類似于生成了一個(gè)“密鑰池”,然后不同的輪數(shù)依次利用寄存器來(lái)保存并跟流水線同步。這里在產(chǎn)生密鑰時(shí)因?yàn)榻饷芎图用艿捻樞蛳喾?,因此解密時(shí)是右移產(chǎn)生。

(3) 流水線的實(shí)現(xiàn)

流水線是提高數(shù)字電路在單位時(shí)間內(nèi)處理數(shù)據(jù)量的常用方法,他的概念是把在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行的邏輯操作分成幾步較小的操作,并在多個(gè)較高速的時(shí)鐘內(nèi)完成,如圖5所示。

在這種結(jié)構(gòu)中,與K輪加密對(duì)應(yīng)的組合邏輯被均分為K個(gè)部分,并在各個(gè)部分之間添加一個(gè)額外的寄存器,其余部件與基本結(jié)構(gòu)相同。這些分割得到的組合邏輯電路部分稱為流水線站,每個(gè)流水線站執(zhí)行不同的處理步驟。用這種方法,電路可以同時(shí)處理多個(gè)數(shù)據(jù)塊,提高系統(tǒng)在單位時(shí)間內(nèi)處理的的數(shù)據(jù)量,也就是速度。

在每一個(gè)時(shí)鐘周期,被部分處理過(guò)的數(shù)據(jù)塊移人下一個(gè)流水線站,后續(xù)塊則緊跟其上,占據(jù)他原來(lái)的位置,也就是說(shuō),一個(gè)流水線電路可以同時(shí)加密與他所含有的流水線站數(shù)量相等的數(shù)據(jù)塊。以這種將循環(huán)展開(kāi)為流水線的處理方式,展開(kāi)后的流水線處理周期在理想情況下接近于基本結(jié)構(gòu)處理周期時(shí)間的1/K。

本文實(shí)現(xiàn)的DES算法數(shù)據(jù)流通路簡(jiǎn)單,大部分都是針對(duì)位的線性變換;算法的核心部分是16輪的完全相同的線性變換迭代,因此可以循環(huán)展開(kāi)為16級(jí)深度的流水線;在非反饋模式應(yīng)用時(shí),前后數(shù)據(jù)塊之間沒(méi)有相關(guān)性,因而不會(huì)產(chǎn)生沖突;每一輪運(yùn)算中需要的子密鑰可以提前生成,隨數(shù)據(jù)流在流水線的前進(jìn)中提供給各級(jí)流水線。

4 結(jié)語(yǔ)

采用USB 總線技術(shù)與EDA技術(shù)相結(jié)合的設(shè)計(jì)思路,使系統(tǒng)設(shè)計(jì)更靈活,系統(tǒng)升級(jí)更容易。實(shí)現(xiàn)了軟件平臺(tái)的通用化、軟件協(xié)議的標(biāo)準(zhǔn)化、硬件結(jié)構(gòu)的統(tǒng)一化,從而保證了系統(tǒng)的可移植性和可擴(kuò)展性,為硬件加密系統(tǒng)的設(shè)計(jì)提供了一種新思路。加密系統(tǒng)實(shí)際運(yùn)行情況表明,系統(tǒng)設(shè)計(jì)思路正確,系統(tǒng)實(shí)時(shí)性、加密性能都能達(dá)到設(shè)計(jì)要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉