一種改進的序列密碼可重構(gòu)處理結(jié)構(gòu)設(shè)計
出處:王志遠1,3, 黃建華1, 管子銘2 發(fā)布于:2011-08-26 19:11:18
可重構(gòu)計算(Reconfigurable Computing,RC),F(xiàn)PGA的可重構(gòu)運算分為動態(tài)系統(tǒng)重構(gòu)和靜態(tài)系統(tǒng)重構(gòu)。FPGA(現(xiàn)場可編程門陣列)動態(tài)重構(gòu)技術(shù),是指基于SRAM編程和專門結(jié)構(gòu)的FPGA,在一定條件下,不僅具有在系統(tǒng)重新配置電路功能的特性,同時還具有在系統(tǒng)動態(tài)重構(gòu)電路邏輯的能力。換言之,F(xiàn)PGA動態(tài)可重構(gòu)技術(shù)就是對FPGA的全部或者部分邏輯資源實現(xiàn)在系統(tǒng)的動態(tài)的功能變換,動態(tài)可重構(gòu)FPGA則是基于動態(tài)重構(gòu)技術(shù)的一種可在系統(tǒng)實現(xiàn)動態(tài)配置的新型FPGA芯片。相對于靜態(tài)系統(tǒng)重構(gòu),動態(tài)部分重構(gòu)縮短了重構(gòu)的時間,而且在重構(gòu)時,非重構(gòu)部分依然運行,其寄存器中的數(shù)據(jù)不會丟失,從而減少了重構(gòu)系統(tǒng)的開銷,提高了系統(tǒng)運行的效率??芍貥?gòu)計算的概念早在20世紀(jì)60年代就已提出。在通用微處理器上也運用了這一思想,如組件就是利用多路選擇器來實現(xiàn)功能的變化,而這些組件一般與計算結(jié)構(gòu)不發(fā)生直接聯(lián)系。目前,可重構(gòu)計算已有較大發(fā)展,主要目標(biāo)是希望通過硬件可編程,來自適應(yīng)計算任務(wù)的需求,以期達到性能;而且這種硬件結(jié)構(gòu)的變化,能實時地適應(yīng)計算任務(wù)要求的變化。
序列密碼也稱為流密碼(Stream Cipher),它是對稱密碼算法的一種。序列密碼具有實現(xiàn)簡單、便于硬件實施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應(yīng)用中,特別是專用或機密機構(gòu)中保持著優(yōu)勢,典型的應(yīng)用領(lǐng)域包括無線通信、外交通信。 1949年Shannon證明了只有一密的密碼體制是安全的,這給序列密碼技術(shù)的研究以強大的支持,序列密碼方案的發(fā)展是模仿一密系統(tǒng)的嘗試,或者說"一密"的密碼方案是序列密碼的雛形。如果序列密碼所使用的是真正隨機方式的、與消息流長度相同的密鑰流,則此時的序列密碼就是一密的密碼體制。若能以一種方式產(chǎn)生一隨機序列(密鑰流),這一序列由密鑰所確定,則利用這樣的序列就可以進行加密,即將密鑰、明文表示成連續(xù)的符號或二進制,對應(yīng)地進行加密。序列密碼涉及到大量的理論知識,提出了眾多的設(shè)計原理,也得到了廣泛的分析,但許多研究成果并沒有完全公開,這也許是因為序列密碼目前主要應(yīng)用于軍事和外交等機密部門的緣故。目前,公開的序列密碼算法主要有RC4、SEAL等。
根據(jù)序列密碼設(shè)計所采用的理論不同,可將序列密碼分為4類:基于信息論設(shè)計、基于系統(tǒng)論設(shè)計、基于復(fù)雜度理論設(shè)計和基于隨機化理論設(shè)計的序列密碼[4].其中第1、3、4類序列密碼涉及的數(shù)學(xué)理論多樣,適于用軟件的方法實現(xiàn),不適于專用硬件或可重構(gòu)硬件來實現(xiàn)。而第2類基于系統(tǒng)論設(shè)計的序列密碼是目前為實用的序列密碼,這類序列密碼的密鑰流生成器大多由1個或多個線性或非線性反饋移位寄存器LFSR/NLFSR(Linear/Non-linear Feedback Shift Register)和1個非線性函數(shù)NLF(Non-linear Function)構(gòu)成,本文把符合該特點的序列密碼簡稱為FSR+NLF類序列密碼。這類密碼由于具有相似的運算單元,很適合采用可重構(gòu)硬件實現(xiàn)。FSR+NLF類序列密碼又分為2個子類: (1)若序列密碼中1個或多個FSR狀態(tài)位參與NLF運算,則稱為非線性濾波型序列密碼,相應(yīng)的NLF稱為非線性濾波函數(shù),其結(jié)構(gòu)如圖1所示,Grain[5]就屬于這類序列密碼;(2)若序列密碼中只有各個FSR的狀態(tài)位參與NLF運算,則稱為非線性組合型序列密碼,相應(yīng)的NLF稱為非線性組合函數(shù),其結(jié)構(gòu)如圖2所示,Achterbahn[6]就屬于這類序列密碼。根據(jù)FSR運算域的不同,F(xiàn)SR+NLF類序列密碼又有GF(2)域上和GF(2n)域上之分,本文將詳細(xì)討論GF(2)域上該類序列密碼的可重構(gòu)處理結(jié)構(gòu)設(shè)計,非線性濾波型和非線性組合型序列密碼均可以在該可重構(gòu)處理結(jié)構(gòu)上實現(xiàn)。

