La resistenza a un livello di attacco consente di caratterizzare la sicurezza di uno schema di crittografia ed è data nella definizione di primitive crittografiche. La crittoanalisi garantisce che un particolare schema sia resistente a vari attacchi. È un formalismo descrivere con precisione la resistenza di un modello rispetto al potere di un attaccante .
Uno degli assiomi di base della crittografia , ha dichiarato per la prima volta da Auguste Kerckhoffs del XIX ° secolo, è che il nemico ha tutti i dettagli dell'algoritmo e manca solo la chiave specifica per la crittografia. Per un articolo dettagliato, vedere il principio di Kerckhoffs .
Goldwasser e Micali hanno dimostrato che la nozione di sicurezza in relazione a un attacco di testo in chiaro scelto è equivalente a quella di sicurezza semantica per una crittografia .
Le definizioni di sicurezza sono costruite sul seguente modello: "XXX-YYY", dove XXX designa il tipo di attacco (distinguere due messaggi, distinguere dalla divisa, ripristino chiave, ecc.) E YYY il potere dell 'attaccante (accesso a solo tasti, accesso a testo in chiaro casuale, accesso a testo in chiaro selezionato ...). Ad esempio, il sistema crittografico di ElGamal è indistinguibile dagli attacchi che utilizzano una scelta chiara, ma non crittografata (a causa della sua malleabilità ).
Il crittoanalista ha il testo cifrato di diversi messaggi, tutti crittografati con lo stesso algoritmo. Il compito del crittoanalista è trovare il maggior numero possibile di messaggi chiari, o meglio ancora, trovare le chiavi che sono state utilizzate, il che consentirebbe di decrittografare altri messaggi crittografati con queste stesse chiavi.
Il crittoanalista non solo ha accesso ai testi cifrati di diversi messaggi, ma anche ai corrispondenti testi in chiaro. Il compito è trovare la chiave o le chiavi utilizzate per crittografare questi messaggi o un algoritmo che renda possibile decrittografare altri messaggi crittografati con queste stesse chiavi.
Il crittoanalista non solo ha accesso ai testi cifrati e ai corrispondenti testi in chiaro, ma può anche scegliere i testi in chiaro. Questo attacco è più efficace del noto attacco di testo in chiaro perché il crittoanalista può scegliere un testo in chiaro specifico che fornirà maggiori informazioni sulla chiave.
Il crittoanalista può scegliere diversi testi cifrati da decifrare. Gli vengono quindi forniti i testi decifrati. Ad esempio, il crittoanalista ha un dispositivo che non può essere smontato e che esegue la decrittazione automatica. Il suo compito è trovare la chiave.
Ronald Cramer e Victor Shoup hanno spiegato in particolare la (minima) differenza tra IND-CCA1 e IND-CCA2.
Esistono metodi per costruire schemi di crittografia IND-CCA2 da sistemi IND-CPA utilizzando funzioni hash unidirezionali universali .
In modo simile alla crittografia, la sicurezza di uno schema di firma digitale assume una forma del tipo "XXX-YYY" poiché XXX è il tipo di attacco, che può essere il ripristino della chiave, il furto di identità o la falsificazione di una firma. E YYY può essere, simile alla crittografia, l'accesso alle sole chiavi, un attacco passivo, l'accesso a un oracolo della firma, ecc.