Cea mai mare problemă este, desigur, că ar trebui să cunoașteți mesajul pentru a-l putea decripta.
Există vreo slăbiciune imediată (presupunând că mesajele pe care le trimit nu sunt preconservate)?
Preconserve este un termen prea liber. Dacă un adversar poate ghici textul simplu în vreun fel, atunci cheia ar deveni cunoscută. Securitatea AES ar fi degradată dacă entropia din mesaj este mai mică decât dimensiunea cheii.
Rețineți că se presupune că adversarul cunoaște funcția hash utilizată (principiul Kerckhoff), deci nu poate fi câștigată nicio securitate din asta.
Este suficient să folosiți un nonce pentru a depăși orice slăbiciune atunci când utilizați AES?
AES nu folosește un nonce. Schemele criptografice și modurile de operare de criptare bloc, cum ar fi GCM, pot folosi un nonce. Cu toate acestea, un nonce nu elimină alte vulnerabilități ale schemei sau modului de operare. A avea un nonce poate fi o condiție prealabilă pentru o anumită schemă sau mod de operare, dar cam atât.
Dacă nu folosiți un nonce, este încă viabil?
Nu, nu este o idee bună.
Posibil, ar trebui să aruncați o privire la funcțiile de derivare a cheilor bazate pe parole (funcțiile PBKDF, cunoscute și sub numele de hash de parole). Acestea oferă lucruri sănătoase, cum ar fi sare și factor de lucru / număr de iterații. Sarea este probabil genul de utilizare neobișnuită pe care îl căutați, iar factorul de lucru face mai greu să ghiciți mesajul.