In crittografia si definisce key whitening (mascheramento della chiave) la tecnica mediante la quale si cerca di incrementare la sicurezza di un cifrario a blocchi iterato attraverso passi successivi durante i quali vengono combinati i dati da cifrare con porzioni della chiave (in genere mediante semplici operazioni di XOR) prima del primo passaggio e dopo l'ultimo passaggio del processo di cifratura.
Il primo cifrario a blocchi che usava una forma di key whitening fu il DES-X, che utilizzava semplicemente due ulteriori chiavi da 64 bit in aggiunta a quella standard da 56 bit del DES: in questo modo si intendeva aumentare la complessità di un attacco a forza bruta incrementando la dimensione della chiave senza introdurre ulteriori modifiche alla struttura dell'algoritmo. Ronald Rivest, che progettò il DES-X, battezzò questa tecnica con il termine key whitening.
Il cifrario FEAL (seguito dal Khufu e Khafre) introdusse la pratica del key whitening usando porzioni della stessa chiave utilizzata nel resto del cifrario: ciò non offre protezione aggiuntiva da un attacco a forza bruta, ma può rendere altri tipi di attacco più difficili da portare a termine.
In un cifrario di Feistel, o in algoritmi simili, il key whitening può incrementare la sicurezza occultando gli input specifici del primo e dell'ultimo passaggio della funzione di cifratura. In particolare, si evita la possibilità di un attacco di tipo meet-in-the-middle. Questa forma di key whitening è stata adottata come caratteristica da molti altri cifrari a blocchi, come il MARS, l'RC6 ed il Twofish.
Bibliografia
[modifica | modifica wikitesto]- Bruce Schneier, Applied Cryptography, 2ª ed., John Wiley & Sons, 1996, ISBN 0-471-11709-9.