1 總體結(jié)構(gòu)設(shè)計
對現(xiàn)有的GF(2)域上FSR+NLF類序列密碼分析發(fā)現(xiàn),絕大多數(shù)此類密碼的FSR個數(shù)不超過8個,長度不超過256 bit,因此其可重構(gòu)處理總體結(jié)構(gòu)設(shè)計如圖3所示。從圖中可以看出,此類密碼的可重構(gòu)處理結(jié)構(gòu)主要由8個可重構(gòu)FSR和1個可重構(gòu)NLF通過互連網(wǎng)絡(luò)連接而成。其中,8個可重構(gòu)FSR分成完全相同的兩組,每組中的4個可重構(gòu)FSR的長度分別為32 bit、64 bit、128 bit和256 bit,以滿足不同算法的需要,又可以減少互連資源。該可重構(gòu)處理結(jié)構(gòu)采用了特殊的互連網(wǎng)絡(luò)結(jié)構(gòu),外部送入的配置指令經(jīng)譯碼電路譯碼后存入配置寄存器組,再由配置寄存器組對各可重構(gòu)FSR、可重構(gòu)NLF和互連網(wǎng)絡(luò)進行配置,從而構(gòu)成相應(yīng)的序列密碼算法處理結(jié)構(gòu)。

2 可重構(gòu)FSR結(jié)構(gòu)設(shè)計

基于以上基本理論,1個長級數(shù)為n的可重構(gòu)FSR結(jié)構(gòu)設(shè)計如圖4所示。其結(jié)構(gòu)總體上分為3部分:中間是1個級數(shù)為n的移位寄存器SR,其移動方向為從n-1級到0級;SR以上的部分為反饋函數(shù)部分;SR以下部分為前饋函數(shù)部分,因為有的序列密碼的FSR帶有前饋輸出(例如Achterbahn)。

