TUGAS AKHIR. Oleh : Muammar Renaldy PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR

dokumen-dokumen yang mirip
Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

TINJAUAN PUSTAKA. Kriptografi

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

BAB III ANALISIS DAN PERANCANGAN

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

BAB III ANALISIS DAN PERANCANGAN

Kriptografi Modern Part -1

BAB 2 LANDASAN TEORI

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Digital Signature Standard (DSS)

Kriptografi Modern Part -1

IMPLEMENTASI ENKRIPSI DATA BERBASIS ALGORITMA DES

SKRIPSI ENKRIPSI TEKS MENGGUNAKAN ALGORITMA TWOFISH

BAB III ANALISA MASALAH DAN PERANCANGAN

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL

PERANCANGAN APLIKASI KRIPTOGRAPHY ADVANCED ENCRYPTION STANDARD TUGAS AKHIR. Disusun Oleh : DEDY BUDIAWAN NPM

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

Tanda Tangan Digital (Digital Signature)

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

Perancangan Aplikasi Kriptografi File Dengan Metode Algoritma Advanced Encryption Standard (AES)

BAB I PENDAHULUAN. Universitas Sumatera Utara

Algoritma Enkripsi Baku Tingkat Lanjut

DESAIN DAN IMPLEMENTASI PROTOKOL KRIPTOGRAFI UNTUK APLIKASI SECURE CHAT PADA MULTIPLATFORM SISTEM OPERASI

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

APLIKASI PENGAMANAN FILE DENGAN ALGORITMA AES256 DAN SHA1

BAB I PENDAHULUAN. 1.1 Latar Belakang

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi

Keamanan Sistem Komputer DES, AES, RSA

BAB III ANALISIS DAN DESAIN SISTEM

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Algoritma Spiral shifting

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI METODE KRIPTOGRAFI IDEA DENGAN FUNGSI HASH DALAM PENGAMANAN INFORMASI

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES UNTUK ENKRIPSI DAN DEKRIPSI

BAB III ANALISIS DAN DESAIN SISTEM

Pengkajian Metode dan Implementasi AES

BAB IV HASIL DAN PEMBAHASAN

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

Advanced Encryption Standard (AES)

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Kriptografi. A. Kriptografi. B. Enkripsi

PERANCANGAN APLIKASI KEAMANAN DATA MENGGUNAKAN ALGORITMA ENKRIPSI RC6 BERBASIS ANDROID

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

Bab 1 PENDAHULUAN Latar Belakang

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Algoritma Kriptografi Modern (Bagian 2)

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone


IMPLEMENTASI KRIPTOGRAFI MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDAR (AES) UNTUK PENGAMANAN DATA TEKS

BAB I PENDAHULUAN. mengamankan informasi pada masalah ini dapat memanfaatkan kriptografi.

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

Algoritma Kriptografi Modern (AES, RSA, MD5)

Modul Praktikum Keamanan Sistem

PERBANDINGAN ALGORITMA KRIPTOGRAFI DES DENGAN ICE

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

PERBANDINGAN ALGORITMA CAESAR CIPHER TERHADAP BLOWFISH 128 BIT UNTUK ENKRIPSI SMS BERBASIS JAVA

BAB 2 LANDASAN TEORI

BAB Kriptografi

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Bab 2 Tinjauan Pustaka

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

Aplikasi Laporan Keuangan Akuntansi Bulog-Jakarta Menggunakan Algoritma MD5 dan RSA

IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI DAN DEKRIPSI PADA CITRA DIGITAL

Transkripsi:

IMPLEMENTASI KRIPTOGRAFI PADA DIARY BERBASIS MOBILE ANDROID DENGAN MENGGUNAKAN METODE AES-128 (Advanced Encryption Standard-128) DAN SHA-1 (Secure Hash Algorithm-1) TUGAS AKHIR Oleh : Muammar Renaldy 1111501779 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR JAKARTA 2015

IMPLEMENTASI KRIPTOGRAFI PADA DIARY BERBASIS MOBILE ANDROID DENGAN MENGGUNAKAN METODE AES-128 (Advanced Encryption Standard-128) DAN SHA-1 (Secure Hash Algorithm-1) Diajukan untuk memenuhi salah satu persyaratan memperoleh gelar Sarjana Komputer (S.Kom) TUGAS AKHIR Oleh : Muammar Renaldy 1111501779 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR JAKARTA 2015 i

ii

ABSTRAKSI Nim : 1111501779 Nama : Muammar Renaldy Judul : Implementasi Kriptografi Pada Diary Berbasis Mobile Android Dengan Menggunakan Metode AES-128 (Advanced Encryption Standard-128) dan SHA-1(Secure Hash Algorithm 1) Perkembangan komputer dan perangkat pendukung lainnya yang serba digital telah membuat data digital semakin banyak digunakan. Di zaman yang hampir semua masyarakat sudah menggunakan handphone atau smartphone untuk keperluan sehari-hari, ternyata tidak sedikit juga masyarakat yang masih menggunakan buku sebagai tempat mereka menceritakan kejadian atau pengalaman yang bersifat pribadi atau privasi. Salah satu kekurangan dari masih menggunakan buku sebagai tempat menulis sesuatu yang bersifat privasi adalah kurangnya keamanan privasi kita yang masih bisa dibaca atau dicuri oleh orang lain. Oleh karena itu untuk menjaga keamanan privasi yang ditulis pada diary, penulis mencoba membuat aplikasi untuk menulis diary yang keamanannya dapat dijaga dengan cukup baik dan dapat digunakan dimana saja karena aplikasi ini menggunakan metode AES- 128 dan SHA-1 serta dapat dijalankan pada handphone atau smartphone yang sudah sangat banyak digunakan masyarakat secara umum. Kesimpulannya adalah dengan cara mengaplikasikan sistem enkripsi dengan metode AES-128 pada file diary yang akan dibuat dan SHA-1 dalam melindungi password, maka diharapkan file diary kita cukup aman dari terbaca oleh orang lain. Karena untuk membaca informasi pada file diary kita, harus menginput password atau key yang sudah diatur saat menyimpan file diary kita. Jika key yang dimasukkan tidak sesuai dengan key yang ditentukan maka isi dari file tidak dapat dibaca karena karakter yang muncul sudah diubah menjadi pecahan string. Atau dengan kata lain tidak dapat dibaca secara normal. Kata Kunci : Kriptografi, Android, AES-128, SHA-1, diary xv+47 halaman; 50 gambar; 6 tabel; 1 lampiran iii

iv

KATA PENGANTAR Alhamdulillah, Segala Puji syukur penulis panjatkan kehadirat Allah SWT, atas segala limpahan rahmat dan kasih sayang Nya yang telah memberikan kekuatan kepada penulis sehingga dapat menyelesaikan penulisan tugas akhir atau skripsi ini dengan baik. Penulisan tugas akhir atau skripsi ini diajukan untuk memenuhi salah satu syarat akademik untuk meyelesaikan program studi Teknik Informatika pada jenjang Strata Satu (1) pada Fakultas Teknologi Informasi, Universitas Budi Luhur. Adapun judul yang diajukan penulis pada kesempatan ini yaitu Implementasi Kriptografi Pada Diary Berbasis Mobile Android Dengan Menggunakan Metode AES-128 (Advanced Encryption Standard-128) dan SHA-1(Secure Hash Algorithm 1). Penulis menyadari bahwa dalam penulisan tugas akhir atau skripsi ini masih jauh dari sempurna. Hal ini dikarenakan terbatasnya pengetahuan dan kemampuan penulis dalam penulisan dan penyusunan tugas akhir ini. Akan tetapi penulis telah berusaha semaksimal mungkin untuk dapat menyelesaikan tugas akhir atau skripsi ini dengan baik dan benar, dengan cara mengikuti semua prosedur yang telah ditentukan. Oleh sebab itu penulis akan menerima semua kemungkinan adanya kritik dan saran yang tujuannya membangun agar penulis dapat berusaha menyempurnakan penulisan tugas akhir atau skripsi ini. Sebagai ucapan rasa syukur, atas segala bantuan, petunjuk dan bimbingan yang telah diberikan, maka penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada pihak-pihak yang telah membantu penulis dalam penyusunan tugas akhir atau skripsi ini, yang antara lain : 1. Allah SWT atas segala kemudahan dan petunjuk-nya sehingga pada akhirnya penulis dapat menyelesaikan tugas akhir ini. 2. Kedua orang tua yang selalu memberi semangat dan do a yang tidak pernah berhenti sehingga penulis berhasil menyelesaikan tugas akhir ini. 3. Bapak Prof. Ir. Suryo Hapsoro Tri Utomo, Ph.D selaku Rektor Universitas Budi Luhur. 4. Bapak Goenawan Brotosaputro, S.Kom, M.Sc selaku Dekan Fakultas Teknologi Informasi Universitas Budi Luhur. 5. Bapak Muhammad Ainur Rony, S.Kom, M.T.I selaku Ketua Program Studi Teknik Informatika Universitas Budi Luhur. 6. Bapak Utomo Budiyanto, M.Kom, M.Sc selaku dosen pembimbing, penulis mengucapakan terima kasih banyak atas bimbingan, nasihat, motivasi dan ilmu yang diberikan kepada penulis. 7. Bapak M.Anif, M.Kom karena telah membantu memberikan arahan kepada penulis dalam menyelesaikan tugas akhir ini. 8. Ayu Sri Utami, S.E dan Bang Khairul Imam, S.Kom, yang tidak pernah berhenti memberikan waktu, support, dan nasihat kepada penulis. 9. Teman-teman, abang, mba, dan adik-adik LABKOM UBL khususnya Asisten LABKOM UBL angkatan 2011 (Zulfikar, Rahmat, Ridwan, Fariz, Naeli, Endah, Dewi, dan Elisa) syukron jazakillah atas kekeluargaannya selama ini, kalian keluarga keduaku. 10. Teman-teman K 11 (Ravy, Hendro, Ambon, Rizal, Yudhis, Husein, Febrian, Daru, Samsul, Viyo) terima kasih atas saran dan dukungan serta kekeluargaannya selama ini, semoga kita sukses selalu. Aamiin. 11. Dhimas Galih Gesit, Satrio Wicaksono, Nurul Ikhsan, Irwan Rosyadi, Ade Priyanto dan yang lainnya yang tidak dapat disebutkan satu persatu yang sama-sama berjuang selama menyelesaikan tugas akhir ini. Terima kasih atas saran dari kalian, semoga kita sukses selalu. Aamiin. v

