Invatare Atomica

Introducere in Criptografie

Cum protejam informatia: cheie simetrica, cheie asimetrica, hash si semnatura digitala

Progres lectie:
0%
🎯

Obiectivul lectiei

Vei intelege cum functioneaza criptografia la nivel conceptual: de ce avem nevoie de ea, cum transforma informatia clara intr-un mesaj protejat si care sunt cele trei mari mecanisme folosite in securitatea digitala moderna.

Dupa aceasta lectie vei putea:

  • Sa explici ce este criptografia si de ce este esentiala in lumea digitala
  • Sa descrii cifrul Cezar si sa cifrezi/descifrezi manual un mesaj simplu
  • Sa compari criptarea simetrica cu criptarea asimetrica (avantaje si dezavantaje)
  • Sa explici ce este o functie hash si de ce hash-ul nu poate fi inversat
  • Sa identifici situatii reale in care fiecare mecanism este utilizat (HTTPS, parole, semnatura digitala)

Incearca singur!

Provocare: Cifrul Cezar manual

Incearca sa descifrezi acest mesaj folosind regula: muta fiecare litera inapoi cu 3 pozitii in alfabet.

FXQHFXQD

💡 Ai nevoie de un indiciu?

F - 3 = C, X - 3 = U, Q - 3 = N, H - 3 = E. Aplica acelasi calcul pentru toate literele.

Raspuns: CUNECUNA (CUNE + CUNA — secvente similare, dar nu identice; observa totusi ca literele F, X, Q apar de doua ori in textul cifrat si produc aceleasi litere C, U, N in clar — asta ilustreaza un punct slab al cifrului Cezar: frecventele si tiparele de litere se pastreaza).

1

1. Ce este criptografia?

Criptografia este stiinta transformarii informatiei intr-o forma ilizibila pentru cei neautorizati, astfel incat numai persoanele care detin cheia corecta sa o poata citi sau folosi.
Doua concepte de baza:
  • Textul clar (plaintext) — mesajul original, lizibil
  • Textul cifrat (ciphertext) — mesajul transformat, ilizibil fara cheie
Analogie

Gandeste-te la un seif cu cifru. Documentele sunt informatia clara; seiful incuiat este informatia criptata. Codul seifului este cheia. Fara cod, nimeni nu poate citi documentele, chiar daca seiful este vizibil.

🔒
De ce conteaza in viata de zi cu zi?

De fiecare data cand accesezi un site HTTPS, trimiti un mesaj pe WhatsApp sau platesti online, criptografia functioneaza in fundal pentru a-ti proteja datele.

2

2. Cifrul Cezar — primul algoritm de criptare

Cifrul Cezar este unul dintre cele mai vechi metode de criptare: fiecare litera din mesaj este inlocuita cu o alta litera aflata la o distanta fixa in alfabet (numita cheie sau deplasare).

Exemplu cu cheie = 3:

Tabel de deplasare (primele 13 litere)
Original: A  B  C  D  E  F  G  H  I  J  K  L  M
Criptat:  D  E  F  G  H  I  J  K  L  M  N  O  P

Cifrarea BUNA cu cheie 3:

Pas cu pas
B (pozitia 2)  + 3 = E (pozitia 5)
U (pozitia 21) + 3 = X (pozitia 24)
N (pozitia 14) + 3 = Q (pozitia 17)
A (pozitia 1)  + 3 = D (pozitia 4)

BUNA  →  criptat  →  EXQD

Decriptarea functioneaza invers: scadem 3 din fiecare litera a textului cifrat si obtinem mesajul original.

Demonstratie rulata in Python (output real):

# Cifrul Cezar - criptare si decriptare
mesaj = 'SALUT'
cheie = 3

criptat = ''
for litera in mesaj:
    deplasare = (ord(litera) - ord('A') + cheie) % 26
    criptat += chr(ord('A') + deplasare)

