--- title: Authenticated Encryption Mode tags: crypto lang: zh_tw --- * [筆記總覽](https://hackmd.io/@LJP/rkerFdnqS) [TOC] # Authenticated Encryption Mode 兼具驗證與加密的部分 簡單分成以下幾種機制 - Hash-then-encrypt: E(k, (x||H(x))) 先將訊息 x 做一次 hash 得到 H(x) 再把 H(x) 加到訊息 x 後面 最後一起加密 - MAC-then-encrypt: E(k, (x||MAC(x))) 先將訊息 x 做一次 MAC 得到 MAC(x) 再把 MAC(x) 加到訊息 x 後面 最後一起加密 - Encrypt-then-MAC: (C=E(k2,x), M=MAC(k1, C)) 將訊息 x 先用 k2 加密後得到密文 C 再用 k1 算出 C 的 MAC 一起把 C 與 MAC 傳送過去 - Encrypt-and-MAC: (C=E(k2,x), M=MAC(k1, x)) 將訊息 x 用 k2 加密後得到密文 C 同時用 k1 算出 x 的 MAC 一起把 C 與 MAC 傳送過去 以下講講兩種 Authenticated Encryption Mode 的演算法 - CCM - GCM ## CCM TBD ## GCM 參考[這篇博文](https://blog.csdn.net/T0mato_/article/details/53160772),講得淺顯易懂,我就不搬運內容了