0Pricing
Cryptology Academy · Pelajaran

GCM & Enkripsi Terautentikasi

Tambahkan tag autentikasi ke enkripsi untuk mencegah perubahan data.

GCM & Enkripsi Terautentikasi 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.

Selamat Datang

AES-GCM adalah standar utama untuk enkripsi terautentikasi. Mode ini memberikan kerahasiaan AND integritas dalam satu operasi, sehingga mencegah perubahan tanpa langkah HMAC terpisah.

Masalah jika Hanya Menggunakan Enkripsi

Enkripsi memberikan kerahasiaan, tetapi NOT integritas. Penyerang yang mencegat teks tersandi AES-CBC dapat membalik bit dan mengubah teks asli hasil dekripsi tanpa mengetahui kuncinya.

AEAD: Enkripsi Terautentikasi dengan Data Terkait

Skema AEAD menghasilkan: teks tersandi + tag autentikasi. Tag tersebut mengautentikasi teks tersandi AND data terkait opsional yang tidak dienkripsi (AAD). Perubahan apa pun akan membuat tag tidak valid.

Arsitektur GCM

AES-GCM menggunakan: 1. AES-CTR untuk enkripsi 2. GHASH untuk autentikasi GHASH menghitung MAC polinomial atas teks tersandi + AAD menggunakan perkalian dalam GF(2^128).

Gambaran Umum GHASH

GHASH(H, A, C) = hash dari AAD + teks tersandi menggunakan subkunci H = AES(K, 0^128). Polinomial tersebut dievaluasi pada H dalam GF(2^128). Hasilnya di-XOR dengan penghitung terenkripsi untuk membentuk tag.

Masukan dan Keluaran AES-GCM

Masukan: kunci 128/192/256 bit, nonce 96 bit, teks asli, AAD opsional Keluaran: teks tersandi (panjangnya sama dengan teks asli), tag autentikasi 128 bit Tag biasanya berukuran 16 bita. Pemotongan hingga kurang dari 12 bita tidak disarankan.

Persyaratan Nonce dalam GCM

GCM memerlukan nonce unik untuk setiap enkripsi dengan kunci yang sama. Nonce acak 96 bit adalah standar. Setelah 2^32 pesan, probabilitas tabrakan melebihi 1%. Pada titik itu, lakukan penggantian kunci.

Bencana Penggunaan Kembali Nonce GCM

Menggunakan kembali (kunci, nonce) dalam GCM memungkinkan penyerang memulihkan subkunci GHASH H dan memalsukan teks tersandi apa pun dengan tag yang valid. Hal ini sepenuhnya merusak kerahasiaan AND integritas.

Kasus Penggunaan Data Terkait (AAD)

AAD adalah metadata yang ingin Anda autentikasi, tetapi tidak ingin Anda enkripsi: - Header HTTP: diautentikasi untuk mencegah serangan pengalihan respons - ID catatan basis data: memastikan teks tersandi didekripsi pada baris yang benar - Versi protokol: mencegah serangan penurunan versi

Contoh Lengkap AES-GCM dalam Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(256) nonce = os.urandom(12) aad = b'user_id=12345' aesgcm = AESGCM(key) ct = aesgcm.encrypt(nonce, b'secret', aad) pt = aesgcm.decrypt(nonce, ct, aad) # raises if tampered

Alternatif: ChaCha20-Poly1305

ChaCha20-Poly1305 adalah skema AEAD utama lainnya. Digunakan dalam TLS 1.3 untuk perangkat tanpa AES-NI (ARM/perangkat seluler). Memberikan keamanan yang serupa dengan AES-GCM, tetapi lebih cepat pada perangkat lunak tanpa akselerasi perangkat keras.

Pemeriksaan Singkat

Apa yang dilindungi tag autentikasi dalam AES-GCM?

Ringkasan

AES-GCM adalah pilihan bawaan yang tepat untuk enkripsi terautentikasi. Selanjutnya, kita akan mempelajari sandi aliran: dari RC4 yang telah rusak hingga ChaCha20 modern.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “GCM & Enkripsi Terautentikasi” gratis?

Ya — teks lengkap “GCM & Enkripsi Terautentikasi” 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 “GCM & Enkripsi Terautentikasi”?

Tambahkan tag autentikasi ke enkripsi untuk mencegah perubahan data. 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 “GCM & Enkripsi Terautentikasi” 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. Dasar-Dasar Sandi Blok & Padding
  2. ECB vs CBC: Pola & IV
  3. Mode CTR & Perilaku Sandi Aliran
  4. GCM & Enkripsi Terautentikasi
← Kembali ke Cryptology Academy