基于非線性循環(huán)移位寄存器的流密碼算法snrr的制作方法
【專利摘要】移位寄存器是保密通信領(lǐng)域用于產(chǎn)生偽隨機(jī)序列的密碼部件,有線性反饋移位寄存器LFSR和非線性反饋移位寄存器NLFSR等,其最大周期T≤2n。n級(jí)非線性循環(huán)移位寄存器NRR的反饋模式為:上式中,i≥0,n≥2,字長(zhǎng)m取平臺(tái)的位數(shù);<<<j表示循環(huán)左移j位;表示模加;c為1~2m-1之間的奇數(shù);輸入的初始n個(gè)字a0~an-1取值都不限,每字都是任意m位數(shù)。字長(zhǎng)為m比特時(shí),n級(jí)NRR的周期大于(2m)n,即安全性高于傳統(tǒng)的(N)LFSR;NRR效率也高于常用的(N)LFSR。采用5個(gè)NRR設(shè)計(jì)了一個(gè)流密碼算法SNRR,其中第1個(gè)NRR用于密鑰編排,另4個(gè)NRR的輸出進(jìn)行模加產(chǎn)生SNRR的密鑰流。SNRR的效率高于常用對(duì)稱密碼算法,主要用于網(wǎng)絡(luò)與信息系統(tǒng)安全中的數(shù)據(jù)加解密。
【專利說(shuō)明】基于非線性循環(huán)移位寄存器的流密碼算法SNRR
【技術(shù)領(lǐng)域】
[0001] 基于非線性循環(huán)移位寄存器NRR的流密碼算法SNRR是保密通信領(lǐng)域的一種對(duì)稱 密碼算法,主要用于網(wǎng)絡(luò)與信息系統(tǒng)安全中的數(shù)據(jù)加解密。
【背景技術(shù)】
[0002] 密碼算法分為對(duì)稱密碼算法和非對(duì)稱密碼算法。由于非對(duì)稱密碼算法的加密速度 遠(yuǎn)小于對(duì)稱密碼算法,因此網(wǎng)絡(luò)與信息系統(tǒng)安全中的數(shù)據(jù)加解密盡量采用對(duì)稱密碼算法, W提高效率。對(duì)稱密碼算法分為流密碼算法和分組密碼算法,2種對(duì)稱密碼算法各有優(yōu)缺 點(diǎn)。設(shè)計(jì)流密碼算法的一種常用密碼部件是移位寄存器,有線性反饋移位寄存器lfsrw和 非線性反饋移位寄存器NLFSRb^等,W下合稱(N)LFSR。例如,第2代移動(dòng)通信系統(tǒng)GSM的 加密標(biāo)準(zhǔn)A5算法b'ti、藍(lán)牙加密標(biāo)準(zhǔn)E0算法W和流密碼國(guó)際標(biāo)準(zhǔn)SNOW2算法W都采用了 LFSR化sh函數(shù)標(biāo)準(zhǔn)SHA1和SHA2的消息擴(kuò)展算法W W及第3代標(biāo)準(zhǔn)SHA3的多個(gè)候選算 法采用了(腳LFSR或其它發(fā)生器。
[000引 n級(jí)㈱LFSR的當(dāng)前輸出比特都是前n比特的邏輯函數(shù),該樣的邏輯函數(shù)共有22" 個(gè),其中線性的有2"個(gè),非線性的有22" -2"個(gè)。LFSR采用W下反饋模式由前n比特a;? 線性遞推下一比特aw;
[0004] an+i= a i'Cn-iaw-…- Cian+i_i
[0005] 其中,常數(shù)Ck= 0或1,1《k《n-1,'是異或即模2加法。如果輸入的初始n比 特a。?a全為0,則LFSR輸出恒為0,因此,n級(jí)LFSR的最大周期為2 n-1。當(dāng)且僅當(dāng)LFSR 的反饋多項(xiàng)式為本原多項(xiàng)式時(shí),LFSR的周期才達(dá)到最大。產(chǎn)生一個(gè)本原多項(xiàng)式并不容易, 需借助數(shù)學(xué)軟件包。SHA1的消息擴(kuò)展算法采用W下模式由前16個(gè)字?wt_i遞推下一 個(gè)字Wt:
[0006] Wt= (WtVwtVwt-irWt-ie) <<< 1
[0007] 其中,<<< 1表示循環(huán)左移1位,字長(zhǎng)m為32b (比特)。該相當(dāng)于字長(zhǎng)m為32b 的16級(jí)發(fā)生器,如果輸入的初始16個(gè)字W。?W 15全為0,則輸出恒為0,因此,其最大周期 小于等于(232)ie-l。n級(jí)NLFSR的最大周期為2\非線性循環(huán)移位寄存器NRR是一種新型 反饋移位寄存器。當(dāng)字長(zhǎng)為m比特時(shí),n級(jí)NRR的周期大于(2-)n。(腳LFSR軟件實(shí)現(xiàn)慢, 解決的辦法是并行m個(gè)(腳LFSR,相當(dāng)于字長(zhǎng)為m比特,但最大周期還是小于等于2",除非 象SNOW2-樣采用模2-的本原多項(xiàng)式,最大周期才小于等于(2-)n。也就是說(shuō),對(duì)于不同的 字長(zhǎng)m和不同的級(jí)數(shù)n,(N)LFSR要尋找不同的反饋模式,周期才能達(dá)到最大。不管字長(zhǎng)m 和級(jí)數(shù)n為多大,NRR存在統(tǒng)一的反饋模式,無(wú)須尋找達(dá)到最大周期的反饋模式,可W直接 適應(yīng)各種平臺(tái),包括將來(lái)128位W上的平臺(tái)。在32位平臺(tái)下(2. 4GHz雙核CPU、2GB內(nèi)存、 Windows XP、C語(yǔ)言),SNOW2的LFSR速度為630MB/S ;SHA1和SHA256的消息擴(kuò)展算法速度 都小于400MB/S ;NRR的速度為700MB/S。對(duì)于A5和E0算法采用的LFSR,除非同時(shí)并行32 個(gè)LFSR,效率才和NRR相當(dāng)。對(duì)于周期達(dá)到最大的(N)LFSR,其輸出是絕對(duì)均勻的,遍歷了 所有狀態(tài)才會(huì)重復(fù)。測(cè)試表明,NRR產(chǎn)生的輸出是偽隨機(jī)均勻的,又能遍歷所有狀態(tài)。
[0008] 本發(fā)明基于非線性循環(huán)移位寄存器NRR,設(shè)計(jì)了一種流密碼算法SNRR。
[0009] [1](美)Schneier B.應(yīng)用密碼學(xué)一一協(xié)議、算法與C源程序.吳世忠等譯.機(jī)械 工業(yè)出版社,2000-1. 264?269
[0010] 巧](中)王育民,劉建偉.通信網(wǎng)的安全一一理論與技術(shù).西安電了科技大學(xué)出 版社,1999-04. 81 ?82
[0011] 巧](中)谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學(xué)教程.北京郵電大學(xué)出版社, 2009-08. 169 ?175,189 ?204
[0012] [4](中)徐勝波,馬文平,王新梅.無(wú)線通信網(wǎng)中的安全技術(shù).人民郵電出版社, 2003-07. 149 ?150,183 ?187
【發(fā)明內(nèi)容】
[001引【發(fā)明目的】
[0014] 為了設(shè)計(jì)安全高效的對(duì)稱密碼算法,用于網(wǎng)絡(luò)與信息系統(tǒng)安全中的數(shù)據(jù)加解密, 基于非線性循環(huán)移位寄存器NRR的流密碼算法SNRR相比其它對(duì)稱密碼算法而言,擴(kuò)大了輸 出序列的周期,增強(qiáng)了多平臺(tái)適應(yīng)性,提高了效率。
[00巧]【技術(shù)方案】
[0016] 本發(fā)明中的非線性循環(huán)移位寄存器NRR采用的技術(shù)方案是;當(dāng)字長(zhǎng)為m比特時(shí),n 級(jí)NRR采用W下反饋模式由前n個(gè)字a,?a 中的首尾2個(gè)字遞推下一個(gè)字a
[0017] = {[(幻<?7)蟲(chóng)幻,' ]+ C } mod 2",
[0018] 其中,i > 0,n > 2,字長(zhǎng)m取平臺(tái)的位數(shù);模運(yùn)算mod表示求余數(shù);<<< j表示 循環(huán)左移j位,j在0?m-1之間循環(huán)變化,即j = i mod m ;?表示模加;C為!?2"-1之 間的奇數(shù);輸入的初始n個(gè)字a。?a。_1取值都不限,輸入的每個(gè)字都是任意m比特長(zhǎng)的數(shù)。
[0019] 本發(fā)明中的NRR與傳統(tǒng)的(N)LFSR不同之處在于;(1)循環(huán)移位數(shù)j循環(huán)變化;(2) 計(jì)數(shù)加C; (3)初值不受限。
[0020] 流密碼算法的加密方式為;密文C = P'KS ;解密方式為;明文P = C'KS。其中KS 為密鑰流,所W其關(guān)鍵是如何產(chǎn)生密鑰流。SNRR算法采用了 5個(gè)NRR,其中第1個(gè)NRR用于 密鑰編排,另4個(gè)NRR的輸出進(jìn)行模加來(lái)產(chǎn)生密鑰流。SNRR算法產(chǎn)生密鑰流的過(guò)程用KS = SNRR化,IV)表示。其中輸入?yún)?shù)K為長(zhǎng)度化> 16B (字節(jié))的密鑰;IV是保密通信中用于 抗重放攻擊的初始向量,與密鑰K等長(zhǎng)。對(duì)于16B的密鑰和32位平臺(tái),將密鑰K和初值IV 表示成4個(gè)32位字級(jí)聯(lián):
[002U K = (KoIlKiIlKsllig ;IV = (IVoMlVil IIV2MIV3)
[002引 SNRR算法中第1個(gè)NRR的初值為Aa= (a。I I aj I 321 I as) = rIV。其反饋模式為;
[002引 aw= {[(a i+3<<< j)-a i]+l}mod 232,其中 i > 0, j = i mod 32,-表示逐位異 或運(yùn)算。
[0024] 另 4 個(gè) NRR 的初值分別為;B〇=化。II bj I b21 I bs) = (awel I a側(cè) I k巧81 k 巧9);
[0025] D〇= (d。II dj I d2 II eg = (a"4〇+ig I I (awi+K。)II (aw2+Ki) I I (a"43+ig ;
[0026] E〇= (e J I ej I 621 I 63) = (aw4+K2) II (aws+Kg) I I (awe+K〇) I I (aw7+Ki);
[0027] F〇= (f J I f J I fa I I fs) = (aw81 I aw91 I a;巧01 I a;巧 1)。
[002引對(duì)于i > 0,后4個(gè)NRR的反饋模式分別為:
[0029] b"4= {[化 w<<< j i)+bJ+:3}mod 232,其中 ji= i巧mod 32 ;
[0030] d"4= {[(d"3<<< j2)+di]+引mod 232,其中 j2= i+llmod 32 ;
[003U ew= {[(e i"<<< j 3)+eJ+7}mod 232,其中 j3= i+17mod 32 ;
[003引 f"4= {[(f "3<<< j4)+fJ+U}mod 232,其中 j.4= i+23mod 32。
[0033] SNRR算法的輸出密鑰流由后4個(gè)NRR的輸出進(jìn)行模加來(lái)產(chǎn)生; KS, = (6, +4 拓 4 +4 宙 e, +4 宙乂 +4 )。
[0034] 【有益效果】
[0035] 相比常用對(duì)稱密碼算法,流密碼算法SNRR有W下優(yōu)點(diǎn):
[0036] (1)周期更大、安全性更高。由于乘法系數(shù)b和循環(huán)移位數(shù)j不固定,字長(zhǎng)為m比 特時(shí),n級(jí)NRR的周期大于(2T。對(duì)于反饋模式3;+。= [(aiw<<< j)+ai+l]mod 2-,當(dāng) 字長(zhǎng)為8b (比特)時(shí),測(cè)試得2級(jí)NRSR的周期為484192 > 21屯(字節(jié));3級(jí)NRR的周期 為 81,782456 > 224(16MB) ;4 級(jí) NRR 的周期為 27, 251403552 > 232 (4GB)。當(dāng)字長(zhǎng)為 16b 時(shí),2級(jí)NRR的周期為 37,540033008 >4G個(gè)短整數(shù)。對(duì)于反饋模式ai+。=[化Xai+。_l) + (ai <<< ^+l]mod 2-,當(dāng)字長(zhǎng)為8b時(shí),b取1?2--1之間循環(huán)變化的奇數(shù),測(cè)試得2級(jí)NRR 的周期為4,765440 >2"(64?。?。如果b取3?2--1之間循環(huán)變化的奇數(shù),周期更大。測(cè) 試表明,周期與寄存器的初值、循環(huán)移位數(shù)j的初值及乘法系數(shù)b的初值無(wú)關(guān)。
[0037] 對(duì)于周期達(dá)到最大的LFSR,其輸出狀態(tài)1?2D-1是絕對(duì)均勻的;對(duì)于周期達(dá)到最 大的NLFSR,其輸出狀態(tài)0?2"-1是絕對(duì)均勻的,遍歷了所有狀態(tài)才會(huì)重復(fù)。測(cè)試表明,NRR 產(chǎn)生的輸出是偽隨機(jī)均勻的,沒(méi)有遍歷所有狀態(tài)也可能出現(xiàn)重復(fù)。寄存器狀態(tài)重復(fù)不一定 是周期重復(fù),當(dāng)寄存器的狀態(tài)和循環(huán)移位數(shù)j的狀態(tài)W及乘法系數(shù)b的狀態(tài)同時(shí)重復(fù)才是 周期重復(fù)。因此,NRR的不可預(yù)測(cè)性和安全性優(yōu)于(N)LFSR。
[003引 NRR輸入的初始n個(gè)字a。?a。_1取值都不限。對(duì)于雜湊版sh)函數(shù)標(biāo)準(zhǔn)SHA1和 SHA2的消息擴(kuò)展算法,如果初始消息全為0,則擴(kuò)展消息也全為0。NRR不存在該問(wèn)題。
[0039] 另外,有個(gè)分組密碼算法叫RC6,需要5輪加密才能實(shí)現(xiàn)偽隨機(jī)性。其加密輪函數(shù) f (i,a, b,C,d)為;
[0040] {u = [d(2d+l) ] <<< 5 ;t =比(2b+l) ] <<< 5 ;a = [ (a_1:) <<< u]+k[i]; c = [(c_u) <<< 1:]+k[i+l] ;}
[0041] 用NRR直接取代2個(gè)緩存變量u和t,對(duì)d和b進(jìn)行可逆更新;
[0042] {t = d ;d = [ (t+1) < < < i]+b ;b = (d < < < ;〇+t+l ;a = [ (a_d) <<<b]+k[i] ;c= [(c_b) <<<d]+k[i+l] ;}
[0043] 5輪加密也實(shí)現(xiàn)了偽隨機(jī)性,該也說(shuō)明NRR具有良好的密碼特性。
[0044] 因此,流密碼算法SNRR的周期大于常用對(duì)稱密碼算法。從該方面講,SNRR的安全 性高于常用對(duì)稱密碼算法。
[0045] (2)效率更高。在32位平臺(tái)下(2. 4GHz雙核CPU、2GB內(nèi)存、Windows XP、C語(yǔ)言), NRR速度為700MB/S。常用(N)LFSR速度不超過(guò)630MB/S。
[0046] 單核時(shí),常用對(duì)稱密碼算法的速度不超過(guò)50MB/S ;雙核時(shí)不超過(guò)lOOMB/s。2GHz 單核時(shí),RC6_ECB的加密速度,即RC6-CTR和RC6-0FB產(chǎn)生密鑰流的速度為45MB/S ;RC4、 AES-CTR和AES-0FB產(chǎn)生密鑰流的速度為30MB/S。2. 4細(xì)Z雙核時(shí),AES-CTR和AES-0FB產(chǎn) 生密鑰流的速度為75MB/S。2GHz單核時(shí),SNRR產(chǎn)生密鑰流的速度為61MB/S ;2. 4GHz雙核 時(shí),SNRR產(chǎn)生密鑰流的速度為118MB/S。SNRR算法的4個(gè)NRR能并行處理,四核時(shí)效率達(dá) 到最佳,適合目前普遍使用的雙核四核計(jì)算機(jī)。
[0047] (3)多平臺(tái)適應(yīng)性更靈活。(腳LFSR軟件實(shí)現(xiàn)慢,解決的辦法是,平臺(tái)的位 數(shù)為m時(shí),并行m個(gè)㈱LFSR,相當(dāng)于字長(zhǎng)為m比特,但最大周期還是小于等于2",除 非象SNOW2-樣采用模2-的本原多項(xiàng)式,最大周期才小于等于(2-)n。也就是說(shuō),對(duì) 于不同的字長(zhǎng)m和不同的級(jí)數(shù)n,㈱LFSR要尋找不同的反饋模式。不管字長(zhǎng)m和 級(jí)數(shù)n為多大,NRR存在固定的反饋模式a,+,,={[(a, +。l<?y)?a,.]+c}mod2m和 幻,心={[(6><(3,+。-1)@的《<7)]+£;}1110(^2。',無(wú)須尋找達(dá)到最大周期的反饋模式,能直接適應(yīng) 各種平臺(tái),包括將來(lái)128位W上的平臺(tái)。
[0048] SNRR算法能直接擴(kuò)展成面向64位W上平臺(tái)的密碼算法,也能直接改成面向資源 受限的8位平臺(tái)算法。
【專利附圖】
【附圖說(shuō)明】
[0049] 圖1基于非線性循環(huán)移位寄存器的流密碼算法SNRR [0化日]說(shuō)明;?表示模加。
【具體實(shí)施方式】
[0化1] 本發(fā)明中的非線性循環(huán)移位寄存器NRR的【具體實(shí)施方式】是;當(dāng)字長(zhǎng)為m比特時(shí),n 級(jí)NRR采用W下反饋模式由前n個(gè)字a,?a 中的首尾2個(gè)字遞推下一個(gè)字a
[005引 幻,'+" = {[(幻,+n-i <?y)迅幻,' ]+ C } mod 2。'
[005引其中,n > 2,字長(zhǎng)m取平臺(tái)的位數(shù);<<< j表示循環(huán)左移j位,j在0?m-1之 間循環(huán)變化,即j = i mod m 表示模加;C為1?2-1之間的奇數(shù);輸入的初始n個(gè)字a。? 3。_1取值都不限,輸入的每個(gè)字都是任意m比特長(zhǎng)的數(shù)。
[0054] SNRR算法采用了 5個(gè)NRR,其中第1個(gè)NRR用于密鑰編排,另4個(gè)NRR的輸出進(jìn)行 模加來(lái)產(chǎn)生密鑰流。SNRR算法產(chǎn)生密鑰流的過(guò)程用KS = SNRR(K,IV)表示。其中輸入?yún)?數(shù)K為長(zhǎng)度化> 16B (字節(jié))的密鑰;IV是保密通信中用于抗重放攻擊的初始向量,與密 鑰K等長(zhǎng)。對(duì)于16B的密鑰和32位平臺(tái),將密鑰K和初值IV表示成4個(gè)32位字級(jí)聯(lián); [005引 K =化0 I I Ki I I 馬 IIIQ ;IV = (IV0 I I IVi I IIV2IIIV3)
[0056] SNRR算法中第1個(gè)NRR的初值為Aa= (a。I I aj I 321 I as) = K'IV。其反饋模式為;
[0057] aw= {[(a i巧<<< j)-a i]+l}mod 232,其中 i > 0,j = imod 32,-表示逐位異 或運(yùn)算。
[005 引另 4 個(gè) NRR 的初值分別為;B0=化。II bj I b21 I bs) = (awel I a側(cè) I k巧81 k 巧9);
[0059] D〇= (del |dj Idgl Ids) = (awo+Ks) I I (awi+K〇) I I (aw2+Ki) I I (aw3+K2);
[0060] E〇= (e J I ej I 621 I 63) = (aw4+K2) II (aws+Kg) I I (awe+K〇) I I (aw7+Ki);
[0061 ] F〇= (f。I I f J I fa I I fs) = (aw81 I aw91 I a;巧01 I a;巧 1)。
[0062] 對(duì)于i > 0,后4個(gè)NRR的反饋模式分別為:
[0063] b"4= {[化 i巧<<< j i)+bJ+:3}mod 232,其中 ji= i巧mod 32 ;
[0064] dw= {[(d i"<<< j 2)+di]+引mod 232,其中 j2= i+llmod 32 ;
[00(55] ew= {[(e iw<<< j 3)+eJ+7}mod 232,其中 j3= i+17mod 32 ;
[0066] f"4= {[(f "3<<< j4)+fi]+U}mod 232,其中 J.4= i+23mod 32。
[0067] SNRR算法的輸出密鑰流由后4個(gè)NRR的輸出進(jìn)行模加來(lái)產(chǎn)生; KS,.=化' 牛4 史 4 +4 宙 e, +4 苗乂 +4 )。
[0068] 流密碼算法SNRR的加密方式為:密文C = P'KS ;解密方式為;明文P = C'KS。
【權(quán)利要求】
1. 基于非線性循環(huán)移位寄存器NRR的流密碼算法SNRR,其總體特征是:采用了 5個(gè) NRR,其中第1個(gè)NRR用于密鑰編排,另4個(gè)NRR的輸出進(jìn)行模加來(lái)產(chǎn)生密鑰流KS,即
其中i彡 0,bi+4、di+4、ei+4、心+4分別為 4 個(gè)NRR的輸出,KS丨和bi+4、di+4、ei+4、fi+4都是 32 位數(shù)。
2. 根據(jù)權(quán)利要求1所述的流密碼算法SNRR,其采用的非線性循環(huán)移位寄存器NRR的特 征是:當(dāng)字長(zhǎng)為m比特時(shí),n級(jí)NRR采用以下反饋模式由前n個(gè)字ai?ai+Iri中的首尾2字 遞推下一個(gè)字ai+n
上式中,i彡〇,n彡2,字長(zhǎng)m取平臺(tái)的位數(shù);模運(yùn)算mod表示求余數(shù);<<<j表示循 環(huán)左移j位,j在0?m-1之間循環(huán)變化,即j=imodm; ?表示模加;c為1?2m-l之間 的奇數(shù);輸入的初始n個(gè)字%?an_i取值都不限,輸入的每個(gè)字都是任意m比特長(zhǎng)的數(shù)。
3. 根據(jù)權(quán)利要求1所述的流密碼算法SNRR,其產(chǎn)生密鑰流KS的過(guò)程用KS=SNRR(K, IV)表示;其中輸入?yún)?shù)K為長(zhǎng)度Lk彡16B(字節(jié))的密鑰;IV是保密通信中用于抗重放 攻擊的初始向量,與密鑰K等長(zhǎng);對(duì)于16B的密鑰和32位平臺(tái),將密鑰K和初值IV表示成 4個(gè)32份字級(jí)聯(lián):
SNRR算法中第1個(gè)NRR的特征是:初值為心=(a^ | | 1 |a21 |a3) =ITIV;其反饋模式 為:
【文檔編號(hào)】H04L9/06GK104486068SQ201410781810
【公開(kāi)日】2015年4月1日 申請(qǐng)日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】黃玉劃, 蘇菲, 陶怡婷, 汪駿, 丁莉莉 申請(qǐng)人:蘇州中科啟慧軟件技術(shù)有限公司