50
Hash funkcije, autentikacija poruka i MAC

Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Hash funkcije, autentikacija poruka i MAC

Page 2: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Hash Funkcije• Primenom hash funkcije na poruku M proizvoljne

dužine dobija se hash fiksne dužine h=H(M)• Najčešće se podrazumeva da je hash funkcija

javna i ne sadrži ključ za razliku od MAC(Message Authentication Code) koji sadrže

• Može se koristiti na različite načine u poruci– za otkrivanje promena u poruci– da se napravi digitalni potpis

• Postoje:– Kriptografske hash funkcije (npr. SHA, MD5)– Nekriptografske hash funkcije (npr. Jenkins hash)

Page 3: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Osobine Hash funkcija

• Proizvodi otisak prsta neke poruke/datoteke h = H(M)

– Kondenzuje poruku M promenljive dužine– Otisak prsta je fiksne dužine

• Podrazumeva se da je javna

Page 4: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Trivijalna provera integriteta poruke hash funkcijom

Page 5: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Napad na trivijalnu proveru integriteta poruke

Page 6: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Provera integriteta

Page 7: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Digitalno potpisivanje

Page 8: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Ostale primene

• One-way password• Hashcash anti-spam zaštita• Proof of work u blockchain-u („rudarenje“

bitcoina)• Detekcija virusa i upada u sistem• Generisanje pseudoslučajnih brojeva

Page 9: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Primeri Hash funkcija (1)• XOR svih blokova poruke

(blokovi fiksne dužine)– i-ti bit:– Problem ASCII kod teksta – sva

slova počinju nulom, pa je broj efektivnih bita 12.5% manji

– Lako je naći drugu poruku koja ima isti hash

• RXOR - XOR sa rotacijom – da se izbegne problem patterna u ulaznom nizu

Page 10: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Primeri Hash funkcija (2)

• Slabe hash funkcije – jednostavno se generišu poruke koje daju istu hash funkciju ako se šalje poruka u cleartextu

• Moguće rešenje – kriptovanje poruke (neki CBC algoritam) i hash funkcije, međutim, ovakav algoritam nije otporan na promenu redosleda blokova, jer je XOR komutativna operacija

Page 11: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

XOR + CBC

• MAC = XN+1 = X1 ⊕ X2 ⊕ ... ⊕ XN

• Y=Ecbc(K,X)• X1 = IV⊕D(K, Y1)• Xi = Yi-1⊕D(K, Yi)• XN+1=YN⊕D(K, YN+1)• XN+1=X1⊕X2⊕... ⊕ XN = [IV ⊕ D(K, Y1)]⊕⊕[Y1⊕ D(K, Y2)] ⊕ ... ⊕ [YN-1⊕ D(K, YN)]

• Nije otporno na promenu redosleda

Page 12: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Zahtevi za Hash funkcije1. Mogu se primeniti na poruke M bilo koje

dužine2. Proizvodi izlaz fiksne dužine h3. Lako je izračunati h=H(M) za svako M4. Za dato h teško je naći x takvo da je H(x)=h

- one-way osobina5. Za dato x teško je naći y da je H(y)=H(x)-

weak collision resistance6. Teško je naći bilo koje x,y da je H(y)=H(x)-

strong collision resistance

Page 13: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Sigurnost hash funkcija• Blok veličine b bita, hash veličine n bita• Ako je b>n, ima 2b blokova i 2n hash-eva• za svaki hash ima 2b-n blokova• Teži se da hash funkcija ima uniformnu

raspodelu, tj. da svaki hash ima 2b-n

ulaznih blokova• Ako su poruke proizvoljne dužine onda

ima proizvoljno mnogo poruka koje daju isti hash

• Pseudoslučajnost izlaza

Page 14: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Napadi na hash funkcije

• Napadač koji želi da podmetne lažnu poruku želi da kreira y koje takvo da je H(y)=H(x) za neku originalnu poruku x.

• Na dobru hash funkciju je moguć samo brute force napad– Za hash dužine m ima 2m hasheva – Napadaču treba u proseku 2m-1 pokušaja da

