SlideShare a Scribd company logo
Sisteme de programe
pentru timp real
Universitatea “Politehnica” din Bucuresti
2007-2008

Adina Magda Florea
http://turing.cs.pub.ro/sptr_08
si curs.cs.pub.ro
Curs Nr. 2
Criptologie si criptosisteme
•
•
•
•
•
•

Numere aleatoare
Operatii aritmetice cu numere mari
Criptologie – generalitati
Criptosisteme conventionale
Criptosisteme publice
Standarde actuale
2
1. Numere aleatoare
• Numar intreg/real aleator intr-un domeniu dat si
cu o precizie fixata / Numar pseudoaleator
• Generator de numere aleatoare - o multime de
stari S, o functie f:S → S si o stare initiala s0 samanta.
• Starile generatorului evolueaza dupa relatia:
si=f(si-1), cu i =1,2,...
g:S → (0,1)
• Perioada unui generator de numere aleatoare este
cel mai mic intreg pozitiv p a.i.
si+p=si , i > p ≥ 0
3
Sunt numere aleatoare?
• Testul ℵ2
• N numere intregi in intervalul [ 0, r ), frecventa
fiecarui numar din interval fiind fi ( i = 0, r-1 )
-

r 1

ℵ2 =

∑( f

i

− N r)

2

( ∈ [

2

r , r])

i=0

Nr

• Distributii uniforme (aceeasi probabilitate)
4
1.1 Metoda congruent multiplicativa
• f (si+1) = ( b*si + c ) mod m
g ( si ) = si/m
s0 - samanta , b, c < m, pozitivi
f(si) ∈ [ 0, m-1 ]
int a [ Max ]
a [ 0 ] = sam ;
for ( i = 1; i <= N; i++ )
a [ i ] = ( a [ i-1 ] * b + 1 ) % m

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
6

q(x) = x + ... + 7

, cu b = p(10)

(a*b +1) mod m

, cu a = q(10)

grad(p) ≤ N-1 grad(q) ≤ N-1
grad(p*q) ≤ 2N-2
p = 104 * p1 + p0
q = 104 * q1 + q0
p * q = ( 104 *p1 + p0 ) ( 104 q1 + q0 ) =
108 * p1 * q1 + 104 * ( p1 * q0 + p0 * q1 ) + p0 * q0
7
Generare numere aleatoare
#define
#define
#define

m
m1
b

100000000
10000
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
Re g k = Re g k −b ⊕ Re g k − c

b
1

2

c

3

4

+

• Considerand un sir de numere aleatoare a0 …ak, se
obtin numere aleatoare in continuare
in [ 0, m-1 ], astfel
• a [ k ] = ( a [ k-b] + a [ k-c ] ) % m
(b<c)
• min 2c-1 numere distincte
• Valori b = 31, c = 55
• a – coada circulara

10
2 Operatii aritmetice cu numere mari
• Reprezentare
• Intregul 0120200103110001200004012314 cu N = 28
digiti se reprezinta prin p(10) unde p este polinomul
p(x) = x 26 + 2 ⋅ x 25 + ... + x + 4

• Calcul eficient al inmultirii a doua polinoame p(x) si q(x)
de grad N-1
• Produs de grad 2N-2 cu 2N-1 termeni
• Produs calculat direct – N2 inmultiri
• Divide and conquer
• N – par => 2 polinoame de grad N/2
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

ri (x) = p i (x) ⋅ q i (x)

•

rs (x) = p s (x) ⋅ q s (x)
Pentru a calcula p ( x ) * q ( x ) sunt necesare numai 3 inmultiri

rm (x) = (p i (x) + p s (x)) ⋅ (q i (x) + q s (x))
p(x) ⋅ q(x) = ri (x) + (rm (x) − ri (x) - rs (x)) ⋅ x N/2 + rs (x) ⋅ x N
≈ N1.58
12
3 Criptologie - generalitati
• Criptografia - Proiectarea sistemelor de comunicatie
secreta
• Criptoanaliza - Studiul metodelor de intelegere a
comunicatiilor secrete
• Doua scopuri de baza
Analist
Mesaj incriptat
Mesaj

