RSA_Paper
Transcript of RSA_Paper
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com i
NUMERISASI PESAN DENGAN METODE ENKRIPSI RSA
Tugas Mata Kuliah Rekayasa Perangkat Lunak 1
Di Susun Oleh :
1. Yudya Rahman ( 50405773 )
2. Robby Andreas ( 50405914)
3. M. Sajadi ( 50405445)
4. Fajar Fathurrahman ( 50406272)
5. Johan Lasmita ( 50406763)
FAKULTAS TEKNOLOGI INDUSTRI JURUSAN TEKNIK INFORMATIKA
UNIVERSITAS GUNADARMA
2009
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com ii
DAFTAR ISI
1. Paradigma Umum
1.1 Urgensi Sistem Keamanan ......................................................................... 1
1.2 Hacker, Cracker dan Motif ........................................................................ 2
1.3 Jenis Serangan Sekuriti .............................................................................. 4
1.4 Parameter Sistem Keamanan Jaringan Komputer……………………….. 5
2. Kriptografi
2.1 Pengertian Dasar ..................................................................................... 13
2.2 Cryptographic System (cryptosystem) .................................................... 14
2.3 Cryptographic Protokol ........................................................................... 15
2.4 Penyerangan Terhadap Protokol .............................................................. 17
2.5 Berbagai Macam Basic Cryptanalytic Attacks ...................................... 18
2.6 Secure Socket Layer .................................................................................. 19
3. Algoritma Enskripsi RSA
3.1 Contoh Permasalahan ................................................................................ 22
3.2 Skema Metode RSA …........................................................................... 28
3.3 Kripto Kunci Publik RSA .................................................................... …. 29
3.3.1 Algoritma RSA …………............................................................... 29
3.3.2 Contoh RSA……………………..................................................... 29
3.3.3 Contoh RSA Lanjutan (Enkripsi Pesan)…………………….......... 30
3.3.4 Contoh RSA Lanjutan (Dekripsi Pesan)…………………….......... 30
3.4 Implementasi RSA.................................................................................... 31
4. Software RSA
4.1 Cryptographic Primitive ………….......................................................... 32
4.2 Implementasi Software Cryptographic Primitive ………….................... 33
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com iii
4.2.1 Struktur Data……………………………………………………… 34
4.2.2 Implementasi Program…………………………………………….. 34
Kesimpulan …………………………………………………………........... 36
Daftar Pustaka……………………………………………………………… 38
1. Paradigma Umum
1.1 Urgensi Sistem Keamanan
Dalam dunia komunikasi data global yang selalu berubah, hubungan Internet
yang murah, dan cepatnya perkembangan software, keamanan menjadi isu
yang semakin penting. Keamanan saat ini menjadi suatu kebutuhan dasar
karena komputasi global tidak aman. Sebagai contoh, dengan berpindahnya
data user dari titik A ke titik B di internet, ia akan melalui beberapa titik lain
selama perjalanan, membuka kesempatan bagi pihak lain untuk memotong
data, merubah data bahkan merubah tujuan data .
Keamanan jaringan komputer sebagai bagian dari sebuah sistem informasi
adalah sangat penting untuk menjaga validitas dan integritas data, serta
menjamin ketersediaan layanan bagi penggunanya. Sistem harus dilindungi
dari segala macam serangan dan usaha-usaha penyusupan, atau pemindaian
oleh pihak yang tidak berhak. Berbagai metode digunakan untuk
meningkatkan system informasi dan jaringan computer, agar tidak dapat
dengan mudah ditembus oleh berbagai serangan, baik serangan dari luar
maupun dari dalam.
Beberapa fakta yang membuat sistem keamanan data menjadi penting adalah :
a. Tidak ada sistem komputer yang dapat diamankan secara total, yang
dapat dilakukan adalah membuat kesulitan bagi orang lain untuk
mengganggu sistem komputer user.
b. Semakin aman sistem user, semakin intrusif keamanan yang
diperlukan. Perlu ditentukan tindakan yang membuat sistem masih
dapat digunakan dan aman untuk digunakan. Jika mempunyai site yang
berukuran besar hingga menengah, memerlukan suatu kebijakan
keamanan (Security Policy) yang berisikan tingkat keamanan yang
dibutuhkan oleh site dan auditing apa saja yang digunakan untuk
memeriksanya.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 2
c. Setiap individu mempunyai privasi yang berbeda. Sebelum
mengamankan suatu sistem, perlu ditentukan tingkat ancaman yang di
hadapi, risiko apa saja yang perlu atau tidak perlu diambil, dan
seberapa rentan sistem terhadap gangguan.
1.2 Hacker, Cracker dan Motif
Cracker merupakan individu maupun kelompok orang yang memanfaatkan
hasil penemuan penyusupan, terhadap komputer lain untuk melakukan
eksploitasi, dan mengambil manfaat dari hasilnya. Seorang cracker dapat
melakukan exploitasi di mana saja dan kapan saja, tanpa harus mempunyai
pengetahuan khusus. Cracker jenis ini dikenal sebagai ``script kiddies''.
Motivasi para cracker sangat beragam, diantaranya adalah untuk propaganda
( deface web site / email ), kriminal murni, penyerangan destruktif (akibat
dendam atau ketidaksukaan terhadap suatu insitusi), dan lain-lain. Apapun
motif dari cracker pasti selalu ada pihak yang dirugikan akibat tindakannya.
Berbeda dengan Cracker, Hacker adalah entitas yang menemukan kelemahan
(vunerability) sistem dalam konteks security incidents. Seorang hacker bisa
menjadi seorang cracker, tetapi seorang cracker belum tentu menguasai
kemampuan yang dipunyai seorang hacker.
Pada prakteknya, suatu pembentukan sistem yang aman, akan mencoba
melindungi adanya beberapa kemungkinan serangan, yang dapat dilakukan
pihak lain terhadap user antara lain :
a. Intrusion. Pada penyerangan ini, seorang penyerang akan dapat
menggunakan sistem komputer yang user miliki. Sebagian penyerang jenis
ini, menginginkan akses sebagaimana halnya pengguna yang memiliki hak
untuk mengakses sistem.
b. Denial of services. Penyerangan jenis ini, mengakibatkan pengguna yang
sah tak dapat mengakses sistemnya sendiri. Sebagai contoh adalah
Distributed Denial of Services (DDOS) yang mengakibatkan beberapa
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 3
situs internet tak bisa diakses. Seringkali orang melupakan jenis serangan
ini dan hanya berkonsentrasi pada intrusion saja.
c. Joyrider. Pada serangan ini disebabkan oleh, orang yang merasa iseng dan
ingin memperoleh kesenangan dengan cara menyerang suatu sistem.
Mereka masuk ke sistem karena beranggapan bahwa mungkin data yang di
dalamnya menarik. Rata-rata mereka karena rasa ingin tahu, tapi ada juga
yang menyebabkan kerusakan atau kehilangan data.
d. Vandal. Jenis serangan ini bertujuan untuk merusak sistem. Seringkali
ditujukan untuk site-site besar.
e. Scorekeeper. Jenis serangan ini hanyalah bertujuan, untuk mendapatkan
reputasi dengan cara mengcrack sistem sebanyak mungkin. Sebagian besar
dari mereka tertarik pada situs-situs tertentu saja. Sebagian dari mereka tak
begitu peduli dengan data yang ada di dalamnya. Saat ini jenis ini lebih
dikenal dengan istilah script kiddies
f. Mata-mata. Jenis serangan ini bertujuan untuk memperoleh data atau
informasi rahasia dari pihak kompetitor. Saat ini semakin banyak
perusahaan yang memanfaatkan jasa ini.
Terdapat beberapa macam mata-mata, yaitu :
1. The Curious (Si Ingin Tahu) - tipe penyusup ini pada dasarnya
tertarik menemukan jenis sistem dan data yang anda miliki.
2. The Malicious (Si Perusak) - tipe penyusup ini berusaha untuk
merusak sistem, atau merubah web page anda, atau sebaliknya
membuat waktu dan uang anda kembali pulih.
3. The High-Profile Intruder (Si Profil Tinggi) - tipe penyusup ini
berusaha menggunakan sistem untuk memperoleh popularitas dan
ketenaran. Dia mungkin menggunakan sistem profil tinggi anda
untuk mengiklankan kemampuannya.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 4
4. The Competition (Si Pesaing) - tipe penyusup ini tertarik pada data
dalam sistem.
1.3 Jenis Serangan Sekuriti
Serangan pada suatu sistem jaringan komputer sendiri pada dasarnya
memiliki 3 gelombang trend utama yaitu (Schneier, 2000)
a. Gelombang pertama adalah serangan fisik
Serangan ini ditujukan kepada fasilitas jaringan, perangkat elektronis dan
komputer. Sebagai pertahanan terhadap serangan jenis ini bisaanya
digunakan sistem backup ataupun sistem komputer yang terdistribusi,
sehingga mencegah kesalahan di satu titik mengakibatkan seluruh sistem
menjadi tak bekerja. Cara pemecahan terhadap serangan ini telah diketahui
dengan baik. Jaringan internet sendiri didesain untuk mengatasi
permasalahan seperti ini.
b. Gelombang pertama adalah serangan sintatik
Serangan ini ditujukan terhadap keringkihan (vulnerability ) pada
perangkat lunak, celah yang ada pada algoritma kriptografi atau protokol.
Serangan Denial of Services (DoS) juga tergolong pada serangan jenis ini.
Serangan jenis inilah yang saat ini paling populer. Tetapi relatif cara
penanganannya telah diketahui dan bisaanya pihak administrator atau
pengguna yang lalai menerapkannya.
c. Gelombang pertama adalah serangan semantik
Serangan jenis ini memanfaatkan arti dari isi pesan yang dikirim. Dengan
kata lain adalah menyebarkan disinformasi melalui jaringan, atau
menyebarkan informasi tertentu yang mengakibatkan timbulnya suatu
kejadian. Pada dasarnya banyak pengguna cenderung percaya apa yang
mereka baca. Seringkali keluguan mempercayai berita ini disalah-gunakan
pihak tertentu untuk menyebarkan isu-isu yang menyesatkan.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 5
1.4 Parameter Sistem Keamanan Jaringan Komputer
Menurut Jay Ramachandran dalam bukunya yang berjudul “Designing Security
Architecture Solutions”, yang menjadi dasar prinsip atau parameter, pada
keamanan sebuah system jaringan computer itu ada 7 prinsip. Antara lain :
1.Authentication, 2. Authorization atau Access Control, 3. Privacy / Confidential,
4. Integrity, 5. Availability, 6. Non-Repudiation, 7. Auditing. Ketujuh parameter di
samping akan dibahas sebagai berikut selengkapnya.
a. Authentication
Menyatakan bahwa data atau informasi yang digunakan, atau diberikan oleh user
adalah asli milik user tersebut, begitu pula dengan server yang digunakan dan
system informasi yang diakses. Serta aman dari serangan pada jaringan berupa
DNS Corruption atau DNS Cache Poison, Spoofing, Situs Palsu, User dan
Password Palsu. DNS Forgery attack atau dikenal dengan serangan situs palsu,
merupakan salah satu cara yang dapat dilakukan oleh seseorang untuk mencuri
data-data penting orang lain, dengan cara melakukan penipuan. Salah satu bentuk
penipuan yang bisa dilakukan adalah penipuan data-data DNS.
DNS itu sendiri adalah, sebuah sistem yang akan menterjemahkan nama sebuah
situs, atau host menjadi alamat IP situs, atau host tersebut. Cara kerja DNS cukup
simple, yaitu sebuah host mengirimkan paket (bisaanya dengan tipe UDP) yang
pada header, paket tersebut berisikan alamat host penanya, alamat DNS resolver,
pernyataan yang diinginkan, serta sebuah nomor identitas. DNS resolver akan
mengirimkan paket jawaban, yang sesuai ke penanya.
Pada paket jawaban tersebut, terdapat nomor identitas, yang dapat dicocokkan
oleh penanya, dengan nomor identitas yang dikirimnya. Karena cara kerja yang
cukup simple, dan tidak adanya metode otentikasi dalam sistem komunikasi
dengan paket UDP, maka sangat memungkinkan seseorang untuk berpura-pura
menjadi DNS resolver, dan mengirimkan paket jawaban palsu dengan nomor
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 6
identitas yang sesuai ke penanya, sebelum paket jawaban dari DNS resolver resmi
diterima oleh penanya.
Dengan cara ini, seorang penyerang dapat dengan mudah mengarahkan seorang
pengguna, untuk melakukan akses ke sebuah layanan palsu, tanpa diketahui
pengguna tersebut. Sebagai contoh, seorang penyerang dapat mengarahkan
seorang pengguna internet banking, untuk melakukan akses ke situs internet
banking palsu yang dibuatnya, untuk mendapatkan data-data pribadi dan kartu
kredit pengguna tersebut. Untuk dapat melakukan gangguan dengan memalsukan
data DNS, seseorang membutuhkan informasi-informasi antara lain : 1. Nomor
identitas pertanyaan (16 bit); 2. Port tujuan pertanyaan; 3. Alamat IP DNS
resolver; 4. Informasi yang ditanyakan; dan 5. Waktu pertanyaan.
Untuk menjaga keamanan pada parameter authentication ini, biasanya user
menggunakan metode Digital Signature. Contoh dari penggunaannya adalah
menggunakan teknologi Secure Socket Layer (SSL) atau Transport Layer Security
(TLS) untuk web dan mail server. SSL merupakan sebuah protocol yang
menjamin keamanan data yang dikirimkan, tidak dapat dicuri dan diubah oleh
pihak lain yang tidak berkepentingan, juga melindungi user dari pesan palsu yang
mungkin dikirimkan oleh pihak lain.
Tahapan-tahapan yang harus dilalui dengan menggunakan SSL adalah: 1.
Negoisasi algoritma yang akan digunakan kedua belah pihak; 2. Otentikasi
menggunakan Public Key Encryption (RSA, Diffie-Helman, DSA, atau Fortezza);
3. Komunikasi data dengan menggunakan Symmetric Key Encryption (RC2,
RC4,IDEA, DES, TRIPLE DES atau AES). Untuk fungsi hash 1 arah :
MD5(Message-Digest Algorith 5) atau SHA (Secure Hash Algorithm). Aplikasi
yang banyak menggunakan SSL adalah aplikasi perbankan berbasiskan web (e-
banking).
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 7
b. Authorization atau Access Control
Pada parameter ini berfungsi sebagai pengaturan hak akses, bagi user yang
berkepentingan di dalamnya. Siapa saja yang dapat melakukan apa ? Atau
darimana ? menuju kemana ? Dengan menggunakan mekanisme user , atau
password atau mekanisme lainnya. Pada parameter ini terdapat pembagian kelas
atau tingkatan. Contoh dari penggunaan atau implementasinya, bisa dilihat pada
aplikasi firewall yaitu dengan menggunakan Network Proxy.
Tugas sebuah proxy adalah untuk mewakili klien-klien yang ada, untuk
melakukan hubungan dengan server-server tujuan. Bagi klien yang akan
melakukan koneksi ke sebuah server, proxy adalah server tersebut. Sedangkan
bagi server yang dihubungi, proxy adalah klien-nya. Dengan menggunakan proxy,
akan lebih sulit bagi pihak luar untuk melakukan serangan ke jaringan computer
internal, karena pihak tersebut hanya dapat berhubungan dengan proxy tersebut,
sehingga pihak luar tersebut tidak dapat mengetahui lokasi sebenarnya dari server
yang dihubunginya. Sebuah proxy juga dapat memiliki sederetan access-list
(ACL) yang akan mengatur hak akses klien ke server.
Network Proxy juga dapat difungsikan terbalik, menjadi sebuah reverse proxy.
Tujuan utama dari reverse proxy adalah, untuk melindungi server-server di
jaringan internal. Karena semua request dari klien eksternal akan diterima oleh
reverse proxy, maka paket-paket request yang berbahaya bagi server, akan
tersaring dan tidak berbahaya bagi server internal organisasi akan diterima. Selain
itu ACL proxy server, dapat melakukan scenario pembatasan bandwidth atau
delaypools pada traffic antar jaringan. Kelemahan dari proxy adalah antara klien
dan server tidak memiliki hubungan langsung. Oleh karena itu, proxy tidak dapat
digunakan pada protokol-protokol ataupun aplikasi yang membutuhkan interaksi
langsung antara klien dan server.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 8
c. Privacy atau Confidentially
Berfungsi sebagai keamanan terhadap data-data pribadi, pesan-pesan atau
informasi lainnya yang sensitive. Contoh serangan pada point ini adalah serangan
pada jaringan, berupa aktifitas Packet Sniffing atau penyadapan dan adanya aksi
Keylogger.
Umumnya terjadi karena sebuah kebijakan atau Policy yang dinilai kurang jelas.
Hal ini terjadi dari berbagai pihak, apakah Admin yang nakal atau ISP yang
nakal? Untuk meminimalisir keadaan seperti ini, salah satunya adalah dengan
menggunakan teknologi Enkripsi atau Kriptografi.
Packet Sniffing, selain sebagai menjadi alat untuk melakukan kejahatan, juga bisa
digunakan sebagai alat pertahanan. Dengan melakukan analisa paket-paket yang
melalui sebuah media jaringan komputer, pengelola dapat mengetahui apabila ada
sebuah host yang mengirimkan paket-paket yang tidak normal, atau paket – paket
yang berbahaya bagi keamanan, misalnya karena terinfeksi virus. Selain itu packet
sniffer juga bisa menjadi alat, untuk melakukan analisa permasalahan yang sedang
dihadapi sebuah jaringan komputer. Misalkan ketika sebuah host tidak dapat
berhubungan dengan host lainnya, yang berada pada kelompok jaringan yang
berbeda, maka dengan packet sniffer, pengelola jaringan komputer dapat
melakukan penelusuran dimana permasalahan koneksi itu terletak.
d. Integrity
Maksud pada poin ini adalah, bahwa informasi atau pesan itu dipastikan tidak
dirubah maupun berubah. Serangan pada jaringan, dapat berupa aktifitas IP
Spoofing, Mail Modification, Trojan Horse, Man In The Midle Attack (MITM
Attack). Beberapa bentuk serangan, yang akan di bahas lebih lanjut pada point ini
adalah, IP Spoofing dan MITM Attack. IP Spoofing adalah sebuah model
serangan, yang bertujuan untuk menipu seseorang. Serangan ini dilakukan dengan
cara, mengubah alamat asal sebuah paket, sehingga dapat melewati perlindungan
firewall, dan menipu host penerima data.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 9
Hal ini dapat dilakukan karena pada dasarnya alamat IP asal sebuah paket,
dituliskan oleh sistem operasi host yang mengirimkan paket tersebut. Dengan
melakukan raw-socket-programming, seseorang dapat menuliskan isi paket yang
akan dikirimkan setiap bit-nya sehingga untuk melakukan pemalsuan data dapat
dilakukan dengan mudah. Salah satu bentuk serangan yang memanfaatkan metode
IP Spoofing adalah 'man- in- the - middleattack'. Pada serangan ini, penyerang
akan berperan sebagai orang ditengah antara dua pihak yang sedang
berkomunikasi. Misalkan ada dua pihak
yaitu pihak A dan pihak B lalu ada penyerang yaitu C. Setiap kali A mengirimkan
data ke B, data tersebut akan dicegat oleh C, lalu C akan mengirimkan data
buatannya sendiri ke B, dengan menyamar sebagi A. Paket balasan dari B ke A
juga dicegat oleh C yang kemudian kembali mengirimkan data 'balasan'
buatannya sendiri ke A. Dengan cara ini, C akan mendapatkan seluruh data yang
dikirimkan antara A dan B, tanpa diketahui oleh A maupun C. Untuk mengatasi
serangan yang berdasarkan IP Spoofing, sebuah sistem operasi harus dapat
memberikan nomor-urut yang acak ketika menjawab inisialisasi koneksi dari
sebuah host. Dengan nomor urut paket yang acak, akan sangat sulit bagi seorang
penyerang untuk dapat melakukan pembajakan transmisi data.
Selain itu, untuk mengatasi model serangan 'man-in-the-middle-attack', perlu ada
sebuah metode untuk melakukan otentikasi host yang kita hubungi. Otentikasi
dapat berupa digital certificate yang eksklusif dimiliki oleh host tersebut.
Konfigurasi firewall yang tepat juga dapat meningkatkan kemampuan jaringan
komputer dalam menghadapi IP Spoofing. Firewall harus dibuat agar dapat
menolak paket-paket dengan alamat IP sumber jaringan internal yang masuk dari
interface yang terhubung dengan jaringan eksternal. Untuk meminimalisir
serangan-serangan tersebut bisa menggunakan teknologi Digital Signature dan
Kriptografi seperti PGP, protocol 802.1x, WEP(Wired Equivalent Privacy), WPA.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 10
e. Availability
Availability merupakan keamanan, atas ketersediannya sebuah layanan informasi.
Serangan yang bisaanya terjadi pada jaringan, adalah DOS atau denial of service,
baik disadari atau sengaja maupun tidak. Aktifitasnya berupa Malware, Worm,
Virus, dan Bomb Mail yang sering memacetkan akses jaringan.
Untuk meminimalisir serangan-serangan tersebut, bisa menggunakan teknologi
Firewall dan Router Filtering, Backup dan Redundancy. Banyak metode-metode
yang dapat diterapkan untuk membuat jaringan komputer menjadi lebih aman,
salah satunya adalah dengan menggunakan metode pertahanan Intrusion
Detection System (IDS) dan Intrusion Prevention System (IPS).
IDS dan IPS adalah, sistem yang banyak digunakan untuk mendeteksi dan
melindungi, sebuah sistem keamanan dari serangan, oleh pihak luar maupun
dalam. Sebuah IDS dapat berupa, IDS berbasiskan jaringan komputer atau
berbasiskan host. Pada IDS berbasiskan jaringan komputer, IDS akan menerima
copy packet yang ditujukan pada sebuah host, untuk kemudian memeriksa paket -
paket tersebut. Apabila ternyata ditemukan paket yang berbahaya, maka IDS akan
memberikan peringatan pada pengelola sistem.
Karena paket yang diperiksa, hanyalah salinan dari paket yang asli, maka
sekalipun ditemukan paket yang berbahaya, paket tersebut akan tetap mencapai
host yang ditujunya. Arsitektur system pada IDS terdiri dari tiga komponen yaitu :
1. Sensor; 2. Analyzer; 3. Database System. Seperti pada Gambar 1 Diagram Blok
IDS dibawah ini.
Gambar 1 Diagram Blok IDS
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 11
Komponen sensor berfungsi untuk mengambil data dari jaringan. Sensor
merupakan bagian dari sistem deteksi dini dari sistem keamanan yang dirancang.
Untuk itu digunakan suatu program yang berfungsi sebagai intrusion detector
dengan kemampuan packet logging dan analisis traffik yang realtime.
Analyzer berfungsi untuk analisa paket yang lewat pada jaringan. Informasi dari
analyzer yang akan menjadi input bagi sistem lainnya. Sebuah IPS bersifat lebih
aktif lagi daripada IDS. Bekerja sama dengan application firewall, sebuah IPS
dapat memberikan keputusan, apakah sebuah paket dapat diterima atau tidak oleh
sistem. Apabila IPS menemukan bahwa paket yang dikirimkan adalah paket yang
berbahaya, maka IPS akan memberitahu firewall sistem untuk menolak paket data
tersebut, dan melakukan follow-up lebih lanjut pada paket data yang ditolak
tersebut.
Dalam membuat keputusan, apakah sebuah paket data berbahaya atau tidak, IDS
dan IPS dapat mempergunakan metode-metode sebagai berikut : 1.
Signaturebased Intrusion Detection System, pada metode ini telah tersedia daftar
signature yang dapat digunakan, untuk menilai apakah paket yang dikirimkan
berbahaya atau tidak. Sebuah paket data akan dibandingkan dengan daftar yang
sudah ada.
Metode ini akan melindungi sistem dari jenis-jenis serangan yang sudah diketahui
sebelumnya. Oleh karena itu, untuk tetap menjaga keamanan sistem jaringan
komputer, data signature yang ada harus tetap ter-update secara berkala; 2.
Anomaly-based Intrusion Detection System, pada metode ini pengelola jaringan
harus melakukan konfigurasi terhadap IDS dan IPS, sehingga IDS dan IPS dapat
mengetahui pola paket seperti apa saja, yang akan ada pada sebuah system
jaringan komputer. Sebuah paket anomali adalah, paket yang tidak sesuai dengan
kemampuan jaringan computer tersebut. Apabila IDS dan IPS menemukan ada
anomali pada paket yang diterima, atau dikirimkan, maka IDS dan IPS akan
memberikan peringatan pada pengelola jaringan (IDS), atau akan menolak paket
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 12
tersebut untuk diteruskan (IPS). Untuk metode ini, pengelola jaringan harus terus
– menerus memberi tahu IDS dan IPS bagaimana lalu lintas data yang normal
pada sistem jaringan komputer tersebut, untuk menghindari adanya salah
penilaian oleh IDS atau IPS.
Kelemahan pada penggunaan metode IDS dan IPS, pada system jaringan
computer adalah dengan mempergunakan sumber daya komputasi yang cukup
besar. Dan khusus untuk IPS, dengan adanya IPS maka waktu yang dibutuhkan
sebuah paket untuk dapat mencapai host tujuannya menjadi semakin lama, tidak
cocok untuk aplikasi-aplikasi, yang membutuhkan pengiriman data secara
realtime. Selain itu IDS dan IPS masih membuka kesempatan, untuk terjadinya
falsepostive dimana sebuah paket yang aman dinyatakan berbahaya, dan false-
negative dimana paket yang berbahaya dinyatakan aman. Untuk mengurangi
tingkat falsepositive dan false-negative, perlu dilakukan pembaharuan secara rutin
terhadap sebuah IDS dan IPS. Dalam implementasinya, IDS adalah sebuah unit
host yang terhubung, pada sebuah hub/switch dan akan menerima, salinan dari
paket-paket yang diproses oleh hub/switch tersebut. Sedangkan untuk IPS
biasanya diletakkan pada unit yang sama dengan firewall, dan akan memproses
paket-paket yang lewat melalui firewall tersebut.
f. Non-Repudiation
Menjaga agar jika sudah melakukan sebuah transaksi atau aktifitas online, maka
tidak dapat di sangkal lagi. Umumnya digunakan untuk aktifitas e-commerce, dan
e-learning misalnya email yang digunakan untuk bertransaksi aktifitas
pengaksesan sebuah web, menggunakan sebuah Digital Signature. Pada jaringan
dapat mengunakan Digital Signature, sertifikat dan Kriptografi. Contoh kasus
dalam e-learning, adalah website http://www.studentsite.gunadarma.ac.id, yang
setiap user yang merupakan mahasiswa dari gunadarma dapat menggunakannya
tanpa adanya system authentifikasi karena pada website tersebut telah
menggunakan digital signature untuk melakukan aktifitas akses data dan
pengiriman data.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 13
g. Auditing
Adanya berkas semacam rekaman komunikasi data yang terjadi pada jaringan
untuk keperluan audit, seperti mengidentifikasikan serangan-serangan pada
jaringan atau server. Implementasinya adalah pada teknologi firewall (IDS/IPS)
atau router yang menggunakan system logging (syslog).
2. Kriptografi
2.1 Pengertian Dasar
Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun dapat
disebut juga sebagai cleartext. Proses yang dilakukan untuk mengubah
plaintext ke dalam ciphertext disebut encryption atau encipherment.
Sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut
decryption atau decipherment.
Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan
dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan
seni membuka (breaking) ciphertext dan orang yang melakukannya disebut
cryptanalyst.
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk
mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini,
seperangkat parameter yang menentukan transformasi pencipheran tertentu
disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau
beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk
proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada
sistem yang digunakan.
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara
matematis sebagai berikut :
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 14
Pada saat proses enkripsi user menyandikan pesan M dengan suatu kunci K
lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut
diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang
sama seperti pesan sebelumnya.
Keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang
digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga
algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan
dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat
diproduksi massal. Tidak menjadi masalah apabila seseorang mengetahui
algoritma yang digunakan. Selama ia tidak mengetahui kunci yang dipakai, ia
tetap tidak dapat membaca pesan.
2.2 Cryptographic System (Cryptosystem)
Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan
plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat
digolongkan menjadi dua buah, yaitu :
1. Symmetric Cryptosystem
Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses
enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat
pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan.
Oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem.
Jumlah kunci yang dibutuhkan umumnya adalah :
nC2 =n.(n-1)
2
dengan n menyatakan banyaknya pengguna. Contoh dari sistem ini adalah
Data Encryption Standard (DES), Blowfish, IDEA.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 15
2. Assymmetric Cryptosystem
Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci
yang disebut kunci publik (public key) dapat dipublikasikan, sedang kunci
yang lain yang disebut kunci private (private key) harus dirahasiakan. Proses
menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut :
bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya
dengan menggunakan kunci publik B, dan bila B ingin membaca surat
tersebut, ia perlu mendekripsikan surat itu dengan kunci privatnya. Dengan
demikian kedua belah pihak dapat menjamin asal surat serta keaslian surat
tersebut, karena adanya mekanisme ini. Contoh sistem ini antara lain RSA
Scheme dan Merkle-Hellman Scheme.
Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :
• Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada
kerahasiaan algoritma yang digunakan.
• Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.
• Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak
dalam seluruh tes statistik yang dilakukan terhadapnya.
• Cryptosystem yang baik mampu menahan seluruh serangan yang telah
dikenal sebelumnya
2.3 Cryptographic Protokol
Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak
atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini
dapat diambil beberapa arti sebagai berikut :
• Protokol memiliki urutan dari awal hingga akhir;
• Setiap langkah harus dilaksanakan secara bergiliran;
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 16
• Suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum
selesai;
• Diperlukan dua pihak atau lebih untuk melaksanakan protokol;
• Protokol harus mencapai suatu hasil;
Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :
• Setiap orang yang terlibat dalam protokol harus mengetahui terlebih
dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan;
• Setiap orang yang terlibat dalam protokol harus menyetujui untuk
mengikutinya;
• Protokol tidak boleh menimbulkan kerancuan;
• Protokol harus lengkap;
Cryptographic protocol adalah suatu protokol yang menggunakan
kriptografi. Protokol ini melibatkan sejumlah algoritma kriptografi.
Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk
mencegah atau pun mendeteksi adanya eavesdropping dan cheating.
Fungsi Protokol
Komputer memerlukan suatu protokol formal agar dapat melakukan hal yang
bisa dilakukan manusia tanpa berpikir. Protokol digunakan untuk
mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang
digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan
pada PC atau VAX.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 17
2.4 Penyerangan Terhadap Protokol
Penyerangan cryptographic dapat ditujukan pada beberapa hal berikut :
• Algoritma cryptographic yang digunakan dalam protokol;
• Teknik cryptographic yang digunakan untuk mengimplementasikan
algoritma dan protokol;
• Protokol itu sendiri;
Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol.
Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau
seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang
tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol
dan berusaha untuk memperoleh informasi.
Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi
keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol,
menghapus pesan, atau bahkan mengubah informasi yang ada di dalam suatu
komputer. Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia
membutuhkan suatu campur tangan aktif.
Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol,
namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat
merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang
semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol,
tetapi berusaha memperoleh informasi lebih banyak daripada yang
diperbolehkan protokol bagi dirinya. Active cheater mengubah protokol dalam
usahanya untuk berbuat hal yang bersifat ilegal/curang.
Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-
pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu
protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan
passive cheating.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 18
2.5 Berbagai Macam Basic Cryptanalytic Attacks
Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext
yang sesuai dengan ciphertext yang ada dan berusaha menentukan kunci yang
memetakan satu dengan yang lainnya. Plaintext ini dapat diketahui karena ia
merupakan standar atau karena pendugaan. Jika suatu teks diduga berada di
dalam suatu pesan, posisinya mungkin tidak diketahui, tetapi suatu pesan
lazimnya cukup pendek sehingga memungkinkan cryptanalyst menduga
plaintext yang diketahui dalam setiap posisi yang mungkin dan melakukan
penyerangan pada setiap kasus secara paralel.
Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap
serangan plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive
chosen plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan
memilih plaintext yang digunakan dan dapat melakukannya secara berulang
kali, memilih plaintext untuk tahap N+1 setelah menganalisis hasil tahap N.
Yang dimaksud cryptanalytic attacks adalah usaha-usaha yang dilakukan
seseorang untuk memperoleh informasi ataupun data yang telah dienkripsi.
Secara ringkas terdapat tujuh macam basic cryptanalytic attacks berdasarkan
tingkat kesulitannya bagi penyerang, dimulai dari yang paling sulit adalah :
• Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst
memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi
menggunakan algoritma yang sama.
• Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst
memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga
memiliki plaintext pesan-pesan tersebut.
• Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak hanya
memiliki akses atas ciphertext dan plaintext untuk beberapa pesan, tetapi
ia juga dapat memilih plaintext yang dienkripsi.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 19
• Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan suatu
kasus khusus chosen-plaintext attack. Cryptanalyst tidak hanya dapat
memilih plaintext yang dienkripsi, ia pun memiliki kemampuan untuk
memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya. Dalam
chosen-plaintext attack, cryptanalyst mungkin hanya dapat memiliki
plaintext dalam suatu blok besar untuk dienkripsi; dalam adaptive-chosen-
plaintext attack ini ia dapat memilih blok plaintext yang lebih kecil dan
kemudian memilih yang lain berdasarkan hasil yang pertama, proses ini
dapat dilakukannya terus menerus hingga ia dapat memperoleh seluruh
informasi.
• Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih
ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext
yang didekripsi.
• Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki
pengetahuan tentang hubungan antara kunci-kunci yang berbeda.
• Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst
mengancam, memeras, atau bahkan memaksa seseorang hingga mereka
memberikan kuncinya.
2.6 Secure Socket Layer
SSL adalah suatu protokol komunikasi pada Internet yang menyediakan
fasilitas keamanan seperti kerahasiaan, keutuhan dan keabsahan. Protokol ini
bebas dipergunakan siapa saja, bahkan didukung oleh dua browser utama,
yaitu Netscape Navigator dan Microsoft Internet Explorer. SSL juga tidak
mengkhususkan diri untuk hanya mendukung protokol tertentu – seperti
HTTP misalnya -- karena SSL menggunakan port 443 untuk berhubungan
dengan pelayan internet yang juga memiliki fasilitas SSL. Lapisan aplikasi
diatasnya dapat memanfaatkan kunci yang telah dinegosiasikan oleh SSL.
Dengan memanfaatkan SSL, aplikasi internet dapat melakukan komunikasi
yang aman melalui fasilitas yang disediakan oleh SSL, yaitu :
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 20
1. Kerahasiaan pesan, sehingga tidak bisa dibaca oleh pihak yang tidak
diinginkan
2. Keutuhan pesan, sehingga tidak bisa diubah-ubah di tengah jalan
3. Keabsahan, sehingga meyakinkan pihak-pihak yang berkomunikasi
mengenai keabsahan pesan dan keabsahan jati diri lawan bicaranya.
Saat aplikasi menggunakan SSL, sebenarnya terjadi dua sesi, yakni sesi
handshake dan sesi pertukaran informasi. Berikut akan dijabarkan sebuah
skenario yang aman dari sesi handshake SSL :
1. Klien mengirimkan client hello yang harus dijawab dengan server hello.
Tahap ini terjadi kesepakatan atas penggunaan versi protokol, session ID,
perangkat kriptografi, metoda kompresi.
2. Pelayan kemudian dapat mengirim sertifikat kepada klien. Selain itu
pelayan bisa meminta klien untuk menunjukkan sertifikatnya – namun
tidak harus. Pelayan lantas mengirimkan pesan server hello done, lalu
menunggu jawaban dari klien.
3. Jika pelayan meminta sertifikat dengan pesan certificate request, maka
klien harus mengirimkan pesan certificate mesaage atau no certificate.
4. Pesan client key exchange kini dikirim, dimana pesan yang disandikan itu
tergantung dari algoritma kriptografi kunci publik yang disepakati pada
tahap pertama. Pesan itu berisi kunci-kunci yang dibuat secara acak oleh
klien untuk keperluan enkripsi dan perhitungan sidik jari (hash). Jika
memungkinkan, dapat pula disertai tanda tangan digital melalui
pengiriman pesan certificate verify.
5. Lalu pesan change cipher spec dikirimkan oleh klien sambil mengaktifkan
spesifikasi cipher yang telah disepakati. Hal ini dilakukan dengan
mengkopi pending cipher spec ke current cipher spec. Segera setelah itu,
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 21
klien mengirimkan pesan finished guna mengakhiri handshake. Hal serupa
dilakukan pula oleh pelayan.
6. Akhirnya pelayan dan klien dapat bertukar pesan dengan menyandikannya
dengan kunci dan algoritma yang telah disepakati bersama pada level
aplikasi.
Guna mencegah serangan yang dilakukan terhadap pesan yang disandikan,
pelayan dan klien dapat melakukan handshake beberapa kali pada session ID
yang sama guna mengubah kunci, namun mereka tidak perlu mengubah
parameter komunikasi yang telah disepakati sebelumnya.
Klien perlu memeriksa sertifikat yang diterimanya agar lebih yakin bahwa dia
sedang berkomunikasi dengan pelayan yang diinginkan. Klien memeriksa
sertifikat digital itu dengan membandingkan tanda tangan OS (otoritas
sertifikat) pada sertifikat digital itu dengan daftar OS yang dimiliki.
Penyertaan serfikat digital OS utama pada browser akan menghindarkan klien
dari pemalsuan sertifikat OS utama.
SSL memanfaatkan teknologi kunci publik 40-bit dari RSA, yang ternyata
dapat dijebol dalam waktu 1,3 hari dengan 100 komputer menggunakan brute-
force attack. Ini tidak berarti teknologi SSL tidak bermanfaat. Tujuannya
jelas, yakni agar biaya yang dikeluarkan oleh pihak penyerang lebih besar dari
pada ‘harga’ informasi yang dienkripsi melalui SSL, sehingga secara ekonomi
tidak menguntungkan.
Sedangkan kunci enkripsi simetris yang dipergunakan adalah 128-bit (40-bit
dienkripsi dan 80-bit tidak dienkripsi saat kunci dipertukarkan). Dengan clear-
text attack, masih sangat sulit untuk memecahkannya.
Ada pula serangan yang berusaha menipu pelayan dengan merekam
pembicaraan antara klien dan pelayan sebelumnya. Dalam skenario SSL tanpa
sertifikat klien, hal ini dapat dicegah dengan penggunaan angka random yang
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 22
dipertukarkan setiap terjadi pertukaran pesan. ClientHello.random dan
Serverhello.random dapat dibuat dan dipertukarkan saat tahap pertama.
3. Metode Kriptografi RSA
3.1 Contoh Permasalahan
Dalam berkomunikasi menggunakan jaringan internet, lubang
keamanan menjadi masalah serius karena perkembangan e-mail, e-
banking, e-business dan jenis komunikasi lainnya makin pesat untuk
mentranfer data-data penting. Sebagai contoh kasus Alice dan Bob yang
ingin berkomunikasi dengan privasi tinggi, pada kenyataannya ada pihak
ketiga yang dapat mengakses kemunikasi mereka, dalam hal ini Eve.
• Enkripsi Simetrik
Salah satu solusi untuk Alice dan Bob dalam kasus ini adalah tukar-
menukar data disertai suatu kunci digital, dimana keduanya telah sama-
sama mengetahui kunci rahasia tersebut. Alice menggunakan kunci ini
untuk mengkodekan pesan yang dia kirimkan, dan Bob merekonstruksi
pesan tersebut kembali dengan kunci yang sama. Pesan yang dienkripsi
(ciphertexts) tetap dapat diterima Eve tetapi tidak dapat membacanya
karena tidak mempunyai kunci yang sama untuk mendekripsi kode pesan
tersebut.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 23
• Enkripsi Kunci Publik
Dalam penggunaan model enkripsi ini, kunci publik yang
digunakan berbeda untuk enkripsi dan dekripsi. Digambarkan dalam
diagram di atas, key generator akan menghasilkan dua buah kunci publik,
dimana setiap orang dapat mengetahui dan menggunakan kunci publik ini,
tetapi hanya Bob yang mengetahui kunci privatnya untuk melakukan
dekripsi pesan yang dikirim. Metoda ini memungkinkan Alice dan Bob
tetap dapat berkomunikasi tanpa terganggu oleh pihak ke tiga.
RSA adalah salah satu dari public key criptosystem yang sangat sering
digunakan untuk memberikan privasi terhadap keaslian suatu data digital,
dimana algoritma yang digunakan adalah adanya public key 2 kunci yang
berbeda untuk encript dan decript. Keamanan enkripsi/dekripsi data model
ini terletak pada kesulitan untuk memfaktorkan modulus n yang sangat
besar. Besarnya bilangan yang digunakan mengakibatkan lambatnya
operasi yang melibatkan algoritma RSA ini. Dibandingkan dengan
algoritma private key data encription standar (DES), RSA lebih lambat
pada saat implementasi terhadap hardware.
Di tahun 1978, Rivest, Shamir dan Adleman dari MIT University
membuat sebuah algoritma untuk teori penomoran pada sebuah public-key
cryptosystem, algoritma ini dikenal di computer atau internet dengan RSA
criptosystem yang awalnya di buat dari numerisasi pesan. Misalnya,
apabila seorang user ingin menyampaikan pesan yang berbunyi dog, maka
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 24
kata dog tadi di transformasikan dari huruf alphabet menjadi numeric
(angka). Sehingga numerisasinya menjadi d = (4), o = (15), g = (7), huruf
alphabet yang sudah di tranformsikan menjadi numeric tadi di kalikan
dengan jumlah huruf dalam alphabet dan dipangkatkan n-1 lalu
ditambahkan. Sehingga menjadi (4) X 26 (^ 2) + (15) X 26 (^1) + (7) =
3101.
1 (A) 2 (B) 3 (C) 4 (D) 5 (E)
6 (F) 7 (G) 8 (H) 9 (I) 10 (J)
11 (K) 12 (L) 13 (M) 14 (N) 15 (O)
16 (P) 17 (Q) 18 (R) 19 (S) 20 (T)
21 (U) 22 (V) 23 (W) 24 (X) 25 (Y)
26 (Z)
Secara umum algoritma metode RSA ini adalah sebagai berikut :
Key Generation
1. Dapatkan dua bilangan prima besar, p
dan q
2. Dapatkan nilai n, dimana n= pq
3. Dapatkan nilai m, dimana m= ( p-1)(q-
1)
4. Pilih sebuah angka kecil e, coprime
untuk m
5. Cari nilai d,dimana d.e% m= 1
Publish e dan n sebagai kunci publik
Ambil d dan n sebagai kunci privat
Encryption
C = Pe % n
Decryption
P = Cd % n
x % y maksudnya adalah
suatu nilai sisa x dibagi y
(% = modulus)
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 25
Penjelasan metode ini selengkapnya adalah sebagai berikut :
1. Key Generation
a. Dapatkan 2 bilangan prima, p dan q
Besar kecilnya bilangan prima ini menentukan tingkat
keamanan data, semakin besar bilangan semakin banyak
faktorialnya yang mengakibatkan semakin sulit data dapat
dipecahkan dalam waktu singkat, sebagai contoh :
P=7
Q=19
b. Dapatkan nilai n, dimana n= p.q
n = 7 * 19
= 133
c. Dapatkan nilai m, dimana m= ( p-1)(q-1)
m = (7 - 1)(19 - 1)
= 6 * 18
= 108
d. Pilih sebuah angka kecil e, coprime untuk m.
e coprime untuk m, maksudnya adalah bilangan terbesar yang
dapat membagi e dan m untuk menghasilkan nilai 1 (pembagi
ini dinyatakan dengan gcd (greatest common divisor).
Algoritma Euclid's digunakan untuk mencari gcd dua bilangan
sebagai berikut :
e = 2 => gcd(e, 108) = 2 (no)
e = 3 => gcd(e, 108) = 3 (no)
e = 4 => gcd(e, 108) = 4 (no)
e = 5 => gcd(e, 108) = 1 (yes!)
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 26
e. Cari nilai d,dimana d.e% m = 1
Ini sama dengan seperti mencari nilai d memenuhi d.e = 1 +
m.n, dimana n adalah bilangan integer, user dapat menuliskan
kembali pernyataan tersebut dengan d = (1+m.n)/e sehingga
nilai-nilai n dapat diselesaikan sampai didapat sebuah nilai
yang integer seperti di bawah ini :
n = 0 => d = 1 / 5 (no)
n = 1 => d = 109 / 5 (no)
n = 2 => d = 217 / 5 (no)
n = 3 => d = 325 / 5
= 65 (yes!)
Setelah langkah ini selesai didapatkan kesimpulan :
Public Key
n = 133
E = 5
Secret Key
n = 133
d = 65
2. Komunikasi
a. Enkripsi
Pesan dalam proses enkripsi harus merupakan suatu bilangan
lebih kecil dari nilai p dan q. Bagaimanapun, dalam posisi ini
user tidak mengetahui p atau q, tapi dalam prakteknya suatu
lower bound/nilai yang lebih rendah pada p dan q harus
dimunculkan. Contoh proses ini, user gunakan nilai "6".
C = Pe % n
= 65 % 133
= 7776 % 133
= 62
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 27
b. Dekripsi
Setelah proses enkripsi seperti di atas, maka dapat dilakukan
proses dekripsi dalam beberapa langkah sebagai berikut :
P = Cd % n
= 6265 % 133
= 62 * 6264 % 133
= 62 * (622)32 % 133
= 62 * 384432 % 133
= 62 * (3844 % 133)32 % 133
= 62 * 12032 % 133
Selanjutnya mengulangi urutan operasi yang mengurangi 6265
sampai 12032 untuk mengurangi eksponen operasi tersebut
hingga menjadi 1.
= 62 * 3616 % 133
= 62 * 998 % 133
= 62 * 924 % 133
= 62 * 852 % 133
= 62 * 43 % 133
= 2666 % 133
= 6
Dengan melakukan langkah di atas, dapat dilihat bahwa pesan/data telah sama
dengan data asli sebelum enkripsi yaitu “6”. Pada perkembangannya RSA
banyak digunakan karena kemudahannya.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 28
3.2 Skema Metode RSA
Metode RSA terdiri dari dua kunci, yaitu :
1. Privat key d, mempunyai karakteristik :
a. Dipublikasikan bebas
b. Pengiriman balik pesan kepada pemegang kunci private untuk
meng-encript pesan M menjadi C
2. Public key (e,n), mempunyai karakteristik :
a. Rahasia pemegang (end user)
b. Digunakan untuk men-decript pesan C menjadi M yang
ditujukan kepadanya
c. Dapat berfungsi sebagai digital signature yang beroperasi
dengan menggunakan private key
3. Kedua kunci dihasilkan dengan cara :
a. Pilih secara random bilangan prima yang sangat besar p
dan q masing-masing > 512 bit
b. Hitung n = p.q dan hitung ‘euler phifunction n,Q(n)’
=(p-1)(q-1)
c. Pilih e hingga relatif prima terhadap Q(n), yaitu
ged(e,Q(n)) = 1
d. Hitung d hingga merupakan invers multipikatif modulo Q(n)
dari e yaitu ed = 1 modulo Q(n)
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 29
3.3 Kripto Kunci Publik RSA
3.3.1 Algoritma RSA
1. Kunci Publik :
a.) n = p.q, p & q bil. Prima besar dan dirahasiakan
b.) e relatif prima terhadap F(n)=(p-1).(q-1)
2. Kunci Rahasia:
a.) d = e-1 mod F(n)
3. Enkripsi:
a.) c = me mod n
4. Dekripsi:
a.) m = cd mod n
3.3.2 Contoh RSA
1. Kunci Publik:
a.) Pilih bil. Prima, misalnya untuk p = 7 dan q = 11, n = 7.11 = 77
b.) F(n) = (p-1) . (q-1) = 6 . 10 = 60 artinya
c.) F(n) = {1,2,3,4,6,8,..,76} = { x | gcd (x , n) = 1 }
d.) Pilih e dalam { x | gcd (x , 60 ) = 1 }, misalnya e = 17
e.) Hapus p dan q dan Kunci Publik n = 77, e = 17
2. Kunci Rahasia:
a.) d = e-1 mod F(n), d .e = 1 mod 60, d =53
53 . 17 mod 60 = 901 mod 60 = 1 mod 60
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 30
3.3.3 Contoh RSA Lanjutan (Enkripsi Pesan)
Misalkan user ingin mengenkripsikan sebuah message yang di
presentasikan oleh variable M dengan pesannya adalah “PESAN”. Langkah-
langkahnya adalah sebagai berikut :
1. Representasikan variable M = “PESAN”, ubah pesan menjadi suatu
deretan numeric m = 16 5 19 1 14
2. Untuk enkripsi digunakan rumus : c = m . e mod n, untuk masing-masing
variable alphabet. Menjadi sebagai berikut :
– c1 = 1617 mod 77 = 25
– c2 = 517 mod 77 = 3
– c3 = 1917 mod 77 = 24
– c4 = 117 mod 77 = 1
– c5 = 1417 mod 77 = 42
Sehingga hasil dari variable yang telah di enkripsi menjadi c = 25 03 24
01 42, C = “YCXAp”.
3.3.4 Contoh RSA Lanjutan (Dekripsi Pesan)
Pada contoh di atas user telah mengenkripsi pesan yang ingin di kirimkan
kepada user lain yang di tuju, sehingga si penerima pesan membaca isi pesannya
menjadi YCXAP, untuk membaca isi pesan sebenarnya si penerima pesan harus
mendekripsikannya dengan cara sebagai berikut :
1. Representasikan variable C merupakan isi sebuah pesan terenkripsi, C =
“YCXAp” , lalu ubah menjadi numeric C = 25 03 24 01 42
2. Untuk Dekripsi di gunakan rumus : m = c.d mod n
– m1 = 2553 mod 77 = 16
– m2 = 353 mod 77 = 5
– m3 = 2453 mod 77 = 19
– m4 = 153 mod 77 = 1
– m5 = 4253 mod 77 = 14
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 31
Setelah mendapatkan hasilnya M = 16 5 19 1 14, lalu ubah deretan numeric
tersebut ke dalam huruf alphabet, sehingga isi pesan yang di terima dan di baca
oleh si penerima adalah “PESAN”
3.4 Implementasi RSA
RSA dapat di implementasikan secara hardware dan software, dimana
standar implementasi menggunakan PKCS#1. Public key e harus terlindungi
secara baik sehingga pemilihan 3,17 dan 65537 sering digunakan. Rekomendasi
PKCS#1 : 3 (0112),17 (100012) atau 65537 (100000000000000012) karena ketiga
bilangan tersebut memiliki bit 1 sebanyak 2 buah, sehingga diperlukan hanya 17
perkalian untuk operasi eksponensiasi, akibatnya operasi decript menjadi lebih
cepat.
Metoda penghitungan biner untuk Me mod n, integer M,e dan n menggunakan
algoritma modular exponential, yaitu eksponensial yang disusun dari operasi
perkalian modular dan pangkat 2 modular. Berikut adalah algoritma tersebut :
a. c :=1;
b. p :=m;
c. for i=0 to h-2
a. if ei=1 then c:=c.p mod n
b. p :=p.p mod n
d. if eh-1=1 then c:=c.p mod n
e. return c
Tiap bit dari e discan dari bit 0 LSB hingga h-1 MSB, hal ini dilakukan dalam
loop, jika ei = 1 maka dilakukan perkalian modular c.p mod n dan kemudian
diteruskan dengan p.p mod n. Algoritma ini membuat algoritma model Fermat F4
(216+1) atau 65537, melakukan 17 perkalian , yaitu 15 kali menghitung p.p mod
n dan 1 kali c.p mod n dalam loop 3 dan kemudian 1 kali c.p mod n pada langkah
4.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 32
4. Software RSA
Menurut rekomendasi dokumen PKCS#1, secara umum perangkat lunak untuk
implementasi RSA meliputi :
1. Cryptographic Primitives
2. Skema enkripsi
3. Skema signature
4. Sintaks ASN.1 untuk merepresentasikan kunci
Pada bahasan ini akan difokuskan pada Cryptographic primitive
4.1 Cryptographic Primitive
Cryptographic primitive adalah operasi-operasi matematika dimana
skema kriptographi dibangun yang ditujukan untuk implementasi pada
perangkat keras maupun perangkat lunak. Ada empat tipe primitive ini
seperti direkomendasikan PKCS#1, yaitu :
a.) Enkripsi
Menghasilkan representasi chipertext dari representasi pesan
dibawah kendali kunci publik. Berikut ini algoritma RSA
encription primitive (RSAEP) ((n,e),m)
Input : (n.e) kunci publik RSA
M representasi pesan, integer antara 0 dan n-1
Output : c representasi ciphertext, integer antara 0 dan n-1
Langkah :
1. jika representasi pesan m tidak berada diantara 0
dan n -1, representasi out of range dihasilkan pada
output
2. c = me mod n
3. output c
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 33
b.) Dekripsi
Representasi pesan dari representasi ciphertext dibawah kendali
kunci privat yang berkaitan. Berikut ini algoritma RSA decription
primitive (RSADP) ((n,d),c).
Input : (n.d) kunci privat RSA
(p,q,dp,dq,qinv) kunci privat, metoda 2, c
representasi ciphertext, integer antara 0 dan n - 1
Output : m representasi pesan, integer antara 0 dan n-1
Langkah :
1 jika representasi ciphertext (cm) tidak berada
diantara 0 dan n -1, representasi out of range
dihasilkan pada output
2 jika digunakan metode 1
i. m = cd mod n
jika digunakan metode 2
ii. M 1 = cdp mod p
iii. M2 = cdp mod q
iv. h = qinv(M1 –M2) mod p
v. m =M2 + hq
3 output m
RSAEP maupun RSADP menggunakan operasi modular
exponential dan menggunakan input representasi pesan m atau
ciphertext integer modulo n Zn.
4.2 Implementasi Software Cryptographic Primitive
RSA Cryptographic primitive menspesifikasikan operasi matematik yang
dilakukan dalam melaksanakan proses enkripsi/dekripsi menggunakan
formula matematik yang sama yaitu modular exponential dengan input
eksponen yang berbeda.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 34
4.2.1 Struktur Data
Skema enkripsi yang aman untuk saat ini adalah menggunakan
modulus n dengan ukuran 1024 bit. Arsitektur komputer 32 bit
sekarang yang mengguanakan kompiler dengan tipe data long
integer 32 bit mengimplikasikan penggunaan tipe data yang lebih
rumit seperti array dengan 32 elemen. Namun menurut spesifikasi,
operasi dekripsi mengguanakan metode chinesse remainder
(metode 2) dari Cryptographic primitive yang dijelaskan dalam
dokumen PKCS#1, modulus yang digunakan adalah p dan q
dengan panjang 512 bit. Agar dapat memenuhi kedua metode
tersebut seperti dispesifikasikan, struktur data untuk integer
modulo n atau integer modulo p dan q yang cocok untuk
diimplementasikan Cryptographic primitive adalah array dinamis.
Operasi-operasi metematika yang terlibat dalam operasi
enkripsi/dekripsi adalah modular eksponensial, perkalian,
penjumlahan, pengurangan integer modulo n. Susunan operator
dan statement untuk mengerjakan suatu pekerjaan tertentu
merupakan suatu program.
4.2.2 Implementasi Program
Untuk implementasi dari teori di atas dapat digunakan kode
java sebagai berikut :
import java.math.BigInteger;
import java.security.SecureRandom;
class Rsa
{
private BigInteger n, d, e;
public Rsa(int bitlen)
{
SecureRandom r = new SecureRandom();
BigInteger p = new BigInteger(bitlen / 2, 100, r);
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 35
BigInteger q = new BigInteger(bitlen / 2, 100, r);
n = p.multiply(q);
BigInteger m = (p.subtract(BigInteger.ONE))
.multiply(q.subtract(BigInteger.ONE));
e = new BigInteger("3");
while(m.gcd(e).intValue() > 1) e = e.add(new
BigInteger("2"));
d = e.modInverse(m);
}
public BigInteger encrypt(BigInteger message)
{
return message.modPow(e, n);
}
public BigInteger decrypt(BigInteger message)
{
return message.modPow(d, n);
}
}
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 36
5 Kesimpulan
Dengan uraian-uraian di atas maka dapat diambil beberapa kesimpulan,
bahwa untuk menjaga keamanan system computer dan jaringannya, user harus
terlebih dahulu mengetahui paradigma umum, tentang sebuah keamanan
system computer dan jaringan. Parameter-paremeter apa saja yang terdapat
disana. Seperti yang telah di ungkapkan oleh Jay Ramachandran dalam
bukunya yang berjudul “Designing Security Architecture Solutions”, yang
menjadi dasar prinsip atau parameter, pada keamanan sebuah system jaringan
computer itu ada 7 prinsip. Antara lain : 1.Authentication, 2. Authorization
atau Access Control, 3. Privacy / Confidential, 4. Integrity, 5. Availability, 6.
Non-Repudiation, 7. Auditing. Pada point authentication user dituntut untuk
memastikan bahwa data atau informasi yang digunakan, atau diberikan oleh
user adalah asli milik user tersebut, begitu pula dengan server yang digunakan
dan system informasi yang diakses. Serta aman dari serangan pada jaringan
berupa DNS Corruption atau DNS Cache Poison, Spoofing, Situs Palsu, User
dan Password Palsu.
Untuk menjaga keamanan pada parameter authentication ini, biasanya user
menggunakan metode Digital Signature. Contoh dari penggunaannya adalah
menggunakan teknologi Secure Socket Layer (SSL) atau Transport Layer
Security (TLS) untuk web dan mail server.
Tahapan-tahapan yang harus dilalui dengan menggunakan SSL adalah: 1.
Negoisasi algoritma yang akan digunakan kedua belah pihak; 2. Otentikasi
menggunakan Public Key Encryption (RSA, Diffie-Helman, DSA, atau
Fortezza); 3. Komunikasi data dengan menggunakan Symmetric Key
Encryption (RC2, RC4,IDEA, DES, TRIPLE DES atau AES). Untuk fungsi
hash 1 arah : MD5(Message-Digest Algorith 5) atau SHA (Secure Hash
Algorithm). Pada point otentifikasi di gunakan metode yang menggunakan
public key encryption pada penulisan ini yaitu RSA.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 37
RSA adalah salah satu dari public key criptosystem yang sangat sering
digunakan, untuk memberikan privasi terhadap keaslian suatu data digital,
dimana algoritma yang digunakan adalah adanya public key 2 kunci yang
berbeda untuk encript dan decript. Keamanan enkripsi/dekripsi data model ini
terletak pada kesulitan untuk memfaktorkan modulus n yang sangat besar.
Algoritma RSA secara umum adalah, terdapatnya Kunci Publik dengan
representasi n = p.q (p & q merupakan bilangan prima besar dan di rahasiakan, e
relative prima terhadap F (n) = (p-1).(q-1), d = e-1 mod F(n). Untuk enkripsi
digunakan rumus c = m.e mod n, untuk dekripsi digunakan rumus m = c.d mod
n. Karena besarnya bilangan yang digunakan mengakibatkan relatif lambatnya
operasi yang melibatkan algoritma RSA ini. Dibandingkan dengan algoritma
private key data encription standar (DES), RSA lebih lambat pada saat
implementasi terhadap hardware.
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 38
DAFTAR PUSTAKA
[1] Adnan, _____________, Tesis, Teknik Elektro ITB, Bandung, 2001 [2] Jay Ramachandran.” Designing Security Architecture Solutions”. Wiley [3] http://bebas.vlsm.org/v03/com/ictwatch/paper/paper009.htm/ Infrastruktur
Keamanan e-Banking [4] http://bdg.centrin.net.id/~budskman/protek.htm/ Keamanan data dan metode enkripsi [5] http://www.tedi-h.com/papers/p_kripto.html/ Pengenalan Kriptografi [6] http://www.neotek.co.id/0302/03021416.pdf/ Email Sebagai Senjata Dari
Email Kaleng Sampai spam [7] http://www.bogor.net/idkf/idkf-1/network/network-security/strategi-
merancang-sekuriti-jaringan-komputer-anda-01-1998.rtf [8] http://bdg.centrin.net.id/~budskman/fed.htm/ Membongkar Program enkripsi
FED versi 1.30 [9] http://bdg.centrin.net.id/~budskman/wipe.htm / Penghapusan Data Secara
Permanen [11] http://islab.oregonstate.edu/papers/r05hssnt.pdf/ A Methodology for High-Speed Software Implementations