27.01.2015 Views

Note de curs - Departamentul Automatica, Calculatoare si ...

Note de curs - Departamentul Automatica, Calculatoare si ...

Note de curs - Departamentul Automatica, Calculatoare si ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Elementele unui câmp Galois GF(2 w ) sunt întregi <strong>de</strong> la zero la 2 w – 1. Adunarea<br />

<strong>si</strong> scǎ<strong>de</strong>rea sunt aplicatii <strong>si</strong>mple: operatii XOR (SAU EXCLUSIV). De pildǎ, în<br />

GF(2 4 )<br />

11 + 7 = 1011 ⊕ 0111 = 1100 = 12<br />

11 − 7 = 1011 ⊕ 0111 = 1100 = 12<br />

Multiplicarea <strong>si</strong> diviziunea sunt mai complexe. Când w este mic, 16 sau mai<br />

mic, se utilizeazǎ tabele <strong>de</strong> logaritmi lungi <strong>de</strong> 2 w – 1. Tabelul contine indici, o<br />

functie gflog <strong>si</strong> o functie gfilog. Ambele functii sunt functii cu valori întregi.<br />

Prima este listatǎ pentru indici <strong>de</strong> la 1 la 2 w – 1 <strong>si</strong> este o listǎ <strong>de</strong> logaritmi în<br />

câmpul Galois, a doua este <strong>de</strong>finitǎ pentru indici <strong>de</strong> la 0 la 2 w – 2 <strong>si</strong> contine<br />

rezultatul operatiei inverse logaritmǎrii. Evi<strong>de</strong>nt, compunerea celor douǎ<br />

functii, în orice ordine produce functia i<strong>de</strong>ntitate, gflog[gfilog(i)] = i,<br />

gfilog[gflog(i)] = i. Cu aceste functii se pot executa operatiile <strong>de</strong> multiplicare <strong>si</strong><br />

<strong>de</strong> împǎrtire prin luarea logaritmilor factorilor, prin calculul sumei sau a<br />

diferentei valorilor obtinute (ca elemente ale câmpului) <strong>si</strong> revenirea la rezultat<br />

prin operatia inversǎ. Iatǎ un tabel <strong>de</strong> logaritmi pentru w = 4.<br />

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br />

gflog(i) 0 1 4 2 8 5 10 3 14 9 7 6 13 11 12<br />

gfilog(i) 1 2 4 8 3 6 12 11 5 10 7 14 15 13 9<br />

Evi<strong>de</strong>nt, numai numerele nenule au logaritmi. Logaritnul invers al unui numǎr i<br />

este egal cu logaritmul invers al numǎrului [i mod (2 w – 1)].<br />

Exemple <strong>de</strong> calcule în aritmetica din GF(2 4 ):<br />

3*7 = gfilog[gflog(3) + gflog(7)] = gfilog[4 + 10] = gfilog[14] = 9<br />

13*10 = gfilog[gflog(13) + gflog(10)] = gfilog[13 + 9] = gfilog[7] = 11<br />

13/10 = gfilog[gflog(13) – gflog(10)] = gfilog[13 – 9] = gfilog[4] = 3<br />

3/7 = gfilog[gflog(3) – gflog(7)] = gfilog[4 – 10] = gfilog[9] = 10<br />

Asadar, o multiplicare sau o diviziune nece<strong>si</strong>tǎ trei apeluri la tabel – douǎ<br />

pentru logaritmi <strong>si</strong> unul pentru inversul logaritmului –, o adunare sau o scǎ<strong>de</strong>re<br />

<strong>si</strong> o operatie <strong>de</strong> tip modulo.<br />

Aritmetica unui câmp Galois are fundamentele date în continuare.<br />

Un câmp GF(n) este o multime <strong>de</strong> n elemente închisǎ la operatiile <strong>de</strong> adunare <strong>si</strong><br />

multiplicare, cu un invers (opus) raportat la adunare pentru fiecare element, cu<br />

un invers raportat la operatia <strong>de</strong> înmultire pentru fiecare element nenul. Câmpul<br />

GF(2) <strong>de</strong> exemplu, contine douǎ elemente, adunarea <strong>si</strong> înmultirea se practicǎ<br />

modulo 2 (operatorii XOR <strong>si</strong> AND, respectiv). Analog, dacǎ n este prim atunci<br />

GF(n) este multimea {0, 1, …, n – 1} în care adunarea <strong>si</strong> înmultirea se practicǎ<br />

modulo n.<br />

Dacǎ n > 1 nu este prim, atunci multimea {0, 1, …, n – 1} cu adunarea <strong>si</strong><br />

multiplicarea modulo n nu este câmp. De exemplu, dacǎ n = 4 atunci multimea<br />

{0, 1, 2, 3}, închisǎ la adunare <strong>si</strong> înmultire nu este câmp <strong>de</strong>oarece 2 nu are un<br />

invers la înmultire, nu existǎ a astfel încât 2a = 1 (mod 4). Asadar, nu se poate<br />

113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!