MAC (Message Authentication Code) je kratak dodatak poruci koji služi za provjeru autentičnosti i integriteta poruke, odnosno za potvrdu identiteta pošiljatelja i neizmjenjenosti zaprimljene poruke. Za razliku od digitalnog potpisa, MAC ne koristi asimetričnu kriptografiju, već isključivo simetričnu i samim time ne pruža svojstvo neporecivosti.
MAC se sastoji od 3 algortima:
Da bismo MAC smatrali sigurnim, mora biti otporan na egzistencijalne krivotvorine kod napada odabranim tekstom, tj. na uspješno dohvaćanje MAC-a za odabrani jasni tekst bez posjedovanja ključa potrebnog za generiranje istog ispravnog MAC-a.
Iako MAC sam po sebi ne osigurava svojstvo tajnosti, možemo ga koristiti u kombinaciji sa simetričnim kriptografskim algoritmima kako bismo to svojstvo osigurali. To možemo postići trima načinima primjene kriptiranja: Encrypt-then-MAC (EtM), Encrypt-and-MAC (E&M) i MAC-then-Encrypt (MtE).
Generalno, Encrypt-then-MAC (EtM) se smatra najsigurnijom od tri metode, s obzirom na to da druga dva načina ne pružaju integritet jasnog teksta te otvaraju vrata napadima izmjene teksta (malleability) ili napadima pogađanja (oracle attack).
[1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.
[2] Henk C. A. Tilborg, Encyclopedia of Cryptography and Security, Springer-Verlag US, 2005.
[3] Kriptografija i kriptoanaliza, predavanja, FER