Sunteți pe pagina 1din 35

Outline Planul cursului Ce este criptografia?

Terminologie Repere istorice Complexitate

Criptografie

Curs 1

Anul II

Februarie 2013
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Prof. dr. Razvan LITCANU: curs, seminar 121, 122


Drd. Andrei CUZUB: seminar 521, 522
Lect. dr. Marius APETRII: laborator
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Probleme organizatorice
LUCRARE : Saptamana 8 - 12 aprilie
1 Lucrare: teorie si exercitii, cursurile 1-6/7
2 Examen: scris: exercitii din toata materia; oral: teorie cursurile
7-14 (bilete)
Nota finala Nf = (L + AP + ES + EO)/4
CONDITII PROMOVARE EXAMEN:
1 prezenta minima: 10 ore seminar, 24 ore laborator
2 lucrarea data
3 predarea a cel putin 3 teme la seminar, participarea la
proiectele pe echipe propuse la laborator
4 nota finala Nf 5
5 nota examenul final Ne = (ES + EO)/2 5.
6 cunoasterea / utilizarea corecta a cunostintelor din lista
urmatoare
http://www.math.uaic.ro/ litcanu/Fise de exercitii.htm
Consultatii: marti 10-11, joi 12-13.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Examenul nu poate fi promovat daca nu se


cunosc / nu se utilizeaza corect n exercitii:
Relatia de divizibilitate n N si Z
Criterii de divizibilitate cu 2, 3, 4, 5, 11
Notiunea de numar prim
Cel mai mare divizor comun / cel mai mic multiplu comun
Inelul claselor de resturi modulo n, n Z
Algoritmul lui Euclid
Inmultirea matricilor
Conditii necesare si suficiente pentru ca o matrice sa fie
inversabila
Inversarea unei matrici 2x2, 3x3, cu elemente din Z, R, C, Zp
Calculul unui determinant
Rezolvarea unui sistem de 2 sau 3 ecuatii liniare
Notiunile de grup, inel, corp
Ecuatiile dreptei n plan si spatiu: generale, parametrice,
dreapta prin doua puncte, panta unei drepte
...
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

1 Planul cursului

2 Ce este criptografia?

3 Terminologie

4 Repere istorice

5 Elemente de complexitate a algoritmilor


Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Planul cursului
1 Notiuni si rezultate de teoria numerelor, algoritmi: baze de
numeratie, congruente, divizibilitate, algoritmul lui Euclid,
estimari ale timpului de calcul; teste de primalitate; algoritmi
de factorizare
2 Criptosisteme cu cheie privata: criptosistemul lui Iulius Cezar,
criptosisteme afine, matrici de cifrare, criptosistemul Vigenere;
DES; Rijndael
3 Criptosisteme cu cheie publica: notiunea de cheie publica,
semnatura, functii trapa; logaritmul discret; criptosisteme :
RSA, Diffie-Hellman, ElGamal, Massey-Omura,
Merkle-Hellman
4 Protocoale criptografice: schimburi de chei, autentificare,
secret sharing, secret splitting, semnatura n grup, poker
mental, ...; functii hash
5 Curbe eliptice: Criptosisteme pe curbe eliptice.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Bibliografie

1 Bucataru I.: Aritmetica, note de curs,


http://www.math.uaic.ro/ bucataru/
2 Buchmann J.: Introduction to Cryptography, Springer, 2004
3 Koblitz N.: A Course in Number Theory and Cryptography,
Springer, 1994
4 Languasco A.; Zaccagnini A.: Introduzione alla Crittografia,
Hoepli, Milano, 2004
5 Leoreanu V., Tamas V., Tofan I.: Curs de aritmetica, Edit.
Univ. Al. I. Cuza, 2001
6 Menezes A., van Oorschot P., Vanstone, S.: Handbook of
applied cryptography, http://www.cacr.math.uwaterloo.ca/hac/
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Criptografie
Motive pentru a codifica informatia:
pentru a o face inaccesibila persoanelor / entitatilor
neautorizate criptografie
pentru a detecta si eventual corecta erorile produse in timpul
transmiterii teoria codurilor
pentru a o comprima in vederea reducerii spatiului necesar
stocarii
CRIPTOGRAFIE: Studiul metodelor si tehnicilor matematice
folosite pentru tratarea informatiei astfel ncat doar entitati
autorizate sa aiba acces la aceasta.
TEORIA CODURILOR: Studiul metodelor si tehnicilor
matematice folosite pentru tratarea informatiei astfel ncat erorile
aparute in cursul transmiterii acesteia sa poata fi corectate, iar
informatia initiala sa fie recuperata.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Ce este criptografia?

