h1 := h1 + b h2 := h2 + c
h3 := h3 + d h4 := h4 + e
h5 := h5 + f h6 := h6 + g
h7 := h7 + h 17
Nilai hash final big-endian: 18
digest = hash = h0 append h1 append h2 append h3 append h4 append h5 append
h6 append h7
C
1
1
Tn = 201C
1
+ C
2
+ C
3
n Tn
= n Tn
= Θn.
3.3.4 Analisis digital signature algorithm DSA
Algoritma DSA digunakan pada proses pemberian nilai tanda tangan digital dan proses verifikasi. Tanda tangan digital DSA berbentuk sepasang besar angka yang ditampilkan
komputer sebagai string dan digit biner. Tanda tangan digital dihitung dengan menggunakan sejumlah aturan dan sejumlah parameter sehingga identitas pemilik dan
integritas data dapat diverifikasi. Pembentukan tanda tangan menggunakan kunci privat untuk membuat tanda tangan digital, sedangkan kunci publik yang berkorespondensi
dengan kunci privat namun tidak sama digunakan untuk memverifikasi tanda tangan. Setiap user memiliki sepasang kunci privat dan publik. Kunci publik dapat disebar
secara umum, sedangkan kunci privat hanya milik user pribadi. DSA menggunakan fungsi hash SHA-1 Secure Hash Algorithm untuk mengubah pesan menjadi message
digest yang berukuran 160 bit. Tetapi dalam hal ini penulis hanya menggunakan fungsi hash sederhana.
3.3.4.1 Analisis proses pembentukan sepasang kunci DSA
Sepasang kunci diperlukan untuk membangkitkan nilai tanda tangan digital pada dokumen dan memverifikasi keabsahan dokumen. Kunci-kunci tersebut adalah kunci
privat dan kunci publik. Tanpa kunci-kunci tersebut pembentukan dan verifikasi tanda
Universitas Sumatera Utara
tangan digital tidak dapat dilakukan. Berikut flowchart proses pembentukan sepasang kunci pada algoritma DSA:
mulai bangkitkan p dan q
p dan q = prima? dan p-1 mod q =0
p dan q prima
bilangan acak h ya
tidak
1hp-1 dan hp-1q
mod p 1 tidak
h diterima g = hp-1q mod p
ya
bilangan acak x x q ?
x diterima y = gx mod p
ya
kunci privat = p, q, g, x kunci publik = p, q, g, y
selesai tidak
Gambar 3.11. Flowchart pembentukan sepasang kunci DSA Berikut perhitungan kompleksitas algoritma menggunakan notasi big Θ.
Tabel 3.13. Notasi big Θ pseudocode pembentukan sepasang kunci DSA
line Syntax
notasi 9
Repeat C
1
n 10
p ← Probablyprime pfungsi pembangkit nilai acak bilangan prima
C
2
n
Universitas Sumatera Utara
11 q ← Probablyprime q prima
C
2
n 12
Until p – 1 mod q = 0
C
2
n 13
Endrepeat 14
Repeat { C
1
n 15
h ← random } fungsi pembangkit bilangan acak C
2
n 16
Until 1 h p and h p – 1 q mod p
1 C
3
n 17
Endrepeat 18
g ← h p – 1 q mod p C
2
1 19
Repeat { C
1
n 20
x ← random } fungsi pembangkit bilangan acak C
2
n 21
Until x q C
3
n 22
Endrepeat 23
y ← g x mod p C
2
1 24
kv ← p, q, g, x C
2
1 25
kb ← p, q, g, y C
2
1
Tn = 3C
1
n + 4C
2
+ 5C
2
n + 2C
3
n Tn
= n Tn
= Θn.
3.3.4.2 Analisis proses pembentukan tanda tangan digital DSA
Tanda tangan digital digital signature merupakan protokol yang dijalankan untuk dapat memverifikasi keaslian dan keutuhan dari pesan yang akan dikirimkan dalam
suatu saluran komunikasi. Berikut flowchart dari prosedur pembentukan tanda tangan digital pada algoritma DSA:
Universitas Sumatera Utara
mulai
bilangan acak k
k q ?
k diterima
r = gk mod p mod q ya
m, r, s
selesai pesan m, kunci
privat p, q, g, x ubah pesan m dengan
fungsi hash
s = k-1Hm + xr mod q r = 0?
tidak ya
tidak
Gambar 3.12. Flowchart pembentukan tanda tangan digital DSA Berikut perhitungan kompleksitas algoritmanya menggunakan notasi big Θ.
Tabel 3.14. Notasi big Θ pseudocode pembentukan tanda tangan digital DSA
line Syntax
notasi 9
m ← m C
1
1 10
p ← p C
1
1 11
q ← q C
1
1 12
g ← g C
1
1 13
x ← x C
1
1 14
Hm ← SHA-1m C
1
n
Universitas Sumatera Utara
15 Repeat
C
2
n 16
K ← random C
1
n 17
Until k q {cek k q} C
1
n 18
Endrepeat 19
r ← g k mod p mod q C
1
1 20
s ← k -1 Hm + x r mod q C
1
1 21
m ← m C
1
1 22
p ← p C
1
1
Tn = 9C
1
+ 3C
1
n + C
2
n Tn
= n Tn
= Θn.
3.3.4.3 Analisis proses verifikasi tanda tangan digital DSA
Proses verifikasi adalah proses memastikan keaslian si pengirim. Artinya apakah yang mengirimkan itu asli dari orang yang bersangkutan. Berikut flowchart untuk verifikasi
pada algoritma DSA:
Universitas Sumatera Utara
mulai
v = r? pesan m m, r, s
kunci publik p, q, g, y w = s
-1
mod q U1 =
Hm w mod q U2 = rw mod q
v = g
u1
y
u2
mod p mod q
tidak
selesai ya
dokumen tidak valid
dokumen valid
Gambar 3.13. Flowchart verifikasi tanda tangan digital DSA Berikut perhitungan kompleksitas algoritmanya menggunakan notasi big Θ:
Tabel 3.15. Notasi big Θ pseudocode verifikasi tanda tangan digital DSA
line Syntax
notasi 9
m ← m C
1
1 10
r ← r C
1
1 11
s ← s C
1
1 12
p ← p C
1
1 13
q ← q C
1
1 14
g ← g C
1
1 15
y ← y C
1
1 16
w ← s -1 mod q C
1
1 17
u1 ← hm w mod q {hashing pesan m menggunakan fungsi SHA-1}
C
1
n 18
u2 ← r w mod q C
1
1 19
v ← g u1 y u2 mod p mod q C
1
1
Universitas Sumatera Utara
20 if v = r then
C
1
1 21
valid ← true C
1
1 22
Else 23
valid ← false C
1
1 24
Endif
Tn = 13C
1
+ C
1
n Tn
= n Tn
= Θn
3.3.5 Analisis GOST digital signature algorithm GOST DSA