五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

密碼學(xué)之流密碼(Stream Cipher)

2021-05-20 21:22 作者:剎那-Ksana-  | 我要投稿

前言

Stream cipher由兩個部分組成,一個是內(nèi)部的state,一個是key。

一般而言,Stream cipher通過keyinitialization?vector進行初始化(初始化只進行一次)。然后每一個timestep t,基于我們的key和state,stream cipher將輸出一個單位的密碼。重復(fù)執(zhí)行的話就能連續(xù)地輸出密碼。

一、Linear Feedback Shift Registers (LFSR)

LFSR有兩個部分,一個是內(nèi)部的state,由n個所謂的register組成——s_%7Bn-1%7D%2C%20s_%7Bn-2%7D%2C...%2Cs_1%2Cs_0,每一個register只儲存1個bit的信息(要么是0要么是1,另外注意下標的順序)。另外一個是,長度同樣為nfeedback coefficients——c_%7Bn-1%7D%2Cc_%7Bn-2%7D%2C...%2Cc_1%2Cc_0.

在初始化階段,我們讓state s等同于我們的key k,設(shè)置好我們的feedback c。接下來,每一個timestep t,我們輸出最右側(cè)的那個bit s_0,然后將state里面的所有bit朝右位移1個bit:s%5E%7B(t%2B1)%7D_i%3Ds%5E%7B(t)%7D_%7Bi%2B1%7D%2Ci%3D0%2C1%2C...%2Cn-2,最后,最左側(cè)的那個bit s_%7Bn-1%7D由我們的state和feedback決定:s%5E%7B(t%2B1)%7D_%7Bn-1%7D%3D%5Coplus%20%5E%7Bn-1%7D_0c_is_i

示意圖

當我們的LSFR遍歷所有2%5En-1?state,并且沒有遇到過重復(fù)時,這個時候我們稱我們的LFSR具有maximum length. 而LFSR具有maximum length的條件是:

t(x)%3Dx%5En%2Bc_%7Bn-1%7Dx%5E%7Bn-1%7D%2Bc_%7Bn-2%7Dx%5E%7Bn-2%7D%2B...%2Bc_1x%2Bc_0

為primitive.

LFSR并非一個安全的cipher,因為我們可以從前n個輸出的bit中知道我們的初始state(也就是我們的key),然后從前2n個輸出的bit中知道我們的feedback coefficient c.

二、RC4

RC4以8-bit的byte為單位,每次輸出一個byte的密碼。我們使用一個長度為256-byte的state,以及一個任意長度的key:

RC4流程(引用自:Introduction to Modern Cryptography)

下面是自己用Python寫的一段代碼(未驗證正確性,只供參考):

RC4也并不是一個安全的cipher,如果我們的初始state的第3個byte為0,第2個byte不為2,那么我們輸出的密碼流的第2個byte為0,這個情況出現(xiàn)的概率為%5Cfrac%7B1%7D%7B128%7D%20.?

RC4還有其他的一些統(tǒng)計學(xué)上的bais,導(dǎo)致攻擊者可以利用這些特性來攻擊基于RC4的密碼.

后記

Stream cipher(看上去)其實還是挺簡單的。

參考資料:

Jonathan Katz; Yehuda Lindell -?Introduction to Modern Cryptography

使用工具:Drawio

THE END.

密碼學(xué)之流密碼(Stream Cipher)的評論 (共 條)

分享到微博請遵守國家法律
成安县| 汉中市| 双流县| 昌图县| 永新县| 射阳县| 偏关县| 手机| 阿克陶县| 榆中县| 罗甸县| 米易县| 梧州市| 化隆| 怀来县| 民丰县| 普安县| 祁阳县| 温州市| 微山县| 陈巴尔虎旗| 郑州市| 临城县| 琼结县| 华蓥市| 丰县| 锦州市| 玛多县| 新乡市| 霍城县| 进贤县| 肇州县| 恩施市| 伊宁市| 宣城市| 赤城县| 昌平区| 永丰县| 南陵县| 漾濞| 泰来县|