Un tasto debole per un codice a blocchi è una chiave tale che la crittografia e la decrittografia risultano essere la stessa funzione. Ciò significa che con una tale chiave, una casella nera che codifica nominalmente solo le cose può anche essere usata per decodificare le cose. Una chiave semi-debole è una chiave tale che la funzione di decodifica con quella chiave è identica alla funzione di crittografia con un'altra chiave.
DES è una permutazione con blocchi a 64 bit; ci sono 2 64 ! tali permutazioni (è un numero enorme, vicino a 10 347382171305201285699 ) e il tasto seleziona una tale permutazione. Ci sono "solo" 2 56 chiavi possibili, quindi le 2 funzioni di crittografia 56 e le 2 56 funzioni di decifratura "dovrebbero" essere tutte distinte da l'un l'altro, con una schiacciante probabilità, se assumiamo che la chiave selezioni le permutazioni "a caso" (questo è il modello "cifra ideale"). L'esistenza di chiavi deboli e semi-deboli è quindi una struttura extra, che vale la pena menzionare, anche se definirle "debolezze" è un'esagerazione. Le chiavi deboli e le chiavi semi-deboli fanno parte di una classe più generale di "punti deboli" chiamati chiavi correlate . Le chiavi correlate possono rappresentare una preoccupazione in alcuni scenari specifici in cui un utente malintenzionato può forzare l'utilizzo delle chiavi correlate attraverso alcune debolezze nel processo di generazione delle chiavi; a meno che qualcosa non sia completamente sbagliato (come è stato fatto con WEP) o il codice a blocchi è usato in un modo insolito (ad esempio come un blocco per una funzione di hash in un Merkle-Damgård construction ), gli attacchi relativi alle chiavi non rappresentano una vera minaccia per la sicurezza.
Il test di una determinata chiave per essere "debole" non è utile con DES, perché il rischio che una chiave generata correttamente sia "debole" è estremamente bassa. Semplicemente "provando" alcune migliaia di chiavi potenziali ("bruteforcing") produrrà un tasso di successo molto più alto con uno sforzo molto minore.
3DES essendo tre istanze DES in una riga, ha anche "chiavi deboli": dati i tasti deboli K 1 , K 2 e K 3 per DES, il tasto K 1 || K 2 || K 3 è un "tasto debole" per 3DES. Come nel caso del DES, questa è una curiosità matematica degna di nota, ma non ha implicazioni di sicurezza pratica.