Anda di halaman 1dari 13

KEAMANAN SISTEM DAN JARINGAN KOMPUTER

DIGITAL SIGNATURE ALGORITHM (DSA)

Disusun oleh :
Kelompok 8
Catur Setiawan
(12/340627/PTK/08397) Hari Susanto
(12/340634/PTK/08403)
Winayu Budi Wardhani (12/340651/PTK/08420)

Minat Studi
Chief Information Officer
Program Studi Magister Teknologi Informasi
Jurusan Teknik Elektro dan Teknologi Informasi
Fakultas Teknik
2013

Halaman| 1
DIGITAL SIGNATURE ALGORITHM

I. Pendahuluan

Dengan seiring berkembangnya zaman yang semakin maju, perkembangan teknologi pun
seiring dengan perkembangan zaman tesebut. Perekembangan teknologi tersebut juga
berpengaruh pada kemajuan teknologi dalam dunia IT (Information Technologi) yang juga
berkembang dengan pesat. Dengan merebaknya email palsu yang mencatut identitas
seseorang, baik yang dihasilkan oleh program seperti halnya worm, atau memang
dilakukan oleh pihak tertentu, penggunaan teknik autentifikasi pesan menjadi lebih
diperlukan. Seperti halnya surat yang pengirimannya tinggal dimasukkan ke dalam kotak
pos yang banyak dijumpai di pinggir jalan, server email juga menerima pesan yang akan
dikirimkan serupa itu. Autentifikasi umumnya hanya dilakukan terhadap alamat IP
komputer pengirim, dan sepanjang alamat tadi dianggap valid, maka siapapun dapat
menulis email dari komputer tersebut. Kita dapat menerima surat yang datang lewat tukang
pos dan di dalamnya mengatasnamakan siapapun. Karena memang tukang pos tidak
berkepentingan dengan validitas isi surat tersebut. Tugas utama dia adalah mengantarkan
surat ke alamat tujuan, tanpa memedulikan siapapun pengirimnya. Adalah tanggung jawab
pengirim surat untuk menandai surat tersebut sehingga dapat dipercaya (trusted) bahwa
memang pesan yang ditulis berasal darinya. Sedangkan di sisi penerima pesan, harus
terdapat sebuah cara sehingga dia dapat mengetahui identitas pengirim pesan dan cukup
yakin bahwa pesan tersebut memang ditulis oleh yang bersangkutan.
Untuk itu diperlukan tanda tangan sebagai salah satu alat untuk memvalidasi suatu
kesepakatan atau dokumen dan dapat digunakan untuk membuktikan otentikasi dokumen
kertas, misalnya surat, piagam, ijazah, buku, karya seni dan lainnya.
Cara yang digunakan dalam contoh di atas, yaitu menggunakan media di atas kertas:
dituliskan tanda tangan atau stempel yang menunjukkan validitas pengirim pesan. Tanda
tangan tersebut harus unik untuk membedakan satu pengirim dengan lainnya, sulit ditiru
pihak lain, dan dapat menjaga integritas pesan yang ditandai. Tujuannya adalah
menghindari pencatutan identitas dan pengubahan pesan oleh pihak ketiga di tengah jalan
(man in the middle attack) pada saat pesan tersebut ditransmisikan.
Seiring dengan berkembangnya teknologi dan era digital, tanda tangan telah
bertransformasi menjadi tanda tangan digital. Dokumen menggunakan media kertas mulai
ditinggalkan karena tuntutan terhadap pemrosesan dokumen yang cepat dan reliable
melewati batas jarak dan waktu dapat terselesaikan dengan pengiriman dokumen melalui
media digital. Tentunya pengubahan pesan digital lebih sulit terlihat dibanding pesan surat
pada contoh di atas. Kendala yang kemudian ditemui adalah pengiriman dokumen melalui
media digital memerlukan adanya jaminan bahwa informasi dapat terjaga keaslian dan
keutuhannya. Sangatlah penting untuk memastikan bahwa dokumen atau kesepakatan yang
dibuat tidak mengalami perubahan oleh pihak – pihak yang tidak berhak. Dibutuhkan
proses legalisasi digital yang dapat memenuhi aspek autentikasi dokumen/pesan dengan
menggunakan tanda tangan digital (digital signature).

