aplikasi keamanan citra digital pada perangkat...

17
APLIKASI KEAMANAN CITRA DIGITAL PADA PERANGKAT BERBASIS ANDROID MENGGUNAKAN TRANSFORMASI DISCRETE COSINE TRANSFORM, KRIPTOGRAFI TWOFISH, DAN ALGORITMA FISHER YATES SHUFFLING HALAMAN JUDUL SKRIPSI Disusun Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer pada Departemen Ilmu Komputer/Informatika Disusun oleh: Ardhan Fajriansyah 24010310141021 DEPARTEMEN ILMU KOMPUTER/INFORMATIKA FAKULTAS SAINS DAN MATEMATIKA UNIVERSITAS DIPONEGORO 2016

Upload: hadang

Post on 07-Aug-2019

234 views

Category:

Documents


0 download

TRANSCRIPT

APLIKASI KEAMANAN CITRA DIGITAL PADA PERANGKAT

BERBASIS ANDROID MENGGUNAKAN TRANSFORMASI

DISCRETE COSINE TRANSFORM, KRIPTOGRAFI TWOFISH, DAN

ALGORITMA FISHER YATES SHUFFLING HALAMAN JUDUL

SKRIPSI

Disusun Sebagai Salah Satu Syarat

Untuk Memperoleh Gelar Sarjana Komputer

pada Departemen Ilmu Komputer/Informatika

Disusun oleh:

Ardhan Fajriansyah

24010310141021

DEPARTEMEN ILMU KOMPUTER/INFORMATIKA

FAKULTAS SAINS DAN MATEMATIKA

UNIVERSITAS DIPONEGORO

2016

ii

HALAMAN PERNYATAAN KEASLIAN SKRIPSI

Saya yang bertanda tangan di bawah ini:

Nama : Ardhan Fajriansyah

NIM : 24010310141021

Jurusan : S-1 Teknik Informatika

Judul Skripsi : APLIKASI KEAMANAN CITRA DIGITAL PADA PERANGKAT

BERBASIS ANDROID MENGGUNAKAN TRANSFORMASI

DISCRETE COSINE TRANSFORM, KRIPTOGRAFI TWOFISH, DAN

ALGORITMA FISHER YATES SHUFFLING

Dengan ini saya menyatakan bahwa tugas akhir/skripsi ini adalah hasil pekerjaan saya

sendiri. Sepanjang pengetahuan saya, dalam tugas akhir/skripsi ini tidak terdapat karya yang

pernah diajukan oleh orang lain untuk memperoleh gelar kesarjanaan serta tidak terdapat

karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara

tertulis diacu dalam naskah ini dan disebutkan di dalam daftar pustaka.

Semarang, ………………. 2016

(materai)

Ardhan Fajriansyah 24010310141021

iii

HALAMAN PENGESAHAN

Judul : Aplikasi Keamanan Citra Digital pada Perangkat Berbasis Android

Menggunakan Transformasi Discrete Cosine Transform, Kriptografi Twofish,

dan Algoritma Fisher Yates Shuffling

Nama : Ardhan Fajriansyah

NIM : 24010310141021

Jurusan : S-1 Teknik Informatika

Telah diujikan pada sidang tugas akhir pada tanggal ………………. 2016 dan dinyatakan

lulus pada tanggal ………………. 2016.

Mengetahui,

Ketua Jurusan Ilmu Komputer/Informatika

FSM Universitas Diponegoro

Ragil Saputra, S.Si., M.Cs. NIP. 19801021 200501 1 003

Semarang, ………………. 2016

Panitia Penguji Tugas Akhir

Ketua

Drs. Putut Sri Wasito, M.Kom NIP. 19530628 1980003 1 001

iv

HALAMAN PENGESAHAN

Judul : Aplikasi Keamanan Citra Digital pada Perangkat Berbasis Android

Menggunakan Transformasi Discrete Cosine Transform, Kriptografi Twofish,

dan Algoritma Fisher Yates Shuffling

Nama : Ardhan Fajriansyah

NIM : 24010310141021

Jurusan : S-1 Teknik Informatika

Telah diujikan pada sidang tugas akhir pada tanggal ………………. 2016.

Semarang, ………………. 2016

Pembimbing