Akhir kata penulis mohon maaf apabila dalam penulisan dan penyusunan tugas akhir ini atau skripsi ini masih terdapat kekurangan dan masih jauh dari kesempurnaan. Semoga tugas akhir atau skripsi ini dapat bermanfaat bagi pembaca sekalian. Jakarta, 20 Januari 2015 Penulis vi

DAFTAR GAMBAR Halaman Gambar 2.1 : Skema Kerja AES-128 (Yuniati dkk, 2009)... 7 Gambar 2.2 : Proses Add Round Key... 8 Gambar 2.3 : Tabel S-Box... 9 Gambar 2.4 : Proses Sub Bytes... 9 Gambar 2.5 : Proses Shift Rows... 10 Gambar 2.6 : Proses Mix Columns... 11 Gambar 2.7 : Alur Program Pembuatan Message Digest SHA-1... 13 Gambar 2.8 : Proses Hashing... 14 Gambar 3.1 : Alur Program Enkripsi dan Dekripsi... 18 Gambar 3.2 : State Diagram Aplikasi Diary... 19 Gambar 3.3 : Rancangan Layar Menu Utama... 20 Gambar 3.4 : Rancangan Layar Form List Diary... 21 Gambar 3.5 : Rancangan Layar Form Edit Diary... 21 Gambar 3.6 : Rancangan Layar Dialog Input Key... 22 Gambar 3.7 : Rancangan Layar Dialog Key Invalid... 22 Gambar 3.8 : Rancangan Layar Dialog Konfirmasi Hapus... 22 Gambar 3.9 : Flowchart Klik List pada Form List Diary... 23 Gambar 3.10 : Flowchart Klik Button New pada Form List Diary... 23 Gambar 3.11 : Flowchart Klik Button Save pada Form Edit Diary... 24 Gambar 3.12 : Flowchart Klik Button Delete pada Form Edit Diary... 24 Gambar 3.13 : Flowchart Enkripsi... 25 Gambar 3.14 : Flowchart Dekripsi... 25 Gambar 3.15 : Flowchart Enkripsi AES-128... 26 Gambar 3.16 : Flowchart Dekripsi AES-128... 26 Gambar 3.17 : Flowchart Enkripsi SHA-1... 27 Gambar 4.1 : Tampilan Awal Instalasi Aplikasi Kriptografi... 30 Gambar 4.2 : Tampilan Proses Instalasi Aplikasi Kriptografi... 31 Gambar 4.3 : Tampilan Selesai Proses Instalasi... 31 Gambar 4.4 : Tampilan Lokasi Aplikasi Kriptografi... 32 Gambar 4.5 : Tampilan Layar Menu Utama... 32 Gambar 4.6 : Tampilan Layar Form List Diary... 33 Gambar 4.7 : Tampilan Layar Dialog About... 33 Gambar 4.8 : Tampilan Layar Form Edit Diary Sebelum Input... 34 Gambar 4.9 : Tampilan Layar Form Edit Diary Setelah Input... 34 Gambar 4.10 : Tampilan Layar Dialog Input Key Untuk Enkripsi... 35 Gambar 4.11 : Tampilan Layar Success to Create... 35 Gambar 4.12 : Tampilan Layar Dialog Input Key Untuk Dekripsi... 36 Gambar 4.13 : Tampilan Layar Isi Diary Setelah Terdekripsi... 36 Gambar 4.14 : Tampilan Layar Ubah isi Diary... 37 Gambar 4.15 : Tampilan Layar Success to Update... 37 Gambar 4.16 : Tampilan Layar Key Tidak valid... 38 Gambar 4.17 : Tampilan Layar Dialog Konfirmasi Delete Diary... 38 Gambar 4.18 : Tampilan Layar Diary Success to Delete... 39 Gambar 4.19 : Form Menu Utama... 39 Gambar 4.20 : Form List Diary... 40 Gambar 4.21 : Form Edit Diary... 40 Gambar 4.22 : Dialog Input Key Untuk Enkripsi Diary... 41 vii

Halaman Gambar 4.23 : Tampilan Diary Berhasil Disimpan... 41 Gambar 4.24 : Dialog Input Key Untuk Dekripsi... 42 Gambar 4.25 : Tampilan Diary Berhasil Didekripsi... 42 viii

DAFTAR LAMPIRAN Halaman Lampiran Surat Riset... 47 ix

DAFTAR TABEL Halaman Tabel 2.1 : Ukuran-ukuran pada Algoritma SHA... 12 Tabel 3.1 : Tabel Diarys... 18 Tabel 3.2 : Struktur Tabel Diarys... 19 Tabel 4.1 : Tabel Isi Diary dan Key Sebelum Dienkripsi... 43 Tabel 4.2 : Tabel Isi Diary dan Key Setelah Dienkripsi... 43 Tabel 4.3 : Tabel Hasil Pengujian Decrypt Diary... 44 x

DAFTAR SIMBOL 1. Flowchart Terminator Digunakan untuk menggambarkan kegiatan awal atau akhir suatu proses Input/Output Digunakan untuk menggambarkan suatu kegiatan masukkan ataupun keluaran Decision Digunakan untuk mengambil suatu keputusan atau tindakan yang harus diambil pada kondisi tertentu Process Digunakan untuk menggambarkan suatu kegiatan proses penghubung On-Page Connector (Penghubung) Digunakan sebagai penghubung bila diagram alur terputus, misalnya disebabkan oleh pergantian halaman. Off-Page Connector Digunakan sebagai penghubung antara suatu proses dengan proses lainnya dalam halaman yang berbeda. Line Connector Digunakan untuk menghubungkan satu simbol dengan simbol lainnya yang menyatakan alur proses xi

2. State Diagram Start State Merupakan permulaan dari sebuah state End State Menggambarkan akhir dari sebuah state State Nilai atribut dan nilai link pada suatu waktu tertentu, yang memiliki suatu objek Transisi Menggambarkan tujuan dari suatu state lainnya Loop (Perulangan) Menggambarkan adanya perulangan pada suatu state xii

DAFTAR ISI Halaman LEMBAR PENGESAHAN... ii ABSTRAKSI... iii SURAT PERNYATAAN TIDAK PLAGIAT DAN PERSETUJUAN PUBLIKASI... iv KATA PENGANTAR... v DAFTAR GAMBAR... vii DAFTAR LAMPIRAN... ix DAFTAR TABEL... x DAFTAR SIMBOL... xi DAFTAR ISI... xiii BAB I PENDAHULUAN... 1 1. Latar Belakang... 1 2. Rumusan Masalah... 1 3. Tujuan Penulisan... 1 4. Batasan Masalah... 1 5. Metode Perancangan... 2 6. Sistematika Penulisan... 2 BAB II LANDASAN TEORI... 3 1. Kriptografi... 3 a. Definisi... 3 b. Terminologi... 3 c. Pembabakan Kriptografi... 4 2. Kriptografi Sistem Simetris... 4 a. Stream Cipher... 5 b. Block Cipher... 5 3. Algoritma AES 128 bit... 6 a. Key Schedule... 8 b. Add Round Key... 8 c. Sub Bytes... 8 d. Shift Rows... 9 e. Mix Columns... 10 4. Algoritma SHA-1... 11 a. Kelebihan Algoritma SHA-1... 11 b. Kekurangan Algoritma SHA-1... 12 5. Android... 15 6. Studi Literatur... 15 BAB III ANALISA DAN PERANCANGAN PROGRAM... 17 1. Analisa Masalah... 17 2. Strategi Pemecahan Masalah... 17 3. Perancangan Aplikasi... 17 4. Rancangan Basis Data... 18 a. Model Data Relational... 18 b. Spesifikasi Basis Data... 18 5. Perilaku... 19 6. Rancangan Layar... 20 a. Rancangan Layar Menu Utama... 20 b. Rancangan Layar Form List Diary... 21 c. Rancangan Layar Form Edit Diary... 21 xiii

d. Rancangan Layar Dialog Input Key... 22 e. Rancangan Layar Dialog Key Invalid... 22 f. Rancangan Layar Dialog Konfirmasi Hapus... 22 7. Flowchart... 23 a. Flowchart Klik List pada Form List Diary... 23 b. Flowchart Klik Button New pada Form List Diary... 23 c. Flowchart Klik Button Save pada Form Edit Diary... 24 d. Flowchart Klik Button Delete pada Form Edit Diary... 24 e. Flowchart Enkripsi... 25 f. Flowchart Dekripsi... 25 g. Flowchart Enkripsi AES-128... 26 h. Flowchart Dekripsi AES-128... 26 i. Flowchart Enkripsi SHA-1... 27 8. Algoritma Program... 27 a. Algoritma Klik List Pada Form List Diary... 27 b. Algoritma Klik Button New Pada Form List Diary... 27 c. Algoritma Klik Button Save Pada Form Edit Diary... 27 d. Algoritma Klik Button Delete Pada Form Edit Diary... 28 e. Fungsi Enkripsi... 28 f. Fungsi Dekripsi... 28 g. Algoritma Enkripsi AES-128... 28 h. Algoritma Dekripsi AES-128... 28 i. Algoritma Enkripsi SHA-1... 29 BAB IV IMPLEMENTASI DAN ANALISIS HASIL UJI COBA PROGRAM... 30 1. Implementasi Program... 30 a. Perangkat Keras (Hardware)... 30 b. Perangkat Lunak (Software)... 30 2. Instalasi Aplikasi Kriptografi... 30 3. Tampilan Layar... 32 a. Tampilan Layar Menu Utama... 32 b. Tampilan Layar Form List Diary... 33 c. Tampilan Layar Dialog About... 33 d. Tampilan Layar Form Edit Diary Sebelum Input... 34 e. Tampilan Layar Form Edit Diary Setelah Input... 34 f. Tampilan Layar Dialog Input Key Untuk Enkripsi... 35 g. Tampilan Layar Success to Create... 35 h. Tampilan Layar Dialog Input Key Untuk Dekripsi... 36 i. Tampilan Layar isi Diary Setelah Terdekripsi... 36 j. Tampilan Layar Ubah isi Diary... 37 k. Tampilan Layar Success to Update... 37 l. Tampilan Layar Key Tidak valid... 38 m. Tampilan Layar Dialog Konfirmasi Delete Diary... 38 n. Tampilan Layar Diary Success to Delete... 39 4. Pengujian Aplikasi... 39 a. Proses Encrypt... 39 b. Proses Decrypt... 42 5. Pengujian... 43 a. Pengujian Encrypt Diary... 43 b. Pengujian Decrypt Diary... 44 xiv

6. Evaluasi Program... 44 a. Kelebihan Program... 44 b. Kekurangan Program... 44 BAB V PENUTUP... 45 1. Kesimpulan... 45 2. Saran... 45 DAFTAR PUSTAKA... 46 LAMPIRAN... 47 xv

