Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lezione 15: DES - Coggle Diagram
Lezione 15: DES
Permutazione iniziale (IP)
Tabelle in cui ogni numero rappresenta un bit d'ingresso
In sostanza si crea una tabella 8x8 numerandole per riga (la prima valori da 1 a 8, la seconda da 9 a 16 ecc.). Dentro a ogni cella si inserisce un numero da 1 a 64 che corrisponde alla posizione del bit del testo originale che va a prendere il posto del bit indicato nella tabella del testo permutato
Input = testo in chiaro
16 fasi (round)
2.1: blocco di 64 bit diviso in due da 32 (Li ed Ri)
2.2: espansione/permutazione dei 32 bit Ri in ingresso a 48 bit attraverso un E-BOX
Viene fatta attraverso una tabella 8x6 in cui nelle colonne da 2 a 5 vengono inserite le posizioni da 1 a 32.
Nella prima colonna vengono inserite le posizioni dei bit precedenti rispetto a quelli alla stessa riga nella colonna 2, nel caso del primo bit viene messo l'ultimo
Nell'ultima colonna vengono inserite le posizioni dei bit successivi rispetto a quelli alla stessa riga nella colonna 5, nel caso dell'ultimo bit viene messo il primo
La tabella viene poi letta per righe e si ottiene il codice a 48 bit
2.3: XOR del messaggio espanso con la sottochiave Ki di 48 bit
2.4: si basa sull'uso di 8 S-BOX, ognuna delle quali riceve in input 6 bit e produce un output di 4 bit
Tale mappatura è basata su una matrice di permutazione 4x16
Il 1° e il 6° bit dell'input consentono di determinare il numero di riga (da 0 a 3)
I bit dal 2° al 5° permettono di determinare il numero di colonna (da 0 a 15)
All'interno della matrice si hanno numeri variabili da 0 a 15 (quelli rappresentabili con 4 bit). L'incrocio della riga con la colonna permette di ricavare il numero che convertito in binario a 4 bit sarà l'output della S-BOX
2.5: i 32 bit subiscono una permutazione secondo una tabella predefinita
2.6: i 32 bit permutati vanno in XOR con l'altra metà del messaggio iniziale
Bisogna portarlo a 48 bit per poter fare lo XOR con la sottochiave nello step successivo
Segue l'elaborazione de Feistel
Generazione della chiave
0.1: i bit nelle posizioni multiple di 8 vengono scartati, si ottengono quindi 56 bit
0.2: permutazione dei 56 bit secondo la Permuted Choice 1 (PC-1)
0.3: 56 bit divisi in due parti da 28 C0 e D0 che subiranno trasformazioni indipendenti
0.4: a ognuna delle 16 fasi entrambe le quantità subiscono uno shift di 1 o 2 posizioni verso sinistra
0.5 entrambe vengono passate come input a una matrice di permutazione (PC-2) che trasforma i 56 bit in 48 bit che rappresenteranno la sottochiave Ki del round i
Attraverso una matrice di permutazione i 56 bit vengono riordinati
Per ogni posizione dei 56 bit che andranno in output si assegna il valore corrispondente alla posizione descritta dalla colonna a fianco nella tabella considerando la chiave iniziale di 64 bit a cui sono stati tolti i bit di parità (i multipli di 8), per un totale di 56 posizioni
Le posizioni saranno:
1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63
L'input è costituito da 64 bit e per ogni round vengono effettuate delle operazioni per ricavare una sottochiave diversa per ogni round
Una proprietà è l'
effetto valanga
Ad una piccola variazione nel testo in chiaro o nella chiave si produce una importante variazione del testo cifrato
Blocco 64 bit
Chiave 56 bit (input 64)