You are on page 1of 7

ANALISIS DAN IMPLEMENTASI KRIPTOGRAFI RSA PADA APLIKASI

CHATTING CLIENT-SERVER BASED

Ahmad Khairan1, Mahmud Imrona2, Izzatul Ummah3


1,2,3
Prodi Ilmu Komputasi Telkom University, Bandung
1
ahmedkhairan@live.com, 2m.imrona@gmail.com, 3izzatul.ummah@gmail.com

Abstrak
Keamanan data adalah suatu hal yang sangat perlu diperhatikan dalam dunia komunikasi dan kriptografi adalah
solusinya. Algoritma RSA merupakan algortima kriptografi simetris yang masih memiliki ketahanan dari
ancaman sampai saat ini. Kunci RSA dengan panjang 1024 bit dapat memakan waktu 1.43 x 10213 tahun jika
menggunakan brute force.Dalam jurnal ini, akan diterapkan algoritma RSA pada aplikasi chatting, dimana
dengan menerapkan mekanisme kriptografi akan menutup celah keamanan yang ada pada aplikasi pesan instan
tersebut. Dengan penerapan aplikasi dapat dihasilkan mekanisme komunikasi yang aman untuk dipakai dalam
komunikasi penting agar tidak disadap pihak yang tidak bertanggung jawab. Hasil penerapan algortima
menambah tingkat keamanan dari data yang dikirimkan. Text yang dikirim berubah menjadi chipertext acak
yang hanya dapat didekripsi pada saat sampai ditujuan.
.

Kata kunci : Cryptography, RSA, Chat Encrypted, Client-Server Chat.

Abstract
Data security is a thing that needs to be considered in the world of communication and cryptography is the
solution. RSA algorithm is a symmetric cryptographic algorithms which still has the resilience of a threat until
now. RSA with a key length of 1024 bits can be consuming 1.43 x 10213 years if using brute force. In this final
project, the RSA algorithm will be applied to the chat application, where by applying cryptographic mechanism
will close the security gaps that exist in the instant messaging application. With the implementation of the
application can be produced secure communication mechanism to be used in the intercepted communication is
important in order not to irresponsible parties. The results of the application of algorithms increase the security
level of data transmitted. Text sent transformed into a random ciphertext that can only be decrypted by the time
arrived at the destination.

Keywords: Cryptography, RSA, Chat Encrypted, Client-Server Chat.

1. PENDAHULUAN algoritmanya lebih tinggi. Alur dari kriptografi


Perkembangan teknologi informasi dewasa ini asimetris dapat dilihat pada gambar 1.
meningkat semakin pesat. Semakin mudah
penggunaan sistem informasi, semakin muncul
kekhawatiran akan keamanan dari data yang kita
miliki pada sistem tersebut. Untuk Gambar 1 alur umum kriptografi asimetris
meningkatkan keamanan pada alur transfer data
yang dilakukan, maka diperlukan sebuah Algoritma kriptografi RSA dianggap dapat
gembok untuk mengunci data tersebut. Dan memenuhi tingkat sekuriti yang tinggi. Dengan
hanya yang dapat membuka data tersebut kombinasi hasil kali 2 bilangan prima, akan sulit
hanyalah pihak yang bersangkutan. untuk ditemukan dan akan memakan waktu
yang sangat lama jika menggunakan bruteforce.
Kriptografi merupakan pilihan yang tepat dalam Kunci RSA dengan panjang 1024bit akan
pengaman semacam ini. Algoritma kriptografi menghabiskan waktu 1.43 x 10¬213 tahun.
dibagi menjadi dua yaitu, algoritma simetris dan Waktu yang diperlukan melebihi perkiraan
asimetris. Kriptografi simetris hanya memakai umur alam semesta yang dikalkulasi hanya
satu kunci dalam proses enkripsi dan dekripsi. sekitar 13.75 x 109 tahun.
Tingkat kompleksitas algoritma ini tidak terlalu
tinggi, atau bisa dikatakan ringan. Kriptografi Aplikasi Chatting sudah banyak dipakai untuk
asimetrik hanya memiliki 1 kunci public berkomunikasi cepat dan instan. Banyak
enkripsi, tetapi hanya yang memiliki kunci kalangan telah menggunakan aplikasi chatting
private yang dapat mendekripsi pesan. Jadi tersebut. Semakin mudahnya alur komunikasi
tingkat keamanan lebih tinggi dibandingkan yang dilakukan, makin dikhawatirkan masalah
kritografi simetris, tetapi tingkat kompleksitas keamanan pada pesan yang akan dikirim satu

