序列密碼講解及事例_第1頁(yè)
序列密碼講解及事例_第2頁(yè)
序列密碼講解及事例_第3頁(yè)
序列密碼講解及事例_第4頁(yè)
序列密碼講解及事例_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1第五講:第五講:序列密碼序列密碼2 人們?cè)噲D用序列密碼方式仿效”一次一密”密碼. 從而促成了序列密碼的研究和發(fā)展. 序列密碼是世界軍事, 外交等領(lǐng)域應(yīng)用的主流密碼體制. 在通常的序列密碼中, 加解密用的密鑰序列是偽隨機(jī)序列, 它的產(chǎn)生容易且有較成熟的理論工具, 所以序列密碼是當(dāng)前通用的密碼系統(tǒng). 序列密碼的安全性主要依賴于密鑰序列, 因而什么樣的偽隨機(jī)序列是安全可靠的密鑰序列, 以及如何實(shí)現(xiàn)這種序列就成了序列密碼中研究的一個(gè)主要方面.3 在密碼學(xué)都要涉及到隨機(jī)數(shù)?因?yàn)樵S多密碼系統(tǒng)的安全性都依在密碼學(xué)都要涉及到隨機(jī)數(shù)?因?yàn)樵S多密碼系統(tǒng)的安全性都依賴于隨機(jī)數(shù)的生成,例如賴于隨機(jī)數(shù)的生成,例如DE

2、S加密算法中的密鑰,加密算法中的密鑰,RSA加密和數(shù)字加密和數(shù)字簽名中的素?cái)?shù)。簽名中的素?cái)?shù)。 5.1.1 隨機(jī)數(shù)的使用隨機(jī)數(shù)的使用 序列密碼的保密性完全取決于密鑰的隨機(jī)性。序列密碼的保密性完全取決于密鑰的隨機(jī)性。如果密鑰是真正如果密鑰是真正的隨機(jī)數(shù),則這種體制在理論上就是不可破譯的。的隨機(jī)數(shù),則這種體制在理論上就是不可破譯的。但這種方式所需但這種方式所需的密鑰量大得驚人,在實(shí)際中是不可行的。的密鑰量大得驚人,在實(shí)際中是不可行的。 目前一般采用偽隨機(jī)序列來(lái)代替隨機(jī)序列作為密鑰序列,也就目前一般采用偽隨機(jī)序列來(lái)代替隨機(jī)序列作為密鑰序列,也就是序列存在著一定的循環(huán)周期。是序列存在著一定的循環(huán)周期。這

3、樣序列周期的長(zhǎng)短就成為保密性這樣序列周期的長(zhǎng)短就成為保密性的關(guān)鍵。如果周期足夠長(zhǎng),就會(huì)有比較好的保密性。的關(guān)鍵。如果周期足夠長(zhǎng),就會(huì)有比較好的保密性?,F(xiàn)在周期小于現(xiàn)在周期小于1010的序列很少被采用,周期長(zhǎng)達(dá)的序列很少被采用,周期長(zhǎng)達(dá)1050的序列也并不少見(jiàn)。的序列也并不少見(jiàn)。 4 何謂偽隨機(jī)數(shù)生成器(何謂偽隨機(jī)數(shù)生成器(PRNG)?)?假定需要生成介于假定需要生成介于1和和 10 之之間的隨機(jī)數(shù),每一個(gè)數(shù)出現(xiàn)的幾率都是一樣的。間的隨機(jī)數(shù),每一個(gè)數(shù)出現(xiàn)的幾率都是一樣的。理想情況下,應(yīng)生理想情況下,應(yīng)生成成0到到1之間的一個(gè)值,不考慮以前值,這個(gè)范圍中的每一個(gè)值出現(xiàn)之間的一個(gè)值,不考慮以前值,這

4、個(gè)范圍中的每一個(gè)值出現(xiàn)的幾率都是一樣的,然后再將該值乘以的幾率都是一樣的,然后再將該值乘以 10。 由任何偽隨機(jī)數(shù)生成器返回的數(shù)目會(huì)受到由任何偽隨機(jī)數(shù)生成器返回的數(shù)目會(huì)受到 0 到到 N 之間整數(shù)數(shù)目的之間整數(shù)數(shù)目的限制。限制。因?yàn)槌R?jiàn)情況下,偽隨機(jī)數(shù)生成器生成因?yàn)槌R?jiàn)情況下,偽隨機(jī)數(shù)生成器生成 0 0 到到 N N 之間的一個(gè)之間的一個(gè)整數(shù),返回的整數(shù)再除以整數(shù),返回的整數(shù)再除以 N N。可以得出的數(shù)字總是處于可以得出的數(shù)字總是處于 0 0 和和 1 1 之之間。間。對(duì)生成器隨后的調(diào)用采用第一次運(yùn)行產(chǎn)生的整數(shù),并將它傳給對(duì)生成器隨后的調(diào)用采用第一次運(yùn)行產(chǎn)生的整數(shù),并將它傳給一個(gè)函數(shù),以生成一

5、個(gè)函數(shù),以生成 0 0 到到 N N 之間的一個(gè)新整數(shù),然后再將新整數(shù)除之間的一個(gè)新整數(shù),然后再將新整數(shù)除以以 N N 返回。返回。 5.1.2 偽隨機(jī)數(shù)產(chǎn)生器5 目前,常見(jiàn)隨機(jī)數(shù)發(fā)生器中目前,常見(jiàn)隨機(jī)數(shù)發(fā)生器中N 是是2321 (大約等于(大約等于 40 億),對(duì)億),對(duì)于于 32 位數(shù)字來(lái)說(shuō),這是最大的值。位數(shù)字來(lái)說(shuō),這是最大的值。但在密碼學(xué)領(lǐng)域,但在密碼學(xué)領(lǐng)域, 40 億個(gè)數(shù)根億個(gè)數(shù)根本不算大!本不算大! 偽隨機(jī)數(shù)生成器將作為偽隨機(jī)數(shù)生成器將作為“種子種子”的數(shù)當(dāng)作初始整數(shù)傳給函數(shù)。的數(shù)當(dāng)作初始整數(shù)傳給函數(shù)。由由偽隨機(jī)數(shù)生成器返回的每一個(gè)值完全由它返回的前一個(gè)值所決定。偽隨機(jī)數(shù)生成器返回

6、的每一個(gè)值完全由它返回的前一個(gè)值所決定。因此,最初的種子決定了這個(gè)隨機(jī)數(shù)序列。因此,最初的種子決定了這個(gè)隨機(jī)數(shù)序列。如果知道用于計(jì)算任何如果知道用于計(jì)算任何一個(gè)值的那個(gè)整數(shù),那么就可以算出從這個(gè)生成器返回的下一個(gè)值。一個(gè)值的那個(gè)整數(shù),那么就可以算出從這個(gè)生成器返回的下一個(gè)值。 偽隨機(jī)數(shù)生成器是一個(gè)生成完全可預(yù)料的數(shù)列(稱為流)的確定偽隨機(jī)數(shù)生成器是一個(gè)生成完全可預(yù)料的數(shù)列(稱為流)的確定性程序。性程序。一個(gè)編寫(xiě)得很好的的一個(gè)編寫(xiě)得很好的的PRNGPRNG可以創(chuàng)建一個(gè)序列,而這個(gè)序列可以創(chuàng)建一個(gè)序列,而這個(gè)序列的屬性與許多真正隨機(jī)數(shù)的序列的屬性是一樣的。的屬性與許多真正隨機(jī)數(shù)的序列的屬性是一樣的

