SMS Kriptografi dengan Algoritma Blowfish pada Android
Materi ini disampaikan sebagai tugas UAS pada perkuliahan di Jurusan Manajemen Informatika – Universitas Pendidikan Ganesha.
Secara
default, SMS dikirim dalam bentuk plain text (meskipun di
encoding/decoding dengan PDU) tanpa terenkripsi dari pengirim ke
penerima SMS. Jika ada sniffing/penyadapan di jalur komunikasi, maka
teks SMS akan sangat mudah dibaca oleh penyadap.
Tantangan
anda adalah membuat aplikasi yang bisa mengenkripsi SMS yang akan
dikirim, menjadi chipertext dengan algoritma kriptografi yang anda pilih
sendiri. Sehingga Teks SMS yang lewat pada jalur komunikasi dan masuk
ke operator seluler adalah dlm bentuk chipertext(susah ditebak isi
SMSnya). Pada penerima SMS, dilakukan Deskripsi teks SMS yang berupa
chipertext sehingga bisa dibaca secara normal oleh penerima SMS.
—
Berikut adalah contoh aplikasi SMS kriptografi dengan Algoritma Blowfish pada Android.
Apa itu algoritma Blowfish
[wikipedia]
Blowfish merupakan algoritma kunci simetrik cipher blok yang dirancang
pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Pada saat
itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir
semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier
menyatakan bahwa blowfish bebas paten dan akan berada pada domain
publik. Dengan pernyataan Schneier tersebut blowfish telah mendapatkan
tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan
algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh
lisensi.
Keberhasilan blowfish dalam menembus pasar telah terbukti
dengan diadopsinya blowfish sebagai Open Cryptography Interface (OCI)
pada kernel linux versi 2.5 keatas. Dengan diadopsinya blowfish, maka
telah menyatakan bahwa dunia open source menganggap blowfish adalah
salah satu algoritma yang terbaik. Kesuksesan blowfish mulai memudar
setelah kehadiran algoritma-algoritma dengan ukuran blok yang lebih
besar, seperti AES. AES sendiri memang dirancang untuk menggantikan DES.
Sehingga secara keseluruhan AES lebih unggul dari DES dan juga
blowfish.
selengkapnya tentang blowfish[official] : http://www.schneier.com/blowfish.html
Tampilan Menu Aplikasi SMS Kriptografi(Enkripsi dan Deskripsi) dengan algoritma Blowfish pada Android
Menu Kirim SMS. SMS yang dikirim akan di enkripsi dengan algoritma Blowfish dengan key yang sudah ditentukan
SMS diterima oleh handphone biasa tanpa aplikasi Deskriptor Algoritma Blowfish dalam bentuk chipertext (non human readable)
Teks SMS biasa bisa dibaca dengan aplikasi Android yang mendecrypt chiperttext menjadi plaintext
Source Code Algoritma Blowfish
Tertarik? Silakan download dibawah ini. Aplikasi ini jauh dari sempurna, karena tidak ada yang sempurna di dunia ini, mari sempurnakan yang ada
Source Code Blowfish
package com.rey1024.smskripto;
import android.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class Kripto {
public static String enkripsi(String pesan, String key){
try {
SecretKeySpec KS = new SecretKeySpec(key.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, KS);
byte[] encrypted = cipher.doFinal(pesan.getBytes());
return Base64.encodeToString(encrypted, Base64.NO_PADDING);
} catch (Exception e) {
return "ERROR:"+e.getMessage();
}
} public static String deskripsi(String chiperText, String key){
try {
SecretKeySpec KS = new SecretKeySpec(key.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, KS);
byte[] decrypted = cipher.doFinal(Base64.decode(chiperText, Base64.NO_PADDING));
return new String(decrypted);
} catch (Exception e) {
return "ERROR";
}
}
}
import android.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class Kripto {
public static String enkripsi(String pesan, String key){
try {
SecretKeySpec KS = new SecretKeySpec(key.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, KS);
byte[] encrypted = cipher.doFinal(pesan.getBytes());
return Base64.encodeToString(encrypted, Base64.NO_PADDING);
} catch (Exception e) {
return "ERROR:"+e.getMessage();
}
} public static String deskripsi(String chiperText, String key){
try {
SecretKeySpec KS = new SecretKeySpec(key.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, KS);
byte[] decrypted = cipher.doFinal(Base64.decode(chiperText, Base64.NO_PADDING));
return new String(decrypted);
} catch (Exception e) {
return "ERROR";
}
}
}
Download Source Code Lengkap : SMS Kriptografi(Enkripsi dan Deskripsi) dengan Blowfish Algorithm (3198)
0 comments: