Algoritmi di crittografia simmetrica: Live Long & Encrypt
Proprio come tribbles in Star Trek, la crittografia simmetrica è ovunque. Esploreremo gli algoritmi a chiave simmetrica e ti porteremo in luoghi in cui nessuna persona non IT è mai stata prima
Gli algoritmi di crittografia simmetrica sono i processi sottostanti che rendono possibili comunicazioni sicure. Se dovessi metterlo in termini relativi a Star Trek, gli algoritmi simmetrici sono l’unità di curvatura per il sistema di propulsione della tua astronave., Sono parte integrante della sicurezza delle informazioni e sono ciò che aiuta la tua azienda ad andare avanti con la crittografia dei dati in modo sicuro e a velocità più veloci della luce.
(Sì, lo so, sto davvero volando la mia bandiera nerd alta oggi. Mentre gli algoritmi di chiavi simmetriche affascinanti non sono esattamente “leggeri” o facili da leggere, quindi devo divertirmi un po ‘ quando scrivo. Dannazione, Jim, sono uno scrittore di sicurezza informatica, non un crittografo.)
Assicurati di aggiornare il tuo caffè (o il tè earl grey, se è più la tua velocità)., Stiamo per fare un tuffo profondo nell’esplorazione di cosa sono gli algoritmi di crittografia simmetrica, perché sono importanti e quali sono i tipi di algoritmi di crittografia simmetrica più comuni.
Fallo così.
Cancelliamolo.
Nota del redattore: Questo articolo è il primo di una serie di articoli sulla crittografia simmetrica., Essere sicuri di controllare gli articoli correlati di seguito:
- Crittografia Simmetrica 101: Definizione, Come Funziona & Quando È Usato
- Asimmetrica vs Crittografia Simmetrica: Definizioni & Differenze
- Blocco di Cifratura vs Stream Cipher: Che cosa Sono & Come Funziona
che Cosa È un Algoritmo Simmetrico e Come Funziona?
Gli algoritmi simmetrici sono le funzioni crittografiche centrali nella crittografia a chiave simmetrica., Sono un insieme di istruzioni o passaggi che i computer seguono per eseguire attività specifiche relative alla crittografia e alla decrittografia dei dati.
Ti senti come se avessi bisogno di un traduttore universale? Ok, raccontiamo un po ‘di piu’.
Gli algoritmi di crittografia simmetrica vengono utilizzati (combinati con una chiave di crittografia) per fare due cose principali:
- Encrypt. Convertire testo leggibile (testo in chiaro) in illeggibile, testo cifrato (testo cifrato).
- Decifrare. Convertire il testo cifrato in testo in chiaro.
Gli algoritmi di crittografia simmetrica utilizzano la stessa chiave di crittografia sia per la crittografia che per la decrittografia., (A differenza degli algoritmi di crittografia asimmetrica, che utilizzano due chiavi diverse.)
Gli algoritmi di crittografia, in generale, sono basati in matematica e possono variare da processi molto semplici a processi molto complessi a seconda del loro design. Nel caso di algoritmi di crittografia simmetrica, sono accoppiati con una singola chiave per convertire i dati leggibili (testo in chiaro) in incomprensibile incomprensibile (testo cifrato). Quindi usano la stessa chiave per decrittografare il testo cifrato in testo in chiaro. E tutto questo viene fatto in un modo che garantisce la riservatezza dei dati e la privacy. Figo, eh?,
Gli algoritmi di crittografia simmetrica sono in realtà noti con diversi nomi:
- Algoritmi a chiave simmetrica,
- Cifrari simmetrici,
- algoritmi a chiave segreta e
- Cifrari di massa. (Parleremo di più sui cifrari di massa un po ‘ più tardi.)
In generale, lo scopo o l’obiettivo della crittografia è di fare in modo che solo qualcuno con la chiave possa decifrare e leggere il messaggio segreto., Nel caso in cui sia necessario un rapido promemoria di come funziona la crittografia simmetrica, ecco una rapida panoramica:
In questo grafico sopra, spostandoti da sinistra a destra, vedrai che inizi con il testo in chiaro, i dati leggibili. Una volta che l’algoritmo di crittografia simmetrica e la chiave vengono applicati a tali dati, diventa testo cifrato illeggibile., Il modo per decifrare quel messaggio per decifrarne il significato è usare una chiave di decrittografia. Nel caso della crittografia simmetrica, la chiave di decrittografia è identica alla chiave utilizzata per crittografare i dati. Fondamentalmente, usi la stessa chiave due volte.
Cosa fanno effettivamente gli algoritmi di crittografia simmetrica?
In poche parole, un algoritmo simmetrico è un insieme di istruzioni in crittografia che utilizzano una chiave per crittografare e decrittografare i dati. Questi algoritmi e chiavi di crittografia sono leggeri nel senso che sono progettati per la velocità nell’elaborazione di grandi blocchi o flussi di dati., (Questo è il motivo per cui gli algoritmi di crittografia simmetrica sono noti come cifrari di massa.)
Gli algoritmi e le chiavi delle chiavi asimmetriche, d’altra parte, sono mangiatori di risorse. I tasti sono enormi e sono costosi da usare su larga scala. Quello che voglio dire è che succhiano un sacco di risorse di elaborazione della CPU e il tempo, la carica della batteria, e la larghezza di banda per l’esecuzione.
Ricorda come abbiamo descritto gli algoritmi simmetrici come un componente chiave del tuo warp drive? Continuiamo con questa analogia., Quindi, se si dovesse pensare a cosa sono gli algoritmi di crittografia asimmetrica, sarebbero come l’equivalente dei propulsori nel sistema di propulsione. Certo, ti porteranno lì alla fine, ma non sono adatti per la crittografia rapida su larga scala.
Tuttavia, sono ottimi per crittografare batch di dati più piccoli nei canali pubblici. E gli scambi di chiavi asimmetriche (di cui parleremo più a breve) sono un ottimo modo per distribuire le chiavi in quei canali pubblici insicuri.
Questo è il motivo per cui le persone spesso si rivolgono alla crittografia simmetrica per codificare grandi quantità di dati.,
Cosa determina la forza di un algoritmo di crittografia simmetrica?
Come scoprirai presto, non tutti gli algoritmi simmetrici sono creati allo stesso modo. Variano in termini di forza — ma cosa significa esattamente la forza nella crittografia? La risposta breve è che la forza crittografica è tutto su quanto sia difficile per un hacker di rompere la crittografia per ottenere l’accesso ai dati. La risposta più lunga, ovviamente, può variare a seconda del tipo di algoritmo valutato., Ma, in generale, la forza crittografica in genere si riduce ad alcuni tratti chiave:
- La lunghezza, la casualità e l’imprevedibilità della chiave simmetrica,
- La capacità dell’algoritmo di resistere o essere resistente agli attacchi noti e
- La mancanza di back door o altre vulnerabilità intenzionali.
La crittografia simmetrica può essere un po ‘ un atto di bilanciamento perché hai bisogno di algoritmi e chiavi che siano computazionalmente difficili ma abbastanza pratici da usare con prestazioni accettabili.,
Gli algoritmi di crittografia simmetrica non possono stare da soli nei canali pubblici
Mentre gli algoritmi di crittografia simmetrica potrebbero sembrare gli strumenti più logici per tutti i tipi di crittografia dei dati online, non è così semplice. Proprio come il sempre logico Spock e il carismatico Capitano Kirk, la crittografia simmetrica ha anche punti deboli, specialmente se utilizzata da sola nei canali pubblici., Queste debolezze si presentano sotto forma di distribuzione delle chiavi e problemi di gestione delle chiavi:
- Hai bisogno di una connessione sicura per distribuire chiavi simmetriche, e
- Cercare di tenere il passo con tutti coloro che hanno una copia della chiave potrebbe essere un dolore se lo hai dato a molte persone.
Quando si utilizza la crittografia simmetrica, idealmente, tu e la persona con cui stai comunicando risolvi la tua chiave segreta in anticipo (prima di utilizzarla per qualsiasi scambio di dati). Ciò significa che per condividere una chiave simmetrica in modo sicuro con qualcuno, avresti bisogno di incontrarli di persona per dargliela., Ma cosa succede se sei dall’altra parte del paese? O, peggio, cosa succede se sei dall’altra parte del mondo da loro?
Anche se questo non sarebbe un problema nell’universo di Star Trek, dove potresti semplicemente trasportare da un posto all’altro in pochi secondi, questo non è fattibile nel nostro mondo senza trasportatori del 21 ° secolo. Qui, le persone si scambiano informazioni con i server web in tutto il mondo ogni momento di ogni giorno. Ciò significa che le persone non possono incontrarsi prima del tempo per distribuire o ricevere le chiavi. Quindi, dobbiamo fare affidamento su altri mezzi per scambiare in modo sicuro le chiavi con altre parti.,
Questo è dove algoritmi asimmetrici — o, più specificamente, protocolli di scambio chiave — entrano in gioco. Gli scambi asimmetrici di chiavi consentono di scambiare chiavi simmetriche in canali pubblici altrimenti insicuri. Quello che si può o non può rendersi conto è che si sta effettivamente utilizzando questa combinazione di tecniche di crittografia simmetrica e asimmetrica in questo momento.
Le tecniche asimmetriche rendono possibile la crittografia simmetrica sicura su Internet
Consideriamo la tua connessione al nostro sito web come esempio. Vedi l’icona del lucchetto nel tuo browser?, Significa che sei connesso a un sito web sicuro.
Quindi, quando si è inizialmente connessi a TheSSLstore.com, il Suo browser ha dovuto eseguire un processo con il nostro server che è conosciuto come una stretta di mano di TLS. Questa stretta di mano è un modo per il server di dimostrare al browser che è legittimo e non è un impostore. (Sai, perché i criminali informatici amano fingere di essere altre persone per ingannare le persone a connettersi con loro. Sono un po ‘ come i romulani in quel modo — sempre impegnati in sotterfugi.,) Il processo di handshake utilizza la crittografia asimmetrica e processi di scambio di chiavi asimmetriche per farlo.
- Il processo di crittografia asimmetrica verifica le firme digitali.
- Il processo di scambio di chiavi asimmetriche crittografa il segreto pre-master che il browser e il server Web utilizzeranno per creare una chiave di sessione simmetrica.
Naturalmente, ci sono alcune versioni della stretta di mano — TLS 1.0, TLS 1.2, TLS 1.3 — e ci sono differenze specifiche nel modo in cui funzionano. (Ad esempio, Internet Engineering Task Force spinge per l’uso rigoroso di cifrari forward-secrecy-only in TLS 1.,3-ma questo è un argomento per un’altra volta.) Basta sapere che solo l’handshake TLS 1.2 dovrebbe essere il minimo utilizzato. A partire da ottobre 2020, Qualys SSL Labs riporta che il 99% dei siti supporta il protocollo TLS 1.2 e il 39.8% supporta il protocollo TLS 1.3.
Non entreremo nello specifico di come funziona l’handshake TLS qui, ma sappiamo che implica l’uso di suite di crittografia., Questi gruppi di cifre sono ciò che rendono possibile stabilire una sicura connessione HTTPS per determinare quale delle seguenti per l’uso:
- Un protocollo TLS ()
- Una chiave asimmetrica algoritmo di scambio (come lo scambio di chiavi Diffie-Hellman)
- Una massa di cifratura
- Una firma digitale
- Una funzione di hash (come SHA2-2)
- Un message authentication code (MAC) funzione
Si può leggere di più circa il processo in questo spiegatore blog su come l’handshake TLS opere. Ma per ora, restiamo con l’argomento a portata di mano di algoritmi di crittografia simmetrica.,
I due tipi di algoritmi simmetrici (cifrari)
Durante la crittografia simmetrica che avviene quando ci si connette in modo sicuro a un sito web, si sta utilizzando un cifrario di massa per farlo accadere. Esistono due sottocategorie di cifrari bulk: cifrari a blocchi e cifrari stream.
Cifrari a blocchi
In questo tipo di cifratura, i dati in chiaro si suddividono in gruppi di bit di lunghezza fissa noti come blocchi (che sono tipicamente collegati tramite un processo noto come concatenamento). Ogni blocco viene quindi crittografato come unità, il che rende questo processo un po ‘ lento., E se non ci sono abbastanza dati per riempire completamente un blocco,” padding ” (in genere un numero concordato di 0s) viene quindi utilizzato per garantire che i blocchi soddisfino i requisiti di lunghezza fissa.
Il cifrario a blocchi ideale ha una lunghezza di chiave enorme che non è pratica, quindi molti cifrari moderni devono ridimensionare le dimensioni delle chiavi per renderle utilizzabili. Ma proprio come una breve nota: a differenza della crittografia asimmetrica, le dimensioni delle chiavi di crittografia simmetriche non determinano la dimensione dei blocchi di dati.,
La maggior parte dei moderni algoritmi di crittografia simmetrica rientra nel campo di cifratura a blocchi e questi tipi di cifrari hanno opportunità di utilizzo e applicazione più ampie. Quindi, ci concentreremo principalmente su di loro qui. Ma se ti stai chiedendo quali sono i cifrari di flusso più popolari o comuni, non preoccuparti, ti abbiamo coperto.
Stream Ciphers
Con questo tipo di cifratura, crittografa i dati in chiaro un bit alla volta. Come tale, i dati vengono elaborati in un flusso piuttosto che in blocchi come nei cifrari a blocchi. Ciò rende il processo meno dispendioso in termini di risorse e più veloce da raggiungere.,
Ora, non entreremo in tutte le specifiche dei cifrari a blocchi e dei cifrari a flusso — questo è un altro argomento. Ma la buona notizia è che abbiamo già scritto un articolo che copre cifrari a blocchi vs cifrari flusso. Quindi, essere sicuri di controllare che uno fuori per uno sguardo più approfondito a quello che sono e come funzionano.
Ok, ora è qui che le cose iniziano a diventare eccitanti (o più complicate, a seconda della tua prospettiva). Con la crittografia a chiave condivisa, ci sono diversi noti algoritmi a chiave simmetrica da conoscere., Rompiamoli tutti per capire cosa sono e come funzionano.
Elenco degli algoritmi simmetrici: I 3 tipi di algoritmi simmetrici più comuni
Per questa sezione, abbiamo messo insieme un elenco di algoritmi simmetrici che ci aiuterà a navigare tra i cifrari simmetrici più comuni. Inizieremo con uno dei più antichi e lavoreremo fino al “più recente e più grande”, ovvero l’algoritmo che in genere usiamo oggi per la moderna crittografia simmetrica.
Data Encryption Standard (DES)
Il primo nella nostra lista è lo standard di crittografia dei dati., DES, noto anche come DEA (abbreviazione di data encryption algorithm), è uno dei primi algoritmi di crittografia simmetrica che da allora è stato deprecato. Si basa sul cifrario Feistel (molto simile a molte altre varietà di cifrari a blocchi) ed è stato in realtà considerato uno dei primi algoritmi simmetrici ad essere adottato come Federal Information Processing Standard (FIPS) nel 1976.
DES risale ai primi anni 1970, quando la sua forma originale (“Lucifero”) è stato sviluppato da IBM crittografo Horst Feistel., IBM riferisce che il metodo di crittografia è stato originariamente creato per volere della Lloyds Bank del Regno Unito. Il National Bureau of Standards (ora noto come National Institute of Standards, o NIST in breve) ha finito per cercare proposte per una domanda commerciale per la crittografia, e IBM ha presentato una variante di esso. E ‘ stato anche desiderato per l’uso da parte della National Security Agency (NSA) per proteggere i propri dati.
Questo tipo di crittografia simmetrica associa input di una lunghezza specifica a output di una lunghezza specifica., Come tale, opera su blocchi a 64 bit — il che significa che potrebbe crittografare i dati in gruppi fino a 64 blocchi contemporaneamente-e ha una dimensione della chiave di 56 bit. Ci sono anche 8 bit di parità aggiuntivi per la chiave, che servono come un modo per verificare la presenza di errori di trasmissione dei dati. Tuttavia, è importante notare che i bit di parità non sono qualcosa che useresti mai per la crittografia.
Questa chiave di dimensioni è in realtà molto piccola per gli standard odierni, il che la rende altamente suscettibile agli attacchi di forza bruta., Inoltre, le lunghezze della chiave e del blocco differiscono dalle lunghezze originali della chiave e del blocco di Lucifer, entrambe ridotte da 128 bit.
Per saperne di più su come funzionano le reti DES encryption e Feistel, dai un’occhiata a questo fantastico video di Coursera e Stanford University.
Il documento DES (Data Encryption Standard) (FIPS PUB 46-3) è stato ufficialmente ritirato il 19 maggio 2005, insieme ai documenti FIPS 74 e FIPS 81., Il Segretario del commercio del National institute of Standards and Technology ha pubblicato quanto segue nel Registro federale:
“Questi FIPS vengono ritirati perché FIPS 46-3, DES, non fornisce più la sicurezza necessaria per proteggere le informazioni del governo federale. FIPS 74 e 81 sono standard associati che prevedono l’implementazione e il funzionamento del DES.”
La crittografia DES è stata seguita da triple data encryption algorithm (TDEA) per alcune applicazioni, anche se non tutte., Tuttavia, DES è stato principalmente sostituito come raccomandazione dall’advanced encryption standard, o ciò che è noto come crittografia AES, nel 2000. Questo è ciò che usiamo più comunemente oggi per la crittografia simmetrica.
Ora, esploriamo questi due altri tipi di algoritmi di crittografia simmetrica.
Triple Data Encryption Algorithm (TDEA)
L’algoritmo triple data encryption, che è stato creato alla fine degli anni 1990, è un po ‘ complicato in quanto in realtà passa da diverse abbreviazioni: TDEA, TDES e 3DES., Ma come si può probabilmente intuire dal suo nome, 3DES si basa sul concetto di DES ma con una torsione.
A differenza del suo predecessore, TDEA utilizza più chiavi separate per crittografare i dati: una variante di TDEA utilizza due chiavi e l’altra variante utilizza tre chiavi (da cui la “tripla” nel suo nome). Il più forte dei due è quello che utilizza tre tasti.,
Ecco un’illustrazione di come funziona il processo TDEA a tre chiavi:
L’uso di più chiavi rende l’elaborazione dei dati lenta e aumenta il sovraccarico computazionale, motivo per cui le organizzazioni spesso saltavano 3DES e passavano direttamente all’utilizzo di AES.
TDEA funziona utilizzando una dimensione della chiave decente a 168 bit., Tuttavia, come DES, 3DES opera anche su piccoli blocchi a 64 bit. La sua piccola dimensione del blocco lo ha reso suscettibile alla vulnerabilità sweet32 (CVE-2016-2183 e CVE-2016-6329), o quello che è noto come l’attacco di compleanno sweet32. Questo exploit sfrutta una vulnerabilità che consente alle parti non intenzionali di accedere a porzioni di dati crittografati DES/TDEA.
L’algoritmo di crittografia a chiave simmetrica TDEA è impostato per deprecare in termini di utilità per la protezione crittografica nel 2023. Tuttavia, nel frattempo, NIST SP 800-76 Rev., 2 specifica che 3DES può essere utilizzato dalle organizzazioni governative federali per proteggere i dati sensibili non classificati a condizione che vengano utilizzati “nel contesto di un programma di sicurezza totale.”Tale programma includerebbe:
- Buone pratiche di sicurezza delle informazioni,
- Forti procedure di sicurezza fisica e
- Controlli di accesso alla rete di computer o al sistema.
Advanced Encryption Standard (AES)
AES è il tipo più comune di algoritmo di crittografia simmetrica che usiamo oggi. Infatti, anche la NSA utilizza la crittografia AES per proteggere i suoi dati sensibili.,
AES è una variante della famiglia Rijndael di algoritmi di crittografia simmetrica. A differenza delle sue controparti DES o TDEA, si basa su una rete di permutazione di sostituzione. Quindi, usa questo come fondamento al posto del cifrario di Feistel. Troverete lo standard di crittografia avanzata in uso per tutto, dalla crittografia SSL / TLS alla sicurezza wireless e del processore. È veloce, sicuro e non aumenta notevolmente il sovraccarico di elaborazione (almeno, quando si utilizza il tasto destro).,
AES opera su blocchi di dimensioni di 128 bit, indipendentemente dalla dimensione della chiave utilizzata, ed esegue operazioni di crittografia in più round.
Ci sono un totale di quattro sotto-processi di crittografia AES:
- AddRoundKey
- SubBytes
- ShiftRows
- MixColumns
I round, che vengono eseguiti sui dati in chiaro, utilizzano le sostituzioni da una tabella di ricerca. Quindi, uno dei round sembra simile a questo:
AES, che è diventato il nuovo standard di crittografia approvato da FIPS dopo aver sostituito DES e sostituito 3DES, ha una dimensione massima della chiave fino a 256 bit. Questo è circa 4,5 volte più grande di un tasto DES. Qualsiasi più grande, e non sarebbe pratico per applicazioni su larga scala. Ora, la dimensione della chiave determina quanti round di operazioni verranno eseguiti, ad esempio, una chiave a 128 bit avrà 10 round, mentre una chiave a 256 bit ne avrà 14.
Naturalmente, la crittografia AES è incredibilmente forte., Quindi, qualsiasi tentativo di decifrare AES tramite la forza bruta usando la moderna tecnologia informatica è “inutile”, come un certo collettivo di individui cibernetici ama dire. Anche il tenente comandante Data probabilmente lotterebbe con un tale sforzo computazionale. Lo dico perché anche i computer quantistici non dovrebbero avere un effetto così grande sull’algoritmo di crittografia simmetrica come, ad esempio, i moderni metodi di crittografia asimmetrica. (I metodi di crittografia simmetrica richiederebbero chiavi più grandi per essere resistenti ai quantum, mentre i metodi a chiave pubblica non saranno più sicuri.,)
Per uno sguardo più approfondito allo standard di crittografia avanzata, assicuratevi di controllare il nostro altro articolo sull’argomento. Lì, avrai uno sguardo altamente tecnico su come funziona AES.
Naturalmente, questi non sono gli unici tre algoritmi simmetrici in uso
Ci sono molti altri tipi di algoritmi di crittografia simmetrica che sono utili per diversi scopi e funzioni crittografiche. Solo per darti un assaggio veloce, l’elenco di alcuni di questi algoritmi include:
Naturalmente, ci sono anche altri codici, ma non li includeremo tutti qui., Ma questo almeno ti dà alcuni esempi di ciò che è là fuori per quanto riguarda gli algoritmi AES.
Dove troverai algoritmi simmetrici al lavoro
Gli algoritmi di crittografia simmetrica, se usati da soli, sono più adatti per crittografare i dati a riposo o in canali non pubblici. Lo dico perché spesso si trovano a proteggere i dati a riposo in varie situazioni, inclusi database, servizi online e transazioni bancarie. (Quest’ultimo è perché gli standard di sicurezza dei dati del settore delle carte di pagamento, o PCI DSS in breve, lo richiede.,)
Tuttavia, quelli non sono gli unici posti in cui sono utili. Oh, no-troverete anche algoritmi simmetrici in uso su Internet., Quando si utilizza in combinazione con la crittografia asimmetrica per lo scambio della chiave, ad esempio quando ci si connette a un sito web sicuro — poi crittografia simmetrica entra in gioco con servizi come:
- Sito web di scambio di dati
- Google G Suite di servizi online
- CodeGuard sito web strumento di backup
- SalesForce platform
che Cosa Abbiamo pensato su Algoritmi di Crittografia Simmetrica (TL;DR)
non aveva voglia di tuffarsi in tutte le tecniche mumbo-jumbo? (O non avevo voglia di leggere i miei confronti nerd di Star Trek sugli algoritmi di crittografia simmetrica?,) Nessun problema. Ecco alcuni dei principali takeaway di questo articolo sugli algoritmi a chiave simmetrica:
- Gli algoritmi di crittografia sono fondamentalmente istruzioni passo-passo per l’esecuzione di funzioni crittografiche (come crittografia, decrittografia, hashing, ecc.). Gli algoritmi sono disponibili in varietà asimmetriche e simmetriche. Nel primo, una chiave crittografa i dati e un’altra decrittografa i dati. In quest’ultimo, una chiave esegue sia le funzioni di crittografia che di decrittografia.
- Gli algoritmi simmetrici sono processi efficienti progettati per crittografare i dati in canali sicuri e non pubblici.,
- Un processo noto come handshake TLS consente di utilizzare una forma di crittografia simmetrica nei canali pubblici.
- Esistono molti tipi diversi di algoritmi a chiave simmetrica che sono stati utilizzati negli ultimi anni. Tre dei più comuni includono DES, TDEA / 3DES e AES.
Assicurati di rimanere sintonizzato per il nostro prossimo capitolo in questa serie di blog sulla crittografia simmetrica nelle prossime settimane. E fino alla prossima volta live vivi a lungo e correttamente.
- #Algoritmi di crittografia
- # Simmetrica