7、。 例如:(例如:(1 1)PRNGPRNG可以以相同幾率在一個(gè)范圍內(nèi)生成任何數(shù)字;可以以相同幾率在一個(gè)范圍內(nèi)生成任何數(shù)字;(2 2)PRNG PRNG 可以生成帶任何統(tǒng)計(jì)分布的流;(可以生成帶任何統(tǒng)計(jì)分布的流;(3 3)由)由PRNGPRNG生成的數(shù)生成的數(shù)字流不具備可辨別的模。字流不具備可辨別的模。65.1.3 基于密碼算法的隨機(jī)數(shù)產(chǎn)生器 1使用軟件方法的隨機(jī)數(shù)產(chǎn)生器使用軟件方法的隨機(jī)數(shù)產(chǎn)生器 一個(gè)常用的隨機(jī)數(shù)產(chǎn)生器是屬于線形擬合生成器一類的。一個(gè)常用的隨機(jī)數(shù)產(chǎn)生器是屬于線形擬合生成器一類的。這這類生成器相當(dāng)普遍,它們采用很具體的數(shù)學(xué)公式:類生成器相當(dāng)普遍,它們采用很具體的數(shù)學(xué)公式: Xn

8、+1 = (aXn + b) mod c即第即第 n+1 個(gè)數(shù)等于第個(gè)數(shù)等于第 n 個(gè)數(shù)乘以某個(gè)常數(shù)個(gè)數(shù)乘以某個(gè)常數(shù) a,再加上常數(shù),再加上常數(shù) b。如果結(jié)果大于或等于某個(gè)常數(shù)如果結(jié)果大于或等于某個(gè)常數(shù) c,那么通過(guò)除以,那么通過(guò)除以 c,并取它的余數(shù),并取它的余數(shù)來(lái)將這個(gè)值限制在一定范圍內(nèi)。來(lái)將這個(gè)值限制在一定范圍內(nèi)。注意:注意:a、b 和和 c 通常是質(zhì)數(shù)。通常是質(zhì)數(shù)。 2使用硬件方法的隨機(jī)數(shù)產(chǎn)生器使用硬件方法的隨機(jī)數(shù)產(chǎn)生器 目前生成隨機(jī)數(shù)的幾種硬件設(shè)備都是用于商業(yè)用途。目前生成隨機(jī)數(shù)的幾種硬件設(shè)備都是用于商業(yè)用途。得到廣泛使得到廣泛使用的設(shè)備是用的設(shè)備是 ComScire QNG,它是使

9、用并行端口連接到,它是使用并行端口連接到 PC 的外部設(shè)備,的外部設(shè)備,它可以在每秒鐘生成它可以在每秒鐘生成 20,000 位,這對(duì)于大多數(shù)注重安全性的應(yīng)用程序來(lái)位,這對(duì)于大多數(shù)注重安全性的應(yīng)用程序來(lái)說(shuō)已經(jīng)足夠了。說(shuō)已經(jīng)足夠了。 另外另外Intel 公司宣布他們將開(kāi)始在其芯片組中添加基于熱能的硬件公司宣布他們將開(kāi)始在其芯片組中添加基于熱能的硬件隨機(jī)數(shù)發(fā)生器,而且基本上不會(huì)增加客戶的成本。迄今為止,已經(jīng)交付隨機(jī)數(shù)發(fā)生器,而且基本上不會(huì)增加客戶的成本。迄今為止,已經(jīng)交付了一些帶有硬件了一些帶有硬件 PRNG 的的 CPU。 75.1.4 偽隨機(jī)數(shù)的評(píng)價(jià)標(biāo)準(zhǔn) (1)看起來(lái)是隨機(jī)的,表明它可以通過(guò)所有

10、隨機(jī)性統(tǒng)計(jì)檢驗(yàn)。)看起來(lái)是隨機(jī)的,表明它可以通過(guò)所有隨機(jī)性統(tǒng)計(jì)檢驗(yàn)。 現(xiàn)在的許多統(tǒng)計(jì)測(cè)試現(xiàn)在的許多統(tǒng)計(jì)測(cè)試。它們采用了各種形式,但共同思路是它們。它們采用了各種形式,但共同思路是它們?nèi)家越y(tǒng)計(jì)方式檢查來(lái)自發(fā)生器的數(shù)據(jù)流,嘗試發(fā)現(xiàn)數(shù)據(jù)是否是隨全都以統(tǒng)計(jì)方式檢查來(lái)自發(fā)生器的數(shù)據(jù)流,嘗試發(fā)現(xiàn)數(shù)據(jù)是否是隨機(jī)的。機(jī)的。 確保數(shù)據(jù)流隨機(jī)性的最廣為人知的測(cè)試套件就是確保數(shù)據(jù)流隨機(jī)性的最廣為人知的測(cè)試套件就是 George Marsaglia 的的 DIEHARD 軟件包(請(qǐng)參閱軟件包(請(qǐng)參閱/ pub/diehard/)。)。另一個(gè)適合此類測(cè)試的合理軟件包是另一個(gè)

11、適合此類測(cè)試的合理軟件包是 pLab(請(qǐng)參(請(qǐng)參閱閱http:/random.mat.sbg.ac.at/tests/)。)。 (2)它是不可預(yù)測(cè)的。)它是不可預(yù)測(cè)的。即使給出產(chǎn)生序列的算法或硬件和所有以即使給出產(chǎn)生序列的算法或硬件和所有以前產(chǎn)生的比特流的全部知識(shí),也不可能通過(guò)計(jì)算來(lái)預(yù)測(cè)下一個(gè)隨機(jī)前產(chǎn)生的比特流的全部知識(shí),也不可能通過(guò)計(jì)算來(lái)預(yù)測(cè)下一個(gè)隨機(jī)比特應(yīng)是什么。比特應(yīng)是什么。 (3)它不能可靠地重復(fù)產(chǎn)生。)它不能可靠地重復(fù)產(chǎn)生。如果用完全同樣的輸入對(duì)序列產(chǎn)生如果用完全同樣的輸入對(duì)序列產(chǎn)生器操作兩次將得到兩個(gè)不相關(guān)的隨機(jī)序列。器操作兩次將得到兩個(gè)不相關(guān)的隨機(jī)序列。 85.2 序列密碼的概念

12、及模型 序列密碼算法將明文逐位轉(zhuǎn)換成密文,如下圖所示。序列密碼算法將明文逐位轉(zhuǎn)換成密文,如下圖所示。m m 密鑰流發(fā)生器(也稱為滾動(dòng)密鑰發(fā)生器)輸出一系列比特流:密鑰流發(fā)生器(也稱為滾動(dòng)密鑰發(fā)生器)輸出一系列比特流:K1,K2,K3,Ki 。密鑰流(也稱為滾動(dòng)密鑰)跟明文比特流,。密鑰流(也稱為滾動(dòng)密鑰)跟明文比特流,m1,m2,m3,mi ,進(jìn)行異或運(yùn)算產(chǎn)生密文比特流。,進(jìn)行異或運(yùn)算產(chǎn)生密文比特流。 加密:加密: C i =mi K i 在解密端,密文流與完全相同的密鑰流異或運(yùn)算恢復(fù)出明文流。在解密端,密文流與完全相同的密鑰流異或運(yùn)算恢復(fù)出明文流。 解密:解密: m i =C i K i 顯

13、然,顯然,mi K i K i =m i9 事實(shí)上,事實(shí)上,序列密碼算法其安全性依賴于簡(jiǎn)單的異或運(yùn)算和一次序列密碼算法其安全性依賴于簡(jiǎn)單的異或運(yùn)算和一次一密亂碼本。一密亂碼本。密鑰流發(fā)生器生成的看似隨機(jī)的密鑰流實(shí)際上是確定密鑰流發(fā)生器生成的看似隨機(jī)的密鑰流實(shí)際上是確定的,在解密的時(shí)候能很好的將其再現(xiàn)。的,在解密的時(shí)候能很好的將其再現(xiàn)。密鑰流發(fā)生器輸出的密鑰越密鑰流發(fā)生器輸出的密鑰越接近隨機(jī),對(duì)密碼分析者來(lái)說(shuō)就越困難。接近隨機(jī),對(duì)密碼分析者來(lái)說(shuō)就越困難。 如果密鑰流發(fā)生器每次都生成同樣的密鑰流的話,對(duì)攻擊來(lái)說(shuō),如果密鑰流發(fā)生器每次都生成同樣的密鑰流的話,對(duì)攻擊來(lái)說(shuō),破譯該算法就容易了。破譯該算法

14、就容易了。 假的假的AliceAlice得到一份密文和相應(yīng)的明文,她就可以將兩者異或得到一份密文和相應(yīng)的明文,她就可以將兩者異或恢復(fù)出密鑰流?;謴?fù)出密鑰流?;蛘撸绻袃蓚€(gè)用同一個(gè)密鑰流加密的密文,或者,如果她有兩個(gè)用同一個(gè)密鑰流加密的密文,她就可以讓兩者異或得到兩個(gè)明文互相異或而成的消息。她就可以讓兩者異或得到兩個(gè)明文互相異或而成的消息。這是很容這是很容易破譯的,接著她就可以用明文跟密文異或得出密鑰流。易破譯的,接著她就可以用明文跟密文異或得出密鑰流。 現(xiàn)在,無(wú)論她再攔截到什么密文消息,她都可以用她所擁有的現(xiàn)在,無(wú)論她再攔截到什么密文消息,她都可以用她所擁有的密鑰流進(jìn)行解密。密鑰流進(jìn)行解密

15、。另外,她還可以解密,并閱讀以前截獲到的消息另外,她還可以解密,并閱讀以前截獲到的消息。一旦一旦AliceAlice得到一明文得到一明文/ /密文對(duì),她就可以讀懂任何東西了。密文對(duì),她就可以讀懂任何東西了。10 這就是為什么所有序列密碼也有密鑰的原因。這就是為什么所有序列密碼也有密鑰的原因。密鑰流發(fā)生器的密鑰流發(fā)生器的輸出是密鑰的函數(shù)。輸出是密鑰的函數(shù)。 這樣,這樣,AliceAlice有一個(gè)明文有一個(gè)明文/ /密文對(duì),但她只能讀到用特定密鑰加密文對(duì),但她只能讀到用特定密鑰加密的消息。密的消息。 更換密鑰,攻擊者就不得不重新分析。更換密鑰,攻擊者就不得不重新分析。 流密碼強(qiáng)度完全依賴于密鑰序列

16、的隨機(jī)性隨機(jī)性(Randomness)和不不可預(yù)測(cè)性可預(yù)測(cè)性(Unpredictability)。 核心問(wèn)題是密鑰流生成器的設(shè)計(jì)核心問(wèn)題是密鑰流生成器的設(shè)計(jì)。 保持收發(fā)兩端密鑰流的精確同步是實(shí)現(xiàn)可靠解密的關(guān)鍵技術(shù)保持收發(fā)兩端密鑰流的精確同步是實(shí)現(xiàn)可靠解密的關(guān)鍵技術(shù)。11流密碼的分類流密碼的分類: 1. 1.自同步序列密碼自同步序列密碼 自同步序列密碼就是密鑰流的每一位是前面固定數(shù)量密文位的自同步序列密碼就是密鑰流的每一位是前面固定數(shù)量密文位的函數(shù),下圖和下頁(yè)圖描述了其工作原理。函數(shù),下圖和下頁(yè)圖描述了其工作原理。其中,內(nèi)部狀態(tài)是前面其中,內(nèi)部狀態(tài)是前面n比特密文的函數(shù)。該算法的密碼復(fù)雜性在于輸

17、出函數(shù),它收到內(nèi)部比特密文的函數(shù)。該算法的密碼復(fù)雜性在于輸出函數(shù),它收到內(nèi)部狀態(tài)后生成密鑰序列位。狀態(tài)后生成密鑰序列位。12自同步流密碼自同步流密碼SSSC(Self-Synchronous Stream Cipher) 內(nèi)部狀態(tài)i依賴于(k kI,i-1,mi),使密文ci不僅與當(dāng)前輸入mi有關(guān),而且由于ki對(duì)i的關(guān)系而與以前的輸入m1, m2 ,mi-1有關(guān)。一般在有限的n級(jí)存儲(chǔ)下將與mi-1,mi-n有關(guān)。13特點(diǎn)特點(diǎn): 密鑰流不僅依賴于種子密鑰和密鑰流產(chǎn)生器的結(jié)構(gòu),還密鑰流不僅依賴于種子密鑰和密鑰流產(chǎn)生器的結(jié)構(gòu),還與密文流(或明文流)有關(guān)。初始向量與密文流(或明文流)有關(guān)。初始向量IV

18、在這里相當(dāng)在這里相當(dāng)于初始密文的作用,要求收、發(fā)雙方必須相同。于初始密文的作用,要求收、發(fā)雙方必須相同。 自同步。解密只取決于先前特定數(shù)量的密文字符,因此,自同步。解密只取決于先前特定數(shù)量的密文字符,因此,即使出現(xiàn)刪除、插入等非法攻擊,收方最終都能夠自動(dòng)即使出現(xiàn)刪除、插入等非法攻擊,收方最終都能夠自動(dòng)重建同步解密,因而收、發(fā)雙方不再需要外部同步。重建同步解密,因而收、發(fā)雙方不再需要外部同步。 有差錯(cuò)傳播。因?yàn)槊荑€流與密文流有關(guān),所以一個(gè)密文有差錯(cuò)傳播。因?yàn)槊荑€流與密文流有關(guān),所以一個(gè)密文的傳輸錯(cuò)誤會(huì)影響下面有限個(gè)密文的解密。的傳輸錯(cuò)誤會(huì)影響下面有限個(gè)密文的解密。 14自同步序列密碼舉例自同步序

19、列密碼舉例例例 假設(shè)種子密鑰為假設(shè)種子密鑰為k=hk=h,之后的密鑰是上一個(gè)密文。采用移位密,之后的密鑰是上一個(gè)密文。采用移位密碼,明文為碼,明文為cryptographycryptography,列表給出它的加密和解密過(guò)程。,列表給出它的加密和解密過(guò)程。一個(gè)字符的差錯(cuò)傳播一個(gè)字符的差錯(cuò)傳播 不需要同步不需要同步15 2同步序列密碼同步序列密碼在同步序列密碼中,密鑰流的產(chǎn)生獨(dú)立于明文和密文。分組加密的在同步序列密碼中,密鑰流的產(chǎn)生獨(dú)立于明文和密文。分組加密的OFBOFB模模式就是一個(gè)同步序列加密的例子。式就是一個(gè)同步序列加密的例子。1 1)同步要求。在一個(gè)同步序列密碼中,發(fā)送方和接收方必須是同

