Sunteți pe pagina 1din 16

Curs 2

Transformări matriciale elementare. Aplicaţii ı̂n criptografie.


Metoda reducerii la forma scară efectuatăı̂n virgulă mobilă

2.1 Calculul inversei unei matrici nesingulare prin metoda Gauss-Jordan


Inversa unei matrici pătratice nesingulare, A ∈ Kn×n , este o matrice X ∈ Kn×n , cu propri-
etatea că
AX = In ,
adică

  X:,1 X:,2 X:,n   


a11 a12 ··· a1n x11 x12 . . . x1n 1 0 ... 0
 a21 a22 ··· a2n   x21
  x22 . . . x2n   0 1 ... 0 
(2.1)
=
   
 .. .. ..   .. .. .. .... .. 
 . . ··· .   . . ... .   . . ... . 
an1 an2 ··· ann xn1 xn2 . . . xnn 0 0 ... 1
Determinarea inversei X, este echivalentă cu rezolvarea a n sisteme de ecuaţii:
X:,j
0

  
a11 a12 · · · a1n x1j  .. 
a21 a22 · · · a2n x2j  . 
(2.2)
  
= ej =  1  ← j
    
.. .. . ..
· · · ..
  
 . .  .   . 
 .. 
an1 an2 · · · ann x1nj
0

având drept necunoscute elementele din coloana j a inversei, j = 1, n. Folosind metoda Gauss-
Jordan de rezolvare a sistemului compatibil determinat, (2.2), vom obţine că matricea prelungită
[A|ej ] este echivalentă cu matricea [I|A−1 −1
:,j ] unde prin A:,j am notat coloana j din matricea
inversă, adică soluţia X:,j . Dar ı̂n loc să rezolvăm n ecuaţii AX:,j = ej , j = 1, n, ce au aceeaşi
matrice A, putem aplica transformări elementare pe linie (Gauss-Jordan) matricii extinse
Ae = [A|e1 |e2 | · · · |en ] = [A|In ]
şi vom obţine la finalul procedurii matricea echivalentă:
[In |A−1 −1 −1 −1
:,1 |A:,2 | · · · |A:,n ] = [In |A ]

1
2 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

În realitate ı̂nsă nu ştim ı̂n prealabil dacă o matrice pătratică (de dimensiuni mari) este sau
nu singulară. Exploatând modul de mai sus de calcul al inversei, se procedează astfel:
• se bordează matricea pătratică A ∈ Kn×n cu matricea unitate In şi obţinem matricea
extinsă Ae = [A|In ];
• se reduce matricea extinsă la forma scară redusă (Gauss-Jordan);
¥ Dacă prima jumătate a formei scară redusă (adică submatricea constituită din liniile
1, n şi coloanele 1, n) este matricea unitate, adica forma scară redusă a extinsei este:
 ¯ 
1 0 . . . 0 ¯¯ a′11 a′12 . . . a′1n
 0 1 . . . 0 ¯ a′ a′ . . . a′ 
 ¯ 21 22 2n 
 .. .. .. ¯ .. .. .. 
 . . ... . ¯ . . . . . . 
¯ ′
0 0 . . . 1 ¯ an1 an2 . . . ann
′ ′

atunci matricea A este inversabilă şi inversa ei este:


 
a′11 a′12 . . . a′1n
 a′ a′ . . . a′ 
 21 22 2n 
 .. .. .
. . . . ..

 . 
a′n1 a′n2 . . . a′nn
¥ Dacă numărul pivoţilor din prima jumătate a formei scară reduse este mai mic decât
n (adică rangul matricii A este mai mic decât n) atunci matricea este singulară şi nu admite
inversă.
De exemplu pentru matricea extinsă asociată unei matrici A ∈ R4×4 :
 ¯ 
2 −3 7 3 ¯¯ 1 0 0 0
 3 5 1 −5 ¯¯ 0 1 0 0 
Ae =   −4

2 −10 −2 ¯¯ 0 0 1 0 
5 −1 11 1 ¯ 0 0 0 1

forma scară redusă calculată numeric este:


 ¯ 
1 0 2 0 ¯¯ 0 0 0.1667 0.3333
 0 1 −1 −1 ¯ 0 0 0.8333 0.6667 
 ¯ 
 0 0 0 0 ¯¯ 1 0 2.1667 1.3333 
0 0 0 0 ¯ 0 1 −4.6667 −4.3333
Submatricea formată din cele patru linii şi primele patru coloane are doi pivoţi, deci rangul
matricii A este 2, adică este o matrice singulară şi submatricea formată din ultimele 4 coloane
nu este inversa ei!

Exemplul 1. Considerăm matricea:


 
1 1 1
A= 1 2 2 
1 2 3
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 3

Matricea extinsă asociată este:


 ¯   ¯ 
1 1 1 ¯ 1 0 0
¯ 1 1 1 ¯ 1 0 0
¯
Ae = 1 2 2
 ¯ 0 1 0 ↔ 0 1 1
¯
¯ −1 1 0  ↔
¯
1 2 3 ¯ 0 0 1 0 1 2 ¯ −1 0 1
 ¯   ¯ 
1 0 0 ¯¯ 2 −1 0 1 0 0 ¯ 2 −1
¯ 0
 0 1 1 ¯ −1 1 0 ↔ 0 1 0
  ¯ −1 2 −1 
¯ ¯
0 0 1 ¯ 0 −1 1 0 0 1 ¯ 0 −1 1

Deoarece forma scară redusă a matricii A este matricea unitate, ea are rangul 3, deci este
inversabilă şi inversa ei este:  
2 −1 0
A−1 =  −1 2 −1 
0 −1 1

