ANINDRA AGENG JIHADO
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
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
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.
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
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
RIWAYAT
HIDUP
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
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 ... 132 Hasil uji ANOVA ... 16
DAFTAR GAMBAR
Halaman 1 Skema kunci publik ... 22 Skema kunci simetris ... 2
3 Skema Electronik Codebook ... 3
4 Proses enkripsi AES ... 4
5 Ilustrasi proses SubBytes ... 5
6 Ilustrasi proses ShiftRows ... 5
7 Contoh AddRoundKey ... 5
8 Proses dekripsi AES ... 6
9 Ilustrasi ekspansi kunci ... 6
10 Proses pengembangan perangkat lunak dengan metode Waterfall ... 7
11 Metodologi penelitian ... 8
12 Diagram alir proses Polimat Mobile menggunakan enkripsi. ... 11
13 Rancangan antarmuka... 11
14 Proses handshake. ... 12
15 Komunikasi antara Polimat Mobile dengan server. ... 13
16 Struktur package com.tilang.koneksi dan package com.tilang.kripto. ... 13
17 Struktur polimat.Package.kripto dan polimatPackage.mobileConnect ... 14
18 Tampilan antarmuka login pada Polimat Mobile... 14
DAFTAR LAMPIRAN
Halaman
1 Tabel S-Box ... 19
2 Tabel inverse S-Box ... 20
3 Tabel RC[j] ... 21
4 Use case diagram Polimat Mobile ... 22
5 Fungsi aplikasi Polimat Mobile ... 23
6 Implementasi antarmuka Polimat Mobile ... 24
7 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile ... 27
8 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile TE ... 28
9 Hasil tiga nilai tengah dari uji running time Polimat Mobile ... 29
PENDAHULUAN
Latar Belakang
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.
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).
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
server PolimatdanPolimat Mobile pada proses penilangan.
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.
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.
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.
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.
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
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
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).
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
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.
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)
Gambar 3 Skema Electronic Codebook (Stalling 2005).
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.
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)
Dekripsi dapat dilakukan dengan menggunakan persamaan:
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, 1-9 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 S-Box. 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.
dipetakan sebagai baris A dan kolom 9 pada S-Box yang ternyata memuat nilai heksadesimal {D3}. Subsitusi dilakukan dengan mengganti {A9} dengan {D3}. Lebih jelasnya proses SubBytes dapat dilihat pada Gambar 5.
Gambar 5 Ilustrasi proses SubBytes (Stalling 2005).
b ShiftRows
Proses ShiftRows pada dasarnya menggeser baris pada matriks state dengan aturan sebagai berikut:
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
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).
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.
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 ke-43 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.
dengan matriks state. Lebih jelasnya alur proses dekripsi dapat dilihat pada Gambar 8.
Gambar 8 Proses dekripsi AES (Stalling 2005)
a InvShiftRows
InvShiftRows mengembalikan pergeseran byte yang telah dilakukan oleh forward ShiftRows. InvShiftRows memiliki aturan-aturan sebagai berikut:
1 Baris pertama tidak bergeser (tetap).
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.
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:
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.
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 S-Box.
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). 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.
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
Gambar 11 Metodologi penelitian.
Perumusan Masalah dan Studi Literatur
Segala hal yang menjadi alasan perlunya untuk mengembangkan sistem dalam penelitian dirumuskan sehingga akan menjadi alasan-alasan latar belakang dari penelitian ini.
Studi literatur dilakukan dengan mempelajari sumber-sumber tertulis yang
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 lunak
penilangan di Bogor saat ini?
Bagaimana prosedur penilangan berlangsung?
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 atau pengadilan bagi pelanggar?
Dari hasil wawancara, diperoleh data yang akan menjadi kebutuhan dan batasan sistem yang akan dikembangkan.
Pengembangan Perangkat Lunak
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
batasan, dan tujuan sistem. Pada tahap ini, spesifikasi sistem telah ditetapkan.
Perancangan Sistem dan Perangkat Lunak
Pada tahap ini, akan dirancang suatu representasi sistem yang akan dibuat. Perancangan meliputi perancangan basis data, perancangan alir aplikasi, perancangan antarmuka, dan perancangan protokol keamanan.
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.
2 Perangkat keras:
Prosesor AMD Athlon II 245 2,9 GHz; Memori 2046 MB;
HDD 160 GB. Client:
1 Sony Ericsson W660i; 2 Samsung C6625.
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
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.
Mulai
Gambar 12 Diagram alir proses Polimat Mobile menggunakan enkripsi.
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.
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.
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.
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.
Judul
Isi Halaman
Gambar 13 Rancangan antarmuka.
f 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.
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.
Telepon
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
tabel yang ditambahkan untuk Polimat Mobile terlihat pada Tabel 1.
Tabel 1 Struktur tabel T_MOBILE
Field Tipe Keterangan
mobile_id Varchar2(4000) ID telepon genggam pu_k Varchar2(4000) Kunci publik modulus Varchar2(4000) modulus pr_k Varchar2(4000) Kunci privat hash Varchar2(4000) Hash kunci
privat
b Implementasi Protokol Keamanan
User Nomor tilang dari riwayat pelanggar
Detail dari penilangan
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
server. Pol.serialize() merupakan method yang akan menserialisasi objek tersebut menjadi aliran byte, sementara aes.Encrypt(data) merupakan method penyandian pesan menggunakan AES.
Saat data diterima, server melakukan dekripsi dan deserialisasi menggunakan method:
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.
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.
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.
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
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
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.
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
Gambar 19 Diagram waktu pengujian setiap fungsi menggunakan enkripsi dan tanpa enkripsi. 0
0 History 1 History 2 History 3 History 4 History 5 History 1 Pasal 2 Pasal 3 Pasal 4 Pasal 5 Pasal 1 Pasal 2 Pasal 3 Pasal 4 Pasal 5 Pasal
Login History Detail History Input Data
R
Modul Fungsi Polimat Mobile
Tabel 2 Hasil uji ANOVA
Source of
Variation SS df MS F P-value F crit
Sample 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 non-repudiasi. 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
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
Lampiran 1 Tabel S-Box
0 1 2 3 4 5 6 7 8 9 A B C D E F
Lampiran 2 Tabel inverse S-Box
0 1 2 3 4 5 6 7 8 9 A B C D E F
Lampiran 3 Tabel RC[j]
RC[j] merupakan bilangan heksadesimal, sementara j merupakan bilangan desimal. Langkah pembangkitan tabel RC[j]:
1. Inisialisasi RC[1] = 01 2. 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 1 2 3 4 5 6 7 8 9 10
Lampiran 4 Use case diagram Polimat Mobile
Polimat Mobile
Input Data Pelanggaran Polisi
Lihat Riwayat Pelanggaran
Lihat Detail Riwayat Pelanggaran
Input Data Slip Merah
Input Data Slip Biru
<<extend >>
<<extend>>
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
Lampiran 6 Implementasi Antarmuka Polimat Mobile 1. Halaman login
2. Halaman menu utama
Lanjutan
4. Halaman riwayat pelanggaran
5. Halaman detail riwayat pelanggaran
Lanjutan
7. Halaman slip biru
8. Halaman slip merah
Lampiran 7 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile
No. 1.Hand
shake 2.Login
3. History 4. Detail History 5. Input Data
0
Hist. 1
Hist. 2
Hist. 3
Hist.
4
Hist.
5
Hist. 1 Pasal
2 Pasal
3 Pasal
4 Pasal
5 Pasal
1 Pasal
2 Pasal
3 Pasal
4 Pasal
5 Pasal
Lampiran 8 Tabel pengujian running time tiap modul fungsi pada Polimat Mobile TE
No. 1.Hand
shake 2.Login
3. History 4. Detail History 5. Input Data
0
Hist. 1
Hist. 2
Hist. 3
Hist. 4
Hist. 5
Hist. 1 Pasal
2 Pasal
3 Pasal
4 Pasal
5 Pasal
1 Pasal
2 Pasal
3 Pasal
4 Pasal
5 Pasal
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.
PENDAHULUAN
Latar Belakang
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.
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).
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
server PolimatdanPolimat Mobile pada proses penilangan.
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.
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.
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.