日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

密码学基础知识(五)序列密码

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 密码学基础知识(五)序列密码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序列密碼,也就是流密碼,是對稱密碼。跟前面分組密碼的區(qū)別就在于其加密變換的對象比分組的塊小,一般是Bit。前面說過的vernam密碼就是一種序列密碼。

序列密碼的特點(diǎn)有哪些呢?

? ? ?明文:被加密的是叫明文字。是明文序列的一項(xiàng)。

?????密鑰:由主密鑰(初始密鑰)產(chǎn)生一個(gè)密鑰序列,長度和明文字bit長度相同。相應(yīng)的別叫做密鑰字。

? ? ?密文:經(jīng)加密函數(shù),明文字與密鑰產(chǎn)生了密文字。

? ? ?加密:與現(xiàn)態(tài)(當(dāng)前狀態(tài))有關(guān)。照分組密碼的OFB和CFB理解。

?????序列密碼體制關(guān)鍵就在于這個(gè)產(chǎn)生密鑰序列的方法,也就是密鑰序列產(chǎn)生器應(yīng)具有良好的隨機(jī)性,讓密鑰序列不可預(yù)測。不過一般都是偽隨機(jī)。分組密碼的關(guān)鍵是加解密算法讓明文密文關(guān)聯(lián)盡可能復(fù)雜。

? ? ?序列密碼分為同步序列密碼和自(異)同步序列密碼。啥區(qū)別呢,就是前者密鑰序列獨(dú)立于明文序列和密文序列。后者并不獨(dú)立。

同步序列密碼特點(diǎn):消息的發(fā)送者和接受者必須同步,即相同的密鑰。

自同步序列密碼特點(diǎn):明文統(tǒng)計(jì)擴(kuò)散。

好了,說完這些啰嗦的東西,咱們就說說這關(guān)鍵的密鑰序列產(chǎn)生器:

???????? 密鑰流產(chǎn)生器。一般看做一個(gè)有限狀態(tài)自動(dòng)機(jī),這個(gè)機(jī)又是啥呢?可以這樣理解,它有三部分,分別是有限狀態(tài)集,有限輸入字符集和有限輸出字符集,狀態(tài)轉(zhuǎn)移函數(shù)。就是在狀態(tài)Si,輸入為Ai時(shí),狀態(tài)裝換為Sh并輸出Ah。放在咱們序列密碼中,就是把密鑰流當(dāng)做輸入,當(dāng)狀態(tài)一變,就輸出。

???????? 好了,那問題來了,這狀態(tài)序列怎么確定呢?還有你說輸出就輸出,咋輸出的呢?

???????? 我們將控制狀態(tài)序列的部分叫驅(qū)動(dòng)器,一般利用線性反饋移位寄存器。一般要求最長周期或m序列產(chǎn)生器實(shí)現(xiàn)。這樣就能為非線性組合部分提供統(tǒng)計(jì)性能好的序列了。

???????? 我們將進(jìn)行非線性組合產(chǎn)生輸出序列的部分叫非線性組合部分。要求F輸入是二元序列輸出也得是,這是最基本要求。對于可定的序列,F應(yīng)使輸出序列周期足夠大。

???????? 那就談?wù)劸€性反饋移位寄存器(LFSR)。

一個(gè)n階反饋寄存器,由n個(gè)二元寄存器和一個(gè)反饋函數(shù)組成。這n個(gè)寄存器的內(nèi)容所形成的向量即為此時(shí)狀態(tài)。所以其有2n個(gè)狀態(tài)。T時(shí)刻LFSR狀態(tài)為st=(at,at+1,…at+n-1),t+1時(shí)刻:st+1=(at+1,at+2,…,at+n),兩者一比,發(fā)現(xiàn)兩點(diǎn)不同:

1.??? at輸出了。就這樣,狀態(tài)改變就輸出一個(gè),成了輸出序列。S0是及寄存器的初始狀態(tài)。

2.??? 多了個(gè)at+n,其求法:at+n=f(at,at+1,…at+n-1)。f就是反饋函數(shù)。當(dāng)f的運(yùn)算為模2加法時(shí),稱為線性移位反饋寄存器(LFSR)。