se pronađe y

Page 15: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Colision resistant attack• Treba pronaći dve poruke x i y koje daju isti

hash• Birthday paradox: Ako se posmatra slučajna

promenljiva koja je dobijena po uniformnoj raspodeli u [0,N-1], verovatnoća da će u skupu od sqrt(N) elemenata biti istih je ≈0,5

• ako napadač generiše 2k/2 parova poruka, verovatnoća da će jedan od njih dati isti hash kod je veća od 0.5

• Posledica – ako je hash dužine 160 bita, smatra se da je potrebno 280 operacija da se pronađe druga poruka istog hasha

Page 16: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Tipična struktura hash funkcije

Page 17: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA algoritam

• Secure Hash Algorithm (SHA) razvijen od strane National Institute of Standards and Technology (NIST) 1993, poslednja revizija 2009.

• Dokument: Secure Hash Standard • SHA-1 ima hash vrednost od160 bita.

2002, NIST je napravio revizije SHA-256, SHA-384 i SHA-512 sa hash-om označenog broja bita

Page 18: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA-512 algoritam• Maksimalna veličina poruke 2128

• Sigurnost 256 bita• Veličina bloka 1024 bita

Page 19: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA jedan blok F

• 80 iteracija• Inicijalizacioni baferi• a = 6A09E667F3BCC908

b = BB67AE8584CAA73Bc = 3C6EF372FE94F82Bc = A54FF53A5F1D36F1e = 510E527FADE682D1f = 9B05688C2B3E6C1Fg = 1F83D9ABFB41BD6Bh = 5BE0CDI9137E2179

• Koreni prvih 8 prostih brojeva• K – konstante – treći koreni

prvih 80 prostih brojeva

Page 20: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

K konstante

Page 21: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA jedna iteracija• T1=h+Ch(e,f,g)+∑e+Wt+Kt

• T2=∑a+Maj(a,b,c)• a=T1+T2

• b=a• c=b• d=c• e=d+T1• f=e• g=f• h=g• Ch(e,f,g) – If e, then f else g• Maj(a,b,c) –• ∑a=RR28(a) RR34(a) RR39(a)• ∑e=RR14(e) RR18(e) RR41(e)• + sabiranje po modulu 264

Page 22: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

W vrednosti

• Svaki bit hasha je funkcija svakog bita originalne poruke!

Page 23: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA primer - abc

• Poruka ABC: 01100001 01100010 01100011 (616263 HEX)

6162638000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 0000000000000018

Page 24: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Izračunati hash(abc)

• ddaf35a193617aba cc417349ae204131 12e6fa4e89a97ea2 0a9eeee64b55d39a

2192992a274fc1a8 36ba3c23a3feebbd 454d4423643ce80e 2a9ac94fa54ca49f

Page 25: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

SHA primer - cbc

• Poruka CBC: 01100011 01100010 01100011 (636263 HEX)

6362638000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 00000000000000000000000000000000 0000000000000000 0000000000000000 0000000000000018

Page 26: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Izračunati hash(cbc)

• 531668966ee79b70 0b8e593261101354 4273f7ef7b31f279 2a7ef68d53f93264

319c165ad96d9187 55e6a204c2607e27 6e05cdf993a64c85 ef9e1e125c0f925f• Promenom jednog ulaznog bita 253 bita

se promenilo – efekat lavine

Page 27: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Primene hash funkcija

Page 28: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Čuvanje lozinki - linux

• U fajlu /etc/shadow se čuvaju heševi:– Hash(password||salt)– Salt – slučajna vrednost koja sprečava

rainbow napad (unapred izračunati heševi lozinki)

Username: pera

6: SHA-512

r8tyYuD1: salt

Page 29: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Borba protiv spama - hashcash

• Proof-of-work sistem (iz 90-ih godina)• Uz mejl se dodaje vrednost X-Hashcash

koja se dobija tako da:– hash(email_header||X-Hashcash)<n– Npr za SHA-160, n=2140 – 20 vodećih nula– Prilikom slanja mejla se iterira kroz Hashcash

