Diciamo che voglio hash alcuni dati, usando SHA256, per dimostrare di sapere qualcosa. Forse è il mio ID segreto per qualcosa.
Nella realtà delle password siamo passati da hashing - > hashing + salt - > Problemi rigidi della cpu - > CPU + problemi di memoria rigidi. Tuttavia, la ragione principale per cui abbiamo fatto tutto questo è perché le password sono (nel mondo reale) molto basse sull'entropia poiché le persone usano "123456" come password. Dal momento che i siti Web vengono compromessi continuamente, abbiamo iniziato a provare a proteggere queste password di bassa entropia dall'essere violati dalla forza bruta.
Tuttavia, ci sono molti altri casi in cui l'input non è "cattivo". Diciamo che invece voglio hash il mio ID di sincronizzazione bittorrent segreta, il mio ID di portafoglio bitcoin o qualsiasi altro tipo di identificazione segreta. Non c'è un singolo round di SHA256 abbastanza qui e per il prossimo futuro? Anche con la NSA, il cluster più grande al mondo di ASIC per la forza bruta SHA256.
Ho visto persone che usano algoritmi come bcrypt / scrypt in molti contesti piuttosto che password, e ovviamente non fa male - ma c'è qualche ragione per cui un singolo hash di SHA non è abbastanza buono? (Supponendo che il mio input abbia un'entrata sufficientemente alta)