SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016 T-8
Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java Faizal Achmad Lembaga Sandi Negara
[email protected]
Abstrak—Perkembangan teknologi informasi saat ini juga diikuti oleh perkembangan pada dunia pendidikan dengan menerapkan sistem ujian yang diselenggarakan secara online. Soal ujian berbasis online tersimpan dalam suatu basis data soal, yang dapat digunakan pada penyelenggaraan ujian dari waktu ke waktu saat dibutuhkan. Untuk menghindari terjadinya perulangan soal yang muncul pada saat ujian, maka diperlukan suatu metode yang dapat menghasilkan suatu pemilihan soal secara acak dari basis data. Pseudorandom Number Generator (PRNG) merupakan perangkat yang dirancang untuk menghasilkan barisan angka atau simbol yang dianggap acak, PRNG banyak diaplikasikan secara luas seperti pada perhitungan simulasi dan kriptografi. Penerapan suatu PRNG untuk sebuah aplikasi tidak lepas dari pemilihan kekuatan metode PRNG yang digunakan. Mersenne Twister merupakan salah satu algoritma PRNG yang telah dipublikasikan dan dipergunakan secara luas pada berbagai aplikasi simulasi. Penelitian ini bertujuan untuk melakukan implementasi Mersenne Twister menggunakan bahasa pemrograman Java, sebagai aplikasi pemilihan soal secara acak dari basis data soal ujian, serta menguji tingkat keacakan pilihan soal yang dihasilkan. Metode pengujian soal acak yang dihasilkan adalah dengan menggunakan 5 Uji Dasar untuk keacakan. Hasil pengujian dengan 5 Uji Dasar menyatakan bahwa pemilihan soal yang dilakukan dengan menggunakan algoritma Mersenne Twister adalah acak. Kata kunci: Random Number Generator, Mersenne Twister, Soal Ujian, 5 Uji Dasar, Keacakan.
I.
PENDAHULUAN
A. Latar Belakang Seiring dengan berkembangnya ilmu pengetahuan, serta terintegrasinya teknologi informasi, komputer dan telekomunikasi yang semakin global, memungkinkan setiap individu atau kelompok untuk dapat mengakses suatu data informasi tanpa kenal batas. Untuk membatasi agar suatu data informasi yang berklasifikasi rahasia hanya dapat diakses oleh pihak-pihak yang berkepentingan, maka data tersebut harus diamankan. Ancaman yang kerap terjadi terhadap suatu informasi rahasia antara lain pengubahan, penyadapan, dan pemalsuan. Salah satu teknik pengamanan terhadap suatu informasi rahasia adalah dengan kriptografi. Secara umum kriptografi adalah ilmu untuk menjaga kerahasiaan data melalui penggunaan teknik-teknik tertentu. Dunia kriptografi hingga saat ini telah berkembang cukup signifikan seiring dengan kemajuan ilmu pengetahuan dan teknologi, dunia pendidikan saat ini telah mulai menerapkan sistem ujian yang diselenggarakan secara online. Soal ujian berbasis online tersimpan dalam suatu basis data soal, yang dapat digunakan pada penyelenggaraan ujian dari waktu ke waktu saat dibutuhkan. Untuk menghindari terjadinya perulangan soal yang muncul pada saat ujian, maka diperlukan suatu metode yang dapat menghasilkan suatu pemilihan soal secara acak dari basis data. Pada penelitian ini akan dibuat sebuah aplikasi dengan nama “SecureExam” yang merupakan implementasi algoritma kriptografi sebagai pengamanan dalam transport data, dan mersenne twister sebagai algoritma pemilihan soal ujian secara acak dari basis data. B. Tujuan Penulisan Tujuan dari penelitian ini adalah membuat aplikasi SecureExam sebagai aplikasi alternatif dalam penyelenggaraan ujian secara online. Aplikasi ini akan mengimplementasikan algoritma kriptografi sebagai
MT 51
ISBN. 978-602-73403-1-2
pengamanan dalam transport data, dan mersenne twister sebagai algoritma pemilihan soal ujian secara acak dari basis data. C. Perumusan Masalah Aplikasi “SecureExam” sebagai aplikasi alternatif dalam penyelenggaraan ujian secara online memiliki permasalahan yang dapat dirumuskan sebagai berikut : 1) Bagaimana mengamankan data soal ujian yang dikirimkan dari server ke peserta ujian. 2) Pemilihan algoritma kriptografi yang sudah teruji tingkat keamanannya. 3) Bagaimana melakukan suatu pemilihan soal secara acak dari basis data. II.
TINJAUAN PUSTAKA
A. Kriptografi Berikut merupakan istilah-istilah yang terdapat dalam kriptografi [1] :
Enkripsi adalah proses menyamarkan suatu pesan sebagai cara untuk menyembunyikan isinya. Plaintext (Teks Terang) adalah suatu pesan yang belum terenkripsi. Ciphertext (Teks Sandi) adalah suatu pesan yang telah terenkripsi. Dekripsi adalah suatu proses untuk mengembalikan Teks Sandi menjadi Teks Terang.
GAMBAR 1. PROSES ENKRIPSI/DEKRIPSI
Secara umum dalam kriptografi terdapat dua macam metode sistem sandi, yaitu sistem sandi simetrik dan sistem sandi asimetrik. Sistem sandi simetrik adalah sistem sandi yang menggunakan satu kunci, dimana kunci untuk enkripsi sama dengan kunci untuk dekripsi. Sistem sandi asimetrik adalah sistem sandi yang menggunakan dua kunci yang berlainan, dimana kunci untuk enkripsi berbeda dengan kunci untuk dekripsi. Berdasarkan bentuknya algoritma sistem sandi simetrik terbagi 2 yaitu, Stream Cipher dan Block cipher. Pada Stream Cipher, karakter dari plaintext dienkripsi satu persatu pada satu waktu. Pada Block cipher, satu grup karakter dari plaintext dienkripsi secara serentak dengan menggunakan transformasi enkripsi yang ditetapkan. B. Advanced Encryption Standard (AES) AES [2] merupakan algoritma kriptografi standar yang ditetapkan oleh National Institute of Standards and Technology (NIST) melalui publikasi Federal Information Processing Standards (FIPS) 197 pada tahun 2001. AES adalah algoritma kriptografi yang dapat digunakan untuk mengamankan suatu data elektronik. AES merupakan jenis algoritma kriptografi Block cipher dengan kunci kriptografi simetrik. AES dapat menggunakan kunci kriptografi dengan panjang 128-bit, 192-bit atau 256-bit untuk enkripsi/dekripsi sebuah blok data yang memiliki panjang 128-bit.
MT 52
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
GAMBAR 2. ALUR PROSES ENKRIPSI AES
C. Fungsi Hash Fungsi hash adalah sebuah fungsi yang memetakan suatu string tak terbatas menjadi suatu string dengan panjang tertentu. Secure Hash Algorithm (SHA) merupakan salah satu algoritma fungsi hash yang dikembangkan oleh National Institute of Standards and Technology (NIST). SHA-512 [3] adalah varian dari SHA yang beroperasi pada delapan 64-bit word. Pesan yang akan dihitung nilai hash-nya diproses sebagai berikut: 1) Dilakukan proses padding pada pesan sehingga hasilnya adalah kelipatan dari panjang 1024-bit. 2) Urai menjadi 1024-bit blok pesan M(1), M(2), …, M(N). Blok pesan diproses satu kali pada satu waktu: Dimulai dengan nilai fixed initial hash H(i), dihitung secara berurutan: H(i) = H(i-1) + CM(i), …, ( H(i-1) ) Dimana C ada fungsi kompresi SHA-512 dan “+” berarti penjumlahan word-wise mod 264. H(N) adalah hash dari M. D. Mersenne Twister Mersenne Twister [4] merupakan algoritma pembangkit bilngan acak yang dikembangkan pada tahun 1997 oleh Matsumoto dan Nishimura, algoritma Mersenne Twister merupakan versi generalisasi dari feedback shift register PRNG (Pseudorandom Number Generator). Pemberian nama PRNG ini berdasarkan fakta bahwa periode ditentukan oleh bilangan prima Mersenne( ), yang menghasilkan bilangan acak berkualitas tinggi dengan sangat cepat. Implementasi mt19937(), yang telah menjadi bagian dari banyak bahasa pemrograman dan library, memiliki periode E. Lima Uji Dasar Untuk Keacakan Lima uji dasar untuk keacakan adalah 5 buah uji statistik yang biasanya digunakan untuk menentukan apakah suatu barisan biner memiliki karakteristik seperti yang ditunjukkan oleh suatu barisan yang trully random [5]. Lima uji dasar untuk keacakan tersebut terdiri dari: 1) Uji Frekuensi Uji frekuensi bit digunakan untuk menentukan apakah barisan bit mempunyai jumlah bit “0” dan “1” yang relatif sama. Seperti yang diharapkan untuk barisan bit acak pada postulat keacakan Golomb butir R1. Statistik uji yang digunakan adalah: X1
n0 n1
2
n
2) Uji Serial Tujuan uji serial adalah untuk menentukan banyaknya pasangan bit 00, 01, 10 dan 11 sebagai subbarisan dari barisan bit sama. Statistk uji yang digunakan adalah: X2
4 n002 n012 n102 n112 n2 n02 n12 1 n 1
3) Uji Poker Uji poker digunakan untuk menentukan barisan bit dengan panjang tertentu muncul dalam barisan bit dengan jumlah yang sama. Statistik uji yang digunakan adalah : MT 53
ISBN. 978-602-73403-1-2
2m 2 2 ni k k i 1 m
X3
4) Uji Run Uji run dilakukan untuk mengetahui apakah jumlah runtun dalam barisan bit, baik runtun bit “0” maupun runtun “1”, dengan panjang yang bervariasi memiliki jumlah yang sesuai dengan postulat keacakan Golomb butir R2. Statistik uji yang digunakan adalah: k
Bi ei
i 1
ei
X4
2
k
Gi ei
i 1
ei
2
5) Uji Autokorelasi Tujuan dari uji autokorelasi adalah untuk melihat kemungkinan hubungan antara barisan bit dengan versi pergeserannya. Sesuai dengan postulat keacakan Golomb butir R3, nilai autokorelasi adalah suatu nilai yang konstan meskipun rangkaian mengalami pergeseran beberapa kali. Statistik uji yang digunakan adalah: nd X5 2 Ad nd 2 III.
METODE PENELITIAN
Metode Penelitian yang dilakukan pada penelitian ini adalah sebagai berikut :
Melakukan studi literatur dan pengumpulan data dari berbagai sumber seperti buku dan internet mengenai penelitian yang akan dilakukan. Melakukan analisis kebutuhan dan perancangan aplikasi SecureExam. Membuat prototype aplikasi SecureExam yang menjamin pengamanan transport data, dan pemilihan soal ujian secara acak dari basis data. Melakukan pengujian keacakan pemilihan soal yang dilakukan oleh aplikasi SecureChat. IV.
PEMBAHASAN DAN HASIL
A. Analisis Kebutuhan Perangkat Lunak Dalam tahapan ini, proses yang dilakukan adalah memilih perangkat lunak yang akan digunakan, serta fungsi-fungsi yang ada didalam aplikasi, yaitu : 1)
Penghitungan nilai hash password. Fungsi ini akan menghitung nilai hash dari password yang diinputkan oleh pengguna menggunakan fungsi hash SHA-512. 2) Pengecekan username dan nilai hash password Fungsi ini akan melakukan otentikasi pengguna dengan melakukan verifikasi username dan nilai hash dari password yang diinputkan oleh pengguna, dengan username dan nilai hash password yang tersimpan pada basis data server. 3) Pengamanan transport data. Fungsi pengamanan transport data dilakukan untuk mengamankan data pada saat ditransmisikan dari ancaman pengubahan, penyadapan, dan pemalsuan 4) Pemilihan soal secara acak Proses pemilihan soal dari basis data menggunakan algoritma Mersenne Twister, dan diharapkan memenuhi uji keacakan yang ditetapkan, untuk menghindari terjadinya perulangan soal yang muncul pada saat ujian. Dari uraian diatas maka program aplikasi yang akan dibuat menggunakan Java Enterprise Edition 8 SDK, hal ini dikarenakan bahasa pemrograman Java sudah mendukung penggunaan algoritma kriptografi dan komunikasi client-server, pemilihan bahasa pemrograman Java juga bertujuan agar aplikasi ini kedepannya dapat dikembangkan untuk dapat berjalan pada sistem operasi yang berbeda. B. Implementasi Pada tahap ini yang dilakukan adalah melakukan implementasi berdasarkan desain fungsional, menggunakan algoritma kriptografi untuk pengamanan transport data dan pemilihan soal secara acak, beserta user interface nya ke dalam suatu program aplikasi online berbasis web melalui bahasa pemograman. Aplikasi dibuat menggunakan bahasa pemograman Java Enterprise Edition 8 SDK.
MT 54
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
Pemilihan Java Enterprise Edition 8 SDK dikarenakan sasaran penggunaan program agar kelak dapat digunakan dan dikembangkan pada beberapa sistem operasi berbeda. 1) Penghitungan nilai hash password Nilai hash dihitung menggunakan SHA-512. Perhitungan nilai hash dari password diproses setelah pengguna melakukan input username dan password lalu menekan tombol “Login”.
GAMBAR 3. FORM LOGIN APLIKASI
2) Pengecekan username dan nilai hash password Username dan nilai hash password yang diinputkan oleh pengguna kemudian diotentikasi dengan username dan nilai hash password yang tersimpan pada basis data server.
GAMBAR 4. USERNAME DAN PASSWORD PADA BASIS DATA
3) Pengamanan transport data Keamanan transport data dijamin dengan menerapkan protokol Transport Layer Security (TLS) dan algoritma kriptografi AES dengan kunci 256-bit yang merupakan algoritma kriptografi standar yang telah dipublikasikan oleh NIST (National Institute of Standards and Technology) untuk enkripsi data yang ditransmisikan.
GAMBAR 5. KEAMANAN TRANSPORT DATA DENGAN TLS
4) Pemilihan soal secara acak Setiap soal yang disimpan dalam basis data memiliki pengenal index berupa “kode soal”. Soal yang ditampilkan pada ujian merupakan hasil pilihan secara acak dari basis data, berdasarkan
MT 55
ISBN. 978-602-73403-1-2
bilangan “kode soal” yang dibangkitkan oleh algoritma Mersenne Twister. Seperti contoh soal yang dibangkitkan pada Gambar 6. di bawah ini.
GAMBAR 6. FORM SOAL UJIAN
C. Hasil Pengujian Dalam tahap ini pengujian yang dilakukan yaitu uji keacakan terhadap hasil pemilihan indeks soal ujian yang dipilih menggunakan algoritma merssene twister. Sampel terdiri dari 100 sampel yang masingmasing terdiri dari 10.000 rangkaian bit. Berikut merupakan hasil pengujian menggunakan lima uji dasar untuk keacakan, dari sampel indeks soal ujian terpilih. 1) Uji Frekuensi Pengujian menggunakan pendekatan distribusi dengan derajat kebebasan v =1, sehingga untuk v =1 dan =0,05 mempunyai daerah kritis , jika hasil perhitungan 2
maka sampel dinyatakan tidak lulus uji, jika hasil sebaliknya maka sampel dinyatakan lulus uji.
Hasil Uji Frekuensi Nilai X1
8 6 4 2 1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97
0
Sampel
GAMBAR 7. HASIL UJI FREKUENSI
2) Uji Serial Pengujian menggunakan pendekatan distribusi frekuensi 2 dengan derajat kebebasan v =2. Daerah kritis untuk uji Serial dengan v =2 dan =0,05 adalah , jika hasil perhitungan maka sampel dinyatakan tidak lulus uji, jika hasil sebaliknya maka sampel dinyatakan lulus uji.
MT 56
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
20 10 0 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99
Nilai X2
Hasil Uji Serial
Sampel
GAMBAR 8. HASIL UJI SERIAL
3) Uji Poker m
Pengujian menggunakan pendekatan distribusi 2 dengan derajat kebebasan v = 2 -1. Pada penelitian ini digunakan m=3. Daerah kritis untuk uji Poker dengan v =7 dan =0,05 adalah , jika hasil perhitungan sebaliknya maka sampel dinyatakan lulus uji.
maka sampel dinyatakan tidak lulus uji, jika hasil
40 20 0 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99
Nilai X3
Hasil Uji Poker
Sampel
GAMBAR 9. HASIL UJI POKER
4) Uji Run Pengujian menggunakan pendekatan distribusi 2 dengan derajat kebebasan penelitian ini digunakan k=15. Daerah kritis untuk uji Run dengan v =28 dan , jika hasil perhitungan sebaliknya maka sampel dinyatakan lulus uji.
v =2k-2. Pada =0,05 adalah
maka sampel dinyatakan tidak lulus uji, jika hasil
40 20 0 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99
Nilai X4
Hasil Uji Run
Sampel
GAMBAR 10. HASIL UJI RUN
5) Uji Autokorelasi Pada penelitian ini digunakan d=8. Pengujian dua arah dilakukan dengan menggunakan pendekatan distribusi N(0,1). Daerah kritis untuk uji autokorelasi dengan =0,05 adalah , jika hasil perhitungan atau sebaliknya maka sampel dinyatakan lulus uji.
maka sampel dinyatakan tidak lulus uji, jika hasil
MT 57
ISBN. 978-602-73403-1-2
Hasil Uji Autokorelasi
3
Nilai X5
2 1 0
-1
1
5
9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97
-2 -3
Sampel GAMBAR 11. HASIL UJI AUTOKORELASI
Berdasarkan hasil pengujian keacakan terhadap 100 sampel (@10.000-bit) yang dihasilkan oleh algoritma Mersenne Twister, dihasilkan persentase keacakan yang baik, dimana sampel lulus uji > 90%, seperti yang terlihat pada Tabel 1. di bawah ini. TABEL 1. HASIL UJI 5 DASAR UNTUK KEACAKAN
No. 1 2 3 4 5
Lulus Uji (%) 94 94 93 100 94
Uji Keacakan Uji Frekuensi Uji Serial Uji Poker Uji Run Uji Autokorelasi
V.
Tidak Lulus Uji (%) 6 6 7 0 6
SIMPULAN
Penelitian yang dilakukan telah menjawab perumusan masalah pada bagian sebelumnya dengan hasil sebagai berikut: 1) 2)
3)
Soal ujian yang dikirimkan dari server ke peserta ujian, diamankan dengan menerapkan protokol Transport Layer Security (TLS) yang menggunakan algoritma kriptografi. Algoritma kriptografi yang digunakan pada TLS adalah algoritma kriptografi AES dengan panjang kunci 256-bit, yang merupakan algoritma kriptografi standar yang telah teruji dan dipublikasikan oleh NIST. Pemilihan soal dengan algoritma Mersenne Twister dinyatakan lulus uji sebanyak lebih dari 90% sampel yang diuji. DAFTAR PUSTAKA
[1] [2] [3] [4] [5]
Bruce Schneier, “Applied Cryptography, Second Edition”, John Wliey & Sons Inc, 2009. FIPS Publication 197, “Announcing The Advanced Encryption Standard (AES)”, 2001. Descriptions of SHA-256, SHA-384, and SHA-512, http://www.iwar.org.uk/ Diakses tanggal 24 Juli 2015. Helmut G. Katzgraber, “Random Numbers in Scientific Computing: An Introduction”, International Summer School Modern Computational Science, 2010. Menezes, J. Alfred et al., “Handbook ofApplied Cryptography”, 1996.
MT 58