Analisis Algoritma Tanda Tangan Digital

Bab 3 ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis Algoritma Tanda Tangan Digital

Cara kerja tanda tangan digital digital signature hampir sama dengan cara kerja “tanda tangan” dokumen biasa. Terdapat dua algoritma pada sistem digital signature, yaitu algoritma sign untuk menandatangani sebuah dokumen M dan menghasilkan sebuah tanda tangan sign ρ, dan algoritma verify yang mengembalikan nilai true bila tanda tangan ρ memang pemilik penandatangan dan untuk dokumen M. Sistem digital signature menggunakan kunci asimetris dengan algoritma sign menggunakan kunci privat dan algoritma verify menggunakan kunci publik. Sebelum pengirm ingin mengirim dokumen bertanda tangan secara digital pada penerima terlebih dahulu pengirim harus membangkitkan sepasang kunci asimetris miliknya, yaitu kunci privat K privat dan kunci publik K publik . Kemudian pengirim menandatangani dokumen M dengan memanggil algoritma sign sebagai berikut : ρ ← signM, K privat untuk menghasilkan tanda tangan ρ. Pengirim kemudian mengirim M,ρ kepada penerima. Penerima pada akhirnya memanggil algoritma verify sebagai berikut : terima ← verify M, ρ, K publik untuk memverifikasi tanda tangan ρ. Penerima menerima pasangan M,ρ jika nilai terima adalah true. Universitas Sumatera Utara Proses tanda tangan digital digital signature dengan kunci asimetris dapat dilihat pada gambar 3.1. Pengirim Penerima Kunci Publik Kunci privat Gambar 3.1 Proses digital signature dengan kunci asimetris Dalam perkembangannya, tanda tangan digital tidak lagi dibuat langsung dari pesan aslinya seperti yang diperlihatkan oleh gambar 3.1. Hal ini dikarenakan pesan mungkin saja sangat panjang yang mengakibatkan tanda tangan digitalnya juga menjadi sangat panjang. Untuk itu digunakan fungsi hash hash function. Fungsi hash bersifat satu arah, sehingga output dari fungsi ini tidak dapat dikembalikan ke bentuk inputnya lagi. Tanda tangan digital dibuat dari hasil fungsi hash pesan. Sifat hash yang menunjukkan integritas data terdapat pada tanda tangan digital. Pembangkit Kunci Sign Verify M, � ρ Terima ? M Universitas Sumatera Utara Kekuatan tanda tangan digital adalah bahwa setiap data mempunyai tanda tangannya sendiri. Artinya setiap tanda tangan adalah unik terhadap pesan dan pasangan kunci yang digunakan. Ketika dua buah pesan ditandatangani dengan kunci yang sama, tanda tangan yang dihasilkan akan berbeda. Bahkan ketika dua orang dengan kunci yang berbeda menandatangani pesan yang sama, tanda tangan yang dihasilkan akan berbeda. Sifat ini menunjukkan sifat otentikasi dan integritas data pada pesan. Proses tanda tangan dan validasi ditunjukkan di bawah ini Signer Verify Publik Key Privat Key ? = Gambar 3.2 Proses pembentukan dan validasi tanda tangan digital Message Message Signature Message Signature Message Signature Message Digest Message Digest Signature Message Digest Fungsi Hash Sign Verify Fungsi Hash Universitas Sumatera Utara Tanda tangan digital berbentuk sepasang besar angka yang ditampilkan komputer sebagai string dari digit biner. Tanda tangan digital dihitung dengan menggunakan sejumlah aturan dan sejumlah parameter sehingga identitas pemilik dan integritas data dapat diverifikasi. Pembuat tanda tangan menggunakan kunci privat untuk membuat tanda tangan; sedangkan kunci publik, yang berkorespodensi dengan kunci privat namun tidak sama, digunakan untuk memverifikasi tanda tangan. Setiap user memiliki sepasang kunci publik dan kunci privat. kunci publik diasumsikan diketahui public secara umum, sedangkan kunci privat tidak pernah disebar. Algoritma tanda tangan digital Digital Signature AlgorithmDSA dapat dilihat sebagai variasi dari skema tanda tangan ELGamal. Algoritma tanda tangan digital DSA menggunakan parameter sebagai berikut: 1. p adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 1024 L   dan L harus kelipatan 64. 2. q bilangan prima 160 bit, merupakan faktor dari 1 p  . Dengan kata lain 1 mod p q   . 3. 1 mod p q g h p   , yang dalam hal ini 1 h p   sedemikian sehingga 1 mod 1 p q h p   . 4. Domain parameter adalah p, q, g. Dari domain parameter p, q, g, maka dilakukan pembangkitan pasangan kunci privat dan kunci publik. Algoritma untuk membangkitkan kunci sebagai berikut: 1. Pilih bilangan acak x dengan ketentuan 1 1 x q    . 2. Hitung mod x y g p  . 3. x adalah kunci privat dan y adalah kunci publik. Universitas Sumatera Utara Setelah membangkitkan pasangan kunci maka pesan M ditandatangani dengan algoritma sebagai berikut : 1. Ubah pesan M menjadi message digest dengan fungsi hash SHA. 2. Tentukan bilangan acak 1 1 k q    . 3. Hitung mod mod k r g p q  . 4. Hitung 1 mod s k H M xr q    . 5. Tanda tangan digital dari pesan M adalah r dan s. Algoritma untuk menverifikasi tanda tangan r dan s sebagai berikut: 1. Periksa bahwa r dan s berada pada interval [1, 1 q  ]. 2. Hitung 1 mod w s q   . 3. Hitung 1 mod u H M w q  dan 2 mod u rw q  . 4. Hitung 1 2 mod mod u u v q y p q  . 5. Jika v r  maka tanda tangan digital valid, jika tidak maka tanda tangan digital ditolak.

3.2 Analisis Algoritma Tanda Tangan Digital Berbasis Kriptografi Kurva Eliptik