Mi a különbség az SHA-3 és az SHA-256 között?

Új vagyok a kriptográfiával kapcsolatban, megtudtam, hogy a SHA-3 (Secure Hash Algorithm 3) a legújabb tagja a a NIST által kiadott Secure Hash Algorithm szabványcsalád.

De nemrégiben láttam SHA-256 -et, de nem értem, mi ez a SHA-3?

Megjegyzések

  • Az SHA-256 SHA-2, 256 bites kimenettel. SHA-2 az SHA-3 elődje. A néven túl keveset osztoznak.
  • De a név megragadja a lényeget, Ha nem titkosítást végez, akkor ezek mind Secure Hash algoritmusok. A szerződéses és biztonsági követelések szinte azonosak .
  • @MeirMaor Tekintettel az SHA-1 létezésére, amely merész állításnak tűnik.
  • @Maeher, az SHA1 lényegében ugyanazokkal a követelményekkel jött létre, ma már tudjuk, hogy nem ‘ nem felelnek meg nekik. Legalább az ütközési ellenállás követelményei. Kimeneti mérete kisebb, Az SHA3 kimenetének mérete megegyezhet az SHA2 méretével.

Válasz

A főbb különbségek a régebbi SHA-256 között az SHA-2 család FIPS 180 és az SHA-3 család újabb SHA3-256 FIPS 202 , a következők:

  • Hosszabbító támadásokkal szembeni ellenállás. SHA-256 esetén $ H (m) $ de nem $ m $ , könnyen megtalálható a $ H (m \ mathbin \ | m “) $ bizonyos utótagoknál $ m” $ . Nem úgy, mint az SHA-3 egyik funkciója esetében sem.

    Ez azt jelenti, hogy eg a $ m \ mapsto H (k \ mathbin \ | m) A $ nem egy biztonságos üzenet-hitelesítési kód a $ k $ kulcs alatt, amikor $ H $ az SHA-256, mert az egyik üzenet hitelesítőjének ismerete lehetővé teszi, hogy egy másik hitelesítőt hamisítson. A hosszbővítő tulajdonság részben megindította a HMAC fejlesztését.

    Ezzel szemben a kulcs-előtag felépítése biztonságos mint MAC, amikor $ A H $ az SHA-3 függvények bármelyike – vagy az SHA-512/224 és az SHA-512/256 SHA-2 funkciók bármelyike. Az SHA-224 esetében, amely lényegében az SHA-256 224 bites csonkolása (de más IV-vel), az ellenfélnek $ 2 ^ {- 32} $ esélye van a kimenet bitjeinek kitalálása egyetlen kísérletben – kicsi, de nem elhanyagolható.

  • Teljesítmény. Az SHA-2 funkciók – különösen az SHA-512, SHA-512/224 és SHA-512/256 – általában nagyobb teljesítményűek, mint az SHA-3 funkciók. Ez részben paranoiából és politikai okokból következett be az SHA-3 tervezési folyamatában.

    (Válaszul az SHA-3 egyik döntőse a sokkal gyorsabb BLAKE2 , amelyet ma az interneten is széles körben használnak, és az SHA-3 győztes Keccakot a sokkal gyorsabb KangarooTwelve bepörgették. )

  • Teljesen eltérő belső kialakítás. Az SHA-2 a Davies-t használja –Meyer-struktúra, a Merkle – Damgård-struktúra példánya, blokk-titkosítással (néha SHACAL-2-nek hívják), amelyet ARX-hálózatból építenek ki, például MD4; Az SHA-3 a szivacsszerkezetet használja a Keccak-permutációval.

    Itt nincs felhasználó által látható különbség, de a kriptográfusok bizalma a tervek iránt sok DM után megváltozott. / Az MD4-en alapuló ARX-tervek a 90-es évek végén és a 2000-es évek elején megtörtek.


Előzmények. A NIST által szabványosított hash függvények hosszú sora volt a FIPS 180-ban, a Secure Hash Standardban és később a FIPS 202¸-ben az SHA-3 Standardban: Permutation-Based and Extendable-Output Funkciók. További részletek és előzmények, beleértve a kapcsolódó MD4 és MD5 hash függvényeket, amelyeken az SHA-0, SHA-1 és SHA-2 – de nem az SHA-3 – alapultak:

