l’analisi

Algoritmi crittografici per le identità digitali: quali sono, come funzionano



Indirizzo copiato

L’intera struttura delle identità digitali si basa su algoritmi crittografici. Ma gli algoritmi utilizzati non sono duecento o duemila, sono solo due. Uno legato alla soluzione del “crivello di Eratostene”, un semplice problema declinato nel terzo secolo avanti Cristo. L’altro è molto più recente. Ma come si integrano con le identità digitali? Come funzionano? Quali le prospettive?

Pubblicato il 3 ott 2024

Roberto Marchiori

Referente gestione documentale e privacy della Camera di Commercio di Pordenone-Udine, socio Anorc Professioni



algoritmi crittografici (1)

Con eIDAS 2 (Regolamento UE 2024/1183 che integra il Regolamento UE 2014/910 “eIDAS”) viene introdotto il Portafoglio Europeo delle Identità Digitali (EuDIW, European Digital Identity Wallet), in pratica identità spendibili in tutta l’Unione per l’accesso a una vasta gamma di servizi tramite app su dispositivi mobili.

Connessa all’EuDIW le persone fisiche potranno apporre gratuitamente firme elettroniche qualificate. Si tratta di una novità gravida di impatti sul mercato delle identità digitali ma che non influenzerà sui fondamenti matematici delle firme. Questi sono gli stessi definiti dalla precedente versione del Regolamento e, prima ancora, dalle norme sviluppate in Italia dalla fine degli anni ‘90.

È una conferma anche con uno sguardo ai decenni passati quando i siti – allora chiamati “portali” – avrebbero dovuto fare tutto, tra fornire informazioni a cominciare una qualche forma di interazione a gestire l’interazione stessa. Finita quest’era, sono rimasti i “consueti” problemi di identità, identificazione e valore giuridico dei documenti la cui soluzione si basa essenzialmente sulla solidità delle firme elettroniche e delle forme di identificazione. Tutti aspetti noti che vanno affrontati sia sul piano del diritto sia su quello informatico in senso stretto – sistemi, protocolli e dati – sia su quello degli algoritmi matematici.

Il principio di neutralità tecnologica

Il Legislatore europeo ha impostato molte delle sue politiche sul principio di neutralità tecnologica. L’obiettivo è quello di favorire l’innovazione non imponendo vincoli tecnologici e pertanto lasciando liberi i prestatori di servizi di sviluppare tecnologie per attuare il proprio modello di business. Anche sotto questo aspetto, nonostante la tensione verso l’innovazione, c’è una forte convergenza su precisi principi matematici che sono rimasti inalterati nei decenni e che sono suggeriti dalla stessa Unione che invita a guardare alla norme ETSI.

Più che agli sforzi dei crittoanalisti attuali la minaccia più seria proverrà, in un futuro indefinito ma non lontanissimo, dalla crittografia quantistica.

Per il momento possiamo stare relativamente tranquilli, il quadro giuridico e quello matematico rimangono comparativamente solidi. Vediamo velocemente il primo e approfondiamo meglio il secondo.

Questa trattazione si compone di due parti. Questa prima parte affronta il quadro giuridico e matematico. Con la seconda verranno approfonditi i due principali algoritmi e verranno tracciate le principali prospettive.

Il quadro giuridico delle identità digitali

Il quadro giuridico delle identità digitali si muove dai dati di identificazione personale (Regolamento eIDAS art.3.3) usati in un processo di identificazione (Regolamento eIDAS art.3.1) che, nel processo di firma, vengono acclusi oppure connessi dal firmatario ad altri dati (Regolamento eIDAS art.3.10).

Si passa attraverso il valore di una firma elettronica i cui effetti o l’ammissibilità come prova non possono essere negati (Regolamento eIDAS art.4.25.1) con la specificazione che la firma elettronica qualificata ha effetti giuridici equivalenti a quelli di una firma autografa (Regolamento eIDAS art.4.25.2).

