最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

密碼學(xué)之資料加密標(biāo)準(zhǔn)(DES)

2021-05-19 08:21 作者:剎那-Ksana-  | 我要投稿

前言

接著前文的SPN,但是和前文的關(guān)系不大,所以不看前文也照樣可以閱讀本文。

一、Feistel Network

Feistel Network 分為balanced 和 unbalanced 兩種。balanced 的情況下,我們把輸入的長(zhǎng)度為 l 的bits分成長(zhǎng)度相等的左右兩個(gè)部分(叫做LR);unbalanced 的情況下,左右兩個(gè)部分長(zhǎng)度不等。

Feistel network 一共有多輪組成,每一輪中,我們通過(guò)一個(gè)key schedule從我們的master key k中抽出我們的round key k_i ,然后我們將右半部分R_i和我們的k_i一同輸入到我們預(yù)設(shè)的round function 中f_i%3D%5Chat%7Bf_i%7D(k_i%2CR_i). 然后做一個(gè)XOR運(yùn)算:R_%7Bi%2B1%7D%3DL_i%5Coplus%20f_i ,L_%7Bi%2B1%7D%3DR_i.

Feistel Network(引用來(lái)源:https://en.wikipedia.org/wiki/Feistel_cipher)

二、Data Encryption Standard (DES)

DES是一個(gè)運(yùn)用Feistel Network來(lái)進(jìn)行加密的流程,輸入的比特序列的長(zhǎng)度(同時(shí)也是block length)為64 bits, master key的長(zhǎng)度為56 bits,一共進(jìn)行16輪Feistel運(yùn)算。

因?yàn)槭?0世紀(jì)70年代提出來(lái)的加密標(biāo)準(zhǔn),現(xiàn)在看來(lái)56 bits的master key太短了,所以已經(jīng)不再被推薦使用。

*注意,DES是一個(gè)嚴(yán)格加密流程,很多函數(shù)、矩陣都有預(yù)設(shè)值,但由于篇幅原因,這些預(yù)設(shè)值不在本文中列舉出來(lái)。

DES的具體流程如下,首先我們有一個(gè)初始的permutation叫做IP ,以及它的逆運(yùn)算IP%5E%7B-1%7D%20.? IP定義了我們輸入序列的shuffle方式,比方說(shuō)——IP%3D%5B4%2C3%2C1%2C2%5D%20,代表了輸入值的第4個(gè)bit移動(dòng)到輸出值的第1個(gè)bit的位置上,輸入值的第3個(gè)bit移動(dòng)到輸出值的第2個(gè)bit的位置上,以此類推下去。所以,其逆運(yùn)算 IP%5E%7B-1%7D%3D%5B3%2C4%2C2%2C1%5D .

Permutation 示意圖 IP=[4,3,1,2]

我們?cè)谧铋_(kāi)始的時(shí)候用IP來(lái)對(duì)輸入的plaintext的所有bit切換順序,在最末尾的時(shí)候,用IP%5E%7B-1%7D 對(duì)我們的block再一次切換順序然后輸出我們的ciphertext.

DES流程示意圖

然后,我們進(jìn)行Feistel加密運(yùn)算,只不過(guò)在這里,我們的round function是一個(gè)SPN block.

SPN Block(引用來(lái)源:https://csrc.nist.gov/csrc/media/publications/fips/46/3/archive/1999-10-25/documents/fips46-3.pdf)

如圖所示,我們給出一個(gè)32-bit的序列R ,然后進(jìn)行一個(gè)擴(kuò)張運(yùn)算R'%3DE(R) ,E是一個(gè)預(yù)設(shè)的表格,比方說(shuō),給出一個(gè)4-bit的序列,E%3D%5B1%2C2%2C1%2C2%2C3%2C4%5D 將輸出一個(gè)6-bit的序列。其中,原輸入值的第1位的bit和第2位的bit重復(fù)出現(xiàn)了1次,以此來(lái)實(shí)現(xiàn)擴(kuò)張。

擴(kuò)張運(yùn)算示例

接下來(lái)我們做一個(gè)xor運(yùn)算:%20R_i''%3DR_i'%5Coplus%20k_i%20(顯然我們的round key長(zhǎng)度為48 bits)。然后我們將 R_i''%20切分為8個(gè)長(zhǎng)度為6 bits的值,每一個(gè)6-bit的子序列都輸入到一個(gè)S-Box:%20%5Cleft%5C%7B%200%2C1%20%5Cright%5C%7D%5E6%5Crightarrow%5Cleft%5C%7B%200%2C1%20%5Cright%5C%7D%5E4%20中。

我們的S-Box由一個(gè)416列的表格組成。

比方說(shuō),我們的輸入的序列如下:

序列

綠色位置的比特將決定我們的行,橘紅色位置的比特將決定我們的列,所以在此情況下,我們綠色位置的兩個(gè)比特00,和橘紅色位置的4個(gè)比特1101,決定了我們是第0行第13列。我們?cè)谖覀兊腟-Box表格中檢索第0行第13列后,返回的那個(gè)值就是我們的輸出值。

在這里,我們8個(gè)小塊,每一個(gè)小塊的S-box都是不同的,所以我們一共有8種不同的S-box。

最后我們將我們S-box的輸出值合并起來(lái),用一個(gè)permutation函數(shù)%20P再將合并后的值進(jìn)行shuffle.

三、Triple Data Encryption Algorithm (TDEA)

TDEA(或者也叫做3-DES、TDES)是利用DES作為一個(gè)基本模塊,我們依舊使用長(zhǎng)度為56 bits的key和64 bits的輸入值,但在這里我們有3個(gè)master key Key_1%2C%20Key_2%2C%20Key_3%20.我們對(duì)輸入的plaintext m做如下的運(yùn)算:

ciphertext%20%3D%20F_%7Bk1%7D(F%5E%7B-1%7D_%7Bk2%7D(F_%7Bk3%7D(m)))%20

其中%20F%20為DES加密運(yùn)算,F%5E%7B-1%7D%20%20F%20的逆向運(yùn)算(即解密運(yùn)算)。

還有一個(gè)版本是使用2個(gè)master key的TDEA,公式和上述公式差不多,只是把Key_3替換為Key_1,該版本已經(jīng)不再被推薦使用。

后記

下一篇文章介紹AES。

參考資料:

Jonathan Katz; Yehuda Lindell - Introduction to Modern Cryptography; Third Edition

FIPS 46-3, Data Encryption Standard

使用工具:Drawio: https://app.diagrams.net/

THE END.

密碼學(xué)之資料加密標(biāo)準(zhǔn)(DES)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
秭归县| 辽宁省| 定襄县| 台江县| 攀枝花市| 阿荣旗| 前郭尔| 石门县| 申扎县| 阜新市| 峨山| 赤峰市| 阜新市| 上高县| 伊宁市| 吉木萨尔县| 奈曼旗| 海丰县| 黎城县| 新和县| 屏山县| 绥德县| 海伦市| 澄城县| 保康县| 礼泉县| 监利县| 五常市| 青神县| 电白县| 社旗县| 屯昌县| 增城市| 南昌县| 通城县| 宜章县| 德庆县| 康平县| 德昌县| 布尔津县| 雅江县|