日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AES加密算法|密码学|网络空间安全

發布時間:2024/8/1 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AES加密算法|密码学|网络空间安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法簡介

AES的全稱是Advanced Encryption Standard,意思是高級加密標準。

他的出現是為了取代DES加密算法的,DES算法的密鑰長度是56bit,所以算法的理論安全強度是2的56次方,現已不能滿足人類對安全性的需求,所以AES誕生了

AES和DES都是分組密碼,但是組的大小不一樣,DES是64bit一組,AES是128bit一組,密鑰長度DES是56位。但AES的密鑰長度可以是128、192、256,密鑰長度每多64位只會增加兩次輪函數的運用,128長度是10輪,192是12輪,256是14輪。

DES是基于Feistel的機構進行加密,每一輪加密的是64位的一半,也就是32位。

而AES不具有Feistel結構,每次迭代中就加密了所有的128位,所以一般情況下,AES的輪數會比DES少

需要理解的是AES算法是面向字節的加密算法,1字節有8位,也就是8位二進制,AES這里寫成16進制

算法流程圖

結構比DES看起來更簡單明了一些

只有密鑰生成和輪函數兩部分,這里不介紹密鑰生成函數,只介紹輪函數

密鑰加法層

密鑰K先生成K0,和明文按位異或

輪函數

字節代換

如果不考慮S盒的生成過程,那字節代換就是一個查表的過程

對于輸入的128位,分成16個8位的二進制串,每個二進制串分成前后兩個4位2進制,轉換成對應的十六進制,作為查表用的行和列,找到表中對應的數就行

但是S盒是怎么產生的呢?

其實是經過兩部分操作后得到的,首先把一個字節的數換算成10進制,就會得到0-255的一個十進制數,計算一下他在模256下的逆元,由于0沒有逆元,這里規定為0是0的逆元。然后將剛剛的逆元以2進制的方法寫出來,進行以下的仿射變換(本質就是一個矩陣乘法)

得到的就是一個字節對應的值,0到255共256種不同的字節,S盒就是打表提前計算出來所有的數的值,便于直接利用,節約時間

行位移

行位移操作很簡單,就是將輸入的數據豎著寫為一個個規定大小的矩陣,進行位置上的變化

比如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16記做:

15913
261014
371115
481216

規定的大小要看你的密鑰長度是128還是192還是256,這三個分別對應4 * 4、4 * 6、4 * 8的矩陣

再根據位移表來位移就行,這三個對應的位移表不同,這里就只介紹128的

行C0C1C2C3
位移大小0123

上述表經過左移后得到的如下:

15913
610142
111537
164812

列混合

列混淆子層是AES算法中最為復雜的部分,屬于擴散層,列混淆操作是AES算法中主要的擴散元素,它混淆了輸入矩陣的每一列,使輸入的每個字節都會影響到4個輸出字節。行位移子層和列混淆子層的組合使得經過三輪處理以后,矩陣的每個字節都依賴于16個明文字節成可能。其中包含了矩陣乘法、伽羅瓦域內加法和乘法的相關知識。

主要是在擴展域GF(28)的矩陣加法與乘法,這里暫不仔細介紹

密鑰加

就是異或上此輪的密鑰Ki

總結

以上是生活随笔為你收集整理的AES加密算法|密码学|网络空间安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。