BAB I PENDAHULUAN 1. Latar Belakang Kemajuan ilmu pengetahuan dan teknologi pada era globalisasi saat ini mulai sangat memasyarakat, gaya hidup masyarakat sangat mempengaruhi perkembangan teknologi. Kebutuhan terhadap teknologi menjadi sangat penting, hal ini dapat kita rasakan disegala bidang kehidupan baik di bidang politik, pendidikan, ekonomi, transportasi, perdagangan bahkan kehidupan rumah tangga. Salah satu contoh perkembangan teknologi informasi di masyarakat yang nyata adalah hampir semua masyarakat mempunyai handphone atau smartphone dan bahkan hampir semua kegiatan sehari-hari bergantung dengan smartphone yang dimiliki. Tetapi ada beberapa kegiatan yang masih menggunakan sesuatu yang manual, dan kegiatan ini yang menjadi alasan penulis dalam penulisan kali ini. Yaitu diary, ya aktivitas yang satu ini mungkin sudah tidak asing bagi semua kalangan masyarakat. Biasanya kita menuliskan atau bercerita sesuatu di suatu buku yang menjadi rahasia kita dari orang lain karena bersifat privasi atau pribadi. Tetapi ada beberapa kekurangan yang penulis lihat dari kegiatan yang sudah umum ini, yaitu keamanan dari isi cerita kita yang masih bisa dilihat atau dicuri oleh orang lain jika masih menggunakan buku sebagai medianya. Alasan perkembangan teknologi saat inilah yang mendasari penulis untuk membuat suatu aplikasi diary yang menggunakan metode enkripsi dan dapat dijalankan di handphone atau smartphone kita, sehingga bisa digunakan dimana saja karena dijalankan di handphone kita serta cukup aman karena menggunakan enkripsi 2 (dua) metode yaitu AES-128 untuk isi diary dan SHA-1 untuk key nya. 2. Rumusan Masalah Rumusan masalah pada penulisan tugas akhir ini adalah sebagai berikut : a. Bagaimana mengimplementasikan Algoritma Kriptografi AES-128 untuk enkripsi dan dekripsi isi diary yang berbasis mobile Android. b. Bagaimana merancang penggunaan Fungsi SHA-1 untuk pengamanan password atau key yang berbasis mobile Android. 3. Tujuan Penulisan Dari permasalahan yang ada pada rumusan masalah maka penulisan ini bertujuan : a. Mengimplementasikan Algoritma Kriptografi AES-128 untuk enkripsi dan dekripsi isi diary yang berbasis mobile Android. b. Merancang penggunaan Fungsi SHA-1 untuk pengamanan password atau key yang berbasis mobile Android. 4. Batasan Masalah Batasan-batasan masalah dalam penulisan tugas akhir ini adalah sebagai berikut : a. Proses otentikasi password atau key menggunakan fungsi Hash SHA-1. b. Data yang dienkripsi merupakan file berbasis text menggunakan AES-128. c. Jika password atau key untuk mendekripsi lupa, maka password atau key tidak bisa diubah. d. Program dibuat dengan menggunakan Android programming. 1

2 5. Metode Perancangan Metode perancangan (pendekatan umum Waterfall) yang digunakan dalam penulisan tugas akhir dengan urutan sebagai berikut: a. Analisis Tahapan analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum pembuatan sistem). b. Desain Tahapan desain bertujuan untuk menentukan spesifikasi detil dari komponenkomponen program (manusia, perangkat keras, perangkat lunak, jaringan dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis. c. Implementasi Rancangan aplikasi yang sudah dibuat kemudian diimplementasikan berdasarkan analisa masalah. d. Perawatan Tahapan ini dilakukan ketika sistem sudah dioperasikan. Pada tahapan perawatan ini dilakukan proses monitoring, evaluasi dan perubahan bila diperlukan. 6. Sistematika Penulisan BAB I : PENDAHULUAN Pada bab ini menjelaskan latar belakang permasalahan, pokok permasalahan, tujuan penulisan, batasan masalah, metode perancangan dan sistematika penulisan BAB II BAB III BAB IV BAB V : LANDASAN TEORI Pada bab ini membahas mengenai teori-teori pendukung yang berkaitan dengan penulisan dan yang digunakan dalam penulisan tugas akhir ini. : ANALISA MASALAH DAN RANCANGAN PROGRAM Bab ini menjelaskan tentang analisa masalah, metode pemecahan masalah, dan rancangan program dengan menggunakan Algoritma AES- 128 dan Fungsi Hash SHA-1. : IMPLEMENTASI DAN ANALISIS HASIL UJI COBA PROGRAM Pada bab ini menjelaskan tentang implementasi program berdasarkan rancangan yang telah dibuat dan memaparkan hasil uji coba program. : PENUTUP Bab ini menjelaskan beberapa kesimpulan dari bab-bab sebelumnya dan saran untuk pengembangan aplikasi dan program berikutnya.

BAB II LANDASAN TEORI 1. Kriptografi a. Definisi Kriptografi (Cryptography) berasal dari bahasa Yunani, cryptos artinya secret atau rahasia sedangkan graphein berarti writing atau tulisan. Sehingga kriptografi berarti secret writing atau tulisan rahasia. Menurut Bruce Scheiner (1996) : Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan sedangkan menurut Menezes (1996) : kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek-aspek keamanan informasi seperti kerahasiaan, integritas data, otentikasi dan anti penyangkalan. Kriptografi dapat diartikan sebagai ilmu untuk menjaga kerahasiaan informasi dengan metode dan teknik matematika yang mencakup confidentiality, integrity, authentication, dan non-repudiation. Aplikasi kriptografi diimplementasikan untuk menjamin aspek-aspek dalam pengamanan informasi yang meliputi : 1) Privacy/confidentiality yaitu menjaga kerahasiaan terhadap akses pihak-pihak yang tidak memiliki kewenangan terhadap informasi tersebut. 2) Integrity yakni menjaga keutuhan informasi sehingga informasi yang ditransmisikan tidak mengalami perubahan baik oleh pihak yang tidak berhak ataupun sesuatu hal lain (misalnya transmisi yang buruk). 3) Authentication berarti memastikan identitas baik orang, mesin, program ataupun kartu bahwa memang pihak yang benar-benar berhak/asli/yang dimaksud. Otentikasi juga digunakan untuk menyamarkan identitas (anomity) terhadap yang tidak berhak. 4) Non-repudiation berarti mencegah penyangkalan bahwa data tersebut memang benar adalah data yang dikirimkan oleh pihak pengirim. b. Terminologi Dalam kriptografi akan sering dijumpai beberapa istilah atau terminologi sebagai berikut : 1) Pesan, Plaintext, Ciphertext Pesan (Message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plaintext atau teks jelas (cleartext). Agar pesan tidak dimengerti oleh pihak lain yang tidak berkepentingan, maka pesan perlu disandikan menjadi bentuk lain yang tidak dapat dipahami. Bentuk pesan tersandi disebut ciphertext atau cryptogram. Dalam perkembangan pesan ini tidak hanya berupa teks, tetapi juga termasuk gambar, file, data multimedia dan lain sebagainya. 2) Pengirim dan penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. 3) Enkripsi dan dekripsi Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption). Sedangkan proses mengembalikan ciphertext menjadi plaintext disebut dekripsi (decryption). 3

4 4) Algoritma kriptografi dan Kunci Algoritma kriptografi disebut juga cipher, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk encryption dan decryption. Kunci (key) adalah parameter yang digunakan untuk transformasi encryption dan decryption. Kunci biasanya string atau deretan bilangan. 5) Sistem Kriptografi Kriptografi membentuk sistem yang dinamakan sistem kriptografi. Sistem kriptografi atau cryptosystem adalah kumpulan yang terdiri dari algoritma kriptografi, semua plaintext, ciphertext, dan kunci. c. Pembabakan Kriptografi Dipandang dari segi era perkembangannya kriptografi dibagi menjadi dua, yaitu kriptografi klasik dan kriptografi modern. 1) Kriptografi Klasik Kriptografi klasik merupakan cara menyamarkan berita yang dilakukan dengan cara manual yakni paper dan pencil. Kekuatan kriptografi ini terletak pada kerahasiaan algoritmanya. Algoritma semacam ini memiliki beberapa kelemahan yaitu : a) Bersifat rahasia, sehingga kemampuan algoritma tidak pernah diuji oleh pakar kriptografi dan berimbas pada ketidakpercayaan pengguna akan ketangguhannya. b) Jika terjadi kebocoran rahasia algoritma, maka harus dibuat atau dikembangkan algoritma baru. Akibatnya adalah pemborosan biaya karena biaya pembuatan algoritma kriptografi baru sangat mahal. 2) Kriptografi Modern Kriptografi Modern adalah suatu metode kriptografi yang menggunakan algoritma matematika dan suatu kunci. Algoritma yang digunakan dibuka atau diketahui oleh umum, sehingga tidak berstatus rahasia. Kekuatan kriptografi terletak pada kerahasiaan kunci penyandian. Secara garis besar Kriptografi Modern menurut kunci penyandiannya terdiri dari dua bagian yaitu sistem simetris atau kriptografi kunci simetris dan sistem asimetris atau kriptografi kunci asimetris. Sistem simetris merupakan algoritma penyandian yang menggunakan kunci yang sama untuk proses enkripsi dan dekripsi sedangkan Sistem Asimetris menggunakan kunci yang berbeda untuk proses menyandi (enkripsi) dan membuka teks sandi (dekripsi). 2. Kriptografi Sistem Simetris Sistem simetris adalah sistem kriptografi yang menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Sistem ini sering juga disebut dengan algoritma kunci tunggal atau algoritma satu kunci. Bila E adalah fungsi enkripsi (encryption), D adalah fungsi dekripsi (decryption), K adalah kunci rahasia (key), sedangkan M adalah pesan orisinil yang akan dikirimkan (message) dan C adalah pesan sandinya (cipher), maka sistem simetris dapat diformulasikan sebagai berikut : E k (M)=C dan D k (C)=M

