Implementasi Metode Enkripsi Menggunakan Algoritma XXTEA (Corrected Block Tiny Encryption Algorithm) pada Aplikasi Surat Elektronik Berbasis Web - ITS Repository
- – KI141502 TUGAS AKHIR
IMPLEMENTASI METODE ENKRIPSI
MENGGUNAKAN ALGORITMAXXTEA
(CORRECTED BLOCK TINY ENCRYPTION
ALGORITHM) PADA APLIKASI SURAT ELEKTRONIK BERBASIS WEB KINASIH NUR AZIZAH NRP 5113100178 Dosen Pembimbing I Henning Titi Ciptaningtyas, S.Kom., M.Kom. Dosen Pembimbing II Ir. Muchammad Husni, M.Kom.
Departemen Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember
- – KI141502 TUGAS AKHIR
IMPLEMENTASI METODE ENKRIPSI
MENGGUNAKAN ALGORITMAXXTEA
(CORRECTED BLOCK TINY ENCRYPTION
ALGORITHM) PADA APLIKASI SURAT ELEKTRONIK BERBASIS WEB KINASIH NUR AZIZAH NRP 5113100178 Dosen Pembimbing I Henning Titi Ciptaningtyas, S.Kom., M.Kom. Dosen Pembimbing II Ir. Muchammad Husni, M.Kom. Departemen Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2017
(Halaman ini sengaja dikosongkan)
UNDERGRADUATE THESES – KI141502
IMPLEMENTATION OF ENCRYPTION METHOD
USING XXTEA ALGORITHM (CORRECTED
BLOCK TINY ENCRYPTION ALGORITHM) FOR
WEB BASED ELECTRONIC MAIL SYSTEM KINASIH NUR AZIZAH NRP 5113100178 First Advisor Henning Titi Ciptaningtyas, S.Kom., M.Kom. Second Advisor Ir. Muchammad Husni, M.Kom. Department of Informatics Faculty of Information Technology Sepuluh Nopember Institute of Technology Surabaya 2017
(Halaman ini sengaja dikosongkan)
LEMBAR PENGESAHAN
IMPLEMENTASI METODE ENKRIPSI MENGGUNAKAN
ALGORITMA XXTEA ( CORRECTED BLOCK TINY
ENCRYPTION ALGORITHM) PADA APLIKASI SURAT
ELEKTRONIK BERBASIS WEB
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer pada
Bidang Studi Arsitektur dan Jaringan Komputer Program Studi S-1 Departemen Teknik Informatika
Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember
Oleh:
KINASIH NUR AZIZAH
NRP: 5113100178
Disetujui oleh Pembimbing Tugas Akhir: 1. Henning Titi Ciptaningtyas, S.Kom., M.Kom. .....................
(NIP. 19840708 201012 2 004) (Pembimbing 1) 2. Ir. Muchammad Husni, M.Kom. .....................
(NIP. 19600221 198403 1 001) (Pembimbing 2)
SURABAYA
JULI, 2017
(Halaman ini sengaja dikosongkan)
IMPLEMENTASI METODE ENKRIPSI MENGGUNAKAN
ALGORITMA XXTEA ( CORRECTED BLOCK TINY
ENCRYPTION ALGORITHM) PADA APLIKASI SURAT
ELEKTRONIK BERBASIS WEB
Nama Mahasiswa : KINASIH NUR AZIZAH NRP : 5113100178 Jurusan : Teknik Informatika FTIF-ITSDosen Pembimbing 1 : Henning Titi Ciptaningtyas, S.Kom.,
M.Kom. Dosen Pembimbing 2 : Ir. Muchammad Husni, M.Kom.
Abstrak
Perkembangan pengiriman surat menyurat elektronik semakin berkembang pesat. Dalam surat menyurat dibutuhkan keamanan dalam proses pengirimannya. Salah satu metode untuk mengamankan proses pengiriman surat elektronik agar informasi dan data yang tercantum tidak disalahgunakan oleh pihak yang tidak berwenang adalah dengan proses enkripsi.
Metode yang akan digunakan pada Tugas Akhir ini adalah metode enkripsi menggunakan algoritma XXTEA (Corrected
Block Tiny Encryption Algorithm ). Enkripsi adalah nama yang
diberikan untuk proses penerapan algoritma pada sebuah pesan, yang mana proses tersebut akan mengacak data di dalamnya sehingga sangat sulit dan memakan waktu apabila data hasil enkripsi tersebut disimpulkan tanpa mengetahui kode/sandi khusus. Algoritma XXTEA merupakan pengembangan dari algoritma TEA dan XTEA. Algoritma XXTEA beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit. Pengacakan pada blok XXTEA ini berdasarkan blok pada kanan dan kiri blok yang sedang diacak.
Dari hasil uji coba yang telah dilakukan, dihasilkan bahwa algoritma XXTEA memiliki kecepatan enkripsi yaitu 2,240 ms dan telah dilakukan, dihasilkan bahwa komputer web server mampu menangani 1024 akses pengguna dengan request per second-nya mencapai 34 request.
Kata kunci: Algoritma XXTEA, Enkripsi, Surat Elektronik
IMPLEMENTATION OF ENCRYPTION METHOD USING
XXTEA ALGORITHM (CORRECTED BLOCK TINY
ENCRYPTION ALGORITHM) FOR WEB BASED
ELECTRONIC MAIL SYSTEM
Student’s Name : KINASIH NUR AZIZAH
: 5113100178
Student’s IDDepartment : Teknik Informatika FTIF-ITS
First Advisor : Henning Titi Ciptaningtyas, S.Kom.,M.Kom.
Second Advisor : Ir. Muchammad Husni, M.Kom.
Abstract
The development of electronic mail is growing rapidly. Inelectornic mail, security is needed for delivery process. One
method to secure the process of sending electronic mail so that the
information and data listed are not misused by unauthorized
parties is by the process of encryption.The method that will be used in this Final Project is the
encryption method using XXTEA algorithm (Corrected Block Tiny
Encryption Algorithm). Encryption is a process of applying an
algorithm to a message, which the process will scramble the data
in it so it is very difficult and time consuming if the encrypted data
is concluded without knowing the code / password. The XXTEA
algorithm is the development of TEA and XTEA algorithms. The
XXTEA algorithm operates in 32 bit block size and 128 bit key
length. Randomization on XXTEA block is based on the block on
the right and left of the block being randomized.From the experiments that have been done, shows that the
XXTEA algorithm has an encryption speed of 2,240 ms and
decryption speed of 2,114 ms. Performance test shows that web
server can handle 1024 user access with request per second
reached 34 requests.
Keywords : Electronic Mail, Encryption, XXTEA Algorithm
KATA PENGANTAR Alhamdulillahirabbil’alamin, segala puji bagi Allah SWT yang telah melimpahkan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul:
“Implementasi Metode Enkripsi Menggunakan Algoritma
XXTEA ( Corrected Block Tiny Encryption Algorithm) pada
Aplikasi Surat Elektronik Berbasis Web
” Terselesaikannya Tugas Akhir ini tidak terlepas dari bantuan dan dukungan banyak pihak, Oleh karena itu melalui lembar ini penulis ingin mengucapkan terima kasih dan penghormatan kepada:
1. Allah SWT serta junjungan Nabi Muhammad SAW, karena limpahan rahmat dan karunia-Nya penulis dapat menyelesaikan Tugas Akhir dan juga perkuliahan di Teknik Informatika ITS.
2. Kedua orangtua penulis, Papa dan Mama penulis, Rofiq dan Setyawati yang tiada hentinya memberikan dukungan doa, moral, dan material kepada penulis sehingga penulis dapat menyelesaikan Tugas Akhir ini.
3. Kakak penulis, Religia Nur Aisyah dan keluarga tercinta yang telah memberikan dukungan dan semangatnya kepada penulis.
4. Ibu Henning Titi Ciptaningtyas, S.Kom., M.Kom. dan Bapak Ir. Muchammad Husni, M.Kom. selaku pembimbing I dan II yang telah membimbing dan memberikan motivasi, nasihat dan bimbingan dalam menyelesaikan Tugas Akhir ini.
5. Bapak Darlis Herumurti, S.Kom., M.Kom. selaku kepala jurusan Teknin Informatika ITS dan segenap dosen dan karyawan Teknik Informatika ITS yang telah memberikan ilmu dan pengalaman kepada penulis selama menjalani masa studi di Teknik Informatika ITS.
6. Rekan diskusi Yusuf Nugroho yang selalu memberikan bimbingan dan membantu ketika penulis menemukan kesusahan atau kesalahan dalam pengerjaan Tugas Akhir.
7. Rekan penulis dalam pengerjaan Tugas Akhir yaitu Nindyasari Dewi Utari yang menjadi penyemangat dalam mengerjakan Tugas Akhir.
8. Sahabat penulis, Dhita, Lino, Adi, Apip, Saddam, Rifqi, Harry, Nanang, Ridho, Arvi, dan Dhea yang selalu ada dan saling memberi semangat selama pengerjaan Tugas Akhir.
9. Teman-teman Laboratorium AJK, Daniel, Fathoni, Mas Thiar, Syukron, Wicak, Uul, Asbun, Risma, Awan, Ambon, Vivi, Oing, Didin, Fuad, Bebet, Fatih yang senantiasa menghibur dan mendukung penulis dalam mengerjakan tugas akhir ini serta menemani penulis di laboratorium.
10. Serta semua pihak yang yang telah turut membantu penulis dalam menyelesaikan Tugas Akhir ini.
Penulis menyadari bahwa laporan Tugas Akhir ini masih memiliki banyak kekurangan. Oleh karena itu dengan segala kerendahan hati penulis mengharapkan kritik dan saran dari pembaca untuk perbaikan penulis kedapannya. Selain itu, penulis berharap laporan Tugas Akhir ini dapat berguna bagi pembaca secara umum.
Surabaya, Juli 2017
DAFTAR ISI
LEMBAR PENGESAHAN ......................................................... v
Abstrak ....................................................................................... vii
Abstract ....................................................................................... ix
DAFTAR ISI .............................................................................xiii
DAFTAR GAMBAR ............................................................... xvii
DAFTAR TABEL ..................................................................... xix
DAFTAR KODE SUMBER .................................................... xxi
BAB I PENDAHULUAN ........................................................ xxi
1.1 Latar Belakang ................................................................. 1
1.2 Rumusan Masalah ............................................................ 2
1.3 Batasan Permasalahan ...................................................... 2
1.4 Tujuan .............................................................................. 3
1.5 Manfaat............................................................................. 3
1.6 Metodologi ....................................................................... 3
1.6.1 Penyusunan Proposal Tugas Akhir ........................... 3
1.6.2 Studi Literatur ........................................................... 4
1.6.3 Implementasi Perangkat Lunak................................. 4
1.6.4 Pengujian dan Evaluasi ............................................. 4
1.6.5 Penyusunan Buku ..................................................... 4
1.7 Sistematika Penulisan Laporan ........................................ 5
BAB II TINJAUAN PUSTAKA ................................................. 7
2.1 XXTEA ............................................................................ 7
2.2 Web Service RESTful API ............................................. 10
2.3 Node.js ........................................................................... 11
2.4 Kerangka Kerja Express ................................................. 12
2.5 MySQL ........................................................................... 13
2.6 Pug.js .............................................................................. 14
BAB III PERANCANGAN SISTEM ....................................... 15
3.1 Kasus Penggunaan .......................................................... 15
3.2 Arsitektur Sistem ............................................................ 16
3.2.1 Desain Umum Sistem ............................................. 16
3.2.2 Desain Backend....................................................... 25
3.2.3 Desain Frontend ..................................................... 26
BAB IV IMPLEMENTASI ....................................................... 29
4.1 Lingkungan Implementasi .............................................. 29
4.2 Implementasi .................................................................. 30
4.2.1 Implementasi Node.js ............................................. 30
4.2.2 Implementasi Basis Data ......................................... 32
4.2.3 Implementasi Backend ............................................ 34
4.2.3.1 Inisiasi Session ................................................. 37
4.2.3.2 Login ................................................................ 37
4.2.3.3 Mengirim Pesan ............................................... 38
4.2.3.4 Daftar Pesan Masuk ......................................... 40
4.2.3.5 Detail Pesan Masuk ......................................... 42
4.2.3.6 Daftar Pesan Keluar ......................................... 44
4.2.3.7 Detail Pesan Keluar ......................................... 45
4.2.4 Implementasi Frontend ........................................... 46
4.2.3.8 Halaman Index ................................................. 50
4.2.3.9 Halaman Login ................................................ 50
4.2.5 Implementasi Algoritma XXTEA ........................... 50
BAB V UJI COBA DAN EVALUASI ...................................... 53
5.1 Lingkungan Pengujian .................................................... 53
5.2 Skenario Uji Coba .......................................................... 54
5.2.1 Uji Fungsionalitas ................................................... 54
5.2.2 Uji Performa ............................................................ 54
5.2.2.1 Uji Performa Aplikasi ...................................... 55
5.2.2.2 Uji Performa Algoritma ....................................... 56
5.3 Hasil Uji Coba ................................................................ 56
5.3.1 Hasil Uji Fungsionalitas .......................................... 57
5.3.2 Hasil Uji Performa .................................................. 60
5.3.2.1 Hasil Uji Performa Aplikasi ................................ 60
5.3.2.2 Hasil Uji Performa Algoritma ............................. 67
5.3.3 Evaluasi ................................................................... 70
BAB VI KESIMPULAN DAN SARAN ................................... 71
6.1. Kesimpulan ..................................................................... 71
6.2. Saran ............................................................................... 71
DAFTAR PUSTAKA ................................................................ 73
LAMPIRAN ............................................................................... 75
BIODATA PENULIS ................................................................ 93
(Halaman ini sengaja dikosongkan)
DAFTAR GAMBAR
Gambar 2.1 Proses Pengacakan pada Satu Iterasi ......................... 8Gambar 2.2 Arsitektur RESTful .................................................. 11Gambar 2.3 Proses asynchronous Node.js [6] ............................. 12Gambar 2.4 Contoh Window MySQL Workbench ..................... 14Gambar 3.1 Diagram Kasus Penggunaan .................................... 15Gambar 3.2 Diagram Alir Membuka Pesan ................................ 17Gambar 3.3 Diagram Alir Membuat Pesan ................................. 18Gambar 3.4 Desain Sistem Secara Umum .................................. 19Gambar 3.5 Pengacakan Pertama ................................................ 21Gambar 3.6 Pengacakan Kedua ................................................... 22Gambar 3.7 Pengacakan Ketiga .................................................. 23Gambar 3.8 Pengacakan Keempat ............................................... 24Gambar 3.9 Proses Enkripsi Tahap Akhir ................................... 25Gambar 3.10 Desain Arsitektur pada Backend ........................... 26Gambar 3.11 Desain Arsitektur pada Frontend ........................... 27Gambar 4.1 Pseudocode auth.js .............................................. 37Gambar 4.2 Pseudocode index.js ........................................... 38Gambar 4.3 Pseudocode enkrip.js ......................................... 38Gambar 4.4 Pseudocode modul.js ........................................... 39Gambar 4.5 Pseudocode Mengirim Pesan ................................... 40Gambar 4.6 Pseudocode inbox.js ........................................... 41Gambar 4.7 Pseudocode Detail Pesan Masuk ............................. 42Gambar 4.8 Pseudocode Membalas Pesan .................................. 43Gambar 4.9 Pseudocode Mengunduh Lampiran ......................... 43Gambar 4.10 Pseudocode outbox.js ....................................... 44Gambar 4.11 Pseudocode Detail Pesan Keluar ........................... 45Gambar 4.12 Pengunduhan File pada Pesan Keluar ................... 46Gambar 4.13 Halaman Index ....................................................... 50Gambar 4.14 Pseudocode Implementasi Algoritma XXTEA ..... 51Gambar 5.1 Pseudocode test.js .............................................. 56Gambar 5.2 Hasil Uji Fungsionalitas Menggunakan WiresharkBelum Terenkripsi ....................................................................... 59
Gambar 5.3 Hasil Uji Fungsionalitas Menggunakan WiresharkSudah Terenkripsi ........................................................................ 59
Gambar 5.4 Grafik Performa 1 Node CPU .................................. 60Gambar 5.5 Grafik Performa 2 Node CPU .................................. 61Gambar 5.6 Grafik Performa 3 Node CPU .................................. 62Gambar 5.7 Grafik Performa 4 Node CPU .................................. 63Gambar 5.8 Grafik Performa 5 Node CPU .................................. 64Gambar 5.9 Grafik Performa 6 Node CPU .................................. 65Gambar 5.10 Grafik Performa 7 Node CPU ................................ 66Gambar 5.11 Grafik Performa 8 Node CPU ................................ 67Gambar 5.20 Grafik Hasil Waktu Enkripsi XXTEA ................... 69Gambar 5.21 Grafik Hasil Waktu Dekripsi XXTEA................... 70Gambar 5.12 Tabel Hasil Uji Performa 1 Node CPU ................. 89Gambar 5.13 Tabel Hasil Uji Performa 2 Node CPU ................. 89Gambar 5.14 Tabel Hasil Uji Performa 3 Node CPU ................. 90Gambar 5.15 Tabel Hasil Uji Performa 4 Node CPU ................. 90Gambar 5.16 Tabel Hasil Uji Performa 5 Node CPU ................. 91Gambar 5.17 Tabel Hasil Uji Performa 6 Node CPU ................. 91Gambar 5.18 Tabel Hasil Uji Performa 7 Node CPU ................. 92Gambar 5.19 Tabel Hasil Uji Performa 8 Node CPU ................. 92
DAFTAR TABEL
Tabel 2.1 Detail XXTEA............................................................. 10Tabel 3.1 Daftar Kode Kasus Penggunaan .................................. 16Tabel 3.2 Daftar Rute pada Backend ........................................... 26Tabel 3.3 Daftar Rute pada Frontend .......................................... 27Tabel 4.1 Spesifikasi Lingkungan Implementasi ........................ 29Tabel 4.2 Implementasi Basis Data ............................................. 33Tabel 4.3 Implementasi Backend ................................................ 35Tabel 4.4 Implementasi Frontend ................................................ 47Tabel 5.1 Spesifikasi Lingkungan Pengujian .............................. 53Tabel 5.2 Hasil Eksekusi Uji Fungsionalitas ............................... 57Tabel 5.3 Hasil Pengujian Performa Enkripsi XXTEA ............... 68Tabel 5.4 Hasil Pengujian Performa Dekripsi XXTEA .............. 68
(Halaman ini sengaja dikosongkan)
DAFTAR KODE SUMBER
(Halaman ini sengaja dikosongkan)
BAB I PENDAHULUAN
1.1 Latar Belakang
Pada era globalisasi ini, aktivitas sehari-hari tidak dapat lepas dari teknologi yang semakin canggih. Dahulu, untuk melakukan komunikasi jarak jauh harus melalui surat-menyurat yang membutuhkan jasa pengiriman atau kurir untuk menempuh jarak dengan waktu yang tidak singkat. Sekarang, untuk melakukan komunikasi jarak jauh sangatlah mudah dengan hanya jangkauan jari dan dalam waktu yang sangat cepat menggunakan aplikasi chat atau menggunakan email atau yang biasa disebut surat elektronik.
Surat elektronik digunakan oleh berbagai kalangan untuk berbagai kepentingan. Salah satu contoh kalangan yang menggunakan surat elektronik adalah institusi pendidikan yaitu Institut Teknologi Sepuluh Nopember (ITS). ITS menggunakan surat elektronik untuk surat-menyurat sesama dosen dan karyawan. Sejauh ini, aplikasi E-Surat ITS belum memiliki keamanan pada proses pengirimannya.
Oleh karena itu, dibutuhkan suatu metode untuk mengamankan proses pengiriman surat elektronik tersebut agar informasi dan data yang tercantum tidak disalah gunakan oleh pihak yang tidak berwenang. Metode yang akan digunakan adalah metode enkripsi. Enkripsi adalah nama yang diberikan untuk proses penerapan algoritma pada sebuah pesan, yang mana proses tersebut akan mengacak data di dalamnya sehingga sangat sulit dan memakan waktu apabila data hasil enkripsi tersebut disimpulkan tanpa mengetahui kode/sandi khusus.
Pada Tugas Akhir ini diterapkan metode enkripsi algoritma
XXTEA (Corrected Block Tiny Encryption Algorithm) untuk melakukan pengamanan data pada proses pengiriman data aplikasi E-Surat. Karakteristik XXTEA adalah small, secure, simple, and
fast . Jadi, dengan implementasi algoritma XXTEA diharapkan
proses pengiriman surat elektronik di ITS dapat diamankan.1.2 Rumusan Masalah
Tugas Akhir ini mengangkat beberapa rumusan masalah sebagai berikut:
1. Bagaimana cara menerapkan metode enkripsi menggunakan algoritma XXTEA (Corrected Block Tiny
Encryption Algorithm ) pada aplikasi surat elektronik E-
Surat?
2. Bagaimana hasil dari penerapan metode enkripsi yang menggunakan algoritma XXTEA (Corrected Block Tiny
Encryption Algorithm ) pada aplikasi surat elektronik E-
Surat?
1.3 Batasan Permasalahan
Permasalahan yang dibahas pada Tugas Akhir ini memiliki batasan sebagai berikut:
1. Model arsitektur yang digunakan adalah client-server.
2. Bahasa pemrograman yang digunakan adalah Javascript dengan Node.js sebagai kerangka kerjanya.
3. Kerangka kerja dari Node.js yang digunakan adalah Express.
4. Template engine untuk tampilan antarmuka yang digunakan adalah Pug.js.
5. Database yang digunakan adalah MySQL.
6. Aplikasi yang dibuat adalah aplikasi surat elektronik dengan layanan full service email. Jadi alamat email yang digunakan tidak asli.
7. Pesan yang dienkripsi hanya isi pesan teks, lampiran tidak termasuk.
1.4 Tujuan
Tujuan dari Tugas Akhir ini adalah sebagai berikut:
1. Mengimplementasikan metode enkripsi menggunakan algoritma XXTEA (Corrected Block Tiny Encryption
Algorithm ) dalam mengamankan aplikasi surat elektronik.
2. Mengetahui performa algoritma XXTEA (Corrected Block
Tiny Encryption Algorithm ) dalam aplikasi surat elektronik berbasis web.
3. Mengetahui performa dari aplikasi surat elektronik berbasis web.
1.5 Manfaat
Manfaat yang diperoleh dari pembuatan Tugas Akhir ini adalah pengiriman pesan pada aplikasi E-Surat menjadi aman berdasarkan hasil implementasi metode enkripsi algoritma XXTEA (Corrected Block Tiny Encryption Algorithm).
1.6 Metodologi
Pembuatan Tugas Akhir ini dilakukan dengan menggunakan metodologi sebagai berikut:
1.6.1 Penyusunan Proposal Tugas Akhir
Tahapan awal dari Tugas Akhir ini adalah penyusunan Proposal Tugas Akhir. Proposal Tugas Akhir berisi pendahuluan, deskripsi dan gagasan metode
- – metode yang dibuat dalam Tugas Akhir ini. Pendahuluan ini terdiri atas hal yang menjadi latar belakang diajukannya Tugas Akhir, rumusan masalah yang diangkat, batasan masalah untuk Tugas Akhir, dan manfaat dari hasil pembuatan Tugas Akhir ini. Selain itu dijabarkan pula tinjauan pustaka yang digunakan sebagai referensi pendukung
1.6.2 Studi Literatur
Tugas Akhir ini menggunakan literatur paper yang berasal dari jurnal internasional bereputasi yaitu IEEE untuk mencari informasi yang dapat dijadikan referensi dalam pengerjaan Tugas Akhir ini. Selain itu juga digunakan sejumlah referensi buku dan literatur lain yang berhubungan dengan metode enkripsi yang diusulkan pada Tugas Akhir ini termasuk tahap pembuatan aplikasi E-Surat itu sendiri.
1.6.3 Implementasi Perangkat Lunak
Implementasi merupakan tahap untuk membangun metode- metode yang sudah diajukan pada proposal Tugas Akhir. Untuk membangun algoritma yang telah dirancang sebelumnya, maka dilakukan implementasi dengan menggunakan suatu perangkat lunak.
1.6.4 Pengujian dan Evaluasi
Pada tahap ini dilakukan pengujian terhadap hasil implementasi dengan membandingkan performa dan keamanan metode enkripsi algoritma XXTEA dan metode enkripsi algortima RC4 sekaligus evaluasi dilakukan dengan melihat kesesuaian perencanaan.
1.6.5 Penyusunan Buku
Pada tahap ini dilakukan penyusunan buku yang menjelaskan seluruh konsep, teori dasar dari metode yang digunakan, implementasi, serta hasil yang telah dikerjakan sebagai dokumentasi dari pelaksanaan Tugas Akhir.
1.7 Sistematika Penulisan Laporan
Sistematika penulisan laporan Tugas Akhir adalah sebagai berikut:
1. Bab I. Pendahuluan
Bab ini berisikan penjelasan mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, dan sistematika penulisan dari pembuatan Tugas Akhir.
2. Bab II. Tinjauan Pustaka
Bab ini berisi kajian teori dari metode dan algoritma yang digunakan dalam penyusunan Tugas Akhir ini. Secara garis besar, bab ini berisi tentang enkripsi dengan menggunakan algoritma XXTEA.
3. Bab III. Perancangan Sistem
Bab ini berisi pembahasan mengenai perancangan dari aplikasi E-Surat menggunakan metode enkripsi algoritma XXTEA.
4. Bab IV. Implementasi
Bab ini menjelaskan implementasi yang berbentuk kode sumber dari rancangan aplikasi E-Surat menggunkn metode enkripsi algoritma XXTEA.
5. Bab V. Hasil Uji Coba dan Evaluasi
Bab ini berisikan hasil uji coba dari keamanan aplikasi E-Surat menggunakan algoritma XXTEA dan kemudian dibandingkan dengan algortima RC4.
6. Bab VI. Kesimpulan dan Saran
Bab ini merupakan bab yang menyampaikan kesimpulan dari hasil uji coba yang dilakukan, masalah-masalah yang dialami pada proses pengerjaan Tugas Akhir, dan saran untuk pengembangan solusi ke depannya.
7. Daftar Pustaka
Bab ini berisi daftar pustaka yang dijadikan literatur dalam Tugas Akhir.
8. Lampiran Dalam lampiran terdapat tabel-tabel data hasil uji coba dan kode sumber program secara keseluruhan.
(Halaman ini sengaja dikosongkan)
BAB II TINJAUAN PUSTAKA Bab ini berisi pembahasan mengenai teori-teori dasar yang
digunakan dalam Tugas Akhir. Teori-teori tersebut diantaranya adalah XXTEA dan beberapa teori lain yang mendukung pembuatan Tugas Akhir.
2.1 XXTEA
XXTEA atau Corrected Block Tiny Encryption Algorithm adalah algoritma enkripsi sederhana tapi kuat yang diciptakan oleh Roger M. Needham dan David J. Wheeler untuk menutupi kelemahan algoritma Block Tiny Encryption Algorithm (Block TEA). Sebelum Block TEA diciptakan, algoritma TEA dan XTEA telah lebih dahulu dikembangkan. Namun masing-masing algoritma tersebut memiliki kelemahan tersendiri sehingga dikembangkan secara bertahap hingga lahirlah algoritma XXTEA.
Penyandian XXTEA berbasis pada iterasi Feistel dan menggunakan banyak ronde untuk mendapatkan keamanan. Sebuah perubahan dari plaintext akan mengubah sekitar setengah dari ciphertext tanpa meninggalkan jejak di mana perubahan berasal.
XXTEA beroperasi pada blok yang berukuran tetap yaitu dalam ukuran blok kelipatan 32 bit dengan ukuran minimal 64 bit dan memiliki panjang kunci 128 bit. Jumlah dari putaran lengkap bergantung pada ukuran blok, tetapi terdapat minimal 6 dan bertambah terus hingga 32 untuk ukuran blok yang lebih kecil. Algoritma ini menggunakan lebih banyak fungsi pengacakan yang menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok. Berikut akan dijelaskan proses pengacakan yang terjadi pada satu iterasi algoritma XXTEA [1]. Keterangan simbol:
1. Xr : blok plaintext, dimana r adalah urutan blok yang sedang diacak.
2. X r-1 : blok plaintext, dimana r-1 adalah urutan blok sebelum blok yang sedang diacak.
3. X r+1 : blok plaintext, dimana r+1 adalah urutan blok setelah blok yang sedang diacak. 4. q : jumlah iterasi yang sedang dilakukan
5. DELTA : q dikalikan dengan konstanta yang bernilai 0x9E3779B.
6. Kr : blok kata kunci ke-r dimana r sama dengan keterangan di atas. 7. << n : pergeseran bit ke kiri sebanyak n kali. 8. >> n : pergeseran bit ke kanan sebanyak n kali. 9. : operasi XOR. 10. : operasi penambahan.
Gambar 2.1 Proses Pengacakan pada Satu IterasiKeterangan warna: 1. Kotak hijau : output program.
2. Kotak merah : input user. Satu iterasi dalam XXTEA menampilkan proses pengacakan yang dilakukan pada satu iterasinya. Proses iterasi dalam XXTEA dilakukan dalam dua kali iterasi yang dilakukan secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana
q = 6 +52/n
dengan n ≥ 1 dimana n adalah jumlah blok dari plaintext. Lalu pada iterasi selanjutnya, iterasi dilakukan sebanyak n kali.
Proses pengacakan yang dilakukan dalam satu iterasi
XXTEA adalah sebagai berikut: 1. Algoritma akan mengacak blok ke-r dari plaintext.
2. Proses akan mengambil x r-1 , x r+1 , DELTA, dan kata kunci sebagai input.
3. Pengacakan pertama yaitu x r-1 << 2 di-XOR-kan dengan x r+1 >> 5.
4. Pengacakan kedua yaitu x r-1 >> 3 di-XOR-kan dengan x r+1 << 4.
5. Hasil yang didapat dari tahap 3 dan 4 ditambahkan.
6. Pengacakan ketiga yaitu x r-1 di-XOR-kan dengan DELTA yang merupakan perkalian antara konstanta DELTA yang bernilai 0x9E3779B dengan jumlah iterasi pertama yang telah dilakukan
7. Pengacakan keempat yaitu x r+1 di-XOR-kan dengan salah satu blok kata kunci ke-r yang sebelumnya telah di-XOR- kan dengan DELTA >> 2.
8. Hasil yang didapat dari tahap 6 dan 7 ditambahkan.
9. Hasil yang didapat dari tahap 5 dan 8 di-XOR-kan.
10. Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r.
Penjelasan algoritma XXTEA secara singkat dalam satu proses pengacakan terdapat pada Tabel 2.1 di bawah ini.
Tabel 2.1 Detail XXTEANo. Variabel Keterangan
1 Panjang kunci 128 bit
2 Ukuran blok Tidak tetap, bergantung pada plaintext
3 Struktur Jaringan Feistel
4 Ronde Tidak tetap, 6-32 ronde Feistel (sekitar 3-16 putaran) bergantung pada panjang blok
Pada penelitian ini, algoritma XXTEA digunakan sebagai metode enkripsi dan dekripsi untuk mengamankan pengiriman pesan pada aplikasi E-Surat. Algoritma XXTEA dipilih sebagai metode enkripsi yang diterapkan pada aplikasi ini karena XXTEA merupakan metode enkripsi blok cipher yang cepat dan cocok untuk mengenkripsi isi pesan yang panjang. Alasan lain dipilihnya
XXTEA sebagai metode enkripsi adalah XXTEA merupakan algoritma terbaik karena merupakan pengembangan dari algoritma pendahulunya yaitu TEA dan XTEA.
2.2 Web Service RESTful API
Representational State Transfer atau biasa disebut REST
adalah suatu arsitektur metode komunikasi yang sering diterapkan dalam pengembangan layanan berbasis web arsitektur. REST yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi tertentu, user akan bisa mengakses antarmuka aplikasi yang dimaksudkan [2].
Arsitektur REST sesungguhnya berbasis pada 3 hal yang bersifat mendasar, yaitu [3]:
1. Identifikasi sumberdaya menggunakan URL (Uniform Resource Locator ).
2. Antarmuka yang seragam, yaitu PUT, GET, POST, dan DELETE.
3. Interaksi pada aplikasi dilakukan melalui hyperlink.
web server browser page request HTML page
Gambar 2.2 Arsitektur RESTfulGambar 2.2 menunjukkan arsitektur RESTful pada sebuah aplikasi. Pada penelitian ini web service yang digunakan untukmembangun aplikasi E-Surat adalah RESTful API.
2.3 Node.js
Node.js adalah sebuah platform yang dibuat di atas Javascript Runtime-nya Chrome. Dengan kata lain, kodingan pada server akan dieksekusi dengan cara yang mirip dengan ketika di browser.
Untuk penulisan kodingan, teknik-teknik Javascript yang telah umum dapat diterapkan di node.js. Node.js memiliki beberapa kelebihan, antara lain cepat, event-driven, dan ringan. Namun keistimewaan yang paling utama dari menggunakan node.js adalah pemrograman asynchronous [4].
Asynchronous berarti non-blocking I/O. Ini berarti setiap
operasi asynchronous harus segera mungkin mengembalikan nilai agar program tidak perlu menunggu proses baca tulis ke I/O. Proses
asynchronous dapat dilihat pada Gambar 2.3. Kebalikan dari
asynchronous , sebuah program yang menjalankan operasi
synchronous akan menunggu operasi itu selesai baru kemudian
program dapat melanjutkan operasi lainnya.Sedangkan istilah event-driven disini sama dengan event-
based programming yaitu urutan atau flow program ditentukan
oleh sebuah events. Events didefinisikan dengan perubahan pada
window lain, penekanan keyboard, sampai pada request halaman
website . Hal paling dasar sekaligus terpenting dari event-driven ini
adalah event-handler atau callback. Callback adalah sebuah fungsi atau subroutine yang dijadikan sebagai argumen pada operasi- operasi asynchronous. Callback akan dipanggil sekali setelah operasi selesai dilakukan [5].
Gambar 2.3 Proses asynchronous Node.js [6]Pada penelitian ini, Node.js digunakan sebagai kerangka kerja untuk membangun aplikasi E-Surat dengan bahasa pemrogramannya adalah Javascript.
2.4 Kerangka Kerja Express
Express.js adalah satu web framework paling populer di dunia Node.js. Dokumentasinya yang lengkap dan penggunaannya yang cukup mudah, dapat membuat kita mengembangkan berbagai produk seperti aplikasi web ataupun RESTful API. Express pun dapat digunakan menjadi pijakan untuk membangun web
framework yang lebih kompleks seperti, Sails.js, MEAN
(MongoDB, Express.js, Angular.js, Node.js) dan MERN (MongoDB, Express.js, React.js, Node.js). Express dibuat oleh TJ Holowaychuk dan sekarang dikelola oleh komunitas [7].
Beberapa keunggulan yang dimiliki oleh Express antara lain:
1. Dukungan pembuatan middleware 2.
Dukungan terhadap berbagai HTTP verb seperti POST, GET, PUT, DELETE, OPTION, HEAD, dan lainnya
3. Sudah terpasang template engine Jade 4.
Manajemen file statik seperti CSS dan Javascript
5. Sangat bebas untuk dikostumisasi
2.5 MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (Database Management System) yang bersifat open
source dan merupakan salah satu DBMS yang populer saat ini.
Sistem basis data MySQL mendukung beberapa fitur seperti
multithreaded , dan multi-user. Basis data ini dibuat untuk
keperluan sistem basis data yang cepat, handal dan mudah digunakan [8].
Beberapa kelebihan MySQL adalah tersedia untuk berbagai platform, sintaks yang mudah dipelajari dan tidak rumit, memiliki system keamanan yang cukup baik, dapat digunakan dengan berbagai bahasa pemrograman umum seperti C, C++, Java, Perl, PHP, dan sebagainya. Sedangkan kekurangan MySQL adalah sulit untuk diaplikasikan pada intansi dengan basis data yang besar dan tidak cocok untuk aplikasi mobile dan games [9].
Pada Tugas Akhir ini, sistem basis data yang digunakan adalah MySQL Workbench. MySQL Workbench merupakan salah satu produk dari MySQL yang diciptakan untuk para arsitek
database , programmers, dan DBA (Database Administration).
MySQL Workbench menyediakan layanan pemodelan data, pemrograman SQL, dan berbagai macam tools administrasi yang lengkap untuk konfigurasi server, administrasi user, backup, dan lain-lain. MySQL Workbench tersedia untuk sistem operasi Windows, Linux, dan Mac OS X. Gambar 2.4 merupakan salah satu contoh window MySQL Workbench [10].Gambar 2.4 Contoh Window MySQL Workbench2.6 Pug.js
Pug.js adalah salah satu Javascript templating engine yang terkenal. Awalnya, Pug.js bernama Jade. Namun karena suatu hal Jade berganti nama menjadi Pug.js pada tahun 2015.
Pug.js merupakan templating engine yang berperforma tinggi yang terinspirasi dari Haml (HTML abstraction markup
language ) dan diimplementasikan menggunakan Javascript pada
Node.js. Contoh kelebihan penggunaan Pug.js adalah tidak perlu menggunakan tag penutup, pemrogramannya mengharuskan menggunakan indentasi, dan tersedia untuk diimplementasikan di PHP, scala, ruby, python dan Java. Sedangkan beberapa kekurangan Pug.js adalah tidak semua orang menyukai pemrograman yang bergantung pada indentasi, tidak cocok untuk output selain HTML, dan tidak mendukung streaming [11].
Pada penelitian ini, Pug.js digunakan untuk membuat antarmuka aplikasi E-Surat.
BAB III PERANCANGAN SISTEM Bab ini menjelaskan tentang perancangan dan pembuatan
sistem perangkat lunak. Sistem perangkat lunak yang dibuat pada Tugas Akhir ini adalah sistem surta elektronik sederhana yang isi pesannya dienkripsi menggunakan algoritma XXTEA. Pada bab ini pula akan dijelaskan gambaran umum sistem dalam bentuk flowchart.
3.1 Kasus Penggunaan
Pada sub bab ini akan dijelaskan mengenai diagram kasus penggunaan sistem yang dikerjakan pada Tugas Akhir ini.
Gambar 3.1 Diagram Kasus PenggunaanDeskripsi diagram kasus penggunaan pada Gambar 3.1 akan dijelaskan pada Tabel 3.1.
Tabel 3.1 Daftar Kode Kasus PenggunaanNo Nama Aktor Deskripsi
UC001 Mengirim pesan Pengguna Pengguna dapat mengirim pesan UC002 Melihat pesan Pengguna Pengguna dapat masuk melihat pesan yang masuk
UC003 Melihat pesan Pengguna Pengguna dapat keluar melihat pesan yang telah dikirim
UC004 Mengunggah Pengguna Pengguna dapat lampiran mengunggah lampiran yang terdapat pada pesan
UC005 Mengunduh Pengguna Pengguna dapat lampiran mengunduh lampiran yang terdapat pada pesan
3.2 Arsitektur Sistem
Pada sub bab ini akan dibahas mengenai arsitektur sistem yang meliputi desain umum dari sistem yang akan dibangun, desain backend, desain frontend, dan desain algortima XXTEA.
3.2.1 Desain Umum Sistem
Desain umum sistem pada Tugas Akhir ini adalah membuat aplikasi surat elektronik sederhana yang dalam proses pengirimannya terenkripsi menggunakan algoritma XXTEA. Sistem ini dibuat dengan menggunakan Node.js dengan bahasa pemrograman Javascript dan Express sebagai kerangka kerjanya.
Gambar 3.2 Diagram Alir Membuka PesanGambar 3.3 Diagram Alir Membuat PesanSkenario penggunaan aplikasi sebenarnya tidak beda dengan pengiriman email biasa. Klien A membuat pesan baru dan mengirimkan pesan tersebut kepada klien B. Kemudian klien B membuka pesan yang telah masuk di inbox klien B. Apabila pada pesan tersebut terdapat lampiran, maka klien B dapat mengunduh lampiran yang tertera. Diagram alir membuat pesan dapat dilihat pada Gambar 3.2 dan diagram alir membuka pesan pada Gambar 3.3. Untuk desain arsitektur sistem dapat dilihat pada Gambar 3.4. Klien A Database
Klien B