criptografie - curs spiru luciana morogan

123
GENERATORI DE NUMERE PSEUDO- ALEATOARE Asist. Drd. Morogan Maria Luciana

Upload: xmen2006

Post on 27-Jun-2015

501 views

Category:

Documents


24 download

TRANSCRIPT

Page 1: Criptografie - Curs Spiru Luciana Morogan

GENERATORI DE

NUMERE PSEUDO-

ALEATOAREAsist. Drd. Morogan Maria Luciana

Page 2: Criptografie - Curs Spiru Luciana Morogan

Ideal ar fi ca secretele cerute in algoritmii criptografici si protocoale sa fie generate cu un generator de numere pur aleatoare.

Un asemenea generator necesita un mediu capabil sa ofere numere aleatoare.

Creearea unui dispozitiv hardware sau a unui program software in vederea exploatarii acestui mediu si producerii unei secvente de biti in care anumite valori sa nu apara mai des decat altele (ne vom referi la secventa in care anumite valori apar mai des decat altele folosind termenul de bias) este o sarcina dificila.

Page 3: Criptografie - Curs Spiru Luciana Morogan

Cuprins

1. Background teoretic

2. Generatori de numere pseudo – aleatoare

1. Generatori simplii de numere pseudo-aleatoare

2. Generatori bazati pe LFSR

3. Alti generatori de numere pseudo-aleatoare

3. Modelul teoretic de verificare a securitatii unui

generator

4. Teste statistice de validare

1. Distributia normala si distributia

2. Postulatele lui Golomb

3. Teste statistice de baza

4. Testul statistic universal al lui Maurer

Page 4: Criptografie - Curs Spiru Luciana Morogan

Background teoretic

Un generator de biti aleatori este un dispozitiv sau un algoritm prin a carui iesire rezulta o

secventa de cifre binare independente din punct de vedere statistic, secventa in care probabilitatea de emitere

a valorii 1 este de exact ( Termenul folosit in limba engleza pentru o secventa de acest tip este cel de

unbiased ).

Deci, un generator de biti pseudo-aleatori este un algoritm determinist[1] (in sensul ca fiind dat

acelasi sir de valori, generatorul va produce intotdeauna la iesire aceeasi secventa) prin care, fiind data o

secventa pur aleatoare binara de lungime k la intrare, la iesire va genera o secventa binara de lungime l, unde l

este mult mai mare decat k, secventa care “pare” a fi aleatoare.

Definitie formala : fie intregii strict pozitivi k si l, l k+1, ( unde l este obtinut din k prin

aplicatii polinomiale). Un (k, l)-generator de numere pseudo-aleatoare (pe scurt un (k, l)-PRBG), este o

functie calculabila in timp polinomial[2] (in functie de k). Intrarea se numeste secventa initiala

de intrare, in timp ce iesirea este numita secventa pseudo-aleatoare.

[1] Din punct de vedere informatic, un algoritm determinist este un algoritm a carui comportare este

previzibila. Fiind date aceleasi date particulare de intrare, algoritmul va produce la iesire acelasi rezultat

corect, iar masina pe care ruleaza acesta, va trece intotdeauna prin aceeasi secventa de stari.

[2] Timpul polinomial este timpul de calcul al functiei, timp marginit de un polinom de lungime l al secventei

de iesire.

1

2

2 2: k lf Z Z→ 0 2

ks Z∈

0 2( ) lf s Z∈

Page 5: Criptografie - Curs Spiru Luciana Morogan
Page 6: Criptografie - Curs Spiru Luciana Morogan

In studiul securitatii unui sistem criptografic exista doua abordari fundamentale:

� Securitatea calculabila[1] care masoara cantitatea de calcul necesar pentru spargerea unui sistem. Vom spune ca un sistem este sigur in sensul teoriei complexitatii[2] daca cel mai bun algoritm pentru spargerea sistemului necesita N operatii, unde N este un numar foarte mare.

� Securitatea neconditionata masoara securitatea sistemului fara limita a cantitatii de calcule pe care un adversar este capabil sa le faca. Un procedeu este neconditionat sigur daca nu poate fi spart, nici cu o putere de calcul infinita.

[1] Computational security

[2] Computationally secure

Page 7: Criptografie - Curs Spiru Luciana Morogan

Este important de studiat informatia care poate avea relevanta pentru un adversar in realizarea unui atac cu text cunoscut si intr-un timp arbitrar de calcul. Instrumentul de baza in studierea acestei probleme il reprezinta notiunea de entropie ( Shannon, 1948, teoria informatiei).

In general, pentru un sir binar, avem:

entropia = log (numarul sirurilor posibile)

(log se refera la un logaritm in baza 2)

Page 8: Criptografie - Curs Spiru Luciana Morogan

Generatori de numere pseudo – aleatoare

Din punctul de vedere

al securitatii:

� Generatori siguri� ANSI X9.17

� FISP 186

� Generatori nesiguri:� Generatorul RSA

� Micali-Schnorr

� Blum-Blum-Schub

Alta clasificare:

� generatori simplii � Generatorul liniar congruential� Generatori Ranrot � Generatorul Blum – Blum – Shub

� generatori bazati pe LFSR � Generatorul Geffe � Generatori de tip “Stop-and-go”� Generatorul Stop-and-go alternativ

� “clasa” separata � Generatorul Mother-of-all � Generatorul Blum – Micali � Generatorul1/p

Page 9: Criptografie - Curs Spiru Luciana Morogan

Generatori simplii de

numere pseudo-aleatoare

Page 10: Criptografie - Curs Spiru Luciana Morogan

Generatorul liniar congruential

Face parte din clasa generatorilor nesiguri.

Un exemplu ilustrativ :

Luam M=31, a=3 si b=5. Obtinem un (5, 10) - PRBG cu un generator liniar congruential.

Daca consideram aplicatia , avem , iar celelate 30 de resturi sunt permutari dupa un ciclu de lungime 30 in ordinea urmatoare: 0, 5, 20, 3, 14, 16, 22, 9, 1, 8, 29, 30, 2, 11, 7, 26, 21, 6, 23, 12, 10, 4, 17, 25, 18, 28, 27, 24, 15, 19.

Daca valoarea initiala este diferita de 13, aceasta defineste un punct de plecare in acest ciclu, si urmatoarele 10 elemente reduse modulo 2 formeaza sirul de numere pseudo-aleatoare.

Urmarind acest procedeu, cele 31 de siruri de numere pseudo-aleatoare posibile sunt reprezentate in urmatorul tabel:

13 13→(3 5)mod31s s→ +

Page 11: Criptografie - Curs Spiru Luciana Morogan
Page 12: Criptografie - Curs Spiru Luciana Morogan

Generatori Ranrot

Definiti de Agner Fog[1], acestia se bazeaza pe generatoare de numere Fibonacci[2], impreuna cu operatia de rotatie pe biti. Se cunosc trei tipuri de astfel de generatoare, iar relatiile dupa care se definesc sunt urmatoarele:

[1] Agner Fog a definit in 1977 generatorii Ranrot, initial pentru algoritmi de tip Monte Carlo. Mai multe informatii se gasesc pe internet la adresa http://www.agner.org/random/theory

[2] Sirul numerelor lui Fibonacci este dat de relatia de recurenta:

0

1

1 1

f 0

1

n n n

f

f f f+ −

=

= = +

Page 13: Criptografie - Curs Spiru Luciana Morogan
Page 14: Criptografie - Curs Spiru Luciana Morogan

Generatorul Blum – Blum – Shub

Unul dintre cele mai des utilizate generatoare de

numere pseudo-aleatoare,este acest generator.

Page 15: Criptografie - Curs Spiru Luciana Morogan

