Alcune truffe comuni su Facebook Messenger includono richieste di codici di autenticazione, pagine di beneficenza false che chiedono donazioni, messaggi che offrono consigli sugli investimenti o
La crittografia a curva ellittica (ECC) è una forma di crittografia a chiave pubblica che si basa sulla matematica delle curve ellittiche. Fornisce un modo sicuro per eseguire operazioni crittografiche come lo scambio di chiavi, le firme digitali e la crittografia. L’ECC è un’alternativa alla crittografia Rivest-Shamir-Adleman (RSA), rilasciata per la prima volta nel 1977.
Continua a leggere per saperne di più sulla crittografia a curva ellittica e sul perché è considerata la forma di crittografia più sicura.
Qual è la differenza tra ECC e RSA?
Prima di parlare delle differenze tra ECC e RSA, è importante capire come funzionano gli algoritmi crittografici a chiave pubblica. Nella loro forma più elementare, gli algoritmi crittografici robusti sono “funzioni botola”. Mentre cadere in una botola è molto facile, uscirne è molto difficile perché le botole oscillano solo in una direzione. Quindi, affinché un algoritmo crittografico sia efficace e sicuro, deve essere facile criptare un messaggio, ma quasi impossibile da decriptare senza la chiave di decriptazione.
Sia ECC che RSA sono algoritmi di crittografia a chiave pubblica che sfruttano funzioni matematiche molto avanzate. La crittografia a chiave pubblica ha due componenti, una chiave pubblica e una chiave privata. La chiave pubblica cripta un messaggio applicando un algoritmo matematico per trasformarlo in un numero molto grande e casuale. Il messaggio può essere decifrato solo con la chiave privata, che prende il numero casuale e applica un algoritmo diverso che essenzialmente “annulla” l’originale.
La matematica alla base di ECC e RSA è così complessa che può essere risolta solo con i computer. La matematica che sta dietro all’algoritmo RSA va oltre lo scopo di questo blog, ma il punto cruciale è che la sicurezza di RSA dipende dall’immensa difficoltà di fattorizzare numeri molto grandi nei loro primi composti.
Per chi ha bisogno di un ripasso, la fattorizzazione di un numero come 20 si presenta così:
20 = 4 * 5 = 2 * 2 * 5 = 22 * 5
Sembra semplice, giusto? Ora immagina di farlo con un numero lungo più di 100 cifre. Ecco perché, anche con una chiave pubblica, è estremamente dispendioso dal punto di vista computazionale calcolare la chiave privata senza conoscere i fattori primi.
Problemi con la crittografia RSA
Sebbene l’algoritmo RSA sia piuttosto robusto, non è privo di problemi.
La fattorizzazione di numeri molto grandi è estremamente difficile, ma meno difficile di un tempo. La fattorizzazione è una componente fondamentale del calcolo e di altre matematiche avanzate, quindi i matematici hanno passato secoli a cercare modi per renderla più semplice. Esistono algoritmi efficienti per la fattorizzazione dei grandi numeri, come il General Number Field Sieve, che attualmente è il metodo più conosciuto per la fattorizzazione dei grandi numeri che superano le 110 cifre.
Nel frattempo, la potenza di calcolo si sta espandendo ad un ritmo sbalorditivo. Nel 1965, il co-fondatore di Intel Gordon Moore aveva previsto che il numero di transistor su un microchip sarebbe raddoppiato ogni anno o due. Questa ipotesi è nota come Legge di Moore e dagli anni ’70 è stata soddisfatta o superata. La potenza di calcolo raddoppia ogni due anni circa e il prezzo della potenza di calcolo sta scendendo.
Man mano che le risorse di calcolo necessarie a fattorizzare numeri estremamente grandi diventano più facilmente disponibili e accessibili a un’ampia fetta di pubblico (compresi i criminali informatici), le dimensioni delle chiavi RSA devono crescere per tenere il passo. Per questo motivo, RSA ha una velocità di cifratura e decifratura piuttosto bassa, che lo rende inadatto a criptare messaggi di grandi dimensioni, soprattutto sui dispositivi mobili. RSA è invece comunemente utilizzato per lo scambio di chiavi e le firme digitali, dove i dati veri e propri vengono crittografati utilizzando algoritmi di crittografia simmetrica con chiavi di sessione a vita breve.
Al contrario, la crittografia a curva ellittica offre una sicurezza probabilmente migliore con chiavi di lunghezza inferiore, rendendola più efficiente in termini di requisiti di calcolo e di larghezza di banda. Nella prossima sezione esamineremo come funziona ECC.
Come funziona la crittografia a curva ellittica?
L’ECC si basa su un’altra area della matematica avanzata, quella delle curve ellittiche. Una curva ellittica è definita da un’equazione nella forma y2 = x3 + ax + b, dove a e b sono costanti e la curva è definita su un campo finito. Quando viene visualizzata graficamente, appare così:
Le curve ellittiche hanno alcune proprietà speciali che le rendono interessanti e utili sia per i matematici che per i crittografi. Innanzitutto, le curve ellittiche sono orizzontalmente simmetriche. Quando si riflette sull’asse x (la linea orizzontale), entrambi i lati sono uguali, come un’immagine speculare.
Inoltre, qualsiasi linea retta non verticale tracciata attraverso una curva ellittica intersecherà sempre la curva in un massimo di tre punti. Nell’esempio seguente, quei punti sono etichettati come P, Q e R.
La sicurezza della crittografia a curva ellittica si basa sulla difficoltà di risolvere il cosiddetto problema del logaritmo discreto a curva ellittica. Dato un punto P sulla curva e uno scalare k, è molto difficile determinare il punto Q tale che Q = k*P, molto più difficile di quanto non lo sia fattorizzare un numero molto grande.
Questa proprietà significa che ECC può fornire una sicurezza paragonabile o addirittura migliore di RSA con chiavi di dimensioni molto inferiori.
Vantaggi della crittografia a curva ellittica
Il fatto che l’ECC offra un livello di sicurezza molto elevato con chiavi di lunghezza ridotta offre dei vantaggi rispetto all’RSA e ad altri algoritmi di crittografia a chiave pubblica.
Ecco due vantaggi dell’utilizzo della crittografia a curva ellittica.
- L’ECC richiede meno risorse computazionali e meno larghezza di banda per la generazione della chiave, la crittografia e la decrittografia.
- Grazie alle dimensioni ridotte della chiave ECC, le operazioni ECC, come la generazione della chiave, la crittografia e la decrittografia, possono essere eseguite più velocemente rispetto a RSA, il che significa una minore latenza per l’utente finale.
Questi vantaggi rendono l’ECC particolarmente utile in ambienti con risorse limitate, come i dispositivi mobili e dell’Internet of Things (IoT).
Quanto è sicura la crittografia a curva ellittica?
Sebbene l’algoritmo di crittografia RSA sia estremamente sicuro, l’ECC è probabilmente ancora migliore.
I computer quantistici hanno teoricamente il potenziale di rompere l’RSA risolvendo in modo efficiente il problema della fattorizzazione su cui si basa l’RSA. Se questo accadrà presto è oggetto di grande dibattito. Tuttavia, è possibile affermare che, data la sua complessità, l’ECC è più resistente agli attacchi dell’informatica quantistica rispetto all’RSA.
Quanto resistente? Il matematico olandese Arjen Lenstra ha partecipato a una ricerca che paragona la rottura degli algoritmi crittografici all’acqua bollente. L’idea è quella di calcolare quanta energia è necessaria per violare uno specifico algoritmo crittografico, quindi calcolare quanta acqua potrebbe bollire con quell’energia. Usando questa metafora, per decifrare una chiave RSA da 228 bit ci vuole meno energia che per far bollire un cucchiaino d’acqua, ma l’energia spesa per decifrare una chiave ECC da 228 bit potrebbe far bollire tutta l’acqua della Terra. Lo stesso livello di sicurezza con RSA richiederebbe una chiave di 2.380 bit.
Dove viene utilizzata la crittografia a curva ellittica
Come già accennato, le dimensioni ridotte della chiave ECC la rendono perfetta per i dispositivi con scarse risorse di CPU e memoria, come i dispositivi mobili e IoT. Questo permette agli sviluppatori di applicazioni web e mobili di creare siti web e applicazioni ad alte prestazioni e bassa latenza, offrendo al contempo ai loro utenti una solida sicurezza dei dati. L’ECC è spesso utilizzata per proteggere i protocolli di comunicazione mobile wireless come Bluetooth, Wi-Fi e Near Field Communication (NFC).
Ecco alcuni casi d’uso più comuni per l’ECC:
- Protocolli di comunicazione sicura: l’ECC viene utilizzata in diversi protocolli di comunicazione sicura per fornire crittografia, firme digitali e scambio di chiavi. Tra gli esempi ricordiamo il Transport Layer Security (TLS) utilizzato per la navigazione web sicura, il Secure Shell (SSH) per il login remoto sicuro e le Virtual Private Network (VPN) per la comunicazione di rete sicura.
- Criptovalute e tecnologia blockchain: molte criptovalute, tra cui Bitcoin, Ethereum e Litecoin, utilizzano la crittografia a curva ellittica per generare coppie di chiavi pubbliche e private e per firmare le transazioni. L’ECC fornisce la sicurezza crittografica necessaria per proteggere gli asset digitali e garantire l’integrità delle reti blockchain.
- Smart card e sistemi embedded: l’ECC è comunemente utilizzata per proteggere i sistemi di pagamento, i sistemi di controllo degli accessi, i passaporti elettronici e altre applicazioni che richiedono soluzioni crittografiche sicure e compatte.
- Firme e certificati digitali: l’ECC può essere utilizzata per generare firme digitali, che vengono utilizzate per verificare l’autenticità e l’integrità dei documenti e dei messaggi digitali. Le firme digitali basate su ECC sono utilizzate anche nei sistemi PKI (Public Key Infrastructure) per emettere e convalidare i certificati digitali.
Sebbene l’ECC sia piuttosto nuova rispetto all’RSA, gode di un’ampia standardizzazione e del supporto da parte delle organizzazioni del settore privato e degli enti del settore. Ad esempio, il National Institute of Standards and Technology (NIST) degli Stati Uniti ha standardizzato l’ECC nella sua suite di algoritmi crittografici. Inoltre, l’ECC è supportata da librerie crittografiche, linguaggi di programmazione e sistemi operativi molto diffusi. Questa accettazione ne promuove ulteriormente l’adozione in vari settori come quello finanziario, sanitario e dei servizi governativi.
Considerando questi fattori, si può affermare che la crittografia a curva ellittica è popolare e ampiamente utilizzata in una varietà di applicazioni e settori. La sua efficienza, la sua sicurezza e il suo ampio supporto l’hanno resa una scelta affidabile per le comunicazioni sicure e le operazioni crittografiche.