vrednosti dok se ne dobije odgovarajući hash– Provera – brza – samo jedno hash računanje– Za spamera – previše trošenja procesorskog

vremena.

Page 30: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Merkleovo stablo

T1 T2 T3 T4 T5 T6 T7 T8

Hash

(T1)

Hash

(T2)

Hash

(T3)

Hash

(T4)

Hash

(T5)

Hash

(T6)

Hash

(T7)

Hash

(T8)

Hash

(T12)

Hash

(T34)

Hash

(T56)

Hash

(T78)

Hash

(T1234)

Hash

(T5678)

Hash

(T12345678)

Merkle root

Page 31: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Jednostavna provera dela poruke/transakcije

T1 T2 T3 T4 T5 T5 T6 T7

Hash

(T1)

Hash

(T2)

Hash

(T3)

Hash

(T4)

Hash

(T5)

Hash

(T6)

Hash

(T7)

Hash

(T8)

Hash

(T12)

Hash

(T34)

Hash

(T56)

Hash

(T78)

Hash

(T1234)

Hash

(T5678)

Hash

(T12345678)

Merkle root

Page 32: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Kodovi za autentikaciju porukaMAC

Page 33: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Sigurnosni zahtevi - napadi

1. Otkrivanje sadržaja poruka *2. Analiza komunikacije (saobraćaja) *3. Lažno predstavljanje4. Izmena sadržaja5. Izmena sekvence (redosleda)6. Promena vremena7. Poricanje slanja8. Poricanje prijema

Page 34: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Autentikacija poruka

• Autentikacija poruka se bavi: – Zaštitom integriteta i redosleda poruka– Proverom identiteta pošiljaoca– Neporicanjem porekla (razrešavanje sporova)

• Razmatra sigurnosne zahteve• Podrazumeva kreiranje autentikatora

• Koriste se tri bazične funkcije:– Hash funkcije– Kriptovanjem poruke– Kod za autentikaciju poruke (MAC)

Page 35: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Autentikacija kriptovanjem

Page 36: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Šifrovanje poruke

• Šifrovanje samo po sebi obezbeđuje i autentikaciju u određenoj meri u slučaju simetričnog šifrovanja:– Primalac zna da je morao da bude kreiran od strane

pošiljaoca, jer samo pošiljalac i primalac znaju tajni ključ

– Tada se sadržaj ne može promeniti

• Problem 1: kako automatski odrediti da je došlo do promene poruke?– Ako poruka ima određenu strukturu, redundansu ili

kontrolne sume mogu automatski da se otkriju bilo kakve promene

• Problem 2: poricanje

Page 37: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Frame Check Sequence

• a) vrši garanciju zadržavanja autentičnosti• b) napadač iako ne zna originalnu poruku

može da izvrši DoS napad na primaoca

Page 38: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Asimetrično šifrovanje poruke

• Ako je javni ključ upotrebljen:– Šifrovanje ne potvrđuje identitet pošiljaoca,

jer potencijalno svi znaju javni ključ– Ako pak

• Pošiljalac potpiše poruku korišćenjem svog privatnog ključa

• Tek tada šifruje javnim ključem primaoca• Istovremeno tajnost i autentikacija

– Potrebno prepoznati izmenjene poruke– Cena su dva ključa upotrebljena za poruku

Page 39: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Kod za autentikaciju poruke (MAC)

• Generiše se algoritmom koji stvara mali blok fiksne veličine– Zavisi od poruke i nekog ključa– Kao enkripcija koja ne mora da bude reverzibilna

• Priključuje se uz poruku kao potpis poruke

• Primalac sprovodi isto izračunavanje nad porukom i proverava da li se slaže MAC

• Osigurava da poruka nije menjana i dolazi od pošiljaoca

Page 40: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Message Authentication Code

Page 41: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Autentikacioni kodovi poruka• Pokazano je da MAC obezbeđuje sigurnost• Može se šifrovati zbog tajnosti

– Generalno se koriste različiti ključevi za svaku stvar– MAC se može izračunati pre ili posle šifrovanja– Preporučuje se da se uradi pre šifrovanja