Generatorul Blum – Blum – Shub se bazeaza pe

problema resturilor patratice, al carei enunt este urmatorul:

Fie un intreg n = pq, unde p si q sunt numere prime

necunoscute si fie

Intrebare: este x un rest patratic modulo n?

* astfel incat 1n

xx Z

n

∈ =

Page 16: Criptografie - Curs Spiru Luciana Morogan

Definitie. Fie p si q doua numere prime. Daca

atunci numarul n = pq se numeste intreg

Blum.

3(mod 4)p q≡ ≡

Page 17: Criptografie - Curs Spiru Luciana Morogan

Algoritmul BBS prezentat ca un (k, l)-

PRBG este urmatorul:

Fie p si q doua numere prime, intregi Blum de

k/2 biti si fie n = pq. QR(n) reprezinta

ansamblul de resturi patratice modulo n.

Fie valoarea initiala:

unde

0 ( ), pentru i 0s QR n∈ ≥2

1 modi is s n+ =

0 1 2( ) ( , ,..., )lf s z z z=

mod2, pentru 1 .i iz s i l= ≤ ≤

Page 18: Criptografie - Curs Spiru Luciana Morogan

Generatorul Blum – Blum – Shub este considerat un generator sigur din punct de vedere criptografic, in acest moment, fiind dealtfel considerat drept cel mai bun generator de numere pseudo-aleatoare pentru protocoale de generare si distributie a cheii.

Securitatea acestuia se bazeaza pe dificultate factorizarii lui n.

n poate fi facut public (oricine poate genera o secventa pseudo-aleatoare pe baza lui). Iar daca n nu se descompune in factori, nimeni nu poate prezice iesirea.

Mai mult, fiind data o parte a secventei, nu exista nici o modalitate de a prezice bitul anterior sau pe cel ulterior secventei.

Page 19: Criptografie - Curs Spiru Luciana Morogan

Generatori bazati pe LFSR

Page 20: Criptografie - Curs Spiru Luciana Morogan

Un LFSR( Linear Feedback Shift Register ) este un

circuit liniar[1] format dintr-un registru serial si o functie de

intoarcere ( feedback ). Daca registrul este compus din n flip-

flopuri, vom avea un n – LFSR.

Sa consideram m registrii seriali al caror

continut este fie 0 fie 1, care pot fi considerati dispozitive de

memorare cum ar fi flip-flopuile.

Consideram valorile initiale

Un ceas electronic controleaza procesul.

1 0, ,...,m mR R R−

0 1 1, ,..., mx x x −

Page 21: Criptografie - Curs Spiru Luciana Morogan

La primul puls al ceasului, intrarea este impinsa

spre dreapta pentru a ocupa registrul .

Simultan, devine noua intrare in , si asa mai departe,

pana la elementul cel mai din dreapta care va fi transferat

secventei de iesire.

1mx −

2mR −

2mx − 3mR −

Page 22: Criptografie - Curs Spiru Luciana Morogan

De exemplu, pentru m=5 si configuratia initiala

in care reprezentarea este urmatoarea:

iar dupa primul puls al ceasului vom avea urmatoarea

configuratie:

Secventa de iesire in acest moment consta in valoarea 1.

Simbolic: Aceasta secventa de elemente este numita satare

a vectorului.

4 3 2 1 01, 0, 0, 1, 1x x x x x= = = = =

1 10 0 1

4R 3R 2R 1R 0R

11 0 0

4R 3R 2R 1R 0R

( ) ( )4 3 2 1 0 4 3 2 1, , , , , , , ,x x x x x x x x x→ −

Page 23: Criptografie - Curs Spiru Luciana Morogan

In general, o relatie de recurenta (binara)

de lungime m (corespunzatoare a m registrii),

este o relatie de forma:

este un intreg pozitiv fixat egal cu

numarul registrilor, toate variabilele sunt

binare si = 1. Pentru i = 0 avem:

Cele m numere binare se numesc

coeficientii recurentei.

1

0

m

i m j i j

j

x c x−

+ +=

=∑

0m ≥

ix

0c

1 1 2 2 1 1 0 0...m m m m mx c x c x c x c x− − − −= + + + +

1 2 0, ,..,m mc c c− −

Page 24: Criptografie - Curs Spiru Luciana Morogan

Relatia de recurenta de mai sus poate fi

generata de un LFSR de lungime m si este

usor de implementat atat in software cat si in

hardware si poate fi reprezentata prin

schema de mai jos:

Page 25: Criptografie - Curs Spiru Luciana Morogan

Generatorul Geffe

Generatorul Geffe combina, neliniar, trei LFSR, cel de al

treilea fiind folosit pentru a “alege” daca bitul rezultat provine din

primul registru sau din al doilea.

Sa consideram schema urmatoare a unui generator Geffe:

LFSR2

LFSR3

LFSR1

0

EMUX

1

Page 26: Criptografie - Curs Spiru Luciana Morogan

Aici, LFSR1 formeaza functia de selectie a multiplexorului[1] elementar,

intrarile fiind asigurate de celelalte doua LFSR-uri.

Daca sunt iesirile corespunzatoare celor trei LFSR-uri,

iesirea generatorului Geffe este data de relatia

Perioada generatorului este cel mai mic multiplu comun al perioadelor

celor trei LFSR-uri. Deci, daca cele trei polinoame care definesc circuitele au

grade prime intre ele, perioada generatorului Geffe este produsul celor trei

perioade.

[1] Multiplexorul este un disozitiv logic care selecteaza o intrare dintr-un sir de intrari

in conformitate cu valoarea unei alte intrari a indexului. Secventele bazate pe

folosirea multiplexoarelor sunt destul de populare datorita faptului ca sunt relativ

rapide. Generatorul de chei este descris, conventional, ca folosind doua

secvente si multiplexorul este folosit pentru a combina cele doua secvente intr-

un mod neliniar.

1 2 3, ,a a a

1 2 1 3( ) ( )b a a a a= ∧ ⊕ ∧

Page 27: Criptografie - Curs Spiru Luciana Morogan

Generatori de tip “Stop-and-go”

Generatorul Beth-Piper (dupa numele

autorilor) care controleaza ceasurile celor trei

circuite. Structura sa este urmatoarea:

Ceasul de intrare in LFSR2 este

controlat de iesirea din LFSR1 si, astfel, LFSR2

isi schimba starea la momentul t daca iesirea

din LFSR1 era 1 la momentul t-1.

Generatorul Stop-and-go alternativ

foloseste tot trei LFSR-uri de lungimi diferite

legate intr-un circuit de forma:

Daca iesirea din LFSR1 este 1, atunci

se activeaza LFSR2; altfel se activeaza LFSR3.

Iesirea finala din generator este reprezentata de

un XOR intre cele doua iesiri.

Page 28: Criptografie - Curs Spiru Luciana Morogan

Alti generatori de numere

pseudo-aleatoare

Page 29: Criptografie - Curs Spiru Luciana Morogan

Generatorul Mother-of-all

Este un generator propus de George Marsaglia, si consta in alegerea initiala a cinci numere intregi, nu toate nule, memorate pe 32 de biti fiecare.

Page 30: Criptografie - Curs Spiru Luciana Morogan

Generatorul Blum – Micali

Fie g un numar prim si p un numar prim

impar si fie o valoare initiala.

Se genereaza numerele

Iesirea din generator este � 1,daca

� 0, altfel.

0x

1 (mod )ix

ix g p+ =

1

2i

px

−<

Page 31: Criptografie - Curs Spiru Luciana Morogan

Generatorul RSA

Fie n = pq, unde p si q reprezinta doua

numere prime mari.

Fie e un numar astfel incat

(e, (p - 1)(q - 1) ) = 1 si o valoare initiala

