Se dovessi conoscere le versioni chiare e codificate di una stringa, potrei in qualche modo trovare la password e.o che usavo per codificarla?
Codifica eseguita con open_ssl aes-128-cbc.
No. Ciò equivarrebbe a un attacco di testo normale noto su AES.
Di solito l'IV è noto e codificato con il messaggio. Non è un segreto (è un IV , non un tasto ).
Se il sistema di crittografia è valido, non esiste un modo (noto) per recuperare la chiave dalla conoscenza di tutto il resto (testo in chiaro, testo cifrato, IV) che sarebbe più veloce di provare tutte le chiavi possibili fino a trovare una corrispondenza ( questa è ricerca esauriente , colloquialmente nota come forza bruta ). Se la chiave è abbastanza grande (ovvero più di circa 80 bit o giù di lì), ciò è impossibile con la tecnologia e l'energia esistenti (vedi questa risposta per i dettagli). Ogni bit chiave aggiuntivo raddoppia lo sforzo dell'attaccante, quindi una chiave a 128 bit è molto lontana dall'essere attaccabile, anche con la tecnologia di domani.
Questa proprietà deve essere mantenuta (anche in questo caso, se l'algoritmo è buono) anche se l'attaccante può ottenere miliardi di coppie di testo in chiaro / cifrato, anche se riesce a scegliere il testo in chiaro ( attacco in chiaro in chiaro ) o anche il testo cifrato ( attacco di testo cifrato scelto , ovvero attacco su una casella di decrittografia).
Per quanto ne sappiamo, AES è buono e OpenSSL lo usa correttamente.
Quello che descrivi sarebbe un attacco con testo in chiaro noto . Wikipedia afferma che
Advanced Encryption Standard [is] not currently susceptible to known-plaintext attacks.
(ma che alcuni codici a blocchi potrebbero essere influenzati da attacchi di testo normale scelti ).
Leggi altre domande sui tag cryptography encryption passwords