Commenti sul DES
TI è una trasformazione e TF è la sua inversa.
K[1],...,K[16] sono chiavi di 48 bit, ciascuna delle quali contiene un diverso insieme dei 56 bit di K.
Procedimento per il calcolo delle sotto-chiavi:
- (s[0],d[0])=TK(K);
- Per i=1,2,...,16: (s[i],d[i])=RS[i](s[i-1],d[i-1]), dove |s[i]| = |d[i]| =28;
- K[i]=CK(s[i],d[i]), dove |K[i]| = 48;
TK è una trasposizione che ignora bit-controllo, TK:64 --ᡰ.
CK è una trasposizione-compressione, CK:56--ᡨ.
RS[i] è una rotazione ciclica a sinistra di s[i] e d[i].
Procedimento per il cacolo dei D[i] e di S[16]:
- D[i-1] --> E(D[i-1]) --> K[i] @ E(D[i-1]) --> Z-compr --> P-trasp = f(D[i-1],K[i]);
- 32 --> 48 --> 48 --> 32 --> 32 = 32bit
E replica alcuni bit di D[i-1], E: 32--ᡨ.
Z-compr./sost. opera come segue:
- divide l’input di 48 bit in 8 gruppi di 6 bit ciascuno;
- Per ogni gruppo (x1,...,x6), si accede a una tabella mediante la coppia (x1x6, x2x3x4x5) e si ottiene un valore 0..15 (4 bit).
P è una ulteriore trasposizione.
DECIFRATURA: stesso algoritmo ma K[16] è usata per prima (l’ordine delle chiavi è rovesciato, l’algoritmo NO).
DES è attuato sia in hardware che in software (ESERCIZIO).