PROTOKOL KEAMANAN DOKUMEN DIGITAL PADA SISTEM E-PROCUREMENT MENGGUNAKAN AES, RSA, DAN SHA1
PERMADHI SANTOSA
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA* Dengan ini saya menyatakan bahwa skripsi berjudul Protokol Keamanan Dokumen Digital pada Sistem E-Procurement menggunakan AES, RSA, dan SHA1 adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juni 2014 Permadhi Santosa NIM G64114026
ABSTRAK PERMADHI SANTOSA. Protokol Keamanan Dokumen Digital pada Sistem EProcurement menggunakan AES, RSA, dan SHA1. Dibimbing oleh ENDANG PURNAMA GIRI. Penandaan digital merupakan bukti otentik dan fungsinya sama seperti tanda tangan pada dokumen tercetak, akan tetapi implementasinya pada dokumen digital. Dokumen yang dikirim melalui jaringan internet, perlu dipastikan tujuan dan asal dari dokumen tersebut. Penelitian ini dibuat untuk menerapkan protokol keamanan pada proses pengiriman dokumen digital di sistem e-procurement menggunakan algoritme AES, RSA, dan SHA1. Data yang digunakan pada penelitian ini berupa dokumen – dokumen digital yang terkompresi menggunakan format ZIP. Hasil dari penelitian ini menunjukkan bahwa sistem yang dibuat sudah mampu membangkitkan dan melakukan verifikasi tanda tangan digital. Layanan keamanan yang dimiliki oleh sistem ini ialah kerahasiaan, otentikasi entitas, otentikasi asal data, integritas, dan anti penyangkalan. Pengujian yang dilakukan terhadap layanan - layanan keamanan tersebut meliputi uji otentikasi, uji kerahasiaan, uji integritas serta pengujian terhadap anti penyangkalan. Kerahasiaan dijamin dengan adanya proses enkripsi menggunakan algoritme AES. Layanan Otentikasi, integritas, dan anti penyangkalan dijamin dengan adanya mekanisme pembangkit tanda tangan digital. Kata kunci: E-Procurement, penandaan digital, lelang
ABSTRACT PERMADHI SANTOSA. Digital Document Security Protocols on E-Procurement System using AES, RSA, and SHA1. Supervised by ENDANG PURNAMA GIRI. Digital signature is an authentic evidence and also has a function like a signature on the printed document, but its use in digital documents. Documents that was sent through the internet, should be ensured their source and destination. This research is decided to implement a security protokol on file transfer process on e-procurement system using AES, RSA, and SHA1 algorithm. Data used in this research is a compressed digital document with ZIP format. The result of this research indicate that the system has been created already capable of generating and verify digital signature. The security services that owned by this system such as confidentiality, entity authentication, data origin authentication, integrity, and non repudiation. The testing process is performed on these security services including confidentiality test, authentication test, integrity test, and non repudiation test. Confidentiality is guaranteed by the encryption process using AES algorithm. In addition, authentication, integrity, and non repudiation service is guaranteed by the digital signature mechanism. Keywords: E-Procurement, digital signature, tender
PROTOKOL KEAMANAN DOKUMEN DIGITAL PADA SISTEM E-PROCUREMENT MENGGUNAKAN AES, RSA, DAN SHA1
PERMADHI SANTOSA
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
Judul Skripsi : Protokol Keamanan Dokumen Digital pada Sistem E-Procurement menggunakan AES, RSA, dan SHA1 Nama : Permadhi Santosa NIM : G64114026
Disetujui oleh
Endang Purnama Giri, SKom, MKom Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi, MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan September 2013 ini ialah Protokol Keamanan Dokumen Digital pada Sistem E-Procurement menggunakan AES, RSA, dan SHA1. Terima kasih penulis ucapkan kepada Bapak Endang Purnama Giri dan selaku pembimbing, serta Ibu Shelvie Nidya Neyman dan Ibu Karlisa Priandana yang telah banyak memberi saran. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, serta seluruh keluarga, atas segala doa dan kasih sayangnya. Semoga karya ilmiah ini bermanfaat.
Bogor, Juni 2014 Permadhi Santosa
DAFTAR ISI DAFTAR GAMBAR
vi
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
TINJAUAN PUSTAKA
2
Kriptografi
2
Protokol Kriptografi
3
Algoritme AES
3
Algoritme RSA
6
Algoritme SHA1
7
Digital Signature
9
METODE
11
Studi Literatur
11
Perancangan Sistem
11
Implementasi
14
Pengujian
15
HASIL DAN PEMBAHASAN Pengujian SIMPULAN DAN SARAN
15 21 23
Simpulan
23
Saran
24
DAFTAR PUSTAKA
24
LAMPIRAN
28
RIWAYAT HIDUP
29
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Aplikasi LPSE pemerintah Proses enkripsi dan dekripsi algoritme AES Matriks state Matriks round key Tabel S-Box Ilustrasi proses SubBytes Ilustrasi proses ShiftRows Ilustrasi proses MixColoum Ilustrasi proses AddRoundKey Ilustrasi proses algoritme SHA1 Skema penandaan digital Skema verifikasi digital signature Metode penelitian Proses pembuatan kunci pengguna Proses pembangkitan digital signature Proses verifikasi digital signature Alur proses sistem e-procurement Tampilan awal E-Procurement Form registrasi peserta Halaman profil peserta Form bilangan prima Daftar bilangan prima Pasangan kunci peserta tender Tampilan awal aplikasi pengaman dokumen Pembangkitan digital signature Keluaran dari aplikasi pengaman dokumen Data tender Form upload berkas Pesan validasi berkas Uji kerahasiaan Layanan otentikasi entitas Uji otentikasi entitas Uji otentikasi asal data Hasil uji otentikasi asal data Uji manipulasi signature
1 4 4 4 5 5 5 6 6 7 10 10 11 12 13 14 16 17 17 18 18 18 19 19 20 20 20 21 21 21 22 22 22 23 23
PENDAHULUAN Latar Belakang Tanda tangan merupakan suatu karakter unik yang menunjukkan bukti otentik dari sebuah dokumen cetak yang dikirimkan kepada pihak penerima pesan. Seperti tanda tangan, penandaan digital atau digital signature memiliki fungsi yang sama, akan tetapi ruang lingkup penggunaanya pada dokumen digital. Proses pengadaan barang atau jasa di suatu perusahaan terkadang melibatkan dokumen – dokumen yang menyimpan informasi yang sifatnya privat seperti sumber dokumen atau nominal harga barang yang dicantumkan. Selain itu, terdapat signature yang digunakan sebagai alat yang menunjukan keaslian dan keabsahan dokumen. Pada saat dokumen – dokumen tersebut dikirim melalui jaringan internet, perlu dipastikan pihak yang mengirimkan dokumen dan kepada siapa dokumen ini akan dikirimkan. Menezes et al. (1996) menjelaskan bahwa digital signature adalah sarana yang digunakan sebagai tempat menyimpan suatu identitas ke dalam sebuah informasi untuk proses verifikasi dan otentikasi. Oleh karena itu, penelitian ini bertujuan untuk menerapkan suatu skema pengamanan dokumen dengan menggunakan digital signature. Solusi untuk masalah ini sudah diterapkan di dunia pemerintahan. Salah satu contohnya adalah Layanan Pengadaan Secara Elektronik (LPSE) (Gambar 1).
Gambar 1 Aplikasi LPSE pemerintah Layanan Pengadaan Secara Elektronik (LPSE) adalah salah satu contoh aplikasi E-Procurement yang disediakan oleh pemerintah bagi perusahaan yang bergerak di bidang pengadaan barang atau jasa yang ingin mengirimkan dokumen penawaran terkait dengan proses lelang pengadaan barang. E-Procurement memungkinkan adanya pertukaran informasi terkait dengan proses lelang barang atau jasa melalui jaringan internet (Presutti 2003). Akan tetapi, kasus yang lain timbul ketika organisasi atau lembaga swasta hendak membuat sebuah sistem yang sama seperti E-Procurement milik pemerintah.
2 Perumusan Masalah 1. 2.
Perumusan masalah pada penelitian ini adalah : Bagaimana menerapkan protokol pengaman dokumen digital menggunakan algoritme AES, RSA dan SHA1. Dengan protokol yang sudah dibuat, apakah dapat mengurangi resiko manipulasi dokumen digital oleh pihak yang tidak berwenang.
Tujuan Penelitian Tujuan dari penelitian ialah menerapkan skema keamanan yang digunakan untuk proses pengiriman dokumen digital dan mengetahui kemungkinan terjadinya manipulasi dokumen digital.
Manfaat Penelitian Hasil dari penelitian ini diharapkan dapat memberikan gambaran tentang proses otentikasi dan verifikasi dokumen digital menggunakan digital signature, sehingga dapat menjamin keabsahan dan kerahasiaan dari dokumen tersebut.
Ruang Lingkup Penelitian 1. 2. 3. 4.
Ruang lingkup dari penelitian ini meliputi : Proses pembuatan digital signature menggunakan algoritme RSA. Algoritme AES dengan ukuran kunci 128 bit digunakan pada proses enkripsi ketika data dikirimkan kepada pihak penerima. Pada penelitian ini, data yang digunakan adalah data terkompresi dengan format zip. Bilangan prima yang digunakan pada proses pembangkitan kunci peserta diperoleh dari proses pemilihan dan disimpan di dalam basis data.
TINJAUAN PUSTAKA Kriptografi Kriptografi merupakan studi yang mempelajari teknik – teknik pengamanan suatu informasi. Keamanan dalam kriptografi dapat dijamin melalui empat layanan keamanan, yaitu kerahasiaan, otentikasi, integritas, dan anti penyangkalan (Menezes et al. 1996). a. Kerahasiaan Layanan kerahasiaan merupakan layanan keamanan yang menjaga suatu informasi dari pihak – pihak yang tidak berhak memilikinya. Layanan ini dapat dijamin dengan adanya proses enkripsi.
3 b. Otentikasi Otentikasi merupakan layanan keamanan yang menjamin pihak – pihak yang terlibat dalam proses komunikasi merupakan pihak – pihak yang telah teridentifikasi. Layanan otentikasi ini dibagi menjadi dua mekanisme, yaitu otentikasi entitas dan otentikasi asal data. Otentikasi entitas memberikan jaminan terhadap pihak – pihak yang terlibat dalam proses komunikasi, sedangkan otentikasi asal data memberikan jaminan terhadap keabsahan sumber data (Stallings 2010). c. Integritas Integritas merupakan layanan keamanan yang menjamin keaslian suatu informasi. Dengan adanya layanan ini, pihak penerima dapat meyakini bahwa informasi yang diterima tidak berubah atau dimanipulasi pada saat proses pengiriman. d. Anti Penyangkalan Layanan anti penyangkalan merupakan layanan keamanan yang menjamin pihak pengirim tidak dapat menyangkal pesan yang telah dikirimnya.
Protokol Kriptografi Scheiner (1996) mengemukakan bahwa protokol merupakan serangkaian mekanisme yang melibatkan dua pihak atau lebih dan dirancang untuk menyelasaikan suatu permasalahan. Protokol yang dibuat memiliki karakteristik seperti berikut : 1. Semua pihak yang terlibat harus mengetahui semua langkah yang ada di dalam protokol tersebut. 2. Semua pihak yang terlibat harus menyetujui dan mengikutinya. Protokol yang dibuat tidak membingungkan, setiap langkah harus 3. didefinisikan dengan jelas. 4. Protokol harus lengkap, selalu ada tindakan untuk setiap permasalahan. Protokol kriptografi merupakan protokol yang digunakan dalam kriptografi dan melibatkan dua entitas atau lebih. Protokol kriptografi terdiri atas algoritme kriptografi yang digunakan dan memiliki karakteristik protokol pada umumnya. Tujuan dibuatnya protokol kriptografi ialah menghindari tindakan penyadapan dan manipulasi terhadap informasi oleh pihak – pihak yang tidak berwenang.
Algoritme AES AES merupakan algoritme enkripsi dengan kunci simetris dan berbasis cipher blok. Setiap pesan atau plaintext yang diterima akan dibagi ke dalam beberapa blok, dengan ukuran masing - masing bloknya adalah 128 bit. Blok pesan ini dikenal dengan istilah state yang merupakan array yang direpresentasikan dalam bentuk matriks berukuran 4x4 dan setiap elemennya dinotasikan dalam bilangan heksadesimal (Stallings 2010). Ilustrasi dari matriks state ditunjukkan pada Gambar 2.
4
Gambar 2 Matriks state (Stallings 2010) Kunci yang digunakan untuk proses enkripsi terdiri atas beberapa ukuran blok yaitu 128 bit, 192 bit, dan 256 bit yang direpresentasikan ke dalam matriks array berukuran 4x4 yang disebut round key. Khusus untuk penelitian ini implementasi akan dibatasi pada blok pesan 128 bit dan blok kunci 128 bit. Ilustrasi dari matriks round key ditunjukkan pada Gambar 3.
Gambar 3 Matriks round key (Stallings 2010) Setiap kolom dari matriks round key merepresentasikan word yang berukuran 32 bit. Proses enkripsi pada algoritme AES diawali dengan proses ADDRoundKey, yaitu melakukan operasi XOR antara matriks state dengan round key. Kemudian diikuti dengan sembilan round yang terdiri atas empat proses, yaitu SubBytes, ShiftRows, MixColoum, dan ADDRoundKey. Akhir dari proses enkripsi merupakan round kesepuluh yang terdiri atas proses SubBytes, ShiftRows, dan AddRoundKey. Adapun proses enkripsi dan dekripsi algoritme AES secara umum ditunjukkan pada Gambar 4.
Gambar 4 Proses enkripsi dan dekripsi algoritme AES (http:// http://www.iis.ee.ethz.ch/~kgf/acacia/c3.html)
5 1. SubBytes Proses SubBytes merupakan proses yang melakukan operasi subtitusi setiap elemen dari matriks state kedalam nilai baru dengan mengganti setiap byte pada matriks state dengan byte pada tabel S-Box (Stallings 2010). Tabel S-Box yang digunakan pada proses ini ditunjukkan pada Gambar 5, dan ilustrasi dari proses SubBytes ditunjukkan pada Gambar 6.
Gambar 5 Tabel S-Box (Stallings 2010)
S(x,y)
Gambar 6 Ilustrasi proses SubBytes (Stallings 2010) Pada Gambar 6 terlihat bahwa setiap elemen matriks state terdiri atas dua karakter hexadesimal. Karakter yang pertama menunjukkan nomor baris (x), sedangkan elemen kedua menunjukkan nomor kolom (y) pada tabel S-Box. 2. ShiftRows Proses ShiftRows merupakan proses yang beroperasi pada setiap baris matriks state. Proses ini dilakukan dengan cara memutar tiga baris terakhir pada matriks state dan jumlah putaran tiap barisnya berbeda (Stallings 2010). Ilustrasi dari proses ini ditunjukkan pada Gambar 7.
Gambar 7 Ilustrasi proses ShiftRows (Stallings 2010)
6 3. MixColoum Proses MixColoum beroperasi pada setiap baris matriks state. Proses ini beroperasi dengan melakukan transformasi yang merupakan operasi perkalian antara matriks state dengan matriks pengali yang dikenal dengan matriks forward mix coloum transformation yang berukuran 4x4 (Giri 2004). Ilustrasi dari proses ini terlihat pada Gambar 8.
Gambar 8 Ilustrasi proses MixColoum (Stallings 2010) 4. AddRoundKey Proses Forward add round key atau AddRoundKey merupakan operasi perhitungan XOR sederhana antara matriks state 4x4 dengan matriks 4x4 yang merupakan round key yang bersesuaian pada proses ekspansi kunci pada setiap round (Giri 2004). Ilustrasi proses ini terlihat pada Gambar 9.
Gambar 9 Ilustrasi proses AddRoundKey (Stallings 2010)
Algoritme RSA RSA adalah algoritme enkripsi pesan dengan arsitektur kunci asimetris. Algoritme ini pertama kali diperkenalkan pada tahun 1976. Algoritme ini terdiri dari tiga proses, yaitu proses membangkitkan sepasang kunci, enkripsi, dan dekripsi (Stallings 2010). Proses untuk membangkitkan sepasang kunci terdiri dari beberapa tahap, antara lain : 1. Memilih secara acak dua bilangan prima p dan q. 2. Menghitung nilai n = pq. 3. Menghitung nilai Ø(n) = (p-1)(q-1). Menentukan bilangan bulat e yang relatif prima terhadap Ø(n). 4. 5. Menghitung kunci dekripsi 𝑑 = 𝑒 −1 mod Ø(𝑛). Hasil dari proses pembangkitan kunci adalah pasangan kunci publik dan kunci privat yang bersesuaian. Kunci publik yang merupakan pasangan e dan n digunakan pada proses enkripsi, sedangkan kunci privat yang merupakan pasangan d dan n digunakan pada proses dekripsi. Proses enkripsi pada algoritme ini dilakukan dengan perhitungan berbasis desimal. Masukan dari proses enkripsi adalah plaintext dengan panjang i bit. Perhitungan beroperasi pada setiap bit dari pesan asli (plaintext). Ciphertext yang merupakan keluaran dari proses enkripsi diperoleh dari hasil dari operasi modulus
7 antara n dan bit plaintext ke-i (𝑚𝑖 ) pangkat e. Perhitungan ini dapat dinotasikan sebagai 𝑐𝑖 = 𝑚𝑖𝑒 𝑚𝑜𝑑 𝑛 , dengan 𝑐𝑖 sebagai ciphertex (Stallings 2010). Pada proses dekripsi, plaintext diperoleh dari perhitungan modulus antara n dan bit ciphertext ke-i pangkat d. Perhitungan untuk proses dekripsi algoritme RSA dapat dinotasikan sebagai 𝑚𝑖 = 𝑐𝑖𝑑 𝑚𝑜𝑑 𝑛 , dengan 𝑚𝑖 sebagai plaintext (Stallings 2010).
Algoritme SHA1 Menezes et al. (1996) mengemukakan bahwa fungsi hash merupakan fungsi yang memetakan input dengan ukuran yang bervariasi dan menghasilkan suatu nilai yang memiliki ukuran tetap yang disebut message digest. Fungsi hash digunakan untuk menunjukan integritas atau keaslian data, terutama pada skema penandaan digital. Sedangkan algoritme SHA1 (Secure Hash Algorithm 1) merupakan salah satu algoritme fungsi hash yang menerima input dengan ukuran sembarang dan menghasilkan message digest dengan ukuran 160 bit. Algoritme ini dirancang khusus oleh National Institute of Standard and Technology (NIST) dan National Security Agency (NSA). Algoritme SHA1 juga merupakan hasil perkembangan dari algoritme MD4 (Prasetiya 2001). Proses umum algoritme SHA1 ditunjukkan pada Gambar 10. A
B
C
D
E
<<<30 <<<5 <<<30
𝑤𝑡 𝑘𝑡(𝐷𝐼𝑉 20)
A
B
C
D
E
Gambar 10 Ilustrasi proses algoritme SHA1 (Prasetiya 2001) Proses algoritme SHA1 ini terdiri dari beberapa proses, antara lain message padding, penambahan panjang bit, inisialisasi buffer, pengolahan 16 subblok 32 bit, dan output (Prasetiya 2001). 1. Message Padding Pada proses ini, pesan masukan dibagi ke dalam blok – blok pesan berukuran 512 bit. Akibatnya blok terakhir pesan akan berukuran kurang atau
8 sama dengan 512 bit. Blok terakhir akan mengalami message padding (Prasetiya 2001). 2. Proses Penambahan Panjang Bit Proses message padding dilakukan dengan menambahkan bit 1 dan sejumlah bit 0 di bagian paling kiri pada blok terakhir sehingga panjang total setelah proses ini sama dengan 512 bit (Prasetiya 2001). 3. Proses Inisialisasi Buffer Pada algoritme SHA1, nilai inisialisasi telah ditetapkan dan disimpan pada buffer 𝐻0 , 𝐻1 , 𝐻2 , 𝐻3 , dan 𝐻4 , sedangkan untuk menyimpan hasil sementara dari setiap proses menggunakan buffer A, B, C, D, dan E (Prasetiya 2001). Nilai dari buffer 𝐻0 , 𝐻1 , 𝐻2 , 𝐻3 , dan 𝐻4 yang ditentukan pada tahap inisialisasi awal adalah sebagai berikut : 𝐻0 = 67452301 𝐻1 = 𝐸𝐹𝐶𝐷𝐴𝐵89 𝐻2 = 98𝐵𝐴𝐷𝐶𝐹𝐸 𝐻3 = 10325476 𝐻4 = C3D2E1F0 4. Proses Pengolahan 16 Subblok 32 Bit Proses ini terdiri atas 4 putaran atau round, masing - masing round nya mempunyai 20 operasi dan untuk setiap satu blok pesan 512 bit diperlukan 80 operasi (Prasetiya 2001). a. Pada setiap round didefinisikan suatu fungsi 𝑓𝑡 , 0 ≤ t ≤ 79 yang dioperasikan pada buffer B, C, D berukuran 32 bit. Fungsi 𝑓𝑡 (B,C,D) adalah sebagai berikut : 1. Untuk t = 0 sampai dengan 19, definisi fungsi 𝑓𝑡 ialah : 𝑓𝑡 𝐵, 𝐶, 𝐷 = 𝐵 AND 𝐶 OR ( NOT 𝐵 AND 𝐷) 2. Untuk t = 20 sampai dengan 39, definisi fungsi 𝑓𝑡 ialah : 𝑓𝑡 𝐵, 𝐶, 𝐷 = 𝐵 XOR 𝐶 XOR 𝐷 3. Untuk t = 40 sampai dengan 59, definisi fungsi 𝑓𝑡 ialah : 𝑓𝑡 𝐵, 𝐶, 𝐷 = 𝐵 AND 𝐶 OR 𝐵 AND 𝐷 OR (𝐶 AND D) 4. Untuk t = 60 sampai dengan 79 fungsi 𝑓𝑡 didefinisikan sama seperti pada t = 20 sampai dengan 39. b. Inisialisasi deret konstanta 32 bit 𝐾0 , 𝐾1 , sampai dengan 𝐾79 dengan nilai yang sudah ditentukan, antara lain : • Untuk t = 0 sampai dengan 19, inisialisasi nilai dari 𝐾𝑡 ialah : 𝐾𝑡 = 5𝐴827999 • Untuk t = 20 sampai dengan 39, inisialisasi nilai dari 𝐾𝑡 ialah : 𝐾𝑡 = 6ED9EBA1 • Untuk t = 40 sampai dengan 59, inisialisasi nilai dari 𝐾𝑡 ialah : 𝐾𝑡 = 8F1BBCDC • Untuk t = 40 sampai dengan 59, inisialisasi nilai dari 𝐾𝑡 ialah : 𝐾𝑡 = CA62C1D6 c. Blok pesan 512 bit dinotasikan sebagai 𝑀𝑖 dan untuk setiap satu blok pesan dilakukan langkah – langkah sebagai berikut :
9 1. Membagi 𝑀𝑖 menjadi 16 subblok 32 bit, yaitu 𝑊0 , 𝑊1 , sampai dengan 𝑊15 . 𝑊0 adalah subblok paling kiri. 2. Untuk t = 16 sampai dengan 79, dilakukan proses rotasi terhadap nilai pada variabel 𝑊𝑡 sebanyak satu kali. Nilai dari variabel 𝑊𝑡 diperoleh dari perhitungan sebagai berikut : 𝑊𝑡 = 𝑊𝑡−3 XOR 𝑊𝑡−8 XOR 𝑊𝑡−14 XOR 𝑊𝑡−16 3. Melakukan inisialisasi A = 𝐻0 , B = 𝐻1 , C = 𝐻2 , D = 𝐻3 , E = 𝐻4 4. Untuk setiap langkah operasi pada algoritme SHA1, untuk t = 0 sampai dengan ≤ 79 melakukan operasi sebagai berikut : • TEMP = hasil rotasi nilai A sebanyak lima kali + 𝑓𝑡 𝐵, 𝐶, 𝐷 + E + 𝑊𝑡 + 𝐾𝑡 . • E = D. • D = C. • C = hasil rotasi dari nilai pada buffer B sebanyak 30 kali. • B = A. • A = TEMP. 5. Untuk proses penyelesaian terakhir, dilakukan perhitungan sebagai berikut : • 𝐻0 = 𝐻0 + A. • 𝐻1 = 𝐻1 + B. • 𝐻2 = 𝐻2 + C. • 𝐻3 = 𝐻3 + D. • 𝐻4 = 𝐻4 + E. 5. Output Output diperoleh setelah proses untuk semua blok 𝑀𝑛 pesan 512 bit diselesaikan. Blok terakhir menghasilkan output berupa message digest dari pesan tersebut, yaitu nilai dari buffer 𝐻0 , 𝐻1 , 𝐻2 , 𝐻3 , dan 𝐻4 (Prasetiya 2001). Panjang message digest adalah 160 bit dan masing – masing buffer terdiri dari 8 digit hexadesimal. Digital Signature Digital signature merupakan mekanisme otentikasi yang memungkinkan pengirim pesan untuk menyisipkan sesuatu yang berfungsi sebagai tanda tangan dari pesan tersebut (Stallings 2010). Skema dari pembuatan digital signature terdiri dari dua proses yaitu penandaan digital dan verifikasi. Digital signature adalah nilai yang didapat dari proses enkripsi message hash dari suatu informasi menggunakan kunci privat (Gambar 11). Sedangkan, proses verifikasi digital signature dilakukan dengan menggunakan kunci publik. Pesan dan digital signature dipisahkan kemudian masing- masing melalui proses dekripsi dan proses perhitungan message digest. Proses verifikasi dilakukan terhadap kedua parameter, yaitu message digest yang diperoleh dari hasil dekripsi digital signature dan message digest yang diperoleh dari pesan asli (Gambar 12).
10 Mulai
Kunci Privat
Pesan Proses perhitungan message digest Message Digest Proses enkripsi
Pesan Digital Signature
Selesai
Gambar 11 Skema penandaan digital (Stallings 2010) Mulai
Kunci Publik
Pesan Digital Signature
Digital Signature
Pesan
Proses Dekripsi
Proses perhitungan message digest
Message Digest
Message Digest
Proses verifikasi Hasil Verifikasi
Selesai
Gambar 12 Skema verifikasi digital signature (Stallings 2010)
11
METODE Penelitian ini dilakukan dalam beberapa tahap yang terurut dan membentuk sebuah kerangka kerja seperti yang terlihat pada Gambar 13. Mulai
Studi Literatur
Perancangan Sistem
Implementasi
Pengujian
Selesai Gambar 13 Metode penelitian Studi Literatur Tahap studi literatur dilakukan untuk mencari dan meninjau beberapa pustaka yang dapat mendukung penelitian ini.
Perancangan Sistem Tahap perancangan sistem merupakan tahap yang dilakukan untuk merancang sebuah aplikasi e-procurement yang dapat mengamankan dokumen digital dengan menggunakan skema pembangkitan digital signature. Sistem ini memiliki tiga tahap yaitu proses pembuatan kunci pengguna, pembangkitan digital signature dan verifikasi digital signature. 1. Pembuatan Kunci Pengguna Pada proses ini, kunci pengguna terdiri atas tiga jenis, yaitu kunci publik, kunci privat, dan kunci enkripsi. Proses ini diawali dengan menentukan batas minimun dan maksimum dari bilangan prima yang akan digunakan sebagai parameter p dan q untuk sepasang kunci publik dan kunci privat pengguna.
12 Setelah sepasang kunci berhasil dibuat, maka dilakukan proses pembuatan kunci simetris yang dilakukan dengan proses pemilihan secara acak. Adapun skema dari proses pembuatan kunci pengguna ditunjukkan pada Gambar 14. Mulai
Admin Repositori kunci
Batas minimum dan maksimum
Proses pembuatan bilangan - bilangan prima
Bilangan – bilangan prima
Proses penyimpanan ke database repositoro kunci
Pengguna membuat sepasang kunci
Parameter p dan q
Kunci publik dan privat
Kunci pengguna
Proses pembuatan kunci simetris
User
Selesai
Gambar 14 Proses pembuatan kunci pengguna 2. Pembangkitan Digital Signature Pada tahap pembakitan digital signature terdapat tiga masukan proses yaitu dokumen digital, kunci privat, dan kunci simetris. Dokumen digital yang tersimpan dalam satu direktori akan melalui proses kompresi dan menghasilkan berkas dengan format zip. Kemudian nilai message digest dihitung. Nilai message digest yang dihasilkan dienkripsi menggunakan kunci privat sehingga hasil dari proses ini ialah digital signature yang bersesuaian dengan dokumen tersebut (Gambar 15).
13 Mulai
Dokumen digital
Proses kompresi dokumen digital
Berkas zip
Pembentukan message digest menggunakan algoritme SHA 1 Kunci privat e
Kunci Simetris
Proses enkripsi menggunakan algoritme AES
Message digest
Proses enkripsi menggunakan algoritme RSA
Dokumen terenkripsi
Digital Signature
Selesai
Gambar 15 Proses pembangkitan digital signature 3. Verifikasi Digital Signature Proses verifikasi digital signature memiliki empat masukan, yaitu kunci publik, kunci simetris, digital signature dan dokumen digital. Ilustrasi dari proses ini ditunjukan pada Gambar 16.
14 Mulai
Kunci publik
Digital Signature
Dokumen terenkripsi
Kunci simetris
Proses dekripsi menggunakan algoritme AES
Proses dekripsi menggunakan algoritme RSA
Dokumen asli
Pembentukan message digest menggunakan algoritme SHA1
Message digest
Message digest
Proses verifikasi
Selesai
Gambar 16 Proses verifikasi digital signature Implementasi Pada tahap ini, dilakukan implementasi dari sistem e-procurement sebagai protokol pengamanan dokumen sesuai dengan perancangan yang sudah dibuat. Proses pembuatan digital signature disimulasikan dengan aplikasi berbasis desktop yang dibuat menggunakan bahasa pemrograman java, sedangkan proses verifikasi digital signature disimulasikan dengan aplikasi berbasis web yang dibuat menggunakan bahasa pemrograman PHP. Implementasi dirancang dan dibangun dengan menggunakan spesifikasi perangkat keras dan perangkat lunak, antara lain : Perangkat Keras : Processor Intel Core i3 2,4 GHz RAM 4 GB Perangkat Lunak : Sistem Operasi Windows 7 64 bit XAMP 3.2.1
15
Apache 2.0 MYSQL 5.0.11 Netbeans IDE 6.9.1 Macromedia Dreamwaver 8 Mozilla Firefox
Pengujian Pada tahap ini, dilakukan pengujian secara fungsional serta analisis hasil proses pembangkitan dan verifikasi digital signature dari sistem yang dibuat. Pengujian juga dilakukan terhadap layanan – layanan keamanan yang dibangun untuk membuat protokol keamanan dokumen digital.
HASIL DAN PEMBAHASAN Protokol pengaman dokumen pada sistem e-procurement ini memiliki beberapa langkah penggunaan. Langkah – langkah tersebut antara lain sebagai berikut : 1. Pihak pengelola atau administrator menentukan batas minimum dan maksimun untuk proses pembuatan bilangan – bilangan prima. Kemudian beberapa bilangan prima yang dihasilkan disimpan ke dalam database repositori kunci untuk selanjutnya digunakan sebagai parameter dalam proses pembuatan kunci yang dilakukan oleh peserta lelang. 2. Pengguna melakukan registrasi sebagai peserta lelang. Kemudian melakukan login dan selanjutnya melakukan proses pembangkitan kunci pengguna. 3. Peserta melakukan proses pembuatan kunci berdasarkan parameter p dan q yang diperoleh dari repositori kunci. Setelah berhasil membuat kunci privat dan publik, maka dilanjutkan dengan pembuatan kunci enkripsi yang ditentukan secara acak. Kunci pengguna yang terdiri dari kunci publik, kunci privat, dan kunci enkripsi tersimpan di dalam database repositori kunci. 4. Peserta melakukan proses pembangkitan digital signature untuk dokumen – dokumennya dengan menggunakan aplikasi pengaman dokumen. Aplikasi pengaman dokumen ini menerima masukan berupa dokumen digital, kunci privat, dan kunci enkripsi. Keluaran dari aplikasi ini ialah dokumen lelang pengguna dalam format zip yang terenkripsi dan berkas digital signature dari dokumen tersebut. 5. Peserta memilih lelang yang akan diikuti dan mengirimkan dokumennya beserta berkas digital signature melalui form upload pada aplikasi eprocurement. 6. Proses verifikasi dokumen peserta dilakukan pada aplikasi e-procurement dengan kunci publik dan kunci enkripsi sebagai parameter masukan. Hasil dari proses verifikasi dokumen akan disimpan di database e-procurement
16 beserta status valid atau tidak valid berdasarkan hasil dari proses dekripsi dari digital signature yang dikirimkan. Secara umum, alur penggunaan sistem e-procurement diilustrasikan pada Gambar 17. Mulai Proses registrasi pengguna sebagai peserta tender
Repositori kunci
Peserta tender membuka halaman awal aplikasi e-procurement dan melakukan login
Tidak
Database e-procurement
Login berhasil ? Ya
Berkas dan hasil verifikasi
Proses pembangkitan kunci peserta
Kunci peserta Tidak
Kunci dibangkitkan Ya
Proses penyimpanan kunci peserta ke database repositori kunci
Proses lelang dan verifikasi berkas
Verifikasi ?
Tidak
Ya Proses penyimpanan berkas dan hasil verifikasi ke database e-procurement
Selesai Gambar 17 Alur proses sistem e-procurement
17 Hingga tahap ini aplikasi e-procurement telah memiliki tampilan user interface, mampu membangkitkan digital signature, serta mampu melakukan proses verifikasi terhadap dokumen dan digital signature yang dikirimkan. Tampilan awal dari sistem ini ditunjukkan pada Gambar 18.
Gambar 18 Tampilan awal E-Procurement Penggunaan sistem ini diawali oleh proses registrasi peserta lelang dengan mengisi form pendaftaran. Tampilan dari form registrasi peserta ditunjukkan pada Gambar 19.
Gambar 19 Form registrasi peserta Halaman profil peserta dapat diakses setelah peserta berhasil melalui proses otentikasi peserta. Tampilan dari halaman profil peserta ditunjukkan pada Gambar 20.
18
Gambar 20 Halaman profil peserta Setelah berhasil memasukkan data peserta, maka peserta dapat mengikuti proses lelang barang dan jasa. Tahapan awal dari proses lelang ialah pembangkitan kunci pengguna. 1. Pembangkitan Kunci Pengguna Proses pembangkitan sepasang kunci diawali proses pemilihan bilangan prima berdasarkan nilai minimum dan maksimum yang dilakukan oleh administrator melalui form bilangan prima (Gambar 21 ).
Gambar 21 Form bilangan prima Keluaran dari proses pemilihan tersebut adalah bilangan – bilangan prima yang disimpan dalam database beserta status yang menandakan bahwa bilangan tersebut telah digunakan untuk pembangkitan kunci peserta (Gambar 22 ).
Gambar 22 Daftar bilangan prima
19 Kemudian peserta membuat sepasang kunci menggunakan dua bilangan prima yang dipilih secara acak dari database sebagai nilai dari parameter p dan q. Setelah nilai p dan q dipilih, akan dihasilkan pasangan kunci publik, kunci privat serta kunci simetris yang diperoleh dari proses pemilihan secara acak. Pasangan kunci privat, kunci publik, dan kunci simetris akan ditampilkan di halaman profil peserta, seperti yang ditunjukkan pada Gambar 23.
Gambar 23 Pasangan kunci peserta tender Setelah melalui proses pembuatan kunci peserta, maka status bilangan – bilangan prima yang terdapat pada repositori kunci diperbaharui seperti yang ditunjukkan pada Lampiran 1. Selanjutnya, peserta dapat melakukan proses pembangkitan digital signature untuk dokumen – dokumen lelang. 2. Pembangkitan Digital Signature Proses pembangkitan digital signature dilakukan pada aplikasi pengaman dokumen berbasis desktop. Alur penggunaan dari aplikasi pengaman dokumen diawali dengan proses otentikasi pengguna. Tampilan awal dari aplikasi pengaman dokumen ditunjukkan pada Gambar 24.
Gambar 24 Tampilan awal aplikasi pengaman dokumen Setelah melalui tahap otentikasi, selanjutnya peserta lelang melakukan proses pembangkitan digital signature dengan beberapa masukan, yaitu dokumen lelang, kunci privat, dan kunci simetris, seperti yang terlihat pada Gambar 25.
20
Gambar 25 Pembangkitan digital signature
Gambar 26 Keluaran dari aplikasi pengaman dokumen Keluaran dari aplikasi pengaman dokumen ialah dua berkas, yaitu berkas zip yang terenkripsi dan berkas digital signature seperti yang ditunjukkan pada Gambar 26. 3. Verifikasi Digital Signature Proses verifikasi berkas dilakukan ketika peserta lelang mengirimkan berkas zip dan digital signature, untuk mengikuti lelang barang yang ada di dalam aplikasi e-procurement. Data lelang barang atau tender yang dapat diikuti peserta ditunjukkan pada Gambar 27.
Gambar 27 Data tender
21 Proses verifikasi diawali dengan membuka form upload berkas yang tautannya terdapat di setiap data tender. Tampilan dari form upload berkas dapat dilihat pada Gambar 28.
Gambar 28 Form upload berkas
Gambar 29 Pesan validasi berkas Setelah berkas terkirim dan tersimpan di dalam repositori berkas pada aplikasi e-procurement, maka dilakukan proses verifikasi berkas. Keluaran dari proses verifikasi adalah pesan valid jika berkas dan signature sesuai (Gambar 29).
Pengujian 1. Kerahasiaan Layanan kerahasian dari sistem e-procurement ini telah dijamin dengan adanya proses enkripsi menggunakan algoritme AES pada aplikasi pengaman dokumen. Proses enkripsi ini dibuat dengan tujuan untuk mengamankan dokumen peserta dari tindakan manipulasi oleh pihak yang tidak berwenang. Layanan ini diuji dengan melakukan proses dekripsi berkas terkompresi dengan menggunakan kunci simetris yang berbeda (Gambar 30a). Hasil dari pengujian ini menunjukkan bahwa berkas zip hanya dapat dibuka setelah melalui proses dekripsi menggunakan kunci simetris dari pemilik berkas yang sesuai (Gambar 30c). Jika menggunakan kunci yang tidak sesuai, akan tampil pesan error pada proses dekripsinya (Gambar 30b).
(a)
(b)
(c) Gambar 30 Uji kerahasiaan
22 2. Otentikasi Layanan otentikasi dibagi menjadi dua jenis, yaitu otentikasi entitas dan otentikasi asal data. Otentikasi entitas merupakan layanan keamanan yang menjamin bahwa pihak – pihak yang berkomunikasi merupakan pihak yang teridentifikasi. Otentikasi entitas diuji dengan mekanisme login yang digunakan untuk mengidentifikasi peserta lelang (Gambar 31). Peserta tender yang gagal melakukan otentikasi akan diblokir dan tidak dapat menggunakan aplikasi eprocurement seperti yang ditunjukkan pada Gambar 32.
Gambar 31 Layanan otentikasi entitas
Gambar 32 Uji otentikasi entitas Sedangkan otentikasi asal data merupakan layanan keamanan jaminan terhadap keabsahan suatu sumber data (Stallings 2010). Otentikasi asal data diuji dengan melakukan proses verifikasi dengan menggunakan kunci publik yang berbeda (Gambar 33).
Gambar 33Uji otentikasi asal data
23
Gambar 34 Hasil uji otentikasi asal data Hasil dari uji otentikasi asal data menunjukkan bahwa proses verifikasi berkas gagal (Gambar 34). Proses verifikasi berkas akan berhasil jika menggunakan kunci publik milik pihak pengirim. 3. Integritas Layanan integritas dapat digunakan untuk menjamin keaslian dari dokumen yang dikirimkan. Layanan ini diuji dengan melakukan manipulasi terhadap berkas digital signature dan mengirim kembali bersama dengan berkasnya (Gambar 35).
Gambar 35 Uji manipulasi signature Digital signature yang berbeda akan menghasilkan message digest yang tidak valid pada keluaran dari proses dekripsi. Hal ini terbukti dengan ditampilkannya pesan invalid yang sama seperti pada Gambar 34. 4. Anti Penyangkalan Layanan anti penyangkalan diuji dengan adanya proses verifikasi digital signature. Jika berkas sesuai atau valid dengan signature yang dikirimkan, maka peserta lelang selaku pengirim berkas tidak dapat menyangkal bahwa berkas tersebut bukan miliknya.
SIMPULAN DAN SARAN Simpulan Hasil dari penelitian ini ialah aplikasi e-procurement telah mampu membangkitkan kunci peserta, membangkitkan digital signature, serta mampu melakukan proses verifikasi berkas. Berdasarkan hasil dari pengujian, aplikasi ini telah memiliki protokol keamanan dengan adanya layanan kerahasiaan, otentikasi entitas, otentikasi asal data, integritas, dan anti penyangkalan. Layanan kerahasiaan dijamin dengan adanya proses enkripsi. Layanan otentikasi entitas, otentikasi asal data, integritas dan anti penyangkalan dijamin dengan adanya skema verifikasi digital signature. Proses pembangkitan digital signature dilakukan menggunakan aplikasi pengaman berkas dengan masukan berupa dokumen, kunci privat, dan kunci
24 enkripsi perusahaan, sedangkan proses verifikasi dilakukan menggunakan kunci publik. Hasil dekripsi dari digital signature akan menghasilkan message digest dan kemudian dibandingkan dengan message digest dari dokumen. Setelah proses verifikasi berhasil, akan ditampilkan pesan valid atau invalid yang menunjukkan ada tidaknya proses manipulasi terhadap dokumen pengguna atau berkas signature. Disamping layanan – layanan keamanan yang telah tersedia, sistem ini juga masih memiliki kelemahan, yaitu terdapat celah keamanan pada mekanisme penyimpanan kunci pengguna yang tersimpan pada basis data. Hal ini memungkinkan seorang administrator untuk mengetahui dan menyalahgunakan kunci pengguna terhadap pihak – pihak yang tidak memiliki wewenang.
Saran Secara umum aplikasi yang telah dibuat sudah memiliki protokol keamanan dalam proses pengiriman dokumen digital. Akan tetapi, masih terdapat kekurangan pada mekanisme penandaan digital, yaitu terbatasnya bilangan – bilangan prima yang digunakan untuk proses pembangkitan kunci, serta berkas dan digital signature yang masih terpisah. Saran untuk penelitian selanjutnya ialah perlu adanya pengembangan terhadap mekanisme pembangkit sepasang kunci publik dan kunci privat pada proses pembuatan digital signature. Selain itu, juga perlu diterapkan mekanisme penyisipan signature ke dalam berkas terkompresi.
DAFTAR PUSTAKA Giri EP. 2004. Analisis Algoritme dan Waktu Enkripsi Versus Dekripsi pada Advanced Encryption Standard (AES) [skripsi]. Bogor (ID): Institut Pertanian Bogor. Menezes A, Oorschot PV, Vanstone S. 1996. Handbook of Applied Cryptography. London:CRC Press. Prasetiya M. 2001. Perbandingan Algoritme Message Digest 5 (MD5) dan Secure Hash Algorithm 1 (SHA1) [skripsi]. Bogor (ID): Institut Pertanian Bogor. Presutti WD. 2003. Supply management and e-procurement: creating value added in the supply chain. Industrial Marketing Management. 32(3):219-226. Schneier B. 1996. Applied Cryptography : Protocols, Algorithms, and Source Code in C. USA:John Wiley and Sons. Stallings W. 2010. Crypthography and Network Security Principles and Practice. Ed ke-5. London (UK): Prentice Hall.
25
Lampiran 1 Tabel bilangan prima setelah proses pembuatan kunci peserta lelang
26
RIWAYAT HIDUP Penulis dilahirkan pada tanggal 21 September 1989 di Serang, Banten. Penulis merupakan anak pertama dari tiga bersaudara dari pasangan Bapak Budi Santoso dan Ibu Dewi. Penulis lulus dari Sekolah Menengah Atas Negeri 1 Kramatwatu Serang pada tahun 2008. Pada tahun yang sama penulis melanjutkan pendidikan di Program Diploma Institut Pertanian Bogor, Jurusan Teknik Komputer. Penulis lulus dari program diploma pada tahun 2011 dan pada tahun yang sama, penulis melanjutkan studi di Program Alih Jenis Ilmu Komputer, Institut Pertanian Bogor untuk mendapatkan gelar sarjana. Selama mengikuti perkuliahan di Program Alih Jenis Ilmu Komputer. Pada tahun 2012 penulis juga menjadi asisten mata kuliah Sistem Operasi, Jaringan Komputer, dan Dasar Jaringan Komputer di Program Diploma Institut Pertanian Bogor.