Crittografia - Encryption

Nella crittografia , la crittografia è il processo di codifica delle informazioni. Questo processo converte la rappresentazione originale delle informazioni, nota come testo in chiaro , in una forma alternativa nota come testo cifrato . Idealmente, solo le parti autorizzate possono decifrare un testo cifrato in testo normale e accedere alle informazioni originali. La crittografia non impedisce di per sé l'interferenza, ma nega il contenuto intelligibile a un potenziale intercettore.

Per motivi tecnici, uno schema di crittografia di solito utilizza una chiave di crittografia pseudo-casuale generata da un algoritmo . È possibile decifrare il messaggio senza possedere la chiave ma, per uno schema di crittografia ben progettato, sono necessarie notevoli risorse e competenze computazionali. Un destinatario autorizzato può facilmente decifrare il messaggio con la chiave fornita dal mittente ai destinatari ma non agli utenti non autorizzati.

Storicamente, varie forme di crittografia sono state utilizzate per aiutare nella crittografia. Le prime tecniche di crittografia venivano spesso utilizzate nella messaggistica militare. Da allora, sono emerse nuove tecniche che sono diventate comuni in tutte le aree dell'informatica moderna. I moderni sistemi di crittografia utilizzano i concetti di chiave pubblica e chiave simmetrica . Le moderne tecniche di crittografia garantiscono la sicurezza perché i computer moderni sono inefficienti nel decifrare la crittografia.

Storia

Antica

Una delle prime forme di crittografia è la sostituzione dei simboli, che è stata trovata per la prima volta nella tomba di Khnumhotep II, che visse nel 1900 aC in Egitto. La crittografia per la sostituzione dei simboli è "non standard", il che significa che i simboli richiedono un codice o una chiave per essere compresi. Questo tipo di crittografia antica era utilizzato in tutta l'antica Grecia e a Roma per scopi militari. Uno dei più famosi sviluppi di crittografia militare è stato il Caesar Cipher, che era un sistema in cui una lettera nel testo normale viene spostata verso il basso di un numero fisso di posizioni lungo l'alfabeto per ottenere la lettera codificata. Un messaggio codificato con questo tipo di crittografia potrebbe essere decodificato con il numero fisso sul Caesar Cipher.

Intorno all'800 d.C., il matematico arabo Al-Kindi sviluppò la tecnica dell'analisi della frequenza, che era un tentativo di decifrare sistematicamente i cifrari di Cesare. Questa tecnica ha esaminato la frequenza delle lettere nel messaggio crittografato per determinare lo spostamento appropriato. Questa tecnica fu resa inefficace dopo la creazione del cifrario polialfabetico di Leone Alberti nel 1465, che incorporava diversi insiemi di lingue. Affinché l'analisi della frequenza sia utile, la persona che cerca di decifrare il messaggio dovrebbe sapere quale lingua ha scelto il mittente.

XIX-XX secolo

Intorno al 1790, Thomas Jefferson teorizzò un cifrario per codificare e decodificare i messaggi al fine di fornire un modo più sicuro di corrispondenza militare. Il cifrario, noto oggi come Wheel Cipher o Jefferson Disk , sebbene non sia mai stato effettivamente costruito, è stato teorizzato come una bobina in grado di confondere un messaggio inglese fino a 36 caratteri. Il messaggio potrebbe essere decifrato collegando il messaggio confuso a un ricevitore con un codice identico.

Un dispositivo simile al Jefferson Disk, l' M-94 , fu sviluppato nel 1917 indipendentemente dal maggiore dell'esercito americano Joseph Mauborne. Questo dispositivo è stato utilizzato nelle comunicazioni militari statunitensi fino al 1942.

Nella seconda guerra mondiale, le potenze dell'Asse usarono una versione più avanzata dell'M-94 chiamata Enigma Machine . L'Enigma Machine era più complesso perché, a differenza della Jefferson Wheel e dell'M-94, ogni giorno il miscuglio di lettere passava a una combinazione completamente nuova. La combinazione di ogni giorno era nota solo all'Asse, quindi molti pensavano che l'unico modo per decifrare il codice sarebbe stato provare oltre 17.000 combinazioni entro 24 ore. Gli Alleati usarono la potenza di calcolo per limitare severamente il numero di combinazioni ragionevoli che dovevano controllare ogni giorno, portando alla rottura della Macchina Enigma.

