
Digital Signature Algorithm (DSA) adalah metode kriptografi yang berfungsi untuk penandatanganan digital dan verifikasi tanda tangan. Private key dapat diibaratkan sebagai stempel pribadi Anda, sementara public key adalah template yang bisa digunakan siapa pun untuk memastikan keaslian. DSA menjawab dua pertanyaan utama: “Siapa pengirim pesan ini?” dan “Apakah pesan ini telah diubah selama perjalanan?”
Dalam lingkungan digital, pesan tidak langsung ditandatangani. Pesan terlebih dahulu di-hash—proses yang mengubah pesan panjang menjadi “sidik jari” pendek dengan panjang tetap. Tanda tangan diterapkan pada sidik jari ini. Proses verifikasi menggunakan public key untuk memastikan sidik jari dan tanda tangan sesuai.
Keamanan DSA bergantung pada “masalah logaritma diskret.” Secara sederhana, Anda dapat melihat hasil perkalian matematika yang kompleks, tetapi secara komputasi sangat sulit untuk menelusuri kembali eksponen rahasianya, sehingga pemalsuan tanda tangan hampir mustahil.
DSA menggunakan tiga parameter utama: p, q, dan g. p merupakan “ruang angka” yang sangat besar, q adalah ukuran subgrup dalam ruang tersebut, dan g adalah “generator” atau titik awal perhitungan. Private key dipilih secara acak, sedangkan public key dihasilkan dari parameter-parameter ini dan private key.
DSA mengikuti proses standar untuk penandatanganan dan verifikasi, dengan langkah utama meliputi hashing pesan, penggunaan private key dan angka acak k untuk membuat tanda tangan, serta verifikasi menggunakan public key.
Persiapkan Kunci dan Sidik Jari: Buat private key dan public key. Hash pesan untuk menghasilkan sidik jari pendek agar perhitungan dan validasi lebih efisien.
Buat Tanda Tangan: Dengan private key dan angka acak unik k, hitung sepasang nilai (umumnya disebut r dan s) berdasarkan sidik jari. Sepasang nilai ini membentuk tanda tangan yang dikirim bersama pesan.
Verifikasi Tanda Tangan: Siapa pun yang memiliki pesan, tanda tangan, dan public key dapat menggunakan proses kalkulasi terbuka untuk memverifikasi keabsahan tanda tangan. Jika valid, berarti hanya pemilik private key yang dapat membuatnya; jika tidak valid, pesan atau tanda tangan telah diubah atau dipalsukan.
DSA, ECDSA, dan EdDSA sama-sama merupakan algoritma tanda tangan digital, tetapi beroperasi dengan kerangka matematika berbeda. DSA berbasis logaritma diskret pada medan hingga; ECDSA menggunakan kurva eliptik dengan prinsip serupa; EdDSA adalah skema kurva eliptik modern yang menekankan kecepatan dan fitur keamanan yang lebih baik.
Dalam ekosistem blockchain, ECDSA dan EdDSA lebih sering digunakan. Contohnya, Bitcoin dan Ethereum menggunakan ECDSA pada kurva secp256k1; banyak proyek baru memilih EdDSA berbasis Ed25519 karena performa lebih tinggi, kesederhanaan, dan kompatibilitas dengan infrastruktur yang ada.
Memahami konsep inti DSA membantu memahami “kerabatnya” ECDSA dan EdDSA: semua menggunakan penandatanganan dengan private key, verifikasi dengan public key, sidik jari hash, serta tantangan matematika yang sulit untuk dibalikkan.
Pada sistem blockchain, transaksi merupakan kumpulan data yang divalidasi node jaringan dengan public key untuk memastikan hak pengeluaran. Walaupun blockchain utama lebih memilih ECDSA atau EdDSA, prinsip dasarnya tetap sejalan dengan DSA.
Di platform Gate, terdapat dua penggunaan utama:
Angka acak k berfungsi sebagai “kata sandi sekali pakai”—harus selalu baru dan tidak dapat diprediksi untuk setiap proses tanda tangan. Jika dua pesan berbeda ditandatangani dengan nilai k yang sama, penyerang dapat secara matematis memperoleh private key Anda.
Pernah terjadi insiden nyata di mana pembuatan k yang buruk menyebabkan kebocoran private key. Untuk mengurangi risiko ini, implementasi modern menggunakan k deterministik (diturunkan secara aman dari hash) atau sumber acak berkualitas tinggi, bahkan mewajibkan keunikan pada tingkat library.
Risiko utama adalah angka acak k yang tidak aman: penggunaan ulang, prediktabilitas, atau kerusakan perangkat keras dapat membahayakan keamanan. Kebocoran private key—karena penyimpanan yang tidak aman, pencatatan log, atau lingkungan pengembangan yang terkompromi—juga menjadi risiko besar.
Kesalahpahaman umum meliputi:
Untuk keamanan aset, gunakan hardware wallet, terapkan isolasi izin dan multi-signature, serta lakukan audit ketat pada seluruh implementasi penandatanganan.
Pada lingkungan produksi, selalu gunakan library kriptografi yang sudah terbukti dan patuhi standar. Untuk antarmuka blockchain atau perdagangan, implementasi ECDSA atau EdDSA umumnya lebih disukai karena lebih sesuai dengan ekosistem.
Antara 2024 hingga 2026, blockchain utama akan tetap menggunakan ECDSA atau EdDSA. EdDSA semakin populer karena kecepatan dan kemudahan implementasinya; threshold signature dan multiparty computation meningkatkan keamanan kustodian dan multi-signature.
Dari sisi kepatuhan, lembaga seperti NIST terus memperbarui algoritma dan parameter yang direkomendasikan. Pengembang yang memahami dasar DSA dapat lebih mudah beradaptasi dengan berbagai skema tanda tangan dan membuat keputusan teknis yang tepat.
DSA pada dasarnya melibatkan penandatanganan dengan private key dan verifikasi dengan public key menggunakan sidik jari hash, serta mengandalkan masalah logaritma diskret untuk keamanannya. Angka acak k sangat penting—setiap k harus unik dan tidak dapat diprediksi. ECDSA dan EdDSA lebih sering digunakan dalam aplikasi blockchain, namun tetap berbagi konsep inti DSA. Selalu gunakan library terpercaya, ikat tanda tangan pada domain spesifik, kelola kunci dan randomisasi secara aman, dan terapkan kontrol risiko ketat—terutama untuk keamanan aset.
Tidak—tanda tangan digital DSA tidak dapat diubah tanpa terdeteksi. Setiap perubahan pada tanda tangan valid akan menyebabkan verifikasi gagal karena setiap tanda tangan secara matematis terikat pada pesan asli dan private key. Bahkan perubahan satu bit saja akan memutuskan hubungan ini, sehingga upaya pemalsuan langsung terdeteksi. Integritas ini menjadi alasan DSA banyak digunakan untuk memastikan keaslian transaksi dan non-repudiation.
Dalam DSA, setiap angka acak k harus benar-benar unik dan tidak dapat diprediksi untuk setiap tanda tangan; jika tidak, penyerang dapat membandingkan beberapa tanda tangan untuk menebak private key. Penggunaan ulang atau prediksi k memberikan cukup informasi matematis untuk memungkinkan pengambilan private key—risiko ini telah menyebabkan kompromi nyata. Karena itu, penggunaan generator angka acak berkualitas tinggi sangat penting.
DSA digunakan pada wallet dan exchange untuk memvalidasi keabsahan transaksi. Saat Anda memulai transaksi, private key Anda membuat tanda tangan digital yang membuktikan kepemilikan; penerima memverifikasi keasliannya dengan public key Anda. Platform seperti Gate mengandalkan mekanisme ini untuk memastikan hanya pemilik akun sah yang dapat melakukan penarikan atau transfer—efektif melindungi aset pengguna dari akses tidak sah.
Penggunaan ulang k adalah celah kritis dalam DSA—penyerang dapat secara langsung menghitung private key Anda dengan menganalisis dua tanda tangan yang dihasilkan dengan nilai k yang sama. Ini bukan sekadar teori: serangan nyata telah terjadi (misalnya, beberapa klien Bitcoin yang tidak aman membocorkan private key dengan cara ini). Dalam lingkungan produksi, memastikan randomisasi dan keunikan k adalah wajib.
DSA memerlukan pembuatan angka acak k baru untuk setiap tanda tangan—proses yang rawan kesalahan implementasi dan menambah kompleksitas. Sebaliknya, EdDSA menggunakan algoritma deterministik yang menghilangkan kebutuhan randomisasi pada setiap penandatanganan, sehingga penyalahgunaan jauh lebih sulit. EdDSA juga menawarkan kinerja dan keamanan yang lebih baik. Walaupun DSA masih digunakan karena warisan lama, proyek baru umumnya disarankan untuk bermigrasi ke EdDSA atau ECDSA untuk kebutuhan modern.


