Che cosa è il Discrete Log Problem (DLP)?

Il Discrete Log Problem (DLP) descrive il fatto che attualmente non esiste un metodo noto per calcolare la divisione dei punti su una curva ellittica. La moltiplicazione dei punti, la funzione utilizzata per ricavare le chiavi pubbliche da quelle private, si calcola abbastanza facilmente, ma la sua inversa no.

Questa proprietà unica conferisce alla crittografia a curva ellittica la sua sicurezza. Tuttavia, non è stato dimostrato che il Discrete Log Problem sia impossibile. Piuttosto, dopo molte ricerche, non è stata ancora scoperta alcuna soluzione, il che ha portato i crittografi a ipotizzarne la sicurezza.

Anche Bitcoin si basa sul Discrete Log Problem per la sua sicurezza. Bitcoin utilizza la curva ellittica secp256k1 per implementare la sua crittografia a chiave pubblica. Le chiavi private sono grandi numeri casuali. Una chiave privata sk viene moltiplicata per un punto generatore G definito pubblicamente per ottenere un altro punto della curva P, la chiave pubblica. Grazie al Discrete Log Problem, questa moltiplicazione non può essere invertita, quindi una chiave pubblica non può essere usata per rivelare una chiave privata.

L’impossibilità di dividere i punti consente inoltre a questo schema di supportare schemi di firma digitale come ECDSA e Schnorr. Una firma digitale dimostra che il produttore conosce una chiave privata e si sta impegnando per un certo messaggio senza rivelare la chiave privata.