文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.06.015
中文引用格式: 潘必韜,聶小龍,王祖強(qiáng). 基于FPGA的LFSR異步加解密系統(tǒng)[J].電子技術(shù)應(yīng)用,2016,42(6):56-58.
英文引用格式: Pan Bitao,Nie Xiaolong,Wang Zuqiang. Asynchronous LFSR encryption system based on FPGA[J].Application of Electronic Technique,2016,42(6):56-58.
0 引言
隨著信息技術(shù)的不斷發(fā)展,信息安全已成為全世界的熱門(mén)研究課題,而數(shù)據(jù)的有效加解密則顯得尤為重要。雖然國(guó)內(nèi)外研究者在軟件加密層面上做了大量的工作,但仍存在著信息易被竊取等問(wèn)題。相對(duì)而言,硬件加密因?yàn)槠浼咏饷苓^(guò)程在硬件中執(zhí)行,加解密信息均存儲(chǔ)于專用硬件之中[1],使得其更具安全性。因此,研究加解密系統(tǒng)的硬件實(shí)現(xiàn)更具有現(xiàn)實(shí)意義。
LFSR偽隨機(jī)序列作為一種成熟流密碼,其優(yōu)點(diǎn)突出,且非常適合于硬件高速實(shí)現(xiàn)[2]。FPGA采用流水線和并行運(yùn)算,在數(shù)據(jù)處理中具有靈活高效的特點(diǎn),很適合于硬件加解密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[3]。
雖然利用LFSR序列進(jìn)行加解密的硬件實(shí)現(xiàn)已有大量實(shí)例,但其均為同步加解密,具有很大的局限性。本文所提出的異步LFSR加解密系統(tǒng)即是針對(duì)這一問(wèn)題而作出的改進(jìn)。首先對(duì)LFSR偽隨機(jī)序列產(chǎn)生的基本原理進(jìn)行了闡述;然后分析了一種基于LFSR偽隨機(jī)序列的同步加解密系統(tǒng);在此基礎(chǔ)之上,提出了可配置的LFSR異步加解密系統(tǒng)的設(shè)計(jì)及其利用FPGA的實(shí)現(xiàn),最后對(duì)全文進(jìn)行了總結(jié)。
1 LFSR原理簡(jiǎn)介
一個(gè)m位的線性移位寄存器(LFSR)可以由m個(gè)寄存器以及決定序列狀態(tài)轉(zhuǎn)換的反饋結(jié)構(gòu)組成。用于硬件實(shí)現(xiàn)的LFSR的拓?fù)浣Y(jié)構(gòu)如圖1所示。
該拓?fù)浣Y(jié)構(gòu)中g(shù)m代表反饋系數(shù),其值為1表示連接,0表示未連接。每一時(shí)刻的各位寄存器的輸出則為當(dāng)前的序列輸出值,下一時(shí)刻的輸出由當(dāng)前狀態(tài)和反饋支路決定。其數(shù)學(xué)抽象形式可以表示為GF(2m)上的一個(gè)多項(xiàng)式,反饋系數(shù)則抽象成為其多項(xiàng)式的系數(shù)。如果反饋系數(shù)選取得當(dāng),使得其抽象多項(xiàng)式為GF(2m)上的本原多項(xiàng)式時(shí),由m個(gè)寄存器組成的序列發(fā)生器可以有2m-1個(gè)不同狀態(tài)[4]。所以,當(dāng)m的值增大時(shí),該偽隨機(jī)序列發(fā)生器的周期增長(zhǎng)是非??捎^的,在一個(gè)周期之內(nèi),其序列輸出值不可預(yù)測(cè),保證了其安全性,從而確保了加密效果。
2 現(xiàn)有的同步LFSR加解密系統(tǒng)
現(xiàn)有的這方面的一個(gè)典型系統(tǒng)工作原理[5]如圖2所示。該系統(tǒng)設(shè)計(jì)用LFSR偽隨機(jī)序列來(lái)加解密輸入模擬信號(hào)。其基本原理是將輸入待加密的明文信號(hào)與LFSR序列進(jìn)行兩次異或來(lái)加解密,用m、k、c分別來(lái)表示明文、密鑰、密文,則由于:
所以第一次異或?qū)⒚魑男畔⒓用?,而第二次異或則將密文解密,得出明文信號(hào)。整個(gè)過(guò)程的關(guān)鍵在于時(shí)序的控制使其達(dá)到嚴(yán)格同步。該系統(tǒng)結(jié)構(gòu)清晰,原理明確。但有幾點(diǎn)缺陷:
(1)系統(tǒng)只在同步時(shí)可以進(jìn)行工作,然而大多數(shù)情況之下這種即時(shí)加解密的方法不能滿足需求。而需要先加密,傳輸,之后再解密。
(2)由于系統(tǒng)的加解密結(jié)構(gòu),使得一幀數(shù)據(jù)加解密工作要在一個(gè)LFSR序列信號(hào)周期內(nèi)完成,將限制時(shí)鐘頻率、降低效率。
(3)由于該系統(tǒng)需要加解密序列嚴(yán)格同步,所以容錯(cuò)率低,且只要出現(xiàn)一位的偏移將影響整個(gè)系統(tǒng)。
對(duì)于以上問(wèn)題,本文提出了一種可配置LFSR序列異步加解密系統(tǒng),將在下文討論。
3 可配置的LFSR序列加解密系統(tǒng)
針對(duì)現(xiàn)有LFSR同步加解密系統(tǒng)所存在的問(wèn)題,設(shè)計(jì)了一種異步加解密系統(tǒng)。該系統(tǒng)將在加密之前對(duì)LFSR進(jìn)行配置,設(shè)置其初值和反饋結(jié)構(gòu)。傳輸數(shù)據(jù)時(shí)將初值信號(hào)與反饋的配置信息封裝于密文之前,解密時(shí)再根據(jù)其接收到的密文中的配置信息進(jìn)行解密端配置,然后進(jìn)行解密。整個(gè)過(guò)程將實(shí)現(xiàn)異步加解密,其結(jié)構(gòu)如圖3所示。
其中最關(guān)鍵的部分為可配置LFSR序列發(fā)生器,其總體結(jié)構(gòu)如圖4所示。
對(duì)于m位的LFSR序列產(chǎn)生器,其整體的配置模塊為m個(gè)單個(gè)配置結(jié)構(gòu)的并聯(lián)。單個(gè)寄存器的配置器如圖5所示。其中初值賦值部分為寄存器賦初值,而反饋系數(shù)賦值部分則用來(lái)配置反饋網(wǎng)絡(luò)。
其中初值配置模塊如圖6所示。它接收初值信號(hào),當(dāng)初值為1,即input為1時(shí),prn輸出0,clrn輸出1,完成寄存器的置1設(shè)置。反之,當(dāng)初值為0時(shí),clrn輸出0,prn輸出1,完成寄存器的置0設(shè)置。
其中反饋結(jié)構(gòu)配置模塊如圖7所示。其接收到的輸入信號(hào)為Qm與gi,且當(dāng)gi為1時(shí),表示連接,output輸出Qm的值,當(dāng)gi為0時(shí),表示未連接,則output輸出為0,因?yàn)閤0=x,與無(wú)連接的效果一樣。
4 加解密系統(tǒng)控制流程
基于前文所述的硬件結(jié)構(gòu),設(shè)計(jì)了整個(gè)加解密系統(tǒng)的工作流程,其加密與解密流程相對(duì)稱,分別如圖8和圖9所示。
5 系統(tǒng)仿真及測(cè)試結(jié)果
5.1 系統(tǒng)仿真時(shí)序圖
圖10為可配置LFSR加解密裝置的加密過(guò)程仿真時(shí)序圖。仿真所用的LFSR生成器為8位,其最大周期為255。選用的反饋系數(shù)為g(8)=01110001(由于g0默認(rèn)為1,故從g1開(kāi)始配置)。
Reset信號(hào)觸發(fā)之后,EN為初始配置信號(hào)變?yōu)橛行?,其占?個(gè)時(shí)鐘周期,完成的工作為將初始的配置信息中的Q0=10011100(156)與g(8)=01110001(q的ASCII碼)存入輸出信號(hào)cout,并配置LFSR生成器。當(dāng)配置結(jié)束后,加密工作開(kāi)始進(jìn)行。輸出密文c為明文m與LFSR輸出密鑰k的異或,最終輸出cout為加入配置信息的密文。相應(yīng)地,其解密過(guò)程的仿真時(shí)序圖如圖11所示。
Reset信號(hào)觸發(fā)之后,初始配置信號(hào)EN變?yōu)橛行В湔加?個(gè)時(shí)鐘周期,完成的工作為將接收到密文c中的前兩幀數(shù)據(jù)讀出,并配置LFSR生成器。當(dāng)配置結(jié)束后,解密工作開(kāi)始進(jìn)行,解密輸出的明文從EN無(wú)效后開(kāi)始。由圖10、圖11所示,其加解密過(guò)程都可以完美運(yùn)行。
5.2 實(shí)際加解密測(cè)試結(jié)果
用上述加解密裝置對(duì)一幅512×512的灰度圖像進(jìn)行加密、解密可得其結(jié)果分別如圖12、圖13所示??梢?jiàn)加解密效果完美,可以實(shí)際使用。
6 結(jié)語(yǔ)
本文設(shè)計(jì)了一種可配置的LFSR序列生成器以及其所應(yīng)用的異步加解密裝置。在對(duì)原始LFSR加解密系統(tǒng)進(jìn)行了闡述與分析后,提出了一種可配置的LFSR異步加解密系統(tǒng),并對(duì)其進(jìn)行了基于FPGA的硬件實(shí)現(xiàn)。觀察實(shí)驗(yàn)結(jié)果可知,其不僅具有異步加解密的實(shí)用性,又具有LFSR序列的可靠性。
參考文獻(xiàn)
[1] 賈立愷,黃國(guó)慶,趙敬,等.基于FPGA的PCI硬件加解密卡設(shè)計(jì)[J].電子設(shè)計(jì)工程,2010,18(5):142-145.
[2] 胡向東.應(yīng)用密碼學(xué)[M].北京:電子工業(yè)出版社,2011.
[3] 劉景亞,季曉勇.基于FPGA的CPRS混沌加解密算法高效實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2008,31(11):175-177.
[4] WADE TRAPPE(美).密碼學(xué)與編碼理論(第2版)[M].北京:人民郵電出版社,2008.
[5] 劉衛(wèi)玲,常曉明,王云才.基于FPGA和PSoC的混沌音頻加解密系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,40(7):54-57.