Dalam aplikasinya antara pengirim dan penerima harus ada persetujuan atau sinkronisasi kunci agar saling komunikasi. Jadi, keamanan algoritma sistem simetris terletak pada kunci. Siapapun yang memperoleh kunci, akan dapat membuka pesan yang dikomunikasikan. Karena itu selama proses komunikasi bersifat rahasia, maka kunci harus tetap dirahasiakan. Sistem Kripto Simetris yang menyediakan keamanan secara praktis terbagi dua kategori yaitu Stream Cipher dan Block Cipher. a. Stream Cipher Bruce Schneier mendefinisikan stream cipher sebagai sistem kriptografi yang mengganti teks terang menjadi teks sandi satu bit per satuan waktu, keamanan sistem ini tergantung pada kondisi internal dari pembangkit kuncinya. Beberapa contoh algoritma penyandian yang menggunakan sistem Stream Cipher antara lain RC4, SEAL, A5, PIKE, Camellia dan lain-lain. Dari definisi diatas, maka struktur dari stream cipher meliputi tiga komponen utama, yaitu : 1) Kunci Input (Seed) Kunci Input (Seed) dapat dibangkitkan secara otomatis atau manual. Seed biasanya merupakan rangkaian bilangan acak dan dibangkitkan oleh suatu Random Number Generator (RNG). 2) SKG (Stream Key Generator) SKG merupakan algoritma tertentu yang harus dapat menjamin rangkaian kunci stream yang dibangkitkan merupakan barisan yang pseudorandom. SKG biasanya disebut juga Pseudo Random Number Generator. 3) Teks Terang Teks terang akan dienkripsikan menjadi teks sandi. Umumnya output rangkaian kunci dari generator dikombinasikan dengan rangkaian teks terang per-byte per satuan waktu dengan menggunakan operasi bitwise exclusive- OR (XOR). b. Block Cipher 1) Definisi dan Gambaran Umum Block Cipher merupakan salah satu model penyandian dimana teks terang yang akan disandi dibagi kedalam blok-blok dengan jumlah bit tertentu kemudian disandi dengan blok kunci yang telah ditentukan sehingga menghasilkan blok-blok teks sandi. Menurut Menezes dan kawan-kawan (1996) Block Cipher adalah suatu fungsi yang memetakan n-bit blok teks terang ke n-bit teks sandi, dengan n adalah panjang blok. Block Cipher merupakan gambaran dari sistem sandi substansi sederhana yang memiliki periode panjang. Berdasarkan definisi tersebut maka Block Cipher memiliki karakteristik sebagai berikut : a) Plaintext dibagi menjadi blok-blok bit dengan panjang sama, misalnya 64 bit. b) Panjang kunci enkripsi = panjang blok. c) Enkripsi dilakukan terhadap blok bit plaintext menggunakan bit-bit kunci. d) Algoritma enkripsi menghasilkan blok ciphertext yang panjangnya = blok plainteks. Beberapa contoh algoritma block cipher yang telah berkembang saat ini adalah DES (Data Encryption Standard), 3DES, FEAL, IDEA, RC-5, AES (Advanced Encryption Standard), Lucifer, Blowfish, LOKI, dan lain-lain. 5

6 Untuk penulisan tugas akhir ini Algoritma block cipher yang digunakan untuk enkripsi adalah Algoritma AES (Advanced Encryption Standard). 2) Struktur Sesuai konsep dasar dari sistem sandi blok. Proses enkripsi dan dekripsi dilakukan pada setiap blok pesan secara independen, dengan menggunakan kunci yang sama untuk setiap blok. Struktur block cipher dapat digambarkan sebagai berikut : Struktur algoritma pada sistem sandi blok secara prinsip terbagi dua komponen yaitu algoritma enkripsi/dekripsi dari setiap blok dan Algoritma Penjadwalan Kunci (Key Schedulling Algorithm) atau Algoritma Ekspansi Kunci (Key Expansion Algorithm). Pada umumnya, struktur dari algoritma penyandian Block Cipher adalah berdasarkan pada pengembangan struktur Substitutions-Permutation Network (SPN) adalah suatu product cipher yang tersusun dari beberapa stage dimana masing-masing stage tersebut terdiri dari proses-proses substitusi dan permutasi. 3) Mode Operasi Mode operasi yang lazim diterapkan pada block cipher adalah sebagai berikut : a) ECB (Electronic Code Book) ECB merupakan operasi block cipher yang paling sederhana. Pada mode operasi ini setiap plaintext ditangani oleh satu blok dan setiap blok plaintext dienkripsi menggunakan kunci yang sama. b) CBC (Cipher Block Chaining) Mode operasi ini digunakan untuk menutupi kelemahan pada ECB karena CBC dapat menghasilkan blok ciphertext yang berbeda walaupun menggunakan blok plaintext yang sama. c) CFB (Cipher Feed Back) CFB menggunakan prinsip dari stream cipher. Pada proses enkripsi, input pada fungsi enkripsi adalah b-bit shift register yang diinisialisasi menggunakan Initialization Vector (IV). d) OFB (Output Feed Back) Mode OFB mirip dengan struktur pada CFB. Pada OFB output dari fungsi enkripsi menjadi feedback pada shift register, sedangkan pada CFB yang menjadi feedback pada shift register adalah ciphertext. 3. Algoritma AES 128 bit 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. Advanced Encryption Standard (AES) dipublikasikan oleh NIST (National Institute of Standard and Technology) pada tahun 2001. AES merupakan blok kode simetris untuk menggantikan DES (Data Encryption Standard). Algoritma AES merupakan algoritma simetris yaitu menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Algoritma AES memiliki tiga pilihan kunci yaitu tipe : AES-128, AES-192, dan AES-256. Masing-masing tipe menggunakan kunci internal yang berbeda yaitu round key untuk setiap putaran.

7 Proses putaran enkripsi AES-128 dikerjakan sebanyak 10 kali (a=10), yaitu sebagai berikut: a. Addroundkey b. Putaran sebanyak a-1 kali, proses yang dilakukan pada setiap putaran adalah: SubBytes, ShiftRows, MixColumns, dan AddRoundKey. c. Final Round, adalah proses putaran untuk putaran terakhir yang meliputi SubBytes, ShiftRows, MixColumns, dan AddRoundKey. Sedangkan pada proses dekripsi AES-128, proses putaran juga dikerjakan sebanyak 10 kali (a=10), yaitu sebagai berikut: a. AddRoundKey b. Putaran sebanyak a-1 kali, dimana pada setiap putaran dilakukan proses: InverseShiftRows, InverseSubBytes, AddRoundKey, dan InverseMixColumns. c. Final Round adalah proses untuk putaran terakhir yang meliputi InverseShiftRows, InverseSubBytes, dan AddRoundKey. Garis besar algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut: a. AddRoundKey : melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round. b. Putaran sebanyak Nr-1 kali. Proses yang dilakukan pada setiap putaran adalah: 1) SubBtyes : Substitusi byte dengan menggunakan tabel substitusi (S-box). 2) ShiftRows : Transformasi ShiftRows pada dasarnya adalah proses pergeseran bit dimana bit paling kiri akan dipindahkan menjadi bit paling kanan (rotasi bit)(yuniati dkk, 2009). 3) MixColums : MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom pada state. 4) AddRoundKey : Melakukan XOR antara state sekarang dengan round key. c. Final Round : proses untuk putaran terakhir. Gambar 2.1 : Skema Kerja AES-128 (Yuniati dkk, 2009)

8 a. Key Schedule Proses key schedule diperlukan untuk mendapatkan subkey-subkey dari kunci utama agar cukup untuk melakukan enkripsi dan dekripsi. Proses ini terdiri dari beberapa operasi, yaitu: Operasi Rotate, yaitu operasi perputaran 8 bit pada 32 bit dari kunci. Operasi SubBytes, pada operasi ini 8 bit dari subkey disubstitusikan dengan nilai dari S-Box. Operasi Rcon, operasi ini dapat diterjemahkan sebagai operasi pangkat 2 nilai tertentu dari user. Operasi ini menggunakan nilai-nilai dalam Galois field. Nilai-nilai dari Rcon kemudian akan di-xor dengan hasil operasi SubBytes. Operasi XOR dengan w[i-nk] yaitu word yang berada pada Nk sebelumnya. b. Add Round Key Pada proses ini subkey digabungkan dengan state. Proses penggabungan ini menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang bersangkutan dari state. Untuk setiap tahap, subkey dibangkitkan dari kunci utama dengan menggunakan proses key schedule. Setiap subkey berukuran sama dengan state yang bersangkutan. Proses AddRoundKey diperlihatkan pada Gambar 2.2. Gambar 2.2 : Proses Add Round Key c. Sub Bytes Proses SubBytes adalah operasi yang akan melakukan substitusi tidak linear dengan cara mengganti setiap byte state dengan byte pada sebuah tabel yang dinamakan tabel S-Box. Sebuah tabel S-Box terdiri dari 16x16 baris dan kolom dengan masing-masing berukuran 1 byte. Tabel S-Box diperlihatkan pada Gambar 2.3 sedangkan proses SubBytes diperlihatkan pada Gambar 2.4.

9 Gambar 2.3 : Tabel S-Box Gambar 2.4 : Proses Sub Bytes d. Shift Rows Proses Shift Rows akan beroperasi pada tiap baris dari tabel state. Proses ini akan bekerja dengan cara memutar byte-byte pada 3 baris terakhir (baris 1, 2, dan 3) dengan jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak 1 kali, baris 2 akan diputar sebanyak 2 kali, dan baris 3 akan diputar sebanyak 3 kali. Sedangkan baris 0 tidak akan diputar. Proses ShiftRows diperlihatkan pada Gambar 2.5.

10 Gambar 2.5 : Proses Shift Rows e. Mix Columns Proses MixColumns akan beroperasi pada tiap kolom dari tabel state. Operasi ini menggabungkan 4 bytes dari setiap kolom tabel state dan menggunakan transformasi linier. Operasi Mix Columns memperlakukan setiap kolom sebagai polinomial 4 suku dalam Galois field dan kemudian dikalikan dengan c(x) modulo (x4+1), dimana c(x)=3x3+x2+x+2. Kebalikkan dari polinomial ini adalah c(x)=11x3+13x2+9x+14. Operasi MixColumns juga dapat dipandang sebagai perkalian matrix. Langkah MixColumns dapat ditunjukkan dengan mengalikan 4 bilangan di dalam Galois field oleh matrix berikut ini. Atau bila dijabarkan: r0=2a0+a3+a2+3a1 r1=2a1+a0+a3+3a2 r2=2a2+a1+a0+3a3 a3=2a3+a2+a1+3a0 Operasi penjumlahan di atas dilakukan dengan operasi XOR, operasi perkalian dilakukan dalam Galois field.

