Sa presupunem $A$ trimite $h =\text{Hash(pv||key)}$ la $B$ cu $pv$ este un public $48$-biți informații. Scopul atacatorului este accesul $key$ dat $h$. Aceasta este o construcție postfix.
Atacatorii trebuie să modifice ușor atacul pre-imagine, astfel încât să nu găsească o pre-imagine arbitrară, ci trebuie să găsească una care are $pv$ ca prefix. Trebuie să includă tot spațiul de intrare pentru a afla $key$
Dacă presupunem că $Hash$ este o funcție hash criptografică sigură, cum ar fi SHA2, SHA-3, BLAKE2 etc., atunci toate sunt în siguranță împotriva tuturor atacurilor. Asa de. singura modalitate semnificativă este forțarea brută a spațiului de intrare. Când spațiul de intrare este mic, avem problema obișnuită cu funcția hash; problemă cu spațiul de intrare mic. În acest caz, atacatorul poate căuta unul câte unul în spațiul de intrare cu posibilele computere paralele masive, ASIC/FPGA-uri etc.
- Summit-ul poate ajunge $\aproximativ 2^{74,6}$ hashes într-un an.
- Minerii Bitcoin au ajuns $\aproximativ 2^{79,8}$ Hash-uri SHA-256D pe oră pe 7 februarie 2021.
Prin urmare, vă sugerăm sfaturile obișnuite; măriți dimensiunea cheii la > 128 pentru adversarii non-cuantici sau la 256 pentru toți adversarii.
Se poate considera că; Bine, trimitem 256 de biți atunci $B$ îl hash și tăiați la 72 de biți. Nu faceți acest lucru deoarece, în sensul atacatorului, încă utilizați un spațiu de taste de 72 de biți. Când au schimbarea, vor ataca acolo unde este folosit 72 de biți.
Păstrați cheile în siguranță! Utilizați cheia eficientă de 256 de biți.