Sunteți pe pagina 1din 32

Outline

Planul cursului

Ce este criptografia?

Terminologie

Criptografie
Curs 1
Anul II

Februarie 2015

Repere istorice

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

Elemente de complexitate a algoritmilor

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

Complexitate

Planul cursului
1

Notiuni si rezultate de aritmetica, algoritmi: baze de


numeratie, congruente, divizibilitate, algoritmul lui Euclid,
estimari ale timpului de calcul; teste de primalitate; algoritmi
de factorizare

Criptosisteme cu cheie privata: criptosistemul lui Iulius Cezar,


criptosisteme afine, matrici de cifrare, criptosistemul Vigen`ere;
DES; Rijndael

Criptosisteme cu cheie publica: notiunea de cheie publica,


semnatura, functii trapa; logaritmul discret; criptosisteme :
RSA, Diffie-Hellman, ElGamal, Massey-Omura,
Merkle-Hellman

Protocoale criptografice: schimburi de chei, autentificare,


secret sharing, secret splitting, semnatura n grup, poker
mental, ...; functii hash

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/

Buchmann J.: Introduction to Cryptography, Springer, 2004

Koblitz N.: A Course in Number Theory and Cryptography,


Springer, 1994

Languasco A.; Zaccagnini A.: Introduzione alla Crittografia,


Hoepli, Milano, 2004

Leoreanu V., Tamas V., Tofan I.: Curs de aritmetica, Edit.


Univ. Al. I. Cuza, 2001

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:
CONFIDENT
IALITATEA: 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

Aplicat
ii
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

Repere istorice

Complexitate

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

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

Repere istorice

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

Complexitate

Terminologie
Criptosistem
P = multimea
mesajelor n clar

C = multimea
mesajelor cifrate

K = multimea
cheilor
C = multimea
mesajelor cifrate

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

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

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Inca
un exemplu

Exemplul 4
Text n clar: HELP
Text cifrat: EBLEZN
Cheie de criptare (publica): (5063,19)
Cheie de decriptare (privata): (5063,259)

Repere istorice

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

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..

Complexitate

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

2000 i.C.: Mormantul lui Khnumhotep II

1500 i.C.: Mesopotamia: semnaturi

800 i.C.: Homer, Iliada, Bellerophon

Repere istorice

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

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

Repere istorice

Complexitate

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 Vigen`ere
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

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

Complexitate

Outline

Planul cursului

Ce este criptografia?

Terminologie

Repere istorice

Complexitate

Repere istorice

1854: Charles Babbage (1791-1871)


Parintele calculatorului; sparge sistemul lui Vigen`ere.
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

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)

Complexitate

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


Definit
ie
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 = O(g ) daca si numai daca lim supn

f (n)
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
[logb n] + 1 =

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

(binara
)
Operat
ie elementara
Input: bitii a, b, r . Output: bitii s, r .
a b r

0
1
0
0
1
1
0
1

0
1
1
1
0
0
0
1

0
0
0
0
1
1
1
1

0
0
1
0
1
0
1
1

0
0
0
1
0
1
1
1

Complexitate

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

ri ale algoritmilor / problemelor


Clasifica
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

ri ale algoritmilor / problemelor


Clasifica
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

ri ale algoritmilor / problemelor


Clasifica
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