Crittografia Asimmetrica

Indice dei contenuti

    La crittografia asimmetrica (o a chiave pubblica) è un sistema crittografico in cui ogni entità possiede una coppia di chiavi matematicamente correlate ma computazionalmente non derivabili l’una dall’altra:

    • Chiave pubblica (KpubK_{pub}): distribuita liberamente a chiunque, senza necessità di un canale sicuro.
    • Chiave privata (KprivK_{priv}): tenuta segreta dal solo proprietario, mai trasmessa in rete.

    C=EKpub(M)M=DKpriv(C)C = E_{K_{pub}}(M) \qquad M = D_{K_{priv}}(C)

    Introdotta da Diffie e Hellman nel 1976 e resa pratica da Rivest, Shamir e Adleman (RSA, 1977), risolve il problema fondamentale della crittografia simmetrica: la distribuzione sicura delle chiavi. Con la crittografia asimmetrica, mittente e destinatario non devono mai condividere un segreto su un canale sicuro preesistente.

    Problema difficile sottostante

    La sicurezza di ogni schema asimmetrico si basa su un problema matematico computazionalmente difficile: un problema per il quale non esiste algoritmo polinomiale noto (con computer classici) che lo risolva in tempo ragionevole.

    SchemaProblema difficile
    RSAFattorizzazione di interi: dati n=pqn = p \cdot q, trovare pp e qq
    Diffie-HellmanLogaritmo discreto in Zp\mathbb{Z}_p^*: dato gxmodpg^x \bmod p, trovare xx
    ECC (Elliptic Curve)Logaritmo discreto su curve ellittiche: dato P=kGP = k \cdot G, trovare kk

    La crittografia su curve ellittiche (ECC) offre la stessa sicurezza di RSA con chiavi molto più corte: 256 bit ECC equivale approssimativamente a 3072 bit RSA. Questa efficienza la rende preferibile in ambienti con risorse limitate (mobile, IoT, TLS).

    Usi principali

    La crittografia asimmetrica ha due modalità d’uso distinte:

    Cifratura: il mittente cifra con la chiave pubblica del destinatario; solo il destinatario può decifrare con la propria chiave privata. Usata per scambiare chiavi di sessione simmetriche (RSA-OAEP nei vecchi handshake TLS, oggi sostituito da ECDHE).

    Firma digitale: il firmatario firma il digest del messaggio con la propria chiave privata; chiunque può verificare con la chiave pubblica. La firma garantisce autenticità (il messaggio viene dal proprietario della chiave privata), integrità (il messaggio non è stato modificato) e non ripudio (il firmatario non può negare di aver firmato).

    Limiti

    La crittografia asimmetrica è 100–1000× più lenta della crittografia simmetrica. Per questo nella pratica non cifra mai direttamente i dati, ma viene usata solo per lo scambio di chiavi o la firma: lo schema ibrido combina le due famiglie per ottenere il meglio di entrambe. Inoltre, la crittografia asimmetrica classica — RSA ed ECC — è vulnerabile alla crittografia post-quantistica: l’algoritmo di Shor su un computer quantistico sufficientemente grande risolverebbe la fattorizzazione e il logaritmo discreto in tempo polinomiale.

    Ultimo aggiornamento: