1 演算法背景及介紹
1.1 背景
高階加密標準(advanced encryption standard,aes)作為傳統對稱加密演算法標準des的替代者,由美國國家標準與技術研究所(nist)於2023年提出徵集該演算法的公告。2023年3月22日,nist從15個候選演算法中公布了5個候選演算法進入第二輪選擇:mars,rc6,rijindael,serpent和twofish。
2023年10月2日,以安全性(穩定的數學基礎,沒有演算法弱點,演算法抗密碼分析的強度,演算法輸出的隨機性)、效能(必須能在多種平台上以較快的速度實現)、大小(不能占用大量的儲存空間和記憶體)、實現特性(靈活行、硬體和軟體實行性、演算法的簡單性等)為標準而最終選定了兩個比利時研究者vincent rijinmen和joan daemen發明的rijndael演算法,並於2023年正式發布了aes標準。
1.2 aes加密演算法
aes演算法本質上是一種對稱分組密碼體制,採用代替/置換網路。aes演算法主要包括三個方面:輪變化、圈數和金鑰擴充套件。
1.2.1 圈變化
aes每乙個圈變換由以下三個層組成:
非線性層——進行subbyte變換,非線性層由16個s盒並置起到混淆的作用
線行混合層——進行shiftrow和mixcolumn運算,線性混合層確保多輪之上的高度擴散
金鑰加層——進行addroundkey運算,金鑰加密層將子金鑰異或到中間狀態
subbyte變換是作用在狀態中每個位元組上的一種非線性位元組轉換,可以通過計算出來的s盒進行對映。
shiftrow是乙個位元組換位。它將狀態中的行按照不同的偏移量進行迴圈移位。
在mixcolumn變換中,把狀態中的每一列看作gf(28)上的多項式a(x)與固定多項式c(x)相乘的結果
C 實現DES加密解密,AES加密解密
des演算法描述簡介 des是data encryption standard 資料加密標準 的縮寫。它是由ibm公司研製的一種加密演算法,美國國家標準局於1977年公布把它作為非機要部門使用的資料加密標準 它是乙個分組加密演算法,他以64位為分組對資料加密。同時des也是乙個對稱演算法 加密和解密...
Python 實現 AES 加密 解密
一 前言 金鑰 k 用來加密明文的密碼,在對稱加密演算法中,加密與解密的金鑰是相同的。金鑰為接收方與傳送方協商產生,但不可以直接在網路上傳輸,否則會導致金鑰洩漏,通常是通過非對稱加密演算法加密金鑰,然後再通過網路傳輸給對方,或者直接面對面商量金鑰。金鑰是絕對不可以洩漏的,否則會被攻擊者還原密文,竊取...
Python實現AES加密解密
報錯 typeerror decrypt cannot be called after encrypt 原因 cryptor不能寫在主函式中同時給加密函式與解密函式使用,儘管加密解密都是用 cryptor aes.new key,mode,iv 但若將其定義在main並分別傳給加密解密同時使用時,會...