Sunteți pe pagina 1din 18

Modulul 3

Bazele matematice ale criptrii

BAZELE MATEMATICE ALE CRIPTRII


Subiecte
3.1. Aritmetica pe clase de resturi modulo specificat
3.2. Numere prime
3.3. Mica teorem a lui Fermat
3.4. Cmpuri Galois
3.5. Matrici MDS
3.6. Transformri Pseudo-Hadamard
3.7. Funcii hash
3.7.1 Descrierea algoritmului MD5

Evaluare: 1. Rspunsuri la ntrebrile i problemele finale


2. Discuie pe tema: Bazele matematice ale criptrii
3.1. Aritmetica pe clase de resturi modulo specificat
Se prezint pentru nceput tabelele pentru operaiile de adunare,
nmulire i ridicare la putere pe mulimea claselor de resturi modulo 7.
+|0123456

*|0123456

0|0123456
1|1234560
2|2345601
3|3456012
4|4560123
5|5601234
6|6012345

0|0000000
1|0123456
2|0246135
3|0362514
4|0415263
5|0531642
6|0654321

^|0123456
1|1111111
2|1241241
3|1326451
4|1421421
5|1546231
6|1616161

Analiznd tabelul din stnga se constat c 1 i 6, 2 i 5 i 3 i 4


sunt inverse n raport cu adunarea. S lum prima pereche i s
considerm c se dorete transmiterea mesajului 3. n loc de 3 se va
emite 4 (trei plus unu). La recepia se va aduna modulo 7 inversul lui 1,
adic 6 i se va obine 10 modulo 7, adic 3, adic mesajul care trebuia
transmis. Poate c metoda descris anterior este cea mai simpl schem
de criptare bazat pe aritmetica claselor de resturi.
Dac se ndeprteaz din tabelul de nmulire linia i coloana
care conin doar elemente nule atunci cele ase numere care rmn n
fiecare linie i n fiecare coloan sunt diferite ntre ele. Se constat c n
fiecare linie respectiv coloan pe o anumit poziie exist un 1. De
aceea se poate afirma c pentru fiecare numr cuprins ntre 1 i 6 exist
un alt numr cuprins ntre 1 i 6 astfel nct produsul acestor dou
numere, modulo 7, s fie egal cu 1. Cu alte cuvinte, dac se elimin
elementul 0, pe clasa de resturi modulo 7 (fr 0) operaia de nmulire
este inversabil. De exemplu inversul lui 2, n raport cu nmulirea

45

Modulul 3
Bazele matematice ale criptrii

modulo 7 este 4. Aceast proprietate nu este adevrat pentru orice


valoare a modulului. Ea este adevrat n cazul exemplului nostru
deoarece modulul utilizat, 7, este un numr prim.

Ce numere din tabel sunt inverse in raport cu adunarea ?


Care care este inversul lui 3, n raport cu nmulirea modulo 7 ?
Precizai dac operaia de nmulire este inversabil pentru orice
valoare a modulului.

3.2. Numere prime


Se numete funcie indicator, totient, a lui Euler i se noteaz cu
funcia care asociaz lui N numrul de numere ntregi i pozitive mai
mici dect N, relativ prime cu N. E clar c dac N este prim atunci
(N)=N-1. n cazul din exemplul anterior (7)=6. Deci dac modulul
N este numr prim, atunci numrul de elemente inversabile la nmulirea
modulo N este (N). Mai interesant este tabelul de ridicare la putere
prezentat n paragraful anterior. Analiznd acest tabel se constat c
orice numr cuprins ntre 1 i 6, ridicat la puterea 6 este egal cu 1. Mai
mult, pe baza tabelului de ridicare la putere se constat c aceast
operaie este periodic. Valorile obinute prin ridicarea la puterea 0 sunt
identice cu valorile obinute prin ridicarea la puterea a 6-a. n consecin
doar pentru 6 valori distincte ale exponenilor (1, 2, 3, 4, 5 i 6) se obin
valori diferite prin ridicarea la putere modulo 7. innd seama de
definiia anterioar a funciei totient a lui Euler, se poate afirma, pe baza
acestui exemplu, c numrul de exponeni pentru care se obin valori
distincte prin ridicarea la putere modulo N este egal cu (N). Cu alte
cuvinte perioada de repetiie ntr-un tabel de ridicare la putere modulo N
este egal cu (N). Din acest punct de vedere se poate afirma c la
ridicarea la putere modulo 7, (N), exponentul poate fi privit ca fiind un
element al clasei de resturi modulo 6 (modulo (N)). Aceast
proprietate este valabil, n general, pentru orice clas de returi modulo
un numr prim. n continuare se analizeaz cazul n care baza nu este
numr prim. Dac se cunoate restul mpririi unui anumit numr cu 5
i apoi cu 7, se poate determina (deoarece 5 i 7 sunt numere prime ntre
ele (nu au factori comuni)) restul mpririi acelui numr la 35. De fapt
cele dou resturi sunt egale. De aceea se poate spune c proprietile
aritmeticii modulo 35 sunt o combinaie a proprietilor aritmeticilor
modulo 5 i modulo 7. De aceea, referindu-ne acum la operaia de
ridicare la putere i innd seama de proprietatea amintit anterior, nu
este nevoie ca pentru ridicarea la putere modulo 35 (care conform
proprietii anterioare ar pretinde exponeni modulo 34) s se foloseasc
exponeni modulo 34, fiind suficient s se utilizeze exponeni modulo
24 (pentru ridicarea la puterea a 5-a sunt suficieni, conform proprietii
anterioare, coeficieni modulo 4, iar pentru ridicarea la puterea a aptea,
exponeni modulo 6 i produsul dintre 4 i 6 este 24). Raionamentul

46

Modulul 3
Bazele matematice ale criptrii

fcut explic rolul numrului (p-1)(q-1) folosit n metoda de criptare cu