Il quadro comunitario delle firme è delineato su tre livelli:

  • firma elettronica semplice quando rispetta la cruda definizione (il citato Regolamento eIDAS art.3.10).
  • Avanzata se rispetta determinati ulteriori requisiti (Regolamento eIDAS art.26) e, ahimè, anche quelli molto pesanti e della norma nazionale (Dpcm 22/02/2013) che ne limitano fortemente la portata.
  • Qualificata se richiede l’uso di un dispositivo di firma e di un certificato dedicato (Regolamento eIDAS art.3.10). In questo contesto rientra la “nostra” firma digitale particolarmente solida in quanto, fin dalla sua concezione, prevedeva l’utilizzo di cifratura a chiave asimmetrica cioè l’oggetto di questa trattazione divisa in due parti.

In sede nazionale la firma elettronica come mezzo di prova rispetta la forma scritta (Codice Civile art.2702) se è almeno firma elettronica avanzata (CAD art.20.1-bis) e pertanto mantiene importanti requisiti di sicurezza, integrità e immodificabilità previsti con apposite linee guida (CAD art.71). È liberamente valutabile in giudizio negli altri casi.

I casi in cui la forma scritta è obbligatoria (ad substantiam), la firma elettronica (CAD art.21) richiama il Codice Civile art.1350 in cui il punto 13 (che comprende anche i contratti bancari) può avere la forma della firma avanzata. Negli altri casi la firma deve essere qualificata,

Gli aspetti matematici: hash e cifratura a chiave asimmetrica

Oltre che nei protocolli informatici di comunicazione e trattamento dati, anche nelle identità digitali c’è una certa quantità di matematica. Si tratta di una matematica singolare in quanto interamente legata ai sistemi crittografici. Gli aspetti principali sono due: hash e cifratura a chiave asimmetrica. Vediamoli da vicino.

Hash

Hash, parola l’inglese col significato di macinare o di tritare, è una classe di algoritmi che, prendono una sequenza di dati (stringa) e li trasformano in un’altra sequenza di lunghezza stabilita e, generalmente, molto più breve della sequenza originaria. Dalla stringa di hash, detta anche digest, non è possibile risalire al messaggio originario. Nelle identità digitali, non è il testo ad essere cifrato ma lo è la sua stringa di hash. L’algoritmo principale è HASH-256, produce stringhe di 256 bit (pari a 32 caratteri) ma non è oggetto di questa trattazione.

Cifratura a chiave asimmetrica

La cifratura a chiave asimmetrica è una classe particolare di crittografia che richiede un approfondimento preventivo.

Per il lessico faccio riferimento alla recente serie di documenti divulgativi dell’ACN sulla crittografia per la cybersecurity, semplici e rigorosi. In un generico sistema crittografico, un messaggio in chiaro (plaintext) viene reso illeggibile applicando una funzione di cifratura (encryption) che fa uso di una chiave (key). La decifratura (decryption), cioè l’operazione inversa, è un’altra funzione legata alla prima che fa uso a sua volta di una chiave. Le chiavi possono essere diverse.

Fig. 1 – Generico schema crittografico con messaggio in chiaro e cifrato, cifratura e decifratura con chiavi

Con notazione più rigorosa, una funzione di cifratura Enc con chiave K applicata al messaggio m genera un messaggio cifrato c:

EncK(m) = c

La decifratura di un messaggio cifrato genera il messaggio originale, pertanto vale l’uguaglianza:

DecK(c) = DecK( EncK(m) ) = m

I sistemi crittografici, ovvero l’insieme delle funzioni di cifratura/decifratura e gestione delle chiavi, si sono evoluti nel tempo e adattati ai vari ambiti facendo uso di strumenti diversi con diverso grado di affidabilità e quantità di risorse.

Nella crittografia tradizionale, la chiave – una stringa di caratteri o un numero – è la stessa sia per la cifratura sia per la decifratura. Quindi i problemi da affrontare sono essenzialmente tre:

