Cryptology Academy · Pelajaran

Skema Tanda Tangan DSA & ECDSA

Bandingkan tanda tangan RSA dengan DSA dan variannya yang menggunakan kurva eliptik.

Pelajaran 3 dari 413 langkah

Skema Tanda Tangan DSA & ECDSA adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Selamat Datang

DSA dan ECDSA adalah skema tanda tangan alternatif yang menggunakan kesulitan logaritma diskret. ECDSA mendominasi sistem modern dengan kunci yang lebih kecil dan operasi yang lebih cepat.

Ikhtisar DSA

DSA (NIST, 1994) menggunakan grup siklik berorde prima q di dalam Z*p. Pembuatan kunci: kunci pribadi x; kunci publik y = g^x mod p. Standar: p berukuran 2048 bit, q berukuran 256 bit.

Algoritme Penandatanganan DSA

1. Buat nilai sekali pakai acak k (1 < k < q) 2. r = (g^k mod p) mod q 3. s = k^(-1) × (Hash(M) + x×r) mod q 4. Tanda tangan: (r, s)

Verifikasi DSA

1. u1 = Hash(M) × s^(-1) mod q 2. u2 = r × s^(-1) mod q 3. v = (g^u1 × y^u2 mod p) mod q 4. Valid jika v == r

Kerentanan Nilai Sekali Pakai DSA

Jika k yang sama digunakan dua kali: kedua tanda tangan memiliki r yang sama. Dari dua pasangan (r,s1) dan (r,s2), kunci pribadi x dapat dihitung secara langsung. Hal ini menghancurkan PS3 (k=1 digunakan setiap kali).

Ikhtisar ECDSA

ECDSA adalah DSA yang diterapkan pada grup kurva eliptik, bukan Z*p. Kurva tersebut memberikan keamanan yang setara dengan parameter yang jauh lebih kecil: ECDSA-256 ≈ DSA-3072 dalam keamanan.

ECDSA dalam Python

from cryptography.hazmat.primitives.asymmetric import ec from cryptography.hazmat.primitives import hashes private_key = ec.generate_private_key(ec.SECP256R1()) sig = private_key.sign(message, ec.ECDSA(hashes.SHA256())) public_key = private_key.public_key() public_key.verify(sig, message, ec.ECDSA(hashes.SHA256()))

ECDSA Deterministik (RFC 6979)

RFC 6979 menurunkan k secara deterministik dari kunci pribadi dan nilai hash pesan. Hal ini menghilangkan ketergantungan pada generator bilangan acak dan membuat penggunaan ulang nilai sekali pakai mustahil. Semua penerapan modern menggunakan RFC 6979.

EdDSA: Ed25519

Ed25519 (DSA kurva Edwards) menggunakan bentuk Edwards terpuntir dari Curve25519. Dirancang deterministik. Berwaktu konstan. Lebih cepat daripada ECDSA. Direkomendasikan untuk protokol baru (kunci SSH, TLS 1.3, Signal).

Perbandingan Ukuran Kunci

Tanda tangan RSA-2048: 256 byte. Tanda tangan ECDSA-256: ~71 byte. Tanda tangan Ed25519: 64 byte. Kunci publik Ed25519: 32 byte. Perbedaan ukuran ini penting bagi perangkat dengan sumber daya terbatas.

Kurva Standar

NIST P-256 (secp256r1): TLS, kepatuhan FIPS. secp256k1: Bitcoin, Ethereum. Curve25519/Ed25519: Signal, WireGuard, SSH yang lebih baru. Brainpool: beberapa standar Eropa.

Pemeriksaan Singkat

Kerentanan bencana apa yang muncul jika nilai sekali pakai k pada DSA/ECDSA digunakan ulang?

Ringkasan

Anda telah memahami DSA, ECDSA, dan Ed25519. Selanjutnya kita mempelajari cara tanda tangan digital melindungi aplikasi nyata: penandatanganan kode dan email.
Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Skema Tanda Tangan DSA & ECDSA” gratis?

Ya — teks lengkap “Skema Tanda Tangan DSA & ECDSA” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Skema Tanda Tangan DSA & ECDSA”?

Bandingkan tanda tangan RSA dengan DSA dan variannya yang menggunakan kurva eliptik. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Skema Tanda Tangan DSA & ECDSA” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu Tanda Tangan Digital?
  2. Tanda Tangan RSA: Menandatangani & Memverifikasi
  3. Skema Tanda Tangan DSA & ECDSA
  4. Tanda Tangan di Dunia Nyata: Penandatanganan Kode & Email
← Kembali ke Cryptology Academy