并行循環(huán)移位寄存器prr的制作方法
【專利摘要】移位寄存器是保密通信領(lǐng)域用于產(chǎn)生偽隨機(jī)序列的密碼部件,有線性反饋移位寄存器LFSR和非線性反饋移位寄存器NLFSR等,其最大周期T≤2n。字長為m比特時,令并行循環(huán)移位寄存器PRR的初值為a0~an-1,則用以下模式由前n字遞推后n字。先求和:akn=akn-1+…+akn-nmod 2m;其中k≥1,模運(yùn)算mod表示求余數(shù)。然后并行計(jì)算后n-1字:For i=1 to n-1{j=kn+i;aj=[akn<<<(j mod m)]+aj-n+i mod 2m}其中n≥2,m取平臺的位數(shù);<<<j表示循環(huán)左移j位;初值a0~an-1不限。字長為m比特時,n級PRR的周期大于(2m)n,即安全性高于(N)LFSR;PRR效率也高于(N)LFSR。主要用途:設(shè)計(jì)流密碼算法;設(shè)計(jì)分組密碼中的密鑰編排算法;設(shè)計(jì)Hash函數(shù)中的消息擴(kuò)展算法;擴(kuò)頻通信中用于提高可靠性。
【專利說明】并行循環(huán)移位寄存器PRR
【技術(shù)領(lǐng)域】
[0001] 并行循環(huán)移位寄存器PRR是保密通信領(lǐng)域用于產(chǎn)生非線性偽隨機(jī)序列的密碼部 件,主要用途:設(shè)計(jì)流密碼算法;設(shè)計(jì)分組密碼中的密鑰編排算法;設(shè)計(jì)雜湊(Hash)函數(shù)中 的消息擴(kuò)展算法;擴(kuò)頻通信中用于提高可靠性。
【背景技術(shù)】
[0002] 密碼編碼中產(chǎn)生偽隨機(jī)序列的常用密碼部件有線性反饋移位寄存器LFSR[1]和非 線性反饋移位寄存器NLFSR[2]等,以下合稱(N) LFSR。例如,第2代移動通信系統(tǒng)GSM的加 密標(biāo)準(zhǔn)A5算法[3'4]、藍(lán)牙加密標(biāo)準(zhǔn)E0算法[4]和流密碼國際標(biāo)準(zhǔn)SNOW2算法 [3]都采用了 LFSR ;Hash函數(shù)標(biāo)準(zhǔn)SHA1和SHA2的消息擴(kuò)展算法[3]以及第3代標(biāo)準(zhǔn)SHA3的多個候選算 法采用了(N) LFSR或其它發(fā)生器。
[0003] n級(N)LFSR的當(dāng)前輸出比特都是前n比特的邏輯函數(shù),這樣的邏輯函數(shù)共有2" 個,其中線性的有2"個,非線性的有22" _2"個。LFSR采用以下反饋模式由前n比特a,?au+H 線性遞推下一比特an+i:
[0004] an+i= a廠(^-而+廠… '。仏別
[0005] 其中,常數(shù)ck= 0或1,1彡k彡n-1,'是異或即模2加法。如果輸入的初始n比 特aQ?a n_i全為0,則LFSR輸出恒為0,因此,n級LFSR的最大周期為2 n-l。當(dāng)且僅當(dāng)LFSR 的反饋多項(xiàng)式為本原多項(xiàng)式時,LFSR的周期才達(dá)到最大。產(chǎn)生一個本原多項(xiàng)式并不容易, 需借助數(shù)學(xué)軟件包。SHA1的消息擴(kuò)展算法采用以下模式由前16個字wt_16?w t..:遞推下一 個字wt:
[0006] wt= (wt_3"wt_8"wt_ 14"wt_16) <<< 1
[0007] 其中,<<< 1表示循環(huán)左移1位,字長m為32比特。這相當(dāng)于字長m為32b(比 特)的16級發(fā)生器,如果輸入的初始16個字W(l?w 15全為0,則輸出恒為0,因此,其最大 周期小于等于(2 32) 16_1。n級NLFSR的最大周期為2n。當(dāng)字長為m比特時,n級并行循環(huán)移 位寄存器PRR的周期大于(2m)n。(N) LFSR軟件實(shí)現(xiàn)慢,解決的辦法是并行m個(N) LFSR,相 當(dāng)于字長為m比特,但最大周期還是小于等于2n,除非象SNOW2 -樣采用模2m的本原多項(xiàng) 式,最大周期才小于等于(2T。也就是說,對于不同的字長m和不同的級數(shù)n,(N)LFSR要 尋找不同的反饋模式。不管字長m和級數(shù)n為多大,NRSR存在統(tǒng)一的反饋模式,無須尋找 達(dá)到最大周期的反饋模式,可以直接適應(yīng)各種平臺,包括將來128位以上的平臺。在32位 平臺下(2. 4GHz 雙核 CPU、2GB 內(nèi)存、Windows XP、C 語言),SNOW2 的 LFSR 速度為 630MB/s。 SHA1和SHA256的消息擴(kuò)展算法速度都小于400MB/s。PRR的速度為700MB/S。對于A5和 E0算法采用的LFSR,除非同時并行32個LFSR,效率才和PRR相當(dāng)。對于周期達(dá)到最大的 (N) LFSR,其輸出是絕對均勻的,遍歷了所有狀態(tài)才會重復(fù)。測試表明,PRR產(chǎn)生的輸出是偽 隨機(jī)均勻的,又能遍歷所有狀態(tài)。
[0008] [1](美)Schneier B.應(yīng)用密碼學(xué)一一協(xié)議、算法與C源程序.吳世忠等譯.機(jī)械 工業(yè)出版社,2000-1. 264?269
[0009] [2](中)王育民,劉建偉.通信網(wǎng)的安全一一理論與技術(shù).西安電子科技大學(xué)出 版社,1999-04. 81 ?82
[0010] [3](中)谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學(xué)教程.北京郵電大學(xué)出版社, 2009-08. 169 ?175,189 ?204
[0011] [4](中)徐勝波,馬文平,王新梅.無線通信網(wǎng)中的安全技術(shù).人民郵電出版社, 2003-07. 149 ?150,183 ?187
【發(fā)明內(nèi)容】
[0012] 【發(fā)明目的】
[0013] 為了快速產(chǎn)生偽隨機(jī)性更好的輸出序列,用于設(shè)計(jì)安全高效的對稱密碼算法和雜 湊Hash函數(shù),并行循環(huán)移位寄存器PRR相比(N)LFSR而言,擴(kuò)大了輸出序列的周期,改善了 輸出的偽隨機(jī)性,增強(qiáng)了多平臺適應(yīng)性,提高了效率。
[0014] 【技術(shù)方案】
[0015] 并行循環(huán)移位寄存器PRR是一種新型移位寄存器,其采用的技術(shù)方案是:當(dāng)字長 為m比特時,令n級PRR的初值為aQ?a n_i,則PRR采用以下模式由前n個字遞推后n個字。
[0016] (1)先對前n個字求和:akn= (a 其中k彡1,模運(yùn)算mod表示 求余數(shù)。
[0017] (2)并行計(jì)算后 n-1 個字:Fori = lto n-1 {j = kn+i 叫=[a to< < < (j mod m)]+aj_n+i mod2m}
[0018] 其中,n彡2,字長m取平臺的位數(shù):<<< j表示循環(huán)左移j位:輸入的初始n個 字%?a n_i取值都不限,輸入的每個字都是任意m比特長的數(shù)。
[0019] PRR與(N)LFSR不同之處在于:(1)循環(huán)移位數(shù)j循環(huán)變化;(2)計(jì)數(shù)加i ;(3)寄 存器初值不受限。
[0020] 【有益效果】
[0021] 相比(N)LFSR而言,非線性循環(huán)移位寄存器(NRSR)有以下優(yōu)點(diǎn):
[0022] (1)周期更大、安全性更高。由于循環(huán)移位數(shù)L不固定,字長為m比特時,n級PRR的 周期大于(2m)n。對于并行模式a』=[akn<<< (j mod m)]+aj_n+i mod2m},當(dāng)字長為8b (比 特)時,測試得2級PRR的周期為227560 > 21? (字節(jié));3級PRR的周期為331,573248 > 2 24 (16MB)。對于并行模式a」=[ato<<< (j mod m)]+a」_n+j mod2m},當(dāng)字長為8b時,測 試得2級PRR的周期為8569856 > 2 16B ;3級PRR的周期為2639, 364096 > 2 24B。測試表 明,周期與寄存器的初值、循環(huán)移位數(shù)L的初值無關(guān)。
[0023] 對于周期達(dá)到最大的LFSR,其輸出狀態(tài)1?2n_l是絕對均勻的;對于周期達(dá)到最 大的NLFSR,其輸出狀態(tài)0?2n-l是絕對均勻的,遍歷了所有狀態(tài)才會重復(fù)。測試表明,PRR 產(chǎn)生的輸出是偽隨機(jī)均勻的,沒有遍歷所有狀態(tài)也可能出現(xiàn)重復(fù)。寄存器狀態(tài)重復(fù)不一定 是周期重復(fù),當(dāng)寄存器的狀態(tài)和循環(huán)移位數(shù)L的狀態(tài)同時重復(fù)才是周期重復(fù)。因此,PRR的 不可預(yù)測性和安全性優(yōu)于(N)LFSR。
[0024] PRR輸入的初始n個字aQ?a n_i取值都不限。對于Hash函數(shù)標(biāo)準(zhǔn)SHA1和SHA2的 消息擴(kuò)展算法,如果初始消息全為〇,則擴(kuò)展消息也全為0。PRR不存在該問題。
[0025] (2)效率更高。對于32位平臺、2GHz單核CPU(512MB內(nèi)存、Windows XP、C語言), PRR 速度為 760MB/s。對于 32 位平臺、2.4GHz 雙核 CPU (2GB 內(nèi)存、Windows XP、C 語言),PRR 速度為lGB/s。常用(N)LFSR速度不超過630MB/s。
[0026] (3)多平臺適應(yīng)性更靈活。(N)LFSR軟件實(shí)現(xiàn)慢,解決的辦法是,平臺的位數(shù)為m 時,并行m個(N) LFSR,相當(dāng)于字長為m比特,但最大周期還是小于等于2n,除非象SN0W2 - 樣采用模2m的本原多項(xiàng)式,最大周期才小于等于(2T。也就是說,對于不同的字長m和不同 的級數(shù)n,(N) LFSR要尋找不同的反饋模式。不管字長m和級數(shù)n為多大,NRSR存在固定的 反饋模式 &j= [akn<<< (j mod m)]+aj_n+i mod2m}和 a』=[akn<<< (j mod m)]+aj_n+j mod2m},無須尋找達(dá)到最大周期的反饋模式,可以直接適應(yīng)各種平臺,包括將來128位以上 的平臺。
【專利附圖】
【附圖說明】
[0027] 圖1并行循環(huán)移位寄存器PRR
[0028] 說明:n彡2,k彡l,l<i< n-1,j = kn+i ;<<< j表示循環(huán)左移j位,模運(yùn)算 mod表示求余數(shù),字長m取平臺的位數(shù)。
【具體實(shí)施方式】
[0029] 并行循環(huán)移位寄存器PRR是一種新型移位寄存器,其【具體實(shí)施方式】為:當(dāng)字長為m 比特時,令n級PRR的初值為aQ?a n_i,則PRR采用以下模式由前n個字遞推后n個字。
[0030] (1)先對前n個字求和:akn= (a 其中k彡1,模運(yùn)算mod表示 求余數(shù)。
[0031] (2)并行計(jì)算后 n-1 個字:Fori = lto n-1 {j = kn+i 叫=[a to< < < (j mod m)]+aj_n+i mod2m}
[0032] 其中,,彡2,字長m取平臺的位數(shù);<<< j表示循環(huán)左移j位;輸入的初始n個 字%?a n_i取值都不限,輸入的每個字都是任意m比特長的數(shù)。
[0033] 應(yīng)用時,對于具體的平臺,通過擴(kuò)展PRR的級數(shù)以提高效率。例如,對于四核平臺, 如果n mod4辛1,則將n級PRR擴(kuò)展成41+1級,這樣同時并行計(jì)算產(chǎn)生4個字。
【權(quán)利要求】
1. 并行循環(huán)移位寄存器PRR,其總體特征是:當(dāng)字長為m比特時,令n級PRR的初值為 a。?a n_i,則先對前n個字求和,即akn= 2m,其中k多1,模運(yùn)算mod表 示求余數(shù);然后并行計(jì)算出后n-1個字。
2. 根據(jù)權(quán)利要求1所述的并行循環(huán)移位寄存器PRR,其并行計(jì)算后n-1個字的模式為: For i = lto n-1 {j = kn+i ;aj= [akn<<< (j mod m)]+aj_n+i mod 2m} 其中,n多2,字長m取平臺的位數(shù);<<< j表示循環(huán)左移j位;輸入的初始n個字 %?a n_i取值都不限,輸入的每個字都是任意m比特長的數(shù)。
3. 根據(jù)權(quán)利要求1所述的并行循環(huán)移位寄存器PRR,其并行計(jì)算后n-1個字的模式為: For i = lto n-1 {j = kn+i ;aj= [akn<<< (j mod m)]+aj_n+j mod 2m} 其中,n多2,字長m取平臺的位數(shù);<<< j表示循環(huán)左移j位;輸入的初始n個字 %?a n_i取值都不限,輸入的每個字都是任意m比特長的數(shù)。
【文檔編號】H04L9/06GK104506303SQ201410809169
【公開日】2015年4月8日 申請日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】黃玉劃, 蘇菲, 陶怡婷, 丁莉莉, 汪駿 申請人:蘇州中科啟慧軟件技術(shù)有限公司