II. Dasar Teori

Kriptografi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Aksi
untuk memecahkan mekanisme kriptografi dengan cara mendapatkan plaintext atau kunci
dari ciphertext yang digunakan untuk mendapatkan informasi berharga kemudian
mengubah atau memalsukan pesan dengan tujuan untuk menipu penerima yang
sesungguhnya, dengan memecahkan ciphertext dikenal dengan Cryptanalysis.

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek
keamanan informasi yaitu :

 Kerahasiaan

Layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang
memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah
disandi.

 Integritas data

Berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga
integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data
oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan
pensubsitusian data lain kedalam data yang sebenarnya.
 Autentikasi

Berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun


informasi itu sendiri. Dua pihak yang saling berkomunikasi harus
salingmemperkenalkan diri. Informasi yang dikirimkan melalui kanal harus
diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.

 Non-repudiasi

Usaha untuk mencegah terjadinyapenyangkalan terhadap pengiriman/terciptanya suatu


informasi oleh yang mengirimkan/membuat.

Public-Key Cryptosystems

Konsep kunci publik atau public-key cryptosystemsdiperkenalkan pertama kali oleh


Whitfield Diffie danMartin Hellman pada 1976. Public-key cryptosystems memiliki dua
fungsi utama, enkripsi dan tanda tangan digital. Pada sistemnya, terdapat sepasang kunci
yaitu kunci publik dan kunci rahasia. Kunci publik dipublikasikan, sedangkan kunci
rahasia disimpan.

Setiap orang dapat mengirimkan pesan rahasia hanya dengan menggunakan kunci publik,
tetapi pesan hanyadapat didekripsi dengan kunci privat, yang merupakan milik penerima.
Pada umumnya, kunci rahasia selalu dihubungkan secara matematis dengan kunci
publik.Karena itu, dapat terdapat kebocoran dalam sistem kunci publik.

Kriptografi kunci publik yang digunakan pada tanda tangan digital dapat dinyatakan
sebagai:

Ekd (M) = CDke (C) = M


dimana : E = enkripsi, D = dekripsi, M = pesan, C = cipher, kd = kunci privat, ke = kunci
publik. (Kurniawan, 2004).

Teknik enkripsi asimetris ini jauh lebih lambat daripada enkripsi dengan kunci simetris.
Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan dengan kunci
asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci asimetris.
Sedangkan pesannya dikirim setelah disandikan dengan kunci simetris tadi. Contoh
algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan
penemunya yakni Rivest, Shamir dan Adleman) dan DSA (Digital Signature Algorithm)
(Munir, 2006).

III. Digital Signature

Digital signature merupakan transformasi pesan yang menggunakan sebuah public-key


cryptosystems sehingga orang yang mempunyai pesan awal dan public key mampu
menentukan secara akurat:

1. Apakah transformasi tersebut diciptakan menggunakan private key yang cocok dengan
public key milik penandatangan; dan
2. Apakah pesan awal berubah sejak transformasi dilakukan.

Secara sederhana, digital signature didefinisikan sebagai sebuah skema matematika untuk
membuktikan keaslian sebuah pesan atau dokumen digital. Digital signature biasa
digunakan pada pendistribusian software, transaksi finansial, dan dalam hal-hal yang
membutuhkan pendeteksian untuk pemalsuan dan perusakan.

Skema digital signature terdiri dari tiga algoritma:

1. Algoritma untuk membangkitkan private key dan publik key-nya.


2. Algoritma untuk memberi digital signature pada dokumen jika disediakan dokumen dan
private key.
3. Algoritma untuk verifikasi tanda tangandigital jika disediakan dokumen, public key, dan
digital signature.
Dalam pemberian Digital Signature, terdapat dua proses utama yaitu :

Proses pemberian Digital Signature (Sign) :

1. Mendapatkan message diggest dari pesan dengan menggunakan fungsi hash satu arah.

