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
- 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.
- Hitung kunci publik y = gx mod p.
Pembentukan
Sidik Dijital (Signing)
- 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
- 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)
- 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)
- 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)
- 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 dijital r dan s.
c. Verifikasi Keabsahan Sidik
Dijital
- 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 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.
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.
BalasHapusdigital signature software