Dalam dunia digital yang semakin terhubung, keamanan data menjadi prioritas utama. Salah satu algoritma enkripsi yang paling fundamental dan banyak digunakan adalah RSA (Rivest–Shamir–Adleman). Artikel ini akan membahas contoh enkripsi RSA secara mendalam, menjelaskan konsepnya dengan cara yang mudah dipahami, serta memberikan gambaran bagaimana algoritma ini bekerja untuk melindungi informasi sensitif.
Enkripsi RSA adalah metode enkripsi asimetris, yang berarti ia menggunakan sepasang kunci: satu kunci publik untuk mengenkripsi data dan satu kunci privat untuk mendekripsinya. Kunci publik dapat dibagikan secara luas kepada siapa saja, sementara kunci privat harus dijaga kerahasiaannya oleh pemiliknya. Keunikan RSA terletak pada penggunaan teori bilangan prima dalam prosesnya.
Prinsip kerja RSA didasarkan pada kesulitan komputasi dalam memfaktorkan bilangan bulat yang sangat besar menjadi faktor-faktor primanya. Proses pembuatan kunci dan enkripsi/dekripsi melibatkan langkah-langkah matematis yang kompleks, namun ide dasarnya dapat disederhanakan:
p dan q, dipilih secara rahasia. Kemudian, dihitung n = p * q. Nilai n ini akan menjadi bagian dari kunci publik dan privat. Selanjutnya, dihitung phi(n) = (p-1) * (q-1). Sebuah bilangan bulat e dipilih sedemikian rupa sehingga 1 < e < phi(n) dan e relatif prima terhadap phi(n) (FPB(e, phi(n)) = 1). Bilangan e ini akan menjadi eksponen kunci publik.(n, e).(n, d), di mana d adalah invers perkalian dari e modulo phi(n). Artinya, (d * e) mod phi(n) = 1. Menghitung d dari e dan phi(n) membutuhkan proses yang hanya dapat dilakukan secara efisien oleh pihak yang mengetahui nilai p dan q (yaitu, pemilik kunci privat).M (di mana M adalah representasi numerik dari teks atau data, dan M < n), penerima pesan menggunakan kunci publik pengirim (n, e). Pesan terenkripsi C dihitung menggunakan rumus: C = M^e mod n.(n, d), dapat mendekripsi pesan terenkripsi C menggunakan rumus: M = C^d mod n. Hasilnya adalah pesan asli M.Mari kita ambil contoh yang sangat disederhanakan untuk mengilustrasikan proses ini. Ingat, dalam praktik nyata, p dan q adalah bilangan prima yang sangat besar (ratusan digit).
Misalkan kita memilih dua bilangan prima kecil:
p = 3q = 11Hitung n:
n = p * q = 3 * 11 = 33
Hitung phi(n):
phi(n) = (p - 1) * (q - 1) = (3 - 1) * (11 - 1) = 2 * 10 = 20
Pilih e sedemikian rupa sehingga 1 < e < 20 dan FPB(e, 20) = 1. Pilihan yang memungkinkan adalah e = 3 (FPB(3, 20) = 1) atau e = 7 (FPB(7, 20) = 1). Mari kita pilih e = 7.
Kunci Publik: (n, e) = (33, 7)
Kunci Privat: Kita perlu mencari d sedemikian rupa sehingga (d * 7) mod 20 = 1. Menggunakan algoritma Extended Euclidean atau mencoba nilai, kita menemukan bahwa d = 3 karena (3 * 7) mod 20 = 21 mod 20 = 1.
Kunci Privat: (n, d) = (33, 3)
Misalkan pesan asli M adalah angka 5. Pesan ini harus lebih kecil dari n (33).
Menggunakan kunci publik (33, 7), pesan terenkripsi C dihitung sebagai:
C = M^e mod n
C = 5^7 mod 33
Menghitung 5^7: 5 * 5 = 25, 25 * 5 = 125, 125 * 5 = 625, 625 * 5 = 3125, 3125 * 5 = 15625, 15625 * 5 = 78125.
Sekarang, hitung 78125 mod 33:
78125 / 33 ≈ 2367.42
78125 = 2367 * 33 + sisa
2367 * 33 = 78111
sisa = 78125 - 78111 = 14
Jadi, pesan terenkripsi C = 14.
Penerima pesan yang sah, dengan kunci privat (33, 3), menerima nilai terenkripsi C = 14. Pesan asli M dihitung sebagai:
M = C^d mod n
M = 14^3 mod 33
Menghitung 14^3: 14 * 14 = 196, 196 * 14 = 2744.
Sekarang, hitung 2744 mod 33:
2744 / 33 ≈ 83.15
2744 = 83 * 33 + sisa
83 * 33 = 2739
sisa = 2744 - 2739 = 5
Jadi, pesan asli yang berhasil didekripsi adalah M = 5, sesuai dengan pesan awal.
Keberhasilan enkripsi RSA sangat bergantung pada kerahasiaan kunci privat. Jika kunci privat bocor, maka siapa pun dapat mendekripsi semua pesan yang dienkripsi menggunakan kunci publik yang sesuai. Inilah sebabnya mengapa sistem keamanan modern menggunakan manajemen kunci yang canggih dan algoritma yang jauh lebih kompleks dengan bilangan prima berukuran sangat besar untuk memastikan keamanan yang kuat.
Anda mungkin berinteraksi dengan RSA setiap hari tanpa menyadarinya. Beberapa aplikasi utamanya meliputi:
Memahami contoh enkripsi RSA seperti yang dijelaskan di atas memberikan wawasan tentang dasar-dasar kriptografi modern. Meskipun contoh sederhana ini menggunakan angka kecil, prinsip matematisnya tetap sama untuk aplikasi skala besar yang melindungi data Anda di internet.