• Zašto MAC?– Broadcast– Performanse– Nekada se zahteva samo autentikacija– Nekada je neophodno da autentikacija perzistira duže

od tajnosti (npr. Arhive)

• MAC nije digitalni potpis (više entiteta ima ključ)

Page 42: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Zahtevi za MAC

• Predvideti sve tipove napada• Zadovoljiti zahteve:

1. Poznajući poruku i MAC, nije računarski ostvarljivo u razumnom vremenu naći drugu poruku sa istim MAC

2. MAC treba da budu uniformno distribuirani3. MAC treba da podjednako zavisi od svih bita

poruke

Page 43: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Osobine MAC

• MAC je kriptografska kontrolna sumaMAC = CK(M)

– Kondenzuje poruke M promenljive dužine– Koristi tajni ključ K– Konvertuje u autentikator fiksne dužine

• Funkcija preslikavanja je više na jedan– Potencijalno mnoge poruke imaju isti MAC– Nalaženje takvih poruka sa identičnim MAC

mora da bude veoma teško

Page 44: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Sigurnost - primer• Ako je algoritam siguran• Ključ – k bita, MAC – n bita, k>n, poruka M1

• Brute force:– Prvi krug. Poznato M1 i MAC1. 2k puta

MACi=C(Ki,M1) – biće 2(k-n) potencijalnih ključeva– Drugi krug. Poznato M2 i MAC2. 2k-n puta

MACi=C(Ki,M2) - biće 2(k-2n) potencijalnih ključeva– Posle k/n krugova dobiće se ključ

• Ako je k<n posle 2k dobiće se ključ• Sigurnost je min(2k, 2n)

Page 45: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Ali ako algoritam nije siguran...

• MAC algoritam je XOR• M=M1||M2||... ||Mn

• MAC=E(K,M1⊕M2⊕...⊕Mn)• Svaka poruka Y=Y1||Y2||... ||Yn gde je

Yn=Y1⊕Y2⊕...⊕Yn-1⊕M1⊕M2⊕...⊕Mn će dati isti MAC kod, tako da napadač može da kreira proizvoljnu poruku i da ne zna ključ, ako poznaje algoritam i osnovnu poruku.

Page 46: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

HMAC• RFC 2104• Razvijene iz poznatih hash

funkcija SHA i MD5• b – broj bita u bloku• K – ključ dužine k bita• K+ - ključ dopunjen do b bita

nulama, a ako je k>b, onda H(K)+dopuna

• ipad - 36h b/8 puta• opad - 5Ch b/8 puta

Page 47: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Upotreba simetričnih šifara za MAC

• Može se upotrebiti bilo koji algoritam šifrovanja sa blokovima u nizu i iskoristiti poslednji blok kao MAC

• Data Authentication Algorithm (DAA) je široko rasprostranjen MAC zasnovan na DES-CBC

• Krajnji MAC je suviše mali za sigurnost

Page 48: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

DAA

• Smatra se da nije dovoljno siguran

Page 49: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

Whirlpool algoritam

• Zasnovan na AES• Veličina bloka 512• Veličina ključa 512

Page 50: Hash funkcije, autentikacija poruka i MAC...Hash Funkcije • Primenom hash funkcije na poruku M proizvoljne dužine dobija se hash fiksne dužine h=H(M) • Naj češ će se podrazumeva

CMAC• Cipher based MAC, CBC-MAC• Problem – ako se zna

T=MAC(K,X), onda se zna i MAC za svaku poruku X||(X⊕T)

• Poboljšanje – CMAC – više ključeva (izvedeni iz osnovnih ključeva)

• L = E(K, 0n)• K1 = L · x• K2 = L · x2 = (L · x) · x• Cn - koeficijenti prvog polinoma

nerazloživog u GF(2n)• C128= x128 + x7 + x2 + x + 1

If msb(L)=0 then k1=k0≪1 else k1=(L≪1)⊕C

If msb(k1)=0 then k2=k1≪1 else k2=(k1≪1)⊕C