Skip to main content

Co je kryptografická funkce Hash?

Anonim

Šifrovací funkce šifrovacího algoritmu je algoritmus, který lze spustit na základě dat, jako je individuální soubor nebo heslo, pro vytvoření hodnoty nazývané kontrolní součet.

Hlavním použitím kryptografické hashové funkce je ověření pravosti určitého datového souboru. Dva soubory lze považovat za shodné pouze tehdy, jsou-li kontrolní součty vygenerované z každého souboru, které používají stejnou šifrovací funkci, shodné.

Některé běžně používané kryptografické hashové funkce zahrnují MD5 a SHA-1, i když mnoho dalších existují.

Kryptografické hashové funkce jsou často označovány jako "funkce hash", ale to není technicky správné. Funkce hash je obecný termín, který zahrnuje kryptografické hashové funkce spolu s dalšími druhy algoritmů, jako jsou cyklické kontroly nadbytečnosti.

Funkce kryptografického hashování: pouzdro pro použití

Řekněme, že stáhnete nejnovější verzi prohlížeče Firefox. Z nějakého důvodu jste ho museli stáhnout z jiné stránky, než je Mozilla. Protože se nenachází na webu, na kterém jste se naučili důvěřovat, měli byste se ujistit, že instalační soubor, který jste právě stáhli, je přesně stejný jako ten, který nabízí Mozilla.

Pomocí kalkulátoru kontrolního součtu vypočítejte kontrolní součet pomocí konkrétní kryptografické funkce hash, například SHA-2, a porovnejte s tím, který byl publikován na webu společnosti Mozilla. Jsou-li rovnocenní, můžete si být přiměřeně jisti, že stahování, které máte k dispozici, je právě ta, kterou chcete mít Mozilla.

Mohou kryptografické funkce Hash být obráceny?

Kryptografické hashové funkce jsou navrženy tak, aby zabránily tomu, aby se kontrolní součty, které vytvářejí, vrátily zpět do původních textů. Nicméně, i když jsou prakticky nemožné zvrátit, nejsou 100% zárukou, že budou chránit data.

Hackeři mohou použít tabulku duhových, aby zjistili prostý text kontrolního součtu.

Tabulky duh jsou slovníky, které zobrazují tisíce, miliony nebo dokonce miliardy kontrolních součtů vedle jejich odpovídající hodnoty prostého textu.

Zatímco to není technicky obracet šifrovací algoritmus šifrování, mohlo by to být také vzhledem k tomu, že je to tak jednoduché. Ve skutečnosti, protože žádný duhový stůl nemůže obsahovat všechny možné kontrolní součty, jsou obvykle užitečné pouze pro jednoduché fráze, jako jsou slabá hesla.

Zde je zjednodušená verze tabule duhy, která vám ukáže, jak by fungoval při použití šifrovací funkce SHA-1:

Prostý textKontrolní součet SHA-1
123458cb2237d0679ca88db6464eac60da96345513964
heslo1e38ad214943daad1d64c102faec29de4afe9da3d
miluji svého psaa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Hacker musí vědět, který šifrovací algoritmus šifrovacího algoritmu byl použit k vytvoření kontrolních součtů, aby zjistili hodnoty.

Pro přidanou ochranu některé webové stránky, které ukládají uživatelská hesla, provádějí další funkce šifrovacího algoritmu po generování hodnoty, ale před uložením. Tento proces vytváří novou hodnotu, kterou chápe pouze webový server a který neodpovídá původnímu kontrolnímu součtu.

Například po zadání hesla a vygenerování kontrolního součtu, může být před uložením do databáze hesel rozdělen na několik částí a přeskupen, nebo některé znaky mohou být vyměněny s ostatními. Při pokusu o ověření při příštím přihlášení se webový server změní tuto doplňkovou funkci a původní kontrolní součet se znovu vygeneruje, aby se ověřilo, zda je heslo uživatele platné.

Tím, že tyto kroky omezuje užitečnost hack, kde jsou všechny kontrolní součty ukradeny. Cílem je provést funkci, která není známa, takže pokud hacker zná šifrovací algoritmus šifrovacího algoritmu, ale ne vlastní, pak znalost kontrolních součtů hesel je neopodstatněný.