astfel incat < n. Se defineste relatia

Iesirea generatorului este

0x

0x

1 (mod )e

i ix x n+ =

(mod 2)i iz x=

Page 32: Criptografie - Curs Spiru Luciana Morogan

Generatorul1/p

Secventa de numere pseudo-aleatoare este generata prin extinderea fractiei 1/p la o baza b unde p si b sunt relativ prime[1].

[1] Fie a si b doua numere intregi, acestea sunt relativ prime daca si numai daca (a, b) = 1.

Page 33: Criptografie - Curs Spiru Luciana Morogan

MODELUL TEORETIC DE

VERIFICARE A SECURITATII

UNUI GENERATOR

Page 34: Criptografie - Curs Spiru Luciana Morogan

Exista doua cerinte generale legate de securitatea unui

generator de numere pseudo-aleatoare:

� secventa rezultat a unui PRBG ar trebui sa

fie inseparabila, din punct de vedere

statistic, de o secventa de numere pur

aleatoare

� bitii rezultat ar trebui sa fie imprevizibili pentru

un adversar care dispune de resurse de

calcul limitate

Page 35: Criptografie - Curs Spiru Luciana Morogan

Definitie. Fie doua distributii de probabilitate[1] pe

Prin intelegem ca t este ales astfel incat

Spunem ca este inseparabil in timp polinomial de

daca pentru orice algoritm probabilist A si orice polinom Q

exista astfel incat avem:

Adica, conditia de inseparabilitate spune ca pentru siruri

suficient de lungi nu exista un algoritm probabilist care sa

decida daca sirul a fost selectat dupa distributia sau

[1] O distributie de probabilitate pe o multime S este o

functie astfel incat

,n nX Y {0,1}n

nt X∈

{0,1} ,Pr[ ] ( )n

nz x z X z∀ ∈ = =

{ }nX { }nY

0n 0, ,n n n∀ >

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )n nt X t YA t A tQ n

∈ ∈= − = <

nX nY

: [0,1]D S R→ ⊂( ) 1

s S

D s∈

=∑

Page 36: Criptografie - Curs Spiru Luciana Morogan

Notam distributia aleatoare uniforma cu si deci, pentru

orice

avem

Definitie. Spunem ca sirul este pseudo-aleator daca este

inseparabil in timp polinomial de , si deci pentru orice

algoritm probabilist A si orice polinom Q exista astfel incat

avem:

nU

{0,1}nα ∈1

Pr ( )2nx U n

x α∈ = =

nX

nU

0n

0, ,n n n∀ >

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )n nt X t UA t A tQ n

∈ ∈= − = <

Page 37: Criptografie - Curs Spiru Luciana Morogan

Definitie. Algoritmul A din cele doua definitii anterioare este numit test statistic. Exemple de astfel de teste se vor gasi in continuarea lucrarii de fata.

Observatie. Daca exista A si Q astfel incat conditiile definitiei de mai sus sunt incalcate, spunem ca pica, sau esueaza testul A.

Putem acum da urmatoarea definitie:

Definitie. Spunem ca un generator de biti pseudo-aleatoare trece toate testele statistice in timp polinomial[1], teste ce vor fi detaliate mai tarziu, daca nici un algoritm nu reuseste, in timp polinomial, sa faca distinctia intre o secventa de iesire a generatorului si o secventa pur aleatoare de aceeasi lungime cu o probabilitate semnificativ mai mare de ½.

[1] Timpul de rulare al testului este limitat de un polinom de lungime l al secventei de iesire.

nX

Page 38: Criptografie - Curs Spiru Luciana Morogan

Definitie. Un program determinist in timp polinomial

este un generator de numere pseudo-aleatoare

daca sunt indeplinite

urmatoarele conditii

1. p > k ;

2. este pseudo-aleator, unde este distributia pe

obtinuta astfel:

pentru a obtine :

a. se alege

b. se defineste t = G(x).

Adica, pentru orice algoritm probabilist A, orice polinom Q si

orice k suficient de mare, avem:

:{0,1} {0,1}k pG →

{ }p pG pG {0,1}p

pt G∈

kx G∈

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )p pt G t UA t A tQ p

∈ ∈= − = <

Page 39: Criptografie - Curs Spiru Luciana Morogan

Testul bitului urmator

Definitie. Testul bitului urmator este acel test statistic care ia ca intrare prefixul unei secvente si in urma caruia rezulta o predictie a urmatorului bit.

Definitie. Spunem ca un generator de numere pseudo-aleatoare trece testul urmatorulu bit daca nu exista algoritm in timp exponential care, la intrarea primilor l biti ai unei secvente de iesire s, sa poata prezice cei (l+1) biti ai lui s cu probabilitatea semnificativ mai mare decat ½.

Page 40: Criptografie - Curs Spiru Luciana Morogan

Formal, notam cu k probabilitatea de distributie pe .

Definitie. Spunem ca un generator de numere pseudo-

aleatoare trece testul urmatorulu bit daca pentru orice polinom

Q, exista un intreg astfel incat pentru orice

avem

Fapt (universalitatea testului bitului urmator). Un generator de

numere pseudo-aleatoare trece testul urmatorului bit daca si

numai daca trece toate testele statistice in timp polinomial.

Definitie. Un PRBG care trece testul urmatorului bit este

numit un generator criprografic sigur de biti pseudaleatori[1].

[1] Cryptographically secure pseudorandom bit

generator(CSPRBG).

{0,1}k

0k 0 si mp k p> <

1 2 1

1 1| Pr [ ( ... ) ] |

2 ( )pt G m mA t t t tQ k

∈ += < +

Page 41: Criptografie - Curs Spiru Luciana Morogan

TESTE STATISTICE DE

VALIDARE

Page 42: Criptografie - Curs Spiru Luciana Morogan

Distributia normala si distributia Distributia normalaDefinitie. O variabila aleatoare (continua) X

are o distributie normala de medie si varianta , daca densitatea sa de probablitate este definita astfel:

Notatam X cu

Daca X este N(0,1), atunci spunem ca X

are o distributie normala standard.

Fapt. Daca variabila aleatoare X este

, atunci variabila aleatoare

este N(0,1).

Distributia

Definitie. Fie un intreg. O variabila aleatoare (continua) X are o distributie cu v grade de libertate daca functia sa de densitate probablistica este definita astfel:

unde reprezinta functia gamma[1].

Media si varianta acestei distributii sunt

si .

Fapt. Daca variabila aleatoare X este

, atunci variabila aleatoare

are o distributie cu 1 grad de libertate.

In particular, daca X este N(0,1), atunci Z =

are o distributie cu 1 grad de libertate.

[1] Functia gamma este definita prin unde t > 0.

µ2σ

2

2

1 ( )( ) exp ,

22

xf x x

µσσ π

− −= −∞ < < ∞

2( , )N µ σ

2( , )N µ σ

( ) /Z X µ σ= −

1v ≥2χ

( / 2) 1 / 2

/ 2

1e ,0

( / 2)2( )

0, 0

v x

vx x

vf x

x

− − ≤ < ∞Γ= <

Γ

vµ =2 2vσ =

2( , )N µ σ2 0σ > 2 2( ) /Z X µ σ= −

2χ2X

1

0

( ) t xt x e dx

∞− −Γ = ∫

Page 43: Criptografie - Curs Spiru Luciana Morogan

Postulatele lui Golomb

Una din primele incercari in a stabili

cateva conditii necesare unor secvente

periodice pseudoaleatoare sa para intr-

adevar aleatoare, o reprezinta postulatele lui

Golomb. Aceste conditii sunt insa departe de

a fi suficiente pentru ca aceste secvente sa

para aleatoare, cu o singura exceptie: toate

