《【安全課件】第17講--bm算法》由會員分享,可在線閱讀,更多相關《【安全課件】第17講--bm算法(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1移位寄存器序列的三種表示方法:v線性遞推式(一元多項式): at+n=c1at+n-1+c2at+n-2+cnat ,t=0v聯(lián)結多項式: f(x)=1+c1x+c2x2+cnxnv狀態(tài)轉移矩陣: 滿足:st+1=stTf 稱st=(at,at+1,at+2,at+n-1)為n維狀態(tài)2v非退化的移位寄存器v(不)可約多項式v極小多項式v序列和周期v本原多項式vm序列v1游程、游程、0游程游程vm序列的游程分布規(guī)律3線性移存器線性移存器(一)解方程法(一)解方程法 已知序列a是由n級線性移存器產生的,且知a的連續(xù)2n位,可用解線性方程組的方法得到線性遞推式。 例:設a=01111000是4級線
2、性移存器產生的序列的8個連續(xù)信號,求該移存器的線性遞推式。4v設其聯(lián)結多項式f(x)=1+c1x+c2x2+c3x3+x4v線性遞推式at=at-4+c3at-3+c2at-2+c1at-1v0+c3+c2+c1=1v1+c3+c2+c1=0v1+c3+c2+0=0v1+c3+0+0=0v解得:c3=1;c2=0;c1=0v故其聯(lián)結多項式為1+x3+x45(二)、(二)、B-MB-M迭代算法迭代算法 根據(jù)密碼學的需要,對線性反饋移位寄存器根據(jù)密碼學的需要,對線性反饋移位寄存器(LFSR)(LFSR)主要考慮下面兩個問題:主要考慮下面兩個問題:(1)如何利用級數(shù)盡可能短的LFSR產生周期大、隨機
3、性能良好的序列,即固定級數(shù)時,什么樣的移存器序列周期最長。這是從密鑰生成角度考慮,用最小的代價這是從密鑰生成角度考慮,用最小的代價產生盡可能好的產生盡可能好的、參與密碼變換的序列。參與密碼變換的序列。 (2)當已知一個長為N序列a時,如何構造一個級數(shù)盡可能小的LFSR來產生它。這是從密碼分析角度來考這是從密碼分析角度來考慮,要想用線性方法重構密鑰序列所必須付出的最小代價。慮,要想用線性方法重構密鑰序列所必須付出的最小代價。這個問題可通過這個問題可通過B-MB-M算法來解決。算法來解決。61 1、概念簡介、概念簡介設 是 上的長度為N的序列,而 ),(11. 0Naaaa2F是 上的多項式,c0
4、=1.2Fllxcxcxccxf2210)(lxf),(如果f(x)是一個能產生a并且級數(shù)最小的線性移位寄存器的反饋多項式,l是該移存器的級數(shù),則稱 為序列序列a的的線性綜合解線性綜合解。如果序列中的元素滿足遞推關系: 則稱 產生二元序列a。其中 表示以f(x)為反饋多項式的l級線性移位寄存器。)2(1, 1,2211Nllkacacacalklkkklxf),(lxf),(7 幾點說明:幾點說明: 2、規(guī)定:規(guī)定:0級線性移位寄存器是以級線性移位寄存器是以f( (x)=1)=1為反饋多項式的為反饋多項式的線性移位寄存器,且線性移位寄存器,且n長長(n=1, 2, , N)全零序列,僅由全零序
5、列,僅由0級線性級線性移位寄存器產生。移位寄存器產生。事實上,以f(x)=1為反饋多項式的遞歸關系式是:ak=0,k=0, 1, , n-1.因此,這一規(guī)定是合理的。 1、反饋多項式反饋多項式f( (x) )的次數(shù)的次數(shù) l。因為產生因為產生a且級數(shù)最小的線性且級數(shù)最小的線性移位寄存器可能是退化的,在這種情況下移位寄存器可能是退化的,在這種情況下 f(x)的次數(shù)的次數(shù)l;并且此并且此時時 f(x)中的中的cl=0=0,因此在反饋多項式因此在反饋多項式f(x)中中c0=1=1,但不要求但不要求cl=1=1。 3、給定一個N長二元序列a,求能產生a并且級數(shù)最小的線性移位寄存器,就是求a的線性綜合解
6、的線性綜合解。利用利用B-MB-M算法算法可以有效的求出??梢杂行У那蟪?。82、B-M算法要點算法要點用歸納法求出一系列線性移位寄存器:nnlxf),(Nnlxfnn, 2 , 1,)(0每一個 都是產生序列a的前n項的最短線性移位寄存器,在 的基礎上構造相應的 ,使得 是產生給定序列前n+1項的最短移存器,則最后得到的 就是產生給定N長二元序列a的最短的線性移位寄存器。nnlxf),(NNlxf),(11),(nnlxfnnlxf),(11),(nnlxf11),(nnlxf93 3、B-MB-M算法算法 1、取初始值:0, 1)(00lxf 2、設 均已求得,且)0(Nn nnlxflxf
7、lxf),(,),(,),(1100nlll10nnlxf),(任意給定一個N長序列 ,按n歸納定義1, 2, 1, 0Nn),(11. 0Naaaa記: 再計算:稱dn為第n步差值。然后分兩種情形討論: , 1,)()(0)()(1)(0nlnlnnncxcxccxfnnnnlnnlnnnnnacacacd)(1)(1)(010最后得到的 便是產生序列a的最短線性移位寄存器。NNlxf),(11B - M 算 法 流 程12例2、求產生周期為7的m序列一個周期:0011101的最短線性移位寄存器。4、實例實例解:設 ,首先取初值 f0(x)=1, l0=0 ,則由a0=0得d0=1a0=0從
8、而 f1(x)=1, l1=0 ;同理由a1=0得d1=1a1=0從而 f2(x)=1, l2=0 。00111016543210aaaaaaa由a2=1得d2=1a2=1,從而根據(jù)l0= l1 = l2=0 知 f2(x)=1+x2+1 =1+x3, l3=3 第1步,計算d3:d3=1a3+ 0a2 + 0a1 + 1a0=1因為l2l3,故m=2,由此31 , 3max313 , 3max1)()()(4322334lxxxfxxfxf13 第2步,計算d4:d4=1a4 + 1a3 + 0a2 + 1a1=0,從而31)()(45345llxxxfxf 第3步,計算d5:d5=1a5 + 1a4 + 0a3 + 1a2=0,從而 第4步,計算d6:d6=1a6 + 1a5 + 0a4 + 1a3=0,從而31)()(56356llxxxfxf31)()(67367llxxxfxf這表明, 即為產生所給序列一個周期的最短線性移位寄存器。 3 ,13xx 14