1
sama lain. Sebagai contoh, kalangan enterprise 5. Hitung kunci dekripsi, d, melalui ed  1 (mod m)
biasa menggunakan aplikasi chatting dalam atau d  e-1 mod ((n))
berkomunikasi pada rapat penting atau interaksi
antar sesama karyawan. Misalkan sebuah Hasil dari algoritma di atas:
perusaan besar Microsoft sedang - Kunci publik adalah pasangan (e, n)
mempublikasikan produk baru yang akan - Kunci privat adalah pasangan (d, n)
mereka rancang kesemua karyawan tanpa
bantuan secure chat, maka dengan mudah ide Catatan: n tidak bersifat rahasia, namun diperlukan
tersebut dapat disadap kompetitor dan segera pada perhitungan enkripsi/dekripsi.
membuat produk serupa dengan yang akan
dirancang oleh Microsoft tadi. Maka dengan
menggunakan enkripsi pada pesan yang akan Enkripsi = ci = mie mod n
dikirim maka pesan tersebut akan aman sampai Dekripsi = mi = cid mod n
pada tujuan. Walaupun pesan tersebut telah
disadap ditengah jalan, akan tetapi akan
membutuhkan waktu untuk melakukan 3. CLIENT-SERVER MODEL
bruteforce pada hasil sadapan tadi dan akan Pemrograman Jaringan modern sekarang ini berbasis
memakan waktu yang sangat lama. Makan pada model client/server. Pada sebagian besar kasus,
pesan tersebut dapat aman sampai tujuan tanpa server biasanya mengirim data, sedangkan client
diketahui pihak lain yang tidak bertanggung menerimanya. Pembahasan tentang model
jawab. Client/Server tidak akan lepas dari konsep sistem
terdistribusi. Sebab client/server merupakan model
Jurnal ini melakukan implementasi RSA pada dasar dari sistem terdistribusi.
client-server based Chat. Aplikasi yang dibuat
adalah 1 aplikasi server dan 1 aplikasi client
yang telah dilengkapi dengan fitur enkrpsi pada
pesan yang akan dikirim. Setiap pemrosesan
enkripsi dan dekripsi akan dianalisa kinerjanya Server

per user dan akan dihitung tingkat kenyamanan


per user dalam penggunaan aplikasi tersebut.

2. RSA
RSA adalah Algoritma kunci-publik yang paling
terkenal dan paling banyak aplikasinya. RSA
Ditemukan oleh tiga peneliti dari MIT
(Massachussets Institute of Technology), yaitu Ron
Rivest, Adi Shamir, dan Len Adleman, pada tahun
1976. Keamanan algoritma RSA terletak pada
sulitnya memfaktorkan bilangan yang besar menjadi Client 1 Client 2
faktor-faktor prima. [3]
Atribut-atribut penting pada algoritma RSA adalah Gambar 2 Hubungan Client-Server
Keterangan
sebagai berikut:
- Client 1 dan Client 2 terhubung ke switch
1. p dan q bilangan prima (rahasia) - Server terhubung ke switch
2. n = p  q (tidak rahasia) - Semua komunikasi antara client 1 ke client 2 dilakukan
3. (n) = (p – 1)(q – 1) (rahasia) oleh server dengan bantuan switch.
4. e (kunci enkripsi) (tidak rahasia)
Syarat: PBB(e, (n)) = 1 4. INSTANT MESSAGING
5. d (kunci dekripsi) (rahasia) Instant messaging atau biasa disebut IM adalah
d dihitung dari d  e mod ((n) )
-1 sebuah aplikasi komunikasi secara real time yang
6. m (plainteks) (rahasia) biasanya terhubung pada protocol internet. Sebuah
7. c (cipherteks) (tidak rahasia) pesan yang telah ditulis akan ditransfer kepada
komputer yang akan dituju setelah tombol “send”
Pembangkitan kunci : ditekan. Sebuah LAN messenger berjalan dengan
1. Pilih dua bilangan prima, a dan b (rahasia) cara yang sama pada jaringan LAN. [5]
2. Hitung n = a b. Besaran n tidak perlu Non-IM biasa disebut sebagai Chat Room
dirahasiakan. dimana semua client terkoneksi pada 1 Server socket
3. Hitung (n) = (a – 1)(b – 1). yang akan meng-handle semua send-receive yang
4. Pilih sebuah bilangan bulat untuk kunci publik, dilakukan oleh semua client.
sebut namanya e, yang relatif prima terhadap
(n) .