11 Gambar 2.6 : Proses Mix Columns 4. Algoritma SHA-1 SHA adalah fungsi hash satu arah yang dibuat oleh NIST dan digunakan bersama DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai standar fungsi hash satu-arah. SHA didasarkan pada MD 4 yang dibuat oleh Rivest dari MIT. Algoritma ini menerima masukan berupa pesan dengan ukuran maksimum 264 bit dan menghasilkan digest yang panjangnya 160bit yang lebih panjang dari MD5. SHA (Secure Hash Algorithm) 1 itu sejenis fungsi hash 160 bit yang katanya pengganti md5 (Message Digest) yang hash-nya cuma 128 bit. MD5 itu memang benar di desain oleh RSA, yaitu oleh Ronald Rivest di tahun 1991. Tapi kalo SHA1 itu didesain oleh NSA (National Security Agency). Ada juga yang mengatakan bahwa SHA-1 adalah versi perbaikan dari SHA-0, dan merupakan versi yang paling banyak dipakai saat ini dalam mengamankan transaksi elektronik di Internet, bersama-sama dengan metoda MD5. SHA1 adalah algoritma yang dipakai untuk mengenkripsi data, biasanya algoritma ini digunakan untuk mengacak password menjadi barusin code-code acak yang tidak dapat dibaca. a. Kelebihan Algoritma SHA-1 SHA 1 digunakan karena memiliki beberapa kelebihan antara lain: 1) Validate a password (memvalidasi password) : nilai hash dari password akan disimpan, kemudian ketika password diotentikasi, maka password yang dimasukkan oleh user akan dihitung hashnya dan jika hashnya sesuai maka password dinyatakan valid. Namun untuk mendapatkan password yang asli tidak dapat diperoleh dari hash yang telah disimpan. 2) Challenge handshake authentication : untuk menghindari kesalahan pengiriman password dalam kondisi clear, client dapat mengirim nilai hash sebuah password melalui internet untuk divalidasi oleh server tanpa beresiko disadapnya password yang asli. 3) Anti-tamper : untuk memastikan data tidak berubah selama ditransmisikan. Penerima akan menghitung nilai hash dan mencocokkan dengan hash yang dikirimkan, apabila nilainya sama berarti data yang dikirimkan tidak berubah.

12 4) Digital signatures : dilakukan dengan cara mengenkripsi nilai hash sebuah dokumen dengan menggunakan private key, sehingga menghasilkan tanda tangan digital untuk dokumen tersebut. Orang lain dapat mengecek otentikasi dokumen tersebut dengan cara mendekripsi tanda tangan tersebut menggunakan public key untuk mendapatkan nilai hash yang asli dan membandingkannya dengan nilai hash dari teks. b. Kekurangan Algoritma SHA-1 Avalanche effect dapat terjadi hanya dengan mengubah sedikit bagian dari pesan. Akan tetapi, algoritma SHA-1 masih dapat ditemui collision, sehingga dianggap masih kurang aman. SHA-256 dianggap lebih aman dibanding SHA-1 karena tingkat kompleksitas yang lebih tinggi dan message digest yang dihasilkan lebih panjang. Sedangkan pada kasus algoritma SHA-1, terdapat hash collision. Pada SHA-1 kelemahannya terletak pada kurangnya kompleksitas algoritma. Hingga saat ini terdapat 5 jenis algoritma SHA yang sudah dinyatakan masuk dalam standar keamanan yang dikeluarkan oleh National Security Agency (NSA) dan dipublikasi oleh National Institute of Standard and Technology (NIST) sebagai Federal Information Processing Standard (FIPS), dimana ke 5 jenis algoritma SHA itu adalah SHA-1, SHA-224, SHA-256, SHA-384, dan SHA-512. 4 jenis algoritma SHA yang disebutkan terakhir dapat juga dikatakan sebagai algoritma SHA-2. Kelima algoritma SHA ini memiliki ukuran pesan, blok, kata, dan pesan digit yang berbeda dimana ukuran-ukuran dari masing-masing algoritma SHA tersebut dapat dilihat pada tabel dibawah ini : Tabel 2.1 : Ukuran-ukuran pada Algoritma SHA Gambaran umum pembuatan message digest dengan algoritma SHA-1 diperlihatkan pada gambar di bawah ini:

13 Gambar 2.7 : Alur Program Pembuatan Message Digest SHA-1 Secara umum, tahap pembuatan message digest dengan SHA-1 adalah sebagai berikut: a. Preprocessing Pada tahap preprocessing ini terdiri dari beberapa langkah, yaitu: 1) Penambahan bit-bit pengganjal (padding bits). Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Panjang bit-bit pengganjal haruslah berada antara 1 hingga 512 bit. Hal tersebut menyebabkan pesan dengan panjang 448 tetap harus ditambahkan bit pengganjal sehingga panjangnya akan menjadi 960 bit. Bit-bit pengganjal sendiri terdiri dari sebuah bit 1 diikuti sisanya dengan bit 0. 2) Penambahan nilai panjang pesan semula. Pesan yang telah diberi padding bits selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan akan menjadi kelipatan 512 bit. 3) Inisialisasi penyangga (buffer) MD. Algoritma SHA-1 dalam operasinya membutuhkan lima buah buffer yang masing-masing besarnya 32 bit sehingga nantinya hasil akhirnya akan menjadi 160 bit. Kelima buffer tersebut dalam operasi SHA-1 ini akan berperan untuk menyimpan hasil antar putaran sekaligus untuk menyimpan hasil akhir. Kelima buffer tersebut memiliki nama A, B, C, D, dan E. Buffer tersebut harus diinisialisasi dengan nilai-nilai sebagai berikut (dalam notasi heksadesimal). A = 67452301 B = EFCDAB89

14 C = 98BADCFE D = 10325476 E = C3D2E1F0 b. Hashing Proses hashing dilakukan per blok dengan besar 512 bit tiap bloknya. Dalam pengolahan ini terdapat 4 putaran yang tiap putarannya dilakukan sebanyak 20 kali. Tiap putaran memiliki proses yang berbeda-beda. Sebelum putaran pertama dilakukan, inisialisasi 5 buah variabel dengan besar 32 bit yang menampung buffer inisialisasi. Gambar 2.8 : Proses Hashing Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit. Setiap blok 512 bit diproses bersama dengan buffer MD menjadi keluaran 128 bit. Proses tersebut disebut proses HSHA. Proses HSHA terdiri dari 80 buah putaran dengan putarannya dilakukan hal seperti gambar di atas. Pada gambar, Yq menyatakan blok 512 bit ke q dari pesan yang telah ditambah padding bits dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160 bit dari proses HSHA-q. Pada awal proses, MDq berisi nilai inisialisasi buffer MD. Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f). Operasi dasar SHA yang diperlihatkan pada gambar di atas dapat ditulis dengan persamaan sebagai berikut: a, b, c, d, e = (CLS 5 (a) + f t (b, c, d) + e + W t + K t ), a, CLS 30 (b), c, d Keterangan: a, b, c, d, e = lima buah peubah penyangga 32 bit (berisi nilai penyangga A, B, C, D, E) t = putaran, 0 < t < 79 f t = fungsi logika CLS s = circular left shift sebanyak s bit

15 W t = word 32 bit yang diturunkan dari blok 512 bit yang sedang diproses K t = konstanta penambah+ = operasi penjumlahan modulo 232 5. Android Menurut Teguh Arifianto (2011, h1) Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti gerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Berikut adalah tingkatan Android sejak dimulainya pengembangan pada tahun 2008 : a. Android versi 1.1 b. Android versi 1.5 (Cupcake) c. Android versi 1.6 (Donut) d. Android versi 2.0/2.1 (Éclair) e. Android versi 2.2 (Froyo) f. Android versi 2.3 (Gingerbread) g. Android versi 3.0/3.1 (Honeycomb) h. Android versi 4.0 (Ice Cream Sandwich) i. Android versi 4.1/4.2/4.3 (Jelly Bean) j. Android versi 4.4 (Kitkat) 6. Studi Literatur a. Judul : Algoritma Kriptografi AES Rijndael Pengarang : Didi Surian Deskripsi : Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi. b. Judul : Implementasi Algoritma Kriptografi AES 128 bit pada Android Pengarang : Joko Tri Susilo Widodo Deskripsi : Advanced Encryption Standard (AES) dipublikasikan oleh NIST (National Institute of Standard and Technology) pada tahun 2001. AES merupakan blok kode simetris untuk menggantikan DES (Data Encryption Standard). AES mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun AES mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi. Berikut adalah perbandingan jumlah proses yang harus dilalui untuk masing-masing masukan. Blok-blok data masukan

16 dan kunci dioperasikan dalam bentuk array. Setiap anggota array sebelum menghasilkan keluaran ciphertext dinamakan dengan state. Setiap state akan mengalami proses yang secara garis besar terdiri dari empat tahap yaitu, AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Kecuali tahap MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap MixColumns tidak akan dilakukan pada tahap terakhir. Proses dekripsi adalah kebalikkan dari dekripsi. c. Judul : Implementasi Kriptografi menggunakan Algoritma AES-128 Pengarang Deskripsi : Veronica Lusiana : Algoritma AES merupakan algoritma simetris yaitu mengunakan kunci yang sama untuk proses enkripsi dan dekripsi. Algoritma AES memiliki tiga pilihan kunci yaitu tipe: AES-128, AES-192 dan AES-256. Masing-masing tipe menggunakan kunci internal yang berbeda yaitu round key untuk setiap proses putaran. Proses putaran enkripsi AES-128 dikerjakan sebanyak 10 kali (a=10), yaitu sebagai berikut: 1. AddRoundKey, 2. Putaran sebanyak a-1 kali, proses yang dilakukan pada setiap putaran adalah: SubBytes, ShiftRows, MixColumns, dan AddRoundKey, 3. Final round, adalah proses untuk putaran terakhir yang meliputi SubBytes, ShiftRows, dan AddRoundKey. d. Judul : Perancangan dan Implementasi Aplikasi Kriptografi Pada Android dalam Pengamanan File Gambar dengan Menggunakan Algoritma SHA Pengarang : I Putu Gede Darpana Putra. W Deskripsi : Algoritma SHA merupakan salah satu dari algoritma dengan menggunakan fungsi hash, dimana yang dimaksud dengan fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi sting keluarann yang panjangnya tetap (fixed). Dimana pada fungsi hash bila string menyatakan pesan (message), maka sembarang pesan M berukuran sembarang dikompresi oleh fungsi hash H melalui persamaan h = H(M). Hasil keluaran dari fungsi hash disebut nilai hash atau pesan ringkas. Pesan yang diubah menjadi pesan ringkas pada fungsi hash tidak dapat dikembalikan lagi menjadi pesan semula hal ini yang menyebabkan fungsi hash dikatakan bekerja dalam satu arah. e. Judul : Algoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 Pengarang Deskripsi dan Penyertaan panjang Pesan Asli : Candra Alim Sutanto : Fungsi Hash merupakan fungsi yang menerima masukan apapun dan mentransformasikannya menjadi string keluaran yang panjangnya tetap. Panjang string keluaran biasanya berukuran jauh lebih kecil daripada ukuran masukan. Fungsi hash satu arah merupakan fungsi hash yang bekerja satu arah, sekali pesan diubah menjadi message digest, maka tidak dapat lagi dikembalikan menjadi pesan semula.

