ECDSA mengandalkan kriptografi kurva eliptis yang memberikan tingkat keamanan yang sama seperti sistem lama seperti RSA, tetapi dengan ukuran kunci yang jauh lebih kecil. Efisiensi ini membuatnya praktis untuk blockchain, tempat setiap transaksi harus diverifikasi oleh ribuan node.
ECDSA melibatkan tiga langkah. Pertama, pembuatan kunci: sistem membuat kunci privat, yaitu angka yang dipilih secara acak, dan menurunkan kunci publik darinya menggunakan perkalian kurva eliptis. Kunci privat harus tetap rahasia.
Kunci publik dapat dibagikan secara bebas. Hubungan matematis di antara keduanya bersifat satu arah: menghitung kunci publik dari kunci privat itu mudah, tetapi membalikkan prosesnya secara komputasional tidak memungkinkan.
Ketiga, verifikasi: siapa pun yang memiliki kunci publik, pesan, dan tanda tangan dapat memverifikasi bahwa tanda tangan tersebut dihasilkan oleh kunci privat yang sesuai. Proses verifikasi tidak mengungkapkan kunci privat. Inilah yang membuat ECDSA cocok untuk blockchain publik, tempat setiap node harus memverifikasi transaksi secara mandiri.
ECDSA juga digunakan dalam konteks kripto lainnya di luar pembayaran, termasuk penandatanganan pesan untuk autentikasi dan skema multitanda tangan, yaitu beberapa pihak harus menandatangani untuk mengotorisasi transaksi.
ECDSA aman secara komputasional jika diimplementasikan dengan benar, tetapi keamanannya sangat bergantung pada kualitas nonce. Jika nonce yang sama digunakan untuk menandatangani dua pesan yang berbeda, kunci privat dapat dipulihkan secara matematis dari dua tanda tangan tersebut.
Risiko ini bukan sekadar teori: Pada tahun 2013, bug pada generator angka acak Android menyebabkan beberapa dompet Bitcoin menghasilkan nonce duplikat, lalu penyerang mencuri dana dengan memulihkan kunci privat.
Pembuatan nonce yang buruk, bahkan tanpa penggunaan ulang yang persis sama, juga dapat mengekspos kunci privat. Dompet modern menggunakan pembuatan nonce deterministik (RFC 6979), yang menurunkan nonce dari kunci privat dan pesan, sehingga menghilangkan risiko penggunaan ulang yang tidak disengaja.
Ke depannya, ECDSA pada akhirnya mungkin akan digantikan oleh skema tanda tangan pascakuantum, karena komputer kuantum secara teoretis dapat memecahkan masalah logaritma diskret kurva eliptis yang menjadi dasar ECDSA. Untuk saat ini, ECDSA tetap menjadi standar untuk otorisasi transaksi Bitcoin dan Ethereum.
String atau angka arbitrer sekali pakai yang dibuat untuk tujuan verifikasi guna mencegah pemutaran ulang t...
Fungsi kriptografi serbaguna yang dirancang oleh Guido Bertoni, Joan Daemen, Michaël Peeters, dan Gilles Va...
Alat kriptografi untuk memverifikasi autentisitas dan integritas data digital demi memastikan keamanan komu...