it-swarm-eu.dev

Jaký je rozdíl mezi MAC vs hash

Jaký je rozdíl mezi těmito dvěma algoritmy?
Jeden rozdíl, o kterém vím, je to, že MAC je klíčován a hash není.

32
user1157

Zjednodušeně: MAC je obvykle Hash šifrovaná tajným klíčem. Útočníci mohou například falšovat zprávu a vypočítat nový hash, ale nemůže to udělat, pokud systém vyžaduje šifrování hash tajným klíčem.

7
Aleksandr Reznik

kryptografická hashovací funkce je zcela veřejná, deterministická hashovací funkce, kterou si každý může spočítat na libovolných vstupech. Bere jako vstup posloupnost bitů (libovolná posloupnost bitů; některé hashovací funkce jsou formálně omezeny na vstupy, řekněme, méně 2)64 bity, neboli „2 miliony terabajtů“) a vydává hodnoty v poměrně malém prostoru, obvykle posloupnost bitů s pevnou velikostí (např. vždy 160 bitů se standardní hashovací funkcí SHA-1 ). Dobré kryptografické hašovací funkce respektují některé podmínky, které se neformálně zvaří, aby smíchaly vstupní data tak důkladně, že je poté nedokážeme zjistit.

ověřovací kód zprávy je algoritmus, který bere jako vstup zprávu a tajný klíč a produkuje výstup pevné velikosti, který lze později ověřit, aby odpovídaly zprávě; ověření také vyžaduje stejný tajný klíč. Na rozdíl od hašovacích funkcí, kde je vše známo a útočníci bojují proti matematice, MAC má smysl v modelech, kde existují entity se znalostmi tajemství. To, co od dobrého MAC očekáváme, je neodpustitelnost: mělo by být nemožné vypočítat párovou zprávu + hodnotu MAC, která se s daným klíčem úspěšně ověří [~ # ~] k [~ # ~] bez věděl [~ # ~] k [~ # ~] přesně a v celém rozsahu.

Hašovací funkce a MAC jsou tedy zřetelným druhem algoritmů s odlišnými vlastnostmi a používají se ve skutečně odlišných situacích.

Některé MAC algoritmy (ale rozhodně ne všechny) lze považovat za "hashovací funkce s klíčem", ale toto je omezující pohled. HMAC je známá konstrukce MAC, která sama inteligentně staví na základní hašovací funkci. Opravdu, bezpečnostní vlastnosti a modely pro hash funkce a MAC jsou od sebe dostatečně odlišné, takže fackování hašovací funkce a klíče dohromady nemusí nutně poskytnout bezpečný MAC, i když hashovací funkce je bezpečná (viz útok na prodloužení délky , který ilustruje tento bod).

Do jisté míry můžeme říci, že MAC algoritmus, který může pracovat bezpečně bez IV musí vykazovat některé hash-like vlastnosti (to je důvod, proč mám rád HMAC: bez IV, je mnohem těžší si to špatně při implementaci). Ďábel je však v detailech.

34
Thomas Pornin

Jsou to dva naprosto rozdílní primitivové. MAC se používá pro autentizaci zpráv a je symetricky klíčovým primitivem. Hashova funkce může být použita pro mnoho účelů a nemá žádný speciální vstup kláves. MAC je zkratka „ověřovacího kódu zprávy“.

Nenechte se zmást skutečností, že některé algoritmy MAC (např. SHA1-HMAC) fungují pomocí hašovací funkce jako podprogramu. Jsou to velmi odlišná zvířata.

  • Některé příklady algoritmů MAC: CMAC, SHA1-HMAC, MD5-HMAC, UMAC, Poly1305-AES.
  • Několik příkladů kryptografických hašovacích funkcí: SHA256, SHA1, MD5.
13
D.W.

Našel jsem to do bodu odpověď z jiného fóra.

Tyto typy kryptografických primitivů lze rozlišit podle bezpečnostních cílů, které plní (v jednoduchém protokolu „připojování ke zprávě“):

Integrita: Může si příjemce být jistý, že zpráva nebyla náhodně upravena?

Ověřování: Může si příjemce být jistý, že zpráva pochází od odesílatele?

Nevypovězení: Pokud příjemce předá zprávu a důkaz třetí straně, může si třetí strana být jistá, že zpráva pochází od odesílatele? (Vezměte prosím na vědomí, že mluvím o neodepření v kryptografickém smyslu, nikoli v právním smyslu.) Důležitá je také tato otázka:

Klíče: Vyžaduje primitiv sdílený tajný klíč nebo veřejně-soukromé klíče? Myslím, že krátká odpověď se nejlépe vysvětlí pomocí tabulky:

Cryptographic primitive | Hash |    MAC    | Digital
Security Goal           |      |           | signature
------------------------+------+-----------+-------------
Integrity               |  Yes |    Yes    |   Yes
Authentication          |  No  |    Yes    |   Yes
Non-repudiation         |  No  |    No     |   Yes
------------------------+------+-----------+-------------
Kind of keys            | none | symmetric | asymmetric
                        |      |    keys   |    keys

Pamatujte, že ověřování bez důvěry v použité klíče je k ničemu. U digitálních podpisů musí být příjemce přesvědčen, že ověřovací klíč skutečně patří odesílateli. U počítačů MAC musí být příjemce přesvědčen, že sdílený symetrický klíč byl sdílen pouze s odesílatelem.

Klikněte zde pro více informací

2
kayle