5
BAB II
TINJAUAN PUSTAKA
2.1 SMS (Short Message Service)
Short message service atau yang disebut SMS merupakan suatu teknologi
nirkabel yang memungkinkan seseorang untuk mengirim dan menerima pesan
secara cepat melalui perangkat mobile. Pesan yang dikirim juga terbatas, satu pesan
SMS dapat berisi paling banyak 140 bytes dari data, sehingga satu pesan SMS dapat
berisi 160 karakter. SMS memiliki beberapa keunggulan (Hariyadi dkk, 2012),
yaitu:
1. Mudah dan efisien: SMS mudah untuk digunakan bahkan oleh orang awam
sekalipun serta informasi yang didapat langsung diterima oleh yang
berkepentingan.
2. Jangkauan luas: Informasi melalui media SMS dapat menjangkau seluruh
nusantara hingga kepelosok desa.
3. Relatif lebih murah: Bandingkan dengan media penyampaian informasi
seperti surat pos, telepon, dan fax yang masih membedakan biaya
pengiriman antara dalam kota atau luar kota, lokal dan interlokal. Dengan
penggunaan media SMS akan lebih murah.
4. Informasi realtime: Informasi yang disampaikan dapat langsung diterima
hanya dengan beberapa detik, walaupun mengalami gangguan informasi
tersebut tidak akan hilang dan tetap tersampaikan.
6
Adapun kekurangan dari SMS ialah :
1. Keamanan data yang kurang terjamin, dimana masih banyak terjadi
pencurian data-data SMS penting oleh orang-orang yang tidak bertanggung
jawab.
2. Belum ada sistem yang dapat membantu pengguna agar terhindar dari
ancaman SMS interception dan SMS Snooping.
2.1.1 Cara kerja SMS (Short Message Service)
Dalam sistem SMS, mekanisme utama yang dilakukan dalam suatu sistem
adalah melakukan pengiriman short message dari satu terminal customer ke
terminal yang lain. Hal ini dapat dilakukan berkat adanya sebuah entitas dalam
sistem SMS yang bernama Short Message Service Center (SMSC), disebut juga
Message Center (MC). Pada saat pesan SMS dikirim dari handphone pesan tersebut
tidak langsung dikirim ke handphone tujuan, akan tetapi terlebih dahulu ke SMSC,
baru kemudian pesan tersebut dikirimkan ke handphone tujuan (Wiharto, 2011).
SMSC merupakan sebuah perangkat yang melakukan tugas store and
forward trafik short message. Di dalamnya termasuk penentuan atau pencarian rute
tujuan akhir dari short message. Sebuah SMSC biasanya didesain untuk dapat
menangani short message dari berbagai sumber seperti Voice Mail System (VMS),
Web-based messaging, Email Integration, External Short Message Entities
(ESME), dan lain-lain. Untuk lebih jelasnya dapat dilihat pada gambar 2.1.
7
Gambar 2.1 Cara kerja SMS (Wiharto, 2011)
2.2 Kriptografi
Kriptografi adalah ilmu yang mempelajari tentang cara menjaga keamanan
suatu pesan atau informasi. Pesan atau informasi dapat dikategorikan ke dalam dua
jenis, yaitu pesan yang dapat dibaca dengan mudah (plaintext) dan pesan yang tidak
mudah dibaca (ciphertext).
Untuk melakukan kriptografi digunakan algoritma kriptografi. Algoritma
kriptografi terdiri dari dua bagian, yaitu fungsi enkripsi dan dekripsi. Enkripsi
adalah proses untuk mengubah plaintext menjadi ciphertext, sedangkan dekripsi
adalah kebalikannya yaitu mengubah ciphertext menjadi plaintext. Terdapat dua
jenis algoritma kriptografi berdasar jenis kuncinya (Menezes dkk, 1996) yaitu :
1. Algoritma Simetri, adalah algoritma yang menggunakan kunci enkripsi
yang sama dengan kunci dekripsinya. Algoritma standar yang menggunakan
prinsip kunci simetri antara lain OTP, DES, RC2, RC4, RC5, RC6, IDEA,
Twofish, Blowfish, dan lain lain.
8
2. Algoritma Asimetri, adalah algoritma yang kunci untuk enkripsi dan
dekripsinya jauh berbeda. Algoritma standar yang termasuk algoritma
asimetri adalah ECC, LUC, RSA, EI, Gamal dan DH.
Salah satu teknik enkripsi menggunakan kunci simetri adalah teknik
subtitusi, yaitu mengganti setiap karakter plaintext dengan karakter lain. Terdapat
empat cara dalam menggunakan teknik subtitusi (Menezes dkk, 1996), yaitu :
1. Monoalphabet, dimana setiap karakter ciphertext mengganti satu macam
karakter plaintext tertentu.
2. Polialphabet, dimana setiap karakter ciphertext mengganti lebih dari satu
macam karakter plaintext.
3. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter
plaintext.
4. Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari
satu karakter plaintext.
2.2.1 AES (Advance Encryption Standard)
AES atau Advanced Encryption Standard merupakan standar enkripsi kunci
simetri yang pada awalnya diterbitkan dengan algoritma Rijndael. Algoritma ini
dikembangkan oleh dua kriptografer Belgia, Joan Daemen dan Vincent Rijmen.
AES diumumkan oleh Institut Nasional Standar dan Teknologi (NIST) sebagai
standar pemrosesan informasi federal (FIPS) pada tanggal 26 November 2001.
9
Spesifikasi dari algoritma AES (Massandy, 2011) sebagai berikut:
Mendukung panjang kunci 128 bit sampai 256 bit dengan step 32 bit.
Panjang kunci dan ukuran blok dapat dipilih secara independen.
Setiap blok dienkripsi dalam sejumlah putaran tertentu, sebagaimana halnya
pada DES.
Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka
dikenal AES-128, AES-192, dan AES-256.
Jumlah putaran pada proses enkripsi/dekripsi dapat berubah-ubah sesuai
dengan jumlah kunci dan ukuran blok yang dipilih secara independen. Jenis-jenis
AES ada tiga yaitu :
Tabel 2.1 Jenis-jenis algoritma AES
JENIS AES Panjang Kunci Ukuran Blok Jumlah Putaran
AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14
Panjang kunci, ukuran blok, dan jumlah putaran dalam satuan blok. Satu
blok sama dengan 32 bit.
Secara de-fakto, hanya ada dua varian AES, yaitu AES-128 dan AES-256,
karena akan sangat jarang pengguna menggunakan kunci yang panjangnya 192 bit.
Dengan panjang kunci 128-bit, maka terdapat sebanyak
2128 = 3,4 x 1038 kemungkinan kunci.
Jika komputer tercepat dapat mencoba 1 juta kunci setiap detik, maka akan
dibutuhkan waktu 5,4 x 1024 tahun untuk mencoba seluruh kunci. Jika tercepat yang
10
dapat mencoba 1 juta kunci setiap milidetik, maka dibutuhkan waktu 5,4 x 1018
tahun untuk mencoba seluruh kunci.
2.2.1.1 Cara Kerja AES (Advance Encryption Standard)
Algoritma ini berbeda dengan DES yang berorientasi bit, Rijndael
beroperasi dalam orientasi byte. Pada setiap putarannya digunakan kunci internal
yang berbeda (disebut dengan round key). Enchipering melibatkan operasi subtitusi
dan permutasi. Garis besar algoritma Rijndael yang beroperasi pada blok 128-bit
dengan kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round
key).
1. AddRoundKey : melakukan XOR antara state awal (plainteks) dengan chiper
key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran
adalah :
a. SubBytes
SubBytes merupakan transformasi byte dimana setiap elemen pada state
akan dipetakan dengan menggunakan sebuah tabel substitusi ( S-Box ). Tabel
substitusi S-Box dapat dilihat pada gambar 2.2.
11
Gambar 2.2 Tabel subtitusi (S-Box) (Yuniati dkk, 2009)
b. ShiftRows
Transformasi Shiftrows pada dasarnya adalah proses pergeseran bit dimana
bit paling kiri akan dipindahkan menjadi bit paling kanan ( rotasi bit ) (Yuniati
dkk, 2009). Proses pergeseran Shiftrow ditunjukkan dalam Gambar 2.3.
Gambar 2.3 Transformasi ShiftRows (Yuniati dkk, 2009)
12
c. MixColumns
MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom
pada state. Secara lebih jelas, transformasi mixcolumns dapat dilihat pada
perkalian matriks berikut ini:
Gambar 2.4 Perkalian matriks (Yuniati dkk, 2009)
Hasil dari perkalian matriks diatas dapat dianggap seperti perkalian yang ada di
bawah ini :
Gambar 2.5 Hasil perkalian matriks (Yuniati dkk, 2009)
13
d. AddRoundKey
AddRoundKey melakukan XOR antara state sekarang dengan round key.
Gambar 2.6 Proses AddRoundKey (Yuniati dkk, 2009)
3. Final round : proses untuk putaran terakhir.
a. SubBytes
b. ShiftRows
c. AddRoundKey
Untuk lebih jelas, cara kerja AES (Advance Encryption Standard) dapat
dilihat pada gambar 2.7.
14
Gambar 2.7 Skema kerja AES (Advance Encryption Standard) (Yuniati dkk,
2009)
2.2.2 Vigenere Cipher
Vigenere cipher merupakan salah satu algoritma klasik yang termasuk
dalam cipher abjad-majemuk (polyalpabetic substitution cipher), nama vigenere
diambil dari seorang yang bernama Blaise de Vigenere pada abad 16 (1586), tetapi
sebenarnya Giovan Batista Belaso telah menggambarkannya pertama kali pada
tahun 1553 seperti ditulis di dalam bukunya La Cifra del Sig.
Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu.
Panjang kunci tersebut bisa lebih pendek ataupun sama dengan panjang plaintext.
Jika panjang kunci kurang dari panjang plaintext, maka kunci yang tersebut akan
15
diulang secara periodik hingga panjang kunci tersebut sama dengan panjang
plainteksnya.
Algoritma enkripsi vigenere cipher :
Ci = ( Pi + Ki ) mod 26
Algoritma dekripsi vigenere cipher :
Pi = ( Ci – Ki ) mod 26
Dimana :
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
Vigenere Cipher menggunakan Bujursangkar Vigenere untuk melakukan
enkripsi, dimana setiap baris di dalam bujursangkar menyatakan huruf-huruf
cipherteks yang diperoleh dengan Caesar Cipher, yang dapat dilihat pada gambar
2.8.
16
Gambar 2.8 Bujursangkar Vigenere (Dwi, 2012)
Sebagai contoh, jika plaintext adalah THEBEAUTYANDTHEBEAST dan
kunci adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut :
Plaintext : THEBEAUTYANDTHEBEAST
Kunci : ABCABCABCABCABCABCAB
Chipertext : TIGBFCUUAAOFTIGBFCSU
Pada contoh di atas kata kunci ABC diulang sedemikian rupa hingga
panjang kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci
sama dengan panjang plainteks, proses enkripsi dilakukan dengan menggeser setiap
huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf
17
plainteks tersebut. Pada contoh di atas plainteks huruf pertama adalah T akan
dilakukan pergeseran huruf dengan kunci Ki=0 (kunci huruf pertama adalah A yang
memiliki Ki=0) menjadi T. Huruf kedua pada plainteks adalah H akan dilakukan
pergeseran huruf dengan kunci Ki=1 (kunci huruf kedua adalah B yang memiliki
Ki=1) menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada
tiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext.
Vigenere Cipher yang akan dipakai pada aplikasi ini adalah Vigenere
Cipher extended di mana enkripsi tidak hanya untuk huruf alphabet saja, tetapi
termasuk juga karakter-karakter ASCII. Jadi batas pengekripsian tidak terbatas
untuk 26 karakter tetapi mencapai 128 karakter.
Algoritma Extended Vigenere Chiper merupakan pengembangan dari
algoritma Vigenere. Jika pada Algoritma Vigenere menggunakan bujursangkar
Vigenere yang berisi 26 alphabet, maka pada algoritma Extended Vigenere
digunakan table ASCII, ditunjukkan pada Gambar. 2.9, untuk melakukan proses
enkripsi dan dekripsi (Satryo dkk, 2012). Dengan penggunaan ASCII, karakter yang
digunakan dapat lebih komplek dibandingkan dengan penggunaan Vigenere.
18
Gambar 2.9 Tabel ASCII (Satryo dkk, 2012)
Rumus Vigenere Cipher Extended :
Ci = ( Pi + Ki ) mod 128
Pi = ( Ci – Ki ) mod 128
Contoh penyelesaian Vigenere chiper extended sederhana:
Plainteks : gorontalo
Key : arif
Maka, akan di dapat kan cipherteks : Ha[UOfJRP
19
2.3 Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis
linux yang mencakup sistem operasi, middleware dan aplikasi. Android
menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi
mereka. Awalnya, Google Inc. yang merupakan pendatang baru yang membuat
peranti lunak untuk ponsel/smartphone. Kemudian untuk mengembangkan
Android, dibutuhkan Open Handset Alliance, konsorsium dari 34 perusahaan
peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel,
Motorola, Qualcomm, T-Mobile, dan Nvidia (Safaat, 2012). Adapun arsitektur
Android dapat dilihat pada gambar 2.10 dibawah ini.
Gambar 2.10 Arsitektur Android (Safaat, 2012)
20
Penjelasan masing-masing lapisan:
1. Linux Kernel
Linux Kernel adalah layer di mana inti dari operating sistem dari Android
itu berada. Berisi file-file sistem yang mengatur processing, memory, resource,
drivers, dan sistem-sistem Android lainnya.
2. Libraries
Libraries ini adalah layar di mana fitur-fitur Android berada, biasanya para
pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan
diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL
(Secure Sockets Layer), serta:
Libraries media untuk pemutaran media audio dan video.
Libraries untuk manajemen tampilan
Libraries Graphic mencakup SGL (Scene Graph Library) dan OpenGL (Open
Graphics Library) untuk grafis 2D dan 3D
Libraries SQLite untuk dukungan database.
Libraries LiveWebcore mencakup modern web browser dengan engine
embedded web view.
Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s (Application
programming interface).
3. Android Runtime
Layer yang membuat aplikasi Android dapat dijalankan di mana dalam
prosesnya menggunakan implementasi Linux, Dalvik Virtual Machine (DVM)
21
merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam
Android Runtime dibagi menjadi dua bagian yaitu:
Core Libraries: Aplikasi Android dibangun dalam bahasa java, sementara
Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga
diperlukan sebuah libraries yang berfungsi untuk menterjemahkan bahasa
Java/C yang ditangani oleh Core Libraries.
Dalvik Virtual Machine: Virtual mesin berbasis register yang dioptimalkan
untuk menjalankan fungsi-fungsi secara efisien, di mana merupakan
pengembangan yang mampu membuat Linux kernel untuk melakukan threading
dan manajemen tingkat rendah.
4. Application Framework
Application Framework adalah semacam kumpulan class built-in yang
tertanam dalam sistem operasi Android sehingga pengembang dapat
memanfaatkannya untuk aplikasi yang sedang di bangun.
5. Application
Application adalah layer di mana kita berhubungan dengan aplikasi saja, di
mana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan
aplikasi tersebut. Di layer terdapat aplikasi inti termasuk klien email, program
SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis
menggunakan bahasa pemrograman Java.
22
2.3.1 Android SDK (Software Development Kit)
Android SDK adalah tools API (Application Programming Interface) yang
diperlukan untuk memulai menembangkan aplikasi pada platform Android
menggunakan bahasa pemrograman Java (Safaat, 2012). Saat ini Android sudah
mendukung arsitektur x86 pada Linux (distribusi Linux apapun untuk desktop
modern), Mac OS X 10.4.8 atau lebih, Windows XP atau Vista. Sebagai platform
aplikasi-netral, Android memberika kesempatan untuk membuat aplikasi yang kita
butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone.
2.3.2 ADT (Android Development Tools)
Menurut Safaat (2012), Android Development Tools (ADT) adalah plugin
yang didesain untuk IDE Eclipse yang memberikan kita kemudahan dalam
mengembangkan aplikasi android dengan menggunakan IDE Eclipse. Dengan
menggunakan ADT untuk Eclipse akan memudahkan kita dalam membuat aplikasi
project android, membuat GUI (Graphical user interface) aplikasi, dan
menambahkan komponen-komponen yang lainnya, begitu juga kita dapat
melakukan running aplikasi menggunakan Android SDK melalui eclipse.
Mengembangkan aplikasi di Eclipse dengan ADT sangat dianjurkan dan
merupakan cara tercepat untuk memulai membuat aplikasi android, karena banyak
kemudahan-kemudahan sebagai tools yang terintegrasi seperti, custom XML editor,
dan debug panel ouput. Selain itu ADT memberikan dorongan luar biasa dalam
mengembangkan aplikasi Android.
23
2.5 Penelitian Terkait
Pujastuti (2012) dalam penelitiannya “Enkripsi SMS Menggunakan
Advance Encryption Standard pada J2ME dengan Bantuan Bouncy Castle
Cryptography API” yang bertujuan untuk mengamankan isi SMS menggunakan
algoritma AES dengan bantuan Bouncy Castle Cryptography APIs. Dari penelitian
ini disimpulkan bahwa pengujian untuk melakukan enkripsi isi SMS dikatakan
berhasil, namun hanya bisa berjalan pada platform berbasis J2ME dan belum bisa
di implementasikan pada platform berbasis Android.
Dalam penelitan Dwi (2012), “Penerapan Algoritma Vigenere Cipher pada
Aplikasi SMS Android”. Dapat disimpulkan bahwa penggunaan algoritma vigenere
cukup sulit untuk dipecahkan. Meskipun begitu, Vigenere Cipher tetap memiliki
kelemahan yaitu dapat diketahui panjang kuncinya dengan menggunakan metode
kasiski. Dari metode tersebut terlihat bahwa kelemahan sandi Vigenere terjadi
ketika kata kunci lebih pendek dari plaintextnya sehingga menimbulkan celah besar
bagi cryptanalys untuk membongkar sandi tersebut.
Penelitian ini merupakan pengembangan dari penelitian yang dilakukan
Pujastuti (2012) yang menggunakan algoritma AES sebagai algoritma enkripsi, dan
Dwi (2012) yang menerapkan algoritma Vigenere Cipher sebagai algoritma
enkripsi pesan singkat. Sedangkan dalam penelitian ini penulis menggunakan kedua
algoritma tersebut dalam proses enkripsi maupun dekripsi pesan singkat.
Keunggulan penelitian ini dibanding penelitian-penelitian sebelumnya yaitu
penulis menggabungkan kedua algoritma tersebut dengan terlebih dahulu
melakukan enkripsi isi pesan menggunakan algoritma Vigenere, hasil dari proses