Helmie Arif Wibawa, S.Si, M.Cs NIP. 19780516 200312 1 001

v

ABSTRAK

Penggunaan media penyimpanan pada telepon seluler merupakan hal yang umum pada saat ini. Segala macam data digital dapat dengan mudah disimpan pada telepon seluler, salah satunya yaitu gambar. Gambar merupakan data yang bersifat informatif, bahkan terkadang mengandung hal yang sensitif bagi sebagian orang. Kurangnya keamanan dalam menyimpan gambar pada telepon seluler dapat menyebabkan berbagai permasalahan, contohnya penyalahgunaan informasi oleh pihak yang tidak bertanggung jawab. Oleh karena itu dibutuhkan suatu metode untuk mengatasi masalah tersebut. Pada penelitian kali ini akan dibahas tentang pembuatan aplikasi mobile berbasis Android yang dapat melakukan proses enkripsi dekripsi dengan mengacak bitmap color suatu citra. Metode yang digunakan adalah Discrete Cosine Transform (DCT) untuk mentransformasi citra asli dari domain spasial ke dalam domain frekuensi pada ruang warna RGB ditambah dengan metode kriptografi Twofish untuk pembangkitan kunci yang kemudian digabungkan dengan proses pengacakan algoritma Fisher Yates Shuffling. Kata kunci: Gambar, Android, Enkripsi, Dekripsi, Discrete Cosine Transform, RGB,

Twofish, Fisher Yates Shuffling.

vi

ABSTRACT

The use of the storage media on mobile phones are commonly known at this time. All kinds of digital data can be easily stored on the mobile phone, one of which is an image. Images are an informative data that sometimes even contains a sensitive issue for some people. Lack of security in storing the images on mobile phones can cause various problems, such misuse of information by parties who are not responsible. Therefore, there need a method to resolve this issue. In this research will be discussed about the creation of Android-based mobile application that can perform encryption decryption process to randomize the bitmap color of an image. The method that is used in this research is the Discrete Cosine Transform (DCT) to transform the original image from the spatial domain into the frequency domain in the RGB color space, coupled with Twofish methods for generate the key then combined with the process of randomization algorithm Fisher Yates Shuffling. Keywords: Image, Android, Encryption, Decryption, Discrete Cosine Transform, RGB,

Twofish, Fisher Yates Shuffling.

vii

KATA PENGANTAR

Segala Puji bagi Tuhan Yang Maha Esa atas karunia-Nya yang diberikan kepada

penulis sehingga penulis dapat menyelesaikan tugas akhir ini. Tugas akhir yang berjudul

“Aplikasi Keamanan Citra Digital pada Perangkat Berbasis Android Menggunakan

Transformasi Discrete Cosine Transform, Kriptografi Twofish, dan Algoritma Fisher Yates

Shuffling” ini disusun sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu

pada Jurusan Ilmu Komputer/ Informatika Fakultas Sains dan Matematika Universitas

Diponegoro Semarang.

Dalam penyusunan laporan ini tentulah banyak mendapat bantuan dan dukungan dari

berbagai pihak. Untuk itu pada kesempatan ini penulis mengucapkan rasa hormat dan

terimakasih kepada :

1. Ragil Saputra, S.Si, M.Cs. selaku Ketua Jurusan Ilmu Komputer / Informatika FSM

Universitas Diponegoro.

2. Helmie Arif Wibawa, S.Si, M.Cs. selaku Koordinator Tugas Akhir Jurusan Ilmu

Komputer / Informatika FSM Universitas Diponegoro sekaligus selaku dosen

Pembimbing.

3. Semua pihak yang telah membantu kelancaran dalam pelaksanaan tugas akhir ini,

yang tidak dapat penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam laporan ini masih banyak kekurangan baik dari segi

materi ataupun dalam penyajiannya karena keterbatasan kemampuan dan pengetahuan

penulis. Oleh karena itu, kritik dan saran sangat penulis harapkan. Semoga laporan ini dapat

bermanfaat bagi pembaca pada umumnya dan penulis pada khususnya.

Semarang, 2016

Penulis

viii

DAFTAR ISI

Hal

HALAMAN JUDUL.......................................................................................................... i

HALAMAN PERNYATAAN KEASLIAN SKRIPSI ....................................................... ii