Observaţia 2.1.1 Cele trei transformări elementare pe linie ce se aplică ı̂n reducerea unei
matrici la forma scară se pot exprima matricial.

Şi anume:
¥ interschimbarea a două linii Lj ↔ Lk a unei matrici A ∈ Km×n este echivalentă cu
ı̂nmulţirea matricii A la stânga cu matricea permutare Pπ ∈ Km×K , unde π este permutarea:
 
1 2 ... i ... j ... m
π =  ↓ ↓ ... ↓ ... ↓ ... ↓ 
1 2 ... j ... i ... m

Matricea permutare Pjk , corespunzătoare este:

j k
.. ..
 
1 . .
.. ..
0
 
..
.
 
 . . 
.. ..
 
 

 1 . . 

j  ... ... ... 0 ... ... ... 1 
.. ..
 
. 1 .
 
 
.. .. ..
 
. . .
 
 
 .. . 
. 1 ..
 
 
k ... ... ... 1 ... ... ... 0
 
 
1
 
 

 0 ..
.


1

¥ ı̂nmulţirea liniei Lk a matricii A, cu numărul nenul a, este echivalentă cu ı̂nmulţirea


matricii A la stânga cu matricea pătratică următoare:
4 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

 .. 
1 .
.. ..
0
 
. .
 
 
1 0
 
 
 
k 
 . . . . . . 0 a 0 

 0 1 

 0 ..
. 0


0 1

¥ transformarea elementară aLj +Lk → Lk efectuată asupra matricii A este echivalentă


cu ı̂nmulţirea lui A la stânga cu matricea pătratică:

.. ..
 
1 . .
.. . . ..
0
 
. .
 

 . 

j  ... ... 1 ... 0
 
.. . . ..

. .
 

 . 

k  ... ... a ... 1
 
..

.
 

0 1

Numim ı̂n continuare cele trei tipuri de matrici, matrici elementare de tip 1, 2, 3, şi le
notăm generic cu E. Remarcăm că matricile elementare se obţin efectuând transformările core-
spunzătoare asupra matricii unitate.
Fie A o matrice de tip m × n asupra căreia se efectuează transformări elementare pe linie,
reprezentate de matricile Pjk , de tipul 1, E j (a) - tipul 2 şi respectiv Ejk (a)- tipul 3.

Observaţia 2.1.2 O matrice de tipul 3, Ejk (a) = (eIJ ), este, pentru j < k, o matrice inferior
triunghiulară (adica eIJ = 0, pentru orice I < J) şi respectiv o matrice superior triunghiulară
dacă j > k (superior triunghiulară ı̂nseamnă că eIJ = 0 pentru orice I > J).

Exemplu
   
1 0 0 1 0 0
E13 (7) =  0 1 0  , iar E32 (−5) =  0 1 −5 
7 0 1 0 0 1

Observaţia 2.1.3 Se poate verifica prin calcul direct că produsul a două matrici inferior tri-
unghiulare este o matrice inferior triunghiulară şi analog produsul a două matrici superior
triunghiulare este superior triunghiulară.
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 5

Proprietate: Matricile elementare sunt inversabile şi inversa fiecăreia este de acelaşi tip ca şi
matricea directă, deoarece transformările elementare pe linie sunt reversibile:
Lj ↔Lk L′j ↔L′k
1 : A −→ A′ −→ A,
adică Pjk A = A′ şi Pjk A′ = A ⇔ Pjk Pjk A′ = A′ ⇔ Pjk Pjk = Im ⇔ P−1
jk = Pjk

aLj →Lj (1/a)L′j →L′j


2: A −− −→ A −− −→ A, a 6= 0. Exprimând aceste transformări matricial, avem:

E (a)A = A′ şi E j (1/a)A′ = A ⇔ E j (a)E j (1/a)A′ = A′ ⇔ E j (a)E j (1/a) = Im ⇔


j

⇔ (Ej (a))−1 = E j (1/a) .

aLj +Lk →Lk (−a)L′j +L′k →L′k


3: A − − −− −→ A − − −− −→ A, a 6= 0, şi la fel ı̂n eprimarea matricială :

Ejk (a)A = A′ iar Ejk (−a)A′ = A ⇔ Ejk (a)Ejk (−a)A′ = A′ ⇔ Ejk (a)Ejk (−a) = Im ⇔
(Ejk (a))−1 = Ejk (−a)

Deoarece forma scară (redusă) S, a unei matrici A, se obţine printr-o succesiune de trans-
formări elementare pe linie, reprezentate de matricile elementare E1 , E2 , . . . , EN , rezultă că
formă scară se exprimă ca un produs:
S = EN EN −1 · · · E1 A
unde E1 , E2 , . . . , EN sunt matrici elementare de tip 1, 2 şi 3. Procedura de calcul a inversei unei
matrici nesingulare prin metoda reducerii Gauss-Jordan conduce la o proprietate importanţa a
matricilor inverse ce se exploatează ı̂n numeroşi algoritmi de calcul numeric. Şi anume:
Propoziţia 2.1.1 Orice matrice pătratică A, inversabilă, poate fi exprimată ca un produs de
matrici elementare de forma 1, 2, 3.
Demonstraţie: Fie E1 , E2 , . . . , EN matricile elementare ce reprezintă transformările elementare
aplicate matricii extinse Ae = [A|In ] pentru a fi dusă la forma scară redusă [In |A−1 ]. Astfel
avem că:
EN · · · E2 E1 A = In
Notând cu E := EN · · · E2 E1 rezultă că EA = In , adică A = E −1 = E1−1 E2−1 · · · EN −1

