0Pricing
Cryptology Academy · Lezione

ECDH: curve ellittiche per lo scambio di chiavi

Applichi la moltiplicazione scalare su curve ellittiche all'accordo di chiavi ECDH.

ECDH: curve ellittiche per lo scambio di chiavi è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuto

ECDH sostituisce il gruppo moltiplicativo di DH con un gruppo di curve ellittiche. Il risultato: sicurezza equivalente con chiavi 10 volte più piccole e operazioni 10 volte più veloci.

Operazioni sui gruppi ellittici

In ECDH, la "moltiplicazione" è la moltiplicazione scalare su una curva ellittica: moltiplicare un punto P per uno scalare k significa sommare P a sé stesso k volte: k×P. È l'analogo su curve ellittiche di g^k mod p.

Protocollo ECDH

Concordare la curva E e il punto base G, pubblici. Alice: chiave privata a, chiave pubblica A = a×G Bob: chiave privata b, chiave pubblica B = b×G Alice: S = a×B = a×b×G Bob: S = b×A = b×a×G Entrambi derivano lo stesso punto S.

ECDLP

Dato A = a×G su una curva ellittica, trovare a. Questo è il problema del logaritmo discreto su curve ellittiche. Per le curve generiche non è noto alcun algoritmo subesponenziale, il che rende ECDLP più difficile di DLP a parità di dimensione delle chiavi.

Curve25519

Progettata da Bernstein nel 2005. Forma di Montgomery: y²=x³+486662x²+x sul primo 2^255-19. Progettata per essere veloce e resistente agli errori di implementazione. Utilizzata in WireGuard, Signal e SSH.

Scambio di chiavi X25519

X25519 è la funzione ECDH che utilizza Curve25519. Viene utilizzata solo la coordinata x del punto condiviso; la moltiplicazione per il cofattore gestisce i casi limite. RFC 7748 ha standardizzato X25519 e X448.

ECDH in 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

Dal punto condiviso alla chiave simmetrica

Il punto condiviso grezzo non viene utilizzato direttamente come chiave, perché non è distribuito uniformemente. Utilizzi HKDF per derivare una chiave simmetrica appropriata: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

Dimensioni delle chiavi ECDH e DH

Livello di sicurezza di 128 bit: - DH: primo di 3072 bit - ECDH: curva di 256 bit Rapporto tra le dimensioni delle chiavi: circa 12:1. Chiave pubblica ECDH: 32 byte, con Curve25519. Chiave pubblica DH: 384 byte. Le operazioni ECDH con chiavi private sono circa 50 volte più veloci.

Attacco al cofattore su curve non sicure

Gli attacchi ai sottogruppi piccoli sfruttano curve con cofattori non banali. Curve25519 ha cofattore 8, ma X25519 gestisce correttamente questo aspetto. Le curve P di NIST hanno cofattore 1. Utilizzi sempre implementazioni standardizzate.

ECDH in TLS 1.3

TLS 1.3 supporta X25519, X448, P-256, P-384 e P-521 per lo scambio di chiavi. X25519 è il più comune: veloce, sicuro e a tempo costante. Entrambi i peer generano chiavi effimere per ogni sessione.

Verifica rapida

Qual è il principale vantaggio di ECDH rispetto a Diffie-Hellman classico?

Riepilogo

Ha compreso ECDH. Ora vediamo la segretezza in avanti e perché lo scambio di chiavi effimere è essenziale in TLS.

Domande Frequenti

La lezione «ECDH: curve ellittiche per lo scambio di chiavi» è gratuita?

Sì — il testo completo di «ECDH: curve ellittiche per lo scambio di chiavi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «ECDH: curve ellittiche per lo scambio di chiavi»?

Applichi la moltiplicazione scalare su curve ellittiche all'accordo di chiavi ECDH. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «ECDH: curve ellittiche per lo scambio di chiavi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Il problema della distribuzione delle chiavi
  2. Matematica dello scambio di chiavi Diffie-Hellman
  3. ECDH: curve ellittiche per lo scambio di chiavi
  4. Segretezza in avanti e scambio di chiavi effimere
← Torna a Cryptology Academy