20、步的,)同步要求。在一個(gè)同步序列密碼中,發(fā)送方和接收方必須是同步的,用同樣的密鑰且該秘鑰操作在同樣的位置,才能保證解密。如果在傳輸過(guò)用同樣的密鑰且該秘鑰操作在同樣的位置,才能保證解密。如果在傳輸過(guò)程中密文字符有插入或刪除導(dǎo)致同步丟失,則解密失敗,且只能通過(guò)重新程中密文字符有插入或刪除導(dǎo)致同步丟失,則解密失敗,且只能通過(guò)重新同步來(lái)實(shí)現(xiàn)恢復(fù)。同步來(lái)實(shí)現(xiàn)恢復(fù)。2 2)無(wú)錯(cuò)誤傳輸。在傳輸期間,一個(gè)密文字符被改變只影響該字符的恢復(fù),)無(wú)錯(cuò)誤傳輸。在傳輸期間,一個(gè)密文字符被改變只影響該字符的恢復(fù),不會(huì)對(duì)后繼字符產(chǎn)生影響。不會(huì)對(duì)后繼字符產(chǎn)生影響。16 2同步序列密碼同步序列密碼 同步流密碼同步流密碼SSC(

21、Synchronous Stream Cipher): 內(nèi)部狀態(tài)i與明文消息無(wú)關(guān),密鑰流將獨(dú)立于明文。特點(diǎn):特點(diǎn):對(duì)于明文而言,這類加密變換是無(wú)記憶的無(wú)記憶的。但它是時(shí)變的時(shí)變的。只有保持兩端精確同步才能正常工作。對(duì)主動(dòng)攻擊時(shí)異常敏感而有利于檢測(cè)無(wú)差錯(cuò)傳播差錯(cuò)傳播( (Error Propagation) )17 同步序列密碼同樣可防止密文中的插入和刪除,同步序列密碼同樣可防止密文中的插入和刪除,因?yàn)樗鼈儠?huì)使系統(tǒng)因?yàn)樗鼈儠?huì)使系統(tǒng)失去同步而立即被發(fā)現(xiàn)。失去同步而立即被發(fā)現(xiàn)。然而,卻不能避免單個(gè)位被竄改。然而,卻不能避免單個(gè)位被竄改。優(yōu)點(diǎn)優(yōu)點(diǎn):具有自同步能力,強(qiáng)化了其抗統(tǒng)計(jì)分析的能力缺點(diǎn)缺點(diǎn):有n

22、位長(zhǎng)的差錯(cuò)傳播。 密碼設(shè)計(jì)者的最大愿望是設(shè)計(jì)出一個(gè)滾動(dòng)密鑰生成器,使得密鑰經(jīng)其擴(kuò)展成的密鑰流序列具有如下性質(zhì):極大的周期良好的統(tǒng)計(jì)特性抗線性分析抗統(tǒng)計(jì)分析。18195.3 5.3 線性反饋移位寄存器線性反饋移位寄存器( (linear feedback shift registerlinear feedback shift register,LFSRLFSR) ) nnnnnacacacaca1122111)2(,GFcaii異或表達(dá)式異或表達(dá)式-線性反饋線性反饋如果如果n n級(jí)線性反級(jí)線性反饋移位寄存器產(chǎn)饋移位寄存器產(chǎn)生的輸出序列的生的輸出序列的周期為周期為2 2n n-1-1,則,則稱為稱

23、為m m序列產(chǎn)生器。序列產(chǎn)生器。m m序列不僅周期序列不僅周期長(zhǎng),而且偽隨機(jī)長(zhǎng),而且偽隨機(jī)特性好,這正是特性好,這正是序列密碼的密鑰序列密碼的密鑰流所需要的特性。流所需要的特性。 205.3 線性反饋移位寄存器 產(chǎn)生密鑰序列的最重要部件是線性反饋移位寄存器(LFSR),是因?yàn)? (1) LFSR非常適合于硬件實(shí)現(xiàn); (2) 能產(chǎn)生大的周期序列; (3) 能產(chǎn)生較好統(tǒng)計(jì)特性的序列; (4) 其結(jié)構(gòu)能應(yīng)用代數(shù)方法進(jìn)行很好的分析. 移位寄存器是流密碼產(chǎn)生密鑰流的一個(gè)主要組成部分。移位寄存器是流密碼產(chǎn)生密鑰流的一個(gè)主要組成部分。GF(2)上一個(gè)上一個(gè)n級(jí)反饋移位寄存器由級(jí)反饋移位寄存器由n個(gè)二元存儲(chǔ)器

24、與一個(gè)反饋函數(shù)個(gè)二元存儲(chǔ)器與一個(gè)反饋函數(shù)f(a1,a2,an)組成,如下頁(yè)圖所示。組成,如下頁(yè)圖所示。 21 每一存儲(chǔ)器稱為移位寄存器的一級(jí),在任一時(shí)刻,這些級(jí)的內(nèi)容每一存儲(chǔ)器稱為移位寄存器的一級(jí),在任一時(shí)刻,這些級(jí)的內(nèi)容構(gòu)成該反饋移位寄存器的狀態(tài),構(gòu)成該反饋移位寄存器的狀態(tài),每一狀態(tài)對(duì)應(yīng)于每一狀態(tài)對(duì)應(yīng)于GF(2)上的一個(gè)上的一個(gè)n維維向量,共有向量,共有2n種可能的狀態(tài)。種可能的狀態(tài)。 每一時(shí)刻的狀態(tài)可用每一時(shí)刻的狀態(tài)可用n長(zhǎng)序列長(zhǎng)序列“a1,a2,an ”n維向量維向量“(a1,a2,an)”來(lái)表示,來(lái)表示,其中其中ai是第是第i級(jí)存儲(chǔ)器的內(nèi)容級(jí)存儲(chǔ)器的內(nèi)容。 初始狀態(tài)由用戶確定,當(dāng)?shù)诔跏?/p>

25、狀態(tài)由用戶確定,當(dāng)?shù)趇個(gè)移位時(shí)鐘脈沖到來(lái)時(shí),個(gè)移位時(shí)鐘脈沖到來(lái)時(shí),每一級(jí)存每一級(jí)存儲(chǔ)器儲(chǔ)器ai都將其內(nèi)容向下一級(jí)都將其內(nèi)容向下一級(jí)ai-1傳遞,并計(jì)算傳遞,并計(jì)算f(a1,a2,an)作為下一時(shí)作為下一時(shí)刻的刻的an。22 反饋函數(shù)反饋函數(shù)f(a1,a2,an)是是n元布爾函數(shù),元布爾函數(shù),即即n個(gè)變?cè)獋€(gè)變?cè)猘1,a2,an 可以可以獨(dú)立地取獨(dú)立地取0和和1兩個(gè)可能的值兩個(gè)可能的值,函數(shù)中的運(yùn)算有邏輯與、邏輯或、邏,函數(shù)中的運(yùn)算有邏輯與、邏輯或、邏輯補(bǔ)等運(yùn)算,最后的函數(shù)值也為輯補(bǔ)等運(yùn)算,最后的函數(shù)值也為0或或1。 例:下例:下圖是一個(gè)3級(jí)反饋移位寄存器,其初始狀態(tài)為(a1,a2,a3)= (1

26、,0,1),輸出可由下表求出。 即輸出序列為即輸出序列為101110111011,周期為,周期為4。23 如果如果f(a1,a2,an)是是(a1,a2,an)的線性函數(shù),則稱之為線性反饋的線性函數(shù),則稱之為線性反饋移位寄存器移位寄存器LFSR(linear feedback shift register),),否則稱為非線否則稱為非線性移位寄存器。性移位寄存器。此時(shí)此時(shí)f可寫(xiě)為:可寫(xiě)為: f(a1,a2,an)=cna1 cn-1a2 c1an 其中常數(shù)其中常數(shù)ci=0或或1, 是模是模2加法。加法。ci=0或或1可用開(kāi)關(guān)的斷開(kāi)和閉可用開(kāi)關(guān)的斷開(kāi)和閉合來(lái)實(shí)現(xiàn),合來(lái)實(shí)現(xiàn),如下圖所示如下圖所示,