BAB III ANALISA DAN PERANCANGAN PROGRAM 1. Analisa Masalah Bagi sebagian orang, diary (buku harian) memiliki fungsi tersendiri. Ada yang berfungsi sebagai curahan hati, atau hanya sekedar hobi. Bagi penulis sendiri, menulis sesuatu yang rahasia di diary seringkali menghadapi permasalahan karena kurangnya keamanan dari diary tersebut yang mungkin masih bisa dibaca oleh orang lain yang tidak bertanggung jawab disebabkan masih ditulis pada sebuah buku atau selembar kertas. Di zaman yang sudah semakin canggih ini hampir semua masyarakat dari orang dewasa hingga anak Sekolah Dasar pun sudah memiliki handphone Android atau biasa disebut dengan nama smartphone. Oleh karena itu penulis mencoba membuat Aplikasi Diary berbasis Mobile Android yang dimana aplikasi ini dapat membantu user untuk mengamankan diary yang telah dibuat agar tidak dapat dibaca atau dicuri oleh orang yang tidak berhak. 2. Strategi Pemecahan Masalah Dari permasalahan yang diuraikan di atas, maka dibuatlah sebuah aplikasi diary yang dapat dijalankan pada semua jenis smartphone dan tentu dapat mengamankan isi dari diary tersebut menjadi teks yang tidak bisa dibaca oleh pihak yang tidak berwenang. Aplikasi tersebut nantinya dapat mengubah isi dari diary menjadi teks yang tidak bisa dibaca, agar diary tersebut terjaga kerahasiaannya. Kemudian mengembalikan isi diary tersebut menjadi seperti semula tanpa mengalami perubahan sedikit pun. Untuk menciptakan aplikasi tersebut maka diperlukan algoritma kriptografi agar diary tersebut bisa dienkripsi dan kemudian didekripsi tanpa mengalami perubahan. Karena semua algoritma kriptografi memiliki kekurangan masing-masing, maka penulis menggunakan dua algoritma kriptografi agar lebih aman dalam menjaga kerahasiaan aplikasi diary nanti. Dengan adanya aplikasi ini diharapkan dapat digunakan sebagai solusi dari permasalah tersebut. Dengan menggunakan algoritma kriptografi AES-128 dan SHA-1 maka keamanan dari file diary yang telah dibuat akan aman dari terbacanya oleh orang lain. Sebagai contoh hasil enkripsi dari isi diary yang menggunakan AES-128 bisa dipastikan bahwa orang yang tidak tahu kunci dekripsinya tidak akan bisa mengetahui isi diary tersebut. Dan jika pun ada software yang bisa melihat isi database dari aplikasi diary ini dan ingin mengetahui kunci dekripsinya, maka bisa dipastikan pula isi diary tersebut masih aman karena kunci untuk dekripsi file dienkrip juga dengan menggunakan fungsi hash. 3. Perancangan Aplikasi Tahap perancangan aplikasi dilakukan untuk mencari bentuk yang optimal dari aplikasi yang akan dibuat dengan mempertimbangkan faktor permasalahan dan kebutuhan yang telah dijelaskan sebelumnya, sehingga diperoleh hasil yang optimal dan mudah untuk diimplementasikan. Berdasarkan analisa yang telah dilakukan, untuk melakukan proses enkripsi pada isi dari file diary, user hanya perlu memasukkan kunci untuk menggunakan fungsi enkripsi pada AES-128 sebelum menyimpannya dan isi dari file diary tersebut sudah 17

18 terenkripsi. Untuk lebih jelasnya, berikut skema proses enkripsi dan dekripsi rancangan aplikasi diary yang akan dibuat dapat dilihat pada gambar berikut ini : Gambar 3.1 : Alur Program Enkripsi dan Dekripsi 4. Rancangan Basis Data a. Model Data Relational Tabel Diarys Tabel 3.1 : Tabel Diarys Id Title Body Date Key PK b. Spesifikasi Basis Data Nama Field : Diarys Isi : Berisi tentang data pengguna Media : SQLite Primary Key : Id Struktur :

19 Tabel 3.2 : Struktur Tabel Diarys No. Nama Field Type Keterangan 1 Id Integer Id Diary 2 Title Text Judul Pengguna 3 Body Text Isi Diary Pengguna 4 Date Date Tanggal Input 5 Key Text Kunci 5. Perilaku State Diagram Aplikasi Diary Gambar 3.2 : State Diagram Aplikasi Diary Berikut ini adalah deskripsi dari tiap-tiap menu yang ada di state diagram pada aplikasi diary : a. State : Form Menu Utama Deskripsi : Form Menu Utama, di dalamnya terdapat dua button yaitu button list diary yang jika diklik oleh user maka selanjutnya user akan berpindah ke state Form List Diary, dan button about yang jika diklik oleh user maka selanjutnya user akan berpindah ke state Form About. b. State : Form List Diary Deskripsi : Form List Diary, di dalamnya terdapat list diary dari diary yang pernah dibuat oleh user. Di dalamnya user bisa melakukan dua hal yaitu membuat diary baru, dan mengubah diary. Jika user ingin membuat diary baru maka user hanya menekan tombol yang berada di bawah list diary dan selanjutnya user akan berpindah ke state Form Edit Diary, sedangkan jika user ingin mengubah diary yang pernah dibuat maka user harus menginput key untuk mendekripsi diary terlebih dahulu dan selanjutnya akan berpindah ke state Form Edit Diary.

20 c. State : Form Edit Diary Deskripsi : Form Edit Diary, merupakan tampilan editor untuk judul dan isi diary. Jika user menekan tombol simpan maka user terlebih dahulu menginput key untuk mengenkripsi isi diary agar aman dari terbacanya pihak luar, sedangkan jika user memilih menghapus diary maka file diary akan terhapus dari database dan user akan berpindah ke state Form List Diary. d. State : Form About Deskripsi : Form About, hanya terdapat data tentang penulis sebagai pembuat aplikasi ini, jika user menekan tombol kembali maka selanjutnya user akan berpindah ke state Form Menu Utama. 6. Rancangan Layar Rancangan layar sangat penting dalam membuat suatu program. Oleh karena itu rancangan layar harus mudah dimengerti, dan dipahami oleh user agar dalam menggunakan program atau aplikasi user merasa nyaman dan tidak kesulitan dalam menggunakannya. Sehingga rancangan layar tidak membingungkan seorang user dan tidak mengalami kesulitan saat menggunakan aplikasi ini. Rancangan layar yang akan dibangun terdiri dari beberapa form yaitu, Rancangan Layar Menu Utama, Rancangan Layar Menu Editor. a. Rancangan Layar Menu Utama Menu Utama merupakan suatu tampilan yang akan muncul saat aplikasi dijalankan. Di dalamnya terdapat dua tombol yaitu tombol List Diary yang jika ditekan oleh user akan berpindah ke Form List Diary dan tombol About yang jika ditekan oleh user akan muncul form about yang berisi tentang pembuat aplikasi. Gambar 3.3 : Rancangan Layar Menu Utama

21 b. Rancangan Layar Form List Diary Form List Diary merupakan suatu tampilan yang akan digunakan user untuk memilih apakah ingin membuat file diary baru atau mengubah file diary yang sudah ada. Gambar 3.4 : Rancangan Layar Form List Diary c. Rancangan Layar Form Edit Diary Form edit diary merupakan suatu tampilan yang akan muncul setelah user memilih file diary yang sudah ada atau setelah menekan tombol tambah yang artinya adalah membuat file diary baru. Gambar 3.5 : Rancangan Layar Form Edit Diary

22 d. Rancangan Layar Dialog Input Key Dialog Input Key merupakan suatu tampilan yang akan muncul jika user akan membuka file lama, mengubah file lama dan menyimpan file diary. Gambar 3.6 : Rancangan Layar Dialog Input Key e. Rancangan Layar Dialog Key Invalid Dialog Key Invalid merupakan suatu tampilan yang akan muncul jika key yang diinput oleh user untuk mendekripsi file diary tidak sesuai dengan key saat mengenkripsi file tersebut. Gambar 3.7 : Rancangan Layar Dialog Key Invalid f. Rancangan Layar Dialog Konfirmasi Hapus Dialog Konfirmasi hapys merupakan suatu tampilan yang akan muncul saat user menekan tombol delete di form edit diary. Untuk menghapus diary, user harus melakukan dekripsi file terlebih dahulu. Gambar 3.8 : Rancangan Layar Dialog Konfirmasi Hapus

23 7. Flowchart a. Flowchart Klik List pada Form List Diary Alur proses saat List pada Form List Diary diklik atau dipilih digambarkan pada flowchart Gambar 3.9. Pada flowchart ini dijelaskan proses dari awal saat user memilih salah satu diary pada list diary hingga proses pendekripsian isi diary. Gambar 3.9 : Flowchart Klik List pada Form List Diary b. Flowchart Klik Button New pada Form List Diary Alur proses saat Button New diklik oleh user digambarkan pada flowchart Gambar 3.10. Pada flowchart ini dijelaskan bahwa saat user klik Button New berarti akan membuat diary baru, maka akan muncul tampilan Form Edit Diary. Gambar 3.10 : Flowchart Klik Button New pada Form List Diary

24 c. Flowchart Klik Button Save pada Form Edit Diary Alur proses saat Button Save diklik oleh user digambarkan pada flowchart Gambar 3.11. Pada flowchart ini dijelaskan proses dari awal user menginput judul dan isi diary lalu proses enkripsi pada key dan isi diary, sampai tersimpannya file diary ke database. Gambar 3.11 : Flowchart Klik Button Save pada Form Edit Diary d. Flowchart Klik Button Delete pada Form Edit Diary Alur proses saat Button Delete diklik oleh user digambarkan pada flowchart Gambar 3.12. Pada flowchart ini dijelaskan proses saat user ingin menghapus file diary sampai terhapusnya file diary dari database. Gambar 3.12 : Flowchart Klik Button Delete pada Form Edit Diary

25 e. Flowchart Enkripsi Alur proses pengenkripsian kunci atau key dan isi diary digambarkan pada flowchart gambar 3.13 di bawah ini. Gambar 3.13 : Flowchart Enkripsi f. Flowchart Dekripsi Alur proses pendekripsian kunci atau key dan isi diary digambarkan pada flowchart gambar 3.14 di bawah ini. Gambar 3.14 : Flowchart Dekripsi

