Tanda tangan digital bergantung pada arsitektur kriptografi kunci publik untuk memverifikasi keaslian dokumen dan identifikasi pengirim. Dua cara standar untuk mendapatkan tanda tangan digital adalah algoritma RSA (Rivest-Shamir-Adleman) dan DSA (Digital Signature), tetapi keduanya berbeda dalam menjalankan fungsi enkripsi dan dekripsi.
Artikel ini memberikan ikhtisar tentang salah satu DSA algoritme standar industri, proses kerjanya dengan ikhtisar singkat pembuatan dan verifikasi kunci dan tanda tangan, langkah-langkah yang terlibat dalam keseluruhan proses, pro/kontra, dan aplikasi.
Pengantar Algoritma Tanda Tangan Digital
DSA (Digital Signature Algorithm) menggabungkan sifat aljabar dari masalah logaritma diskrit dan eksponensial modular untuk menghasilkan tanda tangan elektronik untuk berbagai aplikasi. Itu diusulkan pada tahun 1991 dan diadopsi sebagai Standar Pemrosesan Informasi Federal oleh NIST (Institut Standar dan Teknologi Nasional) pada tahun 1994.
Sebagian besar algoritme pembuatan tanda tangan digital mengikuti teknik khas penandatanganan intisari pesan (hash dari pesan yang sebenarnya) dengan kunci pribadi sumber untuk membuat cap jempol digital.
Namun, situasinya berbeda di DSA karena menghasilkan dua tanda tangan dengan menggabungkan dua fungsi penandatanganan dan verifikasi yang kompleks dan unik. Oleh karena itu, algoritma DSA bukanlah penggunaan sederhana dari kunci privat dan publik pada awal dan akhir komunikasi.
Pentingnya Algoritma Tanda Tangan Digital
Karena ancaman dunia maya yang semakin meningkat, setiap kali pengguna mengirim data melalui internet, perlu untuk mengidentifikasi dan memverifikasi keaslian pemiliknya. Kami harus memastikan pemilik dokumen kredibel dan tidak ada yang membuat perubahan apa pun selama transmisi.
Tanda tangan digital adalah tanda tangan elektronik yang membantu penerima mengotentikasi asal pesan. Anda dapat membuat tanda tangan elektronik ini melalui berbagai algoritme, dan DSA adalah salah satunya. Di DSA, pengirim membuat tanda tangan digital untuk menyertakannya dengan pesan sehingga siapa pun dapat mengautentikasinya di pihak penerima.
Manfaat yang ditawarkan DSA adalah:
- Non-Penyangkalan: setelah verifikasi tanda tangan, pengirim tidak dapat mengklaim belum mengirim data.
- Integritas: modifikasi data selama transmisi mencegah verifikasi akhir atau dekripsi pesan.
- Otentikasi Pesan: kombinasi kunci privat/publik yang tepat membantu memverifikasi asal pengirim.
Bagaimana Algoritma Mengautentikasi Pengirim?
Algoritma DSA bekerja pada mekanisme komputasi sistematis yang menghitung nilai hash dan tanda tangan digital yang terdiri dari dua angka 160-bit dari intisari pesan dan kunci pribadi. Keacakan membuat tanda tangan non-deterministik. Ini menggunakan kunci publik untuk otentikasi tanda tangan, yang jauh lebih kompleks daripada RSA.
Siklus DSA mengikuti tiga langkah utama ini untuk menyelesaikan proses:
- Generasi Kunci: Proses tersebut bergantung pada konsep eksponensial modular untuk mendapatkan kunci privat (x) dan publik (y) yang memenuhi kondisi matematis 0 < x < q dan y = gx mod p. Di mana q adalah pembagi prima, p adalah bilangan prima, dan g memenuhi kondisi g**q mod p = 1 dan g = h**((p–1)/q) mod p ini. Jadi membuat paket kunci privat dan publik {p, q, g, x} dan {p, q, g, y}.
- Pembuatan Tanda Tangan: Algoritma hashing menghasilkan intisari pesan, yang diteruskan sebagai input ke fungsi penandatanganan untuk membuat dua variabel output, r dan s, dikemas sebagai tanda tangan {r, s} sehingga pesan dan variabel-variabel ini dikirim sebagai bundel ke penerima.
- Verifikasi tanda tangan: Proses menggunakan fungsi hashing untuk mengeluarkan intisari dan menggabungkan variabel s dengan parameter lain dari langkah pembuatan kunci untuk menghasilkan komponen verifikasi v. Fungsi verifikasi membandingkan variabel terhitung v dengan parameter r dari bundel {M, s, r}.
Untuk meringkas proses di atas secara non-matematis:
- Anda membuat kunci dengan bantuan algoritme pembuatan kunci untuk menandatangani dokumen.
- Kemudian gunakan algoritma tanda tangan digital untuk menghasilkan tanda tangan.
- Gunakan fungsi hash untuk membuat intisari pesan, dan menggabungkannya dengan DSA untuk menghasilkan tanda tangan digital.
- Kirim tanda tangan dengan data untuk diautentikasi oleh penerima.
- Penerima mengotentikasi tanda tangan dengan menggunakan algoritma verifikasi. Ini adalah fungsi hash yang digunakan di atas untuk membuat intisari pesan.
Kelebihan menggunakan Algoritma Tanda Tangan Digital
- Komputasi tanda tangan cepat
- Membutuhkan lebih sedikit ruang penyimpanan untuk seluruh proses
- Tersedia secara gratis (Bebas Paten) untuk penggunaan global tanpa biaya.
- Panjang tanda tangan kecil
- Pengamatan secara real-time
- Non-invasif
- DSA diterima secara global untuk kepatuhan hukum.
- Hemat waktu (konsumsi waktu rendah dibandingkan dengan proses penandatanganan fisik, dll.)
Kontra menggunakan Algoritma Tanda Tangan Digital
- Proses tidak termasuk kemampuan pertukaran kunci.
- Itu kriptografi yang mendasari harus baru untuk memastikan kekuatannya.
- Standarisasi vendor perangkat keras dan perangkat lunak komputer di RSA dapat menyebabkan masalah karena standar otentikasi kedua DSA.
- Operasi sisa yang kompleks membutuhkan banyak waktu untuk perhitungan dan karenanya verifikasi tanda tangan.
- Ini hanya memastikan otentikasi, bukan kerahasiaan, karena algoritme tidak mengenkripsi data.
- Algoritma DSA menghitung hash SHA1 untuk menghasilkan intisari pesan. Oleh karena itu, ini mencerminkan semua kekurangan fungsi hash SHA1 dalam algoritme.
DSA VS RSA
Digital Signature Algorithm adalah algoritma enkripsi kunci asimetris yang diadopsi oleh agensi AS untuk komunikasi rahasia dan non-rahasia. Sedangkan RSA adalah algoritma kriptografi kunci publik yang juga menggunakan aritmatika modular, kekuatannya bergantung pada masalah faktorisasi bilangan prima untuk mengamankan komunikasi dan tanda tangan digital. Oleh karena itu, tidak seperti algoritma enkripsi biasa seperti RSA, DSA adalah standar hanya untuk tanda tangan digital.
Meskipun keduanya menggabungkan algoritma matematika yang berbeda, kekuatan kriptografinya setara. Perbedaan utama antara kedua algoritma menyempit ke kecepatan, kinerja, dan dukungan protokol SSH.
- Berbeda dengan DSA, RSA lambat dalam dekripsi, pembuatan kunci, dan verifikasi tetapi cepat dalam enkripsi dan penandatanganan. Namun, otentikasi membutuhkan keduanya, dan perbedaan kecepatan tidak signifikan dalam aplikasi dunia nyata.
- Perbedaan lainnya terletak pada dukungan protokol jaringan Secure Shell. RSA mendukung SSH asli dan SSH2 versi kedua yang aman, sedangkan DSA hanya bekerja dengan SSH2.
Otentikasi Sumber Data dengan DSA
Tanda tangan digital adalah kebutuhan dunia yang saling terhubung saat ini untuk menciptakan lingkungan yang aman dan terjamin. Mereka adalah cara yang bagus untuk mengotentikasi catatan apa pun melalui internet. Artikel ini memperkenalkan algoritme Tanda Tangan Digital dengan ikhtisar singkat tentang proses kerjanya, kelebihan, kekurangan, batasan keamanan, dan perbandingannya dengan RSA.
Kedua protokol enkripsi ini sering dibicarakan bersama, tetapi apa itu dan bagaimana cara kerjanya?
Baca Selanjutnya
- Keamanan
- Tanda Tangan Digital
Rumaisa adalah penulis lepas di MUO. Dia telah memakai banyak topi, dari Matematikawan hingga penggemar Keamanan Informasi, dan sekarang bekerja sebagai Analis SOC. Minatnya termasuk membaca dan menulis tentang teknologi baru, distribusi Linux, dan apa pun seputar Keamanan Informasi.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan