La crittanalisi è l'arte di forzare un testo cifrato, ed è quindi uno dei rami più importanti della crittologia. Nel progettare un metodo crittografico si deve ovviamente tenere conto delle possibilità di crittanalisi del medesimo. I tentativi di forzare un testo cifrato da parte del crittanalista sono chiamati attacchi.
I metodi crittanalitici classici sono di tipo statistico e si basano sul fatto che tutte le lingue hanno una distribuzione delle frequenze delle lettere, dei bigrammi e dei trigrammi che è molto caratteristica e facilmente riconoscibile. Esempi di questo tipo sono la crittanalisi di un cifrato monoalfabetico, e il metodo Kasiski per la crittanalisi del cifrario di Vigenere.
Esistono molti parametri statistici in grado di aiutare il crittanalista, già nella prima fase che è quella dell'individuazione del metodo usato.
Ma per il successo della crittanalisi sono utili anche molte altre cose: la conoscenza della lingua del crittogramma è ovviamente fondamentale, avere indicazioni certe su qualche parola che deve comparire nel testo è importante ... E dal momento che "errare humanum est" spesso sono decisivi gli errori o le ingenuità dei crittografi, che sono molto più frequenti di quanto comunemente si immagini.
Con l'avvento del computer anche lo scenario della crittanalisi è molto cambiato e sono stati provati nuovi tipi di attacchi. In generale si possono individuare diverse famiglie di attacchi: