Digital Signature Algorithm

18
Digital Signature Algorithm Manajemen Jaringan Komputer Topik: Pengamanan Jaringan dan Informasi Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2011 1

description

Digital Signature Algorithm. Manajemen Jaringan Komputer Topik : Pengamanan Jaringan dan Informasi. Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2011. Kasus pesan / kiriman antara 2 pihak. - PowerPoint PPT Presentation

Transcript of Digital Signature Algorithm

Page 1: Digital Signature Algorithm

1

Digital Signature AlgorithmManajemen Jaringan KomputerTopik: Pengamanan Jaringan dan Informasi

Eko PrasetyoTeknik Informatika

Universitas Muhammadiyah Gresik2011

Page 2: Digital Signature Algorithm

2

Kasus pesan/kiriman antara 2 pihakMaria bisa saja membuat pesan yang

berbeda (dari pesan lain yang sebenarnya diterima) dan mengklaim bahwa pesan tersebut diterima dari John.◦ Untuk masalah ini bisa diatasi dengan

penggunaan kode otentikasi yang di-share antara Maria dan John

John bisa juga menolak adanya klaim pengiriman sebuah pesan◦ Karena mungkin bagi Maria, tidak ada cara

untuk membuktikan bahwa pesan tersebut benar-benar datang dari John.

◦ Masalah ini bisa diatasi dengan kode otentikasi.

Page 3: Digital Signature Algorithm

3

Tanda Tangan Digital Tanda tangan (signature) adalah sebuah teknik yang

tidak bisa dibantah, yang didasarkan pada kriptografi kunci publik

Pembuat pesan dapat melampirkan kode, tanda tangan, yang menjamin sumber dan integritas pesan.

Mirip dengan tanda tangan tulisan tangan, tanda tangan digital harus memenuhi syarat:◦ Tidak boleh forgeable (lupa)◦ Penerima harus dapat memverifikasi dokumen dan tanda

tangan◦ Penandatangan tidak harus dapat menyangkal tanda

tangannya Selain itu, tanda tangan digital tidak boleh konstan

(selalu berbeda) dan harus berfungsi pada seluruh dokumen yang ditandatangani

Page 4: Digital Signature Algorithm

4

Standart Tanda Tangan Digital Pada bulan Agustus 1991, NIST (The National Institute of

Standard and Technology) mengumumkan bakuan (standard) untuk tanda-tangan digital yang dinamakan Digital Signature Standard (DSS).◦ NIST FIPS 186 Digital Signature Standard (DSS)

DSS terdiri dari dua komponen:◦ 1. Algoritma tanda-tangan digital yang disebut Digital

Signature Algorithm (DSA).◦ 2. Fungsi hash standard yang disebut Secure Hash Algorithm

(SHA). Algoritma:

◦ DSA◦ El Gamal◦ RSA Digital Signature

- ISO 9796- ANSI X9.31- CCITT X.509

Page 5: Digital Signature Algorithm

5

DSA Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA

menggunakan dua buah kunci, yaitu kunci publik dan kunci privat. ◦ Pembentukan tanda-tangan menggunakan kunci rahasia privat, ◦ sedangkan verifikasi tanda-tangan menggunakan kunci publik pengirim.

DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit.

Page 6: Digital Signature Algorithm

6

Parameter DSA – Komponen Kunci

1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 ≤ L ≤ 1024 dan L harus kelipatan 64.

Parameter p bersifat publik dan dapat digunakan bersama-sama oleh orang didalam kelompok.

2. q, bilangan prima 160 bit, merupakan faktor dari p – 1.Dengan kata lain, (p – 1) mod q = 0. Parameter q bersifat publik.

3. g = h(p – 1)/q mod p, yang dalam hal ini h adalah sembarang nilai integer 1 < h < p – 1 sedemikian sehingga h(p – 1)/q mod p > 1.

Parameter g bersifat publik.

4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci privat.

5. y = gx mod p, adalah kunci publik.6. m, pesan yang akan diberi tanda-tangan.Jadi, prosedur di atas menghasilkan:kunci publik dinyatakan sebagai PU = {p, q, g, y} Untuk

menandatanganikunci privat dinyatakan sebagai PR = {p, q, g, x} Untuk

menverifikasi

Page 7: Digital Signature Algorithm

7

Parameter DSA – Pembangkitan Tanda Tangan1. Ubah pesan m menjadi message digest dengan

fungsi hash SHA, H. Dengan notasi H(m).2. Tentukan bilangan acak k < q Nomor rahasia

untuk sebuah pesan (untuk parameter penandatanganan)

