色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于USB和EDA的硬件加密系統(tǒng)

          基于USB和EDA的硬件加密系統(tǒng)

          作者: 時(shí)間:2018-07-27 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://cafeforensic.com/article/201807/384195.htm

          1 總體方案的提出

          設(shè)計(jì)系統(tǒng)原則是在實(shí)用、可靠、經(jīng)濟(jì)的原則基礎(chǔ)上,保證系統(tǒng)不僅能滿足應(yīng)用需要,而且要有靈活性、可擴(kuò)展性和通用性。該系統(tǒng)有、 總線協(xié)議、加密算法優(yōu)化組合而成,系統(tǒng)的構(gòu)成如圖1所示。FPGA的作用之一是和PDID12進(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)整器。可與任何外部微控制器/微處理器實(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ì)首先要使用硬件描述語言(VHDL)完成系統(tǒng)的描述,然后使用語言級(jí)系統(tǒng)仿真及調(diào)試工具進(jìn)行語言級(jí)功能仿真與調(diào)試。

          系統(tǒng)用VHDL語言來描述。VHDL語言是一種結(jié)構(gòu)化語言,他支持結(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ù)通過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è)提供了越來越強(qiáng)大的芯片,現(xiàn)在所有的加密產(chǎn)品都是特定的硬件加密形式。這些加/解密芯片被嵌人到通信線路中,然后對(duì)所有通過的數(shù)據(jù)進(jìn)行加密。雖然軟件加密在今天變得很流行,但是硬件仍然是商業(yè)和軍事應(yīng)用的主要選擇。

          (1)速度

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

          (2) 安全性

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

          (3)易于安裝

          大多數(shù)加密應(yīng)用與普通計(jì)算機(jī)無關(guān),將專用加密硬件放在電話、傳真機(jī)和調(diào)制解調(diào)器中比放在微處理器或者軟件中要便宜的多。即使當(dāng)加密數(shù)據(jù)來自計(jì)算機(jī)時(shí),安裝一個(gè)專用加密設(shè)備也比修改計(jì)算機(jī)系統(tǒng)軟件更容易.加密應(yīng)該是不可見的,他不應(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算法本身并沒有大量的復(fù)雜數(shù)學(xué)計(jì)算,在加/解密過程和密鑰生成過程中僅有邏輯運(yùn)算和查表運(yùn)算,因而,無論是從系統(tǒng)性能還是加/解密速度的角度來看,采用硬件實(shí)現(xiàn)都是一個(gè)理想的方案。

          DES算法設(shè)計(jì)中的關(guān)鍵部分在于5盒的設(shè)計(jì)、每一輪密鑰的產(chǎn)生和整個(gè)16輪加密過程中流水線設(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í),采用跳線方式來選擇時(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ā)送過來的加密數(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)來判斷是否應(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語言中的case語句來直接實(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)加密過程。本文的設(shè)計(jì)是將全部16輪密鑰一次性通過多路選擇器產(chǎn)生出來,類似于生成了一個(gè)“密鑰池”,然后不同的輪數(shù)依次利用寄存器來保存并跟流水線同步。這里在產(chǎn)生密鑰時(shí)因?yàn)榻饷芎图用艿捻樞蛳喾矗虼私饷軙r(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í)鐘周期,被部分處理過的數(shù)據(jù)塊移人下一個(gè)流水線站,后續(xù)塊則緊跟其上,占據(jù)他原來的位置,也就是說,一個(gè)流水線電路可以同時(shí)加密與他所含有的流水線站數(shù)量相等的數(shù)據(jù)塊。以這種將循環(huán)展開為流水線的處理方式,展開后的流水線處理周期在理想情況下接近于基本結(jié)構(gòu)處理周期時(shí)間的1/K。

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

          4 結(jié)語

          采用USB 總線技術(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)鍵詞: EDA技術(shù) USB 硬件加密

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