0Pricing
Cryptology Academy · Pelajaran

Dasar-Dasar Sandi Blok & Padding

Pahami ukuran blok, padding PKCS7, dan struktur sandi.

Dasar-Dasar Sandi Blok & Padding adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 1 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

Penyandian blok mengenkripsi blok berukuran tetap. Saat teks biasa tidak mengisi seluruh blok, kita memerlukan padding. Dalam pelajaran ini kita menguasai struktur penyandian blok, skema padding, dan alasan semuanya penting.

Tinjauan Ukuran Blok

AES menggunakan blok 128 bit (16 bita). DES menggunakan blok 64 bit (8 bita). Jika teks biasa tepat 16 bita, ukurannya satu blok. Teks sepanjang 17 bita memerlukan dua blok.

Mengapa Padding Diperlukan

Jika teks biasa berukuran 20 bita, blok kedua hanya berisi 4 bita. Penyandi memerlukan blok lengkap berukuran 16 bita. Kita mengisi 12 bita sisanya dengan skema yang deterministik dan dapat dibalik.

Padding PKCS#7

PKCS#7 menambahkan N bita, masing-masing bernilai N: - Memerlukan 3 bita → tambahkan: 03 03 03 - Memerlukan 12 bita → tambahkan: 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C - Memerlukan 0 bita → tambahkan satu blok penuh berisi 16: 10×16

Selalu Tambahkan Satu Blok Penuh

Jika teks biasa tepat 16 bita, PKCS#7 menambahkan satu blok tambahan penuh berisi 0x10×16. Dengan demikian, penerima selalu mengetahui batas akhir padding: nilai bita terakhir menunjukkan jumlah bita yang harus dihapus.

PKCS#7 dalam Python

def pkcs7_pad(data: bytes, block_size: int = 16) -> bytes: n = block_size - (len(data) % block_size) return data + bytes([n] * n) def pkcs7_unpad(data: bytes) -> bytes: n = data[-1] return data[:-n]

Serangan Oracle Padding

Jika server mengungkapkan apakah padding valid setelah dekripsi (melalui pesan kesalahan atau waktu pemrosesan), penyerang dapat mendekripsi teks tersandi bita demi bita tanpa mengetahui kuncinya. Hal ini membobol ViewState ASP.NET pada 2010.

Padding Nol & ANSI X.923

Padding nol: isi dengan bita 0x00 (ambigu — data asli mungkin berakhir dengan nol). ANSI X.923: isi dengan nol, bita terakhir = jumlahnya. ISO 7816-4: bita padding pertama = 0x80, sisanya = 0x00. PKCS#7 tidak ambigu dan lebih disarankan.

Padding Bitwise (CTS)

Ciphertext Stealing (CTS) menghindari padding sepenuhnya: metode ini mengatur ulang dua blok terakhir untuk menangani input yang hanya mengisi sebagian blok. Digunakan dalam enkripsi disk (Kerberos dan beberapa penerapan AES).

Dampak Keamanan Ukuran Blok

Dengan blok 64 bit (DES, 3DES, Blowfish): tabrakan ulang tahun terjadi setelah 2^32 blok (~32 GB). Peramban menonaktifkan 3DES dalam TLS setelah serangan SWEET32 mendemonstrasikan hal ini pada 2016. Blok AES berukuran 128 bit memerlukan 2^64 blok — secara praktis aman.

Mode Tanpa Padding

AES-CTR dan AES-GCM tidak memerlukan padding: keduanya menggunakan penyandi blok sebagai pembangkit aliran kunci dan XOR untuk input dengan panjang sembarang. Batas blok hanyalah detail penerapan internal.

Pemeriksaan Singkat

Dengan PKCS#7 dan blok berukuran 16 bita, padding apa yang ditambahkan ke pesan berukuran 13 bita?

Rangkuman

Anda telah menguasai padding penyandi blok! Selanjutnya kita membandingkan mode ECB dan CBC — dimulai dengan serangan penguin ECB yang terkenal.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar Sandi Blok & Padding” gratis?

Ya — teks lengkap “Dasar-Dasar Sandi Blok & Padding” 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 “Dasar-Dasar Sandi Blok & Padding”?

Pahami ukuran blok, padding PKCS7, dan struktur sandi. 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 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar Sandi Blok & Padding” 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