Cryptology Academy · Pelajaran

ECDH: Lengkung Eliptik untuk Pertukaran Kunci

Gunakan pendaraban skalar lengkung eliptik untuk persetujuan kunci ECDH.

Pelajaran 3 daripada 413 langkah

ECDH: Lengkung Eliptik untuk Pertukaran Kunci ialah pelajaran Cryptology Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cryptology Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

ECDH menggantikan kumpulan darab DH dengan kumpulan lengkung eliptik. Hasilnya ialah keselamatan yang setara dengan kunci 10× lebih kecil dan operasi 10× lebih pantas.

Operasi Kumpulan EC

Dalam ECDH, pendaraban ialah pendaraban skalar lengkung eliptik: mendarab titik P dengan skalar k bermaksud menambahkan P kepada dirinya sendiri sebanyak k kali: k×P. Ini ialah analog EC bagi g^k mod p.

Protokol ECDH

Bersetuju tentang lengkung E dan titik asas G (awam). Alice: kunci peribadi a, kunci awam A = a×G Bob: kunci peribadi b, kunci awam B = b×G Alice: S = a×B = a×b×G Bob: S = b×A = b×a×G Kedua-duanya memperoleh titik S yang sama.

ECDLP

Diberi A = a×G pada lengkung eliptik, cari a. Ini ialah Masalah Log Diskret Lengkung Eliptik. Tiada algoritma subeksponen yang diketahui untuk lengkung umum, menjadikan ECDLP lebih sukar daripada DLP pada saiz kunci yang sama.

Curve25519

Direka oleh Bernstein pada tahun 2005. Bentuk Montgomery: y²=x³+486662x²+x di atas nombor perdana 2^255-19. Direka supaya pantas dan tahan terhadap ralat pelaksanaan. Digunakan dalam WireGuard, Signal dan SSH.

Pertukaran Kunci X25519

X25519 ialah fungsi ECDH yang menggunakan Curve25519. Hanya koordinat x titik yang dikongsi digunakan, manakala pendaraban kofaktor mengendalikan kes pinggir. RFC 7748 menyeragamkan X25519 dan X448.

ECDH dalam Python

from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey alice_priv = X25519PrivateKey.generate() bob_priv = X25519PrivateKey.generate() alice_pub = alice_priv.public_key() bob_pub = bob_priv.public_key() shared_alice = alice_priv.exchange(bob_pub) shared_bob = bob_priv.exchange(alice_pub) assert shared_alice == shared_bob

Daripada Titik yang Dikongsi kepada Kunci Simetri

Titik mentah yang dikongsi tidak digunakan terus sebagai kunci kerana ia tidak diagihkan secara seragam. Gunakan HKDF untuk menerbitkan kunci simetri yang betul: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

Saiz Kunci ECDH berbanding DH

Tahap keselamatan 128 bit: - DH: nombor perdana 3072 bit - ECDH: lengkung 256 bit Nisbah saiz kunci: ~12:1. Kunci awam ECDH: 32 bait (Curve25519). Kunci awam DH: 384 bait. Operasi kunci peribadi ECDH adalah ~50× lebih pantas.

Serangan Kofaktor pada Lengkung Bermasalah

Serangan subkumpulan kecil mengeksploitasi lengkung yang mempunyai kofaktor tidak remeh. Curve25519 mempunyai kofaktor 8, tetapi X25519 mengendalikannya dengan betul. Lengkung P NIST mempunyai kofaktor 1. Sentiasa gunakan pelaksanaan yang diseragamkan.

ECDH dalam TLS 1.3

TLS 1.3 menyokong: X25519, X448, P-256, P-384 dan P-521 untuk pertukaran kunci. X25519 paling biasa digunakan — pantas, selamat dan mempunyai masa tetap. Kedua-dua pihak menjana kunci sementara untuk setiap sesi.

Semakan Pantas

Apakah kelebihan utama ECDH berbanding Diffie-Hellman klasik?

Ringkasan

ECDH sudah dikuasai! Seterusnya, kita akan memahami kerahsiaan hadapan dan sebab pertukaran kunci sementara penting dalam TLS.
Percuma untuk bermula

Pelajari Cryptology Academy dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
67
Pelajaran
261

Soalan Lazim

Adakah pelajaran “ECDH: Lengkung Eliptik untuk Pertukaran Kunci” percuma?

Ya — teks penuh “ECDH: Lengkung Eliptik untuk Pertukaran Kunci” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cryptology Academy, tingkat taraf kepada CoddyKit PRO. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “ECDH: Lengkung Eliptik untuk Pertukaran Kunci”?

Gunakan pendaraban skalar lengkung eliptik untuk persetujuan kunci ECDH. Anda berlatih Cryptology Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cryptology Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cryptology Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “ECDH: Lengkung Eliptik untuk Pertukaran Kunci” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Masalah Pengagihan Kunci
  2. Matematik Pertukaran Kunci Diffie-Hellman
  3. ECDH: Lengkung Eliptik untuk Pertukaran Kunci
  4. Kerahsiaan Hadapan & Pertukaran Kunci Ephemeral
← Kembali ke Cryptology Academy