Cryptology Academy · Pelajaran

CMAC & Poly1305: MAC Berbasis Sandi Blok

Bandingkan CMAC dan Poly1305 sebagai alternatif MAC berbasis hash.

Pelajaran 4 dari 413 langkah

CMAC & Poly1305: MAC Berbasis Sandi Blok adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa Itu MAC?

Kode Autentikasi Pesan (MAC) menerima kunci dan pesan, lalu menghasilkan sebuah tag. Tag tersebut membuktikan bahwa pesan tidak diubah dan dibuat oleh pihak yang memegang kunci.

HMAC vs MAC Berbasis Sandi Blok

HMAC menggunakan fungsi hash sebagai primitifnya. Sebaliknya, CMAC dan Poly1305 menggunakan sandi blok atau aritmetika polinomial. MAC berbasis sandi blok menghindari ketergantungan pada fungsi hash dan terintegrasi secara alami dengan perangkat keras AES.

Konstruksi CMAC

CMAC (MAC berbasis Sandi) didefinisikan dalam NIST SP 800-38B. CMAC mengisi pesan hingga batas blok, menurunkan dua subkunci K1/K2 dari sandi, melakukan XOR pada blok terakhir dengan subkunci tersebut, lalu menjalankan mode CBC tanpa menyimpan cipherteks perantara.

Derivasi Subkunci CMAC

K1 = AES_K(0^128) digeser ke kiri sebesar 1 bit, lalu di-XOR dengan konstanta jika MSB bernilai 1. K2 digeser dengan cara yang sama dari K1. Subkunci ini mengikat blok parsial terakhir dengan aman untuk mencegah perluasan panjang.

Gambaran Umum Poly1305

Poly1305 adalah autentikator sekali pakai yang dirancang oleh Daniel Bernstein. Poly1305 mengevaluasi polinom di atas bilangan prima 2^130-5, memperlakukan pesan sebagai koefisien polinom dan menggunakan pasangan kunci sekali pakai (r, s).

Matematika Poly1305

Tag = (jumlah (m_i * r^i) mod 2^130-5) + s mod 2^128. Kunci r dibatasi pada 22 bit tertentu untuk mencegah serangan pewaktuan. s adalah mask penjumlahan sekali pakai sepanjang 16 byte.

ChaCha20-Poly1305

Poly1305 hampir selalu dipasangkan dengan ChaCha20. ChaCha20 menghasilkan (r, s) sekali pakai dari aliran kunci sandi aliran, sehingga skema AEAD gabungan ini terbukti aman dan sangat cepat pada CPU ARM/perangkat seluler.

AES-GCM vs AES-CMAC

AES-GCM melakukan autentikasi menggunakan GHASH, yaitu MAC polinomial di atas GF(2^128). AES-CMAC lebih sederhana dan digunakan dalam IEEE 802.11i (WPA2) serta rangkaian sandi TLS 1.2. GCM menyediakan enkripsi dan autentikasi sekaligus dalam satu lintasan.

Perbandingan Kinerja

Poly1305 pada ARM Cortex-A mencapai sekitar 1 siklus/byte menggunakan intrinsik NEON. AES-CMAC memerlukan satu operasi blok AES untuk setiap blok 16 byte. Untuk data dalam jumlah besar, Poly1305 mengungguli CMAC pada perangkat keras tanpa AES-NI.

Properti Keamanan

CMAC tidak dapat dipalsukan secara eksistensial terhadap serangan pesan pilihan dengan asumsi AES adalah permutasi pseudorandom. Poly1305 aman secara teori informasi jika diberikan kunci sekali pakai yang benar-benar acak—probabilitas pemalsuan paling tinggi adalah 8*ceil(L/16)/2^106.

Kasus Penggunaan

CMAC: WPA2, S/MIME, integritas sistem berkas. Poly1305: TLS 1.3 melalui ChaCha20-Poly1305, WireGuard VPN, Signal Protocol, Noise Protocol Framework. Keduanya banyak diterapkan dalam sistem modern dengan keamanan tinggi.

Pemeriksaan Singkat

MAC apa yang digunakan dalam AEAD ChaCha20-Poly1305?

Ringkasan

Anda telah mempelajari konstruksi CMAC berbasis CBC dan aritmetika polinomial Poly1305. Keduanya adalah MAC aman dengan waktu konstan yang digunakan dalam protokol dunia nyata. Selanjutnya: TLS/HTTPS dan cara semua primitif ini dirangkai.

Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “CMAC & Poly1305: MAC Berbasis Sandi Blok” gratis?

Ya — teks lengkap “CMAC & Poly1305: MAC Berbasis Sandi Blok” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “CMAC & Poly1305: MAC Berbasis Sandi Blok”?

Bandingkan CMAC dan Poly1305 sebagai alternatif MAC berbasis hash. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “CMAC & Poly1305: MAC Berbasis Sandi Blok” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Konsep MAC & Serangan Perluasan Panjang
  2. Konstruksi HMAC & Pembuktian Keamanan
  3. HMAC dalam API: Penandatanganan Permintaan
  4. CMAC & Poly1305: MAC Berbasis Sandi Blok
← Kembali ke Cryptology Academy