Sunteți pe pagina 1din 14

Obiective de securitate

„ Obiective centrale:
1) Confidentialitatea sau asigurarea faptului ca informatia ramane accesibila doar
partilor autorizate pentru aceasta. Se asigura prin functii de criptare simetrica sau
asimetrica.
2) Intregritatea se refera la asigurarea faptului ca informatia nu a fost alterata pe
parcursul transmisiei sau de catre un posibil atacator.
3) Autenticitatea are doua coordonate distincte: autentificarea entitatilor si
autentificarea informatiei. Autentificarea entitatilor se refera la existenta unei
1.1. Obiective de securitate, cadrul de lucru garantii cu privire la identitatea unei anume entitati. Autenticitatea informatiei se
refera la garantarea sursei de provenienta a informatiei – in mod implicit aceasta
garanteaza si integritatea informatiei. Se asigura prin coduri de autentificare a
mesajelor MAC.
4) Non-repudierea previne o entitate in a nega o actiune intreprinsa (actiune
materializata desigur in transmisia unei informatii). Se asigura prin utilizarea
semnaturilor digitale.

ADVERSAR

CANAL NESIGUR

Participantii la comunicare CANAL SIGUR

„ Alte obiective: (Cadrul de lucru) EMITATOR


(EXPEDITOR)
RECEPTOR
(DESTINATAR)
CANAL NESIGUR CANAL NESIGUR

1) Disponibilitatea se refera la asigurarea faptului ca un serviciu este disponibil


atunci cand un utilizator legitim il solicita. Atacurile asupra acestui obiectiv se CANAL SIGUR CANAL SIGUR

numesc atacuri de tip DoS (Denial of Service), masura cripografica impotriva


acestui atac sunt puzzle-urile criptografice. PARTE DE INCREDERE

Actualitatea informatiei asigura faptul ca informatia primita este „proaspata”.


Ce este criptografia
(ARBITRU)
2)
3) Autorizarea se refera la controlul accesului si la prevenirea intrarii agentilor
neautorizati in sistem. „ “Criptografia înseamnă comunicare în prezenţa adversarilor” - Ron Rivest
4) Auditabilitatea (trasabilitatea) se refera la posibilitatea de a reconstrui istoricul
functionarii sistemului.
Protectia partilor terte se refera la evitarea transmiterii pericolului asupra partilor
5)
cu care exista o legatura. Ce este un criptosistem (sistem criptografic)
„ Definitie: Un criptosistem este un set de 5 elemente {P,C,K,E,D} care satisface
urmatoarele conditii: 1. P este multimea finita si nevida a plain-textelor posibile, 2. C este
multimea finita si nevida a cripto-textelor posibile 3. K – este multimea finita si nevida a
cheilor posibile 4. pentru oricare cheie k exista doua functii ek si dk din E si D astfel incat
ek:P→C, dk: C→P si pentru orice plain-text x avem dk(ek(x))=x
3 4

Clasificarea functiilor criptografice


„ Exista trei mari categorii de functii criptografice:
1) Functii simetrice (cu cheie secreta) – utilizeaza aceeasi cheie de ambele parti.
Exemple de functii simetrice: criptari simetrice (regula de decriptare se poate deduce
usor cunoscand regula de criptare si reciproc), coduri de autentificarea a mesajelor
(MAC).
2) Functii asimetrice (cu cheie publica) – utilizeaza chei diferite de partea celor doua
entitati. Exemplu de functii asimetrice: criptari cu cheie publica (cheia privata nu poate fi
calculata pe baza cheii publice – nu este tot timpul adevarat si reciproc), semnaturi
digitale.
3) Functii fara cheie - nu utilizeaza cheie (unii autori le considera functii simetrice in baza
principiului: nici o cheie inseamna aceeasi cheie de ambele parti). Exemplu de functii
1.2. Functii criptografice
fara cheie: functii hash.

Functii one-way si trapdoor one-way (cu trapa)


„ Definitie (intuitiva): O functie f:X→Y se numeste one-way daca f(x) este usor de calculat
pentru orice xЄX si pentru orice yЄIm(f) este nefezabila gasirea unui xЄX astfel incat
f(x)=y
„ Definitie (intuitiva): O functie one-way se numeste trapdoor one-way daca exista o
informatie, numita trapdoor (trapa), in baza careia functia poate fi inversata
„ Observatie (intuitiva): Orice functie trapdoor one-way poate fi baza unui sistem
criptografic daca valoare trapei este cheia de decriptare si aceasta este greu de calculat
6
pentru un adversar respectiv usor de calculat pentru cel care o genereaza
Tipuri de atac asupra functiilor criptografice
„ Scopul unui atac asupra unei functii criptografice este de a recupera plain-textul
din cripto-text sau de a recupera cheia secreta:
1) Criptotext cunoscut (ciphertext-only) - adversarul cunoaste doar criptotextul.
2) Plaintext cunoscut (known plaintext)- adversarul cunoaste mai multe perechi
(plaintext, ciphertext).
3) Plaintext ales (chosen plaintext) - adversarul alege plaintext-ul si primeste
valoare criptotextului.
4) Plaintext ales adaptiv (adaptive chosen plaintext) - la fel ca la atacul plaintext 1.2.1 Functii criptografice fara cheie
ales doar ca alegerea se face in functie de raspunsurile anterioare.
5) Criptotext ales (chosen ciphertext) – adversarul alege criptotextul si primeste
plaintextul.
6) Criptotext ales adaptiv (adaptive chosen ciphertext) – la fel ca la atacuri
criptotext ales cu observatia ca fiecare alegere se face in functie de raspunsurile
anterioare.

Functii fara cheie

„ Functii hash se noteaza H(x) - functie hash aplicata mesajului x. O functie hash
este o functie one-way (ireversibila) care primeste ca intrare mesaje de
dimensiune variabila si returneaza un mesaj de lungime fixa din care mesajul
initial nu poate fi recuperat, aceste primitive nu folosesc nici un fel de cheie. Cea
mai utilizata familie de functii hash este SHA (Secure Hash Algorithm) [FIPS
180-2, 2002] pentru care dimensiunea iesirii este 224, 256, 384, 512 biti 1.2.2 Functii criptografice cu cheie simetrica
indiferent de dimensiunea datelor de intrare.
„ In general fata de o functie hash se impun cerintele:
a) Rezistenta primara a imaginii (sau target collision resistance): avand H(x) gaseste
x
b) Rezistenta secundara a imaginii: avand x,H(x) gaseste x’ astfel incat H(x)=H(x’)
c) Rezistenta la coliziune: gaseste x, x’ astfel incat H(x)=H(x’)

