TANDA TANGAN DIGITAL
Sejak berabad-abad lamanya tanda tangan digunakan untuk membuktikan otentik
dokumen kertas (misal surat, piagam, ijazah, buku, karyaseni, dan sebagainya). Tanda-tangan mempunyai karakteristik
sebagai berikut :
1. Tanda tangan adalah bukti yang otentik
2.
Tanda
tangan tidak dapat dilupakan
3.
Tanda
tangan tidak dapat dipindahka untuk digunakan ulang.
4.
Dokumen
yang telah di tanda tangan tidak dapat diubah
5.
Tanda
tangan tidak dapat disangakal (repudiation).
Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi
pada data digital seperti pesan yang dikirim melalui saluran komunikasi dan
dokumen elektronis yang disimpan dalam memori komputer. Tanda tangan digital
ini dinamakan tanda-tangan digital (digital signature). Yang dimaksud dengan
tanda-tangan digital bukanlah tanda tangan yang di-digitalisasi dengan alat scanner, tetapi suatu nilai
kriptografis yang bergantung pada pesan dan pengirim pesan (hal ini kontras
dengan tanda tangan yang di dokumen kertas yang bergantung pada pengirim dan
selalu sama untuk semua dokumen). Dengan tanda-tangan digital ,maka integritas
data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan
(keabsahan pengirim), dan nirpenyangkalan.
Menandatangani
pesan dapat dilakukan dengan salah satu dari dua cara :
1. Enkripsi pesan
Mengenkripsikan pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi
sudah menyatakan bahwa pesan tersebut telah ditandatangani.
2.
Tandatangan digital dengan fungsi hash (hash
function)
Tandatangan digital dibangkitkan
dari hash terhadap pesan. Nilai hash adalah
kode ringkas dari pesan. Tandatangan digital berlaku
seperti tanda–tangan pada dokumen kertas.Tandatangan digital ditambahkan (append) pada
pesan.
Tanda Tangan Digital / Digital Signature Algorithm
(DSA)
Tandatangan digital
berbentuk sepasang besar angka yang ditampilkan komputer sebagai string dari digit biner. Tandatangan 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. DSA dapat dilihat sebagai variasi dari skema tanda tangan ElGamal. Keamanan DSA berdasarkan pada kemampuan logaritma diskrit dalam urutan bilangan prima Z*p. Domain
parameter DSA dibangkitkan
untuk setiap entitas dalam domain keamanan
tertentu :
1.
Pilih
bilangan prima sepanjang 160 bit dan 1024 bit dengan
kondisi : q | p – 1
2.
Pilih
pembangkit g yang memiliki
kelompok putaran yang unik di mana q berada
dalam Z*p. Pilih sebuah elemen h ε Z*p dan hitung g = h (p-1)/q mod p. Ulangi
hingga g ≠1
3.
Parameter
domain adalah p, q dan g.
Setiap entitas A dalam domain, dengan domain parameter (p,q,g)
melakukan :
1. Pilih bilangan acak x dengan ketentuan 1 ≤ x ≤ q−1
2. Hitung y = gx mod p
3. Kunci publik A adalah y, sedangkan
kunci privat A adalah x
Untuk menandatangani pesan m, A melakukan :
1. Pilih bilangan acak k denganketentuan 1 ≤ k ≤ q−1
2. Hitung X = gk mod p dan r = X mod q. Jika r = 0, lakukan
langkah 1
3. Hitung k-1 mod q
4. Hitung e = SHA-1(m)
5. Hitung s = k-1 { e+xr } mod q. Jika s = 0, lakukan
langkah 1
6. Tanda tangan A untuk pesan m adalah (r,s)
Untuk memverifikasi tanda tangan A (r,s) pada m, B mendapat
salinan sah dari domain
parameter A (p,q,g) dan
kunci publik y dan melakukan :
1. Verifikasi bahwa r dan s berada
dalam interval [1,q-1]
2. Hitung e = SHA-1(m)
3. Hitung w = s-1 mod q
4. Hitung u1 = ew mod q dan u2 = rw mod q
5. Hitung X = gu1yu2 mod p dan v = X mod q
6. Tanda tangan benar jika dan hanya jika v = r
ALGORITMA TANDA TANGAN
DIGITAL
Sepasang kunci :
P:
bilangan prima antara panjang 412 dan 1024 bit
q:
factor bilangan prima p – 1, panjang 160 bit
g≡
h-(p-1)/q (mod p) > 1, dan h_ < p - 1
(p,
q dan g): parameter umum
x
<q :kunci rahasia, mempunyai panjang 160 bit
Proses pengiriman :
k
< q: bilangan acak
r≡
(gk mod p) (mod q)
s
≡ k-1 (h + xr) (mod q), h = H(m) adalah fungsi Hash satu arah untuk pesan
m.
(r,
s): tanda tangan digital
Pembuktian tanda tangan digital :
w
≡ s-1 (mod q)
ul
≡ h x w (mod q)
u2
≡ r x w (mod q)
v
≡ (gu1yu2 (mod p)) (mod q)
If
v = r, tanda tangan digital telah dibuktikan keasliannya.
algoritmanya
Contoh :
Diasumsikan dipilih p = 23 dan q = 11, q
adalah factor bilangan prima dari p -1. Dipilih h’ =16 < p -1, g ≡ 162(mod 23) ≡ 3 > 1.
Dipilih kunci rahasia x = 7 < q dan kunc
iumum y ≡ gx(mod p) ≡ 37(mod 23)≡ 2
1.
Pengirim menanda-tangani
pesan :
Dipilih K = 5, k < q
= 11 dan untuk tanda tangannya (r,s) seperti di bawah ini:
r≡ (gk mod
p) (mod q)
≡ (35 mod 23) (mod 11) ≡ 13 (mod
11) ≡ 2
Diasumsikan h = H(m) =
10 dan dihitung :
s ≡ k-1 (h +
xr) (mod q)
≡ 5-1 (10 + 7 x 2) (mod 11) ≡ (9 x
24) (mod 11) ≡ 216 (mod 11) ≡ 7
Di mana perkalian
inverse k-1adalah:
k .k-1 ≡ 1
(mod q)
5k-1 ≡ (mod
11) darik-1 = 9
2. Penerima membuktikan tanda tangan digital
dengan perhitungan :
w ≡s-1 (mod q)
≡7-1(mod 11) ≡ 8
u1≡ (h x w) (mod q)
≡ (10 x 8) (mod 11) ≡ 3
u2 ≡ (r x w) (mod q)
≡ (2 x 8) (mod 11) ≡ 5
v
≡ ((gu1 x yu2) mod p) (mod q)
≡ ((33 x 25) mod 23) (mod 11)
≡ (864 (mod 23)) (mod 11) ≡ 13 (mod 11) ≡ 2
Karena v = r =
2, tanda tangan digital terbukti keabsahannya.
You have nicely explained the digital signature algorithm. I am highly benefited with this article. I will pass the link to this post to all my friends so that they can also take help from it.
BalasHapusdigital signature FAQ