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

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

分享到微博請遵守國家法律
南阳市| 贵定县| 文山县| 前郭尔| 堆龙德庆县| 康马县| 平乐县| 陵川县| 西青区| 汉源县| 姜堰市| 西城区| 台东县| 夹江县| 屯昌县| 八宿县| 宜都市| 临清市| 桐庐县| 汉源县| 定兴县| 绥江县| 茌平县| 会宁县| 盐亭县| 咸阳市| 枣阳市| 安龙县| 屯昌县| 平凉市| 桦川县| 东丰县| 蒙山县| 洪雅县| 林芝县| 营口市| 蒙阴县| 监利县| 皋兰县| 饶河县| 秭归县|