26 g. Flowchart Enkripsi AES-128 Alur proses enkripsi isi diary dengan algoritma AES-128 digambarkan pada flowchart gambar 3.15 di bawah ini. Gambar 3.15 : Flowchart Enkripsi AES-128 h. Flowchart Dekripsi AES-128 Alur proses dekripsi isi diary dengan algoritma AES-128 digambarkan pada flowchart gambar 3.16 di bawah ini. Gambar 3.16 : Flowchart Dekripsi AES-128

27 i. Flowchart Enkripsi SHA-1 Alur proses enkripsi kunci atau key dengan algoritma SHA-1 digambarkan pada flowchart gambar 3.17 di bawah ini. Gambar 3.17 : Flowchart Enkripsi SHA-1 8. Algoritma Program a. Algoritma Klik List Pada Form List Diary 1. Start 2. Input Key 3. Panggil Fungsi Dekripsi 4. End b. Algoritma Klik Button New Pada Form List Diary 1. Start 2. Tampil Form Edit Diary 3. End c. Algoritma Klik Button Save Pada Form Edit Diary 1. Start 2. Input Key 3. Panggil Fungsi Enkripsi 4. Simpan ke database 5. End

28 d. Algoritma Klik Button Delete Pada Form Edit Diary 1. Start 2. Tampilkan Konfirmasi untuk dihapus 3. Input Pilih 4. If Pilih = Ya Then 5. Delete Diary dari Database 6. End If 7. End e. Fungsi Enkripsi 1. Start 2. Mengambil Key dan isi Diary yang diinput user 3. Panggil Algoritma Enkripsi SHA-1 untuk Key 4. Panggil Algoritma Enkripsi AES-128 untuk isi Diary 5. End f. Fungsi Dekripsi 1. Start 2. Ambil Key yang diinput user 3. Panggil Algoritma Enkripsi SHA-1 4. If Key Encrypt == Key yang di database Then 5. Panggil Algoritma Dekripsi AES-128 6. Tampilkan Judul dan Isi Diary ke Form Edit Diary 7. Else 8. Tampilkan Pesan Error 9. Kembali ke Form List Diary 10. End If 11. Return 12. End g. Algoritma Enkripsi AES-128 1. Start 2. Pembuatan inisialisasi state 3. Melakukan subbytes 4. Melakukan ShiftRows 5. Melakukan MixColumns 6. Melakukan addroundkey 7. Return 8. End h. Algoritma Dekripsi AES-128 1. Start 2. Pembuatan inisialisasi inverse state 3. Melakukan ShiftRows 4. Melakukan insubbytes 5. Melakukan inmixcolumns 6. End

29 i. Algoritma Enkripsi SHA-1 1. Start 2. Pembuatan inisialisasi variable 3. Ambil String yang akan dienkripsi 4. Pecah String menjadi beberapa karakter 5. Konversi Karakter ke kode ASCII 6. Konversi Nomor ke bilangan biner 7. Lakukan Padding Message 8. Lakukan Process The Block 9. Lakukan Left Rotate 10. End

BAB IV IMPLEMENTASI DAN ANALISIS HASIL UJI COBA PROGRAM 1. Implementasi Program Implementasi dari perangkat lunak merupakan tahap akhir dari proses pembuatan atau pengembangan perangkat lunak setelah melalui tahapan perancangan. Agar aplikasi kriptografi dapat berjalan dengan baik, maka terlebih dahulu perangkat lunak atau aplikasi tersebut harus diuji untuk mengetahui kelemahan dan kesalahan yang ada untuk kemudian dievaluasi. Berikut adalah spesifikasi perangkat yang dipakai untuk mendukung implementasi aplikasi ini. a. Perangkat Keras (Hardware) Perangkat Keras (Hardware) yang dipakai untuk implementasi ini adalah sebagai berikut : 1) Semua jenis Handphone Android, dengan minimum RAM 512 MB 2) Kebutuhan minimum SDK Android 2.1 (Eclair) 3) Target SDK Android 4.1 (Jelly Bean) b. Perangkat Lunak (Software) Perangkat Lunak (Software) yang dipakai untuk implementasi aplikasi ini adalah sebagai berikut : 1) Android Studio 64 Bit 2) Sistem Operasi Microsoft Windows 7 2. Instalasi Aplikasi Kriptografi Berikut ini merupakan tahapan instalasi kriptografi : a. Gambar 4.1 merupakan tampilan untuk melanjutkan proses instalasi aplikasi kriptografi. Gambar 4.1 : Tampilan Awal Instalasi Aplikasi Kriptografi 30

31 b. Selanjutnya, pada Gambar 4.2 merupakan tampilan proses instalasi aplikasi kriptografi yang sedang berjalan. Gambar 4.2 : Tampilan Proses Instalasi Aplikasi Kriptografi c. Selanjutnya, tampilan pada Gambar 4.3 merupakan pemberitahuan bahwa proses instalasi kriptografi telah selesai. Gambar 4.3 : Tampilan Selesai Proses Instalasi

32 d. Setelah Proses Instalasi selesai untuk menjalankan aplikasi kriptografi tekan Tombol Apps S-Diary Gambar 4.4 : Tampilan Lokasi Aplikasi Kriptografi 3. Tampilan Layar Pada bagian ini, diuraikan mengenai tampilan layar aplikasi kriptografi mulai dari pertama kali dijalankan sampai selesai dijalankan. Berikut ini akan diberikan penjelasan dan gambar mengenai tampilan-tampilan yang ada pada program aplikasi kriptografi ini. a. Tampilan Layar Menu Utama Pada tampilan layar menu utama berisi dua tombol yaitu tombol List Diary yang jika ditekan oleh user akan menuju ke Form List Diary dan tombol about yang jika ditekan oleh user akan muncul dialog yang berisi tentang pembuat aplikasi. Tampilan Layar Menu Utama seperti pada gambar 4.5 di bawah ini. Gambar 4.5 : Tampilan Layar Menu Utama

33 b. Tampilan Layar Form List Diary Pada tampilan layar form list diary terdapat daftar atau list diary yang telah dibuat oleh user dan di bawah list diary terdapat tombol yang jika ditekan oleh user maka akan menuju ke form edit diary. Tampilan layar form list diary seperti pada gambar 4.6 di bawah ini. Gambar 4.6 : Tampilan Layar Form List Diary c. Tampilan Layar Dialog About Pada tampilan layar dialog about terdapat di dalamnya tentang pembuat aplikasi S-Diary ini. Tampilan layar dialog about seperti pada gambar 4.7 di bawah ini. Gambar 4.7 : Tampilan Layar Dialog About

34 d. Tampilan Layar Form Edit Diary Sebelum Input Pada tampilan layar form edit diary ini berfungsi untuk membuat atau mengubah isi diary ke dalam aplikasi S-Diary. Di dalam tampilan layar form edit diary ini, user bisa langsung menginput judul dan isi diary. Tampilan layar form edit diary seperti pada gambar 4.8 di bawah ini. Gambar 4.8 : Tampilan Layar Form Edit Diary Sebelum Input e. Tampilan Layar Form Edit Diary Setelah Input Ketika user ingin menginput catatan diary maka langkah awal yang harus dilakukan adalah memberikan judul dari catatan diary tersebut, selanjutnya barulah mulai menginput catatan yang ingin diisi ke dalam S-Diary. Seperti pada gambar 4.9 di bawah ini. Gambar 4.9 : Tampilan Layar Form Edit Diary Setelah Input

35 f. Tampilan Layar Dialog Input Key Untuk Enkripsi Setelah user menginputkan key, maka proses selanjutnya user dapat menekan tombol OK pada dialog tersebut sehingga file diary berhasil terenkripsi dan disimpan ke dalam database. Tampilan layar setelah input key untuk enkripsi seperti gambar 4.10 di bawah ini. Gambar 4.10 : Tampilan Layar Dialog Input Key Untuk Enkripsi g. Tampilan Layar Success to Create Setelah user menginput key untuk mengenkripsi file diary pada dialog input key tadi, maka proses penyimpanan file diary tersebut telah selesai diikuti dengan muncul pesan success to create dan kembali ke form list diary seperti gambar 4.11 di bawah ini. Gambar 4.11 : Tampilan Layar Success to Create

36 h. Tampilan Layar Dialog Input Key Untuk Dekripsi Langkah pertama jika user ingin mengubah atau menghapus diary yang sudah disimpan adalah dengan memasukkan key dekripsi yang sesuai dengan key enkripsi saat menyimpan diary tersebut seperti pada gambar 4.12 di bawah ini. Gambar 4.12 : Tampilan Layar Dialog Input Key Untuk Dekripsi i. Tampilan Layar isi Diary Setelah Terdekripsi Setelah user selesai menginput kunci pada layar input kunci dekripsi dan sesuai dengan kunci saat mengenkripsi diary tersebut, maka akan muncul isi dari diary tersebut, seperti tampilan gambar 4.13 di bawah ini. Gambar 4.13 : Tampilan Layar Isi Diary Setelah Terdekripsi

37 j. Tampilan Layar Ubah isi Diary Setelah user selesai menginput key untuk dekripsi diary dan ingin mengubah atau menambahkan isi serta judul di dalam diary tersebut, maka hal yang harus dilakukan adalah dengan memasukkan kunci enkripsi kembali, sehingga akan muncul tampilan seperti gambar 4.14 di bawah ini. Gambar 4.14 : Tampilan Layar Ubah isi Diary k. Tampilan Layar Success to Update Setelah user selesai mengubah isi diary tersebut, maka tampilan diary akan kembali seperti semula dengan kondisi berhasil di update dengan keterangan success to update seperti gambar 4.15 di bawah ini. Gambar 4.15 : Tampilan Layar Success to Update

38 l. Tampilan Layar Key Tidak valid Jika user ingin membuka atau mengubah isi diary maka user harus menginput key untuk mendekripsi file tersebut. Jika key untuk mendekripsi file tersebut salah maka user tidak dapat membaca atau mengubah file tersebut dan akan muncul dialog seperti gambar 4.16 di bawah ini. Gambar 4.16 : Tampilan Layar Key Tidak valid m. Tampilan Layar Dialog Konfirmasi Delete Diary Jika user ingin menghapus file diary, maka user harus melakukan dekripsi file diary terlebih dahulu. Setelah tombol delete ditekan oleh user, maka akan muncul dialog konfirmasi delete diary seperti pada gambar 4.17 di bawah ini. Gambar 4.17 : Tampilan Layar Dialog Konfirmasi Delete Diary