LFSR特點(diǎn):

初始狀態(tài)非0,新狀態(tài)就非0;初始為0 ,狀態(tài)恒為0。

選擇合適的f反饋函數(shù)可以使周期達(dá)到2n-1,即m序列。(2n長明密文就可攻破,畢竟偽隨機(jī))

驅(qū)動(dòng)部分就說這么多,下面說說幾種非線性序列生成器,一般都是幾個(gè)LFSR組合起來:

gaffe:3個(gè)LFSR,LFSR1,3是輸入,LFSR2是輸出。

J-K觸發(fā)器:2個(gè)LFSR, Pless產(chǎn)生器是其加強(qiáng)版。

Pless產(chǎn)生器:8個(gè)LFSR,4個(gè)J-K,一個(gè)循環(huán)計(jì)數(shù)器。

鐘控序列產(chǎn)生器:2個(gè)LFSR,一個(gè)控制另一個(gè)的時(shí)鐘脈沖。

門限產(chǎn)生器:可變數(shù)量n個(gè)LFSR。要求:大奇數(shù),所有LFSR長度互素,反饋多項(xiàng)式都是本原的,這樣就最大周期了。

總結(jié)一下:序列密碼進(jìn)行bit加密,有明文字,密鑰字,密文字,關(guān)鍵在于密鑰產(chǎn)生器,其分兩部分,驅(qū)動(dòng)(狀態(tài)轉(zhuǎn)移函數(shù),輸出函數(shù),狀態(tài)集和輸出集)和非線性組合。驅(qū)動(dòng)一般是LFSR,LFSR是反饋函數(shù)f運(yùn)算為模2加法。最后介紹了集中產(chǎn)生器,都是LFSR組合的,想法設(shè)法達(dá)成最大周期。


典型的序列密碼算法:RC4,A5和SNOW2.0,最后一個(gè)不細(xì)說。

首先RC4:被廣泛應(yīng)用

???? 基于非線性數(shù)據(jù)表變換的序列密碼。有一個(gè)足夠大的數(shù)據(jù)表提供進(jìn)行非線性變換,產(chǎn)生非線性輸出序列,它也叫S盒,S盒大小為2n,通常n=8。RC4每個(gè)輸出都是S盒中的隨機(jī)元素。

好了,那么問題又來了,S盒內(nèi)是咋排列的?又是怎么隨機(jī)選出來的?

???? 主角登場:KSA密鑰調(diào)度算法和PRGA偽隨機(jī)生成算法,分別解決上述兩個(gè)問題。

KSA:

S初始化:把0~255線性填入。

T初始化:臨時(shí)向量T,將主密鑰K值付給T,假如K長度小于L,那就將K重復(fù)賦值給L,直到L都被賦值了。

用T對S置換:按照T[i]對S進(jìn)行位置置換,就把元素?fù)Q個(gè)位置。

結(jié)束了KSA就是PRFA了

PRGA:從S中隨機(jī)取出,并修改S方便下次選取

???? 就是一個(gè)算法

所以我們發(fā)現(xiàn)其實(shí)S盒里就是0-255,只不過是位置一直在變。

RC4至少128位密鑰才安全。

?

A5算法:GSM

???? 介紹下A5/1,典型的基于LFSR的序列密碼算法,3個(gè)LFSR,階數(shù)分別為19,22,23,均為本原多項(xiàng)式。64位密鑰。

???? 已經(jīng)明文就可破解A5/1,原因:算法設(shè)計(jì)太簡單,沒有足夠的混淆和擴(kuò)散。

?

?

SNOW2.0:

???? 基于LFSR和有限狀態(tài)機(jī)的序列密碼算法。1個(gè)LFSR+1個(gè)有限狀態(tài)轉(zhuǎn)換機(jī)(2個(gè)32位寄存器)。主密鑰K:128位或256位,初始向量:128位。


就這些吧,算法谷歌度娘多得是,有功夫我再寫個(gè)上來。懶得寫啊。

總結(jié)

以上是生活随笔為你收集整理的密码学基础知识(五)序列密码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。