web-dev-qa-db-ja.com

メッセージダイジェスト、メッセージ認証コード、およびHMACの違いは何ですか?

メッセージダイジェストについての私の理解は、暗号化されたデータとともに送信される一部のデータの暗号化されたハッシュであるため、データが改ざんされていないことを確認できることです。この場合、メッセージ認証コード(MAC)とハッシュMAC(HMAC)の違いは何ですか?

54
zer0stimulus
  • メッセージダイジェストアルゴリズムは、単一の入力(メッセージ)を受け取り、メッセージの整合性を検証できる「メッセージダイジェスト」(別名ハッシュ)を生成します。生成されます。メッセージとダイジェストを置き換えることができる攻撃者は、メッセージとダイジェストを新しい有効なペアで完全に置き換えることができます。
  • MACアルゴリズムは、メッセージと秘密鍵の2つの入力を受け取り、整合性を検証できるMACを生成しますandメッセージの信頼性:メッセージへの変更または秘密鍵により、(理想的には)異なるMACが生成されます。秘密にアクセスできない人は、検証するMAC計算を生成できません。つまり、MACを使用して、MACが秘密鍵にアクセスできる関係者によって生成されたことを確認できます。
  • HMACアルゴリズムは、特定の種類のMACアルゴリズムであり、ハッシュアルゴリズムを内部で(たとえば、暗号化アルゴリズムではなく)使用してMACを生成します。
90
LukeH
  • Message Digestは、単にメッセージのハッシュです。これは、入力データに適用される暗号化ハッシュ関数の出力であり、メッセージと呼ばれます。
  • メッセージ認証コード(MAC)は、メッセージの整合性を証明する情報であり、簡単に偽造することはできません。
  • [〜#〜] hmac [〜#〜]は、 RFC 2104 で定義される特定の種類のMACです。

ウィキペディアには、これらすべての用語を網羅した優れた記事があります: Message DigestMessage Authentication Code 、および [〜#〜] hmac [〜#〜] を参照してください。

17
Ondrej Tucny