Analisis digital signature algorithm DSA

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