對現(xiàn)有的FSR+NLF類序列密碼反饋函數(shù)分析發(fā)現(xiàn):反饋函數(shù)F中二次及二次以上項的總數(shù)不超過20項。為此,該結(jié)構(gòu)中為項設(shè)計了1個配置寄存器CR1;為二次及二次以上項設(shè)計了30個配置寄存器CR2~CR31,共計31個配置寄存器。這31個配置寄存器的位數(shù)均與SR的級數(shù)相同,為n bit.
該結(jié)構(gòu)中反饋函數(shù)部分工作原理:假設(shè)反饋函數(shù)F=x0+x3+xn-2+x1x2+x5xn-1+x6x9x12+x1x3x7x10xn-3xn-2,配置時,將CR1的第0、3、n-2位配置為"1",其余位配置為"0";將CR2的第1、2位配置為"0",其余位配置為"1";將CR3的第5、n-1位配置為"0",其余位配置為"1";將CR4的第6、9、12位配置為"0",其余位配置為"1";將CR5的第1、3、7、10、n-3、n-2位配置為"0",其余位配置為"1";其余的配置寄存器各位均配置為"1".配置完成后,SR的各級狀態(tài)與CR1的對應(yīng)位相"與",得到的各位結(jié)果相"異或"即得到F的所有項模2加的和,即x0+x3+xn-2的結(jié)果;SR的各級狀態(tài)與CR2的對應(yīng)位相"或",得到的各位結(jié)果再一起相"與"即得到x1x2的結(jié)果;CR3、CR4、CR5進行與CR2相同的運算后可分別得到x5xn-1、x6x9x12、x1x3x7x10xn-3xn-2的結(jié)果,其余各配置寄存器運算與CR21也相同,得到的結(jié)果為"1".然后,通過1個32 bit的組合配置寄存器CRcom將各項結(jié)果組合運算后即得到F,F反饋給SR的,CRcom的配置方式和運算過程與CR1相同。CRcom在進行組合運算時,還有1個外部反饋值FV_ext參與了運算,這是因為一些序列密碼中,有外部數(shù)據(jù)參與了FSR的反饋(例如Grain)。
該可重構(gòu)FSR結(jié)構(gòu)中,SR以下是1個前饋函數(shù)部分,因為在有些序列密碼中,F(xiàn)SR帶有前饋輸出(例如Achterbahn)。前饋函數(shù)F′ 是FSR某些級狀態(tài)的1個線形函數(shù),其中必定包含F(xiàn)SR的狀態(tài)。該結(jié)構(gòu)設(shè)計中,采用1個n bit的前饋函數(shù)配置寄存器CRff和SR的各級狀態(tài)進行組合運算即得到前饋輸出FF_out,CRff的配置方式和運算過程與CR11相同。當(dāng)CRff中只有某一位被配置為"1"時,則FF_out輸出即為FSR對應(yīng)的狀態(tài),特別是這樣可以得到FSR的狀態(tài)輸出,用于另一個FSR的FV_ext輸入或NLF的輸入。
該可重構(gòu)FSR的長級數(shù)為n,通過對其各個寄存器的配置,可以將其配置為級數(shù)小于等于n的任意FSR.例如,當(dāng)n=32時,要得到一個級數(shù)為30的FSR,則將配置寄存器CR1的第0位和第1位都配置為"0",將CR2~CR31的第0位和第1位都配置為"1",則SR的第0級和第1級沒有參與反饋運算,相應(yīng)的FSR退化為30級,其有效級為第2~31級。
n位輸出信號線Data_out 輸出FSR的n級狀態(tài),當(dāng)NLF為濾波函數(shù)時作為其輸入。外部輸入信號線有配置使能信號線Cfg_en、運行使能信號線Run _en、時鐘Clk以及32 bit寬的配置數(shù)據(jù)線Cfg_data.配置使能信號Cfg_en有效后,外部配置寄存器組通過Cfg_data對FSR內(nèi)部各寄存器進行配置,配置完成后運行使能信號Run_en變?yōu)橛行?,F(xiàn)SR在時鐘控制下開始運行。
3 可重構(gòu)NLF結(jié)構(gòu)
FSR+NLF 類序列密碼中的NLF單元對輸入的信號進行非線性變換后輸出密鑰,其定義與(1)式相同,故可重構(gòu)NLF 的結(jié)構(gòu)與可重構(gòu)FSR結(jié)構(gòu)中的反饋函數(shù)部分相似。與可重構(gòu)FSR結(jié)構(gòu)不同的是,在可重構(gòu)NLF中設(shè)計了32個配置寄存器NCR1~NCR32,而且由于輸入數(shù)據(jù)線Data_in寬度固定為32 bit,因此32個配置寄存器NCR1~NCR32均為32 bit.輸入數(shù)據(jù)Data_in分別與各配置寄存器進行組合運算后得到NLF各項結(jié)果,各項結(jié)果通過NCRcom組合運算后輸出NLF值,即密鑰Key.
4 互連網(wǎng)絡(luò)結(jié)構(gòu)
本文討論的序列密碼可重構(gòu)處理結(jié)構(gòu)可以實現(xiàn)濾波型和非線性組合型兩類序列密碼,因此,其互連網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)能滿足這兩類序列密碼的連接需要,基于此要求設(shè)計的互連網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。

