Documente Academic
Documente Profesional
Documente Cultură
NUMERE PSEUDO-
ALEATOARE
Asist. 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 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 1 ( Termenul folosit in limba engleza pentru o secventa de acest tip este cel de
2
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 f :Z 2k → Z 2l calculabila in timp polinomial[2] (in functie de k). Intrarea s0 ∈ Z 2k se numeste secventa initiala
de intrare, in timp ce iesirea f ( s0 ) ∈ Z 2l 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.
In studiul securitatii unui sistem criptografic exista doua abordari fundamentale:
Alta clasificare:
Din punctul de vedere
al securitatii: generatori simplii
Generatorul liniar congruential
Generatori Ranrot
Generatorul Blum – Blum – Shub
Generatori siguri generatori bazati pe LFSR
Generatorul Geffe
ANSI X9.17 Generatori de tip “Stop-and-go”
Generatorul Stop-and-go alternativ
FISP 186 “clasa” separata
Generatorul Mother-of-all
Generatorul Blum – Micali
Generatorul1/p
Generatori nesiguri:
Generatorul RSA
Micali-Schnorr
Blum-Blum-Schub
Generatori simplii de
numere pseudo-aleatoare
Generatorul liniar congruential
Face parte din clasa generatorilor nesiguri.
Un exemplu ilustrativ :
[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:
Generatorul Blum – Blum – Shub
R4 R3 R2 R1 R0
R4 R3 R2 R1 R0
( x4 , x3 , x2 , x1 , x0 ) → ( −, x4 , x3 , x2 , x1 )
Secventa de iesire in acest moment consta in valoarea 1.
Simbolic: Aceasta secventa de elemente este numita satare
a vectorului.
In general, o relatie de recurenta (binara)
de lungime m (corespunzatoare a m registrii),
este o relatie de forma: m −1
xi + m = ∑ c j xi + j
j =0
LFSR2 0
EMUX
LFSR3 1
LFSR1
Aici, LFSR1 formeaza functia de selectie a multiplexorului[1] elementar,
intrarile fiind asigurate de celelalte doua LFSR-uri.
Daca a1 , a2 , a3 sunt iesirile corespunzatoare celor trei LFSR-uri,
iesirea generatorului Geffe este data de relatia
b = (a1 ∧ a2 ) ⊕ (a1 ∧ a3 )
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.
Generatori de tip “Stop-and-go”
Generatorul Stop-and-go alternativ
Generatorul Beth-Piper (dupa numele foloseste tot trei LFSR-uri de lungimi diferite
autorilor) care controleaza ceasurile celor trei legate intr-un circuit de forma:
circuite. Structura sa este urmatoarea:
Ceasul de intrare in LFSR2 este Daca iesirea din LFSR1 este 1, atunci
controlat de iesirea din LFSR1 si, astfel, LFSR2 se activeaza LFSR2; altfel se activeaza LFSR3.
isi schimba starea la momentul t daca iesirea Iesirea finala din generator este reprezentata de
din LFSR1 era 1 la momentul t-1. un XOR intre cele doua iesiri.
Alti generatori de numere
pseudo-aleatoare
Generatorul Mother-of-all
1
| Prt∈X n ( A(t ) = 1) − Prt∈U n ( A(t ) = 1) |<
Q ( 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.
a. se alege x ∈ Gk
b. se defineste t = G(x).
Distributia χ
2
Distributia normala
Definitie. O variabila aleatoare (continua) X
are o distributie normala de medie µ si
varianta σ , daca densitatea sa de Definitie. Fie v ≥ 1 un intreg. O variabila
2
aleatoare (continua) X are o distributie χ cu
2
probablitate este definita astfel:
v grade de libertate daca functia sa de
densitate probablistica este definita astfel:
1 −( x − µ ) 2 1
f ( x) = exp , −∞ < x < ∞ x ( v / 2)−1 e − x / 2 , 0 ≤ x < ∞
σ 2π 2σ 2 f ( x) = Γ(v / 2)2 v/2
0, x < 0
Notatam X cu N (µ ,σ 2 )
unde Γ reprezinta functia gamma[1].
Daca X este N(0,1), atunci spunem ca X
are o distributie normala standard.
Media si varianta acestei distributii sunt µ =v
si σ 2 = 2v .
Fapt. Daca variabila aleatoare X este Fapt. Daca variabila aleatoare X este N ( µ , σ )
2
este N(0,1). ∞
∫
t −1 − x
[1] Functia gamma este definita prin Γ (t ) = x e dx
unde t > 0. 0
Postulatele lui Golomb
n
si fie k = m . Se imparte secventa s in k
subsecvente, fiecare de lungime m si se
considera ni numarul aparitiilor celui de-al i-
lea tip de astfel de secventa, unde 1 ≤ i ≤
. 2 m
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Laborator
Outline
Moduri de utilizare
Exercitiu
In particular
Criptati textul clar x = 1011000101001010 folosind cheia
1 2 3 4
π=
2 3 4 1
Laborator
Modul de utilizare CBC
Schematic - CBC
Criptare Decriptare
Laborator
Modul de utilizare CBC
Exercitiu
In particular
Criptati textul clar x = 1011000101001010 folosind cheia
1 2 3 4
π=
2 3 4 1
Exercitiu
Schematic - CFB
Criptare Decriptare
Laborator
Modul de utilizare CFB
Exercitiu
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Outline
2 Sistemul RSA
RSA
3 Sistemul El-Gamal
El-Gamal
4 Exercitii propuse
Exercitii propuse
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Generalitati
Idei de baza
Alice (sau orice alta persoana) poate trimite lui Bob un mesaj
criptat cu ek , fara a intra in prealabil in contact, iar Bob este
singurul capabil sa descifreze textul, utilizand cheia sa secreta
de decriptare dk .
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Generalitati
Generalitati
Exemple
Strazile cu sens unic dintr-un oras
A→B
B → A imposibil
desi este usor sa parcurgi drumul A → B, este imposibil sa te intorci
B → A (decriptarea)
Generalitati
Generalitati
Trapa secreta
Exemplu
In exemplul cu cartea de telefon, trapa secreta este
reprezentata de cartea de telefon ordonata dupa numere si nu
dupa abonati.
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Generalitati
Securitatea
Atacuri (1)
Securitatea
Securitatea
Atacuri (2)
Securitatea
Apare necesitatea:
autentificarii mesajului sau expeditorului - autentificarea::
procesul princare un calculator (program sau alt uilizator)
incearca sa confirme destinatarului ca mesajul primit de
acesta provine sau nu din partea sa
confidentialtatea:: asigura accesul la informatie doar
partilor autorizate
integritatea:: siguranta ca datele la care se refera un
utilizator pot fi accesate si modificate doar de catre cei
autorizati
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
RSA
Algoritm
RSA:: Rivest-Shamir-Adleman
p, q numere prime impare, p 6= q si n = pq
ϕ(n) = (p − 1)(q − 1) indicatorul lui Euler
fie P = C =Zn , definim
K= {(n, p, q, a, b)|n = pq, ab ≡ 1(modϕ(n))}
pentru k = (n, p, q, a, b), ∀x, y ∈ Zn avem
ek (x) = x b (mod n)
dk (y ) = y a (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
Se bazeaza pe ipoteza ca ek (x) = x b (mod n) este
neinversabila d.p.d.v al complexitatii.
Pentru ca sistemul sa fie sigur, trebuie ca n sa fie suficient
de mare pentru ca factorizarea acestuia sa fie imposibila
(⇒ ϕ(n) imposibil ⇒ a imposibil)
Trapa secreta
Descompunerea lui n = pq
se calculeaza ϕ(n) = (p − 1)(q − 1)
se determina exponentul de decriptare a folosind
algoritmul lui Euclid extins (pentru aflarea cmmdc-ului si a
inversului intr-un inel Zn )
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
RSA
Implementarea
Decriptare
Bob trebuie sa urmareasca pasii:
genereaza numerele prime mari p si q
calculeaza n = pq si ϕ(n) = (p − 1)(q − 1)
alege aleator un b, 1 < b < ϕ(n) a.i. (b, ϕ(n)) = 1
calculeaza a = b−1 (modϕ(n)) folosind algoritmul lui Euclid
face publice n si b
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
El-Gamal
p - prim, α, β ∈ Zp , β 6= 0
a =?, 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 fie
numar prim, important este ca α sa fie radacina primitiva de ordinul p − 1 a
unitatii (∀i, 0 < i < p − 1, αi 6≡ 1 (mod p))
Obs! Cum logritmul discret este dificil de calculat iar operatia inversa
(exponentierea) este simpla, trebuie utilizata problema logaritmului discret
dificila 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
Algoritm
p - prim a.i. problema logaritmilor discreti sa fie dificila in
Zp si α ∈ Z∗p primitiv
P= Z∗p , C= Z∗p ∗ Z∗p
K= {(p, α, a, β)|β ≡ αa (modp)}
valorile p, α, β - publice, iar a - secreta
pt 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 · (y1a )−1 (mod p)
Sistemul este nedeterminist: criptarea depinde de x si o
variabila aleatoare k aleasa de Alice ⇒ exista mai multe texte
criptate corespunzatoare unui anumit text clar.
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
El-Gamal
Observatii
Exercitii propuse
Sistemul RSA
Ex. 1 Ex. 2
Fie d exponentul de decriptare al Fie d = 11 exponentul de decriptare al
sistemului de criptare RSA construit sistemului de criptare RSA construit
cu numerele prime p = 3, q = 5. Daca cu numerele prime p = 7, q = 11.
exponentul de criptare este e = 7, Determinati exponentul de criptare e.
determinati d.
Ex. 3 Ex. 4
Consideram sistemul de criptare RSA Un utilizator al sistemului de criptare
construit cu numerele prime RSA are ca cheie publica
p = 3, q = 5. Daca exponentul de (n, e) = (35, 5) si cheia secreta d = 5.
criptare este e = 4 si se doreste Daca primeste textul criptat c = 3,
codificarea textului clar m = 11, atunci textul clar decodificat de
determinati textul criptat c. utilizator este ...
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Exercitii propuse
Sistemul El-Gamal
Ex. 1
Fie cifrul El-Gamal asociat numarului prim p = 7 si radacinii
primitive α = 5. Cheia secreta a lui Alice este 3, iar cea a lui
Bob este 4. Daca Bob codifica textul clar x = 11 si il transmite
lui Alice, atunci aceasta primeste codificarea...
Ex. 2
Fie cifrul El-Gamal asociat numarului prim p = 11 si radacinii
primitive α = 5. Cheia secreta a lui Alice este 4, iar cea a lui
Bob este 7. Alice primeste de la Bob textul criptat (3,7) pe care
il decodifica si gaseste mesajul clar ...
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Outline
2 Protocoale de semnatura
Protocoale de semnatura
Procedee de criptare vs. procedee de semnatura
Semnatura El-Gamal
3 Functii de dispersie
Semnaturi si functii de dispersie
Functii de dispersie cu coliziuni
Exemplu de exercitiu
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnaturi electronice
Protocoale de semnatura
Protocoale
Protocoale de semnatura
Definitie formala
Semnatura El-Gamal
Semnatura El-Gamal
Semnatura El-Gamal
Observatii
1
Definitie. Functia de dispersie h este cu coliziuni slabe daca fiind dat un
mesaj 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
2
Definitie. Functia de dispersie h este cu coliziuni tari daca este calculabil
dificil 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
3
Definitie. 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
Exemplu de exercitiu
Solutie
(r , s) =?
r = 33 mod 15 ≡ 12 mod 15
s = (11 − 5 ∗ 12)3−1 mod 14 ≡ 7 mod 14
=⇒ (r , s) = (12, 7)
Preview Sisteme sincrone Sisteme asincrone
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea 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 folosind
aceeasi cheie de criptare
daca x = x1 x2 x3 . . . atunci
y = y1 y2 y3 . . . = ek (x1 )ek (x2 )ek (x3 ) . . .
fluide(stream cyphers)
sincrone
asincrone
Preview Sisteme sincrone Sisteme asincrone
Definitie formala
Descrierea sistemului
m lungimea cuvantului cheie
P, C, K=Z26 , K= (Z26 )m
ez (x) = x + z(mod26), dz (y ) = y − z(mod26)
cheia z1 z2 . . . definita prin
ki dc 1 ≤ i ≤ m
zi =
zi−m dc i ≥ m + 1
Criptarea si decriptarea
Criptarea
Preview Sisteme sincrone Sisteme asincrone
Decriptarea: schematic
Decriptarea
Preview Sisteme sincrone Sisteme asincrone
Observatii
Criptare Decriptare
Preview Sisteme sincrone Sisteme asincrone
Criptarea Decriptarea
y1 = ez1 (x1 ) = x1 ⊕ z1 = 1 ⊕ 1 = 0 x1 = dz1 (y1 ) = y1 ⊕ z1 = 1 ⊕ 0 = 1
y2 = ez2 (x2 ) = x2 ⊕ z2 = 0 ⊕ 1 = 1 x2 = dz2 (y2 ) = y2 ⊕ z2 = 1 ⊕ 1 = 0
y3 = ez3 (x3 ) = x3 ⊕ z3 = 1 ⊕ 0 = 1 x3 = dz3 (y3 ) = y3 ⊕ z3 = 0 ⊕ 1 = 1
y4 = ez4 (x4 ) = x4 ⊕ z4 = 1 ⊕ 1 = 0 x4 = dz4 (y4 ) = y4 ⊕ z4 = 1 ⊕ 0 = 1
y5 = ez1 (x5 ) = x5 ⊕ z1 = 0 ⊕ 1 = 1 x5 = dz1 (y5 ) = y5 ⊕ z1 = 1 ⊕ 1 = 0
y6 = ez2 (x6 ) = x6 ⊕ z2 = 1 ⊕ 1 = 0 x6 = dz2 (y6 ) = y6 ⊕ z2 = 1 ⊕ 0 = 1
Se obtine astfel secventa de text cript Se obtine astfel secventa de text clar
y = 011010 x = 101101
Preview Sisteme sincrone Sisteme asincrone
Definitie formala
LFSR
- registrii lineari cu feedback
Criptarea cu auto-cheie
P = C = L= Z26
cheia fluida este data de z1 = k , zi = yi−1 , i ≥ 2
pentru z ∈ Z26 , definim
ez (x) = x + z(mod26)
dz (y ) = y − z(mod26)
Exercitiu Solutia
Pentru k = 11 Se va obtine textul criptatat
codificati/decodificati textul clar DSARLSSJNG.
SPIRU HARET
Preview Sisteme sincrone Sisteme asincrone
Modul criptare
y1 = ez1 (x1 ) = x1 + z1 (mod26) = 18 + 11(mod26) = 3 si z2 = y1 = 3
y2 = ez2 (x2 ) = x2 + z2 (mod26) = 15 + 3(mod26) = 18 si z3 = y2 = 18
y3 = ez3 (x3 ) = x3 + z3 (mod26) = 8 + 18(mod26) = 0 si z4 = y3 = 0
y4 = ez4 (x4 ) = x4 + z4 (mod26) = 17 + 0(mod26) = 17 si z5 = y4 = 17
y5 = ez5 (x5 ) = x5 + z5 (mod26) = 20 + 17(mod26) = 11 si z6 = y5 = 11
y6 = ez6 (x6 ) = x6 + z6 (mod26) = 7 + 11(mod26) = 18 si z7 = y6 = 18
y7 = ez7 (x7 ) = x7 + z7 (mod26) = 0 + 18(mod26) = 18 si z8 = y7 = 18
y8 = ez8 (x8 ) = x8 + z8 (mod26) = 17 + 18(mod26) = 9 si z9 = y8 = 9
y9 = ez9 (x9 ) = x9 + z9 (mod26) = 4 + 9(mod26) = 13 si z10 = y9 = 13
y10 = ez10 (x10 ) = x10 + z10 (mod26) = 19 + 13(mod26) = 6
Se obtine astfel textul criptat y = 3 18 0 17 11 18 18 9 13 6 si deci
codificarea DSARLSSJNG.
Observatii