Introduction to cryptology and cryptanalysis | Cerca per titolo, autore, parola chiave | ||||||||
Introduction to cryptology and cryptanalysis La criptoanalisi è l'antica arte che permette di analizzare e violare i testi cifrati (criptati). È anche una scienza moderna, relativamente giovane, divenuta sempre più popolare, con l'ingresso della crittografia nella vita di tutti i giorni, grazie all'avvento di internet. In questo corso universitario, tenuto dal professor Dr. Alex Biryukov, facoltà of Science, Technology and Communication dell'Université du Luxembourg, vengono esposte alcune tecniche di cifratura dei dati, partendo dagli attacchi ai sistemi classici fondati sulla sostituzione dei caratteri, fino ad arrivare ai moderni attacchi. In questo corso, si tratterà principalmente di cifratura a blocchi, pur trattando anche la cifratura a flusso e le funzioni di hash. La criptoanalisi è una materia molto affascinante, che ha qualcosa a che fare con l'arte e che difficilmente potrà diventare un'attività consuetudinaria. Questo deriva probabilmente dai paradossi che stanno alla base del calcolo e della matematica in generale. Come diceva Edgar Allan Poe: i puzzle creati dall'ingenuità umana possono essere risolti dalla stessa ingenuità umana. Chiunque può costruire un sistema di cifratura, ma decifrarne uno esistente è molto più difficile. Chiunque può identificare le debolezze di un sistema di crittografia, ma costruirne uno resistente agli attacchi è molto più difficile. La moderna crittografia può essere suddivisa in due grandi aree: la crittografia a chiave privata e la crittografia a chiave pubblica (chiamate anche: crittografia simmetrica e crittografia asimmetrica). Nella crittografia a chiave privata, che sarà quella esposta in questo corso, le due parti della comunicazione (Alice e Bob) condividono una chiave segreta (cioè: conoscono, entrambi, la chiave di cifratura e decifratura, che coincidono), così da poter comunicare in sicurezza utilizzando un mezzo di comunicazione (telefono, internet, etc) non affidabile e non sicuro. Nella crittografia a chiave pubblica, nata negli anno 70, invece, Alice e Bob NON devono condividere alcunchè, poichè i processi di cifratura e di decifratura sono processi separati: in questo modo, Alice potrà divulgare liberamente la chiave di cifratura da utilizzare per inviarle i messaggi, mentre dovrà conservare gelosamente la sola chiave, privata, di decifratura. Prima di continuare, vediamo un po' di terminologie: la funzione (algoritmo) di cifratura è chiamata CIPHER; il suo input (testo da cifrare) è chiamato PLAIN TEXT o CLEAR TEXT; l'output restituito dalla funzione di cifratura è chiamato CIPHERTEXT. Le funzioni di cifratura (cipher) possono appartenere a due grandi classi: STREAM cipher e BLOCK cipher. Gli stream cipher imitano i più recenti "one-time pad cipher", diventando dei generatori pseudorandom di chiavi, in grado di creare lunghe sequenze apparentemente casuali di bit, a partire da una piccola chiave segreta (chiamata SEED, o SEME). È bene ricordare che le tecniche di cifratura one-time pad (OTP) richiedono l'uso di una chiave di cifratura/decifratura che abbia la stessa lunghezza (o superiore) del messaggio originale da cifrare, così da poter eseguire una addizione modulare di ciascun bit o di ciascun carattere del messaggio originale con il corrispondente bit o carattere della chiave di cifratura. In informatica, la lunga sequenza apparentemente casuale di bit generata (key stream) viene XORed con il testo originale da cifrare, così da ottenere il testo cifrato. In sostanza, invece di eseguire una addizione modulare di ciascun carattere del testo originale con il corrispondente carattere della chiave di cifratura, viene eseguita un'operazione XOR (exclusive OR) tra le due stringhe testuali, bit a bit. Se la chiave di cifratura è davvero casuale, se la chiave di cifratura ha una lunghezza pari o superiore alla lunghezza del testo originale da cifrare, se la chiave di cifratura non verrà mai riutilizzata, in tutto o in parte, se la chiave di cifratura è stata mantenuta assolutamente segreta, allora il messaggio cifrato (ciphertext) non potrà essere decriptato o violato. Un aspetto caratteristico dello stream cipher è la presenza di una memoria (state), che si modifica nel corso della cifratura dei dati. Un secondo aspetto caratteristico dello stream cipher è il meccanismo della risincronizzazione (dei dati), in caso di errori nella trasmissione. Gli algoritmi di stream cipher, normalmnete, sono molto veloci. Il secondo tipo di algoritmi di cifratura è il cosiddetto BLOCK CIPHER, il cuore di questo corso, che suddivide il testo originale da cifrare in blocchi e utilizza una determinata funzione per modificare i dati di ciascun blocco, miscelandoli con la chiave segreta, per produrre il testo cifrato. Per evitare i cosiddetti dictionary attack i blocchi, oggi, raggiungono dimensioni di 64 o 128 bit, o più. >> Continua >>
|
|||||||||
Introduction to cryptology and cryptanalysis | Disclaimer: questo è un link a contenuti ospitati su server esterni. |