cheie public RSA. Aceast metod presupune criptarea unui mesaj M,
prin ridicarea sa la o putere e modulo N. Perechea (N,e) reprezint cheia
de criptare. Se obine textul criptat C. Decriptarea se realizeaz prin
ridicarea lui C la o putere d, inversa lui e n raport cu operaia de
nmulire modulo N. Cheia de decriptare este perechea (N,d). Pentru a
aplica aceast metod de criptare trebuie calculat puterea d. n
continuare se prezint tabelul 3.1 corespunztor operaiei de ridicare la
putere modulo 55. Factorii lui 55 sunt 5 i 11, numere prime ntre ele i
prime n general. Conform observaiei anterioare ar trebui s fie folosii
coeficieni modulo 40, deoarece tabelul ar trebui s se repete cu
perioada 40. Observaia anterioar este justificat de urmtoarea
propoziie:
Dac p i q sunt dou numere relativ prime i dac N =p q
atunci (N)=(p1)(q1).
ntr-adevr, n exemplul prezentat mai sus, valoarea lui N este
55, valoarea lui p este 5 iar valoarea lui q este 11. Numerele relativ
prime cu 55, mai mici dect 55 sunt: 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 14, 16,
17, 18, 19, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 39, 41, 42,
43, 46, 47, 48, 49, 51, 52, 53, 54. De aceea (55)=40. Pe baza analizei
acestui tabel se pot face cteva observaii.
Dei coloana a 20-a nu conine doar elemente egale cu 1,
coloana a 21-a este identic cu coloana 1-a, ambele coninnd n ordine
numerele cuprinse ntre 1 i 45. Asta nseamn c tabelul se repet cu
perioada 20 n loc de 40. Evident c i 40 este o valoare bun pentru
perioad (orice multiplu al perioadei prinicpale reprezint o perioad).
Aceast comportare are loc ntotdeauna cnd cel mai mare divizor
comun al numerelor p-1 i q-1 este 2. Cu alte cuvinte perioada de
repetiie n tabelul de ridicare la putere modulo N (dat de produsul dintre
p i q) este egal cu (p-1)(q-1)/2, dac factorii p i q sunt numere prime.
De aceea exponenii de la ridicarea la putere modulo N, trebuie privii
ca i elemente ale clasei de resturi modulo (p-1)(q-1)/2. De aceea se
lucreaz cu acest modul n metoda RSA pentru determinarea puterii d.
Deoarece 55 nu este numr prim e logic ca prin nmulirea repetat a
numerelor divizibile cu 5 i cu 11 s nu se poat obine numere
nedivizibile cu 5 sau cu 11 cum ar fi de exemplu 1. Doar dac valoarea
produsului este 1 se poate vorbi despre inversare. De aceea numai
numere prime cu (p-1)(q-1) pot fi utilizate ca i exponeni pentru
cifrarea respectiv descifrarea bazate pe metoda de criptare RSA. De
aceea pentru cazul analizat trebuiesc excluse toate numerele divizibile
cu 2 i 5.

47

Modulul 3
Bazele matematice ale criptrii

Tabel 3.1. Ridicarea la putere modulo 55.


^| 1 2
1| 1 1
2| 2 4
3| 3 9
4 | 4 16
5 | 5 25
6 | 6 36
7 | 7 49
8| 8 9
9 | 9 26
10 |10 45
11 |11 11
12 |12 34
13 |13 4
14 |14 31
15 |15 5
16 |16 36
17 |17 14
18 |18 49
19 |19 31
20 |20 15
21 |21 1
22 |22 44
23 |23 34
24 |24 26
25 |25 20
26 |26 16
27 |27 14
28 |28 14
29 |29 16
30 |30 20
31 |31 26
32 |32 34
33 |33 44
34 |34 1
35 |35 15
36 |36 31
37 |37 49
38 |38 14
39 |39 36
40 |40 5
41 |41 31
42 |42 4
43 |43 34
44 |44 11
45 |45 45
46 |46 26
47 |47 9
48 |48 49
49 |49 36
50 |50 25
51 |51 16
52 |52 9
53 |53 4
54 |54 1

4 5 6

7 8

9 10

11 12 13 14 15