Criptari simetrice
Criptari simetrice „ Sisteme criptografice care utilizeaza aceeasi cheie sau chei usor de calculat una
pe baza celelilalte pentru criptare si decriptare (cheia este referita ca cheie
secreta)
„ Doua principii constructive:
1) substituţia – inseamna inlocuirea unor simboluri sau grupuri de simboluri prin
alte simboluri sau grupuri de simboluri - creează confuzie
2) transpoziţia – inseamna amestecarea (permutarea) simbolurilor din cadrul unui
bloc creează difuziune
„ Doua clase de criptari simetrice:
1) coduri bloc - algoritmi de criptare care impart mesajul ce trebuie criptat in
blocuri de dimensiune fixa l si cripteaza un bloc la un momemt dat
2) coduri stream -algoritmi de criptare pentru care cripteaza „caracter cu caracter”
(practic lungimea blocului este 1, si transformarea de criptare se poate modifica
pentru fiecare caracter)
„ Exemplu: Codul Vernam (sau one-time pad) este un cod stream care presupune
utilizarea unei chei aleatoare k de aceeasi dimensiune cu a mesajului m, criptotextul
c este ci = mi XOR ki (se face XOR bit cu bit intre mesaj si cheie) (cheia nu poate fi
reutilizata pentru transmiterea altui mesaj)
„ Observatie: Se poate demonstra ca un sistem criptografic perfect, care sa nu poata fi
11 spart, necesita o cheie aleatoare de aceeasi dimensiune cu a mesajului 12
Reteaua Feistel si DES (primul standard in
AES (standardul curent in criptografia simetrica)
criptografia simetrica)
„ Codul Feistel este primul criptosistem simetric modern, marea parte a
criptosistemelor simetrice contemporane urmeaza principiile codului Feistel (retea
Feistel)
„ Reteaua Feistel aplica urmatoarele transformari asupra plaintext-ului: permutari (P- „ La nivelul anilor 2001 DES nu mai ofera securitatea necesara, pentru care, pe baza
boxes) pentru a crea difuzie, substitutii, pentru a crea confuzie (S-boxes) si operatii de concurs se alege un nou standard AES (Advanced Encryption Standard)
pe biti (XOR) in http://en.wikipedia.org/wiki/Feistel (in general este necesar un minim „ Din cei 5 finalisti: Rijndael, Serpent, Twofish, RC6 si MARS este ales candidatul
de 16 runde pentru securitate adecvata). Rijndael
„ Principii generale in reteaua Feistel: cu cat dimensiunea blocului, a cheii si numarul „ Rijndael este un cod bloc disponibil in 3 variante: 128, 192, 256 de biti. Descrierea
de runde creste, creste si securitatea respectiv scade viteza de criptare/decriptare, criptosistemului http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf,
iar daca scad, scade si securitatea respectiv creste viteza de criptare/decriptare http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
„ Marele avantaj este ca criptarea si decriptarea se fac parcurgand aceeasi retea in „ Necesita doar 10-14 runde in functie de dimensiunea cheii, este sigur si rapid
sens invers „ Un singur dezavantaj: are un design extrem de exotic comparativ cu toate celelalte
„ DES (Data Encryption Standard) este primul standard simetric, valabil pana in 2001 criptosisteme simetrice, transformarea Rijndael este echivalenta cu o ecuatie
(in 1999 recomandat sub forma 3DES) algebrica destul de simpla (comprativ cu alte coduri) fata de care exista suspiciunea
„ DES este un cod simetric pe retea Feistel ca ar putea duce in viitor la o serie de atacuri
http://www.macfergus.com/pub/rdalgeq.pdf
„ DES transforma plain-text de 64 de biti in criptotext de 64 de biti, cheia DES are doar
56 de biti. Poate fi usor spart in prezent si este scos din uz. Continua sa existe sub
varianta 3DES care consta in aplicarea tranformarii DES de 3 ori si este pe 128 de
biti. Descrierea criptosistemului http://csrc.nist.gov/publications/fips/fips46-3/fips46-
3.pdf , http://en.wikipedia.org/wiki/Data_Encryption_Standard
13 14

Coduri de autentificare a mesajelor MAC


(Message Authentication Codes)

„ Coduri de autentificare a mesajelor se noteaza MACk(m) - cod de autentificare a


mesajului m calculat cu cheia k).
„ Se construiesc peste o functie hash (in general MD5 sau SHA1, MD5 cu toate ca
ambele au un nivel de securitate destul de scazut)
„ Se folosesc pentru a testa autenticitatea unei informatii – implica si o garantie asupra 1.2.3 Functii criptografice cu cheie asimetrica
integritatii
„ In practica se foloseste HMAC si NMAC propuse de Mihir Bellare, Ran Canetti, Hugo
Krawczyk in lucrarea http://www-cse.ucsd.edu/users/mihir/papers/kmd5.pdf

15

Grupul de intregi (Z n* ,⋅)


Z n = {0,1,2,3,..., n − 1} = {x ∈ N | 0 ≤ x < n} ca fiind multimea
Criptari asimetrice „ Definitie: Definim
resturilor modulo n.
Definitie: Definim n {x ∈ Z n | cmmdc ( x, n ) = 1} ca fiind multimea intregilor din Zn
Z =
*
„
relativ primi la n. In particular pentru un numar prim n avem Z *p = {1,2,3..., p − 1}

„ Remarca: ( )
Z n ,⋅ formeaza un grup abelian (simbolul . denota inmultire)
*

deoarece urmatoarele proprietati sunt satisfacute:


1) Legea este asociativa pentru ca a ⋅ (b ⋅ c ) ≡ (a ⋅ b ) ⋅ c mod n
2) Legea este comutativa pentru ca a ⋅ b ≡ b ⋅ a mod n
3) Exista element neutru deoarece a ⋅1 ≡ 1 ⋅ a ≡ a mod n
4) Fiecare element are un invers multiplicativ (acest invers este usor de calculat
cu algoritmul Euclidian Extins) ∀a, ∃a −1 | a ⋅ a −1 ≡ 1mod n
„ Definitie: Functia Euler Φ pentru un intreg n a carui factorizare este
cunoscuta se poate calcula ca
⎛ 1 ⎞ ⎛ 1 ⎞ ⎛ ⎞
n = p1e1 ⋅ p 2e2 ⋅ ... ⋅ p rer ⇒ φ (n ) = n ⋅ ⎜⎜1 − ⎟⎟ ⋅ ⎜⎜1 − ⎟⎟ ⋅ ... ⋅ ⎜⎜1 −
1
⎟⎟
⎝ p1 ⎠ ⎝ p2 ⎠ ⎝ pr ⎠
„ Observatie: Functia Euler Φ reprezinta numarul de intregi mai mici decat n
si relativ primi la acesta si este ordinul grupului Z n* ,⋅ ( )
17 18
Teorema lui Euler Ce se poate calcula eficient in (Z n* ,⋅)
1) Adunare, pentru a aduna doi intregi de l digiti in baza b sunt necesare O(l)
„ Teorema (Euler): Pentru orice intreg n supraunitar avem:
adunari la nivel de digit
Scadere, pentru a aduna doi intregi de l digiti in baza b sunt necesare O(l) scaderi
xφ (n ) ≡ 1 mod n ∀x ∈ Z n*
2)
la nivel de digit
3) Inmultire, pentru a inmulti doi intregi de l respectiv t digiti in baza b sunt necesare
„ Demonstratie (a fost facuta la tabla): O(lt) inmultiri la nivel de digit
4) Impartire, pentru a imparti un intreg de l digiti la un intreg de t digiti sunt necesare
O(lt) inmultiri si O(l-t) impartiri la nivel de digit
5) Ridicarea la putere, pentru a ridica un intreg la puterea e sunt necesare
O(3/2lg(e)) inmultiri
„ In criptografie se lucreaza in general cu intregi care sunt produsul a doua 6) Inverse multiplicative si cmmdc, inversul multiplicativ al unui intreg si cmmdc a
numere prime, in acest caz: doi intregi se poate calcula cu Algoritmul Euclidean Extins, complexitate O((lgn)2)
n = p ⋅ q ⇒ φ (n ) = ( p − 1) ⋅ (q − 1) 7) Sistemele de congruente lineara (vezi mai jos) care respecta Teorema Chineza
a resturilor folosind algoritmul lui Gauss, complexitate O((lgn)2)
φ (n )
⇒x = x ( p −1)⋅(q −1) ≡ 1 mod n ∀x ∈ Z n* Teorema chineza a resturilor: sistemul

⎪ x = a mod n are solutie unica in Z n , n = ∏ ni
k

⎪⎪ 1 1
i =1

n = 13 ⋅17 = 221 ⇒ φ (n ) = (13 − 1) ⋅ (17 − 1) = 192


⎨ x = a2 mod n2

„ Exemplu
⎪ ............
⎪ daca cmmdc( ni , n j ) = 1, ∀i ≠ j
⎪⎩ x = a3 mod nk

φ (n )
⇒x =x ≡ 1 mod 221∀x ∈ Z n*
k k
192 n
19 Agoritmul lui Gauss: solutia sistemului este x= ∑a N M
i =1
i i i mod n, n = ∏n , N
i =1
i i =
ni
, M i = N i−1 mod ni 20

1)
Ce nu se poate calcula eficient in Z n* ,⋅ (I)
Problema factorizarii intregului n (PFACT)
( )
Pentru un intreg n,
k
n = p1e1 ⋅ p2e2 ⋅ ... ⋅ pkek = ∏ piei
i =1
Problema Radacinii de ordin k in Zn
„ Definim functia: f : Z n* → Z n∗ , f (x ) = x k mod n
2) Problema radacinii patrate (PRP) se poate calcula eficient daca si numai daca
se cunoaste factorizarea lui n (problema calculului radacinii patrate este „ Daca k este relativ prim la Φ(n) are invers multplicativ modulo Φ(n):
echivalenta cu problema factorizarii lui n)
∃d a.i. d ⋅ k ≡ 1 mod φ (n )
Pentru un intreg x, a astfel incat x=a2modn „ In acest caz functia este inversabila si inversa este:
f −1 : Z n* → Z n∗ , f −1 (x ) = x d mod n
3) Problema radacinii de ordin ε (Problema RSA - RSAP), cmmdc(ε, Φ(n))=1 : se
poate calcula eficient daca se cunoaste factorizarea lui n (Nu exista nici o „ Calculul functiei inverse poate fi eficient facut daca se cunoaste factorizarea lui n,
demonstratie ca aceasta problema ar fi echivalenta problemei factorizarii) altfel nu se cunoaste nici o metoda eficienta de extragere a radacinii

Pentru un intreg x, a astfel incat x=aεmodn

4) Problema Cheilor RSA (PCRSA), pentru ε, cmmdc(ε, Φ(n))=1, calculeaza δ astfel


incat εδ=1mod Φ(n): se poate calcula eficient daca si numai daca se cunoaste
21 22
factorizarea lui n

Descrierea cripto-sistemului RSA Exemplu RSA


„ Generarea cheii
1. Genereaza doua numere prime p,q
2. Calculeaza n=pq, Φ(n)=(p-1)(q-1) „ Exemplul 1: (numere artificiale, in practica se folosesc numere de sute-
3. Genereaza e relativ prim la Φ(n) mii de biti)
4. Calculeaza d a.i. ed≡1mod Φ(n) „ Generarea cheii p = 11, q = 13, n = p ⋅ q = 143,φ n = p − 1 ⋅ q − 1 () ( )( ) = 120
5. Cheia Publica este (n,e) si Cheia Privata (n,d) e = 7, d = 103, e ⋅ d ≡ 1 mod 120
Cheia Publica (7,143)
„ Criptarea
1. Obtine cheia publica (e,n)
2. Calculeaza c=memodn, m este mesajul iar c este mesajul criptat Cheia Privata(103,143)
„ Decriptarea „ Criptarea m=5
1. Receptioneaza mesajul criptat c
2. Calculeaza m=cdmodn c = m e mod n = 57 mod 143 = 47
„ Observatie: cel mai costisitor pas in implementarea RSA este generarea celor „ Decriptarea c = 47
doua numere prime p si q, generarea cheii se face insa doar o data urmand ca
aceeasi cheie sa fie utilizata pentru oricate criptari/decriptari. Generarea celor m = c d mod n = 47103 mod143 = 5
doua numere prime se face in mod eficient prin generarea unor numere aleatoare
si aplicarea unor teste de primalitate asupra acestora (testele de primalitate sunt „ Exemplul 2: cateva module ilustrative pentru securitatea RSA
usor de efectuat si sunt probabilistice, deci se aplica pana cand se stie cu o http://www.rsa.com/rsalabs/node.asp?id=2093
probabilitate suficient de mare ca numarul este prim)
23 24
Analiza Securitatii Ordinul unui element in (Z n* ,⋅)
„ Relatia intre RSA si Factorizarea Intregilor:
- Nu exista nici o demonstratie ca problema RSA este echivalenta cu factorizarea
- Factorizarea lui n duce la “spargerea” sistemului
- Calculul (sau aflarea) unei perechi de exponenti public-privat este echivalent
factorizarii. Observatie: a e⋅d −1 ≡ 1 mod n, ∀ a ∈ Z * , e ⋅ d − 1 = 2 s ⋅ t
n
i −1 i
⋅t
daca∃i a.i. a 2 ≠ 1 mod n si a 2 ⋅t ≡ 1 mod n
⇒ cmmdc a 2 ( i −1
⋅t
)
− 1, n este p sau q „ Definitie: Ordinul unui element a din Zn este cel mai mic intreg t pentru care:
a t ≡ 1mod n
„ Forward search – daca mesajul este relativ mic atunci el poate fi subiectul unei „ Elementele de ordin Φ(n) se numesc generatori ai lui Zn are generatori(orice element
cautari exhaustive din Zn poate fi scris ca putere a generatorului)
„ Exponenti mici de decriptare – pot fi si ei subiectul unei cautari exhaustive
Zn are generatori daca si numai daca: n = 2, 4, p , 2 p
k k
„
„ Mesaje necriptate – exista mesaje care nu pot fi criptate (Ex: 0,1) numarul lor este
redus si nu afecteaza securitatea, numarul de mesaje care au valoarea criptotextului
egala cu a plain-textului este exact (gcd (ε − 1, p − 1) + 1)(gcd (ε − 1, q − 1) + 1)
„ Utilizarea modulelor comune: a fost sugerat ca mai multe entitati din acelasi sistem
sa foloseasca un modul comun acest lucru duce la pierderea totala a securitatii
deoarece fiecare entitate poate calcula cheia celeilalte entitati
25 26

Ce nu se poate calcula eficient in Z n* ,⋅ ( ) (II)