HALAMAN PENGESAHAN .......................................................................................... iii

HALAMAN PENGESAHAN .......................................................................................... iv

ABSTRAK ........................................................................................................................ v

ABSTRACT .................................................................................................................... vi

KATA PENGANTAR .................................................................................................... vii

DAFTAR ISI ................................................................................................................. viii

DAFTAR GAMBAR ....................................................................................................... xi

DAFTAR TABEL.......................................................................................................... xiii

BAB I PENDAHULUAN ..................................................................................................1

1.1. Latar Belakang ..............................................................................................1

1.2. Rumusan Masalah .........................................................................................2

1.3. Tujuan dan Manfaat .......................................................................................3

1.4 Ruang Lingkup ..............................................................................................3

1.5. Sistematika Penulisan ....................................................................................3

BAB II TINJAUAN PUSTAKA ........................................................................................5

2.1. Android .........................................................................................................5

2.2. Citra Digital...................................................................................................5

2.3. Discrete Cosine Transform (DCT) .................................................................6

2.4. Twofish ..........................................................................................................8

2.5. Fisher Yates Shuffling .................................................................................. 12

2.6. Peak Signal to Noise Ratio (PSNR) ............................................................. 13

2.7. Unified Process ........................................................................................... 13

2.8. Unified Modelling Language ....................................................................... 17

ix

BAB III METODE PENELITIAN ................................................................................... 24

3.1. Input Citra ................................................................................................... 25

3.2. Scaling ........................................................................................................ 26

3.2. Transformasi Citra ....................................................................................... 26

3.2. Generated Random Number ........................................................................ 29

3.2. Shuffling ...................................................................................................... 30

3.2. Rekonstruksi Citra ....................................................................................... 32

3.2. Unshuffling .................................................................................................. 33

BAB IV PERANCANGAN DAN ANALISA HASIL ...................................................... 35

4.1. Definisi Kebutuhan ...................................................................................... 35

4.1.1. Deskripsi Aplikasi ................................................................................ 35

4.1.2. Kebutuhan Fungsional .......................................................................... 35

4.1.3. Kebutuhan Non Fungsional................................................................... 36

4.1.4. Model Use Case.................................................................................... 36

4.1.5. Use Case Detail .................................................................................... 37

4.2. Analisis dan Perancangan ............................................................................ 39

4.2.1. Design Model ....................................................................................... 39

4.2.1.1. Class Diagram ...................................................................................... 39

4.2.1.2. Sequence Diagram ................................................................................ 40

4.2.2. Perancangan Antarmuka ....................................................................... 43

4.2.3. Rancangan Pengujian ............................................................................ 46

4.2.3.1. Rancangan Pengujian Fungsional .......................................................... 46

4.2.3.2. Rancangan Pengujian Sistem................................................................. 47

4.3. Implementasi ............................................................................................... 47

4.3.1. Implementasi Sistem ............................................................................. 47

4.3.2. Implementasi Class ............................................................................... 47

4.3.3. Implementasi Interface ......................................................................... 48

x

4.4. Pengujian .................................................................................................... 50

4.4.1. Lingkungan Pengujian .......................................................................... 50

4.4.2. Pengujian Fungsional ............................................................................ 51

4.4.3. Pengujian Sistem .................................................................................. 51

4.4.4. Analisis Hasil Pengujian ....................................................................... 55

BAB V PENUTUP .......................................................................................................... 56

5.1. Kesimpulan ................................................................................................. 56

5.2. Saran ........................................................................................................... 56

DAFTAR PUSTAKA ...................................................................................................... 57

xi

DAFTAR GAMBAR

Hal

Gambar 2.1. Grafik Fungsi Basis 2-D DCT (Erwin, 2011) ................................................. 7

Gambar 2.2. Jaringan Feistel (Mohammad, 2006) .............................................................. 9

Gambar 2.3. Desain Algoritma Twofish ............................................................................ 11

Gambar 2.4. Contoh Tabel Pengacakan Fisher Yates ....................................................... 12

Gambar 2.5. Hubungan Fase dengan Workflow dalam Unified Process (Arlow & Neustadt,

2002) ........................................................................................................... 15

Gambar 2.6. Contoh Dependency ..................................................................................... 18

