Weak key

Tra le 256 chiavi possibili (gli 8 bit di parità non vengono considerati nella definizione dello spazio delle chiavi, perciò la chiave risulta di 56 bit), ve ne sono di particolari per le quali le sottochiavi prodotte dalla fase di schedulazione sono tutte uguali. Queste chiavi sono dette weak key (chiavi deboli).

Formalmente possiamo dire che:

Definizione 1: Una weak key DES è una key k tale che Ek (Ek (x)) = x per tutti gli x, il che equivale ad un'involuzione.

Quindi se recifriamo un testo cifrato con una weak key otteniamo il testo in chiaro. Questo succede perché, visto che le sottochiavi prodotte dal processo di schedulazione sono le stesse sia nel caso della cifratura che della decifratura, queste due operazioni coincidono.

Le weak key sono quelle composte da tutti 0, tutti 1, oppure da una metà da tutti 0 e l'altra da tutti 1 (k = 056, k = 156, k = 028128, k = 128028). Tali chiavi diminuiscono la sicurezza del sistema in quanto basta trovare una sola sottochiave ki per scoprire tutte le altre.

In Figura 3.2.1 riportiamo le quattro weak key in rappresentazione esadecimale (la lunghezza di tali chiavi è di 64 bit, tuttavia ricordiamo che ogni sette bit vi è un bit di parità e che la permutazione iniziale modifica leggermente l'ordine delle chiavi).

Tabella 3.2.1: Weak Key

Definizione 2: Una coppia di semi-weak key DES è una coppia (k1, k2) tale che Ek1 (Ek2(x)) = x per ogni x.

Il numero delle semi-weak key è di sei coppie ed il loro effetto è che la cifratura con una chiave della coppia seguita dalla cifratura con l'altra chiave della coppia fornisce il testo in chiaro. Queste chiavi hanno la particolarità che invece di generare 16 sottochiavi diverse ne generano solo 2, ognuna utilizzata 8 volte nell'algoritmo.

Quindi il DES ha 4 weak key e 6 coppie di semi-weak key.

Tabella 3.2.2: Le sei coppie Semi-Weak Key

Le sei coppie di DES semi-weak key sono listate nella figura 3.2.2. Tenendo presente la Definizione 2 e guardando la tabella possiamo dire che queste chiavi godono di una particolare proprietà:

I bit delle sottochiavi k1 fino ad arrivare a k16 della prima coppia sono uguali ai bit di k16 fino ad arrivare a k1 della seconda coppia. Cioè se osserviamo la sottochiave C0 del primo elemento della coppia notiamo che è uguale al complemento di C0 del secondo elemento della coppia. Analogamente vale per D0.

Oltre alle weak key e alle semi-weak key, ci sono 48 chiavi particolari che producono questa volta solo quatto sottochiavi, ognuna usata solo quattro volte nell'algoritmo. Comunque fino ad ora nessuno è riuscito a trarre vantaggio dall'esistenza di queste ultime 48 chiavi e non è quindi ritenuto necessario evitare di usarle. Anche se l'esistenza di queste 64 chiavi (weak key, semi-weak key e le rimanenti 48) minasse la sicurezza del DES, controllare se una chiave è tra queste è molto semplice.


Pagina precedente | Torna in cima | Pagina successiva