Il crittosistema D-H permette a due persone di generare insieme una chiave segreta attraverso un canale di comunicazione non sicuro (come internet), senza che nessuno che stia ascoltando possa capire quale sia quella chiave. Alice e Bob concordano pubblicamente su due numeri:
- Un numero primo molto grande, .
- Un generatore sul gruppo moltiplicativo .
- Alice sceglie una chiave privata e invia la chiave pubblica a Bob.
- Bob sceglie una chiave privata e invia la chiave pubblica a Alice.
- Bob può computare e Alice può fare lo stesso .
- Entrambi ottengono la stessa chiave .
Perché è sicuro il crittosistema D-H
La sicurezza di D-H risiede nella difficoltà computazionale del Problema del Logaritmo Discreto (DLP). Dato un elemento è computazionalmente impossibile per grandi trovare tale che
D-H con Curve Ellittiche
ECDH (Elliptic Curve Diffie–Hellman) è il protocollo che permette a due parti di stabilire una chiave segreta condivisa su un canale insicuro usando le curve ellittiche.
È l’equivalente di Diffie–Hellman classico, ma:
- più sicuro
- con chiavi più piccole
- più efficiente
La sicurezza si basa sul problema del logaritmo discreto su curve ellittiche (ECDLP).
Tutti conoscono:
- una curva ellittica su
- un punto generatore di grande ordine
L’utente A ha come chiave privata e chiave pubblica L’utente B ha come chiave privata e chiave pubblica
L’utente A computa e l’utente B fa lo stesso con . Alla fine della computazione, entrambi gli utenti hanno la stessa chiave: