Jaký je rozdíl mezi SHA-3 a SHA-256?

Jsem v oblasti kryptografie nová, zjistila jsem, že SHA-3 (Secure Hash Algorithm 3) je nejnovějším členem rodina standardů Secure Hash Algorithm, vydaná NIST.

Nedávno jsem ale viděl SHA-256, ale ve srovnání s SHA-3?

Komentáře

  • SHA-256 je SHA-2 s 256bitovým výstupem. SHA-2 je předchůdce SHA-3. Sdílejí jen velmi málo za jménem.
  • Ale název vystihuje podstatu. Pokud neděláte kryptografii, jedná se o zabezpečené hashovací algoritmy. Smlouva a bezpečnostní tvrzení jsou téměř totožné .
  • @MeirMaor Vzhledem k existenci SHA-1, která se jeví jako odvážné prohlášení.
  • @Maeher, SHA1 byl vytvořen se v podstatě stejnými požadavky, nyní víme, že ' nesplňují je. Přinejmenším požadavky na odolnost proti kolizi. Má také menší výstupní velikost, zatímco SHA3 může mít stejnou výstupní velikost jako SHA2.

Odpověď

Hlavní rozdíly mezi staršími SHA-256 rodiny SHA-2 FIPS 180 a novější SHA3-256 rodiny SHA-3 FIPS 202 , are:

  • Odolnost proti útokům na prodloužení délky. S SHA-256, vzhledem k $ H (m) $ , ale ne $ m $ , je snadné najít $ H (m \ mathbin \ | m „) $ pro určité přípony $ m“ $ . Není tomu tak u žádné z funkcí SHA-3.

    To znamená, např. , že $ m \ mapsto H (k \ mathbin \ | m) $ není není zabezpečený ověřovací kód zprávy pod klíčem $ k $ , když $ H $ je SHA-256, protože znalost autentizátoru v jedné zprávě vám umožňuje vytvořit autentizátor v jiné. Vlastnost rozšíření délky částečně posunula vývoj HMAC.

    Naproti tomu konstrukce předpony klíče je bezpečná jako MAC, když $ H $ je některá z funkcí SHA-3 – nebo některá z novějších funkcí SHA-2 SHA-512/224 a SHA-512/256. U SHA-224, což je v podstatě 224bitové zkrácení SHA-256 (ale s jiným IV), má protivník šanci $ 2 ^ {- 32} $ hádání vyřazených bitů výstupu v jedné zkušební verzi – malé, ale nezanedbatelné.

  • Výkon. Funkce SHA-2 – zejména SHA-512, SHA-512/224 a SHA-512/256 – mají obecně vyšší výkon než funkce SHA-3. Částečně to bylo z paranoie a politických důvodů v procesu návrhu SHA-3.

    (V reakci na to byl jeden z finalistů SHA-3 vytočen do mnohem rychlejšího BLAKE2 , který je dnes také široce používán na internetu, a vítěz SHA-3 Keccak byl otočen do mnohem rychlejšího KangarooTwelve . )

  • Zcela odlišný vnitřní design. SHA-2 používá Davies –Meyerova struktura, instance struktury Merkle – Damgård, s blokovou šifrou (někdy nazývanou SHACAL-2) postavenou ze sítě ARX, jako je MD4; SHA-3 používá strukturu houby s permutací Keccak.

    Zde není žádný uživatelsky viditelný rozdíl, ale změnilo to důvěru kryptografů v designy po mnoha DM / ARX designy založené na MD4 byly rozbité na konci 90. a na počátku 2000.


Historie. Došlo k dlouhé řadě hash funkcí standardizovaných NIST v FIPS 180, Secure Hash Standard a později FIPS 202¸ SHA-3 Standard: Permutation-Based a Extendable-Output Funkce Další podrobnosti a historie, včetně souvisejících hash funkcí MD4 a MD5, na nichž byly založeny SHA-0, SHA-1 a SHA-2 – ale ne SHA-3:

