Manual · pagina 100
Exercițiul 24 · Criptarea PIN-urilor
(Activitate în pereche) O companie de software dezvoltă un sistem de autentificare pentru un seif digital. Pentru a proteja PIN-urile numerice ale utilizatorilor în baza de date, acestea nu sunt salvate în forma lor originală, ci sunt trecute printr-un algoritm de criptare reprezentat de o funcție matematică. Algoritmul de criptare este definit de funcția , , unde reprezintă PIN-ul original ales de utilizator, iar reprezintă valoarea criptată care se salvează efectiv în baza de date. Pentru ca sistemul să funcționeze corect, acesta trebuie să fie capabil să recupereze PIN-ul original atunci când verifică identitatea utilizatorului. Asta înseamnă că procesul trebuie să fie reversibil.
a) Demonstrați că funcția de criptare este bijectivă, justificând astfel faptul că decriptarea este posibilă pentru orice valoare și că nu există două PIN-uri diferite care să aibă aceeași valoare criptată.
b) Determinați funcția de decriptare care permite sistemului să afle PIN-ul original cunoscând valoarea stocată .
c) Caz concret: un hacker reușește să vadă baza de date și găsește valoarea criptată ; folosind funcția inversă determinată la punctul anterior, aflați care este PIN-ul original al utilizatorului.
a)Demonstrați că funcția de criptare este bijectivă, justificând astfel faptul că decriptarea este posibilă pentru orice valoare și că nu există două PIN-uri diferite care să aibă aceeași valoare criptată.
1. Ce înseamnă în limbajul seifului
Sistemul ia PIN-ul , îl înmulțește cu și scade ; rezultatul se salvează.Verifică-te
Ce valoare criptată se salvează pentru PIN-ul ?Alege un răspuns ca să vezi continuarea.
2. Injectivitatea
Fie cu aceeași valoare criptată: . Adunăm și împărțim la în ambii membri: . Deci este injectivă: două PIN-uri diferite au valori criptate diferite.3. Surjectivitatea
Fie un număr real oarecare. Căutăm cu : adunăm , apoi împărțim la , deci , un număr real. Încercăm pe o valoare concretă.Verifică-te
Ce PIN are valoarea criptată ?Alege un răspuns ca să vezi continuarea.
Graficul lui este o dreaptă oblică: orice dreaptă orizontală o taie exact o dată (aici dreapta punctată , în ).
Orice valoare are deci o preimagine: este surjectivă, orice valoare salvată se poate decripta. Fiind injectivă și surjectivă, este bijectivă.
b)Determinați funcția de decriptare care permite sistemului să afle PIN-ul original cunoscând valoarea stocată .
1. Îl scoatem pe din
Criptarea face doi pași: înmulțește cu , apoi scade . Decriptarea trebuie să-i desfacă pe amândoi, ca din valoarea să se întoarcă la . Rezolvă în raport cu .Verifică-te
Care este funcția de decriptare ?Alege un răspuns ca să vezi continuarea.
2. Verificăm că decriptarea desface criptarea
Conform definiției (manual, p. 97), trebuie ca pentru orice PIN și pentru orice valoare :Verifică-te
Ce PIN corespunde valorii stocate ?Alege un răspuns ca să vezi continuarea.
În notația obișnuită, cu ca variabilă, .
c)Caz concret: un hacker găsește valoarea criptată . Folosind funcția inversă de la punctul b), aflați PIN-ul original al utilizatorului.
1. Decriptăm
PIN-ul este : adunăm , apoi împărțim la .Verifică-te
Cât este ?Alege un răspuns ca să vezi continuarea.
2. Verificare și o observație
Verificăm prin criptare: , chiar valoarea găsită. Deci PIN-ul original este , și este singurul, fiindcă este injectivă (punctul a).