print('Mesaj original:', mesaj)
print('Mesaj criptat:', criptat)
Output real (python):
Mesaj original: SALUT
Mesaj criptat: VDOXW
⚠ Atentie — punct slab
Cifrul Cezar este usor de spart: exista doar 25 de chei posibile (deplasari 1-25). Un atacator poate incerca toate variantele in cateva secunde. Este util doar ca exemplu educational, nu pentru securitate reala.
3

3. Criptarea simetrica — o cheie pentru amandoi

In criptarea simetrica, expeditorul si destinatarul folosesc aceeasi cheie secreta atat pentru cifrare cat si pentru descifrare. Cifrul Cezar este cel mai simplu exemplu. Algoritmi moderni: AES (Advanced Encryption Standard).
✓

Avantaje

Foarte rapida; potrivita pentru volume mari de date (video, baze de date, hard-disk-uri criptate).

✗

Dezavantaj major

Problema distributiei cheii: cum trimiti cheia secreta destinatarului fara ca altcineva sa o intercepteze?

Analogie

Expeditorul si destinatarul au copii identice ale aceleiasi chei fizice pentru un lacat. Pot incuia si descuia cutia de scrisori. Dar daca vor sa-si trimita prima copie a cheii, au nevoie sa o predea cumva in siguranta — altfel cineva ar putea sa o copieze pe drum.

Utilizare tipica: criptarea discului (BitLocker, FileVault), criptarea arhivelor ZIP cu parola, transferul rapid al datelor in interiorul unei conexiuni deja stabilite.

4

4. Criptarea asimetrica — doua chei, zero schimb secret

In criptarea asimetrica (sau cu cheie publica), fiecare participant are o pereche de chei: una publica (distribuita liber, oricui) si una privata (pastrata in secret, numai de proprietar). Algoritmi: RSA, ECC.

Cum functioneaza:

  1. Ana isi publica cheia publica (ca un numar de telefon listat in carte).
  2. Bogdan vrea sa ii trimita un mesaj secret. El cripteaza mesajul cu cheia publica a Anei.
  3. Mesajul cifrat poate fi vazut de oricine, dar numai Ana il poate decripta, folosind cheia sa privata.
  4. Nici macar Bogdan nu poate decripta ce a criptat el insusi!
✓

Avantaj major

Elimina problema distributiei cheii: cheia publica poate fi trimisa pe orice canal, inclusiv nesigur.

✗

Dezavantaj

Mult mai lenta decat criptarea simetrica; nepotrivita pentru volume mari de date.

💡 In practica: HTTPS combina ambele!
Cand accesezi un site HTTPS, browserul si serverul folosesc criptare asimetrica pentru a schimba in siguranta o cheie simetrica temporara. Dupa aceea, intreaga sesiune este criptata simetric (rapid). Aceasta combinatie se numeste TLS handshake.
5

5. Functii hash — amprenta digitala a datelor

O functie hash criptografica transforma orice date (orice lungime) intr-un sir de lungime fixa, numit hash sau digest. Este o functie unidirectionala: din hash nu poti reconstitui datele originale. Algoritmi: SHA-256, SHA-3.
Proprietatile esentiale ale unui hash criptografic:
  • Determinism: acelasi input produce intotdeauna acelasi hash
  • Unidirectional: nu poti calcula inputul pornind de la hash
  • Sensibil la modificari: o singura litera schimbata produce un hash complet diferit
  • Lungime fixa: SHA-256 produce intotdeauna 256 de biti (64 caractere hexadecimale)

Demonstratie rulata in Python (output real):

# Hash cu hashlib - Python
import hashlib

parola = 'parola123'
hash_sha256 = hashlib.sha256(parola.encode()).hexdigest()

print('Parola:', parola)
print('Hash SHA-256:', hash_sha256[:32], '...')

