基于并行循環移位寄存器的流密碼技術sprr的制作方法
【專利摘要】移位寄存器是保密通信領域用于產生偽隨機序列的密碼部件,有線性反饋移位寄存器LFSR和非線性反饋移位寄存器NLFSR等,其最大周期T≤2n。n級并行循環移位寄存器PRR的反饋模式為:先求和:σ=ak n?1+…+ak n?n;然后并行計算n個字:For i=0 to n?1{j=kn+i;aj=[σ<<<(j mod m)]+aj?n+i}。其中,k≥1,<<<j表示循環左移j位,mod表示求余數,m取平臺的位數。字長為m位時,n級PRR和非線性循環移位寄存器NRR的周期都大于(2m)n,即安全性高于傳統(N)LFSR;PRR和NRR效率也高于常用(N)LFSR。采用1個PRR和4個NRR設計了一個流密碼SPRR,其中PRR用于密鑰編排,4個NRR的輸出進行模加產生SPRR的密鑰流。SPRR的效率高于常用對稱密碼,主要用于網絡與信息安全中的數據加解密。
【專利說明】
基于并行循環移位寄存器的流密碼技術SPRR 一、
技術領域
[0001] 基于并行循環移位寄存器PRR的流密碼SPRR是保密通信領域的一種對稱密碼,主 要用于網絡與信息系統安全中的數據加解密。 二、
【背景技術】
[0002] 密碼體制分為對稱密碼和非對稱密碼。由于非對稱密碼的加密速度遠小于對稱密 碼,因此網絡與信息系統安全中的數據加解密盡量采用對稱密碼,以提高效率。對稱密碼分 為流密碼和分組密碼,2種對稱密碼各有優缺點。設計流密碼的一種常用密碼部件是移位寄 存器,有線性反饋移位寄存器LFSR [1]和非線性反饋移位寄存器NLFSR[2]等,以下合稱(N) LFSR。例如,第2代移動通信系統GSM的加密標準A5算法[3'4]、藍牙加密標準E0算法 [4]和流密 碼國際標準SN0W2算法[3 ]都采用了 LFSR; Hash函數標準SHA1和SHA2的消息擴展算法[3 ]以及 第3代標準SHA3的多個候選算法采用了(N)LFSR或其它發生器。
[0003] η級(N)LFSR的當前輸出比特都是前η比特的邏輯函數,這樣的邏輯函數共有22"個, 其中線性的有2"個,非線性的有2 2"_2"個。LFSR采用以下反饋模式由前η比特apan+H線性 遞推下一比特an+i:
[0004] ?η+i - SLi Cn-lcli+1 ClEln+i-1
[0005] 其中,常數ck = 0或1,1彡k彡n-1,~是異或即模2加法。如果輸入的初始n比特a〇~ 全為0,則LFSR輸出恒為0,因此,η級LFSR的最大周期為2 n-l。當且僅當LFSR的反饋多項 式為本原多項式時,LFSR的周期才達到最大。產生一個本原多項式并不容易,需借助數學軟 件包。SHA1的消息擴展算法采用以下模式由前16個字遞推下一個字wt:
[0006] Wt= (Wt-3~Wt-8~Wt-14~Wt-16) < < < 1
[0007] 其中,<<<1表示循環左移1位,字長m為32b(比特)。這相當于字長m為32b的16級 發生器,如果輸入的初始16個字wo~w 15全為0,則輸出恒為0,因此,其最大周期小于等于 (232)16-Un級NLFSR的最大周期為2 n。并行循環移位寄存器PRR和非線性循環移位寄存器NRR 是2種新型反饋移位寄存器。當字長為m比特時,η級PRR和NRR的周期都大于(2m)'(N)LFSR軟 件實現慢,解決的辦法是并行m個(N)LFSR,相當于字長為m比特,但最大周期還是小于等于 2 n,除非象SN0W2-樣采用模2m的本原多項式,最大周期才小于等于(2T。也就是說,對于不 同的字長m和不同的級數n,(N)LFSR要尋找不同的反饋模式,周期才能達到最大。不管字長m 和級數η為多大,PRR和NRR存在統一的反饋模式,無須尋找達到最大周期的反饋模式,可以 直接適應各種平臺,包括將來128位以上的平臺。在32位平臺下(2.4GHz雙核CPU、2GB內存、 Windows XP、C語言),SN0W2的LFSR速度為630MB/s;SHAl和SHA256的消息擴展算法速度都小 于400MB/s; NRR的速度為700MB/s; PRR的速度達lGB/s。對于A5和E0算法采用的LFSR,除非同 時并行32個LFSR,效率才和NRR相當。對于周期達到最大的(N) LFSR,其輸出是絕對均勻的, 遍歷了所有狀態才會重復。測試表明,PRR和NRR產生的輸出是偽隨機均勻的,又能遍歷所有 狀態。
[0008] 本發明基于并行循環移位寄存器PRR和非線性循環移位寄存器NRR,設計了一種流 密碼SPRR。[ 1 ](美)Schneier B.應用密碼學--協議、算法與C源程序.吳世忠等譯.機械工 業出版社,2000-1 · 264~269
[0009] [2](中)王育民,劉建偉.通信網的安全一一理論與技術.西安電子科技大學出版 社,1999-04.81 ~82
[0010] [3](中)谷利澤,鄭世慧,楊義先.現代密碼學教程.北京郵電大學出版社,2009-08.169~175,189~204
[0011] [4](中)徐勝波,馬文平,王新梅.無線通信網中的安全技術.人民郵電出版社, 2003-07.149~150,183~187 三、
【發明內容】
[0012] 【發明目的】
[0013] 為了設計安全高效的對稱密碼算法,用于網絡與信息系統安全中的數據加解密, 基于并行循環移位寄存器PRR和非線性循環移位寄存器NRR的流密碼SPRR相比其它對稱密 碼而言,擴大了輸出序列的周期,增強了多平臺適應性,提高了效率。
[0014] 【技術方案】
[0015] 本發明中的非線性循環移位寄存器NRR采用的技術方案是:當字長為m比特時,η級 NRR采用以下反饋模式由前η個字的首尾2個字遞推下一個字a1+n
[0016]
[0017]其中,i^:0,n^:2,字長m取平臺的位數32;模運算mod表示求余數;<<< j表示循 環左移j位,j在0~m-1之間循環變化,即j = i modm; Φ表示模加;c為1~2m-1之間的奇數;輸 入的初始η個字ao~au取值都不限,輸入的每個字都是任意m比特長的數。
[0018] 本發明中的PRR和NRR與傳統的(N)LFSR不同之處在于:(1)循環移位數j循環變化; (2)計數加(:;(3)初值不受限。
[0019] 流密碼的加密方式為:密文C = P~KS;解密方式為:明文P = C~KS。其中KS為密鑰流, 所以其關鍵是如何產生密鑰流。SPRR算法采用了 1個PRR和4個NRR;其中PRR用于密鑰編排來 產生4個NRR的初值,而4個NRR的輸出進行模加來產生密鑰流。SPRR算法產生密鑰流的過程 用KS = SPRR(K,IV)表示。其中輸入參數K為長度Lk彡16B(字節)的密鑰;IV是保密通信中用 于抗重放攻擊的初始向量,與密鑰K等長。對于16B的密鑰和32位平臺,將密鑰K和初值IV表 示成4個32位字級聯:
[0020] κ=(κ〇| |Κι| |κ2| |k3);iv=(iv〇| |iVi| |ιν2| |ιν3)
[0021] SPRR算法中PRR的初值為Ao=(aQ| |ai| |a2| |a3)=K~IV。其反饋模式為:
[0022] For k = l to 19
[0023] {先求和:〇k = ak n-i+."+ak n-nmod 2m;其中k>l,n = 4,m = 32;
[0024] 然后并行計算4個字:For i = 0 to n_l{j = kn+i;aj=[0k<<<(j mod m)]+aj-n+ i mod 2m}}〇
[0025] 4個NRR的初值分別為:Bo= (ai+64+Ko) I I ai+681 I ai+721 I ai+751 I (ai+77+Κι);
[0026] Do= (ai+65+K2) I I ai+691 I ai+731 I (ai+76+K3);
[0027] Eo= (ai+66) I I (ai+7。)I I (ai+74);
[0028] Fo= (ai+671 I ai+71) 〇
[0029] 對于i多0,4個NRR的反饋模式分別為:
[0030] bi.5={[(bi.4<<<ji)+bi]+l}mod 232,其中ji = i+5mod 32;
[0031] di.4={[(di.3<<<j2)+di]+3}mod 232,其中j2 = i+llmod 32;
[0032] ei.3={[(ei.2<<<j3)+ei]+5}mod 232,其中j3 = i+17mod 32;
[0033] fi+2={[(fi+1<<<j4)+fi]+7}mod 232,其中j4=i+23mod 32〇
[0034] SPRR算法的輸出密鑰流由4個NRR的輸出進行模加來產生:KS, = (V4?A4?~4?#4)。
[0035] 【有益效果】
[0036] 相比常用對稱密碼,流密碼SPRR有以下優點:
[0037] (1)周期更大、安全性更高。由于循環移位數j不固定,字長為m比特時,η級NRR的周 期大于(2m)n。對于反饋模式a1+n=[(a1+n-2 m,當字長為8b(比特)時,測 試得2級NRSR的周期為484192>216B(字節);3級NRR的周期為81,782456>2 24(16MB);4級 NRR 的周期為 27,251403552>232(4GB)。當字長為 16b時,2 級NRR的周期為 37,540033008>4G 個短整數。測試表明,周期與寄存器的初值、循環移位數j的初值及乘法系數b的初值無關。 [0038]對于周期達到最大的LFSR,其輸出狀態1~2n_l是絕對均勻的;對于周期達到最大 的NLFSR,其輸出狀態0~2 n-l是絕對均勻的,遍歷了所有狀態才會重復。測試表明,NRR產生 的輸出是偽隨機均勻的,沒有遍歷所有狀態也可能出現重復。寄存器狀態重復不一定是周 期重復,當寄存器的狀態和循環移位數j的狀態以及乘法系數b的狀態同時重復才是周期重 復。因此,NRR的不可預測性和安全性優于(N)LFSR。
[0039] NRR輸入的初始η個字ao~an-!取值都不限。對于雜湊(Hash)函數標準SHA1和SHA2 的消息擴展算法,如果初始消息全為0,則擴展消息也全為(LNRR不存在該問題。
[0040] 另外,有個分組密碼叫RC6,需要5輪加密才能實現偽隨機性。其加密輪函數f(i,a, b,c,d)為:
[0041 ] {u= [d(2d+l )]<<<5;t = [b(2b+l )]<<<5;a=[(a't)<<<u]+k[i];c =
[(c'u)<<<t]+k[i+l] ;}
[0042] 用NRR直接取代2個緩存變量u和t,對d和b進行可逆更新:
[0043] {t = d;d=[(t+l)<<<i]+b;b=(d< < <i )+t+l ;a=[(a'd)<<<b]+k[i];c = [(c'b)<<<d]+k[i+l];}
[0044] 5輪加密也實現了偽隨機性,這也說明NRR具有良好的密碼特性。
[0045]因此,流密碼SPRR的周期大于常用對稱密碼。從這方面講,SPRR的安全性高于常用 對稱密碼。
[0046] (2)效率更高。在32位平臺下(2 · 4GHz雙核CPU、2GB內存、Windows XP、C語言),NRR 速度為700MB/S。常用(N) LFSR速度不超過630MB/S。
[0047] 單核時,常用對稱密碼的速度不超過50MB/s;雙核時不超過ΙΟΟΜΒ/sdGHz單核時, RC6-ECB的加密速度,即RC6-CTR和RC6-0FB產生密鑰流的速度為45MB/s;RC4、AES-CTR和 AES-0FB產生密鑰流的速度為30MB/S(32.4GHz雙核時,AES-CTR和AES-0FB產生密鑰流的速度 為75MB/s 2GHz單核時,SPRR產生密鑰流的速度為62MB/s; 2.4GHz雙核時,SPRR產生密鑰流 的速度為119MB/S。SPRR的4個NRR能并行處理,四核時效率達到最佳,適合目前普遍使用的 雙核四核平臺。
[0048] (3)多平臺適應性更靈活。(N)LFSR軟件實現慢,解決的辦法是,平臺的位數為m時, 并行m個(N)LFSR,相當于字長為m比特,但最大周期還是小于等于2n,除非象SN0W2-樣采用 模2m的本原多項式,最大周期才小于等于(2m)n。也就是說,對于不同的字長m和不同的級數 n,(N)LFSR要尋找不同的反饋模式。不管字長m和級數η為多大,NRR存在固定的反饋模式
£須 尋找達到最大周期的反饋模式,能直接適應各種平臺,包括將來128位以上的平臺。
[0049] SPRR能直接擴展成面向64位以上平臺的密碼算法,也能直接改成面向資源受限的 8位平臺算法。 四、
【附圖說明】
[0050]圖1基于并行循環移位寄存器的流密碼SPRR [0051 ] 說明:?表示模加;NRR為非線性循環移位寄存器。 五、
【具體實施方式】
[0052]本發明中的非線性循環移位寄存器NRR的【具體實施方式】是:當字長為m比特時,η級 NRR采用以下反饋模式由前η個字的首尾2個字遞推下一個字a1+n
[0053]
[0054] 其中,η彡2,字長m取平臺的位數32; < < < j表示循環左移j位,j在0~m-1之間循 環變化,即j = imod m; ?表示模加;c為1~2m_l之間的奇數;輸入的初始η個字ao~an-1取值 都不限,輸入的每個字都是任意m比特長的數。
[0055] SPRR采用了 1個PRR和4個非NRR,其中PRR用于密鑰編排來產生4個NRR的初值,而4 個NRR的輸出進行模加來產生密鑰流。SPRR產生密鑰流的過程用KS = SPRR(K,IV)表示。其中 輸入參數K為長度Lk多16B(字節)的密鑰;IV是保密通信中用于抗重放攻擊的初始向量,與 密鑰K等長。對于16B的密鑰和32位平臺,將密鑰K和初值IV表示成4個32位字級聯:
[0056] K=(Ko| |Ki| |K2| |K3);IV=(IVo| |IVi| |IV2| |IV3)
[0057] SPRR中PRR的初值為AQ=(ao| |ai| |a2| |&3)=1〇¥。其反饋模式為:
[0058] For k = l to 19
[0059] {先求和:〇k = akn-1+…+akn-nmod 2m;其中k^l,n = 4,m=32;
[0060] 然后并行計算4個字:F〇r i = 〇 to n_l {j = kn+i ;aj= [0k< < < (j mod m) ]+aj-n+ i mod 2m}}〇
[0061 ] 4個NRR的初值分別為:Bo= (ai+64+Ko) | | ai+681 | ai+721 | ai+751 | (ai+77+Κι);
[0062] Do= (ai+65+K2) | | ai+691 | ai+731 | (ai+76+K3);
[0063] Eo= (ai+66) | | (ai+7。)| | (ai+74);
[0064] Fo= (ai+671 | ai+71) 〇
[0065] 對于i多0,4個NRR的反饋模式分別為:
[0066] bi+5={[(bi.4<<<ji)+bi]+l}mod 232,其中ji = i+5mod 32;
[0067] di.4={[(di.3<<<j2)+di]+3}mod 232,其中j2 = i+llmod 32;
[0068] ei.3={[(ei.2<<<j3)+ei]+5}mod 232,其中j3 = i+17mod 32;
[0069] fi+2={[(fi+1<<<j4)+fi]+7}mod 232,其中j4=i+23mod 32〇
[0070] SPRR的輸出密鑰流由4個NRR的輸出進行模加來產生:KS,_ =汍+5 θ?/,·+4? ei+3 ? /+2)。
【主權項】
1. 基于并行循環移位寄存器PRR的流密碼SPRR,其總體特征是:采用了 1個PRR和4個非 線性循環移位寄存器NRR,5個寄存器的字長m均為32b (比特),級數η分別為4、5、4、3、2;其中 PRR用于密鑰編排來產生4個NRR的初倌,而4個NRR的輸出講行模加來產生密鑰流KS,即其中 i 彡 O,bi+5、cU+4、ei+3、fi+2分別為4 個NRR的輸出,KSi 和bi+5、cU+4、ei+3、fi+2 都是 32位數。2. 根據權利要求1所述的流密碼SPRR,其采用的非線性循環移位寄存器NRR的特征是: 當字長為m比特時,η級NRR采用以下反饋模式由前η個字的首尾2字遞推下一個 字&i+n上式中,i>〇,n彡2,字長m取平臺的位數32;模運算mod表示求余數;< < < j表示循環 左移j位,j在〇~m-Ι之間循環變化,即j = i mod m; ?表示模加;c為1~2m-l之間的奇數;輸 入的初始η個字ao~au取值都不限,輸入的每個字都是任意m比特長的數。3. 根據權利要求1所述的流密碼SPRR,其產生密鑰流KS的過程用KS = SPRR(K,IV)表示; 其中輸入參數K為長度Lk多16B(字節)的密鑰;IV是保密通信中用于抗重放攻擊的初始向 量,與密鑰K等長;對于16B的密鑰和32位平臺,將密鑰K和初值IV表示成4個32位字級聯: κ=(κ〇| |Κι| |κ2| |κ3);ιν=(ιν〇| |iVi| |iv2| |iv3) SPRR算法中PRR的特征是:初值為AQ=(ao| |ai| |a2| |a3)=K~IV;其反饋模式為: For k=l to 19 {先求和:〇k = akn-1+…+akn-nmod 2m;其中k彡 I,n = 4,m=32; 然后并行計算4個字:For i = 0 to n_l{j = kn+i;aj=[〇k<<<(j mod m)]+aj-n+i mod 2m}} 〇4. 根據權利要求3所述的流密碼SPRR,用于產生密鑰流KS的4個NRR的特征是: 其初值分別為Bo=(ai+64+K())| |ai+68| |ai+72! |ai+7s| |(ai+77+Ki); Do= (ai+65+K2) I I ai+69 I I ai+73 I I (ai+76+K3); Eo= (ai+66) I I (ai+70) I I (m+74); Fo= (ai+671 I ai+71) 對于i >0,4個NRR的反饋模式分別為 bi+5={[(bi+4<<<ji)+bi]+l}mod 232 ,其中ji=i+5 mod 32; di+4={[(di+3<<<j2)+di]+3}mod 232 ,其中j2=i+ll mod 32; ei+3={[(ei+2<<<j3)+ei]+5}mod 232 ,其中j3=i+17 mod 32; fi+2={[(fi+i<<<j4)+fi]+7}mod 232 ,其中j4=i+23 mod 32 SPRR算法的輸出密鑰流由4個NRR的輸出進行模加來產生:KS,_H5?忒+4Θ~ 3Θ/+2)。
【文檔編號】H04L9/06GK105897403SQ201610209831
【公開日】2016年8月24日
【申請日】2016年4月1日
【發明人】黃玉劃, 張寧, 代學俊, 蘇菲, 丁莉莉
【申請人】蘇州中科啟慧軟件技術有限公司