Daftar Isi
Kriptografi adalah fondasi utama keamanan data di era internet. Salah satu algoritma yang paling legendaris dan masih digunakan secara luas hingga saat ini adalah RSA (Rivest-Shamir-Adleman). Bagi mahasiswa teknik informatika atau pemula di bidang keamanan siber, memahami RSA bukan sekadar menghafal rumus, melainkan memahami keindahan logika matematika di balik perlindungan data.
Artikel ini akan menyajikan panduan lengkap, mulai dari konsep dasar hingga latihan contoh soal algoritma RSA yang dirancang khusus agar mudah dipahami oleh pemula.
Apa Itu Algoritma RSA
RSA adalah algoritma kriptografi asimetris. Artinya, RSA menggunakan dua kunci yang berbeda: Kunci Publik (untuk enkripsi) dan Kunci Pribadi (untuk dekripsi). Keamanan RSA didasarkan pada tingkat kesulitan memfaktorkan bilangan bulat yang sangat besar menjadi faktor-faktor primanya.
Secara garis besar, proses RSA terdiri dari tiga tahap utama:
- Pembangkitan Kunci (Key Generation)
- Enkripsi (Encryption)
- Dekripsi (Decryption)
Langkah Matematika dalam Algoritma RSA
Sebelum masuk ke contoh soal, mari kita bedah langkah-langkah matematisnya:
- Pilih dua bilangan prima yang berbeda, sebut saja $p$ dan $q$.
- Hitung $n$, di mana $n = p \times q$. Nilai $n$ akan menjadi modulus untuk kedua kunci.
- Hitung fungsi Totien Euler, $\phi(n) = (p – 1) \times (q – 1)$.
- Pilih kunci publik ($e$), dengan syarat:
- $1 < e < \phi(n)$
- $e$ harus relatif prima terhadap $\phi(n)$ (FPB dari $e$ dan $\phi(n)$ adalah 1).
- Hitung kunci pribadi ($d$), di mana $d$ adalah invers perkalian modular dari $e$ terhadap $\phi(n)$. Rumusnya: $(d \times e) \pmod{\phi(n)} = 1$.
Latihan Contoh Soal Algoritma RSA 1: Angka Kecil
Mari kita mulai dengan angka sederhana agar Anda bisa memahami alur logikanya tanpa bantuan kalkulator besar.
Soal:
Tentukan kunci publik, kunci pribadi, serta hasil enkripsi dan dekripsi jika diketahui $p = 3$, $q = 11$, dan pesan yang ingin dikirim ($M$) adalah 5. Pilih $e = 3$.
Pembahasan:
1. Pembangkitan Kunci
- Hitung $n$: $n = 3 \times 11 = 33$.
- Hitung $\phi(n)$: $\phi(n) = (3 – 1) \times (11 – 1) = 2 \times 10 = 20$.
- Pilih $e$: Di soal ditentukan $e = 3$. Kita cek, apakah FPB(3, 20) = 1? Ya, maka $e = 3$ valid.
- Hitung $d$: $(d \times 3) \pmod{20} = 1$.Kita cari perkalian 3 yang jika dibagi 20 sisa 1. Angka tersebut adalah 21 ($7 \times 3 = 21$).Maka $d = 7$.
Kunci Publik: $(e=3, n=33)$
Kunci Pribadi: $(d=7, n=33)$
2. Enkripsi
Gunakan rumus $C = M^e \pmod n$.
$C = 5^3 \pmod{33}$
$C = 125 \pmod{33}$
$125 = (33 \times 3) + 26$. Maka, Ciphertext ($C$) = 26.
3. Dekripsi
Gunakan rumus $M = C^d \pmod n$.
$M = 26^7 \pmod{33}$
Untuk menghitung ini, gunakan sifat eksponen modular agar lebih mudah:
- $26^1 \pmod{33} = 26$
- $26^2 \pmod{33} = 676 \pmod{33} = 16$
- $26^4 \pmod{33} = 16^2 \pmod{33} = 256 \pmod{33} = 25$
- $26^7 = 26^4 \times 26^2 \times 26^1$
- $M = (25 \times 16 \times 26) \pmod{33}$
- $M = 10400 \pmod{33} = 5$.Hasil akhirnya kembali menjadi pesan awal, yaitu 5.
Latihan Contoh Soal Algoritma RSA 2: Mencari Kunci Pribadi
Seringkali dalam ujian, mahasiswa diminta mencari nilai $d$ menggunakan Extended Euclidean Algorithm.
Soal:
Jika $p = 7, q = 11$, dan kunci publik $e = 13$, berapakah nilai kunci pribadi $d$?
Pembahasan:
- $n = 7 \times 11 = 77$.
- $\phi(n) = 6 \times 10 = 60$.
- Kita mencari $d$ sehingga $13d \equiv 1 \pmod{60}$.
Gunakan Algoritma Euclidean:
- $60 = 4 \times 13 + 8$
- $13 = 1 \times 8 + 5$
- $8 = 1 \times 5 + 3$
- $5 = 1 \times 3 + 2$
- $3 = 1 \times 2 + 1$
Bekerja mundur (Substitusi):
- $1 = 3 – (1 \times 2)$
- $1 = 3 – (1 \times (5 – 3)) = 2 \times 3 – 5$
- $1 = 2 \times (8 – 5) – 5 = 2 \times 8 – 3 \times 5$
- $1 = 2 \times 8 – 3 \times (13 – 8) = 5 \times 8 – 3 \times 13$
- $1 = 5 \times (60 – 4 \times 13) – 3 \times 13 = 5 \times 60 – 23 \times 13$
Nilai yang berpasangan dengan 13 adalah $-23$. Karena negatif, tambahkan dengan $\phi(n)$:
$d = -23 + 60 = 37$.
Jawaban: Kunci pribadi $d = 37$.
Tips Mengerjakan Soal RSA untuk Mahasiswa
Agar tidak terjebak dalam perhitungan yang rumit, perhatikan beberapa tips berikut:
- Gunakan Sifat Modulo: Jangan menghitung angka berpangkat besar secara langsung (seperti $26^7$). Pecahlah menjadi pangkat yang lebih kecil (metode Square and Multiply).
- Cek Relatif Prima: Selalu pastikan FPB($e, \phi(n)$) adalah 1. Jika tidak, proses dekripsi akan gagal total.
- Pahami Fungsi Totien: Ingat bahwa $\phi(n)$ menggunakan $(p-1)(q-1)$, bukan $p \times q$. Ini adalah kesalahan umum yang sering dilakukan pemula.
- Validasi Hasil: Setelah mendapatkan $d$, kalikan dengan $e$ lalu bagi dengan $\phi(n)$. Jika sisanya bukan 1, maka hitungan $d$ Anda salah.
Mengapa Memahami RSA Penting?
Walaupun dalam praktiknya kita menggunakan library pemrograman untuk menjalankan RSA, memahami dasar perhitungannya secara manual memberikan Anda intuisi tentang:
- Kekuatan Kunci: Mengapa kunci yang lebih panjang lebih aman.
- Kelemahan Kriptografi: Bagaimana peretas bisa membongkar kunci jika mereka berhasil memfaktorkan nilai $n$.
- Infrastruktur Kunci Publik (PKI): Dasar dari sertifikat SSL/TLS yang melindungi website saat ini.
Kesimpulan
Algoritma RSA adalah perpaduan antara teori bilangan dan teknik keamanan data. Dengan berlatih melalui contoh soal algoritma RSA di atas, Anda sebagai mahasiswa atau pemula diharapkan tidak lagi merasa asing dengan istilah kunci publik dan pribadi. RSA mengajarkan kita bahwa keamanan data yang paling kuat sekalipun berasal dari prinsip matematika yang sederhana namun elegan.
Penulis:kiara salsabilla


Post Comment