2
5. WIRESHARK
Write Message to
Wireshark adalah aplikasi paket analyzer open- Start Connect to Server Choose Key
Another Client

source gratis. Aplikasi ini digunakan untuk


melakukan troubleshooting pada jaringan, analisis End Send Encrypt Message
perangkat lunak dan komunikasi pengembangan
protokol, dan pendidikan. Awalnya bernama Gambar 4 Client Send
Ethereal, pada Mei 2006 proyek ini berganti nama
menjadi Wireshark karena terdapat masalah pada
merek dagang. Start
Decrypt Message
Show On Screen End
From Another CLient

5.1 Fitur Wireshark Gambar 5 Client Receive


Wireshark memungkinkan pengguna untuk
menempatkan kontroler interface jaringan yang
mendukung promiscuous mode untuk melihat semua 7. UML DIAGRAM
lalu lintas terlihat pada interface, bukan hanya lalu UML(Unified Modeling Language) adalah sebuah
lintas yang ditujukan kepada salah satu interface bahasa yang telah menjadi standar dalam industry
saja, tapi keseluruhan alamat yang dikonfigurasi dan untuk visualisasi, merancang dan
semua lalu lintas broadcast/multicast. Namun, ketika mendokumentasikan sistem perangkat lunak. Dalam
menangkap dengan analyzer paket dalam UML terdapat beberapa diagram yang berfungsi
promiscuous mode pada port dan pada switch untuk memudahkan memahami aplikasi yang
jaringan, tidak semua lalu lintas perjalanan akan dibagun. Berikut adalah UML diagram yang
dikirim ke port yang sedang menangkap, sehingga dirancang untuk memenuhi kebutuhan system.
menangkap dalam mode promiscuous tidak akan 7.1 Use Case Diagram
cukup untuk melihat semua lalu lintas pada jaringan. Use-case diagram menjelaskan manfaat sistem jika
Port mirroring atau berbagai jaringan dilihat menurut pandangan orang yang berada di luar
memperpanjang capture untuk setiap titik pada sistem (actor). Use-case mendeskripsikan fungsi-
jaringan. [6] fungsi yang disediakan sistem, sedangkan aktor
adalah seseorang atau sesuatu yang berinteraksi
6. RANCANGAN SISTEM dengan sistem. Analisa kebutuhan sistem Instant
Sistem aplikasi dibuat dengan basis client-server dan Messaging ini dalam UML dapat didokumentasikan
mengimplementasikan sebuah mekanisme dengan use case sebagai berikut.
pengamanan pada client. Aplikasi chat ini dirancang
untuk memenuhi kebutuhan sebagai berikut.
1. Sistem terdiri dari 1 program Server dan 1
program Client yang terintegrasi dengan
algoritma kriptografi RSA.
2. Membuat algoritma RSA yang paling efektif
dalam segi kecepatan dan keamanan untuk
sistem.
3. Mengimplementasikan RSA pada Client agar
keamanan pesan dapat dicapai.
4. Melakukan percobaan pada user dan menganalisa
hasil.
Untuk mencapai kebutuhan yang telah
dipaparkan diatas, secara garis besar sistem
digambarkan sebagai berikut.

Start Server with Wait for Client to If Client is


Start
specific port Connect Connect

Send Message to
End Stop Server Listen To Client
Another Client

Gambar 3 Server Listener

3
7.2 Activity Diagram 8. HASIL PERCOBAAN RSA
Activity diagram menggambarkan berbagai alir 8.1 Enkripsi
aktivitas dalam sistem yang sedang dirancang, Pada bagian ini akan dilakukan pengujian terhadap
bagaimana masing-masing alir berawal, decision kecepatan enkripsi dan resource memori yang
yang mungkin terjadi, dan bagaimana mereka terpakai pada saat dilakukan proses pengenkripsian
berakhir. Activity diagram juga dapat menggunakan algortima RSA. Sample yang dipakai
menggambarkan proses paralel yang mungkin terjadi ada 12 file dengan panjang 40 sampai 81920
pada beberapa eksekusi. karakter. Alokasi memori yang dipakai dalam
7.2.1 Activity Server pengujian ini adalah 3 GigaByte.

