Please enable JavaScript.
Coggle requires JavaScript to display documents.
I cifrari simmetrici - Coggle Diagram
I cifrari simmetrici
DES (Data Encryption Standard)
Uno dei primi sistemi crittografici moderni a chuave simmetrica.
Restituisce una stringa della stessa lunghezza dell'originale
Chiave simmetrica di 64 bit
8 bit usati per il controllo di parità
Sono previsti 16 round applicati su ogni blocco di 64 bit
Permutazione iniziale (IP).
Il blocco viene diviso in due metà da 32 bit e processato alternativamente.
Al risultato, detto rete di Feistel, viene applicata la funzione di Feistel a metà blocco con una sotto-chiave.
La seconda metà del blocco viene combinata in XOR con il risultato.
Vi è uno scambio delle due metà.
Per l’ultime due metà, che non vengono scambiate, vi è una permutazione finale (FP) inversa a quella iniziale.
Gestore della chiave: funzione che genera, a partire dalla chiave, delle sottochiavi utilizzati da altre funzioni dell'algoritmo crittografico
16 sotto-chiavi differenti, usate ad ogni round
Per ogni round, vengono generate 16 sotto-chiavi.
I 56 bit della chiave vengono selezionati mediante la funzione Permuted Choice 1.
Il risultato viene diviso in due metà.
Ogni metà viene shiftata di un bit a sinistra per i round 1, 2, 9 e 16 o di due bit per i restanti round.
Tramite la funzione Permuted Choice 2 viene creata una sottochiave da 48 bit usando come parametro le due metà risultato.
3-DES
L’algoritmo prevede tre passi di cifratura DES utilizzando tre chiavi, talvolta diverse, per un totale di 168 bit.
Le chiavi possono essere tutte diverse; tutte uguali o solo quella centrale diversa.
Funzione di Feistel
Effetto valanga
Un cambiamento di pochi bit nel plaintext provoca un cambiamento notevole nel ciphertext.
Funzione non lineare
Round di 4 passi che operano su blocchi di 32 bit
Espansione → alcuni bit del blocco vengono duplicati, espandendolo da 32 a 48 bit.
Miscelazione con la chiave → il risultato dell’espansione viene combinato in XOR con la sottochiave generata.
Sostituzione → il risultato viene diviso in 8 sotto-blocchi da 6 bit e, per ciascuno, viene effettuata un’operazione non lineare in S-box tabellari per ottenere output di 4 bit.
Bit shuffling → i 32 bit risultanti vengono riordinati in base alla permutazione fissa.
IDEA (Data Encryption Algorithm)
Chiave a 128 bit.
8 round su blocchi di 64 bit.
Vengono effettuate operazioni in XOR, somma in modulo 2 alla 16 e moltiplicazioni in modulo 2 alla 16 più 1 a 16 bit.
A ogni passaggio, la chiave viene divisa in sotto-chiavi da 16 bit, di cui si usano i primi 6 bit.
Al termine di ogni passaggio, la chiave viene shiftata di 25 bit a sinistra e vengono ripresi i primi 6 blocchi di 16 bit.
Cifrario AES (Advanced Encryption Standard)
Algoritmo Rijndael
Blocchi di 128 bit.
Chiavi con lunghezza variabile di 128, 192 o 256 bit.
SubBytes → ogni byte viene trasformato mediante una permutazione non lineare tramite una S-box.
ShiftRows → i byte vengono spostati di un certo numero di posizioni che dipendono dalla riga di appartenenza.
MixColums → i byte, trattati per colonna, vengono trasformati da una trasformazione lineare invertibile.
AddRoundKey → la matrice iniziale e quella finale vengono combinate in XOR con la sotto-chiave.
Ogni blocco viene disposto a matrice di byte.
La codifica consiste in un insieme di round composti da alcune operazioni.
All’inizio di ogni operazione, ogni byte della matrice viene combinato con la sotto-chiave.
Utilizzano un’unica chiave per cifrare e decifrare