27、這樣的線性函數(shù)共有,這樣的線性函數(shù)共有2n個(gè)。個(gè)。24 輸出序列輸出序列at滿足:滿足:an+t=cnat cn-1at+1 c1an+t-1 其中,其中,t為非負(fù)正整數(shù)。為非負(fù)正整數(shù)。 線性反饋移位寄存器因其實(shí)現(xiàn)簡(jiǎn)單、速度快、有較為成熟的理線性反饋移位寄存器因其實(shí)現(xiàn)簡(jiǎn)單、速度快、有較為成熟的理論等優(yōu)點(diǎn)而成為構(gòu)造密鑰流生成器的最重要的部件之一。論等優(yōu)點(diǎn)而成為構(gòu)造密鑰流生成器的最重要的部件之一。例:例:下圖是一個(gè)5級(jí)線性反饋移位寄存器,其初始狀態(tài)為(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出輸出序列為1001101001000010 101110110001111100110

28、,周期為31。25 在線性反饋移位寄存器中總是假定在線性反饋移位寄存器中總是假定c1,c2,cn中至少有一個(gè)不為中至少有一個(gè)不為0,否則,否則f(a1,a2,an)0,這樣的話,在,這樣的話,在n個(gè)脈沖后狀態(tài)必然是個(gè)脈沖后狀態(tài)必然是000,且這個(gè)狀態(tài)必將一直持續(xù)下去。,且這個(gè)狀態(tài)必將一直持續(xù)下去。 若只有一個(gè)系數(shù)不為若只有一個(gè)系數(shù)不為0,設(shè)僅有,設(shè)僅有cj不為不為0,實(shí)際上是一種延遲裝置,實(shí)際上是一種延遲裝置。一般對(duì)于。一般對(duì)于n級(jí)線性反饋移位寄存器,總是假定級(jí)線性反饋移位寄存器,總是假定cn=1。 n級(jí)線性反饋移位寄存器的狀態(tài)周期小于等于級(jí)線性反饋移位寄存器的狀態(tài)周期小于等于2n-1。輸出序

29、列的周。輸出序列的周期與狀態(tài)周期相等,也小于等于期與狀態(tài)周期相等,也小于等于2n-1。只要選擇合適的反饋函數(shù)便。只要選擇合適的反饋函數(shù)便可使序列的周期達(dá)到最大值可使序列的周期達(dá)到最大值2n-1。 定義定義1:n級(jí)線性反饋移位寄存器產(chǎn)生的序列級(jí)線性反饋移位寄存器產(chǎn)生的序列ai的周期達(dá)到最大的周期達(dá)到最大值值2n-1時(shí),稱時(shí),稱ai為為n級(jí)級(jí)m序列。序列。26 根據(jù)密碼學(xué)需要,對(duì)于線性移位寄存器需考慮以下問(wèn)題:根據(jù)密碼學(xué)需要,對(duì)于線性移位寄存器需考慮以下問(wèn)題: (1)如何利用級(jí)數(shù)盡可能小的線性移位寄存器產(chǎn)生周期長(zhǎng)、)如何利用級(jí)數(shù)盡可能小的線性移位寄存器產(chǎn)生周期長(zhǎng)、統(tǒng)計(jì)性能好的序列;統(tǒng)計(jì)性能好的序列

30、; (2)已知一個(gè)序列)已知一個(gè)序列ai,如何構(gòu)造一個(gè)盡可能短的線性移位,如何構(gòu)造一個(gè)盡可能短的線性移位寄存器來(lái)產(chǎn)生它。寄存器來(lái)產(chǎn)生它。 因?yàn)橐驗(yàn)閚級(jí)線性移位寄存器的輸出序列級(jí)線性移位寄存器的輸出序列ai滿足遞推關(guān)系:滿足遞推關(guān)系: an+k=c1an+k-1 c2a n+k-2 cnak,對(duì)任何,對(duì)任何k1成立。成立。 這種遞推關(guān)系可用一個(gè)一元高次多項(xiàng)式這種遞推關(guān)系可用一個(gè)一元高次多項(xiàng)式 p(x)=1+c1x+cn-1xn-1cnxn 表示,稱這個(gè)多項(xiàng)式為表示,稱這個(gè)多項(xiàng)式為L(zhǎng)FSR的特征多項(xiàng)式。的特征多項(xiàng)式。 由于由于aiGF(2) (i =1, 2, n),所以共有,所以共有2n組初始狀

31、態(tài),即有組初始狀態(tài),即有2n個(gè)遞推序列,個(gè)遞推序列,其中非恒零的有其中非恒零的有2n-1個(gè),記個(gè),記2n-1個(gè)非零序列的全體為個(gè)非零序列的全體為G(p(x)。27 定義定義2:給定序列ai,冪級(jí)數(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-1cnxn是GF(2)上的多項(xiàng)式,G(p(x)中任一序列ai的生成函數(shù)A(x)滿足: A(x)=(x)/p(x),其中 =(a1+a2x+anxn-1)+c1x(a1+a2x+an1xn-2) + c2x(a1+a2x+a

32、n2xn-3)+cn-1xn-1a1。 定理1說(shuō)明了n級(jí)線性移位寄存器的特征多項(xiàng)式和它的生成函數(shù)之間的關(guān)系。 定理定理2:若序列ai的特征多項(xiàng)式p(x)定義在GF(2)上,p是p(x)的周期,則ai的周期r | p。 n級(jí)LFSR輸出序列的周期r不依賴于初始條件,而依賴于特征多項(xiàng)式p(x)。我們感興趣的是LFSR遍歷2n-1個(gè)非零狀態(tài),這時(shí)序列的周期達(dá)到最大2n-1,這種序列就是m序列。28 例例3:設(shè)設(shè)f(x)=x4+x3+x2+x+1是是GF(2)上的不可約多項(xiàng)式,但是它上的不可約多項(xiàng)式,但是它的輸出序列是的輸出序列是000110001100011,周期是,周期是5,不是,不是m序列。序列

33、。 解:f(x)的不可約性由多項(xiàng)式x,x+1, x2+x+1不能整除f(x)而得。對(duì)于k5,輸出序列用ak=ak-1a k-2a k-3ak4 檢驗(yàn)即可。 定義定義4:僅能被非零常數(shù)或者本身的常數(shù)倍除盡,不能被其他多項(xiàng)式整除的多項(xiàng)式稱為不可約多項(xiàng)式。 特征多項(xiàng)式滿足什么條件時(shí),特征多項(xiàng)式滿足什么條件時(shí),LFSR的輸出序列為的輸出序列為m序列。序列。 定理定理3:n級(jí)LFSR產(chǎn)生的序列有最大周期2n-1的必要條件是其特征多項(xiàng)式為不可約多項(xiàng)式。 該定理的逆不成立,即LFSR產(chǎn)生的特征多項(xiàng)式為不可約多項(xiàng)式,但其輸出序列不一定是m序列。 29 定義定義5:若n次不可約多項(xiàng)式p(x)的階為2n-1,稱其

34、為n次本原多項(xiàng)式。 定理定理4:ai為n級(jí)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),但是不存在l15,使得p(x)|(xl-1),所以p(x)階是15。 p(x)的不可約性由x,x+1, x2+x+1不能整除p(x)而得,因此p(x)是本原多項(xiàng)式。 對(duì)于k5,輸出序列用ak=ak-1ak4 檢驗(yàn)即可。 雖然雖然n級(jí)線性移位寄存器產(chǎn)生的級(jí)線性移位寄存器產(chǎn)生的m序列具有良

35、好的偽隨機(jī)性,序列具有良好的偽隨機(jī)性,但是直接用其構(gòu)造密鑰流序列是極不安全的。因?yàn)槔玫侵苯佑闷錁?gòu)造密鑰流序列是極不安全的。因?yàn)槔?n個(gè)輸出位個(gè)輸出位可以找到它的起始狀態(tài)和特征多項(xiàng)式??梢哉业剿钠鹗紶顟B(tài)和特征多項(xiàng)式。30 若特征多項(xiàng)式p(x)=x3+x+1,初始狀態(tài)為(101)的移位寄存器產(chǎn)生序列為(101001)。 設(shè)明文為(011010),那么密文為(110011)。破譯者計(jì)算mc得到密鑰系列(101001),那么可以得到下列矩陣方程式: 得到c31,c20,c11, 從而得到特征多項(xiàng)式:p(x)=x3+x+11 23342 34253 451 6k k kckk k kckk k

