Il modello di sicurezza alla base della crittografia moderna si basa su diversi principi consolidati, il più importante dei quali è il Principio di Kerckhoff. Questo principio afferma che la sicurezza di un protocollo crittografico dovrebbe basarsi esclusivamente sulla segretezza della chiave, non sulla segretezza degli algoritmi utilizzati per la crittografia o la decrittografia.
Quindi, per rispondere alla domanda: No, non è necessario che le funzioni di crittografia e decrittografia siano tenute segrete affinché il protocollo crittografico rimanga sicuro.
Fondamento teorico
Il principio di Kerckhoffs, formulato nel XIX secolo, afferma: "Un sistema crittografico dovrebbe essere sicuro anche se tutto ciò che lo riguarda, tranne la chiave, è di dominio pubblico". Questo concetto fornisce una linea guida fondamentale per la moderna pratica crittografica. Il ragionamento è che se la sicurezza di un protocollo dipende dall'oscurità degli algoritmi, il sistema diventa vulnerabile una volta che tali algoritmi vengono scoperti, analizzati o sottoposti a reverse engineering. Al contrario, se solo la chiave deve essere mantenuta segreta, il sistema rimane sicuro anche se un avversario conosce ogni dettaglio dell'algoritmo.
Implicazioni pratiche
I protocolli crittografici moderni, come quelli utilizzati nell'Advanced Encryption Standard (AES), nel Rivest–Shamir–Adleman (RSA) e nella crittografia a curve ellittiche (ECC), sono tutti progettati con algoritmi pubblici. Questi algoritmi sono ampiamente pubblicati, esaminati attentamente dalla comunità accademica e professionale e sottoposti a rigorose analisi per garantire che non esista alcun attacco praticabile, a condizione che la chiave rimanga segreta e sufficientemente forte.
La pubblicazione aperta di algoritmi crittografici serve a diversi scopi:
1. Revisione e convalida tra pari: Gli algoritmi pubblici traggono vantaggio da un'ampia revisione paritaria, che aiuta a identificare e risolvere potenziali vulnerabilità prima della loro adozione su larga scala.
2. interoperabilità: Quando gli algoritmi sono disponibili al pubblico, diversi fornitori possono implementare sistemi compatibili, facilitando una comunicazione diffusa e sicura.
3. attendibilità: Gli algoritmi aperti consentono agli utenti di valutare in modo indipendente le proprietà di sicurezza, riducendo il rischio di difetti nascosti o backdoor intenzionali.
Contesto storico
Storicamente, alcuni sistemi crittografici si basavano sulla segretezza dell'algoritmo per garantire la sicurezza (la cosiddetta "sicurezza attraverso l'oscurità"). Un esempio ben noto è la macchina Enigma utilizzata dalla Germania durante la Seconda Guerra Mondiale. La sua sicurezza dipendeva non solo dalla chiave (le impostazioni giornaliere del rotore), ma anche dalla segretezza del funzionamento interno della macchina. Una volta che i crittoanalisti alleati ricostruirono il meccanismo di Enigma, la sicurezza del sistema fu drasticamente indebolita.
Al giorno d'oggi, l'affidamento ad algoritmi segreti è fortemente sconsigliato. Gli algoritmi proprietari o non documentati hanno maggiori probabilità di nascondere vulnerabilità non scoperte e non possono beneficiare delle competenze collettive della comunità crittografica.
Crittografia simmetrica vs. asimmetrica
Sia i sistemi crittografici simmetrici (ad esempio, AES, DES) che quelli asimmetrici (ad esempio, RSA, ECC) aderiscono al principio secondo cui l'algoritmo può essere reso pubblico senza compromettere la sicurezza. Nella crittografia simmetrica, la stessa chiave viene utilizzata sia per la crittografia che per la decrittografia. Nella crittografia asimmetrica, una chiave pubblica crittografa i dati mentre una chiave privata li decrittografa. La sicurezza in entrambi i casi si basa sull'impossibilità di ricavare la chiave (o la chiave privata nel caso asimmetrico) dati l'algoritmo e il testo cifrato.
Ad esempio, la specifica per AES è pubblicata dal NIST come FIPS 197. Chiunque può scaricare lo standard e implementare l'algoritmo. La sicurezza di un messaggio crittografato con AES dipende interamente dalla segretezza e dall'imprevedibilità della chiave, non dalla segretezza dell'algoritmo.
Riservatezza degli algoritmi: rischi e limitazioni
Mantenere segrete le funzioni di crittografia o decifratura comporta diversi rischi:
- Mancanza di trasparenza: Gli algoritmi chiusi non possono essere valutati in modo indipendente per quanto riguarda la sicurezza, aumentando il rischio di vulnerabilità non rilevate o debolezze intenzionali.
- Ingegneria inversa: Con un accesso sufficiente ai dati crittografati e decrittografati, un avversario può spesso ricostruire l'algoritmo, annullando qualsiasi vantaggio ottenuto grazie alla segretezza.
- Complessità della gestione delle chiavi: Se sia l'algoritmo sia la chiave devono essere mantenuti segreti, la logistica della distribuzione e dell'archiviazione sicure diventa notevolmente più complessa.
- Obsolescenza e inflessibilità: Se un algoritmo segreto viene compromesso, potrebbe essere necessario sostituire l'intero sistema, mentre la compromissione delle chiavi in un sistema basato su algoritmi pubblici può essere risolta emettendo nuove chiavi.
Esempi
1. AES (standard di crittografia avanzata): L'algoritmo è pubblico, sottoposto a revisione paritaria e ampiamente implementato. La sicurezza risiede interamente nella segretezza della chiave.
2. RSA (Rivest-Shamir-Adleman): L'algoritmo di crittografia e decifratura è pubblico. La chiave privata deve rimanere segreta; la chiave pubblica e l'algoritmo sono pubblici.
3. Cifrario di Cesare: Uno dei cifrari classici più semplici, in cui la funzione (spostamento delle lettere) è facilmente individuabile. La sicurezza si basava sulla quantità di spostamento, ma in pratica, tali cifrari vengono facilmente violati una volta nota la funzione, a causa della loro debole progettazione.
4. Algoritmi proprietari (ad esempio, DVD Content Scramble System – CSS): CSS ha tentato di mantenere segreto l'algoritmo, ma è stato sottoposto a reverse engineering. Una volta che l'algoritmo è stato reso noto, le sue debolezze di sicurezza sono state rapidamente sfruttate.
Valore Didattico
Insegnare il principio secondo cui la sicurezza crittografica dovrebbe dipendere esclusivamente dalla chiave, piuttosto che dalla segretezza dell'algoritmo, offre diversi vantaggi didattici:
- Promuove una progettazione robusta: Studenti e professionisti sviluppano sistemi resistenti all'esposizione, riducendo la dipendenza dall'oscurità.
- Incoraggia l'apertura: Supporta il processo scientifico, in cui la discussione aperta e l'analisi rafforzano le affermazioni sulla sicurezza.
- Sviluppa il pensiero antagonistico: Gli studenti si rendono conto che gli avversari spesso dispongono di risorse considerevoli e possono ottenere i dettagli degli algoritmi, quindi i sistemi devono essere costruiti di conseguenza.
- Mette in evidenza l'importanza della gestione delle chiavi: Un'efficace formazione sulla sicurezza focalizza l'attenzione sulla corretta generazione, distribuzione e archiviazione delle chiavi, che rappresentano i veri punti deboli di molti sistemi del mondo reale.
Controesempi e chiarimenti
Esistono situazioni in cui vengono utilizzati algoritmi proprietari o segreti, spesso in applicazioni in cui la crittografia è integrata nell'hardware o in ambienti vincolati da vincoli normativi o di licenza. Tuttavia, tali sistemi sono generalmente considerati meno sicuri di quelli che utilizzano algoritmi pubblici ben collaudati. La sicurezza attraverso l'oscurità può offrire un vantaggio temporaneo, ma non può sostituire una solida progettazione crittografica.
In alcuni contesti militari o di intelligence, si possono utilizzare algoritmi proprietari per ritardare gli avversari, ma in genere si tratta di un livello aggiuntivo piuttosto che del fondamento della sicurezza.
Il ruolo della segretezza degli algoritmi nella sicurezza
Sebbene la prassi predefinita e consigliata sia quella di dare per scontato che gli algoritmi diventino noti, potrebbero esserci ragioni operative per mantenere privati alcuni dettagli per un periodo di tempo limitato (ad esempio, nuove costruzioni crittografiche non ancora standardizzate). Tuttavia, affidarsi alla segretezza a lungo termine degli algoritmi è antitetico alle migliori pratiche in crittografia.
Quando si insegna o si progettano sistemi crittografici, è meglio presumere che gli avversari abbiano piena conoscenza dei processi di crittografia e decrittografia. Questa mentalità garantisce che solo la segretezza della chiave si frapponga tra un sistema sicuro e la compromissione, in linea con il Principio di Kerckhoffs e i moderni concetti di sicurezza.
La sicurezza crittografica non dovrebbe dipendere, e in pratica non lo fa, dalla segretezza delle funzioni di crittografia e decifratura. La robustezza di un protocollo crittografico si misura in base alla sua capacità di resistere agli attacchi anche quando gli algoritmi sono completamente divulgati e accessibili a chiunque per l'analisi. Aderendo a questo principio, i sistemi crittografici raggiungono livelli più elevati di sicurezza, affidabilità e robustezza.
Altre domande e risposte recenti riguardanti Fondamenti di crittografia classica EITC/IS/CCF:
- La crittografia a chiave pubblica è stata introdotta per essere utilizzata nella crittografia?
- In crittografia, l'insieme di tutte le possibili chiavi di un particolare protocollo crittografico viene definito spazio delle chiavi?
- In un cifrario a scorrimento, le lettere alla fine dell'alfabeto vengono sostituite con le lettere all'inizio dell'alfabeto secondo l'aritmetica modulare?
- Cosa dovrebbe includere un cifrario a blocchi secondo Shannon?
- Il protocollo DES è stato introdotto per migliorare la sicurezza dei sistemi crittografici AES?
- La sicurezza dei cifrari a blocchi dipende dalla combinazione ripetuta di operazioni di confusione e diffusione?
- La crittoanalisi può essere utilizzata per comunicare in modo sicuro su un canale di comunicazione non sicuro?
- Internet, GSM e le reti wireless appartengono ai canali di comunicazione non sicuri?
- Una ricerca esaustiva delle chiavi è efficace contro i cifrari a sostituzione?
- Il sottolivello AES MixColumn include una trasformazione non lineare che può essere rappresentata da una moltiplicazione di matrice 4×4?
Visualizza altre domande e risposte in EITC/IS/CCF Classical Cryptography Fundamentals
Altre domande e risposte:
- Settore: Cybersecurity
- programma: Fondamenti di crittografia classica EITC/IS/CCF (vai al programma di certificazione)
- Lezione: Introduzione (vai alla lezione correlata)
- Argomento: Introduzione alla crittografia (vai all'argomento correlato)