Gambar 2.7. Contoh Association ...................................................................................... 18

Gambar 2.8. Contoh Generalization ................................................................................. 19

Gambar 3.1. Enkripsi dan Dekripsi .................................................................................. 24

Gambar 3.2. Diagram Alir Proses Enkripsi dan Dekripsi .................................................. 25

Gambar 3.3. (a) Citra Ukuran Asli ; (b) Citra Hasil Scaling .............................................. 26

Gambar 3.4. (a) Citra Asli ; (b) Citra yang Telah Dibagi Menjadi Beberapa Blok ; (c) Citra

Dengan Blok Koefisien DCT ; (d) Blok Tunggal Berukuran 8 x 8 Keofisien

DCT ............................................................................................................ 26

Gambar 3.5. Ilustrasi Proses DCT .................................................................................... 28

Gambar 3.6. Contoh Proses Generated Random Number.................................................. 30

Gambar 3.7. Ilustrasi Proses Pengacakan (Shuffling) ........................................................ 30

Gambar 3.8. Ilustrasi Proses Unshuffling .......................................................................... 34

Gambar 4.1. Use Case Diagram ....................................................................................... 37

Gambar 4.2. Class Diagram ............................................................................................. 40

Gambar 4.3. Sequence Diagram Input Citra...................................................................... 41

Gambar 4.4. Sequence Diagram Enkripsi Citra ................................................................. 41

Gambar 4.5. Sequence Diagram Dekripsi Citra ................................................................ 42

Gambar 4.6. Sequence Diagram Hitung Nilai PSNR ........................................................ 43

Gambar 4.7. Perancangan Antarmuka Halaman Awal ...................................................... 44

Gambar 4.8. Perancangan Antarmuka Halaman Enkripsi ................................................. 44

Gambar 4.9. Perancangan Antarmuka Halaman Dekripsi ................................................. 45

Gambar 4.10. Perancangan Antarmuka Halaman Hitung Nilai PSNR ............................... 46

xii

Gambar 4.11. Implementasi Antarmuka Halaman Utama ................................................. 48

Gambar 4.12. Implementasi Antarmuka Halaman Enkripsi .............................................. 49

Gambar 4.13. Implementasi Antarmuka Halaman Dekripsi .............................................. 49

Gambar 4.14. Implementasi Antarmuka Halaman Hitung Nilai PSNR ............................. 50

xiii

DAFTAR TABEL

Hal

Tabel 2.1. Nilai PSNR ...................................................................................................... 13

Tabel 2.2. Notasi Use Case Diagram ............................................................................... 20

Tabel 2.3. Simbol Activity Diagram ................................................................................. 21

Tabel 2.4. Simbol Class Diagram .................................................................................... 21

Tabel 2.5. Simbol Streotype ............................................................................................. 22

Tabel 2.6. Simbol Sequence Diagram .............................................................................. 22

Tabel 3.1. Contoh Proses Shuffling ................................................................................... 31

Tabel 3.2. Contoh Proses Shuffling ................................................................................... 31

Tabel 3.3. Contoh Proses Shuffling ................................................................................... 31

Tabel 3.4. Contoh Proses Shuffling ................................................................................... 31

Tabel 4.1. Daftar Aktor .................................................................................................... 36

Tabel 4.2. Daftar Use Case .............................................................................................. 36

Tabel 4.3. Use Case Input Citra........................................................................................ 37

Tabel 4.4. Use Case Enkripsi Citra ................................................................................... 38

Tabel 4.5. Use Case Dekripsi Citra .................................................................................. 38

Tabel 4.6. Use Case Hitung Nilai PSNR .......................................................................... 39

Tabel 4.7. Pengujian Fungsional ...................................................................................... 46

Tabel 4.8. Implementasi Class ......................................................................................... 47

Tabel 4.9. Hasil dan Evaluasi Pengujian Sistem ............................................................... 52

Tabel L.1. Tabel Pengujian Proses Input Citra .................................................................. 59

Tabel L.2. Tabel Pengujian Proses Enkripsi ..................................................................... 59

Tabel L.3. Tabel Pengujian Proses Dekripsi ..................................................................... 60

Tabel L.4. Tabel Pengujian Proses Hitung Nilai PSNR ................................................... 61

1