36、kck321 101001001001ccc 31線性反饋移位寄存器舉例線性反饋移位寄存器舉例一個(gè)周期的輸出序列一個(gè)周期的輸出序列100010011010111 100010011010111 m m序列產(chǎn)生器序列產(chǎn)生器序列周期長(zhǎng),偽隨序列周期長(zhǎng),偽隨機(jī)特性好。機(jī)特性好。LFSRLFSR的結(jié)構(gòu)過(guò)于簡(jiǎn)的結(jié)構(gòu)過(guò)于簡(jiǎn)單,只要攻擊者得單,只要攻擊者得到到2n2n位密文和對(duì)應(yīng)位密文和對(duì)應(yīng)的明文,就可以導(dǎo)的明文,就可以導(dǎo)出出n n級(jí)級(jí)LFSRLFSR序列產(chǎn)生序列產(chǎn)生器的代數(shù)結(jié)構(gòu)。器的代數(shù)結(jié)構(gòu)。不適宜直接作為不適宜直接作為密密鑰流產(chǎn)生器使用。鑰流產(chǎn)生器使用。325.4 非線性序列簡(jiǎn)介 線性移位寄存器序列密碼

37、在已知明文攻擊下是可破譯的這一事實(shí)促使線性移位寄存器序列密碼在已知明文攻擊下是可破譯的這一事實(shí)促使人們向非線性領(lǐng)域探索。人們向非線性領(lǐng)域探索。目前研究的比較充分的由非線性移位寄存器,目前研究的比較充分的由非線性移位寄存器,對(duì)線性移位寄存器進(jìn)行非線性組合等對(duì)線性移位寄存器進(jìn)行非線性組合等。 為了使密鑰流生成器輸出的二元序列盡可能復(fù)雜,應(yīng)保證其周期盡可為了使密鑰流生成器輸出的二元序列盡可能復(fù)雜,應(yīng)保證其周期盡可能大、線性復(fù)雜度和不可預(yù)測(cè)性盡可能高,能大、線性復(fù)雜度和不可預(yù)測(cè)性盡可能高,因此常使用多個(gè)因此常使用多個(gè)LFSR來(lái)構(gòu)造來(lái)構(gòu)造二元序列,稱每個(gè)二元序列,稱每個(gè)LFSR的輸出序列為驅(qū)動(dòng)序列,的輸

38、出序列為驅(qū)動(dòng)序列,顯然密鑰流生成器輸出顯然密鑰流生成器輸出序列的周期不大于各驅(qū)動(dòng)序列周期的乘積,序列的周期不大于各驅(qū)動(dòng)序列周期的乘積,因此,提高輸出序列的線性因此,提高輸出序列的線性復(fù)雜度應(yīng)從極大化其周期開(kāi)始。復(fù)雜度應(yīng)從極大化其周期開(kāi)始。 1Geffe序列生成器序列生成器 Geffe序列生成器由序列生成器由3個(gè)個(gè)LFSR組成(如下圖),其中組成(如下圖),其中LFSR2作為控制生作為控制生成器使用。成器使用。33 當(dāng)當(dāng)LFSR2輸出輸出1時(shí),時(shí),LFSR2與與LFSR1相連接;當(dāng)相連接;當(dāng)LFSR2輸出輸出0時(shí),時(shí),LFSR2與與LFSR3相連接。相連接。 若設(shè)若設(shè)LFSRi的輸出序列為的輸出

39、序列為a(i)k (i=1,2,3),則輸出序列,則輸出序列bk可以表可以表示為:示為: 123212323kkkkkkkkkkba aaaa aaaa3121ini1323nnnn設(shè)LFSRi的特征多項(xiàng)式分別為ni次本原多項(xiàng)式,且ni兩兩互素,則Geffe序列的周期為 ,線性復(fù)雜度為 。342J-K觸發(fā)器觸發(fā)器 其中,x1和x2分別是J和K端的輸入。1211kkcxxcx J-K觸發(fā)器如下圖所示,它的兩個(gè)輸入端分別用J和K表示,其輸出ck不僅依賴于輸入,還依賴于前一個(gè)輸出位ck-1,即001110122211012111cacabaacababaaa 在下圖中,令驅(qū)動(dòng)序列在下圖中,令驅(qū)動(dòng)序列

40、ak和和bk分分別為別為m級(jí)和級(jí)和n級(jí)級(jí)m序列,則有序列,則有 111kkkkkkkkkcabcaabca利用利用J-K觸發(fā)器的非線性序列生成器觸發(fā)器的非線性序列生成器 如果令如果令c-1=0,則輸出序列的最,則輸出序列的最初初3項(xiàng)為:項(xiàng)為: 當(dāng)當(dāng)m與與n互素且互素且a0+b0=1時(shí),序列時(shí),序列ck的周期為的周期為 (2m-1)(2n-1)。353Pless生成器生成器 Pless生成器由生成器由8個(gè)個(gè)LFSR、4個(gè)個(gè)J-K觸發(fā)器和觸發(fā)器和1個(gè)循環(huán)計(jì)數(shù)器構(gòu)成,個(gè)循環(huán)計(jì)數(shù)器構(gòu)成,由循環(huán)計(jì)數(shù)器進(jìn)行選通控制,如下圖所示。由循環(huán)計(jì)數(shù)器進(jìn)行選通控制,如下圖所示。 假定在時(shí)刻假定在時(shí)刻t輸出第輸出第t(

41、mod 4)個(gè)單元,則輸出序列為:個(gè)單元,則輸出序列為: a a0 0 b b1 1 c c2 2 d d3 3 a a4 4 b b5 5 d d6 6365.鐘控發(fā)生器鐘控發(fā)生器 鐘控發(fā)生器是由控制序列鐘控發(fā)生器是由控制序列(由一個(gè)或多個(gè)移位寄存器來(lái)控制生成)(由一個(gè)或多個(gè)移位寄存器來(lái)控制生成)的當(dāng)前值決定被采樣的序列寄存器移動(dòng)次數(shù)(即由控制序列的當(dāng)前值的當(dāng)前值決定被采樣的序列寄存器移動(dòng)次數(shù)(即由控制序列的當(dāng)前值確定采樣序列寄存器的時(shí)鐘脈沖數(shù)目)。確定采樣序列寄存器的時(shí)鐘脈沖數(shù)目)。 控制序列和被采樣序列可以是源于同一個(gè)控制序列和被采樣序列可以是源于同一個(gè)LFSR(稱為自控),也(稱為自控

42、),也可以源于不同的可以源于不同的LFSR(稱為他控),(稱為他控),還可以相互控制還可以相互控制(稱為互控)。(稱為互控)。鐘控發(fā)生器示意圖如下圖所示。鐘控發(fā)生器示意圖如下圖所示。37 當(dāng)控制序列當(dāng)前值為當(dāng)控制序列當(dāng)前值為1時(shí),被采樣序列生成器被時(shí)鐘驅(qū)動(dòng)時(shí),被采樣序列生成器被時(shí)鐘驅(qū)動(dòng)k次后次后輸出;輸出;當(dāng)控制序列當(dāng)前值為當(dāng)控制序列當(dāng)前值為0時(shí),被采樣序列生成器被時(shí)鐘驅(qū)動(dòng)時(shí),被采樣序列生成器被時(shí)鐘驅(qū)動(dòng)d次次后輸出。后輸出。 另外,停走式發(fā)生器也是一種鐘控模型,它由另外,停走式發(fā)生器也是一種鐘控模型,它由2個(gè)個(gè)LFSR組成。組成。其中,其中,LFSR-1控制控制LFSR-2的時(shí)鐘輸入。的時(shí)鐘輸

43、入。 當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)LFSR-1的時(shí)間的時(shí)間t-1的輸出為的輸出為1時(shí),時(shí),LFSR-2在時(shí)間在時(shí)間t改變改變狀態(tài)(狀態(tài)(也即也即LFSR-1輸出時(shí)鐘脈沖,使輸出時(shí)鐘脈沖,使LFSR-2進(jìn)行輸出并反饋以改進(jìn)行輸出并反饋以改變移位寄存器的狀態(tài)變移位寄存器的狀態(tài))。)。 385收縮和自收縮發(fā)生器收縮和自收縮發(fā)生器 收縮發(fā)生器是又控制序列的當(dāng)前值決定被采樣序列移位寄存器收縮發(fā)生器是又控制序列的當(dāng)前值決定被采樣序列移位寄存器是否輸出。是否輸出。 該發(fā)生器由該發(fā)生器由2個(gè)個(gè)LFSR組成。組成。LFSR-1、LFSR-2分別按各自時(shí)鐘分別按各自時(shí)鐘運(yùn)行,運(yùn)行,LFSR-1在時(shí)間在時(shí)間t-1時(shí)刻的輸出為時(shí)

44、刻的輸出為1時(shí),時(shí),LFSR-2在時(shí)間在時(shí)間t時(shí)刻輸時(shí)刻輸出為密鑰流,否則舍去。出為密鑰流,否則舍去。 自收縮發(fā)生器從一個(gè)自收縮發(fā)生器從一個(gè)LFSR抽出抽出2條序列,其中一條為控制序列條序列,其中一條為控制序列,另一條為百采樣序列。,另一條為百采樣序列。當(dāng)控制序列輸出為當(dāng)控制序列輸出為1時(shí),采樣序列輸出為時(shí),采樣序列輸出為密鑰流,否則舍去。密鑰流,否則舍去。 此外,還有多路復(fù)合序列,這類序列也歸結(jié)為非線性組合序此外,還有多路復(fù)合序列,這類序列也歸結(jié)為非線性組合序列。列。39 基于基于LFSR的序列密碼非常適合于硬件實(shí)現(xiàn),但是不特別適合軟的序列密碼非常適合于硬件實(shí)現(xiàn),但是不特別適合軟件實(shí)現(xiàn)。件實(shí)

45、現(xiàn)。這導(dǎo)致出現(xiàn)了一些關(guān)于序列密碼被計(jì)劃用于快速軟件實(shí)這導(dǎo)致出現(xiàn)了一些關(guān)于序列密碼被計(jì)劃用于快速軟件實(shí)現(xiàn)的新建議,因?yàn)檫@些建議大部分具有專利,因此這里不討論它現(xiàn)的新建議,因?yàn)檫@些建議大部分具有專利,因此這里不討論它們的技術(shù)細(xì)節(jié)。們的技術(shù)細(xì)節(jié)。 比較常用的序列密碼是比較常用的序列密碼是A5、SEAL和和RC4序列密碼算法,序列密碼算法,A5是典是典型的基于型的基于LFSR的序列密碼算法,的序列密碼算法,SEAL和和RC4不是基于不是基于LFSR的的序列密碼算法,而是基于分組密碼的輸出反饋模式(序列密碼算法,而是基于分組密碼的輸出反饋模式(OFB)和密)和密碼反饋模式(碼反饋模式(CFB)來(lái)實(shí)現(xiàn)的。

46、)來(lái)實(shí)現(xiàn)的。其他不基于其他不基于LFSR的序列密碼生的序列密碼生成器的安全性基于數(shù)論問(wèn)題的難解性,這些生成器比基于成器的安全性基于數(shù)論問(wèn)題的難解性,這些生成器比基于LFSR的生成器要慢很多。的生成器要慢很多。40 A5序列密碼算法是利用歐洲數(shù)字蜂窩移動(dòng)電話(序列密碼算法是利用歐洲數(shù)字蜂窩移動(dòng)電話(GSM)加密的)加密的序列密碼算法,它用于從用戶手機(jī)至基站的連接加密,序列密碼算法,它用于從用戶手機(jī)至基站的連接加密,GSM會(huì)會(huì)話每幀數(shù)據(jù)包含話每幀數(shù)據(jù)包含228比特,比特,A5算法每次會(huì)話將產(chǎn)生算法每次會(huì)話將產(chǎn)生228比特的密比特的密鑰,算法的密鑰長(zhǎng)度為鑰,算法的密鑰長(zhǎng)度為64比特,還包含有一個(gè)比特

47、,還包含有一個(gè)22比特的幀數(shù)。比特的幀數(shù)。A5算法有兩個(gè)版本:強(qiáng)算法有兩個(gè)版本:強(qiáng)A5/1和弱和弱A5/2。 A5算法是一種典型的基于算法是一種典型的基于LFSR的序列密碼算法,它由三個(gè)的序列密碼算法,它由三個(gè)LFSR組成,是一種集控制與停走于一體的鐘控模型,但是組成,是一種集控制與停走于一體的鐘控模型,但是A5算算法沒(méi)有完全公開(kāi),因而各種資料的描述也不盡相同,重要是第二法沒(méi)有完全公開(kāi),因而各種資料的描述也不盡相同,重要是第二個(gè)和第三個(gè)個(gè)和第三個(gè)LFSR的聯(lián)接多項(xiàng)式以及鐘控的位置。的聯(lián)接多項(xiàng)式以及鐘控的位置。 A5算法的算法的3個(gè)個(gè)LFSR中中LFSR-1、LFSR-2、LFSR-3的級(jí)數(shù)分別

48、為的級(jí)數(shù)分別為19、22和和23。LFSR-1的反饋抽頭是的反饋抽頭是18、17、16、13,LFSR-2的的反饋抽頭是反饋抽頭是21、20、16、12,LFSR-3的反饋抽頭是的反饋抽頭是22、21、18、17(如下頁(yè)圖的數(shù)字表示抽頭的位置)。(如下頁(yè)圖的數(shù)字表示抽頭的位置)。 414243SEAL序列密碼算法444546474849 5.5.3 RC4序列密碼體制o RC4是是Ron Rivest 1987年為年為RSA設(shè)計(jì),是一設(shè)計(jì),是一個(gè)可變密鑰長(zhǎng)度、面向字節(jié)操作的序列密碼個(gè)可變密鑰長(zhǎng)度、面向字節(jié)操作的序列密碼o 基本思想:基本思想: 對(duì)于對(duì)于n n位長(zhǎng)的字,它總共位長(zhǎng)的字,它總共N=

