HMAC
HMAC ( keyed-hash message authentication code nebo hash-based message authentication code ) je režim pro autentizační kód zprávy založený na hashovací funkci, používaný v různých aplikacích souvisejících s počítačovou bezpečností . Prostřednictvím HMAC je ve skutečnosti možné zaručit integritu i pravost zprávy. HMAC používá ke generování kódu kombinaci původní zprávy a tajného klíče . Zvláštností HMAC je, že není spojen s žádnou konkrétní hashovací funkcí, aby bylo možné funkci nahradit, pokud není dostatečně bezpečná. Navzdory tomu jsou nejpoužívanější funkce MD5 a SHA-1 , které jsou v současnosti považovány za nebezpečné .
Operace
Zpráva je rozdělena do bloků o délce rovné j bitům . Poté se vybere tajný klíč K. Pokud je delší než j bitů, použije se na něj funkce H. Výsledek se nazývá K', klíč HMAC.
- K '= K if | K | = j bit
- K '= K + výplň nul, pokud | K | <j bit
- K'= H (K), pokud | K | > j bit
- ipad = 00110110 opakováno j / 8krát
- opad = 01011100 opakováno j / 8krát
Jakmile bude definováno možné odsazení původního klíče K', funkce HMAC vypočítá hodnotu následovně:
s indikací jednoduchého polohového zřetězení a rozdělení zprávy do bloků .
Externí odkazy
- ( EN ) RFC 2104 , HMAC: Keyed-Hashing pro ověřování zpráv
- ( EN ) RFC 2202 , testovací vektory HMAC-MD5 a HMAC-SHA1, implementace HMAC-SHA1 v jazyce C
- FIPS PUB 198, The Keyed-Hash Message Authentication Code ( PDF ) , na csrc.nist.gov .
- ( EN ) HMAC Algorithm in Detail , na cryptostuff.com . Získáno 22. dubna 2006 (z originálu archivováno 26. dubna 2006) .
- ( EN ) Implementace Pythonu HMAC na docs.python.org .