メッセージ認証符号とブロック暗号による改ざん検出の考え方
情報セキュリティマネジメント試験 令和元年度秋期 午前 問23 / セキュリティ › 情報セキュリティ
過去問にチャレンジ
メッセージが改ざんされていないかどうかを確認するために,そのメッセージから,ブロック暗号を用いて生成することができるものはどれか。
- ア
PKI
- イ
パリティビット
- ウ
メッセージ認証符号
- エ
ルート証明書
会話形式の解説
講師今回は改ざん検出の問題です。条件が二つあり、「メッセージから生成する」ことと「ブロック暗号を用いて生成できる」ことです。ブロック暗号は共通鍵暗号の一種だと押さえておいてください。
受験者改ざんと暗号と聞くと、PKIやルート証明書のような証明書関係の用語が気になってしまいます。
講師そこが迷いやすいところです。PKIは公開鍵基盤のことで、公開鍵が本当にその持ち主のものであることを、第三者の認証局が保証する仕組みの名前です。個々のメッセージからブロック暗号で計算する値ではありません。
受験者仕組みの名前なので、メッセージから作るものではないのですね。ルート証明書も同じように考えてよいですか。
講師はい。ルート証明書は最上位の認証局が発行する証明書です。証明書の正しさを確かめるときは、階層をさかのぼってルート証明書にたどり着くかどうかを見ます。信頼の出発点となるものであって、メッセージから作る値ではありません。
受験者パリティビットはデータから計算する値なので、条件に合いそうにも思えます。
講師メッセージをもとに計算する点はそのとおりです。ただ、パリティビットは伝送中に偶然起きる誤りを見つけるための検査用ビットです。鍵を使わないので暗号としての強さがなく、悪意のある改ざんへの対策にはなりません。ブロック暗号で作るものでもありません。
受験者鍵を使わないと、改ざんした人が値を計算し直せてしまうということですね。そうするとメッセージ認証符号が残ります。
講師そうです。メッセージ認証符号、MACは、メッセージと、送信者と受信者が共有する秘密鍵から作る改ざん検出用のデータです。送信者と受信者が同じ方法でMACを計算し、値が一致すれば改ざんされていないと判断します。
受験者MACはハッシュ関数で作るものだと思っていました。ブロック暗号でも作れるのですか。
講師作れます。ハッシュ関数を使う方式がHMACで、ブロック暗号を使う方式にCBC-MACやCMACがあります。そのため、問題の条件に合うのはメッセージ認証符号です。
受験者整理すると、PKIとルート証明書は公開鍵の正当性を保証する仕組みの用語、パリティビットは偶然の誤りの検出用で、鍵を使って改ざんを検出できるのはMACだけということですね。
講師そのとおりです。関連して、MACとデジタル署名の違いも補っておきます。MACは送信者と受信者が同じ鍵を共有する前提なので、受信者もMACを作れてしまいます。そのため、送信者が確かに送ったことを第三者に証明する否認防止には使えません。否認防止が問われたら、公開鍵暗号を使うデジタル署名を選ぶのが基本です。
まとめ
メッセージ認証符号(MAC)は、メッセージと、送信者と受信者が共有する秘密鍵から作る改ざん検出用のデータです。送受信者が同じ方法で計算した値が一致すれば、改ざんされていないと判断できます。作り方には、ブロック暗号を使うCBC-MACやCMACと、ハッシュ関数を使うHMACがあります。パリティビットは偶然起きる伝送誤りの検出用で、PKIやルート証明書は公開鍵の正当性を保証する仕組みの用語です。MACは鍵を共有するため否認防止には使えず、否認防止にはデジタル署名を使います。
解答・解説
正解はウです
この問題のテーマ
メッセージの改ざんを確かめるためのデータのうち、メッセージをもとにブロック暗号を使って作れるものはどれかを問う問題です。改ざん検出の仕組みと、PKIや証明書などの関連用語を区別できるかが問われています。
解き方の考え方
条件は二つあります。「メッセージから生成する」ことと、「ブロック暗号(共通鍵暗号の一種)を用いて生成できる」ことです。まず、各選択肢がメッセージをもとに計算される値なのかを確かめます。そのうえで、暗号の鍵を使って改ざんを検出できるものかどうかを見ると、メッセージ認証符号だけが残ります。
選択肢ごとの解説
- ×ア PKIPKIは、公開鍵が本当にその持ち主のものであることを第三者の認証局が保証する、公開鍵基盤という仕組みの名前です。個々のメッセージからブロック暗号で計算する値ではないため、問題の条件に合いません。
- ×イ パリティビットパリティビットは、伝送中に起きたデータの誤りを見つけるために付け加える検査用のビットです。鍵を使わないため暗号としての強さはなく、悪意のある改ざんへの対策にはなりません。ブロック暗号で作るものでもありません。
- ○ウ メッセージ認証符号メッセージ認証符号(MAC)は、メッセージの改ざんを確かめるために付け加えるデータです。送信者と受信者が同じ方法でMACを計算し、値が一致すれば改ざんされていないと判断します。生成には共通鍵暗号やハッシュ関数が使われ、ブロック暗号を使うCBC-MACやCMACという方式があるため、問題の条件に合います。
- ×エ ルート証明書ルート証明書は、最上位の認証局が発行する証明書です。証明書の正しさを確かめるときは、階層をさかのぼってルート証明書にたどり着くかどうかを見ます。ルート証明書は信頼の出発点となるものであり、メッセージから作る値ではありません。
補足
MACは送信者と受信者が同じ鍵を共有する前提で使います。そのため、受信者もMACを作れてしまい、「送信者が確かに送った」ことを第三者に証明する否認防止には使えません。否認防止が問われたら、公開鍵暗号を使うデジタル署名を選ぶのが基本です。
POINT
- メッセージ認証符号(MAC)は、メッセージと送受信者が共有する秘密鍵から作る、改ざん検出用のデータです。
- MACには、ブロック暗号を使う方式(CBC-MAC、CMACなど)と、ハッシュ関数を使う方式(HMAC)があります。
- パリティビットは偶然起きる伝送誤りを検出するためのもので、意図的な改ざんの検出には使えません。
- PKIやルート証明書は、公開鍵の正当性を保証する仕組みに関する用語であり、メッセージから計算する値ではありません。
