BAB 1
PENDAHULUAN
1.1
Latar
Belakang
Keamanan
suatu informasi pada era globalisasi serta kemajuan teknologi dewasa ini
sangatlah penting, di era yang menuntut keterbukaan informasi serta kemudahan
dalam mendapatkan suatu informasi berdampak pada keamanan suatu informasi
tersebut. Dengan bantuan teknologi, segala informasi dapat dengan mudah kita
dapatkan, baik itu bersifat rahasia ataupun bersifat umum.
Keadaan
ini di perparah dengan adanya penyadapan serta pencurian informasi yang di
lakukan oleh pihak ketiga untuk tujuan tertentu. Keadaan seperti ini menuntut
untuk di tingkatkannya keamanan data serta informasi agar tidak jatuh ke tangan
yang tidak bertanggung jawab, sehingga informasi yang kita sampaikan tidak
mudah untuk di sadap atau di curi oleh pihak ketiga.
Mengingat
pentingnya menjaga kerahasian suatu data dan informasi yang bersifat penting
dan rahasia mendorong penulis untuk membuat penelitian ilmiah yang berjudul “Aplikasi Secure Message Menggunakan Algoritma Rivest Code 6 Berbasis
Android”.
1.2
Rumusan
Masalah
Dalam Penelitian ini penulis mencoba
merumuskan persoalan dalam bentuk pertanyaan:
1. Bagaimanakah
pengaruh aplikasi-aplikasi Android dalam kehidupan sehari-hari?
2. Bagaimanakah
pengaruh aplikasi keamanan informasi terhadap informasi yang kita berikan ?
1.3
Batasan
Masalah
Mengingat
begitu luasnya ruang lingkup pada penelitian ini, maka penulis membatasi
permasalahan tersebut pada:
1. Mengingat
banyaknya sistem operasi pada telepon selular, maka penulis dalam penelitian
ini hanya akan menggunakan system operasi Android pada telepon selular.
2. Algoritma
enkripsi serta dekripsi yang digunakan pada Penelitian ini hanya Algoritma Rivest
Code 6.
1.4
Tujuan
Penelitian
ini bertujuan untuk :
1. Mencegah
kebocoran informasi kepada pihak ketiga.
2. Memudahkan
user atau pengguna untuk mengamankan informasi yang di perolehnya.
3. Mencegah
penyadapan yang di lakukan oleh pihak ketiga, sehingga kerahasiaan suatu
informasi dapat tetap terjaga.
1.5
Manfaat
Penelitian
Penelitian
yang penulis lakukan ini mudah-mudahan dapat bermanfaat bagi penulis sendiri,
maupun bagi para pembaca atau pihak-pihak lain yang berkepentingan.
1. Manfaat akademis
Penelitian
ini berguna untuk menambah pengetahuan serta memberikan pembelajaran tentang
keamanan suatu data atau informasi, sehingga dengan melakukan penelitian ini
diharapkan penulis dan semua pihak yang berkepentingan dapat lebih memahaminya.
2. Manfaat dalam
implementasi atau praktik
Penelitian
ini berfokus kepada keamanan suatu informasi yang melalui jalur pesan singkat
pada telepon selular berbasis Android. Sehingga diharapkan para pengguna dapat
menggunakan hasil penelitian ini sebagai sarana untuk memberi keamanan terhadap
informasi yang kita berikan.
1.6
Metode
Penelitian
1.6.1
Perangkat lunak yang digunakan
Pada penelitian ini perangkat lunak yang di gunakan adalah:
1.
Android Developing Tool
Sofware yang di gunakan untuk membuat
aplikasi enkripsi serta dekripsi sms
2.
Emulator Android
Software yang di gunakan untuk mensimulasi
program agar dapat di jalankan di komputer, sehingga program dapat di uji coba
di perangkat komputer sebelum di gunakan di telepon selular.
1.6.2 Algoritma
yang digunakan
Pada penelitian ini algoritma yang
digunakan adalah algoritma enkripsi Rivest Code 6. Dimana pada algoritma ini
dikelompokan ke beberapa bagian-bagian, yaitu:
1. Membuat Subkunci
Pengguna membuat kunci atau password
yang akan di masukan ke dalam proses enkripsi serta dekripsi.
2. Membaca Kata Kunci yang digunakan
dalam proses enkripsi
Pada tahap ini kata kunci yang sudah di
buat oleh pengguna akan di masukan kedalam proses enkripsi.
3. Enkripsi Data
Membuat proses enkripsi data dengan
memasukan kata kunci pengguna.
4. Membaca Kata Kunci Untuk
Melakukan Proses Dekripsi
Program akan membaca kata kunci pengguna
yang selanjutnya di masukan kedalam proses dekripsi.
5. Dekripsi Data
Membuat proses dekripsi data dengan
memasukkan kata kunci yang di buat oleh pengguna.
1.7
Sistematika
Tulisan Ilmiah
Sistematika
penelisan ilmiah ini terdiri dari 4 bab yaitu:
1. Bab
1. Pendahuluan.
Pada bab ini menguraikan tentang
latar belakang masalah, rumusan masalah, batasan mmasalah, tujuan penulisan,
manfaat penulisan, metode penulisan dan sistematika penulisan.
2. Bab
2. Tinjauan Pustaka.
Pada bab ini menjelaskan tentang
pengertian kriptografi, android, java , dan algoritma Rivest Code 6.
3. Bab
3. Perancangan serta Implementasi.
Bab
ini menjelaskan tentang tahap-tahap pembuatan aplikasi beserta tampilan
aplikasinya, serta spesifikasi hardware dan software yang digunakan.
4. Bab
4. Kesimpulan.
Bab
ini menjelaskan tentang jawaban dari tujuan penulisan ilmiah ini.
BAB II
LANDASAN TEORI
2.1
Kriptografi
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga
kerahasiaan berita
[bruce Schneier - Applied Cryptography]. Dalam kriptografi
mempunyai 4 tujuan dasar dalam menjaga kerahasiaan, yaitu :
·
Kerahasiaan, adalah
layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali
yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi
yang telah disandi.
·
Integritas data, adalah
berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk
menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi
manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan,
penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
·
Autentikasi, adalah
berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun
informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling
memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus
diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
·
Non-repudiasi. atau
nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap
pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
2.2
Java
Java adalah bahasa pemrograman tingkat tinggi yang
berorientasi objek dan program java tersusun dari bagian yang disebut kelas.
Kelas terdiri atas metode-metode yang melakukan pekerjaan dan mengembalikan
informasi setelah melakukan tugasnya. Para pemrogram Java banyak
mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut
dengan Java Application Programming Interface (API). Kelas-kelas ini
diorganisasikan menjadi sekelompok yang disebut paket (package). Java
API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet
dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu
mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas
merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara
lain.
Pada Java program javac untuk mengkompilasi file
kode sumber Java menjadi kelas-kelas bytecode. File kode sumber
mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode
kelas dengan ekstensi *.class. Interpreter merupakan modul utama sistem Java
yang digunakan aplikasi Java dan menjalankan program bytecode Java.
Java merupakan bahasa berorientasi objek (OOP)
yaitu cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada
OOP, program komputer sebagai kelompok objek yang saling berinteraksi.
Deskripsi ringkas OOP adalah mengorganisasikan program sebagai kumpulan
komponen, disebut objek. Objek-objek ini ada secara independen, mempunyai
aturan-aturan berkomunikasi dengan objek lain dan untuk memerintahkan objek
lain guna meminta informasi tertentu atau meminta objek lain mengerjakan
sesuatu. Kelas bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada
saat jalan, program menciptakan objek-objek yang merupakan instan-instan kelas.
Kelas dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun
menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih
elegan.
Seluruh objek diprogram harus dideklarasikan lebih
dulu sebelum digunakan. Ini merupakan keunggulan Java yaitu Statically Typed.
Pemaksaan ini memungkinkan kompilator Java menentukan dan melaporkan terjadinya
pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk
mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe
integer dengan variabel bertipe string). Pencegahan sedini mungkin diharapkan
menghasilkan program yang bersih. Kebaikan lain fitur ini adalah kode program
lebih dapat dioptimasi untuk menghasilkan program berkinerja tinggi.
Java menggunakan model pengamanan tiga lapis (three-layer
security model) untuk melindungi sistem dari untrusted Java code.
Pertama, bytecode verifier membaca bytecode sebelum dijalankan
dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class
loader menangani pemuatan kelas Java ke runtime interpreter. Ketiga,
manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan
apakah program berhak mengakses sumber daya seperti sistem file, port jaringan,
proses eksternal dan sistem window.
Platform independence adalah kemampuan program bekerja di sistem operasi
yang berbeda. Bahasa Java merupakan bahasa yang secara sempurna tidak
bergantung platform. Tipe variabel Java mempunyai ukuran sama di semua platform
sehingga variabel bertipe integer berukuran sama tidak peduli dimana program
java dikompilasi. Begitu telah tercipta file .class dengan menggunakan
kompilator Java di platform manapun, maka file .class tersebut dapat dijalankan
di platform manapun. Jadi “dimanapun dibuat, dimanapun dapat dijalankan”.
Slogan ini biasa diringkas sebagai Write Once, Run Anywhere (WORA).
Java termasuk bahasa Multithreading. Thread
adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di
satu waktu yang sama. Java menyediakan kelas untuk menulis program multithreaded,
program mempunyai lebih dari satu thread eksekusi pada saat yang sama
sehingga memungkinkan program menangani beberapa tugas secara konkuren.
Program Java melakukan garbage collection
yang berarti program tidak perlu menghapus sendiri objek-objek yang tidak
digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh
pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang
terdapat di bahasa yang memungkinkan alokasi dinamis.
Java mempunyai mekanisme exception-handling
yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara
bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke
struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar.
Ketika kesalahan yang serius ditemukan, program Java menciptakan exception.
Exception dapat ditangkap dan dikelola program tanpa resiko membuat
sistem menjadi turun.
Program Java mendukung native method yaitu
fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method
memungkinkan pemrogram menulis fungsi yang dapat dieksekusi lebih cepat
dibanding fungsi ekivalen di java. Native method secara dinamis akan di-link
ke program java, yaitu diasosiasikan dengan program saat berjalan.
2.3
Android
Android adalah sistem operasi berbasis Linux yang
dipergunakan sebagai pengelola sumber daya perangkat keras, baik untuk ponsel,
smartphone dan juga PC tablet.
Secara umum Android adalah platform yang terbuka
(Open Source) bagi para pengembang untuk menciptakan aplikasi mereka
sendiri untuk digunakan oleh berbagai piranti bergerak.
2.4
Algoritma
Rivest Code 6
Algoritma
yang mulai diperkenalkan sekitar tahun 1998 ini adalah hasil pengembangan dari
algoritma RC5. Algoritma ini, sama seperti RC1 sampai RC5, dikembangkan oleh
Laboratorium RSA di San Mateo, USA. Algoritma ini lebih dispesifikasikan dengan
sebutan RC6-w/r/b dengan w adalah panjang ukuran kata dalam bit, r
adalah jumlah putaran (rounds) dari proses enkripsi dengan r tidak
negatif, dan b adalah panjang kunci enkripsi dalam bytes. Putaran
yang dimaksudkan disini adalah sama dengan pada DES. Satu kali putaran sama
dengan satu kali jaringan Feistel. Agar sesuai dengan persyaratan dari
AES, maka RC6 menggunakan ukuran w = 32 dan r = 20 dengan panjang
kunci mulai dari 16, 24, sampai 32 byte.
RC6
beroperasi pada empat unit kata dengan masingmasing sepanjang w bit.
Operasi yang dilakukanantara lain sebagai berikut:
·
a + b Penambahan
modulo 2w
·
a – b Pengurangan
modulo 2w
·
a �� b
Exclusive-or untuk w bit kata
·
a × b Multiplikasi
modulo 2w
·
a ‹« b Rotasi
untuk kata a ke kiri sebanyak jumlah yang diberikan least significant
log w bits dari b
·
a ›» b Rotasi
untuk kata a ke kanan sebanyak jumlah yang diberikan least
significant log w bits dari b
·
Dengan operasi logaritma berbasis
dua.