APLIKASI PENGAMANAN FILE DAN PESAN TEKS
MENGGUNAKAN ALGORITMA AES 256 DAN SHA 256
BERBASIS ANDROID
SKRIPSI
HADI FAJAR WIGUNO
1210511037
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAKARTA
FAKULTAS ILMU KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
2017
APLIKASI PENGAMANAN FILE DAN PESAN TEKS
MENGGUNAKAN ALGORITMA AES 256 DAN SHA 256
BERBASIS ANDROID
SKRIPSI
Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar
Sarjana Komputer
HADI FAJAR WIGUNO
1210511037
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAKARTA
FAKULTAS ILMU KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
2017
v
APLIKASI PENGAMANAN FILE DAN PESAN TEKS
MENGGUNAKAN ALGORITMA AES 256 DAN SHA 256
BERBASIS ANDROID
Hadi Fajar Wiguno
Abstrak
Enkripsi dan Dekripsi dalam Kriptografi merupakan pengamanan yang tepat untuk melindungi data agar tidak mudah dibuka atau dilihat oleh orang yang tidak berwenang. Salah satu teknik Enkripsi dan Dekripsi adalah Algoritma AES yang merupakan algoritma yang menggunakan kunci simetri. Algoritma ini mempunyai nama asli yaitu Algoritma Rijndael. Aloritma Rijndael merupakan pemenang kompetisi yang diselenggarakan oleh NIST (National Institutes of Standards and Technology) dan menjadi algoritma AES (Advanced Encryption Standar). Dengan Menggunakan Algoritma AES, aplikasi ini dapat melakukan Enkripsi dan Dekripsi data berupa dokumen, pesan teks, gambar, suara, dan video. Dalam penelitian ini menggunakan AES 256 dan SHA 256. Aplikasi ini dibangun untuk perangkat dengan sistem operasi android dan bahasa pemrograman java.
vi
APLIKASI PENGAMANAN FILE DAN PESAN TEKS
MENGGUNAKAN ALGORITMA AES 256 DAN SHA 256
BERBASIS ANDROID
Hadi Fajar Wiguno
Abstract
Encryption and decryption in cryptography is the proper safeguards to protect the data from being easily opened or viewed by unauthorized persons. One of the techniques of encryption and decryption Algorithm is AES which is the algorithm that the key uses symmetry. This algorithm has the original name is the Rijndael algorithm. Rijndael alorithm is the winner of the competition was organized by NIST (National Institutes of Standards and Technology) and becomes the algorithm AES (Advanced Encryption Standard). By using the AES Algorithm, this application can perform the encryption and decryption of data in the form of documents, text messages, images, sounds, and videos. In this study using AES 256 and SHA 256. This application is built for devices with the android operating system and java programming language.
vii
PRAKATA
Puji dan syukur saya panjatkan kepada Allah.swt atas segala karunia dan nikmat-Nya sehingga skripsi ini berhasil diselesaikan. Judul penelitian ini adalah
Aplikasi Pengamanan File dan Pesan Teks Menggunakan Algoritma AES 256 dan SHA 256 Berbasis Android. Penelitian ini dilaksanakan untuk menyelesaikan tugas
akhir dalam perkuliahan pada Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Pembangunan Nasional “Veteran” Jakarta. Dan terima kasih juga penulis ucapkan kepada :
1. Bapak Dr. Nidjo Sandjojo, M.Sc. selaku Dekan Fakultas Ilmu Komputer. 2. Bapak Indra PermanaSolihin, M.Kom. sebagai dosen pembimbing.
3. Ibu Vini Indriasari, P.hD. sebagai Kepala Program Studi Teknik Informatika. 4. Keluarga Besar atas segala doa, dukungan, nasihat, dan kasih sayangnya
sehingga saya dapat menyelesaikan studi sampai saat ini.
5. Teman-teman seperkuliahan yang telah membantu memberi masukan, memberi semangat motivasi dan membuat tawa canda senyum keceriaan dalam suka dan duka.
6. Wanita yang saya cintai yaitu Puti Ayu Ningrum yang telah membantu dan memberikan semangat dalam.pembuatan skripsi ini.
Akhirnya, penulis berharap semoga skripsi ini bermanfaat bagi kita semua, Aamiin.
Jakarta, 11 Juli 2017
viii
DAFTAR ISI
HALAMAN JUDUL ... i
PERNYATAAN ORISINALITAS ... ii
PERNYATAAN PERSETUJUAN PUBLIKASI ... iii
PENGESAHAN ... iv
ABSTRAK ... v
ABSTRACT ... vi
PRAKATA ... vii
DAFTAR ISI ... viii
DAFTAR GAMBAR ... x
DAFTAR TABEL ... xi
DAFTAR SIMBOL ... xii
DAFTAR LAMPIRAN ... xv BAB 1 PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 2 1.3 Batasan Masalah... 2 1.4 Tujuan Penelitian ... 3 1.5 Sistematika Penulisan... 3
BAB 2 LANDASAN TEORI ... 5
2.1 Kriptografi ... 5
2.1.1 Tujuan Kriptografi ... 5
2.1.2 Jenis-Jenis Algoritma Kriptografi ... 6
2.2 Enkripsi dan Dekripsi ... 8
2.3 AES (Advanced Encryption Standard)... 9
2.3.1 Proses Enkripsi AES-256 ... 10
2.3.2 Proses Dekripsi AES-256 ... 13
2.3.3 Penjadwalan Kunci... 16
2.3.3.1 Pengertian RotWord, SubWord, dan Rcon ... 17
2.4 SHA(Secure Hash Algorithm)... 18
2.4.1 SHA-256 ... 18
2.4.2 Proses SHA-256 ... 18
2.5 Encoding ... 21
2.5.1 Encoding Base64 ... 21
2.6 Sistem Operasi Android ... 22
2.7 UML (Unified Modelling Language) ... 24
2.7.1 Diagram-diagram UML... 24
ix
BAB 3 METODOLOGI PENELITIAN... 31
3.1 Tahapan Penelitian ... 31
3.1.1 Identifikasi Masalah ... 32
3.1.2 Studi Literatur ... 32
3.1.3 Analisa dan Perancangan Aplikasi ... 32
3.1.4 Implementasi ... 33
3.1.5 Pengujian Aplikasi ... 33
3.1.6 Hasil dan Pembahasan ... 34
3.2 Waktu dan Tempat Penelitian ... 34
3.3 Jadwal Penelitian ... 35
BAB 4 HASIL DAN PEMBAHASAN... 36
4.1 Analisis dan Kebutuhan Sistem ... 36
4.1.2 Flowchart Aplikasi ... 37
4.2 Penerapan Algoritma SHA ... 39
4.3 Penerapan Algoritma AES ... 43
4.3.1 Enkripsi Pesan Teks ... 43
4.3.2 Dekripsi Pesan Teks ... 80
4.3.3 Enkripsi File ... 91
4.3.4 Dekripsi File ... 99
4.4 Perancangan Aplikasi ... 107
4.4.1 Pemodelan menggunakan UML ... 107
4.4.1.1 Use Case Diagram ... 108
4.4.1.2 Activity Diagram ... 109 4.4.1.3 Sequence Diagram ... 114 4.4.2 Struktur Menu ... 119 4.4.3 Perancangan Tampilan ... 120 4.5 Implementasi Aplikasi ... 124 4.6 Hasil Pengujian ... 130 BAB 5 PENUTUP ... 132 5.1 Simpulan ... 132 5.2 Saran ... 132 DAFTAR PUSTAKA ... 133 RIWAYAT HIDUP LAMPIRAN
x
DAFTAR GAMBAR
Gambar 2.1 Algoritma Simetri ... 6
Gambar 2.2 Algoritma Asimetri ... 7
Gambar 2.3 Proses Enkripsi dan Dekripsi ... 9
Gambar 2.4 Proses Transformasi ShiftRows ... 11
Gambar 2.5 Proses MixColumns ... 12
Gambar 2.6 Alur Proses Enkripsi AES-256 ... 13
Gambar 2.7 Transformasi Inverse ShiftRows ... 14
Gambar 2.8 Proses Inverse MixColumns ... 15
Gambar 2.9 Alur Proses Dekripsi AES-256 ... 16
Gambar 2.10 Proses Penjadwalan Kunci ... 17
Gambar 2.11 Contoh Use Case Diagram ... 25
Gambar 2.12 Use Case ... 25
Gambar 2.13 Actors ... 25
Gambar 2.14 Contoh Class Diagram ... 26
Gambar 2.15 Contoh Activity Diagram ... 28
Gambar 2.16 Contoh Sequence Diagram... 29
Gambar 3.1 Diagram Alur Tahapan Penelitian ... 31
Gambar 4.1 Flowchart Enkripsi dan Dekripsi File ... 37
Gambar 4.2 Flowchart Enkripsi Teks ... 38
Gambar 4.3 Flowchart Dekripsi Teks ... 39
Gambar 4.4 Use Case Diagram Pengguna ... 108
Gambar 4.5 Activity Diagram Login ... 109
Gambar 4.6 Activity Diagram Enkripsi File ... 110
Gambar 4.7 Activity Diagram Enkripsi Pesan Teks ... 111
Gambar 4.8 Activity Diagram Dekripsi File ... 112
Gambar 4.9 Activity Diagram Dekripsi Pesan Teks ... 113
Gambar 4.10 Sequence Diagram Login ... 114
Gambar 4.11 Sequence Diagram Enkripsi File ... 115
Gambar 4.12 Sequence Diagram Enkripsi Teks ... 116
Gambar 4.13 Sequence Diagram Dekripsi File... 117
Gambar 4.14 Sequence Diagram Dekripsi Teks ... 118
Gambar 4.15 Struktur Menu Aplikasi ... 119
Gambar 4.16 Perancangan Tampilan Login ... 120
Gambar 4.17 Perancangan Tampilan Menu Utama ... 121
Gambar 4.18 Perancangan Tampilan Enkripsi dan Dekripsi File ... 122
Gambar 4.19 Perancangan Tampilan Enkripsi dan Dekripsi Teks ... 123
Gambar 4.20 Tampilan Login Aplikasi ... 124
Gambar 4.21 Membuat Pin Baru ... 125
Gambar 4.22 Tampilan Halaman Utama Beranda ... 126
Gambar 4.23 Tampilan Menu File ... 127
Gambar 4.24 Tampilan Menu Teks ... 128
xi
DAFTAR TABEL
Tabel 2.1 Perbandingan Jumlah Round dan Key ... 10
Tabel 2.2 Tabel S-Box SubBytes ... 11
Tabel 2.3 Tabel Inverse S-Box ... 14
Tabel 2.4 Tabel Rcon ... 17
Tabel 2.5 Tabel Encoding Base64 ... 22
Tabel 2.6 Tabel Penggunaan Platform Android ... 23
Tabel 2.7 Tabel Riset yang Relevan ... 30
Tabel 3.1 Jadwal Penelitian ... 35
Tabel 4.1 Proses Encoding Base64 ... 79
Tabel 4.2 Proses Decoding Base64 ... 80
Tabel 4.3 Penjadwalan Kunci Ronde ... 83
Tabel 4.4 Konversi ASCII... 91
Tabel 4.5 Tabel Pengujian Enkripsi dan Dekripsi File ... 130
xii
DAFTAR SIMBOL
a. Tabel Simbol Use Case Diagram
NO GAMBAR NAMA KETERANGAN
1 Actor
Menspesifikasikan himpuan peran
yang pengguna mainkan ketika
berinteraksi dengan use case.
2 Dependency
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri
(independent) akan mempengaruhi
elemen yang bergantung padanya
elemen yang tidak mandiri
(independent).
3 Generalizati
on
Hubungan dimana objek anak
(descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
4 Include Menspesifikasikan bahwa use case
sumber secara eksplisit.
5 Extend
Menspesifikasikan bahwa use case target memperluas perilaku dari use
case sumber pada suatu titik yang
diberikan.
6 Association Apa yang menghubungkan antara
objek satu dengan objek lainnya.
7 System
Menspesifikasikan paket yang
xiii
8 Use Case
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor
9 Collaborati
on
Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan prilaku yang lebih besar dari jumlah dan elemen-elemennya (sinergi).
10 Note
Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi
b. Tabel Simbol Sequence Diagram
NO GAMBAR NAMA KETERANGAN
1 LifeLine
Objek entity, antarmuka yang saling berinteraksi.
2 Message
Spesifikasi dari komunikasi antar
objek yang memuat
informasi-informasi tentang aktifitas yang
terjadi
3 Message
Spesifikasi dari komunikasi antar
objek yang memuat
informasi-informasi tentang aktifitas yang
xiv c. Tabel Simbol Activity Diagram
NO GAMBAR NAMA KETERANGAN
1 Actifity
Memperlihatkan bagaimana masing-masing kelas antarmuka saling berinteraksi satu sama lain
2 Action
State dari sistem yang
mencerminkan eksekusi dari suatu aksi
3 Initial Node Bagaimana objek dibentuk atau
diawali.
4 Actifity Final
Node
Bagaimana objek dibentuk dan dihancurkan
5 Fork Node Satu aliran yang pada tahap tertentu
xv