IMPLEMENTASI ALGORITMA RSA DAN QR CODE UNTUK KEAMANAN TRANSKRIP NILAI DI POLITEKNIK NEGERI LHOKSEUMAWE Hendrawaty 1, Azhar 2 dan Atthariq 3 Program Studi Teknik Informatika, Jurusan Teknologi Informasi dan Komputer, Politeknik Negeri Lhokseumawe, Jalan Banda Aceh-Medan Km. 280,3 Buketrata, Lhokseumawe, 24301 PO.BOX 90 Telpon (0645) 42670, 42785 Fax 42785, Indonesia E-mail: waty.hendra@gmail.com 1, tgkazharali@gmail.com 2, atthariq.huzaifah@gmail.com 3 Abstrak Kedudukan sebuah nilai sangatlah penting, setara dengan kedudukan sebuah Ijazah. nilai berisi informasi mengenai matakuliah, jumlah SKS, Nilai pada masing-masing matakuliah, dan Indeks Prestasi Komulatif. Sehingga dari transkrip nilai dapat diperoleh gambaran bagaimana prestasi akademik dari pemilik transkrip. Selain sebagai bukti selesai studi, nilai sangat diperlukan dalam melamar pekerjaan pada suatu instansi atau perusahaan. Oleh karena itu transkrip nilai merupakan suatu dokumen yang bernilai tinggi dan harus dijamin keaslian isinya, maupun sumber yang mengeluarkannya. Dewasa ini, perkembangan teknologi sangat pesat terutama dalam bidang teknologi informasi. Kondisi tersebut menyebabkan transkrip nilai dapat disalin dan dicetak secara mudah oleh pihak yang tidak berwenang sehingga menyebabkan munculnya transkrip nilai palsu, atau transkrip yang sudah direkayasa isinya. Pemalsuan ataupun modifikasi nilai dapat dilakukan dengan mudah salah satunya disebabkan karena tidak adanya sistem keamanan pada transkrip nilai yang diterbitkan. Berdasarkan penjelasan diatas, maka dilakukan penelitian yang bertujuan untuk merancang dan membuat sistem keamanan pada transkrip nilai. Sistem keamanan pada penelitian ini dirancang menggunakan dan algoritma kriptography asymmetric RSA (Rivest Shamir Adleman). Sehingga transkrip nilai tidak mudah dipalsukan atau dimodifikasi isinya, dan proses verifikasi keaslian transkrip dapat dilakukan dengan cepat, mudah, dan secara offline dengan menggunakan smartphone berbasis android. Kata Kunci: Algoritma RSA, Berbasis Android,, Sistem keamanan. 1. Pendahuluan nilai berisi informasi tentang matakuliah, SKS dan nilai, serta Indeks Prestasi Komulatif yang diperoleh mahasiswa selama belajar di kampus (dari awal sampai akhir studi). Kedudukan sebuah nilai sangatlah penting, setara dengan kedudukan sebuah Ijazah. Selain sebagai bukti telah menyelesaikan studi, nilai sangat diperlukan mahasiswa dalam melamar pekerjaan pada suatu instansi atau perusahaan. Seiring perkembangan teknologi, transkrip nilai dapat disalin dan dicetak secara mudah oleh pihak yang tidak berwenang sehingga menyebabkan munculnya transkrip nilai palsu, atau transkrip yang sudah direkayasa isinya. Pemalsuan ataupun modifikasi nilai dapat dilakukan dengan mudah karena tidak adanya sistem keamanan pada transkrip nilai yang diterbitkan. Berdasarkan penjelasan diatas, maka dilakukan penelitian yang bertujuan untuk merancang dan membuat sistem keamanan pada transkrip nilai. Sistem keamanan pada penelitian ini menggunakan yang dicetak pada lembar transkrip nilai. tersebut berisi ciphertext (data ter-enkripsi). Proses enkripsi dan dekripsi dilakukan menggunakan algoritma kriptography asymmetric yang sudah teruji keandalannya yaitu RSA (Rivest Shamir Adleman). Sistem untuk proses enkripsi dan pembangkitan dibangun berbasis desktop, sedangkan untuk keperluan verifikasi keaslian transkrip dibangun berbasis smarphone android. Aplikasi QR code reader untuk verifikasi nantinya ditempatkan pada website resmi perguruan tinggi yang mengeluarkan transkrip nilai dalam hal ini Politeknik Negeri Lhokseumawe, sehingga akan menumbuhkan kepercayaan bagi pihak penerima transkrip nilai bahwa benar transkrip nilai tersebut dikeluarkan oleh pihak Politeknik Negeri Lhokseumawe. Diharapkan hasil penelitian ini bermanfaat untuk sistem keamanan keaslian transkrip nilai, sehingga dapat mengatasi masalah pemalsuan transkrip yang mungkin terjadi atau modifikasi nilai transkrip oleh pihak-pihak yang tidak diinginkan. Dan mempermudah pihak penerima transkrip nilai untuk melakukan verifikasi keaslian transkrip nilai secara offline. 28
2. Landasan Teori A. Algoritma RSA Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) yaitu: Ron (R)ivest, Adi (S)hamir, dan Len (A)dleman, pada tahun 1976. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi factorfaktor prima. Ada tiga proses utama pada algoritma RSA yaitu: pembangkitan kunci, enkripsi, dan dekripsi [1],[2]. Pembangkitan Kunci Pembangkitan kunci terdiri atas pembangkitan kunci public (e,n) dan kunci private (d,n). Kunci-kunci tersebut diperoleh dengan menggunakan aturan pembangkitan kunci [1],[2] sebagai berikut: 1. Pilih dua buah bilangan prima sembarang, p dan q. p dan q bersifat rahasia. 2. Hitung n = p.q (sebaiknya p = q, sebab jika p=q maka n = p 2 sehingga p dapat diperoleh dengan mudah dengan menarik akar pangkat dua dari n). n tidak bersifat rahasia. 3. Hitung ф(n) = (p-1)(q-1). ф(n) bersifat rahasia. 4. Pilih bilangan bulat e (tidak rahasia) untuk kunci publik, yang relatif prima terhadap ф(n). 5. Hitung kunci private (bersifat rahasia) dengan menggunakan persamaan e.d 1(mod ф(n)) yang ekivalen dengan e.d = 1 + kф(n), sehingga secara sederhana d dapat dihitung dengan persamaan 1. B. adalah suatu matriks 2 dimensi yang dikembangkan pertama kali di Jepang pada tahun 1994. Model QR code dapat dibedakan atas beberapa jenis yaitu: Model 1 dan Model 2, Micro, i, SQRC, dan Frame QR. Gambar 1. memperlihatkan jenis-jenis [3] Gambar 1. Jenis-Jenis Versi Perbedaan ukuran dari disebut dengan istilah versi. Ada 40 versi yang tersedia. Versi yang terkecil adalah versi 1 (21 x 21 modul) dan yang terbesar adalah versi 40 (177 x 177 modul). Setiap versi lebih besar 4 modul dari versi sebelumnya dan setiap versi memiliki kapasitas maksimum, tergantung pada mode atau tipe data yang digunakan. Gambar 2 memperlihatkan versi [4]. d = (1) Proses Enkripsi Proses enkripsi dilakukan dengan menggunakan kunci public (e,n). proses enkripsi dilakukan dengan cara [1]: 1. Membagi pesan (plainteks) menjadi blokblok plainteks: m1,m1,m3, (syarat: 0 < mi < n- 1) 2. Hitung blok cipherteks c i untuk blok plainteks p i dengan persamaan 2. c i= m e mod n (2) Proses Dekripsi Dekripsi dari ciphertext ke plainteks menggunakan kunci private (d,n) Proses dekripsi dilakukan dengan menggunakan persamaan 3 [1] [2]. mi = ci d mod n (3) 29 Gambar 2 Versi dapat menyimpan hingga 7089 karakter data numeric, 4296 karakter data alfanumerik, 2953 karakter data Byte, dan 1817 karakter data kanji. Selain tipe data, kapasitas maksimum tergantung juga dengan error correction level. Correction error adalah kemampuan mengembalikan data jika kotor atau rusak. Terdapat empat tingkat koreksi kesalahan yang tersedia bagi pengguna untuk memilih sesuai dengan lingkungan operasi yaitu: L, M, Q, H. Tingkat terendah adalah L dan yang tertinggi adalah H[5]. 3. Metode Penelitian Perancangan penerapan algoritma RSA dan QR Code pada penelitian ini dapat dilihat pada Gambar 3. Data dari transkrip nilai dan KTP yang terdiri dari. Ijazah, Nama,. Mahasiswa, Tempat Lahir, Tanggal Lahir, Jurusan, Program Studi, Jumlah Nilai, Jumlah SKS, dan IPK serta data mor induk Kependudukan (NIK) merupakan data penting yang dienkripsi dengan
menggunakan algoritma RSA dan kunci private dari kampus pembuat transkrip nilai. Hasil dari proses enkripsi tersebut adalah ciphertext, yaitu data yang sudah tersandi dan tidak dimengerti lagi maknanya. Kemudian dari ciphertext tersebut dibangkitkan suatu. Message M (Data transkrip) Kunci Private PNL Enkripsi RSA 256 bit Generator Ciphertex Nilai + Diagram Verifikasi Keaslian Nilai dengan Smartphone Dari gambar tersebut dapat dilihat bahwa proses verifikasi keaslian transkrip nilai dapat dilakukan oleh pihak-pihak yang membutuhkannya secara offline dengan menggunakan aplikasi GPA validator yang telah di instal pada smartphone android. GPA Validator berfungsi untuk membaca yang terdapat pada transkrip nilai sekaligus melakukan dekripsi terhadap ciphertext yang tersimpan pada QR Code tersebut. Hasil pembacaan GPA Validator adalah pesan asli (plaintext) yang berupa. Ijazah, Nama,. Mahasiswa, Tempat Lahir, Tanggal Lahir, Jurusan, Program Studi, Jumlah Nilai, Jumlah SKS, dan IPK serta data mor induk Kependudukan. Data hasil pembacaan GPA Validator kemudian di bandingkan dengan data yang terdapat pada lembar transkrip nilai dan KTP. Apabila data tersebut sama, maka transkrip asli. Dan sebaliknya apabila data tersebut tidak sama maka transkrip nilai palsu atau telah dimodifikasi. Gambar 3. Diagram Blok Pembuatan dan Nilai. QR code yang sudah berisi ciphertext tersebut kemudian disisipkan pada lembar transkrip nilai, sehingga diperolehlah transkrip nilai yang telah ber-qr code. Sistem untuk melakukan enkripsi data dan pembangkitan merupakan sistem yang berbasis desktop. Perancangan sistem untuk memvalidasi transkrip nilai pada penelitian ini dapat dilihat pada Gambar 4. Nilai + Nama, NIM, Ijazah, Tmp Lahir, Jur, Prodi, IPK A Perancangan Pembangkitan Kunci Kunci yang dibangkitkan ada dua jenis, yaitu kunci publik (e,n) dan kunci privat (d,n). Pada penelitian ini Kunci private digunakan pada proses enkripsi, dan kunci publik digunakan untuk proses dekripsi. Flowchart proses pembangkitan kunci diperlihatkan pada gambar 5. Start Pilih p dan q Hitung n=pxq A Pilih k, k 1 Hitung d= (1+k.phi)/e GPA Validator Kunci Publik PNL =? Hitung phi = (p-1)(q-1) d=(bilangan bulat)? Ciphertex KTP (NIK) Dekripsi RSA 256 =? Message M (Data transkrip + NIK) Pilih e, 1<e<phi Gcd(e, phi)=1? Kunci publik (e,n) Kunci privat (d,n) YA TDK A Stop Gambar 4. Blok Asli Palsu 30
Gambar 5. Flowchart Pembuatan Kunci B. Perancangan Proses Enkripsi Proses perancangan enkripsi dilakukan dengan menggunakan algoritma RSA, dan kunci private (d,n). Perancangan proses enkripsi digambarkan dengan flowchart seperti pada Gambar 6. Dari flowchart dapat dilihat bahwa plainteks terlebih dahulu diubah kedalam kode ASCII decimal, kemudian dibagi-bagi dalam blokblok yang panjangnya tertentu. Blok-blok plainteks tersebut kemudian di enkripsi satu persatu sehingga membentuk blok-blok cipherteks. START Plaintext Kode ASCII desimal (M) M 76 digit? Susun M1, M2,...,Mn-1 Mi = 76 digit Enkripsi M1, M2,...,Mn-1 Ci = Mi d mod n Ci = 77 digit? Gabung C= Ci+Cn Susu Mn, Mn = sisa digit Tambah 0 didepan Ci Enkripsi Mn Cn = Mn d mod n Proses Dekripsi dilakukan dengan menggunakan kunci publik (e,n). Ciphertext terlebih dahulu di bagi-bagi dalam blok-blok ciphertext. Kemudian blok-blok ciphertext tersebut di dekripsi. Hasil dekripsi yang berupa blok-blok plaintext kemudian diubah kedalam karakter ASCII untuk menampilkan pesan asli. Perancangan proses dekripsi digambarkan dengan flowchart seperti pada Gambar 7 4. Hasil dan Pembahasan Pada tahap ini dilakukan pengujian terhadap aplikasi yang dibuat, yaitu pengujian untuk proses enkripsi dan pembangkitan, pembuatan transkrip nilai ber-, pembacaan dan proses dekripsi dengan GPA Validator, pembacaan QR Code dengan aplikasi reader lain, penentuan ukuran pencetakan, pembacaan yang rusak dan kotor. Hasil dan pembahasan dari masing-masing pengujian diuraikan pada point-point berikut. A. Hasil Enkripsi dan Pembangkitan QR Code Pengujian proses enkripsi plaintext dilakukan dengan cara menginputkan data. Ijazah, Nama,. Mahasiswa, Tempat Lahir, Tanggal Lahir, Jurusan, Program Studi, Jumlah Nilai, Jumlah SKS, dan IPK serta data mor induk Kependudukan (NIK) pada area yang telah disediakan pada user interface, seperti yang diperlihatkan oleh gambar 8. Tampilkan ciphertext STOP Gambar 6. Flowchart Perancangan Proses Enkripsi C. Perancangan Proses Dekripsi START C, Ciphertext (C) Cek 2 digit pertama M. Susu Cn, Dekripsi Cn C 77 digit? Cn = sisa digit Mn = Cn e mod n 2 digit pertama Numi = 3 digit M M 32&& 99? Susun C1, C2,...,Cn-1 Ci = 77 digit Numi = 2 digit M Dekripsi C1, C2,...,Cn-1 Mi = Ci e mod n Ubah ke karakter Susun karakter Mi = 76 digit? Tambah 0 didepan Mi Tampilkan plaintext Gabung M= Mi+Mn STOP C Gambar 7. Flowchart Perancangan Proses Dekripsi Gambar 8. User Interface Proses Enkripsi dan Pembangkitan. Setelah data-data tersebut di inputkan, maka proses enkripsi sekaligus proses pembangkitan dapat dilakukan dengan memilih tombol generate yang terdapat pada user interface tersebut. Hasil enkripsi yang berupa ciphertext dan akan tampil. Terdapat tombol reset dan tombol save pada user interface tersebut. Tombol reset digunakan untuk 31
Jurnal Infomedia Vol.1.2 Desember 2016 ISSN: 2527-9858 menghapus data sebelumnya, sehingga memudahkan user untuk memasukkan data baru yang akan dienkripsi. Sedangkan tombol save digunakan untuk menyimpan yang dibangkitkan. ulang sehingga diperoleh ukuran yang masih bisa terbaca dan ukuran yang tidak dapat terbaca lagi dari jarak pembacaan 6 inch. Hasil pengujian dan perhitungan dapat dilihat pada Tabel 2. 4.2. Hasil Pembangkitan Versi dan Ukuran. Tabel 2. : Ukuran Optimal Pencetakan. Dengan mengubah panjang karakter plaintext yang mungkin, untuk data Nama mahasiswa, Tempat Lahir, Tanggal Lahir, Jurusan, dan Program studi maka diperoleh sampel 3 jenis panjang plaintext yang mungkin. Panjang karakter untuk Nama mahasiswa, Tempat Lahir, Jurusan, dan Program studi dapat berbeda antara mahasiswa yang satu dengan yang lain. Sementara data lain seperti NIK,. Ijazah,. Mahasiswa, Jumlah Nilai, Jumlah SKS, dan IPK memiliki panjang karakter yang sama untuk setiap Mahasiswa. Hal tersebutlah yang mendasari panjang plaintext bisa berbeda. Dari hasil pengujian, diperoleh plaintext terpendek yang mungkin adalah 101 karakter, yang terpanjang 187 karakter, dan kebanyakan menghasilkan plaintext dengan panjang 145 karakter. Berdasarkan plaintext tersebut dilakukan proses enkripsi dan pembangkitan, sehingga diperoleh versi QR Code yang dibangkitkan dengan menggunakan Zxing. Tabel 1. memperlihatkan versi dan ukuran dari QR Code yang dibangkitkan berdasarkan panjangnya karakter ciphertext yang disimpan ke dalam. Panjang plaintext (karakter) Panjang ciphertext (karakter) yang dibangkitkan Ukuran (cm) 1. 101 237 8(49x49) (2,5x2,5) 2. 145 391 10(57x57) (3 x 3) 3. 187 545 13(69x69) (3,5x3,5) Ukuran optimal pencetakan (cm) Ukuran terkecil pencetakan (cm) 1. 8(49x49) (2,98 x 2,98) (2 x 2) 2. 10(57x5) (3,47x3,47) (2,2 x 2,2) 3. 13(69x69) (4,20 x 4,20) (2,3 x 2,3) Ukuran optimal yang akan dicetak pada kertas dapat dihitung dengan menggunakan, Size = (Scanning Distance / Distance Factor) * Data Density Factor [6]. Dimana, Distance Factor dimulai dengan 10, tetapi dapat dikurangi 1 disebabkan karena pencahayaan yang kurang atau kemiringan posisi pembacaan. Data Density Factor merupakan nilai modul dari versi dibagi dengan 25 [6]. Berdasarkan hasil pengujian tersebut, ukuran yang dipilih untuk dicetak pada lembar transkrip nilai adalah ukuran 3 cm x 3 cm. Gambar 9. memperlihatkan hasil penyisipan pada lembar transkrip nilai Tabel 1. Versi dan ukuran yang dibangkitkan. Versi 4.3. Hasil Ukuran Pencetakan. Beberapa versi yang dihasilkan kemudian dicetak dan dengan smartphone yang sudah terinstall aplikasi GPA Validator. Jarak antara dan peralatan pembaca (smartphone) pada pengujian ini sekitar sekitar 6 inch. Kemudian tersebut diperkecil dari ukuran sebelumnya dan di scann kembali. Demikian proses tersebut dilakukan berulang- Gambar 9. Nilai Ber_ 4.4. Hasil Scanning dengan Smartphone 32
yang dibangkitkan kemudia dicetak, lalu dengan menggunakan aplikasi GPA Validator dan aplikasi biasa yang umum terdapat di internet. Tampilan hasil pembacaan pada smartphone menggunakan GPA Validator diperlihatkan oleh Gambar 10. sedangkan tampilan hasil pembacaan dengan menggunakan aplikasi reader lain diperlihatkan oleh Gambar 11. Untuk melihat apakah yang dibangkitkan masih dapat dengan baik atau tidak apabila QR Code rusak atau kotor, maka dilakukan pengujian dengan merusak dan mengotori sebagian area dari QR Code. Hasil pembacaan diperlihatkan oleh Tabel 3. Tabel 3. Hasil Scanning Rusak dan Kotor. QR Code Kondisi QR Code Tingkat Koreksi Kesalahan Pembacaan Pada Smartphone 1. Rusak Berhasil 2. Rusak Gagal 3. Terkena tinta Berhasil 4. Terkena tinta Gagal Gambar 10. Hasil pembacaan GPA Validator 5. Terkena air Berhasil 6. Terkena stempel Gagal Gambar 11. Hasil pembacaan reader lain Dari hasil pengujian dapat disimpulkan bahwa proses verifikasi keaslian transkrip nilai hanya dapat dilakukan dengan aplikasi GPA Validator. Aplikasi reader yang lain tidak dapat digunakan untuk membaca plaintext (pesan asli) yang terdapat dalam, yang terbaca hanya hasil enkripsinya (ciphertext) saja. 4.5. Hasil Scanning yang Rusak dan Kotor 33 Dari hasil pembacaan dapat dilihat bahwa yang rusak, dan terkena noda tinta ada yang bisa ada yang tidak, tergantung dari luasnya daerah pada QR Code yang rusak atau terkena tinta. Jika daerah yang rusak dan terkena tinta masih sedikit maka masih dapat dengan baik. Semua yang bekas terkena air, masih dapat dengan baik. Sedangkan untuk yang terkena stempel tidak dapat sama sekali. Simpulan 1. Versi yang dibangkitkan bervariasi, tergantung pada panjang karakter ciphertext yang dihasilkan oleh proses enkripsi, tipe data dan level correction error yang digunakan. 2. QR code dengan korektion error level L, masih dapat isinya dengan baik walaupun QR code tersebut terkena air dihampir semua permukaannya. 3. QR code dengan korection error level L tidak dapat lagi jika terdapat kotor terkena tinta yang tebal pada salah satu finding patternnya, dan jika area yang terkena tinta tersebut banyak. QR code masih dapat diverifikasi dengan baik jika area QR code yang terkena tinta tidak terlalu banyak.
4. QR code dengan korection error level L tidak dapat lagi jika terdapat kerusakan pada finding pattern-nya dan jika kerusakan pada area QR code cukup besar. QR code masih dapat diverifikasi dengan baik jika area QR code yang rusak sedikit. 5. QR code versi 10(57x57) dengan korection error level L tidak dapat lagi jika QR code diperkecil hingga berukuran (2 x 2 ) cm, dengan jarak pembacaan 6 inchs. 6. QR code yang terkena stempel basah tidak dapat sama sekali. Hal tersebut kemungkinan disebabkan karena banyaknya area yang terkena stempel, termasuk area finding pattern dari, sehingga data pada tidak dapat sama sekali. 7. Verifikasi keaslian transkrip nilai hanya dapat dilakukan dengan software pembaca QR code khusus yang diperoleh dari web site resmi perguruan tinggi yang mengeluarkan transkrip nilai, sehingga transkrip nilai dapat dipercaya keaslian sumbernya maupun isinya. 8. Sistem pengaman keaslian transkrip nilai menggunakan QR code telah berhasil dibuat, dan dapat dapat bekerja dengan baik seperti yang diharapkan, sehingga dapat menghasilkan transkrip nilai yang ber-qr code. 9. Proses download aplikasi QR code Reader dari website yang disediakan ke smartphone android dapat dilakukan dengan lancar dan mudah. Begitu pula dengan proses install aplikasi pada smartphone android. 6. Daftar Acuan [1] Munir, R., Kriptografi, Bandung: Informatika, 2006. [2] Nentawe Y. Goshwe, 2013, Data Encryption and Decription Using RSA Algorithm in a Network Environment, IJCSNS International Journal of Computer Science and Network Security, Vol. 13.7, July. [3] Type of, http://www.qrcode.com/en/codes/ [4] Information capacity and versions of the QR Code, http://www.qrcode.com/en/about/version.html [5] Error correction feature http://www.qrcode.com/en/about/error_correction. html [6] QRStuff, http://www.qrstuff.com/blog/2011/01/18/whatsize-should-a-qr-code-be 34