secventele sunt binare.

Page 44: Criptografie - Curs Spiru Luciana Morogan

Teste statistice de baza

Fie o secventa binara de lungime n:

Urmatoarele teste statistice determina daca

secventa binara s poseda sau nu anumite

caracteristici cum ar fi cele pe care ar trebui

sa le detina o secventa binara de numere pur

aleatoare.

0 1 2 1, , ,..., ns s s s s −=

Page 45: Criptografie - Curs Spiru Luciana Morogan

Testul de frecventa (testul monobit)

Scopul acestui test este de a determina daca

numarul de 1 si, respectiv de 0, este acelasi

care ar trebui sa fie in cazul in care secventa

in cauza este aleatoare.

Page 46: Criptografie - Curs Spiru Luciana Morogan

Testul serial (testul doi - biti)

Scopul acestui test este de a determina daca

numerele aparitiilor subsirurilor 00, 01, 10 si

11 ca subsiruri ale lui s sunt aproximativ

aceleasi, ceea ce se asteapta dealtfel de la o

secventa aleatoare.

Page 47: Criptografie - Curs Spiru Luciana Morogan

Testul poker

Fie m un intreg pozitiv astfel incat

si fie . Se imparte secventa s in k subsecvente, fiecare de lungime m si se considera numarul aparitiilor celui de-al i-lea tip de astfel de secventa, unde .

Testul poker determina daca fiecare secventa de lungime m apare de un aproximativ acelasi numar de ori in s, asa cum se asteapta dealtfel de la o secventa aleatoare de biti.

5 2mn

m

≥ ⋅ nk

m

=

in1 2mi≤ ≤

Page 48: Criptografie - Curs Spiru Luciana Morogan

Testul de tip run

Determina daca numarul sirurilor de tip run

(numarul de zerouri sau de unu) de lungimi

diferite ale sirului s este acelasi cu cel al unui

sir aleator.

Page 49: Criptografie - Curs Spiru Luciana Morogan

Testul de autocorelare

Scopul acestui test este de a verifica

eventualele corelatii dintre secventa s si

versiunea shiftata (versiunea lui s in care

aceasta secventa a fost modificata prin

aplicarea unor operatii de deplasare la

stanga sau la dreapta pe biti) eventual

neciclica, a acestuia.

Page 50: Criptografie - Curs Spiru Luciana Morogan

Testul statistic universal al lui Maurer

Ideea de baza ce sta la baza testului statistic al lui Maurer consta in aceea ca nu ar trebui sa se poata compresa semnificativ si fara pierderi de informatie o secventa s de iesire a unui generator de numere aleatoare.

In acest sens, daca o anumita secventa de iesire a unui generator poate fi comprimata semnificativ, acesta din urma ar trebui sa fie respins ca nefiind un bun generator.

In schimbul compresiei unei secvente s, testul statistic universal calculeaza o cantitate care sa fie compatibila cu lungimea secventei comprimate.

Page 51: Criptografie - Curs Spiru Luciana Morogan

Universalitatea testului

statistic universal al lui Maurer

apare deoarece acest test este

capabil sa detecteze, orice defect

apartinand unei clase vaste de

posibile defecte pe care le poate

avea un generator.

Page 52: Criptografie - Curs Spiru Luciana Morogan

Bibliografie

� Douglas Stinson, Cryptographie Theorie et pratique, International Thompson Publishing France, Paris 1996.

� Aiden A. Bruen, Mario A. Forcinito, Cryptography, Information Theory, and Error-Correction: a handbook for the 21st century, Wiley-Interscience, John Wiley&Sons, Inc., Hoboken, New Jersey.

� A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996, pentru mai multe informatii: www.cacr.math.uwaterloo.ca/hac

� A. Atanasiu, Crptografie, Note de Curs, disponibil la adresa de internet: http://www.galaxyng.com/adrian_atanasiu/cript.htm

� S. Goldwasser, M. Bellare, Lecture Notes on Cryptography, Cambridge, Massachusetts, August 2001.� M. J. Robshaw, Stream Ciphers, RSA Laboratories Tehnical Report TR-701, Version 2.0-July 25, 1995� R. Davies, Hardware random number generators, articol prezentat lacea de a 15-a Australian Statistics

Conference in Julie, 2000 si la cea de-a 51-a Conference of the NZ Statistical Association in Septembrie, 2000, disponibil la adresa de internet http://www.robertnz.net/hwrng.htm

� J. Viega, Practical Random Number Generation in Software, in Proc. 19th Annual Computer Security Applications Conference, Decembrie, 2003.

� www.agner.org/random/theory� http://www.cs.utk.edu/~langston/projects/papers/ssst03.pdf� http://www.crypto.wpi.edu/Research/truerandom.shtml� http://www.cs.berkeley.edu/~daw/rnd/

Page 53: Criptografie - Curs Spiru Luciana Morogan

Laborator

Sisteme de criptare bloc- Moduri de utilizare -

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 54: Criptografie - Curs Spiru Luciana Morogan

Laborator

Outline

Sisteme de criptare bloc

Modul de utilizare ECB

Modul de utilizare CBC

Modul de utilizare OFB

Modul de utilizare CFB

Page 55: Criptografie - Curs Spiru Luciana Morogan

Laborator

Sisteme de criptare bloc

Sisteme de criptare - definitie

Sistemele de criptare bloc (block cyphers):I elemente succesive ale textului clar sunt criptate folosind

aceeasi cheie de criptareI daca x = x1x2x3 . . . atunci

y = y1y2y3 . . . = ek (x1)ek (x2)ek (x3) . . .

Page 56: Criptografie - Curs Spiru Luciana Morogan

Laborator

Sisteme de criptare bloc

Moduri de utilizare

I ECB (Electonic Codebook Mode)I CBC (Cypher Block Chaining Mode)I OFB (Output Feedback Mode)I CFB (Cypher Feedback Mode)

Page 57: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare ECB

Descrierea modului de utilizare ECB

I textul clar se descompune in blocuri de lungime n; dacaeste necesar, aceasta se suplimenteaza a. i. lungimea safie divizibila cu n (suplimentarea poate consta din simbolurialese aleator)

I daca este folosita cheia de criptare k , atunci fiecare blocde lungime n se cripteaza folosind functia ek

I textul criptat este decriptat prin aplicarea functiei dk , undek reprezinta cheia de decriptare corespunzatoare lui k

Page 58: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare ECB

Descrierea formala a modului de utilizare ECB

I Fie x = α1α2α3 . . . texul clar unde fiecare bloc de textαi , i ≥ 1 este de lungime n

I Formula de criptare cu cheia k : βi = ek (αi), i ≥ 1I Textul criptat este y = β1β2β3 . . .

Page 59: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare ECB

Exercitiu

I Consideram cifrul bloc care aplica permutari bitilor unuivector de biti de lungime 4.

I Daca K =S4, atunci pentru π ∈ S4, avemeπ : [0,1]4 → [0,1]4,b1b2b3b4 7−→ bπ(1)bπ(2)bπ(3)bπ(4)

In particularCriptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)

Page 60: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CBC

Descrierea modului de utilizare CBC

I codificarea unui bloc nu mai depinde doar de cheie (a sevedea ECB) ci si de blocurile anterioare

I aceleasi blocuri in contexte diferite, vor fi codificate diferitI receptorul poate spune daca textul criptat a fost modificat,

deoarece decriptarea acestuia esueaza

Page 61: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CBC

Descrierea formala a modului de utilizare CBC

I se defineste blocul initial IV = β0

I Formula de criptare cu cheia k : βi = ek (βi−1 ⊕ αi), i ≥ 1,unde ⊕ reprezinta operatia XOR pe biti

Page 62: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CBC

Schematic - CBC

