Documente Academic
Documente Profesional
Documente Cultură
SDPTR
SDPTR
2
1. Numere aleatoare
4
1.1 Metoda congruent multiplicativa
5
1.1 Metoda congruent multiplicativa
• Cum se aleg m, s0 si b ?
• m trebuie sa fie mare = perioada maxima (aproape de
limita cuvantului calculatorului); m poate fi prim
• b trebuie sa fie prim relativ la m.
• O alegere este: b sa se termine cu ...x21 si x sa fie par.
• Cum calculez ?
• Fiecare valoare este mai mica decat cel mai mare intreg,
dar prima operatie a*b+1 duce la overflow
• Cum se elimina overflow-ul?
6
Cum se elimina overflow-ul?
• Reprezentare pe 32 de biti - intereseaza pentru rezultat numai
ultimii 8 digiti.
• Alegem a = 1234567 b = 31415821
• a si b se reprezinta ca doua polinoame in fct. de x.
p(x) = 3x 7 + ... + 2x + 1 , cu b = p(10)
6
(a*b +1) mod m
q(x) = x + ... + 7 , cu a = q(10)
7
Generare numere aleatoare
#define m 100000000
#define m1 10000
#define b 31415821
108 * p1 * q1 + 104 * ( p1 * q0 + p0 * q1 ) + p0 * q0
long int a =1234567;
long int mult( long int p , long int q )
{ long int p0, p1, q0, q1;
p1 = p / m; p0 = p % m1;
q1 = q / m1; q0 = q % m1;
return ((p0 * q1 + p1 * q0) % m1)*m1 + p0* q0)% m ;
}
long int random( )
{ a = ( mult( a, b ) + 1 ) % m ;
return a;
}
// nr. aleatoare [0,m-1]
// echiv rand() RAND_MAX=m-1
8
1.2 Metoda congruent-aditiva
• Registru de deplasare cu feed-back
• Adunare
1 2 3 4
• 1111
• 0111, 0011, 0001, 1000, ...
• Pt. n biti se pot obtine secvente de max. 2n-1
numere distincte
• n = 31 sunt bune pozitiile 0 si una din pozitiile 4,
7, 8, 14, 19, 25, 26 sau 29.
9
Metoda congruent-aditiva
• Adunare
b c
Re g k Re g k b Re g k c 1 2 3 4
p(x) = x 26 + 2 x 25 + ... + x + 4
11
Utilizare “Divide and conquer”
p( x ) = p0 + p1x + ... + pN-1xN-1
pi( x ) = p0 + p1 + ... +pN/2-1xN/2-1
ps( x ) = pN/2 + ... + pN-1xN/2-1
p(x) = p i (x) + x N/2 p s (x)
q(x) = q i (x) + x N/2 q s (x)
p(x) q(x) = p i (x) q i (x) + ( p i (x) q s (x) + q i (x) p s (x) ) x N/2 p s (x) q s (x) x N
Mesaj incriptat
Mesaj Mesaj
EMITATOR RECEPTOR
Cheie
14
Criptosisteme conventionale
Metode simple
• Cifrul lui Cezar – a N-a litera din alfabet se inlocuieste cu litera
(N+k) din alfabet, unde k este constant (Cezar lua k = 3)
• Substitutie simpla - Matrice cu 26 linii si 2 coloane care
defineste substitutia literelor
• Cifrul Vigenere: se utilizeaza o cheie pentru a determina
valorile lui k care trebuie adaugate fiecarei litere.
Fie cheia c1c2...cm.
j0
pentru fiecare litera li din mesaj executa
li din mesaj are indexul p in alfabet
j ( j+1 ) mod m
alege cj din cheie
fie k indexul lui cj in alfabet
inlocuieste li cu litera din alfabet de index ( k + p )
sfarsit
15
Criptosisteme conventionale
Cifrul Vigenere se poate combina cu substitutia simpla
• Daca cheie mesaj Cifrul Vernam (one time pad)
• Masini de criptare/decriptare - primeste un numar de
chei adevarate, numite criptovariabile, care sunt
utilizate pentru a genera chei lungi
• Generarea pseudocheii din criptovariabile este
asemanatoare cu metoda congruent aditiva (cu
registru) de la numere aleatoare
• Pericol
• Dificultati ale sistemelor conventionale
16
5 Criptosisteme publice
Idee: fiecare utilizator are o cheie publica P care
poate fi cunoscuta de oricine si o cheie secreta S
cunoscuta numai de el.
• Mesaj M
• E - cheia publica P a receptorului - C = P ( M )
• R - cheia secreta S - M = S ( C )
17
Criptosisteme publice
Conditii
• S ( P ( M ) ) = M pentru fiecare mesaj M
• Toate perechile ( S, P ) sa fie distincte
• Deducerea lui S din P sa fie la fel de dificila ca si
decriptarea lui C
• Atat S cat si P sunt usor de calculat
18
6. Standarde actuale
Conventionale
• DES – Data Encryption Standard
• AES – Advanced Encryption Standard
Publice
• RSA - Ron Rivest, Adi Shamir, and Leonard
Adelman
• DSA – Digital Signature Algorithm
• DSS – Digital Signature Standard
• NIST (National Institute of Standards and Technology,
USA) lucreaza la Federal Public Key Infrastructure – va
sustine semnaturile digitale
7 Criptosistemul public RSA
• Cheia de incriptare P este o pereche de intregi ( N, p ) cu p
public
• Cheia de decriptare S este o pereche de intregi ( N, s ) unde
s este secret.
Aceste numere trebuie sa fie foarte mari, in mod tipic N -
200 digiti iar p si s aproximativ 100 digiti
Metoda de criptare/decriptare
1. Se imparte mesajul in k grupri de biti M1…Mk
2. Se incripteaza mesajul astfel: C = P(M) = C1…Ck
unde Ci = (Mpi) mod N R
3. Receptorul decripteaza mesajul
M = S(C) = M1...Mk unde Mi = (Csi) mod N
20
Modul de alegere a p si s
1. Se genereaza trei numere aleatoare prime mari ( 100 digiti ) x,
y, z.
2. Cel mai mare dintre acestea este ales ca valoare a lui s.
3. Fie celelalte doua numere x si y.
4. N = x * y
5. p se alege astfel incat p * s mod ( x-1 ) * ( y-1 ) = 1.
Mps mod N = M
Este sigur?
21
Cum se genereaza un nr. prim f. mare?
22
Cum se genereaza un nr. prim f. mare?
7. j j + 1
daca j<a atunci z z2 mod w
executa pasul 6
8. w nu este prim
stop
9. daca i<n
atunci i = i + 1; executa pasul 3
altfel w este probabil prim
sfarsit
23
Discutie criptosisteme publice
• Toate abordarile se bazeaza pe calcule NP
• Problema: daca se inlocuieste p (cu s asociat)
cu p’ (si s’ asociat)
• Managementul de chei implica
– Genererarea cheilor
– Cautarea cheilor
– Distribuirea cheilor
– Incredere in cheile publice
• Cheile publice – certificate de cheie (digitale)
• Cheia secreta – cheie incriptata cu o parola
24
Certificate digitale
Certificate digitale: verifica daca o cheie publica apartine
unui individ
Un certificat contine:
• Un nume si cheia publica
• Data de expirare
• Numele autoritatii de certificare
• Numar de serie
• Semnatura digitala a autoritatii de certificare
Receptorul verifica un certificat folosind cheia publica a
autoritatii de certificare
Se autentifica astfel semnaturile digitale ale mesajelor
• Lungimea cheii 1024 bits.
• 512 bits nesigur
• 2048 , 4096 bits.
• In practica, 512-bit key.
25
8. Criptosisteme conventionale - DES
• Criptare sir
• Criptare blocuri
• Simetrice – mai rapide
• Simetrice – fnct de incriptare – reversibila
• Criptare pe blocuri
– p1,p2 -> p2’,p1 --- runda
– p2’= p2 + f(p1,cheie)
• f - functie hash unidirectionala
• Dim bloc: 64, 128 bits sau variabila
• Dim cheie: 40, 56, 64, 80, 128, 192, 256 bits
26
Functie hash unidirectionala
• F hash cu proprietati suplimentare – securitatea
informatiei
– fiind dat h – greu de aflat m al h = hash(m)
– fiind dat m1- greu de gasit m2<>m1 ai
hash(m1)=hash(m2)
– greu de gasit m1 si m2 ai hash(m1)=hash(m2)
• F hash – mesaj de lungime variabila intr-o
iesire de lungime fixa
• Imparte intrarea in 2 parti, fiecare se comprima
cu o functie de compresie
27
DES – Data Encryption Standard
• Data Encryption Standard (DES) adoptat ca
standard in USA in 1977 (IBM – Lucifer) de
FIPS (Federal Information Processing Standard
of USA)
• Foloseste o cheie de 56-bits – insuficient
• Varianta Triple-DES (TDES or 3DES) –
foloseste o cheie mai lunga
• Advanced Encryption Standard (AES) – se
crede ca va fi mai bun ca DES (si 3DES)
28
DES – Mod de functionare
Criptarea si decriptarea utilizeaza aceeasi cheie k –
decriptarea este reversul criptarii
Algoritm lucreaza pe blocurilor de date de 64 de biti
pe baza unei chei de 56 de biti.
16 runde de criptare
Permutare initiala IP si finala FP
Blocul spart in 2 blocuri de 32 biti prelucrate
alternativ – schema Feistel
Initial proiectat pt incriptare hardware
Sigur pt scopuri comerciale
Un calculator foarte puternic poate sparge DES prin
forta bruta
29
DES – Mod de functionare
Algoritm pt. criptarea si decriptarea blocurilor de date
de 64 de biti pe baza unei chei de 56 (64) de biti.
• Blocul de criptat:
1) Permutare initiala IP
2) Calcul complex care depinde de cheie = o functie f -
functia de criptare (Feistel), si o functie KS -
planificarea cheii (selecteaza 56 de biti)
3) Permutare inversa a cele initiale FP = IP-1
1 2 3
Bloc
Left Right 30
DES – Mod de functionare
2) Calcul
16 iteratii; functia f opereaza asupra a 2 blocuri: unul de
32 biti si unul de 48 de biti un bloc de 32 de biti
Blocul de intrare = 64 biti = L (32) R (32)
K – un bloc de 48 biti ales din cheia KEY de 56 biti
La fiecare iteratie, blocul K este diferit
Kn = KS(n,KEY)
n[1,16], Kn – functie care permuta o selectie
de biti din KEY
Pt un bloc Ln-1Rn-1, iesirea LnRn a unei iteratii este:
Ln = Rn-1 Rn = Ln-1 f(Rn-1,Kn)
31
DES – Mod de functionare
32
DES – Mod de functionare
Functia de criptare (f)
E (bloc de 32) Cheie (48) – produce 32 biti
4 etape:
Expansiune – permutare de expansiune E de la 32 la 48
Mixare cheie – XOR cu 48 biti din cheie – planif cheie (16
subchei)
Substitutie – 8 bucati de 6 biti – 8 bucati de 4 biti –
transformare neliniara – tabela de substitutie
Permutare – biti rearanjati printr-o permutare finala
Alternarea substitutiei cu permutarea si expansiunea
creeaza “confuzie si difuzie” – Shannon
33
DES – Mod de functionare
Planificarea cheii
Permuta cheia de 64 – PC1
Selecteaza 56 biti initial
Impart in 2 bucati de 28 biti
La fiecare runda ambele bucati sunt rotite la
stanga cu 1,2 biti si apoi selectez subcheia de 48
de biti printr-o functie de permutare PC2: 24 biti
din stanga si 24 biti din dreapta
34
DES – Atac
Cheia: 56 biti – de incercat 72,057,594,037,927,936
chei posibile
36
Triple DES
Triple-DES – dupa ce s-a aratat vulnerabilitatea DES
Foloseste 3 chei DES de 56 biti – lungime cheie totala
168 biti
1. Incriptare folosind DES cu prima cheie de 56 biti
2. Incriptare folosind DES cu a doua cheie de 56 biti
3. Incriptare folosind DES cu a treia cheie de 56 biti
Decriptarea la fel, in sens invers
37
9 Sisteme combinate
• RSA si DES pot fi folosite impreuna
• DES – viteza mare, RSA – management
convenabil
• Un mesaj incriptat cu DES
• Emitatorul utilizeaza cheia publica (RSA) a
receptorului pt incriptarea cheii DES
• Mesajul DES incriptat + cheia DES incriptata cu
RSA sunt trimise receptorului intr-un plic digital
RSA.
• Cand plicul este primit de receptor, receptorul
decripteaza cheia DES cu cheia lui RSA privata
apoi utilizeaza cheia DES pt decriptare mesaj.
38
39
• Criptarea conventionala – cam de 1, 000 de ori
mai rapida decat cea publica
• O cheie conventionala de 80 biti este
echivalenta ca putere cu o cheie publica de
1024 biti
• O cheie conventionala de 128 biti este
echivalenta ca putere cu o cheie publica de
3000 biti
40
PGP (Phil Zimmermann, 1991)
• PGP combina avantajele sistemelor publice si
conventionale
• Criptosistem hibrid
• Intai comprima textul
• De ce?
• Mai scurt, mai repede de transmis
• Creste securitatea prin eliminarea sabloanelor
• (fisierele care sunt prea scurte sau care nu se
comprima bine nu sunt comprimate)
41
• PGP creaza o cheie de sesiune, o cheie secreta “one-
time-only”.
• Cheia – numar aleator generat pe baza miscarilor
mouse si taste apasate
• Se foloseste cheia intr-un sistem conventional
• Cheia de sesiune se incripteaza cu cheia publica a
receptorului
• Se transmite cheia de sesiune criptata + textul incriptat
• Decriptarea - invers
42
Certificat digital PGP
Un certificat PGP:
• Numarul versiunii PGP — identifica versiunea de PGP
utilizata pentru crearea cheii asociata certificatului
• Cheia publica din certificat a persoanei — cheia publica +
algoritmul cheii: RSA, DH (Diffie-Hellman), or DSA (Digital
Signature Algorithm).
• Informatii referitor la persoana —nume, id, poza, etc.
• Semnatura digitala a proprietarului certificatului —self-
signature – semnatura ce utilizeaza cheia privata
corespunzatoare cheii publice din certificat
• Perioada de validitate a certificatului — data de incepere a
validitatii si data de expirare
• Algoritmul de criptare simetric preferat pentru cheie —
CAST, IDEA or Triple-DES.
43