版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五講:序列密碼1
人們試圖用序列密碼方式仿效”一次一密”密碼.從而促成了序列密碼的研究和發(fā)展.序列密碼是世界軍事,外交等領(lǐng)域應(yīng)用的主流密碼體制.在通常的序列密碼中,加解密用的密鑰序列是偽隨機(jī)序列,它的產(chǎn)生容易且有較成熟的理論工具,所以序列密碼是當(dāng)前通用的密碼系統(tǒng).
序列密碼的安全性主要依賴于密鑰序列,因而什么樣的偽隨機(jī)序列是安全可靠的密鑰序列,以及如何實(shí)現(xiàn)這種序列就成了序列密碼中研究的一個主要方面.25.1密碼學(xué)中的隨機(jī)數(shù)
在密碼學(xué)都要涉及到隨機(jī)數(shù)?因?yàn)樵S多密碼系統(tǒng)的安全性都依賴于隨機(jī)數(shù)的生成,例如DES加密算法中的密鑰,RSA加密和數(shù)字簽名中的素數(shù)。
5.1.1隨機(jī)數(shù)的使用
序列密碼的保密性完全取決于密鑰的隨機(jī)性。如果密鑰是真正的隨機(jī)數(shù),則這種體制在理論上就是不可破譯的。但這種方式所需的密鑰量大得驚人,在實(shí)際中是不可行的。
目前一般采用偽隨機(jī)序列來代替隨機(jī)序列作為密鑰序列,也就是序列存在著一定的循環(huán)周期。這樣序列周期的長短就成為保密性的關(guān)鍵。如果周期足夠長,就會有比較好的保密性。現(xiàn)在周期小于1010的序列很少被采用,周期長達(dá)1050的序列也并不少見。
3何謂偽隨機(jī)數(shù)生成器(PRNG)?假定需要生成介于1和10之間的隨機(jī)數(shù),每一個數(shù)出現(xiàn)的幾率都是一樣的。理想情況下,應(yīng)生成0到1之間的一個值,不考慮以前值,這個范圍中的每一個值出現(xiàn)的幾率都是一樣的,然后再將該值乘以10。
由任何偽隨機(jī)數(shù)生成器返回的數(shù)目會受到0到
N之間整數(shù)數(shù)目的限制。因?yàn)槌R娗闆r下,偽隨機(jī)數(shù)生成器生成0到N之間的一個整數(shù),返回的整數(shù)再除以N??梢缘贸龅臄?shù)字總是處于0和1之間。對生成器隨后的調(diào)用采用第一次運(yùn)行產(chǎn)生的整數(shù),并將它傳給一個函數(shù),以生成0到N之間的一個新整數(shù),然后再將新整數(shù)除以N返回。5.1.2偽隨機(jī)數(shù)產(chǎn)生器4目前,常見隨機(jī)數(shù)發(fā)生器中N是232–1(大約等于40億),對于32位數(shù)字來說,這是最大的值。但在密碼學(xué)領(lǐng)域,40億個數(shù)根本不算大!
偽隨機(jī)數(shù)生成器將作為“種子”的數(shù)當(dāng)作初始整數(shù)傳給函數(shù)。由偽隨機(jī)數(shù)生成器返回的每一個值完全由它返回的前一個值所決定。因此,最初的種子決定了這個隨機(jī)數(shù)序列。如果知道用于計算任何一個值的那個整數(shù),那么就可以算出從這個生成器返回的下一個值。偽隨機(jī)數(shù)生成器是一個生成完全可預(yù)料的數(shù)列(稱為流)的確定性程序。一個編寫得很好的的PRNG可以創(chuàng)建一個序列,而這個序列的屬性與許多真正隨機(jī)數(shù)的序列的屬性是一樣的。
例如:(1)PRNG可以以相同幾率在一個范圍內(nèi)生成任何數(shù)字;(2)PRNG可以生成帶任何統(tǒng)計分布的流;(3)由PRNG生成的數(shù)字流不具備可辨別的模。55.1.3基于密碼算法的隨機(jī)數(shù)產(chǎn)生器
1.使用軟件方法的隨機(jī)數(shù)產(chǎn)生器
一個常用的隨機(jī)數(shù)產(chǎn)生器是屬于線形擬合生成器一類的。這類生成器相當(dāng)普遍,它們采用很具體的數(shù)學(xué)公式:Xn+1=(aXn
+b)modc即第
n+1個數(shù)等于第
n個數(shù)乘以某個常數(shù)
a,再加上常數(shù)
b。如果結(jié)果大于或等于某個常數(shù)
c,那么通過除以
c,并取它的余數(shù)來將這個值限制在一定范圍內(nèi)。注意:a、b和
c通常是質(zhì)數(shù)。
2.使用硬件方法的隨機(jī)數(shù)產(chǎn)生器
目前生成隨機(jī)數(shù)的幾種硬件設(shè)備都是用于商業(yè)用途。得到廣泛使用的設(shè)備是
ComScireQNG,它是使用并行端口連接到
PC的外部設(shè)備,它可以在每秒鐘生成20,000位,這對于大多數(shù)注重安全性的應(yīng)用程序來說已經(jīng)足夠了。另外Intel公司宣布他們將開始在其芯片組中添加基于熱能的硬件隨機(jī)數(shù)發(fā)生器,而且基本上不會增加客戶的成本。迄今為止,已經(jīng)交付了一些帶有硬件
PRNG的
CPU。
65.1.4偽隨機(jī)數(shù)的評價標(biāo)準(zhǔn)
(1)看起來是隨機(jī)的,表明它可以通過所有隨機(jī)性統(tǒng)計檢驗(yàn)。
現(xiàn)在的許多統(tǒng)計測試。它們采用了各種形式,但共同思路是它們?nèi)家越y(tǒng)計方式檢查來自發(fā)生器的數(shù)據(jù)流,嘗試發(fā)現(xiàn)數(shù)據(jù)是否是隨機(jī)的。
確保數(shù)據(jù)流隨機(jī)性的最廣為人知的測試套件就是
GeorgeMarsaglia
的
DIEHARD軟件包(請參閱http:///pub/diehard/)。另一個適合此類測試的合理軟件包是
pLab(請參閱http://random.mat.sbg.ac.at/tests/)。(2)它是不可預(yù)測的。即使給出產(chǎn)生序列的算法或硬件和所有以前產(chǎn)生的比特流的全部知識,也不可能通過計算來預(yù)測下一個隨機(jī)比特應(yīng)是什么。(3)它不能可靠地重復(fù)產(chǎn)生。如果用完全同樣的輸入對序列產(chǎn)生器操作兩次將得到兩個不相關(guān)的隨機(jī)序列。
75.2序列密碼的概念及模型
序列密碼算法將明文逐位轉(zhuǎn)換成密文,如下圖所示。m密鑰流發(fā)生器(也稱為滾動密鑰發(fā)生器)輸出一系列比特流:K1,K2,K3,……Ki
。密鑰流(也稱為滾動密鑰)跟明文比特流,m1,m2,m3,……mi,進(jìn)行異或運(yùn)算產(chǎn)生密文比特流。
加密:
Ci=mi⊕Ki
在解密端,密文流與完全相同的密鑰流異或運(yùn)算恢復(fù)出明文流。
解密:mi=Ci⊕Ki顯然,mi⊕Ki⊕Ki=mi8事實(shí)上,序列密碼算法其安全性依賴于簡單的異或運(yùn)算和一次一密亂碼本。密鑰流發(fā)生器生成的看似隨機(jī)的密鑰流實(shí)際上是確定的,在解密的時候能很好的將其再現(xiàn)。密鑰流發(fā)生器輸出的密鑰越接近隨機(jī),對密碼分析者來說就越困難。
如果密鑰流發(fā)生器每次都生成同樣的密鑰流的話,對攻擊來說,破譯該算法就容易了。
假的Alice得到一份密文和相應(yīng)的明文,她就可以將兩者異或恢復(fù)出密鑰流?;蛘?,如果她有兩個用同一個密鑰流加密的密文,她就可以讓兩者異或得到兩個明文互相異或而成的消息。這是很容易破譯的,接著她就可以用明文跟密文異或得出密鑰流?,F(xiàn)在,無論她再攔截到什么密文消息,她都可以用她所擁有的密鑰流進(jìn)行解密。另外,她還可以解密,并閱讀以前截獲到的消息。一旦Alice得到一明文/密文對,她就可以讀懂任何東西了。9這就是為什么所有序列密碼也有密鑰的原因。密鑰流發(fā)生器的輸出是密鑰的函數(shù)。
這樣,Alice有一個明文/密文對,但她只能讀到用特定密鑰加密的消息。
更換密鑰,攻擊者就不得不重新分析。
流密碼是將明文劃分成字符(如單個字母),或其編碼的基本單元(如0,1數(shù)字),字符分別與密鑰流作用進(jìn)行加密,解密時以同步產(chǎn)生的同樣的密鑰流實(shí)現(xiàn)。流密碼強(qiáng)度完全依賴于密鑰序列的隨機(jī)性(Randomness)和不可預(yù)測性(Unpredictability)。
核心問題是密鑰流生成器的設(shè)計。保持收發(fā)兩端密鑰流的精確同步是實(shí)現(xiàn)可靠解密的關(guān)鍵技術(shù)。10流密碼的分類:1.自同步序列密碼
自同步序列密碼就是密鑰流的每一位是前面固定數(shù)量密文位的函數(shù),下圖和下頁圖描述了其工作原理。其中,內(nèi)部狀態(tài)是前面n比特密文的函數(shù)。該算法的密碼復(fù)雜性在于輸出函數(shù),它收到內(nèi)部狀態(tài)后生成密鑰序列位。11自同步流密碼SSSC(Self-SynchronousStreamCipher)
內(nèi)部狀態(tài)i依賴于(kI,i-1,mi),使密文ci不僅與當(dāng)前輸入mi有關(guān),而且由于ki對i的關(guān)系而與以前的輸入m1,m2,…,mi-1有關(guān)。一般在有限的n級存儲下將與mi-1,…,mi-n有關(guān)。12特點(diǎn):①密鑰流不僅依賴于種子密鑰和密鑰流產(chǎn)生器的結(jié)構(gòu),還與密文流(或明文流)有關(guān)。初始向量IV在這里相當(dāng)于初始密文的作用,要求收、發(fā)雙方必須相同。②自同步。解密只取決于先前特定數(shù)量的密文字符,因此,即使出現(xiàn)刪除、插入等非法攻擊,收方最終都能夠自動重建同步解密,因而收、發(fā)雙方不再需要外部同步。③有差錯傳播。因?yàn)槊荑€流與密文流有關(guān),所以一個密文的傳輸錯誤會影響下面有限個密文的解密。13自同步序列密碼舉例例
假設(shè)種子密鑰為k=h,之后的密鑰是上一個密文。采用移位密碼,明文為cryptography,列表給出它的加密和解密過程。一個字符的差錯傳播不需要同步142.同步序列密碼在同步序列密碼中,密鑰流的產(chǎn)生獨(dú)立于明文和密文。分組加密的OFB模式就是一個同步序列加密的例子。1)同步要求。在一個同步序列密碼中,發(fā)送方和接收方必須是同步的,用同樣的密鑰且該秘鑰操作在同樣的位置,才能保證解密。如果在傳輸過程中密文字符有插入或刪除導(dǎo)致同步丟失,則解密失敗,且只能通過重新同步來實(shí)現(xiàn)恢復(fù)。2)無錯誤傳輸。在傳輸期間,一個密文字符被改變只影響該字符的恢復(fù),不會對后繼字符產(chǎn)生影響。152.同步序列密碼
同步流密碼SSC(SynchronousStreamCipher):
內(nèi)部狀態(tài)i與明文消息無關(guān),密鑰流將獨(dú)立于明文。特點(diǎn):對于明文而言,這類加密變換是無記憶的。但它是時變的。只有保持兩端精確同步才能正常工作。對主動攻擊時異常敏感而有利于檢測無差錯傳播(ErrorPropagation)16同步序列密碼同樣可防止密文中的插入和刪除,因?yàn)樗鼈儠瓜到y(tǒng)失去同步而立即被發(fā)現(xiàn)。然而,卻不能避免單個位被竄改。優(yōu)點(diǎn):具有自同步能力,強(qiáng)化了其抗統(tǒng)計分析的能力缺點(diǎn):有n位長的差錯傳播。密鑰流序列的性質(zhì)密碼設(shè)計者的最大愿望是設(shè)計出一個滾動密鑰生成器,使得密鑰經(jīng)其擴(kuò)展成的密鑰流序列具有如下性質(zhì):
極大的周期良好的統(tǒng)計特性抗線性分析抗統(tǒng)計分析。17實(shí)際上,序列密碼不可能做到“一次一密”但若密鑰流生成器生成的密鑰周期足夠長,且隨機(jī)性好,其安全強(qiáng)度可以得到保證!
因此,序列密碼的設(shè)計核心在于密鑰流生成器的設(shè)計,序列密碼的安全強(qiáng)度取決于密鑰流生成器生成的密鑰周期、復(fù)雜度、隨機(jī)(偽隨機(jī))特性等。185.3線性反饋移位寄存器(linearfeedbackshiftregister,LFSR)異或表達(dá)式----線性反饋如果n級線性反饋移位寄存器產(chǎn)生的輸出序列的周期為2n-1,則稱為m序列產(chǎn)生器。m序列不僅周期長,而且偽隨機(jī)特性好,這正是序列密碼的密鑰流所需要的特性。195.3線性反饋移位寄存器產(chǎn)生密鑰序列的最重要部件是線性反饋移位寄存器(LFSR),是因?yàn)?
(1)LFSR非常適合于硬件實(shí)現(xiàn);(2)能產(chǎn)生大的周期序列;(3)能產(chǎn)生較好統(tǒng)計特性的序列;(4)其結(jié)構(gòu)能應(yīng)用代數(shù)方法進(jìn)行很好的分析.移位寄存器是流密碼產(chǎn)生密鑰流的一個主要組成部分。GF(2)上一個n級反饋移位寄存器由n個二元存儲器與一個反饋函數(shù)f(a1,a2,…,an)組成,如下頁圖所示。
20每一存儲器稱為移位寄存器的一級,在任一時刻,這些級的內(nèi)容構(gòu)成該反饋移位寄存器的狀態(tài),每一狀態(tài)對應(yīng)于GF(2)上的一個n維向量,共有2n種可能的狀態(tài)。每一時刻的狀態(tài)可用n長序列“a1,a2,…,an”n維向量“(a1,a2,…,an)”來表示,其中ai是第i級存儲器的內(nèi)容。初始狀態(tài)由用戶確定,當(dāng)?shù)趇個移位時鐘脈沖到來時,每一級存儲器ai都將其內(nèi)容向下一級ai-1傳遞,并計算f(a1,a2,…,an)作為下一時刻的an。21反饋函數(shù)f(a1,a2,…,an)是n元布爾函數(shù),即n個變元a1,a2,…,an
可以獨(dú)立地取0和1兩個可能的值,函數(shù)中的運(yùn)算有邏輯與、邏輯或、邏輯補(bǔ)等運(yùn)算,最后的函數(shù)值也為0或1。例:下圖是一個3級反饋移位寄存器,其初始狀態(tài)為(a1,a2,a3)=(1,0,1),輸出可由下表求出。
即輸出序列為101110111011…,周期為4。22如果f(a1,a2,…,an)是(a1,a2,…,an)的線性函數(shù),則稱之為線性反饋移位寄存器LFSR(linearfeedbackshiftregister),否則稱為非線性移位寄存器。此時f可寫為:f(a1,a2,…,an)=cna1
cn-1a2…c1an其中常數(shù)ci=0或1,是模2加法。ci=0或1可用開關(guān)的斷開和閉合來實(shí)現(xiàn),如下圖所示,這樣的線性函數(shù)共有2n個。23輸出序列{at}滿足:an+t=cnatcn-1at+1…c1an+t-1
其中,t為非負(fù)正整數(shù)。線性反饋移位寄存器因其實(shí)現(xiàn)簡單、速度快、有較為成熟的理論等優(yōu)點(diǎn)而成為構(gòu)造密鑰流生成器的最重要的部件之一。例:下圖是一個5級線性反饋移位寄存器,其初始狀態(tài)為(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出輸出序列為1001101001000010101110110001111100110…,周期為31。24在線性反饋移位寄存器中總是假定c1,c2,…,cn中至少有一個不為0,否則f(a1,a2,…,an)≡0,這樣的話,在n個脈沖后狀態(tài)必然是00…0,且這個狀態(tài)必將一直持續(xù)下去。
若只有一個系數(shù)不為0,設(shè)僅有cj不為0,實(shí)際上是一種延遲裝置。一般對于n級線性反饋移位寄存器,總是假定cn=1。n級線性反饋移位寄存器的狀態(tài)周期小于等于2n-1。輸出序列的周期與狀態(tài)周期相等,也小于等于2n-1。只要選擇合適的反饋函數(shù)便可使序列的周期達(dá)到最大值2n-1。
定義1:n級線性反饋移位寄存器產(chǎn)生的序列{ai}的周期達(dá)到最大值2n-1時,稱{ai}為n級m序列。25根據(jù)密碼學(xué)需要,對于線性移位寄存器需考慮以下問題:
(1)如何利用級數(shù)盡可能小的線性移位寄存器產(chǎn)生周期長、統(tǒng)計性能好的序列;(2)已知一個序列{ai},如何構(gòu)造一個盡可能短的線性移位寄存器來產(chǎn)生它。因?yàn)閚級線性移位寄存器的輸出序列{ai}滿足遞推關(guān)系:
an+k=c1an+k-1c2an+k-2…cnak,對任何k≥1成立。這種遞推關(guān)系可用一個一元高次多項(xiàng)式
p(x)=1+c1x+…+cn-1xn-1+cnxn
表示,稱這個多項(xiàng)式為LFSR的特征多項(xiàng)式。
由于ai∈GF(2)(i=1,2,…,n),所以共有2n組初始狀態(tài),即有2n個遞推序列,其中非恒零的有2n-1個,記2n-1個非零序列的全體為G(p(x))。26
定義2:給定序列{ai},冪級數(shù),稱為該序列的生成函數(shù)。
定義3:設(shè)p(x)是GF(2)上的多項(xiàng)式,使p(x)|(xp-1)的最小p稱為p(x)的周期或階。
定理1:設(shè)p(x)=1+c1x+…+cn-1xn-1+cnxn是GF(2)上的多項(xiàng)式,G(p(x))中任一序列{ai}的生成函數(shù)A(x)滿足:
A(x)=Ф(x)/p(x),其中
=(a1+a2x+…+anxn-1)+c1x(a1+a2x+…+an-1xn-2)+c2x(a1+a2x+…+an-2xn-3)+…+cn-1xn-1a1。
定理1說明了n級線性移位寄存器的特征多項(xiàng)式和它的生成函數(shù)之間的關(guān)系。定理2:若序列{ai}的特征多項(xiàng)式p(x)定義在GF(2)上,p是p(x)的周期,則{ai}的周期r|p。n級LFSR輸出序列的周期r不依賴于初始條件,而依賴于特征多項(xiàng)式p(x)。我們感興趣的是LFSR遍歷2n-1個非零狀態(tài),這時序列的周期達(dá)到最大2n-1,這種序列就是m序列。27例3:設(shè)f(x)=x4+x3+x2+x+1是GF(2)上的不可約多項(xiàng)式,但是它的輸出序列是000110001100011…,周期是5,不是m序列。解:f(x)的不可約性由多項(xiàng)式x,x+1,x2+x+1不能整除f(x)而得。對于k≥5,輸出序列用ak=ak-1ak-2ak-3ak-4
檢驗(yàn)即可。
定義4:僅能被非零常數(shù)或者本身的常數(shù)倍除盡,不能被其他多項(xiàng)式整除的多項(xiàng)式稱為不可約多項(xiàng)式。
特征多項(xiàng)式滿足什么條件時,LFSR的輸出序列為m序列。
定理3:n級LFSR產(chǎn)生的序列有最大周期2n-1的必要條件是其特征多項(xiàng)式為不可約多項(xiàng)式。該定理的逆不成立,即LFSR產(chǎn)生的特征多項(xiàng)式為不可約多項(xiàng)式,但其輸出序列不一定是m序列。
28定義5:若n次不可約多項(xiàng)式p(x)的階為2n-1,稱其為n次本原多項(xiàng)式。定理4:{ai}為n級m序列的充要條件是其特征多項(xiàng)式p(x)為n次本原多項(xiàng)式。例4:設(shè)p(x)=x4+x+1,是4次本原多項(xiàng)式,以其為特征多項(xiàng)式的線性移位寄存器的輸出是10010001111010110010001111010…,周期是24-1=15的m序列。
解:p(x)|(x15-1),但是不存在l<15,使得p(x)|(xl-1),所以p(x)階是15。
p(x)的不可約性由x,x+1,x2+x+1不能整除p(x)而得,因此p(x)是本原多項(xiàng)式。
對于k≥5,輸出序列用ak=ak-1ak-4
檢驗(yàn)即可。
雖然n級線性移位寄存器產(chǎn)生的m序列具有良好的偽隨機(jī)性,但是直接用其構(gòu)造密鑰流序列是極不安全的。因?yàn)槔?n個輸出位可以找到它的起始狀態(tài)和特征多項(xiàng)式。29若特征多項(xiàng)式p(x)=x3+x+1,初始狀態(tài)為(101)的移位寄存器產(chǎn)生序列為(101001)。設(shè)明文為(011010),那么密文為(110011)。破譯者計算mc得到密鑰系列(101001),那么可以得到下列矩陣方程式:
得到c3=1,c2=0,c1=1,從而得到特征多項(xiàng)式:p(x)=x3+x+130線性反饋移位寄存器舉例一個周期的輸出序列100010011010111m序列產(chǎn)生器序列周期長,偽隨機(jī)特性好。LFSR的結(jié)構(gòu)過于簡單,只要攻擊者得到2n位密文和對應(yīng)的明文,就可以導(dǎo)出n級LFSR序列產(chǎn)生器的代數(shù)結(jié)構(gòu)。不適宜直接作為密鑰流產(chǎn)生器使用。315.4非線性序列簡介
線性移位寄存器序列密碼在已知明文攻擊下是可破譯的這一事實(shí)促使人們向非線性領(lǐng)域探索。目前研究的比較充分的由非線性移位寄存器,對線性移位寄存器進(jìn)行非線性組合等。為了使密鑰流生成器輸出的二元序列盡可能復(fù)雜,應(yīng)保證其周期盡可能大、線性復(fù)雜度和不可預(yù)測性盡可能高,因此常使用多個LFSR來構(gòu)造二元序列,稱每個LFSR的輸出序列為驅(qū)動序列,顯然密鑰流生成器輸出序列的周期不大于各驅(qū)動序列周期的乘積,因此,提高輸出序列的線性復(fù)雜度應(yīng)從極大化其周期開始。
1.Geffe序列生成器
Geffe序列生成器由3個LFSR組成(如下圖),其中LFSR2作為控制生成器使用。32當(dāng)LFSR2輸出1時,LFSR2與LFSR1相連接;當(dāng)LFSR2輸出0時,LFSR2與LFSR3相連接。
若設(shè)LFSRi的輸出序列為{a(i)k}(i=1,2,3),則輸出序列{bk}可以表示為:設(shè)LFSRi的特征多項(xiàng)式分別為ni次本原多項(xiàng)式,且ni兩兩互素,則Geffe序列的周期為
,線性復(fù)雜度為
。332.J-K觸發(fā)器
其中,x1和x2分別是J和K端的輸入。J-K觸發(fā)器如下圖所示,它的兩個輸入端分別用J和K表示,其輸出ck不僅依賴于輸入,還依賴于前一個輸出位ck-1,即在下圖中,令驅(qū)動序列{ak}和{bk}分別為m級和n級m序列,則有
利用J-K觸發(fā)器的非線性序列生成器
如果令c-1=0,則輸出序列的最初3項(xiàng)為:
當(dāng)m與n互素且a0+b0=1時,序列{ck}的周期為(2m-1)(2n-1)。343.Pless生成器
Pless生成器由8個LFSR、4個J-K觸發(fā)器和1個循環(huán)計數(shù)器構(gòu)成,由循環(huán)計數(shù)器進(jìn)行選通控制,如下圖所示。假定在時刻t輸出第t(mod4)個單元,則輸出序列為:a0b1c2d3a4b5d6355.鐘控發(fā)生器
鐘控發(fā)生器是由控制序列(由一個或多個移位寄存器來控制生成)的當(dāng)前值決定被采樣的序列寄存器移動次數(shù)(即由控制序列的當(dāng)前值確定采樣序列寄存器的時鐘脈沖數(shù)目)??刂菩蛄泻捅徊蓸有蛄锌梢允窃从谕粋€LFSR(稱為自控),也可以源于不同的LFSR(稱為他控),還可以相互控制(稱為互控)。鐘控發(fā)生器示意圖如下圖所示。36
當(dāng)控制序列當(dāng)前值為1時,被采樣序列生成器被時鐘驅(qū)動k次后輸出;當(dāng)控制序列當(dāng)前值為0時,被采樣序列生成器被時鐘驅(qū)動d次后輸出。
另外,停走式發(fā)生器也是一種鐘控模型,它由2個LFSR組成。其中,LFSR-1控制LFSR-2的時鐘輸入。
當(dāng)且僅當(dāng)LFSR-1的時間t-1的輸出為1時,LFSR-2在時間t改變狀態(tài)(也即LFSR-1輸出時鐘脈沖,使LFSR-2進(jìn)行輸出并反饋以改變移位寄存器的狀態(tài))。
375.收縮和自收縮發(fā)生器
收縮發(fā)生器是又控制序列的當(dāng)前值決定被采樣序列移位寄存器是否輸出。
該發(fā)生器由2個LFSR組成。LFSR-1、LFSR-2分別按各自時鐘運(yùn)行,LFSR-1在時間t-1時刻的輸出為1時,LFSR-2在時間t時刻輸出為密鑰流,否則舍去。
自收縮發(fā)生器從一個LFSR抽出2條序列,其中一條為控制序列,另一條為百采樣序列。當(dāng)控制序列輸出為1時,采樣序列輸出為密鑰流,否則舍去。此外,還有多路復(fù)合序列,這類序列也歸結(jié)為非線性組合序列。38基于LFSR的序列密碼非常適合于硬件實(shí)現(xiàn),但是不特別適合軟件實(shí)現(xiàn)。這導(dǎo)致出現(xiàn)了一些關(guān)于序列密碼被計劃用于快速軟件實(shí)現(xiàn)的新建議,因?yàn)檫@些建議大部分具有專利,因此這里不討論它們的技術(shù)細(xì)節(jié)。比較常用的序列密碼是A5、SEAL和RC4序列密碼算法,A5是典型的基于LFSR的序列密碼算法,SEAL和RC4不是基于LFSR的序列密碼算法,而是基于分組密碼的輸出反饋模式(OFB)和密碼反饋模式(CFB)來實(shí)現(xiàn)的。其他不基于LFSR的序列密碼生成器的安全性基于數(shù)論問題的難解性,這些生成器比基于LFSR的生成器要慢很多。5.5常用的序列密碼算法39A5序列密碼算法是利用歐洲數(shù)字蜂窩移動電話(GSM)加密的序列密碼算法,它用于從用戶手機(jī)至基站的連接加密,GSM會話每幀數(shù)據(jù)包含228比特,A5算法每次會話將產(chǎn)生228比特的密鑰,算法的密鑰長度為64比特,還包含有一個22比特的幀數(shù)。A5算法有兩個版本:強(qiáng)A5/1和弱A5/2。A5算法是一種典型的基于LFSR的序列密碼算法,它由三個LFSR組成,是一種集控制與停走于一體的鐘控模型,但是A5算法沒有完全公開,因而各種資料的描述也不盡相同,重要是第二個和第三個LFSR的聯(lián)接多項(xiàng)式以及鐘控的位置。A5算法的3個LFSR中LFSR-1、LFSR-2、LFSR-3的級數(shù)分別為19、22和23。LFSR-1的反饋抽頭是18、17、16、13,LFSR-2的反饋抽頭是21、20、16、12,LFSR-3的反饋抽頭是22、21、18、17(如下頁圖的數(shù)字表示抽頭的位置)。5.5.1A5序列密碼算法4041425.5.2SEAL序列密碼算法434445464748
5.5.3RC4序列密碼體制
RC4是RonRivest1987年為RSA設(shè)計,是一個可變密鑰長度、面向字節(jié)操作的序列密碼
基本思想:
對于n位長的字,它總共N=2n個可能的內(nèi)部置換狀態(tài)矢量S,這些狀態(tài)是保密的,密鑰流K由S中N個元素按照一定方式選出一個元素而生成。每生成一個K值,S中的元素就被重新置換一次密鑰調(diào)度算法(KSA)偽隨機(jī)數(shù)生成算法(PRGA)49密鑰調(diào)度算法KSAKSA算法描述如下:Fori=0toN-1doS[i]=i;j=0;Fori=0toN-1doJ=(j+S[i]+K[ImodL])modN;Swap(S[i],S[j])50偽隨機(jī)數(shù)生成算法PRGAi=0;J=0;While(true)i=(i+1)modN;J=(j+S[i])modN;Swap(S[i],S[j]);T=(S[i]+S[j])modN;Outputk=S[t];51實(shí)例525354RC4目前使用在:(1)SSL(安全套接字)中廣泛使用(2)WEP(WiredEquivalentPrivacy:有線對等保密)IEEE802.11(/159/2027659_1.shtml)55三、密鑰流的局部隨機(jī)性檢驗(yàn)真隨機(jī)序列的特性①統(tǒng)計的隨機(jī)性。即序列能夠通過數(shù)學(xué)上已知的所有的隨機(jī)性檢驗(yàn),滿足這個要求的序列稱為偽隨機(jī)序列。②不可預(yù)測性。即無論采用何種方法,也無法根據(jù)以前的任意多元素預(yù)測序列的下一個元素。③不可再生性。即使使用完全相同的輸入?yún)?shù),也無法產(chǎn)生完全相同的輸出序列。真隨機(jī)序列特性雖好,但難以在實(shí)際密碼系統(tǒng)中應(yīng)用。實(shí)際密碼系統(tǒng)中使用的密鑰流都是偽隨機(jī)序列。56三、密鑰流的局部隨機(jī)性檢驗(yàn)1、偽隨機(jī)序列的統(tǒng)計特性戈龍(Golomb)提出的三條隨機(jī)性公設(shè):①平衡特性。任何隨機(jī)的二元周期序列,在一個周期P內(nèi),不同元素出現(xiàn)的概率應(yīng)該是相同的。如果P為偶數(shù),一個周期內(nèi)所含有的“0”和“1”的個數(shù)應(yīng)該相等;如果P為奇數(shù),一個周期內(nèi)所含有的“0”和“1”的個數(shù)應(yīng)該只相差1個。57戈龍(Golomb)提出的三條隨機(jī)性公設(shè)②游程特性。游程是指一串相同的元素序列,其前導(dǎo)和后繼都不同,而相同元素的個數(shù)叫做游程的長度。由一串“1”構(gòu)成的游程叫做“1”游程(也叫塊組),由一串“0”構(gòu)成的游程叫做“0”游程(也叫間隔)。例如,序列“1110010”有1個長度為3的“1”游程(111)、1個長度為2的“0”游程(00)、1個長度為1的“1”游程(1)和1個長度為1的“0”游程(0)。任意隨機(jī)的二元周期序列,在一個周期P內(nèi),長度為n的游程數(shù)應(yīng)占游程總數(shù)的1/2n,并且對于每一種長度,“0”游程的個數(shù)應(yīng)和“1”游程的個數(shù)同樣多。58戈龍(Golomb)提出的三條隨機(jī)性公設(shè)③自相關(guān)特性。假定S是一個周期為P的二元序列,對于任意固定的τ,把S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年重慶市公務(wù)員考試《行測》真題及答案解析
- 體育運(yùn)動員贊助協(xié)議范本
- 2024版建筑居間合同范本
- 2024海灘租賃合同
- 彩色瓦片代理合同樣本
- 醫(yī)院食堂食品采購協(xié)議
- 建筑工程賠償協(xié)議樣本
- 個人勞動合同書
- 房屋建筑工程合同2024年
- 勞務(wù)派遣人員的合同2024年
- animals-動物-小學(xué)趣味英語課課件
- 板塊輪動與龍頭股戰(zhàn)法原理
- 雅魯藏布江大拐彎巨型水電站規(guī)劃方案
- 國家開放大學(xué)《心理與健康》形考任務(wù)1-3參考答案
- 飼料行業(yè)會計科目表B
- 河北省保定市藥品零售藥店企業(yè)藥房名單目錄
- 廣西基本醫(yī)療保險門診特殊慢性病申報表
- 分包單位資格報審表-填寫模板
- 幼兒園大班科學(xué):《樹葉為什么會變黃》課件
- 馬工程《馬克思主義發(fā)展史》課后習(xí)題答案
- 《培養(yǎng)良好的衛(wèi)生習(xí)慣》主題班會(30張)課件
評論
0/150
提交評論