1 / 19

Kriptografi Kunci Publik ( Asimetry Key) Algoritma Digital Signature Algorithm Materi 8

Kriptografi Kunci Publik ( Asimetry Key) Algoritma Digital Signature Algorithm Materi 8. Pemrograman Jaringan. Dosen : Eko Prasetyo Teknik Informatika UMG 2012. Kasus pesan / kiriman antara 2 pihak.

may
Download Presentation

Kriptografi Kunci Publik ( Asimetry Key) Algoritma Digital Signature Algorithm Materi 8

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. KriptografiKunciPublik (Asimetry Key)Algoritma Digital Signature Algorithm Materi 8 PemrogramanJaringan Dosen: EkoPrasetyo TeknikInformatika UMG 2012

  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 forgetable(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 publikdankunci 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 privat dinyatakan sebagai PR = {p, q, g, x}  Untukmenandatangani kunci publik dinyatakan sebagai PU = {p, q, g, y}  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: • KunciPrivat : PR = {p, q, g, x} = {23, 11, 8, 6} • KunciPublik : PU = {p, q, g, y} = {23, 11, 8, 13}

  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 adalah ASLI

  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 adalah TIDAK 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 • KunciPrivat : PR = {p, q, g, x} = {23, 11, 9, 10} • KunciPublik : PU = {p, q, g, y} = {23, 11, 9, 18} • 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 adalah ASLI

  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

  19. Any Question ?

More Related