2. Melakukan enkripsi terhadap message diggest yang telah didapatkan dengan


menggunakan kunci privat pemilik dokumen, menghasilkan sebuah dokumen dengan
digital signature. Selanjutnya pengirim akan melakukan pengiriman dokumen serta
tanda tangannya.

Proses Verifikasi Digital Signature (Verifiy).

1. Melakukan dekripsi terhadap tanda tangan digital dengan menggunakan kunci publik
pengirim untuk mendapatkan message diggest yang tersembunyi di dalamnya.

2. Menggunakan fungsi hash satu arah terhadap pesan yang dikirim untuk mendapatkan
message diggest. Maka verifikasi dilakukan dengan membandingkan kedua message
diggest yang didapatkan. Bila keduanya ternyata sama, maka dapat dipastikan bahwa
dokumen masih otentik (asli). Sebaliknya, bila hasilnya ternyata berbeda, berarti pesan
sudah tidak asli lagi.
Agar dapat bekerja dengan baik maka ada dua kondisi yang harus dipenuhi, yaitu:

1. Digital signature yang dibangkitkan dari dokumen dan private key harus bisa
memverifikasi dokumen yang disertai public key.
2. Tidak boleh ada kemungkinan untukmembangkitkan digital signature yang valid dari
sebuah dokumen tanpa ada private key yang seharusnya.

Sedangkan jika merujuk pada kriptografi, digital signature juga harus memenuhi sifat-sifat
berikut:

a. 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.
b. Tahan terhadap second preimage attack
jikaada input m1, maka sulit dicari m2 dimana m1 ≠ m2 sehingga hash(m1) =
hash(m2).
c. Tahan terhadap collision
penggabungan dua hal di atas sehingga sulit mencari m1 dan m2 dimana hash(m1) =
hash(m2).

IV. Digital Signature Algorithm

Pada Agustus 1991, NIST (The National of Standart and Technology) mengumumkan
standard untuk tandatangan digital yang dinamakan Digital Signature Standard (DSS)
yang terdiri dari dua komponen :

a. Algoritma tandatangan digital yang disebut DSA (Digital Signature Algorithm)


b. Fungsi Hash yang disebut SHA (Secure Hash Algorithm)

Jadi DSA untuk penandatanganan pesan dan SHA untuk membangkitkan massage digest
dari pesan. DSA berbentuk sepasang besar angka yang ditampilkan komputer sebagai
string dari digit biner. Tanda tangan digital dihitung dengan menggunakan sejumlah aturan
dan sejumlah parameter sehingga identitas pemilik dan integritas data dapat diverifikasi.

Pembuat tanda tangan menggunakan kunci privat untuk membuat tanda tangan, sedangkan
kunci publik, yang berkorespodensi dengan kunci privat namun tidak sama, digunakan
untuk memverifikasi tanda tangan. Setiap user memiliki sepasang kunci publik dan kunci
privat. Kunci publik diasumsikan diketahui public secara umum, sedangkan kunci privat
tidak pernah disebar.

Proses Digital Signature Algorithm

Algoritma dalam tiga proses digital signature dijelaskan sebagai berikut :

1. Pembangkitan private key dan public key-nya.


1.1 Menentukan Parameter DSA
a. p adalah bilangan prima dengan panjang L bit, dimana 2L-1 < p < 2L dengan 512
≤ L ≤1024 dan L adalah kelipatan 64. q, bilangan prima 160 bit, faktor dari p-1
dimana 2159< q < 2160. Parameter p bersifat publik.
b. g = h(p-1)/q mod p, dimana 1< h < p-1 sehingga g > 1. Parameter g
bersifatpublik.
c. x bilangan bulat yang dibangkitkan random atau pseudorandom dimana 0< x <
q dengan panjang160 bit. Parameter x bersifat privat.
d. y = gx mod p adalah kunci publik
e. M adalah pesan yang akan diberi tandatangan
f. k = bilangan bulat yang dibangkitkan random atau pseudorandom
dimana0<k<q

Parameter p, q dan g bersifat publik dan dapat digunakan bersama dalam


