RSA
assalamualaikum wr. wb , di postingan ke 8 aku ini , kita akan bahas masalah RSA nihhhh , udah ada yang tau belom RSA itu apa ? , nah masih penasaran kan nahhhh langsung aja kita akan bahas tentang RSA, check this out......
APA ITU RSA ?
RSA merupakan salah satu algoritma kriptografi asimetris yang menggunakan sepasang kunci, yaitu kunci publik dan kunci pribadi. Panjang kunci dapat diatur,dimana semakin panjang bit pembentukan kunci maka semakin sukar untuk dipecahkan karena sulitnya memfaktorkan dua bilangan yang sangat besar. Penelitian ini menerapkan algoritma RSA untuk enkripsi dan dekripsi kolom suatu tabel pada basis data Oracle sebagai basis data terbaik pada saat penulisan ini dibuat. Berdasarkan penelitian yang telah dilakukan, penulis dapat menarik kesimpulan, yaitu: Algoritma kriptografi asimetris RSA dapat diimplementasikan untuk proses enkripsi dan dekripsi kolom suatu tabel pada basis data Oracle, khususnya untuk tipe data varchar2.
Enkripsi Menggunakan Algoritma RSA
Sebagai media komunikasi umum, suatu jaringan sangat rawan terhadap penyadapan, pencurian, dan
pemalsuan informasi. Proses pengiriman data pada suatu jaringan harus menjamin keamanan dan
keutuhan, jika tidak, akan terjadi kemungkinan-kemungkinan seperti yang dijelaskan sebelumnya.
Untuk itu salah satu cara untuk mengamankan data dari kejadian-kejadian tersebut, diperlukan penyandiaan terhadap data yang akan dikirim. Penyandian ini sangat penting, apalagi dalam sektor-sektor strategis
seperti bisnis, perbankan, atau pemerintahan sangat memerlukan teknologi penyandian Informasi.
pemalsuan informasi. Proses pengiriman data pada suatu jaringan harus menjamin keamanan dan
keutuhan, jika tidak, akan terjadi kemungkinan-kemungkinan seperti yang dijelaskan sebelumnya.
Untuk itu salah satu cara untuk mengamankan data dari kejadian-kejadian tersebut, diperlukan penyandiaan terhadap data yang akan dikirim. Penyandian ini sangat penting, apalagi dalam sektor-sektor strategis
seperti bisnis, perbankan, atau pemerintahan sangat memerlukan teknologi penyandian Informasi.
Ilmu menyandi (kriptografi) sebetulnya adalah ilmu yang sudah dikenal bahkan semenjak jaman Julius Caesar (sebelum masehi). Ilmu ini tidak hanya mencakup teknik-teknik menyandikan informasi,
tetapi juga teknik untuk membongkar sandi.
tetapi juga teknik untuk membongkar sandi.
Enkripsi adalah suatu proses mengubah sebuah teks murni (plaintext) menjadi sebuah runtutan karakter atau data yang terlihat tidak berarti dan mempunyai urutan bit yang tidak beraturan, disebut ciphertext. Proses pengubahan kembali ciphertext menjadi plaintext disebut dekripsi.
Terdapat banyak algoritma penyandian di dunia ini, yang paling banyak dipakai di dunia adalah DES dan RSA. Di samping DES dan RSA, masih ada banyak sandi lain seperti MD2 (dipakai GSM), IDEA, RC2, dll. Akan tetapi, DES dan RSA adalah yang paling populer dan paling banyak dipakai.
RSA banyak dipakai oleh banyak perangkat lunak di dunia, contohnya adalah pada program browser internet MS Internet Explorer dan Netscape. Salah satu sistem penyandian yang juga banyak dipakai adalah DES (Data Encryption Standard). Mekanisme kerja RSA cukup sederhana dan mudah mengerti, tetapi kokoh. Sampai saat ini satu-satunya cara untuk mendobraknya adalah dengan cara mencoba satu persatu kombinasi kunci yang mungkin atau yang biasa disebut brute force attack. Sehingga penentuan
tingkat keamanan suatu sandi dari kemungkinan dibongkar adalah seberapa panjang dari sandi
(ukuran kunci) terebut. Karena jika semakin panjang suatu kode, maka semakin banyak pula kombinasi
kunci yang mungkin ada.
tingkat keamanan suatu sandi dari kemungkinan dibongkar adalah seberapa panjang dari sandi
(ukuran kunci) terebut. Karena jika semakin panjang suatu kode, maka semakin banyak pula kombinasi
kunci yang mungkin ada.
RSA sendiri dibuat pada tahun 1978. RSA adalah singkatan dari nama para penemunya, yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman. RSA adalah salah satu algoritma penyandian yang paling
banyak mengundang kontroversi, selain DES. Sejauh ini belum seorang pun yang berhasil menemukan
lubang sekuriti pada DES dan RSA, tetapi tak seorang pun juga yang berhasil memberikan pembuktian
ilmiah yang memuaskan dari keamanan kedua teknik sandi ini.
banyak mengundang kontroversi, selain DES. Sejauh ini belum seorang pun yang berhasil menemukan
lubang sekuriti pada DES dan RSA, tetapi tak seorang pun juga yang berhasil memberikan pembuktian
ilmiah yang memuaskan dari keamanan kedua teknik sandi ini.
Untuk menyandi informasi dan untuk menerjemahkan pesan tersandi sebuah algoritma penyandian
memerlukan sebuah data biner yang disebut kunci. Tanpa kunci yang cocok orang tidak bisa
mendapatkan kembali pesan asli dari pesan tersandi. Pada DES digunakan kunci yang sama untuk
menyandi (enkripsi) maupun untuk menterjemahan (dekripsi), sedangkan RSA menggunakan dua kunci
yang berbeda. Isitilahnya, DES disebut sistem sandi simetris sementara RSA disebut sistem sandi
asimetris. Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem sandi simetris cenderung
jauh lebih cepat sehingga lebih disukai oleh sementara kalangan industri. Kejelekannya, pihak-pihak yang
ingin berkomunikasi secara privat harus punya akses ke sebuah kunci DES bersama. Walaupun biasanya
pihak-pihak yang terkait sudah saling percaya, skema ini memungkinkan satu pihak untuk memalsukan
pernyataan dari pihak lainnya.
memerlukan sebuah data biner yang disebut kunci. Tanpa kunci yang cocok orang tidak bisa
mendapatkan kembali pesan asli dari pesan tersandi. Pada DES digunakan kunci yang sama untuk
menyandi (enkripsi) maupun untuk menterjemahan (dekripsi), sedangkan RSA menggunakan dua kunci
yang berbeda. Isitilahnya, DES disebut sistem sandi simetris sementara RSA disebut sistem sandi
asimetris. Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem sandi simetris cenderung
jauh lebih cepat sehingga lebih disukai oleh sementara kalangan industri. Kejelekannya, pihak-pihak yang
ingin berkomunikasi secara privat harus punya akses ke sebuah kunci DES bersama. Walaupun biasanya
pihak-pihak yang terkait sudah saling percaya, skema ini memungkinkan satu pihak untuk memalsukan
pernyataan dari pihak lainnya.
RSA yang menggunakan algoritma asimetrik mempunyai dua kunci yang berbeda, disebut pasangan
kunci (key pair) untuk proses enkripsi dan dekripsi. Kunci-kunci yang ada pada pasangan kunci
mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi
kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan.
Orang-orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah
yang bisa mendekripsi data tersebut.
kunci (key pair) untuk proses enkripsi dan dekripsi. Kunci-kunci yang ada pada pasangan kunci
mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi
kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan.
Orang-orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah
yang bisa mendekripsi data tersebut.
MEKA ISME DASAR KERJA RSA
Tingkat keamanan algoritma penyandian RSA sangat bergantung pada ukuran kunci sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode mengencek kombinasi satu persatu kunci atau lebih dikenal dengan istilah brute
force attack. Jika dibuat suatu sandi RSA dengan panjang 256 bit, maka metode brute force attack akan
menjadi tidak ekonomis dan sia-sia dimana para hacker pun tidak mau/sanggup untuk menjebol sandi
tersebut.
force attack. Jika dibuat suatu sandi RSA dengan panjang 256 bit, maka metode brute force attack akan
menjadi tidak ekonomis dan sia-sia dimana para hacker pun tidak mau/sanggup untuk menjebol sandi
tersebut.
Proses Pembuatan Kunci
Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat
adalah sebagai berikut :
adalah sebagai berikut :
- Pilih dua bilangan prima p dan q secara acak , p ≠ q. Bilangan ini harus cukup besar (minimal 100
digit). - Hitung N = pq. Bilangan N disebut parameter sekuriti.
- Hitung φ = (p-1)(q-1).
- Pilih bilangan bulat (integer) antara satu dan φ (1 < e < φ) yang tidak mempunyai faktor pembagi
dari φ. - Hitung d hingga d e ≡ 1 (mod φ).
Keterangan :
- Langkah 3 dan 4 dapat dihasilkan dengan cara algoritma Euclidean
- Langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1)
+ 1)/e menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1))
Setelah melalui cara ini, maka kita akan mendapatkan kunci publik dan kunci privat. Kunci publik terdiri
dari dua elemen, yaitu :
- N, merupakan modulus yang digunakan
- e, eksponen publik atau eksponen enkripsi
dan kunci privat, yang terdiri dari :
- N, merupakan modulus yang digunakan, sama seperti pada kunci publik
- d, eksponen pribadi atau eksponen deskripsi, yang harus dijaga kerahasiaanya
Nilai p dan q sebaiknya dibuang atau dijaga kerahasiaannya, karena terdapat N dimana p dan q adalah faktor pembagi dari N. Walaupun bentuk ini memperbolehkan dekripsi secara cepat dan signing menggunakan Chinese Remainder Theorem (CRT), hal ini mejadi lebih tidak aman karena bentuk ini memperbolehkan side channel attacks. Side channel attacks adalah sebuah serangan yang berdasarkan informasi yang dikumpulkan dari implementasi fisik (atau kelemahan secara fisik) dari sebuah sistem kriptografi, dibanding dengan kelemahan teoritis dari algoritmanya sendiri. Sebagai contohnya, faktor-faktor kurun waktu dari informasi, konsumsi tenaga, bahkan suara yang ditimbulkan dapat membantu mempermudah informasi yang bisa diambil untuk menjebol sistem tersebut.
Proses Enkripsi Pesan
Misalkan pada suatu kasus si A ingin mengirim pesanm kepada si B. A mengubah m menjadi angka n < N, menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme.
Padding scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan
masalah keamanan. Contohnya, jika kita ambil contoh sederhana dari penampilan ASCII dari m dan
menggabungkan bit-bit secara bersama-sama akan menghasilkan n, kemudian pessan yang berisi ASCII
tunggal karakter NUL (nilai numeris 0) akan menghasilkan n = 0, yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan.
Padding scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan
masalah keamanan. Contohnya, jika kita ambil contoh sederhana dari penampilan ASCII dari m dan
menggabungkan bit-bit secara bersama-sama akan menghasilkan n, kemudian pessan yang berisi ASCII
tunggal karakter NUL (nilai numeris 0) akan menghasilkan n = 0, yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan.
Maka A mempunyai nilai n dan mengetahui N dan e,yang telah diumumkan oleh B. A kemudian
menghitung ciphertext c yang terkait pada n :
menghitung ciphertext c yang terkait pada n :
c = ne mod N (1)
Perhitungan tersebut dapat diselesaikan dengan menggunakan metode exponentation by squaring,
yaitu sebuah algoritma yang dipakai untuk komputasi terhadap sejumlah nilai integer yang besar dengan
cepat. Kemudian A mengirimkan nilai c kepada B.
yaitu sebuah algoritma yang dipakai untuk komputasi terhadap sejumlah nilai integer yang besar dengan
cepat. Kemudian A mengirimkan nilai c kepada B.
Proses Dekripsi Pesan
B sudah menerima c dari A, dan mengetahui kunci privat yang digunakan B. B kemudian mengembalikan nilai n dari c dengan langkah-langkah sebagai berikut :
n = cd mod N (2)
Perhitungan diatas akan menghasilkan n, dengan begitu B dapat mengembalikan pesan semula m.
Prosedur dekripsi bekerja karena
Prosedur dekripsi bekerja karena
cd ≡ (n)d ≡ (mod N) (3)
Kemudian, karena ed ≡ 1 (mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat's little theorem.
ned ≡ n (mod p) (4)
dan
ned ≡ n (mod q) (5)
Karena p dan q merupakan bilangan prima yang berbeda, mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen
ned ≡ n (mod pq) (6)
Serta
cd ≡ n (mod N) (7)
Contoh Penghitungan RSA
Sekarang kita mencoba suatu contoh untuk mengenal lebih dalam sistem kerja enkripisi RSA. Misalnya kita mau mengenkripsi kata “SECRET” dengan RSA, lalu kita dekripsi kembali ke dalam plaintext.
Karena p dan q berjumlah minimal 100 digit atau lebih, nilai d dan e bisa berjumlah sama dengan 100
digit dan nilai N akan berjumlah 200 digit. Untuk itu di contoh pemakaian berikut, kita akan memakai
angka-angka yang kecil agar mudah dalam penghitungan. Cara pengerjaannya adalah :
digit dan nilai N akan berjumlah 200 digit. Untuk itu di contoh pemakaian berikut, kita akan memakai
angka-angka yang kecil agar mudah dalam penghitungan. Cara pengerjaannya adalah :
- Kita pilih p = 3 dan q = 5
- Hitung N = pq = 3*5 = 15
- Nilai e harus merupakan bilangan prima yang lebih besar dan relatif dekat dengan (p-1)(q-1) =
(2)(4) = 8, sehingga kita pilih e = 11. Angka 11 adalah bilangan prima terdekat dan lebih besar
daripada 8 - Nilai d harus dipilih sehingga
(ed - 1)
(p-1)(q-1)
adalah sebuah integer. Lalu nilai
(11d - 1) / [(2)(4)] = (11d - 1) / 8
juga merupakan integer. Setelah melalui proses penghitungan, salah satu nilai yang mungkin
adalah d = 3. - Lalu kita masukkan kata yang akan dienkripsi, “SECRET”. Kita akan mengkonversi string ini ke
representasi desimal menggunakan nilai karakter ASCII, yang akan menghasilkan nilai ASCII 83
69 67 82 69 84 - Pengirim akan mengenkripsi setiap digit angka pada saat yang bersamaan menggunakan nilai kunci publik (e, n) = (11,15). Lalu setiap karakter ciphertext akan masuk ke persamaan
Ci = Mid mod 15
Yang akan menghasilkan nilai digit masukan adalah 0x836967826984 yang akan dikirim sebagai 0x2c696d286924 - Penerima akan mendekripsi setiap digit angka menggunakan nilai kunci privat (d, n) = (3, 15).
Lalu, setiap karakter plaintext akan masuk persamaan
Mi = Ci3 mod 15
String masukan yang bernilai 0x2c696d286924, akan dikonversi kembail menjadi
0x836967826984, dan akhirnya angka-angka tersebut akan diubah kembali menjadi bentuk
string plaintext yang bernilai “SECRET”
Dari contoh di atas kita dapat menangkap suatu kelemahan dari pemakaian p dan q yang bernilai kecil yaitu bisa kita lihat di digit ke-4, ke-6 dan ke-9 tidak berubah saat dienkripsi, dan nilai 2 dan 8 dienkripsi menjadi 8 dan 2, yang berarti dienkripsi menjadi kebalikannya. Tapi kesimpulan yang bisa diambil dari contoh yang sederhana ini adalah RSA dapat digunakan dalam penyandian dalam pengiriman
informasi.
informasi.
Kunci RSA yang mempunyai ukuran 512 dan 768 bit dianggap masih lemah dan mudah dijebol. Ukuran kunci yang dianjurkan adalah 1024 bit. Ukuran 2048 dan 3072 bit merupakan suatu ukuran yang lebih baik.
nahhh sekarang udah tau kan RSA itu apahhh , sekian dulu postingan kali ini..... terimakasih sudah meluangkan waktu untuk membaca dan semoga bermanfaat , byeeee assalamualaium wr. wb