190 likes | 448 Views
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.
E N D
KriptografiKunciPublik (Asimetry Key)Algoritma Digital Signature Algorithm Materi 8 PemrogramanJaringan Dosen: EkoPrasetyo TeknikInformatika UMG 2012
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.
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
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
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.
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
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.
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.
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}
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.
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
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
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
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
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.
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
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
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