Nu puteți verifica în mod fiabil dacă datele au un prefix aleatoriu sau nu. Pentru aceeași cheie, datele nu vor eșua nici măcar în general despachetarea. Deci, ceea ce trebuie să faceți este să utilizați un alt protocol.
De exemplu, puteți avea o magie complet aleatorie de 16 octeți în fața noilor fișiere criptate (generate o dată, desigur), apoi un număr de versiune și alte date, inclusiv un IV aleatoriu, text cifrat și un HMAC peste antet și date inclusiv a IV-a. În acest fel, puteți detecta că este utilizată criptarea corectă (deoarece generarea acelei magii accidental are o probabilitate de 1 în $2^{128}$) prin simpla comparare. De asemenea, v-ați protejat fișierul pentru integritate și autenticitate folosind HMAC (acest lucru este opțional și nu este strict necesar pentru confidențialitate - dar este foarte recomandat).
Deci asta ar fi:
MAGIC (16 octeți) | VERSIUNEA | IV (16 octeți) | CIPHERTEXT | ETICHETĂ
Unde TAG este eticheta de autentificare produsă folosind HMAC peste tot ce a fost înainte.
Desigur, au existat mulți oameni care au scris deja protocoale ca acestea, așa că este posibil să doriți să căutați formate de containere, cum ar fi CMS (care depinde de obicei de criptarea / certificatele cu cheia publică) sau chiar NaCL.