Qualsiasi metodo di crittografia moderno è protetto contro attacchi con testo in chiaro e persino attacchi con testo in chiaro scelti. L'unica cosa che viene esposta da un testo cifrato è la sua lunghezza (approssimativa). La nozione matematica alla base di questo è indistinguibilità sotto gli attacchi con testo normale scelti (IND-CPA in breve); ciò che significa in poche parole è che se un avversario sceglie due testi in chiaro di uguale lunghezza e riceve la crittografia di uno di essi, l'avversario non è in grado di dire quale è stato crittografato. I due testi in chiaro possono avere un prefisso comune, possono differire di un solo bit. Gli algoritmi crittografici dell'era computer sono generalmente progettati per essere robusti in termini di quali dati possono elaborare: gli input possono essere qualsiasi serie di stringhe di byte (fino a un limite di lunghezza molto grande).
Ciò presuppone che la crittografia sia eseguita correttamente, in particolare con una modalità valida (come CTR o CBC, mai EBC) e una corretta selezione IV (casuale ogni volta che un messaggio è crittografato è sempre valido).
Nota che IND-CPA non è la storia completa. Alcuni attacchi possono essere possibili laddove l'avversario sottomette codici cifrati scelti (che possono o non possono essere validi) alla parte con la chiave segreta. Un avversario può essere in grado di ottenere informazioni inviando variazioni di un testo cifrato (anche se non sanno a cosa decifrare), facendole decifrare e osservandone le conseguenze (anche se non hanno accesso all'output decrittografato, possono essere in grado di osservare quanto tempo impiega, se fa scattare determinati errori, ecc.). Molti sistemi basati sulla crittografia richiedono in realtà indistinguibilità in attacchi adattati al testo cifrato scelto (IND-CCA2). La protezione dagli attacchi cifratici scelti richiede l'autenticazione.
Il modo migliore per autenticare i dati, che protegge dagli attacchi crittografati scelti, è utilizzare una modalità di crittografia autenticata . Vedi Perché dovrei usare Authenticated Crittografia invece di solo crittografia? per una spiegazione più dettagliata. Quelli popolari includono GCM , CCM , OCB e EAX , CWC . Ognuno di questi cinque è sicuro come ottiene; vedi Scelta della modalità di crittografia autenticata per interi messaggi per altre considerazioni come le prestazioni. Se devi utilizzare una libreria che non fornisce le modalità AEAD, puoi combinare un MAC con CBC o CTR, ma farlo correttamente è difficile ; nel 2017, penso che se la tua libreria non fornisce le modalità AEAD, dovresti ottenere una libreria più aggiornata.