You are on page 1of 6

MAKALAH ALGORITMA RSA

Matakuliah Perancangan & Analisa Algoritma Lanjut

Disusun Oleh:

1. Akhmad Sanusi (120253)


2. M. Arif Hanafi (120275)
3. Restu Rakhmawan (120282)

PROGRAM STUDI INFORMATIKA KELAS B

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS SAINS AL-QUR’AN

2015
PENGERTIAN RSA

RSA merupakan algoritma kriptografi asimetri, dimana kunci yang digunakan untuk
mengenkripsi berbeda dengan yang digunakan untuk mendekripsi. Kunci yang digunakan untuk
mengenkripsi disebut dengan kunci public, dan yang digunakan untuk mendekripsi disebut
dengan kunci privat. RSA adalah salah satu algoritma kriptografi yang menggunakan konsep
kriptografi kunci publik. RSA membutuhkan tiga langkah dalam prosesnya, yaitu pembangkitan
kunci, enkripsi, dan dekripsi. Proses enkripsi dan dekripsi merupakan proses yang hampir sama.
Jika bilangan acak yang dibangkitkan kuat, maka akan lebih sulit untuk melakukan cracking
terhadap pesan. Parameter kuat tidaknya suatu kunci terdapat pada besarnya bilangan acak yang
digunakan.

Apa itu RSA?

Algortima RSA dijabarkan pada tahun 1976 oleh tiga orang : Ron Rivest, Adi Shamir dan Len
Adleman dari Massachusetts Institute of Technology. Huruf '''RSA''' itu sendiri berasal dari
inisial nama mereka (‘R’ivest - ‘S’hamir – ‘A’dleman). Clifford Cocks, seorang matematikawan
Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen
internal di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena
alasan ''top-secret classification''. Algoritma RSA dipatenkan oleh Massachusetts Institute of
Technology pada tahun 1983 di Amerika Serikat sebagai US patent 4405829. Paten tersebut
berlaku hingga 21 September 2000. Setelah bulan September tahun 2000, paten tersebut
berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas.
RSA adalah sebuah algoritma berdasarkan skema kriptografi public-key. Lebih jauh, RSA adalah
algoritma yang mudah untuk diimplementasikan dan dimengerti. algoritma RSA adalah sebuah
aplikasi dari sekian banyak teori seperti extended Euclid algorithm, euler's function sampai
fermat theorem.
Konsep fundamental dari Kriptografi Kunci Publik ditemukan oleh Whitfield Diffie dan Martin
Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Kriptografi Kunci
Publik terletak pada pemahaman bahwa kunci selalu berpasangan: kunci enkripsi dan kunci
dekripsi. Juga perlu diingat bahwa sebuah kunci tidak dapat dibangkitkan dari kunci lainnya.
Pemahaman kunci enkripsi dan dekripsi sering disebut sebagai kunci publik dan kunci privat.
Seseorang harus memberikan kunci publiknya agar pihak lain dapat mengenkripsi sebuah pesan.
Dekripsi hanya terjadi jika seseorang mempunyai kunci privat.

Proses Pembuatan Kunci

Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan
kunci privat adalah sebagai berikut:
1. Dipilih dua buah bilangan prima sem-barang yang besar, p dan q. Nilai p dan q harus
dirahasiakan.
2. Dihitung n = p x q. Besaran n tidak perlu dirahasiakan.
3. Dihitung m = (p – 1)(q – 1)
4. Dipilih sebuah bilangan bulat sebagai kunci publik, disebut namanya e, yang relatif prima
terhadap m.
e relatif prima terhadap m artinya faktor pembagi terbesar keduanya adalah 1, secara
matematis disebut gcd (e,m) = 1. Untuk mencarinya dapat digunakan algo-ritma Euclid
5. Dihitung kunci privat, disebut namanya d sedemikian agar (d x e) mod m = 1. Untuk
mencari nilai d yang sesuai dapat juga digunakan algoritma Extended Euclid.

Maka hasil dari algoritma tersebut diperoleh :

 kunci publik adalah pasangan (e,n)


 kunci privat adalah pasangan (e,m)

