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 ALGORITMA

  XXTEA

(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 ALGORITMA

  XXTEA

(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-ITS

Dosen 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 ID

Department : 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. In

electornic 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 Wireshark

  Belum Terenkripsi ....................................................................... 59

Gambar 5.3 Hasil Uji Fungsionalitas Menggunakan Wireshark

  Sudah 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
pembuatan Tugas Akhir. Terdapat pula sub bab jadwal kegitan yang menjelaskan jadwal pengerjaan Tugas Akhir.

  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 Iterasi

  Keterangan 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 XXTEA

  No. 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 untuk

  membangun 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 Workbench

2.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 Penggunaan

  Deskripsi diagram kasus penggunaan pada Gambar 3.1 akan dijelaskan pada Tabel 3.1.

Tabel 3.1 Daftar Kode Kasus Penggunaan

  No 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 Pesan

  Skenario 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