criptografie - curs spiru luciana morogan
TRANSCRIPT
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
2χ
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
2
1 ( )( ) exp ,
22
xf x x
µσσ π
− −= −∞ < < ∞
2( , )N µ σ
2( , )N µ σ
( ) /Z X µ σ= −
2χ
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χ
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