n tidak bersifat rahasia, namun ia diperlu-kan pada perhitungan enkripsi/dekripsi.

Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non
prima menjadi faktor primanya, yang dalam hal ini n = p x q. Jika n berhasil difaktorkan menjadi
p dan q, maka m = (p – 1)(q – 1) dapat dihitung. Dan karena kunci enkripsi e telah diumumkan
(tidak dirahasi-akan), maka kunci dekripsi d dapat dihitung melalui persamaan (d x e) mod n = 1.
Se-lama belum ditemukan cara untuk memfak-torkan bilangan besar menjadi faktor-faktor
primanya, maka selama itu pula keamanan algoritma RSA terjamin.

Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan
demikian hasil kali n = p x q akan berukuran lebih dari 200 digit. Dengan asumsi bahwa
algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer
yang dipakai mem-punyai kecepatan 1 milidetik, menurut Rivest dan kawan-kawan, usaha untuk
men-cari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun.

Untuk algoritma enkripsi menggunakan RSA adalah sebagai berikut.

Plaintext M dinyatakan menjadi blok-blok m1, m2, … sedemikian sehingga setiap blok
merepresentasikan nilai di dalam selang [0, n – 1]

(harus dipenuhi persyaratan bahwa nilai mi harus terletak dalam himpunan nilai 0, 1, 2, …, n – 1
untuk menjamin hasil perhitungan tidak berada di luar him-punan)

Setiap blok mi dienkripsikan menjadi blok ci dengan rumus ci = mie mod n

Sedangkan untuk dekripsi, maka setiap blok ciphertext ci- didekripsikan kembali menjadi blok
mi dengan rumus mi = cid mod n.

Mode Operasi Chiper Block Chaining


Contoh RSA

Akan dilakukan enkripsi menggunakan algoritma RSA terhadap plaintext M = FISIKA.


Pertama-tama plaintext tersebut diubah menjadi format ASCII sebagai beri-kut :

Text F I S I K A
(karakter)

ASCII 46 49 53 49 4B 41
(heksa)

ASCII 70 73 83 73 75 65
(desimal)

Salah satu contoh nyata pemakaian sistem penyandian RSA dalam kehidupan sehari-hari adalah
dalam pemakaian signature atau tanda tangan digital dalam surat elektronik dam untuk
autentikasi sebuah data. Untuk meyakinkan penerima surat elektronik yang ditandatangani,
diperlukan pembuktian bahwa surat elektronik tersebut memang berasal dari si pengirim.

Untuk mencegah penyalahgunaan dalam surat elektronik, maka tanda tangan elektronik sangat
dibutuhkan. Tanda tangan elektronik inipun sebaiknya mempunyai sifat-sifat sebagai berikut:

- Tanda tangan itu asli (otentik), tidak mudah ditulis/ditiru oleh orang lain. Pesan dan tanda
tangan pesan tersebut juga dapat menjadi barang bukti, sehingga penandatangan tak bisa
menyangkal bahwa dulu ia tidak pernah menandatanganinya.
- Tanda tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu tidak bisa
dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa jika dokumen
itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah.
- Tanda tangan itu dapat diperiksa dengan mudah.
- Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan
penandatangan.
- Tanda tangan itu juga sah untuk kopi dari dokumen yang sama persis.
Sebuah tanda tangan elektronik harus bersifat message-dependent, juga signer-dependent.
Maksudnya di sini adalah menyatu dengan surat elektroniknya. Jika tidak si penerima dapat
memodifikasi pesan yang terkirim. Atau bisa saja si penerima melampirkan ke surat manapun,
apalagi sangat tidak mungkin untuk mendeteksi “copy - paste” secara elektronik.

Untuk mengimplementasikan tanda tangan elektronik kepada kunci publik, sistem kriptografi
harus diimplemetasikan dengan trap-door one-way permutations, karena algoritma dekripsi
dapat diaplikasikan untuk surat yang tidak terdapat ciphertext.

Misalnya pada satu kasus, Andi ingin mengirim sebuah surat elektronik yang dilengkapi dengan
tanda tangan elektronik kepada Bobi. Pertama-tama Andi mengkomputasi tanda tangan
elektroniknya, S, untuk surat elektronik M, dengan menggunakan kunci D B. Sedemikian rupa
sehingga sesuai dengan persamaan
S = DB (M)