sekelompok orang. Parameter p, q dan g juga bernilai tetap untuk periode/waktu
tertentu. Parameter x dan k hanya digunakan untuk pembangkitan tanda tangan
dan harus dijaga kerahasiaannya. Parameter k harus berbeda untuk setiap tanda
tangan.

1.2 Pembangkitan Sepasang Kunci


a. Pilih bilangan prima p dan q, dimana (p-1) mod q = 0
b. 2. Hitung g = h(p-1)/q mod p, dimana 1 < h < p-1 dan g > 1
c. Tentukan kunci privat x < q
d. Hitung kunci publik y = gx mod p
Jadi didapatkan kunci publik (p,q,g,y) dan kunci privat (p,q,g,x)
2. Pemberian Digital Signature (Signing)
a. Ubah pesan m menjadi massage digest dengan fungsi Hash SHA menghasilkan
SHA(M)
b. Tentukan bilangan acak k < q
c. 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 terlebihdahulu ke
dalam integer yang diberikan di subbab 2.2.6. Jika tanda tangan yang dihasilkan
benar maka nilai r dan atau s tidak mungkin 0.
d. Kirim pesan beserta tandatangan r dan s

3. Verifikasi tanda tangan digital (Verify)


Sebelum diverifikasi, harus dipastikan tersedianya kunci publik pengirim (y),nilai p, q
dan g beserta pesan yang bertandatangan r dan s. Verifier memeriksa terlebih dahulu
apakah 0 < r < q and 0 < s < q kemudian menghitung :

w = s-1 mod q

u1 = (SHA(M)*w) mod q

u2 = (r*w) mod q

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


Jika v = r maka tandatangan sah berarti tandatangan diverifikasi dan verifier dapat
memiliki keyakinan yang tinggi bahwa pesan yang diterima dikirimoleh pihak
memegang kunci rahasia x sesuai dengan y kunci publiknya,dengan kata lain pesan
masih asli dan dokumen dikirim oleh pengirim yangbenar. Pembuktian jika v = r' pada
M’ = M, r’ = r dan s’=s diberikan pada.

Jika v tidak sama r, maka pesan tersebut mungkin telah dimodifikasi, pesan tersebut
mungkin telah salah ditandatangani oleh penandatangan, atau pesan mungkin telah
ditandatangani oleh pihak lain (bukan penandatangan sebenarnya) berarti pesan tidak
valid.

Contoh Perhitungan DSA

a. Pembangkitan sepasang kunci


1. Pilih bilangan prima p dan q dengan (p-1) mod q = 0, yaitup = 59419 dan q = 3301
(memenuhi 3301.18 = 59419-1)
2. 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
3. Tentukan kunci rahasia x bilangan bulat < q, ambil x = 3223
4. Hitung kunci publik y = gx mod p = 18870 3223 mod 59419 = 29245
b. Pembangkitan tandatangan (signing)
1. Hitung nilai hash dari pesan, misal H(m) = 4321
2. Tentukan bilangan acak k < q, misal diambil k = 997, k.k-1 = 1 mod q,didapat k-1 =
2907
3. Hitung r dan s sebagai berikut :
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
4. Kirim pesan m dan tandatangan r dan s
c. Verifikasi keabsahan tandatangan
1. 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

2. Karena v = r maka tanda tangan sah.

Secure Hash Algorithm

SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama DSS.
Oleh NSA, SHA dinyatakan sebagai standard fungsi hash satu-arah. SHA didasarkan pada
MD4 yang dibuat oleh Ronald L.Rivest dari MIT. SHA disebut aman (secure) karena ia
dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan pesan
yang berkoresponden dengan message digest yang diberikan.

Fungsi Hash (hash function) merupakan fungsi yang bersifat satu arah dimana jika
dimasukkan data, maka akan menghasilkan sebuah “checksum” atau“fingerprint” dari data
tersebut. Sebuah pesan yang dilewatkan ke fungsi hashakan menghasilkan keluaran yang
disebut Message Authenticated Code (MAC). Dilihat dari sisi matematik, hash function
memetakan satu set data ke dalamsebuah set yang lebih kecil dan terbatas ukurannya.
Fungsi hash satu arahmempunyai sifat sebagai berikut :

