Kakšna je razlika med šifriranjem SHA in SHA-1?
SHA je akronim za Secure Hash Algorithm, šifrirni standard, ki ga je izumila Nacionalna varnostna agencija in objavil Nacionalni inštitut za standarde in tehnologijo. Ugotovljeno je bilo, da ima izvirni algoritem SHA slabosti v metodah šifriranja, zato je bil za večjo varnost nadomeščen s SHA-1.
Algoritem za varno zgoščevanje
SHA je kriptografska zgoščevalna funkcija. Zgoščevalna funkcija vzame začetno nešifrirano besedilo, imenovano golo besedilo, in ustvari teoretično edinstveno številko, ki sestavlja šifrirano sporočilo. SHA ustvari 160-bitno število, ki je število med 0 in 1,46 x 10^48. Ni mogoče zagotoviti, da bi bila ta številka edinstvena za vsa možna sporočila z navadnim besedilom, saj je število takšnih sporočil teoretično neskončno, vendar je verjetnost približno 2^80 ali 1,21 x 10^24 proti dvema sporočiloma, ki ustvarita enako šifrirano rezultat. Če se to zgodi, se to imenuje trk. Trk zagotavlja matematični napad na šifrirni algoritem, kar kriptografu omogoči dešifriranje odprtega besedila.
SHA-0 in SHA-1
Po njegovi objavi so bile odkrite napake v prvotnem algoritmu SHA, ki so omogočile, da je kriptografski napad povzročil kolizije zgoščevanja, kar je močno oslabilo njegovo učinkovitost. Razvita je bila revidirana različica SHA, SHA-1, ki je ustvarila enake 160-bitne rezultate brez izvirnih napak v algoritmu. Prvotni SHA je bil retroaktivno preimenovan v SHA-0, da se razlikuje med njegovo uporabo in uporabo SHA-1.
Spremembe v SHA-1
Prvotne napake v SHA-0 niso bile nikoli objavljene, saj te napake zagotavljajo orodje za vsakega napadalca, ki poskuša dešifrirati sporočilo s šifriranjem SHA-0. Edine javne informacije o pomanjkljivostih v izvirnem algoritmu kažejo, da so kolizije z zgoščevanjem bolj verjetne kot zaradi naključnega slučaja pri uporabi SHA-0 in da so trki z uporabo neobjavljene metode odpravljeni pri uporabi SHA-1. Ker SHA-1 in SHA-0 dajeta matematične rezultate enake dolžine, se lahko SHA-1 uporablja kot vmesna zamenjava v računalniški programski opremi za izvirni algoritem SHA-0, ne da bi bilo treba v preostali programski opremi prepisati več.
SHA-2 in SHA-3
Ugotovljeno je bilo, da je SHA-1 robustnejši od SHA-0, vendar pušča prostor za izboljšave. Matematična analiza rezultatov SHA-1 je pokazala metodo, s katero bi lahko šifriranje SHA-1 razbili 2000-krat hitreje, kot bi bilo teoretično mogoče s preverjanjem vseh 10^48 možnih kombinacij njegovega izhoda. Ker idealen kriptografski algoritem preprečuje tovrstne izboljšave hitrosti dešifriranja, se algoritem SHA-2 izogne temu napadu in poveča možno velikost zgoščene vrednosti na 512 bitov ali 1,34 x 10^154. SHA-3, še zmogljivejši šifrirni algoritem, je trenutno v razvoju.