\ begin {equation} \ begin {tömb} {ccc} \ text {hash} & \ text {év} & \ text {coll. res.} & \ text {size (bits)} & \ text {design} & \ text {törött?} \\ \ hline \ text {MD4} & 1990 & 64 & 128 & \ text {32-bit ARX DM} & 1995 \\ \ text {SHA-0 (SHA)} & 1993 & 80 & 160 & \ text {32 -bit ARX DM} & 1998 \\ \ text {MD5} & 1993 & 64 & 128 & \ text {32-bit ARX DM} & 2004 \\ \ text {SHA-1} & 1995 & 80 & 160 & \ text {32-bit ARX DM} & 2005 \\ \ hline \ text {SHA-256 (SHA-2)} & 2002 & 128 & 256 & \ text { 32 bites 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 bites ARX DM} & \\ \ hline \ text {SHA-224 (SHA-2)} & 2008 & 112 & 224 & \ text {32 bites ARX DM} & \\ \ text {SHA-512/224} & 2012 & 112 & 224 & \ text {64-bit ARX DM} & \\ \ text {SHA-512/256 } & 2012 & 128 & 256 & \ text {64-bit ARX DM} & \\ \ hli ne \ text {SHA3-224} & 2013 & 112 & 224 & \ text {64 bites Keccak szivacs} & \\ \ text {SHA3-256} & 2013 & 128 & 256 & \ text {64 bites Keccak szivacs} & \\ \ text {SHA3-384} & 2013 & 192 & 384 & \ text {64 bites Keccak szivacs} & \\ \ text {SHA3-512 } & 2013 & 256 & 512 & \ text {64 bites Keccak szivacs} & \\ \ text {SHAKE128} & 2013 & {\ leq} 128 & \ text {any} & \ text {64 bites Keccak szivacs} \\ \ text {SHAKE256} & 2013 & {\ leq} 256 & \ text {any} & \ text {64 bites Keccak szivacs} \ end {tömb} \ end {egyenlet}

  • 1993-ban a NIST közzétette a FIPS 180 , a Secure Hash Standard szabványt, amely meghatározta a SHA-0 , eredetileg éppen SHA nevű a Secure Hash algoritmus számára az újonnan közzétett DSA-val való használatra szánják. Az SHA-0 egyetlen 160 bites hash függvény, amelynek célja a 80 bites ütközésbiztonság (és most már teljesen megszakadt) , alapja az MD4 viszonylag új és gyors kialakításáról 1990-ben.

  • 1995-ben a NIST csendesen kivonta a FIPS 180-t, és helyette lépett. FIPS 180-1 , amely meghatározza az SHA-1 meghatározást, amely egyetlen SHA-0-tól különbözik egyetlen felvételével -bit forgatás. Az SHA-0-hoz hasonlóan az SHA-1 egyetlen 160 bites hash-függvény, amelynek célja a 80 bites ütközésbiztonság (és most már teljesen megszakadt).

    A változásra nem adtak nyilvános magyarázatot, de nem sokkal korábban Eli Biham közzétette a differenciális kriptanalízist, és az akadémiai közösség rájött, hogy az NSA módosítja a DES S-boxokat az 1970-es években valóban javította a biztonságot (ne feledje, hogy a DES-hez 56 bitre csökkentette a Lucifer 128 bites kulcsméretét, ezzel teljesen elpusztítva a biztonságot). Ugyanebben az évben Dobbertin megtörte az MD4 [1] , és a következő évben súlyosan megrongálta az MD5-t [2] . Nem sokkal később, 1998-ban Florent Chabaud és Antoine Joux $ 2 ^ {61} $ -költséges ütközési támadásról számolt be az SHA-0 ellen [3] .

  • 2002-ben a NIST közzétette a FIPS 180-2 dokumentumot, amely meghatározta a SHA-2 , a kapcsolódó hash függvények családja , különböző méretű: SHA- 256, SHA-384 és SHA-512, amelyeket a kimeneti méretükről neveztek el, és amelyek célja a 112, 128, 192 és 256 bites ütközési ellenállás. Az SHA -2 funkció folytatta az MD4, MD5, SHA-0 és SHA-1 tervezési alapelveit, több körrel és nagyobb állapotban. Nem sokkal ezután, 2004-ben, Xiaoyun Wang csapata az MD5 és más hash függvények teljes ütközéséről számolt be [4] , majd 2005-ben egy $ 2 ^ {69} $ -költséges támadás az SHA-1 ellen [5] , lényegesen olcsóbb, mint az általános. Mivel az MD4-re épülő tervek közül sokan már megtörtek, mindenki ideges lett a terv miatt, ezért…

  • 2007-ben a NIST elindította az SHA-3 versenyt egy az SHA-2 utódja, abban az esetben, ha a tervezés rossznak bizonyulna. A verseny több éven keresztül zajlik.

  • Időközben 2008-ban a NIST frissítette a Secure Hash Standardot FIPS 180-3 -vel, az SHA-224 hozzáadásával az SHA-2 családhoz, majd 2012-ben a NIST újra frissítette a következővel: FIPS 180-4 (2012) , hozzáadva a SHA-512/224 és SHA-512/256 , gyorsabb 256 bites és 384 bites hash funkciók 64 bites gépeken, ellenállva a hosszbővítési támadásoknak, amelyek lehetővé teszik az egyik számítását $ H (m \ mathbin \ | m “) $ adott $ H (m) $ és bizonyos $ m” $ nélkül $ m $ ismeretében.

  • 2013-ban az SHA-3 verseny Keccak NIST által választott győztesként zárult , amelyet a FIPS 202 -ban publikáltak. SHA-3 négy rögzített méretű hash függvényt tartalmaz, SHA3-224, SHA3-256, SHA3-384, SHA3-512 és két kibővíthető kimeneti kivonatfüggvény SHAKE128 és SHAKE256 , amelyek akár egy 128 bites vagy 256 -bit biztonsági szint, ha a kimenet elég hosszú.

    Az SHA-3 kialakítása teljesen eltér az SHA-2-től, ami bizalmat ad arra, hogy az MD4-re épülő tervsorok kriptanalitikus áttörései valószínűleg nem befolyásolják Az SHA-3, bár másfél évtizeddel a 2000-es évek elejének vérfürdője után még nem volt méh n nagy előrelépés az SHA-2 terén is. A rögzített méretű SHA-3 funkciókhoz kiválasztott paramétereket politikai okokból véletlenül túltervezték [6] , így az SHA-3 funkciók, mint az SHA3-256, a kelleténél lassabban, és általában csak a SHAKE128 vagy a SHAKE256 alkalmazást kell használnia.