該互連網(wǎng)絡(luò)結(jié)構(gòu)總的設(shè)計思路:當(dāng)實現(xiàn)非線性組合型序列密碼時,可重構(gòu)FSR1~FSR8的前饋輸出信號FF_out與可重構(gòu)NLF單元的數(shù)據(jù)輸入信號Data_in(0~7) 分別相連;當(dāng)實現(xiàn)濾波型序列密碼時,由于此類密碼中FSR一般為1個,個別為2個,因此選擇組1中級數(shù)長的2個可重構(gòu)FSR3和FSR4參與互連,組2中的4個和組1中的其他2個可重構(gòu)FSR這種情況下不參與互連。
具體連接規(guī)則是:可重構(gòu)FSR3的128 bit狀態(tài)輸出信號Data_out分別與可重構(gòu)FSR1~FSR8的前饋輸出信號FF_out通過8個129選1選路器MUX0~MUX7與可重構(gòu)NLF的數(shù)據(jù)輸入信號Data_in(0~7)相連;可重構(gòu)FSR3的128 bit狀態(tài)輸出信號Data_out再通過8個128選1選路器MUX8~MUX15與可重構(gòu)NLF的數(shù)據(jù)輸入信號Data_in(8~15)相連;可重構(gòu)FSR4的128 bit狀態(tài)輸出信號Data_out通過16個128選1選路器MUX16~MUX31與可重構(gòu)NLF的數(shù)據(jù)輸入信號Data_in(16~31)相連;同時,為了滿足有些序列密碼算法中某一個FSR的輸出要參與另一個FSR的反饋的情況,將可重構(gòu)FSR3、FSR4的FF_out分別與對方的FV_ext相連。
本文論述的FSR+NLF類序列密碼可重構(gòu)處理結(jié)構(gòu)的配置寄存器都是32 bit的整數(shù)倍,故規(guī)定其重構(gòu)粒度為32 bit,配置數(shù)據(jù)線Cfg_data寬度為32 bit.從功能上來看,該可重構(gòu)處理結(jié)構(gòu)除可以滿足FSR+NLF類序列密碼的處理需求外,還可以和自收縮式發(fā)生器、有限狀態(tài)機等單元結(jié)合使用來處理一些該類衍生的序列密碼。
此外,該可重構(gòu)處理結(jié)構(gòu)具有可擴展性,可重構(gòu)FSR的個數(shù)、各可重構(gòu)FSR的長度、各可重構(gòu)FSR的反饋函數(shù)部分與可重構(gòu)NLF中二次以上項的項數(shù)都可以根據(jù)需要進行擴展。
本文論述的FSR+NLF類序列密碼可重構(gòu)處理結(jié)構(gòu)的原型已經(jīng)在Altera公司生產(chǎn)的EP2S60F1020C5型 FPGA上實現(xiàn),所需資源約為2.2萬門,工作頻率為200 MHz.由此可見,該可重構(gòu)處理結(jié)構(gòu)簡單,實現(xiàn)時占用資源較少,運行速度較高。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









