Este o functie care transforma datele de intrare intr-o valoare
pseudorandoma. PRF-urile sunt folosite pentru a genera chei criptografice si asigura confidentialitatea si autenticitatea datelor. Functia este determinista, dar valorile obtinute trebuie sa fie cat mai imprevizibile. Nu trebuie sa existe un algoritm efficient care sa poata prezice sau reproduce valorile generate de PRF. Exemplu de functie random: Hashed Message Authentication Code – combina o functie de hash criptografica cu o cheie secreta pentru a produce o cheie secreta.
2. Care ar fi jocul (jocurile) de securitate pentru o PRF?
PRF-PRP (pseudo-random permutation). O PRP este o functie care este o permutare aleatoare pentru fiecare cheie. Jocul arata ca o PRF se comporta ca o PRP.
3. Ce este o functie hash?
Este o functie matematica care transforma date de intrare de lungime variabila intr-o valoare de iesire de lungime fixa (numita hash sau digest). Orice modificare in datele de intrare va produce o valoare hash complet diferita (proprietatea de amplificare a erorilor/ proprietatea avalansei – si in algoritmii de cifrare bloc)
4. Tipuri de functii hash:
f. Criptografice (generarea de sume de control, autentificari, semnaturi digitale), f. Necriptografice (indexarea, gestionarea memoriei cache sau verificarea integritatii datelor), f. Hash de derivare a cheii (se deriveaza chei criptografice dintr-o valoare initiala cum ar fi o parola sau un secret comun), f de verificare a parolelor (stocheaza parole intr-o forma protejata si le verifica corectitudinea ulterior – bcrypt si Argon2). Functiile hash sunt rezistente la reversibilitate (imposibilitatea de a obtine datele de intrare din valoarea hash. (exempleȘ MD5, SHA-1, SHA-256)
5. Paradoxul zilei de nastere
Intr-un grup relativ mic de persoane, probabilitatea ca doua sau mai multe persoane sa aiba aceeasi zi de nastere devine surprinzator de mare. Utilizand paradoxul zilei de nastere putem evidentia posibilitatea de producere a unei coliziuni in functiile hash (2 seturi diferite de date care produc acelasi hash). Desi exista un numar mare de posibile valori de intrare, numarul real de hash-uri generate este mult mai mic.
Functiile hash criptografice sunt proiectate pentru a fi rezistente la
coliziuni. Paradoxul zilei de nastere arata ca, pe masura ce numarul de hash-uri generate creste, probabilitatea de a obtine o coliziune creste mai rapid decat am crede.
Functiile hash criptografice moderne utilizeaza algoritmi puternici si
lungimi de hash suficient de mari pentru a reduce la minim probabilitatea de a avea coliziuni. Exemplu: SHA-256 utilizeaza has-uri de 256 de biti, probabilitatea de coliziuni scade. 6. MAC – Message Authentication Code – este un cod generat dintr- un mesaj si o cheie secreta care verifica daca mesajul a fost modificat sau falsificat in tranzit. Se obtin prin aplicarea unei functii de calcul criptografice (algoritm de hashing/ algoritm de criptare) asupra mesajului si cheii secrete si se genereaza un cod de lungime fixa.
Joc de securitate asociat MAC-uluiȘ MAC-INT (Integrity). Exista un
adversar care incearca sa falsifice un mesaj sau sa gaseasca o coliziune a MAC-ului. MAC-INT trebuie sa se dovedeasca rezistent la coliziuni si la precomputare (adversarul nu trebuie sa poata prelucra MAC-uri pentru diferite mesaje fara a cunoaste cheia secreta)