Megjegyzések

  • mondd ” teljesen megtört “, amennyire megértem, lehetséges kiszámolni az m1 , m2 oly módon, hogy H ( m1 ) = H ( m2 ). Azonban még senkinek sem sikerült rögzített üzenetet M adnia egy m (nem egyenlő az M ) üzenet kiszámításával, hogy H ( M ) = H ( m ).
  • @MartinBonner Igen, én ‘ m ütközési ellenállásról beszélek itt éppen ezért a „közvetlenül ütközött” előtti két szó „ütközésbiztonság”. I ‘ itt nem foglalkozom a preimage ellenállással, mert egy preimage-rezisztens , de nem ütközésálló hash funkció biztonságos használata nagyon finom és én ‘ próbálok nem hagyni csapdákat az óvatlan olvasók számára ; Megcélozom az MD5 állapotát ‘ s preimage ellenállás máshol , amikor ‘ k kifejezetten kérdezték.

Válasz

Különbség az SHA256 és az SHA3 között

Az SHA256 és az SHA3 fő különbsége a belső algoritmus kialakításuk .

Az SHA2 (és az SHA1) a Merkle – Damgård struktúra segítségével épül fel.

Az SHA3 másrészt egy Szivacs funkció és a Keccak családhoz tartozik.

A név félrevezető lehet, ha azt gondoljuk, hogy az SHA3 az SHA2-hez képest csak egy ” az algoritmus újabb ” verziója. Ahogy a SEJPM mondta: ” […] A néven túl keveset osztoznak.” A név éppen a NIST névből van megadva, és jelentése ” Biztonságos hash algoritmus “, a hivatalos szabványok családja.

Bár létrehozhat MAC s SHA256 és SHA3 esetén is, az SHA3 MAC könnyebben használható (lásd fgrieu alábbi megjegyzését).

Output

Az SHA256 egy 256 bites hash-ot ad ki. / p>

Az SHA3 lehetővé teszi

  • 224-bites
  • 256-bites
  • 384-bites
  • kimeneteket 512 bites

hash, bár az SHA2-variánsok (az SHA256 ezen változatok egyike) is lehetővé teszi ezeket a hosszúságokat.

Az SHA3 algoritmusok módosíthatók ” SHAKE ” algoritmusok és tetszőleges hosszúságú kimenetet tesznek lehetővé. További információt a ez a korábban feltett kérdés .

Biztonság

Hasogatások, amelyek csak a Merkle – Damgård struktúrát használják és adják ki a maguk teljességét Az l (vagy majdnem teljes) állapot kiszolgáltatott a hosszbővítési támadásoknak.

A SHAKE algoritmusok a Optimális aszimmetrikus titkosítási kitöltés .


Közvetlen összehasonlítást megtekinthet itt (wikipédia) .

Megjegyzések

  • Szigorúan véve, ” Hasítások, amelyek a Merkle – Damg å rd struktúra sérülékeny a hosszbővítési támadásokkal szemben ” helytelen. Az ellenpéldák közé tartozik az SHA-512/256 és az SHA-384, mivel ezek nem adják ki teljes állapotukat. A másik az SHA-256d, amelyet SHA-256d (m) = SHA-256 (SHA-256 (m)) néven definiálnak, mert elrejti az első hash állapotát. Ami igaz, az az, hogy ” Hashes, amelyek csak csak a Merkle – Damg å rd struktúrát használják és teljes (vagy majdnem teljes) állapotukat kimenetelűek

hosszhosszabbítási támadásoknak kitéve. ‘ van még egy különbség az SHA-2 és az SHA-3 között: a későbbieket könnyebb MAC-ként használni.

  • Mit értesz a ” könnyebben használható ” MAC-ként? Biztonságosabb / gyorsabb / megvalósítás?
  • Felépíthetünk egy MAC-ot az SHA-3 biztonsági argumentumával, mint $ \ text {SHA-3} (K \ | M) $ (bizonyos hosszúságú $ K $ ami az SHA-3 változattól függ és uh-nak kell lennie, nem tudom biztosan ‘); amikor nem ‘ nincs ilyen érvelésünk az SHA-2-vel (akkor is, ha a hosszbővítés tulajdonság nem érvényes). Lásd a kriptográfiai szivacsfunkciók 5.1.12. Szakaszát.
  • Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük