PENGEMBANGAN PROTOKOL KEAMANAN PADA JALUR KOMUNIKASI MODUL CLIENT DAN SERVER SISTEM PENILANGAN KENDARAAN BERMOTOR
ANINDRA AGENG JIHADO
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012
PENGEMBANGAN PROTOKOL KEAMANAN PADA JALUR KOMUNIKASI MODUL CLIENT DAN SERVER SISTEM PENILANGAN KENDARAAN BERMOTOR
ANINDRA AGENG JIHADO
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2012
ABSTRACT ANINDRA AGENG JIHADO. Security Protocol Development for Communication Lines between Client and Server Module on Vehicle Traffic Ticket System. Under the supervision of ENDANG PURNAMA GIRI. The current traffic ticket system is still developed on the desktop platform. This desktop application could not provide the real time information needed by the traffic officer to confirm the history data of the traffic offender. Therefore the improvement of the current traffic ticket system is required especially for providing communication protocol between server side and client side in order to ensure the secure information. This research aims to develop a secure traffic ticket system by implementing RSA and AES algorithm. The main focus of this research is to develop the security protocol for the client side application using RSA and AES algorithm. The RSA algorithm is employed to distribute AES key between server and client. Moreover, the AES algorithm is used to encrypt the traffic offense information distributed from server to client or from client to server. The results of the security analysis conducted in this research show that the security performance of the new traffic ticket system can be improved in term of confidentiality, data integrity, authentication, and non-repudiation. However, the execution time of the new system is slightly increase (0.4 second) compared to the basic traffic ticket system which is developed without providing the security protocol. Keyword: AES, cryptography, RSA, security protocol, traffic ticket
Judul Skripsi
:
Nama NRP
: :
Pengembangan Protokol Keamanan pada Jalur Komunikasi Modul Client dan Server Sistem Penilangan Kendaraan Bermotor Anindra Ageng Jihado G64052094
Menyetujui: Dosen Pembimbing,
Endang Purnama Giri, SKom, MKom NIP. 19821010 200604 1 027
Mengetahui: Ketua Departemen,
Dr Ir Agus Buono, MSi, MKom NIP. 19660702 199302 1 001
Tanggal lulus:
PRAKATA Alhamdulillahirabbil ‘alamin, segala puji dan syukur penulis panjatkan kepada ALLAH Subhanahu wa ta’ala atas segala curahan rahmat, kasih sayang, hidayah, dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir ini yang berjudul Pengembangan Protokol Keamanan pada Jalur Komunikasi Modul Client dan Server Sistem Penilangan Kendaraan Bermotor. Terima kasih penulis ucapkan kepada semua pihak yang telah membantu dalam penyelesaian tugas akhir ini, antara lain kepada: 1
Kedua orang tua tercinta Ibunda Pepita Sopranita dan Ayahanda Zaenal Arifin yang telah banyak memberikan dukungan, kasih sayang, doa, dan kesabaran.
2
Kedua saudari penulis yaitu Annisa dan Anggita serta si bungsu Iqraya yang telah memberikan tawa dan semangat dalam hari-hari penyelesaian tugas akhir.
3
Bapak Endang Purnama Giri SKom, MKom selaku pembimbing tugas akhir yang telah meluangkan waktunya memberikan bimbingan, dukungan, dan saran selama penelitian tugas akhir.
4
Bapak Dr Wisnu Ananta Kusuma ST, MT dan Bapak Sony Hartono Wijaya S.Kom, Mkom selaku penguji tugas akhir dalam penelitian ini yang telah memberikan begitu banyak pelajaran dan masukan kepada penulis sehingga penulis dapat memperbaiki berbagai kesalahan dalam penelitian.
5
Zissalwa Hafsari untuk semangat, doa, motivasi, dan kesabaran yang tak dapat dijabarkan dengan kata-kata.
6
Tim Polimat, Gaos dan Wikhdal, yang telah banyak memberikan sumbangan saran dan data serta kebersamaan dalam melakukan penelitian.
7
Mas Agus dan Priyo yang telah memberikan tempat dan bantuan pada penulis dalam menyelesaikan penelitian.
8
Seluruh Asaderz yang beranggotakan Dipa, Eko, Ikhsan, Mas Agung, Mas Firda, dan masih banyak lainnya yang tidak dapat disebutkan satu per satu atas dukungan dan bantuan selama penulis berada di Bogor.
9
Tim Joker, Hanif dan Kurni untuk ide-ide segar, ilmu pemrograman Java dan kesempatan berkompetisi di ajang nasional.
10 Teman-teman Ilkomerz 42 tahun-tahun yang indah dalam menuntut ilmu. 11 Seluruh dosen pengajar yang telah mendidik, mengayomi, dan memberikan ilmu-ilmu yang bermanfaat serta seluruf staf pegawai Departemen Ilmu Komputer atas bantuan dan kerjasamanya selama penulis menuntut ilmu beberapa tahun terakhir. 12 Semua pihak yang tidak dapat disebutkan satu per satu. Akhirnya penulis berharap semoga tulisan ini dapat bermanfaat bagi pihak yang memerlukannya dan yang terlibat dalam penyusunan tugas akhir ini. Amin.
Bogor, Agustus 2012
Anindra Ageng Jihado
RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 25 April 1987 dari ayah bernama Zaenal Arifin dan ibu bernama Pepita Sopranita. Penulis merupakan anak pertama dari empat bersaudara. Pada tahun 2005, penulis lulus dari SMAN 2 Bekasi, kemudian diterima di TPB IPB pada tahun yang sama melalui Seleksi Penerimaan Mahasiswa Baru (SPMB). Pada tahun 2006, penulis diterima di Departemen Ilmu Komputer dan Manajemen Fungsional sebagai pilihan dalam Sistem Mayor Minor IPB. Selama aktif menjadi mahasiswa, penulis pernah bergabung di Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) pada tahun 2006 sampai dengan 2007 sebagai staf divisi Multimedia. Pada tahun 2008, penulis melaksanakan kegiatan praktik kerja lapangan di BB-BIOGEN selama 35 hari.
DAFTAR ISI Halaman DAFTAR TABEL ............................................................................................................................ vi DAFTAR GAMBAR ....................................................................................................................... vi DAFTAR LAMPIRAN ................................................................................................................... vii PENDAHULUAN............................................................................................................................. 1 Latar Belakang............................................................................................................................. 1 Tujuan .......................................................................................................................................... 1 Ruang Lingkup ............................................................................................................................ 1 Manfaat Penelitian ....................................................................................................................... 2 TINJAUAN PUSTAKA .................................................................................................................... 2 Kriptografi ................................................................................................................................... 2 Kriptografi Kunci Publik ............................................................................................................. 2 Kriptografi Kunci Simetris .......................................................................................................... 2 Padding ....................................................................................................................................... 3 Modus Operasi Algoritme Blok................................................................................................... 3 Electronic Codebook (ECB) ........................................................................................................ 3 RSA ............................................................................................................................................. 3 Advanced Encryption Standard (AES) ........................................................................................ 4 Enkripsi AES ............................................................................................................................... 4 a SubBytes .......................................................................................................................... 4 b ShiftRows ......................................................................................................................... 5 c MixColumns ..................................................................................................................... 5 d AddRoundKey.................................................................................................................. 5 Dekripsi AES ............................................................................................................................... 5 a InvShiftRows.................................................................................................................... 6 b InvSubBytes ..................................................................................................................... 6 c AddRoundKey.................................................................................................................. 6 d InvMixColumns ............................................................................................................... 6 Ekspansi Kunci ............................................................................................................................ 6 LightWeight UI Toolkit ............................................................................................................... 7 Metode Pengembangan Perangkat Lunak Waterfall.................................................................... 7 Analysis of Variance (ANOVA) .................................................................................................. 8 METODOLOGI PENELITIAN ........................................................................................................ 8 Perumusan Masalah dan Studi Literatur ...................................................................................... 8 Wawancara .................................................................................................................................. 8 Pengembangan Perangkat Lunak ................................................................................................. 8 Analisis Kebutuhan Sistem .......................................................................................................... 8 Perancangan Sistem dan Perangkat Lunak .................................................................................. 9 Implementasi dan Pengujian Unit ................................................................................................ 9 Integrasi dan Pengujian Sistem .................................................................................................... 9 Operasi dan Pengelolaan ............................................................................................................. 9 Analisis Perbandingan ................................................................................................................. 9 Lingkungan Pengembangan ........................................................................................................ 9 HASIL DAN PEMBAHASAN ......................................................................................................... 9 Analisis Kebutuhan Sistem .......................................................................................................... 9 a Deskripsi Umum Sistem................................................................................................... 9 b Analisis Kebutuhan Pengguna .......................................................................................... 9 c Analisis Kebutuhan Sistem ............................................................................................ 10 d Analisis Pengguna .......................................................................................................... 10 e Analisis Keamanan ......................................................................................................... 10 Perancangan Sistem dan Perangkat Lunak ................................................................................ 10 v
a Perancangan Input .......................................................................................................... 10 b Perancangan Output ....................................................................................................... 10 c Perancangan Basis Data ................................................................................................. 10 d Perancangan Proses ........................................................................................................ 10 e Perancangan Antarmuka................................................................................................. 11 f Perancangan Protokol Keamanan ................................................................................... 11 Implementasi dan Pengujian Unit .............................................................................................. 12 a Implementasi Basis Data ................................................................................................ 12 b Implementasi Protokol Keamanan ................................................................................. 13 c Implementasi Antarmuka ............................................................................................... 14 Integrasi dan Pengujian Sistem .................................................................................................. 14 Operasi dan Pengelolaan ........................................................................................................... 14 Analisis Keamanan .................................................................................................................... 14 a Kerahasiaan .................................................................................................................... 14 b Integritas data ................................................................................................................. 14 c Autentikasi ..................................................................................................................... 14 d Non-repudiasi ................................................................................................................. 15 Analisis Perbandingan ............................................................................................................... 15 KESIMPULAN DAN SARAN ....................................................................................................... 16 Kesimpulan ................................................................................................................................ 16 Saran .......................................................................................................................................... 17 DAFTAR PUSTAKA ..................................................................................................................... 17
DAFTAR TABEL Halaman 1 Struktur tabel T_MOBILE......................................................................................................... 13 2 Hasil uji ANOVA ...................................................................................................................... 16
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Skema kunci publik ..................................................................................................................... 2 Skema kunci simetris ................................................................................................................... 2 Skema Electronik Codebook ....................................................................................................... 3 Proses enkripsi AES .................................................................................................................... 4 Ilustrasi proses SubBytes ............................................................................................................. 5 Ilustrasi proses ShiftRows ........................................................................................................... 5 Contoh AddRoundKey ................................................................................................................ 5 Proses dekripsi AES .................................................................................................................... 6 Ilustrasi ekspansi kunci ................................................................................................................ 6 Proses pengembangan perangkat lunak dengan metode Waterfall .............................................. 7 Metodologi penelitian .................................................................................................................. 8 Diagram alir proses Polimat Mobile menggunakan enkripsi. .................................................... 11 Rancangan antarmuka................................................................................................................ 11 Proses handshake....................................................................................................................... 12 Komunikasi antara Polimat Mobile dengan server. ................................................................... 13 Struktur package com.tilang.koneksi dan package com.tilang.kripto. ....................................... 13 Struktur polimat.Package.kripto dan polimatPackage.mobileConnect ...................................... 14 Tampilan antarmuka login pada Polimat Mobile....................................................................... 14 Diagram waktu pengujian setiap fungsi menggunakan enkripsi dan tanpa enkripsi ................. 15
vi
DAFTAR LAMPIRAN Halaman 1 2 3 4 5 6 7 8 9 10
Tabel S-Box ............................................................................................................................... 19 Tabel inverse S-Box ................................................................................................................... 20 Tabel RC[j] ................................................................................................................................ 21 Use case diagram Polimat Mobile ............................................................................................ 22 Fungsi aplikasi Polimat Mobile ................................................................................................. 23 Implementasi antarmuka Polimat Mobile .................................................................................. 24 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile ..................................... 27 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile TE ............................... 28 Hasil tiga nilai tengah dari uji running time Polimat Mobile .................................................... 29 Hasil tiga nilai tengah dari uji running time Polimat Mobile TE............................................... 30
vii
1
PENDAHULUAN Latar Belakang
server Polimat dan Polimat Mobile pada proses penilangan.
Penilangan adalah suatu tindakan atas pelanggaran yang dilakukan pengendara kendaraan bermotor di jalan raya. Pada saat ini, penilangan yang dilakukan di wilayah Bogor dilakukan tanpa melakukan pengecekan riwayat penilangan sehingga tindakan penilangan diambil hanya berdasarkan pelanggaran yang terjadi saat itu.
Algoritme RSA adalah algoritme kunci publik dan tanda tangan digital pertama yang ditemukan oleh Rivest, Shamir, dan Adleman pada tahun 1978. Algoritme ini berdasar pada permasalahan matematis, yaitu sulitnya memfaktorkan bilangan yang sangat besar (Stallings 2005). Algoritme RSA pada penelitian ini digunakan pada tahap pertukaran kunci AES.
Ketersediaan sarana atau fasilitas yang digunakan dalam proses penilangan mutlak dimiliki untuk memudahkan pihak-pihak yang terkait dengan penilangan. Sarana dan fasilitas yang ada saat ini tidak dapat memenuhi kebutuhan informasi secara cepat dalam kegiatan penilangan di lapangan. Pengambilan data pelanggar dilakukan melalui software desktop yang membutuhkan sebuah komputer dan tidak terhubung secara online. Hal ini menyulitkan petugas dalam melakukan proses penilangan di lapangan karena perangkat yang digunakan tidak portable dan tidak efisien. Masalah tersebut mendasari pengembangan aplikasi Polimat (Police Mobile Application for Traffic Ticket).
Advanced Encryption Standard atau yang biasa disingkat AES awalnya bernama algoritme Rijndael merupakan algoritme kunci simetris yang dikembangkan oleh Joan Daemen dan Vincent Rijmen. Salah satu kelebihannya adalah dapat mudah diterima sebagai standar karena bebas royalti dan dapat diimplementasikan dengan mudah di berbagai platform tanpa mengurangi bandwidth secara signifikan (Daemen & Rijmen 2002). Oleh sebab itu AES sangat cocok digunakan di telepon genggam yang memiliki sumber daya terbatas. Pada penelitian ini, algoritme AES digunakan untuk penyandian komunikasi data antara client dan server.
Polimat merupakan sistem penilangan digital yang terdiri atas dua subsistem, yaitu server Polimat dan Polimat Mobile. Server Polimat merupakan sistem perangkat lunak berbasis web yang digunakan sebagai pusat pengelolaan data pelanggaran lalu lintas di Polres Bogor dan berfungsi sebagai server (Irwana 2011). Polimat Mobile merupakan aplikasi telepon genggam yang bertindak sebagai client dari Polimat Server. Polimat Mobile memiliki akses terhadap data pelanggaran serta dapat melakukan input data pelanggaran. Polimat Mobile dikembangkan pada platform J2ME. Polimat Mobile melakukan komunikasi menggunakan General Packet Radio Service (GPRS) atau layanan komunikasi data pada GSM. Tentunya komunikasi antara client dan server yang bersifat global melalui internet rentan akan ancaman. Oleh karena itu, diperlukan suatu pengamanan tambahan dalam komunikasi data untuk mencegah terjadinya penyadapan, pencurian informasi, dan penyisipan data. Diperlukan juga suatu protokol untuk mengautentikasi entitas yang saling berkomunikasi. Untuk mengatasi hal tersebut, diterapkan algoritme RSA dan AES sebagai langkah pengamanan komunikasi data antara
Tujuan Tujuan dari penelitian ini adalah: 1 Pengembangan Polimat Mobile yang merupakan salah satu sistem dari dua subsistem penilangan digital. 2 Membangun protokol keamanan untuk Polimat dengan menggunakan algoritme RSA dan AES. 3 Menjaga kerahasiaan data selama proses komunikasi antara server Polimat dan Polimat Mobile berlangsung. Ruang Lingkup Beberapa lingkup penelitian ini meliputi: 1 Sistem yang dikembangkan merupakan sistem untuk melakukan penilangan secara digital. Secara keseluruhan sistem ini terdiri atas dua subsistem utama yaitu: a Sistem Mobile digunakan untuk melihat riwayat pelanggar dan mengirimkan data penilangan ke server pada proses penilangan. b Sistem Server digunakan sebagai pusat penyimpanan serta pengelolaan data penilangan.
2
2 Penelitian ini berfokus pada poin a, yaitu pengembangan sistem mobile serta melakukan perlindungan komunikasi data. 3 Spesifikasi sistem dibuat berdasarkan pada alur proses penilangan yang berlaku di wilayah Bogor. 4 Data yang digunakan adalah data yang bersifat dummy. 5 Penerapan algoritme AES menggunakan panjang blok kunci 128 bit yang dibangkitkan secara acak.
umum sementara kunci untuk dekripsi disebut kunci privat yang nilainya rahasia. Algoritme kunci publik dapat digunakan untuk kerahasiaan dan autentikasi ataupun keduanya. Skema kunci publik dapat dilihat pada Gambar 1. Karakteristik penting yang dimiliki algoritme kunci publik adalah tidak layak untuk mencari kunci dekripsi hanya dengan mengetahui algoritme kriptografi dan kunci enkripsi (Stallings 2005).
6 Perlindungan keamanan dalam komunikasi data hanya menggunakan algoritme RSA dan AES untuk menjaga kerahasiaan data. Manfaat Penelitian Manfaat dari penelitian ini adalah dihasilkannya suatu aplikasi yang dapat memenuhi kebutuhan informasi pengguna pada proses penilangan. Penelitian ini juga diharapkan dapat memberi contoh penerapan protokol keamanan komunikasi data menggunakan algoritme RSA dan AES.
TINJAUAN PUSTAKA Kriptografi
Gambar 1 Skema kunci publik (Stallings 2005). Salah satu algoritme kunci publik yang terkenal adalah RSA yang juga digunakan pada penelitian ini. Kriptografi Kunci Simetris
Kriptografi adalah studi teknik matematis yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). Ilmu kriptografi merupakan alat utama programmer untuk hal yang berkaitan dengan aspek keamanan di dalam aplikasinya. Ada empat tujuan utama kriptografi menurut Menezes et al. (1996): 1 Kerahasiaan, yaitu layanan untuk menjaga isi informasi hanya untuk yang berhak. 2 Integritas data, yaitu layanan yang berkaitan terhadap perubahan data. 3 Autentikasi, yaitu layanan yang berkaitan dengan idetifikasi. 4 Non-repudiasi, yaitu layanan yang mencegah suatu entitas melanggar kesepakatan. Kriptografi Kunci Publik Kriptografi kunci publik mempunyai kunci yang berbeda untuk melakukan enkripsi dan dekripsi. Kunci untuk enkripsi disebut kunci publik yang nilainya dapat diketahui secara
Gambar 2 Skema kunci simetris (Stallings 2005). Kriptografi secret key atau kunci simetris adalah kriptografi yang hanya melibatkan satu kunci dalam proses enkripsi dan dekripsi. Proses dekripsi dalam kriptografi kunci simetris merupakan kebalikan dari proses enkripsi. Skema kunci simetris dapat dilihat pada Gambar 2. Algoritme AES sendiri merupakan sebuah algoritme kriptografi kunci simetris yang beroperasi dalam bentuk blok 128-bit. Algoritme AES mendukung panjang kunci 128bit, 192-bit, dan 256-bit. Algoritme AES kunci 128-bit digunakan pada penelitian ini untuk menyandikan data yang dikirim antara client dan server.
3
Padding Pada umumnya, plaintext memiliki ukuran yang tidak sama dengan algoritme blok cipher yang digunakan. Hal ini diatasi dengan padding yaitu dengan menambahkan bit tambahan agar ukuran blok semestinya terpenuhi. Tidak ada aturan baku mengenai padding. Semua skema padding dapat digunakan asalkan prosesnya dapat dibalik atau unpadding. Penelitian ini menggunakan skema penambahan byte dengan karakter ASCII yang mempunyai kode sama dengan jumlah padding yang ditambahkan di blok tersebut. Skema padding dapat ditulis sebagai berikut: Cpadd = Npadd = 16 - (Plength mod 16) dengan Cpadd adalah kode ASCII yang digunakan sebagai padding, Npadd adalah jumlah padding, dan Plength adalah panjang byte dari plaintext. Sebagai contoh apabila plaintext panjangnya 88 bit atau 11 byte, diperlukan 16 – (11 mod 16), yaitu lima byte padding. Kode ASCII 5 ditambahkan sebanyak lima kali pada blok ciphertext. Modus Operasi Algoritme Blok Modus operasi algoritme blok merupakan aturan yang memetakan n-bit blok plaintext ke n-bit blok-blok ciphertext, dalam hal ini n merupakan panjang blok. Pada umumnya, blok cipher mengoperasikan blok plaintext dan ciphertext menjadi 64 bit atau lebih (Schneier 1996). Contoh modus operasi algoritme blok adalah Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), dan Counter (CTR) (Stalling 2005). Penelitian ini menggunakan ECB sebagai modus algoritme blok pada implementasi AES. Electronic Codebook (ECB)
Electronic Codebook (ECB) merupakan modus operasi algoritme blok yang mengoperasikan plaintext secara satu blok utuh menggunakan kunci yang sama. Gambar 3 menunjukkan skema dari modus operasi agloritme blok ECB. Modus operasi algoritme blok ECB dapat ditulis sebagai berikut: Ci = E(K,Pi) dengan i = 1,...,k Pi = D(K,Ci) dengan i = 1,...,k RSA Algoritme RSA merupakan algoritme kunci publik yang populer. Nama RSA diambil dari Rivest, Shamir, dan Adleman yang merupakan pengembang algoritme tersebut. Algoritme ini berdasar pada bilangan prima dan konsep matematika sederhana, yaitu relatif sulit untuk mencari faktor bilangan prima p dan q dari bilangan komposit r. Hal ini cepat dilakukan jika r mempunyai sedikit digit. Akan tetapi, jika digit r melampaui 100, faktor primanya akan sulit dicari. Langkah-langkah pembuatan kunci publik dan kunci privat algoritme RSA adalah sebagai berikut: 1 Bangkitkan dua bilangan prima p dan q. Kedua bilangan ini bersifat rahasia. 2 Lakukan perkalian n = p x q. Hasil perkalian dapat diketahui orang lain tanpa resiko diketahuinya p dan q. 3 Hitung φ = (p - 1)(q - 1). Bilangan φ bersifat rahasia. 4 Pilih bilangan bulat e dengan 1 < e < φ yang relatif prima terhadap φ. Relatif prima dapat diartikan gcd(e, φ) = 1. 5 Hitung integer d dengan 1 < d < φ sehingga ed 1 (mod φ). Perhitungan dapat dilakukan dengan menggunakan algoritme Euclid. 6 Didapat kunci publik adalah pasangan (r, e) dan kunci privat adalah d. Setelah mendapat kunci publik dan kunci privat, dapat dilakukan enkripsi dan dekripsi. Enkripsi dapat dilakukan dengan menggunakan persamaan: c = me (mod n)
Gambar 3 Skema Electronic Codebook (Stalling 2005).
Dekripsi dapat dilakukan dengan menggunakan persamaan: m = cd (mod n)
4
Sebelumnya pesan terlebih dahulu direpresentasikan sebagai integer m dengan m {0, 1 , 2, ..., n – 1}. Pada penelitian ini, digunakan library java.math.BigInteger untuk mencari kunci privat dan representasi pesan. Kunci privat dicari dengan cara: privateKey = publicKey.modInverse(phi) Pesan yang akan dienkripsi direpresentasikan menjadi BigInteger dengan baris kode berikut: BigInteger msg = new BigInteger(message) Advanced Encryption Standard (AES) Algoritme Rijndael merupakan algoritme pemenang sayembara yang diadakan oleh National Institute of Standards and Technology (NIST). Sayembara tersebut diadakan untuk untuk membuat standar algoritme kriptografi yang baru pengganti Data Encyption Standard atau biasa disingkat DES. Standar baru dinamakan Advanced Encryption Standard (AES). Oleh karena itulah Rijndael juga disebut AES. Algoritme AES ditemukan oleh Vincent Rijmen dan Joan Daemen. Ada tiga kriteria pada saat Rijndael didesain (Daemen & Rijmen 2002), yaitu: 1 Ketahanan terhadap serangan yang sudah diketahui. 2 Kecepatan dan kode yang compact pada berbagai platform. 3 Desain yang sederhana. Gambar 4 menunjukkan proses enkripsi pada AES. Enkripsi AES Secara umum, algoritme AES melakukan putaran enkripsi sebanyak sepuluh putaran yang terbagi dalam tiga bagian, yaitu initial round, 19 round, dan final round. Dilakukan empat proses utama, yaitu: SubBytes, ShiftRows, MixColumns, dan AddRoundKey. Pada initial round, dilakukan proses AddRoundKey pada state awal yang masih berupa plaintext dengan cipher key. Pada sembilan round berikutnya, akan dilakukan empat proses transformasi, yaitu SubBytes, ShiftRows, MixColumns, dan AddRoundKey. Final round merupakan putaran terakhir yang hanya melibatkan proses transformasi SubBytes, ShiftRows, dan AddRoundKey.
Gambar 4 Proses enkripsi AES (Stalling 2005). Pada enkripsi dilakukan ekspansi kunci untuk memperoleh round key. Pada round pertama digunakan w[4,7] pada matriks ekspansi kunci sebagai round key pertama. a SubBytes Subbytes merupakan tahap subsitusi byte plaintext menggunakan kaidah permutasi SBox. AES mendefinisikan S-Box (Lampiran 1) sebagai byte matriks 16 x 16 yang memuat semua permutasi yang mungkin dari nilai 8 byte. Hanya ada satu S-Box yang digunakan untuk menyubsitusikan byte pada matriks state di semua round. Subsitusi dilakukan dengan menggunakan nilai heksadesimal pertama sebagai baris dan nilai heksadesimal kedua sebagai kolom pada SBox. Sebagai contoh, nilai heksadesimal {A9}
5
dipetakan sebagai baris A dan kolom 9 pada SBox yang ternyata memuat nilai heksadesimal {D3}. Subsitusi dilakukan dengan mengganti {A9} dengan {D3}. Lebih jelasnya proses SubBytes dapat dilihat pada Gambar 5.
dengan matriks state. Lebih jelasnya dapat dilihat pada persamaan berikut (Stalling 2005):
[
]
= [
[
]
]
Semua operasi penjumlahan dan perkalian untuk masing-masing nilai pada perkalian matriks dilakukan pada ruang lingkup finite field GF(28). Gambar 5 Ilustrasi proses SubBytes (Stalling 2005). b ShiftRows Proses ShiftRows pada dasarnya menggeser baris pada matriks state dengan aturan sebagai berikut:
d AddRoundKey AddroundKey merupakan proses XOR antara matriks state dan matriks round key. Matriks round key merupakan matriks hasil ekspansi kunci yang dibangkitkan pada setiap round. Gambar 7 merupakan contoh dari proses AddRoundKey.
1 Baris pertama tidak bergeser (tetap). 2 Baris kedua dilakukan pergeseran secara rotasi satu byte ke kiri. 3 Baris ketiga dilakukan pergeseran secara rotasi dua byte ke kiri. 4 Baris keempat dilakukan pergeseran secara rotasi tiga byte ke kiri. Pergeseran secara rotasi ke kiri mengakibatkan byte paling kiri berpindah ke byte paling kanan pada dalam satu baris matriks state. Lebih jelasnya diberikan Gambar 6 yang merupakan ilustrasi proses SubBytes.
Gambar 6 Ilustrasi proses ShiftRows (Stalling 2005). c MixColumns Proses MixColumns mengoperasikan kolom secara terpisah. Setiap byte kolom dipetakan menjadi nilai baru dengan suatu fungsi yang melibatkan semua nilai pada kolom tersebut. Transformasi didapat dengan melakukan operasi perkalian matriks forward mix columns
Gambar 7 Contoh AddRoundKey (Stalling 2005). Dekripsi AES Alur dekripsi AES kebalikan dari alur enkripsi. Proses transformasi pada dekripsi juga merupakan kebalikan terhadap proses transformasi enkripsi. Perbedaanya adalah pada penjadwalan kunci yang dimulai dari word ke43 sampai word ke-0. Pada initial round dilakukan proses AddRoundKey pada state awal yang merupakan ciphertext dengan w[40,43] dari matriks ekspansi kunci. Selanjutnya dilakukan sembilan putaran yang meliputi proses tranformasi InvShiftRows, InvSubBytes, AddRoundKey, dan InvMixColumns. Sementara itu, final round hanya dilakukan proses InvShiftRows, InvSubBytes, dan AddRoundKey. Round key pertama pada proses dekripsi dimulai dari word ke-36 sampai word ke-39 dari matriks ekpansi kunci. Hal ini terus berlanjut sampai round kesepuluh yang menggunakan word ke-0 sampai word ke 3 untuk proses XOR
6
dengan matriks state. Lebih jelasnya alur proses dekripsi dapat dilihat pada Gambar 8.
Inverse S-Box merupakan matriks 16x16 yang memuat nilai antilog dari S-Box. Matriks inverse S-Box dapat dilihat pada Lampiran 2. c AddRoundKey AddroundKey pada dekripsi sama dengan AddRoundKey pada enkripsi. AddRoundKey melakukan proses XOR antara matriks state dan round key. Perbedaannya terletak pada round key yang digunakan pada proses enkripsi dan pada proses dekripsi. Sebagai contoh pada round pertama enkripsi, digunakan round key w[4,7] sementara pada round pertama dekripsi digunakan round key w[36,39]. d InvMixColumns Proses InvMixColumns melakukan operasi perkalian matriks inverse mix columns dengan matriks state. Berikut merupakan persamaan untuk perkalian InvMixColumns:
]
[
= [
[ Gambar 8 Proses dekripsi AES (Stalling 2005) a InvShiftRows InvShiftRows mengembalikan pergeseran byte yang telah dilakukan oleh forward ShiftRows. InvShiftRows memiliki aturanaturan sebagai berikut: 1 Baris pertama tidak bergeser (tetap).
]
]
Operasi penjumlahan dan perkalian untuk masing-masing nilai pada perkalian matriks dilakukan pada ruang lingkup finite field GF(28). Ekspansi Kunci Ekspansi kunci merupakan proses pembangkitan round key dari kunci AES. Pembangkitan dilakukan per word sebanyak 44 word. Gambar 9 merupakan ilustrasi proses ekspansi kunci.
2 Baris kedua dilakukan pergeseran secara rotasi satu byte ke kanan. 3 Baris ketiga dilakukan pergeseran secara rotasi dua byte ke kanan. 4 Baris keempat dilakukan pergeseran secara rotasi tiga byte ke kanan. Pergeseran satu byte ke kanan akan menyebabkan byte paling kanan akan berpindah ke byte paling kiri. b InvSubBytes InvSubBytes pada dasarnya sama dengan proses transformasi SubBytes namun menggunakan inverse S-Box alih-alih S-Box.
Gambar 9 Ilustrasi ekspansi kunci (Stalling 2005)
7
Langkah-langkah ekspansi kunci adalah sebagai berikut: 1 Word pertama (w0) hingga word ke-4 (w3) merupakan penyalinan langsung dari kunci AES. 2 Word selanjutnya apabila memenuhi persyaratan jika i mod 4 = 0 dengan i merupakan indeks dari word, dilakukan proses sebagai berikut: Rot Word Rot Word merupakan proses pergeseran byte dimana byte yang terletak pada baris paling atas berpindah ke baris paling bawah. Sub Word Sub Word merupakan proses subsitusi byte pada word menggunakan kaidah SBox. XOR Proses XOR dilakukan pada hasil dari sub word dengan Rcon[i/4]. Rcon merupakan konstanta dengan nilai yang berbeda-beda untuk setiap round. Pembangkitan tabel RC[j] dapat dilihat pada Lampiran 3. 3 Lakukan proses XOR dengan wi-4. Setelah didapatkan ke-44 word, didapat 11 round key yang masing-masing berisikan empat word. Round key tersebut digunakan pada proses AddRoundKey. LightWeight UI Toolkit LightWeight UI Toolkit (LWUIT) merupakan application programming interface (API) yang memudahkan programmer membuat tampilan antarmuka lebih menarik dan lebih dinamis pada aplikasi mobile. Antarmuka menggunakan LWUIT membuatnya beroperasi seragam pada berbagai device. Pada aplikasi Polimat Mobile, LWUIT digunakan agar tampilan tidak berubah pada berbagai tipe dan sistem operasi telepon genggam yang digunakan. Metode Pengembangan Perangkat Lunak Waterfall Model waterfall mengambil aktivitas proses (spesifikasi, pengembangan, validasi, dan evolusi) lalu merepresentasikannya sebagai fase proses yang terpisah seperti spesifikasi kebutuhan, perancangan perangkat lunak, implementasi, pengujian, dan proses selanjutnya (Sommerville 2007).
Analisis Kebutuhan sistem
Perancangan sistem & perangkat lunak
Implementasi & pengujian unit
Integrasi & pengujian sistem
Operasi & pengelolaan
Gambar 10
Proses pengembangan perangkat lunak dengan metode Waterfall (Sommerville 2007).
Gambar 10 merupakan tahapan-tahapan penting dari model Waterfall menurut Sommerville (2007) yang dapat dijabarkan sebagai berikut: 1 Analisis dan definisi kebutuhan. Layanan, batasan, dan tujuan sistem ditetapkan melalui pembicaraan dengan pengguna sistem. Informasi tersebut kemudian didefinisikan secara detail dan menjadi spesifikasi sistem. 2 Perancangan sistem dan perangkat lunak. Perancangan sistem berfungsi untuk menetapkan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak meliputi identifikasi dan deskripsi abstraksi sistem perangkat lunak. 3 Implementasi dan pengujian unit. Pada tahap ini perancangan direalisasikan dalam bentuk unit. Pengujian unit meliputi verifikasi bahwa setiap unit memenuhi spesifikasinya. 4 Integrasi dan pengujian sistem. Seluruh unit perangkat lunak diuji sebagai sebuah sistem secara keseluruhan untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. 5 Operasi dan pengelolaan. Pada tahap ini, sistem telah digunakan. Pemeliharaan meliputi perbaikan error yang tidak diketahui saat tahap sebelumnya, mengoptimalkan implementasi dari tiap unit sistem, dan penambahan layanan baru sesuai kebutuhan sistem. Model waterfall digunakan pada sistem yang sudah jelas kebutuhannya dan tidak berubah banyak dalam pengembangannya.
8
Analysis of Variance (ANOVA) Analysis of Variance merupakan metode statistik untuk mengetahui signifikansi perbedaan rata-rata dari beberapa populasi. Berdasarkan faktor yang diuji, ANOVA dapat dibagi menjadi dua tipe, yaitu: 1 ANOVA satu arah Uji ANOVA satu arah hanya melibatkan satu faktor yang mengalami pengulangan sampel. 2 ANOVA dua arah Uji ANOVA dua arah melibatkan faktor yang mempunyai sub kategori.
METODOLOGI PENELITIAN Pelaksanaan penelitian ini meliputi beberapa tahapan proses atau aktivitas yang dirangkum dalam suatu metode penelitian yang dapat dilihat pada Gambar 11. Secara garis besar, tahapan penelitian ini adalah (1) Perumusan masalah dan studi literatur, (2) Pengembangan perangkat lunak, dan (3) Analisis perbandingan antara aplikasi yang menerapkan algoritme RSA dan AES dengan aplikasi tanpa enkripsi.
Mulai
Perumusan masalah dan studi literatur
berhubungan dengan penelitian, baik dalam bentuk dokumen, jurnal, text book, maupun electronic book. Wawancara Sebelum pengembangan sistem perangkat lunak, dilakukan wawancara untuk mengetahui kebutuhan perangkat lunak. Wawancara dilakukan kepada kepala unit (Kanit) penilangan di Polres Bogor terkait masalah prosedur, data penilangan, dan surat tilang. Beberapa pertanyaan yang penting bagi perolehan informasi dalam penelitian ini adalah: Bagaimana sistem perangkat penilangan di Bogor saat ini? Bagaimana berlangsung?
prosedur
lunak
penilangan
Informasi apa yang perlu diketahui petugas tilang sebelum melakukan penilangan? Informasi apa yang harus disampaikan petugas tilang pada pelanggar? Data apa saja yang harus dicatat dalam surat tilang? Bagaimana prosedur pembayaran pengadilan bagi pelanggar?
atau
Dari hasil wawancara, diperoleh data yang akan menjadi kebutuhan dan batasan sistem yang akan dikembangkan. Pengembangan Perangkat Lunak
Pengembangan perangkat lunak Sistem 1 Sistem 2
Tanpa Enkripsi
Menerapkan Algoritme RSA dan AES
Analisis perbandingan dan kesimpulan
Selesai
Gambar 11 Metodologi penelitian. Perumusan Masalah dan Studi Literatur Segala hal yang menjadi alasan perlunya untuk mengembangkan sistem dalam penelitian dirumuskan sehingga akan menjadi alasanalasan latar belakang dari penelitian ini. Studi literatur dilakukan dengan mempelajari sumber-sumber tertulis yang
Perangkat lunak yang dikembangkan terdiri dari server dan client. Server penilangan telah dikembangkan Gaos Irwana (2011), sementara client berupa perangkat lunak mobile dikembangkan pada penelitian ini. Perangkat lunak client dibuat dua buah dengan spesifikasi yang sama dan dengan metode pengembangan perangkat lunak yang sama yaitu melalui metode pengembangan perangkat lunak waterfall. Sistem pertama dibuat dengan menerapkan algoritme RSA dan AES sementara sistem satunya tidak menerapkannya. Hal ini berlaku juga untuk server. Pada penelitian ini, aplikasi client yang menggunakan enkripsi disebut Polimat Mobile sementara aplikasi tanpa enkripsi seterusnya akan disebut Polimat Mobile TE. Analisis Kebutuhan Sistem Analisis kebutuhan dilakukan setelah tahapan studi literatur dan wawancara selesai dilaksanakan. Data yang terkumpul pada tahap sebelumnya dianalisis untuk dijadikan layanan,
9
batasan, dan tujuan sistem. Pada tahap ini, spesifikasi sistem telah ditetapkan.
2 Perangkat keras: Prosesor AMD Athlon II 245 2,9 GHz;
Perancangan Sistem dan Perangkat Lunak
Memori 2046 MB;
Pada tahap ini, representasi sistem Perancangan meliputi perancangan alir antarmuka, dan keamanan.
HDD 160 GB.
akan dirancang suatu yang akan dibuat. perancangan basis data, aplikasi, perancangan perancangan protokol
Client: 1 Sony Ericsson W660i; 2 Samsung C6625.
Implementasi dan Pengujian Unit Implementasi algoritme RSA dan AES dilakukan di tahap ini. Implementasi dilakukan di bagian client dan server Polimat Mobile. Implementasi tidak dilakukan pada Polimat Mobile TE. Integrasi dan Pengujian Sistem Pengujian dilakukan terhadap sistem penilangan keseluruhan dengan menggunakan metode pengujian black box. Sistem diuji dengan menjalankan simulasi penilangan kendaraan bermotor. Sistem dinyatakan sukses apabila simulasi berjalan tanpa ada kendala. Jika ada proses yang belum berjalan, aplikasi kembali diperbaiki sampai tahap uji mencapai sukses. Operasi dan Pengelolaan Operasi dan pengelolaan adalah tahapan pengoperasian dan pengelolaan sistem yang telah dibuat. Analisis Perbandingan Analisis perbandingan dilakukan antara sistem yang menggunakan enkripsi dan sistem tanpa enkripsi. Data perbandingan merupakan uji waktu pada setiap fungsi pengiriman dan penerimaan data antara Polimat Mobile dan server Polimat. Analisis perbandingan dilakukan dengan menggunakan Analysis of Variance (ANOVA). Lingkungan Pengembangan Lingkungan pengembangan yang digunakan dalam penelitian ini adalah sebagai berikut: Server: 1 Perangkat lunak: Windows XP Professional SP 3; Netbeans IDE 7.0; Apache Tomcat 6.0.20; Oracle 10g Express Edition; Java version 1.6.0_14.
HASIL DAN PEMBAHASAN Peraturan lalu lintas di Indonesia menerapkan bahwa tindakan penilangan dikenakan terhadap pengemudi selaku pelaku pelanggaran bukan terhadap pemilik kendaraan. Penilangan kendaraan bermotor dilakukan menggunakan surat bukti pelanggaran (tilang) berbentuk kertas yang berisi data pelanggar dan data pelanggaran. Riwayat pelanggar terkait pelanggaran lalu lintas perlu diketahui terlebih dahulu sebelum melakukan penilangan. Hal ini akan menentukan langkah apa yang harus diambil oleh polisi dalam menindak pelanggar. Saat ini, belum ada sistem penilangan kendaraan bermotor yang terhubung secara online, untuk itulah diperlukan aplikasi penilangan digital yang memudahkan penilangan. Polimat merupakan aplikasi penilangan digital yang dimaksudkan untuk memudahkan petugas dalam melakukan proses tilang. Petugas dapat mengambil tindakan yang sesuai berdasarkan informasi riwayat pelanggaran. Analisis Kebutuhan Sistem Analisis yang dilakukan berdasarkan hasil dari wawancara, prosedur penilangan, dan studi literatur. Hal yang perlu dianalisis pada tahap ini adalah sebagai berikut: a Deskripsi Umum Sistem Polimat Mobile adalah sistem perangkat lunak pada telepon genggam yang digunakan sebagai alat bantu untuk melakukan penilangan kendaraan bermotor di Polres Bogor. Polimat Mobile membantu petugas dalam menampilkan riwayat pelanggar dan mengirimkan data terkait pelanggaran yang dilakukan ke server Polimat melalui koneksi internet. Pertukaran data antara Polimat Mobile dan server Polimat dilakukan secara rahasia dengan menggunakan enkripsi. b Analisis Kebutuhan Pengguna Berdasarkan hasil wawancara, didapat kebutuhan pengguna Polimat Mobile, yaitu:
10
Menampilkan lima riwayat pelanggaran terakhir. Menampilkan detail dari pelanggaran yang telah dilakukan pelanggar. Input data terkait pelanggaran yang dilakukan untuk dikirimkan ke server Polimat. Lampiran 4 menunjukkan use case diagram Polimat Mobile. c Analisis Kebutuhan Sistem Polimat Mobile bertujuan membantu polisi melakukan proses penilangan secara cepat dan aman. Tujuan tersebut dipenuhi dengan melakukan analisis kebutuhan yang terdapat pada sistem. Kebutuhan sistem diterjemahkan menjadi fungsi-fungsi yang meliputi keamanan data dan kebutuhan pengguna. Daftar fungsi-fungsi yang dapat dikerjakan Polimat Mobile dapat dilihat pada Lampiran 5. d Analisis Pengguna Pengguna Polimat Mobile merupakan polisi yang telah terdaftar pada server Polimat. Pengguna dapat mencari data pelanggar berdasarkan Single Identity Number (SIN), melihat riwayat pelanggaran, dan melakukan input data pelanggaran. Pengguna tidak dapat mengubah data pelanggar maupun data pelanggaran. e Analisis Keamanan Polimat Mobile terhubung dengan server menggunakan internet. Informasi yang dikirim maupun yang diterima tentunya rentan terhadap serangan apabila tidak dilakukan pengamanan. Keamanan informasi Polimat Mobile dilandasi pada empat tujuan kriptografi yaitu: 1 Kerahasiaan Data surat tilang bersifat rahasia terjaga dari pihak-pihak yang tidak berwenang. 2 Integritas data Data surat tilang harus dijamin integritasnya tanpa ada manipulasi dari pihak-pihak yang tidak berwenang. 3 Autentikasi Server Polimat dan Polimat Mobile harus saling mengidentikasi dirinya satu sama lain sehingga informasi dapat teridentifikasi. Sistem juga harus mengautentikasi pengguna Polimat Mobile untuk keperluan lebih lanjut.
4 Non-repudiasi Non-repudiasi mencegah polisi untuk mengingkari penilangan yang dilakukannya. Perancangan Sistem dan Perangkat Lunak Proses perancangan dilakukan untuk menerjemahkan hasil analisis kebutuhan menjadi rancangan abstrak atau visual dari Polimat Mobile. a Perancangan Input Polimat Mobile dirancang pada telepon genggam yang memiliki keyboard fisik namun beberapa telepon genggam yang memiliki layar sentuh juga dapat menggunakannya. Segala bentuk interaksi dilakukan dengan cara menekan tombol atau mengisi form melalui keyboard atau layar sentuh. b Perancangan Output Output Polimat Mobile ditampilkan dalam bentuk form dan dialog. Polimat Mobile mendukung semua resolusi layar untuk mengantisipasi resolusi layar telepon genggam yang berbeda-beda. Hal ini dimungkinkan dengan digunakannya LWUIT. c Perancangan Basis Data Basis data pada server Polimat (Irwana 2011) dikembangkan tanpa adanya tabel untuk telepon genggam. Oleh karena itu, perlu ditambahkan untuk menyimpan daftar telepon genggam dan kunci RSA yang telah didaftarkan. d Perancangan Proses Alur proses Polimat Mobile yang menggunakan enkripsi dan tanpa enkripsi sedikit berbeda. Perbedaannya terletak pada fungsi handshake yang tidak dimiliki Polimat Mobile TE. Fungsi handshake bertujuan mengautentikasi kedua belah pihak yang melakukan komunikasi. Handshake juga berfungsi mengirimkan kunci AES yang digunakan untuk mengenkripsi semua informasi yang ditukar selama proses penilangan berlangsung. Jika handshake gagal, maka aplikasi akan langsung keluar. Halaman login akan tampil jika handshake berhasil. Pada Polimat Mobile tanpa enkripsi, login langsung tampil pada saat aplikasi dijalankan. Halaman login memuat textfield username, password, dan lokasi penilangan dilakukan. Halaman login juga memuat halaman bantuan bagi pengguna.
11
Username dan password yang dimasukkan pada halaman login kemudian akan dicari dan dicocokkan pada database server Polimat. Apabila sesuai, pengguna akan dihadapkan dengan menu utama Polimat Mobile. Menu utama terdiri atas Pencarian SIN, Bantuan, Tentang Aplikasi, Logout, dan Exit. Pencarian SIN digunakan untuk mencari riwayat penilangan yang dilakukan pelanggar berdasarkan nomor SIN.
Mulai
Handshake
Handshake Berhasil
Gagal
Selesai
Setelah melihat riwayat, barulah pembuatan surat tilang dapat dilakukan dengan mengisi form pemrosesan. Halaman pemrosesan merupakan halaman tempat pengguna memasukkan data pelanggar. Pelanggar dapat memilih antara slip biru atau slip merah. Pada slip biru, perlu dilakukan input alamat bank yang digunakan pelanggar untuk membayar denda, sementara pada slip merah pengguna perlu melakukan input data terkait sidang.
Berhasil
Login
Tidak
Logout
Username dan Password Ditemukan
Nomor tilang didapatkan dari server Polimat ketika penilangan selesai dilakukan dan secara otomatis data pelanggaran akan tersimpan di server. Diagram alir proses Polimat Mobile menggunakan enkripsi dapat dilihat pada Gambar 12.
Keluar Aplikasi Ya
Menu Utama
e Perancangan Antarmuka Perancangan antarmuka pada Polimat Mobile cukup sederhana. Antarmuka terbagi menjadi dua bagian, yaitu judul halaman dan isi halaman. Gambar 13 merupakan bentuk rancangan antarmuka.
Pencarian SIN
History Pelanggar
TIdak
Nomor Tilang
Judul
Apakah akan diproses?
Isi Halaman
Ya
Gambar 13 Rancangan antarmuka.
Input Data Pelanggar
Merah
Input Data Terkait Sidang
f
Pemrosesan Data Pelanggar
Slip Merah atau Biru
Biru Input Bank
Gambar 12 Diagram alir proses Polimat Mobile menggunakan enkripsi.
Perancangan Protokol Keamanan
Pertukaran informasi antara server dan Polimat Mobile bersifat rahasia. Informasi yang dikirimkan haruslah aman dari pihak-pihak yang tidak berwenang. Oleh sebab itu, perlu dirancang protokol untuk mengamankan komunikasi data. Server dan setiap aplikasi Polimat Mobile mempunyai kunci RSA. Kunci RSA dan nomor identifikasi (ID) Polimat Mobile tersimpan di server sementara di setiap aplikasi Polimat Mobile tersimpan kunci publik server. Nomor
12
ID diperlukan untuk mengidentifikasi aplikasi Polimat Mobile yang melakukan input data penilangan sementara kunci RSA digunakan pada proses handshake. Handshake merupakan proses distribusi kunci AES antara Polimat Mobile dan server. AES digunakan sebagai algoritme penyandian pesan selama proses penilangan berlangsung. Langkah-langkah dari handshake diproyeksikan pada Gambar 14. Tiap langkah dapat dijelaskan sebagai berikut: 1 E(PUb,[N1||IDA]) Polimat Mobile (client) menggunakan kunci publik server untuk mengirimkan pesan yang berisikan identitas aplikasi (IDA) dan nonce 1 (N1) ke server yang menandakan transaksi. Nonce 1 (N1) merupakan angka acak yang dibangkitkan oleh client. Server kemudian mendekripsinya dengan menggunakan kunci private server lalu mendapatkan N1 dan ID client. Server memerlukan ID dari client untuk mengetahui kunci RSA client. Kunci tersebut digunakan untuk mengenkripsi data yang akan dikirimkan ke client. 2 E(PUa,[N1||N2]) Server membangkitkan nonce 2 (N2) secara acak lalu mengirimkan bersama N1 yang sebelumnya dienkripsi menggunakan kunci publik client. Setelah client menerima, dilakukan enkripsi untuk mendapatkan N1 lalu client akan langsung membandingkan N1 miliknya. Apabila sama, server terautentikasi oleh client, namun jika tidak sama, komunikasi tidak akan dilanjutkan. 3 E(PUb,N2) Client mengembalikan N2 yang telah dienkripsi dengan kunci publik server dengan tujuan untuk mengautentikasi dirinya. Server mendekripsinya, kemudian membandingkan dengan N2 miliknya. Jika sesuai, server akan mengirimkan respons berhasil. Jika tidak sesuai, server akan mengirimkan respons gagal. 4 E(PUb,E(PRa,KunciAES)) Setelah mendapatkan respons berhasil, client akan membangkitkan kunci AES lalu mengenkripsinya menggunakan kunci privat client kemudian mengenkripsinya lagi dengan menggunakan kunci publik server. Penggunaan kunci privat client yaitu sebagai tanda tangan digital client sementara penggunaan kunci publik server
dimaksudkan agar hanya server yang mampu mendekripsinya. Server mendekripsi pesan menggunakan kunci privatnya lalu mendekripsinya kembali dengan menggunakan kunci publik Polimat Mobile. Setelah kunci AES diperoleh, server akan mengirimkan respons yang menyatakan handshake berhasil. Respons tersebut dienkripsi menggunakan kunci AES yang didistribusikan. Jika berhasil, seharusnya client dapat mendekripsinya dan jika gagal, client menyatakan handshake gagal dan aplikasi akan keluar. Setiap komunikasi data yang terjadi selanjutnya terlebih dahulu dienkripsi menggunakan algoritme AES 128 bit. 1. E(PUb,[N1||IDA]) 2. E(PUa,[N1||N2])
Telepon Telepon Genggam Genggam
Server Server
3. E(PUb,N2) 4. E(PUb,E(PRa,KunciAES))
Gambar 14 Proses handshake. Implementasi dan Pengujian Unit Polimat Mobile dikembangkan menggunakan platform Java 2 Micro Edition (J2ME). Oleh karena itu, aplikasi ini hanya dapat dijalankan pada telepon genggam yang mendukung J2ME. Pada tahap ini, dilakukan proses implementasi terhadap semua perancangan yang dilakukan pada tahap sebelumnya, dan kemudian dilakukan pengujian dari hasil implementasi tersebut. Tahap implementasi untuk Polimat Mobile terdiri atas: a Implementasi Basis Data Penambahan tabel mobile yang dirancang dari tahap sebelumnya di implementasikan ke dalam Database Management Sistem (DBMS) Oracle. Terdapat field mobile_id merupakan primary key dan bersifat unik. Field mobile_id memuat nomor identifikasi aplikasi Polimat Mobile yang telah dibuat dan telah terpasang pada telepon genggam yang nantinya akan digunakan untuk keperluan autentikasi. Struktur
13
tabel yang ditambahkan untuk Polimat Mobile terlihat pada Tabel 1.
Field
Tipe
Keterangan
server. Pol.serialize() merupakan method yang akan menserialisasi objek tersebut menjadi aliran byte, sementara aes.Encrypt(data) merupakan method penyandian pesan menggunakan AES.
mobile_id
Varchar2(4000)
ID telepon genggam
Saat data diterima, server melakukan dekripsi dan deserialisasi menggunakan method:
pu_k
Varchar2(4000)
Kunci publik
modulus
Varchar2(4000)
modulus
pr_k
Varchar2(4000)
Kunci privat
hash
Varchar2(4000)
Hash kunci privat
Tabel 1 Struktur tabel T_MOBILE
b Implementasi Protokol Keamanan Terlebih dahulu dilakukan Handshake antara Client dan Server
User
Server
Memasukkan username dan password
Pengiriman Username dan Password
Telepon genggam
Pencocokan username dan password
Konfirmasi login
data = aes.Decrypt(data); pol.deserialize(data); Method aes.Decrypt(data) akan mendekripsi data menjadi aliran byte lalu akan diubah kembali menjadi objek menggunakan method pol.deserialize(data). Secara umum, komunikasi antara client dan server terlihat pada Gambar 15. Implementasi dilakukan di kedua belah pihak baik client maupun server. Pada client, terdapat package com.tilang.kripto yang memuat kelas untuk algoritme RSA dan AES dan kelas untuk menyimpan kunci. Kelas-kelas yang difungsikan sebagai informasi yang akan dikirimkan ke server disimpan pada package com.tilang.koneksi. Gambar 16 menunjukkan struktur dari package com.tilang.kripto dan com.tilang.koneksi.
Database
Pengiriman No. SIN
Riwayat Pelanggar
Database
Telepon genggam
Nomor tilang dari riwayat pelanggar
Telepon genggam
Detail dari penilangan
Database
Data terkait penilangan Nomor tilang
Telepon genggam
Database
Gambar 16 Struktur package pada client. Gambar 15 Komunikasi antara Polimat Mobile dengan server. Informasi yang dikirim antara server dan client berbentuk objek. Objek informasi ini diserialisasi menjadi aliran byte, lalu dienkripsi menggunakan algoritme AES pada bagian client dengan method: byte[] data = pol.serialize(); data = aes.Encrypt(data); Objek Pol merupakan informasi berisi NIP, sandi, dan lokasi tilang yang akan dikirimkan ke
Pada server, ditambahkan package polimatPackage.mobileConnect yang memuat kelas-kelas untuk melakukan koneksi ke client dan package polimatPackage.kripto untuk kelas yang berisi algoritme RSA dan AES. Package package polimatPackage.mobileConnect juga memuat kelas untuk menangani permintaan client Polimat Mobile TE. Gambar 17 menunjukkan struktur dari dua package tersebut.
14
Bagian kiri merupakan tombol bantuan penggunaan aplikasi dan bagian kanan merupakan tombol keluar dari aplikasi. Lampiran 6 memuat antarmuka Polimat Mobile. Integrasi dan Pengujian Sistem Server Polimat terlebih dahulu dilakukan deploy untuk melakukan pengujian. Pengujian dilakukan programmer Polimat Mobile menggunakan telepon genggam dengan menyimulasikan penilangan. Penilangan dilakukan dengan beberapa perubahan variabel input untuk melihat hasil output yang mungkin akan tampil. Operasi dan Pengelolaan Operasi dan pengelolaan dilakukan saat sistem telah digunakan. Pada tahap ini dilakukan pemeliharaan, perbaikan ataupun pengembangan sistem. Analisis Keamanan a Kerahasiaan
Gambar 17 Struktur package pada server. c Implementasi Antarmuka Rancangan antarmuka Polimat Mobile diimplementasikan menggunakan bahasa pemrograman Java ME dengan menggunakan LWUIT. Adanya LWUIT memudahkan pembuatan antarmuka untuk berbagai resolusi layar telepon genggam.
Kerahasiaan merupakan salah satu tujuan penting dalam kriptografi. Tentunya, pihak yang tertilang tidak menginginkan data kesalahannya diketahui oleh pihak lain. Untuk memenuhi tujuan ini, Polimat Mobile mengimplementasikan algoritme AES yang mampu mengenkripsi data sehingga terjamin kerahasiaannya. Pada aplikasi ini algoritme AES menggunakan kunci 128 bit yang diganti setiap kali pengguna melakukan login. Distribusi kunci tersebut dilakukan dengan menggunakan algoritme kunci publik RSA. b Integritas data Dengan digunakannya kunci simetris AES, integritas data terjaga. Hal ini dikarenakan hanya pihak yang memiliki kunci yang dapat bertukar pesan. Jika ada manipulasi data, baik penambahan, penghapusan, atau penyisipan, sistem akan terjadi error dalam penerimaan pesan sehingga komunikasi tidak akan dilanjutkan. c Autentikasi
Gambar 18
Tampilan antarmuka login pada Polimat Mobile.
Gambar 18 merupakan antarmuka saat pengguna melakukan login. Judul terletak pada bagian paling atas sementara isi halaman di bawahnya. Tombol aksi diletakan paling bawah.
Setiap aplikasi yang dibuat akan memiliki kunci privat yang disimpan di server. Kunci privat ini bersifat unik dan memudahkan server untuk mengidentifikasi objek yang sedang berkomunikasi dengannya. Aplikasi ini juga membutuhkan Nomor Induk Polisi (NIP) dan Password yang sudah terdaftar di server termasuk data-data lengkap mengenai pengguna.
15
Sehingga hanya pengguna yang sudah terdaftar yang dapat menggunakan aplikasi ini. d Non-repudiasi Non-repudiasi adalah prinsip kriptografi yang tujuannya adalah untuk mencegah terjadinya penyangkalan terhadap komitmen yang telah disepakati oleh pihak yang berkomunikasi. Setiap kali pengguna akan melakukan penilangan, server akan mencatat Nomor Induk Polisi (NIP) sehingga mencegah penyangkalan penilangan yang dilakukan oleh polisi. Analisis Perbandingan Pengujian running time dalam komunikasi data antara Polimat Mobile dan server dilakukan untuk mengetahui perbedaan waktu antara aplikasi Polimat Mobile dan Polimat Mobile TE. Pengujian dilakukan pada telepon genggam dengan memasukkan baris kode sebagai penghitung running time. Pengujian dimulai saat enkripsi dilakukan dan berakhir pada saat data telah diterima dan didekripsi oleh Polimat Mobile. Perangkat keras yang digunakan pada pengujian yaitu telepon genggam Sony Ericsson w660i dengan koneksi 3G yang telah dipasang aplikasi Polimat Mobile dan Polimat Mobile TE. Pengujian dilakukan pada setiap modul fungsi koneksi dan diulang sebanyak sepuluh kali. Lampiran 7 memuat hasil uji running time Polimat Mobile sementara Lampiran 8 memuat hasil uji running time Polimat Mobile TE. Dari hasil uji, diambil tiga nilai tengah dari sampel running time. Lampiran 9 memuat tiga sampel running time dan besar data untuk setiap proses pengiriman data pada Polimat Mobile. Polimat Mobile
Lampiran 10 memuat tiga sampel running time dan besar data untuk Polimat Mobile TE. Grafik perbandingan rata-rata antara Polimat Mobile dengan Polimat Mobile TE dapat dilihat pada Gambar 19. Perbedaan besar yang terjadi pada penggunaan enkripsi atau tidak adalah adanya handshake. Polimat Mobile terlebih dahulu melakukan handshake dengan maksud mendapatkan kunci AES. Berdasarkan hasil uji, running time handshake berkisar antara 22764 ms dan 24094 ms. Besar data yang dikirimkan bervariasi antara 709 sampai 712 byte. Hal ini tidak dimasukkan dalam perhitungan ANOVA karena handshake dilakukan hanya sekali pada saat aplikasi dijalankan dan tidak dilakukan pada Polimat Mobile TE. Simulasi tilang dilakukan menggunakan username admin pada Polimat Mobile. Besar data yang dikirimkan Polimat Mobile saat melakukan login adalah 44 byte sementara pada Polimat Mobile TE sebesar 69 byte. Perbedaan besar data terjadi karena pengiriman session dilakukan pada saat login di Polimat Mobile TE sementara session dikirim pada saat melakukan handshake pada Polimat Mobile. Fungsi melihat riwayat, detail riwayat, dan input pelanggaran dilakukan berdasarkan kemungkinan yang ada yaitu masing-masing lima untuk melihat perbedaan running time dan besar data koneksi. Laju pertumbuhan besar data pada Polimat Mobile dan Polimat Mobile TE mengalami kenaikan namun laju petumbuhan running time tidak linear. Hal ini disebabkan oleh variabel tak terkontrol seperti kekuatan sinyal, beban prosesor telepon genggam, beban server, dan beban jaringan. Koneksi GPRS yang tidak stabil sering Polimat Mobile TE
4.500 4.000
Running time (ms)
3.500 3.000 2.500 2.000 1.500 1.000 500 0 0 History Login
1 History
2 History
3 History
History
4 History
5 History
1 Pasal
2 Pasal
3 Pasal
Detail History Modul Fungsi Polimat Mobile
4 Pasal
5 Pasal
1 Pasal
2 Pasal
3 Pasal
4 Pasal
Input Data
Gambar 19 Diagram waktu pengujian setiap fungsi menggunakan enkripsi dan tanpa enkripsi.
5 Pasal
16
Tabel 2 Hasil uji ANOVA Source of Variation Sample
SS
df
MS
F
P-value
F crit
39,23353851
16
2,452096157
350,556231
9,58902E-59
1,794556249
Columns
0,490048039
1
0,490048039
70,05817987
4,66389E-12
3,981896256
Interaction
0,258491961
16
0,016155748
2,309655742
0,008917519
1,794556249
Within
0,475651333
68
0,006994873
Total
40,45772984
101
membuat pengiriman data sangat lama ataupun gagal dilakukan. Faktor-faktor inilah yang menyebabkan running time memiliki keragaman besar. Berdasarkan Gambar 19, terlihat bahwa running time Polimat Mobile selalu lebih lambat daripada running time Polimat Mobile TE. Bisa disimpulkan bahwa penggunaan enkripsi membuat proses berjalan lebih lama namun perbedaannya tidak signifikan. Hal ini merupakan hipotesis nol yang akan diujikan melalui ANOVA. Uji ANOVA dilakukan untuk mengetahui signifikansi perbedaan running time antara Polimat Mobile dan Polimat Mobile TE. Sebelumnya ditentukan taraf nyata sebesar 5% atau 0.05 dan hipotesis yaitu: H0 : Running time antara Polimat Mobile dan Polimat Mobile TE tidak berbeda signifikan H1 : Running time antara Polimat Mobile dan Polimat Mobile TE berbeda signifikan Berdasarkan hasil uji didapat data seperti pada Tabel 2. Berdasarkan Tabel 2, terlihat bahwa nilai F pada baris sampel (fungsi) sebesar 350.3556231. Nilai F menyatakan seberapa besar tingkat keragaman running time fungsi. Nilai F pada sampel jauh lebih besar dari nilai F kirits yang hanya sebesar 1.794556249 yang berarti adanya perbedaan signifikan running time pada dua fungsi atau lebih. Hal ini juga berlaku pada metode koneksi. Pada baris kolom nilai F sebesar 70.05817987 melampaui nilai F kritis yang hanya sebesar 3.981896256. Nilai ini menyiratkan bahwa adanya pebedaan signifikan antara penggunaan metode koneksi yang dilakukan. Baris interaksi memuat informasi mengenai interaksi antara fungsi yang dijalankan dengan metode koneksi. Nilai F sebesar 2.309655742 lebih besar dari nilai F kritis 1.794556249. Nilai P-value juga lebih kecil dari taraf nyata yang telah ditetapkan sebelumnya. Dari dua hal
tersebut, dapat diambil kesimpulan bahwa terjadi interaksi signifikan antara fungsi dan metode koneksi. Melalui ANOVA, dapat diambil keputusan untuk menolak H0 dan menerima H1. Terjadi perbedaan signifikan antara Polimat Mobile dan Polimat Mobile TE. Walaupun menurut ANOVA terjadi signifikansi perbedaan, namun sebetulnya perbedaan running time terbesar hanya 420.33 ms atau sekitar 0.4 detik. Nilai tersebut cukup kecil untuk dapat dirasakan pengguna. Perbedaan mencolok terjadi pada saat fungsi handshake dilakukan yaitu sekitar 23470 ms.
KESIMPULAN DAN SARAN Kesimpulan Integrasi Polimat Mobile dengan server Polimat berhasil dilakukan. Implementasi algoritme RSA dan AES membuat sistem Polimat lebih aman. Hasil analisis keamanan menunjukkan bahwa penggunaan algoritme tersebut membuat sistem mampu memenuhi tujuan dasar kriptografi yaitu kerahasiaan, integritas data, autentikasi entitas, dan nonrepudiasi. Penerapan protokol keamanan pada Polimat membuat sistem membutuhkan tenaga komputasi lebih yang berakibat pada meningkatnya running time aplikasi khususnya pada Polimat Mobile yang mempunyai sumber daya terbatas. Analisis perbandingan running time menggunakan ANOVA menunjukkan bahwa terjadi perbedaan signifikan antara adanya dan tidak adanya penggunaan algoritme AES. Akan tetapi, perbedaan running time terbesar terjadi pada proses handshake. Fungsi handshake tidak dijalankan pada Polimat Mobile TE. Proses handshake yang menggunakan algoritme RSA dijalankan pada Polimat Mobile dan memakan waktu rata-rata 23 detik walaupun hanya dilakukan dilakukan sekali pada saat aplikasi dijalankan.
17
Saran Polimat Mobile telah dikembangkan secara khusus untuk platform J2ME namun dengan perkembangan platform telepon genggam yang semakin beragam perlu dikembangkannya Polimat Mobile pada platform lain seperti BBOS, IOS, dan Android. Implementasi AES pada penelitian ini hanya menggunakan panjang kunci 128 bit dan modus operasi Electronic Code Book (ECB). Dikarenakan kemajuan teknologi komputasi telepon genggam semakin canggih, untuk penelitian selanjutnya penggunaan panjang kunci 192 bit atau 256 bit dapat dianalisis. Modus operasi blok dapat menggunakan alternatif lain seperti Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), dan Counter (CTR).
DAFTAR PUSTAKA Daemen J, Rijmen V. 2002. The Design of Rijndael. Berlin: Springer-Verlag Berlin Heidelberg.
Menezes A, Oorschot PV, Vanstone S. 1996. 1996. Handbook of Applied Cryptography. Boca Raton: CRC Press, Inc. Irwana G. 2011. Penerapan Crud Pattern Dalam Server Sistem Penilangan Kendaraan Bermotor Polres Bogor [skripsi]. Bogor: Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Schneier B. 1996. Applied Cryptography: Protocols, Algorithms and Source Code in C Ed ke-2. New York: John Wiley & Sons, Inc. Sommerville I. 2007. Software Engineering Ed ke-8. Harlow: Pearson Education Limited. Stalling W. 2005. Cryptography and Network Security Principles and Practice Ed ke-4. New York: Prentice Hall.
18
LAMPIRAN
19
Lampiran 1 Tabel S-Box 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
01
DE
A5
63
6A
26
7E
C9
7F
67
A4
05
03
64
2E
32
1
AE
04
BA
B5
B2
50
3A
17
08
82
0F
94
ED
7C
F5
71
2
6C
24
8A
B9
D9
E2
CC
38
B0
6D
EC
8D
3D
CA
9D
A9
3
B1
6F
E3
80
35
3B
B6
4A
E7
21
55
B3
68
BD
6E
19
4
F0
16
6B
EB
59
28
1D
2C
D6
41
3F
D5
C7
3E
8F
89
5
36
88
45
8E
DD
8C
34
CD
2F
A2
22
F7
AF
29
9E
91
6
E9
86
C0
40
18
83
F6
25
C2
A1
54
AB
66
EF
A6
E8
7
B4
5A
84
C4
52
5F
E5
02
5D
EA
D4
DB
D2
85
5B
27
8
00
44
93
47
DF
46
1A
D7
37
51
49
A8
1C
B8
4F
F9
9
C5
43
60
20
0C
57
7B
A3
61
E1
2A
E4
33
C6
53
74
A
0B
9A
76
E6
65
FF
C3
3C
9F
75
56
F8
69
F3
9C
87
B
7D
F4
5E
FD
BF
23
0D
DA
AA
99
95
9B
0E
5C
96
39
C
D3
90
30
92
C1
2D
1B
E0
81
97
15
72
10
1F
98
62
D
78
4D
13
73
AC
CE
D0
1E
FE
8B
2B
0A
06
C8
4E
F2
E
CB
CF
58
7A
EE
A0
B7
DC
12
42
FB
FC
07
14
4B
AD
F
D8
48
77
11
D1
A7
BC
70
F1
FA
BB
79
09
BE
4C
31
20
Lampiran 2 Tabel inverse S-Box 0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
80
00
77
0C
11
0B
DC
EC
18
FC
DB
A0
94
B6
BC
1A
1
CC
F3
E8
D2
ED
CA
41
17
64
3F
86
C6
8C
46
D7
CD
2
93
39
5A
B
21
67
05
7F
45
5D
9A
DA
47
C5
0E
58
3
C2
FF
0F
9C
56
34
50
88
27
BF
16
35
A7
2C
4D
4A
4
63
49
E9
91
81
52
85
83
F1
8A
37
EE
FE
D1
DE
8E
5
15
89
74
9E
6A
3A
AA
95
E2
44
71
7E
BD
78
B2
75
6
92
98
CF
03
0D
A4
6C
09
3C
AC
04
42
20
29
3E
31
7
F7
1F
CB
D3
9F
A9
A2
F2
D0
FB
E3
96
1D
B0
06
08
8
33
C8
19
65
72
7D
61
AF
51
4F
22
D9
55
2B
53
4E
9
C1
5F
C3
82
1B
BA
BE
C9
CE
B9
A1
BB
AE
2E
5E
A8
A
E5
69
59
97
0A
02
6E
F5
8B
2F
B8
6B
D4
EF
10
5C
B
28
30
14
3B
70
13
36
E6
8D
23
12
FA
F6
3D
FD
B4
C
62
C4
68
A6
73
90
9D
4C
DD
07
2D
E0
26
57
D5
E1
D
D6
F4
7C
C0
7A
4B
48
87
F0
24
B7
7B
E7
54
01
84
E
C7
99
25
32
9B
76
A3
38
6F
60
79
43
2A
1C
E4
6D
F
40
F8
DF
AD
B1
1E
66
5B
AB
8F
F9
EA
EB
B3
D8
A5
21
Lampiran 3 Tabel RC[j] RC[j] merupakan bilangan heksadesimal, sementara j merupakan bilangan desimal. Langkah pembangkitan tabel RC[j]: 1. 2.
Inisialisasi RC[1] = 01 Hitung RC[j] = 2 * RC[j-1]
Operasi * merupakan perkalian dalam GF(28) Contoh: RC[1]
= 01 (inisialisasi)
RC[2]
= 2 * RC[2-1] = 2 * RC[1] = 2 * 01 = 02
RC[9]
= 2 * RC[9-1] = 2 * RC[8] = 2 * 80 = 100 Dilakukan operasi mod terhadap polinomial irreducible GF(28) yaitu x8 + x4 + x3 + x + 1 yang dalam biner menjadi 100011011 atau 11B dalam heksadesimal. = 100 mod 11B = 1B
RC[10] = 2 * RC[10-1] = 2 * RC[9] = 2 * 1B = 36
j RC[j]
1 01
2 02
3 04
4 08
5 10
6 20
7 40
8 80
9 1B
10 36
22
Lampiran 4 Use case diagram Polimat Mobile
Polimat Mobile
Lihat Riwayat Pelanggaran
Lihat Detail Riwayat Pelanggaran
Polisi Input Data Slip Merah
<<ext end> > Input Data Pelanggaran
Input Data Slip Biru
> end> <<ext
23
Lampiran 5 Fungsi aplikasi Polimat Mobile Kode fungsi
Deskripsi
[POLIMATM-001]
Melakukan autentikasi terhadap server
[POLIMATM-002]
Mendistribusikan kunci AES kepada server
[POLIMATM-003]
Melakukan enkripsi pada setiap data yang dikirimkan ke server
[POLIMATM-004]
Melakukan dekripsi pada setiap data yang diterima dari server
[POLIMATM-005]
Melakukan serialisasi pada setiap data yang dikirimkan ke server
[POLIMATM-006]
Melakukan deserialisasi pada setiap data yang diterima dari server
[POLIMATM-007]
Melakukan autentikasi terhadap pengguna (login)
[POLIMATM-008]
Mencari riwayat penilangan berdasarkan SIN
[POLIMATM-009]
Melihat detail riwayat penilangan
[POLIMATM-010]
Melakukan input data penilangan
[POLIMATM-011]
Melakukan input data terkait slip biru
[POLIMATM-012]
Melakukan input data terkait slip merah
[POLIMATM-013]
Mendapatkan nomor tilang dari server
[POLIMATM-014]
Penghapusan data session pengguna (logout)
24
Lampiran 6 Implementasi Antarmuka Polimat Mobile 1. Halaman login
2. Halaman menu utama
3. Halaman pencarian SIN
25
Lanjutan 4. Halaman riwayat pelanggaran
5. Halaman detail riwayat pelanggaran
6. Halaman pemrosesan
26
Lanjutan 7. Halaman slip biru
8. Halaman slip merah
27
Lampiran 7 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile
2188 2372 2615
0 Hist. 2486 2540 2545
1 Hist. 2387 2420 2451
3. History 2 3 Hist. Hist. 2360 2569 2418 2571 2479 2654
4 Hist. 2575 2830 2912
5 Hist. 2264 2528 2535
1 Pasal 2245 2392 2394
4. Detail History 2 3 4 Pasal Pasal Pasal 2466 2539 2541 2490 2588 2548 2596 2679 2554
5 Pasal 2408 2502 2520
1 Pasal 3672 3781 3813
5. Input Data 2 3 4 Pasal Pasal Pasal 3713 3635 3601 3801 3808 3653 3817 3839 3762
5 Pasal 3793 3846 3917
22764
2632
2567
2542
2480
2689
2957
2576
2430
2610
2715
2585
2624
3825
3898
3904
3884
3993
5
23552
2666
2637
2553
2512
2893
2972
2596
2444
2632
2848
2651
2699
3867
4058
3972
3998
4071
6
24094
2679
2666
2557
2535
2983
2974
2718
2488
2704
2965
2684
2707
3878
4121
4129
4008
4157
7
32598
2757
2721
2559
2573
3027
3047
3107
2584
2794
3141
2763
3147
4057
4450
4135
4178
4238
8
33476
2968
3476
2602
2584
3181
4759
4927
2593
3063
4368
3032
3316
4114
4573
4244
4271
4257
9
39337
3106
3818
2646
2655
4081
4936
5760
3759
6274
8129
3428
3755
4319
4606
4557
4332
4278
10
40497
3134
3965
2795
2994
7576
6151
6603
6352
10234
9568
3701
5584
5098
6116
4837
4592
4435
No.
1.Hand shake
2.Login
1 2 3
20674 22535 22594
4
28
Lampiran 8 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile TE
2260
0 Hist. 2369
1 Hist. 1767
3. History 2 3 Hist. Hist. 2208 1979
4 Hist. 2313
5 Hist. 2045
1 Pasal 2236
4. Detail History 2 3 4 Pasal Pasal Pasal 2278 2387 2030
5 Pasal 2258
1 Pasal 3601
5. Input Data 2 3 4 Pasal Pasal Pasal 3718 3573 3747
5 Pasal 3620
2283
2456
2308
2307
2002
2499
2276
2259
2408
2439
2408
2388
3643
3724
3661
3808
3653
0
2337
2467
2364
2365
2114
2504
2301
2261
2428
2492
2412
2444
3663
3744
3705
3819
3676
4
0
2403
2493
2374
2411
2211
2602
2311
2418
2440
2519
2474
2598
3757
3857
3765
3857
3832
5
0
2427
2551
2487
2437
2536
2794
2527
2439
2553
2541
2502
2676
3785
3937
3964
3862
3862
6
0
2439
2648
2494
2500
2557
2847
2553
2457
2613
2851
2561
2693
3839
3944
3971
3902
3864
7
0
2474
3025
2518
2679
2597
2865
2730
2476
2786
2862
2679
2696
4058
4003
3987
4157
3888
8
0
2567
3129
2519
2683
3111
2970
2893
2562
2828
2932
2785
2772
4115
4086
4298
4256
4000
9
0
2632
3807
2670
2765
3368
3045
6218
2630
2838
3986
2837
2886
4174
4104
4450
4468
4976
10
0
2819
4083
2691
4364
3675
3341
7243
2716
4207
5883
3438
3404
4584
7269
4671
5604
5427
No.
1.Hand shake
2.Login
1
0
2
0
3
29
Lampiran 9 Hasil tiga nilai tengah dari uji running time Polimat Mobile Modul Fungsi 1. Handshake
2. Login
0 History
1 History
2 History 3. History 3 History
4 History
5 History
1 Pasal
2 Pasal
4. Detail History
3 Pasal
4 Pasal
5 Pasal
1 Pasal
2 Pasal
5. Input Data
3 Pasal
4 Pasal
5 Pasal
Waktu (ms) 22764 23552 24094 2632 2666 2679 2567 2637 2666 2542 2553 2557 2480 2512 2535 2689 2893 2983 2957 2972 2974 2576 2596 2718 2430 2444 2488 2610 2632 2704 2715 2848 2965 2585 2651 2684 2624 2699 2707 3825 3867 3878 3898 4058 4121 3904 3972 4129 3998 4008 4178 3993 4071 4157
Besar data (byte) 709 - 712
44
62
93
130
167
204
241
178
219
252
297
316
130
146
146
146
146
30
Lampiran 10 Hasil tiga nilai tengah dari uji running time Polimat Mobile TE Modul Fungsi 1. Handshake (tidak ada)
2. Login
0 History
1 History
2 History 3. History 3 History
4 History
5 History
1 Pasal
2 Pasal
4. Detail History
3 Pasal
4 Pasal
5 Pasal
1 Pasal
2 Pasal
5. Input Data
3 Pasal
4 Pasal
5 Pasal
Waktu (ms) 0 0 0 2403 2427 2439 2493 2551 2648 2374 2487 2494 2411 2437 2500 2211 2536 2557 2602 2794 2847 2311 2527 2553 2418 2439 2457 2440 2553 2613 2519 2541 2851 2474 2502 2561 2598 2676 2693 3757 3785 3839 3857 3937 3944 3964 3971 3987 3857 3862 3902 3832 3862 3864
Besar data (byte) 0
69
62
93
130
167
204
241
163
204
237
282
301
128
131
134
137
140
Penguji : 1. Sony Hartono Wijaya, SKom, MKom 2. Dr Wisnu Ananta Kusuma ST, MT