Sunteți pe pagina 1din 12

Prelegerea 8

Circuite liniare şi extensii Galois

8.1 Circuite liniare pentru operaţii elementare


În această secţiune presupunem că toate calculele se realizează ı̂n Zq (q număr prim).

Un circuit liniar este un graf orientat, cu trei tipuri de noduri (conectori):


• sumator - este un conector cu cel puţin două intrări şi o ieşire. Efectul este
acela de a scoate suma modulo q a elementelor aflate la intrare. Operaţia se
execută instantaneu. Sumatorul se notează astfel:

?
¾»
- +
-
½¼

• Multiplicator - este un conector cu o singură intrare şi o ieşire unde se obţine


rezultatul ı̂nmulţirii cu c ∈ Zq a elementului de la intrare. Operaţia se execută
(de asemenea) instantaneu. Notaţie:
¾»
- - c
½¼

• Element de ı̂nmagazinare - Este un registru buffer cu o intrare şi o ieşire; efectul


este ı̂ntârzierea cu un tact a intrării: elementul a ∈ Zq intră ı̂n momentul k şi
iese ı̂n momentul k + 1. Notaţie:

- -

Aceste trei tipuri de conectori se pot grupa arbitrar - folosind eventual şi noduri
obişnuite. Utilizarea practică revine la obţinerea de circuite liniare care pot realiza
automat operaţii uzuale cu polinoame: adunări, scăderi, ı̂nmulţiri şi ı̂mpărţiri.

În cele ce urmează, vom identifica un vector cu n + 1 componente


a = (a0 , a1 , . . . , an )
cu polinomul de gradul n cu o variabilă
a(x) = a0 + a1 X + . . . + an X n .

85
86 PRELEGEREA 8. CIRCUITE LINIARE ŞI EXTENSII GALOIS

În cursul transmisiei mesajului a, ordinea de prelucrare (transmisie) se face după


puterile descrescătoare ale lui X; deci, sensul de circulaţie a semnalelor va fi:

a0 a1 ... an −→

8.1.1 Construcţia unor circuite liniare uzuale


A Circuit de ı̂nmulţire cu un polinom.
Fie h(X) = b0 +b1 X +. . .+bn X n un polinom fixat şi a(X) = a0 +a1 X +. . .+ak X k
un polinom arbitrar. Coeficienţii ambelor polinoame pot fi luaţi ı̂ntr-un inel arbitrar
(din considerente pur aplicative, acesta este de obicei Zq , dar construcţiile rămân
valabile ı̂n general).
Un circuit de ı̂nmulţire cu h(X) este:

Figura 8.1:
- +n - ... - +n - +n -
6
6 6 6
º· º· º· º·
bn bn−1 b1 b0
¹¸ ¹¸ ¹¸ ¹¸
6 6 6 6
a(X) s - s - - ... - s - -

Iniţial elementele de ı̂nmagazinare conţin 0; coeficienţii polinomului a(X) intră


ı̂n stânga jos - după puterile descrescătoare ale lui X - câte unul la un tact, iar
coeficienţii produsului ies ı̂n dreapta sus. Circuitul funcţionează n+k +1 tacţi; după
k + 1 tacţi, la intrare se introduc zerouri ı̂n cei n tacţi rămaşi, pı̂nă ce elementele de
ı̂nmagazinare conţin din nou numai 0.
De remarcat că un element de ı̂nmagazinare funcţionează după principiile unei
variabile de memorie (aducerea unei valori face să dispară vechea valoare din locaţie).
Circuitul lucrează după formula de ı̂nmulţire obişnuită:
a(X)h(X) = a0 b0 + (a0 b1 + a1 b0 )X + . . . + (ak−1 bn + ak bn−1 )X k+n−1 + ak bn X n+k

Exemplul 8.1 Să luăm polinomul h(X) = X 3 − 5X 2 + 2 ∈ Z[X] (vectorul core-


spunzător este h = (2, 0, −5, 1)). Circuitul de ı̂nmulţire cu h(X) va fi:
²¯ ²¯
-+ - +-
6 ±° ±°
6 6
¾» ¾»
−5 2
½¼ ½¼
6 6
s- s - - -

