BAB II TINJAUAN PUSTAKA 2.1 SMS (Short Message...

20
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.

Transcript of BAB II TINJAUAN PUSTAKA 2.1 SMS (Short Message...

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

24

enkripsi tersebut kemudian di enkripsi lagi menggunakan algoritma AES, sehingga

akan terjadi proses enkripsi 2 (dua) kali pada isi pesan singkat yang akan

diamankan.