序列密码体制——密码学笔记(三)
一、密碼學(xué)中的隨機(jī)數(shù)
許多密碼系統(tǒng)的安全性都依賴于隨機(jī)數(shù)的生成,例如DES加密算法中的密鑰,RSA加密和數(shù)字簽名中的素?cái)?shù)。
序列密碼的保密性完全取決于密鑰的隨機(jī)性。
如果密鑰是真正的隨機(jī)數(shù),則這種體制在理論上就是不可破譯的。但這種方式所需的密鑰量大得驚人,在實(shí)際上是不可行的。目前一般采用偽隨機(jī)序列來(lái)代替隨機(jī)序列作為密鑰序列,也就是序列存在著一定的循環(huán)周期。這樣序列周期的長(zhǎng)短就成為保密性的關(guān)鍵。如果周期足夠長(zhǎng),就會(huì)有比較好的保密性。現(xiàn)在周期小于10的10次方的序列很少被使用,周期長(zhǎng)達(dá)10的50次方的序列也并不少見。
偽隨機(jī)數(shù)產(chǎn)生器(PRNG):
何謂偽隨機(jī)數(shù)產(chǎn)生器(PRNG)?假定需要生成介于1和10之間的隨機(jī)數(shù),每一個(gè)數(shù)出現(xiàn)的幾率都是一樣的。理想情況下,應(yīng)生成0到1之間的一個(gè)值,不考慮以前值,這個(gè)范圍中的每一個(gè)值出現(xiàn)的幾率都是一樣的,然后再將該值乘以10。
由任何偽隨機(jī)數(shù)生成器返回的數(shù)目會(huì)受到0到N之間整數(shù)數(shù)目的限制。因?yàn)槌R娗闆r下,偽隨機(jī)數(shù)生成器生成0到N之間的一個(gè)整數(shù),返回的整數(shù)再除以N。可以得出的數(shù)字總是處于0和1之間。對(duì)生成器隨后的調(diào)用采用第一次運(yùn)行產(chǎn)生的整數(shù),并將它傳給一個(gè)函數(shù),以生成0到N之間的一個(gè)新整數(shù),然后再將新整數(shù)除以N返回。
二、序列密碼的概念及模型
事實(shí)上,序列密碼算法的安全性依賴于簡(jiǎn)單的異或運(yùn)算和一次一密亂碼本。密鑰流發(fā)生器生成的看似隨機(jī)的密鑰流實(shí)際上是確定的,在解密的時(shí)候能很好的將其再現(xiàn)。密鑰流發(fā)生器輸出的密鑰越接近隨機(jī),對(duì)密碼分析者來(lái)說(shuō)就越困難。
一次一密亂碼本:一種理想的加密方案,可以簡(jiǎn)單理解為每個(gè)密鑰僅對(duì)一個(gè)消息使用一次。
如果密鑰流發(fā)生器每次都生成同樣的密鑰流的話,就很容易被破譯。假設(shè)Alice得到一份密文和相應(yīng)的明文,她就可以將兩者異或恢復(fù)出密鑰流。或者,如果她有兩個(gè)用同一個(gè)密鑰流加密的密文,她就可以讓兩者異或得到兩個(gè)明文互相異或而成的消息,接著就可以用明文和密文異或得出密鑰流。在這種情況下,她就可以解密攔截到的任何密文消息,并閱讀以前截獲到的消息。
因此,流密碼強(qiáng)度完全依賴于密鑰序列的隨機(jī)性和不可預(yù)測(cè)性。
? ? ? ? ? 所有序列密碼都有密鑰,且密鑰發(fā)生流的輸出是密鑰的函數(shù)。
三、流密碼的分類
序列密碼體制關(guān)鍵就在于這個(gè)產(chǎn)生密鑰序列的方法,也就是密鑰序列產(chǎn)生器應(yīng)具有良好的隨機(jī)性,讓密鑰序列不可預(yù)測(cè)。不過(guò)一般都是偽隨機(jī)。分組密碼的關(guān)鍵是加解密算法讓明文密文關(guān)聯(lián)盡可能復(fù)雜。
序列密碼分為同步序列密碼和自(異)同步序列密碼。啥區(qū)別呢,就是前者密鑰序列獨(dú)立于明文序列和密文序列。后者并不獨(dú)立。
同步序列密碼:
密鑰流的產(chǎn)生于明文消息流相互獨(dú)立,即密鑰序列產(chǎn)生算法與明文無(wú)關(guān),所產(chǎn)生的密鑰序列也與明文無(wú)關(guān)。在通信過(guò)程中,通信的雙方必須保持精確的同步,收方才能正確解密,如果失步收方將不能正確解密。例如,如果通信中丟失或增加了一個(gè)密文字符,則收方的解密將一直錯(cuò)誤。
同步序列密碼就是密鑰流的每一位是前面固定數(shù)量密文位的函數(shù)。如上圖,其中,內(nèi)部狀態(tài)是前面n比特密文的函數(shù),該算法的密碼復(fù)雜性在于輸出函數(shù),它收到內(nèi)部狀態(tài)后生成密鑰序列位。
實(shí)際上,序列密碼不可能做到“一次一密”,但若密鑰流生成器生成的密鑰周期足夠長(zhǎng),且隨機(jī)性好,其安全強(qiáng)度可以得到保證!因此,序列密碼的設(shè)計(jì)核心在于密鑰流生成器的設(shè)計(jì),序列密碼的安全強(qiáng)度取決于密鑰流生成器生成的密鑰周期、復(fù)雜度、隨機(jī)(偽隨機(jī))特性等。
自同步序列密碼:
密鑰流的產(chǎn)生于之前已經(jīng)產(chǎn)生的若干密文有關(guān),即密鑰序列產(chǎn)生算法與明文(密文)相關(guān),則所產(chǎn)生的密鑰序列與明文(密文)相關(guān)。
https://wenku.baidu.com/view/56ffd3c20c22590103029d04.html
https://max.book118.com/html/2016/1207/69368879.shtm
分組密碼與序列密碼的區(qū)別
分組密碼:是對(duì)一個(gè)大的明文數(shù)據(jù)塊(分組)進(jìn)行固定變換的操作。
序列密碼:是對(duì)單個(gè)明文位的隨時(shí)間變換的操作。
盡管分組和序列密碼非常不同,但分組密碼也可作為序列密碼使用,反之亦然。兩者的區(qū)別主要體現(xiàn)在實(shí)現(xiàn)上:
1. 每次只能對(duì)一個(gè)數(shù)據(jù)位進(jìn)行加密和解密的序列密碼并不適用于軟件實(shí)現(xiàn)。分組密碼算法就可以很容易地用軟件實(shí)現(xiàn),因?yàn)樗梢员苊夂臅r(shí)的位操作,并且它易于處理計(jì)算機(jī)界定大小的數(shù)據(jù)分組。
2. 序列密碼更適合用硬件實(shí)現(xiàn),因?yàn)槭褂霉璨牧峡梢苑浅S行У貙?shí)現(xiàn)它。
總結(jié)
以上是生活随笔為你收集整理的序列密码体制——密码学笔记(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RSA加密算法——密码学笔记(四)
- 下一篇: 数字证书——密码学笔记(六)