一種祖沖之算法的硬件實現(xiàn)裝置及方法
【專利摘要】本發(fā)明公開了一種祖沖之算法的硬件實現(xiàn)裝置及方法,該裝置包括:控制邏輯單元,用于協(xié)調(diào)控制祖沖之算法硬件裝置的初始密鑰加載、LFSR寄存器初始化以及密鑰的產(chǎn)生;LFSR單元,采用素域GF(231-1)的m序列,每個時鐘周期產(chǎn)生一次寄存器移位;比特重組單元,采用相應(yīng)寄存器值取半合并技術(shù),實現(xiàn)LFSR寄存器值單元到非線性函數(shù)F(X0,X1,X2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換;非線性函數(shù)F(X0,X1,X2)單元,通過將輸入的X0,X1,X2經(jīng)過分組密碼設(shè)計,結(jié)合S盒以及高擴(kuò)散性的線性變換L,實現(xiàn)非線性函數(shù)變換。本發(fā)明能夠簡單高效地硬件實現(xiàn)祖沖之算法,并且,既能保證以較小的芯片面積和較低的芯片功耗實現(xiàn)祖沖之算法,還能保證祖沖之算法輸出密鑰的高吞吐率。
【專利說明】一種祖沖之算法的硬件實現(xiàn)裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安全【技術(shù)領(lǐng)域】的加解密【技術(shù)領(lǐng)域】,尤其涉及一種祖沖之算法的硬件實現(xiàn)裝置及方法。
【背景技術(shù)】
[0002]隨著現(xiàn)代技術(shù)的發(fā)展,對通信過程中傳輸?shù)臄?shù)據(jù)和數(shù)字圖像進(jìn)行加密以保障數(shù)據(jù)傳輸?shù)陌踩?,顯得尤為重要。
[0003]祖沖之算法(ZUC)是我國第一個成為國際密碼標(biāo)準(zhǔn)的密碼算法,是中國科學(xué)院數(shù)據(jù)保護(hù)和通信安全研究中心自主設(shè)計的加密算法,現(xiàn)在已被3GPP(3rd GenerationPartnership Proj ect)確定為 LTE(Long TermEvaluation)的國際標(biāo)準(zhǔn),即 4G 國際通信標(biāo)準(zhǔn)。在安全算法方面,LTE空中接口預(yù)留了 16個機密性算法和16個完整性算法的接口。ZUC算法,作為3GPP機密性算法EEA3和完整性算法EIA3的核心,于2011年9月正式被3GPP SA全會通過,成為了繼美國的高級加密標(biāo)準(zhǔn)AES和歐洲的SN0W3G之外的第三套加密標(biāo)準(zhǔn)核心算法。
[0004]ZUC算法在邏輯上采用三層結(jié)構(gòu)設(shè)計:線性反饋移位寄存器(LFSR)、比特重組和非線性函數(shù)Ffttl, X1, X2)。并在LFSR的設(shè)計中,采用了素域GF(231-1)的m序列,該序列周期長、統(tǒng)計特性好,具有線性結(jié)構(gòu)弱、比特關(guān)系符合率低等優(yōu)點,因而ZUC算法具有天然的強抵抗二元域上密碼攻擊方法的能力。同時比特重組采用相應(yīng)寄存器值取半合并技術(shù),實現(xiàn)LFSR寄存器單元到非線性函數(shù)F (Xtl, X1, X2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換,這樣可以破壞LFSR寄存器的線性結(jié)構(gòu),使得一些在素域GF(231-1)上的密碼攻擊方法變得非常困難。
[0005]此外,ZUC算法充分結(jié)合了分組密碼的設(shè)計技巧、S盒以及高擴(kuò)散性的線性變換L,設(shè)計出了高安全性的非線性函數(shù)FGci, X1, X2)。非線性函數(shù)X1, X2)具有高的抵抗區(qū)分分析、快速相關(guān)攻擊和猜測確定攻擊等方法的能力。所以,ZUC算法具有高可靠的安全性倉泛。
[0006]ZUC算法在設(shè)計時既充分考慮了安全問題,又充分考慮了軟硬件實現(xiàn)的復(fù)雜度,在保證高可靠的安全性能的同時也可以高效地軟硬件實現(xiàn)。本發(fā)明能夠簡單高效地硬件實現(xiàn)祖沖之算法,既能保證以較小的芯片面積和較低的芯片功耗實現(xiàn)祖沖之算法,還能保證祖沖之算法輸出密鑰的高吞吐率。
【發(fā)明內(nèi)容】
[0007](一 )要解決的技術(shù)問題
[0008]有鑒于此,本發(fā)明的主要目的在于提供一種簡易高效的祖沖之算法的硬件實現(xiàn)裝置及方法。
[0009]( 二 )技術(shù)方案
[0010]為達(dá)到上述目的,本發(fā)明提供了一種祖沖之算法的硬件實現(xiàn)裝置,該裝置包括控制邏輯單元、線性反饋移位寄存器(LFSR)單元、比特重組單元和非線性函數(shù)Ffttl,X1,X2)單元,其中:
[0011]控制邏輯單元,用于協(xié)調(diào)控制祖沖之算法硬件裝置的初始密鑰加載、LFSR寄存器初始化以及密鑰的產(chǎn)生;
[0012]LFSR單元,采用素域GF(231_1)的m序列,每個時鐘周期產(chǎn)生一次寄存器移位;
[0013]比特重組單元,采用相應(yīng)寄存器值取半合并技術(shù),實現(xiàn)LFSR寄存器值單元到非線性函數(shù)Ffttl, X1, X2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換;
[0014]非線性函數(shù)FGci, X1, X2)單元,通過將輸入的Xtl, X1, X2經(jīng)過分組密碼設(shè)計,結(jié)合S盒以及高擴(kuò)散性的線性變換L,實現(xiàn)非線性函數(shù)變換。
[0015]上述方案中,所述控制邏輯單元在祖沖之算法的一開始,控制一初始密鑰加載單元為LFSR單元中的寄存器加載初始密鑰,然后控制LFSR單元中的寄存器初始化一次,直到LFSR單元完成32次的寄存器初始化操作,接下來執(zhí)行祖沖之算法的工作模式一次,第一次工作模式的密鑰輸出無效,然后循環(huán)執(zhí)行ZUC工作模式并不斷輸出有效密鑰,如果輸出的密鑰長度達(dá)到設(shè)定的密鑰長度,則祖沖之算法結(jié)束。
[0016]上述方案中,所述初始密鑰加載單元用于根據(jù)祖沖之算法硬件裝置的輸入產(chǎn)生初始密鑰并加載入LFSR單元中的寄存器。
[0017]上述方案中,所述初始密鑰加載單元將輸入的COUNT、BEARER和DIRECTION組合
成16個初始向量Initial Vectori (i = 0,1,2,3......15),再由初始向量和輸入的16個
Initial Keyi (i = 0,1,2,3......15)以及固定的 16 個常向量 DiQ = 0,1,2,3......15)
組合成祖沖之算法的初始密鑰,也即LFSR的16個寄存器的初始狀態(tài)值Si (i = 0,1,2,
3......15),然后將LFSR單元的16個寄存器的初始狀態(tài)值SiQ = 0,1,2,3......15)輸
出給LFSR單元的16個31位的寄存器。
[0018]上述方案中,所述LFSR單元是由16個31位的寄存器組成,分別為si(0≤i≤15)。
[0019]上述方案中,所述LFSR單元具有兩種操作模式,分別為LFSR寄存器初始化模式和LFSR工作模式,LFSR工作模式即為ZUC工作模式。
[0020]上述方案中,在LFSR單元的16個寄存器獲得初始密鑰后,LFSR單元即進(jìn)入寄存器初始化模式,經(jīng)過32次的寄存器移位初始化后,LFSR單元即進(jìn)入工作模式;在進(jìn)入工作模式后的第一次的密鑰輸出丟棄,以后循環(huán)執(zhí)行LFSR工作模式,每次的密鑰輸出都是有效密鑰輸出,直到達(dá)到設(shè)定的密鑰長度為止。
[0021]上述方案中,所述比特重組單元用于將LFSR的相應(yīng)寄存器值取半合并,實現(xiàn)LFSR寄存器值單元到非線性函數(shù)F(Xc^XnX2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換,比特重組的實現(xiàn)過程如下:
[0022](1)X0 = s15H| |s14L;
[0023](2)X1 = SnL| |s9H ;
[0024](3) X2 = s7L || S5h ;
[0025](4)X3 = s2L I I Soh.[0026]上述操作中,siH為Si的高16位,Sa為Si的低16位,siH| | siL表示siH和Sa拼接在一起,且SiH在高位。
[0027]上述方案中,所述比特重組單元的三個32位的輸出Xc^X1和X2是非線性函數(shù)F (X0,X1, X2)的輸入,32位的W為F (X0, X1, X2)的輸出,F(xiàn) (X0, X1, X2)中的R1和R2為32位的寄存器。
[0028]上述方案中,所述非線性函數(shù)Fftci, X1, X2)單元通過將輸入的Xtl, X1和X2經(jīng)過分組密碼設(shè)計,結(jié)合S盒以及高擴(kuò)散性的線性變換L,實現(xiàn)非線性函數(shù)變換。
[0029]上述方案中,所述S盒是一個32X32的S盒,等效為4個8X8的S盒,即S= (S0,S1, S2, S3);因為S0 = S2,S1 = S3,所以實現(xiàn)時僅需要S0盒和Si盒;而S。和S1都是256X8的查找表,表中的每個值都是8位,且表中的每一個值都是確定的;所以,硬件實現(xiàn)時,需要兩個256X8bit的ROM存儲S0和S1的值。
[0030]上述方案中,為使S盒的硬件實現(xiàn)芯片面積和功耗最小化,采用一個512 X 8bit的單端口 ROM來存儲Stl和S1的值;通過對ROM的讀邏輯控制和寄存器寄存的方法分四步讀出一個S盒的32位的輸出,以完成S盒的功能。
[0031]上述方案中,所述非線性函數(shù)F (Xtl, X1, X2)單元的操作如下:
[0032]
【權(quán)利要求】
1.一種祖沖之算法的硬件實現(xiàn)裝置,其特征在于,該裝置包括控制邏輯單元、線性反饋移位寄存器(LFSR)單元、比特重組單元和非線性函數(shù)X1, X2)單元,其中: 控制邏輯單元,用于協(xié)調(diào)控制祖沖之算法硬件裝置的初始密鑰加載、LFSR寄存器初始化以及密鑰的產(chǎn)生; LFSR單元,采用素域GF(231-1)的m序列,每個時鐘周期產(chǎn)生一次寄存器移位; 比特重組單元,采用相應(yīng)寄存器值取半合并技術(shù),實現(xiàn)LFSR寄存器值單元到非線性函數(shù)FGtl, X1, X2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換; 非線性函數(shù)X1, X2)單元,通過將輸入的Xtl, X1, X2經(jīng)過分組密碼設(shè)計,結(jié)合S盒以及高擴(kuò)散性的線性變換L,實現(xiàn)非線性函數(shù)變換。
2.根據(jù)權(quán)利要求1所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述控制邏輯單元在祖沖之算法的一開始,控制一初始密鑰加載單元為LFSR單元中的寄存器加載初始密鑰,然后控制LFSR單元中的寄存器初始化一次,直到LFSR單元完成32次的寄存器初始化操作,接下來執(zhí)行祖沖之算法的工作模式一次,第一次工作模式的密鑰輸出無效,然后循環(huán)執(zhí)行ZUC工作模式并不斷輸出有效密鑰,如果輸出的密鑰長度達(dá)到設(shè)定的密鑰長度,則祖沖之算法結(jié)束。
3.根據(jù)權(quán)利要 求2所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述初始密鑰加載單元用于根據(jù)祖沖之算法硬件裝置的輸入產(chǎn)生初始密鑰并加載入LFSR單元中的寄存器。
4.根據(jù)權(quán)利要求3所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述初始密鑰加載單元將輸入的COUNT、BEARER和DIRECTION組合成16個初始向量Initial Vectori (i =0,1,2,3......15),再由初始向量和輸入的 16 個 Initial Keyi (i = 0,1,2,3......15)以及固定的16個常向量DiQ =0,1,2,3......15)組合成祖沖之算法的初始密鑰,也即LFSR的16個寄存器的初始狀態(tài)值Si (i = 0,1,2,3......15),然后將LFSR單元的16個寄存器的初始狀態(tài)值Si (i = 0,1,2,3......15)輸出給LFSR單元的16個31位的寄存器。
5.根據(jù)權(quán)利要求1所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述LFSR單元是由16個31位的寄存器組成,分別為Si (O≤i≤15)。
6.根據(jù)權(quán)利要求5所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述LFSR單元具有兩種操作模式,分別為LFSR寄存器初始化模式和LFSR工作模式,LFSR工作模式即為ZUC工作模式。
7.根據(jù)權(quán)利要求6所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,在LFSR單元的16個寄存器獲得初始密鑰后,LFSR單元即進(jìn)入寄存器初始化模式,經(jīng)過32次的寄存器移位初始化后,LFSR單元即進(jìn)入工作模式;在進(jìn)入工作模式后的第一次的密鑰輸出丟棄,以后循環(huán)執(zhí)行LFSR工作模式,每次的密鑰輸出都是有效密鑰輸出,直到達(dá)到設(shè)定的密鑰長度為止。
8.根據(jù)權(quán)利要求1所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述比特重組單元用于將LFSR的相應(yīng)寄存器值取半合并,實現(xiàn)LFSR寄存器值單元到非線性函數(shù)F (Xtl, X1,X2)和密鑰輸出Z的數(shù)據(jù)轉(zhuǎn)換,比特重組的實現(xiàn)過程如下:
(1)Xo — S15H I I S14L ;
(2)X1 = S11L| I S9h ;⑶ X2 — S7L || S5h ;
⑷ X3 = S2L || Soh.上述操作中,Sia為Si的高16位,SiL為Si的低16位,siH I SiL表示siH和SiL拼接在一起,且siH在高位。
9.根據(jù)權(quán)利要求8所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述比特重組單元的三個32位的輸出Xc^X1和X2是非線性函數(shù)F(Xtl, X1, X2)的輸入,32位的W為Fftci, X1,X2)的輸出,F(xiàn)(X。,X1, X2)中的R1和R2為32位的寄存器。
10.根據(jù)權(quán)利要求9所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述非線性函數(shù)F(X0, X1, X2)單元通過將輸入的Xtl, X1和X2經(jīng)過分組密碼設(shè)計,結(jié)合S盒以及高擴(kuò)散性的線性變換L,實現(xiàn)非線性函數(shù)變換。
11.根據(jù)權(quán)利要求10所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述S盒是一個 32X32 的 S 盒,等效為 4 個 8X8 的 S 盒,即 S = (S。,S1, S2, S3);因為 S0 = S2, S1 = S3,所以實現(xiàn)時僅需要Stl盒和S1盒;而Stl和S1都是256X8的查找表,表中的每個值都是8位,且表中的每一個值都是確定的;所以,硬件實現(xiàn)時,需要兩個256 X 8bit的ROM存儲S。和S1的值。
12.根據(jù)權(quán)利要求11所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,為使S盒的硬件實現(xiàn)芯片面積和功耗最小化,采用一個512X8bit的單端口 ROM來存儲Stl和S1的值;通過對ROM的讀邏輯控制和寄存器寄存的方法分四步讀出一個S盒的32位的輸出,以完成S盒的功能。
13.根據(jù)權(quán)利要求11所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述非線性函數(shù)FGci, X1, X2)單元的操作如下:
14.根據(jù)權(quán)利要求13所述的祖沖之算法的硬件實現(xiàn)裝置,其特征在于,所述L1和L2是兩個線性變換函數(shù),具體操作如下所示:
15.一種祖沖之算法的硬件實現(xiàn)方法,其特征在于,該方法包括: 在祖沖之算法開始時,控制邏輯單元先根據(jù)相應(yīng)輸入控制初始密鑰加載單元向線性反饋移位寄存器(LFSR)單元加載初始密鑰; 初始密鑰加載結(jié)束后,線性反饋移位寄存器(LFSR)單元開始初始化操作一次,然后線性反饋移位寄存器(LFSR)單元重復(fù)初始化操作32次;此期間的密鑰輸出Z為無效輸出; LFSR寄存器初始化操作循環(huán)執(zhí)行32次以后,進(jìn)入LFSR工作模式,即為ZUC工作模式;ZUC工作模式執(zhí)行第一次的密鑰輸出Z為無效輸出,不用做加解密;此后循環(huán)執(zhí)行ZUC工作模式,每執(zhí)行一 ZUC工作模式,即可得到一個32位的密鑰輸出Z,即可用作加解密; 當(dāng)輸出密鑰Z的長度達(dá)到預(yù)先設(shè)定的密鑰長度時,祖沖之算法結(jié)束。
【文檔編號】H04W12/02GK103813313SQ201210441283
【公開日】2014年5月21日 申請日期:2012年11月7日 優(yōu)先權(quán)日:2012年11月7日
【發(fā)明者】黑勇, 任高峰, 喬樹山, 王晨光 申請人:中國科學(xué)院微電子研究所