Minggu, 27 April 2014

Peneitian Ilmiah Tentang “Aplikasi Secure Message Menggunakan Algoritma Rivest Code 6 Berbasis Android”



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.