1 1 1 1 1 1
1 1
1 1 1 1 1
8 16 32 9 18 36 17 34
13 26 52 49 43
27 26 23 14 42 16 48 34
47 31 38 4 12
9 36 34 26 49 31 14 1
4 16 9 36 34
15 20 45 5 25 15 20 45
5 25 15 20 45
51 31 21 16 41 26 46 1
6 36 51 31 21
13 36 32 4 28 31 52 34
18 16 2 14 43
17 26 43 14 2 16 18 34
52 31 28 4 32
14 16 34 31 4 36 49 1
9 26 14 16 34
10 45 10 45 10 45 10 45
10 45 10 45 10
11 11 11 11 11 11 11 11
11 11 11 11 11
23 1 12 34 23 1 12 34
23 1 12 34 23
52 16 43 9 7 36 28 34
2 26 8 49 32
49 26 34 36 9 16 4 1
14 31 49 26 34
20 25 45 15 5 20 25 45
15 5 20 25 45
26 31 1 16 36 26 31 1
16 36 26 31 1
18 31 32 49 8 26 2 34
28 36 7 9 43
2 36 43 4 17 31 8 34
7 16 13 14 32
39 26 54 36 24 16 29 1
19 31 39 26 54
25 5 45 20 15 25 5 45
20 15 25 5 45
21 1 21 1 21 1 21 1
21 1 21 1 21
33 11 22 44 33 11 22 44
33 11 22 44 33
12 1 23 34 12 1 23 34
12 1 23 34 12
19 16 54 31 29 36 39 1
24 26 19 16 54
5 15 45 25 20 5 15 45
25 20 5 15 45
31 36 1 26 16 31 36 1
26 16 31 36
1
48 31 12 49 3 26 42 34
38 36 37 9 23
7 31 43 49 52 26 13 34
17 36 18 9 32
24 36 54 26 39 31 19 1
29 16 24 36 54
50 15 10 25 35 5 40 45
30 20 50 15 10
36 16 1 31 26 36 16
1
31 26 36 16
1
43 1 32 34 43 1 32 34
43 1 32 34 43
22 11 33 44 22 11 33 44 22 11 33 44 22
34 1 34 1 34 1 34
1 34 1 34 1 34
30 5 10 20 40 25 50 45 35 15 30 5 10
16 26 1 36 31 16 26
1 36 31 16 26
1
53 36 12 4 38 31 47 34 48 16 42 14 23
37 31 23 49 47 26 53 34 27 36 48 9 12
29 31 54 16 19 26 24
1 39 36 29 31 54
35 25 10 15 50 20 30 45 40 5 35 25 10
6 26 21 36 46 16 51
1 41 31 6 26 21
3 16 12
9 48 36 27 34 53 26 47 49 23
32 1 43 34 32 1 43 34 32 1 43 34 32
44 11 44 11 44 11 44 11 44 11 44 11 44
45 45 45 45 45 45 45 45 45 45 45 45 45
41 16 21 31 51 36 6
1 46 26 41 16 21
38 26 12 14 53 16 37 34
3 31 27 4 23
42 36 23 4 27 31 3 34 37 16 53 14 12
4 31 34 16 14 26 9 1 49 36 4 31 34
40 20 10 5 30 15 35 45 50 25 40 20 10
46 36 21 26 6 31 41 1 51 16 46 36
21
28 26 32 14 13 16 7 34
8 31 17 4
43
47 16 23 9 37 36 38 34 42 26 3 49 12
54 1 54 1 54 1 54 1 54 1 54 1
54

16
1
31
36
26
5
16
26
36
31
45
11
1
31
36
15
16
16
26
36
20
1
11
1
31
25
26
16
16
26
25
31
1
11
1
20
36
26
16
16
15
36
31
1
11
45
31
36
26
16
5
26
36
31
1

17

18 19 20 21

1 1 1
7 14 28
53 49 37
49 31 14
25 15 20
41 26 46
17 9 8
13 49 7
4 36 49
10 45 10
11 11 11
12 34 23
18 14 17
9 16 4
5 20 25
36 26 31
52 4 1
28 9 52
24 16 29
15 25 5
21 1 21
22 44 33
23 34 12
29 36 39
20 5 15
16 31 36
47 4 53
8 4 2
39 31 19
35 5 40
26 36 16
32 34 43
33 44 22
34 1 34
40 25 50
31 16 26
27 9 3
3 4 42
19 26 24
50 20 30
46 16 51
37 14 38
43 34 32
44 11 44
45 45 45
51 36 6
42 49 48
38 9 47
14 26 9
30 15 35
6 31 41
2 49 18
48 14 27
54 1 54

1
1
1
1
45
1
1
1
1
45
11
1
1
1
45
1
31
1
1
45
1
11
1
1
45
1
1
1
1
45
1
1
11
1
45
1
1
1
1
45
1
1
1
11
45
1
1
1
1
45
1
1
1
1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

Definii funcia totient a lui Euler.


Ce presupune metoda de criptare cu cheie public RSA ?

48

Modulul 3
Bazele matematice ale criptrii

3.3. Mica teorem a lui Fermat


Fiind dat numrul ntreg a i numrul prim p, care nu este
divizor al lui a, are loc relaia:
p-1

= 1 (mod p).

(3.1)

