La Schedulazione della chiave.

Le chiavi usate durante i vari round sono estratte dalla chiave k che noi stabiliamo. Ricordiamo che k è una chiave di 64 bit di cui 8 utilizzati per il controllo di parità. Tali bit sono quelli in posizione 8, 16, 24, ..., 64 e sono tali che ogni byte della chiave contenga un numero dispari di bit 1. Ciò significa che solo un errore può essere rivelato in ogni byte.

Figura 2.5.1: Schedulazione delle chiavi.

Vediamo ora più precisamente come vengono ricavate le chiavi usate durante le iterazioni (Figura 2.5.1).

  1. Data una chiave k di 64 bit, non consideriamo gli 8 bit di parità e permutiamo i rimanenti 56 bit tramite la permutazione PC-1 riportata in figura 2.5.2. Sia PC-1(k) = C0D0 dove C0 e D0 sono i primi e gli ultimi 28 bit di PC-1(k).

  2. Per 1 £ i £ 16 computiamo

    Ci = LSi(Ci-1);

    Di = LSi(Di-1);

    Ki = PC-2(CiDi)

    dove LSi è uno shift ciclico a sinistra di una o due posizioni a seconda del valore di i (lo shift riguarda una sola posizione alle iterazioni 1, 2, 9 e 16, e due posizioni a tutte le altre iterazioni). PC-2 rappresentata in figura 2.5.3 è una compressione di una stringa di input a 56 bit, in una stringa di output a 48 bit.

Figura 2.5.2: La permutazione-compressione PC-1.

Osserviamo che i bit che vengono soppressi dalla compressione sono quelli in posizione 9, 18, 22, 25, 35, 38, 43 e 54 della stringa input. Tutto il procedimento di questo algoritmo è noto (in quanto pubblicato già da una ventina di anni) e chiunque volendo può seguirlo per effettuare cifrature; l'unica cosa che viene nascosta è il valore della chiave iniziale k.

Figura 2.5.3: La permutazione-compressione PC-2.

Pagina precedente | Torna in cima | Pagina successiva