Tentukan k-1 sebagai invers multiplikatif kBahwa k * k-1 ≡ 1 mod q

3. Tanda-tangan dari pesan m adalah bilangan r dan s.

Hitung r dan s sebagai berikut:r = (gk mod p) mod qs = (k– 1 (H(m) + x * r)) mod q

4. Kirim pesan m beserta tanda-tangan r dan s.

Page 8: Digital Signature Algorithm

8

Proses Verifikasi Dokumen

1. HitungTetapkan s-1 sebagai invers multiplikatif

dimana s * s-1 ≡ 1 mod q

w = s–1 mod qu1 = (H(m) * w) mod qu2 = (r * w) mod qv = ((gu1 * yu2) mod p) mod q

2. Jika v = r, maka tanda-tangan sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar.

Page 9: Digital Signature Algorithm

9

Contoh (1) – Pembentukan Pasangan Kunci Dibangkitkan p=23 dan q=11, p dan q harus prima dan q <

p◦ Harus memenuhi syarat (p-1) mod q = 0

Nilai h, nilai integer sembarang,secara acak didapatkan h=10◦ Harus memenuhi syarat 1 < h < p-1

Maka untuk g didapatkan◦ g = h(p – 1)/q mod p◦ g = 10(23-1)/11 mod 23 = 102 mod 23 = 8

Tentukan kunci privat x◦ Harus bulat x < q, tidak harus prima Rahasia◦ Misal x = 6

Hitung kunci publik y◦ y = gx mod p = 86 mod 23 = 13

Didapatkan pasangan kunci:◦ Kunci Publik : PU = {p, q, g, y} = {23, 11, 8, 13}◦ Kunci Privat : PR = {p, q, g, x} = {23, 11, 8, 6}

Page 10: Digital Signature Algorithm

10

Contoh (2) – Pembangkitan Tanda Tangan Untuk sebuah pesan m, misalnya hasil fungsi hash H(m)

= 16 Tentukan secara acak k

◦ Harus memenuhi syarat k < q◦ Misal, k = 5

Hitung k-1 dari invers multiplikatif k◦ k * k-1 ≡ 1 mod q◦ 5 * k-1 ≡ 1 mod 11◦ Didapat k-1 = 9

Hitung r◦ r = (gk mod p) mod q◦ r = (85 mod 23) mod 11 = 16 mod 11 = 5

Hitung s◦ s = (k– 1 (H(m) + x * r)) mod q◦ s = (9 * (16 + 6 * 5)) mod 11 = 414 mod 11 = 7

Kirimkan pesan m, r=5, dan s=7 bersama-sama.

Page 11: Digital Signature Algorithm

11

Contoh (3) – Verifikasi Dokumen

Jika H(m) dari pesan m yang diterima adalah 16 (sama) Buktikan bahwa pesan m tadi adalah valid

Jika H(m) dari pesan m yang diterima adalah 10 (tidak sama) Buktikan bahwa pesan m tadi adalah tidak valid

Page 12: Digital Signature Algorithm

12

Verifikasi untuk H(m) = 16 Hitung s-1

◦ s * s-1 ≡ 1 mod q◦ 7 * s-1 ≡ 1 mod 11, didapat s-1 = 8

Hitung w◦ w = s–1 mod q◦ w = 8 mod 11 = 8

Hitung u1◦ u1 = (H(m) * w) mod q◦ u1 = (16 * 8) mod 11 = 128 mod 11 = 7

Hitung u2◦ u2 = (r * w) mod q◦ u2 = (5 * 8) mod 11 = 40 mod 11 = 7

Hitung v◦ v = ((gu1 * yu2) mod p) mod q◦ v = ((87 * 137) mod 23) mod 11 = 16 mod 11 = 5

Karena v=5, dan r=5 SAMA, maka pesan m adalah ASLI

Page 13: Digital Signature Algorithm

13

Verifikasi untuk H(m) = 10 Hitung s-1

◦ s * s-1 ≡ 1 mod q◦ 7 * s-1 ≡ 1 mod 11, didapat s-1 = 8

Hitung w◦ w = s–1 mod q◦ w = 8 mod 11 = 8

Hitung u1◦ u1 = (H(m) * w) mod q◦ u1 = (10 * 8) mod 11 = 80 mod 11 = 3

Hitung u2◦ u2 = (r * w) mod q◦ u2 = (5 * 8) mod 11 = 40 mod 11 = 7

Hitung v◦ v = ((gu1 * yu2) mod p) mod q◦ v = ((83 * 137) mod 23) mod 11 = 8 mod 11 = 8

