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-1
sedemikian 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-1
danh^((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-1
danh^((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