メッセージ認証コード(MAC)

MAC プリミティブを使用すると、データが改ざんされていないことを確認できます。送信者が受信者と対称鍵を共有すると、特定のメッセージの認証タグを計算できます。これにより、受信者はメッセージが想定される送信者から送られ、変更されていないことを確認できます。

MAC には次のプロパティがあります。

  • 真正性: 検証可能な MAC タグを作成するには、鍵を知っている必要があります。
  • Symmetric: タグの計算と検証には同じ鍵が必要です。

MAC は、アルゴリズムによって確定的またはランダム化できます。Tink では現在、非決定的 MAC アルゴリズムを実装していません。MAC は、疑似乱数バイトの生成などの他の目的ではなく、メッセージ認証にのみ使用する必要があります(詳しくは、PRF をご覧ください)。

代わりに非対称プリミティブが必要な場合は、デジタル署名をご覧ください。

キータイプを選択する

ほとんどの用途では HMAC_SHA256 を使用することをおすすめしますが、他のオプションもあります。

一般に、次のことが言えます。

  • HMAC_SHA512 は、メッセージ サイズと使用するハードウェアの詳細に応じて、高速になる場合とそうでない場合があります。
  • HMAC_SHA512 は、実質的に無制限の数のメッセージに使用できる最も保守的なモードです。
  • AES256_CMAC は、AES-NI ハードウェア アクセラレーションをサポートするシステムで最も高速です。

最小限のセキュリティ保証

  • 80 ビット以上の認証強度
  • 選択平文攻撃による実在の偽造に対する保護
  • 鍵復元攻撃に対する 128 ビット以上のセキュリティ、およびマルチユーザー シナリオ(攻撃者が特定の鍵ではなく、最大 232 個の鍵のセットの任意の鍵をターゲットとしている場合)

使用例

データを改ざんから保護したいをご覧ください。