parola2 = 'parola123'
print('Acelasi hash:', hashlib.sha256(parola2.encode()).hexdigest()[:32])
print('Sunt identice:', hash_sha256 == hashlib.sha256(parola2.encode()).hexdigest())
Output real (python):
Parola: parola123
Hash SHA-256: a3a2754f94b4f8c1ca8d29290bc37ba9 ...
Acelasi hash: a3a2754f94b4f8c1ca8d29290bc37ba9
Sunt identice: True
Utilizare practica: stocarea parolelor

Site-urile nu iti salveaza parola in clar! Salveaza hash-ul parolei tale. Cand te autentifici, site-ul calculeaza hash-ul parolei introduse si il compara cu cel stocat. Daca cineva fura baza de date, obtine doar hash-uri — nu parolele reale.

6

6. Semnatura digitala si rezumat comparativ

Semnatura digitala combina hash-ul si criptarea asimetrica pentru a dovedi autenticitatea si integritatea unui document: cine l-a trimis si ca nu a fost modificat pe drum.

Cum functioneaza:

  1. Ana calculeaza hash-ul documentului.
  2. Ana cripteaza hash-ul cu cheia sa PRIVATA — aceasta este semnatura digitala.
  3. Bogdan primeste documentul + semnatura. El decripteaza semnatura cu cheia PUBLICA a Anei si obtine hash-ul original.
  4. Bogdan calculeaza independent hash-ul documentului primit. Daca cele doua hash-uri coincid, documentul este autentic si nemodificat.

Rezumat comparativ al mecanismelor:

Mecanism Cheie(i) Reversibil? Utilizare tipica
Simetric (AES) O cheie secreta Da (cu aceeasi cheie) Criptare disc, VPN, ZIP
Asimetric (RSA) Pereche publica/privata Da (cu cheia privata) HTTPS, e-mail criptat
Hash (SHA-256) Nicio cheie Nu Parole, integritate fisiere
Semnatura digitala Pereche publica/privata Partial (hash) Documente legale, software
🔍
Cele trei proprietati protejate de criptografie

Confidentialitate (cine poate citi) · Integritate (daca a fost modificat) · Autenticitate (cine a trimis). Impreuna formeaza baza securitatii informatiei.

Exercitii practice

Exercitiul 1 (Nivel minim) — Cifrul Cezar manual

Cripteaza cuvantul INFO folosind cifrul Cezar cu cheie = 4. Scrie fiecare pas (litera originala → pozitie → pozitie + 4 → litera criptata). Ce cuvant obtii?

Vezi rezolvarea

Cuvantul INFO se cripteaza litera cu litera, folosind alfabetul numerotat A=1, B=2, ... Z=26 (ca in exemplul BUNA -> EXQD din lectie, cu cheie 3).

  1. I (pozitia 9) + 4 = 13 -> M
  2. N (pozitia 14) + 4 = 18 -> R
  3. F (pozitia 6) + 4 = 10 -> J
  4. O (pozitia 15) + 4 = 19 -> S

Cuvantul criptat obtinut este MRJS. Pentru decriptare se scade 4 din pozitia fiecarei litere a textului cifrat si se obtine inapoi INFO.

Exercitiul 2 (Nivel standard) — Alege mecanismul potrivit

Pentru fiecare situatie, indica ce mecanism criptografic este cel mai potrivit si justifica alegerea:

  1. Un site de shopping vrea sa stocheze parolele utilizatorilor.
  2. O companie vrea sa cripteze rapid 500 GB de date pe un server intern.
  3. Un avocat vrea sa trimita un contract electronic si sa dovedeasca faptul ca el l-a semnat si ca nu a fost modificat.
Vezi rezolvarea

Pentru fiecare situatie mecanismul se alege dupa ce anume trebuie protejat:

  1. Stocarea parolelor pe un site de shopping: functie hash (ex. SHA-256). Parola nu trebuie sa poata fi vreodata decriptata; site-ul pastreaza doar hash-ul, iar la login recalculeaza hash-ul parolei introduse si il compara cu cel stocat.
  2. Criptarea rapida a 500 GB pe server intern: criptare simetrica (ex. AES). Este foarte rapida si potrivita pentru volume mari de date; problema distributiei cheii nu e critica aici, cheia ramane in interiorul companiei.
  3. Contract electronic, cu dovada ca avocatul l-a semnat si nu a fost modificat: semnatura digitala (hash + criptare asimetrica). Avocatul calculeaza hash-ul contractului si il cripteaza cu cheia sa privata; oricine poate verifica semnatura cu cheia lui publica, ceea ce dovedeste autenticitatea si integritatea documentului.

