În situații din viața reală, cu excepția compatibilității cu sistemele existente, rareori ar trebui să fie utilizat direct oricare dintre modurile de criptare enumerate în întrebare, deoarece acestea oferă în cel mai bun caz criptare sigură (avertisment: ECB nu), ceea ce nu nu acoperi nevoile majorității situațiilor din viața reală.
În aplicațiile reale, dacă aveți nevoie de criptare, de obicei trebuie să preveniți modificarea nedetectată a mesajului (de exemplu, eliminarea unei părți a acestuia, modificarea unui segment). Prin urmare, este nevoie de un mod care oferă criptare și autentificare¹, cum ar fi GCM combinat cu cifrul bloc AES. Este suficient de rapid pentru „conversații video” cu un procesor modern și suficient de simplu pentru a „trimite date cu un micro-controler”.
Astfel de criptare autentificată modul va folosi adesea intern unul dintre modurile întrebării pentru criptarea pe care o oferă, de ex. GCM folosește CTR.ECB/CBC/CFB/OFB tinde să fie eliminate treptat pentru CTR, deoarece CTR este simplu, rapid, ușor paralelizabil și permite accesul direct de citire/modificare/scriere la fișiere mari fără a re-cripta ceea ce urmează. Sunt singurele dezavantaje
- Maleabilitatea², dar aceasta este rezolvată în întregime prin criptare autentificată.
- Sensibilitatea la reutilizare a Vector de inițializare/nonce. Acest lucru poate fi atenuat prin proceduri bune pentru a genera IV sau moduri de criptare autentificate care nu sunt rezistente la utilizare greșită, cum ar fi GCM-SIV.
Pentru a „stoca parolele”, de multe ori nu dorim să folosim criptarea, ceea ce implică posibilitatea decriptării, când deseori putem trăi cu un sistem care nu necesită niciodată decriptarea parolelor și, prin urmare, este mai puțin vulnerabil la scurgerile de date (există unele excepții). precum managerii de parole). Pentru parole, prima alegere este hardware-ul securizat conceput pentru stocarea parolelor. A doua alegere este de a stoca pe disc rezultatul unei funcții hash în mod deliberat lente și sărate a parolei, cum ar fi Argon2. Ultima alegere este criptarea autentificată a parolei. Observați că autentificarea contează: numai cu criptare, este de teamă că cineva cu acces de citire/scriere la parolele criptate poate reseta parola unui utilizator la una cunoscută, fără cheie, dacă cunoaște parola altui utilizator.
¹ În sensul că textul simplu descifrat se potrivește exact textul simplu care a fost criptat cu cheia de criptare, ceea ce îl face autentic.
² În sensul de a permite modificarea sensului textului simplu descifrat pentru textul simplu cunoscut, de ex. Schimbare plătiți 1000 USD
la plătiți 9800 USD
. Modul CBC sau CFB fac un astfel de atac mai dificil, dar nu oferă criptare completă autentificată.