Sunteți pe pagina 1din 37

Conceptele Crypto

Hash Functions, Message Authentication, Authenticated


Encryption

Ferucio Laurenţiu Ţiplea

Department of Computer Science


“Al.I.Cuza” University of Iaşi
Iaşi 700506, Romania
e-mail: ferucio.tiplea@uaic.ro

Spring 2018
Outline

Hash functions

Message authentication codes

Authenticated encryption
Outline

Hash functions

Message authentication codes

Authenticated encryption

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 3 / 37


Hash functions Message authentication codes Authenticated encryption

Functii Hash
O funcție hash emite un șir de bit-lungime fixă (de exemplu, 128 sau
160) atunci când este aplicată unui șir de bituri cu lungime arbitrară.

Funcțiile Hash sunt utilizate în multe aplicații criptografice, cum ar fi:


• semnarea mesajelor, în legătură cu semnăturile digitale (semnarea unui
document ar trebui să fie o operație rapidă, iar semnătura ar trebui să fie
mică, astfel încât să poată fi pusă pe un card inteligent);
• identificarea fișierelor din rețelele de partajare a fișierelor peer-to-
peer;
• asigurarea securității schemelor de micro-plăți (e.g., PayWord);
• etc.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 4 / 37


Hash functions Message authentication codes Authenticated encryption

Hash functions
Definitia 1

O functie hash cu cheie (K, X , Z ) este o pereche de algoritmi


H = (G , H ) cum ar fi:
1. G este un algoritm PPT care ia ca intrare un parametru de securitate λ
si scoate o cheie K ∈ K;
2. H este un algoritm DPT care ia ca intrare o cheie K si un mesaj m
∈ X si scoate un rezumat H (K , m) ∈ Z .

De obicei, X si Z sunt seturi de siruri binare; de obicei, Z = {0, 1} l

pentru ceva mai mic l (e.g., 128 or 256).


Cand |K| = 1, H este pur și simplu scris ca o funcție de la X la Z si
este numita functie hash.
O coliziune pentru H sub K este orice pereche (m0 , m1 ) de mesaje
distincte cum ar fi H (K , m0 ) = H (K , m1 ).

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 5 / 37


Hash functions Message authentication codes Authenticated encryption

Funcții hash rezistente la coliziuni


kka
Experiment CRHF A,H (λ)
1: Provocatorul genereaza o cheie K ← G (λ) si o da lui A
2: Adversarul A genereaza o pereche de mesaje (m0 , m1 )
3: Daca (m0 , m1 ) este o coliziune a lui H sub K atunci intoarce 1,
altfel intoarce 0.
Retineti ca adversarul lanseaza un atac cu cheie cunoscuta (kka).
Avantajul lui A este
cr -kka kka
AdvA,H (λ) = P (CRHFA,H (λ) = 1)

Definitia 2

O cheie de functie hash H este collision-resistant (CRHF) if A,H


Adv cr -kka (λ)

este neglijabila pentru toate PPT algoritme A.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 6 / 37


Hash functions Message authentication codes Authenticated encryption

Universal hash functions


Experiment UHFA,H (λ)
1: Provocatorul genereaza o cheie K ← G (λ)
2: Adversarul A genereaza o pereche de mesaje (m0 , m1 )
3: Daca (m0 , m1 ) este o coliziune a lui H sub K atunci return 1, else
intoarce 0.
Advantajul lui A este
u
AdvA,H(λ) = P (UHF A,H(λ) = 1)

Definitia 3

O cheie functie hash H este universala (UHR) daca Adv u (λ) este
A,H

neglijabila pentru toate PPT algoritmele A.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 7 / 37


Hash functions Message authentication codes Authenticated encryption

One-way functions
kka
Experiment OWHF A,H (λ)
1: Chalanger genereaza o cheie K ← G (λ) si y in gama lui HK ,
si o da lui A
2: Adversarul A(K , y ) genereaza m
3: Daca H (K , m) = y atunci return 1, altfel return 0.

Avantajul lui A este


ow -kka kka
AdvA,H (λ) = P (OWHFA,H (λ) = 1)

Definitia 4

O cheie de functie hash H e one-way (OWHF) if Adv ow -kka


A,H (λ) este
neglijabila pentru toate PPT algorithms A.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 8 / 37


Hash functions Message authentication codes Authenticated encryption

Universal one-way functions


Experiment UOWHFA,H (λ)
1: Adversarul A genereaza un mesaj m0
2: Chalenger genereaza o cheie K ← G (λ) si o da lui A
3: Adversarul A(K , m0 ) genereaza m1
4: Daca (m0 , m1 ) este o coliziune a lui H sub K atunci return 1, altfel return 0.

