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 i
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 ii
4.2.1 Struktur Data……………………………………………………… 34 4.2.2 Implementasi Program…………………………………………….. 34 Kesimpulan …………………………………………………………........... 36 Daftar Pustaka………………………………………………………………
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com iii
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.
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 2
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 3
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 4
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 5
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 (ebanking).
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 6
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 7
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 8
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 9
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 10
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 11
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 falsenegative 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 12
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 13
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 14
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 15
•
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 16
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 pihakpihak 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 17
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 18
•
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-chosenplaintext 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 19
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 20
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 bruteforce 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 cleartext 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 21
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, ebanking, 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 samasama 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 22
•
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 23
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
6
(F)
(G) 8
(H)
9
(I)
7
11 (K) 12 (L) 16 (P)
(E)
10 (J)
13 (M) 14 (N) 15 (O)
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
Encryption
1. Dapatkan dua bilangan prima besar, p C = Pe % n dan q 2. Dapatkan nilai n, dimana n= pq 3. Dapatkan nilai m, dimana m= ( p-1)(q- Decryption 1)
P = Cd % n
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
x % y maksudnya adalah suatu nilai sisa x dibagi y (% = modulus)
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 24
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 25
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 :
2.
Public Key
Secret Key
n = 133
n = 133
E=5
d = 65
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 26
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 27
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 28
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 29
3.3.3 Contoh RSA Lanjutan (Enkripsi Pesan) Misalkan user ingin mengenkripsikan sebuah message yang di presentasikan oleh variable M dengan pesannya adalah “PESAN”. Langkahlangkahnya 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 30
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 31
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 32
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 33
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 34
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 35
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 36
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 37
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/strategimerancang-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
Numerisasi Pesan dengan Metode RSA |yudyashare.blogspot.com 38