Criptare Decriptare

Page 63: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CBC

Exercitiu

I Consideram cifrul bloc care aplica permutari bitilor unuivector de biti de lungime 4.

I Daca K =S4, atunci pentru π ∈ S4, avemeπ : [0,1]4 → [0,1]4,b1b2b3b4 7−→ bπ(1)bπ(2)bπ(3)bπ(4)

In particularCriptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)

Blocul initial este IV = 1010

Page 64: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare OFB

Descrierea modului de utilizare OFB

I construit conform sistemelor de criptare fluideI se genereaza intai cheia fluida, care apoi se va combina

cu textul clarI este o criptare sincronizabila aditiva: componentele cheii

fluide sunt obtinute prin criptarea iterativa a unui bloc initial

Page 65: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare OFB

Descrierea formala a modului de utilizare OFB

I Obtinerea cheii fluideI se defineste blocul initial γ0 = IV , IV ∈ {0,1}n si un numar

intreg pozitiv r ,1 ≤ r ≤ nI textul clar se va descompune in blocuri de dimensiune rI se calculeaza recursiv cheia fluida γ1γ2γ3 . . . dupa formulaγi = ek (γi−1), i ≥ 1

I Secventa de text clar x = α1α2α3 . . . se codifica cuformula de criptare βi = αi ⊕ γi , i ≥ 1

I Textul criptat este y = β1β2β3 . . .

Page 66: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare OFB

Exercitiu

I Consideram acelasi cifru bloc, text clar si cheie ca laexercitiile anterioare

I Blocul initial este IV = 1010

Sa se realizeze criptarea/decriptarea secventei de text clar.

Page 67: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CFB

Descrierea modului de utilizare CFB

I construit conform sistemelor de criptare fluide, este potrivitpentru codificarea mesajelor mari

I in cadrul aplicatiilor in timp real, poate avea totusiprobleme de eficienta

I se genereaza intai cheia fluida, care apoi se va combinacu textul clar

I este necesar un vector de initializare

Page 68: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CFB

Descrierea formala a modului de utilizare CFB

I se defineste blocul initial IV = β0, IV ∈ {0,1}n si un numarintreg pozitiv r ,1 ≤ r ≤ n

I textul clar se va descompune in blocuri de dimensiune rI se calculeaza cheia fluida δ1δ2δ3 . . . criptand blocul de text

criptat anterior dupa formula δi = ek (βi−1), i ≥ 1I Secventa de text clar x = α1α2α3 . . . se codifica cu

formula de criptare βi = αi ⊕ δi , i ≥ 1I Textul criptat este y = β1β2β3 . . .

Page 69: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CFB

Schematic - CFB

Criptare Decriptare

Page 70: Criptografie - Curs Spiru Luciana Morogan

Laborator

Modul de utilizare CFB

Exercitiu

I Consideram acelasi cifru bloc, text clar si cheie ca laexercitiile anterioare

I Lungimea blocurilor in care se imparte textul clar este tot 4I Blocul initial este IV = 1010

Page 71: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Sisteme de criptare cu cheie publica

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 72: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Outline

1 Sisteme de criptare cu cheie publicaGeneralitatiSecuritatea

2 Sistemul RSARSA

3 Sistemul El-GamalEl-Gamal

4 Exercitii propuseExercitii propuse

Page 73: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Idei de baza

Regula de criptare ek poate fi pulicata intr-un registru public.

Alice (sau orice alta persoana) poate trimite lui Bob un mesajcriptat cu ek , fara a intra in prealabil in contact, iar Bob estesingurul capabil sa descifreze textul, utilizand cheia sa secretade decriptare dk .

Page 74: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Cele mai cunoscute sisteme cu cheie publica

Sistemul RSA - bazat pe dificultatea descompunerii infactori primi a numerelor mari (de sute de cifre); cel mailarg utilizat in acest momentSistemul El-Gamal - bazat pe dificultatea calcululuilogarimului discret intr-un corp finitSistemul Merkle-Hellman - primul sistem definit cu cheiepublica, bazat pe problema {0,1} a rucsacului (problemaNP-completa1)Sistemul McEliece - bazat pe teoria algebrica a codurilor(decodificarea unui cod linear este o problemaNP-completa)Curbe eliptice - sistem ce isi desfasoara calculele pemultimea punctelor unei curbe eliptice

1Daca problema se reduce la o problema nepolinomiala elementara(NP-tare). De exemplu: 2n, en, aan

s.a.

Page 75: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Functii neinversabile (1)

Exemple

Strazile cu sens unic dintr-un orasA→ BB → A imposibil

desi este usor sa parcurgi drumul A→ B, este imposibil sa te intorciB → A (decriptarea)

Cartea de telefon a unui oras mareEste usor de gasit numarul de telefon al unei persoane si foarte greu(imposibil) de aflat persoana care are un anumit numar de telefon.

Criptarea. Pentru fiecare litera a textului clar se alege un nume careincepe cu acelasi caracter, iar numarul de telefon al persoaneireprezinta criptarea (doua aparitii ale aceleiasi litere pot fi codificatediferit)

Decriptarea. Bob detine cartea de teleon scrisa in ordinecrescatoare/descrescatoare a numerelor de telefon

Page 76: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Functii neinversabile (2)

O functie neinversabila trebuie sa verifice conditiile:fiind dat x , f (x) este usor de calculatcalculul lui x din f (x) este imposibil

D. p. d. v. matematic nu se cunosc astfel de functii si deci oproblema este:

usoara - daca se poate rezolva cu un algoritm polinomialcel mult lineargrea - daca se poate rezolva cu un algoritm polinomialnelinearimposibila - daca este NP-completa

Page 77: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Trapa secreta

Bob trebuie sa dispuna de un procedeu care sa-i permita satransforme o problema NP-completa in una usoara.

procedeu numit trapa secreta

ExempluIn exemplul cu cartea de telefon, trapa secreta estereprezentata de cartea de telefon ordonata dupa numere si nudupa abonati.

Page 78: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Principii generale de constructie a unui sistem de criptare cu cheiepublica

Se incepe cu o problema P dificila a carei rezolvare, intermeni de complexitate, este imposibila (nu exista nici unalgoritm de complitate polinomiala care sa rezolve P)Se alege P1 o subproblema a lui P rezolvabila in timppolinomial (preferabil linear)Lui P1 i se aplica o transformare si se obtine P2 care sa nusemene cu P1, dar sa fie apropiata PSe face publica P2 si se descrie algoritmul de criptarebazat pe aceasta. Trapa secreta: modul in care se obtineP1 din P2

Se construiesc detaliile de criptare a.i. destinatarul sapoata folosi trapa secreta si sa rezolve P1, iar criptanalistulsa trebuiasca sa rezolve P2, imposibila datorita asemanariiacesteia cu P

Page 79: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (1)

Daca criptanalistul Oscar dispune de un text criptat y ,atunci el poate cauta un text clar x a.i. ek (x) = yRaspundeti la intrebarea ce modalitate de aparareconsiderati a fi posibila in acest caz?

Page 80: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (1) - raspuns

Raspuns: gradul de complexitate al sistemului

Page 81: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (2)

Meet - in - the middle

Presupunem ipoteza in care Alice si Bob vor sa stabileascaintre ei o legatura (un contact)

cei doi vor face publice cheile lor de criptare eA si eBdaca contactul este nepersonalizat, aunci Oscar poatecontrola mesajele schimbate intre cei doi:

Oscar opacizaza cele doua chei de criptare si trimite luiAlice ceia e1

B ca venind dpartea lui Bob. La fel procedeazade cealalta parte substituind eA cu e1

Adaca consideram m mesajul pe care Alice doreste sa-ltrimita lui Bob, atunci aceasta codifica pe m si trimitey1 = e1