Schimbul de cheie Diffie-Hellman
[Diffie-Hellman, 1976]
„ Schimbul de cheie Diffie-Hellman: A → B : a α mod p
4) Problema Logaritmului Discret (PLD)
B → A : a β mod p
Avand α,β gaseste γ astfel incat β= αγ mod n cheie comuna : a αβ mod p
„ A il cunoaste α pe iar B il cunoaste pe β deci dupa acest schimb A si B pot calcula in
„ In sisteme criptografice asimetrice problema logaritmului discret se foloseste particular aαβ mod p ca fiind cheia comuna (pentru ca (aαmodp)β mod p = (aβmodp)α mod
pentru grupul Zp cand: p = aαβ mod p )
1) p este numar prim
„ Deoarece logaritmul discret nu poate fi calculat un adversar nu poate sa il afle pe α
2) p-1 are un divizor prim p’ suficient de mare sau β deci nu poate efectua calculul facut de A si B pentru a obtine cheia
3) α este generator al lui Zp
„ Atentie: schimbul de cheie Diffie-Helman este un schimb de cheie neautentificat si
poate fi fraudat cu un atac de tip man-in-the-middle (lucru valabil si pentru orice alt
„ In practica uneori se recurge la alegerea unui numar care nu este generator al lui schimb de cheie fara autentificare din partea participantilor)
pentru a creste viteza de criptare/decriptare – duce la scaderea nivelului de
securitate
„ Problema se poate generaliza pe orice grup algebric care are generatori: de
exemplu grupul format de punctele unei curbe eliptice definite pe un camp finit
27 28

Criptarea asimetrica ElGamal [ElGamal,


Ce nu se poate calcula eficient in (Z ,⋅)
*
n (III) 1985]
„ Generarea cheilor: „ ElGamal:
5) Problema Diffie-Hellman (PDH) 1) Genereaza un numar prim p A → B : a, aα mod p
B → A : δ = m ⋅ ( aα ) mod p, γ = a k mod p
k
2) Alege un generator a al grupului Zp
Avand pe a generator in Zp si aα, aβ gaseste-l pe aαβ mod p 3) Genereaza un intreg aleator α „ A decripteaza mesajul:

( )
α
„ Definitie: Spunem ca problema P1 se reduce polinomial la P2 daca exista un algoritm 4) Calculeaza aα mod p m = δ ⋅ γ −1 mod p
A1 care rezolva P1 si care are ca subrutina un algoritm A2 care rezolva pe P2 iar A1 5) Cheia publica este a, a mod p, p iar cea privata este
α

ruleaza in timp polinomial daca A2 ruleaza in timp polinomial (se noteaza P1 ≤ P P2 ) α


„ Cu privire la problemele introduse in slideurile (I), (II), (III) sunt valabile relatiile: „ Criptarea unui mesaj:
1) Obtine cheia publica a entitatii a, aα mod p, p
(1) PDH ≤ P PLD
(2) PRP ≤ P PFACT
2) Reprezinta mesajul ca intreg in intervalul (1,p)
(3) PFACT ≤ P PRP 3) Genereaza un intreg aleator 1<k<p-2 „ Observatie: numarul k este ales
(4) PRSA ≤ P PFACT 4) Calculeaza γ = ak mod p aleator de B, la fiecare criptare B
(5) PRSAC ≤ P PFACT (7) nu se stie dar se pare ca e adevarat 5) Calculeaza δ = m(a ) mod p
α k alege o valoare noua pentru k
(6) PFACT ≤ P PRSAC (8) nu se stie, cu toate ca majoritatea expertilor cad de acord ca ar 6) Trimite catre posesorul cheii private γ, δ
(7) ? PLD ≤ P PDH ? trebui sa fie adevarat, recent au aparut cateva rezultate care „ Decriptarea unui mesaj:
arata ca s-ar putea sa nu fie adevarat
(8) ?? PFACT ≤ P PRSA ?? 29 1) Decripteaza mesajul ca m= δγ-α mod p 30
Semnaturi digitale Clasificare
1) semnaturi digitale cu apendice (frecvent utilizate in practica) – sunt semnaturi digitale
pentru a caror verificare este necesara si prezenta mesajului original care a fost semnat
2) semnaturi digitale care permit recuperarea mesajului (fara apendice) – sunt semnaturi
digitale care nu necesita prezenta mesajului original pentru a fi verificate, mai mult decat atat ele
permit recuperarea mesajului din semnatura (este usor de observat ca orice semnatura digitala
care face posibila recuperarea mesajului poate fi transformata intr-o semnatura digitala cu
„ Sunt echivalentul electronic al semnaturilor de mana, se folosesc pentru a asigura non- apendice)
repudierea informatiei (impiedica o entitate in a nega ulterior ca transmis o anume informatie) Cu apendice
„ Principiu: inverseaza rolul cheii publice si private ale unui sistem criptografic asimetric si
foloseste cheia privata pentru a semna mesaje iar cheia publica pentru a verifica semnatura
„ Definitie: O schema (algoritm) pentru semnatura digitala este un set de 3 elemente {Gen, Sig, Ver} care
satisface urmatoarele conditii: 1. Gen este algoritmul de generare a cheilor care primeste ca intrare un
parametru de securitate k si returneaza o pereche (Pb, Pv) de chei publica, privata 2. Sig este algoritmul Cu recuperarea mesajului
de semnare digitala care primeste ca intrare cheia privata Pv si mesajul m si returneaza semnatura 3.
Ver – este algoritmul de verificare care primeste ca intrare cheia publica Pb, semnatura si mesajul
(uneori nu e necesar si mesajul) si returneaza 1/0 dupa cum semnatura este adevarata sau falsa 4.
pentru orice pereche de chei publica/privata si orice mesaj este adevarat ca Ver(Pb, m, Sig(Pv,m))=1

figura din [Menezes et. al, 1996, p. 429, p. 431]


„ In cazul semnaturii fara apendice R este o functie de redundanta, la cea cu apendice h este
o functie hash
31 „ Observatie: Orice semnatura fara apendice poate fi transformata in semnatura cu 32
appendice

Nivele de fraudare pentru semnaturi digitale Tipuri de atac asupra semnaturilor digitale

1) key-only – este atacul in care adversarul are acces doar la cheia publica, de
verificare, a semnaturii digitale
1) Falsificare existentiala (existential forgery) – un adversar poate falsifica cel putin 2) message attacks – sunt atacuri in care atacatorul are acces la mesaje semnate de
o semnatura dar nu are control total (sau deloc) asupra mesajului semnat entitatea posesoare a cheii private, se clasifica dupa cum urmeaza:
2) Falsificare selectiva (selective forgery) – un adversar poate falsifica o semnatura 2.1) known-message (sau known signature) – adversarul are acces la mesaje semnate
asupra unui anumit tip de mesaje la alegerea sa
de posesorul cheii private, dar aceste mesaje nu sunt la alegerea lui
3) Falsificare universala (universal forgery) – adversarul poate calcula semnaturi
digitale asupra oricarui mesaj cu toate ca nu cunoaste cheia cu care mesajele 2.2) chosen-message – adversarul poate obtine semnatura pentru un anumit numar de
sunt semnate mesaje la alegerea sa
4) Spargere totala (total break) - adversarul este in posesia cheii private si poate 2.3) adaptive chosen-message – adversarul obtine semnaturi digitale la alegerea sa
falsifica orice semnatura
pentru un anume set de mesaje iar acest lucru se desfasoara interactiv (posesorul
cheii private nu vrea sa semneze mesajul pentru care atacatorul doreste sa obtina
semnatura dar este dispus sa semneze orice alte mesaje pe baza carora
atacatorul reuseste sa construiasca semnatura)

33 34

Semnatura RSA (cu recuperarea mesajului) Semnatura ElGamal (cu apendice)