De remarcat că multiplicarea cu 1 se face prin arc simplu (fără conector), iar
multiplicarea cu 0 revine la suprimarea arcului. În cazul operaţiilor cu polinoame
din Z2 [X], toţi multiplicatorii se reduc la aceste două cazuri.
8.1. CIRCUITE LINIARE PENTRU OPERAŢII ELEMENTARE 87

Dacă dorim să ı̂nmulţim h(X) cu polinomul a(X) = 2X + 8 (vector a = (8, 2)),
circuitul liniar va funcţiona 5 tacţi (până când toate elementele de ı̂nmagazinare
revin la 0); comportarea sa este relatată de tabelul:

Nr. tact Intrare Înmagazinare Ieşire


0 0 0 0 0 0
1 2 0 0 0 2
2 8 2 0 0 −2
3 0 8 2 0 −40
4 0 0 8 2 4
5 0 0 0 8 16
6 0 0 0 0 0

Deci, polinomul produs este 2X 4 − 2X 3 − 40X 2 + 4X + 16; sau - ı̂n termeni de


vectori, (16, 4, −40, −2, 2).

Aceeaşi operaţie de ı̂nmulţire este realizată şi de circuitul liniar:

Figura 8.2:
²¯ ²¯ ²¯ ²¯
- -+ - - + - ... -+ - -+ -
6 ±° ±° ±° ±°
6 6 6 6
¾» ¾» ¾» ¾» ¾»
b0 b1 b2 bn−1 bn
½¼ ½¼ ½¼ ½¼ ½¼
6 6 6 6 6
s s s - ... s -

Exemplul 8.2 Circuitul liniar care realizează ı̂nmulţirea cu polinomul


h(X) = 1 + X + X 4 peste Z2 este
²¯ ²¯
- -+ - - - -+ -
6 ±° ±°
6 6
s s -

deoarece vectorul corespunzător polinomului h(X) este h = (1, 1, 0, 0, 1).

B. Fie h(X) = h0 + h1 X + . . . + hn X n şi g(X) = g0 + g1 X + . . . + gn X n două


polinoame fixate. Un circuit liniar care să realizeze operaţia

a(X)h(X) + b(X)g(X)

pentru două polinoame arbitrare a(X), b(X), este:


88 PRELEGEREA 8. CIRCUITE LINIARE ŞI EXTENSII GALOIS
b(X) s s - ... s -
?
¾» ?
¾» ?
¾» ¾»?
g0 g1 gn−1 gn
½¼ ½¼ ½¼ ½¼
?
²¯ ?
²¯ ?
²¯ ?
²¯
+ - - + - - ... -+ - -+ -
±° ±° ±° ±°
6 6 6 6
¾» ¾» ¾» ¾»
h0 h1 hn−1 hn
½¼ ½¼ ½¼ ½¼
6
s 6
s - ... 6
s -6
a(X)

De remarcat că polinoamele g(X) şi h(X) pot avea grade diferite; ı̂n acest caz se
alege n ca fiind gradul cel mai mare şi se completează celălalt polinom cu coeficienţi
nuli până la gradul n.
Exemplul 8.3 Fie polinoamele g(X) = 1 + X 2 , h(X) = X + X 2 + X 4 cu coeficienţi
ı̂n Z2 ; deci vectorii corespunzători vor fi h = (0, 1, 1, 0, 1), g = (1, 0, 1, 0, 0). Cir-
cuitul liniar care realizează expresia a(X)h(X) + b(X)g(X) este:
b(X) s -
²¯ ²¯? ²¯
? - -+ - -+ - - -+ -
±° ±° ±°
6
s s6 -6
a(X)

C. Circuit liniar de ı̂mpărţire cu un polinom.


