えっ,認証してから暗号化するの?
暗号化してから認証するの?どっち?
両方の名前があってわからない.
そうですよね,頭がこんがらがりますよね.
認証暗号化方式というのは,データを暗号化してなおかつそのデータが正しいことを保証する方式をいいます.
英語では,authenticated encryptionと言われていて,略してAEとも言います(こちらもよく使われます).
認証暗号化方式の始まりは,2000年.西暦をどうやって表すかどうか問題がありましたね.
Bellare(カリフォルニア大学)とNamprempre(タンマサート大学,バンコク)が提案しました.
BellareとNamprempreは暗号化とMACの組み合わせを大まかに3種類提案しています.
図をご覧ください.
(a)は暗号化と認証を並列に行う方式で,Encrypt-and-MAC,略してE&Mと呼ばれています.
送信者は暗号文CとタグTを受信者に送ります.
安全な暗号化方式と安全なメッセージ認証コードがあっても,MACから平文の情報が洩れる危険性があります.
(b)は暗号化してから認証を行う方式で,Encrypt-then-MAC,略してEtMと呼ばれています.
送信者は(a)のときと同じく,暗号文CとタグTを受信者に送ります.
安全な暗号化方式と安全なメッセージ認証コードがあれば,必ず認証暗号化方式全体の安全性を保障しています.
(c)は認証してから暗号化を行う方式で,MAC-then-Encryption,略してMtEと呼ばれています.
送信者は暗号文Cだけを受信者に送ります.
タグTはどこに行ったの?となりますが,途中計算で使われているだけなので,受信者からは見えません.
安全な暗号化方式と安全なメッセージ認証コードがあっても,暗号文を改ざんできてしまう危険性があります.
認証暗号化方式は日常生活で当たり前に使われています.
CCMとかEAXとかGCMとか見かけたことはあるでしょう.特にGCMは.
鍵アイコンを見ればどの認証暗号化方式を使っているか見ることができます.
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp
参考資料
Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm(別ウィンドウで開きます)
トコトンやさしい暗号の本 [ 伊豆哲也 ](別ウィンドウで開きます)