EITC/IS/ACC Advanced Classical Cryptography è il programma di certificazione IT europea che migliora il livello di competenza nella crittografia classica, concentrandosi principalmente sulla crittografia a chiave pubblica, con un'introduzione ai cifrari a chiave pubblica pratici, nonché alle firme digitali, all'infrastruttura a chiave pubblica e certificati di sicurezza ampiamente utilizzati in Internet.
Il curriculum dell'EITC/IS/ACC Advanced Classical Cryptography si concentra sulla crittografia a chiave pubblica (asimmetrica), partendo dall'introduzione al Diffie-Hellman Key Exchange e al problema dei log discreti (compresa la sua generalizzazione), per poi passare alla crittografia con problemi di log discreti, che coprono lo schema di crittografia Elgamal, le curve ellittiche e la crittografia a curva ellittica (ECC), le firme digitali (inclusi i servizi di sicurezza e la firma digitale Elgamal), le funzioni hash (inclusa la funzione SHA-1), i codici di autenticazione dei messaggi (inclusi MAC e HMAC), definizione della chiave (inclusi Symmetric Key Establishment SKE e Kerberos) per concludere con la considerazione della classe degli attacchi man-in-the-middle, insieme ai certificati crittografici e all'infrastruttura a chiave pubblica (PKI), all'interno della struttura seguente , che comprende contenuti didattici video completi come riferimento per questa certificazione EITC.
La crittografia si riferisce a modalità di comunicazione sicura in presenza di un avversario. La crittografia, in senso lato, è il processo di creazione e analisi di protocolli che impediscono a terzi o al pubblico in generale di accedere a messaggi privati (crittografati). La crittografia classica moderna si basa su diverse caratteristiche principali della sicurezza delle informazioni come la riservatezza dei dati, l'integrità dei dati, l'autenticazione e il non ripudio. In contrasto con la crittografia quantistica, che si basa su regole della fisica quantistica radicalmente diverse che caratterizzano la natura, la crittografia classica si riferisce alla crittografia basata sulle leggi della fisica classica. I campi della matematica, dell'informatica, dell'ingegneria elettrica, delle scienze della comunicazione e della fisica si incontrano tutti nella crittografia classica. Il commercio elettronico, le carte di pagamento basate su chip, le valute digitali, le password dei computer e le comunicazioni militari sono tutti esempi di applicazioni di crittografia.
Prima dell'era attuale, la crittografia era quasi sinonimo di crittografia, trasformando le informazioni da leggibili a incomprensibili. Per impedire agli aggressori di ottenere l'accesso a un messaggio crittografato, il mittente condivide il processo di decodifica solo con i destinatari previsti. I nomi Alice ("A") per il mittente, Bob ("B") per il destinatario previsto ed Eve ("intercettatore") per l'avversario sono spesso usati nella letteratura crittografica.
I metodi di crittografia sono diventati sempre più complessi e le sue applicazioni sono state più diversificate, dallo sviluppo di macchine cifratrici a rotore nella prima guerra mondiale e dall'introduzione dei computer nella seconda guerra mondiale.
La crittografia moderna dipende fortemente dalla teoria matematica e dalla pratica dell'informatica; i metodi crittografici sono costruiti attorno a presupposti di durezza computazionale, il che li rende difficili da violare in pratica per qualsiasi avversario. Sebbene sia teoricamente possibile irrompere in un sistema ben progettato, in pratica è impossibile. Tali schemi sono definiti "sicuri dal punto di vista computazionale" se sono adeguatamente costruiti; tuttavia, le scoperte teoriche (ad esempio, miglioramenti nei metodi di fattorizzazione degli interi) e una tecnologia di calcolo più veloce richiedono una rivalutazione costante e, se necessario, l'adattamento di questi progetti. Esistono sistemi di informazioni teoricamente sicuri, come il one-time pad, che possono essere dimostrati indistruttibili anche con una potenza di calcolo infinita, ma sono significativamente più difficili da impiegare nella pratica rispetto ai migliori schemi teoricamente fragili ma computazionalmente sicuri.
Nell'era dell'informazione, il progresso della tecnologia crittografica ha prodotto una serie di sfide legali. Molte nazioni hanno classificato la crittografia come un'arma, limitandone o vietandone l'uso e l'esportazione a causa del suo potenziale di spionaggio e sedizione. Gli investigatori possono obbligare alla consegna delle chiavi di crittografia per i documenti pertinenti a un'indagine in alcuni luoghi in cui la crittografia è lecita. Nel caso dei media digitali, la crittografia svolge anche un ruolo chiave nella gestione dei diritti digitali e nei conflitti di violazione del copyright.
Il termine "crittografo" (in contrapposizione a "crittogramma") è stato utilizzato per la prima volta nel diciannovesimo secolo, nel racconto di Edgar Allan Poe "The Gold-Bug".
Fino a poco tempo, la crittografia si riferiva quasi esclusivamente alla "crittografia", che è l'atto di trasformare i dati ordinari (noti come testo in chiaro) in un formato illeggibile (chiamato testo cifrato). La decrittazione è l'opposto della crittografia, ovvero passare da un testo cifrato incomprensibile a un testo in chiaro. Un cifrario (o cifrario) è un insieme di tecniche che eseguono la crittografia e la decrittografia nell'ordine inverso. L'algoritmo e, in ogni caso, una “chiave” sono responsabili dell'esecuzione dettagliata del cifrario. La chiave è un segreto (preferibilmente conosciuto solo dai comunicanti) che viene utilizzato per decifrare il testo cifrato. È comunemente una stringa di caratteri (idealmente breve in modo che possa essere ricordata dall'utente). Un "crittosistema" è la raccolta ordinata di elementi di potenziali finiti testi in chiaro, testi cifrati, chiavi e le procedure di crittografia e decrittazione che corrispondono a ciascuna chiave in termini matematici formali. Le chiavi sono cruciali sia formalmente che praticamente, perché i codici con chiavi fisse possono essere facilmente violati utilizzando solo le informazioni del codice, rendendoli inutili (o addirittura controproducenti) per la maggior parte degli scopi.
Storicamente, i cifrari venivano spesso utilizzati senza procedure aggiuntive come l'autenticazione o i controlli di integrità per la crittografia o la decrittografia. I crittosistemi sono divisi in due categorie: simmetrici e asimmetrici. La stessa chiave (la chiave segreta) viene utilizzata per crittografare e decrittare un messaggio in sistemi simmetrici, gli unici conosciuti fino agli anni '1970. Poiché i sistemi simmetrici utilizzano lunghezze di chiave più brevi, la manipolazione dei dati nei sistemi simmetrici è più veloce rispetto ai sistemi asimmetrici. I sistemi asimmetrici crittografano una comunicazione con una "chiave pubblica" e la decifrano utilizzando una "chiave privata" simile. L'utilizzo di sistemi asimmetrici migliora la sicurezza della comunicazione, a causa della difficoltà di determinare la relazione tra le due chiavi. RSA (Rivest–Shamir–Adleman) ed ECC sono due esempi di sistemi asimmetrici (Elliptic Curve Cryptography). L'AES (Advanced Encryption Standard), ampiamente utilizzato, che ha sostituito il precedente DES, è un esempio di algoritmo simmetrico di alta qualità (Data Encryption Standard). Le varie tecniche di groviglio linguistico dei bambini, come Pig Latin o altri cant, e in effetti tutti gli schemi crittografici, per quanto seriamente intesi, da qualsiasi fonte prima dell'introduzione del blocco unico all'inizio del ventesimo secolo, sono esempi di bassa qualità algoritmi simmetrici.
Il termine "codice" è spesso usato colloquialmente per riferirsi a qualsiasi tecnica di crittografia o di occultamento dei messaggi. Tuttavia, in crittografia, il codice si riferisce alla sostituzione di una parola in codice con un'unità di testo in chiaro (ad esempio, una parola o una frase significativa) (ad esempio, "wallaby" sostituisce "attacco all'alba"). Al contrario, un testo cifrato viene creato modificando o sostituendo un elemento al di sotto di tale livello (una lettera, una sillaba o una coppia di lettere, per esempio) per formare un testo cifrato.
La crittoanalisi è lo studio dei modi per decrittografare i dati crittografati senza avere accesso alla chiave necessaria per farlo; in altre parole, è lo studio di come "rompere" gli schemi di crittografia o le loro implementazioni.
In inglese, alcune persone usano in modo intercambiabile i termini "crittografia" e "crittografia", mentre altri (compresa la pratica militare statunitense in generale) usano "crittografia" per riferirsi all'uso e alla pratica di tecniche crittografiche e "crittografia" per riferirsi alla combinazione studio di crittografia e crittoanalisi. L'inglese è più adattabile di un certo numero di altre lingue, dove la "crittologia" (come praticata dai crittografi) è sempre usata nel secondo senso. La steganografia è talvolta inclusa nella crittografia, secondo RFC 2828.
La crittolinguistica è lo studio delle proprietà del linguaggio che hanno una certa rilevanza in crittografia o crittografia (ad esempio, statistiche sulla frequenza, combinazioni di lettere, modelli universali e così via).
La crittografia e la crittoanalisi hanno una lunga storia.
La storia della crittografia è l'articolo principale.
Prima dell'era moderna, la crittografia riguardava principalmente la riservatezza dei messaggi (cioè la crittografia): la conversione dei messaggi da una forma intelligibile a una incomprensibile e ancora, rendendoli illeggibili da intercettori o intercettatori senza una conoscenza segreta (vale a dire la chiave necessaria per la decrittazione di quel messaggio). La crittografia è stata progettata per mantenere private le conversazioni di spie, capi militari e diplomatici. Negli ultimi decenni, la disciplina è cresciuta per incorporare tecniche come il controllo dell'integrità dei messaggi, l'autenticazione dell'identità del mittente/destinatario, le firme digitali, le prove interattive e il calcolo sicuro, tra le altre cose.
I due tipi di cifratura classica più comuni sono i cifrari di trasposizione, che sostituiscono sistematicamente lettere o gruppi di lettere con altre lettere o gruppi di lettere (ad esempio, 'hello world' diventa 'ehlol owrdl' in uno schema di riarrangiamento banalmente semplice) e i cifrari di sostituzione, che sostituiscono sistematicamente lettere o gruppi di lettere con altre lettere o gruppi di lettere (ad esempio, 'vola subito' diventa 'gmz bu Versioni semplici di entrambi non hanno mai fornito molta privacy da astuti avversari. Il cifrario di Cesare era uno dei primi cifrari di sostituzione in cui ogni lettera nel testo in chiaro era sostituita da una lettera un certo numero di posizioni lungo l'alfabeto. Secondo Svetonio, Giulio Cesare la usava con un turno di tre uomini per comunicare con i suoi generali. Un antico cifrario ebraico, Atbash, è un esempio. Il più antico uso noto della crittografia è un testo cifrato scolpito su pietra in Egitto (circa 1900 a.C.), tuttavia è possibile che ciò fosse fatto per il divertimento di spettatori letterati piuttosto che per e per nascondere le informazioni.
Si dice che le cripte fossero note ai greci classici (ad esempio, il cifrario di trasposizione scytale affermato essere stato utilizzato dall'esercito spartano). Anche la steganografia (la pratica di nascondere anche la presenza di una comunicazione per mantenerla privata) è stata inventata nell'antichità. Una frase tatuata sulla testa rasata di uno schiavo e nascosta sotto i capelli ricresciuti, secondo Erodoto. L'uso di inchiostro invisibile, micropunti e filigrane digitali per nascondere le informazioni sono esempi più attuali di steganografia.
Kautiliyam e Mulavediya sono due tipi di cifra menzionati nel Kamasutra indiano di Vtsyyana di 2000 anni. Le sostituzioni delle lettere cifrate nel Kautiliyam si basano su relazioni fonetiche, come le vocali che diventano consonanti. L'alfabeto cifrato nel Mulavediya comprende lettere corrispondenti e l'utilizzo di quelle reciproche.
Secondo lo studioso musulmano Ibn al-Nadim, la Persia sasanide aveva due scritture segrete: l'h-dabrya (letteralmente "scrittura del re"), che veniva usata per la corrispondenza ufficiale, e la rz-saharya, che veniva usata per scambiare messaggi segreti con altri Paesi.
Nel suo libro The Codebreakers, David Kahn scrive che la crittografia contemporanea iniziò con gli arabi, che furono i primi a documentare attentamente le procedure crittoanalitiche. Il Libro dei messaggi crittografici è stato scritto da Al-Khalil (717–786) e contiene il primo uso di permutazioni e combinazioni per elencare tutte le parole arabe concepibili con e senza vocali.
I testi cifrati generati da un cifrario classico (così come alcuni cifrari moderni) rivelano informazioni statistiche sul testo in chiaro, che possono essere utilizzate per decifrare il cifrario. Quasi tutte queste cifre potrebbero essere violate da un attaccante intelligente dopo la scoperta dell'analisi della frequenza, forse dal matematico arabo e poliedrico Al-Kindi (noto anche come Alkindus) nel IX secolo. I cifrari classici sono ancora popolari oggi, anche se in gran parte come enigmi (vedi crittogramma). Risalah fi Istikhraj al-Mu'amma (Manuscript for the Deciphering Cryptographic Messages) è stato scritto da Al-Kindi e ha documentato il primo utilizzo noto delle tecniche di crittoanalisi dell'analisi della frequenza.
Alcuni approcci di crittografia della cronologia estesi, come la cifratura omofonica, che tendono ad appiattire la distribuzione delle frequenze, potrebbero non trarre vantaggio dalle frequenze delle lettere della lingua. Le frequenze del gruppo di lettere della lingua (o n-gram) possono dare un attacco a quelle cifre.
Fino alla scoperta del cifrario polialfabetico, in particolare da parte di Leon Battista Alberti intorno al 1467, praticamente tutti i cifrari erano accessibili alla crittoanalisi utilizzando l'approccio dell'analisi della frequenza, sebbene ci siano alcune prove che fosse già noto ad Al-Kindi. Alberti ha avuto l'idea di utilizzare cifrari separati (o alfabeti di sostituzione) per parti diverse di una comunicazione (forse per ogni lettera successiva in chiaro al limite). Ha anche creato quello che si pensa sia il primo dispositivo di crittografia automatica, una ruota che ha eseguito una parte del suo progetto. La crittografia nella cifra di Vigenère, una cifra polialfabetica, è controllata da una parola chiave che regola la sostituzione delle lettere in base alla lettera della parola chiave utilizzata. Charles Babbage dimostrò che il codice Vigenère era vulnerabile all'analisi di Kasiski a metà del diciannovesimo secolo, ma Friedrich Kasiski pubblicò le sue scoperte dieci anni dopo.
Nonostante il fatto che l'analisi della frequenza sia una tecnica potente e ampia contro molti cifrari, la crittografia è rimasta efficace nella pratica perché molti aspiranti crittoanalisti non sono a conoscenza della tecnica. Rompere un messaggio senza utilizzare l'analisi della frequenza richiedeva la conoscenza del codice utilizzato e possibilmente della chiave coinvolta, rendendo più attraenti spionaggio, corruzione, furto con scasso, defezione e altre tattiche crittoanaliticamente disinformate. Il segreto dell'algoritmo di un cifrario è stato infine riconosciuto nel 19° secolo come una garanzia né ragionevole né fattibile della sicurezza del messaggio; in effetti, qualsiasi schema crittografico appropriato (compresi i cifrari) dovrebbe rimanere sicuro anche se l'avversario comprende appieno l'algoritmo di cifratura stesso. La sicurezza della chiave dovrebbe essere sufficiente affinché un buon codice mantenga la riservatezza di fronte a un'aggressione. Auguste Kerckhoffs enuncia per la prima volta questo principio fondamentale nel 1883, ed è noto come Principio di Kerckhoffs; in alternativa, e in modo più schietto, Claude Shannon, l'inventore della teoria dell'informazione e dei fondamenti della crittografia teorica, l'ha riaffermato come il Maxim di Shannon: "il nemico conosce il sistema".
Per aiutare con i codici, sono stati utilizzati molti gadget fisici e assistenza. La scytale dell'antica Grecia, un'asta presumibilmente utilizzata dagli Spartani come strumento di cifratura di trasposizione, potrebbe essere stata una delle prime. Altri ausili furono ideati in epoca medievale, come la grata cifrata, che serviva anche per la steganografia. Con lo sviluppo dei cifrari polialfabetici, divennero disponibili ausili più sofisticati come il disco cifrato di Alberti, lo schema tabula recta di Johannes Trithemius e il cifrario a ruota di Thomas Jefferson (non pubblicamente noto e reinventato indipendentemente da Bazeries intorno al 1900). Molti sistemi meccanici di crittografia/decrittografia furono ideati e brevettati all'inizio del XX secolo, comprese le macchine a rotore, che furono notoriamente impiegate dal governo e dall'esercito tedesco dalla fine degli anni '1920 alla seconda guerra mondiale. Dopo la prima guerra mondiale, i codici implementati da istanze di qualità superiore di questi progetti di macchine hanno comportato un aumento significativo della difficoltà crittoanalitica.
La crittografia riguardava principalmente i modelli linguistici e lessicografici prima dell'inizio del XX secolo. Da allora, l'attenzione si è evoluta e la crittografia ora include aspetti della teoria dell'informazione, della complessità computazionale, della statistica, della combinatoria, dell'algebra astratta, della teoria dei numeri e della matematica finita in generale. La crittografia è un tipo di ingegneria, ma è unico in quanto si occupa di resistenza attiva, intelligente e ostile, mentre altri tipi di ingegneria (come l'ingegneria civile o chimica) devono semplicemente fare i conti con forze naturali che sono neutrali. Si sta studiando anche il legame tra difficoltà di crittografia e fisica quantistica.
Lo sviluppo dei computer digitali e dell'elettronica ha aiutato la crittoanalisi consentendo la creazione di cifrari considerevolmente più sofisticati. Inoltre, a differenza dei cifrari tradizionali, che crittografavano esclusivamente testi in lingua scritta, i computer consentivano la crittografia di qualsiasi tipo di dato che potesse essere rappresentato in qualsiasi formato binario; questo era nuovo e cruciale. Sia nella progettazione dei codici che nella crittoanalisi, i computer hanno così soppiantato la crittografia del linguaggio. A differenza dei metodi classici e meccanici, che manipolano principalmente i caratteri tradizionali (cioè lettere e numeri) direttamente, molti cifrari informatici operano su sequenze di bit binari (occasionalmente in gruppi o blocchi). I computer, d'altra parte, hanno aiutato la crittoanalisi, che ha parzialmente compensato la maggiore complessità della cifratura. Nonostante ciò, i buoni codici moderni sono rimasti in testa alla crittoanalisi; capita spesso che l'uso di un buon cifrario sia molto efficiente (cioè rapido e che richieda poche risorse, come memoria o capacità della CPU), mentre romperlo richiede uno sforzo di molti ordini di grandezza maggiore e di gran lunga maggiore di quello richiesto per qualsiasi cifratura classica, rendendo di fatto impossibile la crittoanalisi.
La crittografia moderna fa il suo debutto.
La crittoanalisi dei nuovi dispositivi meccanici si è rivelata impegnativa e dispendiosa in termini di tempo. Durante la seconda guerra mondiale, le attività crittoanalitiche a Bletchley Park nel Regno Unito hanno promosso l'invenzione di metodi più efficienti per svolgere compiti ripetitivi. Il Colossus, il primo computer al mondo completamente elettronico, digitale e programmabile, è stato sviluppato per aiutare nella decodifica dei codici creati dalla macchina Lorenz SZ40/42 dell'esercito tedesco.
La crittografia è un campo relativamente nuovo di ricerca accademica aperta, iniziata solo a metà degli anni '1970. I dipendenti IBM hanno ideato l'algoritmo che è diventato lo standard di crittografia dei dati federale (vale a dire, statunitense); Whitfield Diffie e Martin Hellman hanno pubblicato il loro algoritmo di accordo chiave; e la colonna Scientific American di Martin Gardner ha pubblicato l'algoritmo RSA. Da allora la crittografia è diventata popolare come tecnica per le comunicazioni, le reti di computer e la sicurezza informatica in generale.
Esistono profondi legami con la matematica astratta poiché diversi approcci crittografici moderni possono mantenere segrete le loro chiavi solo se alcuni problemi matematici sono intrattabili, come la fattorizzazione di interi o problemi di logaritmi discreti. Ci sono solo una manciata di crittosistemi che hanno dimostrato di essere sicuri al 100%. Claude Shannon ha dimostrato che il blocco unico è uno di questi. Ci sono alcuni algoritmi chiave che hanno dimostrato di essere sicuri in determinate condizioni. L'incapacità di fattorizzare interi estremamente grandi, ad esempio, è la base per credere che RSA e altri sistemi siano sicuri, ma la prova dell'indistruttibilità è irraggiungibile perché il problema matematico sottostante rimane irrisolto. In pratica, questi sono ampiamente utilizzati e gli osservatori più competenti ritengono che siano indistruttibili nella pratica. Esistono sistemi simili a RSA, come quello sviluppato da Michael O. Rabin, che sono dimostrabili sicuri se la fattorizzazione n = pq è impossibile; tuttavia, sono praticamente inutili. Il problema del logaritmo discreto è la base per credere che alcuni altri crittosistemi siano sicuri e ci sono sistemi simili, meno pratici che sono dimostrabili sicuri in termini di risolvibilità o insolubilità del problema del logaritmo discreto.
L'algoritmo crittografico e i progettisti di sistema devono considerare i possibili progressi futuri quando lavorano sulle loro idee, oltre ad essere consapevoli della storia crittografica. Ad esempio, con il miglioramento della potenza di elaborazione del computer, l'ampiezza degli attacchi di forza bruta è cresciuta, quindi sono aumentate anche le lunghezze delle chiavi richieste. Alcuni progettisti di sistemi crittografici che esplorano la crittografia post-quantistica stanno già considerando le potenziali conseguenze dell'informatica quantistica; l'imminenza annunciata di modeste implementazioni di queste macchine può rendere la necessità di cautela preventiva più che speculativa.
La crittografia classica ai giorni nostri
La crittografia simmetrica (o a chiave privata) è un tipo di crittografia in cui mittente e destinatario utilizzano la stessa chiave (o, meno comunemente, in cui le loro chiavi sono diverse, ma correlate in modo facilmente calcolabile e sono tenute in segreto, in privato ). Fino al giugno 1976, questo era l'unico tipo di crittografia pubblicamente noto.
I cifrari a blocchi e i cifrari a flusso sono entrambi usati per implementare cifrari a chiave simmetrica. Un cifrario a blocchi crittografa l'input in blocchi di testo in chiaro anziché in singoli caratteri, come fa un cifrario a flusso.
Il governo degli Stati Uniti ha designato il Data Encryption Standard (DES) e l'Advanced Encryption Standard (AES) come standard di crittografia (sebbene la certificazione di DES sia stata infine ritirata una volta stabilito l'AES). DES (in particolare la sua variazione triple-DES ancora approvata e significativamente più sicura) rimane popolare nonostante la sua deprecazione come standard ufficiale; viene utilizzato in un'ampia gamma di applicazioni, dalla crittografia ATM alla privacy della posta elettronica e all'accesso remoto sicuro. Ci sono stati una sfilza di cifrari a blocchi diversi inventati e rilasciati, con vari gradi di successo. Molti, inclusi alcuni progettati da professionisti qualificati, come FEAL, sono stati ampiamente rotti.
I codici a flusso, a differenza dei codici a blocchi, generano un flusso infinitamente lungo di materiale chiave che è accoppiato con testo in chiaro bit per bit o carattere per carattere, in modo simile al blocco unico. Il flusso di output di una cifratura a flusso viene generato da uno stato interno nascosto che cambia mentre la cifratura funziona. Il materiale della chiave segreta viene inizialmente utilizzato per impostare quello stato interno. Il cifrario a flusso RC4 è ampiamente utilizzato. Creando blocchi di un flusso di chiavi (invece di un generatore di numeri pseudocasuali) e utilizzando un'operazione XOR su ogni bit del testo in chiaro con ogni bit del flusso di chiavi, i cifrari a blocchi possono essere impiegati come cifrari di flusso.
I codici di autenticazione dei messaggi (MAC) sono simili alle funzioni hash crittografiche, con l'eccezione che una chiave segreta può essere utilizzata per convalidare il valore hash al momento della ricezione; questa ulteriore complessità impedisce un attacco contro algoritmi di digest naked, e quindi è considerata utile. Un terzo tipo di tecnica crittografica sono le funzioni hash crittografiche. Prendono come input un messaggio di qualsiasi lunghezza e generano un piccolo hash a lunghezza fissa che può essere utilizzato, ad esempio, nelle firme digitali. Un utente malintenzionato non può individuare due messaggi che producono lo stesso hash utilizzando buoni algoritmi hash. MD4 è una funzione hash ampiamente utilizzata ma ora difettosa; Anche MD5, una forma avanzata di MD4, è ampiamente utilizzato ma in pratica non funziona. La serie Secure Hash Algorithm di algoritmi hash simili a MD5 è stata sviluppata dall'Agenzia per la sicurezza nazionale degli Stati Uniti: l'autorità per gli standard degli Stati Uniti ha deciso che era "prudente" dal punto di vista della sicurezza sviluppare un nuovo standard per "migliorare significativamente la robustezza dell'algoritmo hash generale del NIST kit di strumenti." SHA-1 è ampiamente utilizzato e più sicuro di MD5, ma i crittoanalisti hanno identificato gli attacchi contro di esso; la famiglia SHA-2 migliora SHA-1, ma è vulnerabile agli scontri a partire dal 2011; e la famiglia SHA-2 migliora rispetto a SHA-1, ma è vulnerabile agli scontri Di conseguenza, entro il 2012, si sarebbe tenuto un concorso di progettazione di funzioni hash per scegliere un nuovo standard nazionale statunitense, noto come SHA-3. La competizione si è conclusa il 2 ottobre 2012, quando il National Institute of Standards and Technology (NIST) ha annunciato Keccak come il nuovo algoritmo hash SHA-3. Le funzioni hash crittografiche, a differenza dei cifrari a blocchi e di flusso invertibili, forniscono un output hash che non può essere utilizzato per recuperare i dati di input originali. Le funzioni di hash crittografico vengono utilizzate per verificare l'autenticità dei dati acquisiti da una fonte inaffidabile o per aggiungere un ulteriore grado di protezione.
Sebbene un messaggio o un insieme di messaggi possa avere una chiave diversa rispetto ad altri, i crittosistemi a chiave simmetrica utilizzano la stessa chiave per la crittografia e la decrittografia. La gestione delle chiavi richiesta per utilizzare i codici simmetrici in modo sicuro è un grosso svantaggio. Ogni singola coppia di parti comunicanti dovrebbe, idealmente, condividere una chiave diversa, nonché eventualmente un testo cifrato diverso per ogni testo cifrato inviato. Il numero di chiavi richieste cresce in proporzione diretta al numero di partecipanti alla rete, rendendo necessarie complicate tecniche di gestione delle chiavi per mantenerle tutte coerenti e segrete.
Whitfield Diffie e Martin Hellman hanno inventato il concetto di crittografia a chiave pubblica (nota anche come chiave asimmetrica) in un lavoro fondamentale del 1976, in cui vengono utilizzate due chiavi distinte ma matematicamente correlate, una chiave pubblica e una chiave privata. Anche se sono inestricabilmente collegati, un sistema di chiavi pubbliche è costruito in modo tale che calcolare una chiave (la "chiave privata") dall'altra (la "chiave pubblica") è computazionalmente impossibile. Piuttosto, entrambe le chiavi vengono prodotte in segreto, come una coppia collegata. La crittografia a chiave pubblica, secondo lo storico David Kahn, è "la nuova nozione più rivoluzionaria nel campo da quando la sostituzione polialfabetica è nata nel Rinascimento".
La chiave pubblica in un crittosistema a chiave pubblica può essere trasmessa liberamente, ma la chiave privata accoppiata deve essere tenuta nascosta. La chiave pubblica viene utilizzata per la crittografia, mentre la chiave privata o segreta viene utilizzata per la decrittografia in uno schema di crittografia a chiave pubblica. Sebbene Diffie e Hellman non siano stati in grado di creare un tale sistema, hanno dimostrato che la crittografia a chiave pubblica era concepibile fornendo il protocollo di scambio di chiavi Diffie-Hellman, una soluzione che consente a due persone di concordare segretamente una chiave di crittografia condivisa. Il formato più utilizzato per i certificati a chiave pubblica è definito dallo standard X.509.
La pubblicazione di Diffie e Hellman ha suscitato un diffuso interesse accademico nello sviluppo di un pratico sistema di crittografia a chiave pubblica. Ronald Rivest, Adi Shamir e Len Adleman alla fine vinsero il concorso nel 1978 e la loro risposta divenne nota come algoritmo RSA.
Oltre ad essere le prime istanze pubblicamente note di algoritmi a chiave pubblica di alta qualità, gli algoritmi Diffie-Hellman e RSA sono stati tra i più comunemente utilizzati. Il crittosistema Cramer-Shoup, la crittografia ElGamal e numerosi approcci alla curva ellittica sono esempi di algoritmi a chiave asimmetrica.
I crittografi GCHQ prevedevano diversi progressi accademici, secondo un documento pubblicato nel 1997 dal Government Communications Headquarters (GCHQ), un'organizzazione di intelligence britannica. Secondo la leggenda, la crittografia a chiave asimmetrica è stata inventata da James H. Ellis intorno al 1970. Clifford Cocks ha inventato una soluzione nel 1973 che era estremamente simile a RSA in termini di design. Malcolm J. Williamson è accreditato di aver inventato lo scambio di chiavi Diffie-Hellman nel 1974.
I sistemi di firma digitale sono anche implementati utilizzando la crittografia a chiave pubblica. Una firma digitale è simile a una firma tradizionale in quanto è semplice da creare per l'utente ma difficile da falsificare per gli altri. Le firme digitali possono anche essere permanentemente collegate al contenuto della comunicazione sottoscritta; ciò significa che non possono essere "spostati" da un documento all'altro senza essere rilevati. Esistono due algoritmi negli schemi di firma digitale: uno per la firma, che utilizza una chiave segreta per elaborare il messaggio (o un hash del messaggio, o entrambi) e uno per la verifica, che utilizza la chiave pubblica corrispondente al messaggio per convalidare l'autenticità della firma. Due dei metodi di firma digitale più utilizzati sono RSA e DSA. Le infrastrutture a chiave pubblica e molti sistemi di sicurezza della rete (ad es. SSL/TLS, molte VPN) si basano sulle firme digitali per funzionare.
La complessità computazionale dei problemi "difficili", come quelli derivanti dalla teoria dei numeri, è spesso utilizzata per sviluppare metodi a chiave pubblica. Il problema della fattorizzazione degli interi è correlato alla durezza di RSA, mentre il problema del logaritmo discreto è correlato a Diffie-Hellman e DSA. La sicurezza della crittografia a curva ellittica si basa su problemi teorici sui numeri di curva ellittica. La maggior parte degli algoritmi a chiave pubblica include operazioni come la moltiplicazione modulare e l'esponenziazione, che sono sostanzialmente più costose dal punto di vista computazionale rispetto alle tecniche utilizzate nella maggior parte dei cifrari a blocchi, specialmente con chiavi di dimensioni normali, a causa della difficoltà dei problemi sottostanti. Di conseguenza, i crittosistemi a chiave pubblica sono spesso crittosistemi ibridi, in cui il messaggio viene crittografato con un algoritmo a chiave simmetrica veloce e di alta qualità, mentre la chiave simmetrica pertinente viene inviata con il messaggio ma crittografata con un algoritmo a chiave pubblica. Vengono comunemente utilizzati anche schemi di firma ibrida, in cui viene calcolata una funzione di hash crittografica e solo l'hash risultante è firmato digitalmente.
Funzioni hash in crittografia
Le funzioni hash crittografiche sono algoritmi crittografici che producono e utilizzano chiavi specifiche per crittografare i dati per la crittografia simmetrica o asimmetrica e possono essere considerate come chiavi. Prendono come input un messaggio di qualsiasi lunghezza e generano un piccolo hash a lunghezza fissa che può essere utilizzato, ad esempio, nelle firme digitali. Un utente malintenzionato non può individuare due messaggi che producono lo stesso hash utilizzando buoni algoritmi hash. MD4 è una funzione hash ampiamente utilizzata ma ora difettosa; Anche MD5, una forma avanzata di MD4, è ampiamente utilizzato ma in pratica non funziona. La serie Secure Hash Algorithm di algoritmi hash simili a MD5 è stata sviluppata dall'Agenzia per la sicurezza nazionale degli Stati Uniti: l'autorità per gli standard degli Stati Uniti ha deciso che era "prudente" dal punto di vista della sicurezza sviluppare un nuovo standard per "migliorare significativamente la robustezza dell'algoritmo hash generale del NIST kit di strumenti." SHA-1 è ampiamente utilizzato e più sicuro di MD5, ma i crittoanalisti hanno identificato gli attacchi contro di esso; la famiglia SHA-2 migliora SHA-1, ma è vulnerabile agli scontri a partire dal 2011; e la famiglia SHA-2 migliora SHA-1, ma è vulnerabile agli scontri. Di conseguenza, entro il 2012, si sarebbe tenuto un concorso di progettazione di funzioni hash per scegliere un nuovo standard nazionale statunitense, noto come SHA-3. La competizione si è conclusa il 2 ottobre 2012, quando il National Institute of Standards and Technology (NIST) ha annunciato Keccak come il nuovo algoritmo hash SHA-3. Le funzioni hash crittografiche, a differenza dei cifrari a blocchi e di flusso invertibili, forniscono un output hash che non può essere utilizzato per recuperare i dati di input originali. Le funzioni di hash crittografico vengono utilizzate per verificare l'autenticità dei dati acquisiti da una fonte inaffidabile o per aggiungere un ulteriore grado di protezione.
Primitive crittografiche e crittosistemi
Gran parte del lavoro teorico della crittografia si concentra sulle primitive crittografiche - algoritmi con proprietà crittografiche di base - e su come si relazionano con altre sfide crittografiche. Queste primitive di base vengono quindi utilizzate per creare strumenti crittografici più complessi. Queste primitive forniscono qualità fondamentali che vengono utilizzate per creare strumenti più complessi noti come crittosistemi o protocolli crittografici che garantiscono una o più proprietà di sicurezza di alto livello. Il confine tra primitive crittografiche e crittosistemi, d'altra parte, è arbitrario; l'algoritmo RSA, ad esempio, è talvolta considerato un crittosistema e talvolta un primitivo. Le funzioni pseudocasuali, le funzioni unidirezionali e altre primitive crittografiche sono esempi comuni.
Un sistema crittografico, o crittosistema, viene creato combinando una o più primitive crittografiche per creare un algoritmo più complicato. I crittosistemi (ad es. crittografia El-Gamal) hanno lo scopo di fornire funzionalità specifiche (ad es. crittografia a chiave pubblica) garantendo al contempo determinate qualità di sicurezza (ad es., sicurezza CPA di attacco con testo in chiaro scelto da modello Oracle casuale). Per supportare le qualità di sicurezza del sistema, i crittosistemi utilizzano le proprietà delle primitive crittografiche sottostanti. Un sofisticato crittosistema può essere generato da una combinazione di numerosi crittosistemi più rudimentali, poiché la distinzione tra primitive e crittosistemi è alquanto arbitraria. In molte circostanze, la struttura del crittosistema comprende la comunicazione avanti e indietro tra due o più parti nello spazio (ad esempio, tra il mittente e il destinatario di un messaggio sicuro) o nel tempo (ad esempio, tra il mittente e il destinatario di un messaggio sicuro) (ad esempio, dati di backup protetti crittograficamente).
Per conoscere nel dettaglio il curriculum di certificazione puoi espandere e analizzare la tabella sottostante.
Il curriculum di certificazione della crittografia classica avanzata EITC/IS/ACC fa riferimento a materiali didattici ad accesso aperto in forma di video. Il processo di apprendimento è suddiviso in una struttura passo dopo passo (programmi -> lezioni -> argomenti) che copre le parti rilevanti del curriculum. Sono inoltre previste consulenze illimitate con esperti di dominio.
Per i dettagli sulla procedura di certificazione controllare Come Funziona?.
Appunti delle lezioni principali
Capire la crittografia di Christof Paar e Jan Pelzl, corso online sotto forma di diapositive PDF
https://www.crypto-textbook.com/slides.php
Capire la crittografia di Christof Paar e Jan Pelzl, Corso online sotto forma di video
https://www.crypto-textbook.com/movies.php
Riferimento principale del libro di crittografia classica
Comprensione della crittografia di Christof Paar e Jan Pelzl
https://www.crypto-textbook.com/index.php
Ulteriori riferimenti al libro di crittografia classica applicata
Manuale di crittografia applicata di A. Menezes, P. van Oorschot e S. Vanstone:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
https://notendur.hi.is/pgg/Handbook%20of%20Applied%20Cryptography.pdf
Scarica i materiali preparatori completi di autoapprendimento offline per il programma di crittografia classica avanzata EITC/IS/ACC in un file PDF
Materiali preparatori EITC/IS/ACC – versione standard
Materiali preparatori EITC/IS/ACC – versione estesa con domande di revisione