今天就把之前提到AES跟mode整理一下
個別解釋
AddRoundKey
b[2][2] = a[2][2] ^ k[2][2]
subBytes
new_state = s_box[state[2][2]]
shiftRows
Mixcolumns
詳細的可以參考"AES進階加密"這篇
總結
一開始先
AddRoundKey
進入Round 1
SubBytes -> ShiftRows -> MixColums -> AddRoundKey
到最後一回合的時候變成
SubBytes -> ShiftRows -> AddRoundKey
省略MixColums
文章 :
plaintext = 明文, ciphertext = 密文, block = 16bytes
把plaintext切成一個個block,之後丟到AES,最後得到ciphertext
文章 :
把加密後命名為plaintext""_xor
流程
一樣會先把plaintext切成一個個block
在此切為plaintext1、plaintext2、plaintext3
之後會生成一個初始向量iv
每個明文塊先與前一個密文塊進行互斥或後,再進行AES
文章 :
把加密後命名為Plaintext""_xor
流程
IV先丟進AES
前一個密文塊先進行AES,之後再跟每個明文塊xor
流程
把plaintext(明文)切成一個個block
第一輪
由iv經AES後跟第一段plaintext做xor
之後得到第一段ciphertext(密文)
第二輪
iv再經過一次AES,之後跟第二段plaintext做xor得到第二段ciphertext
第三輪同第二輪
最後拚再一起即可獲得完整的ciphertext
文章 :
我們把最上面(Nonce那邊)稱為keystream
流程
keystream進AES
之後跟第一段plaintext xor
得到第一段ciphertext
接下來把keystream + 1
之後就以此類推
文章 :
今天就大概整理了之前學到的觀念,明天可能就會進入非對稱式加密( •̀ ω •́ )✧