Acest post spune că Blake2b al lui Argon2 este a redus unul, care este de asemenea agreat de Specificațiile lui Argon2 deoarece afirmă că folosește doar un Blake2b cu 2 runde.
Dar, pe de altă parte, pagina 15
din specificațiile lui Argon2 afirmă că modifică Blake2b pentru a adăuga înmulțiri pe 32 de biți pentru a crește latența (presupun că înseamnă că trebuie să așteptați cicluri suplimentare ale procesorului?).
Întrebările mele sunt:
- Dacă Argon2 vrea să facă Blake2b mai greu, de ce și-ar reduce cele 12 runde la doar 2?
- Există și alte diferențe pe care nu le-am menționat aici?
- În ce moduri afectează aceste diferențe securitatea Blake2b de la Argon2 în comparație cu Blake2b standard găsit în, de exemplu,
libsodiu
?
Gandurile mele
Cred că utilizarea de către Argon2 a unei funcții de hashing (Blake2b) pentru umplerea pad-ului de memorie nu este cea mai bună alegere. Pentru că nu este implicată compresie în umplerea memoriei; Intrarea de 1024 de octeți devine o altă ieșire de 1024 de octeți. Nu are loc nicio compresie, prin urmare toate rundele agresive ale unei funcții de hashing care încearcă să păstreze entropia maximă de intrare în timp ce comprimarea în mult mai puțini octeți nu sunt absolut necesare.
Cred că acesta este motivul pentru care Argon2 a creat propria variantă redusă de Blake2b cu doar 2 runde în loc de 12: pentru că este evident că hashingul nu este necesar.
În mod efectiv, modificând Blake2b, Argon2 a creat o variație a unui cifru bloc simetric și au continuat să-l folosească ca unul (intrarea fixă devenind o ieșire fixă de dimensiune egală).
Cred că abordarea mai bună decât cea a lui Argon2 este, în loc să reinventăm un cifr bloc simetric dintr-o funcție de hashing (prin modificarea Blake2b), este să tăiați urmărirea și să utilizați un cifru simetric existent precum ChaCha20.
Utilizarea unui cifru simetric precum ChaCha20 va fi aproximativ la fel de rapidă ca și cifrul simetric reinventat de la Argon2 (Blake2b redus), chiar dacă este ChaCha20 cu 20 de runde. ChaCha20 conform testelor mele este doar puțin mai lent decât Argon2 pentru a face aceeași treabă. Plus alte beneficii: profitând de bibliotecile existente și de mai multe cercetări de criptoanaliza care au fost deja îndreptate către cifrurile existente.