Documente Academic
Documente Profesional
Documente Cultură
Modul I
Elemente de algebra
superioara
Topicuri
Fundamentul matematic pentru algoritmi criptografici:
AES, IDEA, CE, algorimi cu chei publice
Elementele fundamentale din algebra abstracta:
Grupuri, grupuri ciclice
Inele ierarhie axiomatica
Campuri
concentrate pe multimi de elemente “numere” ce pot fi operate algebric
Aritmetica modulara
Algorimul lui Euclid
Campuri Galois
Aritmetica polinomiala
Consideratii computationale
Exemple
Elemente de algebra superioara
Grup (S, ) : S x S S
a,bS ab S
a,b,cS (ab)c=a(bc)
aS, eS ae=ea=a
aS, !bS ab=ba=e
Grup abelian finit – inchidere, asociat., element neutru, element simetrizabil
– comutativitate, cardinal finit
Ex: Zn Zp* GF(q)*
Operatie aditiva a+b 0 -a a-b n*a
Grup ciclic - aS, fixat, a.i. bS kZ a.i. b=ak a-generatorul grupului ciclic
Exponentul grupului – cel mai mic n, a.i. xn = 1, xS
Grup cat - Cum se construieste?
Elemente de algebra superioara
Aritmetica modulara
Aplicatii
Elemente de algebra superioara
Aritmetica modulara
Ex:
* Determinati tabelele de operatii din grupurile (Z4, +4) si (Z5, *5)
Aplicatii
Elemente de algebra superioara
Notatii Aritmetica modulara
Zn a(k)= ka (mod n)
Zn* a(k)= ak (mod n)
a - subgrupul generat de elementul a (a, ) unde a={a(k) | k 1}
Ordinul lui a (in grupul S) - cel mai mic intreg pozitiv , t, a.i. at = e
Teorema
Pentru (S, ) grup finit si aS ord(a)=|a|
Ecuatii liniare
a*x b (mod n), a, n>0 (1)
Teorema
Fie d = gcd (a,n)
Daca b/d a*x = b (mod n) are o solutie de forma
{R,+,.}
{F,+,.}
• O multime de “numere”, cu 2 operatii, astfel:
– Grup abelian cu operatia aditiva
– Grup abelian cu operatia multiplicativa (exceptand pe 0), unde a/b = a
* (b–1).
– Structura de inel
Ex: Q, R, C Z?
Elemente de algebra superioara
Campuri Galois
GF(pn)
• Camp finit cu aplicabilitate in criptografie
• Ordinul campului (finit) - putere a unui numar prim pn
0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
Calcul invers in GF
Aflarea inversului elementului b, modulo m
Q A1 A2 A3 B1 B2 B3
— 1 0 1759 0 1 550
3 0 1 550 1 –3 109
5 1 –3 109 –5 16 5
21 –5 16 5 106 –339 4
• Alternative
– aritmetica polinoamelor ordinare
– polinoame cu coeficienti mod p
– polinoame cu coeficienti mod p si modulo m(x)
Ex:
f(x) = x3 + x2 + 2 si g(x) = x2 – x + 1
f(x) + g(x) = x3 + 2x2 – x + 3
f(x) – g(x) = x3 + x + 1
f(x) x g(x) = x5 + 3x2 – 2x + 2
Elemente de algebra superioara
Aritmetica polinomiala
f(x) + g(x) = x3 + x + 1
f(x) x g(x) = x5 + x2
Elemente de algebra superioara
Aritmetica polinomiala
Impartirea polinoamelor
– f(x) = q(x) g(x) + r(x), unde r(x) are rol de rest
– r(x) = f(x) mod g(x)
Un polinom q(x) cu coeficienti in GF(p) = Z/pZ spunem ca este polinom primitiv daca
are gradul m si are o radacina in GF(pm) astfel incat puterile succesive ale acestei
radacini genereaza tot campul GF(pm). ( si anume, {0, 1, , ^2,…, ^(p^m-2)}
Examplu GF(?)
Exemplu: Care este inversul elementului 31 (reprezentat in format hexa) in GF(28) ?
Unde campul este definit de polinomul f(X) = 1 + X + X3 + X4 + X8
31 corespunde polinomului X5 + X4 + 1
Pentru a afla inversul acestui polinom, se foloseste algoritmul lui Euclid:
57 83 = D4
57 – 01010111
83 – 10000011
11010100
57 83 = (X6 + X4 + X2 + X + 1)(X7 + X + 1) =
= X13 + X11 + X9 + X8 + X6 + X5 + X4 + X3 + 1
mod (X8 + X4 + X3 + X + 1)
= X7 + X6 + 1
11000001 = C1
Operatii modulo in campuri Galoise *
101 x 98 mod 17 = 1772 mod 73 =
75 mod 15 = 773 mod 71 =
128 mod 7 = 1310 mod 167 =
7559 mod 63 = 232 mod 5 =
-7559 mod 63 = 864 mod 9 =
755911 mod 63 = 1242 mod 25 =
17150 mod 151 = 163 x 255 mod 23 =
1410 mod 197 = 415 mod 17 =
68133 mod 323 =
Exercitii
for j=1 to k do
nj = n/pj
for i=1 to k do
g = gcd (f, X q ni X mod f)
if g 1 then f – reductibil – STOP
endfor
n
g = X q X mod f
If g = 0, then - f ireductibil
else - f reductibil
Bibliografie
http://www.math.clemson.edu/~sgao/papers/GP97a.pdf
http://www.tau.ac.il/~jarden/Courses/finite.pdf
http://www-groups.mcs.st-and.ac.uk/~neunhoef/Teaching/ff/ffchap3.pdf
http://mathworld.wolfram.com/FiniteField.html