Retineti ca A câștigă jocul dacă este capabil să calculeze m1 ∈ H −1 (K , m0


)
cu m0 1= m1 . Avantajul lui A este
uow -kka
AdvA,H (λ) = P (UOWHFA,H (λ) = 1)

Definitia 5

O cheie functie hash H este universal one-way (UOWHF) if Adv A,H


uow -kka
(λ)
este neglijabila pentru toate PPT algorithms A.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 9 / 37


Hash functions Message authentication codes Authenticated encryption

Relationship between CRHF, UOWHF, and UHF

Teorema 6
Fie H o functie hash. Atunci:
1. Pentru orice adversar A exista un adversar B care are acelasi
timp de rulare ca A astfel incat
uow cr -kka
AdvA,H (λ) ≤ (λ)
2. Pentru orice adversar A exista un adversar B care are acelasi
Adv
timp de rulare ca A astfel incat
B,H

u uow
AdvA,H(λ) ≤ AdvB,H (λ)

Corolar 7

Orice CRHF este si UOWHF, si orice UOWHF este si UHF.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 10 / 37


Hash functions Message authentication codes Authenticated encryption

Relationship between UOWHF and OWHF

Teorema 8
Fie H o functie hash. Atunci pentru orice adversar A exista un
adversar B astfel incat
ow -kka
Adv A,H (λ) ≤ Advuow -kka
B,H(λ)+
P (|H (K , y )−1 | = 1 : y = H (K , x ), K ← K, x ← X )
Mai mult, timpul de rulare al lui B este cel al lui A plus timpul de test al
elementului din X si calculeaza H o data.

Corolar 9

Orice UOWHF este si OWHF, atâta timp cât domeniul funcției hash
este semnificativ mai mare decât domeniul său.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 11 / 37


Hash functions Message authentication codes Authenticated encryption

Finding collisions: the birthday attack


Atacul zile de nastere este bazat pe birthday paradox care spune ca
un grup de 23 (alesi aleator) oameni, cel puțin doi dintre ei vor împărtăși
o zi de naștere cu probabilitate de cel puțin 1/2.
Având în vedere un grup de persoane r, probabilitatea ca niciunun dintre
cei doi să nu împartă ziua de naștere este

365 364 365 − r + 1 365!


p365,r = · ·· =
365 365 365 (365 − r )! · 365r
·
Prin urmare, probabilitatea ca cel puțin două persoane să împartă o zi de
naștere este
1 − p365,r .

Pentru r = 23, 1 − p365,r ≥ 1/2.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 12 / 37


Hash functions Message authentication codes Authenticated encryption

Generalization of the birthday paradox