Kemudian dia mengenkripsi S menggunakan EA (untuk privasi), lalu mengirimkannya kepada


Bobi dalam bentuk EA (S). Andi tidak perlu mengirimkan M kepada Bobi, karena surat dapat
dikomputasi dari S. Kemudian Bobi mendekripsi ciphertext dengan menggunakan DA mengubah
S. Bobi tahu siapa pengirim surat elektronik dari tanda tangan elektronik Andi. Diasumsikan
Bobi sudah tahu seperti apa tanda tangan elektronik Bobi. Kemudian dia membuka
(mendekripsi) paket surat yang dikirim ke Bobi sama dengan prosedur enkripsi pengiriman tetapi
kebalikannya:
M =EB (S)

Setelah itu mencek kemiripan tanda tangan elektronik dari 2 surat elektronik yang ada (M,S).
Andi yang telah mengirim surat elektronik kepada Bobi tidak dapat menyangkal lagi bahwa dia
telah mengirimkan sebuah surat elektronik kepada Bobi. Karena tidak ada orang lain yang dapat
membuat S = DB (M). Dan Bobi pun dapat membuktikan bahwa memang surat elektronik
tersebut asli dari Andi karena tanda tangan elektroniknya asli, karena dia dapat membuktikan E B
(S) = M.

Atau jika diimplementasikan dalam RSA, proses enkripsi-dekripsi data saat pengecekan keaslian
dari pesan yang dikirim adalah sebagai berikut. Misalkan Andi ingin mengirim pesan kepada
Bobi. Andi membuat sebuah hash 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 Bobi menerima pesan yang telah "ditandatangani", Bobi 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 Bobi dapat mengetahui bahwa pemilik dari pesan tersebut adalah Andi,
dan pesan pun tidak pernah diubah sepanjang pengiriman.

Sehingga pada akhirnya Bobi dapat mengecek keaslian tanda tangan elektronik dari sebuah surat
elektronik, tetapi dia tidak bisa mengubah-ubah tanda tangan yang sudah ada di surat elektronik
tersebut.

Sistem enkripsi RSA dapat diaplikasikan dalam pengiriman data, apalagi data-data yang bersifat
rahasia dan memerlukan autentikasi, seperti dalam mengirimkan nomor kartu kredit atau nomor
rekening pada saat transaksi di internet. Sebuah sistem pengecekan online sebaiknya mengikuti
sistem tanda tangan elektronik serperti di atas. Dan jika semua hal di internet yang membutuhkan
autentikasi pengirim data menggunakan metode enkripsi, maka pengguna komputer akan dengan
mudahnya membuat suatu transaksi di internet. Seperti yang telah terjadi sekarang, semuanya
sudah online. Untuk membayarnya pun cukup memasukkan nomor kartu kredit dan beberapa
nomor pengaman dari kartu kredit tersebut.

Pada sistem RSA, 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.

Kelebihan dan Kelemahan RSA

Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi
faktor primanya, dalam hal ini memfaktorkan n menjadi p dan q. Karena sekali n berhasil
difaktorkan, maka menghitung nilai m adalah perkara mudah. Selanjutnya, walau nilai e
diumumkan, perhitungan kunci d tidaklah mudah pula karena nilai m yang tidak diketahui.
Kelebihan lain algoritma RSA terletak pada ketahanannya terhadap berbagai bentuk serangan,
terutama serangan brute force. Hal ini dikarenakan kompleksitas dekripsinya yang dapat
ditentukan secara dinamis dengan cara menentukan nilai p dan q yang besar pada saat proses
pembangitkan pasangan kunci, sehingga dihasilakan sebuah key space yang cukup besar,
sehingga tahan terhadap serangan.

Namun demikian, kelebihan tersebut sekaligus menjadi kelemahan dari sistem ini. Ukuran kunci
privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk
ukuran pesan yang besar. Oleh karena itu, RSA umumnya digunakan untuk meng-enkripsi pesan
berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian
kunci tersebut dikirim secara bersamaan dengan pesan utama.

You might also like