Tabel 1 Tabel Enkripsi RSA


Jumlah Waktu RAM
(karakter) (milisekon) (MegaByte)
40 10 63
80 16 65
160 16 65
320 15 65
640 31 68
1280 93 72
2560 125 75
5120 204 83
10240 328 88
20480 625 92
40960 1219 95
81920 2516 98

Dari hasil percobaan diatas dapat dilihat kenaikan


yang statis untuk waktu enkripsi, hasil yang didapat
sangat memuaskan karena untuk mengengkripsi data
terpanjang hanya memakan waktu sekitar 2 detik
saja. Hal ini masih sangat dapat ditolerir mengingat
Gambar 6 Activity Diagram Untuk Server
tidak mungkin karakter sepanjang 81920 akan
diketikkan manual oleh tangan manusia.
7.2.2 Activity Client
Untuk hasil pemakaian RAM terlihat lebih statis dari
hasil catatan waktu. Pemakaian RAM masing-
masing percobaan tidak terlalu bertambah banyak,
dikarenakan kestabilan bahasa permrograman
JAVA, tetapi masih sangat disayangkan dikarenakan
memakan memori yang cukup besar yaitu berkisar
antara 63-98 Megabyte.

Dari hasil percobaan enkripsi yang dilakukan pada


sampel data diatas maka disimpulkan algoritma
enkripsi yang dibuat telah memadai untuk
ditanamkan pada sistem.

Gambar 7 Activity Diagram Untuk Client

4
3000
Dari hasil percobaan dekripsi yang dilakukan pada
sampel data diatas didapat hasil kenaikan yang statis.
2500 Tetapi terdapat suatu perbedaan yang sangat besar
Waktu (Milisekon)

antara waktu enkripsi dan dekripsi, dapat dilihat


2000 dekripsi memiliki waktu hamper 10x lipat daripada
1500
enkripsi. Untuk sampel data yang paling panjang
membutuhkan waktu sekitar 300 detik untuk
1000 melakukan dekripsi pada chipper. Tetapi hal tersebut
tidak akan berpengaruh besar terhadap sistem
500 dikarenakan jumlah karakter yang diketik oleh
0
manusia normal pada saat melakukan chatting tidak
akan lebih dari 160 karakter.

20480
40
80
160
320
640
1280
2560
5120
10240

40960
81920
Seperti yang telah dicetuskan oleh Friedhelm
Jumlah (Karakter ) Hillebrand, pakar telekomunikasi asal Jerman yang
pada saat itu mengembangkan teknologi GSM
Gambar 8 Grafik enkripsi terhadap waktu dalam milisekon pertama kalinya. Hillebrand menyuruh rekannya
untuk mengetik apa yang dia ucapkan secara
berturut-turut, dan setelah dihitung beserta tanda
120
92 95 98 baca tidak lebih dari 160 karakter. Sejak itu 160
RAM (MegaByte)

100 83 88
72 75 karakter telah menjadi dasar semua instant
80 63 65 65 65 68
messaging di dunia. Maka dari segi waktu masih
60
dapat dimaklumi dikarenakan 160 karakter hanya
40
memakan waktu 0.5 detik untuk dekripsi.
20
0
Untuk hasil percobaan dekripsi dari segi RAM tidak
1280

20480
40
80
160
320
640

2560
5120
10240

40960
81920

berbeda jauh dari hasil enkripsi, RAM yang dipakai


sangat stabil walaupun cukup besar. Dari hasil yang
Jumlah (Karakter) didapat dari percobaan dekripsi pada data sampel
maka disimpulkan bahwa algoritma dekripsi yang
Gambar 9 Grafik bar enkripsi terhadap memori dalam dibuat sudah memadai untuk ditanamkan pada
satuan megabyte
sistem.
90000
8.2 Dekripsi 80000
Waktu (Milisekon)

Pada bagian ini akan dilakukan pengujian terhadap 70000


