SHA yra Secure Hash Algorithm santrumpa, šifravimo standartas, kurį išrado Nacionalinė saugumo agentūra ir paskelbė Nacionaliniai standartų ir technologijų institutai. Nustatyta, kad pradinis SHA algoritmas turi šifravimo metodų trūkumų ir buvo pakeistas SHA-1, kad būtų užtikrintas didesnis saugumas.
Saugus maišos algoritmas
SHA yra kriptografinė maišos funkcija. Maišos funkcija paima pradinį nešifruotą tekstą, vadinamą paprastu tekstu, ir sukuria teoriškai unikalų numerį, kuris sudaro užšifruotą pranešimą. SHA sukuria 160 bitų skaičių, kuris yra skaičius nuo 0 iki 1,46 x 10^48. Neįmanoma užtikrinti, kad šis numeris būtų unikalus visoms galimoms paprastojo teksto žinutėms, nes tokių pranešimų skaičius yra teoriškai begalinis, tačiau tikimybė yra maždaug 2^80 arba 1,21 x 10^24, kai du pranešimai pateikia tą patį užšifruotą rezultatas. Jei taip atsitinka, tai vadinama susidūrimu. Susidūrimas yra matematinė ataka prieš šifravimo algoritmą, todėl kriptografas gali iššifruoti paprastą tekstą.
Dienos vaizdo įrašas
SHA-0 ir SHA-1
Po jo paskelbimo buvo aptikti originalaus SHA algoritmo trūkumai, dėl kurių kriptografinė ataka sukėlė maišos susidūrimus, o tai labai susilpnino jo efektyvumą. Buvo sukurta peržiūrėta SHA versija SHA-1, kuri sukūrė tuos pačius 160 bitų rezultatus be pradinių algoritmo trūkumų. Pradinis SHA atgaline data buvo pervadintas į SHA-0, kad būtų galima atskirti jo naudojimą ir SHA-1 naudojimą.
SHA-1 pokyčiai
Pradiniai SHA-0 trūkumai niekada nebuvo paskelbti, nes šie trūkumai yra įrankių rinkinys bet kuriam užpuolikui, bandančiam iššifruoti pranešimą naudojant SHA-0 šifravimą. Vienintelė vieša informacija apie pradinio algoritmo trūkumus rodo, kad maišos susidūrimai yra labiau tikėtini nei dėl atsitiktinio atsitiktinumo naudojant SHA-0, o susidūrimai naudojant nepaskelbtą metodą pašalinami naudojant SHA-1. Kadangi SHA-1 ir SHA-0 pateikia tokio pat ilgio matematinius rezultatus, SHA-1 galima naudoti kaip pakaitalą. kompiuterių programinėje įrangoje, skirtoje originaliam SHA-0 algoritmui, nereikalaujant didelių perrašymų likusioje programinė įranga.
SHA-2 ir SHA-3
Nustatyta, kad SHA-1 yra tvirtesnis nei SHA-0, tačiau palieka galimybių tobulėti. Matematinė SHA-1 rezultatų analizė parodė metodą, kuriuo SHA-1 šifravimas gali būti pažeistas. 2000 kartų greičiau, nei būtų teoriškai įmanoma, patikrinus visus 10^48 galimus jo derinius išvestis. Kadangi idealus kriptografinis algoritmas apsaugo nuo tokio iššifravimo greičio patobulinimų, SHA-2 algoritmas išvengia šios atakos ir padidina galimą maišos dydį iki 512 bitų arba 1,34 x 10^154. Šiuo metu yra kuriamas SHA-3, dar galingesnis šifravimo algoritmas.