BAB I PENDAHULUAN

Bab ini membahas latar belakang, rumusan masalah, tujuan dan manfaat, ruang

lingkup serta sistematika penulisan penelitian mengenai pembuatan aplikasi keamanan

digital pada perangkat berbasis Android dengan menggabungkan metode transformasi citra

Discrete Cosine Transform, kriptografi algoritma Twofish, dan pengacakan Fisher Yates

Shuffling.

1.1. Latar Belakang

Di era globalisasi saat ini, informasi berkembang semakin pesat. Selain

komputer, penggunaan smartphone sudah menjadi kebutuhan sekunder di kalangan

masyarakat. Di balik penggunaan smartphone terdapat sekian banyak sistem operasi

yang memiliki ragam dan fitur tersendiri. Android merupakan salah satu sistem operasi

yang tengah berkembang dan memiliki daya tarik bagi penggunanya sehingga tidak

heran sistem operasi Android menjadi pilihan utama bagi para pengguna smartphone.

Tingginya tingkat pengguna smartphone membawa pengaruh besar terhadap

keamanan informasi yang terdapat di dalamnya. Dimana penggunaan smartphone

sebagai media penyimpanan maupun pertukaran informasi. Apabila informasi ini

diambil, diketahui, bahkan dimanipulasi oleh pihak-pihak yang tidak berhak atas

informasi tersebut tentu menjadi hal yang sangat merugikan bagi penggunanya. Salah

satu contoh informasi yang bersifat pribadi adalah file gambar, pemilik informasi harus

yakin bahwa file gambar tersebut aman apabila smartphone secara tidak dikehendaki

berpindah tangan, pemilik tidak perlu khawatir informasi pribadi yang dimilikinya

disalahgunakan sehingga informasi yang tersimpan dapat tetap aman dan terjaga

keasliannya.

Salah satu solusi yang ditawarkan untuk menjawab permasalahan proteksi visual

pada citra adalah dengan menyamarkan file tersebut menjadi suatu objek yang tidak

jelas agar tidak mudah untuk dimengerti dan tetap terjaga kerahasiaannya. Hal ini

dapat dilakukan dengan menggabungkan beberapa metode, yaitu metode transformasi

DCT (Discrete Cosine Transform), penyandian kunci menggunakan kriptografi

2

algoritma Twofish, dan teknik pengacakan citra berdasarkan metode Fisher Yates

Shuffling.

Metode DCT adalah transformasi matematika yang mengubah data citra dari

domain spasial ke domain frekeunsi. Frekuensi inilah yang disebut dengan koefisisen

DCT, yang mana nantinya akan dilakukan proses pengacakan. Hasil transformasi balik

ke domain spasial akan menghasilkan cipher-image yang berbeda dan memiliki

karakteristik yang tidak sama dengan plain-image (Rinaldi, 2012). Metode

transformasi DCT digunakan dengan tujuan untuk menambah tingkat kerumitan

proses penyandian citra.

Sementara teknik pengacakan citra pada aplikasi ini menggunakan metode

Fisher Yates Shuffling. Metode Fisher Yates mengacak urutan citra berdasarkan seed

(nilai awal) yang ditentukan dari hasil enkripsi kunci khusus. Proses pembangkitan

kunci itu sendiri menggunakan teknik kriptografi algoritma Twofish. Pengunaan

kriptografi sebagai alat keamanan citra bukan merupakan hal yang baru, karena

sebelumnya telah banyak dilakukan penelitian yang mengangkat kajian tersebut

namun dengan beberapa macam metode yang berbeda. Sebelumnya telah dilakukan

penelitian yang menghasilkan sebuah aplikasi keamanan citra menggunakan

kriptografi algoritma AES Rijndael dengan kombinasi transformasi DWT (Bagus

S.W.P., 2010).

Oleh karena itu, pada penelitian kali ini akan dibangun suatu aplikasi keamanan

citra pada perangkat berbasis sistem operasi Android dengan menggabungkan ketiga

metode tersebut yaitu transformasi Discrete Cosine Transform, kriptografi algoritma

Twofish, dan pengacakan Fisher Yates Shuffling yang diharapkan dapat menjadi salah

satu sistem keamanan citra yang efektif.

1.2. Rumusan Masalah