(deoarece ı̂n general (M · N )−1 = N −1 · M −1 . Dar am demonstrat că inversele unor matrici
elementare de tipul 1, 2, respectiv 3 sunt tot matrici elementare de tipul 1, 2, respectiv 3. Deci
matricea A, inversabilă, se poate exprima ca un produs de matrici elementare. Exprimarea nu
este ı̂nsă unică. Două persoane care reduc matricea extinsă la forma scară redusă pot alege ı̂n
ordine diferită tipurile de trasnformări elementare!
Pe baza acestei proprietăţi rezultă şi:
Propoziţia 2.1.2 Calculul produsului A−1 B dintre inversa unei matrici pătratice de tip n × n
şi o matrice B de tip n × p se poate realiza prin reducerea la forma scară redusă a matricii
extinse [A|B].
6 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

Demonstraţie: Fie E1 , E2 , . . . , EN matricile elementare ce reprezintă transformările ce se aplică


matricii extinse pentru a o reduce la forma redusa: [In |X]. Transformările E1 , E2 , . . . , EN ac-
tionează simultan şi asupra matricii A şi a matricii B. Din EN . . . E2 E1 A = In şi EN . . . E2 E1 B =
X rezultă că EN . . . E2 E1 = A−1 şi deci X = A−1 B.

2.2 Determinarea compatibilităţii/incompatibilităţii unui sistem din anal-


iza formei scară a matricii sale prelungite
Problemele legate de existenţa soluţiilor unui sistem de ecuaţii liniare pot fi rezolvate analizând
pivoţii ı̂n forma scară a matricii prelungite a sistemului.

Propoziţia 2.2.1 Un sistem de m ecuaţii liniare cu n necunoscute AX = b este incompatibil,


dacă şi numai dacă forma scară a matricii prelungite A = [A|b] are ultima linie nenulă de
forma: £ ¤
L = 0 0 . . . 0 | c , c 6= 0

Demonstraţie: Presupunem că ultima linie nenulă a formei scară este de tipul precizat. Atunci
ecuaţia corespunzătoare este:

0x1 + 0x2 + . . . + 0xn = c 6= 0

şi evident nu are soluţie, deci sistemul iniţial nu are soluţie (este incompatibil).
Reciproc, dacă sistemul este incompatibil atunci rangul matricii prelungite este diferit de
rangul matricii sistemului şi prin urmare dacă rangul matricii sistemului este r, atunci ultima
linie nenulă din forma scară a matricii sistemului este linia r, iar ı̂n forma scară a matricii
prelungite este linia r + 1:
£ ¤
Lr+1 = 0 0 . . . 0 | c , c 6= 0

Exemplul 2.
În concluzie forma scară a unei matrici are următoarele aplicaţii:
◮ Calculul rangului unei matrici: numărul pivoţilor din forma scară a unei matrici A ∈
Km×n este egal cu rangul matricii;
◮ Determinarea compatibilităţii sau incompatibilităţii unui sistem de m ecuaţii cu n ne-
cunoscute AX = b; notând [A′ |b′ ] forma scară a matricii prelungite a sistemului, [A|b], extragem
următoarele informaţii:
• dacă forma scară a matricii prelungite are ultima linie nenulă de forma:
£ ¤
L = 0 0 . . . 0 | c , c 6= 0

atunci sistemul este incompatibil;


Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 7

• dacă numărul de pivoţi ı̂n forma scară a matricii prelungite coincide cu numărul
de pivoţi ı̂n forma scară A′ , a matricii A, sistemul este compatibil (deoarece cele două matrici
au acelaşi rang).
Forma scară redusă are aplicaţii suplimentare:
◮ Reducând matricea prelungită [A|b] a unui sistem de n ecuaţii cu n necunoscute, AX =
b, la forma scară redusă [A′ |b′ ] extragem următoarele informaţii:
• Dacă [A′ |b′ ] = [In |s] atunci sistemul este compatibil determinat şi unica soluţie a
sistemului este plasată pe ultima coloană a formei scară reduse, adică colana notată s.
• Dacă forma scară redusă este [A′ 6= In |b′ ] atunci sistemul nu este compatibil
determinat, ci este compatibil nedeterminat dacă numărul de pivoţi din A′ coincide cu numărul
de pivoţi din [A′ |b′ ], şi respectiv este incompatibil dacă ultima linie nenulă din [A′ |b′ ] este de
forma: £ ¤
L = 0 0 . . . 0 | c , c 6= 0
◮ Dacă A ∈ Kn×n este o matrice pătratică atunci reducând matricea extinsă Ae = [A|In ]
la forma scară redusă concluzionăm că:
• matricea A este inversabilă dacă forma scară redusă a matricii Ae este de forma
[In |M ] şi ı̂n plus inversa A−1 = M ;
• Matricea A este o matrice singulară dacă forma scară redusă a matricii extinse
este de forma [A′ 6= In |M ].
◮ Pentru a calcula un produs de forma A−1 B, unde A este matrice pătratică de tip n × n,
iar B este o matrice de tip n × p se constituie matricea extinsă, M = [A|B], asociată celor două.
Dacă forma scară redusă a lui M este de forma [In |C], atunci C = A−1 B, iar dacă forma scară
redusă este [A′ 6= In |D] atunci matricea A este singulară şi D nu reprezintă produsul A−1 B.

Observaţia 2.2.1 Toate consideraţiile şi proprietătile formei scară, respectiv a formei scară
redusă asociate unei matrici cu elemente ı̂n corpul comutativ K = R sau K = C rămân
valabile pentru matrici cu valori ı̂n corpul comutativ Zp , p număr prim, al claselor de resturi
modulo p.

Matricile cu elemente ı̂n Zp , p număr prim, au numeroase aplicaţii ı̂n criptografie.

2.3 Aplicaţii ale calculului matricial pe Zp ı̂n criptografie


2.3.1 Problematica criptografiei
În ultimul deceniu comunicaţiile şi tranzacţiile prin internet au impus şi condus la dezvoltarea a numeroase
metode matematice destinate asigurării securităţii informaţiei. Ştiinţa care se ocupă cu dezvoltarea unor astfel de
metode se numeşte criptografie. Mai precis, criptografia este ştiinţa codificării informaţiilor ı̂n scopul securizării
comunicării lor către un destinatar. Numele vine din limba greacă: cryptos ı̂nseamnă ascuns, iar grafie- scriere.
În literatura de specialitate orice metodă dezvoltată ı̂n scopul asigurării securităţii informaţiei este prezentată
ı̂n următorul context:
Alice trimite sau intenţionează să-i trimită un mesaj lui Bob printr-un canal de comunicaţie nesigur. Insecu-
ritatea transmiterii se datorează unui adversar, numit generic Oscar, care poate intercepta şi modifica informaţia
(mesajul transmis printr-un canal de comunicaţie poate fi eronat sau perturbat şi datorită unor cauze de ordin fizic:
8 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

zgomotul ce interferă cu informaţia transmisă, ştergerea unor biţi etc; studiul detectării şi corectării erorilor de
transmitere a informaţiei se bazează de asemenea pe tehnici de algebră liniară şi va fi abordat ı̂ntr-un alt curs).
Pentru a asigura confidenţialitatea mesajului, Alice ı̂l transformă, secretizează, ı̂n aşa fel ı̂ncât Oscar, adver-
sarul, dacă l-ar intercepta ar avea nevoie teoretic de un timp foarte ı̂ndelungat pentru a-l descifra, chiar dacă are
resurse de calcul foarte mari. Oscar, (the evil), intenţionează fie doar să citească mesajul, fie să-l modifice sau
să-i trimită lui Alice propriul său mesaj, pentru a o induce ı̂n eroare, făcând-o să creadă că Bob i l-a transmis.
Pentru a preveni acest al doilea comportament al adversarului, pe lângă confidenţialitate mai trebuie asigurată şi
autenticitatea mesajului, astfel ı̂ncât Bob să fie sigur că mesajul primit a fost expediat de Alice.
Vocabularul specific criptografiei:
• mesajul original se numeşte plaintext;
• mesajul codificat se numeşte ciphertext (text cifrat);
Procesul de transformare a plaintextului ı̂n ciphertext se numeşte criptare, iar procesul invers se numeşte
decriptare.
O schemă sau metodă folosită pentru criptare se numeşte sistem criptografic sau cifru.
Bob, destinatarul primeşte mesajul criptat şi ı̂l decriptează exploatând metoda de criptare. Se presupune că
Alice şi Bob au stabilit ı̂n prealabil detaliile modalităţii de criptare şi decriptare.
Tehnicile folosite de către Oscar pentru decriptarea mesajului, fără a cunoaşte detaliile metodei de criptare,
constituie domeniul numit criptanaliză. Criptanaliza are drept scop spargerea codului.
Criptografia şi criptanaliza sunt subdomenii ale criptologiei.
Formalizat matematic, un sistem de criptare este constituit din:
1. mulţimea P a plaintextelor, adică a mesajelor originale pe care expeditorul intenţionează să le transmită.
Un mesaj este un şir de caractere dintr-un alfabet fixat sau un şir de biţi.
2. Mulţimea textelor cifrate, C, la fel constituite din şiruri de caractere dintr-un acelaşi alfabet sau şiruri de
biţi.
3. O mulţime de elemente, K, (deocamdată neprecizate) numite chei. Fiecare cheie K defineşte o metodă de
criptare (care este o aplicaţie eK : P → C ce asociază fiecărui plaintext P , textul cifrat C = eK (P )) şi una de
decriptare dK (care este o aplicaţie dK : C → P ce asdociază unui text cifrat C, plaintextul P din care provine:
dK (C) = P . Dacă dK = e−1 K , sistemul de criptare se numeşte sistem simetric.

2.3.2 Cifrul Hill


Cifrul Hill este un sistem de criptare simetric, cu cheie secretă, bazat pe matrici cu elemente
din Zp , inelul claselor de resturi modulo p. Pentru a aplica rezultatele de algebră liniară relativ la
reducerea unei matrici la forma scară, considerăm ı̂n continuare că p este un număr prim şi deci
Zp este un corp comutativ. Hill a definit iniţial cifrul ce-i poartă numele, pentru Z26 . Deoarece
Z26 nu este corp (nu orice element nenul admite invers modular) apar o serie de diferenţe de
abordare care vor fi subliniate la sfârşitul prezentării cifrului ı̂n Z29 .
Cifrul Hill este un cifru de substituţie poligrafică, adică un cifru care se defineşte astfel:
• se consideră alfabetul limbii engleze format din 26 de litere majuscule, la care se adaugă
caracterele punct ·, semnul ı̂ntrebării ? şi blank:

A B C D E F G H I J K L M N O P Q R
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
S T U V W X Y Z · ? blank
18 19 20 21 22 23 24 25 26 27 28
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 9

În procesul de criptare/ decriptare, reprezentăm aceste caractere prin ”alfabetul”


Z29 = {0, 1, 2, . . . , 28}, corespondenţa dintre caracterele alese pentru a exprima mesaje şi nu-
merele din Z29 fiind ilustrată ı̂n tabelul de mai sus.
◮ Fiecare mesaj exprimat ı̂n alfabetul Z29 este divizat ı̂n grupuri adiacente de câte n
elemente din Z29 . Numarul n este ales, fixat, de comun acord de către Alice şi Bob. Un astfel
de grup se numeşte grup n-poligrafic. Dacă ultimul grup are doar k < n elemente, atunci
se completează restul de poziţii până la n cu 28 (adică cu blank). Fie m numărul grupurilor
poligrafice constituite din mesajul original.
◮ Alice constituie o matrice A de m linii şi n coloane cu elemente din Z29 : pe linia i
incluzând codurile din Z29 pentru cel de-al i-lea grup poligrafic.
◮ Mulţimea cheilor K, este mulţimea matricilor pătratice de tip n × n, inversabile, cu
elemente din Z29 .
◮ Alice alege o cheie K conform unei ı̂nţelegeri prealabile cu Bob (care ı̂şi notează cheia
şi o păstrează ı̂n secret). Cheia K se foloseşte pentru a cripta un grup n-poligrafic exprimat
ı̂n alfabetul Z29 astfel: se ı̂nmulţeste matricea K cu matricea coloană a elementelor din Z29 ce
codifică grupul respectiv. De exemplu dacă un grup de n caractere consecutive din mesaj este
codificat de numerele z1 , z2 , . . . , zn ∈ Z29 , atunci criptarea grupului
 
z1
 z2 
 
 .. 
 . 
zn

este constituită din setul de n numere din Z29 , c1 , c2 , . . . , cn , unde:


   
c1 z1
 c2   z2 
 ..  = K  .. 
   
 .   . 
cn zn

Pentru a cripta ı̂ntregul mesaj format din m grupuri n-poligrafice se ı̂nmulţeste transpusa
lui A la stânga cu matricea K şi se obţine B = KAT = [KAT:,1 |KAT:,2 | · · · |KAT:,m ]. Înmulţirea
celor două matrici se efectuează modulo 29. Astfel pe coloana j, j = 1, m, a matricii B este
plasată cifrarea celui de-al j-lea grup poligrafic din mesajul original.
◮Pentru a transmite mesajul criptat, Alice concatenează coloanele matricii B (transcriind
coloană după coloană) rezultând un text cifrat exprimat ı̂n alfabetul Z29 . Transformă acest text
conform tabelului de mai sus, ı̂ntr-un text ı̂n alfabetul

A, B, C, . . . , X, Y, Z, ·, ?, blank

şi ı̂i transmitem lui Bob mesajul astfel rezultat.


◮ Pentru a decripta mesajul, Bob rescrie ciphertextul ı̂n alfabetul Z29 reconstituie B şi
pentru că B = KAT , calculează inversa lui K (mod 29) şi ı̂nmultesţe matricea B la stânga cu
10 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

K −1 , obţinând AT . Constituie apoi matricea A şi ı̂i concatenează liniile pentru a citi mesajul
transmis.
Remarcăm că o problemă fundamentală este alegerea cheii K ı̂n aşa fel ı̂ncât să avem cer-
titudinea că este o matrice inversabilă. Cum Z29 este corp, orice matrice de determinant nenul
este inversabilă. În loc să definim la ı̂ntâmplare o matrice K de tip n × n cu elemente din
Z29 şi apoi să-i calculăm determinantul pentru a vedea dacă este inversabilă sau nu, se genează
matricea inversabilă, ca produs de matrici elementare de tipul 1, 2, 3, cu elemente din Z29 .
Pentru exemplul următor generăm o cheie K, ca produs de matrici elementare de tip 3.
Presupunem că cheia este destinată cifrului Hill, ce acţionează asupra unui grup 3–poligrafic
(adica mesajul este divizat ı̂n frupuri adiacente de trei caractere) Astfel definim cheia K ∈ Z3×3
29 :
 
22 27 18
K = E13 (18)E23 (5)E12 (11)E32 (17)E31 (9)E21 (27) =  18 28 5 
4 17 1

Subliniem că ı̂n acest produs am luat matrici de tip Ejk (a) ∈ Z3×3 29 , corespunzătoare atât
unor perechi (j,k) cu j < k cât şi j > k. Dacă luăm doar matrici corespunzătoare la indici
j < k, produsul lor era o matrice inferior triunghiulară, care se inversează rapid (deci ar uşura
munca lui Oscar!).
Deoarece inversa unei matrici Eij (a) este Eij (−a (mod 29)) şi ı̂n general (AB)−1 = B −1 A−1
avem că:

K −1 = E21 (−27)E31 (−9)E32 (−17)E12 (−11)E23 (−5)E13 (−18)


= 
E21 (2)E31 (20)E
32 (12)E12 (18)E23 (24)E13 (11) =
1 18 8
=  2 8 11 
20 24 14

Prin urmare cunoscând transformările elementare ce definesc matricea K, nu este nevoie să
inversăm matricea K printr-o anume procedură, ci simplu exprimăm inversa tot ca un produs
de matrici elementare, care implică calcule mai simple şi mai rapide decât orice metodă de
inversare (care ar implica calculul x−1 (modulo 29), pentru diverse elemente nenule x ∈ Z29 ;
algoritmul de calcul al inversului modular consumă mult timp, ori ı̂n criptanaliză timpul este
”preţios”!).

Exemplul 3. Alice doreşte să ı̂i transmită lui Bob mesajul:

LIPSESC LA ALGEBRA.

Pentru a-l cripta folosind cheia K de mai sus, codifică ı̂n prealabil mesajul cu elemente din
alfabetul Z29 , constituind o matrice linie::
£ ¤
M= 11 8 15 18 4 18 2 28 11 0 28 0 11 6 4 1 17 0 26
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 11

apoi divide mesajul codificat ı̂n grupuri 3-poligrafice pe care le inserează pe liniile unei matrici:
 
11 8 15
 18 4 18 
 
 2 28 11 
 
A=  0 28 0 

 11 6 4 
 
 1 17 0 
26 28 28

Deoarece ultima linie nu conţine decât un element o completează cu doi de 28, adică 2 blankuri.
Efectuând ı̂nmulţirea modulo 29, B = KAT , obţine matricea B:
 
3 16 12 2 12 17 5
B= 4 4 5 1 9 1 0 
21 13 2 12 5 3 28

Prin urmare fiecare 3-grup poligrafic este cifrat pe câte o coloană a matricii B. De exemplu
textul cifrat pentru grupul LIP este 3, 4, 21, pentru SES este 16,4, 13, etc. Transcriind coloană
după coloană, dar inlocuind numerele din Z29 cu litere rezultă următorul mesaj cifrat transmis
de Alice lui Bob:
DEVQENMFCCBMMJFRBDFA
Bob reconstituie matricea B din textul cifrat şi calculează
 
11 18 2 0 11 1 26
K −1 B (mod 29) =  8 4 28 28 6 17 28 
15 18 11 0 4 0 28

Concatenând coloană după coloană, şi ı̂nlocuind elementele din Z29 cu caracterele pe care le
codifică poate citi mesajul:
LIPSESC LA ALGEBRA.

Oride câte ori se lansează un nou sistem de criptare, se ı̂ncearcă şi să se demonstreze cât de
dificilă este problema spargerii cifrului, adică se efectuează criptanaliza sistemului.

2.3.3 Spargerea cifrului Hill


Arătăm ı̂n continuare că pe baza unor rezultate de algebră liniară relativ la matrici cu ele-
mente din R, valabile şi pentru matrici cu elemente din Zp , cu p număr prim, un adversar ar
putea reuşi să spargă cifrul Hill, adică să afle cheia K, dacă ı̂n prealabil a dedus dimensiunea
n a matricii cheie (adică lungimea unui grup poligrafic ı̂n care Alice şi Bob divizează mesajul
original, respectiv pe cel criptat) şi a reuşit să identifice o pereche (plaintext, ciphertext) ale
cărei texte admit o descompunere ı̂n exact n grupuri n-poligrafice:
Teorema de spargere a cifrului Hill. Dacă Oscar află prin numeroase observaţii şi teste
lungimea n a grupului poligrafic folosit de Alice şi Bob ı̂n criptare, are un plaintext format din
12 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

n grupuri poligrafice şi a obţinut criptarea acestuia, atunci el poate deduce cheia cifrului dacă
matricea pătratică A asociată plaintextului este nesingulară.

Demonstraţie: Remarcăm că ı̂n enunţul teoremei se afirmă că plaintextul trebuie să conţină
n grupuri poligrafice, adică matricea A, respectic AT asociată este matrice pătratică. Con-
form sistemului de criptare, B = KAT , unde AT are drept coloane cele n grupuri poligrafice
consecutive din plaintextul a cărui cifrare o cunoaşte. Deoarece matricea A (deci şi AT ) sunt
inversabile, rezultă că cheia K = B(AT )−1 . Dar matricea B fiind produs de matrici inversabile
este şi ea inversabilă (şi la fel transpusa sa) şi deci inversa cheii, necesară pentru decriptare este
K −1 = AT B −1 .

Deoarece timpul de lucru este important ı̂n criptanaliză (ı̂n spargerea cifrului), Oscar ar
afla cel mai rapid inversa cheii ca fiind produsul AT B −1 aplicând următoarea procedură (ce se
bazează pe faptul că ı̂n general pentru a calcula produsul M −1 N se reduce la forma scară redusă
matricea [M |N ]):
• Deoarece K −1 = AT B −1 , aplică o transformare acestei relaţii pentru a obţine un produs
de forma M −1 N , şi anume ı̂i aplică operatorul de transpunere şi obţine ţinând seama că, ı̂n
general, (C T )−1 = (C −1 )T :
(K −1 )T = (B T )−1 A
• constituie matricea extinsă de tip n × 2n, Me = [B T |A];
• aplică transformări elementare pe linie (cu toate operaţiile de ı̂nmulţire, adunare, inversare
1/a, efectuate modulo 29) pentru a reduce matricea Me la forma scară redusă:

[In |P ]

Astfel P = (K −1 )T şi K −1 = P T .
Cu mult mai dificil sparge Oscar cifrul dacă nu se mai adaugă celor 26 de majuscule 3
caractere ı̂n plus şi deci codificarea literelor mari se face cu elemete din Z26 . Cum 26 nu este
număr prim, nu orice element nenul din Z26 este inversabil. Şi anume este inversabil orice
element x care este relativ prim cu 26, adică c.m.m.d.c al lui x şi 26 este 1. Astfel dacă
determinantul matricii A din Teorema de spargere a cifrului Hill este nenul şi egal, de exemplu,
cu 10, Oscar nu poate afla cheia ca mai sus. Deci practic ar trebui să identifice o pereche
(plaintext, ciphertext) pentru care matricea ataşată A are determinant nenul şi determinatul
este relativ prim cu 26. Mai mult algoritmul de reducere a unei matrici la forma scară nu este
funcţional ı̂n Zm cu m neprim.

2.4 Metoda reducerii la forma scară ı̂n virgulă mobilă.


Rezolvarea sistemelor de ecuaţii liniare având matricea sistemului de dimensiuni mari se
rezolvă nu prin calcul manual, ci implementând metoda reducerii la forma scară (redusă) a
matricii prelungite, precum şi alte metode pe care le pune la dispoziţie algebra liniară. În
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 13

timp ce rezolvarea manuală implică folosirea aritmeticii exacte, ı̂n rezolvarea cu calculatorul
este implicată aritmetica ı̂n virgulă mobilă, cunoscută ı̂n CS ca şi floating point arithmetic.
În timp ce reducerea la forma scară a unei matrici prin metoda ”manuală” folosim fracţii de
forma 5/3, 7/9, etc, pentru a ı̂nmulţi, de exemplu, elementele unei linii, ı̂ntr-o reprezentare ı̂n
calculator ce ar stoca de exemplu 15 cifre zecimale, numărul 5/3 = 1.6666666666666666... ar
fi reprezentat de numărul ce se obţine din 1.66666666..... printr-o trunchiere, urmată eventual de
o rotunjire. Aceste reprezentări nu sunt exacte şi ele introduc erori de aproximare şi rotunjire.
În problemele ı̂n care sunt implicate mii de calcule eroarea se poate cumula semnificativ. Cum
ı̂n reducerea matricilor de dimensiuni mari la forma scară sunt implicate ı̂n calcule numeroase
astfel de reprezentări trunchiate şi rotunjite discutăm modalitatea de a evita cumularea unor
erori semnificative.
Multimea numerelor reale de forma:
f = ±.c1 c2 . . . cp × be , c1 6= 0,
unde b şi p sunt fixate, iar e este un număr ı̂ntreg ce ia doar valori ı̂ntre ı̂ntregii emin , emax , adică
emin ≤ e ≤ emax , se numesc numere ı̂n virgulă flotantă ı̂n baza b. c1 , c2 , . . . , cp sunt cifre ı̂n
baza b, adică c1 , c2 , . . . , cp ∈ {0, 1, . . . , b − 1}. e se numeşte exponent, iar p, precizie.
0.c1 c2 . . . cp se numeşte mantisa numărului f .
Sistemele de calcul (computers) folosesc reprezentarea numerelor reale ı̂n virgulă mobilă,
ı̂n baza 2, ı̂n timp ce calculatoarele de buzunar, ı̂n baza 10 .
Notăm cu F(b, p, emin , emax ) mulţimea numerelor ı̂n baza b, având precizia p şi exponentul
e ı̂ntre cele două limite.
Fie fmin , fmax cel mai mic, respectiv cel mai mare număr din F(b, p, emin , emax ). Evident că
mulţimea F(b, p, emin , emax ) este finită. Deci nu orice număr real poate fi exprimat exact printr-
un număr din această mulţime şi mai mult numerele reale din afara intervalului [fmin , fmax ] nici
măcar nu pot fi reprezentate ı̂n calculator, deci nu pot fi implicate ı̂n calcule.
Dacă x ∈ R este un număr real arbitrar şi el intră ı̂n datele cu care lucrează un program ı̂n
limbajul X, ce foloseşte reprezentarea ı̂n virgulă mobilă definită de F(b, p, emin , emax ), atunci
el este reprezentat ı̂n calculator prin numărul f l(x) care este cel mai apropiat număr de x din
mulţimea finită F(b, p, emin , emax ).
Pentru a ı̂ntelege mai rapid problematica pe care o discutăm dăm exemple ı̂n baza b = 10,
nu ı̂n baza 2.
Să determinăm de exemplu, aproximarea f l(x) ı̂n baza 10, cu precizia p a unui număr real
x ∈ [(fmin , fmax ]. În acest scop se exprimă numărul x ı̂n forma zecimală ±0.c1 c2 . . . cp cp+1 ...10k ,
cu prima cifră după virgulă nenulă: c1 6= 0. Pentru a determina cel mai apropiat număr de x
din F(10, p, emin , emax ) se procedează astfel:
±0.c1 c2 . . . cp × 10k
½
dacă cp+1 < 5
f l(x) = k
±((0.c1 c2 . . . cp ) + 10 ) × 10 dacă cp+1 ≥ 5
−p

Exemplul 4. a) Să determinăm reprezentarea numărului x = 5/3. 5/3 = 1.66666666... =


0.166666666... × 101 ı̂n virgulă mobilă cu precizia p=4. Trunchiem numărul 0.166666666666...
la p + 1 = 5 zecimale: 0.16666 .
14 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

După trunchiere se efectuează rotunjirea, adică se determină numărul din F cel mai apropiat
de x:
Deoarece zecimala a 5-a ı̂n cazul exemplului nostru este mai mare decât 5 rotunjim numărul
trunchiat adunând la 0.1666 pe 10−4 = 0.0001 şi avem f l(x) = 0.1667 × 101 . Remarcăm că
se pătrează exponentul din exprimarea numărului real ca un număr zecimal cu prima cifră după
punctul zecimal diferită de zero.
b) Să reprezentăm numărul x = −95/7 = −13.571428571428... = −0.13571428571428...102
tot cu precizia 4. Cifra a 5-a a după punctul zecimal este 1, deci f l(−95/7) = −0.1357 × 102 .
c) Reprezentarea numărului −327/53 cu precizia p = 4: exprimăm numărul ı̂n formă
zecimală −327/53 = −6.1698113207... = −0.61698113207... × 101 . Zecimala a 5-a este
c5 = 8 > 5. Prin urmare adunăm mantisei fără semn 0.c1 c2 c3 c4 = 0.6169 pe 10−4 = 0.0001 şi
avem, 0.6169 + 0.0001 = 0.617. Astfel f l(−327/53) = −0.6170 × 101