39 n. Tampilan Layar Diary Success to Delete Selanjutnya user hanya perlu menekan tombol Yes pada dialog konfirmasi, dan diary akan terhapus dari database seperti pada gambar 4.18 di bawah ini. Gambar 4.18 : Tampilan Layar Diary Success to Delete 4. Pengujian Aplikasi Setelah semua rangkaian hardware dan software yang diperlukan sudah terpasang dan terpenuhi, maka akan dilakukan tahap pengujian. Pada bagian ini, akan diuraikan mengenai pengujian Aplikasi Kriptografi. Berikut ini adalah penjelasan rinci pada tiap Layar. a. Proses Encrypt Pada gambar 4.19 berikut ini adalah tampilan layar Form Menu Utama. Form ini akan muncul, pada saat pertama kali aplikasi kriprografi. Berikut tampilannya : Gambar 4.19 : Form Menu Utama

40 Selanjutnya jika user ingin membuat Diary baru ke dalam Aplikasi S-Diary, user hanya perlu menekan tombol list diary yang terdapat pada form menu utama dan user akan berpindah ke form list diary seperti pada gambar 4.20 di bawah ini. Gambar 4.20 : Form List Diary Jika user ingin membuat diary baru, langkah yang harus dilakukan oleh user adalah menekan tombol yang berada di paling bawah form list diary. Dan user akan berpindah ke form edit diary seperti pada gambar 4.21 di bawah ini. Gambar 4.21 : Form Edit Diary

41 Selanjutnya jika user selesai menginput judul dan isi diary dan ingin menyimpannya, maka setelah tombol save pada form edit diary ditekan oleh user akan muncul dialog input key yang digunakan untuk mengenkripsi isi diary seperti gambar 4.22 di bawah ini. Gambar 4.22 : Dialog Input Key Untuk Enkripsi Diary Setelah user menginput key untuk mengenkripsi isi diary tersebut, maka langkah selanjutnya adalah menekan tombol OK pada dialog tersebut dan file berhasil dienkripsi serta muncul pesan bahwa file success to create. Dan akan kembali ke form list diary yang sudah berisi file tersebut seperti gambar 4.23 di bawah ini. Gambar 4.23 : Tampilan Diary Berhasil Disimpan

42 b. Proses Decrypt Pada gambar 4.24 berikut ini jika pada Form List Diary user memilih salah satu dari daftar file diary, maka user diminta untuk menginput key untuk mendekripsi file yang dipilih seperti pada gambar di bawah ini. Gambar 4.24 : Dialog Input Key Untuk Dekripsi Jika key yang diinput sama dengan key yang ada di database maka akan tampil isi dari file diary tersebut dan pada saat bersamaan akan muncul pesan Decrypt this file successfully seperti pada gambar 4.25 di bawah ini. Gambar 4.25 : Tampilan Diary Berhasil Didekripsi

43 5. Pengujian Untuk memastikan keberhasilan jalannya aplikasi tersebut. Perlu dilakukan pengujian untuk aplikasi yang dibuat. Jika tidak diuji terlebih dahulu bisa saja aplikasi tersebut gagal saat digunakan. Pengujian tersebut untuk mengetahui performance, hasil encrypt diary dengan AES-128, hasil decrypt diary dengan AES-128 dan memastikan semua aplikasi berjalan dengan baik. a. Pengujian Encrypt Diary Untuk mengubah isi diary dengan Teknik Kriptografi menggunakan Metode Advanced Encryption Standard (AES-128) diperlukan pengujian encrypt diary untuk mengetahui apakah isi diary terenkripsi atau tidak. Berikut ini tabel pengujian encrypt diary: Tabel 4.1 : Tabel Isi Diary dan Key Sebelum Dienkripsi Title Isi Diary Asli Body Kunci Diary 1 Ammar rahasia Diary 2 Bismillah qwerty Diary 3 Sukses 12345 Diary 4 Allahu Akbar gaktau Tabel 4.2 : Tabel Isi Diary dan Key Setelah Dienkripsi Encrypt Diary Status Title Diary 1 Diary 2 Diary 3 Diary 4 Body Setelah Dienkripsi AES-128 9d39ceb202d14442a1 2ede939ba31e14 81a788d3c273ce34ab 86d635b0e92a56 da0566005f2d8436ba 9d236f1bcfbd75 9bc7ec45b36d01e5f72 d19c96851a276 Kunci Setelah Dienkripsi SHA-1 829b36babd21be519f a5f9353daf5dbdb796 993e b1b3773a05c0ed0176 787a4f1574ff0075f75 21e 8cb2237d0679ca88db 6464eac60da9634551 3964 c934eced6a14e163c8 38b0309bedd9c0eb6 24cf6 Berhasil Berhasil Berhasil Berhasil

44 b. Pengujian Decrypt Diary Setelah kita melakukan pengujian encrypt diary, kita akan melakukan pengujian decrypt diary. Pengujian ini dilakukan untuk membuktikan bahwa hasil dari pengujian encrypt diary telah berhasil dienkripsi dan dapat dikembalikan seperti semula dengan menggunakan dekripsi. Jika tidak maka pada saat dekripsi diary akan muncul pesan bahwa kunci yang kita masukkan untuk dekripsi tidak sesuai dengan kunci yang dimasukkan saat enkripsi. Tabel 4.3 : Tabel Hasil Pengujian Decrypt Diary Isi Diary Enkripsi Kunci Isi Diary Asli Title Body Sebelum Dienkripsi SHA-1 Diary 1 9d39ceb202d1 rahasia 4442a12ede9 39ba31e14 Diary 2 Diary 3 Diary 4 81a788d3c273 ce34ab86d635 b0e92a56 da0566005f2d 8436ba9d236f 1bcfbd75 9bc7ec45b36d 01e5f72d19c9 6851a276 qwerty Sesudah Dienkripsi SHA-1 829b36babd 21be519fa5f 9353daf5db db796993e b1b3773a05 c0ed017678 7a4f1574ff0 075f7521e 12345 8cb2237d06 79ca88db64 64eac60da9 6345513964 gaktau c934eced6a 14e163c838 b0309bedd9 c0eb624cf6 Title Diary 1 Diary 2 Diary 3 Diary 4 Body Ammar Bismillah Sukses Allahu Akbar 6. Evaluasi Program Aplikasi kriptografi ini diimplementasikan pada Fakultas Teknologi Informasi (FTI) Universitas Budi Luhur. Setelah dilakukan analisa dari hasil pengujian aplikasi, dapat ditemukan beberapa kelebihan dan kekurangan dari aplikasi ini, yaitu sebagai berikut: a. Kelebihan Program 1) Kunci Enkripsi antara diary yang satu dengan yang lain bisa berbeda ataupun sama. 2) Isi diary terenkripsi dengan algoritma AES-128 dan tidak bisa dilihat dari database. 3) Kunci atau key untuk mendekripsi tidak bisa dilihat di database karena terenkripsi juga dengan algoritma SHA-1. 4) User Friendly karena aplikasi mudah digunakan. b. Kekurangan Program 1) Hanya bisa memasukkan teks pada isi diary. 2) User masih bisa menginput dengan key enkripsi dengan tanpa teks (kosong).

BAB V PENUTUP 1. Kesimpulan Adapun kesimpulan yang diperoleh setelah melewati tahap perancangan, pembuatan, serangkaian uji coba dan analisa program aplikasi S-Diary ini, maka dapat dibuat suatu kesimpulan antara lain : a. Dengan diterapkan Algoritma AES-128 pada proses enkripsi dan dekripsi, berjalan dengan baik sehingga isi diary tidak terbaca oleh pihak luar. b. Dengan diterapkan Algoritma SHA-1 pada proses enkripsi dan dekripsi key, berjalan dengan baik sehingga isi key tidak terbaca di database oleh pihak luar. c. Dengan menggunakan password atau key pada proses penyimpanan dan sebelum membuka file diary maka keamanan data isi file diary dapat terjaga dengan aman. d. Dengan adanya aplikasi S-Diary ini dapat memudahkan untuk melakukan pengamanan pada isi dari file diary tersebut. 2. Saran Dengan keterbatasan aplikasi ini, beberapa saran yang perlu dipertimbangkan guna pengembangan aplikasi lebih lanjut, antara lain: a. Pengembangan lebih lanjut dapat difokuskan pada penggunaan metode kriptografi dengan kombinasi yang lain untuk meningkatkan keamanan data. b. Dalam penggembangan lebih lanjut dapat difokuskan pada penambahan fitur diary seperti dapat memasukkan gambar, suara, atau video. 45

46 DAFTAR PUSTAKA Arifianto, Teguh, 2011, Membuat Interface Aplikasi Android Lebih Keren dengan LWUIT, Andi, Yogyakarta. Dwinanto, Arif, 2013, Penerapan Algoritma AES (Advance Encryption Standard) 128 dan Vigenere Cipher pada Aplikasi Enkripsi Pesan Singkat Berbasis Android, Teknik Infomatika Universitas Negeri Gorontalo. Kurniawan., 2004, Kriptografi : Keamanan Internet dan Jaringan Komunikasi, Bandung, Informatika. Lusiana, Veronica, n.d, Implementasi Kriptografi Menggunakan Algoritma AES-128. Menezes, J.A, 1996, Handbook of Applied Crypthography, USA, CRC Press LLC. Munir, Rinaldi, 2004, Bahan Kuliah IF5054 Kriptografi, Departemen Teknik Informatika, Institut Teknologi Bandung. Scheiner, Bruce, 1996, Applied Cryptography, Protocols, Algorithms, and Source Code in C, New York, A John Wiley & Sons, Inc. Sujadi., 2003, Metodologi Penelitian Pendidikan, Jakarta, Rineka Cipta. Surian, Didi, 2006, Algoritma Kriptografi AES Rijndael, Universitas Tarumanegara. Sutanto, Candra Alim, 2011, Algoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 dan Penyertaan Panjang Pesan Asli, Bandung, Institut Teknologi Bandung. Widodo, Joko Tri Susilo, 2014, Implementasi Algoritma Kriptografi AES 128 Bit Sebagai Pengaman SMS Pada Smartphone Berbasis Android, Yogyakarta, Sekolah Tinggi Manajemen Informatika Dan Komputer AMIKOM Yogyakarta. W, I Putu Gede Darpana Putra, 2014, Perancangan dan Implementasi Aplikasi Kriptografi Pada Android dalam Pengamanan File Gambar dengan Menggunakan Algoritma SHA, Universitas Udayana. Yuniati, V., Indriyanta, G., Rachmat, A, 2009, Enkripsi Dan Dekripsi Dengan Algoritma AES 256 Untuk Semua Jenis File. Universitas Kristen Duta Wacana Yogyakarta.

47 LAMPIRAN Lampiran Surat Riset