Moderno

Oggi, la crittografia viene utilizzata nel trasferimento di comunicazioni su Internet per motivi di sicurezza e commercio. Poiché la potenza di calcolo continua ad aumentare, la crittografia del computer è in continua evoluzione per prevenire gli attacchi.

Crittografia in crittografia

Nel contesto della crittografia, la crittografia funge da meccanismo per garantire la riservatezza . Poiché i dati possono essere visibili su Internet, le informazioni sensibili come password e comunicazioni personali possono essere esposte a potenziali intercettori . Il processo di crittografia e decrittografia dei messaggi coinvolge le chiavi . I due principali tipi di chiavi nei sistemi crittografici sono la chiave simmetrica e la chiave pubblica (nota anche come chiave asimmetrica).

Molti algoritmi crittografici complessi utilizzano spesso un'aritmetica modulare semplice nelle loro implementazioni.

tipi

Tasto simmetrico

Negli schemi a chiave simmetrica , le chiavi di crittografia e decrittografia sono le stesse. Le parti comunicanti devono avere la stessa chiave per ottenere una comunicazione sicura. La German Enigma Machine utilizzava ogni giorno una nuova chiave simmetrica per codificare e decodificare i messaggi.

Chiave pubblica

Illustrazione di come viene utilizzata la crittografia all'interno dei server Crittografia a chiave pubblica .

In crittografia a chiave pubblica schemi, la chiave di crittografia viene pubblicato per chiunque di utilizzare e messaggi cifrare. Tuttavia, solo la parte ricevente ha accesso alla chiave di decrittazione che consente la lettura dei messaggi. La crittografia a chiave pubblica è stata descritta per la prima volta in un documento segreto nel 1973; in precedenza, tutti gli schemi di crittografia erano a chiave simmetrica (chiamata anche chiave privata). Sebbene pubblicato successivamente, il lavoro di Diffie e Hellman è stato pubblicato in una rivista con un ampio numero di lettori e il valore della metodologia è stato esplicitamente descritto. Il metodo divenne noto come scambio di chiavi Diffie-Hellman .

RSA (Rivest-Shamir-Adleman) è un altro notevole sistema di crittografia a chiave pubblica . Creato nel 1978, è ancora oggi utilizzato per applicazioni che coinvolgono la firma digitale . Utilizzando la teoria dei numeri , l'algoritmo RSA seleziona due numeri primi , che aiutano a generare sia le chiavi di crittografia che di decrittografia.

Un'applicazione di crittografia a chiave pubblica disponibile pubblicamente chiamata Pretty Good Privacy (PGP) è stata scritta nel 1991 da Phil Zimmermann e distribuita gratuitamente con il codice sorgente. PGP è stato acquistato da Symantec nel 2010 ed è regolarmente aggiornato.

Usi

La crittografia è stata a lungo utilizzata da militari e governi per facilitare la comunicazione segreta. Ora è comunemente usato per proteggere le informazioni all'interno di molti tipi di sistemi civili. Ad esempio, il Computer Security Institute ha riferito che nel 2007, il 71% delle aziende intervistate utilizzava la crittografia per alcuni dati in transito e il 53% utilizzava la crittografia per alcuni dati in archivio. La crittografia può essere utilizzata per proteggere i dati "a riposo", come le informazioni archiviate su computer e dispositivi di archiviazione (es. unità flash USB ). Negli ultimi anni, ci sono state numerose segnalazioni di dati riservati, come i record personali dei clienti, esposti a causa della perdita o del furto di laptop o unità di backup; la crittografia di tali file inattivi aiuta a proteggerli se le misure di sicurezza fisica falliscono. I sistemi di gestione dei diritti digitali , che impediscono l'uso o la riproduzione non autorizzati di materiale protetto da copyright e proteggono il software dal reverse engineering (vedi anche protezione dalla copia ), sono un altro esempio un po' diverso di utilizzo della crittografia sui dati a riposo.

La crittografia è utilizzato anche per i dati di protezione in transito, per esempio dati che vengono trasferiti tramite le reti (ad esempio Internet, e-commerce ), telefoni cellulari , microfoni senza fili , citofono senza fili sistemi, Bluetooth dispositivi e bancari bancomat . Negli ultimi anni ci sono state numerose segnalazioni di dati in transito intercettati. I dati dovrebbero anche essere crittografati quando vengono trasmessi attraverso le reti al fine di proteggere contro le intercettazioni del traffico di rete da utenti non autorizzati.