kecepatan dekripsi dan resource memori yang 60000
terpakai pada saat dilakukan proses pengenkripsian 50000
menggunakan algortima RSA. Sample yang dipakai 40000
sama seperti yang telah dienkripsi sebelumnya. 30000
Alokasi memori yang dipakai dalam pengujian ini 20000
adalah 3 GigaByte. 10000
0
640
1280
40
80
160
320

2560
5120
10240
20480
40960
81920

Tabel 1 Tabel Dekripsi RSA


Jumlah Waktu RAM
(karakter) (milisekon) (MegaByte) Jumlah (Karakter)
40 172 68
80 265 70 Gambar 10 Grafik dekripsi terhadap waktu dalam satuan
160 579 72 milisekon
320 1079 73
640 2188 73
1280 4344 77
2560 8720 80
5120 17470 88
10240 35065 93
20480 69346 97
40960 139129 101
81920 303346 103

5
120
HEX STRING
103
97 101
100 88 93
RAM (MegaByte)

77 80
80 68 70 72 73 73
60
40
20
0
320
40
80
160

640
1280
2560
5120
10240
20480
40960
81920
Jumlah (Karakter)

Gambar 11 Grafik dekripsi terhadap memori dalam satuan


megabyte Gambar 14 Screenshot packet data yang berhasil disadap
pada percobaan 5

9. SKENARIO PERCOBAAN Pada array socket di server, akan terbaca 2 client


User 1 = Qalbie Tawakal, Mahasiswa 23 Tahun berbeda yang melakukan koneksi baru pada
User 2 = Yaqzhanul Farahie, Pegawai 22 Tahun serversocket, dikarenakan tidak ada tanda pengenal
pada masing-masing client. Pada Wireshark dapat
dilihat pesan yang ditangkap sama persis dengan log
Chatting LOG pada Client 1 yang ada di server, yaitu
“[Ljava.math.BigInteger;eaf5951”. Hasil pesan yang
telah dienkripsi oleh sistem akan berupa sebuah
objek pesan dengan atribut yang telah dienkripsi dan
atribut tersebut bertipe BigInteger. Maka dari
Chipper akan terbaca sebagai sebuah BigInteger.
Sedangkan isi pesan instan tanpa enkripsi akan dapat
ditangkap oleh wireshark dan dapat diketahui isi asli
dari pesan tersebut.

10. KESIMPULAN
Kesimpulan yang dapat diambil dari tugas akhir
yang telah dilakukan adalah sebagai berikut.
- Algoritma asimetris seperti RSA dapat diterapkan
dalam pesan instan tanpa mengurangi kecepatan.
- Wireshark menangkap semua byte yang dikirimkan
Gambar 12 Screenshot Percobaan 5 pada Client 1 pada program, tetapi karena byte yang dikirimkan
telah dienkripsi maka hasil sadapan sulit untuk
LOG yang terlihat pada Server untuk percobaan dibaca.
adalah - Tidak terdapat delay yang berpengaruh dalam
percobaan yang dilakukan pada setiap user.
- Tidak ada pesan yang tidak utuh sampai ke tujuan
pada setiap percobaan.

11. REFERENSI
[1] A. Menezes, P. VanOorchot dan S. Vanstone,
Handbook of Applied Cryptography, CRC
Press, Inc, 1997.
[2] B. Rahardjo, “e-security: Keamanan Teknologi
Informasi,” dalam Cybercrime Bidang
Postel, Jakarta, 2004.
Gambar 13 Screenshot Percobaan 5 pada Client 1
[3] R. Munir, 2006, Bandung: Informatika Bandung,
Kriptografi.
Packet yang berhasil ditangkap dengan Wireshark [4] I. Sofana, CISCO CCNA & Jaringan Komputer,
Bandung: Informatika, 2002.

6
[5] T. V. Vleck, “Electronic Mail & Text Messaging
in CTTS, 1965-1973,” dalam IEEE Annals
of the History of Computing, IEEE
Computer Society, 2012, pp. 4-6.
[6] G. Combs, “About Wireshark,” Wireshark,
[Online]. Available:
http://www.wireshark.org/about.html.
[Diakses 13 Februari 2014].
[7] D. Ariyus, Pengantar Ilmu Kriptografi,
Yogyakarta: Andi Offset, 2008.
[8] “Security and Cryptography Forum,” [Online].
Available:
http://forums.devshed.com/security-and-
cryptography-17/. [Diakses 15 December
2012].