Minggu, 25 November 2012

Digital Signature dan Tdd Digital


25 November 2012
by.Maya sari

Digital Signature dan Tdd Digital
 

A.    PENDAHULUAN
Pada masa kini, internet sudah menjadi kebutuhan utama. Hampir semua orang menggunakan internet dalam kehidupan mereka sehari-hari, baik untuk keperluan pendidikan, bisnis, hiburan, dan lain-lain. Namun, seiring dengan pesatnya perkembangan internet, masalah keamanan juga semakin kompleks.
Salah satu masalah keamanan tersebut adalah pencurian dan pemalsuan data. Data-data yang hilir mudik dalam internet dapat diambil dan diubah oleh orang yang tidak bertanggung jawab. Salah satu cara untuk mencegahnya adalah dengan membuat suatu tanda khusus yang memastikan bahwa data tersebut adalah data yang benar. Untuk itu dapat digunakan salah satu teknologi keamanan jaringan yang disebut Digital Signature.

B.     PEMBAHASAN
Tentang Digital Signature
Digital Signature adalah salah satu teknologi yang digunakan untuk meningkatkan keamanan jaringan. Digital Signature memiliki fungsi sebagai penanda pada data yang memastikan bahwa data tersebut adalah data yang sebenarnya (tidak ada yang berubah). Dengan begitu, Digital Signature dapat memenuhi setidaknya dua syarat keamanan jaringan, yaitu Authenticity dan Nonrepudiation.
Cara kerja Digital Signature adalah dengan memanfaatkan dua buah kunci, yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk mengenkripsi data, sedangkan kunci privat digunakan untuk mendekripsi data. Pertama, dokumen di-hash dan menghasilkan Message Digest. Kemudian, Message Digest dienkripsi oleh kunci publik menjadi Digital Signature.
Untuk membuka Digital Signature tersebut diperlukan kunci privat. Bila data telah diubah oleh pihak luar, maka Digital Signature juga ikut berubah sehingga kunci privat yang ada tidak akan bisa membukanya. Ini merupakan salah satu syarat keaman jaringan, yaitu Authenticity. Artinya adalah, keaslian data dapat terjamin dari perubahan-perubahan yang dilakukan pihak luar.
Dengan cara yang sama, pengirim data tidak dapat menyangkal data yang telah dikirimkannya. Bila Digital Signature cocok dengan kunci privat yang dipegang oleh penerima data, maka dapat dipastikan bahwa pengirim adalah pemegang kunci privat yang sama. Ini berarti Digital Signature memenuhi salah satu syarat keamanan jaringan, yaitu Nonrepudiation atau non-penyangkalan.

Otentikasi
Meskipun pesan seringkali dapat mencakup informasi tentang entitas mengirim pesan, bahwa informasi mungkin tidak akurat. Tanda tangan digital dapat digunakan untuk otentikasi sumber pesan. Ketika kepemilikan kunci rahasia tanda tangan digital terikat kepada pengguna tertentu, tanda tangan yang sah menunjukkan bahwa pesan yang dikirim oleh pengguna tersebut. Pentingnya kepercayaan yang tinggi dalam otentisitas pengirim ini terutama jelas dalam konteks keuangan. Misalnya, kantor cabang bank mengirimkan instruksi ke kantor pusat meminta perubahan saldo account. Apabila kantor pusat tidak yakin bahwa pesan tersebut benar-benar dikirim dari sumber resmi, bertindak atas permintaan semacam itu bisa menjadi kesalahan besar.
           
Integritas
Dalam skenario banyak, pengirim dan penerima pesan mungkin memiliki kebutuhan untuk keyakinan bahwa pesan belum diubah selama transmisi. Meskipun menyembunyikan enkripsi isi pesan, dimungkinkan untuk mengubah sebuah pesan terenkripsi tanpa memahaminya. (Algoritma enkripsi Beberapa, yang dikenal sebagai nonmalleable yang, mencegah hal ini, tetapi yang lain tidak.) Namun, jika pesan secara digital ditandatangani, setiap perubahan dalam pesan setelah tanda tangan akan membatalkan tanda tangannya. Selain itu, tidak ada cara yang efisien untuk memodifikasi pesan dan tanda tangan untuk menghasilkan pesan baru dengan tanda tangan yang sah, karena ini masih dianggap layak oleh sebagian besar komputasi fungsi hash kriptografi (lihat resistensi tabrakan ).

Non-repudiation
Non-repudiation , atau lebih khusus non-repudiation asal, merupakan aspek penting dari tanda tangan digital. Dengan properti ini suatu entitas yang telah menandatangani beberapa informasi tidak dapat di lain waktu menyangkal memiliki menandatanganinya. Demikian pula, akses ke kunci publik hanya tidak memungkinkan pihak penipuan untuk palsu tanda tangan valid. 

Penggunaan Tanda Tangan Digital
Salah satu cara yang digunakan untuk memastikan surat tersebut adalah dengan mengecek tanda tangan yang ada di dalam surat tersebut dan stempel yang menunjukkan keaslian pengirim surat. Tanda tangan digital atau yang lebih dikenal dengan digital signature mempunyai fungsi yang sama dengan tanda tangan analog yang ditulis di atas kertas. Tanda tangan digital harus unik sehingga dapat membedakanpengirim yang satu degan yang lainnya. Tanda tangan digital juga harus sulit untuk ditiru dan dipalsukan sehingga integritas dan keabsahan pesan dapat terjaga. Dengan demikian diharapkan pencatutan identitas ketika pesan atau email tersebut dikirim dapat dihindari. Tidak hanya pencatutan Untuk keperluan yang penting ini, tersedia alat bantu yang dapat diperoleh secara cumacuma, yakni Pretty Good Privacy (PGP) dan Gnu Privacy Guard atau GPG. Tentu saja masih terdapat penyedia layanan  tanda tangan digital lainnya, namun PGP dan GPG lebih dikenal luas. GPG adalah produk Open Source yang dapat diperoleh secara gratis tanpa harus membayar lisensi. Penggunaaan PGP di luar
Amerika Serikat harus menggunakan versi internasional. Sedangkan GPG sendiri karena dikembangkan di luar wilayah hukum Amerika Serikat, maka bebas digunakan oleh siapapun. Restriksi ini berkaitan dengan aturan ekspor produk enkripsi yang berkait dengan pemakaian kunci sandi untuk pemakaian tanda tangan digital ini [DIR04]. Penggunaan tanda tangan digital ini tidak terlalu sulit. Kedua belah pihak yang akan berkomunikasi harus menyiapkan sepasang kunci, yaitu kunci privat (private key) dan kunci publik (public key). Kunci privat hanya dipegang oleh pemiliknya sendiri. Sedangkan kunci publik dapat diberikan kepada siapapun yang memerlukannya.

contoh penggunaan digital signature pada bahasa Algoritma
 Digital Signature Algorithma (DSA)

Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology)  mengumumkan algoritma sidik dijital 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:
1.      Pembentukan sidik dijital (signature generation), dan
2.      Pemeriksaan keabsahan sidik dijital (signature verivication).

Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci rahasia. Pembentukan sidik dijital menggunakan kunci rahasia pengirim, sedangkan verifikasi sidik dijital 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 < p – 1 sedemikian sehingga h(p – 1)/q mod p > 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 dijital.
Pembentukan Sepasang Kunci

  1. 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 < p – 1 dan h(p – 1)/q mod p > 1.
3.      Tentukan kunci rahasia x, yang dalam hal ini x < q.
  1. Hitung kunci publik y = gx mod p.
Pembentukan Sidik Dijital (Signing)

  1. Ubah pesan m menjadi message digest dengan fungsi hash SHA, H.
2.      Tentukan bilangan acak k < q.
3.      Sidik dijital 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
  1. Kirim pesan m dan sidik dijital r dan s.


Verifikasi Keabsahan Sidik Dijital (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 dijital 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)

  1. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p – 1)/q mod p > 1.
g = 18870        (dengan h = 100)
  1. 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 Dijital (Signing)
  1. Hitung nilai hash dari pesan, misalkan H(m) = 4321
  2. Tentukan bilangan acak k < q.
k = 997
k– 1 = 2907 (mod 3301)
  1. 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
  1. Kirim pesan m dan sidik dijital r dan s.

c. Verifikasi Keabsahan Sidik Dijital
  1. 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
  1. Karena v = r, maka sidik dijital sah.
Implementasi DSA
 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.

1 komentar:

  1. This article clearly explains the complete digital signature algorithm. I do find it very complex and difficult to understand. But with the help of this post I became familiar with its implementation. Thanks.
    digital signature software

    BalasHapus