Cancellazione dei dati

I metodi convenzionali per l'eliminazione permanente dei dati da un dispositivo di archiviazione comportano la sovrascrittura dell'intero contenuto del dispositivo con zeri, uno o altri modelli, un processo che può richiedere una notevole quantità di tempo, a seconda della capacità e del tipo di supporto di archiviazione. La crittografia offre un modo per rendere la cancellazione quasi istantanea. Questo metodo è chiamato crypto-shredding . Un'implementazione di esempio di questo metodo può essere trovata su dispositivi iOS , in cui la chiave crittografica è conservata in una " memoria cancellabile " dedicata . Poiché la chiave è archiviata sullo stesso dispositivo, questa configurazione da sola non offre una protezione completa della privacy o della sicurezza se una persona non autorizzata ottiene l'accesso fisico al dispositivo.

Limitazioni

La crittografia viene utilizzata nel 21° secolo per proteggere i dati digitali e i sistemi informativi. Poiché la potenza di calcolo è aumentata nel corso degli anni, la tecnologia di crittografia è diventata solo più avanzata e sicura. Tuttavia, questo progresso tecnologico ha anche messo in luce una potenziale limitazione dei metodi di crittografia odierni.

La lunghezza della chiave di crittografia è un indicatore della forza del metodo di crittografia. Ad esempio, la chiave di crittografia originale, DES (Data Encryption Standard), era di 56 bit, il che significa che aveva 2^56 possibilità di combinazione. Con la potenza di calcolo odierna, una chiave a 56 bit non è più sicura, essendo vulnerabile all'hacking tramite un attacco di forza bruta . Oggi lo standard delle moderne chiavi di crittografia arriva fino a 2048 bit con il sistema RSA. Decifrare una chiave di crittografia a 2048 bit è quasi impossibile alla luce del numero di combinazioni possibili. Tuttavia, l'informatica quantistica minaccia di cambiare questa natura sicura.

L'informatica quantistica utilizza le proprietà della meccanica quantistica per elaborare grandi quantità di dati contemporaneamente. È stato scoperto che l'informatica quantistica raggiunge velocità di calcolo migliaia di volte superiori rispetto ai supercomputer di oggi. Questa potenza di calcolo rappresenta una sfida per l'odierna tecnologia di crittografia. Ad esempio, la crittografia RSA utilizza la moltiplicazione di numeri primi molto grandi per creare un numero semiprimo per la sua chiave pubblica. La decodifica di questa chiave senza la sua chiave privata richiede che venga preso in considerazione questo numero semiprimo, operazione che può richiedere molto tempo con i computer moderni. Ci vorrebbe un supercomputer ovunque tra settimane o mesi per tenere conto di questa chiave. Tuttavia, l'informatica quantistica può utilizzare algoritmi quantistici per fattorizzare questo numero semiprimo nello stesso tempo necessario ai normali computer per generarlo. Ciò renderebbe tutti i dati protetti dall'attuale crittografia a chiave pubblica vulnerabili agli attacchi di quantum computing. Anche altre tecniche di crittografia come la crittografia a curva ellittica e la crittografia a chiave simmetrica sono vulnerabili al calcolo quantistico.

Mentre l'informatica quantistica potrebbe rappresentare una minaccia per la sicurezza della crittografia in futuro, l'informatica quantistica così com'è attualmente è ancora molto limitata. L'informatica quantistica attualmente non è disponibile in commercio, non può gestire grandi quantità di codice ed esiste solo come dispositivi computazionali, non come computer. Inoltre, i progressi dell'informatica quantistica potranno essere utilizzati anche a favore della crittografia. La National Security Agency (NSA) sta attualmente preparando standard di crittografia post-quantistica per il futuro. La crittografia quantistica promette un livello di sicurezza che sarà in grado di contrastare la minaccia dell'informatica quantistica.

Attacchi e contromisure

La crittografia è uno strumento importante, ma non è sufficiente da sola per garantire la sicurezza o la riservatezza delle informazioni sensibili per tutto il loro ciclo di vita. La maggior parte delle applicazioni di crittografia protegge le informazioni solo a riposo o in transito, lasciando i dati sensibili in testo non crittografato e potenzialmente vulnerabili alla divulgazione impropria durante l'elaborazione, ad esempio da parte di un servizio cloud . La crittografia omomorfa e il calcolo multipartitico sicuro sono tecniche emergenti per l'elaborazione di dati crittografati; queste tecniche sono generali e complete di Turing ma comportano elevati costi di calcolo e/o di comunicazione.

