Disusun Oleh:
2023
Halaman| 1
Halaman| 2
KATA PENGANTAR
Puji syukur kehadirat Allah SWT karena atas rahmat dan karunianya penulis dapat
menyelesaikan makalah yang berjudul “Digital Signature Algorithm (DSA)” tepat pada
waktunya, dan tidak lupa pula kami menyampaikan ucapan terima kasih kepada Bapak
Nazruddin Safaat H., ST, MT. selaku dosen pengampu Keamanan Informasi yang telah
memberikan bimbingan dan pengetahuan kepada penulis sehingga makalah ini dapat
terselesaikan dengan baik.
Penyusunan makalah ini bertujuan untuk memenuhi ujian tengah semester Keamanan
Informasi dan harapan kami semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi pembaca.
Kami menyadari dan meyakini bahwa makalah ini masih jauh dari kata sempurna.
Masih banyak kekurangan dan kesalahan yang kami sadari ataupun tidak kami sadari. Oleh
karena itu kami mengharapkan kritik dan saran dari makalah ini, agar dimasa yang akan
datang kami bisa membuat makalah yang lebih baik lagi.
Penyusun
Halaman| 3
BAB I
PENDAHULUAN
I. Latar Belakang
Halaman| 5
BAB II
PEMBAHASAN
Kriptografi
Sebelum membahas tentang apa itu Digital Signature Algorithm, kita perlu
mengetahui tentang 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 :
a. 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.
b. 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.
c. Autentikasi
Halaman| 6
d. Non-repudiasi
Public-Key Cryptosystems
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:
Halaman| 7
dimana : E = enkripsi, D = dekripsi, M = pesan, C = cipher, kd = kunci privat, ke = kunci
publik.
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).
Digital Signature
1. Apakah transformasi tersebut diciptakan menggunakan private key yang cocok dengan
public key milik penandatangan; dan
2. Apakah pesan awal berubah sejak transformasi dilakukan.
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.
Halaman| 8
Dalam pemberian Digital Signature, terdapat dua proses utama yaitu :
1. Mendapatkan message diggest dari pesan dengan menggunakan fungsi hash satu arah.
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.
Halaman| 9
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:
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
penggabungan dua hal di atas sehingga sulit mencari m1 dan m2 dimana hash(m1) =
hash(m2).
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 :
Salah satu algoritma kriptografi untuk keamanan informasi adalah algoritma digital
signature (DSA). DSA atau Digital Signature Algorithm merupakan salah satu algoritma
kriptografi kunci publik yang paling banyak digunakan saat ini. Penerapan tanda tangan
digital antara lain: sertifikat digital untuk keamanan e-commerce, untuk penandatanganan
kontrak yang sah dan untuk mengamankan pembaruan perangkat lunak.
DSA merupakan suatu tanda tangan elektronik yang dapat digunakan untuk
membuktikan keaslian identitas pengirim dari suatu pesan atau penandatangan dari suatu
Halaman| 10
dokumen digital. Tanda tangan digital ini memastikan isi pesan atau dokumen digital yang
dikirim tidak mengalami perubahan sampai ke tangan penerima. Dengan demikian penerima
yakin bahwa pesan yang diterimanya benar benar asli dari pihak pengirim. Selain kriptografi
DSA juga membutuhkan fungsi hash, fungsi hash merupakan fungsi yang menerima
masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran
yang panjangnya tetap (fixed), umumnya berukuran jauh lebih kecil daripada ukuran string
semula, hasil konversi pesan tersebut akan disamakan dengan hasil dekripsi dari proses
kriptografi DSA untuk otentikasi dan integritas dari keaslian pesan. DSA banyak
diaplikasikan untuk keamanan informasi berupa file digital, hal tersebut dilakukan untuk
mencegah pemalsuan pengiriman suatu file atau pesan digital. privat. Kunci publik
diasumsikan diketahui public secara umum, sedangkan kunci privat tidak pernah disebar.
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 panjang 160 bit. Parameter x bersifat privat.
d. y = gx mod p adalah kunci publik
Halaman| 11
1.2 Pembangkitan Sepasang Kunci
a. Ubah pesan m menjadi massage digest dengan fungsi Hash SHA menghasilkan
SHA(M)
c. Tanda tangan dari pesan m adalah bilangan r dan s yang didapat dari :
Halaman| 12
3. Verifikasi tanda tangan digital (Verify)
w = s-1 mod q
u1 = (SHA(M)*w) mod q
u2 = (r*w) 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.
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.
Halaman| 13
Contoh Perhitungan DSA
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
2. Tentukan bilangan acak k < q, misal diambil k = 997, k.k-1 = 1 mod q,didapat k-1 =
2907
s = (k-1 (H(m) + x r)) mod q = (2907( 4321+3223. 848)) mod 3301= 183
1. Hitung
w = s-1 mod q
Halaman| 14
= ((18870 3036 . 292451592 ) mod 59419) mod 3301 = 848
Proses pembangkitan tandatangan digital (signing) pada pihak signer dan verifikasi
tandatangan digital pada pihak verfier. Ada beberapa kemungkinan yang terjadi pada pihak
verifier, yaitu :
a. Apabila pesan M yang diterima sudah berubah, maka h’ yang dihasilkan dari fungsi hash
berbeda dengan h semula. Ini berarti pesan tidak asli lagi.
b. Apabila pesan M tidak berasal dari orang yang sebenarnya, maka h yang dihasilkan
berbeda dengan h’ yang dihasilkan pada proses verifikasi (hal ini karena kunci publik yang
digunakan oleh penerima pesan tidak berkoresponden dengan kunci privat pengirim).
c. Bila h = h’, ini berarti pesan yang diterima adalah pesan yang asli dan orang yang
mengirim adalah orang yang sebenarnya.
Halaman| 15
Contoh Kode DSA
Pseudocode DSA:
KeyGeneration():
Pilih dua bilangan prima besar, p dan q
Hitung n = p * q
Hitung φ(n) = (p-1)(q-1)
Pilih bilangan bulat e, 1 < e < φ(n) yang saling prima dengan φ(n)
Hitung d = e^(-1) mod φ(n)
Kunci publik = {n, e}
Kunci pribadi = {n, d}
SignatureGeneration(pesan, kunci_pribadi):
Halaman| 16
Ambil pesan dan kunci pribadi
Hitung hash pesan, h
Pilih bilangan acak k, 1 < k < n
Hitung r = (g^k mod n) mod q
Hitung s = (k^(-1) * (h + d * r)) mod q
Tanda tangan = {r, s}
Halaman| 17
III. Code atau Pseucode Murni Algoritma DSA
Seperti yang kita ketahui bahwa setiap system pasti memiliki kelebihan dan
beberapa kekurangan, termasuk juga dengan Digital Signature Algorithm, dimana tentunya
system ini juga terdapat kelemahan bagi para penggunanya.
Digital Signature Algorithm (DSA) adalah salah satu algoritma tanda tangan digital
yang memiliki sejumlah kelebihan dan kekurangan:
Kelebihan DSA:
2. Tidak Bergantung Pada Kelangsungan Kunci Rahasia: DSA tidak bergantung pada
kelangsungan rahasia parameter, yang berarti kunci pribadi (private key) dapat
dirotasi tanpa mengganggu tanda tangan yang sudah ada.
3. Relatif Efisien: DSA adalah algoritma yang relatif efisien dalam hal ukuran kunci dan
kinerja. Itu dapat menghasilkan tanda tangan dengan ukuran relatif kecil.
4. Algoritma Domain Publik: Algoritma ini adalah domain publik dan tidak memiliki
paten yang melarang penggunaan atau implementasi.
5. Digunakan Secara Luas: DSA adalah algoritma yang digunakan secara luas dalam
berbagai protokol keamanan, termasuk Secure Sockets Layer (SSL) dan Transport
Layer Security (TLS) untuk keamanan komunikasi web.
Kekurangan DSA:
1. Keterbatasan dalam Panjang Kunci: Algoritma DSA terbatas dalam panjang kunci
yang digunakan, dan ukuran kunci yang lebih besar diperlukan untuk menghadapi
Halaman| 18
ancaman komputasi berkecepatan tinggi saat ini. Ini membatasi tingkat keamanan
yang dapat dicapai dengan DSA.
2. Lebih Lambat Daripada RSA: DSA biasanya lebih lambat daripada RSA dalam hal
tanda tangan dan verifikasi, sehingga mungkin tidak cocok untuk aplikasi yang
membutuhkan kinerja tinggi.
4. Masalah dengan Keprediktabilan RNG: DSA memerlukan generator angka acak yang
kuat, dan masalah dalam generator angka acak dapat menyebabkan tanda tangan yang
dapat diprediksi atau diretas.
6. Penting untuk diingat bahwa saat ini, DSA telah digantikan oleh Elliptic Curve
Digital Signature Algorithm (ECDSA) dalam banyak implementasi keamanan
modern karena kelebihan kinerja dan keamanannya. Namun, pemahaman tentang
DSA masih penting karena masih ada beberapa kasus penggunaan yang memerlukan
atau mendasarkan pada algoritma ini.
Halaman| 19
V. Implementasi Algoritma DSA dalam Penggunaannya
Kode di atas menghasilkan sepasang kunci DSA, membuat tanda tangan digital
untuk pesan, dan kemudian memverifikasinya. Pastikan Anda menyimpan kunci pribadi
(private key) dengan aman, karena itu sangat rahasia.
Penting untuk diingat bahwa kunci yang dihasilkan dalam contoh ini memiliki ukuran
kecil (1024 bit), yang kurang aman untuk aplikasi nyata. Untuk tingkat keamanan yang
lebih tinggi, Anda harus menggunakan ukuran kunci yang lebih besar. Selain itu, pastikan
Anda memahami kebijakan keamanan dan pengelolaan kunci sebelum
mengimplementasikan tanda tangan digital dalam sistem yang lebih kompleks
Halaman| 20
BAB III
KESIMPULAN
3.1 Kesimpulan
Selain itu 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.
Halaman| 21
REFERENSI
Halaman| 22
Halaman| 23
Halaman| 24