Just another WordPress.com weblog

Digital Signature

Digital Signature

Tanda tangan digital bukanlah seperti bayangan orang awan yang (mungkin) berpikiran bahwa tanda tangan digital adalah tanda tangan asli seseorang yang di scan dan ditampilkan di dalam dokumen yang kita upload atau kita kirimkan kepada seseorang melalui internet atau pengiriman file dengan menggunakan media penyimpanan digital (disk storge). Tanda tangan digital muncul akibat keresahan orang ketika akan mengirimkan dokumen yang penting… muncul pikiran apakah file yang dikirimkan tersebut tidak mengalami perubahan ketika dikirimkan dan isinya sangat berbeda sekali ketika diterima oleh penerima dokumen, tapi apabila si pengirim mencantumkan tanda tangan digital pada dokumen itu, si penerima dapat meyakini bahwa setelah ditandatangani pengirim, dokumen itu tidak ada yang memanipulasi pada saat menjalani proses pengiriman.

Beberapa konvensi yang ada pada tanda tangan digital :

1. bersifat global verification, pemeriksaan dapat dilakukan dengan mudah, bahkan oleh orang-orang yang tidak berhubungan atau belum pernah bertemu dengan pihak yang melakukan pengesahan (yang menandatangani) sekalipun.

2. bersifat otentik, pesan yang terdapat tanda tangan digital juga dapat menjadi barang bukti, sehingga pihak yang melakukan pengesahan (yang menandatangani) tak dapat menyangkal bahwa dulu ia tidak pernah menandatanganinya.

3. bersifat ekslusif, hanya sah untuk dokumen (pesan) itu saja atau kopiannya yang sama persis. Tanda tangan itu tidak dapat dipindahkan ke dokumen lainnya. Ini juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah.

Konsep tanda tangan digital :

Tanda tangan digital memanfaatkan teknologi kunci publik (public key).Sepasang kunci publik-privat dibuat unik dan tidak ada pasangannya. Kunci privat disimpan oleh pemiliknya, dan dipergunakan untuk membuat tanda tangan digital. Sedangkan kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen. Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti one-way hashing dan enkripsi asimetris.

Contoh penggunaan tanda tangan digital lewat pengiriman e-mail:

menggunakan proses hashing algorithm untuk mengambil intisari dari isi e-mail yang akan dikirim, memprosesnya dengan menggunakan algoritma one-way hash dan menghasilkan hashed data. Kemudian hashed data tersebut di enkripsi menggunakan private key dan menghasilkan apa yang disebut dengan Digital Signature (tanda tangan digital). Di dalam Digital Signature tersebut juga disertakan informasi mengenai metode hashing algorithm yang digunakan.

Digital Signature tersebut dikirimkan bersama isi e-mail.

Ketika file atau dokumen telah sampai pada si penerima, dilakukan proses hashing algorithm pada isi e-mail tersebut. Proses one-way hash persis seperti yang dilakukan saat pengiriman, karena algoritmanya turut dibawa dalam Digital Signature. Dari proses tersebut menghasilkan hashed-data sekunder.

Digital Signature yang diterima tadi langsung didekripsi oleh public key. Hasil dekripsi tersebut tentunya akan memunculkan hashed data yang serupa seperti hashed data sebelum dienkripsi oleh pengirim e-mail. Hashed data disebut hashed data primer.

Terakhir yang dilakukan adalah membandingkan hashed data primer dengan hashed data sekunder. Jika saja saat diperjalanan ada hacker yang mengubah atau menyadap isi e-mail, paka hashed data sekunder akan berbeda dengan hashed data primer. Apabila hal tersebut terjadi maka digital signature akan memberikan peringatan kepada si penerima bahwa telah terjadi sesuatu pada file atau dokumen yang dikirimkan tersebut.

Kelemahan tanda tangan digital :

Contoh kasus Paidun dan Samin…

