Pendahuluan
1.1. Latar Belakang
Keamanan dalam kehidpuan saat ini adalah hal yang sangat
penting. Arti dari keamanan itu sendiri adalah menjaga suatu unsur yang sangat
penting dari tindakan yang tidak diinginkan, beberapa contohnya adalah
informasi dan pesan. Jika kita bertukar pesan (misal surat), maka kita tentu
ingin pesan yang kita kirim sampai ke pihak yang dituju dengan aman. Maksud
aman itu sendiri berarti bahwa selama pengiriman tentu kita tidak ingin isi pesan
dibaca oleh orang yang tidak berhak karena mungkin pesan yang kita kirim adalah
pesan rahasia.
Contoh lain dalam dunia teknologi saat ini cara
pengiriman pesan mungkin tidak harus lagi memakai secarik kertas sebagai media
pesan, sekarang kita bisa menggunakan banyak aplikasi untuk bertukar pesan seperti
email,chating, dan lain sebagainya.
Maka secara riil hubungannya jika pesan pada email atau
chat itu sangat penting dan harus dijaga kerahasiaannya maka pencegahaannya
adalah menerapkan sistem keamanan pada chat tersebut untuk mencegah dari orang
yang tidak berhak misalnya sniffing.
Dalam masalah keamanan yang disebutkan tersebut bisa
diselesaikan dengan menggunakan kriptografi. Kriptografi tidak hanya
menyediakan alat untuk keamanan pesan, tetapi juga merupakan suatu kumpulan
teknik dalam menyembunyikan kerhasiaan pesan.
Oleh karena itu pada pembahasan ini dibuat suatu aplikasi
sistem “Implementasi Algoritma Kripografi Klasik Pada Aplikasi Chat”
1.2. Pengertian Kriptografi
Kriptografi (Cryptography)
berasal dari bahasa yunani yaitu “cryptos”
artinya rahasia, sedangkan “graphien”
artinya tulisan, jadi kriptografi itu adalah tulisan rahasia. Dengan kata lain
kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara
menyandikannya ke dalam bentuk yang tidak dapat dimengerti maknanya.
Dalam kriptografi ada beberapa istilah yang sering
ditemukan yaitu “Plainteks, dan Cipherteks”. Plainteks ada pesan atau teks
jelas. Pesan bisa berisi data atau informasi yang dikirim oleh kurir, saluran
telekomunikasi dan lain sebagainya. Cipherteks adalah pesan yang tersandi.
Proses merubah plainteks menjadi cipherteks disebut
enkripsi. Sedangkan proses kebalikannya disebut dekripsi.
Kriptografi dibuat adalah untuk menghindari dari
penyadap. Penyadap adalah orang yang mencoba melihat pesan saat dikirim.
1.3.
Tujuan Kriptografi
Beberapa tujuan kriptografi adalah :
a.
Menjaga kerahasiaan
informasi.
b.
Untuk menjamin
bahwa informasi masih utuh dan belum pernah dimanipulasi.
c.
Untuk mencegah
bahwa pihak yang berkomunikasi tidak melakukan penyangkalan.
1.4.
Jenis – jenis
Kriptografi
Berdasarkan sejarah ada dua jenis kriptografi :
a.
Kriptografi Klasik
b.
Kriptografi Modern
Pembahasan
2.1. Algoritma Kriptografi Klasik
Beberapa contoh algoritma kriptografi klasik yang dibahas
adalah Caesar Cipher dan Vigenère Cipher.
a.
Caesar Cipher
Pada pengujian
kriptografi Caesar Cipher, tiap huruf ditukar atau disubstitusikan dengan huruf
ketiga berikutnya dari susunan alfabet yang sama, atau dengan kata lain
pergeseran 3 huruf selanjutnya.
Tabel
substitusi :
Plainteks
|
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
Cipherteks
|
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
|
b.
Vigenère Cipher
Vigenère Cipher
sangat dikenal karena mudah dipahami dan mudah juga untuk diimplementasikan.
Pada proses enkripsi Vigenère Cipher menggunakan bujursangkar Vigenère. Setiap
baris dalam bujur sangkar menyatakan huruf – huruf Cipherteks yang diperoleh
dengan Caesar Cipher.
Bujursangkar
Vigenère digunakan untuk memperoleh Cipherteks dengan menggunakan kucni yang
sudah ditentukan. Jika panjang kunci lebih pendek daripada panjang plainteks,
maka kunci diulang penggunaannya.
Tabel Vigenère
Contoh :
Plainteks :
SEKURITAS KOMPUTER
Kunci :
UKM
Plainteks
|
S
|
E
|
K
|
U
|
R
|
I
|
T
|
A
|
S
|
Kunci
|
U
|
K
|
M
|
U
|
K
|
M
|
U
|
K
|
M
|
Cipherteks
| M | O | W | O | B | I | N | K | E |
2.2. Implementasi Kriptografi Klasik Pada Aplikasi Chat
a.
Pengertian Chat
Chat bisa diartikan adalah komunikasi melalui jalur internet
yang transmisinya realtime atau langsung dari pesan berbasis teks. Chat dapat
berkomunikasi multicast atau dari satu pengirim ke banyak penerima.
b.
Tujuan
Tujuan penerapan kriptografi pada chat yaitu untuk
pencegahan dari penyadap atau sniffing karena transmisi yang dikeluarkan chat
berupa teks langsung dan komunikasinya bisa multicast, artinya kemungkinan
pihak ke tiga untuk menyadap sangat mudah.
c.
Implementasi
Pada pembuatan aplikasi chatnya menggunakan java sebagai
bahasa pemrogramannya dan wireshark sebagai uji hasil sebagai sniffing.
Berikut output dari Chat yang menggunakan Algoritma
Caesar Cipher :
Berikut adalah
potongan program dari Caesar Cipher.
..........
abjadY = new char[teks[1].length()];
de = new int[teks[1].length()];
dekripsi = new char[teks[1].length()];
for(int i=0;i<teks[1].length();i++){
abjadY=teks[1].toCharArray();
}
for(int i=0;i<teks[1].length();i++){
de[i]=(int)abjadY[i];
de[i]=(de[i]-3)%127;
dekripsi[i]=(char)de[i];
}
.......................
//////////// Enkripsi ////////////
str = chatc.length();
abjadX = new char[str];
en = new int[str];
enkripsi = new char[str];
for(int i=0;i<str;i++){
abjadX=chatc.toCharArray();
}
for(int i=0;i<str;i++){
en[i]=(int)abjadX[i];
en[i]=(en[i]+3)%127;
enkripsi[i]=(char)en[i];
}
chatc="";
for(int i=0;i<str;i++){
chatc+=Character.toString(enkripsi[i]);
}
//////////////////////////////////
Berikut output dari Chat yang menggunakan Algoritma Vigenère
Cipher:
Berikut adalah potongan program pada aplikasinya :
private
String enkripsi(String plain, String key){
if(plain.length()==0 ||
key.length()==0) return null;
else{
for(int i=0;i<key.length();i++)
if(key.charAt(i)==' ')
return null;
char[] temp = new
char[plain.length()];
int arr=0;
for(int
i=0;i<plain.length();i++){
if(plain.charAt(i)==' ')
temp[i] = ' ';
else{
temp[i] = key.charAt(arr);
if(arr+1==key.length())
arr = 0;
else
arr++;
}
}
key = new String(temp);
char[] Cipher = new
char[plain.length()];
for(int i=0;i<Cipher.length;i++){
int r =
vAlfa.indexOf(key.charAt(i));
int c =
vAlfa.indexOf(plain.charAt(i));
if(plain.charAt(i)==' ') Cipher[i]
= ' ';
else Cipher[i] = matriks[r][c];
}
System.out.println("Enkripsi");
System.out.println("Plain
Text : "+plain);
System.out.println("Key : "+key);
System.out.println("Cipher
Text : "+new String(Cipher)+"\n");
return (new String(Cipher));
}
}
private String dekripsi(String
plain, String key){
if(plain.length()==0 ||
key.length()==0) return null;
else{
for(int i=0;i<key.length();i++)
if(key.charAt(i)==' ')
return null;
char[] temp = new
char[plain.length()];
int arr=0;
for(int
i=0;i<plain.length();i++){
if(plain.charAt(i)==' ')
temp[i] = ' ';
else{
temp[i] = key.charAt(arr);
if(arr+1==key.length())
arr = 0;
else
arr++;
}
}
key = new String(temp);
char[] Cipher = new
char[plain.length()];
for(int i=0;i<Cipher.length;i++){
int r =
vAlfa.indexOf(key.charAt(i));
int c =
vAlfa.indexOf(plain.charAt(i));
if(plain.charAt(i)==' ')
Cipher[i] = ' ';
else{
int x = (c-r) % 128;
if(x>=0)
Cipher[i]=vAlfa.charAt(x);
else
Cipher[i]=vAlfa.charAt(x+128);
}
}
System.out.println("Dekripsi");
System.out.println("Plain
Text : "+plain);
System.out.println("Key : "+key);
System.out.println("Cipher
Text : "+new String(Cipher)+"\n");
return (new String(Cipher));
}
}
Berikut adalah pengujian menggunakan wireshak :
1.
Jalankan Program
Wrieshark
2. Klik Interface List
3. Pilih interface yang berjalan pada aplikasi chat ini, klik start
4. Setelah itu akan muncul tampilan seperti ini
5. Kemudian untuk melihat perbedaan antara aplikasi
yang menggunakan kriptografi dan yang memakai kriptografi adalah pertama – tama
jalankan aplikasi chat yang tanpa menggunakan kriptografi.
6. Setelah itu lihat apakah isi pesan terlihat pada
wireshark
7. Kemudian jalankan aplikasi chat yang menggunakan
kriptografi
Gambar Aplikasi Chat Caesar Cipher
Gambar Aplikasi Chat Vigenere Cipher
8. Lihat apakah isi pesan terlihat pada wireshark
Maka
terlihatlah perbedaan antara chat yang menggunakan kriptografi dan yang tidak
menggunakan kriptografi, bahwa isi pesan sulit dibaca karena sudah dienkripsi.
Kesimpulan
Dari seluruh
pembahasan ditarik beberapa kesimpulan, bahwa :
1.
Kriptografi sangat
diperlukan dalam teknologi saat terutama pada jalur komunikasi internet untuk
mencegah dari bahaya sniffing atau penyadapan.
2.
Setiap sistem
keamanan hanya dapat meminimalisir pencegahan dari yang tidak diinginkan dalam
artian bahwa suatu sistem keamanan apapun tidak seluruhnya aman pasti ada titik
lemahnya. Dalam bahasan ini karena yang dipakai adalah metode kriptografi
klasik, jadi kekuranganya adalah :
a. Kriptanalis dapat
dengan mudah untuk mendekripsi dari Cipherteks tanpa harus mengetahui kuncinya.
b. Tidak dapat menghindari
dari serangan Fabrication, Modification dan penyangkalan oleh pihak kedua bahwa pesan yang dikirim bukan
berasal dari pihak kedua, kecuali jika diterapkan metode Sign Digital atau
Tanda Tangan Digital pada enkripsinya.
Daftar
Referensi
Rinaldi Munir.
“Kriptografi". Informatika, Bandung, Oktober 2006.
http://en.wikipedia.org/wiki/Caesar_cipher
http://en.wikipedia.org/wiki/Vigenère_cipher
http://en.wikipedia.org/wiki/Online_chat
mas bro ini tulisan sangat bagus...apa bisa minta source codeNya....???
ReplyDeletekalau boleh tahu mas bro...kamu pake java apa???
Deleteatau netbeans ??
g source code nya y mas??/?
ReplyDeletekalau d bagi dong mas,,,
mas, saya boleh minta source code nya? Saya pake Netbenas 8.1
ReplyDeletekak boleh minta source code nya ke ratihgustifa@gmail.com ?
ReplyDelete