„ Genereaza o pereche de chei RSA „ Generarea cheilor:
„ Semnarea digitala: 1) Genereaza un numar prim p
1) Calculeaza m = R (m ) 2) Genereaza un generator α al grupului Zp
δ
2) Calculeaza s = m mod n 3) Genereaza un intreg aleator 1=<a=<p-2
3) Semnatura digitala a mesajului m este s 4) Calculeaza αa mod p
5) Cheia publica este α ,αa mod p, p iar cea privata este a
„ Verificarea semnaturii: „ Semnarea digitala:
1) Obtine cheia publica a entitatii n, ε 1) Genereaza un intreg aleator 1=<k=<p-2 cu cmmdc(k,p-1)=1
2) Calculeaza m = s ε mod n 2) Calculeaza r = αk mod p
3) Verifica ca mesajul contine redundanta m ∈ M R 3) Calculeaza k-1mod(p-1)
Recupereaza mesajul ca m = R (m )
−1 4) Calculeaza s=k-1{h(m)-ar}mod(p-1)
4)
5) Semnatura digitala asupra lui m este perechea (r, s)
„ Verificarea semnaturii digitale implica urmatorii pasi:
Exemplu ( fara functie de redundanta ) 1) Obtine cheia publica α ,αa mod p, p
n = 143, e = 7, d = 103 2) Verifica ca 1=<r=<p-1 si in caz contrar respinge semnatura
3) Calculeaza v1=yrrs mod p
s = 47 este semnatura digitala a lui m = 5 4) Calculeaza h(m), v2=αh(m) mod p
m = s mod n = 47
d 103
mod143 = 5 5) Accepta semnatura daca si numai daca v1 = v2
35 36
Notiuni slabe de securitate
„ Schemele asimetrice anterior prezentate au doar securitate de tipul:
„ Confidentialitate totul-sau-nimic (All-or-nothing secrecy): pastreaza
confidentialitatea doar in masura in care mesajul nu putea fi recuperat integral si
nici cheia nu putea fi sparta de catre un adversar
„ Securitate in fata adversarilor pasivi: pastreaza securitatea doar in fata
adversarilor pasivi care nu are acces la masina de criptare/decriptare (de
exemplu, exercitiile 5 de la L1 si 7 de la L2 arata cum un adversar activ poate
frauda RSA si ElGamal)

Insuficienta notiunilor slabe de securitate


1.2.4 Lipsa de securitate in variantele “textbook” ale algoritmilor asimetric
„ In lumea reala, un adversar nu are nevoie de a recupera tot mesajul pentru a
frauda un mecanism de securitate (poate fi suficient si sa recupereze un singur bit
din informatie) iar adversari pasivi nu exista (adversarul are acces cel putin la
masina de criptare a unui sistem asimetric)
„ Astfel un sistem criptografic asimetric trebuie sa fie rezistent in fata urmatoarelor
atacuri:
„ Plaintext ales (chosen plaintext attack) CPA
„ Criptotext ales (chosen ciphertext) CCA
„ Criptotext ales adaptiv (adaptive chosen ciphertext) CCA2 (cel mai important
38
atac)

Notiuni puternice de securitate O defintie completa a proprietatilor de


securitate pentru scheme asimetrice
„ Securitate polinomiala (SP sau mai comun IND): o schema asimetrica are securitate
polinomiala daca nici un adversar nu poate selecta doua mesaje m1 si m2 astfel incat avand
ulterior acces la masina de criptare sa poata distinge intre c1 si c2 (acestea fiind criptotextele
corespunzatoare) cu probabilitate mai mare de ½ „ Coreland proprietatile IND si NM cu tipurile de atac CPA, CCA si CCA2 se obtin
„ Securitate semantica (SS): o schema asimetrica are securitate semantica daca ceea ce se
poate calcula eficient despre plaintext avand criptotextul se poate calcula eficient si fara urmatoarele tipuri de rezistenta pentru o schema asimetrica
criptotext – adica criptotextul nu spune nimic despre mesaj
„ Criptare non-maleabila (NM): o schema asimetrica este non-maleabila daca avand un
criptotext este imposibil de generat un alt criptotext astfel incat valorile plaintextelor aferente
sa aiba vreo legatura cunoscuta de adversar 1) IND-CPA 1) NM-CPA
„ Criptare plaintext-aware(PA): o schema asimetrica este plaintext-aware daca un adversar nu
poate construi criptotextul unui plaintext pe care nu il cunoaste 2) IND-CCA 2) NM-CCA
„ Proprietati: 3) IND-CCA2 3) NM-CCA2
1) O schema asimetrica are securitate polinomiala daca si numai daca are securitate semantica
(SP<=>SS)
2) O schema non-maleabila are si securitate polinomiala (NM=>SS)
3) O schema plaintext-aware si cu securitate semantica este non-maleabila (NM = PAW + SS) si
sigura in fata atacurilor de tip CCA2

39 40

RSA - Optimal Asymmetric Encription (RSA- OAEP


OAEP) [Bellare & Rogaway, 1995]
„ Prin OAEP se doreste:
figura din [Menezes et. al, 1996, p. 312]
1) Transformarea criptarii asimetrice (in particular RSA) in criptare non-determinista
prin adaugarea unui elemnt aleator
2) Prevenirea aflarii unui bit de informatie fara a inversa toata functia one-way
„ OAEP se poate aplica asupra RSA si prin RSA-OAEP se obtine o schema
rezistenta IND-CCA2, NM-CCA2
„ Transformarea OAEP avand o functie de criptare asimetrica E (in cazul nostru E
este chiar functia RSA) se defineste ca:

E (m) = f ({m0 k1
}{ (
⊕ G ( r ) || r ⊕ H m0k1 ⊕ G ( r ) )})
G : {0,1} → {0,1} , H : {0,1} → {0,1} 0
k0 n + k1 n + k1 k

„ G si H sunt functii aleatoare (in practica ambele pot fi derivate dintr-o functie
hash, de exemplu SHA-x, in acest caz functiile devin pseudoaleatoare, dar
proprietatile de securitate par sa fie conservate)
41 42
„ f este o functie pe k biti, iar lungimea plaintextului m este n=k-k0-k1
Obiectivul Autentificarii

„ Importanta:
1) cel mai frecvent intalnit obiectiv de securitate – folosim protocoale de
autentificare aproape zilnic: citirea unui email, plata cu o carte de credit,
simple convorbiri telefonice
1.3. Protocoale Criptografice de 2) da un plus de valoare informatiei – informatia nu are valoare atata timp
cat nu exista o garantie asupra sursei sale de provenienta
Autentificare

44

Cadrul de Lucru Obiective distincte in autentificare


„ Presupune existenta urmatorilor participanti: A, B – participanti onesti (uneori
desemnati ca utilizator-sistem), T – Parte de incredere, Adv – Adversar, Timp

Adv
ADVERSAR
„ Obiectivul autentificarii poate fi desfacut in trei obiective distincte:
1) Autentificarea Informatiei
2) Autentificarea Entitatilor
CANAL NESIGUR

3) Schimb autentic de cheie autentic


CANAL SIGUR

A EMITATOR
(EXPEDITOR)
RECEPTOR
(DESTINATAR)
B
CANAL NESIGUR CANAL NESIGUR

CANAL SIGUR CANAL SIGUR

PARTE DE INCREDERE
(ARBITRU)

T 45 46

Functii criptografice utilizate in


Autentificarea Informatiei asigurarea autenticitatii informatiei
„ Coduri de autentificare a mesajelor MAC (Message Authentication Code) - MACk(m) - cod de
„ Autentificarea Informatiei (Autentificarea sursei informatiei) se refera la o garantie autentificare a mesajului m calculat cu cheia k :
asupra sursei de provenienta a informatiei. Este in stransa legatura cu obiectivul - Garanteaza autenticitatea unui mesaj
integritatii informatiei pe care il implica. Exista diferente semnificative: autentificarea - Se construiesc peste o functie hash (in general MD5 sau SHA1, MD5 cu toate ca ambele au
obliga la o garantie asupra sursei de unde provine informatia iar integritatea nu, un nivel de securitate destul de scazut) in conjunctie cu o cheie secreta
autentificarea implica o comunicare iar integritatea nu (date care nu se afla in tranzit - In practica se foloseste HMAC si NMAC propuse de Mihir Bellare, Ran Canetti, Hugo Krawczyk
pot fi garantate ca integritate dar nu ca autenticitate pentru ca puteau fi stocate de in lucrarea http://www-cse.ucsd.edu/users/mihir/papers/kmd5.pdf
catre oricine), autenticitatea implica o prospetimea informatiei (orice informatie care „ Semnaturi Digitale – SigA(M) – semnatura digitala a participantului A asupra mesajului M:
poate fi sursa a unui replay are integritate dar nu autenticitate). Astfel in urma unui - Pot fi vazute ca functionalitate aditionala a criptosistemelor cu cheie publica
schimb autentic de informatie trebuie sa poata fi stabilite: identitatea celui care
a trimis informatia, integritatea informatiei, actualitatea informatiei respective. - Garanteaza non-repudierea, oferind astfel si o garantie asupra sursei mesajului (autenticitate)
- Se construiesc pe sisteme criptografice asimetrice prin “inversarea” rolului cheii publice si
private, astfel se foloseste cheia privata pentru a semna mesaje iar cheia publica pentru a
verifica semnatura
- Pot fi construite si pe functii criptografice simetrice (semnaturi digitale one-time)
„ Observatie: aceste functii criptografice garanteaza autenticitatea informatiei fara a aduce
garantii de timp (asupra actualitatii informatiei), in momentul in care aceste primitive sunt
incluse in protocoale de autentificare trebuie asigurata si actualitatea informatiei prin parametrii
varianti in timp

47 48
Coduri MAC vs. Semnaturi Digitale O apreciere cantitativa asupra
„ Codurile MAC nu pot fi vazute ca si substituent pentru Semnaturi Digitale si nici
invers deoarece nu raspund aceluiasi obiectiv de securitate
cerintelor computationale
„ Totusi, deoarece ambele pot fi utilizate pentru garantarea autenticitatii, o
comparatie este utila

„ Coduri MAC: „ Semnaturi Digitale:


- Usor de calculat, implica doar operatii - Greu de calculat, implica operatii
simple (doar putin mai costistisitoare aritmetice complexe (in grupuri de
ca o functie hash) intregi mari)
- Dimensiune redusa (la nivelul unei - Dimensiune ridicata (100, 1000 de biti)
functii hash)
- Utilizeaza chei secrete - Utilizeaza chei publice
- Pentru comunicarea multiaterala intre - Este suficienta o singura cheie publica
n entitati numarul de chei devine n(n- pentru o entitate iar cu aceasta un
1)/2
mesaj semnat poate fi verificat de
oricare alta entitate

49 50

Autentificarea Entitatilor (Identificare) Baza autentificarii entitatilor

„ Autentificarea unei entitati se poate baza pe:


„ Autentificarea Entitatilor (Identificare, Verificarea Identitatii) se refera 1) Ceva cunoscut – in general un secret, de exemplu: o parola, un cod PIN
la o garantie asupra identitatii unui participant la comunicare (poate fi 2) Ceva imanent (care tine de entitate) – o trasatura biometrica: amprenta, retina,
vazuta ca un caz de autentificare a informatiei in care identitatea unei modul in care un individ tasteaza
entitati este informatia ce trebuie autentificata) 3) Ceva posedat – un accesoriu fizic, de exemplu o cheie, un card magnetic, un
smart-card

51 52

Caracteristici ale unui protocol de Autentificarea bazata pe parole


identificare ([Menezes et. al., p. 387]) (Autentificare slaba)
„ Reciprocitate – identificarea poate fi unilaterala, sau bilaterala (mutuala) „ Cel mai frecvent intalnite si ofera si cel mai scazut nivel de securitate (totusi
„ Eficienta Computationala – intensitatea computationala a operatiilor necesare protocolului suficient pentru o buna parte din aplicatii)
(operatiile cu primitive simetrice si fara cheie sunt ieftine iar cele cu primitive asimetrice de 10, „ Principiu: autentificarea se face prin dezvaluirea unui secret (numit parola) pentru
100 sau 1000 de ori mai scumpe)
a demonstra identitatea unei entitati
„ Eficienta in Comunicare – numarul de runde de comunicare si dimensiunea mesajelor
vehiculate (cata informatie este necesara pentru a demonstra identitatea cuiva)
„ Implicarea real-time a unei parti terte – uneori este necesara interventia unei parti terte
FIXED PASSWORD AUTHENTICATION
pentru a putea efectua o identificare (de exemplu in cazul scenariilor bazate pe functii simetrice,
pentru comunicarea intre n entitati sunt necesare n(n-1)/2 chei distincte, dar daca exista o parte Alice KNOWS PAlice SYSTEM KNOWS PAlice
de incredere o singura cheie partajata cu aceasta poate fi suficienta, in acest caz numarul de
chei devine n pentru partea de incredere si 1 pentru participanti) I am Alice

„ Natura implicarii partii terte – in partea terta trebuie avuta incredere ca pastrator al
What is your password?
confidentialitatii (securitate absoluta) sau doar asupra autenticitatii furnizata (securitate
functionala)
PAlice
„ Natura garantiilor de securitate – pe ce se bazeaza securitatea? Alice SYSTEM
„ Stocarea secretelor – unde trebuie stocate secretele: pe un dispozitiv fizic, memorate etc. SYSTEM VERIFIES RECEIVED
PASSWORDS AND GRANTS/
DENY ACCESS
ACCORDINGLY
53 54
Modul de stocare al parolelor
Parole fixe - Avantaje
„ In fisiere de parole – presupune stocarea parolei in plaintext intr-un fisier de parole.
Fisierul este protejat la citire si scriere. Dezavataj: nu prezinta securitate in fata „ Usor de implementat (ca protocol de autentificare)
utilizatorilor privilegiati pentru a citi fisierul „ Sunt usor de memorat pentru oameni
„ In fisiere “criptate” – presupune stocarea parolei intr-un fisier “criptat”, in acest caz
fisierul trebuie protejat doar la scriere.

„ Observatie: termentul de fisier “criptat” pentru memorarea parolelor (“encrypted”


password files) este pastrat in limbaj din ratiuni istorice, in realitate nu se foloseste o Parole fixe - Dezavantaje
functie de criptare pentru stocarea parolelor, ci o functie one-way (de exemplu hash)
pentru a face ca parola sa nu fie recuperabila din datele aflate in fisier, dar sa fie
verificabila pe baza acestora „ Pot fi furate (observate) si utilizate de un adversar
„ Sunt stocate atat de partea utilizatorului cat si a sistemului
„ Utilizatorii aleg in general parole cu entropie scazuta

55 56

Atacuri asupra autentificarilor