kryptos + graphein ( o + )= scriere ascunsa.


Are n vedere, printre altele, urmatoarele aspecte:
CONFIDENTIALITATEA: O entitate neautorizata nu are acces
la informatie.
AUTENTIFICAREA: Identificarea entitatii care a emis
informatia si a entitatilor care acceseaza informatia.
INTEGRITATEA DATELOR: Identificarea unei eventuale
modificari neautorizate a informatiei.
NON-REPUDIEREA: O entitate nu poate nega o actiune pe
care a nfaptuit-o anterior.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Aplicatii

comunicatii
securitatea fisierelor, bazelor de date
transfer monetar electronic
comert electronic
semnari contracte
e-mail
parole, PIN
control acces
protocoale de securitate
protectia copyright-ului
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Terminologie

Criptografia: Studiul metodelor si tehnicilor matematice


folosite pentru tratarea informatiei astfel ncat doar entitati
autorizate sa aiba acces la aceasta.
Criptanaliza: Studiul metodelor si tehnicilor matematice
folosite pentru atacul sistemelor criptografice.
Criptologie = criptografie + criptanaliza
Steganografie: Nu numai infomatia este ascunsa, ci si nsusi
faptul ca aceasta a fost transmisa.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Terminologie

Criptare (encryption): Succesiune de transformari ale


informatiei n vederea ascunderii continutului acesteia pentru
entitati neautorizate ( cifrare)
Text n clar (plaintext): Mesajul (informatia) nainte de
criptare
Text cifrat (cyphertext): Mesajul (informatia) dupa criptare
Decriptare (decryption): Succesiune de transformari ale
textului cifrat n vederea reobtinerii textului n clar
Cheie (key): Informatie necesara realizarii actiunii de
criptare sau de decriptare
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Exemple
Exemplul 1
Text n clar: AZI ESTE PRIMUL CURS
Text cifrat: DCL HVWH SULPXO FXUV
Cheie: 3

Exemplul 2
Text n clar: AZI ESTE PRIMUL CURS
Text cifrat: AXY MCFM TZYKIH GIZC
Cheie: 3

Exemplul 3
Text n clar: AZI ESTE PRIMUL CURS
Text cifrat: KCFJIPCIXZVFWYIJGVAWX
Cheie: KEY
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Terminologie
Criptosistem
P = multimea
mesajelor n clar
f C = multimea
mesajelor cifrate
K = multimea
cheilor
C = multimea
mesajelor cifrate
g C = multimea
mesajelor n clar
K = multimea
cheilor
k K functia m 7 f (m, k) este injectiva
k K , k 0 K astfel ncat
m 7 c := f (m, k) 7 g (c, k 0 ) = m
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Tipuri de criptosisteme

Criptosistem simetric (cu cheie privata)

Cheia de criptare = cheia de decriptare

Criptosistem antisimetric (cu cheie publica)

Cheia de criptare 6= cheia de decriptare


Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Inca un exemplu

Exemplul 4
Text n clar: HELP
Text cifrat: EBLEZN
Cheie de criptare (publica): (5063,19)
Cheie de decriptare (privata): (5063,259)
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Tipuri de atac

Atac: Incercare a unei entitati neautorizate ( adversar) de a


decripta un text cifrat, fara a cunoaste cheia de decriptare.

Atac pasiv: Adversarul urmareste decriptarea informatiei.


Atac activ: Adversarul urmareste modificarea / nlocuirea
informatiei initiale, furtul de identitate, etc..
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Tipuri de atac

Metode de atac:
Cyphertext-only attack: Adversarul are acces la texte cifrate .
Known-plaintext attack: Adversarul are acces la unul sau mai
multe texte n clar si la textele cifrate corespunzatoare.
Chosen-plaintext attack: Adversarul poate cripta texte n clar,
fara a cunoaste cheile.
Adaptative chosen-plaintext attack: Adversarul poate varia
textul n clar pe care l cifreaza n functie de textele cifrate
obtinute anterior.
Chosen-cyphertext attack: Adversarul poate decripta dar nu
cunoaste cheile.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

2000 i.C.: Mormantul lui Khnumhotep II

1500 i.C.: Mesopotamia: semnaturi

800 i.C.: Homer, Iliada, Bellerophon


Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

600-500 i.C.: Biblie, Cartea lui Ieremia:


ATBASH (codul ebraic)

475 i.C.: Scytal. Pasanius, Sparta

50 i.C.: Criptosistemul lui Iulius Cezar


Suetonius
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice
Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Stiinta scrierii
n cifrari secrete.

Sec. VIII-XV: Criptologia araba


Al-Khalil: Cartea mesajelor cifrate
Al-Kindi: Scrieri despre descifrarea mesajelor cifrate
Qalqashandi: Enciclopedie n 14 volume care include o sectiune
de criptologie

Sec. XIII: Roger Bacon (1214-1294)


Descrie 7 metode de a cripta mesaje.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

1411: Michele Steno, substitutie omofonica

1585:Blaise de Vigenere
Traite des chiffres

1587: Mary Stuart


este executata ca urmare a descifrarii unor mesaje criptate
prin care complota la asasinarea reginei Elisabeta I
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

1691: Antoine Rossignol


Marele Cifru al lui Ludovic al XIV-lea ( 1890).

1840: Samuel Morse (1791-1872)

1843: Edgar Allan Poe


Scorpionul de aur
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

1854: Charles Babbage (1791-1871)


Parintele calculatorului; sparge sistemul lui Vigenere.
1917: 19 ianuarie, decriptarea telegramei lui Zimmerman catre
Ambasada Germaniei n Mexic duce la intrarea SUA n razboi.

1918: Gilbert Sandford Vernam


One time pad
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice
1923: Arthur Scherbius . Enigma

1939-1945: Razboiul provoaca o dezvoltare deosebita a


criptografiei si criptanalizei.
Marian Rejewski (1905-1980), Alan Turing (1912-1954)
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

1948: Claude Elwood Shannon (1916-2001)


Teoria informatiei, A Communications Theory of Secrecy
Systems
1976: DES (Data Encryption Standard).
1976: Whitfield Diffie (n.1944), Martin Hellman (n.1945):
New Directions in Cryptography.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Repere istorice

1977: Ronald L. Rivest (n.1947), Adi Shamir (n.1952),


Leonard M. Adleman (n.1945): RSA

2001: Rijndael devine Advanced Encryption Standard (AES)


...
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Elemente de complexitate a algoritmilor


Definitie
Fie f , g : N R+ doua functii. Spunem ca cresterea lui f este
marginita de cea a lui g (sau cresterea lui f este de ordinul lui g ),
si scriem f = O(g ), daca exista o constanta C > 0 astfel ncat
f (x) < C g (x) pentru orice x.
Exemple: 3n2 7n + 10 = O(n2 ), 15e n + 1356n2012 = O(e n ),
ln(n7 + 3n 4) = O(n), ln(n7 + 3n 4) = O(ln n).
Daca P este un polinom de gradul d, atunci P(n) = O(nd ).
f = O(1) este echivalent cu faptul ca f este marginita.
f (n)
f = O(g ) daca si numai daca lim supn g (n) = C < .
Spunem ca f creste polinomial daca exista d N astfel ncat
f = O(nd ).
Spunem ca f creste exponential daca exista d N astfel ncat
d
f = O(e n ).
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Elemente de complexitate a algoritmilor

Fie n N, b N, b 2. Sa presupunem ca pentru a scrie n n


baza b sunt necesare k cifre:

n = (k1 k2 . . . 1 0 )b ; i {0, 1, . . . , b 1} ; k1 6= 0}.

Atunci

b k1 n < b k k 1 logb n < k k = [logb n] + 1.

Lungimea numarului natural n (scris n baza b) este

1
[logb n] + 1 = ln n + 1 = O(ln n).
ln b
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Elemente de complexitate a algoritmilor

Timpul de calcul al unui algoritm A:


Time(A) = numarul de operatii elementare necesare pentru
obtinerea output-ului
- exprimat ca functie de lungimea datelor de intrare
- calculat n situatia cea mai defavorabila.
In practica vom determina ordinul de crestere al functiei Time(A),

Time(A) = O(f )

cu f o functie cu cresterea cat mai mica.


Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Operatie elementara (binara)

Input: bitii a, b, r . Output: bitii s, r .

a b r s r

0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
0 0 1 1 0
1 1 0 0 1
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Elemente de complexitate a algoritmilor

Exemplu: Fie m si n doua numere naturale, care scrise n baza 2


au cel mult k biti. Fie Ad algoritmul care realizeaza suma celor
doua numere. Atunci

Time(Ad) = O(k).

Exercitii: Fie m, n, a numere naturale. Estimati timpul de calcul


pentru:
nmultire: m n
ridicarea la putere: ma
calculul n!
transformarea n (n baza 10) n (n baza a)
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Clasificari ale algoritmilor / problemelor


Algoritmi decizionali / probleme de decizie: exista doua
variante ale output-ului: DA sau NU (Adevarat sau Fals).
Exemplu: teste de primalitate: algoritmi care decid daca un
numar natural este prim sau nu.
Algoritmi computationali / probleme de calcul: scopul este
rezolvarea unei probleme de calcul.
Exemplu: algoritmi de factorizare: input: n N; output:
factorii primi ai lui n.
Algoritmi / probleme de cautare: scopul este alegerea, dintr-o
multime finita (dar foarte mare) de variante, pe cea / cele
care ndeplinesc anumite conditii. Solutia (output-ul) poate sa
nu fie unica.
Exemplu: Problema comisului voiajor. Input: un graf finit si
un varf fixat A. Output: un circuit de lungime minima care
pleaca din A si contine toate varfurile grafului.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Clasificari ale algoritmilor / problemelor

Fie A un algoritm decizional. Fie n o valoare a input-ului (o


instanta a problemei) si sa presupunem ca algoritmul A verifica
daca n are proprietatea P.
Un astfel de algoritm decizional poate fi:
Algoritm determinist: daca output-ul este DA, atunci cu
siguranta n are proprietatea P.
Algoritm probabilistic: daca output-ul este DA, atunci
probabil n are proprietatea P, cu o probabilitate p;
probabilitatea ca n sa aiba proprietatea P devine cu atat mai
mare cu cat el trece testul de mai multe ori. Daca daca
output-ul este NU, atunci cu siguranta n nu are
proprietatea P.
Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate

Clasificari ale algoritmilor / problemelor


Algoritmi conditionati: corectitudinea algoritmului /
raspunsului depinde de demonstrarea unui enunt matematic
despre care se presupune ca e adevarat, dar nu este
demonstrat.
Algoritmi neconditionati: corectitudinea algoritmului /
raspunsului se bazeaza pe enunturi si teorii matematice
demonstrate.

Fie k lungimea input-ului algoritmului A.


Algoritmi care functioneaza in timp polinomial:
d N , Time(A) = O(k d ).
Algoritmi care functioneaza in timp exponential:
Time(A) 6= O(k d ), d N ;
d
d N , Time(A) = O(e k ).
Algoritmi care functioneaza in timp subexponential.

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