Digital Signature Standard¶
DSS terdiri dari 2 komponen :¶
- Algoritma tanda tangan digital : DSA
- Fungsi hash standard : Secure Hash Algorithm(SHA-1)
DSA tidak dapat digunakan untuk enkripsi, DSA dispesifikasikan khusus untuk tanda tangan digital
DSA mempunyai 2 fungsi utama :¶
- pembangkitan tanda tangan
- pemeriksaan keabsahan tanda tangan
Parameter DSA¶
- p, bil.prima, panjangnya L bit,
512 < L < 2046, L kelipatan 64 (p publik) - q, bil.prima 160 bit, merupakan faktor dari p-1
((p-1) % q = 0)(q publik) g = h^((p-1)/q) mod p,h < p-1sedemikian sehinggah^((p-1)/q) mod p > 1(g publik)- x, kunci private, bil.bulat < q
y = g^x mod p, kunci publik- m = pesan
Pembangkitan sepasang kunci¶
- pilih bil.prima p & q (p-1 mod q = 0)
- hitung
g = h^((p-1)/q) mod p, sehingga1 < h < p-1danh^((p-1)/q) mod p > 1 - tentukan kunci private x (x < q)
- hitung kunci publik
y = g^x mod p
hasil :
parameter publik: p, q, g, y
parameter privat: x
Pembangkitan tanda tangan¶
- hitung message digest H(m)
- tentukan bil.acak k < q
- tanda tangan dari pesan m adalah r & s
r = (g^k mod p) mod q
s = (k^-1 (H(m) + x . r)) mod q - kirim m beserta r & s
*x: kunci private
Verifikasi tanda tangan¶
- hitung message digest H(m)
- verifikasi:
w = s^-1 mod q
u1 = (H(m) . w) mod q
u2 = (r . w) mod q
v = ((g^u1 . y^u2) mod p) mod q - jika v = r, maka ttd sah
Contoh¶
Pembangkitan kunci¶
- Pilih bil.prima p & q,
(p-1) mod q = 0
p = 59419
q = 3301 - hitung
g = h^((p-1)/q) mod p, sehingga1 < h < p-1danh^((p-1)/q) mod p > 1. *h = 100g = 100^((59419-1)/3301) mod 59419 = 18870 - kunci private (x) = 3223
- kunci public (y)
y = g^x mod p = 18870^3223 mod 59419 = 29245
Pembangkitan tanda tangan¶
- hitung nilai hash m, misal
H(m) = 4321 - tentukan bil.acak k < q
k = 997
k^-1 ~= 2907 (mod 3301) - hitung r & s
r = g^k mod p = 848
s = 183 - kirim pesan m dan tanda tangan, (r, s) = (848, 183)
Verifikasi tanda tangan¶
- hitung nilai hash m, misal
H(m) = 4321 - verifikasi (r, s) = (848, 183)
s^-1 ~= 469 (mod 3301)
w = s^-1 mod q = 469 (mod 3301) = 469
u1 = (H(m) . w) mod q = 3036
u2 = (r . w) mod q = 1592
v = 848 - karena v = r, maka ttd sah