密碼學:二.對稱加密AES原理

採用單鑰密碼系統的加密方法,同一個密鑰能夠同時用做信息的加密和解密,這種加密方法稱爲對稱加密,也稱爲單密鑰加密。算法

基於「對稱密鑰」的加密算法主要有DES、3DES(TripleDES)、AES、RC二、RC四、RC5和Blowfish等,當前最爲安全的是 AES 加密算法。安全

密鑰

AES支持三種長度的密鑰:128位,192位,256位,它們區別在於加密的輪數,除去初始輪,各類密鑰長度對應的輪數以下:性能

密鑰長度 加密輪數
128位 10
192位 12
256位 14

填充

密碼學中,塊密碼的工做模式(英語:mode of operation)容許使用同一個塊密碼密鑰對多於一塊的數據進行加密,並保證其安全性。
部分模式(ECB和CBC)須要最後一塊在加密前進行填充,塊密碼自身只能加密長度等於密碼塊長度的單塊數據。
CFB,OFB和CTR模式不須要對長度不爲密碼塊大小整數倍的消息進行特別的處理。由於這些模式是經過對塊密碼的輸出與明文進行異或工做的。最後一個明文塊(多是不完整的)與密鑰流塊的前幾個字節異或後,產生了與該明文塊大小相同的密文塊。流密碼的這個特性使得它們能夠應用在須要密文和明文數據長度嚴格相等的場合,也能夠應用在以流形式傳輸數據而不便於進行填充的場合。加密

流密碼:將明文消息按字符逐位進行加密。
分組密碼(Block Cipher):明文消息分組(每組有多個字符),逐組進行加密。3d

工做模式

AES的工做模式,體如今把明文塊加密成密文塊的處理過程當中。AES加密算法提供了五種不一樣的工做模式:ECB、CBC、CTR、CFB、OFB。blog

ECB模式(默認):電碼本模式 Electronic Codebook Book
CBC模式:密碼分組連接模式 Cipher Block Chaining
CTR模式:計算器模式 Counter
CFB模式:密碼反饋模式 Cipher FeedBack
OFB模式:輸出反饋模式 Output FeedBackip

ECB模式

ECB模式(Electronic Codebook Book)是最簡單的工做模式,在該模式下,每個明文塊的加密都是徹底獨立,互不干涉的。it

缺點:相同的明文塊通過加密會變成相同的密文塊,所以安全性較差。io

CBC模式

在CBC模式中,每一個平文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每一個密文塊都依賴於它前面的全部平文塊。同時,爲了保證每條消息的惟一性,在第一個塊中須要使用初始化向量。table

初始化向量(IV)

初始化向量(IV,Initialization Vector)是許多工做模式中用於隨機化加密的一塊數據,所以能夠由相同的明文,相同的密鑰產生不一樣的密文,而無需從新產生密鑰,避免了一般至關複雜的這一過程。

缺點:加密沒法並行計算(解密時能夠),性能上不如ECB。引入初始化向量IV,增長複雜度。

AES加密器

全部的工做模式的差異只是在宏觀上(明文塊之間的聯繫),而AES加密器的內部處理流程是相同的

AES加密器

不一樣階段有不一樣的處理步驟

初始輪只有一個步驟:

  1. 加輪密鑰(AddRoundKey)

普通輪有四個步驟:

  1. 字節代替(SubBytes)

  2. 行移位(ShiftRows)

  3. 列混淆(MixColumns)

  4. 加輪密鑰(AddRoundKey)

最終輪有三個步驟:

  1. 字節代替(SubBytes)

  2. 行移位(ShiftRows)

  3. 加輪密鑰(AddRoundKey)

加密的安全性不只取決於加密算法自己,密鑰管理的安全性更是重要。由於加密和解密都使用同一個密鑰,如何把密鑰安全地傳遞到解密者手上就成了必需要解決的問題。

相關文章
相關標籤/搜索