EMITATOR

Mesaj

RECEPTOR
Cheie

• Doua tipuri de criptosisteme:
- conventionale (criptosisteme simetrice)
- publice (criptosisteme asimetrice)
13
4 Criptosisteme conventionale

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.
j←0
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.
Se poate demonstra ca, pt. aceste alegeri,

M ps mod N = M
Este sigur?

21
Cum se genereaza un nr. prim f. mare?
Se genereaza un nr. aleator f. mare + se testeaza daca
este prim
Fie w numarul pentru care se testeaza daca este prim.
1. i ← 1, n ← 50
2. Determina a si m a.i. w=1+2am , unde m este impar si a
este cea mai mare putere a lui 2 care divide w-1.
3. Genereaza un numar aleator b ∈( 1, w )
4. j ← 0, z ← bm mod w
5. daca (( j=0 ) si ( z=1 )) sau ( z=w-1 )
atunci executa pasul 9
6. daca ( j>0 ) si ( z=1 ) atunci executa pasul 8

22
Cum se genereaza un nr. prim f. mare?
Iterat de n ori va raspunde incorect ca numarul este
prim cu o probabilitate de cel mult 1/4n
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
7.

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
 1998 - Electronic Frontier Foundation (EFF)
Au construit un calculator dedicat DESCHALL care
poate decripta un mesaj care incearca toate cheile
posibile in mai putin de 3 zile.
Cost calculator: < $250,000
Cauta 88 miliarde chei/sec
 COPACOBANA = Cost Optimized Parallel Code
Breaker – Germania
35
DES – Modele de operare
• ECB – Electronic Codebook – DES direct
• CBC – Cipher Block Chaining – DES extins
care inlantuie blocuri de text incifrat
• CFB – Cipher Feedback – utilizeaza text
incriptat anterior ca intrare pt. DES si
genereaza iesiri care sunt combinate cu textul
neincriptat pentru a produce text incriptat
• TDES – Triple Data Encryption Standard

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 “onetime-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 —selfsignature – 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

More Related Content

DOC
Aritmetica In Baza Doi
PPT
Ch02 poca r
PPT
Binom Newton
PPTX
Numere reale.pptx
PPS
Formule calcul prescurtat VII-VIII
PDF
Quiz proiect AP
PPS
Inginerie
Aritmetica In Baza Doi
Ch02 poca r
Binom Newton
Numere reale.pptx
Formule calcul prescurtat VII-VIII
Quiz proiect AP
Inginerie

What's hot (11)

PPT
Ecuaţii algebrice
DOC
Culegere de probleme pentru admiterea la scoala militara de maisti
PPS
Curs5-PC-Cl9
PPS
Razbunarea inginerilor !
PPS
PPS
Despre ingineri
PDF
D mt1 i_047
PPT
Ecuații de gradul Ii
PPT
Ecuatia de gradul al ii lea
PPT
Derivare numerica
PPT
0 clasa a_xiia (1)
Ecuaţii algebrice
Culegere de probleme pentru admiterea la scoala militara de maisti
Curs5-PC-Cl9
Razbunarea inginerilor !
Despre ingineri
D mt1 i_047
Ecuații de gradul Ii
Ecuatia de gradul al ii lea
Derivare numerica
0 clasa a_xiia (1)
Ad

Viewers also liked (20)