Generalizare: m proprietati si r obiecte, fiecare obiect având exact una
dintre proprietățile m. Apoi, probabilitatea ca cel puțin două obiecte să
aibă aceeași proprietate este 1 − pm,r , unde
( (
m! 1 r−1
pm,r = = 1 − · · 1−
(m − r )! · m r m m
·
Lema 10

Fie m si r be n u m e r e naturale astfel incat m > r > l 2cmJ, unde
c > 0 este o constanta reala. Atunci,
1 − pm,r > 1 − e −c .

Exemplul 11

1 − pm,r > 1 − e −c ≥ 1
2
for c ≥ ln 2 ∼ 0.693 and m > r > l 2cmJ.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 13 / 37


Hash functions Message authentication codes Authenticated encryption

The birthday attack


Birthday paradox este folosit pentru a ataca hash functions dupa cum
urmeaza:
• m = numar de posibile mesaje testate
• r = numărul de mesaje pentru care va fi calculat un mesaj de
testare;

• 1if−mp>
m,rr > e −c . pentru orice constanta reala c > 0, atunci
>1l− 2cmJ

Exemplul 12

Fie m = 240 si r astfel incat 240 > r > l220 2 ln 2J ≈ 1.200.000.
Probabilitatea de a face o coliziune este mai mare de 1/2. Prin
urmare, 40-bit mesaje testate nu asigura securitatea.

Pentru testări pe mesaje pe 128 de biți, atacul de ziua de naștere trebuie


să calculeze cel puțin 264 de testări de mesaje pentru a obține o coliziune
cu probabilitatea de cel puțin 1/2.
Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 14 / 37
Hash functions Message authentication codes Authenticated encryption

Construction of CRHF
Cateva tehnici generale:

1. Transformarea Merkle-Damgard (MD)

2. Construcția bureților

3. Constructia din DLP

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 15 / 37


Hash functions Message authentication codes Authenticated encryption

The MD transform
Principii de baza:
• Utilizați o funcție de compresie
+k
h : K × {0, 1} → {0,
1}
£
Utilizati un MD-complaint padding pad din X ⊆ {0, 1}<2 in
• \j
n≥1 {0, 1}n , cu urmatoarele proprietati:
1. m este un prefix al pad (m)
2. if |m1 | = |m2 | atunci |pad (m1 )| = |pad (m2 )|
3. if m1 /= m2 , apoi ultimul bloc din pad (m1 ) este diferit de ultimul
bloc din pad (m2 )
• Iterate h la mesajele m dupa cum urmeaza:
1. pad (m) = m1 · · · mn cu |mi | = £ pentru toate i
2. V := IV , unde IV ∈ {0, 1}k
3. for i := 1 to n do V := h(K , mi V )
4. return V

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 16 / 37


Hash functions Message authentication codes Authenticated encryption

The MD transform in practice


Teorema 13
Dacă h este rezistent la coliziune, atunci transformarea
MD bazată pe h este rezistentă la coliziune.

Practic hash functions se bazeaza pe MD-transform:


• MD4 – descoperit de Rivest in 1990. A fost punctul de plecare pentru
dezvoltarea unei serii similare hash functions
• SHA (Secure Hash Algorithm) or SHA-0 – descoperit NSA in
1993 (retras la scurt timp după publicare din cauza unor defecte)
• MD5 – succesorul consolidat al MD4 (Rivest 1995)
• SHA-1 – descoperit de NSA in 1995; nu mai este aprobat după 2010
• SHA-2 family include 6 hash functions, SHA-224, SHA-256,
SHA-384, SHA-512, SHA-512/224, SHA-512/256 (ultimele două sunt
versiuni trunchiate ale SHA-512)

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 17 / 37


Hash functions Message authentication codes Authenticated encryption

The sponge construction


Principiu de baza:
• Utilizati o permutare
π : {0, 1} → {0, 1}
(π nu are key!)
• £ este scris £ = r + c (r este rate si c este capacity)

• Mesajul m este captusit si apoi este rupt in blocuri r -bit m1 · · ·


mn
• Absorbing phase:
2. for i := .e 1 to n to mi := mi 0c , V := π(V ⊕ mi )
1. V := 0
• Squeezing phase:
1. z := V [0..r − 1]
2. for i := 1 to f£/r l do V := π(V ), z := z V [0..r − 1]
3. return z [0..£ − 1]

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 18 / 37


Hash functions Message authentication codes Authenticated encryption

The sponge construction


Teorema 14
Daca π este o permutare aleatorie și 2 si 2c sunt super-poli, atunci
construcția de burete produce un CRHF.

Proof.
Este arătat că

cr q(q − 1) q(q + 1)
AdvA,H(λ) ≤ + ,
2 2c

unde q este numărul de interogări plus numărul de blocuri r-bit în mesajele de


ieșire ale A.
Construcția cu burete este baza standardului SHA-3.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 19 / 37


Hash functions Message authentication codes Authenticated encryption

CRHFs from DLP


Chaum-van Heijst-Pfitzmann hash function:
• fie p si q să fie primele astfel încât p = 2q
+ 1;
• fie α, β ∈ Zp∗ să fie elemente primitive (si fie β = αc mod p, pt
un c );
• h : Zq × Zq → Zp∗ este dat de

h(x1 , x2 ) = αx1 β x2 mod p,

pt orice x1 , x2 ∈ Zq .

Teorema 15
Dacă o coliziune de h poate fi calculată eficient, atunci c poate fi
calculată eficient.

Conform Teoremei 15, h este rezistentă la coliziune dacă DLP este intractabil.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 20 / 37


Outline

Hash functions

Message authentication codes

Authenticated encryption

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 21 / 37


Hash functions Message authentication codes Authenticated encryption

Coduri de autentificare a mesajului


Message authentication codes = folosit pentru a dovedi integritatea
mesajului pe baza unei chei secrete partajate între părți
Definitie 16

Un sistem MAC peste (K; M; T) este un triplu al algoritmilor S = (G; Tg; V)


astfel încât:
1. G este generatorul de chei;
2. Tg este un algoritm PPT, numit algoritm de generare a etichetelor, care
produce o etichetă t € T atunci când este invocat pe o cheie K € K și un
mesaj m € M;
3. V este un algoritm DPT, numit algoritm de verificare, care iese acceptă
sau respinge atunci când este invocat pe o cheie K, un mesaj m și o
etichetă t.

Soliditate: P (V (K , m, T g (K , m)) = accept) = 1

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 22 / 37


Hash functions Message authentication codes Authenticated encryption

MAC security game


Experiment MACA,S (λ)
1: Provocatorul generează o cheie K ← G (λ)
2: adversarul A interogă provocatorul de mai multe ori (trimite
mesaje și primește etichete)
3: În cele din urmă, A scoate o pereche de falsificatori (m, t) în
rândul perechilor pe care le are.

mac -forge
P (MACA,S (λ)), numit avantajul lui A si numit AdvA,S (λ), este probabilitatea
ca A sa castige jocul de mai sus (i.e., t este eticheta valabila pentru m).
mac -forge
S este un sistem securizat MAC daca Adv A,S (λ) este neglijabil, pt toti
adversarii
PPT A.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 23 / 37


Hash functions Message authentication codes Authenticated encryption

Construction of MAC schemes


1. Scheme MAC de la RF
1.1 Pentru mesaje (foarte) scurte
1.2 Pentru mesaje lungi

2. Scheme MAC din funcțiile hash


2.1 Utilizarea funcțiilor hash universale
2.2 Utilizarea funcțiilor de hash rezistente la coliziuni

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 24 / 37


Hash functions Message authentication codes Authenticated encryption

MACs from PRFs for short messages


Daca F este un PRF, defininiti schema MAC SF ca urmatoarele: Terminologie,
notatii, remarks:
1. T g (K , m) = F (K , m)

2. V (K , m, t ) = accept iff F (K , m) = t

Teorema 17

Daca F este un PRF, atunci SF este o schema sigura MAC.

Dezavantaj: funcționează numai pentru (foarte) mesaje scurte (de


exemplu, mesaje pe 128 de biți)

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 25 / 37


Hash functions Message authentication codes Authenticated encryption

MACs from PRFs for long messages

Daca F este un PRF pe mesaj de lungime £, definiți următoarele MAC


scheme pentru mesaje de lungime n · £ pentru unele poli-delimitate n:

1. CBC-MAC
1.1 Acesta este modul de operare CBC cu IV = 0.e , unde blocul
de ieșire final este eticheta;
2. Cascade-MAC
2.1 t := K ;
2.2 For i := 1 to n do t := F (t , mi );
2.3 Output t

Theorem 18
Dacă F este un PRF, atunci schemele MAC de mai sus sunt sigure
în clasa de mesaje cu lungimea n • £, unde n este o valoare poli-
delimitată arbitrară.

Disadvantage: nu funcționează pentru mesajele cu lungime variabilă


Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 26 / 37
Hash functions Message authentication codes Authenticated encryption

MACs from PRFs: encrypted PRF


Dacă F este un PRF pentru mesaje de lungime £, definiți următoarele scheme
MAC pentru mesajele cu lungimea n • £ pentru unele poli-delimitate n:

1. ECBC-MAC (encriptat CBC-MAC)


1.1 Ca CBC-MAC, dar încă o iterație este adăugată la sfârșit, cu o altă
cheie (spațiul cheie este un produs cartezian)

2. NMAC
2.1 Ca NMAC, dar încă o iterație este adăugată la sfârșit, cu alta
cheie. Dacă este necesar, blocul de ieșire al Cascade-MAC este
acoperit pentru ultima iterație

Theorem 19
Dacă F este un PRF, atunci schemele MAC de mai sus sunt sigure
în clasa de mesaje de lungime n • £ pentru unele poli-delimitate n.

Disadvantage: functioneaza numai pentru £-bit block sequences.


Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 27 / 37
Hash functions Message authentication codes Authenticated encryption

MACs from PRFs: prefix-free encodings


If F is a PRF on messages of length £, define the following MAC schemes
for messages of length n · £ for some poly-bounded n:

1. Apply a prefix-free encoding for £-bit block sequences such as:


1.1 (m1 , . . . , mk ) → (lk k, m1 , . . . , mk ), or
1.2 (m1 , . . . , mk ) → (m1 0, . . . , mk −1 0, mk 1), where mi have
length £ − 1

2. Apply F as in one of the above methods

Theorem 20
If F is a PRF, then the MAC schemes above are secure in the class of
messages of length n · £ for some poly-bounded n.

Disadvantage: work only for £-bit block sequences.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 28 / 37


Hash functions Message authentication codes Authenticated encryption

MACs from PRFs: CMAC


If F is a PRF on messages of length £, define the following MAC scheme
for arbitrary length messages, called CMAC:
1. Generate three keys K0 , K1 , and K2 of length £ from K ;

2. Break the message m into m = (m1 , . . . , mk −1 , mk );

3. If |mk | = £ then replace mk by mk ⊕ K1 ;

4. If |mk | < £ then replace mk by (mk 1 0j ) ⊕ K 2 ;

5. Apply F with K0 in the CBC mode.

CMAC fits the randomized prefix-free encoding paradigm and its security
follows from it.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 29 / 37


Hash functions Message authentication codes Authenticated encryption

MACs from UHFs


Let H be a keyed hash function and F be a PRF. Define the following
family of functions:

FH ((K1 , K2 ), m) = F (K2 , H (K1 , m))

Theorem 21
If H is a UHF and F is a PRF, then FH is a PRF.

FH can be used to define a MAC scheme for arbitrary large messages.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 30 / 37


Hash functions Message authentication codes Authenticated encryption

MACs from CRHFs: HMAC


Fie H o hash function definita de MD transform dintr-o compression
function h(K , m). Definiti FH by

FH ((K1 , K2 ), m) = H (K2 H (K1 m))

Theorem 22
Daca h si h h dat de h h (K , m) = h(m, K ) sunt PRF, atunci FH este un PRF.

HMAC construction folosește o singură cheie K din care derivă două


chei: K1 = K ⊕ ipad si K2 = K ⊕ opad .

HMAC-SHA1 si HMAC-SHA256 sunt cazuri ale construcției de


mai sus, cu H = SHA1 si H = SHA256.

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 31 / 37


Outline

Hash functions

Message authentication codes

Authenticated encryption

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 32 / 37


Hash functions Message authentication codes Authenticated encryption

Ciphertext integrity

Luați în considerare experimentul de integritate a cifrei de text între un cifru


S și un adversar A:
Experiment CIA,S (λ)
1: Chalenger genereaza o cheie K ← G (λ)
2: Adversarul A interogează oracolul de criptare
3: Eventual A produce un text criptat ciphertext c diferit de cele
obținute prin interogări
4: Daca c este un ciphertext valid atunci return 1, altfel return 0.

Advantajul lui A este


ci ci
AdvA,S(λ) = P (CIA,H(λ) = 1)

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 33 / 37


Hash functions Message authentication codes Authenticated encryption

Criptare autentificata (AE)

Definitia 23
Un cifru S furnizeaza ciphertext integrity (CI) daca Adv ci (λ) este
A,S
neglijabil pentru toate PPT algorithms A.

Definitia 24
Un cifru S furnizeaza authenticated encryption (AE) if:
1. S este IND-CPA securizat
2. S furnizeaza CI.

Teorema 25

Daca S este AE securizat atunci el este IND-CCA securizat.


Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 34 / 37
Hash functions Message authentication codes Authenticated encryption

Constructia AE secure ciphers

Un mod popular de a construi cifru sigur AE este de a combina o criptare


sigură IND-CPA cu un MAC sigur. Există două variante principale:

1. Encrypt-then-MAC (EtM)
1.1 c ← E (K , m), t ← T g (K , c ), output (c , t )

1.2 Folosit în versiunile IPsec, TLS 1.2 și versiunile ulterioare și în versiunea


NIST standard GCM

2. MAC-then-Encrypt (MtE)
2.1 t ← T g (K , m), c ← E (K , (m, t )), output c

2.2 Folosit in SSL 3.0, TLS 1.0, si in 802.11i WiFi encryption protocol

Cheile K si K h sunt alese independent

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 35 / 37


Hash functions Message authentication codes Authenticated encryption

Encrypt-then-MAC

Teorema 26
Daca S este un cifru sigur IND-CPA si S h este un MAC sigur, atunci
constuctia EtM este AE secure.

Greșeli comune în implementarea construcției EtM:

1. Utilizați aceeași cheie pentru cifrare și MAC

2. Aplicati MAC doar pe o parte de cifru (putem pierde ciphertext


integrity) – descoperit in 2013 la RNCryptor facility in Apple’s iOS

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 36 / 37


Hash functions Message authentication codes Authenticated encryption

MAC-apoi-Encrypt

În general, MtE nu este sigur:

1. Atacul POODLE pe SSL 3.0

2. Atacul de încadrare în oracle TLS 1.0

3. Mesaje de eroare informative în TLS


1.0
Există cazuri sigure de MtE:

1. Modul de contor aleatoriu al cifrului asigură securitatea AE

Ferucio Laurentiu Tiplea Crypto Concepts Spring 2018 37 / 37

S-ar putea să vă placă și