Enkripsi RSA adalah tulang punggung komunikasi internet yang aman. Ini adalah jenis kriptografi kunci publik yang melindungi email, transaksi digital, dan data sensitif yang mengalir melalui jaringan. Algoritme ini dinamai menurut penciptanya: Ronald L. Rivest, Adi Shamir, dan Leonard M. Adleman. Mereka mengembangkan sistem tersebut saat mengajar di Massachusetts Institute of Technology.
Keamanan RSA bergantung pada rintangan matematis sederhana yang mudah dibuat namun hampir mustahil untuk dibalik. Pengguna memulai dengan memilih dua bilangan prima besar, p dan q. Angka-angka ini sangat besar sehingga mengalikannya untuk mendapatkan n adalah hal yang sepele, tetapi memfaktorkan n kembali menjadi p dan q merupakan hal yang sulit secara komputasi.
Anggap saja seperti ini: mengalikan dua bilangan besar membutuhkan waktu sepersekian detik. Mencoba mencari tahu dua angka mana yang dikalikan untuk mendapatkan hasil tersebut? Itu bisa memakan waktu miliaran tahun dengan teknologi saat ini.
Pada tahun 2015, standar keamanan pemerintah AS mengharuskan modulus n minimal 2.048 bit. Dalam bentuk desimal, ini berarti p dan q masing-masing berjumlah sekitar 308 digit, sehingga menghasilkan 617 digit angka untuk n. Bilangan terbesar yang berhasil kita faktorkan hanya setengah dari jumlah tersebut. Kesulitan memfaktorkan kira-kira dua kali lipat untuk setiap tambahan tiga digit dalam modulus. Pertumbuhan kompleksitas yang eksponensial ini memastikan kunci 617 digit tetap aman dari serangan brute force selama beberapa dekade.
Mekanisme Pembuatan Kunci
Setelah p dan q dipilih, sistem akan menghasilkan kunci publik dan kunci pribadi. Pengguna memilih bilangan bulat e kurang dari n. Bilangan ini harus relatif prima terhadap hasil kali (p – 1) dan (q – 1). Dalam bahasa Inggris sederhana, e tidak memiliki faktor persekutuan dengan produk tersebut selain 1.
Pilihan khusus ini menjamin keberadaan nomor lain d. Jika e dikalikan d dan dibagi dengan kelipatan persekutuan terkecil dari (p – 1) dan (q – 1), maka sisanya adalah 1.
Menemukan d itu mudah jika Anda mengetahui p dan q. Algoritma Euclidean menghitungnya dalam beberapa saat. Namun jika Anda tidak mengetahui p dan q, mencari d dari e sama sulitnya dengan memfaktorkan n. Kesulitan itulah yang menjadi dasar keseluruhan keamanan kripto RSA.
Keamanan RSA bukanlah keajaiban; itu matematika. Secara khusus, ini adalah asimetri antara perkalian mudah dan faktorisasi mustahil.
Kunci Publik vs. Kunci Pribadi
Label d dan e mendeskripsikan fungsi, bukan peran ketat. Kuncinya dapat dipertukarkan. Fleksibilitas ini memungkinkan RSA untuk melayani dua tujuan berbeda: kerahasiaan dan otentikasi.
Untuk membuat saluran kerahasiaan, pengguna A menerbitkan e dan n di direktori publik. Pengguna A merahasiakan d. Ketika seseorang ingin mengirim pesan pribadi ke A, mereka mengubah pesan tersebut menjadi angka yang lebih kecil dari n dan mengenkripsinya menggunakan e dan n. Hanya A yang dapat mendekripsinya karena hanya A yang memiliki d. Asumsinya—dan bukti kuat—menyatakan bahwa tidak ada orang lain yang dapat mendekripsi pesan tanpa memfaktorkan n.
Otentikasi bekerja secara berbeda. Pengguna A menerbitkan d dan n dan merahasiakan e. Pengguna B ingin memverifikasi bahwa mereka sedang berbicara dengan A. B mengirimkan pesan tantangan ke A. Jika A mengembalikan versi terenkripsi menggunakan e, B dapat mendekripsinya menggunakan d publik. Jika pesan yang didekripsi cocok dengan tantangannya, B mengetahui pengirimnya memiliki e. Karena hanya A yang memiliki e, identitasnya diverifikasi.
Tanda Tangan Digital dan Hashing
Penandatanganan digital menambah lapisan kompleksitas. Ini memerlukan fungsi hashing yang aman terhadap kripto. Ini adalah fungsi publik yang memampatkan pesan apa pun menjadi intisari yang lebih kecil. Setiap bagian intisari bergantung pada setiap bagian pesan aslinya. Ubah satu bit dalam pesan asli, dan kira-kira setengah bit dalam intisari akan terbalik.
Hash yang aman terhadap kripto membuatnya tidak mungkin secara komputasi untuk menemukan pesan yang menghasilkan intisari tertentu yang telah ditetapkan sebelumnya. Hal ini juga menyulitkan untuk menemukan pesan berbeda dengan intisari yang sama seperti pesan yang diketahui.
Untuk menandatangani pesan, A mengenkripsi intisari dengan rahasianya e dan menambahkannya ke pesan. Pesannya sendiri tidak perlu dirahasiakan. Siapa pun dapat menggunakan kunci publik A d untuk mendekripsi tanda tangan dan memulihkan intisarinya. Mereka kemudian menghitung intisari pesan yang diterima secara mandiri. Jika kedua intisari cocok, tanda tangannya valid. Hanya A yang dapat mengenkripsi intisari karena hanya A yang mengetahui e.
Realitas Hibrida
Ada biaya untuk keamanan ini. Enkripsi asimetris melibatkan lebih banyak komputasi dibandingkan enkripsi simetris (kunci tunggal). Permintaan pemrosesan yang tinggi ini mengurangi hasil secara drastis. Selama sekitar 20 tahun, algoritme satu kunci telah mencapai hasil 1.000 hingga 10.000 kali lebih tinggi dibandingkan algoritme dua kunci untuk tingkat keamanan yang sebanding.
Karena RSA lambat, jarang digunakan untuk mengenkripsi data dalam jumlah besar secara langsung. Sebaliknya, teknologi ini mendukung sistem hibrida. RSA menangani tugas berat otentikasi dan tanda tangan digital. Itu juga dengan aman menukar kunci sesi yang dibuat secara acak. Setelah kunci tersebut dibagikan, sistem beralih ke algoritma satu kunci untuk transmisi data aktual berkecepatan tinggi. Saat sesi berakhir, kuncinya dibuang.
Kombinasi ini memberi kita yang terbaik dari kedua dunia. Kami mendapatkan pertukaran kunci kriptografi kunci publik yang aman dengan kecepatan enkripsi simetris untuk sebagian besar data kami.
Perhitungannya bertahan. Kuncinya tetap aman. Namun seiring dengan meningkatnya kekuatan komputasi, definisi “besar” pun bergeser. Apa yang tidak bisa dipecahkan hari ini mungkin bisa dipecahkan besok. Kami terus membangun bilangan prima yang lebih besar. Kami berharap kesenjangan antara perkalian mudah dan faktorisasi sulit tetap cukup lebar untuk melindungi kehidupan digital kita.






























