Ugrás a tartalomhoz

SHA-2

A Wikiszótárból, a nyitott szótárból

Kiejtés

  • IPA: [ ˈʃhɒ2] érvénytelen IPA-karakterek (2)

Főnév

SHA-2

  1. (matematika) A SHA-2 egy kriptográfiai hashfüggvény-család, amelyet az amerikai NSA (National Security Agency) fejlesztett ki, és a NIST (National Institute of Standards and Technology) adott ki 2001-ben. A cél az volt, hogy leváltsa a biztonsági hibákkal küzdő SHA-1 algoritmust, és erősebb, biztonságosabb alternatívát kínáljon a digitális aláírások, tanúsítványok, és adatvédelem területén.



Mi az a hashfüggvény?

Egy hashfüggvény egy olyan egyirányú matematikai művelet, amely egy tetszőleges hosszúságú bemeneti adatból egy fix hosszúságú kimenetet (ún. hash értéket, digestet) állít elő. A jó kriptográfiai hashfüggvény jellemzői:

  • Determinált: Ugyanabból a bemenetből mindig ugyanaz a hash.
  • Gyorsan számolható.
  • Elvileg lehetetlen az eredeti adat visszafejtése a hashből.
  • Kollízióálló: Két különböző bemenethez ne lehessen ugyanazt a hash értéket találni.
  • Avalanche effektus: Egyetlen bit módosítása teljesen más hash értéket eredményez.



SHA-2 család tagjai

A SHA-2 család több különböző hosszúságú hash értéket előállító változatot tartalmaz:

  • SHA-224 – 224 bites kimenet
  • SHA-256 – 256 bites kimenet
  • SHA-384 – 384 bites kimenet
  • SHA-512 – 512 bites kimenet
  • SHA-512/224 – 224 bites kimenet, SHA-512-alapokon
  • SHA-512/256 – 256 bites kimenet, SHA-512-alapokon

A legelterjedtebbek közülük a SHA-256 és a SHA-512, mivel ezek biztonságosnak számítanak és széleskörű támogatottsággal bírnak.



Működési elv: SHA-256 példáján keresztül

A SHA-256 a következő lépésekből áll:

  1. Padding: A bemeneti adatot kiegészítik úgy, hogy a hossza osztható legyen 512-vel. Ez tartalmaz egy 1-est, sok 0-t, majd a végén az eredeti hosszúságot.
  2. Inicializáló értékek: 8 darab 32 bites „initial hash value” áll rendelkezésre, ezek a belső állapotot képviselik.
  3. Üzenettömbökre bontás: Az adatot 512 bites blokkokra osztják.
  4. Bővítés (message schedule): Az egyes blokkokat 64 darab 32 bites szóra bővítik.
  5. Körök (rounds): 64 körön keresztül történik a hash érték kiszámítása. Minden kör egy adott matematikai műveletsort tartalmaz (biteltolások, XOR, moduláris összeadás).
  6. Összeadás: Az új értékek hozzáadódnak az előző körök eredményeihez.
  7. Kimenet: A végső 256 bites hash érték előállítása.

A SHA-512 ugyanilyen elven működik, csak 64 bites műveletekkel és 80 körrel.



Miért fontos a SHA-2?

SHA-2 szerepe kulcsfontosságú a modern kriptográfiában:

  • Digitális aláírásokban: Pl. PDF, e-mail, SSL/TLS tanúsítványok hitelesítésénél.
  • Jelszókezelésben: A jelszavak hash értékét tárolják adatbázisban (ideálisan sózva és több körrel, pl. bcrypt, PBKDF2).
  • TLS/SSL kapcsolat: HTTPS kommunikáció során a hitelesítési lánc és tanúsítványok SHA-2 hash-t használnak.
  • Blockchain rendszerekben: A legtöbb kriptovaluta (pl. Bitcoin) a SHA-256-ot használja a blokk hash-ekhez és proof-of-work számításhoz.



SHA-1 és SHA-2 – Miért történt a váltás?

A SHA-1 hosszú évekig szabvány volt, de 2005-ben kriptográfiai gyengeségeket fedeztek fel benne. 2017-ben a Google kutatói kollíziót mutattak be („SHAttered” támadás), amivel két különböző PDF dokumentumhoz ugyanazt a SHA-1 hash-t tudták generálni. Ez végleg aláásta a SHA-1-be vetett bizalmat.

A SHA-2 ilyen típusú támadásokkal szemben jelenleg ellenállónak számít. A legjobb ismert támadások messze nem közelítik meg a gyakorlati kivitelezhetőséget, azaz nem éri meg megtörni.



Biztonság

A SHA-2 algoritmus jelenleg biztonságosnak számít:

  • SHA-256 esetén:
    • Kimenet hossza: 256 bit
    • Preimage resistance: 2²⁵⁶ művelet (gyakorlatilag lehetetlen visszafejteni)
    • Collision resistance: 2¹²⁸ művelet (birthday paradoxon miatt)
  • Nincs ismert hatékony támadás, ami gyengítené a fenti határokat.
  • A modern számítógépekkel sem valószínű, hogy egyhamar gyakorlatban megtörhető lesz.



SHA-2 vs SHA-3

A SHA-3 egy teljesen eltérő szerkezetű hash algoritmus (sponge konstrukció), amit a NIST 2015-ben szabványosított a SHA-2 mellett, nem helyette. SHA-3 akkor jöhet szóba, ha például valaki fél az NSA által tervezett algoritmusoktól vagy szükség van egy teljesen eltérő szerkezetű alternatívára.



Gyakorlati példák – Hash generálása

Linux terminálban egy fájl SHA-256 hash-ének kiszámítása:

sha256sum fajl.txt

Python példában:

import hashlib

data = b"Hello, world!"
hash_value = hashlib.sha256(data).hexdigest()
print("SHA-256:", hash_value)

Összegzés

A SHA-2 algoritmuscsalád a mai napig az egyik legmegbízhatóbb és legszélesebb körben használt hashfüggvény. Biztonsága, stabilitása és elterjedtsége miatt szinte minden kriptográfiai rendszerben megtalálható – a böngészőktől kezdve a blokkláncokon át a jelszókezelésig. Bár a jövőben a SHA-3 fokozatosan átveheti a helyét bizonyos alkalmazásokban, SHA-2 továbbra is a biztonság alappillére a digitális világban.


  • SHA-2 - Értelmező szótár (MEK)
  • SHA-2 - Etimológiai szótár (UMIL)
  • SHA-2 - Szótár.net (hu-hu)
  • SHA-2 - DeepL (hu-de)
  • SHA-2 - Яндекс (hu-ru)
  • SHA-2 - Google (hu-en)
  • SHA-2 - Helyesírási szótár (MTA)
  • SHA-2 - Wikidata
  • SHA-2 - Wikipédia (magyar)