Sunteți pe pagina 1din 20

riptografie si Securitate

- Prelegerea 21 Despre problema logaritmului discret


Adela Georgescu, Ruxandra F. Olimid
Facultatea de Matematic
a si Informatic
a
Universitatea din Bucuresti

Cuprins

1. Algoritmi pentru DLP

2. Functii hash rezistente la coliziuni bazate pe PLD

Criptografie si Securitate

2/20

Algoritmi pentru calculul logaritmului discret

Reamintim PLD:

Fie G un grup ciclic de ordin q (cu |q| = n) iar g este


generatorul lui G.

Pentru fiecare h G exista un unic x Zq a.. g x = h.

PLD cere gasirea lui x stiind G, q, g , h; notam x = logg h;

Atentie! Atunci cand g x = h pentru un x arbitrar (deci NU


neaparat x Zq ), notam logg h = [x mod q]

Criptografie si Securitate

3/20

Algoritmi pentru calculul logaritmului discret

Problema PLD se poate rezolva, desigur, prin forta bruta,


calculand pe rand toate puterile x ale lui g pana cand se
gaseste una potrivita pentru care g x = h;

Complexitatea timp este O(q) iar complexitatea spatiu este


O(1);

Daca se precalculeaza toate valorile (x, g x ), cautarea se face


n timp O(1) si spatiu O(q);

Sunt de interes algoritmii care pot obtine un timp mai bun la


rulare decat forta bruta, realizand un compromis spatiu-timp.

Criptografie si Securitate

4/20

Algoritmi pentru calculul logaritmului discret

Se cunosc mai multi astfel de algoritmi mpartiti n doua


categorii:

algoritmi generici care functioneaza n grupuri arbitrare (i.e.


orice grupuri ciclice);
algoritmi non-generici care lucreaza n grupuri specifice exploateaza proprietati speciale ale anumitor grupuri

Dintre algoritmii generici enumeram:

Metoda Baby-step/giant-step, datorata lui Shanks,


calculeaza logaritmul discret ntr-un grup de ordin q n timp

O( q (log q)c );

Algoritmul Pohlig-Hellman poate fi folosit atunci cand se


cunoaste factorizarea ordinului q al grupului;

Criptografie si Securitate

5/20

Algoritmi generici pentru calculul logaritmului discret

Metoda Baby-Step/Giant-Step este optima ca timp de rulare,


nsa exista alti algoritmi mai eficienti d.p.d.v. al complexitatii
spatiu;
In cazul algoritmului Pohlig-Hellman, timpul de rulare depinde
factorii primi ai lui q;
Pentru ca algoritmul sa nu fie eficient, trebuie ca cel mai mare
factor prim al lui q sa fie de ordinul 2160 .

Criptografie si Securitate

6/20

Algoritmi non-generici pentru calculul logaritmului discret

Algoritmii non-generici sunt potential mai puternici decat cei


generici;
Cel mai cunoscut algoritm pentru PLD n Zp cu p prim este
algoritmul GNFS (General Number Field Sieve) cu
1/3
2/3
complexitate timp 2O(n (log n) ) unde |p| = O(n);

Exista si un alt algoritm non-generic numit metoda de calcul a


indicelui care rezolva DLP n grupuri ciclice Zp cu p prim n
timp sub-expoential n lungimea lui p.

Aceasta metoda seamana cu algoritmul sitei patratice pentru


factorizare;

Metoda functioneaza n 2 etape; prima etapa este de


pre-procesare si necesita cunoasterea modulului p si a bazei g ;

Criptografie si Securitate

7/20

Metoda de calcul a indicelui

Pasul 1. Fie q = p 1, ordinul lui Zp si B = {p1 , ..., pk } o


baza de numere prime mici;

Se cauta l k numere distincte x1 , ..., xl Zq pentru care


gi = [g xi mod p] este mic asa ncat toti factorii primi ai lui
gi se gasesc n B;

Vor rezulta relatii de forma


e

g xi = p1i,1 p2i,2 pki,k mod p


unde 1 i k.

sau
xi = ei,1 logg p1 ei,2 logg p2 ei,k logg pk mod p 1

Criptografie si Securitate

8/20

Metoda de calcul a indicelui

In ecuatiile de mai sus, necunoscutele sunt valorile {logg pi }

Pasul 2. Se da y pentru care se cauta logg y ;

Se gaseste o valoare s Zq pentru care g s y mod p este


mic si poate fi factorizat peste baza B, obtinandu-se o
relatie de forma
g s y = p1s1 p2s2 ... pksk mod p

sau
s + logg y = s1 logg p1 s2 logg p2 ... sk logg pk mod p 1
unde s si si se cunosc;

Criptografie si Securitate

9/20

Metoda de calcul a indicelui

In combinatie cu ecuatiile din slide-ul anterior, sunt n total


l + 1 k + 1 ecuatii liniare n k + 1 necunoscute logg pi ,
pentru i = 1, ..., k si logg y .

O variant
a optimizata a acestei metode ruleaza n timp

2O( nlog n) pentru un grup Zp cu p prim de lungime n.

Algoritmul este sub-exponential n lungimea lui p.

Criptografie si Securitate

10/20

Exemplu

Fie p = 101, g = 3 si y=87. Se stie ca


310 = 65 mod 101 si 65 = 5 13
La fel,
312 = 24 5 mod 101

si

314 = 13 mod 101

Prin urmare:
10 = log3 5 + log3 13 mod 100
12 = 4 log3 2 + log3 5 mod 100
14 = log3 13 mod 100

Baza de numere prime mici este:


B = {2, 5, 13}

Criptografie si Securitate

11/20

Metoda de calcul a indicelui

De asemenea, 35 87 = 32 = 25 mod 101 sau


5 + log3 87 = 5 log3 2 mod 100

Combinand primele 3 ecuatii, rezulta ca


4 log3 2 = 16 mod 100;

Aceasta relatie nu determina log3 2 unic dar se gasesc 4 valori


posibile: 4, 29, 54 si 79.

Prin ncercari, se gaseste log3 2 = 39, si deci log3 87 = 40.

Criptografie si Securitate

12/20

Functii hash rezistente la coliziuni

In cadrul criptografiei simetrice, am vazut constructii euristice


de functii hash rezistente la coliziuni care sunt folosite pe larg
n practica;
In continuare prezentam o constructie pentru functii hash
rezistente la coliziuni bazata pe PLD (prezumptia logaritmului
discret) n grupuri de ordin prim;

Cosntructia este mai putin eficienta n practica ....

... nsa arata ca e posibil a obtine rezistenta la coliziuni pe


baza unor prezumptii criptografice standard si bine studiate.

Criptografie si Securitate

13/20

Functii hash rezistente la coliziuni

Fie G un grup ciclic de ordin prim q (cu |q| = n) si g un


generator al sau iar h un element aleator din G;

Definim o functie hash H cu intrarea de lungime fixa dupa


cum urmeaza:

H: pentru intrarea (x1 , x2 ) Zq Zq


H(x1 , x2 ) = g x1 hx2

Criptografie si Securitate

14/20

Functii hash rezistente la coliziuni


Teorema
Daca problema logaritmului discret este dificila n grupul G, atunci
constructia de mai sus este o functie hash de intrare fixa rezistenta
la coliziuni.

Pentru demonstratie vom folosi abordarea reductionista:

Aratam ca o constructie criptografica e sigura atata timp cat


problema pe care se bazeaza e dificila, n felul urmator:

Prezentam o reductie explicita aratand cum putem transforma


un adversar eficient A care ataca securitatea constructiei cu
probabilitate ne-neglijabila ntr-un algoritm eficient A care
rezolva problema dificila;

Criptografie si Securitate

15/20

Demonstratie

Fie H o functie hash precum cea din constructia de mai sus si


A un adversar PPT; notam cu
(n) = Pr [Hash collA,H = 1]
probabilitatea ca A sa gaseasca coliziuni n functia H;

Aratam ca A poate fi folosit de A pentru a rezolva DLP cu


probabilitate de succes (n);

Criptografie si Securitate

16/20

Demonstratie

Algoritmul A primeste la intrare s = (G, q, g , h).


1. Executa A(s) si obtine x si x ;

2. Daca x 6= x si H(x) = H(x ) atunci


2.1 Dac
a h = 1 ntoarce 0;

2.2 Altfel (h 6= 1), noteaz


a x = (x1 , x2 ) si x = (x 1 , x 2 ). Intoarce

[(x1 x1 ) (x 2 x2 ) mod q].

Clar, A ruleaza n timp polinomial;


Verificam faptul ca daca A gaseste o coliziune, A ntoarce
raspunsul corect logg h:

Criptografie si Securitate

17/20

Demonstratie

Daca h = 1, atunci raspunsul lui A este corect pentru ca


logg h = 0;
Altfel, existenta unei coliziuni implica:

H(x1 , x2 ) = H(x 1 , x 2 ) g x1 hx2 = g x 1 hx 2

g x1 x 1 = hx 2 x2

Notam = x 2 x2 .
Observam ca 6= 0 mod q. De ce?
Pentru ca ar nsemna ca [(x1 x 1 ) mod q] = 0 si deci
x = (x1 , x2 ) = (x 1 , x 2 ) = x , contradictie cu x 6= x ;

Criptografie si Securitate

18/20

Demonstratie

Cum q-prim si 6= 0 mod q atunci inversul [1 mod q]


exista;

Deci

1
1
g (x1 x 1 ) = (hx 2 x2 ) mod q = h mod q = h

rezulta ca
logg h = [(x1 x 1 )1 mod q] = [(x1 x 1 )(x2 x 2 )1 mod q]

Observam ca A rezolva DLP corect cu probabilitate exact


(n)
Cum DLP este dificila din ipoteza, concluzionam ca (n) este
neglijabila.

Criptografie si Securitate

19/20

Important de retinut!

Cel mai bun algoritm pentru DLP este sub-exponential;

Se pot construi functii hash rezistente la coliziuni bazate pe


dificultatea DLP;

Criptografie si Securitate

20/20

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