PPT
Obc 2011
PPTX
S wi t-ciscotp 3mar15 eleelav-communicating to inspire confidence
PPTX
A Glimpse of Kenya and Its Literature
PDF
Iabcli fr collab lead-eleelavergne 13feb15 copy
PDF
WebSocket
PPTX
T&l lo1
PDF
Ladakh Travel Guide
PPT
Training on outcome based education
PPT
Unit 5 oba lo1
PDF
Cystite femme
PDF
Memòria del CAT112 emergències. Departament d'Interior 2014
PDF
Project 2 Drawings.pdf
PDF
Realeksamen
PPTX
PITCH FAST
PDF
Tran Kate Nguyen Visual Profile
PDF
Apresentação da RDO - Revista Digital Online
PPT
Dinâmica demográfica-2 c
DOC
Formulario proyectos de aula trata de personas
PDF
Obc 2011
S wi t-ciscotp 3mar15 eleelav-communicating to inspire confidence
A Glimpse of Kenya and Its Literature
Iabcli fr collab lead-eleelavergne 13feb15 copy
WebSocket
T&l lo1
Ladakh Travel Guide
Training on outcome based education
Unit 5 oba lo1
Cystite femme
Memòria del CAT112 emergències. Departament d'Interior 2014
Project 2 Drawings.pdf
Realeksamen
PITCH FAST
Tran Kate Nguyen Visual Profile
Apresentação da RDO - Revista Digital Online
Dinâmica demográfica-2 c
Formulario proyectos de aula trata de personas
Ad

Similar to Sptr lect 2 (6)

PDF
Auxiliar clasa v
PPTX
Securitatea in secolul 21
PPT
Curs11 econometrie ipoteze_dv
PPT
C4 regr lin multipla
PPT
C4 regr lin multipla
PDF
E d informatica_2020_sp_mi_c_var_test_04
Auxiliar clasa v
Securitatea in secolul 21
Curs11 econometrie ipoteze_dv
C4 regr lin multipla
C4 regr lin multipla
E d informatica_2020_sp_mi_c_var_test_04

