Criptografie - Curs Spiru Luciana Morogan

Preview:

Citation preview

GENERATORI DE

NUMERE PSEUDO-

ALEATOAREAsist. Drd. Morogan Maria Luciana

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.

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

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∈

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

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)

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

Generatori simplii de

numere pseudo-aleatoare

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→ +

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+ −

=

= = +

Generatorul Blum – Blum – Shub

Unul dintre cele mai des utilizate generatoare de

numere pseudo-aleatoare,este acest generator.

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

∈ =

Definitie. Fie p si q doua numere prime. Daca

atunci numarul n = pq se numeste intreg

Blum.

3(mod 4)p q≡ ≡

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= ≤ ≤

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.

Generatori bazati pe LFSR

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 −

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 −

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→ −

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

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:

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

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= ∧ ⊕ ∧

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.

Alti generatori de numere

pseudo-aleatoare

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.

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

−<

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=

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.

MODELUL TEORETIC DE

VERIFICARE A SECURITATII

UNUI GENERATOR

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

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∈

=∑

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

∈ ∈= − = <

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

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

∈ ∈= − = <

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

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

∈ += < +

TESTE STATISTICE DE

VALIDARE

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

∞− −Γ = ∫

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.

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 −=

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.

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.

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

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.

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.

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.

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.

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/

Laborator

Sisteme de criptare bloc- Moduri de utilizare -

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Laborator

Outline

Sisteme de criptare bloc

Modul de utilizare ECB

Modul de utilizare CBC

Modul de utilizare OFB

Modul de utilizare CFB

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

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)

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

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

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

)

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

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

Laborator

Modul de utilizare CBC

Schematic - CBC

Criptare Decriptare

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

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

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

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.

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

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

Laborator

Modul de utilizare CFB

Schematic - CFB

Criptare Decriptare

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

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

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

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 .

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.

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

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

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.

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

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?

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

Securitatea

Atacuri (1) - raspuns

Raspuns: gradul de complexitate al sistemului

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?

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

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

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)

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

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.

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.

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

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

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

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice si functii dedispersie

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

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

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

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)

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.

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)

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

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)

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.

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)

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)

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)

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.

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

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)

Preview Sisteme sincrone Sisteme asincrone

Sisteme de criptare fluide

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Preview Sisteme sincrone Sisteme asincrone

Outline

1 Preview

2 Sisteme sincrone

3 Sisteme asincrone

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

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 +

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

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

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

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

Preview Sisteme sincrone Sisteme asincrone

Criptarea si decriptarea: schematic

Criptarea

Preview Sisteme sincrone Sisteme asincrone

Decriptarea: schematic

Decriptarea

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

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

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

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

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.

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.

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.

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

Recommended