B(m)Oscar intercepteaza mesajul si afla m = d1

B(y1)Oscar recripteaza y = eB(m) si trmite y lui Bob (Oscarpoate intarzia sau modifica mesajul)

CE CONCLUZII TRAGETI DE AICI?

Page 82: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (2) - raspuns

Apare necesitatea:autentificarii mesajului sau expeditorului - autentificarea::procesul princare un calculator (program sau alt uilizator)incearca sa confirme destinatarului ca mesajul primit deacesta provine sau nu din partea saconfidentialtatea:: asigura accesul la informatie doarpartilor autorizateintegritatea:: siguranta ca datele la care se refera unutilizator pot fi accesate si modificate doar de catre ceiautorizati

Page 83: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Algoritm

RSA:: Rivest-Shamir-Adlemanp,q numere prime impare, p 6= q si n = pqϕ(n) = (p − 1)(q − 1) indicatorul lui Eulerfie P = C =Zn, definimK= {(n,p,q,a,b)|n = pq,ab ≡ 1(modϕ(n))}pentru k = (n,p,q,a,b),∀x , y ∈ Zn avem

ek (x) = xb(mod n)dk (y) = ya(mod n)

valorile n,b sunt publice; p,q,a sunt secrete

Page 84: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Securitatea si trapa secreta

Securitatea

Se bazeaza pe ipoteza ca ek (x) = xb (mod n) esteneinversabila d.p.d.v al complexitatii.

Pentru ca sistemul sa fie sigur, trebuie ca n sa fie suficientde mare pentru ca factorizarea acestuia sa fie imposibila(⇒ ϕ(n) imposibil⇒ a imposibil)

Trapa secretaDescompunerea lui n = pq

se calculeaza ϕ(n) = (p − 1)(q − 1)

se determina exponentul de decriptare a folosindalgoritmul lui Euclid extins (pentru aflarea cmmdc-ului si ainversului intr-un inel Zn)

Page 85: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Implementarea

DecriptareBob trebuie sa urmareasca pasii:

genereaza numerele prime mari p si qcalculeaza n = pq si ϕ(n) = (p − 1)(q − 1)

alege aleator un b,1 < b < ϕ(n) a.i. (b, ϕ(n)) = 1calculeaza a = b−1(modϕ(n)) folosind algoritmul lui Euclidface publice n si b

Page 86: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

Problema logaritmului discret

p - prim, α, β ∈ Zp, β 6= 0a =?,a ∈ Zp−1 a.i. αa ≡ β (mod p)a, dc exista, este unic si a = logαβ

Obs! Pentru problema logaritmilor discreti nu este obligatoriu ca p sa fienumar prim, important este ca α sa fie radacina primitiva de ordinul p − 1 aunitatii (∀i, 0 < i < p − 1, αi 6≡ 1 (mod p))

Teorma lui Fermat. αp−1 ≡ 1 (mod p)

Obs! Cum logritmul discret este dificil de calculat iar operatia inversa(exponentierea) este simpla, trebuie utilizata problema logaritmului discretdificila in Zp:

p - minim 512 biti (1024 pt securitate pe termen lung)

p − 1 - are cel putin un divizor prim mare

Pentru alegerea convenabila a lui p, problema este NP-completa.

Page 87: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

El-Gamal

Algoritmp - prim a.i. problema logaritmilor discreti sa fie dificila inZp si α ∈ Z∗

p primitivP= Z∗

p, C= Z∗p ∗ Z∗

p

K= {(p, α, a, β)|β ≡ αa(modp)}valorile p, α, β - publice, iar a - secretapt K = (p, α, a, β) si k ∈ Zp−1 aleator(secret) definim:eK (x , k) = (y1, y2) unde

y1 = αk (mod p)y2 = x · βk (mod p)

pt y1, y2 ∈ Z∗p definim dK (y1, y2) = y2 · (ya

1 )−1 (mod p)Sistemul este nedeterminist: criptarea depinde de x si ovariabila aleatoare k aleasa de Alice⇒ exista mai multe textecriptate corespunzatoare unui anumit text clar.

Page 88: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

Observatii

Dezavantaj: dublarea lungimii textului criptat comparativ culungimea textului clarDaca (y1, y2), (z1, z2) sunt textele criptare ale mesajelorm1, respectiv m2, atunci se deduce textul criptat pentrum1m2 ca fiind (y1z1, y2z2)

criptarea pentru 2m1 (respectiv 2m2) conduce la concluziaca sistemul El-Gamal este sensibil la atacul cu text clar ales

ESENTIAL: doua texte diferite ce vor fi criptate trebuie safoloseasca valori diferite pentru k

Page 89: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Exercitii propuse

Sistemul RSA

Ex. 1Fie d exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 3, q = 5. Dacaexponentul de criptare este e = 7,determinati d .

Ex. 2Fie d = 11 exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 7, q = 11.Determinati exponentul de criptare e.

Ex. 3Consideram sistemul de criptare RSAconstruit cu numerele primep = 3, q = 5. Daca exponentul decriptare este e = 4 si se dorestecodificarea textului clar m = 11,determinati textul criptat c.

Ex. 4Un utilizator al sistemului de criptareRSA are ca cheie publica(n, e) = (35, 5) si cheia secreta d = 5.Daca primeste textul criptat c = 3,atunci textul clar decodificat deutilizator este ...

Page 90: Criptografie - Curs Spiru Luciana Morogan

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Exercitii propuse

Sistemul El-Gamal

Ex. 1Fie cifrul El-Gamal asociat numarului prim p = 7 si radaciniiprimitive α = 5. Cheia secreta a lui Alice este 3, iar cea a luiBob este 4. Daca Bob codifica textul clar x = 11 si il transmitelui Alice, atunci aceasta primeste codificarea...

Ex. 2Fie cifrul El-Gamal asociat numarului prim p = 11 si radaciniiprimitive α = 5. Cheia secreta a lui Alice este 4, iar cea a luiBob este 7. Alice primeste de la Bob textul criptat (3,7) pe careil decodifica si gaseste mesajul clar ...

Page 91: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice si functii dedispersie

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 92: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Outline

1 Preview: Semnaturi electronice

2 Protocoale de semnaturaProtocoale de semnaturaProcedee de criptare vs. procedee de semnaturaSemnatura El-Gamal

3 Functii de dispersieSemnaturi si functii de dispersieFunctii de dispersie cu coliziuniExemplu de exercitiu

Page 93: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice

O semnatura electronica trebuie sa fie:1 unica - o anumita semnatura trebuie sa poata fi generata

de catre o singura persoana2 neimitabila - nici o alta persoana nu va putea genera

semnatura utilizatorului indicat3 usor de autentificat - orice destinatar legal si, eventual,

orice arbitru sa poata stabilii autenticitatea semnaturii4 imposibil de negat - nici un utilizator legal sa nu-si poata

nega propria semnatura5 usor de generat

Page 94: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Protocoale de semnatura

Protocoale

Protocolul este format din:algoritmul de semnatura - secret: sig(x), unde x estemesajul transmisalgoritmul de verificare - public: daca y este o semnaturaautentica a lui x, atunci ∀(x , y) algoritmul ver(x , y) ofera unraspuns dicotomic (adevarat sau fals)

Page 95: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Protocoale de semnatura

Definitie formala

Un protocol de semnatura este un cvintuplu (P,A,K,S,V)unde:

P,A,K - multimi finite, nevide ale caror elemente senumesc mesaje, semnaturi si, respectiv, cheiexista o aplicatie biunivoca K ↔ S × V astfel incat∀k ∈ K, ∃!(sigk , verk ) unde