Proceduri de intarire a parolelor
bazate pe parola
„ Politici de securitate - obligarea la:
1) Pentru a creste entropia: o dimensiune minima a parolei (de ex. 10
caractere), utilizarea a minim 3 caractere din fiecare set (alfa-numerice, non-
„ Retransmisia (replay) – presupune interceptarea (observarea) parolei si alfa-numerice, upper/lower-case)
retransmiterea ulterioara a acesteia – Aparare: parole one-time. 2) Pentru a reduce riscul unui atac: schimbarea unei parole la intervale fixe de
„ Cautari exhaustive - deoarece utilizatorii aleg parole de entropie scazuta, un timp (de ex. 1 luna), limitarea numarului de incercari in cazul introducerii unei
potential adversar poate incerca toate parolele posibile. Cautarile exhaustive pot fi parole gresite
on-line (incearca diverse parole la login) sau off-line (analiza asupra unui fisier „ Cresterea intensitatii functiei de test a parolelor – pentru a ridica
“criptat” de parole) – Aparare: parole de entropie ridicata, politici de securitate. necesitatile de calcul la o cautare exhaustiva poate fi crescuta intesitatea
„ Atacuri de tip dictionar – deoarece utilizatorii au obiceiul de a utiliza ca parole functiei de “criptare” a parolei (de exemplu iterarea functiei de n ori)
cuvinte (dintr-un dictionar), un adversar poate calcula off-line parole corespunzatoare „ Adaugarea unor valori arbitrare (salt) – pentru a opri atacuri de tip dictionar
tututor cuvintelor din dictionar ca apoi sa verifice daca in fisierul de parole apare o parola poate fi concatenata cu k biti aleatori, numiti salt, in acest caz
corespondenta. Aparare: salting. dimensiunea dictionarului creste de 2k ori, valoarea de salt se pastreaza alaturi
de parola (Atentie! Aceasta metoda nu creste entropia parolei)
„ Utilizarea frazelor in locul unor simple cuvinte – un caracter din limba
curenta are cam 1-1.5 biti de entropie, utilizarea unei fraze suficient de lungi
poate duce la o parola destul de rezistenta.

57 58

Autentificare cu parole de unica Schema Lamport – schema de generat


folosinta (one-time passwords) parole one-time
„ Prima solutie avansata de generare a parolelor one-time
„ Avantaje ale schemei Lamport:
1) Nu se stocheaza secrete de partea sistemului
2) Fiecare parola este valabila doar la o singura utilizare
„ Pentru a preveni atacurile de tip retransmisie o solutie este utilizarea parolelor de
unica folosinta (one-time passwords) 3) Parolele au entropie ridicata
„ Exista doua solutii rudimentare: 4) Poate fi utilizata pe canale nesigure
1) Utilizarea unei liste de parole – se foloseste o lista de t parole, fiecare valabila la „ Principiu de functionare al schemei Lamport:
o singura utilizare (parolele pot fi utilizate secvential sau nu) - Fie x o valoare arbitrara aleasa de utilizator, Na numarul de autentificari necesare
2) Utilizarea unor parole actualizate secvential – la fiecare autentficare, utilizatorul (de ex. 10000), F o functie one-way (de ex. o functie hash)
schimba parola veche cu cea noua - Utilizatorul calculeaza de partea sa secventa {x,F(x),F(x),… ,FNa-1(x),FNa(x)}
- FNa(x) este trimisa sistemului intr-un stadiu off-line pentru a garanta autenticitatea
acestei valori
- Cand utilizatorul se autentifica prima oara prezinta FNa-1(x) iar sistemul verifica
daca F(FNa-1(x))=FNa(x)
59 - La modul general pentru a i-a autentificare parola este FNa-i(x) 60
Schema Lamport (figura)
„ Compozitia succesiva a functiei conduce la un lant one-way Schema Lamport in practica

„ Fiecare element din lant joaca rol de parola „ Exista o singura propunere de utilizare – sistemul S-Key [Haller, 1995]
„ Poate fi spart printr-un atac de tip pre-play – un adversar poate impersona sistemul
si poate captura parole inca nefolosite trimise de utilizator
„ Dezavantajul schemei Lamport – nu ofera autentificare mutuala

61 62

Autentificare provocare-raspuns Parametrii varianti in timp


(challenge-response) (Autentificare „ Unul dintre obiectivele autentificarilor challenge-response este eliminarea toatala
a atacurilor de tip retransmisie replay
puternica) „ Parametrii varianti in timp sunt necesari pentru a preveni atacuri de tip replay prin
garantarea unicitatii unei instante a unui protocol respectiv a cronologiei in unele
cazuri (timeliness)
„ Principiu: Demonstreaza cunoasterea secretui in baza caruia se demonstreaza „ Parametrii varianti in timp se numesc Nonce (a value used no more than once)
identitatea fara a dezvalui secretul „ Exista trei tipuri de parametrii varianti in timp
„ Se realizeaza prin calcularea unei valori numita raspuns pe baza altei valori numita 1) Numere aleatoare (cel mai comun utilizate) – numere generate aleator in fiecare
challenge instanta a protocolului (in general previn si atacuri de tip CPA si asigura unicitatea)
2) Numere secventiale – in general o valoare care se incremeneteaza la fiecare
1. A -> B : challenge instanta a protocolului (utilizate pentru a detecta retransmisii)
2. B -> A : response 3) Amprente temporale (timestamp) – asigura unicitate si timeline, previn atacuri de
tip retransmisie – necesita sincronizare temporala slaba
„ Principiul unei sincronizari temporale slabe (se explica la tabla)

63 64

Identificare unilaterala bazata pe


numere aleatoare

Challenge response pe functii


criptografice simetrice (si fara „ Principiu: utilizeaza un numar aleator ca si challenge
cheie)
A→B: challenge
B → A: response

65 66
Varianta 1 (poate si sparta) Atac prin reflexie asupra Variantei 1
„ A si B cunosc o cheie secreta k (rA reprezinta un numar aleator generat de A)
1. A→Adv(B): rA

A→B: rA 1”. Adv(B)→A: rA


B → A: Ek(rA) 2”. A→ Adv(B): Ek(rA)
2. B → A: Ek(rB)
„ A verifica identitatea lui B testand ca E”k(rB)= Ek(rB) (E”k(rB) denota valoarea
primita de A ca raspuns la challenge si care putea fi modificata de un adversar)
„ A a trimis un challenge catre adversarul Adv care pretinde ca este B iar intr-o noua instanta a
protocolului Adv pretinde ca este B si ii cere lui A sa se autentifice folosind valoarea de
autentificare a lui A ca autentificare pentru B in prima instanta a protocolului
„ Rezultat A crede ca comunica cu B dar de fapt comunica cu Adv

67 68

Varianta 2 (Varianta 1 reparata in Atacul prin reflexie nu mai


fata atacului prin reflexie) functioneaza asupra Variantei 2
„ A si B cunosc o cheie secreta k (idA reprezinta identitatea celui care a solicitat
autentificarea) 1. A→Adv(B): rA

A→B: rA 1”. Adv(B)→A: rA


B → A: Ek(rA, idA) 2”. A→ Adv(B): Ek(rA,idB)
2. B → A: Ek(rA,idB)
„ A verifica identitatea lui B testand ca E”k(rB)= Ek(rB) si testand si ca identificatorul
celui care a trimis challenge-ul este al sau
„ Atacul nu functioneaza pentru ca mesajul nu contine identificatorul lui A; adica
Ek(rA,idB)!= Ek(rA, idA)

69 70

Identificare unilaterala bazata pe Identificare mutuala cu numere