Sptr lect 2

  • 1. Sisteme de programe pentru timp real Universitatea “Politehnica” din Bucuresti 2007-2008 Adina Magda Florea http://turing.cs.pub.ro/sptr_08 si curs.cs.pub.ro
  • 2. Curs Nr. 2 Criptologie si criptosisteme • • • • • • Numere aleatoare Operatii aritmetice cu numere mari Criptologie – generalitati Criptosisteme conventionale Criptosisteme publice Standarde actuale 2
  • 3. 1. Numere aleatoare • Numar intreg/real aleator intr-un domeniu dat si cu o precizie fixata / Numar pseudoaleator • Generator de numere aleatoare - o multime de stari S, o functie f:S → S si o stare initiala s0 samanta. • Starile generatorului evolueaza dupa relatia: si=f(si-1), cu i =1,2,... g:S → (0,1) • Perioada unui generator de numere aleatoare este cel mai mic intreg pozitiv p a.i. si+p=si , i > p ≥ 0 3
  • 4. Sunt numere aleatoare? • Testul ℵ2 • N numere intregi in intervalul [ 0, r ), frecventa fiecarui numar din interval fiind fi ( i = 0, r-1 ) - r 1 ℵ2 = ∑( f i − N r) 2 ( ∈ [ 2 r , r]) i=0 Nr • Distributii uniforme (aceeasi probabilitate) 4
  • 5. 1.1 Metoda congruent multiplicativa • f (si+1) = ( b*si + c ) mod m g ( si ) = si/m s0 - samanta , b, c < m, pozitivi f(si) ∈ [ 0, m-1 ] int a [ Max ] a [ 0 ] = sam ; for ( i = 1; i <= N; i++ ) a [ i ] = ( a [ i-1 ] * b + 1 ) % m 5
  • 6. 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
  • 7. 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 6 q(x) = x + ... + 7 , cu b = p(10) (a*b +1) mod m , cu a = q(10) grad(p) ≤ N-1 grad(q) ≤ N-1 grad(p*q) ≤ 2N-2 p = 104 * p1 + p0 q = 104 * q1 + q0 p * q = ( 104 *p1 + p0 ) ( 104 q1 + q0 ) = 108 * p1 * q1 + 104 * ( p1 * q0 + p0 * q1 ) + p0 * q0 7
  • 8. Generare numere aleatoare #define #define #define m m1 b 100000000 10000 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
  • 9. 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
  • 10. Metoda congruent-aditiva • Adunare Re g k = Re g k −b ⊕ Re g k − c b 1 2 c 3 4 + • Considerand un sir de numere aleatoare a0 …ak, se obtin numere aleatoare in continuare in [ 0, m-1 ], astfel • a [ k ] = ( a [ k-b] + a [ k-c ] ) % m (b<c) • min 2c-1 numere distincte • Valori b = 31, c = 55 • a – coada circulara 10
  • 11. 2 Operatii aritmetice cu numere mari • Reprezentare • Intregul 0120200103110001200004012314 cu N = 28 digiti se reprezinta prin p(10) unde p este polinomul p(x) = x 26 + 2 ⋅ x 25 + ... + x + 4 • Calcul eficient al inmultirii a doua polinoame p(x) si q(x) de grad N-1 • Produs de grad 2N-2 cu 2N-1 termeni • Produs calculat direct – N2 inmultiri • Divide and conquer • N – par => 2 polinoame de grad N/2 11
  • 12. 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 ri (x) = p i (x) ⋅ q i (x) • rs (x) = p s (x) ⋅ q s (x) Pentru a calcula p ( x ) * q ( x ) sunt necesare numai 3 inmultiri rm (x) = (p i (x) + p s (x)) ⋅ (q i (x) + q s (x)) p(x) ⋅ q(x) = ri (x) + (rm (x) − ri (x) - rs (x)) ⋅ x N/2 + rs (x) ⋅ x N ≈ N1.58 12
  • 13. 3 Criptologie - generalitati • Criptografia - Proiectarea sistemelor de comunicatie secreta • Criptoanaliza - Studiul metodelor de intelegere a comunicatiilor secrete • Doua scopuri de baza Analist Mesaj incriptat Mesaj EMITATOR Mesaj RECEPTOR Cheie • Doua tipuri de criptosisteme: - conventionale (criptosisteme simetrice) - publice (criptosisteme asimetrice) 13
  • 15. 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. j←0 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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. Se poate demonstra ca, pt. aceste alegeri, M ps mod N = M Este sigur? 21
  • 22. Cum se genereaza un nr. prim f. mare? Se genereaza un nr. aleator f. mare + se testeaza daca este prim Fie w numarul pentru care se testeaza daca este prim. 1. i ← 1, n ← 50 2. Determina a si m a.i. w=1+2am , unde m este impar si a este cea mai mare putere a lui 2 care divide w-1. 3. Genereaza un numar aleator b ∈( 1, w ) 4. j ← 0, z ← bm mod w 5. daca (( j=0 ) si ( z=1 )) sau ( z=w-1 ) atunci executa pasul 9 6. daca ( j>0 ) si ( z=1 ) atunci executa pasul 8 22
  • 23. Cum se genereaza un nr. prim f. mare? Iterat de n ori va raspunde incorect ca numarul este prim cu o probabilitate de cel mult 1/4n 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 7. 23
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. DES – Mod de functionare 32
  • 33. 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
  • 34. 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
  • 35. DES – Atac Cheia: 56 biti – de incercat 72,057,594,037,927,936 chei posibile  1998 - Electronic Frontier Foundation (EFF) Au construit un calculator dedicat DESCHALL care poate decripta un mesaj care incearca toate cheile posibile in mai putin de 3 zile. Cost calculator: < $250,000 Cauta 88 miliarde chei/sec  COPACOBANA = Cost Optimized Parallel Code Breaker – Germania 35
  • 36. DES – Modele de operare • ECB – Electronic Codebook – DES direct • CBC – Cipher Block Chaining – DES extins care inlantuie blocuri de text incifrat • CFB – Cipher Feedback – utilizeaza text incriptat anterior ca intrare pt. DES si genereaza iesiri care sunt combinate cu textul neincriptat pentru a produce text incriptat • TDES – Triple Data Encryption Standard 36
  • 37. 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
  • 38. 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. 39
  • 40. • 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
  • 41. 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
  • 42. • PGP creaza o cheie de sesiune, o cheie secreta “onetime-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
  • 43. 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 —selfsignature – 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