Perancangan dan Implementasi Digital Signature pada Dokumen PDF dengan Algoritma Vigenere Artikel Ilmiah Peneliti: Heldegarda Rambu Padu Leba (672014707) Magdalena A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juli 2016 1
Perancangan dan Implementasi Digital Signature pada Dokumen PDF dengan Algoritma Vigenere Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh Gelar Sarjana Komputer Peneliti: Heldegarda Rambu Padu Leba (672014707) Magdalena A. Ineke Pakereng, M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juli 2016 `2
`3
`4
`5
`6
1. Pendahuluan Komunikasi merupakan faktor penting dalam kehidupan manusia. Kini manusia dipermudah oleh teknologi untuk menyampaikan informasi. Media komunikasi yang diciptakan manusia tersebut memang memudahkan dalam penyampaian informasi, tapi di sisi lain penyampaian pesan melalui media tertentu tidak menjamin keamanan terhadap integritas data. Keamanan telah menjadi aspek yang sangat penting dari suatu sistem informasi. Dokumen dalam bentuk PDF merupakan salah satu format yang sering dibagikan lewat jaringan internet. Dokumen PDF ini dapat memuat informasi penting dari satu pihak ke pihak lain. Ada resiko bahwa selama proses pengiriman ini, terdapat isi dari file dokumen menjadi rusak atau berubah karena adanya file corrupt, virus, atau tindakan perusakan/pengubahan yang sengaja dilakukan oleh pihak lain. Salah satu upaya untuk menjaga integritas dokumen PDF adalah dengan memberikan digital signature terlebih dahulu ke dalam file yang akan dikirim. Digital signature atau yang juga disebut tanda tangan digital adalah suatu mekanisme untuk menggantikan tanda tangan secara manual pada dokumen kertas [1]. Digital signature memiliki fungsi sebagai penanda pada data yang memastikan bahwa data tersebut adalah data yang sebenarnya. Penanda pada digital signature ini tidak semata hanya berupa tanda tangan digital, tetapi dapat berupa cap digital, text, bit, dan gambar. Aspek keamanan dan kerahasiaan bukan disediakan dengan sistem berupa tanda tangan digital, tetapi tanda tangan yang telah dienkripsi terlebih dahulu dengan algoritma tertentu. Berdasarkan latar belakang tersebut maka dilakukan penelitian dengan judul Perancangan dan Implementasi Digital Signature pada dokumen PDF dengan Algoritma Vigenere. 2. Tinjauan Pustaka Pada penelitian yang berjudul "Elliptic Curve Digital signature Algorithm (ECDSA)" [2] dibahas tentang perlunya suatu mekanisme untuk menjamin keaslian (asi) dokumen elektronis dalam pertukaran dokumen (file). Metode yang digunakan untuk mengatasi permasalahan tersebut adalah dengan cara menambahkan tanda tangan digital pada dokumen tersebut. Digital signature pada penelitian tersebut diimplementasikan dengan algoritma ECDSA. Penelitian yang lain, yang membahas tentang pemanfaatan digital signature untuk mengamankan dokumen adalah "Pengamanan Data Transkrip Nilai Berbentuk Citra Menggunakan Digital Signature" [3]. Pada penelitian tersebut dibahas tentang bagaimana menghindari terjadinya manipulasi transkrip nilai pada proses melamar kerja secara online. Solusi yang digunakan adalah dengan menambahkan digital signature pada file transkrip nilai. Kombinasi antara SHA-512, DSA, dan steganografi LSB digunakan untuk membangkitkan digital signature dan menyisipkan ke dalam file transkrip nilai. Keluaran dari sistem tersebut adalah dihasilkannya file transkrip nilai yang memiliki digital signature beserta public key yang telah disisipkan ke dalam file transkrip. `7
Berdasarkan penelitian-penelitian yang sudah ada mengenai keamanan data maka dalam penelitian ini, akan dibahas mengenai Perancangan dan Implementasi Digital Signature pada dokumen PDF dengan Algoritma Vigenere sehingga dapat membantu dalam pengamanan dokumen PDF dan mengurangi kecurangan dalam manipulasi data. Batasan masalah dalam penelitian ini adalah sebagai berikut: (1) Dokumen yang diamankan adalah dokumen PDF; (2) Algoritma SHA digunakan untuk membangkitkan nilai hash dari dokumen PDF; dan (3) Algoritma Vigenere digunakan untuk mengenkripsi nilai hash, sebelum disisipkan ke dalam file PDF. Digital signature adalah salah satu teknologi yang digunakan untuk meningkatkan keamanan jaringan. Digital signature memiliki fungsi sebagai penanda pada data yang memastikan bahwa data tersebut adalah data yang sebenarnya (tidak ada yang berubah). Digital signature dapat memenuhi setidaknya dua syarat keamanan jaringan, yaitu authenticity dan non-repudiation, dan juga integrity (keutuhan data). Authenticity berarti bahwa dokumen tersebut berasal dari pemilik yang spesifik. Nonrepudiation berarti bahwa berdasarkan digital signature di dalam suatu dokumen, pelaku/pengirim tidak dapat mengingkari bahwa yang bersangkutan melakukan pengiriman/manipulasi data. Integrity berarti bahwa keutuhan suatu dokumen dapat diketahui berdasarkan kondisi digital signature di dalamnya [4]. Vigenere Cipher merupakan algoritma kriptografi klasik. Operasi pada algoritma kriptografi klasik berbasis pada operasi karakter, sedangkan operasi pada algoritma kriptografi modern berbasis pada operasi bit. Dalam kriptografi klasik, Vigenere Cipher termasuk ke dalam cipher substitusi abjad majemuk, yang terbuat dari sejumlah cipher abjad tunggal, masing-masing dengan kunci yang berbeda [5]. Vigenere Cipher telah berkali-kali diciptakan ulang dengan cukup bervariasi. Namun, metode aslinya digambarkan oleh Giovan Batista Belaso pada tahun 1553 seperti tertulis di dalam bukunya LaCifradel Sig. Giovan Batista Belaso. Meskipun demikian, Vigenere Cipher dipopulerkan oleh Blaise de Vigenere pada tahun 1586. Vigenere Cipher menggunakan Bujur Sangkar Vigenere (Gambar 1) untuk melakukan enkripsi. Pada bujur sangkar tersebut, kolom paling kiri menyatakan huruf-huruf kunci, dan baris paling atas menyatakan plainteks sedangkan karakter-karakter lainnya menunjukkan karakter cipherteks. Karakter cipherteks ditentukan dengan menggunakan prinsip Caesar Cipher. Pergeseran huruf menjadi cipherteks ditentukan oleh nilai desimal dari huruf kunci yang bersangkutan (a = 0, b = 1,..., y = 24, z = 25). Vigenere Cipher menggunakan tabel Vigenere yang dikenal dengan tabula recta (Gambar 1). `8
Gambar 1 Tabula Recta yang Digunakan oleh Vigenere Cipher [6] Tabula recta digunakan untuk mendapatkan cipherteks dengan menggunakan kunci yang telah ditentukan. Jika panjang kunci lebih pendek daripada panjang plainteks, maka kunci diulang penggunaannya (sistem periodik). Jika panjang kunci adalah m, maka periodenya adalah m. Secara singkat, enkripsi dapat dijelaskan sebagai berikut: p (plainteks): KRIPTOGRAFI, k (kunci) : LAMPIONLAMP, c (cipherteks) : VRUEBCTCARX. SHA adalah fungsi hash satu arah. Sama halnya dengan DSA, SHA dibuat oleh NIST dan digunakan bersama DSS. SHA dinyatakan aman karena secara komputasi tidak dapat ditemukan isi pesan dari message digest yang dihasilkan, dan tidak dapat dihasilkan dua pesan yang berbeda, yang menghasilkan message digest yang sama. Setiap perubahan yang terjadi pada pesan akan menghasilkan message digest yang berbeda. Ada beberapa tipe SHA yang telah dijadikan NIST sebagai standard fungsi hash yang baru, salah satunya adalah SHA-512. Fungsi hash memetakan pesan M dengan panjang berapapun menjadi nilai hash h dengan panjang tetap (tertentu, tergantung algoritmanya). Untuk algoritma SHA-512 panjang nilai hash yang dihasilkan adalah 512. SHA-512 sebagai fungsi hash mempunyai sifat-sifat sebagai berikut [7]: (1) Fungsi h dapat diterapkan pada blok berukuran berapa saja; (2) h mudah dihitung bila diberikan M. Sifat ini merupakan keharusan, karena jika h sukar dihitung, maka fungsi hash tersebut tidak dapat digunakan; (3) M tidak dapat dihitung jika hanya diketahui h. Sifat ini disebut juga one-way function atau mudah untuk menghitung h dan sukar untuk dikembalikan ke M semula. Sifat ini sangat penting dalam teknik kriptografi, karena jika tanpa sifat tersebut maka penyerang dapat menemukan nilai M dengan mengetahui nilai hash-nya h; dan (4) Tidak mungkin dicari M dan M' sedemikian sehingga H(M) = H(M'). Sifat ini disebut juga collision free. Sifat ini mencegah kemungkinan pemalsuan. `9
3. Metode dan Perancangan Sistem Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Implementasi sistem yaitu Perancangan aplikasi/program, dan (4) Pengujian sistem serta analisis hasil pengujian. Identifikasi Masalah dan Studi Literatur Perancangan Sistem Implementasi Sistem Pengujian Sistem dan Analisis Hasil Pengujian Gambar 2 Tahapan Penelitian Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: identifikasi masalah, yaitu keamanan dokumen digital. Studi literatur dilakukan untuk mengetahui penelitian-penelitian sebelumnya terkait digital signature, SHA dan Vigenere. Tahap kedua: perancangan sistem yang meliputi perancangan proses pembuatan digital signature dan penyisipan digital signature ke dalam dokumen. Tahap ketiga: implementasi sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua; dan Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya. `10
Signatory Dokumen Original Proses Digital Signature Dokumen dengan Digital Signature Verifier Dokumen dengan Digital Signature Verifikasi Valid atau Tidak Valid Gambar 3 Desain Arsitektur Sistem Sistem yang dikembangkan, memiliki desain yang ditunjukkan pada Gambar 3. Sistem terdiri dari dua proses, yaitu proses signing dan proses verifiying. Proses signing dilakukan oleh signatory, dengan menanamkan digital signature ke dalam dokumen. Proses verifiying dilakukan oleh verifier, dengan mengekstraksi digital signature dari dalam dokumen. mulai Input file PDF, Input Kunci Generate Digital Signature dengan Algoritma Vigenere Sisipkan di akhir file (eof) PDF Simpan file PDF Selesai Gambar 4 Proses Pemberian Digital Signatur `11
Proses pemberian digital signature dilakukan dengan urutan langkah pada Gambar 4. Pada proses ini diperlukan input yaitu file PDF dan kunci untuk proses enkripsi. Kunci digunakan untuk menyandikan nilai hash. Nilai hash diperoleh dengan cara mengolah byte data file PDF dengan algoritma SHA512. Nilai hash ini kemudian disisipkan ke dalam bagian akhir file PDF. mulai Input file PDF, Input Kunci Baca digital signature di bagian akhir file PDF (Digital Signature Semula) Generate Digital Signature dengan Algoritma Vigenere (Digital Signature Akhir) Bandingkan Digital Signature Semula dengan Digital Signature Akhir Jika Sama Valid Tidak Valid Selesai Gambar 5 Proses Validasi Digital Signature Proses verifikasi digital signature dilakukan dengan urutan langkah pada Gambar 5. Pada proses ini diperlukan input yaitu file PDF dan kunci untuk enkripsi. Untuk melakukan verifikasi, maka diperlukan dua informasi, yaitu digital signature (DS1) pada saat ini, dan digital signature yang disisipkan (DS2). DS2 yang disisipkan `12
perlu diekstrak terlebih dahulu. DS1 diperoleh dengan cara menghitung nilai hash file pdf, dengan algoritma SHA512 kemudian mengenkripsi dengan kunci yang telah dimasukkan. Jika nilai DS1 sama dengan nilai DS2, maka dokumen dianggap valid. 4. Hasil dan Pembahasan Hasil implementasi sistem berdasarkan perancangan yang telah dilakukan, dijelaskan sebagai berikut. Gambar 6 Form Penyisipan Aplikasi yang dibangun menyediakan dua menu utama, yaitu menu embed digital signature dan menu verifikasi. Menu verifikasi adalah menu yang digunakan untuk menverifikasi data sedangkan menu embed digital signature digunakan untuk memberi sign pada dokumen sebelum diberikan ke penerima. Penerima dokumen melakukan proses verifikasi dengan cara memasukkan dokumen pdf, dan kunci verifikasi yang diterima. Karena algoritma vigenere merupakan algoritma kunci simetris, maka kunci yang digunakan untuk memberi digital signature, harus sama dengan kunci yang digunakan untuk proses verifikasi. Perbedaan kunci akan mengakibatkan proses verifikasi memberikan output tidak valid. Perubahan dokumen akan memberikan hasil verifikasi tidak valid. Antarmuka form verifikasi ditunjukkan pada Gambar 6. `13
Gambar 7 Form Verifikasi Pengujian terhadap sistem digital signature yang telah dibangun, dilakukan untuk memenuhi syarat keamanan data yakni asi dan integrasi. Selain itu juga dicatat waktu proses yang diperlukan untuk proses-proses tersebut. Pengujian yang pertama adalah pengujian asi. Pengujian ini dinyatakan berhasil jika program hanya dapat melakukan verifikasi dengan kunci yang tepat. Hasil pengujian asi ditunjukkan pada Tabel 2. Kunci Pengirim Tabel 2 Hasil Pengujian Otentikasi Kunci Perbedaan Output Verifikasi karakter proses kunci verifikasi 1 123456 12345 1 Tidak 2 123456 123457 1 Tidak 3 ABC123rahasia abc123rahasia 2 Tidak 4 Abc123rahasia abc123rahasia 2 Tidak 5 abc123 abc231 3 Tidak 6 123456789 123456123 3 Tidak Kesimpulan Pengujian `14
7!@#Q@#!@#!@#Q@3123 4 Tidak 8 AAAAA1123 AAAAA!!@# 4 Tidak 9 FTIFTIFTI ftiftifti 5 Tidak 10 ukswuksw ukswuksw 5 Tidak 11 123456 123456 0 Otentik 12 ABC123rahasia ABC123rahasia 0 Otentik 13 Abc123rahasia Abc123rahasia 0 Otentik 14 abc123 abc123 0 Otentik 15 123456789 123456789 0 Otentik Pengujian kedua adalah menguji apakah aplikasi dapat mendeteksi perubahan yang terjadi pada dokumen. Perubahan dilakukan terhadap isi dokumen. Pengujian dilakukan terhadap beberapa dokumen yang dilakukan beberapa manipulasi. Pengujian dinyatakan berhasil jika output verifikasi adalah tidak valid Tabel 3 Hasil Pengujian Verifikasi Setelah Dimanipulasi File Name Manipulasi Setelah Verifikasi doca.pdf docb.pdf docc.pdf Ubah judul Ubah satu huruf Ubah satu kalimat Tambah Halaman Hapus Halaman Ubah judul Ubah satu huruf Ubah satu kalimat Tambah Halaman Hapus Halaman Ubah judul Ubah satu huruf Ubah satu kalimat Tambah Halaman Hapus Halaman docd.pdf Ubah judul `15
doce.pdf Ubah satu huruf Ubah satu kalimat Tambah Halaman Hapus Halaman Ubah judul Ubah satu huruf Ubah satu kalimat Tambah Halaman Hapus Halaman Berdasarkan hasil pengujian verifikasi pada Tabel 3, dapat disimpulkan bahwa aplikasi ini dapat mendeteksi perubahan yang terjadi pada isi konten file dokumen pdf. Perubahan yang dilakukan pada isi konten file dokumen pdf yang sudah diberi digital signature, akan membuat file menjadi tidak valid ketika proses verifikasi. Pengujian selanjutnya yakni perbandingan antara ukuran file dengan waktu proses dibagi menjadi dua macam yakni, ukuran file dengan waktu proses signing serta ukuran file dengan waktu proses verifikasi. Pengujian ukuran file dengan waktu proses dapat dilihat pada Tabel 4 Tabel 4 Hasil Pengujian Waktu Signing No Nama File Ukuran File (Byte) Waktu (detik) 1 doca.pdf 1076933 5.82 2 docb.pdf 103660 3.14 3 docc.pdf 91037 2.56 4 docd.pdf 54624 2.34 5 doce.pdf 399595 4.02 Tabel 5 Hasil Pengujian Waktu Verifikasi No Nama File Ukuran File (KB) Waktu (s) 1 doca.pdf 1076933 6.72 2 docb.pdf 103660 4.24 3 docc.pdf 91037 3.11 4 docd.pdf 54624 2.67 5 doce.pdf 399595 5.33 Waktu proses dengan jelas dipengaruhi oleh ukuran dokumen. Karena semakin besar dokumen, semakin banyak byte yang harus dihitung nilai hash dengan algoritma SHA512. Hasil proses hashing ini sebesar 16 byte. Kemudian dienkripsi oleh algoritma Vigenere. Proses enkripsi berlangsung untuk ukuran data yang konstan yaitu 64 byte. Karena seberapa besar input untuk SHA512, output yang dihasilkan selalu 64 byte. Kemudian proses penyisipan terjadi untuk data yang berukuran selalu 64 byte. Sehingga kunci dari kecepatan proses terletak pada kemampuan proses algoritma SHA512. Pengujian terakhir adalah pengujian pengaruh panjang kunci terhadap waktu proses enkripsi. Pengujian ini bertujuan untuk melihat panjang kunci yang ideal yang dapat digunakan untuk proses signing. Kunci yang ideal ditentukan dengan melihat waktu proses yang dipengaruhi, apakah berada dalam rentang waktu yang dapat `16
ditoleransi. Rentang waktu yang digunakan sebagai acuan adalah berdasarkan penelitian Tamimi [8]. Algoritma tercepat pada artikel tersebut adalah Blowfish dengan kecepatan proses 256 Megabyte per detik, dengan kata lain 64 byte dalam 0.00000095 detik. Jika satuan detik diubah menjadi milidetik, maka menjadi 0.00095 milidetik (1 detik=1000 milidetik). Angka ini digunakan sebagai batas toleransi. Jika proses melebihi angka ini, maka dianggap kunci yang digunakan tidak ideal. Pengujian dilakukan dengan melakukan enkripsi dan dekripsi 64 byte data, dengan variasi beberapa kunci. 64 byte dipilih karena panjang digital signature adalah 64 byte (512 bit), yang diperoleh dari SHA512 Tabel 6 Hasil Pengujian Pengaruh Kunci Terhadap Waktu Proses Enkripsi Dekripsi Panjang Kunci Enkripsi Dekripsi (bit) (byte) (milidetik) (milidetik) 64 8 0.00006429 0.00006453 128 16 0.00012859 0.00012845 256 32 0.00025718 0.00025733 512 64 0.00051436 0.00051411 576 72 0.00057865 0.00057856 768 96 0.00077154 0.00077184 832 104 0.00083583 0.00083576 896 112 0.00094013 0.00094011 1024 128 0.00102872 0.00102873 1152 144 0.00115731 0.00115735 Pada Tabel 6 ditunjukkan bahwa kunci dengan panjang 128 byte, membutuhkan waktu proses yang melebihi batas ideal, yaitu lebih dari 0.00095 milidetik. Berdasarkan hasil pengujian pengaruh kunci, diperoleh kesimpulan bahwa kunci yang ideal yang dapat digunakan adalah 112 byte atau kurang. 5. Simpulan Berdasarkan penelitian, pembahasan dan pengujian yang dilakukan untuk mengamankan dokumen dalam format PDF, dapat disimpulkan bahwa: (1) Untuk mendeteksi perubahan pada dokumen pdf, dapat disisipkan digital signature di dalamnya. Digital signature ini bertindak sebagai segel, sehingga dapat diketahui apakah dokumen tersebut pernah mengalami kerusakan atau tidak; (2) Digital signature pada penelitian ini berhasil dikembangkan dengan algoritma Vigenere yang berfungsi untuk mengenkripsi nilai hash dari dokumen PDF. Nilai hash diperoleh dengan algoritma SHA512. Hasil enkripsi disisipkan pada bagian akhir file (EOF); (3) Waktu proses dipengaruhi oleh ukuran file. Semakin besar file, semakin besar waktu yang diperlukan untuk menghitung nilai hash; (4) Manipulasi pada file dapat terdeteksi, tanpa menunjukkan lokasi perubahan yang terjadi; (5) Kunci ideal yang dapat digunakan `17
adalah kunci dengan panjang 112 byte (112 karakter) atau kurang, yang akan menghasilkan waktu proses dibawah 0.00094 milidetik. Saran pengembangan untuk dilakukan penelitian lebih lanjut adalah sebagai berikut: (1) Berdasarkan hasil analisis pengujian waktu proses, proses pembuatan hash merupakan waktu yang paling kritikal, sehingga perlu dianalisis lebih lanjut, algoritma hash yang tepat dan cepat yang lain yang dapat digunakan. 6. Daftar Pustaka [1]. Ford, W. & Baum, M. S. 2000. Secure electronic commerce: building the infrastructure for digital signatures and encryption. Prentice Hall PTR. [2]. Triwinarko, A. 2010. Elliptic Curve Digital Signature Algorithm (ECDSA). Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung [3]. Christie, E., Sediyono, E. & Pakereng, M. A. I. 2014. Pengamanan Data Transkrip Nilai Berbentuk Citra Menggunakan Digital Signature. Fakultas Teknologi Informasi Universitas Kristen Satya Wacana [4]. Shaw, S. 1999. Overview of Watermarks, Fingerprints, and Digital Signatures. [5]. Abrihama, D. 2008. Keystream Vigenere Cipher: Modifikasi Vigenere Cipher dengan Pendekatan Keystream Generator. Program Studi Informatika ITB. Bandung [6]. Salomon, D. 2005. Coding for data and computer communications. (doi:10.1007/b102531) [7]. FIPS, P. U. B. 2009. 186-3. Digital signature standard (DSS) [8]. Tamimi, A.-K. Al 2008. Performance Analysis of Data Encryption Algorithms. http://www.cs.wustl.edu/~jain/cse567-06/ftp/encryption_perf/. Diakses 4 Agustus 2016. 1. `18