国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
三原县| 敖汉旗| 冷水江市| 万荣县| 桃园市| 聊城市| 翼城县| 泸西县| 云梦县| 昆山市| 襄樊市| 桐城市| 申扎县| 讷河市| 迭部县| 江西省| 万山特区| 乾安县| 樟树市| 苍梧县| 关岭| 赞皇县| 南召县| 梓潼县| 兴仁县| 莎车县| 沙田区| 清徐县| 合山市| 永顺县| 河北区| 河西区| 汽车| 疏勒县| 临安市| 汉沽区| 淄博市| 乌海市| 泰顺县| 大英县| 阿图什市|