49、2N=2n n個(gè)可能的個(gè)可能的內(nèi)部置換狀內(nèi)部置換狀 態(tài)矢量態(tài)矢量S S,這些狀態(tài)是保密的,密鑰,這些狀態(tài)是保密的,密鑰流流K K由由S S中中N N個(gè)元素按照一定方式選出一個(gè)元素而生個(gè)元素按照一定方式選出一個(gè)元素而生成。每生成一個(gè)成。每生成一個(gè)K K值,值,S S中的元素就被重新置換一次中的元素就被重新置換一次o密鑰調(diào)度算法(密鑰調(diào)度算法(KSA)o偽隨機(jī)數(shù)生成算法(偽隨機(jī)數(shù)生成算法(PRGA)50密鑰調(diào)度算法KSAoKSA算法描述如下:oFor i=0 to N-1 dooSi=i;oj=0;oFor i=0 to N-1 dooJ=(j+Si+KI mod L) mod N;oSwap(S

50、i,Sj)51偽隨機(jī)數(shù)生成算法PRGAoi=0;oJ=0;oWhile(true)oi=(i+1)mod N;oJ=(j+Si) mod N;oSwap(Si,Sj);oT=(Si+Sj) mod N;oOutput k=St;52實(shí)例535455oRC4目前使用在:o (1)SSL(安全套接字)中廣泛使用o (2)WEP(Wired Equivalent Privacy:有線對(duì)等保密) IEEE 802.11o(http:/ 真隨機(jī)序列的特性真隨機(jī)序列的特性 統(tǒng)計(jì)的隨機(jī)性。即序列能夠通過(guò)數(shù)學(xué)上已知的所有統(tǒng)計(jì)的隨機(jī)性。即序列能夠通過(guò)數(shù)學(xué)上已知的所有的隨機(jī)性檢驗(yàn),滿足這個(gè)要求的序列稱為偽隨機(jī)序列

51、。的隨機(jī)性檢驗(yàn),滿足這個(gè)要求的序列稱為偽隨機(jī)序列。 不可預(yù)測(cè)性。即無(wú)論采用何種方法,也無(wú)法根據(jù)以不可預(yù)測(cè)性。即無(wú)論采用何種方法,也無(wú)法根據(jù)以前的任意多元素預(yù)測(cè)序列的下一個(gè)元素。前的任意多元素預(yù)測(cè)序列的下一個(gè)元素。 不可再生性。即使使用完全相同的輸入?yún)?shù),也無(wú)不可再生性。即使使用完全相同的輸入?yún)?shù),也無(wú)法產(chǎn)生完全相同的輸出序列。法產(chǎn)生完全相同的輸出序列。真隨機(jī)序列特性雖好,但難以在實(shí)際密碼系統(tǒng)中應(yīng)用。真隨機(jī)序列特性雖好,但難以在實(shí)際密碼系統(tǒng)中應(yīng)用。實(shí)際密碼系統(tǒng)中使用的密鑰流都是偽隨機(jī)序列。實(shí)際密碼系統(tǒng)中使用的密鑰流都是偽隨機(jī)序列。57三、密鑰流的局部隨機(jī)性檢驗(yàn)三、密鑰流的局部隨機(jī)性檢驗(yàn) 1 1、

52、偽隨機(jī)序列的統(tǒng)計(jì)特性、偽隨機(jī)序列的統(tǒng)計(jì)特性 戈龍(戈龍(GolombGolomb)提出的三條隨機(jī)性公設(shè):)提出的三條隨機(jī)性公設(shè): 平衡特性。任何隨機(jī)的二元周期序列,在一個(gè)周平衡特性。任何隨機(jī)的二元周期序列,在一個(gè)周期期P P內(nèi),不同元素出現(xiàn)的概率應(yīng)該是相同的。如果內(nèi),不同元素出現(xiàn)的概率應(yīng)該是相同的。如果P P為為偶數(shù),一個(gè)周期內(nèi)所含有的偶數(shù),一個(gè)周期內(nèi)所含有的“0”0”和和“1”1”的個(gè)數(shù)應(yīng)該的個(gè)數(shù)應(yīng)該相等;如果相等;如果P P為奇數(shù),一個(gè)周期內(nèi)所含有的為奇數(shù),一個(gè)周期內(nèi)所含有的“0”0”和和“1”1”的個(gè)數(shù)應(yīng)該只相差的個(gè)數(shù)應(yīng)該只相差1 1個(gè)。個(gè)。58戈龍(戈龍(GolombGolomb)提出

53、的三條隨機(jī)性公設(shè))提出的三條隨機(jī)性公設(shè) 游程特性。游程特性。游程是指一串相同的元素序列,其前導(dǎo)和后繼都不同,游程是指一串相同的元素序列,其前導(dǎo)和后繼都不同,而相同元素的個(gè)數(shù)叫做游程的長(zhǎng)度。而相同元素的個(gè)數(shù)叫做游程的長(zhǎng)度。由一串由一串“1”1”構(gòu)成的游程叫做構(gòu)成的游程叫做“1”1”游程(也叫塊組),游程(也叫塊組),由一串由一串“0”0”構(gòu)成的游程叫做構(gòu)成的游程叫做“0”0”游程(也叫間隔)。游程(也叫間隔)。例如,序列例如,序列“1110010”1110010”有有1 1個(gè)長(zhǎng)度為個(gè)長(zhǎng)度為3 3的的“1”1”游程游程(111111)、)、1 1個(gè)長(zhǎng)度為個(gè)長(zhǎng)度為2 2的的“0”0”游程(游程(00

54、00)、)、1 1個(gè)長(zhǎng)度個(gè)長(zhǎng)度為為1 1的的“1”1”游程(游程(1 1)和)和1 1個(gè)長(zhǎng)度為個(gè)長(zhǎng)度為1 1的的“0”0”游程游程(0 0)。)。任意隨機(jī)的二元周期序列,在一個(gè)周期任意隨機(jī)的二元周期序列,在一個(gè)周期P P內(nèi),長(zhǎng)度為內(nèi),長(zhǎng)度為n n的游程數(shù)應(yīng)占游程總數(shù)的的游程數(shù)應(yīng)占游程總數(shù)的1/21/2n n,并且對(duì)于每一種長(zhǎng)度,并且對(duì)于每一種長(zhǎng)度,“0”0”游程的個(gè)數(shù)應(yīng)和游程的個(gè)數(shù)應(yīng)和“1”1”游程的個(gè)數(shù)同樣多。游程的個(gè)數(shù)同樣多。 59戈龍(戈龍(GolombGolomb)提出的三條隨機(jī)性公設(shè))提出的三條隨機(jī)性公設(shè) 自相關(guān)特性。假定自相關(guān)特性。假定S S是一個(gè)周期為是一個(gè)周期為P P的二元序列

55、,對(duì)于任意的二元序列,對(duì)于任意固定的固定的,把,把S S的開(kāi)始的開(kāi)始P P項(xiàng)(即一個(gè)周期)和其平移項(xiàng)(即一個(gè)周期)和其平移(一個(gè)周(一個(gè)周期循環(huán)左移期循環(huán)左移位)后的序列進(jìn)行比較,并用位)后的序列進(jìn)行比較,并用A A表示它們對(duì)應(yīng)位表示它們對(duì)應(yīng)位相同的個(gè)數(shù),用相同的個(gè)數(shù),用D=P-AD=P-A表示它們對(duì)應(yīng)位不同的個(gè)數(shù),定義自相表示它們對(duì)應(yīng)位不同的個(gè)數(shù),定義自相關(guān)函數(shù)為:關(guān)函數(shù)為:PDAC)(任意隨機(jī)的二元周期序列,其自相關(guān)函數(shù)應(yīng)為任意隨機(jī)的二元周期序列,其自相關(guān)函數(shù)應(yīng)為 1;0( );0C常數(shù)自相關(guān)特性也可以表述為:異相自相關(guān)函數(shù)是一個(gè)常數(shù)。自相關(guān)特性也可以表述為:異相自相關(guān)函數(shù)是一個(gè)常數(shù)。 602 2、密鑰流的局部隨機(jī)性檢驗(yàn)、密鑰流的局部隨機(jī)性檢驗(yàn) 頻數(shù)檢驗(yàn)頻數(shù)檢驗(yàn)序列檢驗(yàn)序列檢驗(yàn)撲克檢驗(yàn)撲克檢驗(yàn)自相關(guān)檢驗(yàn)自相關(guān)檢驗(yàn)游程檢驗(yàn)游程檢驗(yàn) 612 2、密鑰流的局部隨機(jī)性檢驗(yàn)、密鑰流的局部隨機(jī)性檢驗(yàn) (1 1)頻數(shù)檢驗(yàn))頻數(shù)檢驗(yàn)用來(lái)確保密鑰流有大致相等數(shù)量的用來(lái)確保密鑰流有大致相等數(shù)量的“0”0”和和“1”1”。假設(shè)被檢驗(yàn)序列的長(zhǎng)度為假設(shè)被檢驗(yàn)序列的長(zhǎng)度為n n比特,其中有比特,其中有n n0 0個(gè)個(gè)“0”0”和和n n1 1個(gè)個(gè)“1”1”,計(jì)算,計(jì)算 nnnx2012)(的數(shù)值并

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論