In risposta alla crittografia dei dati inattivi, gli avversari informatici hanno sviluppato nuovi tipi di attacchi. Queste minacce più recenti alla crittografia dei dati inattivi includono attacchi crittografici, attacchi di testo cifrato rubato , attacchi alle chiavi di crittografia, attacchi interni , danneggiamento dei dati o attacchi all'integrità, attacchi di distruzione dei dati e attacchi ransomware . Le tecnologie di frammentazione dei dati e protezione attiva dei dati di difesa tentano di contrastare alcuni di questi attacchi, distribuendo, spostando o modificando il testo cifrato, quindi è più difficile identificare, rubare, corrompere o distruggere.

Protezione dell'integrità dei testi cifrati

La crittografia, di per sé, può proteggere la riservatezza dei messaggi, ma sono ancora necessarie altre tecniche per proteggere l'integrità e l'autenticità di un messaggio; ad esempio, verifica di un codice di autenticazione del messaggio (MAC) o di una firma digitale . Gli algoritmi di crittografia autenticati sono progettati per fornire insieme sia la crittografia che la protezione dell'integrità. Gli standard per il software e l' hardware crittografico per eseguire la crittografia sono ampiamente disponibili, ma utilizzare con successo la crittografia per garantire la sicurezza può essere un problema impegnativo. Un singolo errore nella progettazione o nell'esecuzione del sistema può consentire attacchi di successo. A volte un avversario può ottenere informazioni non crittografate senza annullare direttamente la crittografia. Vedere ad esempio analisi del traffico , TEMPESTA o cavallo di Troia .

I meccanismi di protezione dell'integrità come i MAC e le firme digitali devono essere applicati al testo cifrato quando viene creato per la prima volta, in genere sullo stesso dispositivo utilizzato per comporre il messaggio, per proteggere un messaggio end-to-end lungo l'intero percorso di trasmissione; in caso contrario, qualsiasi nodo tra il mittente e l'agente di crittografia potrebbe potenzialmente manometterlo. La crittografia al momento della creazione è sicura solo se il dispositivo di crittografia stesso dispone di chiavi corrette e non è stato manomesso. Se un dispositivo endpoint è stato configurato per considerare attendibile un certificato radice controllato da un utente malintenzionato, ad esempio, l'utente malintenzionato può sia ispezionare che manomettere i dati crittografati eseguendo un attacco man-in-the-middle ovunque lungo il percorso del messaggio. La pratica comune dell'intercettazione TLS da parte degli operatori di rete rappresenta una forma controllata e istituzionalmente sanzionata di tale attacco, ma i paesi hanno anche tentato di impiegare tali attacchi come forma di controllo e censura.

Lunghezza e riempimento del testo cifrato

Anche quando la crittografia nasconde correttamente il contenuto di un messaggio e non può essere manomesso a riposo o in transito, la lunghezza di un messaggio è una forma di metadati che può comunque far trapelare informazioni sensibili sul messaggio. Ad esempio, i noti attacchi CRIME e BREACH contro HTTPS erano attacchi di canale laterale che si basavano sulla perdita di informazioni attraverso la lunghezza del contenuto crittografato. L'analisi del traffico è un'ampia classe di tecniche che spesso utilizza le lunghezze dei messaggi per dedurre un'implementazione sensibile sui flussi di traffico aggregando informazioni su un numero elevato di messaggi.

Riempire il payload di un messaggio prima di crittografarlo può aiutare a oscurare la vera lunghezza del testo in chiaro, al costo di aumentare le dimensioni del testo cifrato e di introdurre o aumentare il sovraccarico della larghezza di banda . I messaggi possono essere riempiti in modo casuale o deterministico , con ogni approccio con diversi compromessi. La crittografia e il riempimento dei messaggi per formare blob casuali uniformi o PURB è una pratica che garantisce che il testo cifrato non perda metadati sul contenuto del suo testo in chiaro e perda informazioni asintoticamente minime attraverso la sua lunghezza.

Guarda anche

Riferimenti

Ulteriori letture