Subliniem că aproximarea numerelor reale x prin numere f l(x) dintr-un sistem dat
F(b, p, emin , emax ) prezintă, ı̂n general, anomaliile următoare:

f l(x + y) 6= f l(x) + f l(y), şi f l(xy) 6= f l(x)f l(y)

De exemplu dacă x = 9/7 = 1.28571... şi y = 17/7 = 2.42857..., atunci ı̂n sistemul de
reprezentare ı̂n virgulă mobilă de 4 zecimale precizie, ı̂n baza 10 avem:

f l(x) = 0.1286 × 101 , f l(y) = 0.2429 × 101 , f l(x) + f l(y) = 0.3715 × 101

iar
x + y = 3.714285... f l(x + y) = 0.3714 × 101 6= f l(x) + f l(y)

Exemplul 5. Verificaţi că f l(2/3)+f l(f l(2/3)−f l(1/3)) 6= f l((f l(2/3)+f l(2/3))−f l(1/3)
folosind precizia p = 8.

Pentru a ilustra un caz ı̂n care erorile de rotunjire cresc semnificativ, luăm următorul exemplu
din mulţimea numerelor ı̂n virgulă flotantă, de precizie p=4, baza zece şi exponent e=10:
presupunem că avem de efectuat operaţiile 100000(25.743 + 0.3162) ı̂n sistemul de numere
ı̂n virgulă flotantă specificat. Notăm x = 25.743, y = 0.3162. Atunci:

f l(x) = 0.2574 × 102 , f l(y) = 0.3162 × 100

Pentru a efectua adunarea f l(x) + f l(y) exprimăm cele două cu acelaşi exponent, 2 şi avem ı̂n
aritmetica uzuală

f l(x) + f l(y) = 0.2574 × 102 + 0.003162 × 102 = 0.260562 × 102

dar ı̂n reprezentarea ı̂n sistemul fixat suma este0.2606 × 102 . Prin urmare s-a introdus o eroare
de 0.0037.
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 15

Produsul 100000(25.743 + 0.3162) este reprezentat de

f l((0.1 × 106 )(0.2606 × 102 )) = f l(0.02606 × 108 ) = 0.0260 × 108

Deci rezultatul ı̂nmultirii ı̂n sistemul ı̂n virgulă mobilă este 2600000, ı̂n timp ce rezultatul
ı̂nmultirii manuale este: 100000(25.743 + 0.3162) = 2605920. Acest exemplu ilustrează că
ı̂nmulţirea cu numere foarte mari sau echivalent ı̂mpărţirea la numere mici poate cauza erori
mari. Aceste erori mari se datorează faptului că rezultatul ı̂nmulţirii cu un număr ”mare” (mai
mare decât 10p ı̂n cazul nostru) conduce la o trunchiere ce implică renunţarea la multe zecimale
pentru a obţine reprezentantul dintr-o mulţime cu precizia p.
Să luăm acum un exemplu de sistem pe care să-l rezolvăm prin metoda reducerii la forma
scară a matricii prelungite folosind aritmetica exactă şi aritmetica ı̂n virgulă flotantă, de precizie
specificată. Pentru a sublinia diferenţele lucrăm cu precizie redusă, de exemplu de 3 zecimale.
Exemplul clasic care ilustrează diferenţele ı̂ntre cele două ”aritmetici” este:

−104 x + y = 1
x+y = 2

Soluţia sistemului este x = 1/1.0001 ≈ 0.9999, y = 1.0002/1.0001 ≈ 1.00009999


Rezolvăm acum sistemul sistemul prin reducerea la forma scară a matricii prelungite, folosind
aritmetica ı̂n virgulă mobilă cu 3 zecimale a:
¯ ¯
−0.1 × 10−3 0.1 × 101 ¯¯ 0.1 × 101
· ¸ · ¸
−10−4 1 ¯¯ 1 104 L1 +L2 →L2
− − − − − −→
1 1 ¯ 2 0 0.1 × 105 ¯ 0.1 × 105

deoarece:
3 zecimale
f l(104 + 1) = f l(10001) = f l(0.10001 × 105 ) = 0.100 × 105
şi
3 zecimale
f l(104 + 2) = f l(10002) = f l(0.10002 × 105 ) = 0.100 × 105
Astfel obţinem soluţia x = 0, y = 1. x = 0 este departe de valoarea exactă x = 1/1.0001 ≈
0.9999, ı̂n timp ce y este suficient de aproape.
Cauza acestei erori mari se datorează alegerii unui pivot mic, −10−4 = −0.0001, ceea ce
conduce la ı̂nmulţirea liniei L1 cu număr mare 1/0.0001 = 104 . Într-adevăr dacă schimbăm
liniile ı̂ntre ele pentru a avea pivot mare, reducerea la forma scară conduce la:
¯ ¯
−104 1 ¯¯ 1
· ¸ · ¸
L1 ↔L2 1 1 ¯¯ 2
− − − − − −→ −→
1 1 ¯ 2 −10−4 1 ¯ 1
· ¯ ¸
10−4 L1 +L2 →L2 1 1 ¯¯ 2
− − − − − −→
0 1 ¯ 1
deoarece
3 zecimale
f l(10−4 + 1) = f l(0.10001 × 101 ) = 0.100 × 101 = 1
16 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007

şi
3 zecimale
f l(2 × 10−4 + 1) = f l(0.10002 × 101 ) = 0.100 × 1 = 1
şi obţinem soluţia x = y = 1, care este foarte apropiată de cea exactă.
Strategia de schimbare a liniilor astfel ı̂ncât pivotul din linia ”ı̂n lucru” să fie cel mai mare
element ı̂n valoare absolută de pe coloana sa, se numeşte pivotare parţială. Pivotarea parţială
ı̂nlătură o parte din efectele aproximării numerelor reale prin numere ı̂n virgulă flotantă de
precizie fixată.
La prima vedere am fi tentaţi să credem că dacă creştem precizia anomaliile ilustrate se
atenuează. Parţial este adevărat, dar crescănd precizia, putem da din nou alte exemple care ı̂n
precizia respectivă conduc la aceleaşi erori de aproximare.

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