Paidun hendak mengirimkan kunci publiknya (PKP) untuk diserahkan Samin.
Pada saat kunci itu dikirim lewat jaringan publik, Maling mencuri kunci PKP.
Kemudian Maling menyerahkan kunci publiknya (PKM) kepada Samin, sambil mengatakan bahwa kunci itu adalah kunci publik milik Paidun.
Oleh Samin, karena tidak pernah memegang kunci publik Paidun yang asli, percaya saja saat menerima PKM.
Saat Paidun hendak mengirim dokumen yang telah ditandatanganinya dengan kunci privatnya (PRKP) kepada Samin, sekali lagi Maling mencurinya.
Tanda tangan Paidun pada dokumen itu lalu dihapus, dan kemudian Maling membubuhkan tanda tangannya dengan kunci privatnya (PRKM).
Maling mengirim dokumen itu ke Samin sambil mengatakan bahwa dokumen ini berasal dari Paidun dan ditandatangani oleh Paidun.
Samin kemudian memeriksa tanda tangan itu, dan mendapatkan bahwa tanda tangan itu sah dari Paidun.
Terakhir Samin tidak menyadari kesalahannya dan mengira tanda tangan itu asli, kenapa? karena Samin memeriksanya dengan kunci publik PKM, bukan dengan PKP.

Keterangan :

PKP : Public Key Paidun

PKM : Public Key Maling

PRKP : Private Key Paidun

PRKM : Private Key Maling

Algoritma yang digunakan dalam tanda tangan digital (merujuk pada situs yang ditulis oleh IF5054 Kriptografi/Digital Signature Algorithm/Rinaldi Munir/IF-ITB )

Beberapa fakta tentang algoritma tanda tangan digital :

Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan algoritma sidik digital yang disebut Digital Signature Algorithm (DSA). DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS).
DSS adalah standard, sedangkan DSA adalah algoritma. Standard tersebut menggunakan algoritma ini, sedangkan algoritma adalah bagian dari standard (selain DSA, DSS menggunakan Secure Hash Algorithm atau SHA sebagai fungsi hash)
DSA termasuk ke dalam sistem kriptografi kunci-publik. Meskipun demikian, DSA tidak dapat digunakan untuk enkripsi. DSA mempunyai dua fungsi utama:
Pembentukan sidik digital (signature generation), dan
Pemeriksaan keabsahan sidik digital (signature verivication).
Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci rahasia. Pembentukan sidik digital menggunakan kunci rahasia pengirim, sedangkan verifikasi sidik digital menggunakan kunci publik pengirim.
DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit (SHA akan dijelaskan pada kuliah selanjutnya).

Parameter DSA

DSA dikembangkan dari algoritma Elgamal. DSA menggunakan beberapa parameter sebagai berikut:

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 di dalam kelompok.

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

3. g = h(p – 1)/q mod p, yang dalam hal ini h

1. Parameter g bersifat publik.

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

5. y = gx mod p, adalah kunci publik.

6. m, pesan yang akan diberi sidik digital.

Pembentukan Sepasang Kunci

Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0.

2. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h

1.

3. Tentukan kunci rahasia x, yang dalam hal ini x < q.

Hitung kunci publik y = gx mod p.

Pembentukan Sidik Digital (Signing)

Ubah pesan m menjadi message digest dengan fungsi hash SHA, H.

2. Tentukan bilangan acak k < q.

3. Sidik digital 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 dan sidik digital r dan s.

Verifikasi Keabsahan Sidik Digital (Verifying)

1. Hitung

w = s– 1 mod q

u1 = (H(m) * w) mod q

u2 = (r * w) mod q

v = ((gu1 * yu2) mod p) mod q)

2. Jika v = r, maka sidik digital sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar.
Contoh Perhitungan DSA

a. Pembentukan Sepasang Kunci

1. Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0.

p = 59419

q = 3301 (memenuhi 3301 * 18 = 59419 – 1)

Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h

1.

g = 18870 (dengan h = 100)

Tentukan kunci rahasia x, yang dalam hal ini x < q.

x = 3223

4. Hitung kunci publik y = gx mod p.

y = 29245

b. Pembentukan Sidik Digital (Signing)

Hitung nilai hash dari pesan, misalkan H(m) = 4321
Tentukan bilangan acak k < q.

k = 997

k– 1 = 2907 (mod 3301)

Hitung r dan s sebagai berikut:

r = (gk mod p) mod q = 848

s = (k– 1 (H(m) + x * r)) mod q

= 7957694475 mod 3301 = 183

Kirim pesan m dan sidik digital r dan s.

Verifikasi Keabsahan Sidik Digital

Hitung

s– 1 = 469 (mod 3301)

w = s– 1 mod q = 469

u1 = (H(m) * w) mod q 2026549 mod 3301 = 3036

u2 = (r * w) mod q = 397712 mod 3301 = 1592

v = ((gu1 * yu2) mod p) mod q) = 848 mod 3301 = 848

Karena v = r, maka sidik digital sah.

http://parvian.wordpress.com/2008/02/27/digital-signature/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s