Hesla a kryptografické funkce Hash

Databáze ukládá uživatelská hesla podobným způsobem jako tabulka duhových. Po zadání hesla je kontrolní součet generován a porovnán s kontrolním součtem s vaším uživatelským jménem. Potom máte přístup, pokud jsou tyto dvě stejné.

Vzhledem k tomu, že šifrovací funkce šifrování vytváří nevratný kontrolní součet, je pro vás bezpečné, aby bylo vaše heslo tak jednoduché 12345, namísto 12@34$5, jednoduše proto, že samotné kontrolní součet nelze pochopit? Ne a tady je důvod.

Tyto dvě hesla jsou oba nedecipientní jen tím, že se podívají na kontrolních součtech:

MD5 pro 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Na první pohled si možná myslíte, že je vhodné používat jedno z těchto hesel. To je pravda, pokud se útočník pokusil zjistit heslo tím, že odhadne kontrolní součet MD5, který nikdo nečiní, ale není pravda, pokud se provede brutální síla nebo slovní útok, což je běžná taktika.

K útoku na hrubou sílu dochází, když se při hádání hesla odeberou více náhodných bodů. V takovém případě by bylo snadné odhadnout 12345, ale je těžké náhodně zjistit druhou. Slovní útok je podobný tomu, že útočník může vyzkoušet každé slovo, číslo nebo frázi ze seznamu běžných (a ne tak běžných) hesel a12345 je jedním z těchto běžných hesel.

I když kryptografické hashové funkce vytvářejí kontrolní součet obtížně až nemožný, měli byste stále používat složité heslo pro všechny vaše online a lokální uživatelské účty.

Další informace o funkcích šifrovacích funkcí

Může se zdát, že kryptografické hashové funkce se týkají šifrování, ale tyto dvě pracují různými způsoby.

Šifrování je obousměrný proces, kde je něco šifrováno, aby se stalo nečitelným a poté bylo dešifrováno později, aby bylo možné ho normálně znovu použít. Můžete šifrovat soubory, které jste uložili, aby je nemohl použít ktokoľvek, kdo přistupuje k nim, nebo můžete použít šifrování souborů k šifrování souborů, které se pohybují v síti, například ty, které nahráváte nebo stahujete online.

Kryptografické hashové funkce fungují jinak, protože kontrolní součet není určen k obrácení se zvláštním dehashing heslem. Jediným účelem kryptografických hashových funkcí je porovnávat dvě části dat, například při stahování souborů, ukládání hesel a tažení dat z databáze.

Je možné, že šifrovací funkce šifrování vytvoří stejný kontrolní součet pro různé části dat. Když k tomu dojde, nazývá se to kolize, což je obrovský problém s ohledem na to, že celý bod kryptografické hashové funkce je vytvořit jedinečné kontrolní součty pro každý vstup dat do něj.

Srážky mohou nastat, protože každá kryptografická hash funkce produkuje hodnotu pevné délky bez ohledu na vstupní data. Kriptografická hashová funkce MD5 například generuje 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 a e10adc3949ba59abbe56e057f20f883e pro tři zcela odlišné bloky dat.

První kontrolní součet je od 12345. Druhá byla vygenerována z více než 700 písmen a čísel a třetí je od 123456.

Všechny tři vstupy mají různé délky, ale výsledky jsou vždy jen 32 znaků, protože byl použit MD5 kontrolní součet.

Neexistuje žádná omezení počtu kontrolních součtů, které by mohly být vytvořeny, protože každá drobná změna ve vstupu by měla produkovat zcela jiný kontrolní součet. Protože existuje limit počtu kontrolních součtů, které může způsobit jedna kryptografická hashová funkce, vždy existuje možnost, že dojde ke kolizi.

Z tohoto důvodu byly vytvořeny další šifrovací funkce. Zatímco MD5 generuje hodnotu 32 znaků, SHA-1 generuje 40 znaků a SHA-2 (512) generuje 128. Čím větší je počet znaků, které má kontrolní součet, tím je pravděpodobnost, že dojde ke kolizi, menší.