Karena v=8, dan r=5 TIDAK SAMA, maka pesan m adalah TIDAK ASLI

Page 14: Digital Signature Algorithm

14

Latihan Jika diketahui:

◦ p = 23◦ q = 11◦ h = 20◦ x = 10◦ Hitung pasangan kunci publik dan privat

Untuk pasangan kunci diatas, jika diberikan:◦ k = 4◦ H(m) = 40◦ Hitung parameter r dan s untuk tanda tangan digitalnya.

Lakukan verifikasi untuk nilai H(m) dari pesan m berikut:◦ H(m) = 40 Buktikan bahwa H(m) tersebut ASLI◦ H(m) = 43 Buktikan bahwa H(m) tersebut TIDAK ASLI

Page 15: Digital Signature Algorithm

15

Implementasi DSAAdanya batasan bahwa nilai p mempunyai

panjang 512 sampai 1024 bit dan q 160-bit, ◦ menyebabkan DSA hampir tidak mungkin

diimplementasikan dalam perangkat lunak.Panjang bit yang besar ini dimaksudkan agar

upaya untuk memecahkan parameter yang lain sangat sulit dilakukan.

Compiler C hanya sanggup menyatakan bilangan bulat hingga 232. ◦ Oleh karena itu, bila DSA diimplementasikan

dalam perangkat lunak, batasan panjang bit p dan q diubah hingga maksimum nilai p dan q adalah 232.

Page 16: Digital Signature Algorithm

16

Jawab Latihan Diketahui

◦ p = 23, q = 11, h = 20, x = 10 Pasangan kunci:

◦ g = h(p – 1)/q mod p◦ g = 20(23-1)/11 mod 23 = 400 mod 23 = 9◦ y = gx mod p = 910 mod 23 = 18◦ Didapatkan pasangan kunci:◦ Kunci Publik : PU = {p, q, g, y} = {23, 11, 9, 18}◦ Kunci Privat : PR = {p, q, g, x} = {23, 11, 9, 10}

Pembangkitan tanda tangan:◦ k = 4, H(m) = 40◦ k * k-1 ≡ 1 mod q◦ 4 * k-1 ≡ 1 mod 11 k-1 = 14◦ r = (gk mod p) mod q = (94 mod 23) mod 11 = 6◦ s = (k– 1 (H(m) + x * r)) mod q = (14*(40+10*6)) mod 11◦ s = 14 * 100 mod 11 = 3◦ Kirim pesan m, r = 6, dan s = 3 bersama-sama

Page 17: Digital Signature Algorithm

17

Jawab Latihan – Verifikasi untuk H(m) = 40 Kunci Publik : PU = {p, q, g, y} = {23, 11, 9, 18} Kunci Privat : PR = {p, q, g, x} = {23, 11, 9, 10} r = 6, dan s = 3 Hitung s-1

◦ s * s-1 ≡ 1 mod q◦ 3 * s-1 ≡ 1 mod 11, didapat s-1 = 4

Hitung w◦ w = s–1 mod q◦ w = 4 mod 11 = 4

Hitung u1◦ u1 = (H(m) * w) mod q◦ u1 = (40 * 4) mod 11 = 160 mod 11 = 6

Hitung u2◦ u2 = (r * w) mod q◦ u2 = (6 * 4) mod 11 = 24 mod 11 = 2

Hitung v◦ v = ((gu1 * yu2) mod p) mod q◦ v = ((86 * 182) mod 23) mod 11 = 6 mod 11 = 6

Karena v=6, dan r=6 SAMA, maka pesan m adalah ASLI

Page 18: Digital Signature Algorithm

18

Jawab Latihan – Verifikasi untuk H(m) = 43 Kunci Publik : PU = {p, q, g, y} = {23, 11, 9, 18} Kunci Privat : PR = {p, q, g, x} = {23, 11, 9, 10} r = 6, dan s = 3 Hitung s-1

◦ s * s-1 ≡ 1 mod q◦ 3 * s-1 ≡ 1 mod 11, didapat s-1 = 4

Hitung w◦ w = s–1 mod q◦ w = 4 mod 11 = 4

Hitung u1◦ u1 = (H(m) * w) mod q◦ u1 = (43 * 4) mod 11 = 172 mod 11 = 7

Hitung u2◦ u2 = (r * w) mod q◦ u2 = (6 * 4) mod 11 = 24 mod 11 = 2

Hitung v◦ v = ((gu1 * yu2) mod p) mod q◦ v = ((87 * 182) mod 23) mod 11 = 1 mod 11 = 1

Karena v=1, dan r=6 SAMA, maka pesan m adalah TIDAK ASLI