DIGITAL SIGNATURE ALGORITHM (DSA)

3,519 views

Published on

Implementasi Digital Signature Algorithm..
- Adanya 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.

Contoh Implementasi di lingkungan Pemerintahan

Published in: Business
  • Be the first to comment

DIGITAL SIGNATURE ALGORITHM (DSA)

  1. 1. DIGITAL SIGNATURE ALGORITHM (DSA) Kelompok 1 : Catur Setiawan (12/340627/PTK/08397) Hari Susanto (12/340634/PTK/08403) Winayu Budi W (12/340651/PTK/08420)
  2. 2. AGENDA  Pendahuluan  Kriptografi  Public-Key Cryptosystems  Manfaat Digital Signature  Proses Digital Signature  Digital Signature Algoritm (DSA)  Contoh Perhitungan DSA  Implementasi DSA
  3. 3. Contoh Implementasi dilingkungan Pemerintahan
  4. 4. Pendahuluan Karateristik Tanda Tangan Sebagai otentikasi dokumen Sebagai validasi Tanda tangan tidak dapat disangkal ( repudiation).
  5. 5. Kenapa Tanda Tangan Digital Compliance & good business practices for automated processes. Accelerating, approvals, processes & time savings Cost Savings
  6. 6. Masalah dalam Digital Signature menyebabkan data elektronik dikirimkan melalui open network Sifat dari keharusan Tanda Tangan Digital: •Authenticity •Integrity •Non-Repudiation •Confidentiality Tanda tangan digital menjadi terancam  membutuhkan criptografi
  7. 7. Proses Pembuatan Digital Signature
  8. 8. Dua Kondisi yang harus Dipenuhi • Digital signature yang dibangkitkan dari dokumen dan private key harus bisa memverifikasi dokumen yang disertai public key. • Tidak boleh ada kemungkinan untuk membangkitkan digital signature yang valid dari sebuah dokumen tanpa ada private key yang seharusnya
  9. 9. Dari segi keamanan, DS harusnya bersifat : • Tahan terhadap preimage attack jika ada suatu hash h, maka sulit dicari m dimana h = hash(m). Preimage adalah suatu himpunan yang berisi tepat semua elemen domain dari suatu fungsi • Tahan terhadap second preimage attack jika ada input m1, maka sulit dicari m2 dimana m1 ≠ m2 sehingga hash(m1) = hash(m2). • Tahan terhadap collision penggabungan dua hal di atas sehingga sulit mencari m1 dan m2 dimana hash(m1) = hash(m2).
  10. 10. Digital Signature Algorithm (DSA) Dikeluarkan oleh NIST bulan Agustus 1991. DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS). DSS terdiri dari : DSA dan SHA DSA termasuk ke dalam sistem kriptografi kunci-publik, tidak dapat digunakan untuk enkripsi
  11. 11. Proses Digital Signature Algorithm : • Algoritma untuk membangkitkan private key dan publik key-nya. • Algoritma untuk memberi digital signature pada dokumen jika disediakan dokumen dan private key. • Algoritma untuk verifikasi tanda tangan digital jika disediakan dokumen, public key, dan digital signature.
  12. 12. Pembangkitan private key dan publik Menentukan Parameter DSA • Pilih Bilangan Prima p dengan panjang L bit, dimana 2 L-1 < p < 2L dengan 512 ≤ L ≤1024 dan L adalah kelipatan 64. • Pilih Bilangan Prima q, bilangan prima 160 bit, faktor dari p-1 dimana 2 159 < q < 2160. Parameter p bersifat publik. • Hitung g = h (p-1)/q mod p, dimana 1< h < p-1 sehingga g > 1. Parameter g bersifat publik. • Pilih bilangan acak x (bilangan bulat yang dibangkitkan random atau pseudorandom) dimana 0 < x < q dengan panjang 160 bit. Parameter x bersifat privat. • Hitung y = gx mod p adalah kunci publik • Maka kunci publik yang telah dibangkitkan adalah (p, q, g, y) dan kunci privat adalah x.
  13. 13. Pembangkitan private key dan publik Pembangkitan Sepasang Kunci • Pilih bilangan prima p dan q, dimana (p-1) mod q = 0 • Hitung g = h(p-1)/q mod p, dimana 1 < h < p-1 dan g > 1 Parameter p bersifat publik. • Tentukan kunci privat x < q • Hitung kunci publik y = gx mod p Jadi didapatkan kunci publik (p,q,g,y) dan kunci privat (p,q,g,x)
  14. 14. Pemberian Digital Signature (Signing) • Ubah pesan m menjadi massage digest dengan fungsi Hash SHA menghasilkan SHA(M) • Tentukan bilangan acak k < q • Tanda tangan dari pesan m adalah bilangan r dan s yang didapat dari : r = (gk mod p)mod q s = (k-1 (SHA(M) + xr)) mod q, k-1 adalah invers dari k modulo q. • Pada perhitungan nilai s, 160-bit string SHA(M) dikonversi terlebih dahulu ke dalam integer. Jika tandatangan yang dihasilkan benar maka nilai r dan atau s tidak mungkin 0. • Maka tanda tangan digital pada pesan m adalah (s, r).
  15. 15. Verifikasi Digital Signature (Verify) • Ambil kunci publik (p, q, g, y). • Jika 1 ≤ r ≤ q dan 1 ≤ s ≤ q terima tanda tangan. Jika tidak, tolak tanda tangan • Hitung w = s-1 mod q dan SHA(M) • Hitung u1 = (SHA(M)*w) mod q • Hitung u2 = (r*w) mod q • v = ((gu1 * yu2 ) mod p) mod q)
  16. 16. Contoh perhitungan DSA Pembangkitan sepasang kunci • Pilih bilangan prima p dan q dengan (p-1) mod q = 0, yaitu p = 59419 dan q = 3301 (memenuhi 3301.18 = 59419- 1) • Hitung g = h(p-1)/q mod p, dimana 1 < h < p-1 dan g > 1, yaitu (ambil h = 100), g = 100(59419-1)/3301 mod 59419 = 18870 • Tentukan kunci rahasia x bilangan bulat < q, ambil x = 3223 • Hitung kunci publik y = gx mod p = 18870 3223 mod 59419 = 29245
  17. 17. Contoh perhitungan DSA Pembangkitan tanda tangan (Sign) • Hitung nilai hash dari pesan m, Misal H(m) = 4321 • Tentukan bilangan acak k < q, misal diambil k = 997, k.k-1 = 1 mod q, didapat k-1 = 2907 • Hitung r dan s, r = (gk mod p)mod q = (18870997 mod 59419)mod 3301 = 848 s = (k-1 (H(m) + x r)) mod q = (2907( 4321+3223. 848)) mod 3301= 183 • Kirim pesan m dan tandatangan r dan s
  18. 18. Contoh perhitungan DSA Verifikasi Keabsahan Tanda Tangan • Hitung w = s-1 mod q s. s-1 = 1 mod q, didapat s-1 = 469 w = 469 mod 3301 = 469 u 1 = (H(m)*w) mod q = (4321. 469) mod 3301 = 3036 u 2 = (r*w) mod q = (848. 469) mod 3301 = 1592 v = ((gu1 * yu2 ) mod p) mod q) = ((18870 3036 . 292451592 ) mod 59419) mod 3301 = 848 • Karena v = r dimana 848=848, maka tanda tangan sah
  19. 19. Implementasi Digital Signature Algorithm o Adanya 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 o 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.
  20. 20. TERIMAKASIH

×