sigk : P → A, verk : P ×A →{T ,F} au proprietatea ca∀x ∈ P, ∀y ∈ A,verk (x , y) = T ⇔ y = sigk (x)

Obs! Pentru fiecare k ∈ K, functiile sigk si verk trebuie sa fiecalculabile in timp polinomial.

Page 96: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Procedee de criptare vs. procedee de semnatura

Procedee de criptare vs. procedee de semnatura (1)

Consideram cazul in care Alice ii trimite lui Bob un mesajsemnat si criptat. Fie x textul in clar.Alice:

determina semnatura y = sigAlice(x)

codifica x si y cu cheia publica a lui Bob obtinand textulcriptat z cu z = eBob((x , y))

trimite pe z lui BobBob:

foloseste cheia sa secreta dBob si obtine perechea (x , y)

verifica semnatura lui Alice cu cheia publica verAlice(x , y)

Page 97: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Procedee de criptare vs. procedee de semnatura

Procedee de criptare vs. procedee de semnatura (2)

Ce se poate intampla daca Alice cripteaza inainte de a semna?Alice:

calculeaza z = eBob(x)

calculeaza y = sigAlice(eBob(x))

trimite lui Bob mesajul (z, y)

Bob:decripteaza z si obtine xverifica y ca semnatura lui z cu cheia publica verAlice(x , z)

Pericolul: Oscar poate intercepta (z, y), inlocuieste y cu propriasa semnatura y1 = sigOscar (z) si trimite lui Bob mesajul (z, y1)⇒ se recomanda folosirea semnaturii inante de criptare

Page 98: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Semnatura El-Gamal

p - prim a.i. problema logaritmilor discreti sa fie dificila inZp si α ∈ Z∗

p element primitivP= Z∗

p, A= Z∗p × Zp−1

K= {(p, α, a, β)|β ≡ αa(modp)}valorile p, α, β - publice, iar a - secretapt K = (p, α, a, β) si k ∈ Zp−1 aleator(secret) definim:sigK (x , k) = (γ, δ) unde

γ = αk (mod p)δ = (x − aγ)k−1(mod (p − 1))

pt x , γ ∈ Z∗p, δ ∈ Zp−1 definim

verK (x , γ, δ) =T⇔ βγγδ ≡ αx (mod p)

Page 99: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Observatii

1 Daca semnatura este corecta, verificarea autentificasemnatura:

βγγδ ≡ αaγαkδ ≡ αaγ+kδ ≡ αaαk +k(x−aγ)k−1 ≡ αaαk +x−aγ ≡αaαk +x−aαk ≡ αx (mod p)

2 Protocolul este nedeterminist: pentru un mesaj dat, potexista mai multe semnaturi posibile.

Page 100: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi si functii de dispersie

Trasatura generala a protocoalelor de semnatura digitala

Mesajele ce pot fi semnate sunt de dimensiune mica, insa, inpractica, documentele ce trebuiesc a fi semnate ajung ladimensiuni mult mai mari.

Solutia: functia de dispersie ce trebuie calculata rapid. Aceastatransforma un mesaj de lungime arbitrara intr-o amprentanumerica de dimensiune fixata care ulterior va fi semnata:

daca se doreste semnarea unui mesaj x1 se calculeaza amprenta numerica z = h(x)2 aceasta se semneaza cu y = sigk (z)3 perechea (x , y) este transmisa prin canalul de comunicatie

oricine poate efectua verificarea calculand z = h(x) siutilizand verk (z, y)

Page 101: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (1)

Cum semnatura foloseste doar amprenta numerica, h trebuiesa satisfaca cateva conditii (pt a evita falsificarea)

atacul cel mai simplu al unui mesaj (x , y) semnat cuy = sigk (h(x)) este urmatorul:

1 se calculeaza z = h(x)2 se cauta x1 6= x a.i h(x1) = h(x)

Daca exista x1 ⇒ (x1, y) este un mesaj valid

=⇒ h trebuie sa fie cu coliziuni slabe1

1Definitie. Functia de dispersie h este cu coliziuni slabe daca fiind dat unmesaj x , este calculabil dificil sa se gaseasca un mesaj x1 6= x a.i.h(x1) = h(x)

Page 102: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (2)

atac: Oscar cauta doua mesaje x1, x2 a.i. x1 6= x2 sih(x1) = h(x2). Il convinge pe Bob sa semneze x1 cuamprenta sa numerica h(x1) si obtine y ⇒ (x1, y)semnatura autentica

=⇒ h trebuie sa fie cu coliziuni tari2

Obs! O functie cu coliziuni tari este si cu coliziuni slabe.

2Definitie. Functia de dispersie h este cu coliziuni tari daca este calculabildificil sa se obtina doua mesaje x1, x2, x1 6= x2 a.i. h(x1) = h(x2)

Page 103: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Functii de dispersie cu coliziuni

Functii de dispersie cu coliziuni (2)

atac bazat pe observatia ca este posibil sa se obtinaaleator falsificari ale amprentelor numerice. Daca Oscarobtine o semnatura valida a amprentei z, el cauta x a.i.h(x) = z=⇒ h neinversabila3

Lema. Daca o functie de dispersie este cu coliziuni tari,atunci ea este neinversabila.

3Definitie. h este neinversabila daca fiind data o amprenta numerica z,este calculabil dificil sa se gaseasca mesajul x a.i. h(x) = z.

Page 104: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Exemplu de exercitiu

Exercitiu

Fie numarul prim p = 15 si radacina primitiva modulo 15 g = 3.Alice doreste sa ii trimita lui Bob un document printr-un canalde comunicatie. Pentru ca aceasta sa poata semnadocumentul x ∈ {0,1}∗, ea alege cheia secreta a = 5 si k = 3.Se considera publica o functie de dispersie (hash function) a.i.h(x) = 11.Cunoscand protocolul de semnatura El-Gamal folosit, cu

r = gkmodps = (h(x)− ar)k−1mod (p − 1)

determinati (r , s).

Page 105: Criptografie - Curs Spiru Luciana Morogan

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Exemplu de exercitiu

Solutie

(r , s) =?

r = 33 mod 15 ≡ 12 mod 15s = (11− 5 ∗ 12)3−1 mod 14 ≡ 7 mod 14

=⇒ (r , s) = (12,7)

Page 106: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Sisteme de criptare fluide

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 107: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Outline

1 Preview

2 Sisteme sincrone

3 Sisteme asincrone

Page 108: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Sisteme de criptare

Sistemele de criptare:bloc(block cyphers)

elemente succesive ale textului clar sunt criptate folosindaceeasi cheie de criptaredaca x = x1x2x3 . . . atunciy = y1y2y3 . . . = ek (x1)ek (x2)ek (x3) . . .

fluide(stream cyphers)sincroneasincrone

Page 109: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Definitii formale (1)

FieM = (P, C,K, E ,D) un sistem de criptare. Secventa desimboluri k1k2k3 · · · ∈ K + se numeste cheie fluida.M = (P, C,K, E ,D) este un sistem de criptare fluid dacacipteaza textul clar x = x1x2x3 . . . iny = y1y2y3 . . . = ek1(x1)ek2(x2)ek3(x3) . . ., unde k1k2k3 . . .este o cheie fluida din K +

Page 110: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Definitii formale (2)

Problema generala: generarea cheii fluide cu ajutorul unuigenerator numit generator de chei fluideObs! Daca

cheia fluida este aleasa aleator si nu mai este foloitaulteriorlungimea cheii = lungimea textului clar

Atunci sistemul de criptare se numeste one-time-pad

Page 111: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Definitie formala

Un sistem de criptare fluid sincron este o structura(P, C,K,L, E ,D) unde