1. utilizzare un algoritmo robusto di cifratura

2. mantenere segreto il più a lungo possibile l’algoritmo di cifratura.

3. Ma considerato che l’algoritmo di cifratura difficilmente potrà essere mantenuto segreto, allora la sua robustezza dovrà basarsi sul trasferimento sicuro della chiave.

La complessità computazionale della cifratura e della decifratura cresce in modo polinomiale sulla lunghezza delle chiavi. Invece, in mancanza di chiavi, l’operazione inversa di decrittazione con forza bruta cresce esponenzialmente. La forza bruta – cioè provare tutte le combinazioni possibili di chiavi – richiede sforzo decisamente superiore a quello della cifratura il che implica che un sistema è molto sicuro se le chiavi sono molto lunghe.

Fig. 2 – La complessità computazionale (ordinata) della decifratura con forza bruta cresce più velocemente al crescere della lunghezza della chiave in (ascissa) rispetto a quella richiesta dalla cifratura. In questo grafico esemplificativo, la cifratura è funzione lineare della lunghezza della chiave mentre l’attacco per forza bruta è una curva esponenziale (tracciato con https://www.desmos.com/calculator).

La svolta determinante nella crittografia è avvenuta nel decennio che inizia a metà degli anni ‘70 quando i due studiosi statunitensi Whitfield Diffie e Martin Hellman hanno posto le basi della crittografia a chiave asimmetrica detta anche crittografia a chiave pubblica. In questa famiglia di sistemi crittografici la solidità non si fonda sull’algoritmo che è noto (“non-secret encryption”) ma sulla gestione delle chiavi. Le chiavi sono due, una per cifrare e una per decifrare. Le due chiavi sono naturalmente legate tra loro ma conoscendone una è difficile ricavare l’altra. Inoltre una delle due chiavi è segreta mentre l’altra è pubblica e può o deve essere divulgata.

La funzione delle chiavi nel processo di firma

Nel processo di firma, le chiavi hanno funzioni differenti:

– la chiave privata, per cifrare, è usata nell’apposizione della firma;

– la chiave pubblica, per decifrare, è usata nella verifica di una firma. La distribuzione della chiave pubblica associata alla corrispondente chiave privata è demandata a un’infrastruttura a chiave pubblica (PKI, Public Key Infrastructure) che non è oggetto di questo articolo.

In uno schema di firma a chiave asimmetrica la cifratura non viene utilizzata per rendere illeggibile un messaggio ma per associare e verificare la firma. Il messaggio originale viene sottoposto all’hashing e firmato con la chiave privata. Viene pertanto generata una stringa di firma. Il ricevente, legge il messaggio, ne ricalcola la stringa di hash e lo cifra con chiave pubblica. La verifica va a buon fine quando le stringhe di firma sono identiche.

Fig. 3 – I principali blocchi funzionali dello schema generale di firma e verifica della firma con crittografia a chiave asimmetrica sono la generazione della stringa di hash (digest), la generazione della firma quale cifratura con la chiave privata e il confronto utilizzando le due chiavi.

Esistono più algoritmi crittografici a chiave pubblica sviluppati a partire dagli anni ‘70. All’origine i sistemi potevano essere relativamente semplici o richiedere chiavi relativamente corte. Con la potenza crescente dei computer – soprattutto oggi che sono tutti collegati in rete – sono state sviluppate varie soluzioni. Gli algoritmi possibili sono sei di cui solo due quelli maggiormente usati. Facciamo un po’ d’ordine tra nomi e acronimi:

  • D-H, Diffie-Hellman. Si tratta di un sistema approvato negli anni ‘70 dalla NSA (National Security Agency). Nato per lo scambio di chiavi, si tratta del primo sistema funzionante di crittografia a chiave asimmetrica. Praticamente mai uscito dall’ambiente militare presso cui era stato sviluppato. Non utilizzato per le firme elettroniche.
  • ElGamal. Sistema basato sullo scambio di chiavi D-H si fonda sulla difficoltà di calcolare logaritmi discreti. Scarsamente utilizzato per le firme elettroniche.
  • RSA è di gran lunga il principale algoritmo usato nelle identità digitali. È l’acronimo del cognome dei tre sviluppatori al MIT – Massachusetts Institute of Technology: Ron Rivest, Adi Shamir, Leonard Adleman. L’algoritmo elabora numeri primi molto grandi, cioè numeri interi che, per loro natura, sono spesso più semplici da trattare da un computer. Si tratta di una generalizzazione abbastanza semplice da implementare e negli anni ha assunto una posizione centrale per la sicurezza delle comunicazioni, dei collegamenti e, per quello che riguarda questo articolo, per le firme elettroniche. Oltre che per forza bruta, è maggiormente vulnerabile per almeno altre due forme di attacco: la side-channel attack e il timing attack. Quest’ultimo, molto noto, prende in considerazione i tempi leggermente diversi nell’elaborazione degli “uni” e degli “zeri” di una chiave in forma binaria e, come risposta, è sufficiente aggiungere un fattore casuale nel tempo di esecuzione della cifratura.
  • DSA, Digital Signature Algorithm. Sviluppato dalla NSA e standardizzato dal NIST (ente di standardizzazione statunitense) nel 1991 per essere utilizzato dalle Pubbliche Amministrazioni statunitensi. Il suo uso è sconsigliato.
  • ECDSA, Elliptic Curve Digital Signature Algorithm, basato sulla crittografia a curva ellittica (ECC, Elliptic Curve Cryptography). Si tratta di una famiglia di curve nel continuo e con numeri immaginari. Questa forma di cifratura richiede adeguata potenza di calcolo ma è considerata più sicura della RSA. Negli anni trova crescente diffusione tra le firme elettroniche in quanto alternativa alla RSA.
  • EdDSA, Edwards-Curve Digital Signature Algorithm. Relativamente veloce ma non particolarmente adatto per le firme elettroniche.

Trattandosi di “non-secret encryption”, gli algoritmi sono ampiamente noti e descritti. Anche per le applicazioni di firma nell’Unione Europea, la fonte più rigorosa e facilmente accessibile è il NIST (National Institute of Standards and Technology, l’aggiornamento vigente è FIPS 186-5 “Digital Signature Standard”, February 3, 2023) che tratta DSA, RSA, ECDSA ed EdDSA.

In Europa gli algoritmi possibili sono quattro e la stessa norma tecnica europea (ETSI TS 119 312 V1.4.3 dell’agosto 2023) richiama la norma NIST (ma ad una versione precedente) per tre di essi: RSA, DSA, ECDSA. Richiama anche un quarto algoritmo (ECSDSA-opt), poco usato, che invece fa riferimento a una norma ISO/IEC (ISO/IEC 14888).

Gli algoritmi più usati: RSA ed ECDSA

Nella pratica, gli algoritmi maggiormente utilizzati sono solo due: RSA ed ECDSA. Pur molto diversi, entrambi fanno ampio uso di numeri primi e di numeri casuali.

Si tratta di problemi matematici sfidanti ancora oggi. Ricordo quando dieci anni fa il NIST aveva rimosso un particolare algoritmo di generazione di numeri casuali (Dual_EC_DRBG) che, se applicato alla ECDSA avrebbe rischiato di compromettere l’intero processo di firma.

Vediamoli questi due algoritmi da vicino.

Nella seconda parte della trattazione verranno esplorati RSA ed ECDSA negli aspetti soprattutto matematici e nelle prospettive.

EU Stories - La coesione innova l'Italia

Tutti
Iniziative
Analisi
Iniziative
Parte la campagna di comunicazione COINS
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
Iniziative
Parte la campagna di comunicazione COINS
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati

Articolo 1 di 2