Fie polinomul (fixat) g(X) = g0 + g1 X + . . . + gk X k , gk 6= 0. Un circuit liniar
care realizează ı̂mpărţirea unui polinom arbitrar a(X) = a0 + a1 X + . . . + an X n la
g(X) este:

Figura 8.3:
¾ s ... ¾ s -

? #Ã
? #Ã
? 6

−g0 −g1 −gk−1 gk−1


"! "! "! "!
6
?
²¯ ?
²¯ ?
²¯
a(X) -±°
+ - -+ - ... - -+ - -
±° ±°

Iniţial, toate cele k elemente de ı̂nmagazinare conţin 0. La intrare, timp de


n + 1 tacţi se introduc coeficienţii polinomului a(X) (ı̂n ordinea descrescătoare a
puterilor). În primii k tacţi, ieşirea va scoate numai 0. Primul coeficient nenul
apare la ieşire la momentul k + 1 şi este an gk−1 (operaţii ı̂n inelul coeficienţilor celor
două polinoame) - coeficientul termenului X n−k din cât.
Pentru fiecare coeficient qj al câtului, polinomul qj g(X) trebuie scăzut din deı̂m-
părţit; această operaţie se realizează printr-un procedeu de conexiune inversă (feed-
back).
8.1. CIRCUITE LINIARE PENTRU OPERAŢII ELEMENTARE 89

După momentul n + 1 (când au intrat toţi coeficienţii polinomului a(X)) la ieşire


s-a obţinut câtul q(X) al ı̂mpărţirii la g(X), iar ı̂n elementele de ı̂nmagazinare se
găsesc coeficienţii restului.

Exemplul 8.4 Un circuit liniar de ı̂mpărţire (peste Q) la polinomul g(X) = 2 + X


este: ¾»
−2 ¾ -
½¼ 6

?
²¯
-+ - -
±°

Exemplul 8.5 Fie polinomul g(X) = 1 + X 2 + X 5 + X 6 ∈ Z2 [X]. Circuitul care


realizează ı̂mpărţirea este:
¾ s s -
?
²¯ ?
²¯ ?
²¯ 6
- + - - -+ - - - -+ -
±° ±° ±°

Să luăm polinomul a(X) = 1 + X 4 + X 5 + X 7 + X 9 + X 10 pe care să-l ı̂mpărţim ı̂n


Z2 la polinomul g(X). Se obţine câtul X 4 + X şi restul X 5 + X 3 + X + 1.
Circuitul funcţionează 11 tacţi. Etapele prin care trece ı̂n efectuarea acestei
ı̂mpărţiri sunt reprezentate de tabelul următor:

Nr. tact Intrare Elemente de ı̂nmagazinare Ieşire


0 − 0 0 0 0 0 0 −
1 1 1 0 0 0 0 0 0
2 1 1 1 0 0 0 0 0
3 0 0 1 1 0 0 0 0
4 1 1 0 1 1 0 0 0
5 0 0 1 0 1 1 0 0
6 1 1 0 1 0 1 1 0
7 1 0 1 1 1 0 0 1
8 0 0 0 1 1 1 0 0
9 0 0 0 0 1 1 1 0
10 0 1 0 1 0 1 0 1
11 1 1 1 0 1 0 1 0

Vectorii (1, 1, 0, 1, 0, 1) - de pe ultima linie şi (0, 1, 0, 0, 1) - scris mai gros şi ı̂n
ordine inversă pe ultima coloană - reprezintă restul 1 + X + X 3 + X 5 respectiv câtul
X + X 4 ı̂mpărţirii lui a(X) la g(X).
90 PRELEGEREA 8. CIRCUITE LINIARE ŞI EXTENSII GALOIS

D. Circuitul liniar are realizează ı̂nmulţirea cu polinomul h(X) = h0 + h1 X +


. . . + hn X n urmată de ı̂mpărţirea la polinomul g(X) = g0 + g1 X + . . . + gn X n este:
¾ s ... ¾ s -
?
¾» ?
¾» ?
¾» 6
¾»
−g0 −g1 −gn−1 gn−1
½¼ ½¼ ½¼ ½¼
?
²¯ ?
²¯ ?
²¯ 6
²¯
+ - -+ - - ... - -+ - -+
±° ±° ±° ±°
6
¾» ¾»6 ¾»6 ¾»6

h0 h1 hn−1 hn
½¼ ½¼ ½¼ ½¼
6 6
s - ... 6
s -6

Când gradele polinoamelor sunt diferite, se construieşte ı̂ntâi circuitul liniar co-
respunzător polinomului de grad maxim, după care se completează cu circuitul cores-
punzător celuilalt polinom.

Exemplul 8.6 Să luăm polinoamele h(X) = 1 + X + X 3 , g(X) = 2 + X + X 4 cu


coeficienţi ı̂n Z3 . Circuitul liniar care realizează ı̂nmulţirea cu h(X) şi ı̂mpărţirea la
g(X) este
¾ s -
? 6
º·
2
¹¸
?
²¯ ?
²¯ ²¯
+ - -+ - - - +` - -
±° ±° ±°
6
s 6
s -6

Deoarece calculele se fac ı̂n Z3 , −2 = 1, −1 = 2, şi 1−1 = 1.


Pentru intrarea a(X) = 1 + 2X + 2X 2 , comportarea circuitului este următoarea:

− 0 0 0 0 −
2 2 2 0 2 −
2 1 2 2 2 2
1 0 0 2 0 2

ceea ce corespunde câtului 2 + 2X şi restului 2X 2 .


De remarcat că primul coeficient (de grad maxim) al câtului este scos de circuit
cu o ı̂ntârziere de grad(g(X)) − grad(f (X)) = 1 tact.
8.2. EXTENSII GALOIS 91

Exemplul 8.7 Un circuit liniar pentru ı̂nmulţirea cu h(X) = 1 − X 2 + 2X 4 şi


ı̂mpărţirea la g(X) = 3 − 2X + X 2 , ambele din Z[X], este:
¾ s -
¾»
? ¾»
? 6

−3 2
½¼ ½¼
?
²¯ ?
²¯ ²¯
- - -+ - -+ - -+
6 ±° ±° ±°
6 6
¾» ¾»
−1 2
½¼ ½¼
6
s -6

Fie intrarea a(X) = −2 + X; comportarea circuitului este:

− 0 0 0 0 −
1 1 0 −7 4 2
−2 −2 1 2 −7 0
0 0 −2 22 −12 −7
0 0 0 34 −2 −12

deci câtul este 2X 3 − 7X − 12 iar restul 34 − 2X.


De remarcat că circuitul este lăsat să funcţioneze grad(h(X)) − grad(f (X)) = 2
tacţi ı̂n plus (prin introducerea de zero-uri), pentru golirea elementelor de ı̂nmagazi-
nare necontrolate de ı̂mpărţitor.

8.2 Extensii Galois


Fie q un număr prim şi g(X) = g0 + g1 X + . . . + gn X n ∈ Zq [X]. Vom considera
algebra polinoamelor modulo g(X).
Fiind dat un polinom oarecare din Zq [X], clasa sa de resturi modulo g(X) se
găseşte ı̂mpărţind polinomul respectiv cu g(X). Restul ı̂mpărţirii specifică clasa de
resturi respectivă.
Două polinoame cărora le corespunde acelaşi rest la ı̂mpărţirea cu g(X) sunt
echivalente, intrând ı̂n aceeaşi clasă de resturi modulo g(X).
Fiecare clasă de resturi modulo g(X) se reprezintă prin polinomul (unic) de grad
strict mai mic decât n, care aparţine clasei respective. Toţi aceşti reprezentanţi pot
fi consideraţi ca polinoame de gradul n − 1, având eventual coeficienţi nuli.
Vom nota cu {f (X)} clasa de resturi a polinomului f (X) modulo g(X). Deci
f (X) va corespunde unui vector (distinct) de lungime n, cu componente din Zq (prin
completare eventual cu zerouri).
Operaţiile ı̂n algebra claselor de resturi sunt:

{a(X)} + {b(X)} = {a(X) + b(X)}


c{a(X)} = {ca(X)}, c ∈ Zq
{a(X)}{b(X)} = {a(X)b(X)}
92 PRELEGEREA 8. CIRCUITE LINIARE ŞI EXTENSII GALOIS

toate calculele fiind făcute modulo g(X).


Evident, {0} = {g(X)}, unde {0} este polinomul de grad n−1 cu toţi coeficienţii
nuli (sau vectorul cu n componente zero). Vom nota {0} = 0.
Pentru un polinom s(X) ∈ Zq [X], clasa de resturi modulo g(X) se obţine foarte
uşor. Teorema ı̂mpărţirii cu rest dă:
s(X) = a(X)g(X) + r(X) unde grad(r(X)) < grad(g(X)) = n. Atunci:
{s(X)} − {r(X)} = {s(X) − r(X)} = {a(X)g(X)} = {a(X)}{g(X)} = 0.
Să reluăm circuitul liniar de ı̂mpărţire definit ı̂n Figura 8.3, ı̂n care facem urmă-
toarele modificări (vezi Figura 8.4):

• Se neglijează intrarea şi ieşirea;

• La momentul iniţial elementele de ı̂nmagazinare conţin coeficienţii unui poli-


nom b(X) = b0 + b1 X + . . . + bn−1 X n−1 .

Figura 8.4:
¾ s ... ¾ s

? #Ã
? #Ã
? 6

−g0 −g1 −gn−1 gn−1


"! "! "! "!
?
²¯ ?
²¯ 6
?
-
b0 -+ -
b1 - ... -+ - b
n−1
-
±° ±°

La următorul tact, ı̂n elementele de ı̂nmagazinare se obţin coeficienţii polinomu-


lui:
b0 (X) = −g0 gn−1 bn−1 + (b0 − g1 gn−1 bn−1 )X + (b1 − g2 gn−1 bn−1 )X 2 + . . .
+(bn−2 − gn−1 gn−1 bn−1 )X n−1 =
= b0 X + b1 X 2 + . . . + bn−1 X n − bn−1 X n − gn−1 bn−1 (g0 + g1 X + . . . + gn−1 X n−1 ) =
= Xb(X) − gn−1 bn−1 g(X).
Dacă notăm α = {X} ({X} este clasa de resturi a polinomului X), din relaţia
de mai sus se obţine:

b0 (α) = {b0 (X)} = {Xb(X)} = {X}{b(X)} = {X}b({X}) = αb(α).

Deci circuitul de ı̂mpărţire cu polinomul g(X) poate fi utilizat pentru ı̂nmulţirea lui
b(α) cu α.

Teorema 8.1 În algebra polinoamelor modulo g(X), grad(g(X)) = n, avem:

1. g(α) = 0 unde α = {X};

2. g este polinomul de grad minim care are pe α ca rădăcină.

Demonstraţie:
8.2. EXTENSII GALOIS 93

1. Fie g(X) = g0 + g1 X + . . . + gn Xn ∈ Zq [X], gn 6= 0. Vom avea g(α) =


g0 +g1 α+. . .+gn αn = g0 +g1 {X}+. . .+gn {X}n = g0 +g1 {X}+. . .+gn {X n } =
{g0 + g1 X + . . . + gn X n } = {g(X)} = 0.
2. Folosind acelaşi raţionament, se obţine pentru orice polinom f (X) cu
grad(f (X)) < n, că f (α) = {f (X)} 6= 0, deoarece toate polinoamele ne-
identic nule de grad strict mai mic decât n aparţin la clase de resturi distincte.
2
Să presupunem acum că g(X) ∈ Zq [X] este un polinom ireductibil. Conform
Teoremei 8.1, α = {X} este rădăcină a lui g(X). Acest element α poate fi considerat
fie ca polinom de grad n − 1 (cu toţi coeficienţii nuli ı̂nafară de cel al lui X), fie ca
vector cu n componente (0, 1, 0, . . . , 0).
Vom nota cu GF (q n ) mulţimea vectorilor din Zqn , sau - echivalent:
- mulţimea polinoamelor de grad n − 1 cu coeficienţi ı̂n Zq , sau
- mulţimea claselor de resturi modulo polinomul g(X) ∈ Zq [X], ireductibil
peste Zq .
GF (q n ) se numeşte extensia Galois de grad n a lui Zq .
Spunem că GF (q n ) se obţine prin adăugarea la Zq a unei rădăcini a polinomului
g(X) ∈ Zq [X] de grad n, ireductibil peste corpul de bază Zq .
Observaţie: Procedeul de trecere de la Zq la GF (q n ) este similar trecerii de la
corpul numerelor reale R la cel complex C, prin adăugarea rădăcinii i = {X} ı̂n
algebra claselor de resturi modulo 1 + X 2 , ireductibil peste R. Putem considera
mulţimea C a numerelor complexe fie ca mulţimea polinoamelor de grad 2 − 1 =
1, a + bi cu a, b ∈ R, fie ca mulţimea vectorilor (a, b) cu două componente reale.
Dacă polinomul g(X) ∈ Zq [X] este ireductibil peste Zq şi primitiv, puterile lui
α = {X} vor genera toate elementele lui GF (q n ) \ {0} unde n = grad(g(X)). Acest
lucru se poate realiza cu circuitul liniar din Figura 8.4, introducând la momentul
iniţial ı̂n elementele de ı̂nmagazinare coeficienţii polinomului b(X) = 1 (adică vec-
torul (1, 0, . . . , 0)). Conform celor observate mai sus, la momentul următor se obţine
{Xb(X)} = {X} = α, după care urmează pe rând α2 , α3 , . . .. Cum g(X) a fost ales
primitiv, el va genera toate elementele nenule din GF (q n ).
Exemplul 8.8 Fie polinomul 1 + X + X 4 ireductibil peste Z2 şi α = {X} ı̂n algebra
claselor de resturi modulo 1+X +X 4 . Circuitul liniar care va genera toate elementele
nenule din GF (24 ) este:
¾ s
?
²¯ 6
?
- -+ - - - -
±°

unde, la momentul iniţial, ı̂n elementele de ı̂nmagazinare este vectorul (1, 0, 0, 0).
Conform Teoremei 8.1, α este o rădăcină a polinomului 1 + X + X 4 , adică
1 + α + α4 = 0.
Lăsând circuitul să funcţioneze, ı̂n elementele de ı̂nmagazinare se obţin toate ele-
mentele lui GF (24 ), pe care le interpretăm fie ca vectori cu patru componente peste
Z2 , fie ca polinoame de gradul 3 ı̂n α cu coeficienţi ı̂n Z2
94 α0 PRELEGEREA
= 1 8. CIRCUITE LINIARE
1 0ŞI EXTENSII
0 0 GALOIS
α1 = α 0 1 0 0
α2 = α 2
0 0 1 0
α3 = α 3
0 0 0 1
α4 = 1 + α 1 1 0 0
α5 = α + α 2
0 1 1 0
α6 = α2 + α3 0 0 1 1
α7 = 1 + α + α 3
1 1 0 1
α8 = 1 + α 2
1 0 1 0
α9 = α + α3 0 1 0 1
α10 = 1 + α + α 2
1 1 1 0
α11 = α + α2 + α3 0 1 1 1
α12 = 1 + α + α + α2 3
1 1 1 1
α13 = 1 2
+ α + α 3
1 0 1 1
α14 = 1 + α3 1 0 0 1
α15 = 1 1 0 0 0

Vedem deci că polinomul 1 + X + X 4 este primitiv, puterile lui α epuizând toţi
vectorii nenuli din GF (24 ) = {0, α0 , α, . . . , α14 }.

Exemplul 8.9 Tabelul din exemplul precedent descrie operaţia de ı̂nmulţire din
GF (24 ), generată de rădăcina α a polinomului primitiv 1 + X + X 4 . Dacă s-ar
alege α ca rădăcină a altui polinom primitiv - de exemplu 1 + X 3 + X 4 , se va genera
tot GF (24 ), dar ı̂ntr-o altă ordine. Lăsăm ca exerciţiu această generare.
În GF (24 ) se poate defini şi operaţia de adunare, ı̂nsumând modulo 2 cei doi
operanzi, pe componente. Astfel, dacă reluăm GF (24 ) generat ı̂n Exemplul 8.8 de
rădăcina polinomului 1 + X + X 4 , tabela de adunare va fi:

+ 0 α0 α α2 α3 α4 α5 α6 α7 α8 α9 α10 α11 α12 α13 α14


0 0 α0 α α2 α3 α4 α5 α6 α7 α8 α9 α10 α11 α12 α13 α14
α0 α0 0 α4 α8 α14 α α10 α13 α9 α2 α7 α5 α12 α11 α6 α3
α α α4 0 α5 α9 α0 α2 α11 α14 α10 α3 α8 α6 α13 α12 α7
α2 α2 α8 α5 0 α6 α10 α α3 α12 α0 α11 α4 α9 α7 α14 α13
α3 α3 α14 α9 α6 0 α7 α11 α2 α4 α13 α α12 α9 α10 α8 α0
α4 α4 α α0 α10 α7 0 α8 α12 α3 α5 α14 α2 α13 α6 α11 α9
α5 α5 α10 α2 α α11 α8 0 α9 α13 α4 α6 α0 α3 α14 α7 α12
α6 α6 α13 α11 α3 α2 α12 α9 0 α10 α14 α3 α7 α α4 α0 α8
α7 α7 α9 α14 α12 α4 α3 α13 α10 0 α11 α0 α6 α8 α2 α9 α
α8 α8 α2 α10 α0 α13 α5 α4 α14 α11 0 α12 α α7 α9 α3 α6
α9 α9 α7 α3 α11 α α14 α6 α5 α0 α12 0 α13 α2 α8 α10 α4
α10 α10 α5 α8 α4 α12 α2 α0 α7 α6 α α13 0 α14 α3 α9 α11
α11 α11 α12 α6 α9 α5 α13 α3 α α8 α7 α2 α14 0 α0 α4 α10
α12 α12 α11 α13 α7 α10 α6 α14 α4 α2 α9 α8 α3 α0 0 α α5
α13 α13 α6 α12 α14 α8 α11 α7 α0 α5 α3 α10 α9 α4 α 0 α2
α14 α14 α3 α7 α13 α0 α9 α12 α8 α α6 α4 α11 α10 α5 α2 0

Fie acum a(X) = a0 + a1 X + . . . + ak−1 X k−1 ∈ Zq [X]. Valoarea a(α) se obţine


folosind circuitul de ı̂mpărţire dat ı̂n Figura 8.3, cu următoarele observaţii:
8.2. EXTENSII GALOIS 95

• Se ignoră ieşirea;

• Coeficienţii lui a(X) se introduc la intrare ı̂n ordinea descrescătoare a puterilor;

• Iniţial, elementele de ı̂nmagazinare conţin valorile (0, 0, . . . , 0).

Pentru calculul unei valori de forma a(α)αj , (j ≥ 0 fixat), se pot construi circuite
liniare care să realizeze direct acest produs.

Exemplul 8.10 Fie α ∈ GF (24 ) element primitiv, soluţie a ecuaţiei 1+X+X 4 = 0.


Polinomul a(X) va avea atunci gradul maxim 3. Fie a(X) = a0 +a1 X +a2 X 2 +a3 X 3 .
Să construim un circuit liniar care să efectueze a(α)α5 .
Folosind tabelul din Exemplul 8.8, avem:
(a0 + a1 α + a2 α2 + a3 α3 )α5 = a0 α5 + a1 α6 + a2 α7 + a3 α8 = a0 (α + α2 ) + a1 (α2 +
α3 )+a2 (1+α+α2 )+a3 (1+α2 ) = (a2 +a3 )+(a0 +a2 )α+(a0 +a1 +a3 )α2 +(a1 +a2 )α3
Pentru acest polinom se va construi circuitul liniar:
-
6 -
6
a0 a1 a2 - a3 -
6 6 6 6
²¯ ²¯ ²¯ ²¯
-+ +¾ ? -+¾ ? -+
6 ±° ±° ±° ±°
¾
6 6 6 ? -6
¾ ?

La momentul iniţial, ı̂n elementele de ı̂nmagazinare se găsesc coeficienţii lui a(α);


după un tact, aici vor fi coeficienţii polinomului a(α)α5 .
96 PRELEGEREA 8. CIRCUITE LINIARE ŞI EXTENSII GALOIS

8.3 Exerciţii
8.1 Să se realizeze circuite liniar (ı̂n ambele modalităţi de construcţie) care să
efectueze ı̂nmulţiri cu polinoamele:
h(X) = 1 + 2X + 3X 2 + 4X 3 ∈ Z[X]
h(X) = 1 + 2X + X 5 ∈ Z7 [X]

8.2 Să se reprezinte comportamentul circuitelor realizate anterior, la ı̂nmulţirea cu


polinoamele:
a(X) = 2 + 5X + X 3 , a(X) = X − X 3 − 2X 4 , a(X) = 0.

8.3 Se dă cavântul g = (1, 0, 0, −1, 0, 1). Să se realizeze circuitul de ı̂nmulţire
cu polinomul corespunzător şi să se reprezinte comportamentul acestui circuit la
ı̂nmulţirea cu a = (1) şi a = (1, 1, 1, 0, 0, 0, 1).

8.4 Să se realizeze un circuit liniar care realizează produsul a(X)g(X) + b(X)h(X)
pentru polinoamele:
g(X) = 1 + X + X 3 , h(X) = 1 − 5X − 2X 2 + 3X 3 ;
g(X) = −4X 3 + X 5 − 2X 8 , h(X) = X 2 + 2X 4 + X 6 ;
g(X) = X − X 3 + 3X 4 , h(X) = 2X 3 + X 5 + X 9 .

8.5 Să se facă ı̂mpărţirea ı̂n Q[X] la polinomul g(X) = X 2 −2X +1 a polinoamelor
a(X) = X 5 − 4X 3 − 2X + 5, a(X) = X + 7.

8.6 Aceeaşi problemă pentru polinoamele g(X) = 2X −1 şi respectiv a(X) = X 3 −3.
(1) : În Q[X];
(2) : În Z3 [X].

8.7 Să realizeze un circuit care să efectueze (ı̂n Q) ı̂nmulţirea cu polinomul
g(X) = 1 − 2X + X 3 şi ı̂mpărţirea cu polinomul h(X) = g(X).

8.8 Aceeaşi problemă pentru polinoamele:


g(X) = X − 2X 3 − X 4 , h(X) = 2 + X + X 3 ı̂n Z5 [X];
g(X) = −1 + X − X 6 , h(X) = X 2 − 4X 3 − 2X 5 + 3X 7 ı̂n Z11 [X].

8.9 Să se rezolve problema enunţată ı̂n Exemplul 8.9.

8.10 Să se genereze toate puterile lui α, rădăcină a polinomului 1 + X 2 + X 5 ∈


Z2 [X] şi 1 + X + X 3 ∈ Z3 [X].

8.11 Folosind elementele din Exemplul 8.10 să se construiască circuite de generare
pentru a(α)α, a(α)α2 şi a(α)α7 .

8.12 Să se construiască circuite de generare ı̂n GF (25 ) pentru a(α) şi a(α)α10 ,
unde α este rădăcină a polinomului 1 + X 2 + X 5 ∈ Z2 [X].

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