Implementasi Algoritma Kriptografi Klasik Pada Aplikasi Chat
Tugas Sekuritas Komputer
Disusun Oleh:
Ridla Fadilah 1277017
UNIVERSITAS KRISTEN MARANATHA
FAKULTAS TEKNOLOGI INFORMASI
JURUSAN TEKNIK INFORMATIKA
BANDUNG
2012
Pendahuluan
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”
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.
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.
4. Jenis – jenis Kriptografi
Berdasarkan sejarah ada dua jenis kriptografi :
a. Kriptografi Klasik
b. Kriptografi Modern
Pembahasan
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. 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
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.
7. Kemudian jalankan aplikasi chat yang menggunakan kriptografi
Gambar Aplikasi Chat Caesar Cipher
Gambar Aplikasi Chat Vigenere Cipher
Gambar tampilan enkripsi pada aplikasi console
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