Puncte:0

XChaCha20 cu un nonce zero?

drapel be

Știm că pentru ChaCha20 și XChaCha20, aceeași cheie nu poate fi niciodată folosită cu același nonce. Dar să presupunem că folosesc o cheie aleatorie de 256 de biți de fiecare dată... Atunci nonce poate fi orice, deoarece cheia este întotdeauna diferită. Să presupunem că am stabilit ca nonce să fie toate zerourile. Atâta timp cât cheia de 256 de biți este aleatorie, atunci această configurare ar trebui să fie sigură, deoarece 256 de biți este suficient de mare pentru a nu fi forțat brut sau reutilizat.

Acum, să lucrăm înapoi. Să presupunem că folosesc Argon2 pentru derivarea cheii. Dacă folosesc o sare de 256 de biți cu Argon2, atunci cheia de ieșire ar trebui să aibă 256 de biți de aleatorie, iar dacă introdu acea cheie în XChaCha20, teoretic nu ar trebui să dau niciodată cu aceeași cheie și, astfel, pot folosi un nonce zero. .

Am trei intrebari:

  1. Este ceva în neregulă cu utilizarea unui nonce zero dacă cheia este întotdeauna aleatorie?
  2. În acest caz, folosirea unui nonce pe 192 de biți pentru XChaCha20 are vreun beneficiu suplimentar?
  3. Este sigur să folosiți o sare de 256 de biți pentru Argon2, când sarea recomandată este de 128 de biți?

Context: criptarea fișierelor

kelalaka avatar
drapel in
[Trebuie să fii atent când criptezi fișierele cu (X)ChaCha](https://crypto.stackexchange.com/a/84440/18298)
Evan Su avatar
drapel be
Mulțumesc @kelalaka! Utilizarea Argon2 cu o sare standard, apoi utilizarea HKDF cu o sare de 32 de octeți pentru a genera cheia de criptare și nonce pentru ChaCha20 este perfectă. Poate faceți un răspuns cu un citat din acel link și îl pot accepta?
kelalaka avatar
drapel in
Nu cred că avem nevoie de un alt răspuns, sunt destul de sigur că SAI Peregrinus poate actualiza răspunsul. Lasă-mă să le pun ping.
Puncte:1
drapel si
  1. Da. Performanța va fi groaznică.
  2. Nu, doar scade și mai mult performanța. Scopul lui XChaCha20 este să aibă un nonce suficient de mare pentru a-l putea alege la întâmplare, având în continuare un contor de 64 de biți.
  3. Argon2 nu folosește un nonce. Folosește o sare. Acestea sunt lucruri diferite: o sare este unică pentru fiecare utilizator și este menită să rămână aceeași între invocări. Un nonce este unic pe mesaj. Sarea nu este menită să ofere entropie secretă la ieșire, ci doar face ca două parole identice utilizate ca intrare să aibă ieșiri diferite. Se presupune că sarea este a public intrare, iar analiza de securitate a lui Argon2 nu arată că nu poate fi găsită din ieșire (deoarece este direct parte din structura standard de ieșire, de exemplu). Entropia ieșirii Argon2 provine din fraza de acces de intrare, nu din sare. Folosirea sării ca sursă de intrare a entropiei în loc de frază de acces încalcă analiza de securitate, așa că nu putem spune că este sigur.
  4. (din comentarii) „Folosirea Argon2 cu o sare standard (per-utilizator/cont/similar), apoi utilizarea HKDF cu o sare de 32 de octeți (sursă nespecificată) pentru a genera cheia de criptare și nonce pentru ChaCha20 este perfectă.” Acest lucru poate funcționa, dar nu este necesar dacă utilizați XChaCha20. Argon2 este un KDF și poate fi folosit pentru a obține o cheie dintr-o parolă în siguranță. XChaCha20 permite utilizarea unui nonce aleatoriu, astfel încât să puteți utiliza doar RNG securizat al sistemului de operare. Dacă doriți să utilizați ChaCha20 (versiunea non-X), atunci acest lucru ar putea ajuta la alegerea unui nonce. Rețineți că sarea trebuie fixat pentru HKDF, este info parametrul pe care trebuie să-l modificați pentru a obține valori unice nonce în siguranță. Această postare pe blog are o descriere bună a motivului, versiunea scurtă este că HKDF are o dovadă de securitate care depinde de a avea un sare valoare dar variabilă info valoare pentru a produce rezultate independente în siguranță.
kelalaka avatar
drapel in
Ați putea să vă actualizați răspunsul cu sugestia pe care _Evan Su_ a găsit-o [perfect pentru ei](https://crypto.stackexchange.com/questions/98259/xchacha20-with-a-zeroed-nonce?noredirect=1#comment212266_98259)?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.