\ begin {equation} \ begin {array} {ccc} \ text {hash} & \ text {year} & \ text {sb. res.} & \ text {size (bits)} & \ text {design} & \ text {nefunkční?} \\ \ hline \ text {MD4} & 1990 & 64 & 128 & \ text {32bitový ARX DM} & 1995 \\ \ text {SHA-0 (SHA)} & 1993 & 80 & 160 & \ text {32 -bit ARX DM} & 1998 \\ \ text {MD5} & 1993 & 64 & 128 & \ text {32bitový ARX DM} & 2004 \\ \ text {SHA-1} & 1995 & 80 & 160 & \ text {32bitový ARX DM} & 2005 \\ \ hline \ text {SHA-256 (SHA-2)} & 2002 & 128 & 256 & \ text { 32bitový ARX DM} & \\ \ te xt {SHA-384 (SHA-2)} & 2002 & 192 & 384 & \ text {64-bit ARX DM} & \\ \ text {SHA-512 (SHA-2)} & 2002 & 256 & 512 & \ text {64-bit ARX DM} & \\ \ hline \ text {SHA-224 (SHA-2)} & 2008 & 112 & 224 & \ text {32bitový ARX DM} & \\ \ text {SHA-512/224} & 2012 & 112 & 224 & \ text {64bitový ARX DM} & \\ \ text {SHA-512/256 } & 2012 & 128 & 256 & \ text {64-bit ARX DM} & \\ \ hli ne \ text {SHA3-224} & 2013 & 112 & 224 & \ text {64bitová houba Keccak} & \\ \ text {SHA3-256} & 2013 & 128 & 256 & \ text {64bitová houba Keccak} & \\ \ text {SHA3-384} & 2013 & 192 & 384 & \ text {64bitová houba Keccak} & \\ \ text {SHA3-512 } & 2013 & 256 & 512 & \ text {64bitová houba Keccak} & \\ \ text {SHAKE128} & 2013 & {\ leq} 128 & \ text {any} & \ text {64bitová houba Keccak} \\ \ text {SHAKE256} & 2013 & {\ leq} 256 & \ text {any} & \ text {64bitová houba Keccak} \ end {pole} \ end {rovnice}

  • V roce 1993 NIST publikoval FIPS 180 , standard Secure Hash, definující SHA-0 , původně právě pojmenovaný SHA pro algoritmus Secure Hash, určené pro použití s nově publikovaným DSA. SHA-0 je jediná 160bitová hashovací funkce zaměřená na 80bitové zabezpečení proti kolizím (a nyní zcela nefunkční) na základě o relativně novém a rychlém designu MD4 v roce 1990.

  • V roce 1995 NIST tiše stáhl FIPS 180 a nahradil jej FIPS 180-1 definující SHA-1 , který se od SHA-0 liší zahrnutím jediného – rotace bitů. Stejně jako SHA-0 je i SHA-1 jediná 160bitová hashovací funkce zaměřená na 80bitové zabezpečení proti kolizím (a nyní zcela nefunkční).

    K této změně nebylo poskytnuto žádné veřejné vysvětlení, ale nebylo to dlouho předtím, než Eli Biham zveřejnil diferenciální kryptoanalýzu a akademická komunita si uvědomila, že vylepšení NSA vůči DES S-boxům v sedmdesátých letech se skutečně zlepšilo zabezpečení (nevadí, že zmenšili 128bitovou velikost klíče Lucifera na 56 bitů pro DES, čímž došlo k úplnému zničení zabezpečení současně). Ve stejném roce Dobbertin zlomil MD4 [1] a příští rok vážně poškodil MD5 [2] . Nedlouho poté, v roce 1998, Florent Chabaud a Antoine Joux ohlásili $ 2 ^ {61} $ -cost kolizní útok na SHA-0 [3] .

  • V roce 2002 NIST publikoval FIPS 180-2 , definující SHA-2 , rodina souvisejících hash funkcí s různými velikostmi: SHA- 256, SHA-384 a SHA-512, pojmenované pro své výstupní velikosti a zaměřené na odolnost proti kolizi 112, 128, 192 a 256 bitů. SHA -2 funkce pokračovaly v konstrukčních principech MD4, MD5, SHA-0 a SHA-1, s více koly a větším stavem. Nedlouho poté, v roce 2004, tým Xiaoyun Wanga oznámil úplné kolize s MD5 a dalšími hashovacími funkcemi [4] a v roce 2005 publikoval $ 2 ^ {69} $ – nákladný útok na SHA-1 [5] , podstatně levnější než obecný. Vzhledem k tomu, že mnoho designů založených na MD4 již bylo přerušeno, všichni byli z tohoto designu nervózní, takže…

  • V roce 2007 zahájila společnost NIST soutěž SHA-3 o návrh nástupce SHA-2 pro případ, že by se design ukázal jako špatný. Soutěž by probíhala několik let.

  • Mezitím v roce 2008 NIST aktualizovala standard Secure Hash pomocí FIPS 180-3 , přidání SHA-224 do rodiny SHA-2 a poté v roce 2012 jej NIST znovu aktualizoval pomocí FIPS 180-4 (2012) a přidal SHA-512/224 a SHA-512/256 , rychlejší 256bitové a 384bitové hashovací funkce na 64bitových počítačích s odolností vůči útokům na prodloužení délky, které umožňují výpočet $ H (m \ mathbin \ | m „) $ zadáno $ H (m) $ a určité $ m“ $ bez vědět, $ m $ .

  • V roce 2013 byla uzavřena soutěž SHA-3 s Keccakem jako zvoleným vítězem NIST , které publikovali v FIPS 202 . SHA-3 zahrnuje čtyři hashovací funkce pevné velikosti, SHA3-224, SHA3-256, SHA3-384, SHA3-512 a dvě hash funkce s rozšiřitelným výstupem SHAKE128 a SHAKE256 , které dosahují 128bitové nebo 256 -bitová úroveň zabezpečení, pokud je výstup dostatečně dlouhý.

    Návrh SHA-3 je zcela odlišný od SHA-2, což dává jistotu, že kryptoanalytické průlomy v řadě návrhů založených na MD4 pravděpodobně nebudou mít vliv SHA-3, přestože deset let a půl po krveprolití na počátku dvacátých let tam nebyla včela Ani na SHA-2 není velký pokrok. Parametry vybrané pro funkce SHA-3 s pevnou velikostí byly z politických důvodů nějakým způsobem náhodně přepracovány [6] , takže funkce SHA-3 jako SHA3-256 jsou pomalejší, než je třeba, a obecně byste měli používat pouze SHAKE128 nebo SHAKE256.

