SKRIPSI
MUHAMMAD ASRI SALZAR
091402032
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
2
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh
ijazah Sarjana Teknologi Informasi
MUHAMMAD ASRI SALZAR
091402032
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI AES DAN RABIN PADA
APLIKASI KLIEN SUREL PERANGKAT
ANDROID
Kategori : SKRIPSI
Nama : MUHAMMAD ASRI SALZAR
Nomor Induk Mahasiswa : 091402032
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA
UTARA
Diluluskan di
Medan, 26 November 2015
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Sarah Purnamawati ST.,M.Sc NIP 19830226 201012 2 003
M. Andri Budiman S.T., M.Comp.Sc.,M.E.M NIP 19751008 200801 1 011
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
4
PERNYATAAN
IMPLEMENTASI AES DAN RABIN PADA APLIKASI KLIEN SUREL PERANGKAT ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 26 November 2015
PENGHARGAAN
Alhamdulillah segala puji dan syukur saya sampaikan kehadirat Allah SWT beserta Nabi Besar Muhammad SAW yang telah memberikan rahmat, hidayah-Nya sehingga saya dapat menyelesaikan skripsi ini untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Kedua orang tua penulis, orang yang paling berharga dalam hidup penulis, ayahanda Ir.A.W.Wahidin dan ibunda Chairani yang telah membesarkan, mendidik, memberi dukungan, doa, dan motivasi tanpa henti. Serta kepada abang-abang dan adik-adik penulis yang selalu ikut menemani penulis. 2. Ketua dan Sekretaris Program Studi Teknologi Informasi, Bapak
Muhammad Anggia Muchtar, ST., MM. IT dan Bapak Muhammad Fadly Syahputra, B.Sc, M.Sc.IT, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.
3. Bapak M. Andri Budiman ST.,M.Comp.Sc.,M.E.M selaku pembimbing pertama dan Ibu Sarah Purnamawati, ST., M.Sc selaku pembimbing kedua saya yang telah banyak meluangkan waktunya dan memberikan saran yang bermanfaat dalam menyelesaikan skripsi ini.
4. Bapak Dr. Sawaluddin, M.IT dan Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc yang telah bersedia menjadi dosen penguji dan telah memberikan sara-saran yang baik penulis dalam menyelesaikan skripsi ini. 5. Teman-teman yang mendukung dan membantu penulis Iqbal, Daus, Fadli,
Jihan, Salman, Satria, Muslim, Ismail, Januar dan seluruh teman-teman seperjuangan stambuk 2009 lainnya yang tidak dapat disebutkan satu persatu.
6
ABSTRAK
Kemajuan teknologi secara signifikan turut mengubah cara manusia dalam bertukar informasi. Setelah munculnya Short Message Service (SMS) sebagai alternatif surat konvensional, hal itu pun dirasa kurang cukup karena keterbatasan karakter dan ketidakmampuan SMS dalam melampirkan file multimedia maupun audio visual. Berkembangnya jaringan internet ikut memberikan pilihan bagi manusia dalam beberapa hal termasuk di bidang pertukaran informasi diantaranya dengan terciptanya surat elektronik (surel). Dengan kemunculan surel, manusia semakin dimudahkan dalam berbagi informasi secara lebih baik karena tidak memiliki keterbatasan dari SMS. Setiap hari semakin banyak orang yang mengunakan surel sebagai media berkirim surat secara cepat karena didukung pula dengan teknologi perangkat bergerak yang mayoritas sudah dioptimalkan untuk mengirim dan menerima surel. Dalam perkembangan aplikasi klien surel sangat membantu dalam pertukaran surel, hal ini menjadi kesempatan kebocoran surel semakin besar. Oleh karena itu diperlukan sebuah pendekatan untuk mengamankan pesan tersebut yaitu dengan menerapkan sistem kriptografi pada aplikasi klien surel. Aplikasi ini menggunakan algoritma simetris AES untuk mengenkripsi dan mendekripsi konten surel yang bersifat rahasia serta algoritma asimetris Rabin dalam pendistribusian kunci. Aplikasi dapat membuat konten rahasia, mengirim surel dengan konten tersebut, menerima surel, dan membaca surel lengkap dengan konten rahasia.
8
IMPLEMENTATION OF AES AND RABIN ON EMAIL CLIENT SOFTWARE FOR ANDROID DEVICE
ABSTRACT
Advances in technology significantly alter a man's way of exchanging information. After the invention of Short Message Service (SMS) as an alternative to conventional mail, it was considered insufficient due to the limitations of the character and the inability of the SMS in attaching multimedia files as well as audio-visual. Development of Internet help provide options for people in several ways, including in the field of information exchange such as by the creation of electronic mail (email). With the emergence of e-mail, people are increasingly facilitated in sharing information better because it does not have the limitations of SMS. Every day more and more people are using e-mail as a medium of correspondence quickly as supported by the majority of mobile device technology that has been optimized to send and receive e-mail. During its development, email client application are very helpful in the exchange of e-mail, it became an opportunity to greater leak message. Therefore we need an approach to securing these email by applying cryptographic systems on email client application. This application uses AES symmetric algorithm to encrypt and decrypt the confidential e-mail content and asymmetric algorithms Rabin in the distribution of keys. Applications can create confidential content, send an email with the content, receive e-mail, and read the complete email with confidential content.
10
3.3.6 AddRoundKey Transformation ... 24
3.3.7 Rabin Encryption ... 25
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 38
DAFTAR TABEL
Hal
Tabel 2.1 Tabel Subsitusi untuk Transformasi SubBytes 12
Tabel 2.2 Tabel Konstan RC dalam Heksadesimal 15
Tabel 2.3 Tabel Penelitian Terdahulu 18
Tabel 3.1 Usecase Spesifikasi buat surel 27
Tabel 3.2 Usecase Spesifikasi baca surel 28
Tabel 3.3 Usecase Spesifikasi keyinfo 28
Tabel 3.4 Tabel User 36
Tabel 3.5 Tabel Inbox 36
Tabel 3.6 Tabel Sent 37
Tabel 4.1 Tabel Hasil Pengujian Enkripsi 43
Tabel 4.1 Tabel Hasil Pengujian Enkripsi(Lanjutan) 44
Tabel 4.2 Tabel Hasil Pengujian Dekripsi 45
Tabel 4.2 Tabel Hasil Pengujian Dekripsi(Lanjutan) 46
Tabel 4.3 Tabel Hasil Pengujian Lama Proses Enkripsi 47
Tabel 4.3 Tabel Hasil Pengujian Lama Proses Enkripsi(Lanjutan) 48
DAFTAR GAMBAR
Hal
Gambar 2.1 Arsitektur Android 7
Gambar 2.2 Transformasi ShiftRow 13
Gambar 3.3 Transformasi MixColumns 13
Gambar 3.1 Arsitektur Umum 19
Gambar 3.1 Arsitektur Umum(Lanjutan) 20
Gambar 3.2 Usecase Diagram 26
Gambar 3.3 Usecase Diagram buat surel 29
Gambar 3.4 Usecase Diagram baca surel 30
Gambar 3.5 Form Login 31
Gambar 3.6 Halaman Inbox 32
Gambar 3.7 Halaman Sent 33
Gambar 3.8 Halaman Compose Mail 34
Gambar 3.9 Form Tambah Konten 35
Gambar 4.1 Icon aplikasi device 39
Gambar 4.2 Halaman Login 39
Gambar 4.3 Halaman Inbox 40
Gambar 4.4 Halaman Read Mail 40
14
Gambar 4.6 Halaman SentItem 41
Gambar 4.7 Halaman KeyInfo 42
Gambar 4.8 Hasil analisis regresi lama proses enkripsi AES 49
Gambar 4.9 Hasil analisis regresi lama proses enkripsi Rabin 50
Gambar 4.10 Hasil analisis regresi lama proses dekripsi AES 50
ABSTRAK
Kemajuan teknologi secara signifikan turut mengubah cara manusia dalam bertukar informasi. Setelah munculnya Short Message Service (SMS) sebagai alternatif surat konvensional, hal itu pun dirasa kurang cukup karena keterbatasan karakter dan ketidakmampuan SMS dalam melampirkan file multimedia maupun audio visual. Berkembangnya jaringan internet ikut memberikan pilihan bagi manusia dalam beberapa hal termasuk di bidang pertukaran informasi diantaranya dengan terciptanya surat elektronik (surel). Dengan kemunculan surel, manusia semakin dimudahkan dalam berbagi informasi secara lebih baik karena tidak memiliki keterbatasan dari SMS. Setiap hari semakin banyak orang yang mengunakan surel sebagai media berkirim surat secara cepat karena didukung pula dengan teknologi perangkat bergerak yang mayoritas sudah dioptimalkan untuk mengirim dan menerima surel. Dalam perkembangan aplikasi klien surel sangat membantu dalam pertukaran surel, hal ini menjadi kesempatan kebocoran surel semakin besar. Oleh karena itu diperlukan sebuah pendekatan untuk mengamankan pesan tersebut yaitu dengan menerapkan sistem kriptografi pada aplikasi klien surel. Aplikasi ini menggunakan algoritma simetris AES untuk mengenkripsi dan mendekripsi konten surel yang bersifat rahasia serta algoritma asimetris Rabin dalam pendistribusian kunci. Aplikasi dapat membuat konten rahasia, mengirim surel dengan konten tersebut, menerima surel, dan membaca surel lengkap dengan konten rahasia.
8
IMPLEMENTATION OF AES AND RABIN ON EMAIL CLIENT SOFTWARE FOR ANDROID DEVICE
ABSTRACT
Advances in technology significantly alter a man's way of exchanging information. After the invention of Short Message Service (SMS) as an alternative to conventional mail, it was considered insufficient due to the limitations of the character and the inability of the SMS in attaching multimedia files as well as audio-visual. Development of Internet help provide options for people in several ways, including in the field of information exchange such as by the creation of electronic mail (email). With the emergence of e-mail, people are increasingly facilitated in sharing information better because it does not have the limitations of SMS. Every day more and more people are using e-mail as a medium of correspondence quickly as supported by the majority of mobile device technology that has been optimized to send and receive e-mail. During its development, email client application are very helpful in the exchange of e-mail, it became an opportunity to greater leak message. Therefore we need an approach to securing these email by applying cryptographic systems on email client application. This application uses AES symmetric algorithm to encrypt and decrypt the confidential e-mail content and asymmetric algorithms Rabin in the distribution of keys. Applications can create confidential content, send an email with the content, receive e-mail, and read the complete email with confidential content.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Kemajuan teknologi secara signifikan turut mengubah cara manusia dalam bertukar informasi. Setelah munculnya Short Message Service (SMS) sebagai alternatif surat konvensional, hal itu pun dirasa kurang cukup karena keterbatasan karakter dan ketidakmampuan SMS dalam melampirkan file multimedia maupun audio visual.
Berkembangnya jaringan internet ikut memberikan pilihan bagi manusia dalam beberapa hal termasuk di bidang pertukaran informasi diantaranya dengan terciptanya surat elektronik (surel). Dengan kemunculan surel, manusia semakin dimudahkan dalam berbagi informasi secara lebih baik karena tidak memiliki keterbatasan dari SMS. Setiap hari semakin banyak orang yang mengunakan surel sebagai media berkirim surat secara cepat karena didukung pula dengan teknologi perangkat bergerak yang mayoritas sudah dioptimalkan untuk mengirim dan menerima surel.
Sebuah surel terkadang berisi konten yang bersifat rahasia. Ancaman utama yang dihadapi adalah penyadapan. Selain itu, sebuah surel dapat diambil salinannya dari server yang dilewati surel ketika menuju penerima.
Pengamanan sebuah surel dapat dilakukan dengan mengenkripsi kontennya. Algoritma enkripsi yang dipilih adalah algoritma AES dan Rabin. Algoritma AES merupakan salah satu algoritma enkripsi cipherblock. Algoritma ini ditetapkan dalam kompetisi Advanced Encryption Standard yang diselenggarakan oleh U.S. National Institute of Standards and Technology (NIST), didasari oleh algoritma Rijndael
(Daemen,1999). Algoritma ini dipilih karena lebih unggul dari DES yang banyak digunakan, terutama dari segi keamanan. Kelemahan algoritma AES sebagai
16
Digitalized Signatures and Public-Key Functions as Intractable as Factorization(Rabin,1979), dengan mengambil pendekatan yang sama dengan algoritma RSA.
Pengaksesan surel sekarang ini, tidak mesti menggunakan komputer yang terhubung internet. Cukup dengan sebuah perangkat mobile seperti ponsel cerdas seseorang dapat mengakses surel dengan mudah. Salah satu sistem operasi yang populer adalah Android. Oleh karenanya diperlukan sebuah aplikasi klien yang dapat mengamankan konten surel dengan mengenkripsinya.
Beberapa penelitian dengan pendekatan menggunakan algoritma berbeda telah digunakan dalam pembangunan aplikasi enkripsi dan deskripsi surel. Beberapa diantaranya menggunakan asymmetric-key algorithm seperti metode ElGamal untuk enkripsi surel pada perangkat mobile (Taufan, 2011), maupun symmetric-key algorithm seperti algoritma Rabbit untuk aplikasi klien surel pada ponsel Android (Leksono, 2012).
Penelitian ini membahas tentang aplikasi klien surel dengan pendekatan algoritma AES. Karena dinilai lebih unggul dari segi kecepatan dari asymmetric-key algorithm, dan lebih unggul juga dari block cipher symmetric-key algorithm seperti
Serpent , karena AES menggunakan round yang lebih sedikit dalam proses enkripsi dan dekripsi data. Kelemahan algoritma AES sebagai symmetric-key terletak pada proses pertukaran kunci sehingga digunakan algoritma Rabin dalam proses enkripsi kunci AES sebelum didistribusikan.
1.2 Rumusan Masalah
1.3 Batasan Masalah
Agar penelitian tidak terlalu luas dan menyimpang, diberikan beberapa batasan, yaitu:
1. Menggunakan kunci AES sebesar 128-bit.
2. Pembangunan software fokus pada pengimplementasian kriptografi pada pesan.
3. Data yang dienkripsi hanya berupa text
4. Server surel yang digunakan adalah server Google Mail
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah mengamankan konten surel rahasia dengan penerapan algoritma AES untuk proses yang aman dalam pengiriman surel , serta mampu menerima dan membaca konten surel rahasia tersebut.
1.5 Manfaat Penelitian
Penelitian ini memiliki manfaat untuk membantu pengguna dalam memilih konten surel yang bersifat rahasia yang diinginkan untuk dilakukan pengamanan sehingga tidak disalahgunakan oleh pihak yang tidak bertanggung jawab
1.6 Metodologi Penelitian
Adapun metodologi pada penelitian ini adalah:
1. Studi Literatur
Dilakukan pengumpulan referensi melalui berbagai macam buku, jurnal, artikel, dan materi lainnya yang berkaitan dengan penelitian ini.
18
Dilakukan pengumpulan data dan informasi yang akan diperlukan dalam penelitian.
3. Analisis dan Perancangan
Dilakukan analisis terhadap studi literatur tentang klien surel dan melakukan perancangan sistem.
4. Implementasi
Perancangan sistem yang telah dibuat akan diimplementasikan ke dalma aplikasi yang dibuat dengan menggunakan bahasa pemrograman Java
5. Pengujian
Uji coba produk dan evaluasi. Melakukan uji coba program yang telah dibuat. Kemudian melakukan evaluasi terhadap kekurangan program.
6. Penyusunan Laporan
Dokumentasi dari hasil analisis dan implementasi dari aplikasi yang telah dibuat
1.7 Sistematika Penulisan
Tugas akhir ini disusun dalam lima bab dengan sistematika penulisan sebagai berikut:
Bab I Pendahuluan
Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang terdapat dalam bab pendahuluan ini meliputi latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat penelitian.
Bab II Tinjauan Pustaka
Pada bab tinjauan pustaka menguraikan landasan teori, penelitian terdahulu, kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam melakukan kegiatan penelitian pada tugas akhir ini.
Bab ini menguraikan metodologi penelitian yang dilakukan dalam menerapkan kombinasiAlgoritma AES untuk pengamanan surel pada Secure Message.
Bab IV Hasil dan Pembahasan
Pada bab hasil dan pembahasan akan memaparkan hasil terhadap uji coba algoritma yang telah dilakukan dalam meyelesaikan permasalahan pengamanan pesan pada Secure Message.
Bab V Kesimpulan dan Saran
BAB 2
LANDASAN TEORI
Pada bab ini, akan dibahas landasan teori, penelitian terdahulu, konsep dasar dan hipotesis yang mendasari penyelesaian permasalahan pengamanan surel pada aplikasi
Secure Message yang akan dibuat.
2.1. Pertukaran Data
Pada aplikasi klien surel umumnya terjadi pertukaran data, dapat berupa pesan teks, suara dan dapat pula berupa gambar. Maksud dari pertukaran data disini adalah proses pengiriman data yang berupa teks, suara atau gambar dari pengguna messenger satu ke pengguna messenger lainnya, dimana data yang dikirimkan akan disimpan terlebih dahulu ke server dan dari server akan dikirim ke penerima data tersebut. Karena proses ini penulis dapat mengambil kesimpulan bahwasanya pertukaran data pada aplikasi klien surel sangat rentan terhadap kejahatan maya seperti data dicuri dan atau data dibajak oleh pihak yang tidak berkepentingan.
2.2. Keamanan Informasi
Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting bagi sebuah organisasi, perguruan tinggi, lembaga pemerintahan maupun individual, kemampuan dalam mengakses dan menyediakan informasi secara cepat serta akurat (Rahardjo, 2005). Karena pentingnya sebuah informasi, seringkali informasi yang diinginkan hanya dapat diakses oleh orang tertentu misalnya pihak penerima yang diinginkan, dan jika informasi ini sampai diterima oleh pihak yang tidak diinginkan akan berdampak kerugian pada pihak pengirim.
Untuk itu diperlukanlah sebuah pendekatan dalam melakukan pengamanan pada informasi, seperti melakukan enkripsi, steganografi, cipher dan hashing terhadap informasi tersebut.
2.3. Android
Menurut (Safaat, 2012), Android adalah sebuah sistem operasi untuk perangkat lunak mobile berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka.
2.5.1 Arsitektur android
Secara garis besar arsitektur Android dapat dilihat pada Gambar 2.1 :
Gambar 2.1. Arsitektur android (Safaat 2012)
a. Application dan Widgets
22
b. Application Frameworks
Android adalah “Open Development Platform” yaitu Android menawarkan
kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang baik dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm, dan menambahkan status notification, dan sebagainya. Pengembang memiliki akses penuh menuju API framework seperti yang dialakukan oleh aplikasi inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse) (Safaat, 2012).
Adapun komponen-komponen yang termasuk didalam Applications
Frameworks adalah sebagai berikut : - Views pembuat aplikasi mengakses library untuk menjalankan aplikasinya (Safaat, 2012). Berjalan diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libe dan SSL, serta :
- Libraries media untuk pemutaran media audio dan video - Libraries untuk manajemen tampilan
- Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D - Libraries SQLite untuk dukungan database
- Libraries SSL dan Webkit terintegrasi dengan web browser dan security
- Libraries Live Webcore mencakup modern web browser dengan engine embeeded web view
d. Android Run Time
Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk kerangka dasar aplikasi android (Safaat, 2012). Didalam android run time dibagi menjadi dua bagian yaitu :
- Core Libraries : Aplikasi android dibangun dalam bahasa java, sementara
dalvik sebagai virtual mesinnya bukan virtual machine java, sehingga diperlukan sebuah libraries yang berfungsi menerjemahkan bahasa java/c yang ditangani oleh core libraries.
- Dalvik Virtual Machine : Virtual mesin berbasis register yang dioptamilkan untuk menjalankan fungsi-fungsi secara effisien, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading
dan manajemen tingkat rendah.
e. Linux Kernel
Linux kernel adalah layer dimana inti dari operating sistem dari Android itu berada. Berisi file-file system yang mengatur sistem processing, memory,
resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel realese 2.6 (Safaat, 2012).
2.4. Kriptografi
Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas.
24
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan pada sebuah data serta sebagai tanda tangan digital untuk menjamin keaslian dokumen (Sadikin, 2012).
2. Penyandian dengan kunci simetris
Penyandian dengan kunci simetris adalah penyandian yang menggunakan sebuah kunci yang sama pada proses enkripsi dan dekripsinya. Kunci yang digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis kriptografi dengan penyandian kunci simetris antara lain Data Encryption Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan
International Data Encryption Algorithm (IDEA) (Sadikin, 2012).
3. Penyandian dengan kunci asimetris
Penyandian dengan kunci asimetris adalah penyandian yang memiliki kunci yang berbeda pada proses enkripsi dan dekripsinya. Pada kunci yang digunakan untuk enkripsi bersifat publik (public key). Kunci publik bebas disebarluaskan ke public. Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia (private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, ELGamal, Rabin, dan beberapa penerapan teknik Elliptic Curve (Sadikin, 2012).
Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local area network (LAN), hal ini memberi kesempatan yang besar untuk mencegat data dan memalsukan pesan. Salah satu yang mudah untuk menjaga keamanan dan keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci privat.
Algoritma AES merupakan algoritma blok cipher yang didesain oleh Joan Daemen dan Vincent Rijment (Daemen,1999). Kunci AES dapat memiliki panjang kunci 128,192, dan 256 bit. Penyandian AES menggunakan proses yang berulang yang disebut dengan ronde. Jumlah ronde yang digunakan tergantung dengan panjang kunci yang digunakan. Kunci ronde dibangkitkan berdasarkan kunci yang diberikan.
Proses didalam AES adalah transformasi terhadap state yang merupakan blok(128 bit) yang ditata menjadi matriks byte berukuran 4x4. State yang menjadi keluaran ronde k menjadi masukan untuk ronde k+1.
Tahapan Algoritma AES (Sadikin, 2012):
1. Pra-ronde,blok teks asli dicampur dengan kunci ronde ke-0(transformasi ini disebut AddRoundKey).
2. Proses ronde 1 hingga ke ronde (n-1), yang masing-masing terdiri atas 4 jenis transformasi, yaitu SubBytes, ShiftRows, MixColumns, dan AddRoundKey. 3. Ronde n, dilakukan transformasi seperti ronde sebelumnya namun tanpa
transformasi MixColumns.
Detail transformasi yang digunakan pada proses enkripsi akan dijelaskan pada bahasan selanjutnya.
A. SubBytes Transformation
26
Tabel 2.1 Tabel substitusi untuk transformasi SubBytes(Sadikin,2012)
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75
4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84
5 53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF
6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8
7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2
8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73
9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB
A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79
B E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08
C BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A
E E1 F8 98 11 69 D9 83 94 9B 1E 87 E9 CE 55 28 DF
F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16
B. ShiftRows Transformation
Transformasi ShiftRows dilakukan dengan menjalankan operasi circular shift left
sebanyak i pada baris ke-i pada state. Ilustrasi transformasi ShiftRows dapat dilihat
Transformasi MixColumns akan mencampurkan nilai kolom kolom pada state awal dengan suatu perkalian matriks dengan sebuah matriks konstan yang ditunjukkan pada Gambar 2.3
Gambar 2.3 Transformasi MixColumns(Sadikin,2012)
Untuk kolom ke-j, dengan j={0,1,2,3} pada keluaran transformasi
28
⨁ ⨁ (2.1)
⨁ ⨁
⨁ ⨁
⨁ ⨁
D. AddRoundKey Transformation
Transformasi AddRoundKey mencampur sebuah state masukan dengan kunci ronde dengan operasi eksklusif OR. Setiap elemen pada state masukan yang merupakan sebuah byte dikenakan operasi eksklusif OR dengan byte pada posisi yang sama di kunci ronde(kunci ronde direpresentasikan sebagai sebuah state).
E. KeyExpansion
Langkah-langkah ekspansi kunci AES 128-bit dijelaskan pada algoritma dibawah ini
Input: byte kunci[16]
Output:word w[44]
word temp
For i=0 to 3 do
w[i]= (kunci[4*i], kunci[4*i+1] , kunci[4*i+2] , kunci[4*i+3]) End For
For i=4 to 43 do
temp = w[i-1] If i%4 = 0 then
temp= SubWord(RotWord(temp)) + RC[i/4]
End If
Dari algoritma diatas, bisa dilihat proses ini akan menerima input berupa kunci awal yang akan menghasilkan 44 word kunci dengan 4 word kunci untuk setiap ronde. Pertama sekali kunci AES 128-bit akan diorganisir menjadi 4 word dan disalin ke
word keluaran pada 4 elemen pertama(w[0],w[1],w[2],w[3]). Untuk elemen keluaran
selanjutnya w[i] dengan i = {4,…,43} dihitung sebagai berikut
1. Salin w[i-1] pada word t (2.2)
2. Jika i mod 4=0 lakukan
w[i]=f(t,i) XOR w[i-4]
dengan fungsi f(t,i) adalah sebagai berikut
f(t,i) = SubWord(RotWord(t)) XOR RC[i/4]
Konstan RC[i] ditunjukkan pada tabel 2.2
Tabel 2.2 Konstan RC dalam heksadesimal(Sadikin,2012)
i 1 2 3 4 5 6 7 8 9 10
RC[i] 01 02 04 05 10 20 40 80 1B 3C
3. Jika i mod 4 !=0, lakukan
w[i] = t XOR w[i-4]
30
Algoritma Rabin dipublikasikan oleh Michael O.Rabin pada Januari 1979 di Institut Teknologi Massachusetts. Algoritma ini merupakan algoritma asimetris pertama yang menerapkan konsep dimana mendapatkan keseluruhan plaintext dari cyphertext
memiliki kesulitan yang sama dalam faktorisasi.
Rumus dasar dari metode enkripsi dan dekripsi Rabin adalah
(2.3)
Dan
Penjelasan:
N = p * q*(kunci publik)
p dan q = Bilangan prima(kunci privat)
M = Plaintext
C = Ciphertext
Tahapan Algoritma Rabin
1. Pilih dua bilangan prima secara acak dan tidak sama. 2. Hitung perkalian p dan q, simpan dalam variabel n. 3. Rahasiakan p, q.
4. Kirimkan n dan C .
2.5. Sistem Surat Elektronik (Surel)
atau jaringan LAN. Pada masa awal pengembangannya, baik penerima maupun pengirim harus online secara bersamaan, yang sekarang mirip dengan instant messaging.
Sistem surel modern didasari pada model store dan forward, dimana server akan menyimpan setiap surel yang dikirim sebelum meneruskan pada penerima. Hal ini membuat setiap pengguna tidak diharuskan terus online , mereka cukup terhubung dengan server surel selama yang dibutuhkan untuk mengirim atau menerima surel.
Sistem surel modern terbagi menjadi dua bagian (Partige, 2008). Bagian pertama adalah MHS (message handling system). MHS adalah bagian yang bertanggung jawab menangani masalah pengiriman surel dari pengirim kepada penerima, dan terbentuk dari suatu set server yaitu MTA(message tranfer agent) Bagian lainnya yaitu UA, berfungsi sebagai media interaksi pengguna surel dengan sistem surel. Melalui UA pengguna dapat membuat , menyimpan dan membaca surel. UA juga yang berinteraksi dengan MHS agar surel dapat dikirimkan.Salah satu contoh UA adalah aplikasi klien surel.
Surel dikirim dengan menggunakan protokol SMTP. Protokol inididesain dengan model sebagai berikut (Postel, 1982): pihakpengirim membuat jalur komunikasi dengan penerima; pihak pengirim mengirimkan perintah MAIL sebagai tanda bahwa ia adalah pengirim; penerima membalas dengan perintah OK jika layanan bisa dijalankan; pengirim mengirimkan perintah RCPT yang menjelaskan penerima surel; jika penerima dapat mengenal penerima surel maka balasan yang diberikan adalah OK; jika tidak maka penerima membalas ia tidak mengenal penerima surel. Kemudian pengirim mengirim perintah DATA diikuti dengan isi surel dan diakhiri tanda titik. Keseluruhan proses diatas dilakukan satu persatu.
Surel dapat diterima dengan menggunakan protokol POP3 (post office protocol) atau IMAP (internet message access protocol). Protokol IMAP memungkinkan pengguna surel dapat menyuting dan memodifikasi surel secara langsung di server. Berbeda dengan POP3 yang mengharuskan pengguna untuk mengunduh seluruh surel di kotak masuk sebelum dibaca. Karenanya protokol IMAP membutuhkan koneksi yang lebih stabil dibandingkan POP3.
32
1. badan pesan tekstual dalam rangkaian karakter selain US-ASCII 2. set extensible format yang berbeda untuk badan pesan non-tekstual 3. badan pesan dalam banyak bagian
4. informasi header tekstual dalam rangkaian karakter selain US-ASCII.
2.6. Penelitian Terdahulu
Beberapa penelitian yang menjadi bahan pembelajaran penulis tentang penyelesaian masalah keamanan dalam pertukaran pesan.
Taufan (2011) telah mencoba mengamankan email dengan menggunakan algoritma ElGamal. Ia merancang aplikasi pada perangkat mobile yang dapat menggunakan algoritma ElGamal pada proses enkripsi dan dekripsi surel. Hasilnya
email yang dikirimkan dapat terlindungi hingga sampai ke penerima.
Connely (2008) telah menerapkan algoritma One Time Pad untuk mengamankan email. Connely menerapkan sandi One Time Pad dan teknik TRNG (True Random Number Generator) untuk menghasilkan nilai yang benar-benar
random sebagai kunci One Time Pad. Hasilnya email yang dienkripsi benar-benar rahasia, atau perfect secrecy.
Rasool et al (2011) telah mencoba meningkatkan algoritma keamanan dalam komunikasi pesan. Rasool et al, menerapkan kombinasi dari algoritma kunci simetris FSET (algoritma yang dibuat oleh Varghese Paul), algoritma kunci publik RSA dan teknik hashing menggunakan SHA-2. Hasilnya komunikasi pesan menjadi rahasia karena telah dienkripsi menggunakan FSET, kemudian kunci yang digunakan telah dienkripsi oleh RSA, untuk mengetahui apakah pesan asli masih terbukti valid, mereka melakukan pengujian menggunakan SHA-2.
Leksono (2012) telah mencoba menerapkan Rabbit sebagai pengamanan sistem klien email. Hasilnya email yang dikirimkan dapat terlindungi hingga sampai ke penerima.
Supriyanto (2009) juga menerapkan RSA dalam pengamanan email
dikombinasikan dengan teknik hashing menggunakan SHA-1. Hasilnya email
terlindungi walaupun belum dilakukan pengujian dalam pengiriman email tersebut.
No Peneliti Penelitian Algoritma Hasil
1 Taufan (2011) Mengamankan
email ElGamal Aman
2 Connely
(2008)
Mengamankan
email One Time Pad Aman
3 Rasool et al (2011)
Mengamankan pesan
FSET, RSA, dan
SHA-2 Sangat aman
4
Leksono
(2012)
Mengamankan
Rabbit Aman
5 Supriyanto
(2009)
Mengamankan
BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas tentang rancangan sistem seperti flowchart proses enkripsi dan dekripsi menggunakan AES serta DFD dari proses pengiriman pesan, penerimaan pesan, dan penambahan konten terenkipsi.
3.1 Data yang Digunakan
Dalam pembangunan sistem ini, data yang digunakan adalah surel yang dikirim melalui aplikasi Secure Message. Terdapat dua jenis surel yang digunakan, yaitu surel yang berada pada sisi pengirim dan surel yang berada pada sisi penerima. Surel pada sisi pengirim akan melalui proses enkripsi jika terdapat konten rahasia sedangkan surel pada sisi penerima akan dilakukan proses dekripsi jika terdapat konten rahasia.
3.2 Arsitektur Umum
TULIS SUREL DENGAN KONTEN RAHASIA
ENKRIPSI KONTEN RAHASIA DENGAN AES
PENGGABUNGAN KONTEN RAHASIA KE SUREL
SUREL YANG TELAH TERENKRIPSI ENKRIPSI KUNCI AES
DENGAN RABIN INPUT
OUTPUT PROSES ENKRIPSI
SUREL YANG TELAH TERENKRIPSI
PENGECEKAN KETERSEDIAAN KONTEN RAHASIA
DEKRIPSI KONTEN RAHASIA DENGAN AES
SUREL YANG TELAH TERDEKRIPSI DEKRIPSI KUNCI AES
DENGAN RABIN INPUT
OUTPUT PROSES DEKRIPSI
Gambar 3.1 Arsitektur Umum(lanjutan)
36
3.3 Pemrosesan Data
Konten yang akan dienkripsi akan melalui proses enkripsi AES 128-bit. Kunci AES yang digunakan akan dienkripsi dengan Algoritma Rabin. Pada enkripsi AES 128-bit
terdapat 10 ronde, dimana tiap ronde terjadi proses transformasi yang berbeda-beda tergantung ronde keberapa transformasi tersebut dilakukan. Berikut adalah algoritma untuk enkripsi AES 128-bit:
Input: P,K {Teks Asli 16 bytes,kunci AES 128 bit} Output:CT {Teks sandi 16 bytes}
(Nr,w)EkspansiKunci(K) {Nr: Jumlah ronde=10, w: larik bytes kunci ronde} CT=P
Dari algoritma diatas, bisa dilihat proses enkripsi akan menerima masukan berupa teks asli yang ingin dienkripsi dan kunci AES yang digunakan dan akan menghasilkan output berupa teks asli yang telah terenkripsi. Sebelum ronde 1 dimulai teks asli dicampur dengan kunci ronde ke-0( Transformasi ini disebut AddRoundKey ). Setelah itu ronde ke-1 sampai dengan ronde ke-(Nr-1) dengan Nr adalah jumlah ronde akan menggunakan 4 jenis transformasi, yaitu SubBytes, ShiftRows, MixColumns dan
Misal terdapat plainteks “AES&Rabin”, kunci AES ”1122334455667788” dan kunci Rabin “77”. Detail transformasi yang digunakan pada proses enkripsi akan dijelaskan pada bahasan selanjutnya.
3.3.1 KeyExpansion
Sebelum proses enkripsi AES dilakukan, terlebih dahulu akan dikerjakan proses
KeyExpansion untuk mendapatkan kunci AES yang digunakan untuk setiap ronde
enkripsi. Misal terdapat kunci “1122334455667788” , untuk mendapatkan kunci ronde
ke-1 (w[4],w[5],w[6],w[7]) dilakukan proses:
Kunci diorganisir menjadi block dalam heksadesimal {31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 }
Block kemudian dibagi menjadi empat word, sehingga w[0]= {31 31 32 32}, w[1]= {33 33 34 34}
w[2]= {35 35 36 36}, w[3]= {37 37 38 38}
Dari algoritma KeyExpansion dapat dihitung
w[4] = w[0]XOR SubWord(RotWord(w[3])) XOR RC[1] = 31 31 32 32 XOR C5 30 30 C5 XOR 01 00 00 00
Diperoleh kunci ronde ke-1, yaitu
38
Selanjutnya, proses KeyExpansion ini akan diulang hingga sepuluh kali untuk menghasilkan 10 kunci ronde.
3.3.2 Pre-Round
Plainteks akan diorganisir menjadi block heksadesimal sepanjang 16 byte. Apabila panjang block kurang dari 16, maka akan ditambah karakter notasi heksadesimal “80”
sebagai padding dan notasi “00” pada byte sisa. Sebelum ronde ke-1 dimulai , plainteks akan dicampur dengan kunci ronde ke-0 melalui proses AddRoundKey
sehingga menghasilkan plainteks dalam bentuk UTF-8 “70 74 61 14 61 52 56 5D 5B B5 36 36 37 37 38 38”
3.3.3 SubBytes Transformation
Block plainteks yang didapat dari pre-round selanjutkan diorganisir menjadi state
Dilakukan subtitusi untuk setiap elemen pada state dengan mengacu pada tabel 2.1. Hasil transformasi SubBytes adalah:
3.3.4 ShiftRows Transformation
State keluaran dari proses SubBytes kemudian dikenakan proses ShiftRows seperti ditunjukkan gambar 2.2. Hasil transformasi ShiftRows adalah:
3.3.5 MixColumn Transformation
State keluaran dari proses ShiftRows kemudian dikenakan proses MixColumns dengan rumus nomor 1. Misal untuk menghitung nilai elemen keluaran
Selanjutnya proses diatas dilakukan untuk setiap elemen pada state sehingga hasil transformasi MixColumns adalah:
40
State keluaran dari proses MixColumns akan dicampur dengan kunci ronde ke-1 dengan operasi eksklusif OR.Hasil dari transformasi AddRoundKey adalah:
Selanjutnya proses SubBytes hingga AddRoundKey akan diulang hingga sepuluh
ronde yang akhirnya akan menghasilkan ciphertext
“1122334455667788”. Proses enkripsi akan mengorganisir kunci menjadi array dengan tiap anggota array adalah setiap 2 karakter dari kunci sehingga menjadi {11 22 33 44 55 66 77 88}.
Misal kunci publik Rabin n “77” dilakukan proses pada 2 karakter pertama “11”:
Ubah “1 1” ke dalam nilai ASCII dalam bentuk bilangan biner 1 = 00110001
1 = 00110001
Kedua karakter kemudian digabung menjadi “11000100110001”
Nilai ini kemudian digandakan menjadi “1100010011000111000100110001” lalu dirubah kedalam bentuk bilangan desimal M “206336305”
Gunakan rumus nomor 3 sehingga didapat cipherteks
C = (206336305)2 mod 77 = 56
3.4 Perancangan Sistem
Pada penelitian ini perancangan sistem terbagi dua yakni menjelaskan tentang kebutuhan perangkat lunak yang digunakan dalam perancangan sistem Secure Message dan perancangan antar muka sistem yang nantinya akan digunakan pada setiap halaman Secure Message.
3.4.1 Kebutuhan Perangkat Lunak
Adapun aplikasi Secure Message ini dibangun dengan menggunakan bahasa pemrograman Java dan XML untuk aplikasi pada sisi pengguna yang berjalan pada sistem operasi Android, serta menggunakan DBMS SQLite untuk pengelolaan
database.
3.4.2 Usecase Diagram
Usecase diagram digunakan untuk menggambarkan fungsionalitas dan fitur-fitur yang ada pada sistem berdasarkan perspektif dari user. Usecase menggambarkan cara user
berinteraksi dengan sistem dan menjabarkan langkah-langkah yang harus dilakukan
user untuk menyelesaikan suatu tugas didalam sistem (Pressman, 2010). Usecase
42
BUAT SUREL BARU
BACA SUREL
KEYINFO
TULIS KONTEN SUREL
User
TULIS KONTEN RAHASIA
KIRIM SUREL SISTEM
MASUKKAN KUNCI JIKA DIMINTA
LIHAT KONTEN SUREL
Gambar 3.2. Usecase diagram
3.4.3 Usecase Spesifikasi
Usecase spesifikasi mendeskripsikan usecase diagram, menjelaskan bagaimana sebuah usecase itu bekerja (Muchtar, et al. 2011). Usecase spesifikasi yang digunakan dalam sistem akan dijelaskan pada Tabel 3.1 , Tabel 3.2, dan Tabel 3.3.
Nama usecase Buat surel baru
Aktor Pengguna
Deskripsi Use case ini digunakan oleh user untuk menulis
surel baru.
Pre condition Semua User dapat mengakses halama ini tanpa syarat apapun.
Characteristic of activation Eksekusi dapat dilakukan oleh siapapun
Basic flow - Pengguna akan menekan tombol Mail untuk mulai menulis surel. Selanjutnya,pengguna dapat mengisi konten surel pada textbox yang telah disediakan
- Pengguna lalu menekan tombol add content
untuk menambah konten rahasia lalu menekan tombol add apabila konten telah selesai dibuat. - Setelah itu pengguna akan menekan tombol
send untuk mengirim surel tersebut.
Alternative flow -
Post condition Petugas akan dikembalikan ke halaman utama.
Limitations -
Nama usecase Baca surel
Aktor Pengguna
Deskripsi Usecase ini digunakan oleh user membaca surel
44
Tabel 3.2 Usecase spesifikasi baca surel
Tabel 3.3 Use case spesifikasi KeyInf
Nama usecase KeyInfo
Aktor Pengguna
Deskripsi Usecase ini digunakan oleh user untuk melihat
kunci Rabin yang digunakan sistem
3.4.4 Activity diagram
Activity diagram menggambarkan urutan aktivitas dalam sistem yang dirancang. Diagram aktifasi menjelaskan tentang kegiatan apa yang dilakukan pada sistem tetapi
Pre condition
-Characteristic of activation Eksekusi dapat dilakukan oleh siapapun.
Basic flow - Pengguna dapat melihat surel yang ada pada
inbox kemudian memilih salah satu surel untuk dibaca.
- Pengguna akan memasukkan kunci jika terdapat konten rahasia.
- Konten surel akan ditempilkan.Untuk
membalas surel pengguna dapat menekan tombol reply.
Alternative flow H-1 : Data tidak ditemukan
Apabila tidak ada surel ditemukan di inbox user.
Post condition Pengguna dapat membalas surel tersebut.
tidak menjelaskan apa yang dilakukan oleh aktor (Fowler, 2005). Activity diagram
pada sistem dapat dilihat pada Gambar 3.3 dan Gambar 3.4.
USER SISTEM
User menulis konten surel dan menambah konten rahasia
Enkripsi konten rahasia sesuai kunci yang diberikan
User menekan send untuk
mengirim surel Surel terkirim Menggabungkan konten
rahasia kedalam surel
Gambar 3.3 Usecase diagram buat surel
46
Gambar 3.4 Usecase diagram baca surel
Pada Gambar 3.4, user memilih satu surel untuk dibaca maka sistem akan mengecek ketersediaan konten rahasia pada surel tersebut. Jika konten rahasia
tersedia, maka sistem akan meminta pengguna untuk memasukkan kunci, selanjutnya sistem akan mendekripsi konten sesuai dengan kunci yang diberikan pengguna. Setelah itu sistem akan mengecek kembali ketersediaan konten rahasia dan meminta kembali kunci kepada pengguna jika ditemukan konten. Jika konten rahasia tidak tersedia, maka sistem akan menampilkan surel tersebut kepada pengguna.
3.4.5 Perancangan Antar Muka Sistem
Perancangan sistem diperlukan agar sistem yang dibangun sesuai dengan yang diharapkan. Dengan adanya rancangan antar muka bertujuan untuk memudahkan pengguna dalam pemakaian sistem. Berikut ini adalah beberapa rancangan low fidelity interface pada Secure Message.:
A. Halaman Login
Gambar 3.5 Form Login
Pada gambar 3.5 dapat dilihat bahwa terdapat dua input box dan satu command button yaitu: username, password, dan signin.
Keterangan:
1. Picturebox sebagai logo aplikasi. 2. Label sebagai nama pengenal aplikasi.
3. Textbox untuk memasukkan alamat email pengguna. 4. Textbox untuk memasukkan password pengguna.
5. Sign In, tombol untuk mengirim kombinasi email dan password kepada sistem untuk diproses.
B. Halaman Inbox
Halaman Inbox berfungsi untuk melihat surel yang ada di kotak masuk pengguna. Terdapat juga pilihan menu untuk bernavigasi antar interface. . Berikut ini adalah rancangan dari halaman inbox :
Secure Message
Password
Sign in 1
2
3
48
Gambar 3.6 Halaman Inbox
Pada gambar 3.6 dapat dilihat bahwa halaman inbox menampilkan daftar dari surel yang ada di kotak masuk si pengguna.
Keterangan:
1. Menu, tombol yang berfungsi untuk navigasi antar interface. 2. Mail, tombol yang berfungsi untuk membuat surel baru. 3. Label sebagai keterangan halaman yang sedang aktif.
4. Kolom yang menampilkan surel yang ada di kotak masuk pengguna.
C. Halaman Sent Item
Halaman Sent Item berfungsi untuk melihat surel yang telah dikirimkan pengguna pengguna. Terdapat juga pilihan menu untuk bernavigasi antar interface. Berikut ini adalah rancangan dari halaman sent item :
Inbox
Menu Mail
Daftar Surel
Daftar Surel
Daftar Surel Daftar Surel Daftar Surel
1 2
3
Gambar 3.7 Halaman Sent Item
Pada gambar 3.7 dapat dilihat bahwa halaman sent item menampilkan daftar dari surel yang ada di kotak keluar si pengguna.
Keterangan:
1. Menu, tombol yang berfungsi untuk navigasi antar interface. 2. Mail, tombol yang berfungsi untuk membuat surel baru. 3. Label sebagai keterangan halaman yang sedang aktif.
4. Kolom yang menampilkan surel yang ada di kotak keluar pengguna.
D. Halaman Compose Mail
Halaman Compose Mail berfungsi untuk membuat surel baru untuk dikirimkan ke penerima. Berikut ini adalah rancangan dari halaman compose mail:
Sent Item
Menu Mail
Daftar Surel
Daftar Surel
Daftar Surel Daftar Surel Daftar Surel
1 2
3
50
Gambar 3.8 Halaman Compose Mail
Pada gambar 3.8 dapat dilihat bahwa halaman compose mail memungkinkan pengguna untuk mengirimkan surel ke alamat yang dikehendaki.
Keterangan:
1. Back, tombol yang berfungsi untuk navigasi antar interface. 2. Label sebagai keterangan halaman yang sedang aktif.
3. Add, tombol yang berfungsi untuk menambah konten rahasia.
4. Send, tombol yang berfungsi untuk mengirim surel yang telah dibuat. 5. Label from sebagai keterangan alamat pengirim
6. Label sebagai alamat surel dari pengirim 7. Label to sebagai keterangan alamat penerima 8. Textbox untuk memasukkan alamat surel penerima 9. Label subject sebagai keterangan judul dari surel 10.Textbox untuk memasukkan judul surel yang ditulis
11.Kolom yang dapat digunakan pengguna untuk menulis surel
E. Form Tambah Konten
Form Tambah Konten berfungsi untuk menambahkan konten rahasia ke dalam surel yang akan dibuat.Berikut ini adalah rancangan dari form tambah konten:
Gambar 3.9 Form Tambah Konten
Keterangan:
1. Label sebagai keterangan menambah konten.
2. Textbox untuk memasukkan konten yang hendak dienkrispi. 3. Textbox untuk memasukkan kunci untuk proses enkripsi.
4. Cancel, tombol untuk membatalkan penambahan konten ke dalam surel. 5. Add, tombol untuk menambahkan konten ke dalam surel
Dari gambar 3.9 dapat dilihat program menampilkan kotak kecil untuk menambahkan konten. Untuk menambahkan konten, pengguna memasukkan konten pada kotak yang tersedia, kemudian memasukkan kunci yang diinginkan. Jika pengguna memilih Add maka secara otomatis sistem akan mengambil konten dan memasukkan kedalam surel dalam keadaan telah terenkripsi.
Send
Subject Add Encrypt Text
52
3.5 Perancangan Database
Berikut ini adalah rancangan databaseSecure Message:
A. Tabel User
Tabel ini berfungsi untuk menyimpan alamat surel dan password dari pengguna. Berikut ini adalah rancangan tabel User :
Tabel 3.4 Table User
B. Tabel Inbox
Tabel ini berfungsi untuk meyimpan surel yang ada di kotak masuk pengguna. Berikut ini adalah rancangan dari table inbox:
Tabel 3.5 Table Inbox
Nama Field Jenis Field Ukuran Keterangan
ID Integer Not Null
Subject Text Allow Null
From Text Not Null
To Text Not Null
Date Text Not Null
Content Text Not Null
Nama Field Jenis Field Ukuran Keterangan
Email Text Not Null
Password Text Not Null
IsDownload Integer Not Null
UUID Integer Not Null
C. Tabel Sent
Tabel ini berfungsi untuk menyimpan surel yang ada di kotak keluar pengguna. Berikut ini adalah rancangan dari table sent :
Tabel 3.6 Table Sent
Nama Field Jenis Field Ukuran Keterangan
ID Integer Not Null
Subject Text Allow Null
From Text Not Null
To Text Not Null
Date Text Not Null
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini, akan dibahas pengimplementasian dan pengujian sistem sesuai dengan analisis dan perancangan yang telah dibahas pada bab sebelumnya. Tahapan ini bertujuan untuk menampilkan hasil tampilan akhir sistem yang dibangun dan proses pengujian sistem yang nantinya dapat mengenali angka indeks meter hasil pemindaian meteran air. Aplikasi yang dihasilkan diimplementasikan dan diuji pada Samsung Galaxy S4 GT-I9500 yang menggunakan sistem operasi Android versi 4.4.2.
4.1. Implementasi Sistem
Berdasarkan hasil analisis dan perancangan sistem pada Bab 3, kebutuhan dalam pengimplementasian dijelaskan pada subbab 4.1.1.
4.1.1 Spesifikasi Sistem
Untuk dapat menjalankan aplikasi, versi minimal dari sistem operasi Android adalah Android 4.0, versi dibawah 4.0 tidak dapat menjalankan perangkat lunak. Ponsel yang dipakai juga harus memiliki media penyimpanan (storage) sebagai tempat penyimpanan surel yang akan diunduh.
4.1.2 Instalasi Aplikasi
56
Gambar 4.1. Icon aplikasi pada device
4.1.3 Mekanisme Penggunaan Aplikasi
Pada saat aplikasi dibuka, aplikasi akan menampilkan halaman login. Pengguna dapat memasukkan alamat surel yang dimiliki beserta password yang sesuai. Halaman login
ini dapat dilihat pada gambar 4.2
Setelah melakukan proses login, maka pengguna akan ditujukan pada halaman
inbox. Halaman Inbox berisikan daftar surel yang berada pada kotak masuk pengguna. Pada setiap halaman akan terdapat menu untuk bernavigasi antar halaman. Halaman
Inbox dapat dilihat pada Gambar 4.3.
Gambar 4.3 Halaman Inbox
Pengguna dapat memilih salah satu surel untuk dibaca. Apabila surel mempunyai konten rahasia maka sistem akan meminta kunci privat pengguna. Apabila pengguna memasukkan kunci yang tepat maka sistem akan mendekripsi surel untuk kemudian ditampilkan ke pengguna pada halaman Read Mail. Halaman Read Mail dapat dilihat pada gambar 4.4.
58
Untuk memulai melakukan pengiriman surel pengguna dapat memilih button
Compose Mail. Pada halaman compose mail terdapat beberapa textbox yang bisa diisi.
Textboxt from otomatis diisi oleh sistem sesuai alamat surel pengguna. Textbox to bisa diisi pengguna untuk memasukkan alamat surel yang dituju. Untuk memasukkan pesan pada surel pengguna bisa menuliskan pada form yang telah tersedia, selanjutnya jika pengguna memilih untuk memasukkan konten rahasia, pengguna bisa menekan button Add . Setelah menekan tombo Add pengguna akan diminta memasukkan kunci publik penerima, kunci pesan yang diinginkan serta konten rahasia yang dimaksudkan. Setelah keseluruhan proses selesai dilakukan, pengguna dapat menekan button Send
untuk mengirim surel tersebut. Adapun tampilan halaman Compose Mail dapat kita lihat pada Gambar 4.5.
Gambar 4.5 Halaman Compose Mail
Setelah mengirim surel, pengguna dapat melihat surel yang telah dikirimkan melalui menu Sent Item. Menu ini akan mengarahkan pengguna ke halaman Sent Item
Gambar 4.6 Halaman Sent Item
Dan menu terakhir yaitu KeyInfo yang akan menampilkan halaman berisikan kunci privat dan kunci publik dari pengguna. Tersedia juga button copy untuk kemudahan pengguna menyalin kunci publik untuk didistribusikan ke pengguna lain Halaman KeyInfo dapat kita lihat pada Gambar 4.7.
Gambar 4.7 Halaman KeyInfo
4.2 Pengujian Sistem
Pengujian sistem dilakukan pada Smartphone dengan spesifikasi :
- Model : GT-I9500
- Manufacturer : Samsung
- Processor : Exynos 5 Octa 1.60 GHz
- GPU : PowerVR SGX 544
- RAM : 2 GB
- Screen Resolution (pixels) : 1080 x 1920 - Android Version : 4.4.2
- API Level : 17
60
Tabel 4.1Hasil Pengujian Enkripsi
Proses Enkripsi Setelah Enkripi
Uji 1 Hasil Pengujian: Berhasil
Tabel 4.1Hasil Pengujian Enkripsi(Lanjutan)
Proses Enkripsi Setelah Enkripsi
Uji 3 Hasil Pengujian : Berhasil
62
Tabel 4.2Hasil Pengujian Dekripsi
Proses Dekripsi Setelah Dekripsi
Uji 1 Hasil Pengujian : Berhasil
Tabel 4.2Hasil Pengujian Dekripsi(Lanjutan)
Proses Dekripsi Setelah Dekripsi
Uji 3 Hasil Pengujian : Berhasil
Pada uji 1 dilakukan proses dekripsi pada surel hasil uji 1 tabel 4.1 Pada uji 2 dilakukan proses dekripsi pada surel hasil uji 2 tabel 4.1. Pada uji 3 dilakukan proses dekripsi pada surel hasil uji 23 tabel 4.1. Dapat dilihat pengguna hanya perlu memasukkan kunci privat yang dimilikinya dan secara otomatis akan mencari kunci AES dan konten rahasia yang terdapat pada surel, kemudian melakukan proses dekripsi sesuai pasangan konten dan kunci tanpa tertukar.
4.2.1 Analisis Pengujian Sistem
Dari hasil pengujian yang ditampilkan pada Tabel 4.1 didapat beberapa kesimpulan yaitu :
- Object Uji 1
64
Uji 2 berhasil menerapkan enkripsi dan dekripsi dengan dua konten rahasia. Konten surel yang tidak dienkripsi juga dapat ditampilkan dengan benar. - Object Uji 3
Uji 3 berhasil menerapkan enkripsi dan dekripsi dengan tiga konten rahasia. Sistem berhasil mengenali urutan konten rahasia sehingga tidak terjadi kesalahan pada proses dekripsi.
4.2.2 Analisis Algoritma AES dan Rabin
Berdasarkan hasil pengujian pada sub bab pengujian sistem, surel yang dikirim dan diterima melewati proses enkripsi dan dekripsi yang terjadi dalam satu waktu dan akan membutuhkan waktu, waktu tersebut yang akan dianalisa pada sub-bab ini.
Berikut ini adalah tabel hasil pengujian proses enkripsi menggunakan algoritma AES 128-bit dan Rabin, untuk teks sepanjang 10 karakter hingga 4000 karakter .
700 8186 49236
800 8485 45132
900 8421 53040
1000 8607 66084
2000 10377 78317
Tabel 4.3 Table hasil pengujian lama proses enkripsi(Lanjutan)
Karakter
Berikut ini adalah tabel hasil pengujian proses dekripsi menggunakan algoritma AES 128-bit dan Rabin, untuk teks sepanjang 10 karakter hingga 4000 karakter .
66
500 4577 36095
600 4308 35512
700 5542 43567
800 5892 40850
900 6251 42057
1000 6311 54353
2000 8251 86785
3000 10364 142610
4000 12435 206318
Berdasarkan tabel 4.3 dan tabel 4.4 dapat dijelaskan, bahwa proses enkripsi dan dekripsi pesan dalam satu kali proses dapat menghasilkan kunci enkripsi dengan lama waktu yang berbeda-beda. Algoritma AES cenderung lebih cepat dibanding algoritma Rabin baik dalam proses enkripsi maupun dekripsi.
Untuk memperkirakan berapa lama proses enkripsi dan dekripsi pesan yang dikirim oleh user untuk sebuah pesan dengan panjang karakter tertentu, umumnya menggunakan teknik analisis regresi. Analisis regresi adalah salah satu metode yang digunakan untuk mencari hubungan antara variabel bebas yang biasa disimbolkan dengan Y, dengan variabel tidak bebas yang biasa disimbolkan dengan X (Supranto, 2009), untuk memperkirakan lama proses enkripsi dan dekripsi pada sebuah pesan dengan panjang pesan tertentu.
Gambar 4.8 Hasilanalisis regresi lama proses enkripsi AES
Dari gambar 4.8 dapat dilihat, persamaan liniernya adalah y = 2.6x + 4910 Misalnya ingin memperkirakan lama proses untuk pesan sepanjang 2500 karakter, maka cara mengetahuinya adalah menghitung koefisien dengan besar kunci,jadi cara mengetahuinya adalah dengan mengalikan nilai koefisien dengan variabel x yaitu 2.6 * 2500 + 4910= 11410, jadi dapat diperkirakan lama proses enkripsi AES untuk pesan sepanjang 2500 karakter adalah 26580 mikrodetik.
Gambar 4.9 Hasilanalisis regresi lama proses enkripsi Rabin
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500
La
0 500 1000 1500 2000 2500 3000 3500 4000 4500
68
Dari gambar 4.9 dapat dilihat, persamaan liniernya adalah y = 32.9x + 15460 Misalnya ingin memperkirakan lama proses untuk pesan sepanjang 2500 karakter, maka cara mengetahuinya adalah menghitung koefisien dengan besar kunci,jadi cara mengetahuinya adalah dengan mengalikan nilai koefisien dengan variabel x yaitu 32.9 * 2500 + 15460= 97710, jadi dapat diperkirakan lama proses enkripsi Rabin untuk pesan sepanjang 2500 karakter adalah 97110 mikrodetik.
Berikut ini adalah gambar dari analisis regresi terhadap table 4.4.
Gambar 4.10 Hasilanalisis regresi lama proses dekripsi AES
Dari gambar 4.10 dapat dilihat, persamaan liniernya adalah y = 2.9x + 2114 Misalnya ingin memperkirakan lama proses untuk pesan sepanjang 2500 karakter, maka cara mengetahuinya adalah menghitung koefisien dengan besar kunci,jadi cara mengetahuinya adalah dengan mengalikan nilai koefisien dengan variabel x yaitu 2.9 * 2500 + 4910= 9364, jadi dapat diperkirakan lama proses dekripsi AES untuk pesan sepanjang 2500 karakter adalah 9364 mikrodetik.
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500
Gambar 4.11 Hasilanalisis regresi lama proses dekripsi Rabin
Dari gambar 4.11 dapat dilihat, persamaan liniernya adalah y = 47.8x + 5002 Misalnya ingin memperkirakan lama proses untuk pesan sepanjang 2500 karakter, maka cara mengetahuinya adalah menghitung koefisien dengan besar kunci,jadi cara mengetahuinya adalah dengan mengalikan nilai koefisien dengan variabel x yaitu 47.8 * 2500 + 5002= 124502, jadi dapat diperkirakan lama proses dekripsi AES untuk pesan sepanjang 2500 karakter adalah 124502 mikrodetik.
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan analisis dari sistem dan pengujian sistem secara menyeluruh yang dilakukan pada bab sebelumnya, maka ada beberapa hal yang dapat dijadikan kesimpulan pada penelitian ini antara lain:
1. Penerapan kombinasi sistem kriptografi kunci publik yaitu AES dan kriptografi simetris yaitu Rabin dapat mengamankan surel pengguna pada saat surel sebelum dikirim ke server surel untuk mengamankan surel dari proses penyadapan.
2. Lamanya proses enkripsi dan dekripsi berpengaruh positif atau berbanding lurus dengan banyaknya karakter pesan.
3. Performa algoritma Rabin sebagai algoritma asimetris lebih lambat dibanding algoritma AES yang merupakan algoritma simetris
5.2. Saran
Penulis menyarankan dalam pengembangan penelitian lebih lanjut untuk aplikasi klien surel sebagai berikut:
1. Sistem enkripsi AES menggunakan kunci yang lebih besar dari 128-bit. 2. Dapat mendukung attachment file.
3. Dapat mendukung pengiriman surel ke lebih dari satu orang. 4. Dapat mendukung server surel selain Google Mail
DAFTAR PUSTAKA
Connely, J. 2008. A Practical Implementation of a One-time Pad Cryptosystem.
Crispin, M. 2003. Internet Message Access Protocol -
Version 4rev1,(online) http://tools.ietf.org/html/rfc3501, 24 Juni 2015
Daemen,J & Rijmen,V. 1999. AES Proposal:Rijndael
Fowler, M. 2005. UML Distilled 3th Ed., Panduan Singkat Bahasa Pemodelan Objek Standar.Yogyakarta : ANDI.
Freed & Borenstein. 1996. Multipurpose Internet Mail Extensions (MIME)Part One:Format of Internet Message Bodies,(online)https://tools.ietf.org/html/rfc2045,24 Juni 2015
Leksono,M.A.2012. Aplikasi Klien Surel Dengan Algoritma Rabbit Pada Ponsel
Android.Skripsi.Institut Teknologi Bandung:Bandung
Muchtar, Muhammad Anggia, Muhammad Fadhly Sani. 2011. Modul Praktikum Desain Perangkat Lunak. Modul Praktikum. Medan, Indonesia: Universitas Sumatera Utara.
Partige, C. 2009. The Technical Development of Internet Email,(online)
http://www.ir.bbn.com/~craig/email.pdf, 20 Juni 2015
Postel, J.B. 1982. Simple Main Transfer Protocol,(online)
2
Rabin, M.O. 1979. Digitalize signatures and Public-Key Functions as Intractable as Factorization.
Rasool. S, Sridhar. G, Kumar. K. H & Kumar. P. R. 2011. Enhanced Secure Algorithm For Message Communication. International Journal of Network Security & Its Applications (IJNSA), Vol.3, No.5.
Safaat, N.A. 2012. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika. Bandung
Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta: Andi.
Supranto, J. 2009. Statistik Teori dan Aplikasi Edisi Ketujuh. Jakarta: Erlangga.
Supriyanto, A.2009. Pemakaian Kriptografi Kunci Publik Untuk Proses Enkripsi dan Tanda Tangan Digital Pada Dokumen Email.Skripsi.Universitas Stikubank:Semarang