Anda di halaman 1dari 11

Ulan Ari Anti 1007055123

Algoritma RSA ( Rivest-Shamir-Adlemen )


Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MI ! Massachussets Institute of Technology" pada tahun #$%&, yaitu' Ron !R"i(est, Adi !S"hamir, dan )eonard !A"dleman. *eamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar men+adi faktor-faktor prima. ,emfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar men+adi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap ter+amin. RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmetika modulo. -aik kunci enkripsi maupun dekripsi keduanya merupakan bilangan bulat. *unci enkripsi tidak dirahasiakan dan diketahui umum !sehingga disebut kunci publik", namun kunci untuk dekripsi dirahasiakan. *unci dekripsi dibuat dari beberapa bilangan prima bersama-sama dengan kunci enkripsi. .ntuk menemukan kunci dekripsi, harus difaktorkan suatu bilangan komposit men+adi faktor primanya. -esaran-besaran yang digunakan pada algoritma #. /. 3. 2. 3. &. %. p dan q bilangan prima r0pq !r" 0 !p 1 #"!q 1 #" PK !kunci enkripsi" SK !kunci dekripsi" X !plainteks" Y !cipherteks" !rahasia" !tidak rahasia" !rahasia" !tidak rahasia" !rahasia" !rahasia" !tidak rahasia"

Algoritma RSA didasarkan pada teorema 4uler !lihat bahan kuliah eori -ilangan -ulat" yang menyatakan bah5a a!r" # !mod r" yang dalam hal ini, #. a harus relatif prima terhadap r !#"

/. !r" 0 r!# 1 #6p#"!# 1 #6p/" 7 !# 1 #6pn", yang dalam hal ini p#, p/, 7, pn adalah faktor prima dari r.

!r" adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan #, /, 3, 7, r yang relatif prima terhadap r.
-erdasarkan sifat am bm !mod r" untuk m bilangan bulat #, maka persamaan !#" dapat ditulis men+adi a m!r" #m !mod r" atau am!r" # !mod r" !/"

-ila a diganti dengan X, maka persamaan !/" men+adi Xm!r" # !mod r" !3"

-erdasarkan sifat ac bc !mod r", maka bila persamaan !3" dikali dengan X men+adi' Xm!r" 8 # X !mod r" yang dalam hal ini X relatif prima terhadap r. Misalkan SK dan PK dipilih sedemikian sehingga SK PK # !mod !r"" atau SK PK 0 m!r" 8 # !&" !3" !2"

Sulihkan !&" ke dalam persamaan !2" men+adi' X SK PK X !mod r" !%"

,ersamaan !%" dapat ditulis kembali men+adi !X PK"SK X !mod r" !9"

yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan dengan SK menghasilkan kembali X semula. -erdasarkan persamaan !9", maka enkripsi dan dekripsi dirumuskan sebagai berikut' EPK!X" 0 Y XPK mod r !9" SK DSK!Y" 0 X Y mod r !$" *arena SK PK 0 PK SK, maka enkripsi diikuti dengan dekripsi eki(alen dengan dekripsi diikuti enkripsi' ESK!DSK!X"" 0 DSK!EPK!X"" XPK mod r !#:"

;leh karena XPK mod r !X 8 mr"PK mod r untuk sembarang bilangan bulat m, maka tiap plainteks X, X 8 r, X 8 /r, 7, menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka X harus dibatasi dalam himpunan <:, #, /, 7, r 1 #= sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan !9" dan !$".

Prosedur Membuat Pasangan Kunci #. ,ilih dua buah bilangan prima sembarang, p dan q. /. >itung r 0 p q. Sebaiknya p q, sebab +ika p 0 q maka r 0 p/ sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r. 3. >itung !r" 0 !p 1 #"!q 1 #". 2. ,ilih kunci publik, PK, yang relatif prima terhadap !r". 3. -angkitkan kunci rahasia dengan menggunakan persamaan !3", yaitu SK PK # !mod !r"". ,erhatikan bah5a SK PK # !mod !r"" eki(alen dengan SK PK 0 # 8 m!r", sehingga SK dapat dihitung dengan # + m !r " SK = !##" PK Akan terdapat bilangan bulat m yang menyebabkan memberikan bilangan bulat SK. Catatan' PK dan SK dapat dipertukarkan urutan pembangkitannya. ?ika langkah 2 diganti dengan @,ilih kunci rahasia, S*, yang 7A, maka pada langkah 3 kita menghitung kunci publik dengan rumus yang sama.

Contoh 1. Misalkan p 0 2% dan q 0 %# !keduanya prima". Selan+utnya, hitung nilai

r 0 p q 0 333% dan

!r"0 !p 1 #"!q 1 #" 0 3//:.


,ilih kunci publik SK 0 %$, karena %$ relatif prima dengan 3//:. PK dan r dapat dipublikasikan keumum. Selan+utnya akan dihitung kunci dekripsi SK seperti yang dituliskan pada langkah instruksi 3 dengan menggunakan persamaan !##",
SK = # + !m 3//:" %$

Dengan mencoba nilai-nilai m 0 #, /, 3, 7, diperoleh nilai SK yang bulat adalah #:#$. Ini adalah kunci dekripsi yang harus dirahasiakan. Enkripsi ,lainteks disusun men+adi blok-blok #, /, 7, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang : sampai r 1 #. Setiap blok i dienkripsi men+adi blok yi dengan rumus yi 0 Dekripsi Setiap blok cipherteks yi didekripsi kembali men+adi blok
i i i PK

mod r

dengan rumus

0 yi SK mod r

Contoh 2. Misalkan plainteks yang akan dienkripsikan adalah X 0 >ARI IBI atau dalam sistem desimal !pengkodean ASCII" adalah %/&39/%33/%3%9%3 ,ecah X men+adi blok yang lebih kecil, misalnya X dipecah men+adi enam blok yang berukuran 3 digit'

0 %/& / 0 39/ 3 0 %33


#

0 /%3 3 0 %9% & 0 ::3


2

Bilai-nilai i ini masih terletak di dalam rentang : sampai 333% 1 # !agar transformasi men+adi satu-ke-satu". -lok-blok plainteks dienkripsikan sebagai berikut' %/&%$ mod 333% 0 /#3 0 y# 39/%$ mod 333% 0 %%& 0 y/ %33%$ mod 333% 0 #%23 0 y3 /%3%$ mod 333% 0 $33 0 y2 %9%%$ mod 333% 0 #%3# 0 y3 ::3%$ mod 333% 0 #39 0 y& ?adi, cipherteks yang dihasilkan adalah Y 0 /#3 %%& #%23 $33 #%3# #39. Dekripsi dilakukan dengan menggunakan kunci rahasia SK 0 #:#$ -lok-blok cipherteks didekripsikan sebagai berikut' #3#:#$ mod 333% 0 %/& 0 # %%&#:#$ mod 333% 0 39/ 0 / #%23#:#$ mod 333% 0 %33 0 3 7 -lok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula P 0 %/&39/%33/%3%9%3 yang dalam karakter ASCII adalah P 0 >ARI IBI. Kekuatan dan Keamanan RSA

*eamanan algoritma !S" terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima men+adi faktor primanya, yang dalam hal ini r 0 p q. Sekali r berhasil difaktorkan men+adi p dan q, maka !r" 0 !p 1 #" !q 1 #" dapat dihitung. Selan+utnya, karena kunci enkrispi PK diumumkan !tidak rahasia", maka kunci dekripsi SK dapat dihitung dari persamaan PK SK # !mod !r"". ,enemu algoritma !S" menyarankan nilai p dan q pan+angnya lebih dari #:: digit. Dengan demikian hasil kali r 0 p q akan berukuran lebih dari /:: digit. Menurut Ri(est dan ka5an-ka5an, uasaha untuk mencari faktor bilangan /:: digit membutuhkan 5aktu komputasi selama 2 milyar tahunD !dengan asumsi bah5a algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan # milidetik". .ntunglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum ditemukan. Inilah yang membuat algoritma !S" tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat men+adi faktor primanya, maka algoritma !S" tetap direkomendasikan untuk menyandikan pesan.

Membuat RSA Sukar Dijebol ?ika nilai # ber+umlah kecil, maka nilai factor p dan q akan mudah diterka oleh para hac$er. Maka untuk membuat nilai # sukar untuk di+ebol oleh para hac$er kita perlu nilai factor p dan q yang besar. Misalkan, dibandingkan kita memilih nilai 3 dan ##, lebih baik kita pilih bilangan prima yang besar, seperti &%3 dan /2$%#, yang akan menghasilkan nilai % & #&9:3293 dan nilai e & #&%%$92:. etapi +ika dihitung dengan suatu perangkat lunak ataupun suatu program yang kita buat yang dapat menghitung faktor-faktor dari suatu nilai. Angka-angka di atas dapat dengan mudahnya didapatkan faktor-faktornya. Sehingga hal ini menyimpulkan bah5a kita membutuhkan nilai p dan q yang sangat besar. Ancaman yang Mungkin Menyerang RSA Sistem pengenkripsian RSA mempunyai kemungkinan 1 kemungkinan kelemahan yang bisa diserang oleh para ea'es%ropper !penyadap, penguping", berikut adalah kelemahan - kelemahan dalam RSA yang sebaiknya dihindari' Bilai n terlalu kecil, sehingga mudah untuk difaktorisasi ?umlah nilai eksponen en yang terlalu kecil .kuran kunci yang terlalu kecil, sehingga sandi dapat di+ebol dengan brute force attac$ Bilai % terlalu kecil

,engunaan nilai modulus yang familiar, hal ini memudahkan para hac$er untuk men+ebol sandi yang ada

Pertimbangan Teknis dalam Enkripsi RSA ?ika kita berniat untuk mengenkripsi suatu data untuk dikirim ke suatu tu+uan, ada beberapa faktor yang sebaiknya diperhatikan agar data yang kita kirim tidak mudah di+ebol di tengah +alan. #. Dalam pembuatan kunci, sebaiknya memilih nilai p dan q yang +umlahnya tidak saling berdekatan dan besar, karena +ika nilai # kecil, faktor dari # akan sangat mudah didapat. Seseorang seharusnya tidak melakukan metode pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. -iasanya, pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan. >arap diingat, bah5a kebutuhan disini ialah acak dan tidak terduga. -erikut ini mungkin tidak memenuhi kriteria, sebuah bilangan /. Mungkin dapat dipilah dari proses acak !misal, tidak dari pola apapun", tetapi +ika bilangan itu mudah untuk ditebak atau diduga !atau mirip dengan bilangan yang mudah ditebak", maka metode tersebut akan kehilangan kemampuan keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun #$3:-an mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. ?ika penyerang dapat menebak separuh dari digit p atau q, para penyerang dapat dengan cepat menghitung separuh yang lainnya. RSA memiliki kecepatan yang lebih lambat dibanding D4S dan algoritma simetrik lainnya. Contohnya si A membuat sandi dari sebuah pesan menggunakan algoritma simetrik, membuat sandi kunci simetrik menggunakan RSA dan +uga mengirimkan pesan yang dienkripsi secara simetrik kepada -. ,rosedur ini menambah permasalahan akan keamanan. Singkatnya, sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan, karena ea'es%ropper dapat melakukan bypass terhadap RSA dengan menebak kunci simetrik yang digunakan. 3. Sebagaimana halnya cipher, bagaimana public $ey RSA didistribusi men+adi hal penting dalam keamanan. Distribusi kunci harus aman dari man in the mi%%le attac$ !pengha%ang %itengah (alan". Anggap ea'es%ropper dengan suatu cara mampu memberikan kunci arbitari kepada A dan membuat A percaya bah5a kunci tersebut milik -. Anggap ea'es%ropper dapat menghadang sepenuhnya transmisi antara A dan -. Ea'es%ropper mengirim A kunci publik milik -, dimana A percaya bah5a kunci publik tersebut milik -. Ea'es%ropper dapat menghadap seluruh cipherte t yang dikirim oleh A,

melakukan dekripsi dengan kunci rahasia milik Ea'es%ropper sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan kunci publik milik -, dan mengirimkan cipherte t yang baru kepada -. Secara prinsip, baik A atau - tidak menyadari kehadiran ea'es%ropper diantara transmisi mereka. ,engamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digital atau kompnen lain dari infrastuktur kunci public 2. ,aul *ocher, kriptograf berkebangsaan Amerika Serikat, pemimpin perusahaan Cryptoghrapy Research Inc., men+elaskan sebuah serangan baru yang cerdas pada RSA di tahun #$$3, +ika penyerang, ea'es%ropper, mengetahui perangkat keras yang dimiliki oleh - secara terperinci dan mampu untuk mengukur 5aktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa cipherte t, ea'es%ropper dapat menyimpulkan kunci dekripsi % secara cepat. ,enyerangan ini dapat +uga diaplikasikan pada skema Etanda tanganE RSA. Salah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bah5a operasi dekripsi menggunakan 5aktu yang konstan untuk setiap cipherte t yang diproses. Cara yang lainnya, yaitu dengan menggunakan properti multipikatif dari RSA. Sebagai ganti dari menghitung , - pertama-tama memilih nilai bilangan acak r dan menghitung . >asil dari penghitungan tersebut ialah rm mo% # kemudian efek dari r dapat dihilangkan dengan perkalian dengan in(ersenya. Bilai baru dari r dipilih pada tiap cipherte t. Dengan teknik ini, dikenal sebagai message blin%ing !pembutaan pesan", 5aktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari cipherte t sehingga penyerangan 5aktu akan gagal. 3. ,ada tahun #$$9, Daniel -leichenbacher men+elaskan penggunaan penyerangan cipherte t adaptif, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan ,*CS F# (# pa%%ing scheme. Dikarenakan kecacatan pada skema ,*CS F#, -leichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protocol Secure Socket )ayer, dan secara potensial mengungkap kunci-kunci yang digunakan. Sebagai hasilnya, para pengguna kriptografi mengan+urkan untuk menggunakan pa%%ing scheme yang relati(e terbukti aman seperti )ptimal "symmetric Encryption Pa%%ing, dan )aboratorium RSA telah merilis (ersi terbaru dari ,*CS F# yang tidak lemah terdapat serangan ini. &. -anyak prosesor yang memakai sebuah branch pre%ictor, branch pre%icto adalah r sebuah arsitektur komputer yang merupakan bagian dari prosesor yang memutuskan apakah sebuah percabangan kondisional dari sebuah instruksi dari program sebaiknya diambil atau tidak. -iasanya prosesor ini +uga mengimplementasikan Simulteneous Multithrea%ing !SM ". *ranch Pre%iction "nalysis menyerang menggunakan suatu proses memata-matai untuk mencari kunci pri(at yang dipakai oleh prosesor ini.

,enyerangan seperti ini membutuhkan proses memata-matai untuk men+alankan mesin yang sama dengan mesin yang digunakan dalam memroses kunci pri(at tetapi proses ini tidak memerlukan kelebihan apapun dari sistem yang diserang.

Contoh yata Pemakaian RSA Salah satu contoh nyata pemakaian sistem penyandian RSA dalam kehidupan seharihari adalah dalam pemakaian signature atau tanda tangan digital dalam surat elektronik dam untuk autentikasi sebuah data. .ntuk meyakinkan penerima surat elektronik yang ditandatangani, diperlukan pembuktian bah5a surat elektronik tersebut memang berasal dari si pengirim. .ntuk mencegah penyalahgunaan dalam surat elektronik, maka tanda tangan elektronik sangat dibutuhkan. anda tangan elektronik ini pun sebaiknya mempunyai sifat-sifat sebagai berikut' anda tangan itu asli !otentik", tidak mudah ditulis6ditiru oleh orang lain. ,esan dan tanda tangan pesan tersebut +uga dapat men+adi barang bukti, anda tangan itu hanya sah untuk dokumen !pesan" itu sa+a. anda tangan itu tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. anda tangan itu dapat diperiksa dengan mudah. anda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan penandatangan. anda tangan itu +uga sah untuk kopi dari dokumen yang sama persis. Sebuah tanda tangan elektronik harus bersifat message+%epen%ent, +uga signer+ %epen%ent. Sistem enkripsi RSA dapat diaplikasikan dalam pengiriman data, apalagi datadata yang bersifat rahasia dan memerlukan autentikasi, seperti dalam mengirimkan nomor kartu kredit atau nomor rekening pada saat transaksi di internet. ,ada sistem RSA, pa%%ing 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. Keuntungan dan Kerugian Memakai RSA *euntungan utama dari RSA yang merupakan kriptografi kunci publik adalah menambah keamanan dan kenyamanan. *unci pri(at tidak pernah diperlukan untuk dikirim atau diberi tahu ke orang lain. ,ada sebuah sistem kunci rahasia, secara terangterangan kunci rahasia ini harus dikirim !bisa secara manual atau melalui sebuah saluran komunikasi", dan akan ter+adi suatu kemungkinan dimana penyerang dapat mencari tahu kunci rahasia tersebut saat proses pengiriman. *euntungan utama lainnya adalah sistem RSA yang merupakan sistem kunci publik ini dapat menyediakan sebuah metode untuk tanda tangan digital atau tanda tangan elektronik. Autentikasi melalui kunci rahasia memerlukan pembagian dari beberapa rahasia dan terkadang +uga memerlukan rasa

kepercayaan terhadap pihak ketiga. Sebagai hasilnya, pengirim dapat menolak pesan autentikasi sebelumnya dengan cara membuktikan bah5a rahasia yang dibagikan bagaimanapun caranya disetu+ui oleh pihak lain yang berbagi rahasia tersebut. Contohnya, sistem autentikasi kunci rahasia Cerberus melibatkan sebuah basis data pusat yang menyimpan salinan dari kunci kunci rahasai dari semua user. Sebuah serangan ke basis data tersebut dapat menyebabkan data tersebut tersalin banyak. Autentikasi kunci publik, di lain sisi, mencegah ke+adian penolakan seperti ini. Setiap user mempunyai tanggung +a5ab sendiri untuk men+aga kunci pri(atnya masing-masing. ?enis autentikasi yang seperti ini sering disebut non+repu%ation. *ekurangan dari pemakaian kriptografi kunci publik, dalam hal ini RSA, adalah dalam masalah kecepatan. -anyak metode enkripsi kunci rahasia yang populer yang memiliki kecepatan enkripsidekripsi yang lebih cepat dibandingkan dengan metode enkripsi kunci publik yang ada sekarang. Bamun kriptografi kunci publik dapat digunakan dengan kriptografi kunci rahasia untuk mendapatkan metode enkripsi yang terbaik di dunia. .ntuk enkripsi, solusi terbaik adalah dengan cara mengkombinasi sistem kunci publik dan sistem kunci rahasia untk mendapatkan kedua keuntungan yang dimiliki oleh kedua metode enkripsi ini, keuntungan keamanan dari segi sistem kunci publik, dan keuntungan kecepatan dari segi sistem kunci rahasia. Sistem kunci publik dapat digunakan untuk mengenkripsi sebuat kunci rahasia, yang bisa digunakan untuk mengenkripsi file atau pesan yang berukuran besar sekalipun. *riptografi kunci publik dapat men+adi lemah terhadap pemalsuan identitas user, 5alupun kunci pri(at dari pemakai tidak tersedia. Sebuah serangan yang sukses pada sebuah otoritas sertifikasi akan memperbolehkan la5an untuk menyelinap siapapun yang la5an pilih dengan cara memilih sertifikat kunci publik dari sebuah otoritas yang memilikinya untuk menggabungkan kunci tersebut ke nama user yang lain. Di beberapa situasi, kriptografi kunci public tidak perlu dan kriptografi rahasia sa+a sudah cukup. Situasi ini termasuk lingkungan dimana persetu+uan kunci rahasia mempunyai sebuah tempat penting, sebagai contoh oleh beberapa user yang melakukan pertemuan dengan sifat pribadi. >al lain yang mempengaruhi adalah lingkungan dimana sebuah otoritas mengetahui dan mengatur semua kunci, misalkan sebuah sistem perbankan tertutup. *arena otoritas sudah mengetahui kunci setiap orang, tidak terdapat keuntungan berarti untuk menggunakan sesuatu yang bersifat publik dan yang lainnya pribadi. Dan +uga kriptografi kunci publik seringkali tidak diperlukan di sebuah lingkungan yang hanya terdapat satu user. Sebagai contoh, +ika kita ingin menyimpan file-file secara terenkripsi, kita bias melakukannya dengan menggunakan algoritma enkripsi kunci rahasia yang menggunakan, bisa dikatakan, sandi le5at pribadi kita. ,ada pemakaian biasanya, kriptografi kunci public sangat tepat untuk digunakan pada suatu lingkungan dengan banyak user yang bersifat terbuka. *riptografi kunci publik tidak diciptakan untuk menggantikan kriptografi kunci pri(at, tetapi lebih untuk menutupi kekurangan yang ada, untuk membuat suatu sistem enkripsi men+adi aman. *egunaan a5al dari teknik kunci public ini adalah untuk penukaran kunci pengaman di dalam suatu sistem kunci rahasia. Ini masih men+adi salah

satu dari kegunaan utamanya. *riptografi kunci rahasia tetap men+adi sangat penting dan men+adi sebuah bahan pembela+aran dan riset yang sedang diadakan. Pemakaian RSA Pada Saat !ni RSA dibangun ke dalam sistem operasi yang dipakai pada saat ini oleh Microsoft, Apple, Sun, dan Bo(ell. ,ada skala perangkat keras, RSA dapat digunakan pada secure telephone !telepon yang dilengkapi piranti keamanan", kartu +aringan 4thernet, dan pada kartu cerdas !smart car%s". RSA +uga digabungkan ke dalam internet protokol berskala besar untuk digunakan pada komunikasi internet yang aman, seperti SS), S-> ,, S4,,, S6MIM4, S6GAB, S and ,C . RSA +uga digunakan di banyak institusi, termasuk cabang-cabang dari pemerintah Amerika Serikat, perusahaanperusahaan besar, laboratorium besar dan uni(ersitas.

Anda mungkin juga menyukai