This is an old revision of the document!
MAC
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 da zaprimljena poruka nije izmijenjena. Slično funkciji sažetka, MAC uzima poruku proizvoljne duljine i vraća rezultat fiksne duljine. Razlika je u tome što algoritam kojim se generira MAC može biti poznat jer se pri generiranju koristi tajni ključ. MAC ne kriptira poruku, već samo daje informaciju o pošiljatelju. Pošiljatelj pri slanju svoje poruke generira MAC i pošalje ga uz poruku. Primatelj izračuna MAC koristeći tajni ključ i usporedi ga s dobivenim. Ako su isti, znači da je pošiljatelj legitiman. Ako nisu, primatelj ne može znati je li sama poruka promijenjena tijekom slanja ili je pošiljatelj netko druig. U svakom slučaju, zna da poruka nije ispravna. Proces se može prikazati ovako:
MAC se sastoji od 3 algoritma:
- Generator ključa G - nasumično i uniformno bira ključ iz prostora
- Algoritam potpisa S - vraća oznaku t za dani ulaz ključa K i poruke M
- Algoritam verifikacije V - vraća „prihvaćeno“ ili „odbačeno“ za danu oznaku t, ključ K i poruku M
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).
Budući da MAC ne koristi simetričnu kriptografiju, ne može osigurati svojstvo neporecivosti, odnosno nema pošiljatelj nakon slanja poruke može poreći da ju je poslao jer nema nikakvog dokaza da je poruka poslana. Drugo ograničenje je što se ključ mora unaprijed definirati, odnosno moramo unaprijed znati kome sve poruka terba stići i s tim osobama definirati svoj tajni ključ.
Da bismo MAC smatrali sigurnim, mora biti otporan na egzistencijalne krivotvorine kod napada odabranim tekstom. Odnosno, ne smije se dogoditi da netko može uspješno dohvatiti MAC za odabrani jasni tekst bez posjedovanja odgovarajućeg ključa.
Izvori
[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
[4] https://www.tutorialspoint.com/cryptography/message_authentication.htm