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

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

MAC には次の特性があります。

  • 真正性: 鍵を知ることは、検証可能な MAC タグを作成する唯一の方法です。
  • 対称: タグの計算と検証には同じ鍵が必要です。

MAC は、アルゴリズムに応じて決定論的またはランダム化できます。Tink は現在、非確定的 MAC アルゴリズムは実装していません。MAC はメッセージ認証にのみ使用し、擬似ランダム バイトの生成などの他の目的には使用しないでください(詳細については、PRF をご覧ください)。

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

鍵の種類を選択する

通常は HMAC_SHA256 を使用することをおすすめしますが、他の方法を使用することもできます。

一般に、次のことが当てはまります。

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

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

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

使用例

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