MAC プリミティブを使用すると、データが改ざんされていないことを確認できます。受信者と対称鍵を共有する送信者は、特定のメッセージの認証タグを計算できます。これにより、受信者は、メッセージが想定された送信者から送信されたものであり、変更されていないことを確認できます。
MAC には次の特性があります。
- 真正性: 鍵を知ることは、検証可能な MAC タグを作成する唯一の方法です。
- 対称: タグの計算と検証には同じ鍵が必要です。
MAC は、アルゴリズムに応じて決定論的またはランダム化できます。Tink は現在、非確定的 MAC アルゴリズムは実装していません。MAC はメッセージ認証にのみ使用し、擬似ランダム バイトの生成などの他の目的には使用しないでください(詳細については、PRF をご覧ください)。
非対称プリミティブが必要な場合は、デジタル署名をご覧ください。
鍵の種類を選択する
通常は HMAC_SHA256 を使用することをおすすめしますが、他の方法を使用することもできます。
一般に、次のことが当てはまります。
- メッセージ サイズと使用するハードウェアの特性によっては、HMAC_SHA512 が高速になる場合とそうでない場合があります。
- HMAC_SHA512 は最も控えめなモードであり、メッセージの数を実質的に無制限に使用できます。
AES256_CMAC は、AES-NI ハードウェア アクセラレーションをサポートするシステムで最速です。
最小限のセキュリティ保証
- 認証強度は 80 ビット以上
- 選択された平文攻撃の下で存在感偽造から保護する
- 鍵復元攻撃に対する 128 ビット以上のセキュリティとマルチユーザー シナリオ(攻撃者が特定の鍵をターゲットにしていない場合、最大 232 個の鍵のセットから任意の鍵をターゲットにする場合)
使用例
データを改ざんから保護したいをご覧ください。