0Pricing
Cryptology Academy · Pelajaran

OAEP: Padding Enkripsi Asimetris Optimal

Pelajari pengodean OAEP dan cara pengodean ini mencapai keamanan IND-CCA2.

OAEP: Padding Enkripsi Asimetris Optimal adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 3 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

OAEP (Pengisian Enkripsi Asimetris Optimal) menyediakan enkripsi RSA yang terbukti aman terhadap IND-CCA2. OAEP menggunakan pengodean acak yang membuat kueri orakel tidak berguna secara kriptografis.

Tujuan OAEP

OAEP dirancang oleh Bellare dan Rogaway (1994) dengan dua tujuan: (1) mencegah semua serangan RSA buku teks melalui pengacakan, (2) mencapai keamanan IND-CCA2 dengan pembuktian keamanan formal dalam model orakel acak.

Masukan OAEP

M: pesan yang akan dienkripsi (|M| ≤ |n| - 2*hLen - 2 byte) L: label opsional (biasanya kosong) MGF: Fungsi Pembangkitan Masker (berdasarkan SHA-256) r: benih acak (hLen byte)

Langkah 1 Pengodean OAEP: Blok Data

DB = lHash || PS || 0x01 || M dengan: - lHash = Hash(L) (hash dari label) - PS = byte nol yang mengisi hingga panjang tetap - 0x01 menandai awal pesan

Langkah 2 Pengodean OAEP: Pemberian Masker

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB Inilah pesan yang telah diberi pengisian dan dimasukkan ke enkripsi RSA.

MGF1: Fungsi Pembangkitan Masker

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... MGF1 dengan SHA-256 menghasilkan keluaran semuacak dengan panjang sembarang dari sebuah benih. MGF1 digunakan dalam OAEP dan RSA-PSS.

Dekode OAEP

Diberikan EM: 1. Pisahkan menjadi maskedSeed dan maskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. Verifikasi bahwa lHash cocok; temukan pemisah 0x01; ekstrak M 5. Kesalahan apa pun → dekripsi gagal (selalu gunakan kesalahan yang sama)

Alasan OAEP Mengalahkan Serangan Orakel

Benih acak r pada OAEP berubah pada setiap enkripsi. Dengan kemungkinan yang sangat besar, teks tersandi yang dimodifikasi akan didekripsi menjadi pesan dengan pengisian yang seragam acaknya. Orakel akan melihat "tidak valid" untuk semua modifikasi.

Keamanan IND-CCA2

IND-CCA2 (Ketakterbedaan terhadap Serangan Teks Tersandi Pilihan 2): penyerang tidak dapat membedakan Enc(M0) dari Enc(M1), bahkan dengan akses ke orakel dekripsi untuk semua teks tersandi kecuali teks tersandi tantangan. OAEP mencapai keamanan ini.

OAEP vs v1.5 dalam Praktik

Pustaka kriptografi Python: gunakan padding.OAEP(), bukan padding.PKCS1v15(). Java: gunakan cipher 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. Jangan pernah menggunakan 'RSA/ECB/PKCS1Padding' untuk kode baru.

Ukuran Pesan Maksimum OAEP

Untuk RSA-2048 dengan SHA-256: Pesan maksimum = 256 - 2×32 - 2 = 190 byte Tambahan OAEP adalah 2×hLen + 2 byte. Untuk pesan yang lebih panjang, gunakan enkripsi hibrida AES: enkripsi kunci AES dengan OAEP, dan data dengan AES-GCM.

Pemeriksaan Singkat

Sifat apa yang membuat OAEP tahan terhadap serangan orakel pengisian?

Ringkasan

OAEP menyediakan keamanan yang dapat dibuktikan untuk enkripsi RSA. Selanjutnya kita akan mempelajari RSA-PSS — peningkatan yang sepadan untuk tanda tangan RSA.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “OAEP: Padding Enkripsi Asimetris Optimal” gratis?

Ya — teks lengkap “OAEP: Padding Enkripsi Asimetris Optimal” 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 “OAEP: Padding Enkripsi Asimetris Optimal”?

Pelajari pengodean OAEP dan cara pengodean ini mencapai keamanan IND-CCA2. 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 3 dari 4.

Berapa lama pelajaran “OAEP: Padding Enkripsi Asimetris Optimal” 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. RSA dari Buku Teks & Alasan Ketidakamanannya
  2. Padding PKCS#1 v1.5 & Bleichenbacher
  3. OAEP: Padding Enkripsi Asimetris Optimal
  4. RSA-PSS untuk Tanda Tangan Digital
← Kembali ke Cryptology Academy