Komentáře

  • Když řekněte " úplně rozbitý ", pokud tomu rozumím, je možné vypočítat m1 , m2 tak, že H ( m1 ) = H ( m2 ). Nikomu se však dosud nepodařilo, vzhledem k pevné zprávě M , vypočítat zprávu m (nerovná se M ) tak, aby H ( M ) = H ( m ).
  • @MartinBonner Ano, ' mluvím o odolnosti proti kolizi tady, proto jsou dvě slova těsně před „a nyní úplně rozbitá“ „kolizní bezpečnost“. ' se zde nezabývám odporem preimage, protože bezpečné použití funkce hash odolné proti preimage , ale ne odolné proti kolizi je velmi jemné a ' se snažím nenechávat pasti neopatrným čtenářům ; Stav MD5 ' s preimage odporu jinde řeším, když ' s konkrétně požádán.

Odpověď

Rozdíl mezi SHA256 a SHA3

Hlavním rozdílem SHA256 a SHA3 je jejich návrh interního algoritmu .

SHA2 (a SHA1) jsou vytvářeny pomocí struktury Merkle – Damgård .

SHA3 je naopak postaven pomocí Funkce Sponge a patří do rodiny Keccaků.

Název může být zavádějící, když si myslí, že SHA3 ve srovnání s SHA2 je jen " novější " verze algoritmu. Jak řekl SEJPM: " […] Sdílejí za jménem jen velmi málo." Název je právě uveden z NIST a znamená " Bezpečný hashovací algoritmus ", rodina oficiálních standardů.

I když můžete vytvořit MAC s SHA256 i SHA3 se SHA3 MAC používá snadněji (viz komentář fgrieu níže).

Výstup

SHA256 vydává 256bitový hash.

SHA3 umožňuje výstupy

  • 224 bitů
  • 256 bitů
  • 384 bitů
  • 512bitový

hash, ačkoli varianty SHA2 (SHA256 je jednou z těchto variant) také umožňuje tyto délky.

Algoritmy SHA3 lze upravit na " SHAKE " algoritmy, které umožňují výstup libovolné délky. Další informace najdete v tato dříve položená otázka .

Zabezpečení

Haše, které využívají pouze strukturu Merkle – Damgård a vytvářejí své plné l (nebo téměř plný) stav je zranitelný vůči útokům na prodloužení délky .

Algoritmy SHAKE jsou také užitečné pro Optimální asymetrické šifrovací polstrování .


Přímé srovnání si můžete prohlédnout zde (wikipedia) .

Komentáře

  • Přísně vzato, " Hash, které využívají Merkle – Damg å druhá struktura je zranitelná vůči útokům na rozšíření délky " je nesprávná. Counterexamples include SHA-512/256 and SHA-384, because they do not output their full state. Dalším je SHA-256d, definovaný jako SHA-256d (m) = SHA-256 (SHA-256 (m)), protože skrývá stav prvního hash. Platí, že " hash, který pouze využívá strukturu Merkle – Damg å rd a výstup jejich úplného (nebo téměř úplného) stavu jsou zranitelné vůči útokům na prodloužení délky ". ' existuje další rozdíl mezi SHA-2 a SHA-3: pozdější je jednodušší použít jako MAC.
  • Co tím myslíte " jednodušší použití " jako MAC? Bezpečnější / rychlejší / implementace?
  • Můžeme vytvořit MAC s bezpečnostním argumentem z SHA-3 jako $ \ text {SHA-3} (K \ | M) $ (pro určitou délku $ K $ to záleží na variantě SHA-3 a mělo by to být uh, nevím ' jistě); když nemáme ' takový argument s SHA-2 (i když vlastnost prodloužení délky neplatí). Viz část 5.1.12 části Kryptografické funkce houba .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *