Sunteți pe pagina 1din 15

Introducere n

Criptografie

Prof. univ.dr. Constantin Popescu


Departamentul de Matematica si Informatica
http://webhost.uoradea.ro/cpopescu/

01/11/2007

Introducere in Criptografie

Agenda
1. Criptografia cu chei publice
2. Criptarea cu chei publice
3. Semnatura digitala
4. Functii greu inversabile
5. Criptosistemul RSA

Introducere in Criptografie

Criptografia cu chei publice


O schem de criptare cu chei publice conine urmtoarele elemente:
Textul clar: Acesta este un mesaj sau date de intrare pentru
algoritmul de criptare.
Algoritmul de criptare: Transform textul clar n text cifrat.
Cheia public i cheia privat: Este o pereche de chei, una
utilizat pentru criptare (cea public) i cealalt pentru decriptare
(cea privat).
Textul cifrat: Textul produs n urma algoritmului de criptare.
Pentru un mesaj dat, dou chei diferite vor produce dou texte
cifrate diferite.
Algoritmul de decriptare: Decripteaz textul cifrat, n urma cruia
rezult textul clar.
Introducere in Criptografie

Criptarea cu chei publice


Cheia public
a lui B

Cheia privat
a lui B

Transmiterea
textului cifrat
Text clar Algoritmul de
la intrare
criptare

Introducere in Criptografie

Algoritmul de
decriptare

Text clar
la ieire

Criptarea cu chei publice


Sunt respectate urmtoarele condiii:
1. B poate uor s genereze cheia public PB i cheia privat SB.
2. Emittorul A, tiind cheia public a lui B i mesajul clar M, poate
s genereze textul cifrat corespunztor:
C = EPB(M)
3. Receptorul B poate uor s decripteze textul cifrat C:
M = DSB(C) = DSB(EPB(M))
4. Un atacator care tie PB nu poate s determine cheia privat SB
5. Un atacator care tie cheia public PB i textul cifrat C nu poate s
determine mesajul original M
6. Are loc urmtoarea relaie:
M = DSB(EPB(M)) = DPB(ESB(M)).
Introducere in Criptografie

Semntura digital

Cheia privat
a lui A

Cheia public
a lui A

Transmiterea
textului cifrat
Text clar
la intrare

Algoritmul
de criptare

Introducere in Criptografie

Algoritmul de
decriptare

Text clar
la ieire

Semntura digital
Semntura digital reprezint un atribut al unui utilizator, fiind
folosit pentru recunoaterea acestuia.

Fie B un receptor de mesaj semnat de A.


Semntura lui A trebuie s satisfac urmtoarele proprieti:
o Utilizatorul B s fie capabil s valideze semntura lui A
o S fie imposibil pentru oricine, inclusiv B, s falsifice semntura
lui A
o n cazul n care A nu recunoate semntura unui mesaj M,
trebuie s existe un judector care s poat rezolva disputa
dintre A i B.
Introducere in Criptografie

Aplicaiile criptosistemelor cu chei publice


Algoritm

Criptare/Decriptare Semntur
digital
RSA
DA
DA
Diffie-Hellman
NU
NU

Distribuia
cheilor
DA
DA

DSS

NU

DA

NU

Algoritmi bazai
pe curbe eliptice

DA

DA

DA

Introducere in Criptografie

Funcii greu inversabile


Diffie i Hellman au sugerat i o metod de implementare practic.
O funcie este greu inversabil i uor de calculat, dar pentru
aproape toate valorile y din codomeniu este imposibil
computaional s se calculeze x = f 1(y).
Cu alte cuvinte este imposibil computaional s se calculeze f -1
dac se dispune de o descriere complet a lui f.
O funcie greu inversabil se spune c este cu trap atunci cnd f -1
este uor de calculat numai dac se dispune de o informaie trap.
Necunoaterea acestei informaii face ca funcia s fie greu
inversabil.
O astfel de pereche de funcii ( f, f -1) poate constitui perechea (E,D)
a unui criptosistem cu chei publice.
Introducere in Criptografie

Criptosistemul RSA
Prima schem criptografic cu chei publice a fost realizat n anul
1977 de ctre Ron Rivest, Adi Shamir i Len Adleman de la MIT.
Schema Rivest-Shamir-Adleman (RSA) este cea mai rspndit i
implementat schem din lume.
Generarea cheilor:
1. Se selecteaz dou numere ntregi prime p i q.
2. Se calculeaz produsul n=p*q.
3. Se calculeaz indicatorul lui Euler (n)=(p-1)*(q-1).
4. Se selecteaz un numr ntreg e astfel nct
c.m.m.d.c.((n),e)=1, 1<e<(n).
5. Se calculeaz d astfel nct d = e-1 mod (n).
6. Cheia public este (e,n), iar cheia privat este d.
Introducere in Criptografie

10

Criptosistemul RSA
Algoritmul de criptare:

Presupunem c un utilizator A are cheia public (e,n) i cheia


privat d.
Utilizatorul B cripteaz mesajul M pentru a fi transmis la A astfel:
1. Obine cheia public (e,n) a lui A.
2. Transform mesajul ce va fi criptat ntr-un numr ntreg M n
intervalul [0,n-1].
3. Calculeaz C = Me (mod n).
4. Trimite textul cifrat C la utilizatorul A.
Introducere in Criptografie

11

Criptosistemul RSA
Algoritmul de decriptare:

Pentru a determina textul clar M din textul cifrat C, utiliz. A calc.:


M = Cd (mod n).

Numai utilizatorul A cunoaste cheia privata d.

Introducere in Criptografie

12

Criptosistemul RSA
Exemplu:
Se genereaz mai nti cheile:
1.
2.
3.
4.

Se selecteaz dou numere prime p = 7 i q = 17.


Se calculeaz n = p*q = 7*17 = 119.
Se calculeaz (n) = (p-1)*(q-1) = 96.
Se alege e a. . e este relativ prim cu (n) = 96. n acest caz e = 5.

5. Se determin d astfel nct d*e = 1 mod 96 i d<96. Avem d = 77,


deoarece 77*5 = 385 = 4*96+1.
6. Cheia public este (5,119), iar cheia privat este 77.

Se consider c textul clar este M =19.


Textul criptat va fi C = 195 mod 119 = 2476099 mod 119 = 66.
Pentru decriptare se calculeaz 6677 mod 119 = 19 mod 119.
Introducere in Criptografie

13

Atacuri asupra algoritmului RSA


Firme productoare de sisteme de programe i echipamente, ca
Novell, DEC, Lotus, Motorola, folosesc acest algoritm.

Instituii importante (Departamentul Aprrii din SUA, Boeing,


reeaua bancar internaional SWIFT) folosesc acest algoritm
pentru protejarea i autentificarea datelor, parolelor, fiierelor,
documentelor memorate sau transmise prin reele.

Exist trei tipuri de atacuri asupra algoritmului RSA:


o ncercarea tuturor cheilor private posibile.
o Factorizarea numrului n n factori primi p i q.
o Aceste atacuri depind de timpul de execuie a alg. de decriptare.
Introducere in Criptografie

14

Atacuri asupra algoritmului RSA


Din punct de vedere matematic, exist 3 atacuri asupra RSA:
1. Factorizarea numrului n n factori primi p i q. Se poate astfel
determina (n) = (p-1)*(q-1), iar apoi d = e-1 (mod (n)).
2. Determinarea lui (n) direct, fr a determina mai nti p i q. i n
acest caz se poate determina apoi d = e-1 (mod (n)).
3. Determinarea lui d n mod direct, fr a determina mai nti (n).

Determinarea lui (n) este echivalent cu factorizarea numrului n,


iar determinarea lui d (tiind doar pe e i n) se face ntr-un timp tot
aa de mare ca i factorizarea lui n.
Securitatea RSA se bazeaz pe dificultatea factorizrii unui numr
ntreg n factori primi.
RSA cu lungimea cheii de 1024 bii (aproximativ 300 cifre ) este
considerat destul de puternic pentru aplicaiile actuale.
Introducere in Criptografie

15