it-swarm-eu.dev

Jaké jsou rozdíly mezi MD5, SHA a RSA?

MD5 nástroje vydávají hexadecimální hodnoty. Stejným způsobem produkují SHA a RSA společně) hexadecimální (nebo jakýkoli jiný) výstup?

Jaké jsou rozdíly mezi algoritmy MD5, SHA a RSA?

43
Kars

Není to typ výstupu. Hex je přesně způsob, jakým jsou data formátována - protože všechny pracují na binárních datech, hex má velký smysl.

Důležitou součástí je to, co dělají a jak to dělají:

  • MD5 a SHA jsou hash funkce (SHA je vlastně rodina hash funkcí) - vezmou kus dat, zkomprimují je a vytvoří vhodně jedinečný výstup, který je velmi obtížné napodobit s jiným data nešifrují nic - nemůžete vzít MD5 nebo SHA výstup a „zrušit“), abyste se dostali zpět k výchozímu bodu. Rozdíl mezi těmito dvěma spočívá v tom, Algoritmus, který používají k vytvoření hashe. Všimněte si také, že MD5 je nyní přerušen, protože byl objeven způsob, jak snadno generovat kolize, a neměl by být již používán ani důvěryhodný.

  • RSA je asymetrický šifrovací algoritmus. Máte dvě klávesy (soukromá a veřejná) a můžete provádět funkci pomocí jednoho klíče (šifrování nebo dešifrování) a reverzace s druhým klíčem. Který klíč používáte, záleží na tom, zda se pokoušíte udělat digitální podpis nebo šifrování.

57
bethlakshmi

MD5 je kryptografická hashovací funkce. "SHA" je jméno pro rodinu hash funkcí; nejprve krátkodobý "SHA", který byl přejmenován na "SHA-0", poté byl definován "SHA-1" (nejlepší prodejce). Později byly přidány nové členy rodiny, souhrnně označované jako „SHA-2“ a skládající se z SHA-224, SHA-256, SHA-384 a SHA-512. Nedávno byla navržena nová generace SHA generace, nazvaná „SHA-3“, ale také „Keccak“ (jedná se o otevřenou soutěž, Keccak je kódovým jménem jednoho z kandidátů, který nakonec vyhrál) .

Kryptografická hašovací funkce je plně definovaná, deterministická funkce, která nepoužívá žádný tajný klíč. Vezme jako vstup zprávu libovolné délky (proud bitů, libovolný bitů) a vytvoří výstup pevné velikosti. Velikost výstupu závisí na funkci; je to 128 bitů pro MD5, 160 bitů pro SHA-1, 256 bitů pro SHA-256 ... Každý může vypočítat danou hašovací funkci na daném vstupu a všichni získají stejné výsledky. Hašovací funkce se také nazývají digests, protože nějak vytvářejí určitý druh "kontrolního součtu" nebo "shrnutí" vstupu. Robustní hashovací funkce musí být takové, aby nikdo nevěděl, jak je „invertovat“ nebo dokonce najít dva odlišné vstupy, které poskytují stejný výstup. Ten se nazývá kolize a je to matematická nutnost, že existují kolize (protože funkce může přijímat mnohem více odlišných vstupů, než může produkovat odlišné výstupy), ale požadujeme, aby nebylo možné najít dokonce jeden kolize.

Ukázalo se, že MD5 je velmi rozbitý, pokud jde o kolize (kolize může být způsobena během několika sekund práce na PC) a v tomto ohledu je také přerušena SHA-0; SHA-1 je trochu šupinatá; zbytek rodiny SHA se zdá být doposud robustní. Jak hashovací funkce dosahuje odolnosti proti kolizi je trochu zázrak, protože celá funkce je zcela známa, bez tajné hodnoty; je to prostě příliš mísí data, aby nejlepší kryptografové mohli tento proces rozluštit.

RSA jsou dva algoritmy: asymetrické šifrování algoritmus a digitální podpis algoritmus . Ačkoli oba algoritmy staví na stejném druhu matematiky, jsou zcela odlišné (mnoho lidí popisuje podpisy jako „šifrování soukromým klíčem“, což je chybná analogie a přinejlepším matoucí, takže to nedělejte). Oba algoritmy používají klíče, tj. Části dat, které musí být udržovány v tajnosti. Stává se tak, že pro podpisy RSA není to, co je podepsáno, přímo daná zpráva (posloupnost bitů), ale hash zprávy: zpráva je nejprve zpracována s kryptografickou hašovací funkcí, jako je SHA- 256 a potom se použije hodnota hash. To se děje tímto způsobem, protože matematika RSA zvládne pouze hodnoty střední velikosti, nejlépe několik set bitů. Kryptografické hašovací funkce jsou takové, že podepsání hash je stejně dobré jako podepsání původních dat.

Tímto způsobem se často používají RSA a kryptografické hashovací funkce; ale nejsou to totéž.

Hexadecimální je způsob, jak reprezentovat posloupnost bitů do posloupnosti znaků: hexadecimální používá číslice a písmena od 'A' do 'F'; každý znak kóduje přesně čtyři bity ('0' kóduje '0000', '7' kóduje '0111', 'D' kóduje '1101' ...). Libovolný posloupnost bitů (a zejména výstup hashovací funkce) lze převést na hexadecimální a zpět. Hexadecimální je populární, protože lidské oči a mozek umí dobře číst postavy, nikoli číst kousky. Nástroje příkazového řádku, které počítají kryptografické hašovací funkce v souborech, tradičně vydávají hexadecimální znaky z tohoto důvodu. Neexistuje však nic, co by vlastně spojovalo hashovací funkce s hexadecimální: vše, co se vejde do počítače tak či onak, je posloupnost bitů, a proto je přístupný hexadecimální; a hašovací funkce je jen posloupnost bitů, které mohou být kódovány různými způsoby, hexadecimální je jen „tradiční“ způsob (ačkoliv Base64 se často vyskytuje, zejména při práci s databázemi).

35
Thomas Pornin