段志剛 ,佟 晶
(1.深圳市龍圖軟件有限公司,黑龍江 哈爾濱 150001;2.中航工業(yè)哈爾濱軸承有限公司 研發(fā)中心,黑龍江 哈爾濱150036)
流密碼(stream cipher)也稱序列密碼,它是對稱密碼算法的一種。由于流密碼長度可靈活變化,且具有運(yùn)算速度快、密文傳輸中沒有差錯(cuò)等優(yōu)點(diǎn),目前仍是國際密碼應(yīng)用的主流,而基于偽隨機(jī)序列的流密碼是當(dāng)今最通用的密碼系統(tǒng)。本文采用基于LFSR和非線性組合函數(shù)的方法設(shè)計(jì)密鑰流生成器,不僅便于從理論上分析其安全性,而且易于硬件實(shí)現(xiàn)。經(jīng)嚴(yán)格測試表明,該加密設(shè)計(jì)能產(chǎn)生高質(zhì)量、高速的偽隨機(jī)密鑰流,它在保密學(xué)領(lǐng)域有廣泛的應(yīng)用。
流密碼有以下優(yōu)勢:密鑰的產(chǎn)生與使用簡單,流密碼按單個(gè)字符加密,不需要太多的緩存,不會(huì)在明文中產(chǎn)生錯(cuò)誤擴(kuò)散,實(shí)時(shí)性好,運(yùn)算速度快,硬件實(shí)現(xiàn)的復(fù)雜度要低等,因此,流密碼在相當(dāng)長的時(shí)間內(nèi)是人們使用的主要加密方法,目前仍是各國政府、軍事、外交等核心部門使用的主流密碼。流密碼加密、解密框圖如圖1所示。
圖1 流密碼加密解密框圖
Geffe流密碼電路框圖如圖2 所示。這個(gè)發(fā)生器使用了六個(gè)LFSR,他們以非線性方式組合而成,LFSR1、LFSR2、LFSR3、LFSR4作為復(fù)合器的輸八,LFSR5、LFSR6控制復(fù)合器的輸出。LFSR5、LFSR6在四個(gè)LFSR中進(jìn)行選擇,且LFSR5、LFSR6比其它四個(gè)運(yùn)行快1倍。
圖2 Geffe模塊
為了實(shí)驗(yàn)簡易方便,六個(gè)LFSR的級數(shù)分別選為:2,3,4,5,6,7;它們的特征多項(xiàng)式分別為 f1(x)=x2+x+1,f2(x)=x3+x+1 ,f3(x)=x4+x+1 ,f4(x)=x4+x2+1 ,f5(x)=x6+x+1 ,f6(x)=x7+x3+1 ,并通過數(shù)據(jù)選擇器控制輸出。所有輸入均共用同一個(gè)CP脈沖。這樣既能使得該序列某些統(tǒng)計(jì)特性不被破壞,如偽隨機(jī)序列重要特性0與1的平衡性、序列相關(guān)性等,又能對多個(gè)LFSR進(jìn)行控制輸出,起到非線性系統(tǒng)作用;可設(shè)置密鑰的控制參數(shù),改變此參數(shù)可改變相應(yīng)的輸出,這樣可使整個(gè)密碼系統(tǒng)構(gòu)成多級密鑰關(guān)系,使流密碼的保密性進(jìn)一步加強(qiáng)。
Geffe模塊共六組輸入,這樣較單個(gè)m序列相比提高其輸出周期和增加密鑰空間。
六個(gè)LFSR的周期分別為 22-1,23-1,24-1,25-1,26-1,27-1 ,而Geffe發(fā)生器的周期是這六個(gè)LFSR的周期的最小公倍數(shù)。
用Quartus II來實(shí)現(xiàn)Geffe模塊電路原理設(shè)計(jì)圖如圖3 所示。
圖3 Geffe模塊電路圖
設(shè)計(jì)中用到的LFSR1至LFSR6都是在Quartus II環(huán)境下由原理圖輸入法D觸發(fā)器形成的。圖4選擇器MUX是用VHDL語言生成的。程序設(shè)計(jì)如下:
編完程序后在“File”中選擇“Create/-Update—Create Symbol Files for Current file”即生成選擇器,見圖3。設(shè)計(jì)完成后對其進(jìn)行仿真,仿真結(jié)果如圖4 所示。
圖4 仿真結(jié)果
其中cp為時(shí)鐘信號,rst為復(fù)位信號。m2至m7為初始密鑰輸入,其中初始密鑰分配如下:m2提供給了LFSR1; m3提供給了LFSR2; m4提供給了LFSR3;m5提供給了LFSR4;m6提供給了LFSR5;m7提供給了LFSR6。Out為Geffe流密碼序列輸出,可從仿真結(jié)果可以看出:輸出序列為一偽隨機(jī)序列,利用此序列可與明文序列進(jìn)行加密然后傳輸,利用Geffe流密碼產(chǎn)生的偽隨機(jī)碼較傳統(tǒng)m序列有周期長,輸出序列復(fù)雜等良好性能。
此模塊可以下載到FPGA器件中設(shè)計(jì)成加密芯片,考慮到FPGA配置文件數(shù)據(jù)比較大,為了加快配置速度,采用的是EPFlOK20生成Geffe流密碼模塊,該模塊可應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)和通信系統(tǒng)中,提高信息傳輸?shù)陌踩?。通過改變輸入?yún)?shù)可以模擬不同的非線性函數(shù),避免了在傳統(tǒng)電路設(shè)計(jì)中,模擬不同的非線性函數(shù)須變換不同電路的缺點(diǎn)。
本論文在深入學(xué)習(xí)和研究現(xiàn)代密碼學(xué)理論特別是流密碼理論與技術(shù)的基礎(chǔ)上,完成了Geffe流密碼分析與實(shí)現(xiàn)。利用FPGA工具對Geffe流密碼進(jìn)行設(shè)計(jì),用Quartus II來實(shí)現(xiàn)Geffe模塊的設(shè)計(jì),并用VHDL語言實(shí)現(xiàn)了其功能,為流密碼輸出奠定了基礎(chǔ),利用VHDL設(shè)計(jì)了數(shù)據(jù)選擇器并完成其功能,通過實(shí)驗(yàn)可看出產(chǎn)生輸出序列,驗(yàn)證了所設(shè)計(jì)電路的正確性,為流密碼芯片的實(shí)際開發(fā)與應(yīng)用奠定了基礎(chǔ)。
[1]C.E.Shannon. Communication theory of secrecy systems[J].Bell System Technology Jounal Vol.28.1949,20(2): 656-715.
[2]丁存生,肖國鎮(zhèn).流密碼及其應(yīng)用[M].上海:國防工業(yè)出版社,1994:163-224.
[3]張文政.布爾函數(shù)若干設(shè)計(jì)準(zhǔn)則的研究[C].張文政.通信保密.北京:清華大學(xué)出版社,1994(2):105-138.