Kode Autentikasi Pesan (MAC)

Primitive MAC memungkinkan Anda memverifikasi bahwa tidak ada yang telah memodifikasi data Anda. Pengirim yang membagikan kunci simetris dengan penerima dapat menghitung tag autentikasi untuk pesan tertentu, yang memungkinkan penerima memverifikasi bahwa pesan berasal dari pengirim yang diharapkan dan belum diubah.

MAC memiliki properti berikut:

  • Keaslian: Mengetahui kunci adalah satu-satunya cara untuk membuat tag MAC yang dapat diverifikasi.
  • Symmetric: Komputasi dan verifikasi tag memerlukan kunci yang sama.

MAC dapat bersifat deterministik atau acak, bergantung pada algoritmanya. Tink saat ini tidak menerapkan algoritma MAC non-deterministik. Anda hanya boleh menggunakan MAC untuk autentikasi pesan, bukan untuk tujuan lain seperti pembuatan byte pseudorandom (untuk itu, lihat PRF).

Jika Anda memerlukan primitif asimetris, lihat Tanda tangan Digital.

Memilih jenis kunci

Sebaiknya gunakan HMAC_SHA256 untuk sebagian besar penggunaan, tetapi ada opsi lain juga.

Secara umum, hal berikut berlaku:

  • HMAC_SHA512 mungkin lebih cepat atau tidak, bergantung pada ukuran pesan dan spesifikasi hardware yang Anda gunakan.
  • HMAC_SHA512 adalah mode paling konservatif yang dapat digunakan untuk jumlah pesan yang praktis tidak terbatas.
  • AES256_CMAC tercepat di sistem yang mendukung akselerasi hardware AES-NI.

Jaminan keamanan minimum

  • Kekuatan autentikasi minimal 80-bit
  • Aman dari pemalsuan eksistensial dalam serangan plaintext yang dipilih
  • Keamanan minimal 128-bit terhadap serangan pemulihan kunci, dan juga dalam skenario multi-pengguna (saat penyerang tidak menargetkan kunci tertentu, tetapi kunci apa pun dari kumpulan hingga 232 kunci)

Contoh kasus penggunaan

Lihat Saya ingin melindungi data dari modifikasi tidak sah.