1. Diberikan M , harus mudah menghitung H(M) = h


2. Diberikan M , sangat sulit atau mustahil mendapatkan M sedemikian sehingga
H(M) = h
3. Diberikan M , sangat sulit atau mustahil mendapatkan M’ sedemikian sehingga H(M)
= H(M’). Bila diperoleh pesan M’ semacam ini maka disebut tabrakan (collision).
4. Sangat sulit atau mustahil mendapatkan dua pesan M dan M’ sedemikian sehingga
H(M) = H(M’).

Sebuah fungsi hash satu arah H(M) beroperasi pada pre-image pesan M dengan panjang
sebarang dan mengembalikan nilai hash h yang memiliki panjang tetap. Fungi hash
dikembangkan berdasarkan ide sebuah fungsi kompresi. Fungsi satuarah ini menghasilkan
nilai hash berukuran n pada input sebesar b. Input tersebutberupa suatu fungsi kompresi
blok pesan dan hasil blok pesan sebelumnya.Sehingga hash suatu blok M adalah : h i =
f(Mi,hi-1) dimana :

hi = nilai hash saat ini

Mi = blok pesan saat ini

hi-1 = nilai hash blok pesan sebelumnya

SHA-1 adalah algoritma hash yang paling banyak digunakan publik (selanjutnya ditulis
SHA). SHA merupakan keluarga fungsi hash satu arah. SHA menerima(2.147.483.648
gigabyte) dan menghasilkan massage digest (MD) dengan masukan panjang 160 bit. MD
kemudian digunakan dalam DSA untuk menghitung tanda tangan digital pesan tersebut.
MD pesan yang sama dapat diperoleh oleh verifier ketika menerima pesan dari pengirim
dengan cara memasukkan pesantersebut pada fungsi SHA. SHA dikatakan aman karena
secara matematis tidakmungkin menemukan dua pesan yang berbeda yang menghasilkan
MD yangsama atau tidak mungkin menemukan pesan aslinya jika diberikan suatu nilai
hash-nya.

Pesan M dengan panjang l bit dimana 0 ≤ l ≤ 264 . Algoritma pada SHA-1menggunakan :

1. Pesan yang tersusun (message schedule) pada 80 dari 32 bit word.


2. Lima variabel kerja pada masing-masing 32 bit.
3. Nilai hash pada lima dari 32 bit word, hasil akhir adalah 160 bit MD.

Word pada message schedule diberi label W0, W1 , …, W79 . Lima variabel kerja
(i)
diberi label a, b, c, d dan e. Word dari nilai hash diberi label H0 , H1 (i), …, H4(i)
yang akan menampung nilai hash awal H(0)untuk diganti dengan nilai hash yang
berurutan setelah blok pesan diproses H(i) dan berakhir dengan nilai hash final H(N).
V. Kesimpulan

Dengan demikian dapat disimpulkan bahwa Digital Signature sangat bermanfaat sebagai
salah satu teknologi pengamanan informasi. Pada digital signature ini terdapat kunci
privat, dan kunci publik. Kunci publik lah yang disebar ternyata mampu mengetahui
transformasi yang diciptakan menggunakan private key cocok dengan public key milik
penandatangan yang diberikan kepada penerima atau tidak cocok, kalau cocok berarti
pesan awal tidak berubah sejak transformasi dilakukan.

Akan tetapi dalam implementasinya terdapat 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.

Selain itu Compiler C hanya sanggup menyatakan bilangan bulat hingga 2 32. Oleh karena
itu, bila DSA diimplementasikan dalam perangkat lunak, batasan panjang bit p dan q
diubah hingga maksimum nilai p dan q adalah 232.

Untuk pengembangan aplikasi, ke depannya digital signature bisa menggunakan algoritma


RSA, karena tentunya untuk proses verifikasi jauh lebih cepat, dan lebih powerfull.

Anda mungkin juga menyukai