HMAC

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Generování SHA1-HMAC HMAC (z angl. ) je typ autentizačního kódu zprávy ( MAC) počítané s použitím kryptografické hašovací funkce v kombinaci s tajným šifrovacím klíčem. Tak jako každý MAC, může být i HMAC použit jednak na ověření datové integrity a jednak na autentizaci zprávy. Na výpočet je možné použít libovolnou iterativní kryptografickou hašovací funkci jako např. MD5 či SHA-1 (v takových případech hovoříme o HMAC-MD5, resp. HMAC-SHA-1 kódu). Kryptografická síla kódu HMAC přímo závisí na síle hašovací funkce, velikosti a kvalitě klíče a velikosti výstupu hašovací funkce v bitech.

Iterativní hašovací funkce rozdělí zprávu do bloků pevné délky, na kterých postupně počítá výstup (MD5 i SHA-1 pracují nad 512bitovými bloky). Velikost výstupu HMAC kódu je stejná jako velikost výstupu hašovací funkce (tedy 128 nebo 160 bitů v případě MD5 nebo SHA-1), i když je možné ho ořezat, pokud je třeba. +more Takovéto zkrácení však snižuje bezpečnost kódu, která je shora ohraničena tzv. narozeninovým útokem.

HMAC je definovaný jako:

\mathrm{HMAC}_K(m) = h\Bigg((K \oplus \mathrm{opad}) \| h\Big((K \oplus \mathrm{ipad}) \| m\Big)\Bigg),

kde: * h je iterativní hašovací funkce, * K je tajný klíč zarovnaný nulami na velikost základního bloku hašovací funkce, * m je zpráva, nad kterou se kód počítá, * \| označuje zřetězení, * \oplus označuje exkluzivní součet * \mathrm{opad} = 0x5c5c5\ldots c5c5c vnější zarovnání (outer padding) * \mathrm{ipad} = 0x363636\ldots 3636 vnitřní zarovnání (inner padding)

opad a ipad jsou dvě dlouhé konstanty o velikosti základního bloku.

Konstrukce a analýza kódů HMAC byla po poprvé publikována v roce 1996 Mihirem Bellarem, Ranem Canettim a Hugem Krawczykem, kteří též napsali příslušné RFC 2104. Varianty HMAC-SHA-1 a HMAC-MD5 se používají v protokolech IPsec a SSL/TLS.

Příklady

Zde jsou některé hodnoty HMAC za předpokladu 8bitového kódování ASCII: HMAC_MD5("key", "The quick brown fox jumps over the lazy dog") = 80070713463e7749b90c2dc24911e275

HMAC_SHA1("key", "The quick brown fox jumps over the lazy dog") = de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9

HMAC_SHA256("key", "The quick brown fox jumps over the lazy dog") = f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

HMAC_SHA512("key", "The quick brown fox jumps over the lazy dog") = b42af09057bac1e2d41708e48a902e09b5ff7f12ab428a4fe86653c73dd248fb82f948a549f7b791a5b41915ee4d1ec3935357e4e2317250d0372afa2ebeeb3a

Reference

Externí odkazy

[url=https://web. archive. +moreorg/web/20051124150723/http://ftp. isi. edu/in-notes/rfc2104. txt]Znění RFC 2104[/url] * [url=http://php. vrana. cz/bezpecne-prihlasovani-uzivatelu. php]Bezpečné přihlašování uživatelů[/url] (pro PHP), Jakub Vrána.

Kategorie:Počítačová bezpečnost Kategorie:Kryptografické algoritmy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top