Demonstraie:
Not istoric
Ca de obicei, Fermat nu a dat o demonstraie nici pentru aceast
teorem (mrginindu-se s afirme "i-a fi trimis i demonstraia dac
nu m-a fi temut c este prea lung"). Primul care a publicat o
demonstraie a acestei teoreme a fost Euler n anul 1736. A fost gsit
ns aceeai demonstraie ntr-un manuscris al lui Leibniz, redactat
nainte de 1683, rmas nepublicat.
Pentru nceput se scriu primii p-1 multipli pozitivi ai lui a:
a, 2a, 3a, ... (p -1)a

(3.2)

Dac ra i sa sunt egali modulo p, atunci:


r(mod p)a(mod p) =s (mod p)(a mod p)

(3.3)

deoarece p este numr prim i nu-l divide pe a. Adic:


r = s (mod p)

(3.4)

Dar numerele r i s sunt distincte i mai mici dect p. De aceea ultima


egalitate nu poate avea loc. n consecin ipoteza fcut este absurd.
De aceea se poate afirma c cei p-1 multipli ai lui a introdui mai sus
sunt distinci i nenuli. n consecin (fiind vorba de p-1 valori) ei
trebuie s fie egali modulo p cu numerele 1, 2, 3, ..., p-1 ntr-o anumit
ordine. Prin nmulirea membrilor stngi respectiv drepi ai tuturor
acestor egaliti se obine egalitatea urmtoare:
.

. . .

a 2a 3a ... (p-1)a =1 2 3 ... (p-1) (mod p)


adic:

(p-1)

(p-1)! = (p-1)! (mod p)

(3.5)

(3.6)

mprind n ambii membri cu (p-1)! mod(p) se obine tocmai relaia din


enun.

Cine a publicat pentru prima data demonstaia micii teoreme a


lui Fermat ?
Enunai mica teorem a lui Fermat.

49

Modulul 3
Bazele matematice ale criptrii

3.4. Cmpuri Galois


n

Un cmp Galois este un cmp finit cu p elemente, unde p este


un numr prim. Mulimea elementelor nenule ale cmpului Galois este
un grup ciclic n raport cu operaia de nmulire. Un element generator
al acestui grup ciclic este numit element primitiv al cmpului. Cmpul
p

Galois poate fi generat ca o mulime de polinoame cu coeficieni n Z


modulo un polinom ireductibil de gradul n.

Valorile unui octet se reprezint n algoritmii de criptare prin


concatenarea biilor individuali: {b7, b6, b5, b4, b3, b2, b1, b0}. Aceti
8

octei sunt interpretai ca i elemente ale cmpului finit GF(2 ) cu


ajutorul unei reprezentri polinomiale:
7

b7 x + b6 x + b5 x + b4 x +b3 x + b2 x + b1x + b0 = b k x k

(3.7)

k =0

De exemplu octetul {01100011} se identific cu polinomul:


6

x + x + x+1. Elementele cmpurilor finite pot fi adunate sau nmulite.


Exemplul 1: GF(2)
GF(2) const din elementele 0 i 1 (p=2 i n=1) i reprezint cel
2

mai mic cmp finit. Este generat de polinoame peste Z modulo


polinomul x. Polinoamele corespunztoare elementelor din GF(2) sunt:
0 i 1, deoarece x mod x=0 i x+1 mod x=1. Tabelele sale de adunare i
nmulire sunt::
+
0
1

0
0
1

1
1
0

*
0
1

0
0
0

1
0
1

Se constat c operaia de adunare este identic cu operaia logic sauexclusiv i c nmulirea este identic cu operaia logic i. Cmpul
GF(2) este utilizat frecvent la construcia de coduri deoarece el este uor
reprezentat n calculatoare, fiind necesar un singur bit.
Adunarea
nsumarea a dou elemente ntr-un cmp finit Galois al lui 2 la o
anumit putere este realizat prin "adunarea" coeficienilor
corespunztori aceleiai puteri din polinoamele corespunztoare celor
dou elemente. "Adunarea" este efectuat modulo 2 (adic este vorba
despre funcia logic sau exclusiv). n consecin scderea polinoamelor
8

este identic cu adunarea lor. Alternativ adunarea a doi octei n GF(2 ),


{a7a6a5a4a3a2a1a0} i {b7b6b5b4b3b2b1b0}, se face prin adunarea modulo
2 a biilor lor corespunztori. Se obine octetul {c7c6c5c4c3c2c1c0},

50

Modulul 3
Bazele matematice ale criptrii

unde: ci = ai bi , i = 1,7. De exemplu urmtoarele expresii sunt


echivalente:

(x

) (

+ x 4 + x 2 + x + 1 + x 7 + x + 1 = x 7 + x 6 + x 4 + x 2 (notaie polinomial)

{01010111} {10000011} = {11010100} (notaie binar)


{57} {83} = {d4} (notaie hexazecimal)

(3.8)

nmulirea
8

n reprezentare polinomial, nmulirea n cmpul lui Galois al


8

lui 2 , GF(2 ), notat cu , corespunde nmulirii polinoamelor


corespunztoare modulo un polinom ireductibil de gradul 8. Un astfel
8

de polinom ireductibil este: x +x +x +x +1 sau {1b} n notaie


hexazecimal.
De exemplu:
{57} {83} = {c1}

(3.9)

deoarece innd seama de reprezentrile polinomiale ale lui {57} i


{83}:

(x

)(

+ x 4 + x 2 + 1 x 7 + x + 1 = x13 + x11 + x 9 + x 8 + x 7 +

+ x5 + x3 + x 2 + x + x6 + x 4 + x 2 + 1

(3.10)

sau innd seama de modul n care a fost definit adunarea:

(x

)(

+ x 4 + x2 + 1 x7 + x + 1 =

(3.11)

= x13 + x11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1
Dar:

x13 + x11 + x9 + x8 + x 6 + x5 + x 4 + x3 + 1 mod x8 + x 4 + x 3 + x + 1 = x 7 + x 6 + 1


P( x)

m( x)
7

R ( x)
6

(3.12)

deoarece restul mpririi lui P(x) la m(x) este x x +1, care este egal
cu R(x), deoarece coeficienii acestor polinoame trebuie considerai din
mulimea claselor de resturi modulo 2 (aa cum s-a artat deja cnd s-a
vorbit despre adunare). Dar octetul corespunztor lui R(x)
este{0,1,1,0,0,0,0,0,1}sau n notaie hexazecimal {c1}.
nmulirea definit astfel este asociativ, iar elementul su
neutru este {01}. Pentru orice polinom binar neidentic nul, de grad
inferior lui 8, b(x), exist un element invers n raport cu aceast
nmulire, notat b 1 ( x ) . Acesta poate fi calculat utiliznd algoritmul lui
Euclid, i determinnd polinoamele a(x) i c(x), care au proprietatea:

51

Modulul 3
Bazele matematice ale criptrii

b( x) a ( x) + m( x) c( x) = 1

(3.13)

b ( x ) a ( x ) mod {m ( x )} = 1

(3.14)

adic:

ceea ce nseamn c:
b 1 ( x ) = a ( x ) mod {m ( x )}

(3.15)

Mai mult, se poate demonstra c nmulirea este distributiv n raport


8

cu adunarea pe GF(2 ), adic:


a ( x ) (b ( x ) + c ( x )) = a ( x ) b ( x ) + a ( x ) c ( x )

(3.16)

Exemplul 2: GF(3)

GF(3) este constituit din elementele 0, 1, i -1. El este generat de


3

polinoame peste Z modulo polinomul x. Tabelele sale de adunare i


nmulire sunt:
+
0
1
-1

0
0
1
-1

1
1
-1
0

-1
-1
0
1

*
0
1
-1

0
0
0
0

1
0
1
-1

-1
0
-1
1

Este utilizat la construcia codurilor ternare.


Exemplul 3: GF(4)
2

Acest cmp Galois este generat de polinoamele peste Z modulo


2

polinomul x + x + 1. Elementele sale sunt (0,1,A,B). Tabelele sale de


adunare i nmulire sunt:
+
0
1
A
B

0
0
1
A
B

1
1
0
B
A

A
A
B
0
1

B
B
A
1
0

*
0
1
A
B

0
0
0
0
0

1
0
1
A
B

A
0
A
B
1

B
0
B
1
A

Datorit tabelului de nmulire A se identific de obicei cu rdcina


cubic a unitii 1 / 2 + i 3 / 2 . A i B sunt elemente primitive ale lui
GF(4).
8

nmulirea cu monoame pe GF(2 )


ntr-un paragraf anterior s-a introdus nmulirea pe acest cmp

52

Modulul 3
Bazele matematice ale criptrii

Galois, dar nu s-a indicat o metod numeric simpl pentru efectuarea


acestei nmuliri. nmulirea cu monoame este un caz particular
important (orice nmulire de polinoame se bazeaz pe cteva
nmuliri cu monoame) pentru care exist metode numerice simple de
implementare.
7

nmulirea polinomului binar b7 x + b6 x +b5 x +b4 x +b3 x

+b2 x +b1x +b0 , notat cu b(x), cu x conduce la polinomul b7 x +b6 x


6

+b5 x +b4 x +b3 x +b2 x +b1x +b0 x .


Rezultatul nmulirii x b(x ) se obine reducnd modulo m(x) rezultatul
obinut anterior. Dac bitul b7 are valoarea 0 atunci rezultatul este deja
n form redus. Dac acest bit are valoarea 1 reducerea este realizat
prin scderea (adic prin operaia logic sau-exclusiv) polinomului
8

m(x). n consecin nmulirea pe GF(2 ) cu x, (adic {00000010}n


form binar, respectiv {02}, n form hexazecimal) poate fi
implementat la nivel de octet printr-o deplasare la stnga urmat sau nu
(n funcie de valoarea bitului b7) de calculul funciei sau-exclusiv dintre
rezultatul (obinut n urma rotirii) i {1b}. Aceast operaie, la nivel de
octet, este notat prin xtime(). nmulirea cu puteri mai mari ale lui x
poate fi implementat prin aplicarea repetat a operaiei xtime(). Prin
adunarea unor astfel de rezultate intermediare poate fi implementat
nmulirea cu orice polinom. De exemplu:
{57} {13} = {fe} deoarece:
{57} {02} = xtime({57}) = {ae}
{57} {04} = xtime({ae}) = {47}
{57} {08} = xtime({47}) = {8e}
{57} {10} = xtime({8e}) = {07}

(3.17)

i:
{57}{13}={57}({01}{02}{10})={57}{ae}{07}={fe}

(3.18)

Polinoame cu coeficieni n GF(2 )


Pn acum coeficienii polinoamelor erau de valoare unu sau
zero, fiind deci vorba despre polinoame binare. n continuare se
analizeaz cazul polinoamelor cu coeficieni octei. Polinoamele cu
patru termeni, cu coeficieni n cmpul specificat, sunt de forma:
a(x ) = a3 x 3 + a2 x 2 + a1x + a0

(3.19)

i se reprezint ca i cuvinte de forma [a0 , a1 , a2 , a3]. De data aceasta


ns coeficienii nu mai sunt bii ci octei. De aceea i polinomul de
reducere va fi diferit, aa cum se va arta n continuare. Pentru a ilustra
operaiile de adunare i de nmulire pentru polinoame cu patru termeni
cu coeficieni octei fie cel de al doilea termen (sau factor) al operaiei:
3

b(x)=b3 x +b2 x +b1x +b0. Adunarea este realizat prin adunarea, n


cmpul finit al coeficienilor, a coeficienilor corespunztori aceleiai

53

Modulul 3
Bazele matematice ale criptrii

puteri a lui x. Adunarea n cmpul finit al coeficienilor este efectuat


prin intermediul operaiei de sau-exclusiv ntre octeii corespunztori
(de aceast dat este vorba despre sau-exclusiv ntre octeii complei i
nu ntre biii din componena lor). n consecin:
a(x ) + b(x ) = (a3 b3 )x 3 + (a2 b2 )x 2 + (a1 b1 )x + (a0 b0 )

(3.20)

nmulirea celor dou polinoame, numit nmulire modular, se


efectueaz n doi pai. Primul pas presupune dezvoltarea algebric a
produsului celor dou polinoame, c(x ) = a(x ) b(x ) , identificarea
coeficienilor fiecrei puteri:
6

c(x)=c6 x +c5 x +c4 x +c3 x +c2 x +c1 x+c0

unde:

c0 = a0 b0

c4 = a3 b1 a2 b2 a1 b3

c1 = a1 b0 a0 b1

c5 = a3 b2 a2 b3

c2 = a2 b0 a1 b1 a0 b2
c3 = a3 b2 a2 b1 a1 b2 a0 b3

c6 = a3 b3

(3.21)

(3.22)

Acest rezultat, c(x), nu este ns un polinom cu patru termeni. Cel de al


doilea pas presupune reducerea lui c(x) modulo un polinom de gradul 4,
obinndu-se un polinom de grad mai mic dect patru. De exemplu n
cazul algoritmului de criptare simetric Rijndael, polinomul de reducere
4

este x +1, astfel nct:

x i mod x 4 + 1 = x i mod4

(3.23)

Produsul modular al polinoamelor a(x) i b(x), notat a(x ) b(x ) , este dat
de polinomul cu patru termeni d(x), definit dup cum urmeaz:
d (x ) = d3 x 3 + d 2 x 2 + d1x + d 0

cu:

(3.24)

d 0 = (a0 b0 ) (a3 b1 ) (a2 b2 ) (a1 b3 )


d1 = (a1 b0 ) (a0 b1 ) (a3 b2 ) (a2 b3 )

d 2 = (a2 b0 ) (a1 b1 ) (a0 b2 ) (a3 b3 )

(3.25)

d3 = (a3 b0 ) (a2 b1 ) (a1 b2 ) (a0 b3 )

Dac a(x) este un polinom fixat, operaiile descrise mai sus pot fi
exprimate i matricial:

54

Modulul 3
Bazele matematice ale criptrii

d 0 a0
d a
1 = 1
d 2 a2

d3 a3

a3
a0
a1
a2

a2
a3
a0
a1

a1 b0
a2 b1
a3 b2

a0 b3

(3.26)

De aceea se poate afirma c nmulirea modular se reduce la o


nmulire matricial.
4

Deoarece x +1 nu este un polinom ireductibil pe GF(2 ), nmulirea


modular a polinoamelor cu patru termeni cu coeficieni octei, definit
mai sus, nu este neaprat o operaie inversabil. n algoritmul Rijndael
este totui utilizat un polinom cu patru termeni cu coeficieni octei, care
trebuie s aib invers n raport cu aceast operaie de nmulire:
a(x ) = {03}x3 + {01}x 2 + {01}x + {02}

(3.27)

Inversul su este:
a 1 (x ) = {0b}x 3 + {0d }x 2 + {09}x + {0e}

(3.28)

Un alt polinom utilizat n programul de criptare cu cheie secret


3

Rijndael este polinomul x . Efectul nmulirii modulare cu acest


polinom este rotirea octetului cu o poziie spre stnga. Asta nseamn c
[b0, b1, b2, b3] se transform n [b1, b2, b3, b0].

Ce este cmpul Galois?


Care este cel mai mic cmp Galois finit ?
Cum este efectuat "Adunarea" n cmpul Galois i ce funcie
logic reprezint ?

3.5. Matrici MDS


Un cod separat la distana maxim, maximum distance separable
code (MDSC), definit peste un cmp finit, este o coresponden ntre a
elemente ale acelui cmp finit i b elemente ale unui alt cmp finit, care
produce un vector compus de a+b elemente, cu proprietatea c numrul
minim de elemente nenule din orice vector nenul este de cel puin b + 1.
Altfel spus distana dintre oricare doi vectori produi de corespondena
MDS (adic numrul de elemente care difer ntre cei doi vectori) este
de cel puin b + 1. Poate fi demonstrat c nu exist o alt coresponden
care s aib o distan minim, ntre oricare 2 vectori produi, mai mare.
De aceea se folosete denumirea de separare la distan maxim. O
coresponden MDS poate fi reprezentat cu ajutorul unei matrici MDS
care are ab elemente. Transformarea MDS corespunztoare, a unui

55

Modulul 3
Bazele matematice ale criptrii

anumit octet, se realizeaz prin nmulirea acelui octet, privit ca i


vector, cu matricea MDS. De exemplu codurile corectoare de erori
Reed-Solomon sunt coduri de tip MDS. O condiie necesar i
suficient ca o matrice s fie MDS este ca toate submatricele sale
ptrate s fie nesingulare. Algoritmul de criptare simetric Twofish
utilizeaz o matrice MDS peste cmpul Galois a lui 2 la puterea a 8-a.

Care este distana minim dintre oricare doi vectori produi de


corespondena MDS ?
Dai exemple de coduri de tip MDS.
Ce condiie trebuie s ndeplineasc o matrice ca s fie de tip
MDS ?

3.6. Transformri Pseudo-Hadamard


O transformare Pseudo-Hadamard este o simpl operaie de
mixare care poate fi implementat numeric rapid. Fiind date 2 intrri a
i b, transformarea Pseudo-Hadamard pe 32 de bii este definit prin:
at = a + b

mod(232 )

bt = a + 2b mod(232 )

(3.29)

O astfel de transformare este utilizat n algoritmul Twofish, putnd fi


execut n dou operaii de microprocesor.

Ce repretint transformarea Pseudo-Hadamard ?


n ce algoritm de criptare este utilizat transformarea PseudoHadamard ?

3.7. Funcii hash


O funcie hash, notat cu H este o funcie definit pe o mulime
A, care ia valori ntr-o mulime B, format cu elemente a cror
exprimare n binar se face cu acelai numr de bii, n. De obicei
n

mulimea A reprezint mulimea mesajelor. Mulimea B are 2


elemente. Dac n nu este suficient de mare atunci funcia nu este
injectiv i deci nu este inversabil. Caracteristicile funciilor hash sunt:
- Fiind dat mesajul M, din A, este simplu de calculat h=H(M).
- Fiind dat h este dificil de calculat M.
- Fiind dat M este dificil s se gseasc un alt mesaj M' diferit
astfel nct H(M)=H(M').
- Este greu s se gseasc dou mesaje aleatoare astfel nct
H(M)=H(M'). Aceast proprietate este numit rezisten la
coliziune.

56

Modulul 3
Bazele matematice ale criptrii

- Prin modificarea unui singur bit din M se modific muli bii


din h.
O funcie hash de tipul one-way este o funcie hash care este dificil
de inversat. Asta nseamn c dac H(a)=b i dac se cunoate b atunci
este foarte dificil s se afle a. Uneori nu exist nici o metod mai rapid
de a-l afla pe a dect cea bazat pe fora brut (care cere s fie ncercate
toate elementele din A). Rezult c funciile hash de tipul one-way sunt
rezistente la atacuri de tip collision.
Funciile hash de tipul one-way au numeroase aplicaii:
- autentificare;
- controlul integritii mesajelor, MIC, message integrity check;
- controlul autenticitii mesajelor, MAC, message authentication
check;
- generarea irurilor de chei (astfel de exemple vor fi date cnd
se vor prezenta funciile f, din structurile Feistel folosite de
diferiii algoritmi de criptare simetric);
- securitatea parolelor. Cel mai des folosit funcie hash se
numete MD5 (Message Digest) i a fost introdus de Rivest n
1991. Ea transform un fiier de lungime arbitrar ntr-o valoare
exprimat pe 128 de bii. Aceast funcie hash se utilizeaz la
generarea semnturilor digitale, caz n care rezultatul aplicrii
sale unui mesaj se numete rezumatul mesajului, MD. Aceast
funcie este prezentat n [3].

Definii funcia hash.


Care sunt carateristiciile funciilor hash ?
Care sunt aplicaiile funciilor hash de tipul one-way ?

3.7.1 Descrierea algoritmului MD5


Se consider c mesajul de intrare (elementul cruia i se aplic
funcia hash) are o lungime de b bii. Rezultatul aplicrii funciei hash va
fi rezumatul mesajului considerat. Forma mesajului iniial este: m_0
m_1 ... m_{b-1}.
Terminologie i notaii
^

- ridicare la putere, x^i nseamn x la puterea i.

- adunarea modulo 2^32 a cuvintelor.


- o valoare exprimat pe 32 de bii obinut prin rotirea
circular spre stnga cu s poziii a lui X.

X <<< s

not(X)
- complementul lui X obinut prin complementarea fiecrui
bit al su.

57

Modulul 3
Bazele matematice ale criptrii

XvY
- rezultatul aplicrii funciei sau cuvintelor X i Y obinut
prin aplicarea funciei sau fiecrei perechi de bii (de aceeai
semnificaie) din cele dou cuvinte.
X xor Y - rezultatul aplicrii funciei sau-exclusiv cuvintelor X i Y
obinut prin aplicarea funciei sau-exclusiv fiecrei perechi de bii (de
aceeai semnificaie) din cele dou cuvinte.
XY
- rezultatul aplicrii funciei i cuvintelor X i Y obinut prin
aplicarea funciei i fiecrei perechi de bii (de aceeai semnificaie) din
cele dou cuvinte.
Pentru determinarea rezumatului mesajului se fac urmtorii 5 pai.
Pasul 1. Adugare de bii pentru egalizarea lungimii mesajului
Mesajul este extins astfel nct lungimea sa s devin egal cu
448 modulo 512. Extinderea se face ntotdeauna, chiar dac lungimea
mesajului iniial este egal cu 448 modulo 512. Extinderea se face dup
cum urmeaz: se adaug un singur bit cu valoarea 1 i apoi se aduag
bii de valoare 0 pn cnd lungimea mesajului ajunge s fie de valoarea
dorit. Numrul de bii adugai poate varia ntre 1 i 512.
Pasul 2. Adugarea lungimii mesajului
O reprezentare pe 64 de bii a lungimii iniiale a mesajului, b,
este adugat la rezultatul obinut n urma efecturii pasului anterior. n
ipoteza, puin probabil, c valoarea lui b este mai mare dect 2 la
puterea 64, se utilizeaz doar cei mai puin semnificativi 64 de bii ai
reprezentrii binare a valorii b. Acest cuvnt de 64 de bii se adauag
prin concatenarea a dou cuvinte de 32 de bii, primul fiind cel care
conine biii mai puin semnificativi. n acest punct al algoritmului noul
mesaj obinut are o lungime egal cu un multiplu de 512. Deci acest
mesaj conine un numr ntreg de cuvinte de 16, respectiv 32 de bii. Fie
M[0 ... N-1] reprezentarea unui cuvnt al mesajului rezultat, unde N este
un multiplu de 16.
Pasul 3. Iniializarea registrului MD
Un registru de patru cuvinte (A,B,C,D) se folosete pentru
calculul rezumatului mesajului. De fapt cu A, B, C, D, au fost notate
patru registre de cte 32 de bii. Aceste registre sunt ncrcate iniial cu
urmtoarele valori, exprimate n hexazecimal (cu biii cei mai puin
semnificativi la nceput):
A
B
C
D

01
89
fe
76

23
ab
dc
54

45
cd
ba
32

67
ef
98
10

Pasul 4. Prelucrarea mesajului folosind blocuri de cte 16 cuvinte


Pentru nceput se definesc 4 funcii auxiliare fiecare aplicnduse la cte 3 cuvinte de cte 32 de bii i avnd ca valoare cte un cuvnt
de 32 de bii.

58

Modulul 3
Bazele matematice ale criptrii

F(X,Y,Z) = XY v not(X) Z ; G(X,Y,Z) = XZ v Y not(Z) ; H(X,Y,Z) =


X xor Y xor Z; I(X,Y,Z) = Y xor (X v not(Z)).
n fiecare poziie de bit funcia F acioneaz ca i o condiionare:
dac X atunci Y, altfel Z. Funcia F ar fi putut fi definit i folosind
operaia + n loc de v deoarece subfunciileXY i not(X)Z nu vor avea
niciodat un 1 n aceeai poziie. Este interesant s se observe faptul c
dac biii operanzilor X, Y, i Z (privii ca i variabile aleatoare) sunt
independeni i nepolarizai, atunci fiecare bit al lui F(X,Y,Z) va fi
independent i nepolarizat.
Funciile G, H, i I sunt similare cu funcia F, n sensul c i ele
acioneaz la nivel de bit n mod paralel astfel nct dac X, Y, i Z au
biii independeni i nepolarizai atunci biii rezultatelor G(X,Y,Z),
H(X,Y,Z) i I(X,Y,Z) vor fi independeni i nepolarizai. Se observ c
folosind funcia H poate fi fcut controlul paritii variabilelor sale.
Acest pas folosete un tabel cu 64 de elemente T[1 ... 64]
construit cu ajutorul valorilor funciei sinus. Fie T[i] cel de al i-ilea
element al tabelului, care este egal cu partea ntreag a produsului dintre
4294967296 i valoarea absolut a lui sin(i), unde i este exprimat n
radiani.
Pentru ncheierea acestui pas se efectueaz urmtoarele operaii:
/* Se prelucreaz fiecare bloc de cte 16 cuvinte. */
For i = 0 to N/16-1 do
/* Se copiaz cel de al i-ilea bloc n X. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /* al buclei dup j */
/* Salveaz A ca i AA, B ca i BB, C ca i CC, i D ca i DD. */
AA = A
BB = B
CC = C
DD = D
/* Iteraia 1. */
/* Se noteaz cu [abcd k s i] operaia:
a = b + ((a + F(b,c,d) +X[k] + T[i]) <<< s). */
/* Se fac urmtoarele 16 operaii. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* Iteraia 2. */
/* Se noteaz cu [abcd k s i] operaia:
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
/* Se fac urmtoarele 16 operaii. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]

59

Modulul 3
Bazele matematice ale criptrii

[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]


/* Iteraia 3. */
/* Se noteaz cu [abcd k s t] operaia:
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
/* Se fac urmtoarele 16 operaii. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/* Iteraia 4. */
/* Se noteaz cu [abcd k s t] operaia:
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Se fac urmtoarele 16 operaii. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
/* Apoi se realizeaz urmtoarele adunri. (Acestea incrementeaz fiecare
dintre cele patru registre cu valorile pe care le-a avut naintea nceperii acestui
bloc.) */
A = A + AA ; B = B + BB; C = C + CC ; D = D + DD
end /* al buclei dup i */

Pasul 5. Livrarea MD
Rezumatul mesajului produs cu algoritmul MD5 este obinut
prin concatenarea coninuturilor registrelor A, B, C i D obinute la
sfritul pasului anterior. La nceput se vor gsi biii cei mai puin
semnificativi ai registrului A iar la sfrit biii cei mai semnificativi ai
registrului D.
O alt funcie hash utilizat frecvent este SHA (prescurtarea de la
Secure Hash Algorithm), publicat de Guvernul American n anul 1995.
Aceasta transform un fiier, mai scurt sau mai lung de 160 de bii, ntro secven de 160 de bii. i aceast funcie se utilizeaz la construcia
semnturilor digitale, fiind utilizat n standardul DSS, n algoritmul
DSA. i aceast funcie este prezentat n [3] i n documentul publicat
de NIST intitulat FIPS 180-1.

Dai cateva exemple de funcii hash utilizate frecvent.


Enumerai paii pentru determinarea rezumatului mesajului n
algoritmul MD5.
Cte elemente conine tabelul corespunztor pasului 4?
Ce funcie hash este utilizat n standardul DSS ?

60

Modulul 3
Bazele matematice ale criptrii

Rezumat
La nceput se prezint tabelele pentru operaiile de
adunare, nmulire i ridicare la putere pe mulimea claselor de
resturi modulo 7.
Se numete funcie indicator, totient, a lui Euler i se
noteaz cu funcia care asociaz lui N numrul de numere
ntregi i pozitive mai mici dect N, relativ prime cu N. Dac N
este prim atunci (N)=N-1. Deci dac modulul N este numr
prim, atunci numrul de elemente inversabile la nmulirea
modulo N este (N).
n

Un cmp Galois este un cmp finit cu p elemente, unde p


este un numr prim. Mulimea elementelor nenule ale cmpului
Galois este un grup ciclic n raport cu operaia de nmulire. Un
element generator al acestui grup ciclic este numit element
primitiv al cmpului. Cmpul Galois poate fi generat ca o
p

mulime de polinoame cu coeficieni n Z modulo un polinom


ireductibil de gradul n.
Un cod separat la distana maxim, maximum distance
separable code (MDSC), definit peste un cmp finit, este o
coresponden ntre a elemente ale acelui cmp finit i b
elemente ale unui alt cmp finit, care produce un vector compus
de a+b elemente, cu proprietatea c numrul minim de elemente
nenule din orice vector nenul este de cel puin b + 1.
O funcie hash, notat cu H este o funcie definit pe o
mulime A, care ia valori ntr-o mulime B, format cu elemente
a cror exprimare n binar se face cu acelai numr de bii, n.
De obicei mulimea A reprezint mulimea mesajelor. Mulimea
n

B are 2 elemente. Dac n nu este suficient de mare atunci


funcia nu este injectiv i deci nu este inversabil.

61

Modulul 3
Bazele matematice ale criptrii

NTREBRI (TEST GRIL)


1. Specificai valoarea funciei indicator a lui Euler a
numrului N=pq dac p i q sunt dou numere relativ
prime.
a) p(q-1), b) (p-1)q, c) (p-1)(q-1), d) (p+2)(q-1), e) 2pq.
2. Demonstraia micii teoreme a lui Fermat se bazeaz pe:
a) inducie matematic, b) calcul, c) reducere la absurd,
d) marea teorem a lui Fermat, e) cunotiine de analiz
matematic.
3. Calculai pe cmpul Galois a lui 2 la puterea a 8-a produsul
lui 57 cu 83 tiind c aceste elemente sunt exprimate n
hexagesimal.
a) c2, b) c1, c) a1, d) 53, e) ac
4. O funcie hash de tipul one-way este o funcie hash care
a) este dificil de inversat, b) este neinversabil, c) este
uor de inversat, d) este neinjectiv, e) este nesurjectiv.
5. Ce se nelege prin X <<< s, n cadrul algoritmului de
implementare a funciei hash MD5 ?
a) o valoare exprimat pe 16 bii obinut prin rotirea
circular spre stnga cu s poziii a lui X, b) o valoare
exprimat pe 32 de bii obinut prin rotirea circular
spre stnga cu 3 poziii a lui X, c) o valoare exprimat
pe 32 de bii obinut prin rotirea circular spre
dreapta cu s poziii a lui X, d) o valoare exprimat pe 32
de bii obinut prin rotirea necircular spre stnga cu s
poziii a lui X., e) o valoare exprimat pe 32 de bii
obinut prin rotirea circular spre stnga cu s poziii a
lui X.

TEM: Cmpuri Galois


-Adunarea a doi octei n GF(28)
- nmulirea n cmpul lui Galois al lui 28
- Polinoame cu coeficieni n GF (28)

62

S-ar putea să vă placă și