time-stamp aleatoare
„ Observatie (legata de autentificarea mutuala): Simpla dublare a unei autentificari
unilaterale nu este in general o solutie deoarece nu exista nici o legatura intre cele
doua instante ale protocolului de autentificare unilateral (sursa de atac)
„ Principiu: utilizeaza valoarea timpului (cunoscuta de ambii participanti) ca challenge
„ Autentificare mutuala
A→B: rA
A→B: Ek(tA,idB) B → A: Ek(rA, rB, idA)
A → B: Ek(rA, rB)
„ A verifica identitatea lui B testand ca E”k(tA,idB)= Ek(tA,idB) si testand ca timpul „ Se fac aceleasi verificari ca in cazurile precedente, in plus faptul ca valorile aleatoare
este timpul corect din sistem (mai exact se verifica ca timpul apartine unui interval sunt legate (fiind criptate impreuna) garanteaza caracterul mutual al autentificarii
de timp rezonabil, de ex. mesajul de autentificare provine din ultimele 5 secunde)
„ Observatie (valabila pentru toate autentificarile challenge-response): In orice
autentificare challenge –response este recomandabil ca fiecare entitate ce executa o
criptare cu o cheie secreta sa aplice functia de criptare nu doar pe valoarea de
challenge ci sa mai adauge si o valoare aleatoare proprie (pentru a evita atacuri
CPA). O alternativa este si utilizarea unei functii ireversibile cu cheie, de exemplu
71 schimba Ek(rA, rB, idA) cu MACk(rA, rB, idA) 72
Challenge-response pe tehnici Utilizarea criptarii asimetrice in
asimetrice challenge-response

„ Varianta 1 (incorecta) – B isi demonstreaza identitatea decriptand mesaje la


„ Aceleasi principiu al folosirii unei valori de challenge ca in cazul utilizarii tehnicilor alegerea lui A
simetrice
„ Sistemele asimetrice pot fi utilizate in 2 abordari distincte:
a) Decripteaza o valoare criptata cu cheia s-a publica
A→B: EPbB(rA)
b) Semneaza digital valoarea de challenge
B→A: rA

„ Deficienta: sursa perfecta de atacuri CCA2 asupra criptosistemului

73 74

Utilizarea criptarii asimetrice in Utilizarea semnaturilor digitale in challenge-


challenge-response response
„ Autentificare unilaterala prin utilizarea functiei de decriptare si a unei dovezi
(martor ,witness) al faptului ca A cunostea plaintextul: B isi demonstreaza identitatea „ Varianta 1 (incorecta)
decriptand mesajul trimis de A si verificand ca h(rA) corespunde hash-ului mesajului
decriptat (deci A cunostea mesajul)

A→B: h(rA), A, EPbB(rA, A)


A→B: rA
B→A: rA
B → A: SigB(rA)
„ Autentificare mutuala prin utilizarea functiei de decriptare

A→B: EPbB(rA, A)
B→A: EPbA(rA, rB)
A→B: rB
75 76

Utilizarea semnaturilor digitale in challenge-


Exploatare asupra variantei 1 response
„ Autentificare unilaterala cu time-stamp (se verifica certificatului lui A certA
„ A “pregateste” urmatoarea valoare de challenge pentru B la autoritatea competenta (distribuitorul de certificate), validitatea semnaturii
si faptul ca timpul la care a fost facuta semnatura este acceptabil)
rA = h(“Eu sunt B si doresc sa transfer 1.000.000 USD din contul meu in contul lui A”)
A→B: certA , tA, B, SigA(tA,B)
„ A trimite valoarea de challenge pentru B „ Autentificare unilaterala cu valori aleatoare (se verifica certificatului lui A certA
A→B: rA la autoritatea competenta (distribuitorul de certificate), validitatea semnaturii si
faptul ca a fost facuta pe valoarea de challenge)
B → A: SigB(rA)
A→B: rA
„ B semneaza deoarece pentru el valoarea hash-ului rA este un numar aleator fara
nici o semnificatie B→A: certB , rA, A, SigB(rA, rB , B)
„ A prezinta semnatura digitala a lui B SigB(rA) alaturi de mesaj m=“Eu sunt B si doresc „ Autentificare mutuala cu valori aleatoare (aceleasi verificari ca in cazul
sa transfer 1.000.000 USD din contul meu in contul lui A” autoritatii fiscale si obtine precendent de partea ambilor participanti)
1.000.000 USD A→B: rA
„ Morala: nu semna mesaje alese integral de alt participant sau nu folosi aceeasi B→A: certB , rB, A, SigB(rA, rB , B)
cheie si pentru semnaturi digitale si pentru autentificare (poti sa o folosesti pentru
ambele, dar cu precautie)
77 A→B: certA , B, SigA(rB, rA , A) 78
Autentificare zero-knowledge Autentificarea z-k Fiat-Shamir
„ Obiectiv: A isi demonstreaza identitatea catre B

„ Setarea cheii de autentificare:


„ Principiu: demonstreaza o identitate fara a spune absolut nimic cu privire la a) O parte de incredere T publica un modul RSA n=pq
secretul in baza careia se face aceasta demonstratie
b) A alege un numar s din Zn si calculeaza v=s2 mod n
„ Observatie: Protocoalele challenge-response au acest potential dezavantaj, un
adversar poate selecta valori de challenge in mod strategic pentru a afla ceva despre c) v este cheia publica a lui A iar s este cea secreta (v se foloseste la verificare, s
secret pentru generare raspunsului la challenge)
„ Explicatie pentru copii - Pestera lui Quisquater et. al. Jean-Jacques Quisquater, „ Descrierea unei runde:
Louis C. Guillou, Thomas A. Berson. How to Explain Zero-Knowledge Protocols
a) A alege un numar r (commitment) din Zn si calculeaza si trimite x=r2 mod n
to Your Children, Advances in Cryptology - CRYPTO '89: Proceedings, v.435,
p.628-631, 1990. (witness)
„ Structura generala a unui protocol z-k consta intr-o sesiune de 3 runde (deoarece b) B alege o valoare de challenge e=1 sau e=0 si trimite e lui A
argumentul fiecarei sesiuni este probabilistic devine necesara repetarea succesiva a c) A calculeaza raspunsul ca y= r*se mod n
acestei sesiuni cu noi valori) d) B verifica daca y2 = xven mod n
A→B: witness
„ Concluzia la final de runda: exista o probabilitate de exact ½ ca Adv(A) sa
B → A: challenge fii fraudat runda de autentificare (explicatie pe slide-ul urmator)
A→B: response „ Concluzia la finalul a k runde: exista o probabilitate de exact (½)k ca Adv(A)
79 sa fii fraudat autentificarea 80

Cum putea Adv(A) sa fraudeze o


runda de autentificare cu
probabilitate 1/2

„ Cazul 1: Adv(A) poate selecta r, calculeaza x=r2/v si raspunde cu y=r – acesta este
un raspuns corect pentru cazul in care e=1 dar daca e=0 atunci Adv(A) trebuie sa
calculeze radacina patrata a lui x, ceea ce este nefezabil
„ Cazul 2: Adv(A) poate raspunde corect in cazul in care e=0 daca calculeaza x=r2
mod n dar in acest caz nu mai poate raspunde la e=1 pentru ca din nou trebuie sa
poata calcula o radacina patrata

„ Argument intuitiv pentru faptul ca este autentificare z-k: orice adversar poate simula
valori corecte raspuns, dar nu poate poate sa raspunda in fata unei provocari real-
time decat cu probabilitate (½)k

81

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