- Este posibil acest lucru (oferiți în continuare integritatea atunci când criptați bitmap)?
Nu, ChaCha20 este doar un cifru de flux, prin el însuși nu oferă integritatea / autenticitatea mesajului; nu fără modificări semnificative – și atunci s-ar numi altceva.
- Dacă da, Ciphertext când este decriptat produce același fișier Bitmap ca PlaintText (Ambele au aceeași valoare a sumei de control)?
Da, cu excepția cazului în care textul cifrat este modificat decriptarea este încă inversul criptării. Cifrurile sunt atât deterministe, cât și reversibile atunci când sunt inițializate cu cheile potrivite.
Eticheta de autentificare (Poly1305) este utilizată pentru a detecta dacă textul cifrat (sau eticheta) a fost modificat din cauza corupției (erori de transmisie, defecte în timpul stocării) sau din cauza unei încercări deliberate a unui atacator. Nu este necesară menținerea integrității dacă nu are loc nicio modificare externă.
Întrucât ChaCha20 este un flux de criptare (non-conștient de text simplu), funcția de criptare este inversă: generează un flux de chei care este apoi XOR-ed cu textul simplu pentru criptare și cu textul cifrat pentru decriptare.
Dezavantajul acestuia este că nu puteți pune pur și simplu un „pătuț” sau o valoare cunoscută în textul simplu pentru a detecta dacă decriptarea a avut succes sau nu - practic, orice valoare din textul simplu rezultat poate fi schimbată în mod dorit prin modificarea textului cifrat.
Destul de des există locații în fișiere în care puteți ascunde informații. De exemplu, ai putea arunca o privire la Antet DIB sau tabel de culori / profil dacă doriți să stocați octeți suplimentari, cum ar fi o etichetă de autentificare Poly1305.