Fie P, C,K sunt multimi finite, nevide, ale caror elementese numesc texte clare, texte criptate si, respectiv, cheiL este o multime finita, nevida numita alfabetul sirului decheise defineste g : K → L+ generatorul de chei fluide astfelincat ∀k ∈ K avem g(k) = k1k2k3 · · · ∈ K + cheia fluida(teoretic infinita)∀z ∈ L,

exista regula de criptare ez ∈ Eexista regula de decriptare dz ∈ D

astfel incat ∀x ∈ P, dz(ez(x)) = x

Page 112: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Exemplu: Sistemul de criptare Vigenere

Descrierea sistemuluim lungimea cuvantului cheieP, C,K=Z26, K= (Z26)

m

ez(x) = x + z(mod26),dz(y) = y − z(mod26)

cheia z1z2 . . . definita prin

zi =

{ki dc 1 ≤ i ≤ m

zi−m dc i ≥ m + 1

va genera din cheia fixa K = (k1, k2, . . . , km), cheia fluidak1, k2, . . . , kmk1, k2, . . . , kmk1, k2, . . .

Page 113: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Criptarea si decriptarea

Se realizeaza ca un automat descris deqi+1 = δ(qi , k), zi = g(qi , k), yi = h(zi , xi) unde:

q0 - starea initiala determinata din cheia kδ - functia de tranzitie a starilorg - functia ce produce cheia fluida zi

h - functia iesire care produce textul criptat yi pe bazatextului clar xi si a cheii fluide zi

Page 114: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Criptarea si decriptarea: schematic

Criptarea

Page 115: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Decriptarea: schematic

Decriptarea

Page 116: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Observatii

Sistemul de criptare bloc este un caz particular de sistemde criptare fluid: ∀i ≥ 1, zi = k(Sincronizare.) Cel care trimite mesajele si cel ce urmeazaa le primi trebuie sa isi sincronizeze cheia fluida pentru aobtine o criptare/decriptare corecta. Daca in timpultransmisiei sunt inserati sau eliminati biti in textul criptat,atunci decriptarea esueaza si poate fi reluata pe baza unortehnici de resincronizare (de exp. reinitializarea)Modificarea unui bit din textul criptat (fara a se elimina sauadauga nimic) nu afecteaza decriptarea altor caractere(nepropagarea erorii)Adversarul activ care elimina, insereaza sau retrimitecomponente ale mesajului provoaca desincronizari si vafidetectat la receptie

Page 117: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Sistemul aditiv fluid binar de criptare

Un sistem aditiv fluid binar de criptare este un sistem fluidsincron in care P = C = L= Z2 iar h reprezinta functia XOR

Criptare Decriptare

Page 118: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Sistemul aditiv fluid binar de criptare - exemplu

Sa considerm exemplul in care dorim criptarea/decriptarea secventei de textclar x = 101101 si presupunem ca iesirea generatorului de chei fluide oferacheia z = 1101. Vom avea: x1 = 1, x2 = 0, x3 = 1, x4 = 1, x5 = 0, x6 = 1 siz1 = 1, z2 = 1, z3 = 0, z4 = 1, z5 = z1 = 1, z6 = z2 = 1

Criptarea

y1 = ez1(x1) = x1 ⊕ z1 = 1⊕ 1 = 0y2 = ez2(x2) = x2 ⊕ z2 = 0⊕ 1 = 1y3 = ez3(x3) = x3 ⊕ z3 = 1⊕ 0 = 1y4 = ez4(x4) = x4 ⊕ z4 = 1⊕ 1 = 0y5 = ez1(x5) = x5 ⊕ z1 = 0⊕ 1 = 1y6 = ez2(x6) = x6 ⊕ z2 = 1⊕ 1 = 0Se obtine astfel secventa de text cripty = 011010

Decriptarea

x1 = dz1(y1) = y1 ⊕ z1 = 1⊕ 0 = 1x2 = dz2(y2) = y2 ⊕ z2 = 1⊕ 1 = 0x3 = dz3(y3) = y3 ⊕ z3 = 0⊕ 1 = 1x4 = dz4(y4) = y4 ⊕ z4 = 1⊕ 0 = 1x5 = dz1(y5) = y5 ⊕ z1 = 1⊕ 1 = 0x6 = dz2(y6) = y6 ⊕ z2 = 1⊕ 0 = 1Se obtine astfel secventa de text clarx = 101101

Page 119: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Definitie formala

Un sistem de criptare fluid se numeste asincron(auto-sincronizabil) daca functia de generare a cheii fluidedepinde de un numar de caractere criptate anterior:qi = (yi−t , yi−t+1, . . . , yi−1), zi = g(qi , k), yi = h(zi , xi) unde:

q0 = (y−t , y−t+1, . . . , y−1) - starea initialak - cheiag - functia ce produce cheia fluidah - functia iesire care produce care cripteaza textului clar xi

Page 120: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Sisteme asincrone - Exemple

LFSR- registrii lineari cu feedback

Criptarea cu auto-cheieP = C = L= Z26

cheia fluida este data de z1 = k , zi = yi−1, i ≥ 2pentru z ∈ Z26, definim

ez(x) = x + z(mod26)dz(y) = y − z(mod26)

ExercitiuPentru k = 11codificati/decodificati textul clarSPIRU HARET

SolutiaSe va obtine textul criptatatDSARLSSJNG.

Page 121: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Solutia detaliata a exercitiului anterior

Codificarea textului clar SPIRU HARET este x =18 15 8 17 20 7 0 17 4 19,iar k = z1 = 11

Modul criptare

y1 = ez1(x1) = x1 + z1(mod26) = 18 + 11(mod26) = 3 si z2 = y1 = 3y2 = ez2(x2) = x2 + z2(mod26) = 15 + 3(mod26) = 18 si z3 = y2 = 18y3 = ez3(x3) = x3 + z3(mod26) = 8 + 18(mod26) = 0 si z4 = y3 = 0y4 = ez4(x4) = x4 + z4(mod26) = 17 + 0(mod26) = 17 si z5 = y4 = 17y5 = ez5(x5) = x5 + z5(mod26) = 20 + 17(mod26) = 11 si z6 = y5 = 11y6 = ez6(x6) = x6 + z6(mod26) = 7 + 11(mod26) = 18 si z7 = y6 = 18y7 = ez7(x7) = x7 + z7(mod26) = 0 + 18(mod26) = 18 si z8 = y7 = 18y8 = ez8(x8) = x8 + z8(mod26) = 17 + 18(mod26) = 9 si z9 = y8 = 9y9 = ez9(x9) = x9 + z9(mod26) = 4 + 9(mod26) = 13 si z10 = y9 = 13y10 = ez10(x10) = x10 + z10(mod26) = 19 + 13(mod26) = 6Se obtine astfel textul criptat y = 3 18 0 17 11 18 18 9 13 6 si decicodificarea DSARLSSJNG.

Decripatrea se va realiza in mod similar.

Page 122: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Observatii

Auto-sincronizare: cum h−1 depinde de un numar fixat decaractere criptate anterior, desincronizarea rezulta dininserarea sau stergerea de caractere criptate (se poateevita)Daca starea unui sistem fluid auto-sincronizabil depinde det caractere anterioare, atunci modificarea(stergerea,inserarea) unui caracter va duce la decriptareaincorecta a maxim t caractere, dupa care decriptarearedevine corecta.

Page 123: Criptografie - Curs Spiru Luciana Morogan

Preview Sisteme sincrone Sisteme asincrone

Alte exemple de sisteme fluide de criptare

SEAL - sistem de criptare aditiv binarRC4 (Rist Code 4) - creat pentru RSA Data Security Inc.(astazi RSA Security), este un sistem aditiv fluid decriptare destinat scopurilor comerciale