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