În loc să stochez datele utilizatorului atunci când interacționez cu o aplicație, stochez SHA3-256 al datelor.Acest lucru se datorează faptului că stocarea datelor în acest mediu special este foarte limitată.
Datele pot fi mai multe variabile, de exemplu, a, b și, c, dar în loc să le salvez individual, salvez hash-ul concatenării: SHA3(a,b,c).
Când utilizatorul dorește să interacționeze cu sistemul, ar trebui să trimită din nou variabilele, iar sistemul va compara hash-ul variabilelor sumate cu hash-ul stocat. Dacă se potrivesc, sistemul presupune că variabilele sunt aceleași cu cele ale summit-ului inițial. Deci, ajung să salvez doar o variabilă în loc de 3 în acest exemplu.
Datele sunt publice, deci sunt cunoscute de toată lumea. Întrebarea pe care o am este dacă există o problemă de securitate prin hashingul concatenării variabilelor (acesta face ca utilizatorii să găsească mai ușor o coliziune). Există vreo diferență dacă, în schimb, hash fiecare variabilă și apoi hash concatenarea hashurilor?
Pentru a elabora cele de mai sus, motivul pentru care cred că acest lucru ar putea face mai ușor pentru utilizatori să găsească coliziuni este că a, b și c sunt de diferite tipuri și au valori minime și maxime; de exemplu, dacă c poate avea doar valori între 10 și 1000, utilizatorii pot încerca doar toate valorile posibile ale lui C pentru a testa o coliziune norocoasă fără prea mult efort. Este aceasta o preocupare rezonabilă?
Rețineți că nu este important cine trimite datele, doar că datele însumate sunt exact aceleași cu cele trimise anterior.