RSA Encryption
Kelompok 2
Keamanan Komputer dan Jaringan
Achmad Syafa'at, S.Kom
Oleh
Rohmat Nuruhudin
D1A.10.0013
Program Study Sistem Informasi
Fakultas Ilmu Komputer
Universitas Subang
2012
Definisi
RSA di bidang kriftograpi adalah sebuah algoritma pada encrypti public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protocol electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang.
RSA encryption dirancang oleh Rivest, Shamir, Adleman pada tahun 1977. RSA encryption telah didukung oleh beberapa perusahaan seperti Microsoft, apple, novell, sun, dan lotus. RSA sangat mendukung proses aauthentication (otentikasi) dan multi platform.
Keamanan
Penyerangan yang paling terjadi pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar. Apabila terdapat faktorisasi pada metode yang baru dan cepat telah dikembangkan, maka kemungkinan ada untuk membongkar RSA.
Bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada umumnya sepanjang 1024—2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi.
Contoh seorang eavesdropper (pencuri dengar—penguping), mendapatkan public key N dan e, dan ciphertext c. Bagimanapun juga, Dia tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh temanya. Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA.
Cara paling efektif yang ditempuh untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q, dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e. Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini, tapi hal tersebut pun masih belum terbukti.
Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c, tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik).
Kecepatan
RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan Algoritma Simetrik lainnya. Pada prakteknya, Setiap menyandikan pesan rahasia menggunakan algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik akan menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan, karena melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan.
Key Distribution
Public Key RSA yang didistribusi sangatlah penting dalam keamanan karena distribusi kunci harus aman dari penghambat transmisi.
Contoh ilustrasi dibawah ini :
Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve dapan "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob public key milik Eve, dimana Bob percaya bahwa public key tersebut milik Alice. Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan public key milik Alice, dan mengirimkan ciphertext yang baru kepada Alice. Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve di antara transmisi mereka. Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digital atau komponen lain dari infrastuktur public key.
Pengesahan Pesan
RSA dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin mengirim pesan kepada Bob. Alice membuat sebuah has value dari pesan tersebut, di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan), dan melampirkannya sebagai "tanda tangan" pada pesan tersebut. Saat Bob menerima pesan yang telah "ditandatangani", Bob memangkatkan "tanda tangan" tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut. Jika kedua cocok, maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak pernah diubah sepanjang pengiriman.
Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan.
Contoh Proses encripsi RSA dan Deskripsinya
Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya. Parameter yang digunakan disini berupa bilangan kecil.
Kita membuat
p = 61 — bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)
q = 53 — bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)
N = pq = 3233 — modulus (diberikan kepada publik)
e = 17 — eksponen publik (diberikan kepada publik)
d = 2753 — eksponen pribadi (dijaga kerahasiannya)
Public key yang digunakan adalah (e,N). Private key yang digunakan adalah d. Fungsi pada enkripsi ialah:
encrypt(n) = ne mod N = n17 mod 3233
dimana n adalah plaintext Fungsi dekripsi ialah:
decrypt(c) = cd mod N = c2753 mod 3233
dimana c adalah ciphertext
Untuk melakukan enkripsi plaintext bernilai "123", perhitungan yang dilakukan
encrypt(123) = 12317 mod 3233 = 855
Untuk melakukan dekripsi ciphertext bernilai "855" perhitungan yang dilakukan
decrypt(855) = 8552753 mod 3233 = 123
Kedua perhitungan di atas diselesaikan secara effisien menggunakan square and multiply algorithm pada modular exponentiation.
Padding Schema
Padding Schema harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan. Sebagai contoh, 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. Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1. Pada kenyataannya, untuk sistem yang menggunakan nilai e yang kecil, seperti 3, seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman, dikarenakan nilai terbesar n adalah nilai 255, dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya, maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N. Sebagai konsekuensinya, standar seperti PKSS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman. Dan juga berdasar pada bagian Kecepatan, akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak.
Aplikasi Enkripsi
Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah :
a. Jasa telekomunikasi
- Enkripsi untuk mengamankan informasi konfidensial baik berupa suara, data, maupun gambar yang akan dikirimkan ke lawan bicaranya.
- Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing.
- Enkripsi untuk menjaga copyright dari informasi yang diberikan.
b. Militer dan pemerintahan
- Enkripsi diantaranya digunakan dalam pengiriman pesan.
- Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi.
c. Data Perbankan
- Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi
d. Data konfidensial perusahaan
- Rencana strategis, formula-formula produk, database pelanggan/karyawan dan database operasional
- pusat penyimpanan data perusahaan dapat diakses secara on-line.
- Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah.
e. Pengamanan electronic mail
- Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan.
- Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail, diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy), keduanya berbasis DES dan RSA.
f. Kartu Plastik
- Enkripsi pada SIM Card, kartu telepon umum, kartu langganan TV kabel, kartu kontrol akses ruangan dan komputer, kartu kredit, kartu ATM, kartu pemeriksaan medis, dll
- Enkripsi teknologi penyimpanan data secara magnetic, optik, maupun chip
SUMBER :
www.rsa.com/rsalabs/node.asp?id=2125
http://telecommunication.itb.ac.id/tutun/ET4085
http://id.wikipedia.org/wiki/RSA