專利名稱:一種線性遞歸序列的生成方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別涉及一種基于快速實(shí)現(xiàn)的環(huán)z/(2e-l)上具有 復(fù)雜特征多項(xiàng)式的線性遞歸序列的生成方法及系統(tǒng)。
背景技術(shù):
序列密碼是密碼學(xué)的重要分支之一,它在軍事、外交、政府以及商業(yè)的通信安全領(lǐng) 域發(fā)揮著極為重要的作用。序列密碼設(shè)計(jì)的核心是如何快速生成安全的密鑰流。2000年以前,序列密碼設(shè)計(jì)的主要思想是線性序列源結(jié)合非線性改造,例如非 線性組合、非線性過濾和鐘控等。2000年以后,歐洲的NESSIE計(jì)劃和eSTREAM計(jì)劃對(duì)序列 密碼的發(fā)展起到了積極的推動(dòng)作用。尤其在eSTREAM計(jì)劃的帶動(dòng)下,序列密碼的整體設(shè)計(jì) 思想有了重大突破,各類型非線性序列源取代線性序列源占據(jù)主導(dǎo)地位。目前,對(duì)于序列密 碼設(shè)計(jì),業(yè)界通常認(rèn)為一個(gè)好的密碼體制應(yīng)采用具有豐富非線性結(jié)構(gòu)的序列源。由于進(jìn)位運(yùn)算,整數(shù)環(huán)Z模2e_l的剩余類環(huán)Z/(2e_l)(下述簡稱環(huán)Z/(2e_l),其 中e為大于1的整數(shù))上的線性遞歸序列是一類天然蘊(yùn)含豐富非線性結(jié)構(gòu)的序列源。環(huán) Z/(2e-l)上的任意元素a都有唯一的2-adic表示,即a = β0+&1 · 2+-+ae_1 · 2e-、其中 Bi e {0,1},0^ i^e-1.進(jìn)一步,環(huán)Z/(2e_l)上線性遞歸序列a可自然導(dǎo)出e條比特序 列生,&,. . .,I+其中互=^+B1 · 2+…+這· 因?yàn)槊恳槐忍匦蛄卸际怯善渌忍匦?列和遞歸運(yùn)算過程中產(chǎn)生的復(fù)雜進(jìn)位序列復(fù)合而成,從而天然蘊(yùn)含豐富的非線性結(jié)構(gòu)。環(huán) Z/(2e-l)上的本原序列,即極大周期的線性遞歸序列,具備諸多好的偽隨機(jī)性質(zhì),例如保熵 性,豐富的非線性結(jié)構(gòu)和幾乎平衡的元素分布等,是一類偽隨機(jī)性質(zhì)優(yōu)良的非線性序列源。環(huán)Z/(2e_l)上線性遞歸序列的傳統(tǒng)生成方式是基于單點(diǎn)反饋模式,即每加載一拍 時(shí)鐘周期,只反饋計(jì)算一個(gè)新元素。請(qǐng)參閱圖1,為現(xiàn)有技術(shù)中基于單點(diǎn)反饋模式的η級(jí)移 位寄存器的框圖;在該圖1中,Slri,Sn_2,...,S1, Stl是η個(gè)寄存器單元,每個(gè)寄存器單元可 存儲(chǔ)Z/(2e-l)上的一個(gè)元素,特征多項(xiàng)式f(x)用于反饋計(jì)算寄存器單元Slri在下一時(shí)刻的 值。設(shè)f (χ) = xn- (Cn^1 · Xlri+. · · +C1 · x+c0)其中Ci e Z/(2e-l),0 ^ i 彡 n_l,n 個(gè)寄存器單元 Slri,Sn_2,...,S1, S。在第 0 時(shí) 刻的值分別為an_i,an_2,. .. ,ai; a0,即移位寄存器的初始狀態(tài)為(a^,an_2,. .. ,ai;a0),則反 饋計(jì)算的下一拍新元素an = cn_! ·. . +C1 · a^Cg · a0 (mod 2e_l),下一時(shí)刻寄存器的狀態(tài)為(an,^v1,· · ·,a2, ),輸出端口輸出aQ。一般地,設(shè)第t 時(shí)刻的狀態(tài)為(an_1+t,an_2+t,... , a1+t, at),則反饋計(jì)算的下一拍新元素an+t = Clri · an_1+t+· · · +C1 · a1+t+c0 · at (mod 2e_l),下一時(shí)刻寄存器的狀態(tài)為(an+t,an_1+t,... , a2+t, a1+t),輸出端口輸出at ;按時(shí)鐘的 先后順序輸出端口輸出一條序列這,即互=(a。,a2,…),這稱為Z/(2e_l)上由f(x)= X1Hcv1 · χ""1+. · · +C1 · x+c0)生成的線性遞歸序列,f(x)稱為序列a的特征多項(xiàng)式。
設(shè)u e Z/(2e-l),u不但有前述的2-adic表示,還可以表示為
u = U0+U! · 2+· · · +IV1 · 2"1,u0, U1, ... , Ue^1 e {0,1,-1},稱集合{U(l,Ul,. . .,ue_J為元素u的三元表示,該集合中非零元的個(gè)數(shù)稱為其對(duì)應(yīng) 的三元表示的重量。稱元素U重量最小的三元表示為U的最小三元表示,其重量稱為U的 最小三元重量,記為W3 (U)。對(duì)于V (2e-l)上η次多項(xiàng)式f (x) = X1Hcv1 · Xlri+. . . +C1 · x+c0),記其最小三元重量為W3 (f(x)) =W3 (c0)+W3 (C1)+-+W3 (CnJ0特征多項(xiàng)式的最小 三元重量是衡量特征多項(xiàng)式生成序列的復(fù)雜度與輸出速度的有效度量。主要從下述兩方面 來衡量(1)最小三元重量與復(fù)雜度的關(guān)系設(shè)Z/(2e_l)上的序列互=(at)…以f (x) = X1Hcv1 · Xlri+. . . +C1 · x+c0)為特征多項(xiàng)式,即有an+t = Clri · an_1+t+· · · +C1 · a1+t+c0 · at (mod 2e_l), t 彡 0,其中cQ,Cl,...,Clri e Z/(2e_l)。顯然,f(x)的最小三元重量越大,則at+n與at+m, at+n_2,. . .,at的代數(shù)關(guān)系就越復(fù)雜,并且由a導(dǎo)出的e條比特序列生,&,. . . ,^1的非線性 結(jié)構(gòu)也越復(fù)雜。(2)最小三元重量與速度的關(guān)系由于Z/(2e_l)上乘法運(yùn)算的低效性,在軟件實(shí)現(xiàn)中,Z/(2e_l)上的乘法運(yùn)算是利 用循環(huán)移位和模的加法運(yùn)算來實(shí)現(xiàn)的。設(shè)u e z/(2e-l),其 2-adic 表示為 u = U0+Ul · 2+···+Ue^1 · 2e、其中 u。,U1, . · ·, Ue^1 e {0,1},用“ <<< ”表示e比特左循環(huán)移位運(yùn)算,即對(duì)于非負(fù)整數(shù)k有(u <<< k) = un_k+un_k+1 · 2+· · · +U0 · 2k+. · · +Un-H · 2e_1,從而u · 2k(mod 2W_1) = u <<< k.用‘5”表示對(duì)a逐比特取反運(yùn)算,即α =(I-^0) + {\-αχ)·2 + ... + {\-ae^)-2e~\從而-a (mod 2e-l) =a設(shè)ue z/(2e-l),u 的最小三元表示為{!!。,屮,· · ·,ue_J,記{u。,U1, · · ·,ue_J 中等 于1的元素集合為{ uiv Uiv ..., ’等于-1的元素集合為{ Ujv Uj2, ··., wJs},其中r+s = W3 (U),則u與V在Z/ (2e-l)中的乘積u · V按照以下方式實(shí)現(xiàn)(ν < &)+.··+ (V< /r) + ( V < J\) +...+( V < js),由此可見,u · ν至少需要W3(U)-I次Z/(2e_l)上的加法運(yùn)算和W3(U)-I次循環(huán)移 位運(yùn)算。對(duì)于單點(diǎn)反饋方式來說,給定序列旦的初態(tài)(^1Alrf,... ,a0),序列&按如下方式 遞歸生成an+t = Clri · an_!+t+. . . +C1 · a^t+Co · at (mod 2e_l), t 彡 0,
其中f(x) = X1Mcv1 .χ11-1+· · · +C1 -x+c0)是互的特征多項(xiàng)式,所以若f(x)的最小 三元重量為W,則每一次計(jì)算反饋元素at+n至少需要W-I次z/(2e-l)上的加法運(yùn)算和若干 次循環(huán)移位運(yùn)算。因此,序列特征多項(xiàng)式的最小三元重量越大,單點(diǎn)反饋方式的效率越低。由上述兩點(diǎn)分析可知,環(huán)Z/(2e_l)上基于單點(diǎn)反饋模式的線性遞歸序列生成方式 勢(shì)必導(dǎo)致輸出序列的復(fù)雜度與序列的輸出效率處于強(qiáng)烈的矛盾中,無法同時(shí)兼顧序列的復(fù) 雜度和序列的輸出效率。當(dāng)序列特征多項(xiàng)式的最小三元重量稍大時(shí),這種生成方式的效率 將非常低,導(dǎo)致序列的輸出速度遠(yuǎn)遠(yuǎn)不能滿足序列密碼設(shè)計(jì)的要求
發(fā)明內(nèi)容
本發(fā)明提供一種線性遞歸序列的生成方法及系統(tǒng),以實(shí)現(xiàn)快速生成Z/(2e_l)上具 有復(fù)雜特征多項(xiàng)式的線性遞歸序列,并提高線性遞歸序列的輸出效率。為解決上述技術(shù)問題,本發(fā)明提供一種線性遞歸序列的生成方法,基于環(huán)Z/ (2e-l)上具有復(fù)雜特征多項(xiàng)式的線性遞歸序列的生成,所述方法包括選取參數(shù)e和n,e和η均為大于或等于2的正整數(shù),其中,e用于確定寄存器中元 素的取值空間,η為寄存器的總長度;確定寄存器中反饋位置的個(gè)數(shù)k ;其中,2彡k彡η ;根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合U1, i2,..., ik_1; ik},其中,ik = n-1,0 ^ I1 < i2‘ ( n-2 ;根據(jù)所述反饋位置集合U1, i2,..., ik_1; ik}選取寄存器的狀態(tài)轉(zhuǎn)移矩陣;選取寄存器非退化的初始狀態(tài)向量Stl = (s0j0, slj0, ...,s^,。),其中,Si,Q e Z/ (2e-l),i = 0,1,…,n-1 ;根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,0, . . .,Si^q)進(jìn)行遞歸 計(jì)算,得到寄存器的狀態(tài)向量序列 S= (SojS1,...) = (St)t&Q= ((s0,t, sljt, ...,Sn^1, t))
t ^ 0°相應(yīng)的,本發(fā)明還提供一種線性遞歸序列的生成系統(tǒng),基于環(huán)τι(X-X)上具有復(fù) 雜特征多項(xiàng)式的線性遞歸序列的生成,所述系統(tǒng)包括參數(shù)選擇單元,用于選取參數(shù)e和n,e和η均為大于或等于2的正整數(shù),其中,e 用于確定寄存器中元素的取值空間,η為寄存器的總長度;位置個(gè)數(shù)確定單元,用于確定寄存器中反饋位置的個(gè)數(shù)k ;其中,2 < k^n;反饋位置集合確定單元,用于根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合U1, i2, · · · , ik_i; ik},其中,ik = n-1,0 < “ < i2 <...< Ik^1 ^ n-2 ;狀態(tài)轉(zhuǎn)移矩陣選取單元,用于根據(jù)所述反饋位置集合U1, i2,..., ik_1; ik}選取寄 存器的狀態(tài)轉(zhuǎn)移矩陣;非退化初始狀態(tài)向量選取單元,選取寄存器非退化的初始狀態(tài)向量Stl = (s0,0, S1,
0,· · ·,Sn-U),其中,Si, e z/(2e-l), i = 0,1,... ,n-1 ;狀態(tài)向量序列生成單元,用于根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,0, Sn^1,0)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S = (S0, S1,...) = (St)
t ^ O — ((S0,t,Sl,t,· · ·,Sn-l,t))t》0o由上述技術(shù)方案可知,本發(fā)明將傳統(tǒng)的單點(diǎn)反饋模式拓展為多點(diǎn)反饋模式,增加反饋元素的個(gè)數(shù);并通過選取合適的狀態(tài)轉(zhuǎn)移矩陣,加速寄存器元素之間的混亂和擴(kuò)散,以 實(shí)現(xiàn)在有限的計(jì)算資源下獲得具有復(fù)雜特征多項(xiàng)式的序列。由于本發(fā)明提供的基于狀態(tài)轉(zhuǎn) 移的多點(diǎn)反饋實(shí)現(xiàn)方式的序列輸出速度不是由序列特征多項(xiàng)式的復(fù)雜度直接決定,因此, 本發(fā)明所述技術(shù)方案可以兼顧序列的輸出效率和序列的復(fù)雜度,從而提高了線性遞歸序列 的輸出效率。
圖1為現(xiàn)有技術(shù)中基于單點(diǎn)反饋模式的η級(jí)移位寄存器的框圖; 圖2為本發(fā)明提供的一種線性遞歸序列的生成方法的流程圖;圖3為本發(fā)明中環(huán)Z/(2e_l)上η級(jí)k點(diǎn)反饋方式第t時(shí)刻寄存器狀態(tài)示意圖;圖4為本發(fā)明中參數(shù)ai2,..., aik_v 元素列表示意圖;圖5為本發(fā)明中環(huán)Z/(232-l)上8級(jí)寄存器的示意圖;圖6為本發(fā)明中將環(huán)Z/(232-l)上8級(jí)的移位寄存器分成兩部分的示意圖;圖7為本發(fā)明中環(huán)Z/(232-l)上8級(jí)兩點(diǎn)反饋方式生成序列的設(shè)計(jì)示意圖;圖8為本發(fā)明中環(huán)Z/(232-l)上8級(jí)四點(diǎn)反饋方式生成序列的設(shè)計(jì)示意圖;圖9為本發(fā)明提供的一種線性遞歸序列生成系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了便于本領(lǐng)域技術(shù)人員的理解,在說明本發(fā)明具體實(shí)例之前,先介紹本發(fā)明涉 及的名詞術(shù)語及概念代數(shù)中環(huán)的概念“環(huán)”是代數(shù)學(xué)中的一個(gè)基本概念,“環(huán)”可以一般地理解為是一 個(gè)集合,在這個(gè)集合上定義了兩種具有某些性質(zhì)的運(yùn)算。整數(shù)環(huán)Z =Z表示所有整數(shù)構(gòu)成的集合,在整數(shù)的加法和乘法運(yùn)算下構(gòu)成一個(gè)環(huán), 稱為整數(shù)環(huán)。數(shù)論中同余的概念設(shè)a,b是整數(shù),η是正整數(shù),符號(hào)“a ^ b (mod η) ”表示a_b被 η整除,即a-b是η的倍數(shù),也即存在整數(shù)k,使得a-b = k · η。對(duì)于任意的整數(shù)a,在集合{0,1,2,...,n-l}中,必然存在唯一的元素b,使得a = b (mod η),稱b為a模η的最小非負(fù)剩余,由于集合{0,1,2,...,η_1}在模η的加法和乘法 (即先進(jìn)行整數(shù)的加法/乘法運(yùn)算,然后將運(yùn)算值模η,使得計(jì)算結(jié)果在集合{0,1,2,..., η-1},例如11+22 三 3(mod 15),1-5 三 11 (mod 15) ,4 ·5 = 5 (mod 15))下構(gòu)成環(huán),因此,稱 集合{0,1,2,. . .,n-1}以及模η的加法運(yùn)算和乘法運(yùn)算構(gòu)成整數(shù)環(huán)Z模η的剩余類環(huán)(有 時(shí)也簡稱模η的剩余類環(huán)/剩余類環(huán)),并記為Z/ (η),稱{0,1,2,...,n-1}為Z/ (η)的一 個(gè)代表元集。同理,{1,2,...,η}也可看作Z/(η)的一個(gè)代表元集,S卩,以上關(guān)于{0,1,. . .,η_1} 的討論完全適用于{1,2,...,η}。在本發(fā)明中,為了達(dá)到快速實(shí)現(xiàn)模2e_l的運(yùn)算,建議選{1,2,...,2e_l}為Z/ (2e-l)的代表元集。環(huán)Z/(2e_l)上移位寄存器還以圖1為例,圖1為環(huán)Z/(2e_l)上η級(jí)移位寄存器框圖。在圖1中,Slri,Sn_2,...,S1, Stl是η個(gè)寄存器單元,每個(gè)寄存器單元可存儲(chǔ)z/(2e-l) 上的一個(gè)元素,特征多項(xiàng)式f(x)用于反饋計(jì)算寄存器單元Slri在下一時(shí)刻的值。設(shè)f (χ) = xn- (Cn^1 · Xlri+. · · +C1 · x+c0)其中,Cie Z/(2e_l),0 彡 i 彡 n_l,n 個(gè)寄存器單元 Sn+Sm,···,SpS。在第0 時(shí) 刻的取值分別為an_i,an_2,. .. ,ai; a0,即移位寄存器的初始狀態(tài)為(a^,an_2,. .. ,ai;a0),則 反饋計(jì)算的下一拍新元素an = cn_! ·. . +C1 · a^Cg · a0 (mod 2e_l), 下一時(shí)刻寄存器的狀態(tài)為(an,^v1,· · ·,a2, ),輸出端口輸出aQ。一般地,設(shè)第t 時(shí)刻的狀態(tài)為(an_1+t,an_2+t,... , a1+t, at),則反饋計(jì)算的下一拍新元素an+t = Clri · an_1+t+· · · +C1 · a1+t+c0 · at (mod 2e_l),下一時(shí)刻寄存器的狀態(tài)為(an+t,an_1+t,... , a2+t, a1+t),輸出端口輸出at.輸出端口 按時(shí)鐘的先后順序輸出一條序列這,即互=(a0, ai; a2,...),這稱為Z/(2e-l)上由f(x)= X1Hcv1 · χ""1+. · · +C1 · x+c0)生成的線性遞歸序列,f(x)稱為序列a的特征多項(xiàng)式。環(huán)Z/(2e_l)上序列的2-adic分解設(shè)a e Z/(2e_l),則a有如下的2-adic (二進(jìn) 制)分解,a = a0+a! · 2+. . . +a— · 2e_1,其中ai的取值為0或1,設(shè)a = (a(t))t&Q是環(huán)Z/(2e-l)上的序列,將序列a的 每個(gè)元素進(jìn)行2-adic分解,如a (0) = a0 (0) +B1 (0) · 2+· · · +a^ (0) · 2"1,a(l) = a0(l)+B1(I) · 2+. . . +Be^1(I) · 2e-1,a (2) = a0(2)+ai (2) · 2+· · · +Be^1 (2) · 2"1,......記Bi = (a“t))…,0彡i < e-1,則由是一條取值為0或1的序列(即比特序 列)。因此,環(huán)Z/(2e_l)上的任一條序列均可自然導(dǎo)出e條比特序列。下面我們將結(jié)合附圖,對(duì)本發(fā)明的實(shí)施方案進(jìn)行詳細(xì)描述。需要說明的是,下述寄 存器和移位寄存器不是同一實(shí)體,因?yàn)榉答佄恢檬且莆粩帱c(diǎn)。請(qǐng)參閱圖2,為本發(fā)明提供一種線性遞歸序列的生成方法的流程圖,該方法可生成 基于環(huán)Z/(2e-l)上具有復(fù)雜特征多項(xiàng)式的線性遞歸序列,所述方法包括步驟201 選取參數(shù)e和n,e和η均為大于或等于2的正整數(shù),其中,e用于確定 寄存器中元素的取值空間,η用于確定寄存器的總長度;步驟202 確定寄存器中反饋位置的個(gè)數(shù)k,2 < k < η,具體包括將η級(jí)寄存器分 成k部分,形成k個(gè)位置反饋點(diǎn),k個(gè)寄存器的長度之和等于η。步驟203 根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合Upi2,... ,ik+ij,其 中,ik = n-1,0 ^ I1 < i2‘ 彡 n_2 ;步驟204 根據(jù)所述反饋位置集合U1, i2, ... , ik_1; ik}選取寄存器的狀態(tài)轉(zhuǎn)移矩 陣;步驟205 選取寄存器非退化的初始狀態(tài)向量Stl = (s0j0, S1,。,... , Slri,Q),即對(duì)于 2e-l的每個(gè)素因子p,至少有一個(gè)Si,Q與ρ互素,其中Si,0 e Z/(2e-l), i = 0,1,...,n_l ;步驟206 對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,。,... , Sn^1,0)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列 S= (SojS1,...) = (St)t&0= ((s0jt,sljt,...,sn_ljt))t&0O 優(yōu)選的,所述選取參數(shù)e包括按照計(jì)算機(jī)平臺(tái)的整數(shù)運(yùn)算的字長來選取參數(shù)e ; 所述選取參數(shù)η包括使e · η的取值等于安全強(qiáng)度參數(shù)或者等于安全強(qiáng)度參數(shù)的倍數(shù)。優(yōu)選的,若當(dāng)前主流計(jì)算機(jī)的字長為32比特,選取參數(shù)e = 32,則依據(jù)當(dāng)前安全強(qiáng) 度,選取參數(shù)η = 8,12或16。優(yōu)選的,為了保證序列的生成效率,所述反饋位置個(gè)數(shù)k可以選取{2,3,4},以保 證序列的生成效率。優(yōu)選的,根據(jù)所述反饋位置集合Upi2,... ,ik+ik}確定k個(gè)移位寄存器的級(jí)數(shù), 分別為 ii+1,I2-I1, ... , n-l-in,使得所述 ii+1,I2-I1, ... , n-l-in,級(jí)數(shù)盡量相同。優(yōu)選的,在確定該寄存器的狀態(tài)轉(zhuǎn)移矩陣時(shí),矩陣中出現(xiàn)的非0元素盡量選取形 如(ai+...+as) · Od1+. ..+bt)和_(1+2、)(1+2、...(1+2、)的整數(shù)。該實(shí)施方式提供一種可快速實(shí)現(xiàn)環(huán)z/(2e-l)上具有復(fù)雜特征多項(xiàng)式的線性遞歸 序列的生成方法。也即是提供一種基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式,其主要包括a、將傳 統(tǒng)的單點(diǎn)反饋模式拓展為多點(diǎn)反饋模式,增加反饋元素的個(gè)數(shù);b、通過選取合適的狀態(tài)轉(zhuǎn) 移矩陣,加速寄存器元素之間的混亂和擴(kuò)散,以期望在有限的計(jì)算資源下獲得具有復(fù)雜特 征多項(xiàng)式的序列。本發(fā)明提供的基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式,由于增加了反饋元素個(gè)數(shù),力口 速了移位寄存器元素之間的混亂和擴(kuò)散,可以快速實(shí)現(xiàn)具有復(fù)雜特征多項(xiàng)式的序列。其中, 基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式將單點(diǎn)反饋方式用于計(jì)算一個(gè)反饋元素所需的計(jì)算資 源平均分配到多個(gè)反饋元素的計(jì)算上,在同樣的計(jì)算資源前提下,序列特征多項(xiàng)式的復(fù)雜 度遠(yuǎn)高于單點(diǎn)反饋方式所產(chǎn)生序列的特征多項(xiàng)式。本發(fā)明提供的基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋 實(shí)現(xiàn)方式的序列輸出速度不是由序列特征多項(xiàng)式的復(fù)雜度直接決定,因此,本發(fā)明所述技 術(shù)方案可以兼顧序列的輸出效率和序列的復(fù)雜度。為了便于本領(lǐng)域技術(shù)人員的理解,下面具體來說明。本發(fā)明提供線性遞歸序列的生成方法為“Z/(2e_l)上本原序列多點(diǎn)反饋生成方 式”,具體生成方法包括1)選取參數(shù)e和n,參數(shù)e* η都是大于或等于2的正整數(shù)。其中,參數(shù)e確定了 寄存器中的元素的取值空間,寄存器中的元素取自環(huán)Z/(2e-l),并且其上的運(yùn)算都是在模
上的;參數(shù)e的選擇是按照計(jì)算平臺(tái)的整數(shù)運(yùn)算的字長來設(shè)定的。例如,當(dāng)前主流計(jì)算 機(jī)的字長為32比特,選取參數(shù)e = 32,這樣可以充分利用32比特整數(shù)運(yùn)算的特性,快速實(shí) 現(xiàn)模232-1運(yùn)算。另外,對(duì)于專用硬件平臺(tái),字長可以根據(jù)需求設(shè)定。參數(shù)η表示寄存器的 總長度,即一個(gè)狀態(tài)包含元素的個(gè)數(shù)。2)選取合適的反饋位置個(gè)數(shù)k,其中2η。通常情況下,反饋位置越多,該寄 存器生成的序列的復(fù)雜度越高。這是因?yàn)椋答佄恢玫男略夭⒉皇窍噜徳亟?jīng)過簡單的 移位得到,而需要經(jīng)過比較復(fù)雜的運(yùn)算(由抽頭位置和特征多項(xiàng)式?jīng)Q定)得到。但是,反饋 位置越多,計(jì)算量越大,從而影響序列的生成效率。因此,在具體實(shí)施過程中,對(duì)反饋位置個(gè) 數(shù)要折中考慮。3)根據(jù)所述反饋位置個(gè)數(shù)k選取合適的反饋位置集合U1, i2,..., ik_1; ik},其中
ik = n-1,0 ^ I1 < i2 <·..< I^1 ^ n_2。
如2)中所述,假設(shè)選取反饋位置個(gè)數(shù)為k,進(jìn)一步,設(shè)這k個(gè)反饋位置為 i2,... , ik-i; ik,其中ik = n-1,0 ^ I1 < i2 <-< 彡n_2,那么它們就構(gòu)成了反饋位置 4)根據(jù)所述反饋位置集合U1, i2,..., ik_1; ik}選取寄存器的狀態(tài)轉(zhuǎn)移矩陣M 設(shè)其中my e z/(2e-l),0 彡 i,j 彡 n_l,a。,Q1,..., QiriSM的η個(gè)行向量(即 a j = (mj,0, mja, ... , Hijjn^1), j = 0,1, ... , η-1),如 3)中所述,假設(shè)反饋位置集合為 U1,
ik-!, ik},則M的行向量滿足以下兩個(gè)性質(zhì) (b)行向量0^,01/2,…,CXa的元素選自z/(2e-l),滿足使得M的特征多項(xiàng)式fM(x) =XE-MI是z/(2e-l)的η次本原多項(xiàng)式(即對(duì)于整數(shù)的任意大于1的素?cái)?shù)方冪因子 Pw, f (x) (mod P”的最小正周期為T = Pw-1 · (Pn-I),或者說,整數(shù)T是使得Xt三1 (modf (χ), Pw)成立的最小正整數(shù)),其中E是η級(jí)單位矩陣,|ΧΕ-Μ|是η階方陣χΕ-Μ的行列式。M的 特征多項(xiàng)式是每個(gè)移位寄存器所產(chǎn)生序列的特征多項(xiàng)式,它可以決定序列的周期、線性復(fù) 雜度等諸多重要性質(zhì)。5)根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣選取非退化的初始狀態(tài)向量Stl= (s0,0,slj0,... ,sn_lj0), 即對(duì)于2e-l的每個(gè)素因子p,至少有一個(gè)Si,Q與ρ互素,其中Si,Q e Z/ (2e-l) ,i = 0,l,...,6)對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,0, S1^ci)進(jìn)行遞歸計(jì)算,得到寄存器的 狀態(tài)向量序列 S= (So, S1, ...) = (St)t&0= ((S0,t,Sl,t,...,Sn-^Dco,其中,可以按照 下述遞歸方式生成該狀態(tài)向量序列首先,給定初始狀態(tài)Stl = (s0,0, slj0, ...,Sn.),即第i個(gè)寄存器存儲(chǔ)Si,。, 0彡i彡η-1 ;然后,由S。計(jì)算 S1 = (s。,” Sia,· · ·,Sm1); 其中,加法和乘法運(yùn)算都是環(huán)Z/(2e_l)上運(yùn)算。同理,再由S1求S2,S2求S3,如此 遞歸下去 序列由=(Sjj0jSjajSjj2,...)= (Sj,t)t&Q 為 Z/(2e_l)上以 fM(x)為特征多項(xiàng)式的 本原序列,j =0,1,...,n-l。所有以fM(x)為特征多項(xiàng)式的本原序列之集記為G' (fM(x), 2e-l),其中序列都能以M為狀態(tài)轉(zhuǎn)移矩陣來產(chǎn)生。由上述方法得到的Z/(2e_l)上本原序列集G' (fM(x),2e-l)可以用作流密碼的序 列源。下面對(duì)環(huán)Z/(2e_l)上線性遞歸序列多點(diǎn)反饋生成方式做幾點(diǎn)補(bǔ)充說明在上述生成方法中,對(duì)于參數(shù)e和η的選取1)參數(shù)e的選擇,通常按照計(jì)算平臺(tái)的整數(shù)運(yùn)算的字長設(shè)定。例如,當(dāng)前主流計(jì)算 機(jī)的字長為32比特,選取參數(shù)e = 32,可以充分利用32比特整數(shù)運(yùn)算的特性,快速實(shí)現(xiàn)模 232_1運(yùn)算。另外,對(duì)于專用硬件平臺(tái),字長可以根據(jù)需求設(shè)定。此時(shí)可以選擇參數(shù)e = 29, 它可以避免出現(xiàn)同一條序列不同權(quán)位的平移等價(jià)情況。參數(shù)η的選擇,通常使得e ·η的取值等于安全強(qiáng)度參數(shù)或者等于安全強(qiáng)度參數(shù)的 2倍左右。若e · η的取值等于安全強(qiáng)度參數(shù),則需要同時(shí)使用兩個(gè)不同的這樣參數(shù)的序列 源。當(dāng)前主流計(jì)算機(jī)的字長為32比特,選取參數(shù)e = 32。依據(jù)當(dāng)前安全強(qiáng)度,選取參 數(shù)η = 8,12或16。但并不限于此。2)模2e_l的代表元集選取通常情況下建議取模2e_l的代表元集合為{1,2,. . .,2e_l},但并不限于此。采用該代表元集,可以快速實(shí)現(xiàn)Z/(2e_l)上元素的模運(yùn)算。模運(yùn)算結(jié)果只要落入 e比特表示的范圍內(nèi),模運(yùn)算就結(jié)束了。若采用常用的代表元集合{0,l,...,2e_2},模運(yùn)算 結(jié)果落入e比特表示的范圍內(nèi);之后還需要判斷結(jié)果是否是2e_l,若是,需要將其置0,增加 了額外的運(yùn)算開銷;也就是說,每次加法運(yùn)算,使用{0,l,...,2e-2}比使用{l,2,...,2e-l} 多1 2個(gè)步驟,即判斷某元素是否等于2e-l,如果是,將寄存器中元素重新設(shè)為零。因此, 不論是硬件還是軟件,使用代表元集{1,2,. . . ,2e-2}實(shí)現(xiàn)效率應(yīng)該更高。3)狀態(tài)轉(zhuǎn)移矩陣M的選取3. 1)反饋位置個(gè)數(shù)k (簡稱為參數(shù)k)的選取通常情況下,建議參數(shù)k在{2,3,4}中選取。參數(shù)k是反饋位置的數(shù)量,即所有寄存器狀態(tài)更新一次,通過一系列環(huán)Z/(2ε_(tái)1) 上運(yùn)算產(chǎn)生新元素的個(gè)數(shù)。一方面,每產(chǎn)生一個(gè)新元素至少需要1次乘法運(yùn)算或取反運(yùn)算 或加法運(yùn)算,因此,反饋位置的數(shù)量與寄存器狀態(tài)更新的計(jì)算復(fù)雜度緊密相關(guān),如果反饋位 置個(gè)數(shù)太多不利于序列的快速生成,因此,要適當(dāng)選擇反饋位置的個(gè)數(shù)。3. 2)反饋位置集合U1, i2, ... , ik_J的選取(簡稱反饋位置參數(shù)U1, i2,...,
ik-J)
通常情況下,建議選取反饋位置參數(shù)U1, i2, ... , ik_J使得“+I,I2-I1,..., n-1-i^盡量相同。根據(jù)反饋位置參數(shù)U1, i2,..., ik_1; ik},序列源的以e比特字為單位且長為η的 狀態(tài)寄存器可以看做被分割為k個(gè)長度分別為h+1,I2-I1, n-1-i^的移位寄存器,如 圖3所示,為本發(fā)明中環(huán)Z/(2e-l)上η級(jí)k點(diǎn)反饋方式第t時(shí)刻寄存器狀態(tài)示意圖。圖3 中,1標(biāo)號(hào)表示長為的移位寄存器在第t時(shí)刻的狀態(tài);標(biāo)號(hào)2表示長為i2_ii的移位寄 存器在第t時(shí)刻的狀態(tài);標(biāo)號(hào)3表示長為n-1-iH的移位寄存器在第t時(shí)刻的狀態(tài);標(biāo)號(hào)4 表示移位寄存器元素移動(dòng)方向;標(biāo)號(hào)5表示反饋位置I1 ;標(biāo)號(hào)6表示反饋位置i2 ;標(biāo)號(hào)7表 示反饋位置n-1 ;也即反饋位置ik。圖3中,若i2,. . .,ik_i;n-l之間的間隔相同,則序列源實(shí)現(xiàn)結(jié)構(gòu)具有 對(duì)稱性,k 條序列由=(Sj,t)t&0, j e {0,ii+1,... , i^+1}具有相似的密碼性質(zhì)和代數(shù)性質(zhì),有利于 密碼應(yīng)用。3. 3)參數(shù)α /的非零分量位置的選取,其中j = 1,2,. . .,k.因?yàn)樾邢蛄縜i2, aik_v Ot0c的非零分量位置分別是所示k個(gè)反饋位置“, i2,...,ik-i,ik在全體η個(gè)寄存器上所選擇的反饋抽頭,也即η個(gè)寄存器上參與反饋運(yùn)算 的元素,所以,為了使每一個(gè)寄存器中的元素都至少參與到一個(gè)反饋計(jì)算中,在如圖4所示 的每一列元素中至少有1個(gè)為非零元;為了盡量避免某一個(gè)寄存器中的元素參與多個(gè)反饋 元素的計(jì)算,通常情況如圖4所示的每一列非零元不要太多,盡量不要多于兩個(gè)非零元,其 中,圖4為本發(fā)明中參數(shù)αφ ai2, aik_v 元素列表示意圖。3.4)參數(shù)的非零分量值的選取,其中j = 1,2, ...,k.行向量α , ai2,…, 0^_i,O^t非零分量的取值要兼顧序列輸出速度和序列特征多項(xiàng)式的復(fù)雜度。行向量 (Χφ ai2,…,aik_v O^非零分量的取值按照以下原則確定(1)為了盡可能地提高序列源的狀態(tài)更新速度,應(yīng)選用Z/(2e_l)中具有低三元重 量的整數(shù);(2)為了使反饋運(yùn)算達(dá)到較好的混亂效果,非零分量的最小三元表示中所有2的 方冪盡量兩兩不同,方冪之間的間隔盡量不同;(3)為了使序列的復(fù)雜度足夠大,盡可能地提高矩陣M特征多項(xiàng)式fM(x)的最小三 元重量 W3(fM(χ));(4)為了以足夠小的代價(jià)盡可能大地提高矩陣M特征多項(xiàng)式fM(x)的三元重量,可 以利用乘法的分配率,即a · (Io1+...+bk) = a · Io1+...+a · bk (mod 2e_l),其中a,bi; ... , bk e Z/(2e_l),因此,如圖4所示的每一行中的多個(gè)非零元具有 公因子并且公因子的三元重量低,但每一行所有非零元公因子應(yīng)仍為1。例如,若第一行有 且僅有三個(gè)非零元 A,B,C e Z/ (2e-l),可以取 A = (1+22) (1+216),B = (1+216),C = 225,則 gcd(A, B) = 1+216,gcd(A, B, C) =1。(5)矩陣M的特征多項(xiàng)式fM(x)為Z/(2e_l)上的η次本原多項(xiàng)式。3. 4)序列不退化設(shè)定設(shè)M是Z/(2e_l)上nXn的矩陣并且M的特征多項(xiàng)式fM(x)是Z/(2e_l)上的本原 多項(xiàng)式,以M為狀態(tài)轉(zhuǎn)移矩陣、以Stl = (s0,0, Slj0,... , Sn^1,0)為初始狀態(tài)產(chǎn)生的η條序列aj=(stjJ)t&0,j = 0,1,...,n-l,是本原序列的充要條件為對(duì)于2e-l的每個(gè)素因子P,至少 有一個(gè)Siitl與P互素,O ^ i ^n-I0在實(shí)際的使用過程中,可以設(shè)定初態(tài)Stl某個(gè)分量位置 為一個(gè)與2e-l互素的常數(shù)。本發(fā)明中,由于進(jìn)位運(yùn)算,環(huán)Z/(2e_l)上線性遞歸序列蘊(yùn)含豐富非線性結(jié)構(gòu),因而 是用于序列密碼算法設(shè)計(jì)的較理想的序列源。本發(fā)明所述技術(shù)方案中,實(shí)現(xiàn)了將傳統(tǒng)的單點(diǎn)反饋模式拓展為多點(diǎn)反饋模式,從 而有效地解決在生成環(huán)Z/(2e-l)上線性遞歸序列時(shí)所面臨的速度問題與復(fù)雜度問題這對(duì) 矛盾。下面以兩個(gè)具體實(shí)例為例來說明本發(fā)明提供的一種環(huán)Z/(2e_l)上線性遞歸序列 多點(diǎn)反饋生成方式。實(shí)例1步驟1 根據(jù)參數(shù)e和η的選取原則,選取e = 32,η = 8 ;具體地,如圖5所示,圖5為本發(fā)明中環(huán)Z/(232-1)上8級(jí)寄存器的示意圖,在該 圖中,8個(gè)寄存器單元由右至左依次編號(hào)為0,1,...,7,每個(gè)寄存器可存儲(chǔ)Z/ (232-1)中的一 個(gè)元素。步驟2 根據(jù)反饋位置個(gè)數(shù)和反饋位置的選取原則,選取k = 2及反饋位置集合為 {3,7};具體地,如圖6所示,圖6為本發(fā)明中將環(huán)Z/(232-1)上8級(jí)的移位寄存器分成兩 部分的示意圖,在該圖中,是將圖5所示8級(jí)寄存器分為兩個(gè)4級(jí)的移位寄存器,第I個(gè)移 位寄存器的寄存器單元編號(hào)從右至左依次為0,1,2,3,第II個(gè)移位寄存器的寄存器單元編 號(hào)從右至左依次為4,5,6,7,兩個(gè)移位寄存器的移動(dòng)方向?yàn)閺淖笾劣?,每個(gè)移位寄存器的最 左端單元為相應(yīng)的反饋位置單元,從而反饋位置集合為{3,7}。步驟3 根據(jù)矩陣M行向量非零分量的位置確定原則和取值原則,確定狀態(tài)轉(zhuǎn)移矩 陣M,具體包括步驟3. 1 選取α 3和α 7的非零元位置以及非零元因子基本形式如下
"α0 「0 10 0 000 θα! 0 0 1 O 0 0 0 O α2 0 0 0 1 0 0 0 O
α3 0 0 0 B2A3 B0 O B2 B2B3λΛ=
Μ= α4 0 0 0 0 010 O,
α5 0 0 0 0 001 O α6 0 0 0 0 0 0 0 1
a7J [C0 C1 O C1C3 0 0 0 O其中A3, B0, B2, B3, C0, C1, C3為待定的Z/(2e_l)中的非零元。此時(shí),M的特征多項(xiàng) 式可以表達(dá)成fM(x) = χ8-[B2 · A3 · x7+B2 · B3 · C1 · C3 · x6+B2 · C1 · C3 · x5+B2 · B3 · C1 · χ4+(B2 · B3 · C0+B2 · C1+B0 · C1 · C3) · x3+B2 · C0 · x2+B0 · C1 · x+B0 · C0].步驟3. 2 根據(jù)3. 4)所述非零元素的選取原則,取
A3 = 2h,Bq 二 2h,萬2= (1+2!3).(1+2'4),
B3 = Ii5,Co = l+2'6+2'7,Ci = (l+2'8>(l+2i9),C3 = 2'10.經(jīng)計(jì)算機(jī)部分搜索,當(dāng)“ =26,i2 = 0, i3 = 8,i4 = 14,i5 = 5, i6 = 2,i7 = 13, i8 = 5,i9 = 16,i10 二 25時(shí),矩陣M的特征多項(xiàng)式為fM(x) = χ8- [67174660 · χ7+1515870810 · χ6+3537031890 · χ5+757935405 · χ4+3616951562 · χ3+157377805 · χ2+2162721 χ+8197],fM(x)為Ζ/(232-1)上的8次本原多項(xiàng)式,其最小三元重量為84。步驟4 選取非退化的初始狀態(tài)向量 S0 = (s0j0, slj0, S2j0, S3,。,s4j0, S5j0, S6j0, S7j0), 例如 Stl= (1,0,0,0,1,0,0,0), (1,0,0,0,0,0,0,0), (0,0,0,0,1,0,0,0)等等。步驟5 根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣,對(duì)所述初始狀態(tài)進(jìn)行狀態(tài)更新,得到寄存器的狀 態(tài)向量序列 S= (s0, S1, ... ) = (St)t^0 = ((s0jt, Sljt, . . . , Sn_ljt))t 0.具體地,如圖7所示,圖7為本發(fā)明中環(huán)Z/(232-1)上8級(jí)兩點(diǎn)反饋方式生成序列 的設(shè)計(jì)示意圖。整個(gè)寄存器狀態(tài)的更新方式為設(shè)當(dāng)前時(shí)刻(第t時(shí)刻)寄存器的狀態(tài)為 (S7,t,...,Sl,t,SQ,t),下一時(shí)刻(第t+Ι時(shí)刻)的狀態(tài)為(s7 ,t+Ι ‘ · · ·,sI, t+Ι,sO, t+1 ),則S0j t+1 = Sljt ;Slj t+1 = S2jt ;s2,t+1 = s3,t;s3,t+1 = s4,t+(l+28) (1+214) [226 s3, t+s6, t+25s7, J ;S4, t+1 = S5jt ;S5, t+1 = S6jt ;s6,t+1 = s7,t ;S7, t+1 = (l+25+213) S0j t+(l+25) (1+216) [sljt+225s3j J ·例如若初始狀態(tài)為S。= (1,0,0,0,1,0,0,0),則Scm = Slo = O;Sljl = s2,0 == 0 ;S21 = %0二0;S3jl = S4j0+(1+28) (1+214) [226 S3,0+S6j0+25S7j0] = 1 ;S4a = S5i0 = O;= S60 = 0;S6a = s7,0 二 0 ;S7a = (1+25+213) S0j0+(1+25) (1+216) [S1j0+225S3,0] = 1+25+213,故31 = (0,0,0,1,0,0,0,8225).
按時(shí)鐘的先后順序每個(gè)寄存器序列& = (Sii0jSia,...) = (Si,t)t&(1均是以狀態(tài) 轉(zhuǎn)移矩陣M的特征多項(xiàng)式fM(x)為特征多項(xiàng)式的本原序列,其中7.例如,當(dāng)初始 狀態(tài)為Stl= (1,0,0,0,1,0,0,0)時(shí),移位寄存器1編號(hào)為0的寄存器單元輸出序列為a = (s0,t)t&0= (1,0,0,0,1,...),移位寄存器2編號(hào)為4的寄存器單元輸出序列為b = (s4jt)t&0 = (1,0,0,0,8225,· · ·),序列& b均以狀態(tài)轉(zhuǎn)移矩陣M的特征多項(xiàng)式fM(x)為特征多項(xiàng)式的本原序列。若采用傳統(tǒng)的單點(diǎn)反饋方式生成以實(shí)例1中fM(x)為特征多項(xiàng)式的本原序列,例 如序列2,則因?yàn)閒M(x)的最小三元重量達(dá)到84,所以每次狀態(tài)更新需要Z/(232-l)上的83 次加法、80次循環(huán)移位以及一次取反運(yùn)算;而采用如圖7所示的兩點(diǎn)反饋方式,僅需要Z/ (232-1)上的11次加法和9次循環(huán)移位便可完成新元素的反饋,序列生成速度提高了大約 8. 4 倍。實(shí)例2步驟1 根據(jù)參數(shù)e和η的選取原則,選取e = 32,η = 8 ;步驟2 根據(jù)反饋位置個(gè)數(shù)和反饋位置的選取原則,選取k = 4及反饋位置集合為 {1,3,5,7};步驟3 根據(jù)矩陣M行向量非零分量的位置確定原則和取值原則,確定狀態(tài)轉(zhuǎn)移矩 陣M.具體地有步驟3. 1 選取α π α 3,α 5,α 7的非零元位置以及非零元因子基本形式如下
-0 1 0 0 0 0 0 0 “ D1AiA0 D1A1 0 0 0 0 D0 D0 0 0 0 1 0 0 0 0 A1A0 A1 0 0 0 0 0 0M= O 0 0 0 0 1 00
0 0 B0 B0 BiC0 B1C0C1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 C0 C0C1 0 0其中Ac^AnBcpBnCcpCnDcpD1為待定的Z/(2Μ)中的非零元。此時(shí),M的特征多 項(xiàng)式可以表達(dá)成gM (χ) = χ8- [ (AJE1) χ7+ (Ac^E0-A1E1) χ6+ (-A1E0-A0E1) χ5+ (B1C1D1F1-A0E0) χ4+ (B1C1D1Fc^B1C1D0FAB1C0D1F1+B0C1D1F1) χ3+ (B1C1DciFdB1CciD1Fc^BciC1D1F0+B1C0DciFABciC1DciFABciCciD1F1) χ2+ (B1C0D0F0+BoC^oFo+BoCoD^o+BoCoDoF!) x+B0C0D0F0].根據(jù)3. 4)所述非零元素的選取原則,取A0 = Ih ,
A1 = \+2h+2i3,B0 = 1+2 4+2 5,B1 = 2'6,C0 = l+2h+2h,
C1 = 2'9,D0 = 2iw,D1 = 2'U.經(jīng)計(jì)算機(jī)部分搜索,當(dāng)I1 = 5,i2 = 7,i3 = 15,i4 = 17,i5 = 24,i6 = 12,i7 = 5,i8 = 18,i9 = 20,i10 = 14,in = 8時(shí),矩陣M的特征多項(xiàng)式為gM(x) = χ8-[8683809 · χ7+998345982 · χ6+1673231988 · χ5+3547233361 · χ4+2341546720 · χ3+363894861 · χ2+4000859588 · χ+1256600293],gM(x)為Ζ/(232-1)上的8次本原多項(xiàng)式,其最小三元重量為83。步驟4 選取非退化的初始狀態(tài)向量 Stl = (s0j0, slj0, S2j0, S3j0, S4j0, S5j0, S6j0, S7j0), 例如 Stl= (1,0,0,0,1,0,0,0), (1,0,0,0,0,0,0,0), (0,0,0,0,1,0,0,0)等等。步驟5 根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣,對(duì)所述初始狀態(tài)進(jìn)行狀態(tài)更新,得到寄存器的狀 態(tài)向量序列 S= (S0, S1, ...) = (St)t^0 = ((s0jt, Sljt, ... , Sn^ljt))t ^ Oo具體地,如圖8所示,圖8為本發(fā)明中環(huán)Z/(232-1)上8級(jí)四點(diǎn)反饋方式生成序列 的設(shè)計(jì)示意圖。整個(gè)寄存器狀態(tài)的更新方式為設(shè)當(dāng)前時(shí)刻(第t時(shí)刻)寄存器的狀態(tài)為 (S7,t,...,Sl,t,SQ,t),下一時(shí)刻(第t+Ι時(shí)刻)的狀態(tài)為(S7 ,t+Ι ‘ · · · ,sI, t+Ι ‘ S0, t+1 ),則S0, t+1 = Sljt ;Sl,t+1 = 28 · (1+27+215) · (25s0, t+Sl, t)+214 · (s6,t+s7,t);S2, t+1 = S3jt ;s3,t+1 = (l+27+215) · (25So,t+Sl,t);S4, t+1 = S5jt ;s5,t+1 = (l+217+224) · (s2,t+s3,t)+212 · (l+25+218) · (s4,t+220 · s5,t);S6, t+1 = S7jt ;s7,t+1 = (l+25+218) · (s4,t+220 · s5,t).例如若初始狀態(tài)為S。= (1,0,0,0,1,0,0,0),則S0j1 = S1j0 = O;sljl = 28 · (1+27+215) · (25s0j0+s lj0) +214 · (s6,0+s7,0) = 269492224 ;S21 = S3t = 0;s3jl = (1+27+215) · (25s0j0+s1j0) = 1052704 ;S41 = S50 = O;s5jl = (l+217+224) · (s2,0+s3,0)+212 · (l+25+218) · (s4,0+220 · s5,0)= 1073876992 ;s6jl = s7j0 = 0 ;
s7jl = (1+25+218) · (s4,0+220 · s5,0) = 262177,故S1 = (0,269492224,0,1052704,0,1073876992,0,262177) ·按時(shí)鐘的先后順序每個(gè)寄存器序列& = (Sii0jSia,...) = (Si,t)t&(1均是以狀態(tài) 轉(zhuǎn)移矩陣M的特征多項(xiàng)式fM(x)為特征多項(xiàng)式的本原序列,其中7.例如,當(dāng)初始 狀態(tài)為Stl= (1,0,0,0,1,0,0,0)時(shí),移位寄存器1編號(hào)為0的寄存器單元輸出序列為c = (s0jt)t&0 = (1,0,269492224,···),移位寄存器2編號(hào)為2的寄存器單元輸出序列為
d = (s2, t) t & ο = (0,0,1052704,· · ·),序列& d均以狀態(tài)轉(zhuǎn)移矩陣M的特征多項(xiàng)式fM(x)為特征多項(xiàng)式的本原序列。若采用傳統(tǒng)的單點(diǎn)反饋方式生成以實(shí)例2中g(shù)M(x)為特征多項(xiàng)式的本原序列,例 如序列£,則因?yàn)間M(x)的最小三元重量達(dá)到83,所以每次狀態(tài)更新需要Z/(232-l)上的82 次加法、79次循環(huán)移位以及一次取反運(yùn)算;而采用如圖8所示的兩點(diǎn)反饋方式,僅需要Z/ (232-1)上的18次加法和17次循環(huán)移位便可完成新元素的反饋,序列生成速度提高了大約 4. 6 倍。相應(yīng)的,本發(fā)明還提供一種線性遞歸序列的生成系統(tǒng),其結(jié)構(gòu)示意圖如圖9所示, 該系統(tǒng)基于環(huán)Z/(2e-l)上具有復(fù)雜特征多項(xiàng)式的線性遞歸序列的生成,所述系統(tǒng)包括參 數(shù)選擇單元91,位置個(gè)數(shù)確定單元92,反饋位置集合確定單元93,狀態(tài)轉(zhuǎn)移矩陣選取單元 94,非退化初始狀態(tài)向量選取單元95和狀態(tài)向量序列生成單元96。其中,參數(shù)選擇單元91,用于選取參數(shù)e和n,e和η均為大于或等于2的正整數(shù),其中, e用于確定寄存器中元素的取值空間,η為寄存器的總長度;位置確定單元92,用于確定寄存器中反饋位置的個(gè)數(shù)k ;其中,2彡k^n;反饋位置集合確定單元93,用于根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合 U1, i2, · · · , ik_!, ik},其中,ik = n-1,0 ( I1 < i2 <···< Ik^1 ( n_2 ;狀態(tài)轉(zhuǎn)移矩陣選取單元94,用于根據(jù)所述反饋位置集合U1, i2,... , ik_1; ik}選取 寄存器的狀態(tài)轉(zhuǎn)移矩陣;非退化初始狀態(tài)向量選取單元95,選取寄存器非退化的初始狀態(tài)向量Stl = (s0,0, Sli0, ... , Sn-L0),其中 Sij0 e Z/ (2e-l), i = 0,1, ... , n-1 ;狀態(tài)向量序列生成單元96,用于根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,0, Sn^1,0)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S = (S0, S1,...) = (St)
t ^ O — ((S0,t,Sl,t,· · ·,Sn-l,t))t》0o本發(fā)明提供的線性遞歸序列的生成方法為基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式,由 于增加了反饋元素個(gè)數(shù),加速了移位寄存器元素之間的混亂和擴(kuò)散,可以快速實(shí)現(xiàn)具有復(fù) 雜特征多項(xiàng)式的序列。其中,基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式將單點(diǎn)反饋方式用于計(jì)算 一個(gè)反饋元素所需的計(jì)算資源平均分配到多個(gè)反饋元素的計(jì)算上,在同樣的計(jì)算資源前提 下,序列特征多項(xiàng)式的復(fù)雜度遠(yuǎn)高于單點(diǎn)反饋方式所產(chǎn)生序列的特征多項(xiàng)式。本發(fā)明提供 的基于狀態(tài)轉(zhuǎn)移的多點(diǎn)反饋實(shí)現(xiàn)方式的序列輸出速度不是由序列特征多項(xiàng)式的復(fù)雜度直 接決定,因此,本發(fā)明所述技術(shù)方案可以兼顧序列的輸出效率和序列的復(fù)雜度,從而提高了 線性遞歸序列的輸出效率。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更 佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的 部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/ RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器, 或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)例或者實(shí)例的某些部分所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域 的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種線性遞歸序列的生成方法,基于環(huán)Z/(2e-1)上具有復(fù)雜特征多項(xiàng)式的線性遞歸序列的生成,其特征在于,包括選取參數(shù)e和n,e和n均為大于或等于2的正整數(shù),其中,e用于確定寄存器中元素的取值空間,n為寄存器的總長度;確定寄存器中反饋位置的個(gè)數(shù)k;其中,2≤k≤n;根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;根據(jù)所述反饋位置集合{i1,i2,...,ik-1,ik}選取寄存器的狀態(tài)轉(zhuǎn)移矩陣;選取寄存器非退化的初始狀態(tài)向量S0=(s0,0,s1,0,...,sn-1,0),其中,si,0∈Z/(2e-1),i=0,1,...,n-1;根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量S0=(s0,0,s1,0,...,sn-1,0)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選取參數(shù)e包括按照計(jì)算機(jī)平臺(tái)的 整數(shù)運(yùn)算的字長來選取參數(shù)e ;所述選取參數(shù)η包括使e · η的取值等于安全強(qiáng)度參數(shù)或者等于安全強(qiáng)度參數(shù)的倍數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,若當(dāng)前主流計(jì)算機(jī)的字長為32比特,選取 參數(shù)e = 32,則依據(jù)當(dāng)前安全強(qiáng)度,選取參數(shù)η = 8,12或16。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定寄存器中反饋位置的個(gè)數(shù)k具體 包括將η級(jí)寄存器分成k部分,形成k個(gè)位置反饋點(diǎn),k個(gè)寄存器的長度之和等于η。
5.根據(jù)權(quán)利要求1所述的方法,其特征還包括根據(jù)所述反饋位置集合U1,i2,..., in,ij確定k個(gè)移位寄存器的級(jí)數(shù),分別為ii+1,I2-I1, ...,n-1-iH,使得所述i1+1, i2-i1;...,n-l-ik_3l數(shù)盡量相同。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述反饋位置集合U1,i2,..., Ik^1, ij選取寄存器的狀態(tài)轉(zhuǎn)移矩陣包括根據(jù)所述反饋位置集合為U1, i2,. . .,ik-! , ik}確定 該寄存器的狀態(tài)轉(zhuǎn)移矩陣的第I1行,第i2行,...,第ik行對(duì)應(yīng)的元素,得到寄存器的狀態(tài) 轉(zhuǎn)移矩陣。
7.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,在選取該寄存器的狀態(tài) 轉(zhuǎn)移矩陣時(shí),矩陣中出現(xiàn)的非0元素盡量選取形如(ai+. . . +as) · Od1+. . . +bt)和 (1+2、)(1+2、...(1+2、)的整數(shù)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選取寄存器的初始狀態(tài)向量Stl=(s0, 。,slj0,... , sn_lj0)應(yīng)滿足對(duì)于2e-l的每個(gè)素因子p,至少有一個(gè)Siitl與ρ互素,0彡i彡n-1, 也即P不是Siitl的因子。
9.根據(jù)權(quán)利要求1或8所述的方法,其特征在于,根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始 狀態(tài)向量Stl = (s0,0, S1,0, Si^q)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S = (S0, Si,· · ·)一 (St) t ^ 0 — ((S0,t,Sl,t,···,Sn-1,t) ) t》0 包括根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量Stl= (s0,0, S1,0,..., Sn^uo)進(jìn)行遞歸計(jì)算, 得到寄存器的狀態(tài)向量S1 = (soa, sia, ... , SlriJ ;根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述S1 = (s0,1; Sia, . . .,S1^1)進(jìn)行遞歸計(jì)算,得到寄存器 的狀態(tài)向量 S2 = (S。,2,Slj2, · · ·,Sm2);根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述S2 = (s。,2,S1,2,. . .,Slri,2)依次進(jìn)行遞歸計(jì)算,得到寄 存器的狀態(tài)向量序列 S= (SojS1,...) = (St)t^0 = ((SoWSiWdSmtDtXL
10. 一種線性遞歸序列的生成系統(tǒng),基于環(huán)Z/(2吣1)上具有復(fù)雜特征多項(xiàng)式的線性遞 歸序列的生成,其特征在于,包括參數(shù)選擇單元,用于選取參數(shù)e和n,e和η均為大于或等于2的正整數(shù),其中,e用于 確定寄存器中元素的取值空間,η為寄存器的總長度;位置個(gè)數(shù)確定單元,用于確定寄存器中反饋位置的個(gè)數(shù)k ;其中,2彡k^n; 反饋位置集合確定單元,用于根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合U1, i2, · · · , ik_i; ik},其中,ik = n-1,0 < “ < i2 <...< Ik^1 ^ n_2 ;狀態(tài)轉(zhuǎn)移矩陣選取單元,用于根據(jù)所述反饋位置集合U1,ikl選取寄存器的狀態(tài)轉(zhuǎn)移矩陣;非退化初始狀態(tài)向量選取單元,選取寄存器非退化的初始狀態(tài)向量Stl= (s0,0, S1, 0,· · ·,Sn-U),其中,Si, e Z/(2e-l), i = 0,1,· · ·,n-1 ;狀態(tài)向量序列生成單元,用于根據(jù)所述狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量Stl = (s0,0, S1,0, . . . , Sn^1,0)進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S= (SojS1,...) = (St)t^0 =((S0,t,Sl,t,· · ·,Sn-l,t))t》0o
全文摘要
本發(fā)明涉及一種線性遞歸序列的生成方法及系統(tǒng),該方法包括選取參數(shù)e和n,e和n均為≥2的正整數(shù),其中,參數(shù)e用于確定寄存器中的元素的取值空間,n為寄存器的總長度;確定寄存器中反饋位置的個(gè)數(shù)k,2≤k≤n;根據(jù)所述反饋位置的個(gè)數(shù)k,確定反饋位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;選取寄存器的狀態(tài)轉(zhuǎn)移矩陣;選取寄存器非退化的初始狀態(tài)向量;根據(jù)狀態(tài)轉(zhuǎn)移矩陣對(duì)所述初始狀態(tài)向量進(jìn)行遞歸計(jì)算,得到寄存器的狀態(tài)向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0。
文檔編號(hào)H04K1/00GK101882969SQ20101021898
公開日2010年11月10日 申請(qǐng)日期2010年6月30日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者戚文峰, 朱宣勇, 田甜, 鄭群雄, 陳華瑾 申請(qǐng)人:中國人民解放軍信息工程大學(xué)