1 / 18

Digital Signature Algorithm

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.

emiko
Download Presentation

Digital Signature Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Digital Signature Algorithm ManajemenJaringanKomputer Topik: PengamananJaringandanInformasi Eko Prasetyo TeknikInformatika UniversitasMuhammadiyah Gresik 2011

  2. Kasuspesan/kirimanantara 2 pihak • Maria bisasajamembuatpesan yang berbeda (daripesan lain yang sebenarnyaditerima) danmengklaimbahwapesantersebutditerimadari John. • Untukmasalahinibisadiatasidenganpenggunaankodeotentikasi yang di-share antara Maria dan John • John bisajugamenolakadanyaklaimpengirimansebuahpesan • Karenamungkinbagi Maria, tidakadacarauntukmembuktikanbahwapesantersebutbenar-benardatangdari John. • Masalahinibisadiatasidengankodeotentikasi.

  3. TandaTangan Digital • Tanda tangan (signature) adalah sebuah teknik yang tidakbisadibantah, 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 dokumendantandatangan • Penandatangan tidak harus dapatmenyangkal tandatangannya • Selain itu, tanda tangan digital tidak bolehkonstan (selaluberbeda) dan harus berfungsi padaseluruh dokumen yang ditandatangani

  4. StandartTandaTangan Digital • PadabulanAgustus 1991, NIST (The National Institute of Standard and Technology) mengumumkanbakuan(standard) untuk tanda-tangan digital yang dinamakan DigitalSignature Standard (DSS). • NIST FIPS 186 Digital Signature Standard (DSS) • DSS terdiri dari dua komponen: • 1. Algoritma tanda-tangan digital yang disebut DigitalSignature Algorithm (DSA). • 2. Fungsihash standard yang disebut Secure Hash Algorithm (SHA). • Algoritma: • DSA • El Gamal • RSA Digital Signature- ISO 9796- ANSI X9.31- CCITT X.509

  5. DSA • Sebagaimana halnya pada algoritma kriptografi kunci-publik,DSA menggunakan dua buah kunci, yaitu kunci publik dankunci privat. • Pembentukan tanda-tangan menggunakan kuncirahasia privat, • sedangkan verifikasi tanda-tanganmenggunakan kunci publik pengirim. • DSA menggunakan fungsi hash SHA (Secure HashAlgorithm) untuk mengubah pesan menjadi message digestyang berukuran 160 bit.

  6. Parameter DSA – KomponenKunci • p, adalah bilangan prima dengan panjang L bit, yangdalam hal ini 512 ≤ L ≤ 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama-samaoleh orang didalam kelompok. • q, bilangan prima 160 bit, merupakan faktor dari p – 1. Dengan kata lain, (p – 1) mod q = 0. Parameter q bersifatpublik. • g = h(p – 1)/q mod p, yang dalam hal ini h adalah sembarang nilai integer 1 < h < p – 1sedemikian sehingga h(p – 1)/q mod p > 1. Parameter gbersifat publik. • x, adalah bilangan bulat kurang dari q. Parameter x adalahkunci privat. • y = gx mod p, adalah kunci publik. • m, pesan yang akan diberi tanda-tangan. Jadi, prosedur di atas menghasilkan: kunci publik dinyatakan sebagai PU = {p, q, g, y}  Untukmenandatangani kunci privat dinyatakan sebagai PR = {p, q, g, x}  Untukmenverifikasi

  7. Parameter DSA – PembangkitanTandaTangan • Ubah pesan m menjadi message digest dengan fungsi hashSHA, H.Dengannotasi H(m). • Tentukan bilangan acak k < q Nomor rahasia untuk sebuah pesan (untuk parameter penandatanganan) Tentukan k-1 sebagai invers multiplikatif k Bahwa k * k-1≡ 1 mod q • Tanda-tangan dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut: r = (gk mod p) mod q s = (k– 1 (H(m) + x * r)) mod q • Kirim pesan m beserta tanda-tangan r dan s.

  8. ProsesVerifikasiDokumen • Hitung Tetapkan s-1sebagaiinversmultiplikatifdimana s * s-1≡ 1 mod q w = s–1mod q u1= (H(m) * w) mod q u2= (r * w) mod q v = ((gu1 * yu2) mod p) mod q • Jika v = r, maka tanda-tangan sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar.

  9. Contoh (1) – PembentukanPasanganKunci • Dibangkitkan p=23 dan q=11, p dan q harus prima dan q < p • Harusmemenuhisyarat (p-1) mod q = 0 • Nilai h, nilai integer sembarang,secaraacakdidapatkan h=10 • Harusmemenuhisyarat 1 < h < p-1 • Makauntuk g didapatkan • g = h(p – 1)/q mod p • g = 10(23-1)/11 mod 23 = 102 mod 23 = 8 • Tentukankunciprivat x • Harusbulat x < q, tidakharus prima  Rahasia • Misal x = 6 • Hitungkuncipublik y • y = gx mod p = 86 mod 23 = 13 • Didapatkanpasangankunci: • KunciPublik : PU = {p, q, g, y} = {23, 11, 8, 13} • KunciPrivat : PR = {p, q, g, x} = {23, 11, 8, 6}

  10. Contoh (2) – PembangkitanTandaTangan • Untuksebuahpesan m, misalnyahasilfungsi hash H(m) = 16 • Tentukansecaraacak k • Harusmemenuhisyarat k < q • Misal, k = 5 • Hitung k-1dariinversmultiplikatif 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 • Kirimkanpesan m, r=5, dan s=7 bersama-sama.

  11. Contoh (3) – VerifikasiDokumen • Jika H(m) daripesan m yang diterimaadalah16 (sama) Buktikanbahwapesan m tadiadalahvalid • Jika H(m) daripesan m yang diterimaadalah10 (tidaksama) Buktikanbahwapesan m tadiadalahtidak valid

  12. Verifikasiuntuk 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, makapesan m adalahASLI

  13. Verifikasiuntuk 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, makapesan m adalahTIDAK ASLI

  14. Latihan • Jikadiketahui: • p = 23 • q = 11 • h = 20 • x = 10 • Hitungpasangankuncipublikdanprivat • Untukpasangankuncidiatas, jikadiberikan: • k = 4 • H(m) = 40 • Hitung parameter r dan s untuktandatangandigitalnya. • Lakukanverifikasiuntuknilai H(m) daripesan m berikut: • H(m) = 40  Buktikanbahwa H(m) tersebutASLI • H(m) = 43  Buktikanbahwa H(m) tersebutTIDAK ASLI

  15. Implementasi DSA • Adanya batasan bahwa nilai p mempunyai panjang 512sampai 1024 bit dan q 160-bit, • menyebabkan DSA hampirtidak mungkin diimplementasikan dalam perangkat lunak. • Panjang bit yang besar ini dimaksudkan agar upaya untukmemecahkan parameter yang lain sangat sulit dilakukan. • Compiler C hanya sanggup menyatakan bilangan bulat hingga 232. • Oleh karena itu, bila DSA diimplementasikandalam perangkat lunak, batasan panjang bit p dan q diubah hingga maksimum nilai p dan q adalah 232.

  16. JawabLatihan • Diketahui • p = 23, q = 11, h = 20, x = 10 • Pasangankunci: • 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 • Didapatkanpasangankunci: • KunciPublik : PU = {p, q, g, y} = {23, 11, 9, 18} • KunciPrivat : PR = {p, q, g, x} = {23, 11, 9, 10} • Pembangkitantandatangan: • 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

  17. JawabLatihan – Verifikasiuntuk H(m) = 40 • KunciPublik : PU = {p, q, g, y} = {23, 11, 9, 18} • KunciPrivat : 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, makapesan m adalahASLI

  18. JawabLatihan – Verifikasiuntuk H(m) = 43 • KunciPublik : PU = {p, q, g, y} = {23, 11, 9, 18} • KunciPrivat : 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, makapesan m adalahTIDAK ASLI

More Related