ChaCha20 este un cifr de flux și emite un flux $O_i$ pentru a cripta mesajele pentru a obține textul cifrat $$C_i = M_i\oplus O_i$$ Următoarea ta criptare va fi $$C_i' = M_i\oplus O_i \oplus O_i'$$ unde $O_i'$ este ieșirea celui de-al doilea ChaCha20 cu o cheie diferită.
Ei bine, ceea ce întrebați este atacul doar cu text cifrat asupra ChaCha20. Nimeni nu poate face acest lucru chiar și pentru o singură criptare, dar nu există nici un deosebitor. Ieșirea unui singur ChaCha20 este suficient de bună încât să nu-l distingem de aleatoriu. Deci, atacatorul poate vedea toate mesajele posibile atâta timp cât spațiul de mesaje nu este scurt sau există alte metode de verificare, așa cum un server acționează ca un Oracle.
Întrucât au preluat acum rezultatul pentu ultima criptare (și nu materialul original), atunci de unde ar ști că au reușit?
Eliminarea straturilor nu este utilă de atunci $$aleatoriu \oplus mesaj = aleatoriu$$ Deci, nu vor exista informații de verificat.
Aceasta nu este problema ta reală, problema ta reală va fi gestionarea cheilor. Aveți grijă cum le generați/derivați și cum le stocați/deriviți.
Folosirea unui singur ChaCha20 cu 256 de biți de cheie este suficientă pentru a fi ferit de toți adversarii (clasici sau cuantici) cu o cheie aleatorie uniformă. Dacă doriți cu adevărat să utilizați criptarea dublă, combinați-o cu un alt algoritm de criptare, cum ar fi AES-GCM.
Rețineți că considerația și analizele de criptare multiplă (în cascadă) au început cu considerația despre slăbiciunea DES. Ueli M. Maurer și James L. Massey în 1993 au prezentat în Cifre în cascadă: importanța de a fi primul acest;
- Construcția în cascadă este sigură deoarece primul cifru și mai multă securitate nu este garantată. Există o postare pe blog a lui Matthew Green pe acest subiect; Criptare multiple după cum remarcă SAI Peregrinus.
Pentru cifrurile de flux avem un rezultat diferit (din nou Maurer și Massey);
- Corolarul 2. Modulul pe biți $2$ suma de $n$ secvențele keystream care sunt generate de dispozitive cu chei independente este cel puțin la fel de dificil de prezis ca și cea mai dificil de prezis secvența keystream.