Exercitiul 3 (Nivel performanta) — Analiza unui scenariu HTTPS

Descrie in ordine pasii care au loc criptografic atunci cand accesezi https://bancatamea.ro si introduci parola. Identifica: ce tip de criptare se foloseste la fiecare pas, ce chei sunt implicate si ce se protejeaza (confidentialitate / integritate / autenticitate).

Vezi rezolvarea

Nivel de performanta - schita de rezolvare, nu raspunsul complet:

  1. Descrie handshake-ul initial: browserul si serverul stabilesc conexiunea, iar serverul isi prezinta cheia publica.
  2. Faza asimetrica: se genereaza o cheie de sesiune (simetrica), criptata cu cheia publica a serverului, ca doar el sa o poata decripta cu cheia sa privata.
  3. Faza simetrica: de acum inainte, parola si tot traficul se cripteaza rapid cu cheia de sesiune (AES) - criptarea asimetrica e prea lenta pentru volume mari.
  4. Leaga fiecare pas de ce protejeaza: confidentialitate (criptarea propriu-zisa), autenticitate (identitatea serverului), integritate (verificarea ca datele n-au fost alterate pe drum).

Atentie: notiunea de certificat digital / autoritate de certificare, care dovedeste ca acea cheie publica chiar apartine bancii, nu a fost detaliata explicit in lectie - o poti mentiona ca informatie suplimentara.

Criterii de evaluare: separi corect cele doua faze (asimetric la inceput, simetric pe urma), explici de ce se schimba mecanismul, si legi fiecare pas de confidentialitate/integritate/autenticitate.

Ce ai invatat astazi

  • Criptografia transforma informatia clara in ciphertext; numai cel cu cheia corecta poate decripta
  • Cifrul Cezar deplaseaza fiecare litera cu un numar fix — simplu de inteles, usor de spart
  • Criptarea simetrica (AES): o cheie, rapida, problema distributiei cheii
  • Criptarea asimetrica (RSA): pereche publica/privata, elimina problema distributiei, mai lenta
  • Functia hash (SHA-256): unidirectionala, lungime fixa, utilizata pentru parole si integritate
  • Semnatura digitala: hash + criptare asimetrica = autenticitate + integritate
  • HTTPS foloseste ambele tipuri de criptare: asimetric pentru negocierea cheii, simetric pentru sesiune

Vrei mai mult?

Provocare: Cuvantul KHOOR a fost criptat cu cifrul Cezar, dar cheia nu e data. Incearca pe rand toate cele 26 de chei posibile (brute-force manual sau in Python) pana gasesti un cuvant englezesc cu sens. Cate incercari ai avut nevoie?

De gandit: Cifrul Cezar foloseste aceeasi idee matematica (deplasare modulo 26) ca multe sisteme de criptare reale. Atunci de ce e complet nesigur azi, in timp ce AES rezista? Ce ii lipseste exact fata de un algoritm modern — numarul de chei posibile, structura, sau altceva?

Deschidere: Actualizarile de software pe care le primesti pe telefon sau calculator sunt semnate digital exact ca in ultimul atom din lectie: producatorul cripteaza hash-ul fisierului cu cheia sa privata, iar sistemul tau verifica semnatura inainte sa instaleze update-ul. Daca semnatura nu se potriveste, update-ul e respins — asa te aperi de un update fals trimis de un atacator.

Urmatoarea lectie

Continua cu Lectia 4: Ce este Inteligenta Artificiala? — Machine Learning, retele neurale si aplicatii practice.

Continua →