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

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

密碼學(xué)之高級加密標(biāo)準(zhǔn)(AES)

2021-05-19 10:03 作者:剎那-Ksana-  | 我要投稿

前言

還是有關(guān)block cipher的文章。

上文的DES以及跟不上時代的步伐了,而代替DES的,是這篇文章的AES。

一、State

AES的所有運(yùn)算都是基于一個State的概念,State是一個二維數(shù)組,一共4行b列,數(shù)組中的每一個元素都是一個8-bit (1 byte)的二進(jìn)制序列。b的值是根據(jù)輸入序列的長度(也就是block length)l決定的:%20b%3D%5Cfrac%7Bl%7D%7B32%20bit%7D%20.如果block length為128,那么就是4行4列。

現(xiàn)在,我們用 s 代表這個二維數(shù)組,用下標(biāo) r(row)c(column) 來進(jìn)行索引。

對于任意一個輸入序列 i ,我們用如下的方式將其轉(zhuǎn)化為State數(shù)組:

s%5Br%2Cc%5D%20%3D%20i%5Br%20%2B%204c%5D%2C0%3Cr%3C4%3B0%3Cc%3Cb%20

很明顯,其逆運(yùn)算——將State二維數(shù)組還原為一維序列o的方式為:

o%5Br%20%2B%204c%5D%20%3D%20s%5Br%2Cc%5D%20

二、AES算法

AES一共可以有三種不同的master key的長度,128 bits, 192 bits和256 bits. 每一個長度對應(yīng)不同的round數(shù)——128 bits對應(yīng)10輪,192 bits對應(yīng)12輪,256 bits對應(yīng)14輪。

AES的的算法如下:

偽代碼(引用來源:FIPS 197, Advanced Encryption Standard (AES))

*Nk為master key的長度除以32,Nb為本文中的b,Nr為round數(shù)(循環(huán)次數(shù))。這里的word代表一個32-bit的二進(jìn)制序列。

其中,四個函數(shù)SubBytes、ShiftRowsMixColumnsAddRoundKey分別如下:

SubBytes是用一個可逆的S-box:?%20%5Cleft%5C%7B%200%2C1%20%5Cright%5C%7D%5E8%20%5Crightarrow%20%5Cleft%5C%7B%200%2C1%20%5Cright%5C%7D%5E8%20 將我們的State中的每一個元素替換為新的元素。我們的S-box,簡單地說是一張 16%5Ctimes%2016%20 的表格,我們將一個8-bit序列切割為2個長度為4-bit的序列,第一個4-bit序列決定,第二個4-bit序列決定

ShiftRows是將State二維數(shù)組中的后三行rotate,如圖所示

示意圖(引用來源:FIPS 197, Advanced Encryption Standard (AES))

MixColumns是對我們State中的每一列進(jìn)行一系列的運(yùn)算,同一列中的每一個元素都將參與到運(yùn)算中(故名Mix Column),詳細(xì)可參照FIPS 197的文檔,在此不進(jìn)行說明。

AddRoundKey是將我們的State與我們的round key進(jìn)行一個XOR運(yùn)算: %5Bs_%7B0%2Cc%7D'%2C%20s_%7B1%2Cc%7D'%2Cs_%7B2%2Cc%7D'%2Cs_%7B3%2Cc%7D'%5D%20%3D%20%5Bs_%7B0%2Cc%7D%2C%20s_%7B1%2Cc%7D%2Cs_%7B2%2Cc%7D%2Cs_%7B3%2Cc%7D%5D%20%5Coplus%20%5Bw_%7Bround*b%2Bc%7D%5D%20

三、Key Schedule

我們用 k 來代表我們的master key,我們用如下的方法來將我們的k擴(kuò)張成為w(這里的w就是上一節(jié)里面的w):

偽代碼(引用來源:FIPS 197, Advanced Encryption Standard (AES))

其中,SubWord是將一個32-bit的序列切分為4個8-bit的序列,每一個8-bit序列通過上述的S-Box替換為一個新的8-bit值。RotWord是將一個32-bit/4-byte的序列向左旋轉(zhuǎn)1個byte的長度。

后記

block cipher好像寫得差不多了…準(zhǔn)備近幾天再看看有沒有其他值得寫得地方。

參考資料:

NIST Computer Security Division - FIPS 197, Advanced Encryption Standard (AES)

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

THE END.

密碼學(xué)之高級加密標(biāo)準(zhǔn)(AES)的評論 (共 條)

分享到微博請遵守國家法律
宁强县| 瑞金市| 三门峡市| 阳谷县| 浦县| 武城县| 桦南县| 黄石市| 大同市| 新竹县| 嵩明县| 始兴县| 滨海县| 衡山县| 准格尔旗| 罗江县| 上高县| 聊城市| 盐源县| 从化市| 永年县| 珠海市| 都江堰市| 寻乌县| 获嘉县| 乌苏市| 宣武区| 南召县| 浪卡子县| 栖霞市| 扎赉特旗| 大悟县| 堆龙德庆县| 乌拉特前旗| 库尔勒市| 石城县| 公主岭市| 马边| 阿城市| 正蓝旗| 建德市|