Berdasarkan uraian latar belakang di atas, dapat dirumuskan permasalahan yang

dihadapi, yaitu bagaimana merancang dan membangun aplikasi pada smartphone

berbasis sistem operasi Android dengan menggabungkan beberapa metode yaitu

transformasi Discrete Cosine Transform, kriptografi algoritma Twofish, dan

pengacakan Fisher Yates Shuffling.

3

1.3. Tujuan dan Manfaat

Tujuan yang ingin dicapai dari penulisan ini adalah untuk menghasilkan suatu

aplikasi keamanan citra digital pada perangkat berbasis sistem operasi Android yang

mengimplementasikan DCT untuk transformasinya, Fisher Yates untuk proses

pengacakan citra, dan algoritma Twofish untuk penyandian kuncinya.

Adapun manfaat yang diharapkan dari penelitian ini adalah sebagai berikut:

1. Sebagai media untuk peng-implementasian ilmu pengetahuan teknologi pada

bidang keamanan data.

2. Dapat menambah ilmu mengenai sistem operasi Android serta bahasa

pemrograman yang digunakan dalam pembuatan aplikasi.

3. Mendapatkan wawasan mengenai transformasi DCT, kriptografi Twofish, dan

Fisher Yates Shuffling dalam proses peng-implementasiannya.

4. Membantu meningkatkan keamanan di dunia teknologi dan informasi terutama

mengenai keamanan dalam proses menyimpan, mengirim, maupun menerima

informasi menggunakan perangkat bergerak berbasis sistem operasi Android.

1.4. Ruang Lingkup

Dalam penyusunan tugas akhir ini diberikan ruang lingkup yang jelas agar

pembahasan lebih terarah dan tidak menyimpang dari tujuan penulisan.

1. Input berupa citra diam dengan format PNG.

2. Menggunakan bahasa pemrograman Java dengan development tools Android

Studio.

3. Pada proses transformasi menggunakan teknik Discrete Cosine Transform.

4. Proses penyandian kunci menggunakan kriptografi algoritma Twofish.

5. Proses shuffling dan unshuffling dengan metode Fisher Yates.

6. Proses input dan output hanya bisa dilakukan dalam satu perangkat.

7. Untuk mengetahui perbandingan kualitas citra asli dengan citra hasil rekayasa

adalah dengan menghitung nilai PSNR-nya.

1.5. Sistematika Penulisan

Sistematika penulisan yang digunakan pada penelitian tugas akhir ini terbagi

dalam beberapa pokok bahasan, yaitu:

4

BAB I PENDAHULUAN

Bab ini membahas latar belakang, rumusan masalah, tujuan dan

manfaat, ruang lingkup serta sistematika penulisan penelitian tugas

akhir mengenai pembuatan aplikasi keamanan digital pada perangkat

berbasis Android dengan menggabungkan metode transformasi citra

Discrete Cosine Transform, kriptografi algoritma Twofish, dan

pengacakan Fisher Yates Shuffling.

BAB II TINJAUAN PUSTAKA

Bab ini menjelaskan tentang teori-teori yang digunakan dalam

penyusunan tugas akhir ini. Teori yang digunakan pada penyusunan

tugas akhir ini meliputi pengertian citra digital, Disrete Cosine

Transformation, Twofish, Fisher Yates Shuffling, Peak Signal to Noise

Ratio (PSNR), proses pengembangan perangkat lunak, permodelan

fungsional dan pengujian perangkat lunak.

BAB III METODOLOGI PENELITIAN

Bab ini membahas tentang analisis masalah dan rancangan

penyelesaiannya. Bab ini berisi antara lain rancangan perhitungan dan

solusi permasalahan, gambaran arsitektur aplikasi, rancangan alur

program dalam bentuk flowchart serta rancangan antar muka.

BAB IV PERANCANGAN DAN ANALISA

Bab ini menguraikan implementsi algoritma dan antarmuka yang telah

dirancang serta langkah-langkah pengujiannya. Bab ini juga

membahas tentang analisis hasil dari penelitian tugas akhir ini.

BAB V PENUTUP

Penutup berisi kesimpulan dari pengerjaan penelitian tugas akhir ini

dan saran-saran dari penulis untuk pengembangan lebih lanjut dari

penelitian serupa.