Documente Academic
Documente Profesional
Documente Cultură
Cursuri de Criptografie Informatica
Cursuri de Criptografie Informatica
E si o metoda de decriptare d
D
functiile e
: P C si d
: C P au proprietatea
d
(e
(w)) = w, w P
C = {|w P, K, = e
(w)}
Functia e
= e
1
(w)
Fiind date d
()
w este imposibil de determinat din , fara a cunoaste d
(a
1
a
2
...a
n
) = a
(1)
a
(2)
...a
(n)
= b
1
b
2
...b
n
d
(b
1
b
2
...b
n
) = b
1
(1)
b
1
(2)
...b
1
(n)
Criptarea
Textul clar se imparte in blocuri de n, n 2 caractere, si
ecaruia i se va aplica o permutare prexata.
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 1 (1)
Fie cheia de criptare permutarea
1 2 3
2 1 3
Criptarea
Textul clar GRUPELE ANULUI III se imparte in grupuri de
cate trei caractere (consideram si caracterul spatiu, notat
)
GRU PEL EA NUL UI III
Textul criptat va ....?
si eliminand gruparile...?
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 1 (2)
Solutia
Textul criptat va ... RGU EPL EA UNL IU III
si eliminand gruparile... RGUEPLEAUNLIUIII
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (1)
Fie d 2 un numar intreg xat. Denim
P = C = (Z
26
)
d
K = {M|M M
d
(Z
26
) , det (M) = 0}
O cheie de criptare este o matrice M patrata nesingulara de
dimensiune d, cu elemente din (Z
26
), iar M
1
formeaza
cheia de criptare.
Criptarea.Textul clar w se imparte in blocuri de lungime
d : w =
1
2
. . .
n
, |
i
| = d
(ultimul bloc se completeaza - eventual - pana se ajunge la
dimensiunea d).
Textul criptat va
x =
1
2
. . .
n
,
i
= e
M
(
i
) =
i
M(mod26), (1 i n).
Decriptarea. Se foloseste relatia d
M
(
i
) =
i
M
1
(mod26).
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (2)
Consideram exemplul in care d = 2 si cheia M =
3 3
2 5
a
carei inversa este matricea M =
15 17
20 9
.
Daca w = FRAC, avem
1
=
F R
=
5 17
si
2
=
A C
=
0 2
Din urmatoarele doua relatii
1
= e
M
(
1
) =
1
M(mod26) =
5 17
3 3
2 5
23 22
=
X W
2
= e
M
(
2
) =
2
M(mod26) =
0 2
3 3
2 5
4 10
=
E K
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (3)
Se obtine textul criptat x = XWEK.
Oscar criptanalistul varianta 1 (1)
Daca presupunem ca Oscar a gasit dimensiunea d = 2 si
incearca sa ae matricea M (M
1
) cunoscand perechea (text
clar, text criptat) = (FRAC, XWEK), Oscar se aa in fata
urmatoarei probleme:
M =?, M =
a b
c d
5 17
0 2
a b
c d
23 22
4 10
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (4)
Oscar criptanalistul varianta 1 (2)
Pentru aarea lui M, Oscar trebuie sa ae inversa lui
5 17
0 2
.
Cum determinantul matricii
5 17
0 2
este 10 si
cmmdc(10, 26) > 1
10
1
(mod26) nu exista matricea nu este inversabila.
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (5)
Oscar criptanalistul varianta 2: ipoteza atacului cu text clar
ales (1)
Oscar alege un text clar a carui matrice este inversabila si ii aa
criptarea.
Fie BRAD acest text clar. Matricea asociata acestuia este
A =
1 17
0 3
.
Oscar solicita criptarea lui BRAD si primeste LKGP cu matricea
B =
11 10
6 15
1 3
0 9
si apoi ecuatia A M = B, va
gasi solutia M = A
1
B =
1 3
0 9
11 10
6 15
3 3
2 5
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exemplul 2: sistemul de criptare Hill (1929) (6)
Oscar criptanalistul varianta 2: ipoteza atacului cu text clar
ales (2)
Permutarii
1 2 3
2 1 3
0 1 0
1 0 0
0 0 1
5 11 14
0 1 0
1 0 0
0 0 1
11 5 14
adica LFO.
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exercitiul 1
Determinati inversele matricilor (modulo 26)
1
2 5
3 1
7 3 5
1 8 2
2 2 4
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exercitiul 2
Criptati un text clar la alegere folosind sistemul de criptare
Hill cu matricea
1
17 17 5
21 18 21
2 2 19
sau
2
5 11 5
2 14 1
2 4 9
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Exercitiul 3
Fie cifrul de permutare: Se xeaza numerele naturale p, q.
Textul clar se imparte in blocuri de cate p q caractere.
Fiecare astfel de bloc se scrie pe liniile unei matrici de p
linii si q coloane. Criptarea blocului se realizeaza scriind
aceste matrici pe coloane.
Exemplu: pentru p = 3, q = 4, textul clar
MAINI CURATE se scrie
M A I N
I C U R
A T E X
(spatiile se completeaza cu litera X). Textul
criptat va MIAACTIUENRX.
Decriptati textul DTREAECRURESIAIPAT
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Cifruri cu substitutie
sisteme monoalfabetice: substituie ecare caracter cu alt
caracter, totdeauna acelasi indiferent de pozitie
sistemul de criptare Polybios
sistemul cavalerilor de Malta
sistemul de criptare an
criptanaliza
sisteme polialfabetice: substitutia unui caracter variaza in
text in functie de diversi parametrii
sistemul de criptare Vigenere
criptanaliza
exercitii
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare Polybios (1)
Consideram alfabetul latin, din care eliminam o litera de frecventa cat mai
redusa; e aceasta W. Cele 25 litere ramase le asezam intr-un patrat 5 x 5
(numit careu Polybios) ca mai jos.
In operatia de criptare, ecare caracter a va reprezentat printr-o pereche
(x, y) (x, y {A, B, C, D, E}) care dau linia respectiv coloana pe care se aa
a.
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare Polybios (2)
Exemplu
Textul clar UNIVERSITATE este criptat in
EACDBDEBAEDCDDBDDEAADEAE.
Deci sistemul de criptare Polybios este o substitutie
monoalfabetica cu alfabetul W = {AA, AB, AC, ..., EE} de 25
caractere.
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare an (1)
P = C = (Z
26
)
K = (a, b)|a, b Z
26
, cmmdc(a, 26) = 1
pentru k K, k = (a, b) denim
functia de criptare: e
k
(x) = ax +b(mod26) = y
functia de decriptare: d
k
(y) = a
1
y +a
1
(26 b)(mod26)
(cum (a, 26) = 1, a
1
Z
26
)
Stim ca literelor alfabetului le corespund cifrele de la 0 la 25:
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13
O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare an (2)
Exemplu
Pentru a = 3, b = 5 avem
e
(3,5)
(x) = 3x + 5
d
(3,5)
(y) = 9y +9(265)(mod26) = 9y +7 deoarece 3
1
= 9(mod26)
Sa luam textul clar GRUPA. Codicarea acestuia este reprezentata de
6 17 20 15 0
. Avem:
e
(3,5)
(6) = 23(mod26) = 23
e
(3,5)
(17) = 56(mod26) = 4
e
(3,5)
(20) = 65(mod26) = 13
e
(3,5)
(15) = 50(mod26) = 24
e
(3,5)
(0) = 5(mod26) = 5
deci textul criptat este reprezentat de
23 4 13 24 5
=
X E N Y F
(Decriptarea se
realizeaza analog.)
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare Vigenere (1)
Consideram, ca la sistemele anterioare, cele 26 litere ale
alfabetului, numerotate de la 0 (pentru A) pana la 25 (pentru Z).
Denim
P = C = Z
26
K = Z
+
26
unde o cheie k K este un cuvant avand
codicarea numerica k
0
k
1
. . . k
p1
Fie a = a
0
a
1
. . . a
n
codicarea textului clar care trebuie
transmis. Textul criptat va e
k
(a) = x = x
0
x
1
. . . x
n
, unde
x
i
= a
i
+k
i (modp)
(mod26)
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare Vigenere - exemplu (2)
Criptare (1)
Sa consideram cuvantul cheie GRUPA; deci p = 5 si
k =
23 4 13 24 5
. Daca vrem sa criptam cu aceasta
cheie textul clar CRIPTOGRAFIE, vom proceda astfel:
Codicarea textului este a = 2 17 8 15 19 14 6 17 0 5 8 4.
Sub ecare numar din a se aseaza cate un numar din k;
cand cheia se termina, ea se reia ciclic, pana se termina a
Linia a treia va contine suma modulo 26 a numerelor de pe
primele doua linii, iar pe ultima linie s-a scris textul criptat
rezultat
Laborator
Denitii de baza
Sisteme de criptare simetrice
Cifruri de permutare
Exercitii
Cifruri cu substitutie
Sistemul de criptare Vigenere - exemplu (3)
Criptare (2)
2 17 8 15 19 14 6 17 0 5 8 4
23 4 13 24 5 23 4 13 24 5 23 4
25 21 21 13 24 11 10 4 24 10 5 8
Z V V N Y L K E Y K F I
Decriptare
Decriptarea se realizeaza similar, scazand (modulo 26) din
codul caracterului criptat, codul caracterului corespunzator din
cheie.
Laborator
GENERATORI DE
NUMERE PSEUDO-
ALEATOARE
Asist. Drd. Morogan Maria Luciana
Ideal ar fi ca secretele cerute in algoritmii criptografici si
protocoale sa fie generate cu un generator de numere pur aleatoare.
Un asemenea generator necesita un mediu capabil sa ofere
numere aleatoare.
Creearea unui dispozitiv hardware sau a unui program
software in vederea exploatarii acestui mediu si producerii unei
secvente de biti in care anumite valori sa nu apara mai des decat altele
(ne vom referi la secventa in care anumite valori apar mai des decat
altele folosind termenul de bias) este o sarcina dificila.
Cuprins
1. Background teoretic
2. Generatori de numere pseudo aleatoare
1. Generatori simplii de numere pseudo-aleatoare
2. Generatori bazati pe LFSR
3. Alti generatori de numere pseudo-aleatoare
3. Modelul teoretic de verificare a securitatii unui
generator
4. Teste statistice de validare
1. Distributia normala si distributia
2. Postulatele lui Golomb
3. Teste statistice de baza
4. Testul statistic universal al lui Maurer
2
Background teoretic
Un generator de biti aleatori este un dispozitiv sau un algoritm prin a carui iesire rezulta o
secventa de cifre binare independente din punct de vedere statistic, secventa in care probabilitatea de emitere
a valorii 1 este de exact ( Termenul folosit in limba engleza pentru o secventa de acest tip este cel de
unbiased ).
Deci, un generator de biti pseudo-aleatori este un algoritm determinist[1] (in sensul ca fiind dat
acelasi sir de valori, generatorul va produce intotdeauna la iesire aceeasi secventa) prin care, fiind data o
secventa pur aleatoare binara de lungime k la intrare, la iesire va genera o secventa binara de lungime l, unde l
este mult mai mare decat k, secventa care pare a fi aleatoare.
Definitie formala : fie intregii strict pozitivi k si l, l k+1, ( unde l este obtinut din k prin
aplicatii polinomiale). Un (k, l)-generator de numere pseudo-aleatoare (pe scurt un (k, l)-PRBG), este o
functie calculabila in timp polinomial[2] (in functie de k). Intrarea se numeste secventa initiala
de intrare, in timp ce iesirea este numita secventa pseudo-aleatoare.
[1] Din punct de vedere informatic, un algoritm determinist este un algoritm a carui comportare este
previzibila. Fiind date aceleasi date particulare de intrare, algoritmul va produce la iesire acelasi rezultat
corect, iar masina pe care ruleaza acesta, va trece intotdeauna prin aceeasi secventa de stari.
[2] Timpul polinomial este timpul de calcul al functiei, timp marginit de un polinom de lungime l al secventei
de iesire.
1
2
2 2
:
k l
f Z Z
0 2
k
s Z
0 2
( )
l
f s Z
In studiul securitatii unui sistem criptografic exista doua abordari fundamentale:
Generatori siguri
ANSI X9.17
FISP 186
Generatori nesiguri:
Generatorul RSA
Micali-Schnorr
Blum-Blum-Schub
Alta clasificare:
generatori simplii
Generatori Ranrot
Generatorul Geffe
clasa separata
Generatorul Mother-of-all
Generatorul1/p
Generatori simplii de
numere pseudo-aleatoare
Generatorul liniar congruential
Face parte din clasa generatorilor nesiguri.
Un exemplu ilustrativ :
Luam M=31, a=3 si b=5. Obtinem un (5, 10) - PRBG cu un
generator liniar congruential.
Daca consideram aplicatia , avem , iar
celelate 30 de resturi sunt permutari dupa un ciclu de lungime 30 in
ordinea urmatoare: 0, 5, 20, 3, 14, 16, 22, 9, 1, 8, 29, 30, 2, 11, 7, 26,
21, 6, 23, 12, 10, 4, 17, 25, 18, 28, 27, 24, 15, 19.
Daca valoarea initiala este diferita de 13, aceasta defineste un
punct de plecare in acest ciclu, si urmatoarele 10 elemente reduse
modulo 2 formeaza sirul de numere pseudo-aleatoare.
Urmarind acest procedeu, cele 31 de siruri de numere pseudo-
aleatoare posibile sunt reprezentate in urmatorul tabel:
13 13
(3 5) mod31 s s +
Generatori Ranrot
Definiti de Agner Fog[1], acestia se bazeaza pe
generatoare de numere Fibonacci[2], impreuna cu
operatia de rotatie pe biti. Se cunosc trei tipuri de
astfel de generatoare, iar relatiile dupa care se
definesc sunt urmatoarele:
[1] Agner Fog a definit in 1977 generatorii Ranrot, initial pentru algoritmi de tip Monte Carlo.
Mai multe informatii se gasesc pe internet la adresa http://www.agner.org/random/theory
[2] Sirul numerelor lui Fibonacci este dat de relatia de recurenta:
0
1
1 1
f 0
1
n n n
f
f f f
+
=
= +
Generatorul Blum Blum Shub
Unul dintre cele mai des utilizate generatoare de
numere pseudo-aleatoare,este acest generator.
Generatorul Blum Blum Shub se bazeaza pe
problema resturilor patratice, al carei enunt este urmatorul:
Fie un intreg n = pq, unde p si q sunt numere prime
necunoscute si fie
Intrebare: este x un rest patratic modulo n?
*
astfel incat 1
n
x
x Z
n
| |
=
|
\
Definitie. Fie p si q doua numere prime. Daca
atunci numarul n = pq se numeste intreg
Blum.
3(mod 4) p q
Algoritmul BBS prezentat ca un (k, l)-
PRBG este urmatorul:
Fie p si q doua numere prime, intregi Blum de
k/2 biti si fie n = pq. QR(n) reprezinta
ansamblul de resturi patratice modulo n.
Fie valoarea initiala:
unde
0
( ), pentru i 0 s QR n
2
1
mod
i i
s s n
+
=
0 1 2
( ) ( , ,..., )
l
f s z z z =
mod 2, pentru 1 .
i i
z s i l =
Generatorul Blum Blum Shub este considerat un
generator sigur din punct de vedere criptografic, in acest
moment, fiind dealtfel considerat drept cel mai bun generator de
numere pseudo-aleatoare pentru protocoale de generare si
distributie a cheii.
Securitatea acestuia se bazeaza pe dificultate factorizarii
lui n.
n poate fi facut public (oricine poate genera o secventa
pseudo-aleatoare pe baza lui). Iar daca n nu se descompune in
factori, nimeni nu poate prezice iesirea.
Mai mult, fiind data o parte a secventei, nu exista nici o
modalitate de a prezice bitul anterior sau pe cel ulterior
secventei.
Generatori bazati pe LFSR
Un LFSR( Linear Feedback Shift Register ) este un
circuit liniar[1] format dintr-un registru serial si o functie de
intoarcere ( feedback ). Daca registrul este compus din n flip-
flopuri, vom avea un n LFSR.
Sa consideram m registrii seriali al caror
continut este fie 0 fie 1, care pot fi considerati dispozitive de
memorare cum ar fi flip-flopuile.
Consideram valorile initiale
Un ceas electronic controleaza procesul.
1 0
, ,...,
m m
R R R
0 1 1
, ,...,
m
x x x
La primul puls al ceasului, intrarea este impinsa
spre dreapta pentru a ocupa registrul .
Simultan, devine noua intrare in , si asa mai departe,
pana la elementul cel mai din dreapta care va fi transferat
secventei de iesire.
1 m
x
2 m
R
2 m
x
3 m
R
De exemplu, pentru m=5 si configuratia initiala
in care reprezentarea este urmatoarea:
iar dupa primul puls al ceasului vom avea urmatoarea
configuratie:
Secventa de iesire in acest moment consta in valoarea 1.
Simbolic: Aceasta secventa de elemente este numita satare
a vectorului.
4 3 2 1 0
1, 0, 0, 1, 1 x x x x x = = = = =
1 1 0 0 1
4
R
3
R
2
R
1
R
0
R
1 1 0 0
4
R
3
R
2
R
1
R
0
R
( ) ( )
4 3 2 1 0 4 3 2 1
, , , , , , , , x x x x x x x x x
In general, o relatie de recurenta (binara)
de lungime m (corespunzatoare a m registrii),
este o relatie de forma:
este un intreg pozitiv fixat egal cu
numarul registrilor, toate variabilele sunt
binare si = 1. Pentru i = 0 avem:
Cele m numere binare se numesc
coeficientii recurentei.
1
0
m
i m j i j
j
x c x
+ +
=
=
0 m
i
x
0
c
1 1 2 2 1 1 0 0
...
m m m m m
x c x c x c x c x
= + + + +
1 2 0
, ,..,
m m
c c c
Relatia de recurenta de mai sus poate fi
generata de un LFSR de lungime m si este
usor de implementat atat in software cat si in
hardware si poate fi reprezentata prin
schema de mai jos:
Generatorul Geffe
Generatorul Geffe combina, neliniar, trei LFSR, cel de al
treilea fiind folosit pentru a alege daca bitul rezultat provine din
primul registru sau din al doilea.
Sa consideram schema urmatoare a unui generator Geffe:
LFSR2
LFSR3
LFSR1
0
EMUX
1
Aici, LFSR1 formeaza functia de selectie a multiplexorului[1] elementar,
intrarile fiind asigurate de celelalte doua LFSR-uri.
Daca sunt iesirile corespunzatoare celor trei LFSR-uri,
iesirea generatorului Geffe este data de relatia
Perioada generatorului este cel mai mic multiplu comun al perioadelor
celor trei LFSR-uri. Deci, daca cele trei polinoame care definesc circuitele au
grade prime intre ele, perioada generatorului Geffe este produsul celor trei
perioade.
[1] Multiplexorul este un disozitiv logic care selecteaza o intrare dintr-un sir de intrari
in conformitate cu valoarea unei alte intrari a indexului. Secventele bazate pe
folosirea multiplexoarelor sunt destul de populare datorita faptului ca sunt relativ
rapide. Generatorul de chei este descris, conventional, ca folosind doua
secvente si multiplexorul este folosit pentru a combina cele doua secvente intr-
un mod neliniar.
1 2 3
, , a a a
1 2 1 3
( ) ( ) b a a a a =
Generatori de tip Stop-and-go
Generatorul Beth-Piper (dupa numele
autorilor) care controleaza ceasurile celor trei
circuite. Structura sa este urmatoarea:
Ceasul de intrare in LFSR2 este
controlat de iesirea din LFSR1 si, astfel, LFSR2
isi schimba starea la momentul t daca iesirea
din LFSR1 era 1 la momentul t-1.
Generatorul Stop-and-go alternativ
foloseste tot trei LFSR-uri de lungimi diferite
legate intr-un circuit de forma:
Daca iesirea din LFSR1 este 1, atunci
se activeaza LFSR2; altfel se activeaza LFSR3.
Iesirea finala din generator este reprezentata de
un XOR intre cele doua iesiri.
Alti generatori de numere
pseudo-aleatoare
Generatorul Mother-of-all
Este un generator propus de George Marsaglia,
si consta in alegerea initiala a cinci numere intregi, nu
toate nule, memorate pe 32 de biti fiecare.
Generatorul Blum Micali
Fie g un numar prim si p un numar prim
impar si fie o valoare initiala.
Se genereaza numerele
Iesirea din generator este
1,daca
0, altfel.
0
x
1
(mod )
i
x
i
x g p
+
=
1
2
i
p
x
<
Generatorul RSA
Fie n = pq, unde p si q reprezinta doua
numere prime mari.
Fie e un numar astfel incat
(e, (p - 1)(q - 1) ) = 1 si o valoare initiala
astfel incat < n. Se defineste relatia
Iesirea generatorului este
0
x
0
x
1
(mod )
e
i i
x x n
+
=
(mod 2)
i i
z x =
Generatorul1/p
Secventa de numere pseudo-aleatoare este generata prin
extinderea fractiei 1/p la o baza b unde p si b sunt relativ prime
[1].
[1] Fie a si b doua numere intregi, acestea sunt relativ prime
daca si numai daca (a, b) = 1.
MODELUL TEORETIC DE
VERIFICARE A SECURITATII
UNUI GENERATOR
Exista doua cerinte generale legate de securitatea unui
generator de numere pseudo-aleatoare:
Notam distributia aleatoare uniforma cu si deci, pentru
orice
avem
Definitie. Spunem ca sirul este pseudo-aleator daca este
inseparabil in timp polinomial de , si deci pentru orice
algoritm probabilist A si orice polinom Q exista astfel incat
avem:
n
U
{0,1}
n
1
Pr ( )
2
n
x U
n
x
= =
n
X
n
U
0
n
0
, , n n n >
1
| Pr ( ( ) 1) Pr ( ( ) 1) |
( )
n n
t X t U
A t A t
Q n
= = <
Definitie. Algoritmul A din cele doua definitii anterioare este numit test
statistic. Exemple de astfel de teste se vor gasi in continuarea lucrarii de
fata.
Observatie. Daca exista A si Q astfel incat conditiile definitiei de mai
sus sunt incalcate, spunem ca pica, sau esueaza testul A.
Putem acum da urmatoarea definitie:
Definitie. Spunem ca un generator de biti pseudo-aleatoare trece toate
testele statistice in timp polinomial[1], teste ce vor fi detaliate mai tarziu,
daca nici un algoritm nu reuseste, in timp polinomial, sa faca distinctia
intre o secventa de iesire a generatorului si o secventa pur aleatoare de
aceeasi lungime cu o probabilitate semnificativ mai mare de .
[1] Timpul de rulare al testului este limitat de un polinom de lungime l al
secventei de iesire.
n
X
Definitie. Un program determinist in timp polinomial
este un generator de numere pseudo-aleatoare
daca sunt indeplinite
urmatoarele conditii
1. p > k ;
2. este pseudo-aleator, unde este distributia pe
obtinuta astfel:
pentru a obtine :
a. se alege
b. se defineste t = G(x).
Adica, pentru orice algoritm probabilist A, orice polinom Q si
orice k suficient de mare, avem:
:{0,1} {0,1}
k p
G
{ }
p p
G
p
G {0,1}
p
p
t G
k
x G
1
| Pr ( ( ) 1) Pr ( ( ) 1) |
( )
p p
t G t U
A t A t
Q p
= = <
Testul bitului urmator
Definitie. Testul bitului urmator este acel test
statistic care ia ca intrare prefixul unei secvente si in
urma caruia rezulta o predictie a urmatorului bit.
Definitie. Spunem ca un generator de numere
pseudo-aleatoare trece testul urmatorulu bit daca
nu exista algoritm in timp exponential care, la
intrarea primilor l biti ai unei secvente de iesire s, sa
poata prezice cei (l+1) biti ai lui s cu probabilitatea
semnificativ mai mare decat .
Formal, notam cu k probabilitatea de distributie pe .
Definitie. Spunem ca un generator de numere pseudo-
aleatoare trece testul urmatorulu bit daca pentru orice polinom
Q, exista un intreg astfel incat pentru orice
avem
Fapt (universalitatea testului bitului urmator). Un generator de
numere pseudo-aleatoare trece testul urmatorului bit daca si
numai daca trece toate testele statistice in timp polinomial.
Definitie. Un PRBG care trece testul urmatorului bit este
numit un generator criprografic sigur de biti pseudaleatori[1].
[1] Cryptographically secure pseudorandom bit
generator(CSPRBG).
{0,1}
k
0
k
0
si m p k p > <
1 2 1
1 1
| Pr [ ( ... ) ] |
2 ( )
p
t G m m
A t t t t
Q k
+
= < +
TESTE STATISTICE DE
VALIDARE
Distributia normala si distributia
Distributia normala
Definitie. O variabila aleatoare (continua) X
are o distributie normala de medie si
varianta , daca densitatea sa de
probablitate este definita astfel:
Notatam X cu
Daca X este N(0,1), atunci spunem ca X
are o distributie normala standard.
Fapt. Daca variabila aleatoare X este
, atunci variabila aleatoare
este N(0,1).
Distributia
Definitie. Fie un intreg. O variabila
aleatoare (continua) X are o distributie cu
v grade de libertate daca functia sa de
densitate probablistica este definita astfel:
unde reprezinta functia gamma[1].
Media si varianta acestei distributii sunt
si .
Fapt. Daca variabila aleatoare X este
, atunci variabila aleatoare
are o distributie cu 1 grad de libertate.
In particular, daca X este N(0,1), atunci Z =
are o distributie cu 1 grad de libertate.
[1] Functia gamma este definita prin
unde t > 0.
2
2
2
1 ( )
( ) exp ,
2
2
x
f x x
= < <
`
)
2
( , ) N
2
( , ) N
( ) / Z X =
2
1 v
2
( / 2) 1 / 2
/ 2
1
e , 0
( / 2)2 ( )
0, 0
v x
v
x x
v f x
x
<
<
v =
2
2v =
2
( , ) N
2
0 >
2 2
( ) / Z X =
2
2
X
1
0
( )
t x
t x e dx
Postulatele lui Golomb
Una din primele incercari in a stabili
cateva conditii necesare unor secvente
periodice pseudoaleatoare sa para intr-
adevar aleatoare, o reprezinta postulatele lui
Golomb. Aceste conditii sunt insa departe de
a fi suficiente pentru ca aceste secvente sa
para aleatoare, cu o singura exceptie: toate
secventele sunt binare.
Teste statistice de baza
Fie o secventa binara de lungime n:
Urmatoarele teste statistice determina daca
secventa binara s poseda sau nu anumite
caracteristici cum ar fi cele pe care ar trebui
sa le detina o secventa binara de numere pur
aleatoare.
0 1 2 1
, , ,...,
n
s s s s s
=
Testul de frecventa (testul monobit)
Scopul acestui test este de a determina daca
numarul de 1 si, respectiv de 0, este acelasi
care ar trebui sa fie in cazul in care secventa
in cauza este aleatoare.
Testul serial (testul doi - biti)
Scopul acestui test este de a determina daca
numerele aparitiilor subsirurilor 00, 01, 10 si
11 ca subsiruri ale lui s sunt aproximativ
aceleasi, ceea ce se asteapta dealtfel de la o
secventa aleatoare.
Testul poker
Fie m un intreg pozitiv astfel incat
si fie . Se imparte secventa s in k
subsecvente, fiecare de lungime m si se
considera numarul aparitiilor celui de-al i-
lea tip de astfel de secventa, unde .
Testul poker determina daca fiecare secventa
de lungime m apare de un aproximativ
acelasi numar de ori in s, asa cum se
asteapta dealtfel de la o secventa aleatoare
de biti.
5 2
m
n
m
(
(
n
k
m
(
=
(
i
n
1 2
m
i
Testul de tip run
Determina daca numarul sirurilor de tip run
(numarul de zerouri sau de unu) de lungimi
diferite ale sirului s este acelasi cu cel al unui
sir aleator.
Testul de autocorelare
Scopul acestui test este de a verifica
eventualele corelatii dintre secventa s si
versiunea shiftata (versiunea lui s in care
aceasta secventa a fost modificata prin
aplicarea unor operatii de deplasare la
stanga sau la dreapta pe biti) eventual
neciclica, a acestuia.
Testul statistic universal al lui Maurer
Ideea de baza ce sta la baza testului statistic al lui Maurer
consta in aceea ca nu ar trebui sa se poata compresa
semnificativ si fara pierderi de informatie o secventa s de iesire a
unui generator de numere aleatoare.
In acest sens, daca o anumita secventa de iesire a unui
generator poate fi comprimata semnificativ, acesta din urma ar
trebui sa fie respins ca nefiind un bun generator.
In schimbul compresiei unei secvente s, testul statistic
universal calculeaza o cantitate care sa fie compatibila cu
lungimea secventei comprimate.
Universalitatea testului
statistic universal al lui Maurer
apare deoarece acest test este
capabil sa detecteze, orice defect
apartinand unei clase vaste de
posibile defecte pe care le poate
avea un generator.
Bibliografie
Douglas Stinson, Cryptographie Theorie et pratique, International Thompson Publishing France, Paris
1996.
Aiden A. Bruen, Mario A. Forcinito, Cryptography, Information Theory, and Error-Correction: a handbook
for the 21st century, Wiley-Interscience, John Wiley&Sons, Inc., Hoboken, New Jersey.
A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996, pentru
mai multe informatii: www.cacr.math.uwaterloo.ca/hac
M. J. Robshaw, Stream Ciphers, RSA Laboratories Tehnical Report TR-701, Version 2.0-July 25, 1995
R. Davies, Hardware random number generators, articol prezentat lacea de a 15-a Australian Statistics
Conference in Julie, 2000 si la cea de-a 51-a Conference of the NZ Statistical Association in Septembrie,
2000, disponibil la adresa de internet http://www.robertnz.net/hwrng.htm
J. Viega, Practical Random Number Generation in Software, in Proc. 19th Annual Computer Security
Applications Conference, Decembrie, 2003.
www.agner.org/random/theory
http://www.cs.utk.edu/~langston/projects/papers/ssst03.pdf
http://www.crypto.wpi.edu/Research/truerandom.shtml
http://www.cs.berkeley.edu/~daw/rnd/
Preview Sisteme sincrone Sisteme asincrone
Sisteme de criptare uide
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Preview Sisteme sincrone Sisteme asincrone
Outline
1
Preview
2
Sisteme sincrone
3
Sisteme asincrone
Preview Sisteme sincrone Sisteme asincrone
Sisteme de criptare
Sistemele de criptare:
bloc(block cyphers)
elemente succesive ale textului clar sunt criptate folosind
aceeasi cheie de criptare
daca x = x
1
x
2
x
3
. . . atunci
y = y
1
y
2
y
3
. . . = e
k
(x
1
)e
k
(x
2
)e
k
(x
3
) . . .
uide(stream cyphers)
sincrone
asincrone
Preview Sisteme sincrone Sisteme asincrone
Denitii formale (1)
Fie M= (P, C, K, E, D) un sistem de criptare. Secventa de
simboluri k
1
k
2
k
3
K
+
se numeste cheie uida.
M= (P, C, K, E, D) este un sistem de criptare uid daca
cipteaza textul clar x = x
1
x
2
x
3
. . . in
y = y
1
y
2
y
3
. . . = e
k
1
(x
1
)e
k
2
(x
2
)e
k
3
(x
3
) . . ., unde k
1
k
2
k
3
. . .
este o cheie uida din K
+
Preview Sisteme sincrone Sisteme asincrone
Denitii formale (2)
Problema generala: generarea cheii uide cu ajutorul unui
generator numit generator de chei uide
Obs! Daca
cheia uida este aleasa aleator si nu mai este foloita
ulterior
lungimea cheii = lungimea textului clar
Atunci sistemul de criptare se numeste one-time-pad
Preview Sisteme sincrone Sisteme asincrone
Denitie formala
Un sistem de criptare uid sincron este o structura
(P, C, K, L, E, D) unde
Fie P, C, K sunt multimi nite, nevide, ale caror elemente
se numesc texte clare, texte criptate si, respectiv, chei
L este o multime nita, nevida numita alfabetul sirului de
chei
se deneste g : K L
+
generatorul de chei uide astfel
incat k K avem g(k) = k
1
k
2
k
3
K
+
cheia uida
(teoretic innita)
z L,
exista regula de criptare e
z
E
exista regula de decriptare d
z
D
astfel incat x P, d
z
(e
z
(x)) = x
Preview Sisteme sincrone Sisteme asincrone
Exemplu: Sistemul de criptare Vigenere
Descrierea sistemului
m lungimea cuvantului cheie
P, C, K=Z
26
, K= (Z
26
)
m
e
z
(x) = x +z(mod26), d
z
(y) = y z(mod26)
cheia z
1
z
2
. . . denita prin
z
i
=
k
i
dc 1 i m
z
i m
dc i m +1
va genera din cheia xa K = (k
1
, k
2
, . . . , k
m
), cheia uida
k
1
, k
2
, . . . , k
m
k
1
, k
2
, . . . , k
m
k
1
, k
2
, . . .
Preview Sisteme sincrone Sisteme asincrone
Criptarea si decriptarea
Se realizeaza ca un automat descris de
q
i +1
= (q
i
, k), z
i
= g(q
i
, k), y
i
= h(z
i
, x
i
) unde:
q
0
- starea initiala determinata din cheia k
- functia de tranzitie a starilor
g - functia ce produce cheia uida z
i
h - functia iesire care produce textul criptat y
i
pe baza
textului clar x
i
si a cheii uide z
i
Preview Sisteme sincrone Sisteme asincrone
Criptarea si decriptarea: schematic
Criptarea
Preview Sisteme sincrone Sisteme asincrone
Decriptarea: schematic
Decriptarea
Preview Sisteme sincrone Sisteme asincrone
Observatii
Sistemul de criptare bloc este un caz particular de sistem
de criptare uid: i 1, z
i
= k
(Sincronizare.) Cel care trimite mesajele si cel ce urmeaza
a le primi trebuie sa isi sincronizeze cheia uida pentru a
obtine o criptare/decriptare corecta. Daca in timpul
transmisiei sunt inserati sau eliminati biti in textul criptat,
atunci decriptarea esueaza si poate reluata pe baza unor
tehnici de resincronizare (de exp. reinitializarea)
Modicarea unui bit din textul criptat (fara a se elimina sau
adauga nimic) nu afecteaza decriptarea altor caractere
(nepropagarea erorii)
Adversarul activ care elimina, insereaza sau retrimite
componente ale mesajului provoaca desincronizari si va
detectat la receptie
Preview Sisteme sincrone Sisteme asincrone
Sistemul aditiv uid binar de criptare
Un sistem aditiv uid binar de criptare este un sistem uid
sincron in care P = C = L= Z
2
iar h reprezinta functia XOR
Criptare Decriptare
Preview Sisteme sincrone Sisteme asincrone
Sistemul aditiv uid binar de criptare - exemplu
Sa considerm exemplul in care dorim criptarea/decriptarea secventei de text
clar x = 101101 si presupunem ca iesirea generatorului de chei uide ofera
cheia z = 1101. Vom avea: x
1
= 1, x
2
= 0, x
3
= 1, x
4
= 1, x
5
= 0, x
6
= 1 si
z
1
= 1, z
2
= 1, z
3
= 0, z
4
= 1, z
5
= z
1
= 1, z
6
= z
2
= 1
Criptarea
y
1
= e
z
1
(x
1
) = x
1
z
1
= 1 1 = 0
y
2
= e
z
2
(x
2
) = x
2
z
2
= 0 1 = 1
y
3
= e
z
3
(x
3
) = x
3
z
3
= 1 0 = 1
y
4
= e
z
4
(x
4
) = x
4
z
4
= 1 1 = 0
y
5
= e
z
1
(x
5
) = x
5
z
1
= 0 1 = 1
y
6
= e
z
2
(x
6
) = x
6
z
2
= 1 1 = 0
Se obtine astfel secventa de text cript
y = 011010
Decriptarea
x
1
= d
z
1
(y
1
) = y
1
z
1
= 1 0 = 1
x
2
= d
z
2
(y
2
) = y
2
z
2
= 1 1 = 0
x
3
= d
z
3
(y
3
) = y
3
z
3
= 0 1 = 1
x
4
= d
z
4
(y
4
) = y
4
z
4
= 1 0 = 1
x
5
= d
z
1
(y
5
) = y
5
z
1
= 1 1 = 0
x
6
= d
z
2
(y
6
) = y
6
z
2
= 1 0 = 1
Se obtine astfel secventa de text clar
x = 101101
Preview Sisteme sincrone Sisteme asincrone
Denitie formala
Un sistem de criptare uid se numeste asincron
(auto-sincronizabil) daca functia de generare a cheii uide
depinde de un numar de caractere criptate anterior:
q
i
= (y
i t
, y
i t +1
, . . . , y
i 1
), z
i
= g(q
i
, k), y
i
= h(z
i
, x
i
) unde:
q
0
= (y
t
, y
t +1
, . . . , y
1
) - starea initiala
k - cheia
g - functia ce produce cheia uida
h - functia iesire care produce care cripteaza textului clar x
i
Preview Sisteme sincrone Sisteme asincrone
Sisteme asincrone - Exemple
LFSR
- registrii lineari cu feedback
Criptarea cu auto-cheie
P = C = L= Z
26
cheia uida este data de z
1
= k, z
i
= y
i 1
, i 2
pentru z Z
26
, denim
e
z
(x) = x +z(mod26)
d
z
(y) = y z(mod26)
Exercitiu
Pentru k = 11
codicati/decodicati textul clar
SPIRU HARET
Solutia
Se va obtine textul criptatat
DSARLSSJNG.
Preview Sisteme sincrone Sisteme asincrone
Solutia detaliata a exercitiului anterior
Codicarea textului clar SPIRU HARET este x =18 15 8 17 20 7 0 17 4 19,
iar k = z
1
= 11
Modul criptare
y
1
= e
z
1
(x
1
) = x
1
+ z
1
(mod26) = 18 + 11(mod26) = 3 si z
2
= y
1
= 3
y
2
= e
z
2
(x
2
) = x
2
+ z
2
(mod26) = 15 + 3(mod26) = 18 si z
3
= y
2
= 18
y
3
= e
z
3
(x
3
) = x
3
+ z
3
(mod26) = 8 + 18(mod26) = 0 si z
4
= y
3
= 0
y
4
= e
z
4
(x
4
) = x
4
+ z
4
(mod26) = 17 + 0(mod26) = 17 si z
5
= y
4
= 17
y
5
= e
z
5
(x
5
) = x
5
+ z
5
(mod26) = 20 + 17(mod26) = 11 si z
6
= y
5
= 11
y
6
= e
z
6
(x
6
) = x
6
+ z
6
(mod26) = 7 + 11(mod26) = 18 si z
7
= y
6
= 18
y
7
= e
z
7
(x
7
) = x
7
+ z
7
(mod26) = 0 + 18(mod26) = 18 si z
8
= y
7
= 18
y
8
= e
z
8
(x
8
) = x
8
+ z
8
(mod26) = 17 + 18(mod26) = 9 si z
9
= y
8
= 9
y
9
= e
z
9
(x
9
) = x
9
+ z
9
(mod26) = 4 + 9(mod26) = 13 si z
10
= y
9
= 13
y
10
= e
z
10
(x
10
) = x
10
+ z
10
(mod26) = 19 + 13(mod26) = 6
Se obtine astfel textul criptat y = 3 18 0 17 11 18 18 9 13 6 si deci
codicarea DSARLSSJNG.
Decripatrea se va realiza in mod similar.
Preview Sisteme sincrone Sisteme asincrone
Observatii
Auto-sincronizare: cum h
1
depinde de un numar xat de
caractere criptate anterior, desincronizarea rezulta din
inserarea sau stergerea de caractere criptate (se poate
evita)
Daca starea unui sistem uid auto-sincronizabil depinde de
t caractere anterioare, atunci modicarea
(stergerea,inserarea) unui caracter va duce la decriptarea
incorecta a maxim t caractere, dupa care decriptarea
redevine corecta.
Preview Sisteme sincrone Sisteme asincrone
Alte exemple de sisteme uide de criptare
SEAL - sistem de criptare aditiv binar
RC4 (Rist Code 4) - creat pentru RSA Data Security Inc.
(astazi RSA Security), este un sistem aditiv uid de
criptare destinat scopurilor comerciale
Laborator
Sisteme de criptare bloc
- Moduri de utilizare -
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Laborator
Outline
Sisteme de criptare bloc
Modul de utilizare ECB
Modul de utilizare CBC
Modul de utilizare OFB
Modul de utilizare CFB
Laborator
Sisteme de criptare bloc
Sisteme de criptare - denitie
Sistemele de criptare bloc (block cyphers):
daca x = x
1
x
2
x
3
. . . atunci
y = y
1
y
2
y
3
. . . = e
k
(x
1
)e
k
(x
2
)e
k
(x
3
) . . .
Laborator
Sisteme de criptare bloc
Moduri de utilizare
Fie x =
1
3
. . . texul clar unde ecare bloc de text
i
, i 1 este de lungime n
3
. . .
Laborator
Modul de utilizare ECB
Exercitiu
Daca K =S
4
, atunci pentru S
4
, avem
e
: [0, 1]
4
[0, 1]
4
, b
1
b
2
b
3
b
4
b
(1)
b
(2)
b
(3)
b
(4)
In particular
Criptati textul clar x = 1011000101001010 folosind cheia
=
1 2 3 4
2 3 4 1
Laborator
Modul de utilizare CBC
Descrierea modului de utilizare CBC
i
), i 1,
unde reprezinta operatia XOR pe biti
Laborator
Modul de utilizare CBC
Schematic - CBC
Criptare Decriptare
Laborator
Modul de utilizare CBC
Exercitiu
Daca K =S
4
, atunci pentru S
4
, avem
e
: [0, 1]
4
[0, 1]
4
, b
1
b
2
b
3
b
4
b
(1)
b
(2)
b
(3)
b
(4)
In particular
Criptati textul clar x = 1011000101001010 folosind cheia
=
1 2 3 4
2 3 4 1
3
. . . dupa formula
i
= e
k
(
i 1
), i 1
3
. . . se codica cu
formula de criptare
i
= e
k
(
i
i
), i 1
3
. . .
X
Laborator
Modul de utilizare OFB
Exercitiu
3
. . . criptand blocul de text
criptat anterior dupa formula
i
= e
k
(
i 1
), i 1
3
. . . se codica cu
formula de criptare
i
= e
k
(
i
i
), i 1
3
. . .
X
Laborator
Modul de utilizare CFB
Schematic - CFB
Criptare Decriptare
Laborator
Modul de utilizare CFB
Exercitiu
p
primitiv
P= Z
p
, C= Z
p
Z
p
K= {(p, , a, )|
a
(modp)}
valorile p, , - publice, iar a - secreta
pt K = (p, , a, ) si k Z
p1
aleator(secret) denim:
e
K
(x, k) = (y
1
, y
2
) unde
y
1
=
k
(mod p)
y
2
= x
k
(mod p)
pt y
1
, y
2
Z
p
denim d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
(mod p)
Sistemul este nedeterminist: criptarea depinde de x si o
variabila aleatoare k aleasa de Alice exista mai multe texte
criptate corespunzatoare unui anumit text clar.
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
El-Gamal
Observatii
Dezavantaj: dublarea lungimii textului criptat comparativ cu
lungimea textului clar
Daca (y
1
, y
2
), (z
1
, z
2
) sunt textele criptare ale mesajelor
m
1
, respectiv m
2
, atunci se deduce textul criptat pentru
m
1
m
2
ca ind (y
1
z
1
, y
2
z
2
)
criptarea pentru 2m
1
(respectiv 2m
2
) conduce la concluzia
ca sistemul El-Gamal este sensibil la atacul cu text clar ales
ESENTIAL: doua texte diferite ce vor criptate trebuie sa
foloseasca valori diferite pentru k
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Exercitii propuse
Sistemul RSA
Ex. 1
Fie d exponentul de decriptare al
sistemului de criptare RSA construit
cu numerele prime p = 3, q = 5. Daca
exponentul de criptare este e = 7,
determinati d.
Ex. 2
Fie d = 11 exponentul de decriptare al
sistemului de criptare RSA construit
cu numerele prime p = 7, q = 11.
Determinati exponentul de criptare e.
Ex. 3
Consideram sistemul de criptare RSA
construit cu numerele prime
p = 3, q = 5. Daca exponentul de
criptare este e = 4 si se doreste
codicarea textului clar m = 11,
determinati textul criptat c.
Ex. 4
Un utilizator al sistemului de criptare
RSA are ca cheie publica
(n, e) = (35, 5) si cheia secreta d = 5.
Daca primeste textul criptat c = 3,
atunci textul clar decodicat de
utilizator este ...
Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse
Exercitii propuse
Sistemul El-Gamal
Ex. 1
Fie cifrul El-Gamal asociat numarului prim p = 7 si radacinii
primitive = 5. Cheia secreta a lui Alice este 3, iar cea a lui
Bob este 4. Daca Bob codica textul clar x = 11 si il transmite
lui Alice, atunci aceasta primeste codicarea...
Ex. 2
Fie cifrul El-Gamal asociat numarului prim p = 11 si radacinii
primitive = 5. Cheia secreta a lui Alice este 4, iar cea a lui
Bob este 7. Alice primeste de la Bob textul criptat (3,7) pe care
il decodica si gaseste mesajul clar ...
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnaturi electronice si functii de
dispersie
Luciana Morogan
Facultatea de Matematica-Informatica
Universitatea Spiru Haret
Laborator
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Outline
1
Preview: Semnaturi electronice
2
Protocoale de semnatura
Protocoale de semnatura
Procedee de criptare vs. procedee de semnatura
Semnatura El-Gamal
3
Functii de dispersie
Semnaturi si functii de dispersie
Functii de dispersie cu coliziuni
Exemplu de exercitiu
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnaturi electronice
O semnatura electronica trebuie sa e:
1
unica - o anumita semnatura trebuie sa poata generata
de catre o singura persoana
2
neimitabila - nici o alta persoana nu va putea genera
semnatura utilizatorului indicat
3
usor de autenticat - orice destinatar legal si, eventual,
orice arbitru sa poata stabilii autenticitatea semnaturii
4
imposibil de negat - nici un utilizator legal sa nu-si poata
nega propria semnatura
5
usor de generat
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Protocoale de semnatura
Protocoale
Protocolul este format din:
algoritmul de semnatura - secret: sig(x), unde x este
mesajul transmis
algoritmul de vericare - public: daca y este o semnatura
autentica a lui x, atunci (x, y) algoritmul ver (x, y) ofera un
raspuns dicotomic (adevarat sau fals)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Protocoale de semnatura
Denitie formala
Un protocol de semnatura este un cvintuplu (P, A, K, S, V)
unde:
P, A, K - multimi nite, nevide ale caror elemente se
numesc mesaje, semnaturi si, respectiv, chei
exista o aplicatie biunivoca K S V astfel incat
k K, !(sig
k
, ver
k
) unde
sig
k
: P A, ver
k
: P A {T, F} au proprietatea ca
x P, y A,
ver
k
(x, y) = T y = sig
k
(x)
Obs! Pentru ecare k K, functiile sig
k
si ver
k
trebuie sa e
calculabile in timp polinomial.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Procedee de criptare vs. procedee de semnatura
Procedee de criptare vs. procedee de semnatura (1)
Consideram cazul in care Alice ii trimite lui Bob un mesaj
semnat si criptat. Fie x textul in clar.
Alice:
determina semnatura y = sig
Alice
(x)
codica x si y cu cheia publica a lui Bob obtinand textul
criptat z cu z = e
Bob
((x, y))
trimite pe z lui Bob
Bob:
foloseste cheia sa secreta d
Bob
si obtine perechea (x, y)
verica semnatura lui Alice cu cheia publica ver
Alice
(x, y)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Procedee de criptare vs. procedee de semnatura
Procedee de criptare vs. procedee de semnatura (2)
Ce se poate intampla daca Alice cripteaza inainte de a semna?
Alice:
calculeaza z = e
Bob
(x)
calculeaza y = sig
Alice
(e
Bob
(x))
trimite lui Bob mesajul (z, y)
Bob:
decripteaza z si obtine x
verica y ca semnatura lui z cu cheia publica ver
Alice
(x, z)
Pericolul: Oscar poate intercepta (z, y), inlocuieste y cu propria
sa semnatura y
1
= sig
Oscar
(z) si trimite lui Bob mesajul (z, y
1
)
se recomanda folosirea semnaturii inante de criptare
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnatura El-Gamal
Semnatura El-Gamal
p - prim a.i. problema logaritmilor discreti sa e dicila in
Z
p
si Z
p
element primitiv
P= Z
p
, A= Z
p
Z
p1
K= {(p, , a, )|
a
(modp)}
valorile p, , - publice, iar a - secreta
pt K = (p, , a, ) si k Z
p1
aleator(secret) denim:
sig
K
(x, k) = (, ) unde
=
k
(mod p)
= (x a)k
1
(mod (p 1))
pt x, Z
p
, Z
p1
denim
ver
K
(x, , ) =T
x
(mod p)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnatura El-Gamal
Observatii
1
Daca semnatura este corecta, vericarea autentica
semnatura:
k
a+k
a
k
+k(xa)k
1
a
k
+xa
a
k
+xa
k
x
(mod p)
2
Protocolul este nedeterminist: pentru un mesaj dat, pot
exista mai multe semnaturi posibile.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Semnaturi si functii de dispersie
Trasatura generala a protocoalelor de semnatura digitala
Mesajele ce pot semnate sunt de dimensiune mica, insa, in
practica, documentele ce trebuiesc a semnate ajung la
dimensiuni mult mai mari.
Solutia: functia de dispersie ce trebuie calculata rapid. Aceasta
transforma un mesaj de lungime arbitrara intr-o amprenta
numerica de dimensiune xata care ulterior va semnata:
daca se doreste semnarea unui mesaj x
1
se calculeaza amprenta numerica z = h(x)
2
aceasta se semneaza cu y = sig
k
(z)
3
perechea (x, y) este transmisa prin canalul de comunicatie
oricine poate efectua vericarea calculand z = h(x) si
utilizand ver
k
(z, y)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Functii de dispersie cu coliziuni
Functii de dispersie cu coliziuni (1)
Cum semnatura foloseste doar amprenta numerica, h trebuie
sa satisfaca cateva conditii (pt a evita falsicarea)
atacul cel mai simplu al unui mesaj (x, y) semnat cu
y = sig
k
(h(x)) este urmatorul:
1
se calculeaza z = h(x)
2
se cauta x
1
= x a.i h(x
1
) = h(x)
Daca exista x
1
(x
1
, y) este un mesaj valid
= h trebuie sa e cu coliziuni slabe
1
1
Denitie. Functia de dispersie h este cu coliziuni slabe daca ind dat un
mesaj x, este calculabil dicil sa se gaseasca un mesaj x
1
= x a.i.
h(x
1
) = h(x)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Functii de dispersie cu coliziuni
Functii de dispersie cu coliziuni (2)
atac: Oscar cauta doua mesaje x
1
, x
2
a.i. x
1
= x
2
si
h(x
1
) = h(x
2
). Il convinge pe Bob sa semneze x
1
cu
amprenta sa numerica h(x
1
) si obtine y (x
1
, y)
semnatura autentica
= h trebuie sa e cu coliziuni tari
2
Obs! O functie cu coliziuni tari este si cu coliziuni slabe.
2
Denitie. Functia de dispersie h este cu coliziuni tari daca este calculabil
dicil sa se obtina doua mesaje x
1
, x
2
, x
1
= x
2
a.i. h(x
1
) = h(x
2
)
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Functii de dispersie cu coliziuni
Functii de dispersie cu coliziuni (2)
atac bazat pe observatia ca este posibil sa se obtina
aleator falsicari ale amprentelor numerice. Daca Oscar
obtine o semnatura valida a amprentei z, el cauta x a.i.
h(x) = z
= h neinversabila
3
Lema. Daca o functie de dispersie este cu coliziuni tari,
atunci ea este neinversabila.
3
Denitie. h este neinversabila daca ind data o amprenta numerica z,
este calculabil dicil sa se gaseasca mesajul x a.i. h(x) = z.
Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie
Exemplu de exercitiu
Exercitiu
Fie numarul prim p = 15 si radacina primitiva modulo 15 g = 3.
Alice doreste sa ii trimita lui Bob un document printr-un canal
de comunicatie. Pentru ca aceasta sa poata semna
documentul x {0, 1}
3 2
3 5
3 2
3 5
1 2 3 4
2 3 4 1
1 2 3 4
2 3 4 1
1 2 3 4
2 3 4 1
1 2 3 4
2 3 4 1
A ALE CRIPTOGRAFIEI
de criptare.
In unele lucrari, cadrul general de lucru este numit criptologie, termenul de
criptograe desemnand numai operat ia de cifrare si descifrare legala.
Situat ia generala de care se ocupa criptograa este urmatoarea:
Criptanalist
Expeditor
Destinatar
6
-
Expeditorul (personalizat n majoritatea lucrarilor cu apelativul Alice) doreste sa trimita
destinatarului (numit Bob) un mesaj printr-un canal de comunicat ie, canal cu un grad
ridicat de nesigurant a
2
. Aceasta insecuritate o prezinta un adversar criptanalist (Oscar)
care doreste din diverse motive sa cunoasca si eventual sa modice cont inutul
mesajului, desi acesta nu i este destinat.
Aceasta condent ialitate solicitata de Alice si Bob se rezolva de obicei prin transfor-
marea mesajului n asa fel ncat el sa nu poata nt eles de nici o persoana care l-ar putea
intercepta. Transformarea respectiva se numeste criptare.
In unele cazuri, problema se poate complica prin faptul ca exista anumite mesaje pe
care Alice neaga cai apart in, desi le-a trimis chiar ea.
In acest caz trebuie prevazute
anumite protocoale care sa ntareasca proprietat ile de autenticare; proprietat i care
sa o sileasca pe Alice sa si recunoasca propriile mesaje (non-repudiere).
In toate aceste scenarii nu exista personaje pozitive sau negative. Orice serviciu de
criptare/decriptare are si o sect ie de criptanaliza. Se pot da numeroase exemple din
istorie care sa arate rolul pozitiv al lui Oscar n anumite situat ii.
In general, ntr-un
triplet (expeditor, destinatar, criptanalist) nimeni nu are ncredere n nimeni. Variantele
studiate n care Alice are ncredere n Bob sau invers, sunt mult mai simple si de aceea
extrem de rare.
2
Canalul de comunicat ie poate suferi si perturbari de ordin zic: zgomote, stergeri, demodulari etc;
studiul detectarii si corectarii erorilor de de transmitere a informat iei constituie tema altui domeniu,
numit Teoria Codurilor.
1.1. DEFINIT II SI NOTAT II PRELIMINARE 3
Pentru a ncepe un studiu sistematic al domeniului, sa stabilim ntai terminologia
folosita uzual:
Un mesaj n forma sa originara este numit text clar. Expeditorul rescrie acest mesaj
folosind o metoda cunoscuta numai de el (eventual si de destinatar); spunem ca el cripteaza
(sau cifreaza) mesajul, obt inand un text criptat. Destinatarul primeste textul cifrat si l
decripteaza stiind metoda folosita pentru criptare; deci Alice si Bob trebuie sa stabileasca
ntr-o etap a preliminara detaliile modalitat ii de criptare si de decriptare.
Algoritmul care realizeaza operat iile descrise se numeste sistem de criptare. Formal,
Denit ia 1.2 Un sistem de criptare este o structura (P, C, K, E, D), unde:
P= {w | w V
In general se considera C= { | a P, k K, = e
K
(a)}.
Funct ia e
K
este evident injectiva
3
; daca e
K
este bijectiva (si deci d
K
= e
1
K
), sistemul
de criptare se numeste simetric.
Pentru ca un sistem de criptare sa e considerat bun, trebuie ndeplinite trei criterii
(enunt ate de Francis Bacon n sec. XV II):
1. Fiind date e
K
si P, este usor de determinat e
K
();
2. Fiind date d
K
si w C, este usor de determinat d
K
(w);
3. este imposibil de determinat din w, fara a cunoaste d
K
.
Ultimul criteriu deneste sub o forma vaga ideea de securitate a sistemului.
La aceste criterii, Bacon adauga si o a patra regula:
4 Textul criptat trebuie sa e un text banal, fara suspiciuni.
Aceasta condit ie este utilizata astazi doar de un subdomeniu strict al criptograei, numit
steganograe.
A ALE CRIPTOGRAFIEI
Observat ia 1.1
Intreaga disciplina numita criptograe se bazeaza pe o conjectura no-
tata prescurtat P = NP
4
(pentru detalii a se vedea [5]). P reprezinta clasa problemelor
rezolvabile prin algoritmi a caror complexitate este marginita superior de o funct ie poli-
nomiala n lungimea datelor de intrare. Modelul standard de calculabilitate este masina
Turing. NP este clasa problemelor rezolvabile prin algoritmi nedeterministic polinomiali
(care sunt inclusi n algoritmii de complexitate cel put in exponent iala). Evident, P NP,
dar se pare ca problema egalitat ii este nedecidabila (n termeni matematici). Oricum,
pentru cei interesat i, site-ul [4] este dedicat unei informari actualizate permanent a rezul-
tatelor si ncercarilor de rezolvare a acestei probleme.
Exemplul 1.1 Unul din primele sisteme de criptare cunoscute este sistemul de criptare
Cezar. Conform istoricului Suetoniu, el a fost folosit de Cezar n corespondent a sa.
Sa consideram alfabetul latin scris, n ordine
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Fie k un numar ntreg din intervalul [0, 25]. El se va numi cheie de criptare. Re-
scriem alfabetul latin permutat ciclic, ncepand nsa cu litera avand numarul de ordine
k (litera A are numarul de ordine 0). Aceasta noua scriere o asezam sub prima scriere,
astfel (am presupus k = 2):
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
Daca Alice are un text clar pe care vrea sa-l cripteze cu sistemul Cezar, ea va proceda
astfel:
Sa presupunem ca acest text clar este NIMIC NOU. Alice va aseza sub ecare liter a a
acestui text, litera aata pe linia a doua din tabelul de sus, astfel:
N I M I C N O U
P K O K E P Q W
Textul criptat obt inut este PKOKEPQW (din motive suplimentare de securitate,
spat iile dintre cuvinte se ignora de obicei).
La primirea textului, Bob care stie ca este vorba de sistemul de criptare Cezar
va proceda astfel: el cunoaste (ind destinatar legal) cheia de criptare e
k
. Cheia sa de
decriptare este e
26k
. Pe baza ei Bob va putea construi cele doua linii ale tabelului, dupa
care va proceda ca Alice: scrie textul criptat pe prima linie, iar pe a doua linie determina
literele corespunzatoare, conform tabelului.
A ALE CRIPTOGRAFIEI
bit i; asa ca sistemele de criptare actuale folosesc n general chei de 1024 bit i sau chiar mai
mult
5
.
In general, un criptanalist este pus n fat a urmatoarelor situat ii, carei solicita strategii
diverse de urmat:
1. Stie numai textul criptat w; n acest caz atacurile sunt direct legate de lungimea
textului.
In sisteme simple cum este Cezar sunt suciente texte scurte, pentru c a o
singura potrivire produce textul - clar. Pentru sistemele mai evoluate, este necesara
o lungime mai mare a textului criptat. Metodele de criptanaliza folosesc diverse
conjecturi si informat ii statistice relative la alfabetul textului - clar, la frecvent a
aparit iei caracterelor etc.
2. Stie cel put in o pereche de caractere (text clar, text criptat); din cunoasterea catorva
perechi (x, e
K
(x)) cu x V criptanalistul va ncearca sa decripteze ntregul text
criptat interceptat.
Exemplul 1.2 La sistemul de criptare Cezar, o singura pereche (a, e
K
(a)), dezvaluie
imediat cheia si implicit duce la decriptare.
Exemplul 1.3 Aceasta a fost situat ia n care s-a aat orientalistul francez Cham-
pollion cand a descifrat hieroglifele,folosind piatra de la Rosetta (vezi [6]).
3. Criptanalistul cunoaste criptarea unor texte clare selectate de el; este atacul cu text
clar ales, considerat n majoritatea studiilor de criptanaliza. Aceasta situat ie este
adesea superioara celei din cazul precedent; sa exemplicam acest lucru.
Exemplul 1.4 Fie sistemul de criptare Hill, creat n 1929 de Lester Hill. Fie d 2
un numar ntreg xat. Se denesc
P= C= (Z
26
)
d
, K= {M | M M
d
(Z
26
), det(M) = 0}.
Deci o cheie de criptare este o matrice M patrata nesingulara de dimensiune d, cu
elemente din Z
26
, iar M
1
formeaza cheia de decriptare.
Textul clar w se mparte n blocuri de lungime d : w =
1
2
. . .
n
, |
i
| = d
(ultimul bloc se completeaza eventual pana ajunge la lungimea d). Textul criptat va
x =
1
2
. . .
n
unde
i
= e
M
(
i
) =
i
M (mod 26), (1 i n).
Pentru decriptare se foloseste relat ia d
M
(
i
) =
i
M
1
(mod 26).
Sa luam de exemplu d = 2 si cheia M =
3 3
2 5
, cu inversa M
1
=
15 17
20 9
.
5
O except ie o constituie sistemele bazate pe curbe eliptice, datorita aparatului matematic special.
1.1. DEFINIT II SI NOTAT II PRELIMINARE 7
Daca textul clar este w = FRAC, vom avea
1
= (F R) = (5 17),
2
= (A C) = (0 2)
Din relat iile
1
=
1
M (mod 26) = (5 17)
3 3
2 5
= (23 22) = (X W)
2
=
2
M (mod 26) = (0 2)
3 3
2 5
= (4 10) = (E K)
se obt ine textul criptat x = XWEK.
Sa ne situam acum pe pozit ia lui Oscar: presupunem ca am gasit dimensiunea d = 2
si ncercam sa aam matricea M (sau echivalent M
1
), stiind perechea (text
clar, text criptat)= (FRAC, XWEG).
Deci Oscar se aa acum n fat a urmatoarei probleme: care este matricea M =
a b
c d
5 17
0 2
a b
c d
23 22
4 10
.
Pentru a putea aa aceasta matrice, Oscar trebuie sa ae inversa lui A =
5 17
0 2
.
Cum det(A) = 10 si cmmdc(10, 26) > 1 = 10
1
(mod 26) nu exista; deci A nu
este inversabila.
Sa presupunem acum ca Oscar lucreaza n ipoteza (3); alege un text clar a carui ma-
trice este inversabila si i aa criptarea. Fie BRAD acest text clar, a carui matrice
asociata este A =
1 17
0 3
11 10
6 15
1 3
0 9
1 3
0 9
11 10
6 15
3 3
2 5
A ALE CRIPTOGRAFIEI
1.2 Sisteme simetrice de criptare
In general, sistemele de criptare clasice se numesc si sisteme simetrice. Motivul este acela
ca odata cu aarea cheii de criptare e
K
, cheia de decriptare d
K
se obt ine imediat, ind
funct ia inversa.
Exemplul 1.5
In Exemplul 1.1, la sistemul Cezar d
K
= e
26K
este cheia de decriptare
pentru cheia de criptare e
K
.
Sistemele de criptare simetrice se mpart n doua clase mari: cifruri de permutare si cifruri
cu substitut ie.
1.2.1 Cifruri de permutare
La aceste sisteme de criptare, textul clar se mparte n blocuri de n (n 2) caractere,
dupa care ecarui bloc i se aplica o permutare xata.
Exemplul 1.6 Sa presupunem ca vom lua drept cheie de criptare permutarea
1 2 3
2 1 3
.
Atunci un text clar, de exemplu FLOARE ALBASTRA se mparte n grupuri de cate trei
caractere (s-a considerat si caracterul spat iu, notat )
FLO ARE AL BAS TRA
Textul criptat va
LFO RAE A L ABS RTA
sau eliminand gruparile, LFORAEA LABSRTA.
Exemplul 1.7 Un sistem celebru de criptare cu permutari este sistemul Richelieu, prezen-
tat si n literatura de Jules Verne, n romanul Mathias Sandorf. Dam un exemplu de
utilizare a unui astfel de sistem.
Fie cartonul 6 6, n care zonele hasurate constituie gauri.
Vrem sa criptam textul
EMINESCU A FOST UN MARE POET NATIONAL
Vom scrie acest text sub forma unui tabel cu sase linii si sase coloane, astfel:
1.2. SISTEME SIMETRICE DE CRIPTARE 9
E M I N E S
C U A F
O S T U N
M A R E P
O E T N A
T I O N A L
Aplicand cartonul peste acest text, vor ramane vizibile 9 caractere: MNS TA AN (citite
de la stanga la dreapta si de sus n jos).
Vom roti acum cartonul cu 90
o
n sensul acelor de ceasornic. El va arata
Asezand acum peste text, raman vizibile caracterele F MPTNIL (primul caracter a fost
un spat iu si l-am marcat cu pentru a-l face vizibil).
La a treia rotire a cartonului se obt ine similar textul ICSUEETOA, iar la a patra
EEUAOURO
Deci textul criptat este
MNS TA AN F MPTNILICSUEETOAEEUAOURO
Operat ia de decriptare se realizeaza similar.
Sa formalizam aceste informat ii.
Denit ia 1.4 Fie n un numar natural nenul. Un cifru de permutare este un sistem
(P, C, K, E, D) unde P= C= (Z
26
)
n
, K= P
n
(mult imea permutarilor de n elemente).
Pentru o cheie (permutare)
e
(a
1
a
2
. . . a
n
) = a
(1)
a
(2)
. . . a
(n)
d
(b
1
b
2
. . . b
n
) = b
1
(1)
b
1
(2)
. . . b
1
(n)
Lema 1.1 Un cifru de permutare este un sistem de criptare Hill.
Demonstrat ie: Pentru ecare permutare P
n
putem construi o matrice de permutare
M
= (m
i,j
) denita
m
i,j
= 1 i = (j)
Se verica usor faptul ca sistemul de criptare Hill cu matricea M
este echivalent cu un
cifru de permutare bazat pe cheia . Mai mult, M
1
= M
1.
10 PRELEGEREA 1. NOT IUNI DE BAZ
A ALE CRIPTOGRAFIEI
Exemplul 1.8 Sa reluam Exemplul 1.6. Permutarii
1 2 3
2 1 3
i corespunde matricea
de permutare
0 1 0
1 0 0
0 0 1
.
Operat ia de criptare este imediata. De exemplu, criptarea textului FLO este
(5 11 14)
0 1 0
1 0 0
0 0 1
= (11 5 14)
adica LFO.
1.3 Exercit ii
1.1 Textul clar NUMAR este criptat n Orice vant nu bate seara. Sa se descrie sistemul
de criptare.
1.2 Folosind atacul prin fort a bruta, decriptat i mesajul WYPTBSJBYZ criptat cu un
sistem Cezar.
1.3 O cheie K este auto-cheie daca d
K
= e
K
. Gasit i toate auto-cheile sistemului de
criptare Cezar.
1.4 Fie p un numar prim. Aratat i ca numarul matricilor 2 2 inversabile peste Z
p
este
(p
2
1)(p
2
p).
1.5 Cate matrici 2 2 sunt inversabile peste Z
n
pentru n = 6, 9, 26 ?
1.6 Sa se cripteze textul clar INAINTE SI LA DREAPTA folosind sistemul de xriptare
Hill cu matricea
M =
17 17 5
21 18 21
2 2 19
sau M =
11 2 19
5 23 25
20 7 1
2 5
9 5
11 8
3 7
10 5 12
3 14 21
8 9 11
1 11 12
4 23 2
17 15 9
1.3. EXERCIT II 11
1.9 Demonstrat i ca ntr-un cifru de permutare, este o auto-cheie daca si numai daca
(i, j) [(i) = j = (j) = i]
Gasit i toate auto-cheile unui cifru de permutare cu n = 2, 3, 4, 5, 6.
1.10 Consideram urmatorul cifru de permutare: Se xeaza numerele naturale p, q. Tex-
tul clar se mparte n blocuri de cate p q caractere. Fiecare astfel de bloc se scrie pe liniile
unei matrici de p linii si q coloane. Criptarea blocului se realizeaza scriind aceste matrici
pe coloane.
De exemplu, pentru p = 3, q = 4, textul clar MAINI CURATE se scrie
M A I N
I C U R
A T E X
(textul s-a completat cu litera X). Textul criptat va MIAACTIUENRX.
Decriptat i urmatorul text DJNOUDNAINPAPANONZ criptat ntr-un mod similar.
1.11 Sa se decripteze mesajul
N T I N I I I D D N R I R T E E A D
U M I I G R A D V O B E M C I I I E
Z S R U A U C M L T A I T U I T N I
D A A L E A R A C R I A S Z T E E E
I G P S A D E A P R E Z S T C A O
A E R I D R E D D E I E S E E P E L
stiind c a a fost criptat cu matricea Richelieu denita n Exemplul 1.7.
12 PRELEGEREA 1. NOT IUNI DE BAZ
A ALE CRIPTOGRAFIEI
Bibliograe
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography
[2] D. Stinton, Cryptography, Theory and Practice, Chapman & Hall/CRC, 2002
[3] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1996
[4] http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
[5] S. Cook, http : //www.claymath.org/millennium/P vs NP/Official Problem Description.pdf
[6] http://en.wikipedia.org/wiki/Rosetta stone
13
Prelegerea 2
Cifruri de substitut ie
Cifrurile de substitut ie sunt cele mai utilizate sisteme de criptare simetrice; ele se ntalnesc
si azi, exemple ind sistemele DES si AES.
Un astfel de cifru consta n nlocuirea ecarui caracter din V cu alt caracter (din W).
Exista doua clase mari de cifruri de substitut ie: sisteme monoalfabetice si polialfabetice.
2.1 Sisteme de criptare monoalfabetice
Un astfel de sistem substituie ecare caracter cu alt caracter totdeauna acelasi, indiferent
de pozit ie. Atunci cand cele doua alfabete coincid (V = W), sistemele monoalfabetice
sunt cazuri particulare de cifruri de permutare.
Vom trece n revista cateva astfel de sisteme.
2.1.1 Sistemul de criptare Cezar
Sistemul de criptare Cezar este un sistem monoalfabetic: odata stabilita cheia de criptare
e
K
, ecare caracter cod x se nlocuieste prin caracterul cod x + k (mod 26) (a se vedea
Prelegerea I). Decriptarea se realizeaza dupa formula d
K
(x) = x k (mod 26).
Observat ia 2.1
In cartea sa De bello gallico, Cezar aminteste de un sistem de criptare,
fara sa dea detalii. Mai tarziu, Suetoniu n Viata lui Iuliu Cezar descrie sistemul.
Cezar folosea sistemul nlocuind literele romane cu cele grecesti si folosea deplasarea k = 3.
Nepotul lui Cezar, mparatul Augustus a utlizat acelasi sistem, cu k = 1. Sistemul Cezar
a fost utilizat mult timp. Armata rusa apela frecvent la el n 1915, ca nlocuitor pentru
sistemele sale proprii de criptare, prea sosticate la nivelul trupelor de camp. Un sistem
Cezar cu k = 13 este inclus n ROT13, implementat pe sistemele UNIX ([5],[3])
Evident, Cezar este un sistem generat de permutarile ciclice din P
26
. Fiind numai 26 chei
posibile, el este extrem de vulnerabil la atacul prin fort a bruta. Pentru a-i mari rezistent a,
s-a utilizat si o varianta, numita sistem Cezar cu cheie, denita astfel:
1
2 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
Se considera un cuvant (cheie), preferabil cu toate caracterele distincte (n caz contrar,
literele identice se folosesc doar la prima aparit ie). Acest cuvant se aseaza la nceputul al-
fabetului. Dupa ce se termina, sirul de completeaza cu literele care nu existau n cuvantul
cheie, n ordine alfabetica.
De exemplu, sa presupunem ca s-a ales cuvantul cheie MARTOR. Scriem
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
M A R T O B C D E F G H I J K L N P Q S U V W X Y Z
Pentru textul clar se vor folosi caracterele de pe primul rand, iar pentru criptare
caracterele corespondente de pe randul al doilea. Astfel, STUDENT se cripteaza n
QSUTOJS, ARGINT n MPCEJS etc.
Sistemul Cezar cu cheie rezista mai bine la atacul cu fort a bruta, numarul cheilor ind
acum card(P
26
= 26!.
2.1.2 Sistemul de criptare an
Sistemul de criptare an este o generalizare a sistemului Cezar. Vom avea T = (= Z
26
,
/= (a, b) [ a, b Z
26
, cmmdc(a, 26) = 1, iar funct iile de criptare si decriptare (pentru
o cheie K = (a, b)) sunt
e
K
(x) = ax +b (mod 26), d
K
(y) = a
1
y +a
1
(26 b) (mod 26)
Condit ia ca a sa e prim cu 26 asigura existent a lui a
1
n Z
26
.
De exemplu, pentru a = 3, b = 5 funct ia de criptare este e
K
(x) = 3x + 5, care poate
reprezentata prin tabelul:
0 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
5 8 11 14 17 20 23 0 3 6 9 12 15 18 21 24 1 4 7 10 13 16 19 22 25 2
sau scris direct pentru caractere
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
F I L O R U X A D G J M P S V Y B E H K N Q T W Z C
Astfel, textul clar PRIMAVARA TARZIE se cripteaza n YEDPFQFEF KDECDR.
Deoarece 3
1
= 9 (mod 26), decriptarea se realizeaza matematic folosind funct ia
d
K
(x) = 9x + 7 (sau practic inversand cele doua linii ale tabelului de mai sus).
Condit ia cmmdc(a, 26) = 1 asigura de asemenea injectivitatea aplicat iei e
K
.
De exemplu, pentru e
K
(x) = 10x + 1, A si N se transforma ambele n B, iar O nu apare
ca imagine n alfabetul substitut iei.
Sa studiem spat iul cheilor /. Orice cheie K / este determinata complet de valorile
ntregi (a, b) cu (a, 26) = 1. Sunt posibile 12 valori
1
pentru a : 1, 3, 5, 7, 9, 11, 15, 19, 21, 23,
25. Pentru b sunt posibile 26 valori, care se iau independent de a, cu singura except ie
a = 1, b = 0 (care se exclude deoarece nu conduce la nici o criptare). Deci card(/) = 311,
numar sucient de mic pentru reusita unui atac prin fort a bruta.
1
Pentru un numar dat n exista (n) numere mai mici decat n si prime cu n, unde phi este funct ia
Euler.
In particular (26) = 12.
2.1. SISTEME DE CRIPTARE MONOALFABETICE 3
2.1.3 Alte sisteme de criptare monoalfabetice
Sistemul de criptare Polybios
Sistemul Cezar nu este cel mai vechi de criptare. Se pare ca primul astfel de sistem a fost
Polybios (istoric grec mort cu 30 ani naintea nasterii lui Cezar). Init ial acesta a fost doar
un sistem maritim de semnalizare cu tort e; ulterior i s-a dat o semnicat ie criptograca.
Sa consideram alfabetul latin, din care eliminam o litera de frecvent a cat mai redusa
2
;
e aceasta W. Cele 25 litere ramase le asezamntr-un patrat 55 (numit careu Polybios)
n felul urmator:
A B C D E
A A B C D E
B F G H I J
C K L M N O
D P Q R S T
E U V X Y Z
In prima etapa, vom numara de cate ori apare n text ecare caracter. se obt ine tabelul
Caracter c k x b s q g p m l e p a v b n o f z
Frecvent a 39 38 27 25 23 20 19 18 18 11 9 8 7 7 2 2 2 2 2
Deci caracterele cele mai frecvente sunt c si k. Pe de-alta parte, cele mai frecvente
caractere din limba romana sunt a, i si e (textul nu este destul de mare pentru a putea
face o distinct ie neta).
In mod cert, a c, k. Sunt patru opt iuni posibile, din care trei
se elimina rapid. Ramane de abordat c a, k e.
Vom nota cu litere mari caracterele din textul clar; prin nlocuirea lui c cu A, a lui k
cu E, textul devine
lqaEA sp gAxE aAa pAmgqb Eq ExA pEersmpqsb vE vsmgxEbA mEaApA tAaApbqlqs
vE Agele Amtxq ms noAxgsb mbxAsp vE exsgE oxAbqsbAbE texbslE spAlbE gAxE
AmgqpvEAq bxEgAbexslk gqxbslE xEtxEnEpbAq tEpbxq mbxAsps qp AfExbsmaEpb
mqtAxAbex vAx lsatEvE pq bxErqsAq mA zsE txEA gqxsems psgs mA mE AmbEtbE
mA AzlE aAxE lqgxq vE lA gEs gq gAxE fEpEAq sp gepbAgb
Cuvantul ExA de pe primul rand are caracterul din mijloc (x) de frecvent a ridicata (27
aparit ii); deci el trebuie sa corespunda unei litere frecvente din limba romana si n plus
sa aiba semnicat ie semantica. Concluzie: acest cuvant este ERA. Deci x R. Facem
substitut ia s se obt ine textul
lqaEA sp gARE aAa pAmgqb Eq ERA pEersmpqsb vE vsmgREbA mEaApA tAaApbqlqs
vE Agele AmtRq ms noARgsb mbRAsp vE eRsgE oRAbqsbAbE teRbslE spAlbE gARE
AmgqpvEAq bREgAbeRsleR gqRbslE REtREnEpbAq tEpbRq mbRAsps qp AfERbsmaEpb
mqtARAbeR vAR lsatEvE pq bRErqsAq mA zsE tREA gqRsems psgs mA mE AmbEtbE
mA AzlE aARE lqgRq vE lA gEs gq gARE fEpEAq sp gepbAgb
.
4
Datele statistice pentru toate tabelele inclusiv limba romana sunt din anul 1994.
2.2. SISTEME DE CRIPTARE POLIALFABETICE 7
2.2 Sisteme de criptare polialfabetice
Diferent a dintre aceste sisteme de criptare si cele monoalfabetice consta n faptul ca
substitut ia unui caracter variaza n text, n funct ie de diversi parametri (pozit ie, context
etc.). Aceasta conduce binent eles la un numar mult mai mare de chei posibile. Se
considera c a primul sistem de criptare polialfabetic a fost creat de Leon Battista n 1568
([3]). Unele aplicat ii actuale folosesc nca pentru anumite sect iuni asyfel de sisteme de
criptare.
2.2.1 Sistemul homofonic
Sistemul de criptare homofonic este un sistem intermediar ntre sistemele mono si cele
polialfabetice. Principalul lui scop este de a evita atacul prin frecvent a de aparit ie a
caracterelor. Se pare ca a fost utilizat prima oara n 1401 de catre ducele de Mantua.
Fiecarui caracter a T i se asociaza o mult ime H(a) ( astfel ncat:
1. H(a) H(b) = a ,= b;
2. Daca a apare mai frecvent n textele clare, atunci card((H(a)) card(H(b)).
Criptarea unui caracter a T se face cu un element ales aleator din H(a). Pentru
decriptarea lui y ( se cauta o mult ime H(a) astfel ca y H(a).
Exemplul 2.2 Sa consideram T= a, b si H(a) = 001, 010, H(b) = 000, 011, 101,
111. Pentru criptarea textului ab se poate folosi oricare din secvent ele
001000, 001011, 001101, 001111, 010000, 010011, 010101, 010111.
Sistemul homofonic este mult mai rezistent la un atac doar pe baza textului criptat, dar
cedeaza usor la un atac cu text clar ales.
2.2.2 Sistemul de criptare Playfair
Sistemul a fost inventat 1854 de Sir Charles Wheatstone. Cel care l promoveaza si l
sust ine pentru a adoptat ca cifru ocial al Marii Britanii este baronul Lyon Palyfayr de
St. Andrews. Guvernul prefera alta varianta, dar acest sistem de criptare capata numele
baronului.
Ideea de baza este urmatoarea:
Din cele 26 litere ale alfabetului se elimina una de frecvent a minima; sa spunem Q.
Restul literelor se aranjeaza arbitrar sub forma unui patrat 55. Sa exemplicam sistemul
pentru tabloul
8 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
S Y D W Z
R I P U L
H C A X F
T N O G E
B K M J V
Acest tabel va forma atat cheia de criptare cat si cea de decriptare.
Regulile de criptare/de-criptare sunt:
Textul clar este separat n blocuri de cate doua caractere (ignorand spat iile). Condi-
t ia este ca nici un bloc sa nu cont ina aceiasi litera, iar textul sa e de lungime para.
Aceste deziderate se realizeaza usor modicand put in textul clar (se introduce o
litera de frecvent a mica ntre cele doua litere egale, respectiv ca ultim caracter).
Fiecare bloc se cripteaza astfel: daca cele doua litere nu sunt plasate n tabel pe
aceiasi linie sau coloana (de exemplu A si E), se cerceteaza colt urile dreptunghiului
determinat de cele doua litere (n cazul nostru A, F, O, E). Perechea AE este crip-
tata n FO. Ordinea este determinata de ordinea liniilor pe care se aa literele din
textul clar. Astfel, EA se cripteaza n OF, SF n ZB etc.
Daca cele doua litere se gasesc pe aceasi linie (coloana), se merge ciclic cu o pozit ie
la dreapta (respectiv jos). Deci CA se cripteaza n AX, WX n UG, CA n AX
etc.
De exemplu, textul clar AFARA PLOUA se cripteaza n XHHPPDPEPX. Se observa ca
cele patru aparit ii ale caracterului A au fost criptate cu X, H, P si din nou X.
O permutare ciclica a liniilor si coloanelor tabloului nu modica criptarea. De exemplu,
patratul
P U L R I
A X F H C
O G E T N
M J V B K
D W Z S Y
obt inut prin deplasarea cu doua pozit ii spre stanga si o pozit ie n sus, este echivalent cu
cel init ial (ambele asigura aceeasi cheie de criptare).
Regulile de baza pot modicate sau completate dupa necesitat i. Astfel, se poate
adauga din loc n loc cate o litera falsa (cu frecvent a foarte redusa, cum ar X, Y ) care
sa modice textul criptat. Patratul 5 5 poate nlocuit cu un dreptunghi 4 6 sau
3 8, cu schimbarile corespunzatoare n alegerea literelor care se elimina.
Pentru a pastra cheia n sigurant a, se recomanda memorarea acesteia. Cum o astfel
de cheie este extrem de greu de memorat, se foloseste un cuvant cheie sau o propozit ie cu
toate literele distincte. Acesta cuvant este scris la nceputul tabloului. Spat iile ramase
sunt completate cu restul literelor alfabetului, scrise n ordinea aparit iei lor
5
.
5
In limba romana, primele litere ca frecvent a sunt AEI, aate la distant a egala una
de alta. Deci vom cauta pe ecare linie tripletele de litere situate pe pozit iile (k, k+4, k+8)
avand frecvent a semnicativ de mare (maxima n cazul unui text lung). Pentru linia 3,
alegerea este simpla: ea este chiar AEI (16 aparit ii din 49 posibile), deci o deplasare
0 n codul Cezar.
Pentru prima linie, sunt doua posibilitat i: O S W (deplasare 14) sau S W A
(deplasare 18), ambele cu cate 18 aparit ii.
12 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
Tot doua variante apar si pentru a doua linie: CGK (deplasare 2) cu 10 aparit ii,
sau R V Z (deplasare 14) cu 13 aparit ii.
Deplas arile dau exact codicarile cheii. Deci trebuie luate n considerare patru vari-
ante de cuvant cheie: OCA, ORA, SCA sau SRA. Cum de obicei cuvantul cheie are
o semnicat ie semantica (pentru a putea ret inut mental usor), putem presupune ca el
este OCA sau ORA.
O simpl a vericare ret ine drept cuvant cheie ORA, care conduce la decriptarea corecta
a textului (spat iile si semnele de punctuat ie se pun corespunzator):
PELANGAPLOPIIFARASOTADESEAAMTRECUTMACUNOSTEAUVECINIITOTITUNUMAICUNOSCUT
ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBREDEMIHAIEMINESCU
A doua metoda de aare a lungimii cheii de criptare ntr-un sistem Vigenere se bazeaza
pe un concept denit n 1920 de Wolfe Friedman n 1920: indexul de coincident e ([4]).
Denit ia 2.1 Daca x = x
1
x
2
. . . x
n
este o secvent ae n caractere alfabetice, se numeste
index de coincident e al lui x probabilitatea ca doua caractere din x, alese aleator, sa e
identice. Aceasta valoare se noteaza I
c
(x).
Sa notam cu f
i
frecvent a de aparit ie n x a caracterului literal codicat i (0 i 25).
Doua litere din x pot alese n C
2
n
moduri. Din acestea, sunt C
2
f
i
moduri ca ambele sa
aiba aceiasi codicare i (0 i 25). De aici se poate deduce formula
I
c
(x) =
25
i=0
C
2
f
i
C
2
n
=
25
i=0
f
i
(f
i
1)
n(n 1)
Sa presupunem ca x este un text n limba romana. Din tabelul frecvent elor de aparit ie ale
literelor, notand p
i
probabilitatea de aparit ie a caracterului codicat cu i (0 i 25),
valoarea pe care o putem estima pentru indxul de coincident e este
I
c
(x)
25
i=0
p
2
i
= 0, 0788
Motivat ie: Probabilitatea ca doua elemente aleatoare sa e ambele egale cu caracterul de
cod i este p
2
i
(0 i 25). Armat ia este valabila pentru orice criptare cu un sistem
monoalfabetic.
Sa presupunem acum ca am aranjat textul criptat x = x
0
x
1
. . . x
n1
ntr-o matrice cu
p linii si n/p| coloane (unde p este un numar ntreg pozitiv arbitrar), astfel
x
0
= x
0
x
p
x
2p
. . .
x
1
= x
1
x
p+1
x
2p+1
. . .
.
.
.
x
p1
= x
p1
x
2p1
x
3p1
. . .
2.3. EXERCIT II 13
Daca p este chiar lungimea cheii, atunci ecare valoare I
c
(x
i
) trebuie sa e apropiata de
0, 0788.
In caz contrar, sirul x
i
va arata mult mai aleator, ind obt inut prin amestecul
unei secvent e de caractere criptate cu chei diferite. Pentru o secvent a complet aleatoare,
valoarea indexului de coincident e este
I
c
26
1
26
2
=
1
26
= 0, 0384
Valorile 0, 0788 si 0, 0384 vor constitui punctele de extrem pe care le poate lua I
c
. Vom lua
deci diverse valori pentru p, pana vom gasi una care sa se apropie cat mai mult de 0, 788
si nu de 0, 384. Aceea poate considerata cu sucienta sigurant a ca este lungimea
cheii.
i=0
p
i
f
i+m
n
1
Daca m = k
j
(0 j p 1), ne putem astepta ca F
m
25
i=0
p
2
i
= 0, 0788.
Daca m ,= k
j
, atunci F
m
va semnicativ mai mic decat aceasta valoare. Deci, dupa
cel mult 25 ncercari, se poate aa deplasarea k
j
si deci a j-a litera din cheie.
2.3 Exercit ii
2.1 Demonstrat i ca funct ia de criptare ana e
K
(x) = ax+b (mod 26) este injectiva daca
si numai daca cmmdc(a, 26) = 1.
2.2 Textul clar este scris peste alfabetul V = a, b, c, d. Se foloseste un sistem de
criptare monoalfabetic dat de regulile a bb, b aab, c bab, d a. Sa se
arate ca funct ia de criptare este injectiva.
Dar pentru: a ab, b ba, c a, d c ?
14 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
2.3 Se denesc doua sisteme de criptare cu T= a, b, (= c, d si regulile
a ccd, b c pentru primul sistem,
a c, b dcc la al doilea sistem.
Ce cuvinte sunt criptate la fel n cele doua sisteme ?
2.4 S-a recept ionat mesajul
ARAU RIRU ITAA URIR EESU URAP IUTE IRI
Despre el, criptanalistul are urmatoarele informat ii: s-a folosit un careu de criptare
tip Polybios, precum si cuvantul cheie STROP.
Sa se decripteze mesajul.
2.5
In sistemele de criptare simple, orice cheie de criptare poate reprezentata ca o
compunere de cateva chei generatoare. La sistemul Cezar, o astfel de cheie este e
1
. Aratat i
ca la sistemul an sunt necesare cel putn doua chei generatoare.
2.6 Decriptat i urmatorul mesaj
TKLCP OCTLE TSSZC XCMEB CVKMK CCSBX KGQBA CGQPE MBKCQ FKGSP
SSBEB SBQPQ ACSGQ PEMGQ BLCOK CAQLB CQGKM BXCLQ GKCTX SFKCA
CBCBV KVKME LQAKP BXXCO CPBKL KOKCB QPQAC SSPBK LKM
criptat cu un sistem an.
2.7 O varianta a sistemului AUTOCLAVE este utilizarea textului criptat (n loc de text
clar) dupa prima aplicare a cheii. La care din cele doua variante de AUTOCLAVE este
criptanaliza mai usoara ?
2.8 Cate chei are un sistem de criptare an n care card(V ) = 30, 100 sau 1225 ?
2.9 Sa presupunem ca K = (5, 21) este o cheie ntr-un sistem de criptare an peste Z
29
.
(a) Exprimat i funct ia de decriptare sub forma d
K
(y) = ay +b unde a, b Z
29
;
(b) Aratat i ca e
K
(d
K
(x)) = x, x Z
29
.
2.10 Fie K = (a, b) o cheie ntr-un sistem an peste Z
n
. Aratat i ca K este auto-cheie
daca si numai daca a
1
a (mod n) si b (a + 1) 0 (mod n).
Aat i toate auto-cheile dintr-un sistem an peste Z
15
.
Sa presupunem ca n = pq unde p si q sunt numere prime distincte. Aratat i ca numarul
auto-cheilor din sistemul an peste Z
n
este n +p +q + 1.
Bibliograe
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook pf Applied Cryptography
[2] A. Salomaa, Criptograe cu chei publice, Ed. Militara, Bucuresti 1994
[3] B. Schneier, Applied Cryptography, John Wiley and Sons, 1995
[4] D. Stinton, Cryptography, Theory and Practice, Chapman& Hall/CRC, 2002
[5] http://en.wikipedia.org/wiki/Caesar cipher# History and usage
[6] http://psychcentral.com/psypsych/Polybius square
[7] http://www.answers.com/topic/vigen-re-cipher
15
Prelegerea 3
Sisteme mecanice de criptare
Sistemele de criptare pot aduse la un grad mai mare de complexitate si securitate daca
se folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor usura
pe de-o parte operat iile de criptare/decriptare, iar pe de-alta parte vor capabile sa
creeze un numar mult mai mare de chei posibile.
3.1 Sistemul antic Skitala
Skitala (baston n greceste) este o unealta folosita pentru realizarea unui sistem de
criptare cu permutari. El este sub forma aproximativ cilindrica, n jurul lui indnfasurata
o banda de hartie. Mesajul se scrie n mod normal pe aceasta banda, dupa care hartia este
desfacuta. La primire se foloseste un bat asemanator pe care se nfasoara sulul de hartie,
mesajul devenind din nou inteligibil (pentru detalii, a se vedea [6], [3]). Conform istoricilor
greci, spartanii foloseau acest mod de comunicare n timpul campaniilor militare.
1
El
avea avantajul de a rapid si nu comporta erori de transmitere. Dezavantajul este acela
ca este usor de spart.
Exemplul 3.1 Sa presupunem ca dimensiunile bat ului permit scrierea a 4 randuri, cu
5 caractere pe ecare rand. Fie VINO MAINE LA INTALNIRE textul care trebuie
criptat. Ignorand spat iile, mesajul va apare scris sub forma
1
Skitala a fost ment ionata prima oara de poetul grec Archilochus (sec. VII .H). Desi apare ulterior
si n alte texte, abia la mijlocul secolului III .H. Apollonius din Rhodos specica limpede utilizarea lui
ca mijloc de criptare. De remarcat ca pentru perioada respectiva, sistemele de criptare folosite de greci
erau de tip steganograc. O descriere a modului de operare este data apoi de Plutarh (50-120 A.D.).
1
2 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
________________________
| | V | I | N | O | M |
|__| A | I | N | E | L |__
| A | I | N | T | A | |
| L | N | I | R | E | |
|___|___|___|___|___|__|
Dupa derularea de pe skitala, mesajul scris pe banda de hartie este:
VAALIIINNNNIOETRMLAE.
La decriptare, banda va rulata din nou si ecare a patra litera va pe aceeasi linie.
Criptanaliza este foarte simpla. Se iau pe rand valorile n = 2, 3, 4, . . .. Pentru o astfel
de valoare xata, se formeaza n randuri de tipul
n +i, 2n +i, 3n +i, . . . (i = 1, 2, . . . , n)
care ulterior se concateneaza. Exista o valoare a lui n pentru care textul astfel format este
inteligibil.
3.2 Cilindrul Jeerson
Ideea de masina de criptare apare clar prima data la Thomas Jeerson, primul secretar
de Stat al Statelor Unite; acesta a inventat un aparat de criptat numit roata de criptare,
folosit pentru securitatea corespondent ei cu aliat ii n special cei francezi.
2
Un cilindru Jeerson este format din n discuri de dimensiuni egale (init ial n = 26
sau n = 36, dar valoarea este nerelevanta pentru descrierea sistemului) asezate pe un ax.
Discurile se pot roti independent pe ax, iar pe muchea ecaruia sunt inscrise cele 26 litere
ale alfabetului, ntr-o ordine aleatoare (dar diferita pentru ecare disc).
La criptare, textul clar se mparte n blocuri de n caractere. Fiecare astfel de bloc
se scrie pe o linie (generatoare) a cilindrului, rotind corespunzator ecare disc pentru a
aduce pe linie caracterul cautat. Oricare din celelalte 25 linii va constitui blocul de text
criptat.
Pentru decriptare este necesar un cilindru identic, n care se scrie pe o linie textul
criptat (de n caractere) si apoi se cauta printre celelalte 25 linii un text cu semnicat ie
semantica. Probabilitatea de a avea un singur astfel de text creste cu numarul de discuri
din cilindru.
O mica diferent a apare daca textul clar nu are nici o semnicat ie semantica (s-a
folosit o dubla criptare). Atunci trebuie convenita dinainte o anumita distant a de criptare
s (1 s 25).
2
Thomas Jeerson a folosit acest aparat n perioada 1790 1802, dupa care se pare ca ideea s-a
pierdut. Devenit presedinte, Jeerson a fost atras de sistemul Vigenere, pe care l considera mai sigur
si-l recomanda secretarului sau de stat James Madison ca nlocuitor al sistemului pe care l inventase
anterior.
3.2. CILINDRUL JEFFERSON 3
Ordinea discurilor poate de asemenea schimbata. De exemplu, un cilindru cu n = 10
discuri poate realiza 10! = 3.628.800 texte criptate diferite pentru acelasi text clar.
Cilindrul Jeerson realizeaza o substitut ie polialfabetica de perioada n. Daca ar
privit ca un sistem de criptare Vigenere, lungimea cheii este enorma (de multe ori n
n
, n
funct ie de modalitat ile de aranjare a alfabetelor pe discuri), si deci metoda de atac a lui
Kasiski este inaplicabila.
Exemplul 3.2 Sa consideram n = 10 si e cilindrul, n care am desfasurat literele de pe
cele 10 discuri:
1 2 3 4 5 6 7 8 9 10
1 A A A A A A A A A A
2 R R P N V S P E I I
3 I O S I O O U S R H
4 E S Y M T R H U E E
5 K U L O Y P I P S T
6 O V U C L M S B L O
7 B I K U E U E L B M
8 C J B L B B N C C U
9 U L R T C D R D D C
10 D B C Y D Y Y H F D
11 J V D B G E D I N F
12 T C T F F C B J Y G
13 L G F G K V F F T J
14 N K G S N H G O G P
15 P N O H H F V G H Q
16 W P N J U K J K J B
17 Q Q E D P L K M K N
18 M T H E Q Q M N M V
19 S H M K R I T Q P W
20 V E Q P S J O R Q X
21 X D V Q W N L V V L
22 Z Y W V X G W W W Y
23 G W X X M T Q Y O K
24 H X Z R I W X X U R
25 Y Z I Z J X Z T X S
26 F M J W Z Z C Z Z Z
Cu ajutorul lui, textul clar TREI CULORI construit pe una din liniile generatoare ale
cilindrului va genera urmatoarele linii (oricare din ele putand folosit drept text criptat):
4 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
T R E I C U L O R I
L O H M D B W G E H
N S M O G D Q K S E
P U Q C F Y X M L T
W V V U K E Z N B O
Q I W L N C C Q C M
M J X T H V A R D U
S L Z Y U H P V F C
V B I B P F U W N D
X F J F Q K H Y Y F
Z C A G R L I X T G
G G P S S Q S T G J
H K S H W I E Z H P
Y N Y J X J N A J Q
F P L D M N R E K B
A Q U E I G Y S M N
R T K K J T D U P V
I H B P Z W B P Q W
E E R Q A X F B V X
K D C V V Z G L W L
O Y D X O A V C O Y
B W T R T S J D U K
C XX F Z Y O K H X R
U Z G W L R M I Z S
D M O A E P T J A Z
J A N N B M O F I A
Daca se considera o dubla criptare cu distant a s = 3, atunci textul clar AAAAAAAAAA
va criptat cu cilindrul anterior n ESYMTRHUEE.
Cilindrul Jeerson a fost reinventat ulterior de mai multe ori, cea mai notabila ind
se pare masina de criptat M 94, care a fost n serviciu pana pana n al doilea razboi
mondial.
3.3 Masini de criptat
Prima jumatate a sec. XX este dominata de masinile de criptat, o combinat ie ntre
masinile de scris si sisteme de criptare mecanice bazate pe discuri.
3.3.1 C 36 (M 209 C)
Masina C 36 este conceputa de inginerul suedez Boris Hagelin, la solicitarea armatei
americane de a avea o masina de criptat portabila, usor de manuit, care sa poata folosita
3.3. MASINI DE CRIPTAT 5
dupa un instructaj sumar. Este cunoscuta si sub numele de M 209 C, la baza ind
un model creat de Hagelin n Suedia la sfarsitul anilor
30. Ea ncepe sa e produs a
dupa cateva modicari legate de design n 1940 si nlocuieste treptat masina de criptat
M 94. Se apreciaza ca n timpul razboiului au fost produse circa 140.000 masini de
criptat C 36.
Nu au fost specicate masuri speciale de securitate; C 36 nu a fost realizata pentru
a criptograc sigura, ea ind destinata zonelor militare tactice, unde era nevoie doar de
o sigurant a de cateva ore fat a de o eventuala criptanaliza.
Vom da o prezentare matematica a principiilor sale de construct ie; pentru alte detalii,
a se vedea [1] si [5].
Denit ia 3.1 Se numeste matrice lug o matrice binara M
627
n care ecare din cele 27
coloane cont ine cel mult doi de 1.
Exemplul 3.3 ([4]). Toate exemplicarile referitoare la M 209 vor facute pentru
matricea
M =
0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1
0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0
In aplicat iile practice, spat iul se nlocuieste uneori cu o litera de frecvent a redusa.
3.3. MASINI DE CRIPTAT 7
Deoarece liniile din congurat ia de nceput au lungimi numere prime ntre ele, vectorii
generat i ncep sa se repete sigur dupa 171921232526 = 101.405.850 pasi; deci cuvantul
cheie poate considerat mai lung decat orice text clar. Sunt nsa cazuri cand aceasta
perioada poate mai scurta. De exemplu, daca congurat ia de nceput cont ine numai 1,
se va genera un singur vector, deci perioada este 1. De asemenea se obt in perioade scurte
pentru matrici lug cu foarte put ini 1 sau congurat ii de nceput n care raportul dintre
numarul de 0 si 1 este disproport ionat.
Nu exista o condit ie matematica pentru existent a a exact 6 linii n congurat ia de
nceput. Acest numar a fost ales ca un compromis ntre securitatea criptograca si
usurint a de a cripta.
In general perioada creste cu numarul de linii.
Masina de criptat M 209 avea si ea o serie de slabiciuni (un atac cu texte clare alese
care au anumite componente comune poate duce la informat ii asupra matricii lug), astfel
ca n 1943 criptanalistii germani puteau decripta mesajele. Totusi din punct de vedere
militar tactic ea a fost considerata perfect adaptata necesitat ilor si a fost folosita de
armata americana pana dupa razboiul din Coreea (1953 1956).
Ulterior, Hagelin a elaborat un model mbunatat it: masina C 52. Aceasta avea o
perioada de 2.756.205.443; discurile puteau si scoase si reinserate n alta ordine; exista
un disc al carui alfabet putea permutat. C 52 a facut parte din ultima generat ie
de masini de criptat clasice, noua tehnologie (cea a computerelor) permit and dezvoltarea
altor mecanisme cu o putere de calcul mult mai mare.
3.3.2 Enigma
Poate cea mai celebra masina de criptat a fost masina germana Enigma. Sub acest nume
se aa o varietate larga de modele de masini de criptat electro-mecanice, care asigura o
criptare polialfabetica de tip Vigenere sau Beaufort.
Ea a fost proiectata la Berlin n 1918, de inginerul german Arthur Scherbius. Primul
model (A) este prezentat la Congresele Uniunii Postale Internat ionale din 1923 si 1924.
Modele ulterioare sunt folosite n mai multe t ari europene si asiatice (Suedia, Olanda,
Marea Britanie, Japonia, Italia, Spania, SUA, Polonia, Elvet ia) n scopuri comerciale,
militare sau diplomatice. Din 1926 ncepe sa e preluata si de armata germana, care
dupa 1928 si deneste propriile modele (G, I, K).
In total au fost construite circa 100.000 masini Enigma, din care 40.000 n timpul
razboiului. Dupa 1945 aliat ii au capturat toate masinile de pe teritoriul german, acestea
ind nca mult timp considerate sigure. Abia n 1970 au aparut primele informat ii despre
decriptarea de catre aliat i (Biuro Szyfrow - Polonia si Bletchley Park - Anglia) a unui
mare num ar de mesaje criptate prin modelul militar Enigma si transmise prin radio n
timpul razboiului.
O descriere completa a masinii este destul de lunga; recomand pentru detalii [2], [3].
k
)(
j
M
1
j
)(
i
D
1
i
)P
1
Sa calculam numarul de variante posibile pentru criptarea unui mesaj. Vom considera
o masina Enigma cu 3 discuri. Atunci numarul de situat ii init iale posibile este 262626 =
17.576. Cum cele 3 discuri pot permutate n 6 moduri, numarul variantelor se ridica la
6 17.576 = 105.456.
Pentru ecare din acestea, o tabela de conexiuni cu 10 perechi de litere conectate
ridica numarul variantelor la 150.738.274.937.250.
La acestea se adauga si modul de pozit ionare al inelului de caractere la mecanismul
discurilor, care mai ridica ordinul de marime al variantelor cu aproximativ 10
5
. Aceste
estimari arata ca Enigma era cea mai sigura masina de criptat a momentului respectiv.
10 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
Bibliograe
[1] Kahn, David - The Codebreakers, MacMillan Publishing Co, New York, 1967
[2] http : //en.wikipedia.org/wiki/Enigma machine
[3] Thomas Kelly - The myth of the skytale, Cryptologia, Iulie 1998, pp. 244 - 260.
[4] Salomaa, Aarto - Criptograe cu chei publice, Ed. Militara, 1994
[5] http : //en.wikipedia.org/wiki/M 209
[6] Collard Brigitte - Secret Language in Graeco-Roman antiquity (teza de doctorat)
http : //bcs.fltr.ucl.ac.be/FE/07/CRY PT/Intro.html
11
Prelegerea 4
Sisteme de criptare uide
4.1 Sisteme sincronizabile si auto-sincronizabile
In sistemele de criptare prezentate pana acum, elementele succesive ale textului clar erau
criptate folosind aceeasi cheie K. Deci, daca
x = x
1
x
2
x
3
. . .
este textul clar, textul criptat este
y = y
1
y
2
y
3
. . . = e
K
(x
1
)e
K
(x
2
)e
K
(x
3
) . . .
Sistemele de criptare de acest tip se numesc sisteme de criptare bloc (block cyphers).
Alta maniera utilizata este aceea a sistemelor de criptare uide (stream cyphers).
Denit ia 4.1 Fie /= (T, (, /, c, T) un sistem de criptare. O secvent a de simboluri
k
1
k
2
k
3
. . . /
+
se numeste cheie uida.
Denit ia 4.2 /= (T, (, /, c, T) este un sistem uid daca cripteaza un text clar
x = x
1
x
2
x
3
. . .
n
y = y
1
y
2
y
3
. . . = e
k
1
(x
1
)e
k
2
(x
2
)e
k
3
(x
3
) . . .
unde
k = k
1
k
2
k
3
. . .
este o cheie uida din /
+
.
Problema principala este aceea de a genera o astfel de cheie de criptare (teoretic innit).
Aceasta se poate realiza e aleator, e pe baza unui algoritm care pleaca de la o secvent a
mica de chei de criptare. Un astfel de algoritm se numeste generator de chei uide.
Mai multe detalii vor prezentate n cadrul prelegerii dedicate generatorilor de numere
pseudo-aleatoare.
1
2 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Exemplul 4.1 (sistemul de criptare Vernam):
In acest sistem x
i
, k
i
, y
i
0, 1. Criptarea se realizeaza conform formulei
y
i
= x
i
k
i
, (i 1)
Daca cheia uida este aleasa aleator si nu mai este folosita ulterior, sistemul de
criptare Vernam se numeste one - time pad.
Un sistem de criptare one-time pad este teoretic imposibil de spart.
1
Intr-adevar,
ind dat un text criptat cu un astfel de sistem, Oscar nu are nici o informat ie privind
cheia uid a sau textul clar. Dicultatea consta nsa atat n lungimea cheii (egala cu cea
a textului clar), cat si n modalitatea de transmitere a ei ntre Alice si Bob.
Pentru sistemul Vernam exista o modalitate de atac cunoscuta sub numele de crip-
tanaliza diferent iala (prezentata mai tarziu, n cadrul sistemului de criptare DES).
Anume:
Daca y
1
y
2
. . . y
n
si y
1
y
2
. . . y
n
sunt doua texte criptate cu aceiasi chee uida k
1
k
2
. . . k
n
,
atunci
y
i
= x
i
k
i
, y
i
= x
i
k
i
(1 i n)
deci y
i
y
i
== x
i
x
i
, si cheia nu mai este necesara, ci doar informat ia privind lungimea
sa; redundant a ultimei relat ii va permite criptanaliza.
Sistemele de criptare uide sunt clasicate n sisteme sincrone si auto-sincronizabile.
Denit ia 4.3 Un sistem de criptare uid sincron este o structura (T, (, /, L, c, T),
unde:
T, (, / sunt mult imi nite nevide ale caror elemente se numesc texte clare, texte
criptate si respectiv chei;
L este o mult ime nita nevida numita alfabet sir de chei;
g : / L
+
este un generator de chei uide: pentru
k /, g(k) = k
1
k
2
k
3
. . . L
+
este o cheie uida (teoretic innita);
z L exista o regula de criptare e
z
c si o regula de decriptare d
z
T astfel ca
x T, d
k
(e
k
(x)) = x
Exemplul 4.2 Sistemul de criptare Vigenere poate denit ca un sistem de criptare
uid sincron. Fie m lungimea cuvantului cheie din sistemul Vigenere. Denim
1
In anii
90 comunicarea ntre Moscova si Washington era securizata n acest mod, transportul cheii
de criptare ind asigurat de curieri.
4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 3
T = ( = L =Z
26
, / =(Z
26
)
m
,
e
z
(x) = x +z (mod 26), d
z
(y) = y z (mod 26)
Cheia z
1
z
2
z
3
. . . este denita
z
i
=
k
i
daca 1 i m
z
im
daca i m+ 1
Ea va genera din cheia xa K = (k
1
, k
2
, . . . , k
m
), cheia uida k
1
k
2
. . . k
m
k
1
k
2
. . . k
m
k
1
k
2
. . .
Procesul de criptare cu un sistem uid sincron poate reprezentat ca un automat
descris de relat iile
q
i+1
= (q
i
, k), z
i
= g(q
i
, k), y
i
= h(z
i
, x
i
)
unde q
0
este starea init iala care poate determinata din cheia k, este funct ia de
tranzit ie a starilor, g este funct ia care produce cheia uida z
i
, iar h este funct ia de iesire
care produce textul criptat y
i
pe baza textului clar x
i
si a cheii uide z
i
.
q
i
-
666
- -
6
6
-
?
g
h k
q
i+1
z
i
x
i
y
i
q
i
-
666
- -
6
6
-
?
g
h
1
k
q
i+1
z
i
y
i
x
i
(a) Criptare (b) Decriptare
Observat ia 4.1
Un sistem de criptare bloc poate privit ca un caz particular de sistem de criptare
uid, n care i 1, z
i
= K.
(sincronizare):
In sistemele de criptare uide sincrone, Alice si Bob trebuie sa-si
sincronizeze cheia uida pentru a putea obt ine o criptare/decriptare corecta. Daca n
timpul transmisiei sunt inserat i sau eliminat i bit i n textul criptat, atunci decriptarea
esueaza si ea poate reluata numai pe baza unor tehnici de resincronizare (cum ar
de exemplu reinit ializarea sau plasarea unor marcatori speciali la intervale regulate
n textul transmis).
Modicarea unui bit din textul criptat (faa a se elimina sau adauga nimic) nu va
afecta decriptarea altor caractere (nepropagarea erorii).
4 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Un adversar activ care elimina, insereaza sau retrimite componente ale mesajului
criptat, va provoca desincronizari si va deci detectat la recept ie. De asemenea, el
poate face modicari n textul criptat si sa observe cum vor afecta ele textul clar.
Deci un text criptat cu un sistem uid sincron necesita meca-nisme separate de
autenticare si de garantare a integritat ii datelor.
Denit ia 4.4 Un sistem aditiv uid binar de criptare este un sistem uid sincron n care
T = ( = L =Z
2
iar h este funct ia (XOR).
Un astfel de sistem este reprezentat mai jos:
Generator
chei uide
- -
?
-
k
z
i
x
i
y
i
Generator
chei uide
- -
?
-
k
z
i
y
i
x
i
(a) Criptare (b) Decriptare
Denit ia 4.5 Un sistem de criptare uid este auto-sincronizabil (sau asincron) daca
funct ia de generare a cheii uide depinde de un numar xat de caractere criptate anterior.
Deci comportamentul unui astfel de sistem poate descris de ecuat iile
q
i
= (y
it
, y
it+1
, . . . , y
i1
), z
i
= g(q
i
, k), y
i
= h(z
i
, x
i
)
unde q
0
= (y
t
, y
t+1
, . . . , y
1
) este starea init iala (cunoscuta), k este cheia, g este funct ia
de generare a cheii uide, iar h este functia de iesire care cripteaza textul clar x
i
. Cele
mai cunoscute sisteme auto-sincronizabile sunt registrii liniari cu feedback, utilizat i la
generarea secvent elor de numere pseudo-aleatoare (n criptograe) si la generarea codurilor
ciclice (n teoria codurilor).
Exemplul 4.3 (Criptare cu auto-cheie)
2
:
Fie T = ( = L =Z
26
. Se deneste cheia uida astfel:
z
1
= K, z
i
= y
i1
, (i 2)
Pentru un element oarecare al cheii z Z
26
, se deneste
e
z
(x) = x +z (mod 26)
d
z
(y) = y z (mod 26)
Sa consideram K = 13 si sa criptam textul clar BUCURESTI.
2
Se pare ca sistemul este atribuit lui Vigenere.
4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 5
Transformat n secvent a numerica vom avea
(x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
, x
9
) = (1, 20, 2, 20, 17, 4, 18, 19, 8)
, unde L
In faza a doua, cheia uida este generata folosind algoritmul PRGA (pseudo-random
generation algorithm).
4
Cand un sistem de criptare este marcat opt ional, nsemna ca el este una din variantele oferite pentru
implementare.
10 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Algoritmul PRGA de generare a cheii uide
i
j
+
? ?
?
666
?-
?
6
?
S
0 1 2 S[i]+S[j] 254 255
K
. . . . . . . . . . . .
Cont inuturile S[i] si S[j] (unde i, j sunt date de cei doi pointeri) se aduna modulo 256,
iar octetul K de la adresa S[i] + S[j] este introdus n cheia uida.
In plus cei doi octet i
sunt interschimbat i.
Procedeul este reluat atat timp cat este nevoie. La ecare reluare starea celor doi
pointeri se modica (i este incrementat cu 1 iar j este incrementat cu S[i]).
In acest fel,
orice locat ie din S box este modicata cel put in odata ;a 256 iterat ii.
Formal:
i := 0
j := 0
while GeneratingOutput:
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap(S[i],S[j])
output S[(S[i] + S[j]) mod 256]
Algoritmul KSA de init ializare
KSA este utilizat pentru init ializarea S boxului. Fie n (1 n 255) numarul de
octet i din cheie
5
. Init ial n S se introduce permutarea identica. Ulterior se realizeaza 256
transpozit ii. Formal
for i from 0 to 255 do S[i] := i
j := 0
for i from 0 to 255 do
j := (j + S[i] + key[i mod n]) mod 256
swap(S[i],S[j])
Implementarea sistemului RC4 este foarte simpla: ea lucreaza cu octet i si necesita
256 pentru S box, n octet i de memorie pentru cheie, plus trei variabile ntregi i, j, k.
Operat iile folosite sunt XOR si AND (sau pe unele platforme simpla adunare pe bit i,
fara transport).
5
In 2001, Fluhrer, Mantin si Shamir descopera ca din toate cheile RC4 posibile, primii
octet i de iesire nu sunt aleatori, oferind informat ii importante despre cheie.
La majoritatea sistemelor de criptare, o masura de securitate ncesara este alegerea
unui numar aleator nou
6
care sa e folosit pentru criptarea ecarui mesaj.
In acest fel,
criptarea de doua ori a aceluiasi mesaj va genera texte diferite. O solute sigura (care
funct ioneaza pentru orice sistem de criptare) este de a folosi o cheie pe termen lung din
care, prin amestec cu un nonce (dupa un algoritm prestabilit) se obt ine cheia necesara
unei criptari. Multe aplicat ii nsa care folosesc RC4 fac o simpla concatenare a cheii cu
nonce. Aceasta slabiciune este exploatata de Fluhrer, Mantin si Shamir pentru a sparge
ulterior sistemul de criptare WEP (wired equivalent pruvacy) folosit pe ret elele fara r
802.11.
Ulterior implementarile sistemului RC4 s-au aparat eliminand primii octet i (uzual
1024) din cheia uida, nainte de a o folosi.
4.3 Exercit ii
1. Construit i coduri de autenticare a mesajelor (MAC) capabile sa autentice mesajele
primite printr-un sistem uid de criptare. (Indicat ie: a se vedea [1], paragraf 9.5.4)
2. Presupunem ca denim o cheie uida ntr-un sistem sincronizabil n felul urmator:
Fie K /, L un alfabet al cheilor si o mult ime nita de stari. Se deneste o
stare init iala q
0
. Apoi, pentru i 1, se deneste recursiv
q
i
= f(q
i1
, K)
unde f : / . De asemenea, i 1, elementul z
i
din cheia uida este denit
prin
z
i
= g(q
i
, K)
unde g : / L. Aratat i ca orice cheie uida rezultata n acest mod are o
perioada de lungime maxim [[.
6
Un astfel de numar poarta numele de nonce (new number)
12 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Bibliograe
[1] Menezes, Oorschot, Vanstome - Handbook of applied cryptography, 1997
[2] Schneier, B. - Applied Cryptography, John Wiley & Sons, second edition, 1997
[3] Stinton, D. Cryptography, Theory and Practice, Chaptan & Hall/CRC, second edi-
tion 2002
13
Prelegerea 5
Sistemul de criptare DES
5.1 Considerat ii generale
In mai 1973, Biroul Nat ional de Standarde din SUA a lansat n Registrul Federal (jurnalul
ocial al guvernului) un apel la construirea unui sistem de criptare ocial care sa se
numeasca Data Encryption Standard (DES). Firma IBM a construit acest sistem
publicat n Registrul Federal la 17 martie 1975, modicand un sistem de criptare mai
vechi, numit Lucifer. Dupa dezbateri publice, DES a fost adoptat ocial la 17 ianuarie
1977 ca standard de criptare. De atunci, el a fost re-evaluat la ecare 5 ani, ind n acest
moment cel mai popular sistem de criptare cu cheie simetrica. Spargerea sa n iulie 1998
a coincis (ntamplator ?) cu durata sa ociala de utilizare.
5.2 Descrierea sistemului DES
Sistemul DES cripteaza un bloc de text clar de 64 bit i ntr-un text criptat tot de 64 bit i,
utilizand o cheie de 56 bit i. Algoritmul cuprinde 3 etape:
1. Fie textul clar init ial, de 64 bit i. Lui i se aplica o permutare IP init iala xata,
obt in andu-se
0
= IP() = L
0
R
0
. L
0
este format din primii 32 bit i ai lui
0
, iar
R
0
din ultimii 32 bit i.
2. Se efectueaza 16 iterat ii (tururi) ale unei funct ii care se va preciza. La ecare tur
se calculeaza L
i
R
i
(1 i 16) dupa regula
L
i
= R
i1
R
i
= L
i1
f(R
i1
, K
i
)
unde este sau - exclusiv (XOR) a doua secvent e binare. f este o funct ie care se
va preciza, iar K
1
, K
2
, . . . , K
16
sunt secvent e de 48 bit i calculat i din cheia K. Se
spune ca K
1
, K
2
, . . . , K
16
sunt obt inut i prin diversicarea cheii (key shedule).
1
2 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
3. Blocului R
16
L
16
i se aplica inversa permutarii init iale pentru a obt ine textul criptat
= IP
1
(R
16
L
16
).
Observat ia 5.1 Sistemul de ecuat ii care denesc criptarea la ecare tur poate inversat
imediat pentru a obt ine ecuat iile tururilor de decriptare. Acestea sunt:
R
i1
= L
i
, L
i1
= R
i
f(L
i
, K
i
)
Funct ia de criptare f(A, J) are ca argumente doua secvent e binare: una de 32 bit i,
iar a doua de 48 bit i. Rezultatul este o secvent a de 32 bit i. Etapele de calcul ale funct iei
sunt:
1. Argumentul A este extins la 48 bit i folosind o funct ie de expansiune E. E(A)
cuprinde bit ii lui A asezat i ntr-o anumita ordine, unii bit ii ind scrisi de doua ori.
2. Se calculeaza B = E(A) J; rezultatul se descompune n 8 subsecvent e de cate 6
bit i ecare: B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
.
3. Se folosesc 8 S cutii S
1
, S
2
, . . . , S
8
, ecare din ele ind un tablou de dimensiuni
4 16 cu elemente numere ntregi din intervalul [0, 15]. Pentru o secvent a B
j
=
b
1
b
2
b
3
b
4
b
5
b
6
se calculeaza un sir de 4 bit i S
j
(B
j
) astfel: bit ii b
1
b
6
dau reprezentarea bi-
nara a indicelui unei linii r (0 r 3) din S
j
; ceilalt i bit i b
2
b
3
b
4
b
5
dau reprezentarea
binara a indicelui unei coloane c (0 c 15) din tablou. Atunci C
j
= S
j
(B
j
) =
[S
j
(r, c)]
2
(1 j 8). ([x]
2
este reprezentarea n baza 2 a numarului ntreg x).
4. Secvent a C = C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8
de lungime 32 se rearanjeaza folosind o
permutare xata P. Rezultatul nal este f(A, J) = P(C).
Mai ramane sa specicam funct iile particulare folosite de sistemul DES:
Permutarea init iala IP este:
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Permutarea inversa IP
1
este:
5.2. DESCRIEREA SISTEMULUI DES 3
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
Funct ia de expansiune E este denita de tabloul:
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Cele opt cutii S (S-boxes) sunt:
S
1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S
2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S
3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S
4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
4 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
S
5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S
6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S
7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S
8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Permutarea xata P este:
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
Mai ramane de prezentat procesul de diversicare al cheii K. De fapt, K este o secvent a
de 64 bit i, din care 56 denesc cheia, iar 8 (bit ii de pe pozit iile 8, 16, 24, . . . , 64) sunt bit i
de paritate, aranjat i n asa fel ncat ecare octet sa cont ina un numar impar de 1. Acesti
8 bit i sunt ignorat i n procesul de diversicare.
1. Din cheie se elimina bit ii de paritate, iar asupra celorlalt i se aplica o permutare
PC
1
, obt inandu-se PC
1
(K) = C
0
D
0
(C
0
sunt primii 28 bit i din secvent a, iar D
0
ceilalt i 28 bit i). Permutarea PC
1
este
5.3. CONTROVERSE LEGATE DE DES 5
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
2. Pentru i = 1, 2, . . . , 16 se calculeaza
C
i
= LS
i
(C
i1
)
D
i
= LS
i
(D
i1
)
si K
i
= PC
2
(C
i
D
i
). LS
i
este o rotat ie circulara la stanga cu una sau doua pozit ii,
n funct ie de valoarea lui i: o pozit ie daca i = 1, 2, 9, 16, altfel rotirea este de doua
pozit ii. Permutarea PC
2
este:
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Decriptarea se realizeaza plecand de la textul criptat si utilizand acelasi algoritm, n
ordine inversa; se vor folosi n ordine cheile K
16
, . . . , K
1
.
5.3 Controverse legate de DES
Inca de la lansarea sa, DES a fost supus la numeroase critici. O prima obiect ie a fost
folosirea cutiilor S. Toate calculele din DES sunt liniare, cu except ia cutiilor. Deci, de
fapt toata securitatea sistemului se bazeaza pe acestea. Dar, nimeni (cu except ia autorilor)
nu stie cum sunt concepute cutiile. Multe persoane sunt convinse ca ele ascund diverse
trape secrete care permit celor de la Agent ia nat ionala de securitate (NSA - serviciul
american care raspunde de chestiunile legate de criptograe) sa decripteze orice mesaj.
Ca urmare, NSA arma n 1976 ca S - cutiile au fost construite pe baza urmatoarelor
criterii:
1. Fiecare linie este o permutare a numerelor 0, . . . , 15;
6 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
2. Nici o cutie nu este o funct ie liniara sau ana;
3. Modicarea unui bit din operand, o S - cutie provoaca modicarea cel put in a doi
bit i din rezultat;
4. Pentru ecare cutie S si (secvent a de lungime 6), S() si S( 001100) difera
prin cel put in doi bit i.
Alte doua proprietat i au fost ment ionate ca ind consecint e ale criteriilor de construct ie:
5. Pentru orice cutie S si orice , S() = S( 11ab00), oricare ar a, b {0, 1};
6. Pentru orice cutie S, daca un bit din operand este ment inut constant si se urmarste
un bit al rezultatului, numarul de valori care produc 0 este apropiat de numarul
de valori care produc 1.
Intr-adevar, daca bitul xat este unul din cei doi bit i care
determina linia cutiei S, exista conform criteriului 1. 16 valori care produc 0 si
16 valori care produc 1; pentru ceilalt i bit i, aceasta nu este adevarat, dar numarul
de valori care produc 0 (sau 1) este cuprins totdeauna ntre 13 si 19.
Nici un alt criteriu referitor la S - cutii nu a mai fost recunoscut public.
Cea mai pertinenta critica referitoare la DES se refera la marimea prea mica (numai
2
56
) a spat iului cheilor. Ca urmare s-au conceput numeroase masini dedicate atacurilor
cu text clar cunoscut, care sa caute cheia. Fiind dat un text clar de 64 bit i si textul
sau criptat , se verica toate cheile posibile K pana se obt ine e
K
() = (de remarcat
ca solut ia exista totdeauna, dar nu este unica).
5.4 Moduri de utilizare ale DES -ului
In istoria sa, sistemul de criptare DES a cunoscut patru moduri de utilizare, moduri
extinse ulterior si la alte sisteme:
Modul ECB (Electronic Codebook Mode) corespunde metodei descrise anterior: ind
dat un text clar x =
1
2
. . ., ecare bloc
i
de 64 bit i este criptat cu cheia K dupa
formula
i
= e
K
(
i
), (i 1)
procedeul conducand la textul criptat y =
1
2
. . .
In modul CBC (Cypher Block Chaining Mode), ecare bloc de text criptat
i
este
combinat printr-un XOR () cu textul clar urmator
i+1
, nainte de criptarea
acestuia. Operat ia decurge conform schemei:
5.4. MODURI DE UTILIZARE ALE DES -ULUI 7
1
e
K
e
K
2
j j
1
2
V I =
0
+ +
Criptare
-
?
?
?
-
6
-
?
?
?
-
6
-. . .
1
2
j j
d
K
d
K
1
2
V I =
0
-
?
?
?
-
?-
?
?
?
-
?-
+ +
. . .
Decriptare
Se deneste un bloc cu valoarea init iala V I =
0
, dupa care blocurile se cripteaza
dupa formula
i
= e
K
(
i1
i
), (i 1)
Modurile OFB si CFB sunt construite conform sistemelor de criptare uide: se
genereaza ntai cheia uida, care se combina apoi cu textul clar. OFB (Output
Feedback Mode) este o criptare sincronizabila aditiva: componentele cheii uide
sunt obt inute prin criptarea iterativa a unui bloc init ial V I de 64 bit i; se deneste
0
= V I si se calculeaza
1
,
2
, . . . dupa formula
i
= e
K
(
i1
), (i 1)
Secvent a blocurilor de text clar x =
1
,
2
, . . . este criptata apoi aditiv conform
relat iei
i
=
i
i
, (i 1)
In modul CFB (Cypher Feedback Mode) se ncepe cu
0
= V I (bloc init ial de 64
bit i) si se calculeaza cheia uida
i
criptand din nou blocul de text criptat obt inut
anterior:
i
= e
K
(
i1
), (i 1)
. Ca si la modul OFB, n etapa a doua avem
i
=
i
i
, (i 1)
De remarcat ca funct ia de criptare e
K
este folosita aici atat la procesul de criptare
cat si la cel de decriptare.
e
K V I =
0
1
e
K
2
- -
?
?
-
6
- -
?
?
-
6
-
+ +
Criptare
. . .
e
K V I =
0
1
e
K
al
2
2
- -
?
?
-
? - -
?
?
-
? -
+ +
Decriptare
. . .
Desi metoda prezentata a fost descrisa pentru blocuri de marime 64, modurile OFB
si CFB pot extinse la blocuri de k bit i (1 k 64).
8 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
Cele patru moduri de utilizare prezinta diverse avantaje si dezavantaje. Astfel, la
ECB si OFB, modicarea unui bloc de text clar
i
provoaca modicarea unui singur
bloc de text criptat,
i
.
In anumite situat ii, acest fapt constituie un defect. Modul OFB
este utilizat adesea pentru transmisiile prin satelit.
1
,
2
, . . . ,
n
, asociat cu MAC-ul
n
. Cand Bob primeste mesajul
1
,
2
, . . . ,
n
, el
genereaza
1
, . . . ,
n
folosind cheia (secreta) K si verica daca
n
este identic cu mesajul
MAC primit.
De remarcat ca Oscar nu poate construi un MAC deoarece nu cunoaste cheia K
utilizata de Alice si Bob; orice modicare a mesajelor clare este depistata astfel usor.
Se poate realiza si o combinare a integritat ii cu condent ialitatea, n felul urmator:
Alice utilizeaza cheia K
1
pentru a calcula un MAC bazat pe
1
, . . . ,
n
; e
n+1
acest
MAC. Apoi, ea cripteaza mesajul
1
, . . . ,
n+1
n
1
, . . . ,
n+1
folosind o a doua cheie
K
2
. Cand Bob primeste mesajul, el decripteaza n prima faza (cu cheia K
2
), apoi verica
cu cheia K
1
daca
n+1
este MAC-ul lui
1
, . . . ,
n
.
Sau ca alta varianta Alice poate utiliza K
1
pentru criptarea mesajului
1
, . . . ,
n
;
apoi, pentru
1
, . . . ,
n
determina MAC-ul
n+1
folosind cheia K
2
. Bob va face ntai ver-
icarea corectitudinii data de MAC si daca totul este n ordine va trece la decriptare.
5.5 Sisteme de criptare nrudite cu DES
5.5.1 Triplu DES (3DES)
Triplu DES (cunoscut si sub numele 3DES sau mai rar DES ede) este un sistem
derivat din DES, propus de Walter Tuchman (seful echipei IBM care a construit DES).
Numele ocial este FIPS Pub 46 3.
Formal, 3DES este denit prin formula
c = DES
k
3
(DES
1
k
2
(DES
k
1
(m))).
unde:
m este un bloc de text clar (64 bit i),
5.5. SISTEME DE CRIPTARE
INRUDITE CU DES 9
e este blocul de text criptat rezultat,
k
1
, k
2
, k
3
sunt chei DES (de 56 bit i),
DES
k
: criptarea DES cu cheia k,
DES
1
k
: decriptarea DES cu cheia k.
Introducerea la pasul 2 a decriptarii nu afecteaza securitatea algoritmului. Avantajul
consta n utilizarea pentru 3DES a unei implementari de DES (astfel, cele doua sisteme
pot inter-opera).
Uneori dar destul de rar se foloseste pentru Triplu DES o criptare n lant de trei
criptari DES (numita si DES eee):
c = DES
k
3
(DES
k
2
(DES
k
1
(m))).
Utilizarea a trei pasi (ede sau eee) este esent iala pentru protejarea contra unui atac de
tipul meet-in-the-middle.
In cazul unei duble criptari, acest atac este destul de ecient.
In opinia lui Bruce Schneider, n 1996 IDEA constituia cel mai sigur sistem de criptare
utilizabil fara restrict ii. Este o componenta a sistemului de securitate prin posta elec-
tronica PGP, unde asigura criptarea datelor.
Sistemul este foarte asemanator cu DES. Astfel, el este un sistem simetric care
opereaza cu blocuri de texte clare de 64 bit i, folosind o cheie de 128 bit i.
Textul clar de 64 bit i este despart it n 4 sublocuri X
1
, X
2
, X
3
, X
4
, de cate 16 bit i
ecare. Aceste patru componente formeaza intrarea la prima runda a algoritmului.
In
total sunt 8 runde, care folosesc operat iile de adunare, nmult ire (modulo 2
16
) si XOR;
toate pe 16 bit i. De asemenea sunt implicate si 16 subchei a cate 16 bit i ecare.
Intre
runde, subblocurile 2 si 3 sunt schimbate ntre ele. Dupa runda 8, cele patru subblocuri
sunt combinate cu 4 subchei, formand iesirea.
O runda cont ine 14 operat ii, anume:
1
DES are 4 chei slabe K pentru care e
K
(e
K
(x)) = x. Mai exista 12 chei semi-slabe asociate n
perechi (K
1
, K
1
) pentru care e
K
1
(e
K
2
(m)) = m. Posibilitatea ca printr-o alegere aleatoare a cheii sa
se obt ina o cheie slaba sau semi-slaba este deci 2
52
. Mult i utilizatori solicita un test pentru depistarea
chilor slabe, test care nu afecteaza semnicativ timpul de criptare.
5.5. SISTEME DE CRIPTARE
INRUDITE CU DES 11
1. Se nmult este X
1
cu prima subcheie;
2. Se aduna X
2
cu a doua subcheie;
3. Se aduna X
3
cu a treia subcheie;
4. Se nmult este X
4
cu a patra subcheie;
5. Ce s-a obt inut la pasii 1 si 3 se combina prin XOR;
6. Ce s-a obt inut la pasii 2 si 4 se combina prin XOR;
7. Se nmult este rezultatul pasului 5 cu subcheia 5;
8. Se aduna rezultatele pasilor 6 si 7;
9. Se nmult este rezultatul pasului 8 cu subcheia 6;
10. Se aduna rezultatele pasilor 7 si 9;
11. Ce s-a obt inut la pasii 1 si 9 se combina prin XOR;
12. Ce s-a obt inut la pasii 3 si 9 se combina prin XOR;
13. Ce s-a obt inut la pasii 2 si 10 se combina prin XOR;
14. Ce s-a obt inut la pasii 4 si 10 se combina prin XOR.
Rezultatele pasilor 11, . . . , 14 formeaza iesirea dintr-o runda; cele patru subblocuri (dupa
ce subblocurile doi si trei sunt interschimbate) formeaza intrarea n runda urmatoare.
Dupa ultima runda, are loc o transformare nala:
1. Se nmult este X
1
cu prima subcheie;
2. Se aduna X
2
cu a doua subcheie;
3. Se aduna X
3
cu a treia subcheie;
4. Se nmult este X
4
cu a patra subcheie.
Cela patru subblocuri obt inute n nal formeaza textul criptat.
Prelucrarea subcheilor se face dupa urmatorul algoritm:
1. Cheia de 128 bit i este desfacuta n 8 subchei a cate 16 bit i ecare;
2. Primele 6 subchei sunt folosite la prima runda, iar urmatoarele doua, la runda
a doua;
3. Cheia este rotita spre stanga cu 25 bit i si se desface din noun 8 subchei, folosite
la rundele 2 si 3 (cate patru subchei);
4. Se repeta pasul 3 cat timp este necesar.
Operat ia de decriptare se realizeaza urmand aceeiasi pasi, cu singura diferent a ca subcheile
se introduc n ordine inversa.
Comparativ cu DES, IDEA prezinta unele avantaje. Astfel, implementarile realizate
permit o viteza dubla de criptare n IDEA fat a de DES.
Lungimea cheii (128) bit i, asigura o securitate sporita la atacurile brute: pentru a
gasi cheia prin ncercari, ar necesare cam 2
128
teste; deci cu un chip care testeaza un
miliard de chei pe secunda, ar trebui cam 10
13
ani o perioada mai lunga decat varsta
Pamantului.
12 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
Autorii au armat (fara sa demonstreze) ca IDEA rezista atacurilor prin criptanaliza
diferent iala. Un studiu al subcheilor a aratat ca exista unele chei slabe, care permit sparg-
erea sistemului de criptare ntr-un timp mai scurt. O asigurare contra alegerii (aleatoare)
a acestor chei slabe ar completarea algoritmului de generare a subcheilor prin operarea
ecarei subchei generate printr-un XOR cu 0x0D, unde x este o cifra hexazecimala
aleasa aleator.
5.5.4 NEW DES
NEWDES a fost creat n 1985 de Robert Scott, ca un posibil nlocuitor al sistemului
DES. Algoritmul nu este o varianta a DES-ului (cum s-ar putea nt elege din numele
sau, ales destul de nefericit). El opereaza cu texte clare grupate n blocuri de 64 bit i, dar
cheia are lungimea 120 bit i. Ca o simplicare, aici nu vom avea permutare init iala si nici
nala.
Blocul unui text clar este spart n 8 subblocuri de cate 8 bit i: B
0
, B
1
, . . . , B
7
. Aceste
subblocuri trec prin 17 runde, ecare runda avand 8 pasi.
Cheia este mpart ita n 15 subchei K
0
, K
1
, . . . , K
14
. Procedeul de criptare este descris
destul de clar de schema urmatoare:
f
f
f
f
f
f
f
f
j j
j j
j j
j j
j j
j j
j j
j j
?
-
-
-
- -
-
?
-
-
?
- -
-
?
- -
-
?
- -
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
B
0
B
1
B
2
B
3
B
4
B
5
B
6
B
7
K
0
K
1
K
2
K
3
K
4
K
5
K
6
Runda 1
Runda 2
Rundele 3 15
5.6. EXERCIT II 13
f
f
f
f
f
f
f
f
j
j
j
j
j
j
j
j j
j
j
j
j
j
j
j -
-
?
- -
6666
-
-
?
- -
-
-
?
- -
-
-
?
- -
?
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
K
8
K
9
K
10
B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
K
14
K
13
K
12
K
11
Runda 16
Runda 17
5.6 Exercit ii
5.1 Sa se arate ca procesul de decriptare folosind DES se realizeaza folosind tot sistemul
de criptare, dar inversand ordinea de aplicare a subcheilor.
5.2 Sa notam DES(, K) textul criptat cu cheia K. Daca = DES(, K) si
=
DES(c(), c(K)), unde c(i
1
i
2
. . . i
n
) = i
n
i
n1
. . . i
1
, sa se arate ca
= c().
5.3 O modalitate de a ntari sistemul de criptare DES consta n dubla-rea criptarii:
ind date doua chei K, K
, se deneste = e
K
2
(e
K
1
()). Daca e
K
2
= d
K
1
, cheile K
1
si K
2
se numesc duale (si atunci = ). O cheie este auto-duala daca este propria sa
duala.
1. Sa se arate ca daca C
0
are tot i bit ii identici si la fel D
0
, atunci K este auto-duala.
2. Sa se arate ca urmatoarele chei (scrise n hexazecimal) sunt auto-duale:
0101010101010101; FEFEFEFEFEFEFEFE;
1F1F1F1F1F1F1F1F; E0E0E0E0E0E0E0E0.
3. Sa se arate ca daca C
0
= 0101 . . . 01 sau C
0
= 1010 . . . 10, atunci
C
i
XOR C
17i
= 1 . . . 1; D
i
XOR D
17i
= 1 . . . 1 (1 i 16).
4. Sa se arate ca urmatoarele perechi de chei sunt duale:
E001E001F101F101, 01E001E001F101F1;
FE1FFE1FFE0EFE0E, 1FFE1FFE0EFE0EFE;
E01FE01FFF10FF10, 1FE01FE00EF10EF1.
14 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
5.4 Se poate deni un cod de autenticare al mesajului (MAC) utilizand un mod CFB
sau CBC. Fiind data o secvent a de blocuri
1
,
2
, . . . ,
m
de texte clare, de deneste val-
oarea init iala IV =
1
. Criptarea lui
2
, . . . ,
n
cu cheia K n modul CFB da
1
, . . . ,
n1
(sunt numai n 1 blocuri de text criptat). Se deneste MAC ca ind e
K
(
n1
). Sa se
arate ca el coincide cu rezultatul MAC dat n prelegere, cu modul CBC.
5.5 Daca o secvent a de texte clare
1
,
2
, . . . ,
n
produce prin criptare
1
,
2
, . . . ,
n
, iar
blocul
i
este transmis gresit (apar erori de canal), sa se arate ca numarul de blocuri care
vor decriptate gresit este 1 n modul ECB sau OFB si 2 n modul CBC sau CFB.
Prelegerea 6
Modalitat i de atac asupra DES
timest
. Din
aceste valori, Oscar pastreaza ntr-o tabela T numai 2m perechi (X(i, 0), X(i, t)) 1 i
m (deci sunt memorate numai prima si ultima coloana a matricii X).
In momentul atacului, Oscar obt ine textul criptat al textului clar ales de el. El
va cauta cheia K n cele t coloane ale matricii X, consultand tabloul T. Sa presupunem
K = X(i, t j) pentru un j (1 j t) dat (K este n una din cele t coloane ale lui X).
Vom avea g
j
(K) = X(i, t), si
g
j
(K) = g
j1
(g(K)) = g
j1
(R(e
K
())) = g
j1
(R()).
Sa calculam sirul
j
(1 j t) denit de relat ia de recurent a
j
=
_
R() daca j = 1
g(
j1
) daca 2 j t
Daca K = X(i, tj), vom avea
j
= X(i, t). De remarcat ca reciproca nu este adevarata:
nu este sucient ca
j
= X(i, t) pentru a avea K = X(i, tj), deoarece funct ia de reducere
R nu este injectiva (R reduce un spat iu de 2
64
n unul de 2
56
valori, deci ecare valoare
provine n general din 2
8
= 256 valori). Trebuie deci vericat ca = e
X(i,tj)
() pentru
a decide ca X(i, t j) este ntr-adevar cheia. Valoarea X(i, t j) nu este disponibila n
memorie, dar ea se poate recalcula n t j pasi, plecand de la X(i, 0).
Oscar va folosi deci urmatorul algoritm:
1.
1
R()
2. for j := 1 to t do
2.1. if i cu
j
= X(i, t) then
2.1.1. calculeaza X(i, t j) = g
tj
(X(i, 0))
2.1.2. if = e
X(i,tj)
() then K X(i, t j), STOP
2.2.
j+1
g(
j
)
Analizand probabilitatea de succes a algoritmului, se poate arata ca daca mt
2
N =
2
56
, atunci probabilitatea ca sa avem cheia K n cele t coloane ale matricii X este de circa
0, 8mt/N. Coecientul 0, 8 provine din faptul ca valorile X(i, t) pot sa nu e distincte. O
sugestie este de a alege m t N
1/3
si de a construi N
1/3
tabele, ecare cu alta funct ie
de reducere R. Astfel, spat iul de memorie necesar este de 112 N
2/3
bit i (trebuie pastrat i
2N
2/3
valori de 56 bit i). Timpul de precalcul este liniar O(N).
6.2. ATACUL MEET-IN-THE-MIDDLE 3
Timpul de calcul al atacului este mai dicil de evaluat. De remarcat ca pasul 2.1
poate implementat n cel mai rau caz ntr-un timp O(log m), utilizand arbori binari de
cautare. Daca acest pas esueaza (deci nu se gaseste nici o valoare), timpul de calcul este
O(N
2/3
). Ceilalt i pasi care urmeaza cresc acest timp doar cu un factor constant.
6.2 Atacul meet-in-the-middle
Este un atac cu text clar ales, dezvoltat n 1981 de Merkle si Hellman ca raspuns la ideea
unei duble criptari cu doua chei diferite, conform schemei
e e
- - -
? ?
m
x
y
K
1
K
2
Lema 6.1 Pentru un sistem de criptare bloc, o dubla criptare poate atacata folosind
O(2
n
) operat ii si O(2
n
) spat iu de memorie, unde n este lungimea cheii.
Demonstrat ie: Fie (m, y) o pereche (text clar, text criptat) obt inuta pe baza schemei de
mai sus.
1. Pentru ecare din cele 2
n
chei posibile se calculeaza x
i
= e
K
i
(m);
2. Se stocheaza (x
i
, K
i
) sortate (sau indexate) dupa x
i
.
3. Pentru ecare din cele 2
n
chei posibile:
(a) Se calculeaza x
j
= d
K
j
(y);
(b) Se cauta in lista creata la pasul anterior o pereche (x
i
, K
i
) cu x
i
= x
j
;
4. O pereche de chei posibile este (K
i
, K
j
);
(deoarece e
K
i
(m) = d
K
j
(y), deci e
K
j
(e
K
i
(m)) = y).
Algoritmul se reia cu alte perechi (m, y), pana ce perechea de chei folosite este determinata
n mod unic.
Exemplul 6.1 Un atac direct asupra unei duble criptari cu DES ar necesita un timp de
ordin 2
112
si un spat iu neglijabil. Daca se foloseste un atac meet-in-the-middle, timpul va
2
56
iar spat iul 2
56
. Strategii complementare de genul compromisului spat iu - timp pot
duce la variante de genul: 2
p
spat iu, 2
q
timp, unde p + q = 112 ([1]).
Vom mai ntalni frecvent acest atac la protocoalele de stabilire a cheilor de sesiune.
4 PRELEGEREA 6. MODALIT
Intr-un astfel de atac se ignora permutarea init iala IP si inversa sa (ele nu joaca nici
un rol n criptanaliza). Ne vom margini la un DES restrans pe n (n 16) runde. Deci
textul clar este L
0
R
0
si L
n
R
n
textul criptat (vom ignora de asemenea inversarea nala
dintre L
n
si R
n
).
Criptanaliza diferent iala considera doua texte clare L
0
R
0
, L
0
R
0
si textele criptate
corespunzatoare L
n
R
n
respectiv L
n
R
n
. Ea va efectua studii asupra mesajelor L
0
R
0
=
L
0
R
0
L
0
R
0
si L
n
R
n
= L
n
R
n
L
n
R
n
.
Denit ia 6.1 Fie S
j
(1 j 8) o S - cutie din sistemul DES. Pentru orice pereche
(B
j
, B
j
) de siruri de 6 bit i, vom deni XOR-ul de intrare pentru S
j
prin B
j
= B
j
B
j
,
iar XOR-ul de iesire prin S
j
(B
j
) S
j
(B
j
).
De remarcat ca un XOR de intrare este o secvent a de 6 bit i, iar un XOR de iesire este
o secvent a de 4 bit i.
Denit ia 6.2 Pentru orice B
j
Z
6
2
se noteaza (B
j
j
) care
prin XOR dau B
j
.
Observat ia 6.1
O mult ime (B
j
) cont ine 2
6
= 64 elemente;
(B
j
) = {(B
j
, B
j
B
j
)| B
j
Z
6
2
}.
Pentru ecare pereche din (B
j
A 5
0000 0001 0010 0011 0100 0101 0110 0111
0 8 16 6 2 0 0 12
1000 1001 1010 1011 1100 1101 1110 1111
6 0 0 0 0 8 0 6
, C
j
, C
j
) = {B
j
Z
6
2
| S
j
(B
j
) S
j
(B
j
B
j
) = C
j
,
N
j
(B
j
, C
j
) = card(IN
j
(B
j
, C
j
)).
Distribut ia data n Exemplul 6.2 da valorile N
1
(110100, C
1
), C
1
Z
4
2
. Toate aceste
valori se g asesc n Tabelul urmator:
XOR de iesire intrari posibile
0000
0001 000011, 001111, 011110, 011111, 101010, 101011, 110111, 111011
0010 000100, 000101, 001110, 010001, 010010, 010100, 011010, 011011
100000, 100101, 010110, 101110, 101111, 110000, 110001, 111010
0011 000001, 000010, 010101, 100001, 110101, 110110
0100 010011, 100111
0101
0110
0111 000000, 001000, 001101, 010111, 011000, 011101, 100011, 101001
101100, 110100, 111001, 111100
1000 001001, 001100, 011001, 101101, 111000, 111101
1001
1010
1011
1100
1101 000110, 010000, 010110, 011100, 100010, 100100, 101000, 110010
1110
1111 000111, 001010, 001011, 110011, 111110, 111111
Pentru ecare din cele 8 S-cutii exista 64 XOR-uri de intrare posibile; deci n total vor
512 date de distribuit, lucru usor de realizat cu un calculator.
Reamintim ca intrarea ntr-o S-cutie la turul i este B = EJ, unde E = E(R
i1
) este
rezultatul expandarii lui R
i1
, iar J = K
i
este un subsir reordonat al cheii K. XOR-ul
de intrare (al celor 8 cutii) este deci
B B
= (E J) (E
J) = E E
.
6 PRELEGEREA 6. MODALIT
si E
j
pentru
un j (1 j 8) dat, precum si valoarea XOR de iesire C
j
= S
j
(B
j
) S
j
(B
j
) a lui S
j
.
Vom avea
E
j
J
j
IN
j
(E
j
, C
j
)
unde E
j
= E
j
E
j
.
Sa presupunem ca se deneste mult imea test
j
astfel:
test
j
(E
j
, E
j
, C
j
) = {B
j
E
j
| B
j
IN
j
(E
j
, C
j
)}
(s-au luat toate XOR-urile lui E
j
cu elemente din IN
j
(E
j
, C
j
j
sunt subsecvent e construite pentru intrarea n S-cutia S
j
, iar
C
j
j
, C
j
).
Cum se poate remarca, exista exact N
j
(E
j
, C
j
j
, C
j
);
valoarea corecta J
j
este una din acestea.
Exemplul 6.3 Sa consideram E1 = 000001, E
1
= 110101, C
1
= 1101. Deoarece
N
1
(110100, 1101) = {000110, 010000, 010110, 011100, 100010, 101000, 110010} are 8 ele-
mente, exista 8 secvent e posibile pentru J
1
, cumulate n test
1
(000001, 110101, 1101) =
{000111, 010001, 010111, 011101, 100011, 100101, 101001, 110011}.
Daca se ia un alt triplet (E
1
, E
1
, C
1
0
R
0
, criptate n L
3
R
3
respectiv L
3
R
3
. Vom avea
R
3
= L
2
f(R
2
, K
3
) = R
1
f(R
2
, K
3
) = L
0
f(R
0
, K
1
) f(R
2
, K
3
).
Construct ia pentru R
3
este similara. Deci
R
3
= L
0
f(R
0
, K
1
) f(R
0
, K
1
) f(R
2
, K
3
) f(R
2
, K
3
).
Sa presupunem ca s-a ales R
0
= R
0
, deci R
0
= 00 . . . 0. Atunci f(R
0
, K
1
) = f(R
0
, K
1
)
si deci R
3
= L
0
f(R
2
, K
3
) f(R
2
, K
3
).
R
3
2
, K
3
) = R
3
L
0
.
6.3. CRIPTANALIZA DIFERENT IAL
A 7
Avem f(R
2
, K
3
) = P(C), f(R
2
, K
3
) = P(C
) unde C respectiv C
) = R
3
L
0
, de unde
C
= C C
= P
1
(R
3
L
0
)
Acesta este XOR-ul de iesire din cele opt S-cutii dupa a treia runda.
R
2
= L
3
si R
2
= L
3
sunt cunoscute (componente ale textelor criptate); deci se poate
calcula
E = E(L
3
), E
= E(L
3
)
folosind funct ia de expansiune E. Aceste valori sunt intrarile n S-cutii la runda a treia.
Se cunosc deci E, E
, C
, C
0
R
0
, L
3
R
3
, L
3
R
3
cu R
0
= R
0
.
1. C
P
1
(R
3
L
0
)
2. E E(L
3
), E
E(L
3
)
3. for j := 1 to 8 do test
j
(E
j
, E
j
, C
j
).
6.3.2 Atacul pe sase runde
Sa extindem ideile precedente n cazul unui atac probabilist asupra unui sistem de criptare
DES de 6 runde. Ideea este de a alege o pereche de texte clare cu un XOR bine ales si de
studia comportamentul probabilist al evolut iei acestui XOR de-alungul ntregii operat ii
de criptare. Pentru aceasta este necesar sa introducem o noua not iune.
Denit ia 6.4 Fie n 1 un numar ntreg. O caracteristica de n runde este un sir de
forma
L
0
, R
0
, L
1
, R
1
, p
1
, . . . , L
n
, R
n
, p
n
care verica condit iile:
1. L
i
= R
i1
pentru 1 i n;
2. Pentru 1 i n se aleg L
i1
R
i1
si L
i1
R
i1
astfel ca L
i1
L
i1
= L
i1
si
R
i1
R
i1
= R
i1
; daca L
i
R
i
si L
i
R
i
sunt calculate la a i-a runda DES cunoscand
L
i1
R
i1
i
= L
i
, R
i
R
i
= R
i
este p
i
(probabilitatea se extinde pentru toate subcheile posibile J
1
, J
2
, . . . , J
8
).
Probabilitatea caracteristicii este produsul p = p
1
p
2
. . . p
n
.
8 PRELEGEREA 6. MODALIT
0
R
0
sunt alese astfel ca L
0
L
0
= L
0
, R
0
R
0
= R
0
, nu se
poate arma ca probabilitatea ca pentru orice i = 1, 2, . . . , n sa avem L
i
L
i
=
L
i
, R
i
R
i
= R
i
este p
1
p
2
. . . p
n
.
Intr-adevar, procesul de diversicare
a cheilor nu genereaza distribut ia independenta a sub-cheilor K
1
, . . . , K
n
. Totusi,
probabilitatea p
1
p
2
. . . p
n
furnizeaza o estimare destul de precisa a probabilitat ii
reale.
Probabilitat ile p
i
sunt inserate n caracteristica pentru o pereche de texte clare oare-
care, avand un XOR dat, pentru o distibut ie de 48 bit i ai sub-cheii. Criptanalistul
cauta o cheie xata necunoscuta. De aceea el va utiliza texte clare aleatoare (cu
XOR-ul cerut), sperand ca distribut ia obt inuta de XOR-urile de la a n-a runda sa
coincida cu cea descrisa de o cheie aleatoare, deci cu p
1
, p
2
, . . . , p
n
.
Exemplul 6.4 O caracteristica pe o runda care forma baza atacului pe 3 runde este
(n notat ie hexazecimala):
L
0
= oarecare R
0
= 00000000
16
L
1
= 00000000
16
R
1
= L
0
p = 1
O alta caracteristica poate de exemplu:
L
0
= 00000000
16
R
0
= 60000000
16
L
1
= 60000000
16
R
1
= 00808200
16
p = 16/64
0
, K
1
), funct ia de expansiune opereaza ntai
asupra lui R
0
si R
0
; XOR-ul rezultatelor este 001100 . . . 0. Deci XOR-ul de intrare al lui
S
1
este 001100, iar pentru celelalte S - cutii este 000000. La iesire XOR - ul este 0000
la aceste cutii si 1110 pentru S
1
; deoarece N
(
001100, 1110) = 14 (se poate verica), vom
avea probabilitatea 14/64.
Se obt ine deci C
= R
0
.
Atacul asupra DES-ului n 6 runde este bazat pe caracteristica celui pe 3 runde n modul
urmator:
L
0
= 40080000
16
R
0
= 04000000
16
L
1
= 04000000
16
R
1
= 00000000
16
p = 1/4
L
2
= 00000000
16
R
2
= 04000000
16
p = 1
L
3
= 04000000
16
R
3
= 40080000
16
p = 1/4
6.3. CRIPTANALIZA DIFERENT IAL
A 9
Se ncepe cu o pereche de texte clare (L
0
R
0
, L
0
R
0
) cu proprietatea L
0
= 40080000
16
,
R
0
= 04000000
16
si cu perechea de texte criptate corespunzatoare (L
6
R
6
, L
6
R
6
). Vom
avea
R
6
= L
5
f(R
5
, K
6
) = R
4
f(R
5
, K
6
) = L
3
f(R
3
, K
4
) f(R
5
, K
6
).
6
. Atunci
R
6
= L
3
f(R
3
, K
4
) f(R
3
, K
4
) f(R
5
, K
6
) f(R
5
, K
6
) ()
R
6
= 04000000
16
si R
3
= 40080000
16
cu probabilitate 1/16. Daca s-a obt inut ntr-adevar asa, se poate calcula XOR - ul de
intrare al S - cutiilor la a patra runda, dupa expansiune:
00100000 00000000 01010000 0000.
XOR - urile de intrare pentru S
2
, S
5
, S
6
, S
7
, S
8
sunt deci 000000, de unde rezulta ca
XOR - ul de iesire este n toate aceste cazuri 0000. Rezulta ca se poate calcula XOR -
ul de iesire al acestor cinci S - cutii la runda a sasea, pe baza relat iei (). Deci se poate
calcula
C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8
= P
1
(R
6
04000000
16
)
unde ecare C
i
are lungimea 4. C
2
, C
5
, C
6
, C
7
si C
8
2
, E
5
, E
6
, E
7
, E
8
n aceste cutii se pot calcula cu relat iile
E
1
E
2
E
3
E
4
E
5
E
6
E
7
E
8
= E(R
5
) = E(L
6
)
E
1
E
2
E
3
E
4
E
5
E
6
E
7
E
8
= E(R
5
) = E(L
6
)
plecand de la textele criptate, conform algoritmului:
Intrare: L
0
R
0
, L
0
R
0
, L
6
R
6
, L
6
R
6
cu L
0
= 40080000
16
, R
0
= 04000000
16
.
1. C
P
1
(R
6
40080000
16
)
2. E E(L
6
), E
E(L
6
)
3. for j = 2, 5, 6, 7, 8 do test
j
(E
j
, E
j
, C
j
)
Ar ideal de determinat cei 30 bit i din J
2
, J
5
, J
6
, J
7
, J
8
ca la atacul asupra DES -
ului n 3 runde. Problema este ca aici valorile XOR - ului de iesire la a 6 - a runda sunt
adevarate cu probabilitate 1/16. Deci n circa 15/16 din cazuri se obt in valori aleatoare
fara interes pentru criptanaliza, valori are trebuiesc eliminate. Ce este interesant este
faptul ca acest lucru este deseori posibil.
Denit ia 6.5 Fie L
0
E
0
= E
0
, R
0
R
0
= R
0
0
R
0
) este o pereche buna pentru caracteristica data, daca pentru orice i (1 i
n) avem L
i
L
i
= L
i
, R
i
R
i
= R
i
j
, C
j
si test
j
pentru j = 2, 5, 6, 7, 8 a fost descrisa ante-
rior. Daca avem o pereche buna, valoarea ei apare n test
j
. Pentru o pereche rea, valoarea
lui C
j
, C
j
) si N
j
(E
j
, C
j
) = 0 ntr-o
cincime din cazuri). Probabilitatea ca cinci mult imi test
j
sa e nevide este 0, 8
5
0, 33,
deci probabilitatea ca cel put in un test
j
sa e vid este 0, 67. Se pot elimina astfel cam 2/3
din perechile rele prin acest test simplu, numit operat ie de ltrare. Proport ia perechilor
rele care r aman dupa ltrare este ce circa (15/16) (1/3) = 5/16. Rezulta ca proport ia
perechilor bune ramse dupa ltrare este de 1/6.
Exemplul 6.5 Sa presupunem ca dispunem de urmatoarele perechi:
text clar text criptat
86FA1C2B1F51D3BE 1E23ED7F2F553971
C6F21C2B1B51D3BE 296DE2B687AC6340
Se verica imediat ca L
0
= 40080000
16
, R
0
= 04000000
16
. Intrarile si iesirile din S -
cutii la turul 6 se determina astfel:
j E
j
E
j
C
j
2 111100 010010 1101
5 111101 111100 0001
6 011010 000101 0010
7 101111 010110 1100
8 111110 101100 1101
Cele cinci mult imi test
j
vor atunci:
j test
j
2 14, 15, 26, 30, 32, 33, 48, 52
5
6 7, 24, 36, 41, 54, 59
7
8 34, 35, 48, 49
Deoarece test
5
= test
7
= , perechea este rea si va eliminata prin operat ia de ltrare.
Sa presupunem acum ca avem o pereche cu proprietatea test
j
= pentru j = 2, 5, 6, 7, 8,
deci care va ramane dupa operat ia de ltrare. Spunem ca secvent a de 30 bit i J
2
J
5
J
6
J
7
J
8
este sugerata de pereche, daca j {2, 5, 6, 7, 8}, J
j
test
j
. Numarul de secvent e
sugerate este
j{2,5,6,7}
card(test
j
).
Adesea, numarul de lant uri sugerate este destul de mare (de ordinul miilor).
6.4. CRIPTANALIZA LINIAR
A 11
Sa presupunem ca se construieste tabela tuturor secvent elor sugerate de N perechi
ramase dupa ltrare. Pentru ecare pereche buna, secvent a corecta J
2
J
5
J
6
J
7
J
8
este sug-
erata; deci ea va sugerata de n/6 ori. O secvent a incorecta va sugerata de un numar
aleator de ori, deci adesea mai put in, comparabil cu numarul lant urilor (2
30
).
Este extrem de dicil de pastrat ca spat iu tabela celor 2
30
numere; de aceea se va
folosi un algoritm care sa foloseasca un spat iu mai mic. Astfel, se codica ecare mult ime
test
j
ntr-un vector T
j
de lungime 64, n care a i - a coordonata (0 i 63) este 1 daca
secvent a de 6 bit i care reprezinta pe i n binar este n test
j
, 0 n caz contrar.
Pentru ecare pereche numarul i (1 i N) ramasa, se construiesc vectorii T
i
j
(j =
2, 5, 6, 7, 8). Daca I {1, . . . , N}, spunem ca I este admisibila, daca pentru orice j
{2, 5, 6, 7, 8} exista o coordonata egala cu card(I) n vectorul
iI
T
i
j
Daca perechea i este buna pentru orice i I, atunci I este admisibila. Deci, speram sa
avem o mult ime admisibila de marime aproximatic N/6, ceea ce sugereaza sigur o valoare
unica de 30 bit i pentru cheie. Mult imile admisibile I pot generate cu un simplu algoritm
recursiv.
6.4 Criptanaliza liniara
Criptanaliza liniara este un atac cu text clar cunoscut care seamana destul de mult cu
criptanaliza diferent iala; principala diferent a consta n faptul ca aici comparat ia se face
ntre bit ii de intrare si cei de iesire ai aceluiasi mesaj, nu ntre diferent ele a doua mesaje
la intrare respectiv iesire.
Pe scurt, principiul este urmatorul ([2]): sa presupunem ca putem aa o relat ie liniara
statistica ntre o submult ime de bit i din textul clar si o submult ime de bit i de stare
care preced imediat substitut iile din ultimul rund de criptare. Altfel spus, exista un set
de bit i al c aror XOR se determina aproape determinist (de exemplu ia valoarea 1 cu o
probabilitate mult peste 1/2). Sa consideram acum ca Oscar det ine un numar relativ
mare de perechi (text clar, text criptat) pentru care s-a folosit aceeasi cheie de criptare
K. Pentru ecare astfel de pereche se ncearca decriptarea folosind toate cheile posibile la
ultimul rund de criptare.
In acest calcul se determina valorile bit ilor implicat i n relat ia
liniara presupusa, vericand veridicitatea ei. Daca relat ia se verica, se incrementeaza
un contor corespunzator acestei chei. La sfarsitul procesului, cheia al carui contor este
(mult) peste 50% din numarul perechilor vericate, va cont ine valorile bit ilor determinate
de relat ia data.
Sa formalizam aceasta idee.
Fie X
1
, X
2
, . . . variabile aleatoare independente care iau valori din mult imea {0, 1} si
p
1
, p
2
, . . . [0, 1] numere reale denite prin
Pr[X
i
= 0] = p
i
, i = 1, 2, . . .
12 PRELEGEREA 6. MODALIT
i
= p
i
1
2
,
i
_
1
2
,
1
2
_
Atunci
Pr[X
i
= 0] =
1
2
+
i
, Pr[X
i
= 1] =
1
2
i
Lema 6.2 Fie X
1
, X
2
, . . . X
n
variabile aleatoare independente si pentru 1 i
1
< i
2
<
. . . < i
k
n, e
i
1
,i
2
,...i
k
tendint a variabilei aleatoare X
i
1
X
i
2
. . . X
i
k
. Atunci
i
1
,i
2
,...i
k
= 2
k1
k
j=1
i
j
.
Demonstrat ie: Prin induct ie dupa k. Pentru k = 1 egalitatea este banala. Pentru k = 2
se verica usor relat ia
i
1
,i
2
= 2
i
1
i
2
.
Presupunem egalitatea adevarata pentru k = p si sa o aratam pentru k = p + 1. Din
faptul ca tendint a lui X
i
1
. . . X
i
p
este 2
p1
p
j=1
i
j
rezulta
Pr[X
i
1
. . . X
i
p
= 0] =
1
2
+ 2
p1
p
j=1
i
j
si
Pr[X
i
1
. . . X
i
p
= 1] =
1
2
2
p1
p
j=1
i
j
De aici putem calcula
Pr[X
i
1
. . . X
i
p
X
i
p+1
= 0] =
_
_
1
2
+ 2
p1
p
j=1
i
j
_
_
_
1
2
+
i
p+1
_
+
_
_
1
2
2
p1
p
j=1
i
j
_
_
_
1
2
i
p+1
_
=
1
2
+ 2
p
p+1
j=1
i
j
.
Corolarul 6.1 Fie
i
1
,i
2
,...,i
k
tendint a variabilei aleatoare X
i
1
. . . X
i
k
. Daca j cu
i
j
= 0
atunci
i
1
,i
2
,...,i
k
= 0.
1
bias n engleza
6.4. CRIPTANALIZA LINIAR
A 13
6.4.1 Aproximari liniare ale S-cutiilor
Fie S-cutia
S
: {0, 1}
m
{0, 1}
n
si X = (x
1
, x
2
, . . . , x
m
) un m-tuplu de intrare,
ales arbitrar: matematic, aceasta nseamna ca ecare coordonata x
i
deneste o variabila
aleatoare X
i
cu valori 0 sau 1, avand tendint a
i
= 0. Cele m variabile aleatoare sunt
independente.
Iesirea se poate reprezenta ca un n-tuplu Y = (y
1
, y
2
, . . . , y
n
) unde ecare y
i
deneste
o variabila aleatoare Y
i
de valori 0, 1.
In general, aceste n variabile aleatoare sunt depen-
dente de intrari sau ntre ele. Are loc formula
Pr[X
1
= x
1
, . . . , X
m
= x
m
, Y
1
= y
1
, . . . , Y
n
= y
n
] =
_
0 daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
2
m
daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
Observat ia 6.3 Ultima parte a relat iei se bazeaza pe faptul ca
Pr[X
1
= x
1
, . . . , X
m
= x
m
] = 2
m
si
Pr[Y
1
= y
1
, . . . , Y
n
= y
n
|X
1
= x
1
, . . . , X
m
= x
m
] = 1 daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
Cu aceasta formula se poate calcula tendint a unei variabile aleatoare de tipul
X
i
1
. . . X
i
k
Y
j
1
. . . Y
j
p
.
Exemplul 6.6 Sa consideram o S-cutie
S
: {0, 1}
4
{0, 1}
4
denita
x 0 1 2 3 4 5 6 7 8 9 A B C D E F
S
(x) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
unde toate valorile au fost exprimate n hexazecimal. Sunt deci opt variabile aleatoare
X
1
, . . . , X
4
, Y
1
, . . . , Y
4
care pot lua valorile reprezentate pe liniile tabelului de pe pagina
urmatoare.
Sa consideram acum variabila aleatoare X
1
X
4
Y
2
. Probabilitatea ca ea sa ia
valoarea 0 poate determinata numarand liniile din tabel unde X
1
X
4
Y
2
= 0 si apoi
mpart ind la 16 (numarul total de linii).
Se obt ine Pr[X
1
X
4
Y
2
= 0] =
1
2
, de unde rezulta Pr[X
1
X
4
Y
2
= 1] =
1
2
.
Tendint a acestei variabile aleatoare este deci 0.
14 PRELEGEREA 6. MODALIT
i=1
a
i
X
i
_
_
4
i=1
b
i
Y
i
_
unde a
i
, b
i
{0, 1}, (1 i 4). Vectorii binari (a
1
, a
2
, a
3
, a
4
) numit i sume de intrare si
(b
1
, b
2
, b
3
, b
4
) (sume de iesire) vor codicat i prin cifre hexazecimale. Astfel, ecare din
cele 256 variabile aleatoare se va scrie n mod unic ca o pereche de doua cifre hexazecimale.
Exemplul 6.7 Variabila X
1
X
4
Y
2
va avea suma de intrare (1, 0, 1, 0) care este 9 n
hexazecimal, iar suma de iesire este (0, 1, 0, 0), care este 4 n hexazecimal. Deci perechea
atasata variabilei este (9, 4).
Pentru o variabila aleatoare de suma de intrare a = (a
1
, a
2
, a
3
, a
4
) si suma de iesire
b = (b
1
, b
2
, b
3
, b
4
), e N
L
(a, b) numarul octet ilor binari (x
1
, x
2
, x
3
, x
4
, y
1
, y
2
, y
3
, y
4
) cu pro-
prietat ile
1. (y
1
, y
2
, y
3
, y
4
) =
S
(x
1
, x
2
, x
3
, x
4
)
2.
_
4
i=1
a
i
X
i
_
_
4
i=1
b
i
Y
i
_
= 0
Tendint a unei astfel de variabile aleatoare este
(a, b) =
N
L
(a, b) 8
16
.
6.5. EXERCIT II 15
Exemplul 6.8 Variabila din Exemplul 6.7 are N
L
(9, 4) = 8, deci (9, 4) = 0. Se poate
cosntrui o tabela cu toate valorile N
L
numita tabela de aproximare liniara:
a/b 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 8 8 6 6 8 8 6 14 10 10 8 8 10 10 8 8
2 8 8 6 6 8 8 6 6 8 8 10 10 8 8 2 10
3 8 8 8 8 8 8 8 8 10 2 6 6 10 10 6 6
4 8 10 8 6 6 4 6 8 8 6 8 10 10 4 10 8
5 8 6 6 8 6 8 12 10 6 8 4 10 8 6 6 8
6 8 10 6 12 10 8 8 10 8 6 10 12 6 8 8 6
7 8 6 8 10 10 4 10 8 6 8 10 8 12 10 8 10
8 8 8 8 8 8 8 8 8 6 10 10 6 10 6 6 2
9 8 8 6 6 8 8 6 6 4 8 6 10 8 12 10 6
A 8 12 6 10 4 8 10 6 10 10 8 8 10 10 8 8
B 8 12 8 4 12 8 12 8 8 8 8 8 8 8 8 8
C 8 6 12 6 6 8 10 8 10 8 10 12 9 10 8 6
D 8 10 10 8 6 12 8 10 4 6 10 8 10 8 8 10
E 8 10 10 8 6 4 8 10 6 8 8 6 4 10 6 8
F 8 6 4 6 6 8 10 8 8 6 12 6 6 8 10 8
Pe baza unei astfel de tabele se construieste strategia de criptanaliza liniara prezentata
la nceputul sect iunii.
6.5 Exercit ii
6.1 Fie X
1
, X
2
, X
3
variabile aleatoare independente cu valori n {0, 1} de tendint e
1
,
2
respectiv
3
. Demonstrat i ca X
1
X
2
si X
2
X
3
sunt indepedente daca si numai daca
1
= 0,
3
= 0 sau
2
= 1/2.
6.2 Pentru ecare din cele opt S-cutii DES calculat i tendint a variabilei aleatoare X
2
Y
1
Y
2
Y
3
Y
4
.
6.3 S-boxul DES S
4
are cateva proprietat i specice:
a) Aratat i ca a doua linie din S
4
poate obt inuta din prima linie folosind operat ia
(y
1
, y
2
, y
3
, y
4
) (y
2
, y
1
, y
4
, y
3
) (0, 1, 1, 0)
b) Aratat i ca orice linie din S
4
poate transformata n orice alta linie printr-o operat ie
similara.
16 PRELEGEREA 6. MODALIT
a=0
N
L
(a, b) = 2
2m1
2
m1
; ???????????
d)
2
m
1
a=0
2
n
1
b=0
N
L
(a, b) {2
n+2m1
, 2
n+2m1
+ 2
n+m1
}.
6.5 O S-cutie
S
: {0, 1}
m
{0, 1}
n
este balansata daca
|
s
1(y)| = 2
nm
pentru orice y {0, 1}
n
. Demonstrat i urmatoarele armat ii despre N
L
pentru o S-cutie
balansata:
a) N
L
(0, b) = 2
m
1, b [0, 2
n
1];
b) a [0, 2
m
1],
2
n
1
b=0
N
L
(a, b) = 2
m+n1
2
n1
+ i2
n
unde i este un numar ntreg din intervalul [0, 2
mn
].
6.6 Fie S-cutia denita:
x 0 1 2 3 4 5 6 7 8 9 A B C D E F
S
(x) 8 4 2 1 C 6 3 D A 5 E 7 F B 9 0
Determinat i tabela ei de aproximat ie liniara;
6.7 Fie un sistem de criptare P = C = K care asigura condent ialitate perfecta; deci,
din e
K
() = e
K
1
() rezulta K = K
1
. Notam P= Y = {
1
,
2
, . . . ,
N
}. Fie un bloc de
text clar xat. Denim funct ia g : Y Y prin g() = e
In iulie 1998 sistemul DES pe 56 bit i este spart de catre organizat ia Electronic
Frontier Foundation; s-a folosit un calculator construit special n acest scop, iar
timpul necesar spargerii a fost de 3 zile.
In luna septembrie a aceluiasi an, administrat ia americana acorda companiilor pro-
ducatoare de soft de securitate permisiunea de a exporta implementari ale algorit-
mului DES bazate pe chei de criptare de 56 bit i.
In mai 2000 NIST anunt a drept sistem castigator sistemul de criptare Rijndael,
care devine ocial AES.
7.2 Scurta prezentare a sistemelor de criptare nale
7.2.1 Mars
Sistemul MARS este propus de rma IBM, autorii sai ind un grup condus de Don
Coppersmith. Cateva detalii de construct ie:
Algoritmul este format din trei componente, ecare din ele asigurand protect ie pen-
tru anumite tipuri de atac.
Lucreaza pe procesoare de 32 bit i, putand implementat atat n format big-endian,
cat si n little endian
2
.
La intrare textul clar este spart n grupuri de 128 bit i (4 numere ntregi de cate 32
bit i). Prima si a treia parte a algoritmului amesteca acesti bit i folosind o cheie de
dimensiune variabila (ntre 128 si 448 bit i) si o S-cutie de 512 elemente. Componenta
din mijloc este formata din 16 runde si foloseste n plus o o funct ie de expandare E.
Operat iile folosite sunt: adunari, scaderi, XOR, rotat ii (xe sau dependente de date)
si nmult iri; toate calculele se fac modulo 32. Construct ia S-cutiei s-a facut pe baza
unui algoritm public, plecand de la o serie de condit ii init iale clare.
Notat iile folosite n algoritm:
2
Fie a
1
a
2
a
3
a
4
un cuvant pe 4 octet i, unde a
i
este un numar ntreg din intervalul [0, 255].
1.
In arhitectura big-endian (o stat ie SPARK de exemplu), un cuvant reprezinta ntregul a
1
2
24
+
a
2
2
16
+a
3
2
8
+a
4
.
2.
In arhitctura little-endian (cum este familia Intel 80xxx) un cuvant reprezinta ntregul a
4
2
24
+
a
3
2
16
+a
2
2
8
+a
1
.
7.2. SCURT
In prima faza tabloul S este init ializat folosind un generator liniar congruent ial:
1. S[0] P;
2. for i 1 to 2(r + 1) 1 do S[i] (S[i 1] +Q) mod 2
32
P = 0xB7E15163 si Q = 0x9E3779B9 sunt constante bazate pe reprezentarea binara
a lui e si .
S
i
(X
i
K
i
)), 0 i 30,
R
31
(X) =
S
7
(X
31
K
31
) K
32
.
Se aplica 32 runde formate din: combinarea cu cheia de runda K
i
, o trecere printr-
o S-cutie si o transformare liniara L; n ultima runda, transformarea liniara este
nlocuita cu nca o combinare cu o a doua cheie de runda;
S reprezinta aplicarea n
paralel a 32 copii ale S-cutiei S
i mod 8
.
3. C FP(
B
32
) (FP- permutare nala).
3
Lungimea cheii date de utilizator este variabila, nsa algoritmul descris foloseste chei de lungime
128, 192 sau 256 bit i.
7.2. SCURT
B
i
, IP(K
i
) =
K
i
.
Transformarea liniara L:
Blocul de 128 bit i dintr-o runda este spart n patru cuvinte (X
0
, X
1
, X
2
, X
3
) = S
i
(B
i
K
i
).
Se aplica apoi urmatorii pasi:
1. X
0
(X
0
<<< 13); 2. X
2
(X
2
<<< 13);
3. X
1
X
1
X
0
X
2
; 4. X
3
X
3
X
2
(X
0
<< 3);
5. X
1
(X
1
<<< 1); 6. X
3
(X
3
<<< 7)
7. X
0
X
0
X
1
X
3
; 8. X
2
X
2
X
3
(X
1
<< 7);
9. X
0
(X
0
<<< 5); 10. B
i+1
(X
0
, X
1
, X
2
, X
3
).
unde <<< nseamna rotire spre stanga, iar << este deplasare spre stanga.
In ultima
runda, L este nlocuita cu B
32
S
7
(B
31
K
31
) K
32
.
Generarea cheilor de runda:
Fiecare runda necesita 132 fragmente de cate 32 bit i.
In prima faza se completeaza cheia
furnizata de utilizator pana la 256 bit i. Apoi ea se extinde pana la 33 subchei de cate 128
bit i K
0
, K
1
, . . . , K
32
n modul urmator:
Cheia K se descompune n opt cuvinte w
8
, . . . , w
1
care se extind la o cheie interme-
diara w
0
, . . . , w
131
prin formula
w
i
(w
i8
w
i5
w
i3
w
i1
i) <<< 11
unde este partea fract ionara a raportului de aur (0x9E3779B9).
Cheile de runda sunt calculate din cheia intermediara folosind S-cutiile:
(k
0
, k
1
, k
2
, k
3
) S
3
(w
0
, w
1
, w
2
, w
3
)
(k
4
, k
5
, k
6
, k
7
) S
2
(w
4
, w
5
, w
6
, w
7
)
(k
8
, k
9
, k
10
, k
11
) S
1
(w
8
, w
9
, w
10
, w
11
)
4
O varianta init iala, Serpent0 folosea aceleasi S-cutii ca DES.
8 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
(k
12
, k
13
, k
14
, k
15
) S
0
(w
12
, w
13
, w
14
, w
15
)
(k
16
, k
17
, k
18
, k
19
) S
7
(w
16
, w
17
, w
18
, w
19
)
. . . . . .
(k
124
, k
125
, k
126
, k
127
) S
4
(w
124
, w
125
, w
126
, w
127
)
(k
128
, k
129
, k
130
, k
131
) S
3
(w
128
, w
129
, w
130
, w
131
)
Cheile de runda se regrupeaza n
K
i
(k
4i
, k
4i+1
, k
4i+2
, k
4i+3
)
7.2.4 Twosh
Sistemul Twosh este propus de un colectiv condus de Bruce Schneier, ind unul din
put inele sisteme free (implementarea este disponibila la adresa [6]). Algoritmul cripteaza
blocuri de 128 bit i, folosind o cheie de lungime variabila.
Algoritmul de criptare
Intrare: P = p
0
p
1
. . . p
15
un bloc de text clar de 128 bit i (p
i
- octet i)
Iesire: C - bloc text criptat, de 128 bit i.
Algoritm:
1. P se sparge n patru cuvinte P
0
, P
1
, P
2
, P
3
dupa sistemul little-endian:
P
i
3
j=0
p
4i+j
2
8j
, (0 j 3)
2. R
0,i
P
i
K
i
, (0 i 3)
5
3. for r 0 to 15 do
3.1. (F
r,0
, F
r,1
) F(R
r,0
, R
r,1
, r);
3.2. R
r+1,0
(R
r,2
F
r,0
) >>> 1;
3.3. R
r+1,1
(R
r,3
<<< 1) F
r,1
;
3.4. R
r+1,2
R
r,0
3.5. R
r+1,3
R
r,1
4. C
i
R
16,(i+2) mod 4
K
i+4
, (0 i 3)
5. c
i
i
4
2
8(i mod 4)
mod 2
8
, (0 i 15)
(cele patru cuvinte din textul criptat sunt scrise ca o secvent a de opt octet i n sistemul
little-endian).
5
Operat ia este numita whitening si a fost introdusa n mod independent de Merkle pentru
Khufu/Khafre, respectiv Rivest pentru DES X.
7.2. SCURT
z
0
z
1
z
2
z
3
01 EF 5B 5B
5B EF EF 01
EF 5B 01 EF
EF 01 EF 5B
y
0
y
1
y
2
y
3
4. Z
3
i=0
z
i
2
8i
. (Z este valoarea rezultata).
Observat ia 7.2 La pasul 3 se face o corespondent a ntre octet i si elementele corpului
GF(2
8
). Deoarece GF(2
8
) GF(2)[X]/v(X) unde v(X) = X
8
+X
6
+X
5
+X
3
+ 1 este
un polinom primitiv peste Z
2
. Elementul a =
7
i=0
a
i
X
i
GF(2
8
) se identica cu octetul
7
i=0
a
i
2
i
. Elementele matricii 4 4 au fost scrise ca valori hexazecimale ale octet ilor,
folosind aceasta corespondent a.
Diversicarea cheii
Sistemul Twosh este denit pentru chei de lungime N unde standardul este N = 128, 192
sau 256. Se pot folosi nsa chei de orice lungime mai mica de 256; daca se da o astfel de
cheie, ea este extinsa prin completare cu 0 la cea mai apropiata lungime standard. Din
cheia M a utilizatorului, prin diversicare se obt in 40 cuvinte K
0
, K
1
, . . . , K
39
si patru
S-cutii folosite la funct ia g.
Fie k N/64. Cheia M consta din 8k octet i m
0
, m
1
, . . . , m
8k1
. Se calculeaza
vectorii M
e
, M
o
, S astfel:
1. M
i
3
j=0
m
4i+j
2
8j
, (0 j 2k 1)
2. M
e
(M
0
, M
2
, . . . , M
2k2
), M
o
= (M
1
, M
3
, . . . , M
2k1
);
3. S = (S
k1
, S
k2
, . . . , S
0
) unde S
i
3
j=0
s
i,j
2
8j
, (0 i k 1)
10 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
Octet ii s
i,j
se obt in printr-o codicare cu un cod Reed-Solomon, pe baza formulei
s
i,0
s
i,1
s
i,2
s
i,3
01 A4 55 87 5A 58 DB 9E
A4 56 82 F3 1E C6 68 E5
02 A1 FC C1 47 AE 3D 19
A4 55 87 5A 58 DB 9E 03
m
8i
m
8i+1
m
8i+2
m
8i+3
m
8i+4
m
8i+5
m
8i+6
m
8i+7
In plus, i este indicele octetului n cadrul unui cuvant care cont ine acel octet, iar j
este indicele cuvantului n cadrul blocului care l cont ine.
Criptarea se realizeaza n N
r
runde, unde N
r
depinde de N
b
si N
k
. Valorile lui N
r
sunt
date n tabelul:
N
r
N
b
= 4 N
b
= 6 N
b
= 8
N
k
= 4 10 12 14
N
k
= 6 12 12 14
N
k
= 8 14 14 14
Fiecare runda are la intrare o stare si foloseste o cheie de runda. Cu except ia rundei
nale, o runda este formata din patru transformari, notate pe scurt:
ByteSub(Stare);
ShiftRow(Stare);
MixColumn(Stare);
AddRoundKey(Stare, Cheie).
Ultima runda cont ine numai trei transformari, ind eliminata MixColumn(Stare). Sa
vedem cum sunt denite aceste transformari:
ByteSub(Stare): Este o substitut ie neliniara care opereaza pe octet i. Tabela de
substitut ie (S - box, daca folosim termenul consacrat din DES) este o matrice
inversabila formata din compunerea a doua transformari:
1. Fiecare octet nenul este nlocuit cu inversul sau
1
GF(2
8
); octetul 00
este lasat nemodicat.
2. Rezultatul este modicat printr-o transformare ana peste Z
2
:
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
1 0 0 0 1 1 1 1
1 1 0 0 0 1 1 1
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 0
0 0 0 1 1 1 1 1
x
0
x
1
x
2
x
3
x
4
x
5
x
6
x
7
1
1
0
0
0
1
1
0
X
3
+
01
X
2
+
01
X +
02
b
0
b
1
b
2
b
3
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
a
0
a
1
a
2
a
3
X
3
+
0D
X
2
+
09
X +
0E
k
0,0
k
0,1
k
0,2
k
0,3
k
0,4
k
0,5
k
1,0
k
1,1
k
1,2
k
1,3
k
1,4
k
1,5
k
2,0
k
2,1
k
2,2
k
2,3
k
2,4
k
2,5
k
3,0
k
3,1
k
3,2
k
3,3
k
3,4
k
3,5
=
b
0,0
b
0,1
b
0,2
b
0,3
b
0,4
b
0,5
b
1,0
b
1,1
b
1,2
b
1,3
b
1,4
b
1,5
b
2,0
b
2,1
b
2,2
b
2,3
b
2,4
b
2,5
b
3,0
b
3,1
b
3,2
b
3,3
b
3,4
b
3,5
unde b
i,j
= a
i,j
k
i,j
(0 i 3, 0 j 5).
Transformarea AddRoundKey si inversa ei sunt identice.
Algoritmul de criptare AES este format din:
1. O transformare AddRoundKey init iala;
2. N
r
1 runde;
3. O runda nala.
In acest algoritm (scris n C ++), SubByte(W) este o funct ie care ntoarce un cuv ant
n care ecare octet este rezultatul aplicarii S - boxului denit la transformarea ByteSub
ecarui octet din cuvantul de intrare. RotByte(w) ntoarce un cuvant n care octet ii sunt
rotit i ciclic la stanga (pentru intrarea (a, b, c, d) iesirea este (b, c, d, a)).
Esent a algoritmului este urmatoarea: primele N
k
cuvinte sunt completate cu cheia de
criptare.
In continuare, ecare cuvant W[i] este egal cu W[i 1] W[i N
k
]. Pentru
cuvintele care sunt pe pozit ii multipli de N
k
, nainte de aceasta operat ie, lui W[i 1] i se
aplica o permutare ciclica spre stanga a octet ilor, urmata de aplicarea unui S - box.
In
plus, rezultatul este XOR - at nca odata, cu o constanta de runda.
Pentru N
k
> 6, algoritmul este:
KeyExpansion(byte Key[4 N
k
] word W[N
b
(N
r
+ 1)])
{
for (i = 0; i < N
k
; i + +)
W[i] = (Key[4 i], Key[4 i + 1], Key[4 i + 2], Key[4 i + 3]);
for (i = N
k
; i < N
b
(N
r
+ 1); i + +)
{
temp = W[i 1];
if (i % N
k
== 0)
16 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
temp = SubByte(RotByte(temp)) Rcon(i/N
k
);
else if (i % N
k
== 4)
temp = SubByte(temp)
W[i] = W[i N
k
] temp;
}
}
La aceasta schema apare condit ia suplimentara ca pentru situat ia cand i 4 este
multiplu de N
k
, procedura SubByte este aplicata lui W[i 1] nainte de XOR.
Constantele de runda sunt independente de N
k
si sunt denite prin
Rcon[i] = (RC[i],
00
00
00
)
unde RC[i] =
i1
unde este un element generator al lui GF(2
8
).
Selectarea cheii de runda
Cheia rundei i este formata din secvent a de cuvinte
W[N
b
i] . . . W[N
b
(i + 1) 1].
Ca o remarca, aceasta cheie poate calculata treptat, pe masura ce se ajunge la runda
respectiva.
Pentru alte detalii privind securitatea sistemului, a se vedea [1], [8]
Bibliograe
[1] Joan Daemen, Vincent Rijmen - The Rijndael Block Cipher Proposal,
http://csrc.nist.gov/CryptoToolkit/aes/
[2] Ross Anderson s.a. - Serpent: A proposal for the Advanced Encryption Standard,
http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/serpent.pdf
[3] Don Coppersmith s.a. - MARS - a candidate cypher for AES,
http://www.research.ibm.com/security/mars.pdf
[4] Ronald Rivest s.a - The RC6
TM
Block Cipher,
ftp://ftp.rsasecurity.com/pub/rsalabs/rc6/rc6v11.pdf
[5] Bruce Schneier - Applied Cryptography, Second Edition, John Wiley & Sons, 1996
[6] Bruce Schneier s.a. - Twosh, http://www.counterpane.com/twosh.html
[7] Serpent homepage, http://www.cl.cam.ac.uk/ rja14/serpent.html
[8] Douglas Stinton - Cryptography, Theroy and Practice, Ed. II (2002)
17
Prelegerea 8
Criptare cu cheie publica
8.1 Considerat ii generale
In sistemele de criptare clasice, Alice si Bob si aleg o cheie secreta K care deneste
regulile de criptare (e
K
) si decriptare (d
K
).
In aproape toate cazurile d
K
si e
K
coincideau
sau se puteau deduce imediat una din alta. Astfel de sisteme sunt numite sisteme cu
cheie privata (sau sisteme simetrice) deoarece publicarea lui e
K
face sistemul extrem de
vulnerabil.
Un punct slab al sistemelor cu cheie privata este acela ca necesita o comunicare pre-
alabila a cheii ntre Alice si Bob printr-un canal sigur, nainte de transmiterea mesajului
criptat. Practic, n condit iile cererii tot mai mari de securizare a comunicat iilor, acest
lucru este din ce n ce mai dicil de realizat.
Obiectivul sistemelor de criptare cu cheie publica este acela de a face imposibilasupra
acestui termen vom reveni) de obt inut cheia d
K
plecand de la e
K
. Astfel, regula de criptare
e
K
poate publicata ntr-un registru public (de unde si numele sistemelor). Avantajul
constan faptul ca Alice (sau oricare alta persoana) poate trimite lui Bob un mesaj criptat
cu e
K
fara a intran prealabil n contact. Bob este singura persoana capabila sa decripteze
textul, utilizand cheia sa secreta d
K
.
Ideea de sistem de criptare cu cheie publica apare n 1976 si este prezentata de Die
si Hellman (vezi [1])
1
. De atunci au aparut diverse astfel de sisteme, a caror securitate
este bazat a pe probleme calculatorii. Cele mai cunoscute n acest moment sunt:
Sistemul RSA: se bazeaza pe dicultatea descompunerii n factori primi a numerelor
mari (de sute de cifre). Este sistemul cel mai larg utilizat n acest moment.
1
Se pare ca prima idee de cheie publica este schit ata n ianuarie 1970 de catre britanicul James
Ellis membru n Communication-Electronic Security Group n articolul The possibility of non-secret
encryption. Informat ia este facuta publica de catre British Government Communications Headquarters
abia in 1997.
1
2 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
Sistemul El Gamal: se bazeaza pe dicultatea calculului logaritmului discret ntr-un
corp nit.
Sistemul Merkle - Hellman: primul sistem denit cu cheie publica, bazat pe problema
{0, 1} a rucsacului, problema NP - completa.
Sistemul McEliece: este bazat pe teoria algebrica a codurilor, decodicarea unui cod
liniar ind de asemenea o problema NP - completa.
Curbe eliptice: Sunt sisteme de criptare care si desfasara calculele pe mult imea
punctelor unei curbe eliptice (n locul unui inel nit Z
n
).
8.2 Funct ii neinversabile
O observat ie importanta este aceea ca un sistem cu cheie publica nu este sigur necondit ionat;
oricine - putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe care
sa i permita sa si decripteze mesajele. Ideea de baza folosita este aceea de funct ie nein-
versabila. Sa claricam put in acest aspect.
Exemplul 8.1 Ne putem imagina usor strazile cu sens unic dintr-un oras. Astfel, este
usor ca mergand pe astfel de strazi sa ajungi de la punctul A la punctul B, dar este
imposibil s a ajungi de la B la A.
In acest mod, criptarea este privita ca direct ia A B;
desi este foarte usor de parcurs drumul n aceasta direct ie, nu te pot i ntoarce napoi spre
A (adica s a decriptezi mesajul).
Exemplul 8.2 Sa consideram cartea de telefon a unui oras mare
2
; cu ajutorul ei este
foarte usor sa gasim numarul de telefon al unei anumite persoane.
In schimb, este extrem
de greu - practic imposibil - sa ai persoana care are un anumit numar de telefon. Te
ai n situat ia parcurgerii secvent iale a (cel put in) unui volum gros, ceea ce conduce la o
crestere exagerata a timpului.
Aceasta da o sugestie de construct ie a unui sistem de criptare cu cheie publica. Criptarea
se face independent de context, litera cu litera. Pentru ecare litera a textului clar se alege
un nume care ncepe cu acest caracter si numarul de telefon al persoanei respective va con-
stitui criptarea. Sistemul este homofonic; douaaparit ii diferite ale aceleiasi litere vor
codicate foarte probabil cu numere diferite.
De exemplu, textul clar SOLIST se poate cripta astfel:
2
O carte de telefon expirata va duce la cresterea dicultat ii decriptarii ilegale.
8.2. FUNCT II NEINVERSABILE 3
S Simion Pavel 6394502
O Olaru Stefan 7781594
L Lambru Stelian 6300037
I Ilie Romeo 3134971
S Solovean Raluca 6281142
T Tecuceanu Paul 3359962
Deci, textul criptat va
639450 277815 946300 037313 497162 811423 359962.
De remarcat ca metoda este nedeterminista; din acelasi text clar se pot obt ine enorm
de multe texte criptate. Pe de-alta parte, orice text criptat conduce la un text clar unic.
Bob va avea la dispozit ie pentru decriptare o carte de telefon scrisa n ordinea crescatoare
a numerelor. Aceasta i va permite sa decripteze mesajele cu un algoritm de complexitate
O(log n).
Deci, o funct ie neinversabila f trebuie sa verice doua condit ii:
Fiind dat x, f(x) este usor de calculat;
Calculul lui x din f(x) este imposibil.
De remarcat ca, din punct de vedere strict matematic, nu se cunosc astfel de funct ii. A
demonstra ca exista funct ii neinversabile este echivalent cu a demonstra relat ia P = NP,
conjectura care sta la baza ntregii teorii criptograce (a se vedea [4],[5]). De aceea,
termenii folosit i sunt relativi la complexitatea calculatorie. Astfel, o problema este:
1. usoara daca se poate rezolva cu un algoritm cel mult liniar;
2. grea daca se poate rezolva cu un algoritm polinomial neliniar;
3. imposibila daca este NP - completa.
Am listat la nceput o serie de probleme NP - complete care stau la baza principaleor
sisteme de criptare cu cheie publica.
Exemplul 8.3 Sa consideram problema rucsacului Ea consta dintr-un vector de di-
mensiune n A = (a
1
, a
2
, . . . , a
n
) cu elemente numere ntregi pozitive distincte, si un
numantreg pozitiv k. Trebuiesc aat i acei a
i
din A (daca exista) a caror suma este
k. Numele intuitiv dat problemei este evident. De exemplu, e
A = (43, 129, 215, 473, 903, 302, 561, 1165, 696, 1523) si k = 3231.
Se determina 3231 = 129 + 473 + 903 + 561 + 1165, care este o astfel de solut ie (vom
da mai tarziu o denit ie formala riguroasa a problemei).
In principiu o solut ie se poate gasi parcurgand sistematic toate submult imile lui A si
vericand daca suma elementelor lor este k.
In cazul de sus, aceasta nseamna 2
10
1 =
1023 submult imi (fara mult imea vida), dimensiune acceptabila ca timp de lucru.
Ce se ntampla nsa daca A are cateva sute de componente ?
In acest caz se cunoaste
faptul ca problema rucsacului este NP - completa.
4 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
Cu ajutorul lui A se poate deni o funct ie f astfel:
Fie x [0, 2
n
1]; x poate reprezentat n binar ca un cuvant de lungime n (adaugand
eventual 0 - uri n faaf(x)vafinum arul obt inut din A prin nsumarea tuturor nu-
merelor a
i
aate pe pozit iile marcate cu 1 n reprezentarea binara a lui x. Formal,
f(x) = A B
T
x
unde B
x
este reprezentarea binara a lui x, scrisa ca un vector coloana.
Sa denim acum un sistem de criptare bazat pe problema rucsacului. Textul clar
este codicat init ial n binar si segmentat apoi n blocuri de cate n bit i (eventual ultimul
bloc este completat la sfarsit cu zerouri). Fiecare bloc rezultat este apoi criptat calculand
valoarea corespunzatoare a funct iei f.
Pentru alfabetul latin sunt sucient i 5 bit i pentru codicarea binara a literelor si a
spat iului. Mai exact, daca asociem literelor A - Z reprezentarile binare ale numerelor
1 26, vom avea:
00000 A 00001 B 00010
C 00010 D 00011 E 00101
F 00110 G 00111 H 01000
I 01001 J 01010 K 01011
L 01100 M 01101 N 01110
O 01111 P 10000 Q 10001
R 10010 S 10011 T 10100
U 10101 V 10110 W 10111
X 11000 Y 11001 Z 11010
Sa consideram un text clar, FLOARE DE COLT de exemplu. Cum ecare caracter
se codica n 5 bit i, n ecare bloc intra doua caractere: FL OA RE D E CO LT.
Codicand,se obt in sapte blocuri de cate 10 bit i:
0011001100 0111100001 1001000101 0000000100 0000000101 0001101111 0110010100
care conduc la textul criptat: (1814, 3243, 3204, 1165, 1118, 5321, 1811).
Sa consideram sistemul de criptare denit n Exemplul 8.3. Daca l privim ca un
sistem clasic, (cu cheie privata) criptanalistul trebuie sa ae vectorul de baza A si apoi sa
rezolve problema rucsacului.
Daca el foloseste metoda textelor clare alese, l va aa usor pe A: este sucient sa
trimita n texte clare cu cte un singur 1 iar restul 0. Problema apare n momentul
rezolvarii problemei rucsacului; aici atat Bob cat si Oscar sunt pusi n fat a acelaiasi
probleme NP - complete. Ori, practic, doar Oscar trebuie sa rezolve o problema dicila,
nu si Bob.
O alta problema ridicata de acest sistem de criptare: este obligatoriu ca un text criptat
sa determine n mod unic un text clar. Aceasta nseamna ca nu trebuie sa existe doua
submult imi ale lui A care sa aiba aceeasi suma. Astfel, daca se ia A = (17, 103, 50, 81, 33),
textul criptat (131, 33, 100, 234, 33) poate decriptat n doua moduri: SAUNA si FAUNA.
8.3. TRAPA SECRET
A 5
8.3 Trapa secreta
Pentru ca Bob sa nu e pus n aceasi situat ie ca si Oscar, el trebuie sa dispuna de
un procedeu care sa i permita sa transforme problema NP - completa publica, ntr-o
problema usoara. Acest procedeu este numit trapa secreta.
In primul exemplu, trapa
secreta era cartea de telefon ordonata dupa numerele de telefon, nu dupa abonat i. Sa
vedem care este trapa secreta n sistemul de criptare din Exemplul 8.3:
Exemplul 8.4 Sunt clase de probleme ale rucsacului usor de rezolvat; una din ele o
formeaza vectorii cu crestere mare.
Spunem ca vectorul rucsac A = (a
1
, a
2
, . . . , a
n
) este cu crestere mare daca
j 2, a
j
j1
i=1
a
i
.
In acest caz, pentru a rezolva problema rucsacului este sucient sa parcurgem vectorul
A de la dreapta spre stanga. Cunoscand valoarea k, cercetam ntai valoarea de adevar
a relat iei k a
n
. Daca raspunsul este FALSE, a
n
nu poate apart ine sumei pe care o
cautam. Daca nsa se obt ine TRUE, a
n
trebuie sa e n suma, deoarece toate elementele
a
i
ramase nu pot depasi n suma pe k. Vom deni
k
1
=
k daca a
n
> k
k a
n
daca a
n
k
si repetam procedeul pentru k si a
1
. Algoritmul se va opri la valoarea a
1
.
Sa presupunem ca avem vectorul rucsac cu crestere mare
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
si vrem sa decodicam mesajul 278. Vom parcurge 10 pasi, sumarizat i n tabelul:
Numar Componenta lui A Bit rezultat
278 701 0
278 349 0
278 175 1
103 87 1
16 44 0
16 21 0
16 11 1
5 5 1
0 3 0
0 1 0
Deci se obt ine secvent a binara 00110 01100 care - conform codicarii din Exemplul 8.3
corespunde perechii de litere FL.
Daca se foloseste nsa public o astfel de informat ie, orice utilizator inclusiv Oscar
poate decripta mesajele folosind un algoritm liniar. Ori s-a presupus (n prima prelegere)
6 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
ca pentru orice intrus aarea mesajului clar trebuie sa se reduca la rezolvarea unei prob-
leme NP - complete.
Exemplul 8.5 Pentru sistemul bazat pe problema rucsacului, Bob va proceda astfel: va
alege un numar m (m >
m
i+1
a
i
) numit modul si un numar t, (m, t) = 1 numit multipli-
cator. Exista atunci un numar s astfel ca m s 1 (mod m).
Plecand de la vectorul cu crestere mare A = (a
1
, a
2
, . . . , a
n
) Bob genereaza vectorul
B = (b
1
, b
2
, . . . , b
n
) unde b
i
= t a
i
(mod m).
Vectorul B este declarat public pentru criptare, iar m, t si s vor forma trapa secreta a
lui Bob.
Astfel, daca luam m = 1590 si t = 43, vectorul cu crestere mare
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
devine
B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),
adica cel prezentat n exemplul 8.3.
In plus, s = t
1
= 37.
3
Cum se va proceda: Cel care doreste sa trimita lui Bob un mesaj criptat va folosi
vectorul rucsac B si va cripta mesajul x n y = B B
T
x
, conform Exemplului 8.3.
La recept ie, Bob va calcula ntai z = s y (mod m), dupa care va decripta mesajul z
folosind vectorul cu crestere mare A. Se poate arata usor ca solut ia este chiar x.
Astfel, de exemplu Alice poate cripta mesajul FL n 2414 (cf. Exemplului 8.3). La
primirea acestui numar, Bob va determina ntai s 2414 = 37 2414 (mod 1590) = 278.
In
Exemplul 8.4 s-a vazut ca decriptarea mesajului 278 cu vectorul A conduce la textul clar
FL.
Putem trasa acum cateva principii generale de construire a unui sistem de criptare cu
cheie publica:
1. Se ncepe cu o problema dicila P; rezolvarea lui P este imposibila n conformitate
cu teoria complexitat ii (nu se cunoaste nici un algoritm de complexitate polinomiala
care sa rezolve P).
2. Se selecteaza o subproblema P
1
a lui P, rezolvabila n timp polinomial (preferabil
liniar).
3. Se aplica o transformare problemei P
1
astfel ncat sa se obt ina o problema P
2
care
sa nu semene cu P
A 7
4. Se face publica problema P
2
si se descrie algoritmul de criptare bazat pe aceasta.
Informat ia referitoare la modul n care se obt ine P
1
din P
2
este o trapa secreta.
5. Se construiesc detaliile sistemului de criptare, astfel ncat principiile de lucru sa
difere esent ial pentru destinatar fat a de criptanalist; astfel, n timp ce primul va
folosi trapa secreta si va rezolva problema P
1
, al doilea va trebui sa rezolve problema
P
2
, imposibila datorita asemanarii ei cu problema P.
In funct ie de aceste principii generale, aparn detalii de construct ie multe alte probleme
pe care constructorii sistemelor de criptare trebuie sa le rezolve.
8.4 Securitatea sistemelor de criptare cu cheie pu-
blica
In majoritatea sistemelor de criptare, aparatul matematic folosit este bazat pe teoria nu-
merelor, teoria funct iilor recursive si teoria probabilitat ilor. Pe o scara mult mai restransa
apar funct iile eliptice, teoria automatelor, calcul neconvent ional (cuantic, molecular etc).
Sistemele de criptare cu cheie publica un avantaj major fat a de sistemele clasice: aici
nu mai este necesar efortul transmiterii cheii. Un contact prealabil ntre Alice si Bob
pentru a pune la punct detaliile sistemului de criptare este inutil.
Un sistem de criptare cu cheie publica nu ofera nsa o securitate absoluta. Aceasta
se datoreaza faptului ca Oscar poate oricand sa dispuna de atacuri pasive sau active.
Anume:
Daca criptanalistul dispune de un text criptat y, el poate cauta exhaustiv un text
clar x astfel ca e
K
(x) = y. Singura aparare contra unui astfel de atac consta n
gradul de complexitate al sistemului.
Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle. Sa
presupunem ca Alice si Bob doresc sa stabileasca un contact. Ei fac publice cheile de
criptare e
A
respectiv e
B
. Daca contactul este nepersonalizat, Oscar poate controla
mesajele schimbate ntre cei doi, n felul urmator:
Alice
Oscar
Bob
? - -
6
6
6
-
?
(e
A
, e
B
)
e
1
B
e
1
A
y
1
= e
1
B
(m) y = e
B
(m)
1. Oscar opacizeaza printr-un mijloc oarecare aceste chei, si trimite lui Alice
cheia e
1
B
ca din partea lui Bob; substituie similar pentru Bob cheia e
A
cu
e
1
A
.
8 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
2. Fie m mesajul pe care Alice vrea sa l trimita lui Bob. Ea va cripta si va trimite
y
1
= e
1
B
(m).
3. Oscar intercepteaza mesajul (reamintim, toate canalele sunt nesigure) si aa
m = d
1
B
(y
1
).
4. Oscar recripteaza y = e
B
(m) si trimite y lui Bob.
Binent eles, Oscar poate modica sau ntarzia mesajul m daca doreste.
Din aceasta cauza, aproape n toate sistemele de criptare cu cheie publica apare nece-
sitatea autenticarii mesajului sau a expeditorului, precum si aceea a condent ialitat ii.
Denit ia 8.1 Condent ialitatea
4
asigura accesul la informat ie doar part ilor autorizate
de a avea acest acces.
Denit ia 8.2 Autenticarea
5
este procesul prin care un calculator (program de calculator
sau alt utilizator) ncearca sa conrme unui destinatar ca mesajul primit de acesta vine
(sau nu vine) din partea sa.
Metodele prin care un expeditor uman se poate autentica sunt clasicate n:
1. ceva ce utilizatorul este (de exemplu amprente digitale, de retina, de voce, secvent a
DNA, recunoasterea semnaturii, identicatori biometrici).
2. ceva de utilizatorul are (de exemplu card ID, date de securitate soft pe calculator
sau telefon).
3. ceva ce utilizatorul stie (de exemplu un password, o parola, un numar de identi-
care - PIN).
4. Orice combinat ie ntre metodele anterioare (de exemplu un card bancar cu PIN
asigura o dubla autenticare).
Alt termen frecvent utilizat este cel de integritate. El se refera la validitatea datelor.
Denit ia 8.3 Integritatea este sigurant a ca datele la care se refera un utilizator pot
accesate si pot modicate numai de cei autorizat i sa o faca.
INTRE CRIPTAREASIMETRIC
A9
2.
In mod accidental (transmisii perturbate de zgomote de canal, zgarierea harddiscului)
6
.
Sa presupunem ca Alice si Bob sunt doi utilizatori, cu posibile conicte de interese.
cand Alice trimite un mesaj lui Bob, ambele part i trebuie sa se asigure ca:
Mesajul nu este trimis de o tert a persoana care pretinde a Alice;
Bob sa nu poata obliga pe Alice sa t ina cont de mesaje care nu-i apart in, iar Alice
sa poata recunoaste public propriile mesaje.
Intr-o oarecare masura, cele doua condit ii sunt contradictorii: conform primei condit ii,
Bob trebuie sa stie ceva despre modul de criptare al lui Alice, care i va permite sa
autentice mesajul, iar conform celei de-a doua condit ii, el nu trebuie sa stie prea mult.
O modalitate frecvent utilizata pentru autenticarea mesajelor este folosirea codurilor de
autenticare.
Exemplul 8.6 MAC-ul (Message Authentication Code) denit n cadrul sistemului de
criptare DES este o varianta prin care se poate asigura atat autenticitatea cat si integri-
tatea mesajului.
Daca se solicita si autenticarea partenerilor, atunci se foloseste de obicei semnatura
electronica.
Exemplul 8.7 Sa presupunem ca Alice vrea sa trimita lui Bob mesajul m. Daca se
foloseste un sistem de criptare cu cheie publica n care funct iile de criptare/decriptare
sunt comutative, iar (e
A
, d
A
), (e
B
, d
B
) sunt perechile (cheie publica,cheie privata) ale celor
doi, ei pot urma urmatorul protocol:
1. Alice trimite lui Bob y
1
= e
A
(m);
2. Bob trimite lui Alice y = e
B
(y
1
);
3. Alice trimite lui Bob d
A
(y) = e
B
(m);
4. Bob calculeaza d
B
(e
B
(m)) = m si aa mesajul.
Se observa ca sunt vericate cele doua condit ii de autenticare si n plus protocolul
rezista unui atac de tip meet-in-the-middle.
Daca dorim sa folosim un singur contact, Alice poate trimite mesajul y = e
B
(d
A
(m)).
La recept ie, Bob va folosi propria sa cheie pentru decriptare, impreuna cu cheia public a a
lui Alice. Metoda merge si pentru sisteme de criptare necomutative.
8.5 Comparat ie ntre criptarea simetrica si cea cu
cheie publica
Avantaje ale sistemelor de criptare cu cheie simetrica:
6
De recuperarea informat iei pierdutan acest mod se ocupa Teworia Codurilor detectoare si corectoare
de erori.
10 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
1. Pot transmite volume mari de date. Exista implementari hard care pentru unele
sisteme de criptare pot asigura rate de criptare de sute de mega-octet i pe secunda
(sunt si implementari soft cu rate de mega-octet i pe secunda).
2. Cheile sunt relativ scurte.
3. Pot folosite ca baza de construct ie a diverselor mecanisme de criptare, cum ar
generatori de numere pseudo-aleatoare, generatori de funct ii de dispersie, scheme
de semnatura.
4. Prin compunere pot conduce la sisteme de criptare puternice.
5. Au o istorie bogata n evenimente si experient a.
Dezavantaje ale sistemelor de criptare cu cheie simetrica:
1. Cheia trebuie sa ramana permament secreta n (cel putn) doua locuri distincte.
2. Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart.
3.
In ret ele mari, o gestionare a cheilor devine extrem de dicila.
4. Necesita un canal sigur de comunicare, cel put in pentru transmiterea cheii. Acest
lucru devine dicil mai ales pentru sistemele care necesita schimbari frecvente ale
cehilor de criptare/decriptare.
Avantaje ale sistemelor de criptare cu cheie punlica
1. Sistemul este ideal pentru transmiterea informat iei prin canale nesigure.
2. Sistemele cu cheie publica sunt simplu de denit si elegante matematic.
3. Doar cheia de decriptare trebuie t inuta secreta, la un singur punct (destinatar).
4.
In funt ie de modul de utilizare, o pereche de chei (publica,privata) poate pastrata
o perioada mai lunga de timp.
5. Conduc la aplicat ii de mare ntindere: semnaturi electronice, algoritmi de autenti-
care, componente de comert electronic etc.
Dezavantaje ale sistemelor de criptare cu cheie publica:
1. Sunt semnicativ mai lente decat sistemele simetrice.
2. Sunt necesare chei de lungimi mult mai mari.
3. Nu se poate garanta securitatea absoluta a nici unei scheme de criptare cu cheie
publica.
8.5. COMPARAT IE
INTRE CRIPTAREASIMETRIC
A11
4. Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teo-
retic de securitate pot sparte usor printr-o implementare neglijenta.
Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantaje
complementare. Acest lucru face ca ele sa e folosite combinat.
Exemplul 8.8 Multe sisteme de criptare ncep comunicarea transmit and via un sistem cu
cheie publica, cheia unui sistem simetric.
In faza a doua, mesajele sunt criptate folosind
sistemul simetric de criptare. Aceasta asigura o viteza mult mai mare de transmitere si
un spor de autentcitate a mesajelor.
12 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC
A
Bibliograe
[1] W. Die, M.E. Hellman - New Directions in Cryptography, IEEE Transactions on
Information Theory, IT-22, 6 (1976), pp. 644-654
[2] D. Stinton - Cryptographie, theorie et pratique, International Thompson Publishing
France, 1995
[3] A. Salomaa - Criptograe cu chei publice, ed. Militara, 1994
[4] P versus NP homepage, http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
[5] http://en.wikipedia.org/wiki/Complexity classes P and NP
13
Prelegerea 10
Sistemul de criptare RSA
10.1 Descrierea sistemului RSA
Sistemul de criptare RSA (Rivest - Shamir - Adleman) este n acest moment cel mai
cunoscut si uzitat sistem cu cheie publica
1
. Aceasta se datoreazan primul rand modalit at ii
foarte simple de criptare si decriptare, care se realizeaza similar cu aceleasi module de
calcul (proprietate ntalnita n special la multe sisteme simetrice).
Iata n ce consta sistemul de criptare RSA:
Fie p, q numere prime impare distincte si n = pq.
Indicatorul sau Euler este (n) = (p 1)(q 1).
Fie P = C= Z
n
. Se deneste
K= {(n, p, q, a, b)| n = pq, ab 1 (mod (n))}
Pentru K = (n, p, q, a, b) se denesc (x, y Z
n
):
e
K
(x) = x
b
(mod n)
si
d
K
(y) = y
a
(mod n)
Valorile n si b sunt publice, iar p, q si a sunt secrete.
Deoarece ab 1 (mod (n)), avem ab = t(n) + 1.
Atunci, pentru un x Z
n
= Z
n
\ {0}, putem scrie (toate calculele se fac n Z
n
):
(x
b
)
a
x
t(n)+1
_
x
(n)
_
t
x 1
t
x x.
Pentru x = 0 armat ia este banala.
Exemplul 10.1 Sa presupunem ca Bob alege p = 101, q = 113. Atunci n = 11413, (n) =
11200. Deoarece 11200 = 2
6
5
2
7, un numar b poate utilizat ca exponent de criptare daca
1
Sistemul este prezentat n 1977 de Ron Rivest, Adi Shamir si Len Adleman n cadrul unui proiect
de cercetare la MIT. Totusi, dupa declasicarea n 1997 a unor documente din Marea Britanie, se pare
ca matematicianul Cliord Cocks a elaborat n 1973 un sistem echivalent, prezentat ntr-un document
intern GCHQ (Government Communications Headquarters).
1
2 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
si numai daca nu este divizibil cu 2, 5 sau 7 (practic, Bob nu trebuie sa factorizeze (n);
este sucient sa verice daca ((n), b) = 1 folosind algoritmul lui Euclid). Fie de exemplu
b = 3533. Avem atunci b
1
= 6597 mod 11200.
Deci, exponentul (secret) de decriptare este a = 6597.
Bob face public n = 11413 si b = 3533.
Daca Alice doreste sa-i transmita lui Bob mesajul 9726, ea calculeaza
9726
3533
mod 11413 = 5761
si trimite prin canal textul criptat 5761. Cand Bob primeste acest numar, el determina
5761
6597
mod 11413 = 9726.
Securitatea sistemului de criptare RSA se bazeaza pe ipoteza ca funct ia e
K
(x) = x
b
mod n
este neinversabila din punct de vedere al complexitat ii, deci este imposibil pentru Oscar
sa o determine. Trapa secreta de care dispune Bob pentru decriptare este descompunerea
n = pq. Deoarece Bob stie aceasta factorizare, el poate calcula (n) = (p 1)(q 1)
si apoi determina exponentul de decriptare a folosind algoritmul lui Euclid extins (a se
vedea Anexa).
10.2 Implementarea sistemului RSA
Pentru a realiza criptarea, Bob trebuie sa efectueze urmatorii pasi (ecare din ei va
detaliat mai tarziu):
Tabelul 10.1:
1. Genereaza doua numere prime mari p, q;
2. Calculeaza n = pq si (n) = (p 1)(q 1);
3. Alege aleator un numar b (1 < b < (n)) astfel ca (b, (n)) = 1;
4. Calculeaza a = b
1
mod (n) folosind algoritmul lui Euclid;
5. Face public n si b.
Un atac evident al sistemului consta n ncercarea de factorizare a lui n. Daca se
realizeaza aceasta, este usor de determinat (n) = (p1)(q 1) si de calculat exponentul
de decriptare a plecand de la b.
Deci, pentru ca sistemul RSA sa e sigur, este necesar ca n sa e sucient de mare
pentru ca factorizarea sa sa e imposibila (din punct de vedere al complexitat ii). Algo-
ritmii de factorizare actuali pot descompune numere de pana la 200 cifre zecimale. Se
10.2. IMPLEMENTAREA SISTEMULUI RSA 3
recomanda de aceea pentru sigurant a sa se lucreze cu numere prime p si q de cel put in
300 cifre ecare, deci n va avea peste 500 cifre. Aproape toate implementarile actuale ale
sistemului folosesc chei de 1024 2048 bit i
2
.
Cu intent ia ca vom reveni asupra problemelor legate de numere prime mari, sa studiem
ntai operat iile necesare pentru criptare si decriptare. Orice astfel de calcul se bazeaza
pe o exponent iere modulo n. Cum n este foarte mare, vom utiliza aritmetica numerelor
mari pentru lucrul n Z
n
, timpul de calcul necesar ind direct proport ional cu numarul
de bit i ai lui n.
Daca n ocupa k bit i n memorie (deci k = [log
2
n] + 1), prin metode de calcul uzuale
se ajunge la concluzia ca suma a doua numere de k bit i se face n O(k), iar nmult irea n
O(k
2
). La fel si reducerea modulo n. Deci, pentru x, y Z
n
, numarul xy mod n se poate
determina prin calcule de complexitate O(k
2
). Conform prelegerii anterioare, vom numi
aceasta multiplicare modulara.
Sa cercetam acum exponent ierea modulara x
c
mod n. O modalitate de calcul consta n
efectuarea de c1 multiplicari modulare - proces foarte inecient pentru c mare, deoarece
algoritmul devine de complexitate exponent iala.
Exista nsa un algoritm de exponent iere rapida, care realizeaza x
c
mod n cu complex-
itate O(k
3
) (deci polinomial). Acesta utilizeaza descompunerea binara a lui c,
c =
s1
i=0
c
i
2
i
unde s (s k) este numarul de bit i ai lui c, iar c
i
{0, 1}. Exponent ierea se face doar
prin ridicari la patrat si maxim s nmult iri modulare, conform algoritmului:
z 1;
for i s 1 downto 0 do
z z
2
mod n;
if c
i
= 1 then z z x mod n
Exemplul 10.2 Sa reluam datele din Exemplul 10.1. Calculul lui 9726
3533
mod 11413 se
efectueaza cu algoritmul de sus n numai 12 pasi; anume:
2
Un numar n de maxim 256 bit i poate factorizat de un PC obisnuit n cateva ore, folosind un soft
free. Daca n are pana la 512 bit i, el poate factorizat folosind o ret ea de cateva sute de calculatoare,
conform unei scheme prezentate n 1999.
In 2003 a fost pusa sub semnul ntrebarii securitatea modulelor
de 1024 bit i.
4 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
i c
i
z
11 1 1
2
9726 = 9726
10 1 9726
2
9726 = 2659
9 0 2659
2
= 5634
8 1 5634
2
9726 = 9167
7 1 9167
2
9726 = 4958
6 1 4958
2
9726 = 7783
5 0 7783
2
= 6298
4 0 6298
2
= 4629
3 1 4629
2
9726 = 10185
2 1 10185
2
9726 = 105
1 0 105
2
= 11025
0 1 11025
2
9726 = 5761
Deci textul clar 9726 este criptat de Alice n 5761.
Pentru aplicarea sistemului de criptare RSA, trebuiesc generate ntai numerele prime
p, q - despre care ne ocupam n sect iunea urmatoare. Etapa a doua (din Tabelul 10.1) se
efectueaza evident n O((log
2
n)
2
). Etapele 3 si 4 folosesc algoritmul lui Euclid extins. Ca
rezultat general, calculul celui mai mare divizor comun (a, b) cu a > b se poate realiza cu
complexitatea O((log
2
a)
2
).
In general, un algoritm RSA este cam de 1000 ori mai lent decat DES pentru o
implementare harwdare, cam de 100 ori la o implementare software.
In [3] se dau cateva
tabele cu astfel de valori comparative, la nivelul anului 1995.
10.3 Teste de primalitate probabiliste
In realizarea sistemului de criptare RSA trebuiesc generate aleator numere prime cu numar
mare de cifre. Practic, se realizeaza aleator numere, a caror primalitate se testeaza, pana se
ajunge la un numar prim. Pentru teste se folosesc algoritmi probabilisti al caror avantaj
este rapiditatea (complexitatea lor este log n) dar care pot arma uneori primalitatea
unor numere care nu sunt prime. Aceste erori se pot reduce la o marja acceptabila prin
multiplicarea testelor.
Problema generarii aleatoare este posibila din urmatorul considerent. Un rezultat din
teoria numerelor (numit Teorema rareerii numerelor prime) arma ca sunt circa n/log n
numere prime mai mici decat n. Astfel, pentru un modul de 512 bit i, un numar p de 256
bit i are o probabilitate 1/logp 1/177 de a prim. Deci se fac n medie cam 177 gener ari
de numere p pentru a obt ine un numar prim (daca se foloseste si faptul ca se genereaza
numai numere impare, aceasta reduce la jumatate numarul de ncercari). Rezulta ca este
practic sa se construiasca numere mari, care sunt probabil prime, pe baza carora sa se
realizeze criptarea RSA. Vom detalia acest procedeu.
Denit ia 10.1 O problema de decizie este o problema care pune o ntrebare al carui
raspuns este dicotomic (Da/Nu).
10.3. TESTE DE PRIMALITATE PROBABILISTE 5
Un algoritm probabilist este un algoritm care foloseste numere aleatoare.
Denit ia 10.2 Un algoritm Monte - Carlo pozitiv este un algoritm probabilist care re-
zolva o problema de decizie n care orice raspuns pozitiv este corect, dar pentru care un
raspuns negativ poate incorect.
p
. Spunem ca a este rest (reziduu) patratic
modulo p daca ecuat ia x
2
a (mod p) are solut ie n Z
p
.
In caz contrar, un numar a = 0
nu este rest patratic.
Exemplul 10.3 Resturile patratice modulo 11 sunt 1, 3, 4, 5, 9 Aceasta deoarece n Z
11
avem (1)
2
= 1, (5)
2
= 3, (2)
2
= 4, (4)
2
= 5, (3)
2
= 9.
Problema resturilor patratice consta n a decide daca un numar n dat este sau nu un rest
patratic. Un algoritm determinist pentru rezolvarea acestei probleme se bazeaza pe
Teorema 10.1 (Criteriul lui Euler). Daca p 3 este prim, un numar a este rest patratic
modulo p daca si numai daca
a
p1
2
1 (mod p)
Demonstrat ie: Sa presupunem a x
2
(mod p). Cum x
p1
1 (mod p) (Teorema lui
Fermat) pentru x 0 (mod p),vom avea
a
p1
2
(x
2
)
p1
2
x
p1
1 (mod p).
Invers, e a
p1
2
1 (mod p) si b Z
p
un element primitiv (de ordin p 1). Atunci
a b
i
(mod p) pentru un anumit i. Calculam
1 a
p1
2
(b
i
)
p1
2
b
i(p1)
2
(mod p).
Ordinul p 1 al lui b va divide i(p 1)/2. Deci i este par si radacinile patrate ale lui a
sunt b
i/2
. 2
6 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
Denit ia 10.4 Daca p 3 este prim, pentru orice numar a 0 se deneste simbolul
Legendre prin
_
a
p
_
=
_
_
0 daca a 0 (mod p)
1 daca a este rest patratic modulo p
1 daca a nu este rest patratic modulo p
Teorema 10.1 asigura ca a
(p1)/2
1 (mod p) daca si numai daca a este rest patratic
modulo p. Daca a este multiplu de p, evident a
(p1)/2
0 (mod p).
In sfarsit, daca a nu
este rest patratic modulo p, avem a
(p1)/2
1 (mod p) deoarece a
p1
1, a
(p1)/2
1 (mod p) si 1 este singura radacina patrata diferita de 1 modulo p. Este deci adevarata
teorema urmatoare:
Teorema 10.2 Daca p este numar prim impar, atunci
_
a
p
_
a
p1
2
(mod p)
Simbolul lui Legendre se poate generaliza astfel:
Denit ia 10.5 Fie n = p
e
1
1
. . . p
e
k
k
un numar impar descompus n factori primi. Daca
a 0 este un numar ntreg, se deneste simbolul Jacobi prin
_
a
n
_
=
k
i=1
_
a
p
i
_
e
i
Exemplul 10.4 Sa calculam simbolul Jacobi
_
6278
9975
_
. Descompunerea n factori primi
a lui 9975 este 9975 = 3 5
2
7 19. Avem atunci
_
6278
9975
_
=
_
6278
3
__
6278
5
_
2
_
6278
7
__
6278
19
_
=
_
2
3
__
3
5
_
2
_
6
7
__
8
19
_
= (1)(1)
2
(1)(1) =
1
Fie n > 1 un numar impar. Daca n este prim, atunci pentru orice a, avem
_
a
n
_
a
n1
2
(mod n).
Invers, daca n nu este prim, este posibil ca egalitatea de sus sa e falsa. Daca
congruent a se verica, spunem ca n este numar Euler pseudo - prim pentru baza a.
De exemplu, 91 este pseudo-prim pentru baza 10 deoarece
_
10
91
_
= 1 = 10
45
(mod 91).
Putem enunt a acum testul de primalitate Solovay - Strassen pentru un numar impar
n:
10.3. TESTE DE PRIMALITATE PROBABILISTE 7
1. Se genereaza aleator un numar a Z
n
;
2. x
_
a
n
_
;
3. if x = 0 then n nu este prim
4. y a
n1
2
(mod n);
5. if x y (mod n) then n este prim,
else n nu este prim.
Pentru evaluarea a
n1
2
(mod n) se poate folosi un algoritm de complexitate O((log n)
3
).
Problema este cum putem evalua simbolul Jacobi x
_
a
n
_
fara a factoriza pe n (altfel
ne nvartim ntr-un cerc vicios !!).
Acest lucru se poate realiza folosind cateva proprietat i. Anume:
Lema 10.1 Fie n un ntreg pozitiv impar. Atunci
1. Daca x y (mod n) atunci
_
x
n
_
=
_
y
n
_
;
2.
_
2
n
_
=
_
1 daca n 1 (mod 8)
1 daca n 3 (mod 8)
3.
_
x y
n
_
=
_
x
n
_
_
y
n
_
;
Lema 10.2 Fie m, n doua numere ntregi pozitive impare. Atunci
_
m
n
_
=
_
_
_
_
n
m
_
daca m n 3 (mod 4)
_
n
m
_
altfel
Lasam ca exercit iu demonstrat iile celor doua leme.
Exemplul 10.5 Sa calculam simbolul Jacobi
_
7411
9283
_
. Vom avea succesiv:
_
7411
9283
_
=
_
9283
7411
_
=
_
1872
7411
_
=
_
2
7411
_
4
_
117
7411
_
=
_
117
7411
_
=
_
7411
117
_
=
_
40
117
_
=
_
2
117
_
3
_
5
117
_
=
_
5
117
_
=
_
117
5
_
=
_
2
5
_
= 1
8 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
O analiza sumara arata ca se poate calcula simbolul Jacobi
_
m
n
_
folosind cel mult O(log n)
reduceri modulare, ecare n timp O((log n)
2
). Deci complexitatea poate estimata la
O((log n)
3
)
3
.
Se poate arata ca numarul de baze a pentru care un numar neprim n este pseudo -
prim Euler, este cel mult n/2. Aceasta duce la concluzia ca testul de primalitate Solovay
- Strassen este un algoritm Monte Carlo pozitiv pentru problema de descompunere, cu
probabilitate de eroare 1/2. Un studiu referitor la complexitatea aplicarii acestui test de
primalitate si a probabilitat ii de eroare se poate gasi n [1].
10.3.2 Algoritmul Miller - Rabin
Acest algoritm este cunoscut si sub numele de testul de tare pseudo - primalitate. Forma
sa este:
1. Se descompune n 1 = 2
k
m unde m este impar;
2. Se alege aleator ntregul a [2, n 2];
3. b a
m
(mod n)
4. if b 1 (mod n) then n este prim, Stop;
5. for i 0 to k 1 do
6. if b 1 (mod n) then n este prim, Stop,
else b b
2
(mod n)
7. n nu este prim, Stop
Evident, algoritmul este polinomial, de complexitate O((log n)
3
).
Teorema 10.3 Algoritmul Miller - Rabin este un algoritm Monte Carlo pozitiv pentru
problema de descompunere.
Demonstrat ie: Sa presupunem prin absurd ca algoritmul raspunde ca un numar prim n
se poate descompune, adica a
m
1 (mod n). Vom urmari sirul de valori pe care le ia b.
Cum la ecare iterare b este ridicat la patrat, acest sir este a
m
, a
2m
, . . . , a
2
k1
m
. Vom avea
deci
a
2
i
m
1 (mod n) pentru 0 i k 1.
3
O analiza mai detaliata poate reduce aceasta complexitate la O((log n)
2
).
10.3. TESTE DE PRIMALITATE PROBABILISTE 9
Deoarece n este prim, teorema lui Fermat da a
2
k
m
1 (mod n). Deci a
2
k1
m
este o
radacina patrata a lui 1 modulo n.
Din faptul ca n este prim, singurele radacini patrate ale lui 1 sunt 1. Aceasta
armat ie se poate arata astfel:
x este radacina patrata a lui 1 daca si numai daca n|(x 1)(x +1). Cum n este prim,
avem n|(x 1) (deci x 1 (mod n)) sau n|(x + 1) (adica x 1 (mod n)).
Cum prin ipoteza a
2
k1
m
1 (mod n), avem a
2
k1
m
1 (mod n).
Atunci a
2
k2
m
trebuie sa e radacina patrata a lui 1, diferita de 1, deci
a
2
k2
m
1 (mod n).
Proced and iterativ, se ajunge la a
m
1 (mod n), ceea ce contrazice faptul ca algorit-
mul nu s-a oprit la Pasul 4.
Daca n este un numar impar neprim, atunci maxim 1/4 din numerele a Z
n
conduc
la un rezultat fals.
In [4] se apreciaza ca numarul maxim de astfel de valori este (n)/4,
pentru n = 9.
De exemplu, pentru n = 91 (neprim), mult imea valorilor a pentru care algoritmul
da raspuns incorect este {9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82}. Pentru
n = 105 orice valoare a lui a conduce la un rezultat corect.
Deci, algorituml Miller-Rabin este un algoritm Monte-Carlo pozitiv de probabilitate
= 1/4. 2
In general se considera ca testul Miller - Rabin este mai bun decat Solovay - Strassen.
Cateva motive:
1. Solovay - Strassen este computat ional mai complex.
2. Implementarea lui Solovay - Strasen este mai dicila din cauza calculului simbolului
Jacobi.
3. Probabilitatea de eroare pentru Solovay - Strasen este 1/2, pe cand la Miller - rabin
ea se reduce la 1/4.
4. Deoarece orice valoare a lui a pentru care testul Miller - Rabin este gresit este
un numar Euler pseudo-prim (vezi Exercit iul 10.8), un test Miler - Rabin nu este
niciodata inferior unui test Solovay - Strasen.
Deoarece orice implementare a unui sistem RSA trebuie nsot ita de un generator de
numere prime mari, sunt necesare construct ii care sa genereze rapid astfel de numere.
Schneier propune urmatoarea varianta ([3]):
1. Se genereaza un numar aleator p de n bit i.
2. Se verica daca primul si ultimul bit sunt 1.
10 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
3. Se verica daca p nu este divizibil cu numere prime mici (3, 5, 7, 11, . . .)
4
.
4. Se aplica testul Miller - Rabin cu o valoare aleatoare a. Daca p trece testul, se ia
alta valoare pentru a. Cinci teste sunt suciente. Pentru viteza, se recomanda sa se
ia valori mici pentru a. Daca p esueaza la unul din cele cinci teste, se reia algoritmul.
Se apreciaza ca utilizarea pasului 3, cu o testare a tuturor numerelor prime pana la 256
elimina aproape 80% din cazurile nefavorabile.
10.4 Anexa
10.4.1 Algoritmul lui Euclid extins
Dupa cum se stie, algoritmul lui Euclid constituie o modalitate ecace de determinare a
celui mai mare divizor comun a doua numere ntregi pozitive. El poate extins pentru a
determina si inversele elementelor dintr-un corp nit Z
n
.
Sa reamintim ntai algoritmul lui Euclid (forma clasica):
Fie r
0
, r
1
N
A 11
Se poate da acum algoritmul extins al lui Euclid care pentru n > 1 si b Z
n
va determina
b
1
mod n (daca exista).
1. n
0
n, b
0
b, t
0
0, t 1
2. q
_
n
0
b
0
_
, r n
0
q b
0
3. while r > 0 do
3.1. temp t
0
q t
3.2. if temp 0 then temp temp (mod n)
else temp n ((temp) (mod n))
3.3. n
0
b
0
, b
0
r, t
0
t, t temp
3.4. q
_
n
0
b
0
_
, r n
0
q b
0
4. if b
0
= 1 then b nu are inversa mod n
else b
1
(mod n) = t.
Exemplul 10.6 Sa calculam 28
1
mod 75, folosind algoritmului lui Euclid extins. Vom
avea pe rand:
n
0
b
0
q r t
0
t temp
75 28 2 19 0 1 73
28 19 1 9 1 73 3
19 9 2 1 73 3 67
9 1 9 0 3 67
Deci 28
1
mod 75 = 67.
10.4.2 Teorema chineza a resturilor
Teorema 10.5 Se dau numerele p
1
, p
2
, . . . , p
r
prime ntre ele si e n = p
1
p
2
. . . p
r
. Atunci
sistemul de ecuat ii
x a
i
(mod p
i
), 1 i r
are solut ie comuna n intervalul [0, n 1].
Demonstrat ie: Pentru ecare i, (p
i
, n/p
i
) = 1; deci exista numerele y
i
astfel ncat
n
p
i
y
i
1 (mod p
i
).
De asemenea, pentru j = i, deoarece p
j
|(n/p
i
), avem
n
p
i
y
i
0 (mod p
j
).
Alegem
x =
r
i=1
n
p
i
y
i
a
i
(mod n).
12 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
Pentru orice i, x este o solut ie a ecuat iei x a
i
(mod p
i
) deoarece n Z
p
i
avem
x =
n
p
i
y
i
a
i
= a
i
. 2
Exemplul 10.7 Fie r = 3, p
1
= 7, p
2
= 11, p
3
= 13, deci n = 1001. Notand m
i
=
n
p
i
,
avem m
1
= 143, m
2
= 91 si m
3
= 77. Folosind algoritmul lui Euclid, se obt ine y
1
=
5, y
2
= 4, y
3
= 12. Solut ia generala este atunci
x = 715a
1
+ 364a
2
+ 924a
3
(mod 1001).
De exemplu, pentru sistemul
x 5 (mod 7), x 3 (mod 11), x 10 (mod 13)
formula de sus da
x = 715 5 + 364 3 + 924 10 (mod 1001) = 13907 (mod 1001) = 894.
Vericarea se realizeaza reducand x modulo 7, 11 13.
10.5 Exercit ii
10.1 Demonstrat i lemele 10.1 si 10.2.
10.2 Fie p, q numere prime impare distincte si n = pq. Denim
(n) =
(p 1)(q 1)
cmmdc(p 1, q 1)
Folosim un sistem de criptare RSA n care s-a facut modicarea a b 1 (mod (n)).
(a) Demonstrat i ca operat iile de criptare si decriptare sunt operat ii inverse si n acest
sistem.
(b) Daca p = 37, q = 79 si b = 7, calculat i valoarea exponentului a atat n acest
sistem cat si n sistemul RSA normal.
10.3 Sa se arate ca pentru orice numar n egal cu produsul primelor k (k 2) numere
prime impare testul Miller - Rabin da rezultat corect pentru orice ntreg a [2, n 2].
10.4 O modalitate curenta de a mari viteza de decriptare foloseste teorema chineza a
restului. Sa presupunem ca n = pq si d
K
(y) = y
a
(mod n). Denim d
p
= d (mod (p
1)), d
q
= d (mod (q 1)) si M
p
= q
1
(mod p), M
q
= p
1
(mod q). Vom considera
algoritmul
1. x
p
y
d
p
(mod p);
2. x
q
y
d
q
(mod q);
3. x M
p
q x
p
+ M
q
p x
q
(mod n);
4. return(x).
10.5. EXERCIT II 13
(a) Demonstrat i ca valoarea x returnata este de fapt y
d
(mod n).
(b) Pentru p = 1511, q = 2003 calculat i d
p
, d
q
, M
p
, M
q
si apoi decriptat i textul y =
152702 folosind algoritmul din acest exercit iu.
10.5 Pentru n = 837, 851 1189 aat i numarul de baze b pentru care n este un numarul
n este Euler pseudo-prim.
10.6 Scriet i un program pentru calculul simbolului Jacobi, folosind lemele 10.1 si 10.2.
Singura operat ie de factorizare permisa este mpart irea la 2. valori de test:
_
610
987
_
,
_
20964
1987
_
,
_
1234567
11111111
_
10.7 Fie
G(n) =
_
a|a Z
n
,
_
a
n
_
a
n1
2
(mod n)
_
.
(a) Demonstrat i ca G(n) este subgrup al lui Z
n
. Deci, conform Teoremei lui Lan-
grance, daca subgrupul este propriu, atunci
|G(n)|
|Z
n
|
2
n 1
2
.
(b) Sa presupunem ca n = p
k
q, unde p si q sunt numere impare prime ntre ele, p
este prim si k 2. Fie a = 1 + p
k1
q. Demonstrat i ca
_
a
n
_
a
n1
2
(mod n).
(c) Fie n = p
1
p
2
. . . p
s
unde p
i
sunt numere prime impare distincte. Sa presupunem
ca a 1 (mod p
1
) si a 1 (mod p
2
p
3
. . . p
s
), unde u este un non-reziduu patratic modulo
p
1
(un astfel de a exista, conform teoremei chineze a restului). Demonstrat i ca
_
a
n
_
1 (mod n), a
n1
2
1 (mod p
2
p
3
. . . p
s
)
(deci a
n1
2
1 (mod n).
(d) Daca n este un numar neprim impar, aratat i ca |G(n)|
n 1
2
.
(e) Pe baza celor de mai sus, aratat i ca probabiltatea de eroare a testului de primalitate
Solovay - Strassen este cel mult 1/2.
10.8 Sa se arate ca orice numar a pentru care testul Miller - Rabin da rezultat fals este un
numar Euler pseudo-prim. Reciproca este adevarata daca si numai daca n 3 (mod 4).
14 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
10.9 Fie p un numar prim impar si cmmdc(a, p) = 1.
a) Sa presupunem ca i 2 si b
2
a (mod p
i1
). Demonstrat i ca exista un x Z
p
unic astfel ca x
2
a (mod p
i
) si x b (mod p
i1
). Gasit i o modalitate eifcienta de calcul
a lui x.
(b) Aplicat i punctul anterior n urmatoarea situat ie: plecand de la congruent a 6
2
timesN a sistemului
_
pq = n
(p 1)(q 1) = (n)
sau - dupa substitut ie - a ecuat iei
X
2
(n (n) + 1)X + n = 0
Deci, daca Oscar determina (n), el poate factoriza n si sparge sistemul. Cu alte cuvinte,
calculul lui (n) nu este mai simplu decat factorizarea lui n.
De asemenea, o slabiciune consta n alegerea unor numere p, q prime apropiate unul
de altul.
In acest caz (cu p > q), vom avea (p q)/2 un numar foarte mic, iar (p + q)/2
un numar foarte apropiat de
n.
In plus,
(p + q)
2
4
n =
(p q)
2
4
,
deci membrul stang este patrat perfect.
Atunci, pentru factorizarea lui n se testeaza toate numerele ntregi x >
n pana se
gaseste unul astfel ncat x
2
n este patrat perfect; e acesta y
2
. Atunci vom avea imediat
p = x + y, q = x y.
1
2 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Exemplul 11.1 Pentru n = 97343 se gaseste
n = 311, 998. Apoi 312
2
n = 1, ceea ce
conduce la factorizarea p = 313, q = 311.
Deci, n general este recomandabil ca cele doua numere prime p si q sa difere prin lungime.
11.2 Exponentul de decriptare
11.2.1 Factorizarea modulului stiind exponentul de decriptare
Daca exist a un algoritm care calculeaza exponentul de decriptare a, acesta poate utilizat
ca oracol
1
ntr-un algoritm probabilist care descompune n. Deci, se poate spune ca daca
a este descoperit, secretul factorizarii lui n este compromis; deci Bob va trebui sa schimbe
nu numai exponentul de decriptare, ci si modulul n.
Algoritmul de descompunere care va descris este de tip Las Vegas.
Denit ia 11.1 Fie (0 < 1). Un algoritm tip Las Vegas este un algoritm probabilist
care, pentru orice aparit ie a unei probleme, poate oferi un raspuns - totdeauna corect -
sau poate esua si sa nu dea nici un raspuns, cu probabilitate .
Observat ia 11.1 Un algoritm Las Vegas poate sa nu dea raspuns, dar daca da - acest
raspuns este sigur corect. Algoritmii Monte Carlo n schimb dau totdeauna raspuns, desi
acesta uneori este incorect.
Deci, daca avem un algoritm Las Vegas pentru rezolvarea unei probleme, putem sa l
apelam de mai multe ori, pana se obt ine un raspuns. Probabilitatea ca el sa nu raspunda
la m tentative consecutive este
m
.
Sa consideram un algoritm ipotetic A care calculeaza exponentul de decriptare a
plecand de la exponentul de criptare b. Se poate descrie atunci un algoritm Las Vegas
care utilizeaza A ca oracol. El este bazat pe studiul radacinilor patrate ale unitat ii modulo
n, cand n = pq, p si q ind numere prime impare.
In acest caz x
2
1 (mod p) are ca
singure solut ii x 1 (mod p). La fel, x
2
1 (mod q) are solut iile x 1 (mod q).
Din Teorema chineza a resturilor rezulta ca x
2
1 (mod n) este echivalenta cu
x
2
1 (mod p) si x
2
1 (mod q). Vom avea deci patru radacini patrate ale unit at ii
modulo n, care pot calculate cu Teorema chineza a resturilor. Doua sunt solut iile triviale
1 (mod n), iar celelalte - numite netriviale - sunt opuse modulo n.
Exemplul 11.2 Fie n = 403 = 13 31. Cele patru radacini patrate ale lui 1 modulo 403
sunt 1, 92, 311 si 402.
1
program care raspunde numai cu Da/Nu la o ntrebare - tip a utilizatorului
11.2. EXPONENTUL DE DECRIPTARE 3
Sa presupunem acum ca x este o radacina patrata netriviala a lui 1 modulo n, deci o
solut ie a ecuat iei x
2
1 (mod n). Avem
n|(x 1)(x + 1)
Dar n nu poate divide nici unul din factorii din membrul drept. Deci va trebui ca
cmmdc(x+1, n) = p, cmmdc(x1, n) = q - sau invers - cmmdc(x+1, n) = q, cmmdc(x
1, n) = p. Acest cel mai mare divizor comun se poate calcula fara a sti descompunerea
lui n, construind algoritmul de mai jos, care foloseste A ca oracol:
1. Se genereaza aleator w Z
n
, w = 1;
2. x cmmdc(w, n);
3. if x > 1 then Stop (cu p = x sau q = x);
4. a A(b);
5. Se descompune ab 1 = 2
s
r, r impar;
6. v w
r
(mod n);
7. if v 1 (mod n) then Stop (esec);
8. while v 1 (mod n) do
8.1. v
0
v;
8.2. v v
2
(mod n);
9. if v
0
1 (mod n) then Stop (esec);
else x cmmdc(v
0
+1, n), Stop (p = x sau q = x).
Deci, cunoasterea unei radacini patrate netriviale a lui 1 modulo n determina des-compunerea
lui n printr-un calcul de complexitate polinomiala.
Exemplul 11.3 Fie n = 89855713, b = 34986517, a = 82330933 si sa consideram ca
s-a tras aleator w = 5. Vom avea:
ab 1 = 2
3
360059073378795.
La pasul 6 se obt ine v = 85877701, iar la pasul 8.2, v = 1. La pasul 9 se va obt ine
atunci cmmdc(85877702, n) = 9103.
Acesta este un factor al lui n; celalalt este n/9103 = 9871.
Trebuie demonstrata urmatoarea armat ie:
Armat ia 11.1 Procedeul descris este un algoritm.
Demonstrat ie: Ca o prima observat ie, daca exista sucienta sansa si w este multiplu de p
sau q, atunci el se factorizeaza imediat (pasul 2).
Daca w este prim cu n, atunci se calculeaza succesiv w
r
, w
2r
, . . . prin ridicari succesive
la patrat, pana se ajunge la un t cu w
2
t
r
1 (mod n). Deoarece ab 1 = 2
s
r
0 (mod (n)), se stie ca w
2
s
r
1 (mod n). Deci bucla while va efectua maxim s iterat ii.
La sfarsitul buclei se va gasi o valoare v
0
1 (mod n) cu v
2
0
1 (mod n). Daca
v
0
1 (mod n), algoritmul esueaza; altfel, v
0
este o radacina patrata netriviala a lui 1
modulo n care - la pasul 12 - permite descompunerea lui n. 2
Se poate arata ([2]) ca acest algoritm se termina cu succes cu probabilitate 1/2.
4 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
11.2.2 Atacul lui Wiener
In [4] este dezvoltat un atac asupra sistemului de criptare RSA n care exponentul de
decriptare a este mic; mai exact, trebuie vericate condit iile
3a < n
1/4
, q < p < 2q.
Deci, daca n are j bit i, atunci atacul va ecient pentru orice sistem de criptare RSAn
care a are mai put in de j/4 1 bit i, iar p si q sunt sucient de apropiat i
2
.
Din condit ia a b 1 (mod (n)) rezulta ca exista un numar ntreg t astfel ca
a b t (n) = 1.
Pe de-alta parte, din n = pq > q
2
rezulta q <
n, deci
0 < n (n) = pq (p 1)(q 1) = p + q 1 < 2q + q 1 < 3q < 3
n
Pe baza acestor relat ii, putem evalua
b
n
t
a
ab tn
an
1 + t((n) n)
an
<
3t
n
an
=
3 t
a
n
Deoarece t < a (evident), vom avea 3 t < 3 a < n
1/4
si deci
b
n
t
a
<
1
a n
1/4
<
1
3 a
2
.
Rezulta ca valoarea fract iei t/a este foarte apropiata de valoarea lui b/n. Din teoria
fract iilor continue se stie ca orice aproximare sucient de buna a lui b/n este una din
convergent ele dezvoltarii n fract ie continua a lui b/n. Sa descriem acest procedeu.
Denit ia 11.2 O fract ie continua (nita) este un m-tuplu de numere naturale [q
1
, q
2
, . . . , q
m
]
care reprezinta notarea expresiei
q
1
+
1
q
2
+
1
q
3
+...+
1
q
m
Fie a, b doua numere ntregi pozitive prime ntre ele si (q
1
, q
2
, . . . , q
m
) secvent a caturilor
obt inute prin aplicarea algoritmului lui Euclid. Se verica usor ca
a
b
= [q
1
, q
2
, . . . , q
m
].
Vom spune ca [q
1
, q
2
, . . . , q
m
] este dezvoltarea n fract ie continua a lui a/b.
2
Bob poate tentat sa aleaga astfel de parametri, pentru cresterea vitezei de decriptare; reamintim,
RSA este un sistem relativ lent.
11.2. EXPONENTUL DE DECRIPTARE 5
Acum, pentru ecare j (1 j m) denim C
j
= [q
1
, q
2
, . . . , q
j
] ca ind a j-a
convergent a a lui [q
1
, q
2
, . . . , q
m
]. Fiecare C
j
se poate scrie ca un numar rat ional c
j
/d
j
,
unde valorile c
j
si d
j
se pot deni recursiv astfel:
c
j
=
_
_
1 daca j = 0
q
1
daca j = 1
q
j
c
j1
+ c
j2
daca j 2
d
j
=
_
_
0 daca j = 0
1 daca j = 1
q
j
d
j1
+ d
j2
daca j 2
Exemplul 11.4 Sa dezvoltam n fract ie continua 34/99. Folosind algoritmul lui Euclid
se obt ine [0, 2, 1, 10, 3], care este notarea fract iei
34
99
= 0 +
1
2 +
1
1+
1
10+
1
3
Convergent ele acestei fract ii sunt:
[0] = 0
[0, 2] = 1/2
[0, 2, 1] = 1/3
[0, 2, 1, 10] = 11/32
[0, 2, 1, 10, 3] = 34/99
Este adevarata urmatoarea teorema ([4],[2]):
Teorema 11.1 Daca cmmdc(a, b) = cmmdc(c, d) = 1 si
a
b
c
d
<
1
2 d
2
atunci c/d este una din convergent ele dezvoltarii n fract ie continua a lui a/b.
Sa revenim acum la sistemul de criptare RSA.
In condit iile 3a < n
1/4
si q < p < 2q,
putem da urmatorul algoritm de factorizare a lui n:
1. Plecand de la n si b (publice), se aa dezvoltarea n fract ie continua a lui b/n
(folosind algoritmul lui Euclid).
2. Se parcurg pe rand convergent ele acestei dezvoltari. Daca exista convergent a t/a
care verica t|(a b 1), se calculeaza (n) =
a b 1
t
.
3. Cu n si (n) se aa p si q conform metodei din prima sect iune a acestei prelegeri.
Daca sunt ndeplinite ipotezele de la nceputul acestui paragraf, Teorema 11.1 asigura ca
exista o convergent a care satisface pasul 2 al algoritmului.
T inand cont de observat iile anterioare, algoritmul lui Wiener poate detaliat:
6 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Intrare: [q
1
, q
2
, . . . , q
m
] - dezvoltarea n fract ie continua a lui b/n.
Algoritm:
1 c
0
1, c
1
q
1
, d
0
0, d
1
1;
2. for j 1 to m do
2.1. if c
j
|(d
j
b 1) then
2.1.1. m (d
j
b 1)/c
j
;
2.1.2. Fie p, q radacinile ecuat iei x
2
(n m + 1)x + n = 0
2.1.3. if p, q Z
n
then return(p, q);
2.2. j j + 1;
2.3. c
j
q
j
c
j1
+ c
k2
, d
j
q
j
d
j1
+ d
j2
;
3. return(esec);
Exemplul 11.5 Sa presupunem ca n = 160523347, b = 60728973. Dezvoltarea n fract ie
continua a lui b/n este
[0, 2, 1, 1, 1, 4, 12, 102, 1, 1, 2, 3, 2, 2, 36]
Primele convergent e sunt: 0,
1
2
,
1
3
,
2
5
,
3
8
,
14
37
. . .
Primele cinci convergent e nu verica condit ia de divizibilitate. Pentru 14/37 avem
nsa:
m =
37 60728973 1
14
= 160498000
Rezolvand ecuat ia x
2
25348x +160523347 = 0 obt inem radacinile 12347 si 13001. Deci
avem factorizarea
160523347 = 12347 13001
11.3 Informat ie part iala despre textul clar
Sa studiem put in informat ia din textul clar care ar putea trada sistemul de criptare RSA.
Stiind ca y = e
K
(x), vom considera doua exemple de informat ie part iala data de y despre
x:
1. par(y) - da valoarea ultimului bit din scrierea binara a lui x;
2. jum(y) - va da 0 daca 0 x < n/2, 1 daca n/2 x n 1.
Vom arata ([3]) ca orice algoritm care poate calcula par(y) sau jum(y) poate utilizat ca
oracol pentru regasirea textului clar x. Altfel spus, a calcula una din aceste funct ii este
la fel de dicil cu a decripta tot textul y.
Faptul ca cele doua funct ii sunt polinomial echivalente rezulta din
jum(y) = par(y e
K
(2) mod n) par(y) = jum(y e
K
(2
1
) mod n)
11.3. INFORMAT IE PART IAL
_
n
2
,
3n
4
_
jum(e
K
(4x)) = 0 x
_
0,
n
8
_
_
n
4
,
3n
8
_
_
n
2
,
5n
8
_
_
3n
4
,
7n
8
_
, etc.
In acest mod, x se poate localiza printr-o cautare binara, realizata la pasii 7 11.
Exemplul 11.6 Fie n = 1457, b = 779, iar textul criptat este y = 722. Calcul am
e
K
(2) = 946. Sa presupunem ca oracolul jum din pasul 3 da urmatoarele raspunsuri:
i 0 1 2 3 4 5 6 7 8 9 10
y
i
1 0 1 0 1 1 1 1 1 0 0
Cautarea binara este realizata n tabelul:
8 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
i jos mijloc sus
0 0, 00 728, 50 1457, 00
1 728, 50 1092, 75 1457, 00
2 728, 50 910, 62 1092, 75
3 910, 62 1001, 69 1092, 75
4 910, 62 956, 16 1001, 69
5 956, 16 978, 92 1001, 69
6 978, 92 990, 30 1001, 69
7 990, 30 996, 00 1001, 69
8 996, 00 998, 84 1001, 69
9 998, 84 1000, 26 1001, 69
10 998, 84 999, 55 1000, 26
998, 84 999, 55 999, 55
Textul clar este deci x = [999, 55] = 999.
11.4 Algoritmi de descompunere n factori primi
Sunt extrem de numeroase lucrarile care trateaza descompunerea numerelor n factori
primi. De aceea aici vom face doar o trecere n revista a celor mai cunoscut i algoritmi de
factorizare.
Astfel, cel mai simplu pare a ciurul lui Eratostene care consta n ncercarea de
mpart i numarul n impar prin toate numerele ntregi impare din intervalul [3,
n]. Pentru
n < 10
12
tehnica este destul de ecienta.
11.4.1 Metoda p 1
Un algoritm simplu care se poate aplica uneori si la numere mari este metoda p 1
enunt ata de Pollard n 1974. El foloseste esent ial trei variabile de intrare: numarul
n (impar) care trebuie descompus, o margine B si un numar oarecare g [2, n 1].
Descrierea algoritmului este:
Intrare: n, B, g.
1. a g
2. for j = 2 to B do a a
j
mod n
3. d cmmdc(a 1, n)
4. if d > 1 then d este factor al lui n, Stop
else nu s-a gasit divizor al lui n
Sa vedem cum funct ioneaza acest algoritm:
Presupunem ca p este un divizor prim al lui n si ca tot i divizorii primi ai lui p 1 la
puterile la care apar n descompunerea lui p1 sunt mai mici decat B. Atunci p1|B!.
La terminarea ciclului de la pasul 2, avem
a g
B!
(mod n) deci a g
B!
(mod p)
11.4. ALGORITMI DE DESCOMPUNERE
IN FACTORI PRIMI 9
deoarece p|n. Cum g
p1
1 (mod p) conform teoremei lui Fermat (n afara de cazul
cand p|g) si cum (p 1)|B!, se obt ine a 1 (mod p).
Deci, la pasul 3 se ajunge la p|(a 1) si p|n, de unde rezulta p|d = (a 1, n).
Numarul d este un divizor netrivial al lui n (n afara de cazul a = 1 la pasul 3). Avand
un divizor netrivial d, procesul se poate itera.
Exemplul 11.7 Sa consideram n = 15770708441. Aplicand metoda p 1 cu B = 180,
se gaseste a = 11620221425, iar d = 135979. Se ajunge la descompunerea nala
15770708441 = 135979 115979.
Descompunerea a reusit deoarece 135978 are numai factori primi mici:
135978 = 2 3 131 173. Luand deci B 173 se obt ine 135978|B!.
Observat ia 11.2 Condit ia ca metoda sa funct ioneze este ca divizorii primi la puterile
la care apar n descompunerea lui p1 sa e mai mici decat b. Daca s-ar considera ca
doar divizorii primi sa verice aceasta condit ie, rezultatul ar fals. Astfel, sa consider am
p = 17 si B = 3. Atunci p 1 = 2
4
. Vom avea 2 < 3 dar 16 nu este un divixor al lui 3 !!
Pentru valori relativ mici ale lui B algoritmul este de complexitate polinomial scazuta
(O(BlogB(log n)
3
)). Daca B creste pana la
n, el va reusi totdeauna, dar nu va mai
rapid decat ciurul lui Eratostene.
Deci slabiciunea metodei rezida n faptul ca n trebuie sa admita un divizor p cu
proprietatea ca p 1 sa aiba numai factori primi mici. Pentru a rezista la acest atac, se
recomanda folosirea numerelor prime tari.
Denit ia 11.3 Se numeste numar prim tare un numar prim p care verica condit iile:
1. p 1 are un divizor prim mare r;
2. p + 1 are un divizor prim mare;
3. r 1 are un divizor prim mare.
Exista diversi algoritmi pentru generarea numerelor prime tari. Pentru exemplicare am
ales algoritmul lui Gordon:
1. Se genereaza aleator doua numere prime mari s, t distincte.
2. Se alege un numar aleator i
0
. Se aa primul numar prim de forma 2 i t + 1, unde
i i
0
, i
0
+ 1, . . .. Fie r = 2 i t + 1 acest numar prim.
3. p
0
2 (s
r2
(mod r)) s 1;
4. Se alege un numar aleator j
0
. Se aa primul numar prim de forma p
0
+ 2 j r s,
unde j j
0
, j
0
+ 1, . . .. Fie p = p
0
+ 2 j r s acest numar prim.
5. return(p)
Teorema 11.2 Numarul p generat de algoritmul Gordon este un numar prim tare.
10 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Demonstrat ie: Cum r = s, vom avea s
r1
1 (mod r) (Fermat). Deci p
0
1 (mod r) si
p
0
1 (mod s). Acum:
(1) p 1 = p
0
+ 2 j r s 1 0 (mod r), deci p 1 are pe r drept divizor prim.
(2) p + 1 = p
0
+ 2 j r s + 1 0 (mod s), deci s este un divizor prim al lui p + 1.
(3) r 1 = 2 i t 0 (mod t), deci numarul prim t divide pe r 1. 2
Practic, generarea unui numar prim tare se realizeaza n trei pasi:
- Cu un generator de numere aleatoare, se genereaza numerele s, t, i
0
, j
0
;
- Se testeaza daca s si t sunt numere prime, folosind algoritmul Miller - Rabin;
-
In caz armativ, se aplica algoritmul lui Gordon, bazat de asemenea pe algoritmul
Miller - Rabin.
De multe ori, pentru criptarea RSA este sucient sa se foloseasca numere prime mari
p cu proprietatea ca
p 1
2
este de asemenea numar prim.
Exemplul 11.8
In practica este folosit frecvent exponentul de criptare b = 3.
In acest
caz nsa, este necesar ca p 1 si q 1 sa nu e divizibile cu 3. Rezultatul este o criptare
extrem de rapida, deoarece se foloseste o singura nmult ire modulara si o singura ridicare
la patrat modulara.
De asemenea este utilizat des si b = 2
16
+ 1 = 65537. Acest numar are numai doi de
1 n reprezentarea binara, asa ca o criptare foloseste 16 ridicari la patrat modulare si o
nmult ire modulara.
11.4.2 Algoritmul lui Dixon si sita patratica
Algoritmul lui Dixon se bazeaza pe o idee extrem de simpla: daca se pot aa doua
numere x, y cu x y (mod n) dar x
2
y
2
(mod n), atunci cmmdc(x y, n) este un
divizor netrivial al lui n.
Metoda utilizeaza o baza B de factori primi mici. Se cauta ntai mai multe numere
x pentru care divizorii primi ai lui x
2
mod n sunt n B. Se formeaza apoi produse cu
aceste numere n asa fel ca ecare factor prim al patratului produsului sa apara de un
numar par de ori. Aceasta conduce la o relat ie x
2
y
2
(mod n) care va da eventual
o descompunere a lui n.
Exemplul 11.9 Fie n = 15770708441 si alegem mult imea B= {2, 3, 5, 7, 11, 13}. Se-
lectam
8340934156
2
3 7 (mod n)
12044942944
2
2 7 13 (mod n)
2773700011
2
2 3 13 (mod n)
Daca se ia produsul acestor trei congruent e, se ajunge la
(8340934156 12044942944 2773700011)
2
(2 3 7 13)
2
(mod n)
11.5. ALTE TIPURI DE ATAC 11
Reducand cont inutul parantezelor modulo n, se obt ine
9503435785
2
546
2
(mod n).
Vom calcula acum cmmdc(9503435785 546, 15770708441) = 115759,
care va da un divizor 115759 al lui n.
Fie B= {p
1
, p
2
, . . . , p
B
}; consideram un numar C put in mai mare decat B (de exemplu
C = B + 10) si presupunem ca am gasit C relat ii de forma
x
2
j
p
1j
1
p
2j
2
. . . p
Bj
B
1 j C
Pentru ecare j se considera vectorul binar (elementele sale se iau modulo 2)
j
= (
1j
, . . . ,
Bj
) Z
B
2
.
Daca se poate determina o submult ime a acestor vectori a caror suma modulo 2 este
(0, 0, . . . , 0), patratul produsului elementelor x
j
corespunzatoare va avea ecare divizor n
B de un numar par de ori.
Exemplul 11.10 Revenind la Exemplul 11.9, cei trei vectori care se construiesc sunt
1
= (0, 1, 0, 1, 0, 0),
2
= (1, 0, 0, 1, 0, 1),
3
= (1, 1, 0, 0, 0, 1).
Se verica imediat ca
1
+
2
+
3
(0, 0, 0, 0, 0, 0) (mod 2).
Evident, a cauta o submult ime de C vectori de suma nula modulo 2 revine la a cauta o
relat ie de dependent a liniara (n Z
2
) ntre acesti vectori. Daca C > B, o asemenea relat ie
exista si poate gasita usor prin eliminare gaussiana.
Ar mai de vazut cum sa se obt ina acei x
j
pentru care x
2
j
se descompun n factori
primi din baza B. Sunt mai multe metode posibile pentru aceasta; de exemplu, ciurul
patratic - construit de Pomerance - foloseste numere ntregi de forma
x
j
= j + [
n], j = 1, 2, . . . .
De remarcat ca daca B este mare, este foarte posibil ca un ntreg x
j
sa se descompuna
n B, dar numarul acestor x
j
trebuie sa creasca pentru a cauta relat iile de dependent a.
Se arata ca alegerea optima pentru B este n jur de
_
e
n
, va calcula
c
1
= c x
b
(mod n) si va solicita decriptarea lui. Alice va decripta pentru el m
1
=
c
a
1
(mod n). Deoarece
m
1
c
a
1
c
a
(x
b
)
a
mx (mod n)
Oscar va aa imediat m = m
1
x
1
(mod n).
Acest tip de atac este prevenit de obicei impunand anumite structuri speciale asupra
textelor clare.
11.5.2 Atac bazat pe un exponent mic de criptare
Asa cum s-a aratat n Exemplul 11.8, pentru marirea vitezei de criptare se prefera
exponent i mici de criptare (cum este b = 3). Aceasta alegere are unele slabiciuni, care
permit atacuri n anumite condit ii.
Astfel, sa presupunem ca Alice doreste sa trimita acelasi text clar m la trei destinatari
diferit i, care au modulele n
i
, dar acelasi exponent de criptare b = 3. Deci textele criptate
vor c
i
= m
3
(mod n
i
) i = 1, 2, 3. Oscar le intercepteaza si rezolva sistemul
x c
1
(mod n
1
), x c
2
(mod n
2
), x c
3
(mod n
3
)
folosind teorema chineza a resturilor, care asigura existent a unui x [0, n
1
n
2
n
3
).
Deoarece m
3
< n
1
n
2
n
3
, va rezulta ca x = m
3
. Deci Oscar va aa textul clar m
extragand radacina de ordinul 3 din soluta x.
In general, exponent i mici de criptare asigura o securitate redusa pentru mesajele mici
m: daca m < n
1/b
atunci textul clar poate dedus din textul criptat c = m
b
calculand
radacina de ordin b a lui c.
Folosirea unui modul comun de criptare de catre mai mult i utilizatori permite de
asemenea un atac usor. Sa presupunem ca Alice trimite acelasi mesaj m catre doi utiliza-
otri care au cheile publice b
1
, b
2
dar acelasi modul n. Deci
c
1
m
b
1
(mod n), c
2
m
b
2
(mod n).
Fara a micsora generalitatea, putem presupune ca cmmdc(b
1
, b
2
) = 1. Oscar va folosi
algoritmul lui Euclid pentru a determina numerele ntregi r, s astfel ca
r b
1
+ s b
2
= 1
Unul din numerele r, s este negativ; sa presupunem ca este r (pentru s negativ se pro-
cedeaza analog). Atunci Oscar obt ine textul clar m folosind egalitatea
(c
1
1
)
r
c
s
2
m (mod n)
11.6. ALTE SISTEME DE CRIPTARE
INRUDITE CU RSA 13
11.5.3 Atacuri ciclice
Fie c = m
b
(mod n) un text criptat si k un ntreg pozitiv astfel ca
c
b
k
c (mod n)
(un astfel de k exista totdeauna, deoarece criptarea RSA este de fapt o permutare n
spat iul Z
n
al textelor clare). Rezulta ca
c
b
k1
m (mod n)
Aceasta observat ie conduce la un atac ciclic: Oscar calculeaza c
b
i
(mod n) pentru i =
1, 2, . . . pana gaseste un k astfel ca c
b
k
c (mod n). Atunci va decripta c n c
b
k1
m (mod n).
Un atac ciclic generalizat consta n aarea celui mai mic ntreg pozitiv k astfel ca
cmmdc(c
b
k
c, n) > 1. Vom avea implicat ia
c
b
k
c (mod p), c
b
k
c (mod q) = k = p
si similar
c
b
k
c (mod p), c
b
k
c (mod q) = k = q
B
2
4
+ y
B
2
14 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Observat ia 11.3 Numerele prime n cu n 3 (mod 4) se numesc numere Blum.
Exista patru texte clare distincte care se pot criptan acelasi text. Sa detaliem aceasta
armat ie:
Fie una din cele patru radacini patrate modulo n ale unitat ii, si x Z
n
. Efectuam
calculele
e
K
_
_
x +
B
2
_
B
2
_
=
2
_
x +
B
2
_
2
_
B
2
_
2
= x
2
+ Bx = e
K
(x)
(calculele s-au realizat n Z
n
, iar mpart irea la 2 si 4 s-a facut prin nmult irea n Z
n
cu 2
1
respectiv 4
1
).
Cele patru texte clare care se cifreaza n e
K
(x) sunt
x, x B, (x + B/2) B/2 si (x + B/2) B/2,
unde este o radacina patrata netriviala a unitat ii modulo n.
Vericarea este imediata.
In general, Bob nu are nici un mijloc de a distinge care din cele patru mesaje este cel
corect, daca nu dispune de informat ii suplimentare.
Sa vedem cum se realizeaza decriptarea. Bob primeste mesajul criptat y si ncearca
sa sa determine x astfel ca x
2
+ Bx y (mod n).
Aceasta este o ecuat ie de gradul doi n x. Termenul de gradul 1 se poate elimina
folosind substitut ia x
1
= x + B/2 (sau echivalent x = x
1
B/2).
Se ajunge la ecuat ia
x
2
1
B
2
4
+ y (mod n).
Notand membrul drept cu C, aceasta ecuat ie se scrie x
2
1
C (mod n). Deci decriptarea
se reduce la extragerea radacinilor patrate modulo n. Aceasta echivaleaza cu rezolvarea
sistemului
x
2
1
C (mod p) x
2
1
C (mod q)
care, prin combinarea solut iilor ecarei ecuat ii va da patru radacini patrate mo-dulo n.
n
sunt de
cardinal patru, ecare ind de forma [r] = {r,
alr}.
In algoritmul anterior, doua valori
dintr-o clasa de echivalent a conduc la acelasi y. Sa consideram un x
1
calculat plecand de
la valoarea x returnata de oracolul A pentru un y dat. x
1
este un element din [r]. Daca
x
1
= r, algoritmul esueaza; daca x
1
=
a
(mod p).
Acest ntreg a daca exista este unic si se noteaza log
.
Exemplul 12.1 Fie p = 11 si = 6. Toate elementele din Z
11
pot exprimate ca puteri
ale lui :
a 0 1 2 3 4 5 6 7 8 9
6
a
(mod 11) 1 6 3 7 9 10 5 8 4 2
De aici rezulta imediat tabelul logaritmilor n baza 6:
1 2 3 4 5 6 7 8 9 10
log
6
0 9 2 8 6 1 3 7 4 5
Pentru = 3 nsa nu vom avea totdeauna solut ie. Deoarece
a 0 1 2 3 4 5 6 7 8 9
3
a
(mod 11) 1 3 9 5 4 1 3 9 5 4
valorile 2, 6, 7, 8, 10 nu pot exprimate ca logaritmi n baza 3. Altfel spus, ecuat ia
log
3
x = nu are solut ie n Z
11
pentru aceste valori ale lui b.
1
Implementari ale sistemului sunt cont inute n softuri pentru GNU Privacy Guard si PGP pentru a
lista cele mai cunoscute aplicat ii.
1
2 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
Observat ia 12.1 Pentru problema logaritmului discret, nu este obligatoriu ca p sa e
numar prim. Important este ca sa e radacina primitiva de ordinul p 1 a unitat ii:
i (0 < i < p 1),
i
, 1 (mod p). Teorema lui Fermat asigura
p1
1 (mod p).
La o alegere convenabila a lui p, problema este NP - completa. Pentru sigurant a, p
se alege de minim 512 bit i
2
iar p 1 sa aiba cel put in un divizor prim mare. Pentru un
astfel de modul p, spunem ca problema logaritmului discret este dicila n Z
p
. Utilitatea
acestei cerint e rezida n faptul ca, desi este foarte dicil de calculat un logaritm discret,
operat ia inversa de exponent iere este foarte simpla (dupa cum s-a vazut la sistemul
RSA).
Sistemul de criptare El Gamal este urmatorul:
Fie p numar prim pentru care problema logaritmului discret n Z
p
este dicila, si
Z
p
primitiv.
Fie T= Z
p
, (= Z
p
Z
p
si
/= (p, , a, )[
a
(mod p).
Valorile p, , sunt publice, iar a este secret.
Pentru K = (p, , a, ) si k Z
p1
aleator (secret) se deneste
e
K
(x, k) = (y
1
, y
2
)
unde y
1
=
k
(mod p), y
2
= x
k
(mod p).
Pentru y
1
, y
2
Z
p
se deneste
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
(mod p)
Vericarea este imediata:
y
2
(y
a
1
)
1
x
k
(
ka
)
1
x
k
(
k
)
1
x (mod p)
Sistemul este evident nedeterminist: criptarea depinde de x si de o valoare aleatoare
aleasa de Alice. Exista deci mai multe texte criptate corespunzatoare unui anumit text
clar.
Exemplul 12.2 Sa alegem p = 2579, = 2, a = 765. Prin calcul se obt ine =
2
765
(mod 2579) = 949.
Sa presupunem ca Alice vrea sa trimita mesajul x = 1299. Ea alege aleator k (sa
spunem k = 853) si calculeaza y
1
= 2
853
= 435, apoi y
2
= 1299 949
853
= 2396 (toate
calculele se fac modulo 2579).
Cand Bob primeste mesajul criptat y = (435, 2396), el va determina
x = 2396 (435
765
)
1
= 1299 (mod 2579).
2
Pentru o securitate pe termen lung se recomanda 1024 bit i ([3]).
12.2. CALCULUL LOGARITMULUI DISCRET 3
Observat ia 12.2
1. Un dezavantaj al sistemului El Gamal consta n dublarea lungimii textului criptat
(comparativ cu lungimea textului clar).
2. Daca (y
1
, y
2
), (z
1
, z
2
) sunt textele criptate ale mesajelor m
1
, m
2
atunci se poate
deduce imediat un text criptat pentru m
1
m
2
: (y
1
z
1
, y
2
z
2
). Similar poate dedusa o
criptare pentru 2m
1
(sau 2m
2
). Acest lucru face sistemul El Gamal sensibil la un atac cu
text clar ales.
3. Indicat ia ca pentru criptarea a doua texte diferite sa se foloseasca valori diferite ale
parametrului k este esent iala: astfel, sa prsupunem ca mesajele m
1
, m
2
au fost criptate n
(y
1
, y
2
) respectiv (z
1
, z
2
) folosind acelasi k. Atunci y
2
/z
2
= m
1
/m
2
si cunoasterea unuia
din mesaje n determina imediat pe celalalt.
12.2 Calculul logaritmului discret
In cele de mai jos presupunem ca p este numar prim, iar este o radacina primitiva de
ordinul p 1 a unitat ii. Aceste doua valori ind xate, problema logaritmului se poate
reformula astfel:
Fiind dat un Z
p
, sa se determine exponentul a Z
p1
astfel ca
a
(mod p).
Evident aceasta problema se poate rezolva printr-o cautare directa (se calculeaza puterile
lui ) n timp O(p) si folosind O(1) memorie. Pe de-alta parte, daca se calculeaza anterior
ntr-o tabela toate valorile (a,
a
mod p), aarea valorii cautate se poate face n O(1), dar
cu un spat iu de complexitate O(p).
Tot i algoritmii construit i pentru calculul logaritmului discret stabilesc un compromis
spat iu - timp.
12.2.1 Algoritmul Shanks
Fie m =
_
_
p 1
_
. Algoritmul Shanks este:
1. Se construieste lista L
1
= (j,
mj
(mod p)) [ 0 j m1;
2. Se construieste lista L
2
= (i,
i
(mod p)) [ 0 i m1;
3. Se determina perechile (j, y) L
1
, (i, y) L
2
(identice pe a doua pozit ie);
4. Se deneste log
= m j +i (mod (p 1))
De remarcat ca prin alegerea perechilor (j, y) L
1
, (i, y) L
2
vom avea
mj
= y =
i
, deci
mj+i
= .
Invers, pentru orice putem scrie log
i=1
q
c
i
i
.
12.2. CALCULUL LOGARITMULUI DISCRET 5
Daca s-ar putea calcula a (mod q
c
i
i
) pentru tot i i = 1, . . . , k, atunci folosind Teorema
chineza a resturilor s-ar putea determina a mod (p 1).
Sa presupunem deci ca q este un numar prim astfel ca p 1 0 (mod q
c
) si p 1 ,
0 (mod q
c+1
). Sa aratam cum se poate calcula atunci x a (mod q
c
) pentru orice
x, (0 x q
c
1).
Sa descompunem ntai x n baza q folosind egalitatea
x =
c1
i=0
a
i
q
i
0 a
i
q 1, 0 i c 1
Atunci, se poate scrie a = x +q
c
s pentru un anumit numar ntreg pozitiv s.
La primul pas trebuie calculat a
0
. Se porneste de la observat ia ca
(p1)/q
(p1)a
0
/q
(mod p).
Pentru a arata aceasta, deoarece
(p1)/q
(p1)(x+q
c
s)/q
(mod p), este sucient sa se
verice ca
(p1)(x+q
c
s)/q
(p1)a
0
/q
(mod p).
Aceasta relat ie este adevarata dacasi numai daca
(p 1)(x +q
c
s)
q
(p 1)a
0
q
(mod p 1),
ceea ce se poate verica prin calcul direct:
(p 1)(x +q
c
s)
q
(p 1)a
0
q
=
p 1
q
(x +q
c
s a
0
) =
p 1
q
_
c1
i=0
a
i
q
i
+q
c
s a
0
_
=
p 1
q
_
c1
i=1
a
i
q
i
+q
c
s
_
= (p 1)
_
c1
i=1
a
i
q
i1
+q
c1
s
_
0 (mod p 1).
Putem acum sa ncepem calculul lui
(p1)/q
(mod p). Daca
(p1)/q
1 (mod p),
atunci a
0
= 0. Altfel se calculeaza n Z
p
=
(p1)/q
,
2
, . . . pana se obt ine un numar
ntreg pozitiv i pentru care
i
(p1)/q
. Atunci a
0
= i.
Daca c = 1, algoritmul se termina; altfel, (c > 1), se cauta valoarea lui a
1
. Pentru
aceasta se deneste
1
=
a
0
si se noteaza x
1
= log
1
(mod q
c
).
Deoarece (evident) x
1
=
c1
i=1
a
i
q
i
, se va obt ine
(p1)/q
2
1
(p1)a
1
/q
(mod p).
Se calculeaza atunci
(p1)/q
2
1
(mod p) si se cauta i astfel ca
i
(p1)/q
2
1
(mod p).
Se ia a
1
= i.
Daca c = 2, s-a terminat; n caz contrar, se mai efectueaza c 2 pasi pentru deter-
minarea coecient ilor a
2
, . . . , a
c1
.
Formal, algoritmul Pohlig - Hellman este urmatorul:
6 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
1. Se calculeaza
i
=
(p1)i/q
(mod p), 0 i q 1;
2.
0
;
3. for j = 0 to c 1 do
3.1
(p1)/q
j+1
j
(mod p);
3.2. Se cauta i astfel ca =
i
;
3.3. a
j
i;
3.4.
j+1
j
a
j
q
j
mod p.
Reamintim, este o radacina primitiva de ordinul p a unitat ii, iar q este numar prim; n
plus, p 1 0 (mod q
c
), p 1 , 0 (mod q
c+1
).
Algoritmul calculeaza a
0
, a
1
, . . . , a
c1
unde log
(mod q
c
) =
c1
i=0
a
i
q
i
.
Exemplul 12.4 Fie p = 29. Avem n = p 1 = 28 = 2
2
7
1
.
Sa alegem = 2, = 18 si ne punem problema determinarii lui a = log
2
18. Pentru
aceasta se va calcula a (mod 4) si a (mod 7).
Sa ncepem cu q = 2, c = 2. Avem (toate calculele se efectueaza modulo 29):
0
= 1,
1
=
28/2
= 2
14
= 28, deci =
28/2
= 18
14
= 28, de unde rezulta a
0
= 1.
1
=
0
1
= 9,
28/4
1
= 9
7
= 28. Cum
1
= 28, rezulta a
1
= 1. Avem deci
a 3 (mod 4).
Sa consideram acum q = 7, c = 1. Vom avea (modulo 29):
28/7
= 18
4
= 25,
1
=
28/7
= 2
4
= 16, apoi
2
= 24,
3
= 7,
4
= 25, deci a
0
= 4
si a 4 (mod 7).
Se obt ine sistemul a 3 (mod 4), a 4 (mod 7), de unde folosind teorema chineza
a resturilor a 11 (mod 28). Deci, log
2
18 = 11 n Z
29
.
12.2.3 Algoritmul Pollard Rho
Fie p un numar prim si Z
p
un element de ordin n. Vom considera G
Z
p
subgrupul
ciclic generat de . Ne punem problema calcularii lui log
, unde G
este arbitrar.
Fie Z
p
= S
1
S
2
S
3
o partit ie a lui Z
p
n mult imi de cardinale aproximativ egale;
consideram funct ia
f : G
Z
n
Z
n
G
Z
n
Z
n
denita prin
f(x, a, b) =
_
_
(x, a, b + 1) daca x S
1
(x
2
, 2a, 2b) daca x S
2
(x, a + 1, b) daca x S
3
Pe baza acestei funct ii vom genera recursiv triplete (x, a, b) cu proprietatea x =
a
b
. Fie
(1, 0, 0) tripletul init ial (el are aceasta proprietate).
In continuare
(x
i
, a
i
, b
i
) =
_
(1, 0, 0) daca i = 0
f(x
i1
, a
i1
, b
i1
) daca i 1
12.2. CALCULUL LOGARITMULUI DISCRET 7
a
2i
b
2i
=
a
i
b
i
Notand c = log
a
2i
+cb
2i
=
a
i
+cb
i
Cum are ordinul n, rezulta
a
2i
+cb
2i
a
i
+cb
i
(mod n)
sau
c(b
2i
b
i
) a
i
a
2i
(mod n)
Daca cmmdc(b
2i
b
i
, n) = 1, atunci se poate obt ine c:
c =
a
i
a
2i
b
2i
b
i
(mod n)
Exemplul 12.5 Sa consideram p = 809 si = 89; ordinul lui n Z
809
este n = 101.
Se verica usor ca = 618 G
89
. Vom calcula log
89
618.
Sa presupunem ca alegem partit ia
S
1
= x [ x Z
809
, x 1 (mod 3)
S
2
= x [ x Z
809
, x 0 (mod 3)
S
3
= x [ x Z
809
, x 2 (mod 3)
Pentru i = 1, 2, 3, . . . obt inem urmatoarele triplete:
i (x
i
, a
i
, b
i
) (x
2i
, a
2i
, b
2i
)
1 (618, 0, 1) (76, 0, 2)
2 (76, 0, 2) (113, 0, 4)
3 (46, 0, 3) (488, 1, 5)
4 (113, 0, 4) (605, 4, 10)
5 (349, 1, 4) (422, 5, 11)
6 (488, 1, 5) (683, 7, 11)
7 (555, 2, 5) (451, 8, 12)
8 (605, 4, 10) (344, 9, 13)
9 (451, 5, 10) (112, 11, 13)
10 (422, 5, 11) (422, 11, 15)
Deci x
10
= x
20
= 422. Se poate calcula atunci
log
89
618 = (11 5) (11 15)
1
(mod 101) = 6 25 (mod 101) = 49
(n grupul multiplicativ Z
809
).
8 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
O formalizare a algoritmului Pollard Rho pentru calculul logaritmului discret
3
este:
Algoritm Pollard Rho(Z
p
, n, , )
1 Se deneste partit ia Z
p
= S
1
S
2
S
3
;
2. (x, a, b) f(1, 0, 0), (x
1
, a
1
, b
1
) f(x, a, b)
3. while x ,= x
1
do
3.1. (x, a, b) f(x, a, b);
3.2. (x
1
, a
1
, b
1
) f(x
1
, a
1
, b
1
), (x
1
, a
1
, b
1
) f(x
1
, a
1
, b
1
);
4. if cmmdc(b
1
b, n) > 1 then return(Esec)
else return((a a
1
) (b
1
b)
1
(mod n))
procedure f(x, a, b)
1. if x S
1
then f ( x, a, (b + 1) (mod n));
2. if x S
2
then f (x x, 2 a (mod n), 2 b (mod n));
3. if x S
3
then f ( x, (a + 1) (mod n), b);
4. return(f).
end procedure
In cazul cmmdc(b
1
b, n) = d > 1, congruent a c (b
1
b) a a
1
(mod n) are d solut ii
posibile. Daca d este destul de mic, aceste solut ii se pot aa si o simpla operat ie de
vericare gaseste solut ia corecta.
12.2.4 Metoda de calcul a indicelui
Aceasta metoda seamana cu unul din cei mai buni algoritmi de descompunere n factori.
Vom da doar o descriere informala a acestui algoritm.
Se foloseste o baza de divizori B compusa din B numere prime mici Prima etapa
consta n aarea logaritmilor elementelor din baza B.
x
j
p
a
ij
1
p
a
2j
2
. . . p
a
Bj
B
(mod p), 1 j C
Cu aceste C ecuat ii de necunoscute log
p
i
(1 i B) se ncearca aarea unei solut ii
unice modulo (p 1).
In caz de reusita, primul pas este ncheiat.
Problema ar cum sa se gaseasca aceste C congruent e. O metoda elementara consta
din trei pasi: alegerea aleatoare a unui x, calculul lui
x
(mod p) si vericarea daca acest
numar are tot i divizorii n B.
II: Acum se poate determina log
s
p
c
1
1
p
c
2
2
. . . p
c
B
B
(mod p)
care poate transformata n
log
+s c
1
log
p
1
+. . . +c
B
log
p
B
(mod p 1).
De aici - prin evaluarea membrului drept, se poate determina log
.
Exemplul 12.6 Fie p = 10007 si = 5 (element primitiv). Sa consideram
B= 2, 3, 5, 7 ca baza de divizori. Cum evident log
5
5 = 1, trebuiesc determinat i doar
trei logaritmi de baza.
Trei numere aleatoare norocoase pot 4063, 5136, 9865.
Pentru x = 4063 calculam 5
4063
(mod 10007) = 42 = 2 3 7, care conduce la congruent a
log
5
2 +log
5
3 +log
5
7 4063 (mod 10006).
In aceasta sect iune vom considera un tip de atac care ncearca sa determine valoarea unuia
sau mai multor bit i din reprezentarea binara a logaritmilor discret i.
Mai exact se ncearca calculul lui L
i
(): al i-lea bit (numarand de la cel mai put in
reprezentativ) din scrierea n binar a lui log
peste Z
p
; deci 1 i log
2
(p 1)|.
Armat ia 12.1 L
1
() poate calculat printr-un algoritm de complexitate polinomial a.
10 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
Demonstrat ie: Sa consideram funct ia f : Z
p
Z
p
denita
f(x) = x
2
(mod p)
Notam RP(p) mult imea resturilor patratice modulo p:
RP(p) = x [ y Z
p
, x y
2
(mod p)
Pe baza observat iilor
1. f(x) = f(p x),
2. x
2
y
2
(mod p) x = y (mod p)
rezulta card(RP(p)) = (p 1)/2 (deci exact jumatate din elementele lui Z
p
sunt resturi
patratice).
Sa presupunem acum ca Z
p
este primitiv. Deci
i
RP(p) pentru i par. Cum
(p 1)/2 astfel de puteri sunt distincte, rezulta
RP(p) =
_
2i
0 i
p 3
2
_
Deci este rest patratic daca si numai daca log
p1
2
1 (mod p)
fapt care poate testat cu un algoritm de compmexitate polinomiala. Deci putem da o
formula pentru calculul lui L
1
():
L
1
() =
_
0 daca
(p1)/2
1 (mod p)
1 altfel
2
Armat ia 12.2 Daca p 1 = 2
s
(2t + 1), atunci
1. Calculul lui L
i
() pentru 1 i s este usor.
2. Orice algoritm (sau oracol) care poate calcula L
s+1
() permite rezolvarea problemei
logaritmului discret n Z
p
.
Prima parte a armat iei este simpla.
Vom demonstra a doua parte pentru cazul s = 1. Deci vom arata ca daca p este prim
si p 3 (mod 4), atunci orice oracol care da L
2
() poate folosit la rezolvarea problemei
logaritmului discret n Z
p
.
Se stie (Prelegerea 11, algoritmul lui Rabin) ca daca este rest patratic n Z
p
si
p 3 (mod 4), atunci radacinile patrate ale lui modulo p sunt
(p+1)/4
(mod p).
Lema 12.2 Daca p 3 (mod 4) si ,= 0, atunci L
1
(p ) = 1 L
1
().
Demonstrat ia lemei: Fie
a
(mod p). Atunci
a+(p1)/2
(mod p). Deoarece
p 3 (mod 4), numarul (p 1)/2 este impar. Deci L
1
() ,= L
1
(p ). 2
12.3. SECURITATEALOGARITMILOR DISCRET I FAT
ADE INFORMAT II PART IALE11
Fie acum =
a
pentru un exponent par a, necunoscut. Atunci
(p+1)/4
a/2
(mod p)
Cum L
2
() = L
1
(
a/2
), valoarea L
2
() poate determina care din cele doua variante (cu
+ sau ) este corecta. Acest lucru este folosit de urmatorul algoritm care da valoarea
logaritmului discret log
j0
x
j
2
j
.
Exemplul 12.7 Fie p = 19, = 2, = 6. Deoarece numerele sunt foarte mici, se pot
determina usor valorile pentru L
1
si L
2
. Ele sunt adunate n tabelul
x L
1
(x) L
2
(x) x L
1
(x) L
2
(x) x L
1
(x) L
2
(x)
1 0 0 7 0 1 13 1 0
2 1 0 8 1 1 14 1 1
3 1 0 9 0 0 15 1 1
4 0 1 10 1 0 16 0 0
5 0 0 11 0 0 17 0 1
6 0 1 12 1 1 18 1 0
Pe baza acestor informat ii, aplicam algoritmul. Se obt ine:
x
0
0, 6, i 1;
x
1
L
2
(6) = 1, 5, L
1
(5) = 0 ,= x
1
, 14, 7, i 2;
x
2
L
2
(7) = 1, 11, L
1
(11) = 0 ,= x
2
, 8, 4, i 3;
x
3
L
2
(4) = 1, 17, L
1
(17) = 0 ,= x
3
, 2, 1, i 4.
return(1, 1, 1, 0).
Deci log
2
6 = 1110
2
= 14.
12 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
12.4 Generalizarea sistemului de criptare El Gamal
Sistemul de criptare El Gamal se poate construi pe orice grup (n loc de Z
n
) n care
problema logaritmului (denita corespunzator) este dicila.
Fie (G, ) un grup nit. Problema logaritmului discret se deneste n G astfel:
Fie G si H =
i
[ i 0 subgrupul generat de . Daca H, sa se determine
un a (unic) (0 a card(H) 1) cu
a
= , unde
a
= . . .
. .
a ori
Denirea sistemului de criptare El Gamal n subgrupul H n loc de Z
n
este usor de
realizat; anume:
Fie (G, ) un grup si G pentru care problema logaritmului discret n H =
i
[ i 0 este dicila.
Fie T= G, (= GG si /= (G, , a, )[ =
a
.
Valorile , sunt publice iar a este secret.
Pentru K = (G, , a, ) si un k Z
card(H)
aleator (secret), se deneste
e
K
(x, k) = (y
1
, y
2
) unde y
1
=
k
, y
2
= x
k
.
Pentru y = (y
1
, y
2
), decriptarea este
d
K
(y) = y
2
(y
a
1
)
1
.
De remarcat ca pentru criptare/decriptare nu este necesara cunoasterea ordinului card(H)
de marime al subgrupului; Alice poate alege aleator un k, (0 k card(G) 1) cu care
cele doua procese funct ioneaza fara probleme.
Se poate observa de asemenea ca G nu este neaparat abelian (H n schimb este, ind
ciclic).
Sa studiem acum problema logaritmului discret generalizat. Deoarece H este sub-
grup ciclic, orice versiune a problemei este echivalenta cu problema logaritmului dis-
cret ntr-un grup ciclic.
In schimb, se pare ca dicultatea problemei depinde mult de
reprezentarea grupului utilizat.
Astfel n grupul aditiv Z
n
, problema este simpla; aici exponent ierea
a
este de fapt
nmult irea cu a modulo n. Deci, problema logaritmului discret consta n aarea unui
numar ntreg a astfel ca
a (mod n).
Daca se alege astfel ca (, n) = 1 ( este generator al grupului), are un invers
multiplicativ modulo n, care se determina usor cu algoritmul lui Euclid. Atunci,
a = log
=
1
(mod n)
12.5. EXERCIT II 13
Sa vedem cum se reprezinta problema logaritmului discretn grupul multiplicativ Z
p
cu
p prim. Acest grup este ciclic de ordin p1, deci izomorf cu grupul aditiv Z
p1
. Deoarece
problema logaritmului discret n grupul aditiv se poate rezolva usor, apare ntrebarea daca
se poate rezolva aceasta problema n Z
p
reducand-o la Z
p1
.
Stim ca existaun izomorsm : Z
p
Z
p1
, deci pentru care
(xy mod p) = ((x) +(y)) (mod p 1)
In particular, (
a
mod p) = a() (mod p 1), adica
a
(mod p) a(a) () (mod p 1).
Acum, cautarea lui a se realizeaza cu log
= ()(())
1
(mod (p 1)).
Deci, daca se gaseste o metoda ecace pentru calculul izomorsmului , se obt ine
un algoritm ecace pentru calculul logaritmului discret n Z
p
. Problema este ca nu se
cunoaste nici o metoda generala de construct ie a lui pentru un numar prim p oarecare.
Desi se stie ca cele doua grupuri sunt izomorfe, nu exista nca un algoritm ecient pentru
construct ia explicita a unui izomorsm.
Aceasta metoda se poate aplica problemei logaritmului discret ntr-un grup nit ar-
bitrar. Implementarile au fost realizate n general pentru Z
p
, GF(2
p
) (unde problema
logaritmului discret este dicila) sau curbe eliptice.
12.5 Exercit ii
12.1 Implementat i algoritmul Shanks pentru aarea logaritmului discret. Aplicat ii pen-
tru aarea log
106
12375 n Z
24691
si log
6
248388 n Z
458009
.
12.2 Numarul p = 458009 este prim si = 2 are ordinul 57251 n Z
p
. Folosind algorit-
mul Pollard Rho, calculat i log
2
56851 n Z
p
. Luat i valoarea init iala x
0
= 1 si partit ia din
Exemplul 12.5.
12.3 Fie p un numar prim impar si k un numar pozitiv. Grupul multiplicativ Z
p
k
are
ordinul p
k1
(p 1) si este ciclic. Un generator al acestui grup este numit element
primitiv modulo p
k
.
(a) Daca este un element primitiv modulo p, aratat i ca cel put in unul din numerele
, +p este element primitiv modulo p
2
.
(b) Descriet i cum se poate poate verica ecient ca 3 este o radacina primitiva modulo
29 si modulo 29
2
. Aratat oi ntai ca daca este o radacina primitiva modulor p si modulo
p
2
, atunci ea este radacina primitiva modulo p
j
pentru orice j ntreg.
(c) Gasit i un ntreg care este radacina primitiva modulo 29 dar nu este radacina
primitiva modulo 29
2
.
(d) Folosit i algoritmul Pohlig - Hellman pentru a calcula log
3
3344 n Z
24389
.
14 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
12.4 Implementat i algoritmul Pohlig Hellman. Aplicat ie pentru log
5
8563 n Z
28703
si
log
10
12611 n Z
31153
.
12.5 Fie p = 227. Elementul = 2 este primitiv n Z
p
.
(a) Calculat i
32
,
40
,
59
si
156
modulo p si apoi factorizat i-le pentru baza de factori
2, 3, 5, 7, 11.
(b) Folosind faptul ca log
2
2 = 1, calculat i log
2
3, log
2
5, log
2
7, log
2
11 folosind factor-
izarea anterioara.
(c) Sa presupunem ca vrem sa calculam log
2
173.
Inmult im 173 cu valoarea aleatoare
2
177
(mod p). Factorizat i rezultatul peste baza de factori data mai sus si determinat
log
2
173.
12.6 Sa implementam sistemul El Gamal n GF(3
3
). Polinomul x
3
+ 2x
2
+ 1 este ire-
ductibil peste Z
3
[x] si deci GF(3
3
) = Z
[
x]/(x
3
+ 2x
2
+ 1). Asociem cele 26 luitere ale
alfabetului cu cele 26 elemente nenule ale corpului (ordonate lexicograc):
A 1 B 2 C x
D x + 1 E x + 2 F 2x
G 2x + 1 H 2x + 2 I x
2
J x
2
+ 1 K x
2
+ 2 L x
2
+x
M x
2
+x + 1 N x
2
+x + 2 O x
2
+ 2x
P x
2
+ 2x + 1 Q x
2
+ 2x + 2 R 2x
2
S 2x
2
+ 1 T 2x
2
+ 2 U 2x
2
+x
V 2x
2
+x + 1 W 2x
2
+x + 2 X 2x
2
+ 2x
Y 2x
2
+ 2x + 1 Z 2x
2
+ 2x + 2
Sa presupunem ca Bob foloseste = x si p = 11 ntr-un sistem de criptare El Gamal.
Apoi alege = x + 2. Decriptat i mesajul
(K, H) (P, X) (N, K) (H, R) (T, F) (V, Y ) (E, H) ((F, A) (T, W) (J, D) (U, J)
Bibliograe
[1] T. El Gamal, A public key cryptosystem and a signature scheme based on discrete
algorithms, IEEE Transactions on Information Theory, 31 (1985), 469-472
[2] J. Gibson, Discrete logarithm hash function that is collision free and one way. IEEE
Proceedings-E, 138 (1991), 407-410.
[3] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography
[4] D. Stinton; Cryptography, theory et pratice, Chapman & Hall/CRC, 2002
[5] A. Salomaa, Criptograe cu chei publice, ed. Militara, 1994
15
Prelegerea 13
Alte sisteme de criptare cu cheie
publica
13.1 Criptarea folosind curbe eliptice
Pentru nceput, sa denim not iunea de curba eliptica.
Denit ia 13.1 Fie p (p > 3) un numar prim. Curba eliptica y
2
= x
3
+ ax + b peste Z
p
este mult imea solut iilor (x, y) Z
p
Z
p
ecuat iei
y
2
x
3
+ ax + b (mod p) (1)
unde a, b Z
p
sunt constante astfel ca 4a
3
+ 27b
2
0 (mod p)
si dintr-un punct O numit punct la innit.
O curba eliptica E se poate structura ca un grup abelian nit. Legea de compozit ie
(notata aditiv) este denita astfel:
Fie P, Q E, P = (x
1
, y
1
), Q = (x
2
, y
2
).
Daca x
2
= x
1
, y
2
= y
1
, atunci P + Q = O; altfel, P + Q = (x
3
, y
3
) unde
x
3
=
2
x
1
x
2
, y
3
= (x
1
x
3
) y
1
,
iar
=
_
_
_
y
2
y
1
x
2
x
1
daca P = Q
3x
2
1
+a
2y
1
daca P = Q
Se mai deneste P +O= O+P = P, P E.
Vericarea proprietat ilor de grup este banala. Elementul neutru este O.
De remarcat ca inversa lui (x, y) (notata (x, y)) este (x, y).
Exemplul 13.1 Fie E curba eliptica y
2
= x
3
+ x + 5 peste Z
19
. Sa calculam la nceput
punctele lui E. Aceasta se face astfel: x Z
11
se calculeaza z = x
3
+ x + 5 (mod 19);
apoi se testeaza daca z este rest patratic.
1
2 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
In caz armativ, deoarece 19 3 (mod 4), exista o formula (Prelegerea 10) pe care o
vom aplica direct, obt inand radacinile patrate ale lui z :
z
(19+1)/4
(mod 19) = z
5
(mod 19).
Rezultatele sunt stranse n tabelele urmatoare (toate calculele se realizeaza modulo 19):
a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
a
2
0 1 4 9 16 6 17 11 7 5 5 7 11 17 6 16 9 4 1
x x
3
+ x + 5 y x x
3
+ x + 5 y x x
3
+ x + 5 y
0 5 9, 10 1 7 8, 11 2 15
3 16 4, 15 4 16 4, 15 5 2
6 18 7 13 8 12
9 2 10 8 11 17 6, 13
12 16 4, 15 13 11 7, 12 14 8
15 13 16 13 17 14
18 3
Curba eliptica E admite deci 15 puncte; cum ordinul grupului nu este numar prim,
grupul nu este ciclic. Vom alege un element primitiv drept generator. Fie acesta =
(0, 9). Calculam puterile lui (de fapt multiplii, grupul ind aditiv). Pentru 2 se
calculeaza ntai (modulo 19):
= (3 0
2
+ 1)(2 9)
1
= 1 18
1
= 18.
Acum se pot determina
x
3
= 18
2
0 0 = 361 1 (mod 19), y
3
= 18 (0 1) 9 = 27 11 (mod 19),
deci 2 = (1, 11).
Multiplul urmator este 3 = 2 + = (1, 11) + (0, 9). Avem:
= (9 11) (0 1)
1
= 2, deci
x
3
= 2
2
1 0 = 3, y
3
= 2 (1 3) 11 = 15 4 (mod 19),
de unde rezulta 3 = (3, 4).
p card(E) p + 1 + 2
p
13.1. CRIPTAREA FOLOSIND CURBE ELIPTICE 3
Calculul efectiv al lui card(E) este destul de dicil si vom trece peste el
1
. Exista
un algoritm al lui Schoof ([2], pag 137-140) de numarare a punctelor unei curbe eliptice,
dar complexitatea lui este destul de mare: O(log
6
p) (O(log
9
p) n versiunea originala)
nmult iri si inversiuni, si O(log
3
p) spat iu de memorie.
In plus implementarea sa este
destul de greoaie si nu a fost realizata complet pana n prezent.
Alta problema dicila consta n aarea unui subgrup ciclic al lui E n care problema
logaritmului discret sa e dicila. O informat ie utila este data de teorema urmatoare:
Teorema 13.1 (Teorema lui Ruck) Fie E o curba eliptica peste Z
p
cu p > 3 numar prim.
Atunci exista doua numere ntregi n
1
, n
2
astfel ca E sa e izomorfa cu Z
n
1
timesZ
n
2
, iar
n
2
|n
1
, n
2
|(p 1).
Demonstrat ia poate gasita n [2], pag. 107.
Pe spat iul curbelor eliptice se pot realiza diverse tehnici de criptare cu cheie pub-
lica; unele din ele sunt doar adaptari ale sistemelor deja prezentate, altele sunt aplicat ii
specice.
Principala atract ie a sistemelor construite pe curbe eliptice consta n dimensiuni mici
ale cheilor, ceea ce la face aplicabile pe sisteme portabile (smartcarduri de exemplu).
Exemplul 13.2 Sa vedem cum se realizeaza o criptare El Gamal pentru curba eliptica
denita n Exemplul 13.1.
Fie = (0, 9) si sa presupunem ca exponentul secret este a = 7. Atunci = 7 =
(12, 15), iar operat ia de criptare este:
e
K
(x, k) = (k (0, 9), x + k (12, 15)), unde x E, 0 k 14.
Pentru decriptare se foloseste operat ia
d
K
(y
1
, y
2
) = y
2
7y
1
Sa presupunem ca Alice vrea sa cripteze mesajul x = (3, 4) (care este un punct din
E); daca ea alege aleator valoarea k = 8, va calcula
y
1
= 8 (0, 9) = (12, 4), si
y
2
= (3, 4) + 8 (12, 15) = (3, 4) + (4, 15) = 3 + 8 7 = 3 + 11 = 14 = (0, 10)
(coecient ii se calculeaza modulo 15).
Deci y = ((12, 4), (0, 10)). Dupa recept ie, Bob decripteaza mesajul astfel:
x = (0, 10) 7 (12, 4) = 14 7 8 = 3.
1
Nu se cunoaste nici o formula care sa dea valoarea card(E); exista o conjectura Birch and Swinnerton-
Dyer n legatura cu acest subiect, conjectura inclusa printre cele sapte probleme ale mileniului (mpreuna
cu problema P versus NP).
4 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
A
13.1.1 Criptarea Menezes - Vanstone
In acest sistem de criptare de fapt o varianta a lui El Gamal curba eliptica este
utilizata pentru mascare, domeniile de valori al textelor clare si criptate ind mult mai
larg. Prezentarea algoritmului este:
Fie E o curba eliptica peste Z
p
(p > 3 prim) care cont ine un subgrup ciclic H n
care problema logaritmului discret este dicila.
Alegem P= Z
p
Z
p
, C= E Z
p
Z
p
si
K= {(E, , a, )| E, a Z
p
, = a}.
Valorile , sunt publice, iar a este secret.
Pentru K = (E, , a, ), k Z
card(H)
ales aleator (secret) si x = (x
1
, x
2
) P,
denim
e
K
(x, k) = (y
0
, y
1
, y
2
),
unde y
0
= k , (c
1
, c
2
) = k , y
i
= c
i
x
i
(mod p), i = 1, 2.
Pentru un text criptat y = (y
0
, y
1
, y
2
) se deneste
d
K
(y) = (y
1
c
1
1
(mod p), y
2
c
1
2
(mod p)),
unde a y
0
= (c
1
, c
2
).
Exemplul 13.3 Revenind la curba y
2
= x
3
+ x + 5 peste Z
19
denita n Exemplul 13.1,
criptarea Menezes - Vanstone autorizeaza 18 18 = 324 texte clare, fat a de numai 15 n
sistemul El Gamal adaptat.
Sa luam din nou = (0, 9) si exponentul a = 7. Atunci = 7 = (12, 15).
Daca Alice doreste sa transmita textul clar x = (x
1
, x
2
) = (5, 11) (de remarcat ca
acesta nu este un punct din E) si alege k = 4, ea va ncepe prin a calcula
y
0
= k = 4 (2, 7) = (4, 4)sik = 4(12, 15) = (1, 8)
deci c
1
= 1, c
2
= 8.
Apoi se calculeaza (modulo 19):
y
1
= c
1
x
1
= 1 5 = 5 si y
2
= c
2
x
2
= 8 11 = 12.
Alice trimite deci lui Bob mesajul criptat y = (y
0
, y
1
, y
2
) = ((4, 4), 5, 12).
Dupa recept ie, Bob calculeaza (c
1
, c
2
) = a y
0
= 7 (4, 4) = 7 4 = 13 = (1, 8), apoi
x = (y
1
c
1
1
(mod 19), y
2
c
1
2
(mod 19)) = (5 1
1
, 12 8
1
) = (5, 12 12) = (5, 11).
13.2. SISTEMUL DE CRIPTARE WILLIAMS 5
13.2 Sistemul de criptare Williams
Acest sistem de criptare este bazat pe exponent ieri n corpuri patratice, avand multe
asemanari cu sistemele RSA si El Gamal. Se pare ca el are toate avantajele sistemului
RSA; oricum, se poate demonstra ca orice ncercare de spargere a sistemului prin pre-
lucrarea mesajelor criptate conduce la o operat ie de factorizare a modulului. Modul de
criptare si decriptare sunt la fel de rapide ca la RSA.
Sa abordam ntai baza matematica a sistemului de criptare Williams.
Fie c Z un numar ntreg xat, ne-patrat perfect. Consideram mult imea
{x = a + b
c|a, b Z, a
2
cb
2
= 1}.
Numerele x pot privite si ca perechi (a, b), pe baza carora aceasta mult ime se poate
structura algebric ca inel, folosind operat iile
(a
1
, b
1
) + (a
2
, b
2
) = (a
1
+ a
2
, b
1
+ b
2
)
(a
1
, b
1
)(a
2
, b
2
) = (a
1
a
2
+ cb
1
b
2
, a
1
b
2
+ a
2
b
1
).
Notam x = a b
c conjugatul lui x.
Pentru i = 0, 1, 2, . . . se denesc funct iile X
i
(x), Y
i
(x) astfel:
X
i
(x) = X
i
((a, b)) =
x
i
+ x
i
2
Y
i
(x) = Y
i
((a, b)) = b
x
i
x
i
x x
=
x
i
x
i
2
c
De aici se pot scoate relat iile
x
i
= X
i
(x) + Y
i
(x)
c, x
i
= X
i
(x) Y
i
(x)
c.
Evident, X
i
(x) si Y
i
(x) sunt numere ntregi; n continuare vom scrie aceste numere fara a
mai preciza si argumentul x, decat daca este necesar.
Din condit ia a
2
cb
2
= 1 rezultaxx = 1, X
2
i
cY
2
i
= 1.
Lema 13.1 Au loc relat iile:
X
i+j
= X
i
X
j
+ cY
i
Y
j
, Y
i+j
= Y
i
X
j
+ X
i
Y
j
, i, j N
X
i+j
= 2X
i
X
j
X
ji
, Y
i+j
= 2X
i
Y
j
Y
ji
, i, j, i j.
Demonstrat ie: Este lasata ca exercit iu.
Din lema 13.1 se deduc formulele recursive de calcul
X
2i
= X
2
i
+ cY
2
i
= 2X
2
i
1, Y
2i
= 2X
i
Y
i
,
X
2i+1
= 2X
i
X
i+1
X
1
, Y
2i+1
= 2X
i
Y
i+1
Y
1
.
6 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
A
Acestea conduc la o evaluare rapida a valorilor X
i
si Y
i
.
Deoarece X
0
= 1, X
1
= a, rezulta ca X
i
nu depinde de b.
Relat iile astfel denite se pot extinde n mod natural la congruent e modulo un numar
natural nenul n:
a
1
+ b
1
c a
2
+ b
2
c a
1
a
2
(mod n) si b
1
b
2
(mod n)
Folosind si a
2
cb
2
1 (mod n) n loc de a
2
cb
2
= 1, relat iile de sus raman adevarate.
Lema 13.2 Se dau numerele:
n = pq cu p, q numere prime mari;
a, b, c care verica congruent a a
2
cb
2
1 (mod n) (2)
Simbolurile Legendre
p
=
_
c
p
_
,
q
=
_
c
q
_
care verica relat iile
i
i (mod 4) pentru i = p, q.
Presupunem vericate condit iile (b c, n) = 1 si simbolul Jacobi
_
2(a+1)
n
_
= 1.
Notam m =
(p
p
)(q
q
)
4
.
Fie d, e doua numere astfel ncat d e
m + 1
2
(mod m).
c.
Demonstrat ie: Se realizeaza prin calcul direct.
Pe baza acestei leme se pot stabili metode de criptare si decriptare similare celor din
RSA.
Saconstruim acumn detaliu sistemul de criptare Williams. Prezentarea va consta din
patru part i: descrierea sistemului, criptarea, decriptarea si criptanaliza.
A (Prezentarea):
In prima faza se aleg doua numere prime mari p, q si se calculeaza
n = pq.
Se alege apoi un numar c astfel ca simbolurile Legendre
p
si
q
sa verice condit iile
din Lema 13.2 (c se poate obt ine foarte rapid deoarece cam un numar din patru satisface
congruent ele cerute).
Se determina apoi un numar s astfel ncat simbolul Jacobi sa verice
_
s
2
c
n
_
= 1 si (s, n) = 1
m este dat ca n Lema 13.2; se aleg apoi d cu (d, m) = 1 si e care sa satisfaca
congruent ele cerute.
Numerele n, c, e, s sunt publice iar p, q, m, d sunt secrete.
13.2. SISTEMUL DE CRIPTARE WILLIAMS 7
Exemplul 13.4 Sa alegem p = 11, q = 13, deci n = 143. Pentru ca
_
5
11
_
= 1 11 si
_
5
13
_
= 1 13 (ambele modulo 4), putem alege c = 5.
De asemenea se poate lua s = 2 pentru ca
_
s
2
c
n
_
=
_
1
11
__
1
13
_
= 1 1 = 1.
Se obt ine m = 10 14/4 = 35. Pentru ca 23 16 18 (mod 35), se pot folosi drept
exponent i de criptare/decriptare e = 23 respectiv d = 16.
B (Criptarea): Textele clare sunt numere w (0 < w < n).
In prima etapa w este codicat
ca un num ar x (metoda este prezentata mai jos); criptarea va x
e
(mod n).
Codicarea: Notam
b
1
= 0, = w +
c sau
b
1
= 1, = (w +
c)(s +
c)
dupa cum simbolul Jacobi
_
w
2
c
n
_
are valoarea +1 sau respectiv 1. Cazul cand
el este 0 trebuie evitat.
Ambele variante conduc la
_
n
_
= 1; relat ia este evidenta n primul caz, rezulta prin
calcul din alegerea lui s n cazul al doilea.
In nal, se noteazax =
.
Scrierea lui x sub forma a +b
=
w +
c
w
c
=
w
2
+ c
w
2
c
+
2w
w
2
c
c (mod n)
pentru b
1
= 1 : x =
=
(w +
c)(s +
c)
(w
c)(s
c)
=
=
(w
2
+ c)(s
2
+ c) + 4scw
(w
2
c)(s
2
c)
+
2s(w
2
+ c) + 2w(s
2
+ c)
(w
2
c)(s
2
c)
c (mod n).
Denit ia lui x asigura n ambele situat ii relat ia xx = a
2
cb
2
1 (mod n).
Mai avem 2(a + 1) = 2
_
x + x
2
+ 1
_
=
+ 2 =
( + )
2
(mod n),
ceea ce duce la simbolul Jacobi
_
2(a + 1)
n
_
= 1, cum se cere n Lema 13.2.
Dupa codicarea textului clar w ca x = a+b
A
Deoarece ecarui text criptat i corespund patru texte clare distincte, bit ii b
1
si b
2
asigura unicitatea decriptarii.
Exemplul 13.5 Revenind la Exemplul 13.4, sa consideram textul clar w = 21. Deoarece
_
21
2
5
143
_
=
_
7
11
__
7
13
_
= (1)(1) = 1, avem b
1
= 0, deci = 21 +
5 si x =
21 +
5
21
5
=
446 + 42
5
436
=
17 + 42
5
7
= 41(17 + 42
5) = 125 + 6
5 (mod 143).
Deci a = 125, b = 6. Deoarece a este impar, rezulta b
2
= 1.
Vom calcula recursiv pe X
23
si Y
23
:
X
1
= 125 Y
1
= 6 X
2
= 75 Y
2
= 70 X
3
= 35 Y
3
= 48
X
5
= 120 Y
5
= 44 X
6
= 18 Y
6
= 71 X
11
= 48 Y
11
= 17
X
12
= 75 Y
12
= 125 X
23
= 68 Y
23
= 125
Obt inem acum E = 68 125
1
= 68 135 = 28 (mod 143).
Deci textul criptat este tripletul (28, 0, 1).
C Decriptarea: Folosind prima componentaE a textului criptat, destinatarul poate deter-
mina num arul x
2e
:
x
2e
=
x
2e
(xx)
e
=
x
e
x
e
=
X
e
+ Y
e
c
X
e
Y
e
c
=
E +
c
E
c
=
E
2
+ c
E
2
c
+
2E
E
2
c
c (mod n)
De remarcat ca acest calcul poate facut si de un criptanalist, n eventualitatea
interceptarii textului criptat.
Totusi, informat ia secreta este necesara pentru calculul ulterior:
x
2ed
= X
2ed
(x) + Y
2ed
(x)
c = X
d
(x
2e
) + Y
d
(x
2e
)
c,
unde valorile lui X
d
si Y
d
se pot calcula recursiv pe baza lui x
2e
, determinat anterior.
Cum toate ipotezele Lemei 13.2 sunt satisfacute, vom avea x
2ed
= x (mod n). Ultima
componenta b
2
a textului criptat da semnul corect al lui x.
Deci x se poate determina, iar textul clar w se obt ine din x si b
1
(a doua componenta
a textului criptat) n felul urmator:
Fie x
=
_
x daca b
1
= 0
x
s
c
s+
c
daca b
1
= 1
Atunci x
=
w +
c
w
c
(mod n), ceea ce duce la w =
x
+ 1
x
c (mod n).
Exemplul 13.6
In condit iile din Exemplul 13.4, sa decriptam mesajul (28, 0, 1). Folosim
E pentru a calcula n prima faza
x
2e
=
28
2
+ 5
28
2
5
+
2 28
28
2
5
5 = 95 + 126
5 (mod 143).
Reamintim, d = 16; deci vom calcula (modulo 143)
13.2. SISTEMUL DE CRIPTARE WILLIAMS 9
X
1
(x
2e
) = 95 Y
1
(x
2e
) = 126 X
2
(x
2e
) = 31 Y
2
(x
2e
) = 59
X
4
(x
2e
) = 62 Y
4
(x
2e
) = 83 X
8
(x
2e
) = 108 Y
8
(x
2e
) = 139
X
16
(x
2e
) = 18 Y
16
(x
2e
) = 137
S-a obt inut 18 + 137
5) = 125 + 6
5 (mod 143).
Cum b
1
= 0, avem x
= x si deci
w =
126 + 6
5
124 + 6
5 =
(126 + 6
5)(124 6
5)
124
2
5 6
2
5 = 83 38
1
= 21 (mod 143)
Deci textul clar original a fost w = 21.
Lucrand detaliat, se pare ca sistemul de criptare Williams este mai dicil decat RSA.
Totusi ordinele de complexitate ale criptarii si decriptarii sunt egale n celel doua sisteme.
D Criptanaliza: Daca s-au aat p si q, m si d se pot calcula imediat. Invers, sa
presupunem ca criptanalistul a gasit ntr-un mod oarecare un algoritm de decriptare.
Atunci el poate folosi acest algoritm la descompunerea lui n astfel.
5. Atunci = / = 73 + 71
5.
Deoarece 73 este impar, se obt ine b
2
= 1. Pentru criptare se calculeaza iterativ (modulo
143):
X
1
() = 73 Y
1
() = 71 X
2
() = 75 Y
2
() = 70
X
3
() = 9 Y
3
() = 139 X
5
() = 133 Y
5
() = 44
X
6
() = 18 Y
6
() = 71 X
11
() = 139 Y
11
() = 82
X
12
() = 75 Y
12
() = 125 X
23
() = 42 Y
23
() = 73
Deducem ca E = 42 73
1
= 28 (mod 143), deci textul criptat este (28, 0, 1).
Acesta a fost nsa criptat anterior n w = 21. Se obt ine imediat factorizarea lui n
deoarece (x w, n) = (117, 143) = 13.
Deci, sistemul Williams nu rezista la un atac cu text clar ales.
10 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
A
13.3 Sistemul de criptare McEliece
Sistemul de criptare McEliece propus n 1978 este destul de apropiat de problema
rucsacului. El utilizeaza drept cadru teoria codurilor liniare (pentru detalii vezi [1]); aici,
n general decodicarea unui cod liniar binar corector de erori este o problema NP - com-
pleta. Pentru unele clase de coduri sunt construit i algoritmi de decodicare polinomiali;
o astfel de clasa o formeaza codurile Goppa, care constituie baza sistemului de criptare
McEliece.
Denit ia 13.2 Fie k, n N(k n). Un (n, k) - cod liniar binar este un subspat iu liniar
C Z
n
2
de dimensiune k.
O matrice generatoare a lui C este o matrice binara k n ale carei linii formeaza o
baza a lui C.
Pentru a Z
n
2
se deneste ponderea w(a) = numarul de elemente nenule din a.
Pentru a, b Z
n
2
a = (a
1
, . . . , a
n
), b = (b
1
, . . . , b
n
), se deneste distant a Hamming
prin d(a, b) = w(a b).
Pentru un (n, k) - cod liniar binar C, distant a minima este
d
C
= min{d(a, b)|a, b C, a = b}
Un (n, k, d) - cod este un (n, k) - cod de distant a minima d.
Rolul unui cod corector de erori este de a corija modicari aleatoare care apar n trans-
miterea unui set de date (binare) printr-un canal.
In linii mari, acesta funct ioneaza astfel:
daca a este un mesaj de informat ie de k bit i, Alice l codica ntr-un cuvant de n bit i
b = aG, unde G este matricea generatoare a codului.
Bob primeste un mesaj r Z
n
2
(eventual r = b) si cauta un cuvant b
1
C cu d(r, b
1
)
minima posibil. Va decodica r n b
1
dupa care va calcula un mesaj de informat ie a
1
astfel ca b
1
= a
1
G. Cazul ideal este acela cand b
1
= b, a
1
= a (adica erorile au fost
acoperite corect). Se cunoaste ca, daca numarul de erori care apar nu depaseste (d1)/2,
acest procedeu corecteaza efectiv erorile.
Daca Bob cauta cuvantul - cod cel mai apropiat comparand r pe rand cu ecare element
din C, cum sunt 2
k
astfel de cuvinte, algoritmul va exponent ial, deci nefunct ional.
Majoritatea algoritmilor de decodicare se bazeaza pe not iunea de sindrom, denit
astfel:
Matricea de control a unui (n, k, d) - cod liniar binar de matrice generatoare G este o
matrice H de dimensiune (n k) n ale carei linii formeaza o baza a unui spat iu liniar
ortogonal. Evident, GH
T
= 0.
Pentru un cuvant r Z
n
2
, se numeste sindrom secvent a de n k bit i denita Hr
T
.
Teorema 13.2 a este un cuvant - cod daca si numai daca Ha
T
= 0.
In plus, daca a C, e Z
n
2
si r = a +e, atunci Hr
T
= He
T
.
13.3. SISTEMUL DE CRIPTARE MCELIECE 11
Pentru demonstrat ie se poate consulta de asemenea [1].
e poate considerat drept vectorul de erori care au aparut n transmiterea mesajului
a. Teorema anterioara arma ca sindromul nu depinde decat de erori, nu de cuvantul -
cod transmis.
Aceasta observat ie sugereaza o metoda de decodicare bazata pe sindrom. Se cal-
culeaza ntai s = Hr
T
. Daca s = 0, decodicarea lui r este tot r. Altfel, se ncearca toate
cuvintele de pondere 1. Pentru ecare astfel de cuvant e se calculeaza He
T
. Daca s-a
gasit un e cu He
T
= s, r se decodica n r e.
In caz contrar se ncearca vectorii de
pondere 2, 3, . . . , [(d 1)/2]. Daca nu s-a gasit nici un cuvant e cu He
T
= s, se deduce
ca au aparut mai mult de [(d 1)/2] erori n cursul transmisiei.
Metoda prezentata funct ioneaza pentru toate codurile liniare. Pentru anumite clase
speciale de coduri exista algoritmi polinomiali de decodicare si corectare a erorilor; n
cazul general nsa problema este NP - completa.
Algoritmul de criptare McElliece se bazeaza pe aceasta idee. Trapa sa secreta o consti-
tuie o clasa de coduri pentru care exista algoritmi ecace de decodicare - codurile Goppa.
In plus, exista un numar mare de coduri Goppa neechivalente, avand aceiasi parametri.
Algoritmul de criptare McEliece este urmatorul:
Fie G matricea generatoare a unui (n, k, d) - cod Goppa cu n = 2
m
, d = 2t +1, k =
n mt.
Se denesc S o matrice inversabila k k peste Z
2
si P o matrice de permutare nn
(matrice n care pe ecare linie si coloana exista o valoare 1, iar restul elementelor
sunt 0).
Fie P= Z
k
2
, C= Z
n
2
, K= {(G, S, P, G
) | G
= S G P}.
G
) se deneste
e
K
(a, e) = aG
+e
unde e Z
n
2
este un cuvant aleator
2
de pondere t.
Bob decripteaza un mesaj b Z
n
2
astfel:
1. Calculeaza b
1
= bP
1
;
2. Decodica b
1
obt inand b
1
= a
1
+e
1
unde a
1
C;
3. Calculeaza a
0
Z
k
2
astfel ca a
0
G = a
1
;
4. Calculeaza a = a
0
S
1
.
Corectitudinea algoritmului de decriptare:
Deoarece b
1
= bP
1
= (aG
+e) P
1
= (aS G P +e) P
1
= (aS) G +eP
1
iar eP
1
este un vector de pondere cel mult t, algoritmul de decodicare al codului de
matrice generatoare G poate decodica corect pe b
1
si obt ine un mesaj sursa a
0
= aS.
La ultimul pas se aa mesajul init ial a = a
0
S
1
.
12 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
A
Nu vom intra n detalii privind denit ia codurilor Goppa ([1]). Acestea pot privite
nsa drept coduri liniare cu parametrii n = 2
m
, d = 2t + 1, k = n mt. Pentru o
implementare practica referitor la criptare, McEliece sugereaza m = 10, t = 50, ceea ce
corespunde unui (1024, 524, 101) - cod Goppa
3
. Un text clar este o secventa de 524 bit i,
iar un text criptat este o secventa de 1024 bit i. Cheia publica este o matrice binara de
dimensiuni 524 1024.
Exemplul 13.8 Vom exemplica algoritmul pe un (8, 2, 5) - cod Goppa (deci n = 2
3
, k =
2, d = 5). Acest cod - extrem de mic (are doar 4 cuvinte) este generat de matricea
G =
_
0 0 1 1 1 1 1 1
1 1 0 0 1 0 1 1
_
Sa presupunem ca Bob alege matricile
S =
_
1 0
1 1
_
cu S
1
=
_
1 0
1 1
_
si
P =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
cu P
1
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Matricea publica generata este deci
G
= SGP =
_
1 0 1 0 1 1 1 1
1 1 0 1 0 1 1 0
_
Sa presupunem ca Alice vrea sa cripteze textul clar a = (0, 1) folosind vectorul - eroare
e = (0, 0, 1, 0, 0, 1, 0, 0) (ales aleator) de pondere 2. Textul criptat este
b = aG
+e = (1, 1, 1, 1, 0, 0, 1, 0).
Dupa recept ionarea mesajului, Bob calculeaza ntai
b
1
= bP
1
= (1, 1, 1, 1, 1, 0, 0, 0),
pe care l scrie sub forma a
1
+e
1
unde a
1
= (1, 1, 1, 1, 0, 1, 0, 0) este un cuvant - cod,
iar e
1
= (0, 0, 0, 0, 1, 1, 0, 0) = e (din cauza nmult irii cu P
1
).
Bob calculeaza apoi mesajul a
0
= (1, 1), singurul cu proprietatea a
0
G = a
1
.
Ultimul pas este determinarea lui a = S
1
a
0
= (0, 1), care este textul clar expediat de
Alice.
3
O analiza a securitat ii recomanda parametrii n = 1024, t = 38, k 644.
13.4. EXERCIT II 13
Algoritmul McElliece s-a dovedit sigur. Acest lucru rezulta din analiza celor doua
tipuri de atac posibile:
1. Din informat ia publica, Oscar ncearca sa ae matricea G sau o matrice G
1
a unui
cod Goppa echivalent (avand aceeasi parametri). Nu se cunoast e nici un algoritm
ecient pentru un astfel de demers.
2. Oscar ncearca sa ae mesajul clar a direct din textul criptat b. El ia aleator k
coloane din matricea publica G
. Notand G
k
, b
k
, e
k
restrict iile lui G
, b respectiv e
la aceste k coloane, vom avea aG
k
= b
k
+ e
k
. Daca b
k
= 0 si G
k
este nesingulara,
atunci a poate aat rezolvand sistemul liniar aG
k
= b
k
. Probabilitatea ca cei k
bit i selectat i sa nu faca parte din eroare (deci e
k
= bf0 este C
k
nt
/C
k
n
, neglijabila
pentru valorile alese ale parametrior n, k, t.
Interesant, dar aceasta securitate este mult diminuata daca se folosest e alta clasa de coduri
liniare n locul codurilor Goppa.
Totusi, n ciuda securitat ii sale si a vitezei relativ mari de criptare/decriptare sistemul
McElliece nu este folosit practic. Cauza principala o constituie cheia sa excesiv de mare.
De exemplu, pentru n = 1024, t = 38, k 644, cheia are aproximativ 2
19
bit i.
13.4 Exercit ii
13.1 Fie E curba eliptica y
2
= x
3
+ x + 28 peste Z
71
.
1. Determinat i numarul de puncte din E;
2. Aratat i caE nu este ciclic;
3. Care este ordinul maxim al unui element din E ? Gasit i un astfel de element.
13.2 Fie E curba eliptica y
2
= x
3
+x +13 denitape Z
31
. Se poate arata ca |E| = 34 si
ca (9, 10) este de ordinul 34 n E. Sistemul de criptare Mezenes - Vanstome denit pe E
admite ca spat iu al textelor clare Z
34
Z
34
. Fie a = 25 exponentul secret al lui Bob.
1. Calculat i = a;
2. Decriptat i textul urmator:
((4, 9), 28, 7)((19, 28), 9, 13)((5, 22), 20, 17)((25, 16), 12, 27)
3. Daca presupunem ca ecare text clar reprezinta doua caractere alfabetice, convertit i
acest text clar n engleza (s-a folosit corespondent a A 1, . . . , Z 26).
14 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC
A
13.3 Fie E curba eliptica y
2
= x
3
+ x + 6 peste Z
11
.
(a) Sa se calculeze punctele lui E.
(b) Se aleg parametrii = (2, 7) si a = 7. Folosind sistemul de criptare El Gamal, sa
se cripteze mesajul x = (10, 9) cu valoarea aleatoare k = 3.
(c) Folosind sistemul de criptare Menezes - Vanstone si aceiasi parametrii, sa se
cripteze mesajul x = (9, 1).
13.4 Demonstrat i Lemele 13.1 si 13.2.
13.5 Fie curba eliptica E de ecuat ie y
2
= x
3
+ x + 28 peste Z
71
.
(a) Sa se determine numarul de puncte din E.
(b) Care este ordiunul maxim al unui element din E ? Sa se gaseasca un element de
acest ordin.
13.6 Fie p > 3 un numar prim impar si a, b Z
p
. Daca ecuat ia x
3
+ax+b 0 (mod p)
are trei radacini distincte n Z
p
, aratat i ca grupul curbei eliptice corespunzatoare (E, +)
nu este ciclic.
13.7 Fie E o curba eliptica denita peste Z
p
unde p > 3 este un numar prim. Sa
presupunem ca n = card(E) este prim si e P E, P = O.
(a) Ar atat i ca log
P
(P) = n 1.
(b) Dat i un algoritm de calcul pentru n de complexitate O(p
1/4
) folosind teorema lui
Hasse si o varianta a algoritmului Shanks.
13.8 O reprezentare binara (a
n1
, a
n2
, . . . , a
0
) a numarului ntreg a este n forma ne-
adiacenta (forma NAF) daca nu exista doua valori consecutive nenule.
(a) Dat i un algoritm de reprezentare a numerelor ntregi n forma NAF. Aplicat i
acest algoritm pentru numerele 87, 112, 2047.
(b) Folosind reprezentarea NAF a lui 87, calculat i 87P, unde P = (2, 6) este un punct
pe curba eliptica y
2
= x
3
+ x + 26 denita peste Z
27
.
Bibliograe
[1] A. Atanasiu, Teoria Codurilor, Editura Universitat ii Bucuresti, 2002
[2] A. Enge, Elliptic Curves and their applications to Cryptography, Kluwer Academic
Publ, 1999
[3] M. Rosing, Implementing Elliptic Curve Cryptography, Manning, 1998
[4] D. Stinton, Cryptography, theory and pratice, International Thompson Publishing
France, 1995
[5] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1994
[6] H.C.Williams, Some public-key criptofunctions as intractable as factorisation, Cryp-
tologia, 9 (1985), 224-237.
15
Prelegerea 1
Codicare si decodicare
1.1 Codicare
Denit ia 1.1 Fiind date mult imile A (alfabetul sursa) si B (alfabetul cod), o co-
dicare este o aplicat ie injectiva K : A B
.
Elementele mult imii K(A) B
: A
(a) = K
(a)K
(), a A, A
.
Denit ia 1.3 Codicarea K este unic decodabila daca K
este injectiva.
Codicarea data n Exemplul 1.1 este - dupa cum s-a observat - unic decodabila.
Acest lucru nu este totdeauna posibil. Daca luam de exemplu codicarea
K(a) = 00, K(b) = 10, K(c) = 101, K(d) = 110, K(e) = 1001,
ea nu este unic decodabila; astfel K
(bd) = K
(cb) = 101110 .
Denit ia 1.4 1. O codicare K : A B
In mod similar, prin gruparea a cate patru simboluri binare se obt ine codul hexa-
zecimal.
Un cod foarte important folosit n reprezentarea standard a simbolurilor alfa-
betice si numerice este codul ASCII (American Standard Code for Information
Interchange) - Tabelul 1.3.
4 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
Tabelul 1.3: Codul ASCII (7 bit i de informat ie)
Simbol Cod Simbol Cod Simbol Cod Simbol Cod
sursa sursa sursa sursa
@ 1(00)
8
1(40)
8
NUL 0(00)
8
SP 0(40)
8
A 1(01)
8
a 1(41)
8
SOH 0(01)
8
! 0(41)
8
B 1(02)
8
b 1(42)
8
STX 0(02)
8
0(42)
8
C 1(03)
8
c 1(43)
8
ETX 0(03)
8
# 0(43)
8
D 1(04)
8
d 1(44)
8
EOT 0(04)
8
$ 0(44)
8
E 1(05)
8
e 1(45)
8
ENQ 0(05)
8
% 0(45)
8
F 1(06)
8
f 1(46)
8
ACK 0(06)
8
& 0(46)
8
G 1(07)
8
g 1(47)
8
BEL 0(07)
8
0(47)
8
H 1(10)
8
h 1(50)
8
BS 0(10)
8
( 0(50)
8
I 1(11)
8
i 1(51)
8
HT 0(11)
8
) 0(51)
8
J 1(12)
8
j 1(52)
8
LF 0(12)
8
* 0(52)
8
K 1(13)
8
k 1(53)
8
VT 0(13)
8
+ 0(53)
8
L 1(14)
8
l 1(54)
8
FF 0(14)
8
0(54)
8
M 1(15)
8
m 1(55)
8
CR 0(15)
8
- 0(55)
8
N 1(16)
8
n 1(56)
8
SO 0(16)
8
. 0(56)
8
O 1(17)
8
o 1(57)
8
SI 0(17)
8
/ 0(57)
8
P 1(20)
8
p 1(60)
8
DLE 0(20)
8
0 0(60)
8
Q 1(21)
8
q 1(61)
8
DCI 0(21)
8
1 0(61)
8
R 1(22)
8
r 1(62)
8
DC2 0(22)
8
2 0(62)
8
S 1(23)
8
s 1(63)
8
DC3 0(23)
8
3 0(63)
8
T 1(24)
8
t 1(64)
8
DC4 0(24)
8
4 0(64)
8
U 1(25)
8
u 1(65)
8
NAK 0(25)
8
5 0(65)
8
V 1(26)
8
v 1(66)
8
SYN 0(26)
8
6 0(66)
8
W 1(27)
8
w 1(67)
8
ETB 0(27)
8
7 0(67)
8
X 1(30)
8
x 1(70)
8
CAN 0(30)
8
8 0(70)
8
Y 1(31)
8
y 1(71)
8
EM 0(31)
8
9 0(71)
8
Z 1(32)
8
z 1(72)
8
SUB 0(32)
8
: 0(72)
8
[ 1(33)
8
{ 1(73)
8
ESC 0(33)
8
; 0(73)
8
1(34)
8
1(74)
8
FS 0(34)
8
0(74)
8
] 1(35)
8
} 1(75)
8
GS 0(35)
8
= 0(75)
8
1(36)
8
1(76)
8
RS 0(36)
8
0(76)
8
1(37)
8
DEL 1(77)
8
US 0(37)
8
? 0(77)
8
El are 2
7
= 128 simboluri sursa codicate n secvent e binare de lungime 8;
primele 7 cont in infomat ia, iar ultimul - numit bit de paritate da un prim control
asupra corectitudinii secvent ei. Valoarea acestui caracter este suma modulo 2 a
primilor sapte bit i.
De exemplu, litera A, va avea codul 10000010; primele sapte simboluri provin
din Tabelul 1.3 iar ultimul are valoarea 0 deoarece anterior au fost doua (num ar
par) simboluri binare cu valoarea 1.
Un ultim cod, folosit internat ional pentru toate cart ile este Internat ional Stan-
dard Book Number (ISBN). El este un cod - bloc de lungime 10 (lungimea cuvintelor
- cod creste prin folosirea simbolului - pe diverse pozit ii, dar acest caracter este ig-
1.3. CONSTRUCT IA CODURILOR INSTANTANEE 5
norat la prelucrarea automata). Alfabetul cod este B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X},
(X pentru num arul 10).
De exemplu, cartea S. Lin, P. Costello - Teoria Codurilor are codul
ISBN 0 13 283796 X
Primul numar (0) reprezinta t ara (SUA), 13 reprezint a editura (Prentice-Hall),
iar urmatoarele sase cifre sunt asignate de editura ca numar de identicare al cart ii.
Ultimul simbol este de control (similar cu bitul de paritate denit anterior) si denit
astfel:
Pentru codul ISBN a
1
a
2
. . . a
10
,
10
i=1
ia
11i
= 0 (mod 11).
Astfel,n ISBN-ul de sus,
10 0+9 1+8 3+7 2+6 8+5 3+4 7+3 9+2 6+1 10 = 187 0 (mod 11)
Unele publicat ii au codul de identicare de trei cifre (de exemplu Wiley-Inter-
science are 471); n acest caz num arul pentru ecare publicat ie are numai cinci
simboluri. Pentru Romania, codul de t ar a este 973.
1.3 Construct ia codurilor instantanee
Ne punem problema construirii unui cod binar instantaneu peste alfabetul sursa
A = {a
1
, . . . , a
n
}.
Init ial se specica lungimile d
1
, d
2
, . . . , d
n
ale cuvintelor cod. Far a a micsora
generalitatea, putem presupune d
1
d
2
. . . d
n
.
Se alege un cuvant - cod binar arbitrar K(a
1
) de lungime d
1
.
Se alege un cuvant - cod arbitrar K(a
2
) din mult imea cuvintelor binare de
lungime d
2
care nu au pe K(a
1
) ca prex. Aceasta este totdeauna posibil pentru ca:
Numarul tuturor secvent elor binare de lungime d
2
este 2
d
2
; dintre acestea, num a-
rul celor care nu au prexul K(a
1
) este 2
d
2
d
1
. Cum 2
d
2
2
d
2
d
1
+ 1, exista cel
put in o alegere posibila pentru K(a
2
) de lungime d
2
.
Va trebui sa selectamn continuare un cuvant de lungime d
3
care nu are ca prex
K(a
1
) sau K(a
2
). Deci, din cele 2
d
3
secvent e binare posibile trebuiesc eliminate cele
2
d
3
d
1
secvent e cu prexul K(a
1
) si 2
d
3
d
2
secvent e cu prexul K(a
2
). Aceasta este
posibil daca si numai daca
2
d
3
2
d
3
d
2
+ 2
d
3
d
1
+ 1
s1
i=1
k
dsd
i
elemente.
Din inegalitatea lui Kraft avem
1
s1
i=1
k
d
i
k
ds
care, prin multiplicare cu k
ds
conduce la
k
d
s
s1
i=1
k
d
s
d
i
1.
Armat ia reciproca se demonstreaza similar (pentru k = 2 ea a fost data anterior).
2
Teorema 1.2 (McMillan) Orice codicare unic decodabila satisface inegalitatea lui
Kraft.
Demonstrat ie: Fie K o codicare unic decodabila. Notam cu d
i
lungimea cuvantului
cod K(a
i
), (1 i n). Se observa ca j, (j 1) se pot forma k
j
cuvinte de lungime
j peste alfabetul - cod cu k simboluri. Din proprietatea de unic decodabilitate,
num arul mesajelor sursa = a
i
1
a
i
2
. . . a
i
r
al caror cod are lungimea j nu depaseste
k
j
. Lungimea codului pentru este d
i
1
+d
i
2
+. . .+d
ir
; deci num arul tuturor sumelor
de forma
d
i
1
+d
i
2
+. . . +d
i
r
= j
este cel mult k
j
.
Ram ane de demonstrat ca numarul c =
n
i=1
k
d
i
este cel mult 1. Pentru aceasta,
vom arata ca r 1,
c
r
r
este marginit.
1.4. CODURI HUFFMAN 7
Sa calculam puterile lui c:
c
2
=
i=1
k
d
i
j=1
k
d
j
=
n
i,j=1
k
(d
i
+d
j
)
si, n general,
c
r
=
n
i
1
,i
2
,...,i
r
=1
k
(d
i
1
+d
i
2
+...+d
i
r
)
Aceasta suma se poate re-ordona grupand tot i termenii de forma k
j
unde j satisface
egalitatea anterioara. Cel mai mare j posibil este j = d + d + . . . + d = rd, unde
d = max{d
1
, d
2
, . . . , d
n
}.
Numarul tuturor termenilor de forma k
j
din suma este cel mult k
j
. Deci,
c
r
rd
j=1
k
j
k
j
=
rd
j=1
1 = rd.
Deci,
c
r
r
d, de unde va rezulta c 1 (pentru c > 1 sirul a
r
=
c
r
r
, deci nu
este marginit). 2
Corolarul 1.1 Pentru orice cod unic decodabil exista un cod instantaneu care are
toate cuvintele - cod de lungimi egale.
Demonstrat ie: Rezulta din demonstrat ia teoremei precedente.
Exemplul 1.5 Sa consideram alfabetul sursa = {a, b, c} si alfabetul - cod
B = {0, 1}; deci n = |A| = 3, k = |B| = 2. Vrem sa construim o codicare
instantanee K : A B care are toate cuvintele - cod de lungime d. Inegalitatea
Kraft va da 2
d
+ 2
d
+ 2
d
1, deci 2
d
1
3
. Cel mai mic d care o verica este
d = 2. Deci orice mult ime de 3 secvent e binare de lungime 2 va putea folosita
drept cod. Sunt 4 astfel de mult imi:
{00, 01, 10}, {00, 01, 11}, {00, 10, 11}, {01, 10, 11}
1.4 Coduri Human
Am ment ionat anterior faptul ca daca frecvent a simbolurilor sursa variaz a, atunci co-
durile instantanee sunt preferabile codurilor bloc, deoarece simbolurile care apar mai
frecvent vor codicate cu cuvinte cod mai scurte. Ne punem problema aarii unor
codicari cat mai eciente, n ipoteza ca frecvent ele simbolurilor sursa sunt cunos-
cute exact (de exemplu probabilitatea distribut iei simbolurilor sursa n mesaje).
Denit ia 1.5 O sursa de informat ie este o pereche S = (A, P) unde
A = {a
1
, a
2
, . . . , a
n
} este alfabetul sursa(mult ime ordonata);
P = {P(a
1
), P(a
2
), . . . , P(a
n
)} este mult imea ordonata a probabilitat ilor ele-
mentelor lui A, deci
8 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
0 P(a
i
) 1, (1 i n);
i=1
P(a
i
) = 1.
Fie K o codicare a unei surse de informat ie. Daca se noteaza cu d
i
= |K(a
i
)| (||
reprezint a lungimea secvent ei ), se poate deni lungimea medie L a cuvintelor cod
prin
L =
n
i=1
d
i
P(a
i
).
O codicare este ecient a daca lungimea medie a secvent elor cod este cat mai mica.
Denit ia 1.6 Fiind data o sursa de informat ie S si un alfabet cod, un cod Human
este un cod instantaneu cu lungimea medie minima.
Lungimea medie minima a unui cod Humann se noteaza cu L
min
(S).
Exemplul 1.6 Sa se determine un cod Human binar pentru alfabetul sursa A =
{a, b, c, d, e, f} stiind ca a apare de doua ori mai des decat e si e de doua ori
mai des decat orice consoana.
Deci, vom avea sursa de informat ie
Simbol a b c d e f
Probabilitate 0.4 0.1 0.1 0.1 0.2 0.1
Putem asigna deci un cuvant cod de lungime 1 lui a si unul de lungime doi lui e.
Atunci lungimile cuvintelor cod ramase sunt egale cu 4, iar inegalitatea lui Kraft
este saturata:
1
2
+
1
2
2
+
4
2
4
= 1. Un astfel de cod se poate construi:
K(a) = 0 K(c) = 1101 K(e) = 10
K(b) = 1100 K(d) = 1110 K(f) = 1111
Lungimea sa medie este
L = 0.4 + 2 0.2 + 4 4 0.1 = 2.4
Deci, pentru acest exemplu, L
min
(S) 2.4
1.4.1 Construct ia codurilor Human binare
O sursa cu doua simboluri are evident un cod Human de cuvinte cod {0, 1} (si deci
L
min
(S) = 1).
O sursa cu trei simboluri {a
1
, a
2
, a
3
} n care a
1
are probabilitate maxima, poate
redusa la cazul a doua simboluri {a
1
, a
2,3
} unde P(a
2,3
) = P(a
2
) + P(a
3
). Vom
gasi o codicare Human pentru sursa redusa
K(a
1
) = 0, K(a
2,3
) = 1.
dupa care spargem cuvantul cod 1 n doua cuvinte: 10 si 11; n acest fel se obt ine
un cod Human pentru sursa originala:
1.4. CODURI HUFFMAN 9
a
1
a
2
a
3
0 10 11
cu simbolurile {a
1
, . . . , a
n2
, a
n1,n
} unde a
n1,n
este un
simbol nou, cu probabilitatea P(a
n1,n
) = P(a
n1
) +P(a
n
).
Daca nu se poate construi un cod Human pentru S
, atunci codul
din Tabelul 1.4 este un cod Human pentru S (vom demonstra aceasta armat ie) .
Tabelul 1.4:
a
1
a
2
. . . a
n2
a
n1
a
n
K
(a
1
) K
(a
2
) . . . K
(a
n2
) K
(a
n1,n
)0 K
(a
n1,n
)1
Lema 1.1
L(K) = L(K
) +P(a
n1
) +P(a
n
)
Demonstrat ie: Fie d
1
, d
2
, . . . , d
n2
, d
+ 1, d
+ 1.
Efectuand calculele, se obt ine:
L(K) =
n2
i=1
d
i
P(a
i
) + (d
+ 1)P(a
n1
) + (d
+ 1)P(a
n
) =
=
n2
i=1
d
i
P(a
i
) +d
[P(a
n1
) +P(a
n
)] +P(a
n1
) +P(a
n
) =
= L(K
) +P(a
n1
) +P(a
n
).
2
Teorema 1.3 Fie K
.
Atunci codicarea K denita de Tabelul 1.4 este un cod Human pentru sursa de
informat ie S.
Demonstrat ie: Fie a
1
, a
2
, . . . , a
n
simbolurile sursa, ordonate descrescator dupa prob-
abilitate. Deoarece teorema este evidenta pentru P(a
n
) = 0, vom considera doar
cazul P(a
n
) > 0. Demonstrat ia consta din trei pasi:
S admite o codicare Human K
0
cu lungimile cuvintelor cod ordonate:
d
1
d
2
. . . d
n
(d
i
= |K
0
(a
i
)|, 1 i n).
Pentru a demonstra aceasta, plecam de la un cod Human arbitrar K pentru
S. Daca exista un simbol a
i
astfel ca d
i
> d
i+1
, notam cu K
codicarea
10 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
obt inuta din K prin permutarea cuvintelor cod corespunzatoare lui a
i
si a
i+1
.
K
(al lui K
) este:
L
min
L
= [d
i
P(a
i
) +d
i+1
P(a
i+1
)] [d
i+1
P(a
i
) +d
i
P(a
i+1
)] =
= (d
i
d
i+1
)[P(a
i
) P(a
i+1
)].
Aceasta expresie este produsul dintre un num ar pozitiv si unul nenegativ, deci
L
min
L
. Cu alte
cuvinte, K
este un alt cod Human. Procedeul continu a pan a se obt ine codul
K
0
cerut.
S admite o codicare Human K
1
n care ultimele cuvinte cod, K
1
(a
n1
) si
K
1
(a
n
) difera doar prin ultimul simbol.
Fie K
0
codul Human anterior si
K
0
codul rezultat din K
0
eliminand ultimul
simbol din K
0
(a
n
). Lungimea medie a lui
K
0
va evident mai mica decat cea
a lui K
0
(pentru ca P(a
n
) > 0), deci
K
0
nu poate instantaneu. Cuvantul cod
K
0
(a
i
) = K
0
(a
i
), (1 i n 1) nu este prexul nici unui cuvant cod; deci
exista un i (i n 1) astfel nc at
K
0
(a
n
) este prexul lui K
0
(a
i
). Aceasta
este posibil numai daca d
i
= d
n
si deci K
0
(a
i
) difera de K
0
(a
n
) numai prin
ultimul simbol. Daca i = n 1, se ia K
1
= K
0
. Altfel, se observa ca d
i
= d
n
implica d
i
= d
i+1
= . . . = d
n
; deci se pot permuta cuvintele cod denite n K
0
pentru a
i
si a
n1
. Codul K
1
astfel obt inut are aceeasi lungime medie ca si K
0
,
deci este un cod Human.
Sa presupunem ca se da o codicare Human K
1
al lui S
1
este evident
instantaneu. Prin calcule se ajunge la relat ia
L(K
1
) L(K
1
) = P(a
n1
) +P(a
n
)
Cum avem si L(K) L(K
) = P(a
n1
) +P(a
n
), rezulta
L(K) = L(K
1
) L(K
1
) +L(K
).
Acum, L(K
) = L
min
(S
), deci L(K
1
) + L(K
) 0. Rezulta L(K)
L(K
1
) = L
min
(S). Deci, K este un cod Human.
2
1.5. EXERCIT II 11
1.5 Exercit ii
Exercit iul 1.1 Care este cea mai mica lungime a unui cod bloc cu alfabetul sursa
A = {A, B, . . . , Z} si alfabetul cod B = {., , spat iu} (ca la codul Morse).
Exercit iul 1.2 Se deneste codicarea
1 01 4 1000
2 011 5 1100
3 10 6 0111
Este ea unic decodabila ? Este instantanee ? Se poate gasi un cod instantaneu cu
aceleasi lungimi ale cuvintelor cod ?
Exercit iul 1.3 Se deneste codicarea
A 1010 D 0001
B 001 E 1101
C 101 F 1011
Este ea unic decodabila ? Daca nu, gasit i doua mesaje sursa cu acelasi cod.
Exercit iul 1.4 Este unic decodabila codicarea:
0 AA 4 ABBAA 7 AAAABB
1 AABAB 5 BABBA 8 AAAABA
2 ABBBBB 6 BBBAB 9 AAAAAB
3 ABABA
Exercit iul 1.5 Se poate decide unic decodabilitatea codicarilor
K(a) = 001 K(a) = 00
K(b) = 1001 K(b) = 10
K(c) = 0010 K(c) = 011
K(d) = 1110 K(d) = 101
K(e) = 1010 K(e) = 111
K(f) = 01110 K(f) = 110
K(g) = 0101 K(g) = 010
folosind inegalitatea lui Kraft ?
Exercit iul 1.6 Sa se construiasca un cod binar instantaneu pentru urmatorul al-
fabet sursa cu lungimile corespunzatoare ale cuvintelor cod:
Simbol A B C D E F G H I J K L
Lungime 2 4 7 7 3 4 7 7 3 4 7 7
Exercit iul 1.7 Sa se construiasca un cod ternar (trei simboluri cod) instantaneu
pentru urmatorul alfabet sursa, cu lungimile corespunzatoare ale cuvintelor cod:
12 PRELEGEREA 1. CODIFICARE SI DECODIFICARE
Simbol 1 2 3 4 5 6 7 8 9 0
Lungime 1 3 3 3 3 3 2 2 2 2
Exercit iul 1.8 Cate simboluri cod sunt necesare pentru ca urmatorul alfabet sursa
sa poata codicat ntr-un cod instantaneu cu lungimile cuvintelor cod date:
A B C D E F G H I J K L M N O P
1 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2
Exercit iul 1.9 Demonstrat i ca pentru orice cod instantaneu n care inegalitatea
Kraft este stricta, este posibil sa se adauge un nou simbol sursa si sa se extinda
codul dat la un nou cod instantaneu (cu acelasi alfabet cod). Demonstrat i aceasta
pentru codul denit la Exercit iul 1.6.
Prelegerea 2
Coduri liniare
2.1 Matrice generatoare
Denit ia 2.1 Fie q un numar prim si n N
i=1
u
i
e
i
unde (u
1
, u
2
, . . . , u
k
) Z
k
q
este unic determinat.
Cu alte cuvinte, k simboluri de informat ie u
1
, . . . , u
k
Z
q
determina n mod
unic un cuvant - cod v A
n,k
prin relat ia de sus, si reciproc. Operat ia de codicare
face aceasta asociere biunivoca:
u = (u
1
, . . . , u
k
) Z
k
q
v =
k
i=1
u
i
e
i
A
n,k
Fiecare vector - codntr-un cod liniar va avea deci k simboluri de informat ie; celelalte
n k simboluri se numesc simboluri de control.
Denit ia 2.2 Fie A
n,k
un cod liniar cu baza e
1
, . . . , e
k
. Matricea
G
n,k
=
e
1
e
2
. . .
e
k
1 0 0 1 1
0 1 0 0 1
1 1 0 1 0
0 1 0 0 1
1 1 0 0 0 0
0 0 2 2 0 0
1 1 1 1 1 1
1 1 0 0 0 0
0 0 1 1 0 0
0 0 0 0 1 1
Toate cele 3
3
= 27 cuvinte ale acestui cod au urmatoarea proprietate: ecare simbol
este scris de doua ori. Din acest motiv, codul este numit cod cu repetit ie.
Cea mai convenabil a regula de codicare constan scrierea simbolurilor de informat ie
si suplimentarea lor cu n k simboluri de control. Aceasta corespunde matricii
generatoare (unice)
G = (I|B)
unde I este matricea unitate de ordin k, iar B este o matrice cu k linii si n k
coloane.
Denit ia 2.3 Un cod liniar este numit sistematic daca admite o matrice genera-
toare de forma G = (I|B) unde I este matricea unitate.
Denit ia 2.4 Doua coduri liniare A si A
(s-a notat cu S
n
mult imea permutarilor de n elemente).
Exemplul 2.4 Codul din Exemplul 2.1 este un cod sistematic. Din codicare se
observa ca mesajul de informat ie se aa n cuvantul - cod pe primele doua pozit ii.
Codul cu repetit ie din Exemplul 2.3 nu este sistematic. Totusi, folosind per-
mutarea (1, 4, 6, 2, 5, 3) (se permuta simbolurile doi cu patru si trei cu sase) se ajunge
la un cod sistematic generat de matricea
G
1 0 0 1 0 0
0 1 0 0 0 1
0 0 1 0 1 0
= (I|Y
). Deoarece si G
. Fie
A
. Atunci A
si A
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
care la randul ei este matricea generatoare a unui (7, 3) - cod liniar binar.
Se verica imediat relat ia
GH
T
=
0 0 0
0 0 0
0 0 0
0 0 0
Un cod care coincide cu codul sau dual se numeste cod auto - dual.
Teorema 2.2 Un cod sistematic cu matricea generatoare G = (I|B) admite ca
matrice de control H = (B
T
|I).
Demonstrat ie: Cele doua matrici unitate din scrierea lui G si H sunt de ordin k
respectiv n k. Efectuand calculele, se obt ine:
GH
T
= (I|B)
= IB +BI = B +B = 0
2
Corolarul 2.1 Matricea de control a unui (n, k)-cod liniar are rangul n k.
Teorema de sus permite un algoritm de calcul extrem de simplu al matricii de control,
atunci cand se cunoaste matricea generatoare. Sa arat am aceasta pe un exemplu:
Exemplul 2.6 Plecand de la matricea generatoare construita n Exemplul 2.4, se
poate construi matricea de control (calculele se fac n Z
3
):
H
1 0 0 1 0 0
0 0 1 0 1 0
0 1 0 0 0 1
2 0 0 1 0 0
0 0 2 0 1 0
0 2 0 0 0 1
.
Aplicand acum permutarea inversa coloanelor lui H
2 1 0 0 0 0
0 0 0 0 1 2
0 0 1 2 0 0
Relat ia xH
T
= 0 pe care o veric a orice cuvant - cod x A
n,k
permite sa denim
un cod si sub forma unui sistem de ecuat ii. Astfel, A
n,k
este un cod peste Z
q
daca
si numai daca elementele sale sunt solut ii ale sistemului liniar xH
T
= 0.
Exemplul 2.7 Codul cu matricea de control H =
1 1 0 1 0
1 1 1 1 1
= (a
1
, . . . , a
i1
, a
i
, a
i+1
, . . . , a
j1
, a
j
, a
j+1
, . . . , a
k1
, a
k
, a
k+1
, . . . , a
n
)
unde a
i
= a
i
, a
j
= a
j
, a
k
= a
k
. Avem
0 = aH
T
= a
1
(h
1
) +. . . +a
i
(h
i
) + . . . +a
j
(h
j
) + . . . +a
k
(h
k
) + . . . +a
n
(h
n
)
pentru ca a A
n,k
, iar (h
1
), . . . , (h
n
) sunt coloanele matricii H.
Avem, de asemenea
a
H
T
= a
1
(h
1
) +. . . +a
i
(h
i
) + . . . +a
j
(h
j
) + . . . +a
k
(h
k
) + . . . +a
n
(h
n
)
Prin adunarea acestor doua egalitat i se obt ine:
z
= a
H
T
= aH
T
+a
H
T
= (0) +. . . +(0) +(h
i
) +. . . +(h
j
) +. . . +(h
k
) +(0) +
. . . + (0) = (h
i
) + (h
j
) + (h
k
). 2
2.4 Pondere, distant a Hamming
Pentru orice cuvant x Z
n
q
, se numeste pondere num arul w(x) de componente
nenule. Evident, 0 w(x) n.
Pentru doua cuvinte x, y Z
n
q
, se numeste distant a Hamming ntre ele, numarul
d(x, y) = w(x y).
Ca o remarca, deoarece x y Z
n
q
, rezulta ca distant a Hamming dintre doua
cuvinte este ponderea unui cuvant din Z
n
q
.
Denit ia 2.6 Se numeste distant a (Hamming) a codului liniar A
n,k
Z
n
q
peste Z
q
cea mai mica distant a (Hamming) dintre elementele codului A
n,k
, adica
d = min
x,yA
n,k
,x=y
d(x, y)
2.5. DETECTARE SI CORECTARE DE ERORI 19
Folosind proprietatea anterioara si faptul ca 0 A
n,k
, rezulta ca
d = min
xA
n,k
,x=0
w(x).
Se poate verica imediat ca d este o distant a cu ajutorul careia Z
n
q
se poate structura
ca spat iu metric.
Teorema 2.4 Fie H matricea de control a unui cod liniar A
n,k
. Codul are distant a
minima d daca si numai daca orice combinat ie liniara de d 1 coloane ale lui H
este liniar independenta si exista cel put in o combinat ie liniara de d coloane liniar
dependente.
Demonstrat ie: Pentru orice cuvant a, cu w(a) = s, aH
T
este o combinat ie liniara
de s coloane ale lui H. Cum exista un cuvant - cod de pondere minima egala cu
distant a d a codului, rezulta ca avem cel put in o combinat ie de d coloane liniar
dependente ale lui H. O combinat ie de mai put in de d coloane liniar dependente ar
conduce la contradict ie. 2
Denit ia 2.7 Pentru r > 0 si x Z
n
q
, denim sfera de raza r si centru x ca
S
r
(x) = {y|d(x, y) r}
Teorema 2.5 Fie A
n,k
Z
n
q
un cod liniar peste Z
q
cu distant a Hamming d. Daca
r =
d 1
2
, atunci
x, y A
n,k
, x = y, S
r
(x) S
r
(y) = .
Demonstrat ie: Presupunem prin absurd ca exista z Z
n
q
, z S
r
(x) S
r
(y).
Atunci d(x, z) r, d(y, z) r deci, conform inegalitat ii triunghiului, d(x, y)
d(x, z) + d(y, z) 2r = 2
d1
2
xA
n,k
S
r
(x)
unde r =
d1
2
.
2.5 Detectare si corectare de erori
Fie A
n,k
Z
n
q
un cod liniar peste Z
q
, de distant a d si t =
d1
2
. Sa presupunem ca
s-a recept ionat cuvantul z Z
n
q
; va exista cel mult un cuvant x A
n,k
astfel ncat
z S
t
(x) (n cazul codurilor perfecte, acest cuvant exista totdeauna).
In cazul (ideal) cand z = x, cuvantul a fost transmis fara erori (sau cu erori
nedetectabile).
20 PRELEGEREA 2. CODURI LINIARE
Daca z = x, atunci mesajul a fost perturbat (si avem o detectare de erori);
n ipoteza ca numarul de erori aparute este minim si exista un x A
n,k
astfel ca
d(x, z) t, atunci z provine din cuvantul - cod x - si se va transforma n acesta
prin corectarea corespunzatoare a erorilor.
In particular, A = 0 +A = V
0
.
Propozit ia 2.1 Pentru orice a V
e
, V
a
= V
e
.
Demonstrat ie: Din a V
e
, rezulta ca exista x A cu a = e +x. Deoarece x+A = A
(evident, A ind subspat iu liniar), avem V
a
= a +A = e +x +A = e +A = V
e
. 2
Vom utiliza aceasta propozit ie pentru denirea unei tehnici de decodicare.
Daca vrem sa detectam o anumit a eroare - tip e care modica cuvintele din A
n cuvintele subspat iului V
e
, atunci vor mai usor de depistat cuvintele din V
e
cu
ponderea minima.
Pentru ecare V
e
se alege un cuvant numit reprezentantul lui V
e
; acesta este un
element cu cea mai mica pondere din V
e
.
Se construieste urmatorul tablou (numit tablou standard):
1. Pe prima linie se scriu cuvintele - cod, ncepand cu 0 (reprezentantul lui
A = V
0
);
2. Pe prima coloana se scriu reprezentant ii 0, e
1
, e
2
, . . .;
3. Pe linia cu reprezentantul e
i
, sub cuvantul cod x
j
se scrie cuvantul
e
i
+x
j
( mod q).
Exemplul 2.8 Fie matricea generatoare G =
1 0 0 1
0 1 1 1
peste Z
2
. Ea va cod-
ica Z
2
2
= {00, 01, 10, 11} n A
4,2
= {0000, 1001, 0111, 1110}.
Calculul mult imilor V
e
conduce la
V
0000
= V
1001
= V
0111
= V
1110
V
1000
= V
0001
= V
0110
= V
1111
V
0100
= V
1101
= V
0011
= V
1010
V
0010
= V
1011
= V
0101
= V
1100
2.5. DETECTARE SI CORECTARE DE ERORI 21
Alegem ca reprezentant i pe 0000, 1000 (se poate si 0001), 0100, 0010. Tabloul
standard va :
0000 1001 0111 1110
1000 0001 1111 0110
0100 1101 0011 1010
0010 1011 0101 1100
Pentru recept ie, acest tablou este ca un dict ionar care se utilizeaza astfel: cu-
vantul primit se decodica n cuvantul - cod din capul coloanei pe care se aa.
De exemplu, daca se recept ioneaza 1101, el se va decodica n 1001.
Evident, cuvintele de pe prima coloana se decodica n ele nsele (ele nu au fost
perturbate de nici o eroare).
Pentru orice cod liniar, un dict ionar complet de tipul celui de mai sus constituie cea
mai simpla metoda de decodicare.
Problema apare atunci candntr-o mult ime V
e
sunt mai multe cuvinte de pondere
minima. Atunci tabela va decodica corect numai eroarea - tip aleasa ca reprezen-
tant.
Astfel, revenind la Exemplul 2.8, cuvantul recept ionat 1111 se decodica n 0111
(considerand ca a fost alterat primul caracter).
Daca se ia ns a drept reprezentant pe linia a doua 0001 n loc de 1000, a doua
linie din tabloul standard este
0001 1000 0110 1111
Atunci, 1111 se decodican 1110 (considernd ultimul caracter ca ind cel alterat
de canalul de transmisie). Care este cuvantul - cod corect transmis ? Acest lucru nu
poate decis. Singurul lucru care poate facut este sa se aleaga drept reprezentant i
erorile - tip cele mai probabile.
Pentru un (n, k) - cod peste Z
q
, un dict ionar complet consta din toate cele q
n
cuvinte posibile, lucru destul de dicil deoarece n practica codurile sunt destul de
lungi (de exemplu n = 100, k = 80). De aceea este utilizata o alta maniera de lucru
care reduce mult marimea tabloului de lucru.
Fie H matricea de control a unui (n, k) - cod liniar A; putem considera (Corolarul
2.1) ca liniile lui H sunt vectori liniar independent i.
Teorema 2.6 Pentru orice e Z
n
q
, toate cuvintele din V
e
au acelasi sindrom.
Demonstrat ie: Fie v A arbitrar si w = e +v. Avem
wH
T
= (e +v)H
T
= eH
T
+vH
T
= eH
T
+0 = eH
T
.
Deci toate cuvintele din V
e
au sindromul egal cu sindromul lui e. 2
Invers, pentru ecare sindrom - deci pentru ecare cuvant s de lungime nk, se
poate determina un vector - eroare e avand sindromul s. Mai mult, s va ales astfel
ncat sa aiba pondere minima (conform decodicarii cele mai probabile). Pentru
22 PRELEGEREA 2. CODURI LINIARE
aceasta, se rezolva sistemul de ecuat ii liniare He
T
= s
T
, care are solut ie, deoarece
liniile lui H sunt liniar independente. Din mult imea solut iilor alegem una de pondere
minima, cu ajutorul careia construim mult imea V
e
a tuturor cuvintelor de sindrom
s.
Pe baza celor de mai sus, se poate folosi urmatoarea procedura de decodicare:
1. La recept ionarea unui cuvant w, se calculeaza sindromul s:
s
T
= Hw
T
.
2. Se aa eroarea - tip e cu sindromul s.
3. Se considera cuvantul - cod corect ca ind v = we.
In acest fel, nu mai este necesar sa se ret ina tot tabloul standard; este sucient
sa se stie reprezentant ii subspat iilor V
e
si sindromurile corespunzatoare.
Exemplul 2.9 Reluand codul denit n Exemplul 2.8, el are ca matrice de control
H =
0 1 1 0
1 1 0 1
0 1 1 0
1 1 0 1
1
1
0
1
1
1
1 0 2 1 0
0 1 2 1 2
1 0 2 1 0
0 1 2 1 2
1
1
1
2
2
2
0
1 2 3 1 2
2 2 4 1 0
1 1 2 2 1
Sa se ae matricea de control.
2.3 Aceeasi problema pentru Z
7
.
24 PRELEGEREA 2. CODURI LINIARE
2.4 Determinat i daca urmatorul cod liniar binar este sistematic sau nu:
G =
1 1 0 0 0 0
0 0 1 1 1 1
0 0 0 0 1 1
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 0 1 0 0 0 1
1 1 0 1 0 1
1 1 0 0 1 0
1 0 1 1 0 0
1 0 0 2 2
0 1 0 0 1
0 0 1 1 0
= (a
1
, a
2
, . . . , a
n
)
unde
a
i
=
_
_
a
i
= b
i
daca i = i
1
, i
2
, . . . , i
d
,
a
i
daca i = i
1
, i
3
, . . . ,
b
i
daca i = i
2
, i
4
, . . .
Atunci, evident d(a, a
) =
_
d + 1
2
_
= t si d(a
, b) =
_
d
2
_
t = d(a
, a). Aceasta va
duce la decodicarea lui a n b - incorect.
25
26 PRELEGEREA 3. CODURI LINIARE - II
Sa presupunem acum d 2t + 1. Atunci codul A
n,k
poate corecta orice pachet
de t erori. Pentru a arata aceasta, sa presupunem ca se trimite un cuvant - cod
a si se primeste un cuvant a
cu d(a, a
) + d(a
, b) d(a, b) 2t + 1.
deci, d(a
, b) 2t + 1 d(a, a
) 2t + 1 t = t + 1 > d(a, a
).
Deci, cu o decodicare cea mai probabila, a
se va decodica n a. 2
Teorema 3.3 Distant a minima a unui (n, k) - cod liniar verica relat ia
d n k + 1.
Demonstrat ie: Vom separa demonstrat ia n doua part i:
A: Fie A
n,k
un cod sistematic. Atunci primele k simboluri din orice cuvant - cod
pot alese arbitrar. Fie v A
n,k
cuvantul de forma v = 100 . . . 0v
k+1
v
k+2
. . . v
n
.
Evident, 0 < w(v) n k + 1. Cum d este cea mai mica pondere a unui cuvant -
cod nenul, rezulta inegalitatea ceruta.
B: Fie A
n,k
un cod liniar arbitrar si A
n,k
codul liniar sistematic echivalent. Se ob-
serva ca cele doua coduri au aceeasi parametri n, k, d. Folosind acum A, inegalitatea
se obt ine din nou. 2
Teorema 3.4
In orice cod liniar A
n,k
peste Z
q
avem
d
nq
k1
(q 1)
q
k
1
(marginea Plotkin)
Demonstrat ie: Sa consideram elementele din A
n,k
asezate ca linii ale unui tablou. Se
obt ine un tablou cu q
k
linii si n coloane. Fiecare component a nenula din Z
q
apare
pe ecare coloana n q
k1
linii. Atunci, suma ponderilor tuturor cuvintelor - cod
este egala cu nq
k1
(q 1) deoarece ecare component a nenul a apare de q
k1
ori n
ecare coloana si avem q 1 componente nenule distribuite pe n coloane.
Distant a minima a codului nu poate sa depaseasca ponderea medie a cuvintelor
codului, adica
d
nq
k1
(q 1)
q
k
1
deoarece n A
n,k
sunt q
k
1 cuvinte nenule. 2
Teorema 3.5 Fie A
n,k
un cod liniar peste Z
q
care corecteaza orice combinat ie de
maxim t erori.
Intr-un asemenea cod sunt necesare cel put in
n k log
q
[1 + C
1
n
(q 1) + C
2
n
(q 1)
2
+ . . . + C
t
n
(q 1)
t
]
pozit ii de control (marginea Hamming).
3.1. CAPACIT
i=0
A
i
.
28 PRELEGEREA 3. CODURI LINIARE - II
Deoarece sferele de raza t centrate n cuvintele codului A
n,k
sunt disjuncte, avem
q
k
S
t
q
n
.
Aici, q
k
reprezint a num arul de cuvinte - cod, iar q
n
- numarul total de cuvinte
din Z
n
q
.
Din aceasta relat ie se obt ine imediat
n k log
q
S
t
,
cunoscuta sub numele de inegalitatea volumului. Ea mai poate gasita si sub forma
k
n
1
1
n
log
q
S
t
.
Raportul
k
n
se numeste rata de informat ie si da o masura a cantit at ii de informat ie
pe care o poarta un cuvant - cod. O rata de informat ie mica (mai multe simboluri
de control) asigura o securitate mai mare a transmiterii datelor.
In schimb, condit ii
practice de ecient a cer o rata de informat ie cat mai mare (mai multa informat ie
pe unitatea de mesaj). Aceasta este una din solicitarile contradictorii ale teoriei
codurilor.
3.2 Modicari ale codurilor liniare
Adesea este imposibil sa se utilizeze un cod bun deoarece el nu satisface anumite
restrict ii tehnice, cum ar lungimea sau rata de informat ie. De aceea este practic
sa se faca anumite modicari asupra codurilor, care sa nu afecteze proprietatile
principale de detectare si corectare de erori.
Denit ia 3.1 Numim extensie a unui (n, k) - cod liniar A peste Z
q
, (n + 1, k) -
codul liniar A
i=1
a
i
= 0 (mod q).
Observat ii:
In cazul binar, noul caracter a
n+1
poarta numele bit de paritate.
Daca H este matricea de control a codului A
n,k
, atunci codul extins A
n+1,k
are
matricea de control
H
=
_
_
_
_
_
_
0
H
.
.
.
0
1 1 . . . 1 1 1
_
_
_
_
_
_
De fapt, ultima linie reprezint a ecuat ia
n
i=1
x
i
= 1.
3.2. MODIFIC
i=1
a
i
= 1 (n Z
2
), deci a
n+1
= 1.
Cuvantul a
= a
1
a
2
. . . a
n
1 A
, w(a
=
_
_
_
G
1 1 . . . 1 1
_
_
_
genereaza A
n,k
(1 +A
n,k
). Acest cod are k +1 pozit ii de informat ie si lungime
n. Fiecare din cele doua submult imi are un numar egal de elemente. 2
Propozit ia 3.2 Orice cod liniar binar are sau toate cuvintele - cod de pondere para,
sau numarul cuvintelor - cod de pondere para este egal cu al celor de pondere impara.
Demonstrat ie: Fie A un cod liniar binar cu un cuvant v
1
de pondere impara. Sa
presupunem ca v
1
, v
2
, . . . , v
r
sunt toate cuvintele lui A; atunci A = A+v
1
. Pentru
orice cuvant - cod v
i
de pondere para (impara), v
1
+v
i
are pondere impara (para).
Pentru aceasta, sa presupunem ca w(v
1
) = 2p + 1, w(v
i
) = 2q iar v
i
si v
1
au 1 pe
r pozit ii comune. Atunci w(v
i
+v
1
) = w(v
i
) + w(v
1
) 2r (pentru ca 1 + 1 = 0)
= 2p + 1 + 2q 2r = 2s + 1. Similar daca v
i
are pondere impara.
Deci adunarea cu v
1
deneste o corespondent a biunivoca ntre cuvintele - cod
de pondere para si cele de pondere impara, ceea ce completeaza demonstrat ia. 2
30 PRELEGEREA 3. CODURI LINIARE - II
Corolarul 3.1 Expurgarea unui cod liniar binar A este tot A sau un cod liniar
avand ca elemente jumatate din elementele lui A.
Matricea generatoare G
exp
a lui A
exp
se poate obt ine din matricea G a lui A astfel:
daca toate liniile lui G sunt vectori de pondere para cele doua coduri coincid. Altfel,
e G = [e
1
, e
2
, . . . , e
r
, e
r+1
, . . . , e
k
]
T
n care - fara a micsora generalitatea, putem
presupune ca primele r au pondere impara, iar celelalte k r au pondere para.
Atunci G
exp
= [0, e
2
+e
1
, . . . , e
r
+e
1
, e
r+1
. . . , e
k
]
T
.
Exemplul 3.1 Sa construim codul A
4,2
peste Z
3
de matrice generatoare
G =
_
1 0 0 1
0 1 1 1
_
.
Ea codica cele 9 elemente din Z
2
3
n
A
4,2
= {0000, 0111, 0222, 1001, 1112, 1220, 2002, 2110, 2221}.
Codul liniar relaxat A
3,2
= {000, 011, 022, 100, 111, 122, 200, 211, 222} este generat
de matricea
G
rel
=
_
1 0 0
0 1 1
_
.
Construct ia a fost posibila deoarece prin eliminarea ultimei coloane, liniile ramase
sunt tot liniar independente. Daca acest lucru nu este realizabil, se cauta k cuvinte
- cod n A
n,k
cu proprietatea ca dupa eliminarea ultimei componente, ele sunt liniar
independente. Acestea formeaza liniile noii matrici generatoare.
Codul completat este
0000 0111 0222 1001 1112 1220 2002 2110 2221
1111 1222 1000 2112 2220 2001 0110 0221 0002
De remarcat ca el nu este un spat iu liniar (nu este nchis la adunarea din Z
3
).
Codul expurgat are cinci elemente: {0000, 1001, 1112, 2002, 2221}. Nici acesta
nu este cod liniar.
Exemplul 3.2 Sa reluam matricea generatoare din Exemplul 3.1, dar pentru un
cod liniar peste Z
2
. Codul generat de G este A
4,2
= {0000, 0111, 1001, 1110}.
Toate codurile modicate sunt n acest caz coduri liniare. Astfel
Codul relaxat A
rel
= {000, 011, 100, 111} este generat de aceeasi matrice G
rel
din Exemplul 3.1.
Codul completat A
com
= {0000, 0111, 1001, 1110, 1111, 1000, 0110, 0001} este
un cod liniar generat de matricea
G
com
=
_
_
_
1 0 0 1
0 1 1 1
1 1 1 1
_
_
_.
Codul expurgat A
exp
= {0000, 1001} este un cod liniar generat de matricea
G
ex
=
_
1 0 0 1
0 0 0 0
_
.
3.3. DETECTAREA SI CORECTAREA SIMULTAN
A A ERORILOR 31
3.3 Detectarea si corectarea simultana a erorilor
Sa ncepem cu un exemplu.
Exemplul 3.3 Fie (7, 4) - codul liniar binar cu matricea de control
H =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_.
El are distant a minima d = 3, deci poate detecta 2 erori si poate corecta o eroare
(Teoremele 3.1,3.2). Totusi, codul nu poate realiza acest lucru simultan.
Mai precis, atunci cand codul este utilizat pentru corectare de erori, erorile du-
ble scapa nedetectate. Astfel, daca se trimite 0000000 si se recept ioneaza 1010000,
sindromul este 010. Tabloul standard conduce la corectarea celui de-al doilea bit, si
decodica (incorect) n cuvantul - cod 111000.
Uneori nsa, se solicita n mod explicit un cod capabil sa detecteze si sa corecteze
erori n acelasi timp.
Denit ia 3.3 Un cod A de lungime n corecteaza t erori si detecteaza s erori simul-
tan daca orice cuvant - cod v are urmatoarea proprietate:
w Z
n
q
[d(w, v) s = a A \ {v}, d(w, a) > t].
(v
= v) avem d(v, v
) d t +s + 1.
Folosind inegalitatea triunghiului,
d(v, w) + d(w, v
) d(v, v
) s + t + 1,
se deduce
d(w, v
) t + s + 1 d(v, w) t + s + 1 s = t + 1.
Deci, condit ia din denit ie este ndeplinita.
B: Sa presupunem prin absurd d < t + s + 1. Fie v, v
, w) =
d s t + s s = t, ceea ce contrazice condit ia din denit ie. 2
32 PRELEGEREA 3. CODURI LINIARE - II
Exemplul 3.4 Sa consideram (8, 4) - codul liniar binar generat de matricea
G =
_
_
_
_
_
1 0 0 0 1 1 1 0
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 1
_
_
_
_
_
.
El are distant a minima d = 4, deci - conform Teoremei 3.2 poate corecta maxim
o eroare, iar conform Teoremei 3.7 poate corecta o eroare si detecta simultan doua
erori.
Astfel recept ionarea cuvantului 11110010 conduce la corectarea sa n 10110010
(deoarece d(11110010, 10110010) = 1 si 10110010 este cuvant - cod).
In schimb recept ionarea cuvantului 00001111 anunt a ca au aparut cel put in doua
erori.
In aceasta situat ie, nu mai put in de patru cuvinte - cod (00010111, 00101011,
01001101, 10001110) sunt situate la distant a 2 de cuvantul primit.
Exemplul 3.5 Codul binar cu repetit ie de lungime 7 (care are 2 elemente) poate
realiza una din condit iile:
Corecteaza 3 erori;
Detecteaza 6 erori;
Corecteaza 2 erori si detecteaza 4 erori simultan.
3.4 Probabilitatea nedetectarii erorilor
Sa ne punem urmatoarea problema: care este probabilitatea ca la transmiterea unui
cuvant - cod a sa e recept ionat alt cuvant - cod b (b = a). Altfel spus, care este
probabilitatea ca o eroare sa scape nedetectata ?
Notand cu e = b a, o eroare este nedetectata daca si numai daca e este un
cuvant - cod nenul.
Vom considera un canal de transmisie binar simetric, adica un canal n care
singurele simboluri transmise sunt 0 si 1, iar probabilitatea p (0 p 1) ca la
transmiterea lui 0 sa e recept ionat 1 este egala cu probabilitatea ca la transmiterea
lui 1 sa se recept ioneze 0.
Intr-un astfel de canal, daca w(e) = i (adica au fost
perturbate la transmisie i caractere), probabilitatea de aparit ie a erorii - tip e este
p
i
q
ni
, unde q = 1 p. Notand cu A
i
numarul cuvintelor - cod cu ponderea i, prob-
abilitatea P
ned
a unei erori nedetectabile este suma probabilitat ilor p
i
q
ni
, ecare
termen apar and de A
i
ori pentru i = 1, 2, . . . , n. Formal,
P
ned
=
n
i=1
A
i
p
i
q
ni
Cum A
1
= A
2
= . . . = A
d1
= 0, suma se reduce la P
ned
=
n
i=d
p
i
q
ni
.
3.5. IDENTITATEA MACWILLIAMS 33
Exemplul 3.6 Sa consideram un cod care are un cuvant de pondere 0, cate sapte
cuvinte de pondere 3 si 4 si un cuvant de pondere 7. Atunci
P
ned
= 7p
3
q
4
+ 7p
4
q
3
+ p
7
Daca folosim acest cod ntr-un canal binar simetric cu eroare de probabilitate
p = 0.01, avem
P
ned
= 7(0.01)
3
(0.99)
4
+ 7(0.01)
4
(0.99)
3
+ (0.01)
7
7 10
6
deci - n medie - apar cam sapte erori nedetectabile la un milion de cuvinte
transmise.
Denit ia 3.4 Polinomul de variabila x [0, 1] denit
P(x) =
n
i=0
A
i
x
i
unde A
i
este numarul de cuvinte din A
n,k
de pondere i, se numeste numaratorul
de ponderi al codului A
n,k
.
Exemplul 3.7 Codul denit n Exemplul 3.2 are numaratorul de ponderi
P(x) = 1 + x
2
+ 2x
3
Propozit ia 3.3 Fie A
n,k
un cod liniar binar cu numarator de ponderi P(x). Proba-
bilitatea aparit iei unei erori nedetectabile la folosirea codului A
n,k
ntr-un canal binar
simetric este
P
ned
= q
n
_
P
_
p
q
_
1
_
.
Demonstrat ie: Relat ia de denit ie a lui P
ned
se poate rescrie
q
n
n
i=1
A
i
p
i
q
i
= q
n
n
i=1
A
i
_
p
q
_
i
.
Deoarece A
0
= 1 (singurul cuvant - cod de pondere 0 este cuvantul - cod 0, expresia
devine n continuare
P
ned
= q
n
_
_
n
i=0
A
i
_
p
q
_
i
1
_
_
= q
n
_
P
_
p
q
_
1
_
. 2
3.5 Identitatea MacWilliams
In acest paragraf vom arata un rezultat care face posibila determinarea num ar a-
torului de ponderi P
A
al dualului A
vA
(1)
vw
=
_
1 daca w A
0 altfel
34 PRELEGEREA 3. CODURI LINIARE - II
Demonstrat ie: Daca w A
Intr-adev ar:
1. i (1 i r) (v
i
+v
0
)w = v
i
w +v
0
w = 0 + 1 = 1;
2. Daca v A veric a relat ia vw = 1, atunci v v
0
este un cuvant cod -
ortogonal pe w, deci v v
0
= v
i
pentru un anumit i. 2
Teorema 3.8 Pentru orice (n, k) - cod liniar binar A are loc relat ia (identitatea
MacWilliams):
P
A
(x) =
(1 + x)
n
2
k
P
A
_
1 x
1 + x
_
.
Demonstrat ie: Sa rescriem num aratorul de ponderi sub o forma put in diferita:
B(x, y) =
n
i=0
A
i
x
i
y
ni
.
Evident, deoarece P(x) = B(x, 1) si B(x, y) = y
n
P
_
x
y
_
, cele doua expresii sunt
echivalente.
i=0
A
i
x
i
y
ni
=
aA
x
w(a)
y
nw(a)
Prelucrand membrul drept al identit at ii MacWilliams, avem:
B
A
(y x, y + x) =
aA
(y x)
w(a)
(y + x)
nw(a)
=
aA
n
i=1
[y + (1)
a
i
x] .
aA
x
w(a)
y
nw(a)
.
Folosind Propozit ia 3.4, el se poate reformula:
B
A
(x, y) =
aZ
n
2
_
1
2
k
vA
(1)
av
_
x
w(a)
y
nw(a)
.
3.5. IDENTITATEA MACWILLIAMS 35
Expresia din paranteze este 0 pentru toate cuvintele a care nu sunt n A
. Deci
B
A
(x, y) =
1
2
k
vA
aZ
k
2
(1)
va
x
w(a)
y
nw(a)
.
Suma interioar a se face dupa toate secvent ele binare a de lungime n. Vom ordona
aceasta suma dupa ponderile lui a: pentru a = 0 sumandul este y
n
; pentru cu-
vintele a de pondere 1 avem: [(1)
a
1
+ (1)
a
2
+ . . . + (1)
a
n
]xy
n1
etc; n nal,
pentru ponderea n avem [(1)
a
1
+ . . . + (1)
a
n
]x
n
. Suma tuturor acestor sumanzi
n
k=0
[(1)
a
i
1
+ . . . + (1)
a
i
k
]x
k
y
nk
se observa usor ca este egala cu
[y + (1)
a
1
x][y + (1)
a
2
x] . . . [y + (1)
a
k
x] =
n
i=1
[y + (1)
a
i
x]. Deci
B
A
(x, y) =
1
2
k
aA
n
i=1
[y + (1)
a
i
x] =
1
2
k
B
A
(y x, y + x). 2
Exemplul 3.8 Sa consideram codul din Exemplul 3.2 al carui numarator de ponderi
a fost dat n Exemplul 3.7. Pentru codul dual, numaratorul de ponderi este
P
A
(x) =
(1 + x)
4
2
2
P
A
_
1 x
1 + x
_
=
(1 + x)
4
4
_
1 +
_
1 x
1 + x
_
2
+ 2
_
1 x
1 + x
_
3
_
=
=
(1 + x)
4
+ (1 + x)
2
(1 x)
2
+ 2(1 + x)(1 x)
3
4
=
4 + 4x
2
+ 4x
3
4
= 1+x
2
+x
3
.
Deci cele doua coduri au acelasi numarator de ponderi. Aceasta nu nseamna
nsa ca cele doua coduri coincid (si deci codul ar auto - dual); a avea acelasi
numarator de ponderi este doar o condit ie necesara, nu si sucienta pentru ca un
cod sa coincida cu dualul sau.
Exemplul 3.9 Fie codul cu repetit ie de lungime para n A = {00 . . . 0, 11 . . . 1};
numaratorul lui de ponderi este P
A
(x) = 1 + x
n
. Codul dual are numaratorul de
ponderi
P
A
(x) =
(1 + x)
n
2
_
1 +
_
1 x
1 + x
_
n
_
= 1 + C
2
n
x
2
+ C
4
n
x
4
+ . . . + x
n
.
Rezulta din aceasta forma ca dualul codului cu repetit ie este codul liniar al cu-
vintelor de pondere para.
36 PRELEGEREA 3. CODURI LINIARE - II
3.6 Exercit ii
3.1
In Z
n
2
notam cu x cuvantul obt inut din x prin permutarea caracterelor 0 si 1
ntre ele. Sa se arate ca pentru orice a, b Z
n
2
:
1. a +b = a +b;
2. a +b = a +b = a +b;
3. d(a, b) = d(a +b) = w(a +b).
3.2 Descriet i codurile modicate obt inute din codul liniar binar cu matricea genera-
toare
G =
_
_
_
1 1 1 0 0
0 0 1 1 1
1 1 1 1 0
_
_
_
3.3 Aceeasi problema pentru codul peste Z
3
denit prin
G =
_
_
_
1 0 0 2 2
0 1 0 0 1
0 0 1 1 0
_
_
_.
3.4 Fie A un (n, k) - cod liniar binar si A
A. Descriet i A
\ A.
Prelegerea 4
Clase de coduri liniare
4.1 Coduri Hamming
Fie H matricea de control a unui cod liniar binar. Daca se transmite un cuvant -
cod a si se recept ioneaz a a +e (deci cu eroarea - tip e, atunci sindromul este eH
T
.
Acest sindrom este egal cu suma coloanelor lui H care corespund pozit iilor afectate
de erori (Prelegerea II, Teorema 2.3).
_
x
4
+ x
5
+ x
6
+ x
7
= 0
x
2
+ x
3
+ x
6
+ x
7
= 0
x
1
+ x
3
+ x
5
+ x
7
= 0
Sa determinam matricea generatoare a acestui cod. Pentru aceasta, construim ntai
codul echivalent, permutand coloanele pentru a aduce matricea de control la forma
esalonata canonic:
H
3,7
=
_
_
_
0 1 1 1 1 0 0
1 0 1 1 0 1 0
1 1 0 1 0 0 1
_
_
_.
De aici se obt ine matricea generatoare esalonata canonic:
G
4,7
=
_
_
_
_
_
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
_
_
_
_
_
Aplicand permutarea inversa asupra coloanelor, se obt ine matricea generatoare a
(7, 4) - codului Hamming binar:
G
4,7
=
_
_
_
_
_
1 1 1 0 0 0 0
1 0 0 1 1 0 0
0 1 0 1 0 1 0
1 1 0 1 0 0 1
_
_
_
_
_
.
Codul este sistematic: coloanele corespunzatoare matricii unitate: 3, 5, 6, 7, sunt
pozit iile simbolurilor de informat ie n ecare cuvant - cod. Deci simbolurile x
1
, x
2
, x
4
sunt simboluri de control. Sistemul de sus poate rearanjat pentru a permite calculul
simbolurilor de control din simbolurile de informat ie:
_
_
x
1
= x
3
+ x
5
+ x
7
x
2
= x
3
+ x
6
+ x
7
x
4
= x
5
+ x
6
+ x
7
Toate cuvintele codului sunt:
4.1. CODURI HAMMING 39
Informat ie Cuvant cod Informat ie Cuvant cod
0000 0000000 0110 0110011
1000 1000011 0101 0101010
0100 0100101 0011 0011001
0010 0010110 1110 1110000
0001 0001111 1101 1101001
1100 1100110 1011 1011010
1010 1010101 0111 0111100
1001 1001100 1111 1111111
Teorema 4.2 Un cod Hamming are distant a minima 3.
Demonstrat ie: Evident, orice doua coloane din matricea de control sunt liniar inde-
pendente.
In plus, se pot gasi trei coloane (de exemplu primele trei) a caror suma
sa e 0. Conform Teoremei 2.4 (Prelegerea II), distant a minima a codului este 3.2
Deci orice cod Hamming poate corecta o eroare sau poate detecta doua erori. El
nu poate realiza acest lucru simultan (nu veric a condit ia d s +t +1 din Teorema
3.7, Prelegerea III).
Decodicarea se realizeaza foarte simplu, conform urmatorului algoritm:
Algoritm A:
Fie a vectorul recept ionat.
1. Se calculeaza sindromul s = aH
T
.
2. Daca s = 0, nu a aparut nici o eroare (sau eroarea este nedetectabila),
deci v = a, STOP.
3. Altfel, eroarea este pe pozit ia i, unde i este num arul a carui reprezentare
n binar este sindromul s. Decodicarea este v = a +e
i
, unde e
i
este
vectorul care are 1 pe pozit ia i si 0 n rest.
Exemplul 4.2 Sa consideram din nou (7, 4) - codul Hamming din Exemplul 4.1
si sa presupunem ca s-a recept ionat cuvantul x = 0011101. Calculul sindromului
conduce la valoarea
xH
T
=
_
_
_
1
0
1
_
_
_
care este scrierea n binar a numarului 5. Deci a intervenit o eroare simpla pe pozit ia
a cincea. Corectam aceasta pozit ie - schimband 1 cu 0 si se obt ine cuvantul - cod
0011001, care pe pozit iile 3, 5, 6, 7 cont ine mesajul de informat ie: 1001.
Codul Hamming poate mbun at at it prin extensie. Aceasta operat ie conduce la un
(2
m
, 2
m
m 1) - cod liniar, cu toate cuvintele - cod de pondere para.
Exemplul 4.3 Prin extensia (7, 4) - codului Hamming se obt ine codul cu matricea
de control
H
=
_
_
_
_
_
0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 1
_
_
_
_
_
.
40 PRELEGEREA 4. CLASE DE CODURI LINIARE
De remarcat ca H
i=1
x
i
= 0 ind numit a ecuat ia de control a paritat ii.
Propozit ia 4.1 Un cod Hamming extins are d = 4.
Demonstrat ie: Fie a
1
a
2
. . . a
n
un cuvant - cod de pondere d = 3 din codul Ham-
ming. Trecand la codul extins, cuvantul a
1
a
2
. . . a
n
a
n+1
veric a relat ia suplimentara
n+1
i=1
a
i
= 0 (reamintim, sumele se fac modulo 2). Cum
n
i=1
a
i
= 1, rezulta a
n+1
= 1.
Noul cuvant are evident pondere minima, si aceasta este 3 + 1 = 4. 2
Codurile Hamming extinse corecteaza o eroare simpla si detecteaza 2 erori si-
multan. Algoritmul prezentat este bazat pe vericarea celor n k + 1 ecuat ii de
control:
Algoritm B:
1. Daca nu sunt vericate ecuat ia de control a paritat ii si cel put in una
din primele n k ecuat ii, nseamna ca a aparut o eroare simpla, care se
corecteaza cu Algoritmul A;
2. Daca ecuat ia de control a paritat ii este vericata dar cel put in una din
primele nk ecuat ii de control nu se veric a, s-a detectat o eroare dubla;
3.
In celelalte situat ii nu au aparut erori (sau eroarea este nedetectabila).
Faptul ca se poate lua totdeauna o decizie se bazeaza pe urmatorul rezultat.
Teorema 4.3 Codul Hamming este perfect.
Demonstrat ie: Reamintim (Prelegerea II, Denit ia 2.8) ca un cod A este perfect
daca
Z
n
q
=
_
xA
S
t
(x).
Scriind aceasta relat ie n funct ie de num arul de elemente din ecare sfera si t inand
cont ca toate sferele cont in un numar egal de elemente, avem
q
k
_
1 +C
1
n
(q 1) + . . . +C
t
n
(q 1)
t
_
= q
n
.
Pentru cazul codurilor Hamming, q = 2, n = 2
r
1, k = 2
r
r 1, t = 1, deci
totul revine la vericarea egalitat ii 2
k
(1 + n) = 2
n
. 2
De remarcat ca rata de informat ie a codurilor Hamming
R =
k
n
= 1
r
2
r
1
creste rapid spre 1. Evident ns a ca odata cu aceasta crestere scade protect ia fat a
de erori.
4.1. CODURI HAMMING 41
4.1.1 Coduri Hamming nebinare
Denit ia 4.2 Fie q numar prim, r (r 2) un ntreg si n =
q
r
1
q1
. Se numeste cod
Hamming nebinar un (n, n r) - cod liniar peste Z
q
n care matricea de control are
orice pereche de doua coloane liniar independente (nici o coloana nu este multiplu
scalar al altei coloane).
Mult imea coloanelor unui astfel de cod formeaza o mult ime maximala de vectori
liniar independent i doi cate doi.
Exemplul 4.4 Sa consideram q = 3, r = 2. Atunci n =
3
2
1
3 1
= 4. Un (4, 2) -
cod Hamming ternar poate dat de matricea de control
H =
_
0 1 1 1
1 0 1 2
_
Decodicarea se poate face folosind tabela de sindromuri, n care s-au luat ca repre-
zentant i toate combinat iile posibile de o eroare:
Sindrom Reprezentant Sindrom Reprezentant
01 1000 12 0001
02 2000 20 0200
10 0100 21 0002
11 0010 22 0020
Daca se recept ioneaza de exemplu 1021, calculul sindromului da s = 02. Reprezen-
tantul este 2000. Se calculeaza 1021 2000 = 1021 + 1000 = 2021 deci cuvantul -
cod transmis a fost 2021.
Cum matricea generatoare a acestui cod este G =
_
2 2 1 0
1 2 0 1
_
ultimele doua
caractere formeaza mesajul de informat ie; deci s-a codicat mesajul 21.
Despre codurile Hamming nebinare se pot stabili urmatoarele rezultate:
Deoarece pentru q, r xat i codurile Hamming corespunzatoare sunt echiva-
lente, se poate alege o anumit a matrice de control. Uzual se foloseste matricea
n care se scriu toate coloanele nenule de r elemente din Z
q
, cu condit ia ca
primul element nenul (de sus n jos) sa e 1.
Codurile Hamming nebinare au d = 3 (evident, din construct ia matricii de
control de mai sus). Deci ele pot corecta o eroare.
Proprietatea de a coduri perfecte se pastreaz a.
Intr-adev ar, deoarece un
cod Hamming cont ine q
nr
cuvinte - cod iar n =
q
r
1
q1
, egalitatea stabilita n
demonstrat ia Teoremei 4.3 se scrie q
nr
[1 + n(q 1)] = q
n
, care se veric a
imediat.
42 PRELEGEREA 4. CLASE DE CODURI LINIARE
Exemplul 4.5 Sa consideram (13, 10) - codul Hamming ternar. Acest cod are o
aplicat ie interesanta n problema Pronosportului. Dupa cum se stie, un buletin
Pronosport cont ine rezultatele (notate cu 1, 2, X) a 13 meciuri. Pentru a avea sigur
13 rezultate exacte trebuiesc completate 3
13
buletine. Cate buletine sunt nsa necesare
pentru a sigur de 12 rezultate ? La prima vedere s-ar parea ca 3
12
. Completand
nsa buletinele cu elementele codului Hamming ternar (13, 10) (cu 0 n loc de X) -
care sunt n numar de 3
10
, se atinge scopul dorit.
Intr-adevar, acesta ind un cod
perfect corector de o eroare, orice element din Z
13
3
difera prin cel mult o pozit ie de
un cuvant - cod.
Astfel, numarul buletinelor se reduce de noua ori.
4.2 Codul Golay
Al doilea cod liniar prezentat are capacitatea de corect ie pentru maxim 3 erori.
Vom construi nt ai varianta extinsa a codului, deoarece algoritmul de decodicare
este mai simplu si usor de aplicat ulterior la codul Golay normal.
4.2.1 Codul Golay binar extins
Acest cod a fost folosit de programul spat ial Voyager la nceputul anilor
80, la
transmiterea fotograilor planetelor Jupiter si Saturn.
Sa consideram matricea 12 12 din Figura 4.1:
Figura 4.1:
B =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 0 1 1 1 0 0 0 1 0 1
1 0 1 1 1 0 0 0 1 0 1 1
0 1 1 1 0 0 0 1 0 1 1 1
1 1 1 0 0 0 1 0 1 1 0 1
1 1 0 0 0 1 0 1 1 0 1 1
1 0 0 0 1 0 1 1 0 1 1 1
0 0 0 1 0 1 1 0 1 1 1 1
0 0 1 0 1 1 0 1 1 1 0 1
0 1 0 1 1 0 1 1 1 0 0 1
1 0 1 1 0 1 1 1 0 0 0 1
0 1 1 0 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 1 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Fie G matricea 1224 G = (I
12
|B). Codul liniar binar generat de G se numeste
codul Golay extins si va notat C
24
.
Observat ii:
Matricea B este mai usor de construit decat pare. Astfel, eliminand ultima
linie si coloana, matricea ramasa - sa spunem B
1
- este generata ciclic (spre
4.2. CODUL GOLAY 43
stanga) de cuvantul binar 11011100010. Deci B =
_
B
1
1
T
1 0
_
,
unde 1 = 11111111111. Evident, B este simetrica (B
T
= B).
C
24
are n = 24, k = 12 si 2
12
= 4096 cuvinte - cod.
Conform Teoremei 2.2, o matrice de control a codului este H = (B|I
12
).
Teorema 4.4 H = (I
12
|B) este de asemenea matrice de control pentru C
24
.
Demonstrat ie: Liniile din B au pondere impara (7 sau 11); deci produsul (scalar)
al unei linii cu ea nsasi este 1. O vericare simpla arata ca produsul primei linii cu
oricare alta linie din B este 0. Structura ciclica a lui B
1
asigura ca atunci produsul
scalar al oricaror doua linii este 0.
In concluzie, BB
T
= I
12
. Dar B
T
= B, asa ca putem scrie:
GH
T
= (I|B)
_
I
B
_
= I
2
+B
2
= I +BB
T
= I +I = 0.
Vom folosi ambele matrici de control pentru decodicarea codului C
24
. 2
Corolarul 4.1
A. C
24
admite ca matrice generatoare si pe G = (B|I
12
).
B. Codul Golay extins este auto - dual (C
24
= C
24
).
Demonstrat ie: Se verica imediat. 2
Teorema 4.5 C
24
are distant a minima d = 8.
Demonstrat ie: Vom demonstra armat ia n trei pasi.
1. Ponderea cuvintelor din C
24
este multiplu de 4.
Sa observam ca liniile lui G au pondere 8 sau 12. Fie v C
24
ca suma de doua
linii din G : v = r
i
+r
j
. Cum B are liniile ortogonale, rezulta ca si liniile lui
G sunt ortogonale. Deci r
i
si r
j
au un numar par (sa zicem 2x) de elemente 1
n comun. Atunci w(v) = w(r
i
) +w(r
j
) 2(2x), care este multiplu de 4.
Fie acum v C
24
ca suma de trei linii din G : v = r
i
+r
j
+r
s
. Notam
v
1
= r
i
+r
j
. Deoarece C
24
este auto - dual, v
1
si r
s
au un numar par (sa
zicem 2y) de elemente 1 n comun. Deci w(v) = w(v
1
) + w(r
s
) 2(2y) care
este multiplu de 4.
Folosind acum un procedeu de induct ie, cum orice cuvant - cod este combinat ie
liniara de linii din G, ponderea sa va multiplu de 4.
2. Primele 11 linii din G sunt cuvinte - cod de pondere 8, deci distant a codului
C
24
este 4 sau 8.
3. C
24
nu are cuvinte de pondere 4.
Sa presupunem ca exista v C
24
cu w(v) = 4. Exista atunci u
1
, u
2
Z
12
2
cu v = u
1
(I|B), v = u
2
(B|I). Deoarece exista o jumatate din v care are cel
put in doi de 1, rezulta w(u
1
) 2 sau w(u
2
) 2. Pe de-alta parte, suma
a una sau doua linii din B nu poate avea o pondere mai mica de 4; deci
w(v) = w(u
i
) + w(u
i
B) > 4, contradict ie. 2
44 PRELEGEREA 4. CLASE DE CODURI LINIARE
4.2.2 Decodicarea codului Golay extins
Conform Teoremei 4.5, un cod Golay extins poate corecta orice combinat ie de maxim
3 erori.
In aceasta sect iune vom nota cu a cuvantul recept ionat, cu v cuvantul - cod cel
mai apropiat, si cu e eroarea - tip (v = a +e). Deoarece capacitatea de corect ie
este de 3 erori, vom considera w(e) 3.
Pentru orice cuvant din Z
24
2
, vom separa cu o virgula prima jumatate a cuvantului
de cea de-a doua. Eroarea - tip va notata u = [u
1
, u
2
], unde u
1
, u
2
au ecare
lungimea 12. Evident, condit ia w(u) 3 implica w(u
1
) 1 sau w(u
2
) 1.
Folosind cele doua matrici de control, se pot deni doua sindromuri pentru a:
s
1
= u
_
I
12
B
_
= [u
1
, u
2
]
_
I
12
B
_
= u
1
+u
2
B,
s
2
= u
_
B
I
12
_
= [u
1
, u
2
]
_
B
I
12
_
= u
1
B +u
2
.
De aici rezulta urmatoarea observat ie: daca w(u
2
) 1, atunci s
1
este sau un
cuvant de pondere maxim 3 (daca w(u
2
) = 0), sau o linie a lui B cu cel mult doi
bit i schimbat i (daca w(u
2
) = 1).
Similar, daca w(u
1
) 1, atunci s
2
este sau un cuvant de pondere maxim 3 sau
o linie a lui B cu cel mult doi bit i schimbat i.
Daca se foloseste si faptul ca s
2
= u
1
B + u
2
= (u
1
+u
2
B)B = s
1
B (deci se
poate folosi doar prima matrice de control), putem deni urmatorul algoritm de
decodicare a codurilor Golay extinse:
Algoritm C:
1. Se calculeaza sindromul s = aH;
2. Daca w(s) 3, atunci e = [s, 0], STOP.
3. Daca exista o linie b
i
a lui B cu w(s +b
i
) 2, atunci e = [s +b
i
, e
i
],
STOP.
4. Daca w(sB) 3, atunci e = [0, sB], STOP.
5. Daca exista o linie b
i
a lui B cu w(sB+b
i
) 2, atunci e = [e
i
, sB+b
i
],
STOP.
6. Daca e nu a fost determinat nca, se cere retransmiterea.
S-a notat cu e
i
un cuvant de lungime 12 cu 1 pe pozit ia i si 0 n rest.
Dupa determinarea erorii e, cuvantul - cod transmis se determina prin v = a +e.
Exemplul 4.6 Sa decodicam cuvantul a = 101111101111, 010010010010.
Sindromul este
s = aH
T
= 101111101111 + 001111101110 = 100000000001.
Deoarece w(s) = 2 3, se gaseste e = [s, 0] = 100000000001, 000000000000
deci s-a transmis cuvantul v = a +u = 001111101110, 010010010010.
4.2. CODUL GOLAY 45
Deoarece G = (I
12
|B) este n forma esalonat canonica, mesajul de informat ie (orice
cuvant din Z
12
2
) apare pe primele 12 pozit ii ale cuvantului - cod. Astfel, n exemplul
de sus, mesajul de informat ie a fost 001111101110.
Exemplul 4.7 Se cere decodicarea cuvantului a = 001001001101, 101000101000.
Sindromul este
s = aH = 001001001101 + 111000000100 = 110001001001.
Deoarece w(s) = 5, se trece la pasul 3 al Algoritmului C si se calculeaza:
s +b
1
= 000110001100
s +b
2
= 011111000010
s +b
3
= 101101011110
s +b
4
= 001001100100
s +b
5
= 000000010010
Deoarece w(s +b
5
) 2, se determina
e = [s +b
5
, e
5
] = 000000010010, 000010000000
si se decide ca s-a transmis cuvantul - cod
v = a +e = 001001011111, 101010101000.
Exemplul 4.8 Sa decodicam cuvantul a = 000111000111, 011011010000.
Sindromul este
s = aH
T
= u
1
+u
2
B = 000111000111 + 101010101101 = 101101101010
care are ponderea 7. Trecand la pasul 3 se gaseste w(s +b
i
) 3 pentru toate
liniile lui B; deci se continua cu pasul 4: al doilea sindrom este sB = 111001111101
cu ponderea 8. Pasul 5 va da:
sB +b
1
= 001110111000
sB +b
2
= 010111110110
sB +b
3
= 100101101010
sB +b
4
= 000001010000
S-a ajuns la w(sB +b
4
) 2, deci se poate determina eroarea:
e = [e
4
, sB +b
4
] = 000100000000, 000001010000
deci cuvantul - cod transmis a fost:
v = a +e = 000011000111, 011010000000.
4.2.3 Codul Golay
Prin relaxarea codului Golay extins (eliminarea ultimului bit din ecare cuvant -
cod) se ajunge la Codul Golay binar.
Fie
B matricea 12 11 obt inuta din B prin eliminarea ultimei coloane. Denim
G = (I
12
|
B). Codul liniar binar generat de G se numeste codul Golay si este notat
cu C
23
. Caracteristicile sale sunt:
n = 23, k = 12, Numar de cuvinte - cod: 2
12
= 4096.
Evident, extensia lui C
23
este C
24
.
46 PRELEGEREA 4. CLASE DE CODURI LINIARE
Teorema 4.6 Distant a unui cod Golay este d = 7.
Demonstrat ie: Demonstrat ia se poate face e direct (similar celei de la Teorema 4.5)
e folosind faptul ca C
23
este relaxarea codului C
24
, care are distant a 8. 2
i=0
C
i
n
= 2
p
pentru un anumit p.
Demonstrat ie: Rezulta imediat din relat ia scrisa n demonstrat ia Teoremei 4.3, n
care se ia q = 2. 2
4.3. UNICITATEA CODURILOR PERFECTE BINARE 47
Lema 4.2
t
i=0
C
i
n
=
n + 1
t!
R
t
(n)
unde t este numar natural impar, R
t
(X) Z[X], gr(R
t
(X)) = t 1.
Demonstrat ie: Pentru t = 1 se veric a imediat.
Presupumem adevarat a armat ia pentru t si o demonstram pentru t + 2. Avem
t+2
i=0
C
i
n
=
n + 1
t!
+C
t+1
n
+C
t+2
n
=
n + 1
(t + 2)!
_
(t + 1)(t + 2)R
t
(n) +
t
i=0
(n i)
_
.
Expresia din paranteza dreapta este un polinom de gradul t + 1; notandu-l cu
R
t+2
(n), armat ia este demonstrata. 2
Sa consideram acum cazul t = 3. Pentru ca sa existe un cod binar perfect
corector de 3 erori, cu lemele de sus, trebuie ca (n + 1)(n
2
n + 6) = 3 2
s
, sau
(n + 1)[(n + 1)
2
3(n + 1) + 8] = 3 2
s
.
Considerata ca o ecuat ie n n + 1, singurele solut ii ntregi pozitive sunt de forma
n + 1 = 2
k
p unde p = 1 sau p = 3.
Inlocuind, se ajunge la
2
2k
p
3
2
k
3p
2
+ 8p = 2
sk
3 (1)
Pentru k 3 si p = 1, 3 vericarile se fac imediat. Pentru k 4 se ajunge la
contradict ie. Singurele valori care veric a ecuat ia sunt:
n = 0, 1, 2 nu corespund nici unui cod.
n = 3 codul trivial cu un singur cuvant - cod de lungime 3.
n = 7 codul (trivial) cu repetit ie {0000000, 1111111}.
n = 23 codul Golay.
In general, f
i
= f(i
m1
, . . . , i
1
, i
0
), unde i =
m1
k=0
i
k
2
k
(i
m1
. . . i
1
i
0
este scrierea n binar a lui i).
Exemplul 5.2 Exista doua funct ii booleene constante:
1 = 11 . . . 11, 0 = 00 . . . 00.
Exemplul 5.3 Orice variabila poate tratata ca o funct ie booleana. De exemplu,
x
0
este funct ia booleana care asigneaza ecarui m-tuplu (x
0
, x
1
, . . . , x
m1
) valoarea
primei coordonate x
0
. Deci, valoarea este 0 pentru toate numerele pare si 1 pentru
toate numerele impare: x
0
= 0101 . . . 01 (vezi Exemplul 5.1 pentru cazul m = 3).
In general,
x
i
este cuvantul binar n care pe pozit ia k (0 k 2
m
1) este 1 atunci si
numai atunci cand scrierea binara a lui k cont ine 1 pe pozit ia i.
Aceasta observat ie rezulta din modul de scriere al tabelelor de adevar.
De exemplu, x
1
= 00110011 . . . 0011 si x
m1
= 00 . . . 00
. .
2
m1
11 . . . 11
. .
2
m1
.
Pentru m = 4, cele patru variabile sunt descrise n Tabelul 5.1:
Tabelul 5.1:
x
0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
x
1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
x
2
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
x
3
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Pe mult imea funct iilor booleene se denesc doua operat ii:
Suma logica (sau exclusiv): f +g = h
unde h
i
= f
i
+ g
i
(mod 2), 0 i 2
m
1.
Produsul logic (si): fg = h
unde h
i
= f
i
g
i
(mod 2), 0 i 2
m
1.
Observat ii:
5.1. DEFINIREA PRIN FUNCT II BOOLEENE 51
1. Produsul logic verica relat ia = f.
Deci n reprezentarea funct iilor nu vor apare exponent i mai mari de 1.
2. Exista si alte operat ii care pot exprimate cu ajutorul sumei si produsului
logic. Astfel,
Negat ia f = 1 +f
(sau disjunctiv): f g = f +g +fg
Denit ia 5.2 Un polinom boolean de m nedeterminate este o suma de termeni din
mult imea
{0, 1} {x
i
1
x
i
2
. . . x
i
k
|0 i
1
< i
2
< . . . < i
k
m1, k 1}.
Funct ia 0 este numit a polinom boolean de gradul 1, funct ia 1 este numit a polinom
boolean de gradul 0, iar orice alt polinom boolean are gradul k unde k este numarul
maxim de factori dintr-un termen al lui f.
Exemplul 5.4 Polinomul boolean 1 +x
0
x
1
de 3 nedeterminate are gradul 2. El
este negat ia polinomului
x
0
x
1
= (01010101)(00110011) = 00010001.
Deci 1 +x
0
x
1
= 11101110.
Acelasi polinom, considerat ca funct ie de 4 nedeterminate, este cuvantul
1110111011101110.
Exemplul 5.5 Polinomul x
i
x
j
(i = j) este cuvantul binar n care pe pozit ia k este
1 daca si numai daca reprezentarea binara a lui k are 1 pe pozit iile i si j. Numarul
acestor situat ii este 2
m2
(deoarece celelalte m2 pozit ii din scrierea binara a lui k
pot alese arbitrar). Deci w(x
i
x
j
) = 2
m2
.
Mai general,
Daca i
1
, i
2
, . . . , i
r
sunt valori distincte din [0, m1], atunci
w(x
i
1
x
i
2
. . . x
ir
) = 2
mr
. ()
Fiecare polinom boolean de m variabile determina un cuvant binar de lungime
2
m
: pentru o singura nedeterminata, se foloseste Exemplul 5.3, dupa care se opereaza
adunarile si multiplic arile necesare.
Invers, orice cuvant binar f = f
0
f
1
. . . f
2
m
1
poate translatat ntr-un polinom
boolean pe baza urmatoarei propozit ii:
Propozit ia 5.1 Daca f este o funct ie booleana de m variabile, atunci:
f(x
0
, . . . , x
m2
, x
m1
) = f(x
0
, . . . , x
m2
, 0)+
+[f(x
0
, . . . , x
m2
, 0) + f(x
0
, . . . , x
m2
, 1)]x
m1
.
Demonstrat ie: Deoarece x
m1
poate lua doar doua valori (0, 1), este sucient sa
veric am identitatea pentru acestea. Cazul x
m1
= 0 se veric a banal. Pentru
x
m1
= 1 avem:
f(x
0
, . . . , x
m2
, 0)+[f(x
0
, . . . , x
m2
, 0)+f(x
0
, . . . , x
m2
, 1)] = f(x
0
, . . . , x
m2
, 1).
2
52 PRELEGEREA 5. CODURI REED - MULLER
Exemplul 5.6 Sa translatam f = 01101110 ntr-un polinom boolean de 3 variabile.
Vom aplica pe etape formula din Propozit ia 5.1:
f = 0110 + [0110 + 1110]x
2
= 0110 + 1000x
2
=
= (01 + [01 + 10]x
1
) + (10 + [10 + 00]x
1
)x
2
= 01 + 11x
1
+ 10x
2
+ 10x
1
x
2
=
= (0 +[0 +1]x
0
) +(1 +[1 +1]x
0
)x
1
+(1 +[1 +0]x
0
)x
2
+(1 +[1 +0]x
0
)x
1
x
2
=
= x
0
+x
1
+x
2
+x
0
x
2
+x
1
x
2
+x
0
x
1
x
2
.
Teorema 5.1 Spat iul liniar Z
n
2
, (n = 2
m
) are o baza formata din toate monoamele
booleene:
1
x
i
(i = 0, 1, . . . , m1)
x
i
x
j
(i, j = 0, 1, . . . , m1, i = j)
.
.
.
x
0
x
1
. . . x
m1
Demonstrat ie: Fiecare cuvant de lungime n = 2
m
este o funct ie booleana de m nede-
terminate, care poate exprimata printr-un polinom boolean. Monoamele booleene
pot considerate n Z
n
2
si sunt evident liniar independente.
In plus, deoarece pentru
ecare k = 0, 1, . . . , m sunt C
k
m
monoame de grad k, numarul lor total va
m
k=0
C
k
m
= 2
m
= n, adica dimensiunea spat iului liniar. 2
5.1.2 Coduri Reed - Muller
Denit ia 5.3 Se numeste cod Reed - Muller de lungime n = 2
m
si grad r
(0 r m), codul liniar RM(r, m) al tuturor cuvintelor binare de lungime n care
au - ca polinoame booleene - gradul maxim r.
Exemplul 5.7 RM(0, m) este format din toate polinoamele de grad cel mult 0,
adica 0 si 1. Deci RM(0, m) este codul cu repetit ie de lungime 2
m
.
Exemplul 5.8 RM(1, m) are baza 1, x
0
, . . . , x
m1
; orice polinom de grad cel mult
1 se poate scrie ca suma de o parte din aceste m+1 polinoame (liniar independente).
Deci, RM(1, m) este un (2
m
, m + 1) - cod liniar.
De exemplu, RM(1, 3) are matricea generatoare:
G =
_
_
_
_
_
1
x
0
x
1
x
2
_
_
_
_
_
=
_
_
_
_
_
1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
_
_
_
_
_
.
care genereaza codul Hamming extins (8, 4).
Similar, RM(1, 4) este un (16, 5) - cod liniar binar, iar RM(1, 5) este un (32, 6)
- cod liniar, folosit n 1969 de programul Mariner, dupa cum s-a ment ionat anterior.
Propozit ia 5.2 RM(r, m) are k = C
0
m
+ C
1
m
+ . . . + C
r
m
simboluri de informat ie.
5.1. DEFINIREA PRIN FUNCT II BOOLEENE 53
Demonstrat ie: Codul RM(r, m) are ca baza monoamele booleene
{1} {x
i
1
x
i
2
. . . x
i
s
|s r, 0 i
1
< i
2
< . . . < i
s
< m}.
Numarul acestor monoame este C
0
m
+ C
1
m
+ . . . + C
r
m
. Cum ele sunt liniar in-
dependente, vor forma liniile matricii generatoare G a codului; ori num arul de linii
este egal cu numarul de simboluri de informat ie. 2
Propozit ia 5.3 Dualul codului RM(r, m) este codul RM(mr 1, m).
Demonstrat ie: Trebuie aratat ca cele doua coduri au baze ortogonale si suma di-
mensiunilor lor este egala cu suma ntregului spat iu.
A: Fie v
i
1
v
i
2
. . . v
i
p
(p r) un monom din baza codului RM(r, m) si
v
j
1
v
j
2
. . . v
j
s
(s m r 1) un monom din baza codului RM(m r 1, m).
Produsul lor are t (t r +mr 1 = m1) variabile distincte (variabilele comune
apar o singura data), deci ponderea lui este (conform ()) 2
mt
2. Fiind un num ar
par, rezulta ca produsul scalar (adica suma n binar a termenilor) este 0.
B: Suma dimensiunilor celor doua coduri este:
r
i=0
C
i
m
+
mr1
i=0
C
i
m
=
r
i=0
C
i
m
+
m
i=r+1
C
i
m
=
m
i=0
C
i
m
= 2
m
= n. 2
Exemplul 5.9 RM(m 2, m) este codul Hamming extins de lungime 2
m
.
Intr-
adevar, codul sau dual este RM(m(m2) 1, m) = RM(1, m), deci RM(m
2, m) are matricea de control
H =
_
_
_
_
_
_
1
x
0
.
.
.
x
m
_
_
_
_
_
_
=
_
_
_
_
_
_
1 1 1 1 . . . 1 1 1 1
0 1 0 1 . . . 0 1 0 1
.
.
.
0 0 0 0 . . . 1 1 1 1
_
_
_
_
_
_
.
Daca adunam prima linie la toate celelalte si apoi o permutam cu ultima linie,
se obt ine alta matrice de control a codului:
H
_
_
_
_
_
_
_
_
_
1 0 1 0 . . . 1 0 1 0
1 1 0 0 . . . 1 1 0 0
.
.
.
1 1 1 1 . . . 0 0 0 0
1 1 1 1 . . . 1 1 1 1
_
_
_
_
_
_
_
_
_
.
Dupa eliminarea ultimei linii si coloane se obt ine un (2
m
1, m) - cod ale carui
coloane sunt nenule si diferite doua cate doua, adica matricea de control H
0
a unui
cod Hamming binar. Deci H este matricea de control a unui cod Hamming extins.
Codicarea mesajelor cu un cod RM se realizeaza normal, nmult ind mesajul de
informat ie cu matricea generatoare.
In acest fel bit ii de informat ie devin coecient ii
polinomului boolean corespunzator. De exemplu, n RM(1, m) codicarea celor
m + 1 caractere de informat ie este:
(a
1
, a
2
, . . . , a
m+1
)
_
_
_
_
_
_
1
x
0
.
.
.
x
m1
_
_
_
_
_
_
= a
1
1 + a
2
x
0
+ . . . + a
m+1
x
m1
.
54 PRELEGEREA 5. CODURI REED - MULLER
5.2 Denirea recursiva a codurilor R - M
Sa introducem o alta modalitate de denire a codurilor Reed - Muller, nu prin
polinoame booleene, ci prin construct ie recursiva.
Denit ia 5.4 Fie m 0 un numar natural. Se deneste codul Reed - Muller
RM(r, m) de ordin r (0 r m) si lungime n = 2
m
astfel:
RM(0, m) = {00 . . . 0, 11 . . . 1}, RM(m, m) = Z
n
2
.
RM(p, m) = {[a, a +b]|a RM(p, m1), b RM(p1, m1)}, 0 < p r.
S-a notat cu [x, y] un cuvant de lungime 2
m
scris ca alaturare de doua subcuvinte
de lungimi egale (2
m1
), separate prin virgula.
Exemplul 5.10 RM(0, 0) = {0, 1}
RM(0, 1) = {00, 11}, RM(1, 1) = {00, 01, 10, 11}
RM(0, 2) = {0000, 1111}, RM(2, 2) = Z
4
2
RM(1, 2) = {(a, a +b)|a {00, 01, 10, 11}, b {00, 11}} =
= {0000, 0011, 0100, 0111, 1000, 1011, 1100, 1111}
A A CODURILOR R-M 55
Propozit ia 5.4 RM(r 1, m) RM(r, m).
Demonstrat ie: Sa consideram init ial matricea
G(1, m) =
_
G(1, m1) G(1, m1)
0 G(0, m1)
_
.
Pentru ca 1 este prima linie a lui G(1, m 1), cuvantul [1, 1] formeaza prima
linie a matricii (G(1, m 1) G(1, m 1)). Deci RM(0, m) = {0, 1} este cont inut
n codul RM(1, m).
A A CODURILOR R-M 57
0
x
0
+ h
1
x
1
+ h
2
x
2
= c
.
Liniile si planele sunt exemple de spat ii ane. Un spat iu ann Z
3
2
este o mult ime
de forma
a + A = {a +b|b A}
unde a Z
3
2
iar A este un subspat iu liniar din Z
3
2
. Daca dimensiunea lui A este s,
numim acea mult ime un s - spat iu an.
Deci liniile sunt 1 - spat ii ane, iar planele: 2 - spat ii ane. Pentru ecare punct
p
i
avem un 0 - spat iu an, si - n sfarsit - exista un 3 - spat iu an unic - Z
3
2
.
Orice spat iu an L poate descris de un cuvant binar f
L
= f
7
. . . f
1
f
0
denit
prin
f
i
=
_
1 daca p
i
L,
0 altfel
Cuvantul f
L
(sau funct ia booleana de trei variabile corespunzatoare) se numeste
funct ia caracteristica a spat iului an L (tabelele anterioare listeaza aceste funct ii
pentru 0 si 2 - spat ii ane).
Fiind date spat iile ane L, L
, intersect ia lor LL
A A CODURILOR R-M 59
Funct ia caracteristica poate interpretata ca un polinom boolean f
L
(x
0
, . . . , x
m1
).
Din proprietat ile acestor polinoame rezulta
a
0
a
1
. . . a
m1
L f
L
(a
0
, a
1
, . . . a
m1
) = 1
Observat ii:
1. Singurul m - spat iu an (Z
m
2
) are funct ia caracteristica 1 = 11 . . . 1.
2. Un hiperplan P
i
are funct ia f
P
i
= x
i
.
3. Fie L un hiperplan denit de ecuat ia h
0
x
0
+ . . . h
m1
x
m1
= c. Funct ia sa
caracteristica va un polinom boolean de gradul 1, anume
f
L
(x
0
, . . . , x
m1
) = h
0
x
0
+ . . . + h
m1
x
m1
+ c + 1
Aceasta relat ie rezulta din faptul ca un punct a
0
. . . a
m1
este n plan daca si
numai daca h
0
a
0
+ . . . + h
m1
a
m1
= c, adica f
L
(a
0
, . . . , a
m1
) = 1.
4. Pentru doua spat ii ane L, L
este
f
L
f
L
.
Astfel, pentru P
i
P
j
(care este un (m2) - spat iu an) funct ia caracteristica
este x
i
x
j
.
Mai general, polinomul boolean x
i
1
x
i
2
. . . x
is
este funct ia caracteristica a unui
(ms) - spat iu an.
Teorema 5.4 Funct ia caracteristica a unui r - spat iu an este un polinom boolean
de gradul mr.
Demonstrat ie: Un r - spat iu an L este denit ca solut ia sistemului de ecuat ii
Hx
T
= c
T
, sau, detaliind,
m1
j=0
h
ij
x
j
= c
i
, 1 i mr.
Aceste ecuat ii se pot scrie
m1
j=0
h
ij
x
j
+ c
i
+ 1 = 1, 1 i mr.
Atunci, polinomul boolean de grad mr
f(x
0
, . . . , x
m1
) =
mr
i=1
_
_
m1
j=0
h
ij
x
j
+ c
i
+ 1
_
_
este funct ia caracteristica a lui L. 2
Denit ia 5.7 RM(r, m) este codul liniar generat de toate funct iile caracteristice
ale spat iilor ane de dimensiune cel put in mr n geometria euclidiana m - dimen-
sionala peste Z
2
.
60 PRELEGEREA 5. CODURI REED - MULLER
Faptul ca aceasta coincide cu denit ia anterioar a a codurilor Reed - Muller rezulta
din construt ia spat iilor ane: RM(r, m) cont ine toate funct iile caracteristice ale s
- spat iilor ane, unde s m r. Faptul ca aceste funct ii genereaza tot spat iul
RM(r, m) rezulta din Observat ia 4.
Exemplul 5.16 Codul RM(1, 3) este generat de funct iile caracteristice ale tuturor
planelor. Orice astfel de funct ie este un polinom de trei variabile de gradul 1.
Codul RM(2, 3) este generat de funct iile caracteristice ale tuturor planelor si
liniilor. Cum o linie este intersect ia a doua plane, funct ia sa caracteristica este
produsul a doua polinoame de gradul 1, deci un polinom de gradul 2 (cuvant - cod
din RM(2, 3)).
5.4 Exercit ii
5.1 Ce polinom boolean are ultima linie a tabelei de adevar:
10100110 1010011010100110 0101001110011100
5.2 Determinat i tabela de adevar a polinomului boolean 1 +x
0
+x
1
x
2
:
1. Ca funct ie de trei variabile;
2. Ca funct ie de patru variabile.
5.3 Demonstrat i armat ia ().
5.4 Gasit i un (15, 5) - cod liniar binar corector de 3 erori (folosit i un cod R M
relaxat).
5.5 Fiind dat codul RM(1, 3), codicat i toate mesajele de informat ie posibile.
Acelasi lucru pentru codul RM(2, 3).
5.6 Demonstrat i Teorema 5.2
5.7 Construit i matricile generatoare G(1, 3), G(2, 3), G(r, 4), r = 0, 1, 2.
5.8 Demonstrat i ca G(r, m) are k + 1 linii, unde k este dat de Propozit ia 5.2
5.9 Calculat i numarul de 2 - spat ii ane n geometria euclidiana peste Z
m
2
.
5.10 Este orice funct ie booleana funct ia caracteristica a unui anumit spat iu an ?
Caracterizat i astfel de funct ii.
5.11 Orice funct ie caracteristica a unui (r + 1) - spat iu an apart ine codului dual
lui RM(r, m).
5.12 Sa se arate ca RM(2, 5) este auto - dual. Sa se determine toate codurile
RM auto - duale.
Prelegerea 6
Decodicarea codurilor Reed -
Muller
Avantajul principal al codurilor Reed - Muller consta n facilitatea decodicarii,
facilitate bazata pe o tehnica diferita de cea de pan a acum. Aceasta tehnica, numit a
decodicare majoritara nu apeleaza la ideea de sindrom, ci corecteaza direct bit ii
modicat i, folosind diverse proprietat i ale cuvantului recept ionat.
6.1 Decodicarea majoritara
Sa prezent am pe scurt principiile generale ale decodicarii majoritare. Vom ncepe
cu un exemplu foarte simplu:
Exemplul 6.1 Fie codul binar cu repetit ie de lungime 2n + 1 :
C = {00 . . . 0
. .
2n+1
, 11 . . . 1
. .
2n+1
}.
Ca sistem de ecuat ii de control se poate lua
_
_
x
1
+ x
2
= 0
x
1
+ x
3
= 0
.
.
.
x
1
+ x
2n+1
= 0
Daca se recept ioneaza cuvantul y = x +e, la nlocuirea lui n sistem, acesta devine
y
1
+ y
i
= e
1
+ e
i
, 2 i 2n + 1.
Daca mai mult de n din cele 2n expresii y
1
+y
i
iau valoarea 1, aceasta nseamna
ca:
Au aparut mai put in de n erori, printre care si pe prima pozit ie (e
1
= 1), sau
Au aparut mai mult de n erori, dar nu pe prima pozit ie (e
1
= 0).
Din aceste doua variante, prima este mai probabila. Deci valoarea majoritara pe
care o iau cele n valori y
1
+ y
i
va valoarea lui e
1
.
Denit ia 6.1 Fie A
n,k
un cod liniar. Un set de ecuat ii de control pentru A
n,k
este
ortogonal pe mult imea de pozit ii P {1, 2, . . . , n} daca si numai daca:
61
62 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER
1. i P, termenul x
i
apare (cu coecient nenul) n ecare ecuat ie;
2. i P, termenul x
i
apare cel mult ntr-o ecuat ie.
Decodicarea se realizeaza caracter cu caracter, dupa urmatorul procedeu:
Fie a = a
1
. . . a
n
cuvantul recept ionat si i (1 i n) o pozit ie.
Se construieste mult imea maximala de ecuat ii de control ortogonale pe pozit ia
i.
Fie e
i
valoarea obt inut a n majoritatea acestor ecuat ii. Al i-lea caracter de-
codicat este a
i
+ e
i
.
Exemplul 6.2 Fie dualul (15, 11) - codului Hamming cu matricea de control
H =
_
_
_
_
_
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
_
_
_
_
_
Pentru ecare pereche de coloane distincte din H exista o a treia coloana astfel ncat
suma celor trei coloane este 0. Deci, ecare cuvant de pondere 3 al codului Hamming
da o ecuat ie de control cu trei termeni pentru codul dual; n acest fel se obt ine pentru
ecare caracter x
i
cate un sistem de 7 ecuat ii ortogonale pe pozit ia i. Astfel,
pentru x
1
ele sunt: x
1
= x
2
+ x
3
= x
4
+ x
5
= x
6
+ x
7
= x
8
+ x
9
= x
10
+ x
11
=
x
12
+ x
13
= x
14
+ x
15
;
pentru x
2
: x
2
= x
1
+x
3
= x
4
+x
6
= x
5
+x
7
= x
8
+x
10
= x
9
+x
11
= x
12
+x
14
=
x
13
+ x
15
, etc.
Codul are distant a d = 8; deci poate corecta maxim 3 erori.
Daca n mesajul primit y apar cel mult 3 erori, atunci un sistem de ecuat ii
ortogonal pe x
1
va avea cel mult trei ecuat ii care sa dea pentru x
1
o valoare gresita
si cel put in cinci cu valoarea calculata corect. Valoarea gasita majoritar va cea n
care se decodica primul caracter.
Procedeul se reia pentru y
2
, y
3
, . . ..
Sa presupunem de exemplu ca s-a recept ionat mesajul 001011110101011. Pentru
decodicarea primului caracter vom calcula sumele
0 + 1, 0 + 1, 1 + 1, 1 + 0, 1 + 0, 1 + 0, 1 + 1.
Se obt in 5 valori de 1 si doua de 0; deci, primul simbol este 1.
Procedand similar pentru ecare (folosind ecuat iile ortogonale corespunzatoare
ecarei pozit ii), se ajunge la cuvantul 10101011010101010.
Aceasta metoda este nu numai usor de implementat, dar are adesea si alte completari
(gen bitul de testare a paritat ii) care fac posibila corectarea mai multor erori.
A 63
6.2 Algoritm geometric de decodicare majori-
tara
Deoarece distant a unui cod RM(r, m) este d = 2
mr
, el va capabil sa corecteze
pan a la 2
mr1
1 erori.
In cele ce urmeaza vom presupune ca s-a recept ionat
cuvantul y = y
2
m
1
. . . y
1
y
0
, n care au fost modicate maxim 2
mr1
1 pozit ii.
Problema este de a determina pentru ecare i (0 i 2
m
1) daca bitul y
i
trebuie
corectat sau nu. Sau - altfel spus - de a vedea daca pozit ia lui y corespunzatoare 0
- spat iului an {p
i
} trebuie sau nu corectata.
Pentru a folosi proprietat ile codurilor Reed - Muller exprimate de spat iile ane,
vom reformula totul n maniera urmatoare:
Pentru ecare s - spat iu an L (0 s r + 1) vom cerceta daca pozit iile
cuvantului recept ionat y corespunzatoare punctelor lui L (adica acei bit i y
i
pentru
care p
i
L) sunt modicat i sau nu.
Vom da nt ai cateva not iuni si notat ii ajutatoare pentru a simplica demons-
trat iile.
Denit ia 6.2 Fie G un grup, A un subgrup al sau si x G. Se numeste subgrup
modulo A al lui G mult imea
A
x
= x + A = {x + a|a A}.
Lema 6.1 Subgrupurile unui grup modulo un subgrup arbitrar A, au urmatoarele
proprietat i:
1. a G, x G, a A
x
;
2. Daca x = y atunci A
x
A
y
= sau A
x
= A
y
;
3. Daca a, b A
x
atunci a b A;
4. x, card(A
x
) = card(A).
Demonstrat ie: Este lasat a ca exercit iu.
Teorema principala a acestui paragraf este:
Teorema 6.1 Orice s - spat iu an din geometria binara m - dimensionala este
cont inut n exact 2
ms
1 (s + 1) - spat ii ane distincte.
In plus, orice punct din
afara lui L este exact n unul din aceste (s + 1) - spat ii ane.
Demonstrat ie: I: Sa arat am ntai ca orice s - subspat iu liniar A Z
m
2
este cont inut
n exact 2
ms
1 subspat ii distincte de dimensiune s + 1.
Orice (s + 1) - spat iu care cont ine A este de forma
A = A + tb {a + tb|a A, t = 0, 1},
unde b A este un punct arbitrar xat. Aceasta rezulta imediat din faptul ca orice
baza a lui A poate extinsa la o baza a lui A.
Pentru doua puncte b, b
coincid daca si
numai daca b si b
, ecare L
ramase au
proprietatea ca nu cont in nici un punct p
i
din afara lui L pentru care y
i
este gresit.
Deci aceste spat ii au aceeasi paritate de erori ca si L, iar numarul lor este cel put in
(2
mr
1) t > t, deci majoritar. 2
Algoritm de decodicare pentru RM(r, m):
1. (Init ializare): La recept ionarea unui cuvant a Z
m
2
se considera toate
(r + 1) - spat iile ane L. Un spat iu L se numeste impar daca af
L
= 1 (f
L
este
funct ia caracteristica a spat iului an L).
In caz contrar L este par.
2. (Induct ie): Pentru ecare s = r, r 1, . . . , 0 unde (s + 1) - spat iile ane
au fost denite drept pare sau impare, se considera toate s - spat iile ane. Un
s - spat iu an L este par daca majoritatea (s + 1) - spat iilor ane care cont in
pe L sunt pare; altfel L este impar.
3. (Final): Pentru i = 0, 1, . . . , 2
m
1, se corecteaza a
i
daca si numai daca
0 - spat iul an {p
i
} este impar.
6.2. ALGORITM GEOMETRIC DE DECODIFICARE MAJORITAR
A 65
Exemplul 6.3 Sa consideram RM(1, 3) n care s-a recept ionat cuvantul
a = 11101010.
Tabelul 6.1: Primul pas al decodicarii 11101010
Plan Paritate Plan Paritate
{p
1
, p
3
, p
5
, p
7
} par {p
1
, p
3
, p
4
, p
6
} impar
{p
2
, p
3
, p
6
, p
7
} impar {p
2
, p
3
, p
4
, p
5
} par
{p
4
, p
5
, p
6
, p
7
} impar {p
0
, p
3
, p
4
, p
7
} par
{p
0
, p
2
, p
4
, p
6
} impar {p
0
, p
2
, p
5
, p
7
} par
{p
0
, p
1
, p
4
, p
5
} par {p
0
, p
1
, p
6
, p
7
} impar
{p
0
, p
1
, p
2
, p
3
} par {p
1
, p
2
, p
4
, p
7
} par
{p
1
, p
2
, p
5
, p
6
} impar {p
0
, p
3
, p
5
, p
6
} impar
Tabelul 6.2: Al doilea pas al decodicarii 11101010
Linie Paritate Linie Paritate Linie Paritate
{p
0
, p
1
} par {p
1
, p
5
} par {p
3
, p
5
} par
{p
0
, p
2
} par {p
1
, p
6
} par {p
3
, p
6
} impar
{p
0
, p
3
} par {p
1
, p
7
} par {p
3
, p
7
} par
{p
0
, p
4
} par {p
2
, p
3
} par {p
4
, p
5
} par
{p
0
, p
5
} par {p
2
, p
4
} par {p
4
, p
6
} impar
{p
0
, p
6
} impar {p
2
, p
5
} par {p
4
, p
7
} par
{p
0
, p
7
} par {p
2
, p
6
} impar {p
5
, p
6
} impar
{p
1
, p
2
} par {p
2
, p
7
} par {p
5
, p
7
} par
{p
1
, p
3
} par {p
3
, p
4
} par {p
6
, p
7
} impar
{p
1
, p
4
} par
La primul pas trebuie sa decidem care plane sunt pare si care sunt impare. De
exemplu planul L = {p
1
, p
3
, p
5
, p
7
} este par deoarece af
L
= 1110101010101010 = 0
(vezi Prelegerea V , Paragraful 5.3.1). Se obt ine Tabelul 6.1.
La pasul urmator trebuie sa decidem paritatea ecarei linii.
De exemplu, linia {p
0
, p
1
} este cont inuta n trei plane:
{p
0
, p
1
, p
4
, p
5
} (par), {p
0
, p
1
, p
2
, p
3
} (impar), {p
0
, p
1
, p
6
, p
7
} (impar).
deci, prin majoritate, {p
0
, p
1
} este para.
In mod similar se efectueaza calculele
pentru toate liniile, obt inandu-se Tabelul 6.2.
Se poate trece acum la corectarea erorilor. RM(1, 3) poate corecta maxim
2
mr1
1 = 2
311
1 = 1 erori. {p
0
} este cont inut n sapte linii, sase pare si una
impara, deci a
0
este corect, etc. Singurul bit care trebuie corectat este a
6
deoarece
{p
6
} este n sapte linii impare. Cuvantul trimis a fost deci 10101010.
Algoritmul de decodicare se bazeaza pe urmatoarea observat ie:
66 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER
Fie codul RM(r, m) si a Z
m
2
un cuvant recept ionat.
Un (r + 1) - spat iu an L este par af
L
= 0.
In matricea U
m,n
=
_
_
_
_
_
_
x
0
x
1
.
.
.
x
m1
_
_
_
_
_
_
care cont ine pe coloane toate elementele spat iului
liniar Z
m
2
, vom nota cu u
i
(0 i m1) coloanele care reprezinta baza (naturala)
a lui Z
m
2
. Deci, orice coloana w
j
, 0 j n 1 din Z
m
2
se poate scrie
w
j
=
m1
i=0
t
ij
u
i
, t
ij
{0, 1}.
Orice cuvant v Z
n
2
poate considerat indicatorul unei mult imi de cuvinte din Z
m
2
:
acele coloane din U care corespund pozit iilor din v unde se aa valoarea 1.
Exemplul 6.4 Pentru orice j = 0, . . . , n 1, cuvantul e
j
= 00 . . . 010 . . . 0 cu 1 pe
pozit ia j corespunde coloanei cuvantului de pe coloana j din U;
Cuvantul 1 = 11 . . . 1 corespunde ntregului spat iu Z
m
2
.
Propozit ia 6.1
e
j
=
m1
i=0
[x
i
+ (1 + t
ij
)1] , j, 0 j 2
m
1.
Demonstrat ie: Sa aratamnt ai ca x
i
+(1+t
ij
)1 reprezint a indicatorul acelor coloane
din U care au aceeasi componenta i ca si coloana w
j
.
Intr-adevar:
1. Daca t
ij
= 1, atunci x
i
+ (1 + t
ij
)1 = x
i
+ (1 + 1)1 = x
i
care este indicatorul
mult imii coloanelor cu 1 (ca si w
j
) pe linia i.
6.3. ALGORITM ALGEBRIC DE DECODIFICARE MAJORITAR
A 67
2. Daca t
ij
= 0, atunci x
i
+(1 +t
ij
)1 = x
i
+1 care are componentele lui x
i
cu 0
si 1 permutate, ind deci indicatorul mult imii coloanelor care au 0 (ca si w
j
)
pe linia i.
Cuvantul
m1
i=0
[x
i
+ (1 + t
ij
)1] reprezint a indicatorul mult imii acelor coloane din ma-
tricea U care au toate componentele egale cu cele ale coloanei w
j
. Cum coloanele
matricii U sunt distincte, aceasta mult ime este chiar {w
j
}, al carei indicator este e
j
.
2
Fie mesajul de informat ie a
1
a
2
. . . a
k
Z
k
2
. Ele se codica cu ajutorul (2
m
, k) -
codului Reed - Muller n cuvantul - cod
f = (f
0
, f
1
, . . . , f
n1
) =
a
1
1 + a
2
x
0
+ . . . + a
m+1
x
m1
+ a
m+2
x
0
x
1
+ . . . + a
k
x
mr
x
mr+1
. . . x
m1
.
Putem enunt a acum rezultatul principal pe baza caruia se construieste algoritmul
algebric de decodicare majoritara al codurilor R M.
Teorema 6.2 Pentru ecare componenta a
s
din mesajul de informat ie care se n-
mult este - la codicare - cu un produs de forma x
i
1
x
i
2
. . . x
ir
, exista 2
mr
sume
disjuncte (cu termeni diferit i) cont inand ecare 2
r
componente ale cuvantului - cod
corespunzator f = f
0
f
1
. . . f
n1
, care sunt toate egale cu a
s
.
Demonstrat ie: T inand cont de Propozit ia 6.1 si de faptul ca e
0
, e
1
, . . . , e
n1
consti-
tuie de asemenea o baza pentru Z
n
2
, putem scrie:
f = (f
0
, f
1
, . . . , f
n1
) =
n1
j=0
f
j
e
j
=
n1
j=0
f
j
m1
i=0
[x
i
+ (1 + t
ij
)1].
Prin urmare, ca un produs de forma x
i
1
. . . x
iu
sa e n aceasta suma, trebuie ca
t
ij
= 0 pentru i {i
1
, i
2
. . . , i
u
}. Daca notam
C(i
1
, . . . , i
j
) = {p| p =
m1
i=0
t
ip
2
i
, t
ip
= 0 daca i {i
1
, . . . , i
j
}} =
= {p| p = t
i
1
p
2
i
1
+ t
i
2
p
2
i
2
+ . . . + t
i
j
p
2
i
j
, t
ip
{0, 1}},
vom avea
f = (f
0
, f
1
, . . . , f
n1
) =
i
1
<i
2
<...<i
u
_
_
jC(i
1
,...,i
u
)
f
j
_
_
x
i
1
x
i
2
. . . x
iu
Pe de-alta parte,
f = (f
0
, . . . , f
n1
) = a
1
1+a
2
x
0
+. . .+a
m+1
x
m1
+a
m+2
x
0
x
1
+. . .+a
k
x
mr
. . . x
m1
.
Prin identicare, rezulta ca elementul a
s
, coecient al produsului x
i
1
x
i
2
. . . x
ir
este
a
s
=
jC(i
1
,...,ir)
f
j
(1)
Fie z {i
1
, . . . , i
r
}. Deoarece baza codului RM(r, m) nu cont ine monoame de
forma x
i
1
. . . x
ir
x
i
r+1
, vom obt ine prin codicare
68 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER
jC(i
1
,...,i
r
,z)
f
j
= 0 (2)
Insa, C(i
1
, . . . , i
r
, z) = C(i
1
, . . . , i
r
) [C(i
1
, . . . , i
r
) + 2
z
]
unde s-a notat C + = {x + | x C}.
Intr-adev ar, putem scrie
C(i
1
, . . . , i
r
, z) = {j| j = t
i
1
j
2
i
1
+ . . . + t
i
r
j
2
i
r
+ t
zj
2
z
} =
= {j| j = t
i
1
j
2
i
1
+ . . . + t
i
r
j
2
i
r
} {j| j = t
i
1
j
2
i
1
+ . . . + t
i
r
j
2
i
r
+ 2
z
} =
= C(i
1
, . . . , i
r
) [C(i
1
, . . . , i
r
) + 2
z
],
cele doua mult imi ale reuniunii ind disjuncte.
Deci relat ia (2) se scrie
jC(i
1
,...,ir)
f
j
+
jC(i
1
,...,ir)+2
z
f
j
= 0 si - t inand cont de (1),
avem
a
s
+
jC(i
1
,...,ir)+2
z
f
j
= 0 (3)
Din (1) si (3) rezulta urmatoarea armat ie: daca m = r +1, pentru orice simbol de
informat ie a
s
nmult it la codicare cu un produs de forma x
i
1
. . . x
i
r
exista 2
mr
= 2
sume disjuncte ((1) si (3)), ecare de cate 2
r
componente ale lui f.
Aceste doua relat ii se numesc relat ii de determinare a componentei a
s
.
Fie acum t
1
, t
2
{i
1
, . . . , i
r
}. Deoarece baza codului nu are produse de forma
x
i
1
. . . x
i
r
x
i
r+1
x
i
r+2
, vom avea
jC(i
1
,...,ir,t
1
,t
2
)
f
j
= 0. (4)
Dar C(i
1
, . . . , i
r
, t
1
, t
2
) = C(i
1
, . . . , i
r
) [C(i
1
, . . . , i
r
) + 2
t
1
] [C(i
1
, . . . , i
r
) + 2
t
2
]
[C(i
1
, . . . , i
r
) + 2
t
1
+ 2
t
2
].
Deci (4) se descompune n
jC(i
1
,...,ir)
f
j
+
jC(i
1
,...,ir)+2
t
1
f
j
+
jC(i
1
,...,ir)+2
t
2
f
j
+
jC(i
1
,...,ir)+2
t
1+2
t
2
f
j
= 0
ceea ce, t inand cont de (1) si (3) devine a
s
+ a
s
+ a
s
+
jC(i
1
,...,ir)+2
t
1+2
t
2
f
j
= 0
deci
a
s
=
jC(i
1
,...,i
r
)+2
t
1+2
t
2
f
j
(5)
Am aratat astfel ca, daca m = r + 2, atunci exista 2
mr
= 2
2
= 4 sume ((1), de
doua ori (3) pentru t
1
respectiv t
2
, si (5)) care dau pe a
s
, ecare suma cont in and 2
r
componente ale lui f. Deci, pentru a
s
existan acest caz patru relat ii de determinare.
Teorema rezulta n continuare printr-un procedeu de induct ie nita. 2
Sa vedem cum se foloseste Teorema 6.2 la decodicarea majoritara a codurilor
Reed - Muller:
Dupa cum s-a vazut, pentru ecare componenta a
s
corespunzatoare unui produs
de forma x
i
1
. . . x
ir
exista 2
mr
sume disjuncte, cont in and ecare 2
r
componente ale
lui f care - n absent a erorilor - vor toate egale cu a
s
.
6.4. DECODIFICAREA CODURILOR RM(1, M) 69
Deoarece sumele sunt disjuncte (deci termenii lor sunt elemente diferite ale
cuvantului - cod), orice eroare va afecta o singura relat ie de determinare a lui a
s
.
Prin urmare, daca apar n transmiterea cuvantului - cod f cel mult 2
mr1
1 erori
independente, putem determina - prin majoritate - pe a
s
, identic andu-l cu valoarea
a jumatate plus unu din relat iile de determinare corespunzatoare.
Dupa ce se determina n acest mod coecient ii tuturor produselor x
i
1
. . . x
ir
, se
scade din vectorul recept ionat combinat ia liniara
a
p
x
0
. . . x
r1
+ . . . + a
k
x
mr
. . . x
m1
.
noul cuvant;
2. Se calculeaza a
1
= a
H
1
m
, a
i
= a
i1
H
i
m
, 2 i m;
3. Se determina pozit ia j a celei mai mari componente (n valoare absoluta)
a lui a
m
.
Fie v(j) Z
m
2
reprezentarea binara a lui j (ncep and cu bit ii cei mai
nesemnicativi). Cuvantul decodicat este:
(1, v(j)) daca a j - a componenta a lui a
m
este pozitiva,
(0, v(j)) daca a j - a componenta a lui a
m
este negativa.
Exemplul 6.9 Fie m = 3 si G(1, 3) matricea generatoare a codului RM(1, 3). Sa
presupunem ca s-a recept ionat cuvantul a = 10101011.
Primul pas al algoritmului transform a acest cuvant n
a
H
1
3
= (0, 2, 0, 2, 0, 2, 2, 0)
a
2
= a
1
H
2
3
= (0, 4, 0, 0, 2, 2, 2, 2)
a
3
= a
2
H
3
3
= (2, 6, 2, 2, 2, 2, 2, 2).
Cea mai mare compomenta a lui a
3
este 6 pe pozit ia 1. Cum v(1) = 100 si 6 > 0,
rezulta ca a fost trimis cuvantul 1100.
Daca s-a recept ionat cuvantul a = 10001111, atunci a
= (1, 1, 1, 1, 1, 1,
1, 1) si
a
1
= a
H
1
3
= (0, 2, 2, 0, 2, 0, 2, 0),
a
2
= a
1
H
2
3
= (2, 2, 2, 2, 4, 0, 0, 0),
a
3
= a
2
H
3
3
= (2, 2, 2, 2, 6, 2, 2, 2).
Cea mai mare componenta a lui a
3
este 6 aata pe pozit ia 4. Deoarece v(4) = 001
si 6 < 0, mesajul transmis este 0001.
72 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER
6.5 Exercit ii
6.1
In codul Hamming (15, 11) sa se decodice mesajele
111100000000000, 011101000111001.
6.2 Demonstrat i Lema 6.1.
6.3 Sa se decodice cuvantul 01111100 n RM(1, 3). Vericat i corectitudinea de-
codicarii.
6.4 Sa se decodice 0111100 n RM(2, 3).
6.5 Sa se scrie toate relat iile de determinare din codul RM(2, 4).
6.6 Aceeasi problema pentru codul RM(1, 3).
6.7 Sa se decodice 1111111011111111 n RM(2, 4).
6.8 Aratat i ca orice hiperplan L n geometria euclidiana peste Z
m
2
are drept com-
plement Z
m
2
\ L tot un hiperplan.
6.9
In codul RM(1, 3), sa se decodice cuvintele
01011110, 01100111, 00010100, 11001110.
6.10 Sa se calculeze H
i
4
pentru i = 1, 2, 3, 4.
6.11
In codul RM(1, 4), sa se decodice cuvintele:
1011011001101001, 1111000001011111.
Prelegerea 7
Alte clase de coduri elementare
Inafara codurilor Hamming si Reed - Muller se pot construi si alte clase de coduri
cu proprietat i remarcabile. Vom prezenta numai cateva astfel de coduri - nu toate
liniare - punand n evident a la ecare clasa caracteristicile sale specice.
7.1 Codurile MacDonald
Fie A
n,k
un cod liniar peste Z
2
si G matricea sa generatoare.
Vom nota cu M
k,2
k
1
o matrice care cont ine toate coloanele nenule posibile cu
k elemente care se pot construi peste Z
2
. Ordinea acestor coloane este arbitrara
dar xata. Coloana i din matricea M se va numi coloana de tip i. Pentru usurint a
notat iei se admite asert iunea ca tipul de coloana i este reprezentarea n binar a
num arului zecimal i.
Deoarece codul A
n,k
nu este inuent at de operat iile elementare efectuate asupra
coloanelor din matricea generatoare (n particular permutarea de coloane), este su-
cient sa denim acest cod indicand doar num arul coloanelor de ecare tip care intr a
n component a matricii generatoare.
Se obt ine astfel reprezentarea modulara a codului A
n,k
:
N = (n
1
, n
2
, . . . , n
2
k
1
) (1)
unde n
i
este num arul coloanelor de tip i care apar (sau nu) n matricea G,
2
k
1
i=1
n
i
= n.
Exemplul 7.1 Sa luam k = 2, n = 3 si matricea generatoare G =
_
0 1 0
1 1 1
_
Avem matricea M =
_
0 1 1
1 0 1
_
(coloanele sunt reprezentarile binare ale
numerelor 1, 2, 3).
Reprezentarea modulara a codului generat de matricea G este atunci N = (2, 0, 1)
(pentru ca n G exista doua coloane de tipul 1, nici una de tipul 2 si una de tipul
3).
73
74 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
Sa introducem matricea
K
2
k
1,n
= M
T
G (2)
K are drept linii toate cuvintele nenule ale codului A
n,k
.
Fie de asemenea matricea patrata simetrica:
C
2
k
1,2
k
1
= M
T
M (3)
Astfel, pentru Exemplul 7.1, K =
_
_
_
1 0 1
0 1 0
1 1 1
_
_
_, C =
_
_
_
1 1 1
0 1 0
1 0 1
_
_
_.
Teorema 7.1 O lista a ponderilor cuvintelor codului A
n,k
se obt ine nmult ind (n
R) matricea de reprezentare modulara cu matricea C:
W
2
k
1
= NC (4)
Demonstrat ie: Scriem matricea M sub forma unei matrici linie
M = (v
1
, v
2
, . . . , v
2
k
1
)
unde v
i
(1 i 2
k
1) este coloana de tip i din matricea M.
Matricea generatoare corespunzatoare reprezent arii modulare N = (n
1
, n
2
, . . . ,
n
2
k
1
) este G = (v
1
, . . . , v
1
. .
n
1
, v
2
, . . . , v
2
. .
n
2
, . . . , v
2
k
1
, . . . , v
2
k
1
. .
n
2
k
1
)
unde n
1
+n
2
+. . . +n
2
k
1
= n. Se obt ine deci
C =
_
_
_
_
_
_
v
1
v
2
.
.
.
v
2
k
1
_
_
_
_
_
_
(v
1
, . . . , v
2
k
1
) =
_
_
_
_
_
_
v
1
v
1
v
1
v
2
. . . v
1
v
2
k
1
v
2
v
1
v
2
v
2
. . . v
2
v
2
k
1
.
.
.
v
2
k
1
v
1
v
2
k
1
v
2
. . . v
2
k
1
v
2
k
1
_
_
_
_
_
_
,
unde produsele scalare sunt efectuate n Z
2
.
Acum, W = (w
1
, w
2
, . . . , w
2
k
1
) = (n
1
, n
2
, . . . , n
2
k
1
)C, nmult ire efectuata n
R.
Prin identicare rezulta w
i
= n
1
v
1
v
i
+n
2
v
2
v
i
+. . . +n
2
k
1
v
2
k
1
v
i
.
Deoarece toate produsele scalare v
j
v
i
sunt 0 sau 1, w
i
este un num ar natural.
El este chiar ponderea cuvantului cod care ocupa linia i n matricea K.
Intr-adevar,
avem
K
2
k
1,n
=
_
_
_
_
_
_
v
1
v
1
v
1
v
1
. . . v
1
v
2
k
1
v
2
v
1
v
2
v
1
. . . v
2
v
2
k
1
.
.
.
v
2
k
1
v
1
v
2
k
1
v
1
. . . v
2
k
1
v
2
k
1
_
_
_
_
_
_
,
produsele scalare ind n Z
2
.
Deci ponderea cuvantului situat pe linia i n matricea K este:
v
i
v
1
+. . . +v
i
v
1
. .
n
1
+. . . +v
i
v
2
k
1
+. . . +v
i
v
2
k
1
. .
n
2
k
1
= n
1
v
i
v
1
+. . . +n
2
k
1
v
i
v
2
k
1
.
2
Ne punem problema de a determina un cod atunci cand se da vectorul ponderilor
cuvintelor sale (deci si ponderea minima, adica distant a Hamming). Formal, din (4)
se obt ine
7.1. CODURILE MACDONALD 75
N = WC
1
(5)
nmult ire efectuata n R. Formula este adevarata numai daca demonstram ca ma-
tricea C este inversabila.
In acest sens avem:
Teorema 7.2 Matricea C este nesingulara. Inversa ei se calculeaza nlocuind n C
pe 0 cu 1 si mpart ind toate elementele cu 2
k1
.
Demonstrat ie: I: Fiecare linie (deci si coloana) din C cont ine 1 pe 2
k1
pozit ii. Doua
linii (coloane) distincte din C au n comun 1 n 2
k2
pozit ii.
Intr-adevar, liniile lui C - la care se adauga linia nul a - formeaza un spat iu liniar
cu 2
k
cuvinte binare. Sa consideram submult imea liniilor care au 1 n componentele
i si j. Ele formeaza un subspat iu liniar cu
2
k
2
2
= 2
k2
elemente deoarece, factorizand
cu acest spat iu se obt in patru clase de resturi corepunzatoare componentelor (i, j)
de forma (0, 0), (0, 1), (1, 0), (1, 1).
Pentru a arata ca 1 apare pe ecare linie din C de 2
k1
ori se rat ioneaza similar.
II:
In aceste condit ii, putem scrie
C
2
=
_
_
_
_
_
_
2
k1
2
k2
. . . 2
k2
2
k2
2
k1
. . . 2
k2
.
.
.
2
k2
2
k2
. . . 2
k1
_
_
_
_
_
_
= 2
k2
(I +J)
unde I este matricea unitate iar J este matricea patrata cu toate elementele
egale cu 1, ambele de ordin 2
k
.
Se mai observa ca CJ = 2
k1
J. Deci
I =
1
2
k1
(2C
2
2
k1
J) =
1
2
k1
(2C
2
CJ) = C
2C J
2
k1
= CC
1
.
De aici rezulta ca C este inversabila si C
1
=
1
2
k1
(2C J). 2
Exemplul 7.2 Sa luam k = 3, n = 5. Vom avea:
M =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_, C = M
T
M =
_
_
_
_
_
_
_
_
_
_
_
_
_
1 0 1 0 1 0 1
0 1 1 0 0 1 1
1 1 0 0 1 1 0
0 0 0 1 1 1 1
1 0 1 1 0 1 0
0 1 1 1 1 0 0
1 1 0 1 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
_
,
C
1
=
1
4
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
.
Daca luam codul generat de matricea G =
_
_
_
1 0 0 1 1
0 1 0 1 0
0 0 1 0 1
_
_
_, el are reprezenta-
rea modulara N = (1, 1, 0, 1, 1, 1, 0). Vectorul ponderilor cuvintelor - cod este
76 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
W = (2, 2, 4, 3, 3, 3, 3).
Intr-adevar, cuvintele - cod sunt liniile matricii
K =
_
_
_
_
_
_
_
_
_
_
_
_
_
0 0 1 0 1
0 1 0 1 0
0 1 1 1 1
1 0 0 1 1
1 0 1 1 0
1 1 0 0 1
1 1 1 0 0
_
_
_
_
_
_
_
_
_
_
_
_
_
.
Sa determinam acum reprezentarea modulara a unui cod liniar binar n care toate
cuvintele - cod au aceeasi pondere w (si deci distant a minima va d = w). Vom
avea prin ipoteza W = (w, w, . . . , w
. .
2
k
1
).
Dupa cum am remarcat n demonstrat ia Teoremei 7.2, 1 apare pe ecare linie
din C n 2
k1
pozit ii. Rezulta (Teorema 7.2) ca n C
1
, 1 va apare pe ecare linie
(coloana) tot n 2
k1
pozit ii, n rest ind 1. Deci
N = WC
1
= (w2
(k1)
, . . . , w2
(k1)
. .
2
k
1
)
Problema enunt at a are solut ie daca w se divide cu 2
k1
; n acest caz, reprezenta-
rea modulara este de forma N = (r, r, . . . , r
. .
2
k
1
), adica ecare tip de coloana apare n
matricea generatoare de r = w 2
(k1)
ori.
Plecand de la aceste considerente, McDonald a introdus o clasa de coduri pentru
care reprezentarea modulara este de forma 0
i
1
j
. Mai exact,
n d N
2
k
1 2
k1
(1, 1, 1, . . . , 1)
2
k
2 2
k1
1 (0, 1, 1, . . . , 1)
2
k
3 2
k1
2 (0, 0, 1, . . . , 1)
. . . . . . . . .
2
k
2
u
2
k1
2
u1
(0, . . . , 0
. .
2
u
1
, 1, . . . , 1
. .
2
k
2
u
)
Aceste coduri au proprietatea ca prezinta o distant a minima foarte apropiata de
marginea Plotkin.
Sa luam de exemplu al treilea cod din tabelul de sus. Reamintim, marginea
Plotkin este
d
nq
k1
(q 1)
q
k
1
.
_
0 daca x = 0
1 daca x este un patrat nenul
1 n rest
Vom nota elementele lui Z
q
cu a
0
, a
1
, . . . , a
q1
unde a
0
= 0, cu I
n
matricea unitate
de ordin n si cu J
n
matricea patrata de ordin n cu toate elementele egale cu 1.
Teorema 7.5 Matricea Paley S
q
= (s
ij
) de ordin q denita prin s
ij
= (a
i
a
j
),
0 i, j < q are urmatoarele proprietat i:
1. S
q
J
q
= J
q
S
q
= 0;
2. S
q
S
T
q
= qI
q
J
q
;
3. S
T
q
= (1)
q1
2
S
q
.
Demonstrat ie: Este lasat a ca exercit iu.
Exemplul 7.4 Pentru q = 3, matricea Paley este S
3
=
_
_
_
0 1 1
1 0 1
1 1 0
_
_
_,
iar pentru q = 5, S
5
=
_
_
_
_
_
_
_
_
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
_
_
_
_
_
_
_
_
.
De remarcat ca S
T
3
= S
3
, S
T
5
= S
5
.
Teorema 7.6 Daca q = p
r
(p numar prim impar, r 1) astfel ncat q 3 (mod 4),
atunci exista o matrice Hadamard de ordin q + 1.
Demonstrat ie: Din ipoteza si Teorema 7.5, exista o matrice Paley S de ordin q.
Construim matricea C de ordin q + 1 astfel:
C =
_
_
_
_
_
0 1 . . . 1
1
1 S
1
_
_
_
_
_
7.3. CODURI PRODUS 79
Se verica faptul ca C este o matrice de conjunctura cu proprietatea C
T
= C
(q 3 mod 4 conduce la relat ia S
T
= S). Fie H = I
q+1
+C.
Avem HH
T
= (I
q+1
+ C)(I
q+1
+ C)
T
= (I
q+1
+ C)(I
q+1
+ C
T
) = I
q+1
+ C +
C
T
+CC
T
= I
q+1
+qI
q+1
= (q +1)I
q+1
, deci orice doua linii distincte ale lui H sunt
ortogonale. Rezulta ca H este matrice Hadamard de ordin q + 1. 2
Plecand de la matricile Paley se pot construi alte coduri Hadamard.
Fie S o matrice Paley de ordin n (conform Teoremei 7.5). Un cod Hadamard de
ordin n poate denit cu 0, 1 si cu liniile matricilor
1
2
(S+I
n
+J
n
),
1
2
(S+I
n
+J
n
).
Acesta este un cod care cont ine 2n + 2 cuvinte - cod de lungime n si are distant a
d =
n 1
2
.
Exemplul 7.5 Pentru n = 9 = 3
2
, codul este format din cele 20 cuvinte care
formeaza linile matricii
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 0 0 0 0 0 0 0 0
J P
2
P
P J P
2
P
2
P J
I J P
2
J P
J P I J P
2
J P
2
J P I
1 1 1 1 1 1 1 1 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
unde P =
_
_
_
0 1 0
0 0 1
1 0 0
_
_
_, iar I si J sunt matricile unitate, respectiv cu toate ele-
mentele egale cu 1, ambele de ordin 3.
7.3 Coduri produs
Sa consideram un cod de lungime n = n
1
n
2
.
In loc sa scriem cuvintele sale sub
forma de linii de lungime n, le putem reprezenta ca matrici cu n
1
linii si n
2
coloane.
Un mod simplu de a realiza acest lucru este de a scrie cuvantul cod a = a
0
a
1
. . . a
n1
ca o matrice X = [x
ij
], 0 i n
1
1, 0 j n
2
1, unde x
ij
= a
in
2
+j
. Aceasta
va numita scrierea canonica.
Denit ia 7.3 Fie A
1
, A
2
doua coduri liniare de lungime n
1
respectiv n
2
. Se cons-
truieste codul A de lungime n
1
n
2
ca mai sus (cu scrierea canonica). Spunem ca
A = A
1
A
2
este codul produs al lui A
1
cu A
2
daca si numai daca A consta din
toate cuvintele - cod n care reprezentarea matriciala verica proprietat ile:
Fiecare coloana a unei matrici este un cuvant - cod din A
1
;
Fiecare linie a unei matrici este un cuvant - cod din A
2
.
De remarcat ca prin permutarea lui A
1
cu A
2
se obt ine un cod echivalent.
80 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
Teorema 7.7 Daca A
1
este un (n
1
, k
1
) - cod liniar si A
2
este un (n
2
, k
2
) - cod
liniar, atunci A
1
A
2
este un (n
1
n
2
, k
1
k
2
) - cod liniar.
Demonstrat ie: Fie G
i
, i = 1, 2 matricile generatoare ale celor doua coduri, pe care
le presupunem n forma esalonat canonica, deci G
i
= [I
k
i
B
n
i
k
i
]. Vom nota cu
g
(1)
i
(1 i k
1
) respectiv g
(2)
i
(1 i k
2
) liniile celor doua matrici.
Denim matricile X
ij
(1 i < k
1
, 1 j < k
2
) de dimensiune n
1
n
2
, astfel:
Primele k
1
linii sunt 0 cu except ia liniei i care este g
(2)
j
;
Primele k
2
coloane sunt 0 cu except ia coloanei j care este g
(1)
i
T
.
Pentru k > k
1
, linia k este g
(1)
ik
g
(2)
j
;
Pentru k > k
2
, coloana k este g
(2)
jk
g
(1)
i
T
.
Schematic, o astfel de matrice arata astfel:
X
ij
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0 . . . 0 0 . . . 0
. . . . . . . . . . . . . . . . . .
1 x x x
. . . . . . . . . . . . . . . . . .
0 . . . 0 0 . . . 0
0 x 0
. . . x . . . X
0 x 0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Evident, X
ij
reprezinta un cuvant - cod din A
1
A
2
si orice alt cuvant - cod este
o combinat ie liniara formata din aceste matrici. Deci X
ij
, 1 i k
1
, 1 j k
2
formeaza o baza a codului A
1
A
2
.
Submatricile formate din primele k
1
linii si k
2
coloane din X
ij
formeaza mult imea
mesajelor de informat ie. 2
Exemplul 7.6 Sa consideram codurile liniare binare A
1
, A
2
generate de matricile
G
1
=
_
1 0 1
0 1 1
_
respectiv G
2
=
_
1 0 1
0 1 0
_
.
Deci n
1
= n
2
= 3, k
1
= k
2
= 2. Sunt 4 matrici X
ij
, toate de dimensiune 3 3:
X
11
=
_
_
_
1 0 1
0 0 0
1 0 1
_
_
_ X
12
=
_
_
_
0 1 0
0 0 0
0 1 0
_
_
_
X
21
=
_
_
_
0 0 0
1 0 1
1 0 1
_
_
_ X
22
=
_
_
_
0 0 0
0 1 0
0 1 0
_
_
_.
Sa consideram mesajul de informat ie 1011 pe care l asezam sub forma unei matrici
2 2 :
_
1 0
1 1
_
. Matricea - cod va
7.3. CODURI PRODUS 81
X
11
+X
21
+X
22
=
_
_
_
1 0 1
0 0 0
1 0 1
_
_
_+
_
_
_
0 0 0
1 0 1
1 0 1
_
_
_+
_
_
_
0 0 0
0 1 0
0 1 0
_
_
_ =
_
_
_
1 0 1
1 1 1
0 1 0
_
_
_.
Se observa ca liniile sunt cuvinte - cod din A
2
, iar coloanele sunt cuvinte - cod
din A
1
.
Propozit ia 7.1 Matricea generatoare a codului produs A
1
A
2
este G
1
G
2
unde
G
1
si G
2
sunt matricile generatoare ale celor doua coduri, iar
este produsul
Kronecker.
Demonstrat ie: Fie (n
1
, k
1
), (n
2
, k
2
) cele doua coduri, cu matricile generatoare G
1
respectiv G
2
, si sa consideram matricea G
1
G
2
obt inuta prin produsul Kronecker
(Prelegerea 6, Denit ia 6.3). Daca se ia linia k
2
i + j din aceasta matrice si se
reprezint a sub forma canonica ca o matrice n
1
n
2
, se obt ine exact matricea X
ij
din
construct ia Teoremei 7.7. Cum X
ij
reprezinta o baza pentru codul A
1
A
2
, rezulta
ca G
1
G
2
este matricea sa generatoare.
Din acest motiv, n primii ani, codurile produs erau numite si coduri Kronecker.
2
Exemplul 7.7 Matricea generatoare a codului produs A
1
A
2
din Exemplul 7.6
este:
G = G
1
G
2
=
_
G
2
0 G
2
0 G
2
G
2
_
=
_
_
_
_
_
1 0 1 0 0 0 1 0 1
0 1 0 0 0 0 0 1 0
0 0 0 1 0 1 1 0 1
0 0 0 0 1 0 0 1 0
_
_
_
_
_
.
Se observa imediat ca prin plierea celor patru linii din aceasta matrice se obt in
matricile X
ij
din Exemplul 7.6.
Sa consideram din nou mesajul de informat ie 1011. Prin nmult irea cu matricea
G se ajunge la cuvantul - cod 101111010 care - scris ca o matrice 3 3 - coincide
cu rezultatul din Exemplul 7.6.
Teorema 7.8 Distant a codului A
1
A
2
este egala cu d
1
d
2
(d
1
si d
2
ind distant ele
codurilor A
1
respectiv A
2
).
Demonstrat ie: Daca A
i
are lungimea n
i
(i = 1, 2), sa consideram o matrice X
reprezent and un cuvant - cod nenul din A
1
A
2
(am vazut ca asemenea cuvinte
exista). Putem gasi deci cel put in o linie cu minim d
2
elemente nenule. Fiecare
astfel de element se aa pe o coloana cu minim d
1
elemente nenule; deci matricea
X are minim d
1
d
2
elemente nenule. 2
Exemplul 7.8 Cele doua coduri din Exemplul 7.6 au d
1
= d
2
= 2 (se gasesc imediat
cuvintele - cod si se observa ca ponderea lor nenula minima este 2). Deci codul produs
va avea distant a d = 2 2 = 4. De remarcat ca - desi A
1
si A
2
nu pot corecta erori,
A
1
A
2
este capabil sa corecteze o eroare.
Codurile produs - desi cunoscute de la nceputul anilor
60, au devenit foarte impor-
tante odata cu folosirea lor n transmisiile telefonice far a r si codicarea informat iei
pe CD - uri. Vom relua ulterior - pe larg - analiza acestor coduri.
82 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
7.4 Coduri optimal maximale
Fie mult imea A Z
n
q
. Se numeste diametrul mult imii A num arul
d(A) = min
x,yA
d(x, y), x = y.
De remarcat ca, daca A este cod liniar, atunci d(A) este chiar distant a minima a
codului.
Denit ia 7.4 A este mult ime optimala de distant a minima d daca:
d(A) = d;
x Z
n
q
\ A, d(A {x}) < d.
Exemplul 7.9
In Z
6
2
, urmatoarele mult imi sunt optimale de distant a minima 3:
A = {000000, 010101, 101010, 111111}
B = {000000, 101010, 011001, 000111, 110100, 111111}
Denit ia 7.5 Se numeste mult ime optimala cardinal maximala de distant a d o
mult ime optimala cu un numar maxim de elemente.
Vom nota acest num ar cu a(n, d).
Exemplul 7.10 Mult imile date n Exemplul 7.9 sunt optimale dar nu cardinal ma-
ximale pentru distant a 3. O mult ime optimala cardinal maximala din Z
6
2
pentru
d = 3 este:
C = {000000, 001011, 010101, 011110, 100110, 101101, 110011, 111000},
deci a(6, 3) = 8.
Denit ia 7.6 Un cod liniar A de distant a d este optimal daca A este mult ime
optimala cardinal maximala de distant a d.
Spunem ca un astfel de cod satisface condit ia max - min, deoarece are un numar
maxim de vectori aat i la distant a minima d.
Nu se cunosc algoritmi de construct ie a unor astfel de coduri.
In aceasta sect iune
vom da cateva condit ii necesare pentru codurile optimale.
Teorema 7.9
Intr-un cod optimal maximal A de distant a minima d (d < n),
a(n, d) q a(n 1, d).
Demonstrat ie: Putem presupune - far a a micsora generalitatea - ca primul caracter
al codului este caracter de informat ie.
Fie K mult imea cuvintelor din A care au 0 pe prima componenta. Cum pe prima
componenta pot apare q caractere distincte, va rezulta
card(K) =
a(n, d)
q
.
7.4. CODURI OPTIMAL MAXIMALE 83
K este un cod cu distant a d n care toate cuvintele au 0 pe prima pozit ie. Daca
eliminam aceasta component a, se obt ine un cod din Z
n1
q
, tot de distant a d, cu
acelasi numar de cuvinte. Acest cod nu este neaparat optim, deci condit ia va
a(n 1, d)
a(n, d)
q
Mai trebuie facut a observat ia ca a(n 1, n 1) = q pentru ca un cod cu repetit ie
este optimal maximal de distant a minima egala cu lungimea cuvintelor - cod. 2
Corolarul 7.1 Daca j d, atunci q
nj
a(j, d) a(n, d).
Demonstrat ie: Din Teorema 7.9 rezulta inegalitat ile:
q a(n 1, d) a(n, d)
q a(n 2, d) a(n 1, d)
. . .
q a(n i, d) a(n i + 1, d)
Prin nmult ire se obt ine q
i
a(ni, d) a(n, d), dupa care se face notat ia ni = j.
2
Teorema 7.10 Fie A un cod liniar optimal maximal de distant a minima d.
Daca n <
qd
q 1
, atunci numarul simbolurilor de informat ie verica inegalitatea
k n
dq 1
q 1
+ 1 +log
q
d.
Demonstrat ie: Deoarece A este cod liniar, numarul de simboluri de informat ie va
dat de relat ia a(n, d) = q
k
.
Rescriem inegalitatea lui Plotkin sub forma d(q
k
1) nq
k1
(q 1), sau
q
k1
(dq +n nq) n.
Deoarece - din ipoteza - dq +n nq > 0, avem q
k
dq
dq +n nq
, sau
a(n, d)
dq
dq +n nq
.
Fie
dq 1
q 1
= i +f unde i =
_
dq 1
q 1
_
, f =
_
dq 1
q 1
_
.
Deci qd 1 = (q 1)i + (q 1)f si avem
a(i, d)
dq
dq +i iq
=
dq
dq (q 1)i
=
dq
1 + (q 1)f
.
Folosind Corolarul 7.1 si i d (deoarece
_
dq 1
q 1
_
=
_
d +
d 1
q 1
_
d), rezulta
a(n, d) q
ni
a(i, d)
q
n
dq1
q1
+f
1 + (q 1)f
qd
Dezvolt and n serie Taylor, q
f
1 + (q 1)f (f < 1) si deci
a(n, d) q
n
dq1
q1
qd,
sau q
k
q
n
dq1
q1
qd, de unde - prin logaritmare - se obt ine relat ia din enunt . 2
84 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
7.5 Exercit ii
7.1 Sa se construiasca vectorul ponderilor pentru codurile Hamming (7, 4) si
RM(1, 3).
7.2 Folosind vectorul ponderilor, sa se construiasca numaratorul de ponderi al unui
cod liniar.
7.3 Sa se construiasca matricile generatoare si matricile K pentru codurile
McDonald cu k = 2, 3, 4.
7.4 Sa se construiasca matricile si codurile Hadamard pentru n = 4 si n = 8.
7.5 Sa se arate ca daca H
n
este o matrice Hadamard, atunci H
n
H
T
n
= nI
n
.
7.6 Sa se construiasca o matrice Hadamard de ordin 12.
7.7 Sa se arate ca matricea Hadamard H
8
genereaza (8, 4) - codul Hamming binar
extins.
7.8 Sa se construiasca codurile produs pentru codul cu repetit ie de lungime n (A
1
)
si codul cu repetit ie de lungime p (A
2
).
7.9 Sa se construiasca matricea generatoare a codului produs A
1
A
2
unde A
1
= A
2
este codul Hamming (7, 4).
7.10 Aceeasi problema pentru codul RM(1, 3).
7.11 Demonstrat i Teorema 7.5.
7.12 Folosind matricile Paley, sa se construiasca codurile Hadamard de ordin 5 si
respectiv 7.
7.13 Sa se arate ca un cod binar liniar optimal maximal de distant a minima d are
cel put in 2d 1 log
2
d simboluri de control.
Prelegerea 8
Circuite liniare si extensii Galois
8.1 Circuite liniare pentru operat ii elementare
_
_
- - - -
6 6
6
, ,
- - -
6 6
5 2
+ +
De remarcat ca multiplicarea cu 1 se face prin arc simplu (fara conector), iar
multiplicarea cu 0 revine la suprimarea arcului.
In cazul operat iilor cu polinoame
din Z
2
[X], tot i multiplicatorii se reduc la aceste doua cazuri.
8.1. CIRCUITE LINIARE PENTRU OPERAT II ELEMENTARE 87
Daca dorim sa nmult im h(X) cu polinomul a(X) = 2X + 8 (vector a = (8, 2)),
circuitul liniar va funct iona 5 tact i (pana cand toate elementele de nmagazinare
revin la 0); comportarea sa este relatata de tabelul:
Nr. tact Intrare
Inmagazinare Iesire
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).
Aceeasi operat ie de nmult ire este realizata si de circuitul liniar:
Figura 8.2:
_
_
_
_
`
_
`
_
`
_
`
_
`
_
- -
6 6 6 6 6
, , , ,
6
- - - - - - - - -
6 6 6 6
b
0
b
1
b
2
b
n1
b
n
+ + + +
. . .
. . .
Exemplul 8.2 Circuitul liniar care realizeaza nmult irea cu polinomul
h(X) = 1 + X + X
4
peste Z
2
este
_
_
-
6
6
,
- - - - - - -
6
,
+ +
deoarece vectorul corespunzator polinomului h(X) este h = (1, 1, 0, 0, 1).
B. Fie h(X) = h
0
+ h
1
X + . . . + h
n
X
n
si g(X) = g
0
+ g
1
X + . . . + g
n
X
n
doua
polinoame xate. Un circuit liniar care sa realizeze operat ia
a(X)h(X) + b(X)g(X)
pentru doua polinoame arbitrare a(X), b(X), este:
88 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS
_
_
_
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
- -
?
- -
6 6
,
6
,
6
,
6 6 6 6
? ? ?
, , ,
? ? ? ?
- - - - - - - -
b(X)
a(X)
g
0
g
1
g
n1
g
n
h
0
h
1
h
n1
h
n
+ + + +
. . .
. . .
. . .
De remarcat ca polinoamele g(X) si h(X) pot avea grade diferite; n acest caz se
alege n ca ind gradul cel mai mare si se completeaza celalalt polinom cu coecient i
nuli pan a la gradul n.
Exemplul 8.3 Fie polinoamele g(X) = 1+X
2
, h(X) = X+X
2
+X
4
cu coecient i
n Z
2
; deci vectorii corespunzatori vor h = (0, 1, 1, 0, 1), g = (1, 0, 1, 0, 0). Cir-
cuitul liniar care realizeaza expresia a(X)h(X) + b(X)g(X) este:
_
_
_
-
?
?
,
- - - - - - - -
-
6 6 6
, ,
b(X)
a(X)
+ + +
C. Circuit liniar de mpart ire cu un polinom.
Fie polinomul (xat) g(X) = g
0
+ g
1
X + . . . + g
k
X
k
, g
k
= 0. Un circuit liniar
care realizeaza mp art irea unui polinom arbitrar a(X) = a
0
+ a
1
X + . . . + a
n
X
n
la
g(X) este:
Figura 8.3:
_
_
_
_
- - - - - - - -
6
? ?
,
?
,
6
?
-
? ?
g
0
g
1
g
k1 g
1
k
a(X) + + +
. . .
. . .
Init ial, toate cele k elemente de nmagazinare cont in 0. La intrare, timp de
n + 1 tact i se introduc coecient ii polinomului a(X) (n ordinea descrescatoare a
puterilor).
In primii k tact i, iesirea va scoate numai 0. Primul coecient nenul
apare la iesire la momentul k +1 si este a
n
g
1
k
(operat ii n inelul coecient ilor celor
doua polinoame) - coecientul termenului X
nk
din cat.
Pentru ecare coecient q
j
al catului, polinomul q
j
g(X) trebuie scazut din dem-
part it; aceasta operat ie se realizeaza printr-un procedeu de conexiune invers a (feed-
back).
8.1. CIRCUITE LINIARE PENTRU OPERAT II ELEMENTARE 89
Dupa momentul n+1 (cand au intrat tot i coecient ii polinomului a(X)) la iesire
s-a obt inut catul q(X) al mp art irii la g(X), iar n elementele de nmagazinare se
gasesc coecient ii restului.
Exemplul 8.4 Un circuit liniar de mpart ire (peste Q) la polinomul g(X) = 2 +X
este:
`
_
_
- - -
6
-
?
2
+
Exemplul 8.5 Fie polinomul g(X) = 1 + X
2
+ X
5
+ X
6
Z
2
[X]. Circuitul care
realizeaza mpart irea este:
_
_
_
- - - - - - - - -
6
? ?
,
?
, -
+ + +
Sa luam polinomul a(X) = 1 + X
4
+ X
5
+ X
7
+ X
9
+ X
10
pe care sa-l mpart im n
Z
2
la polinomul g(X). Se obt ine catul X
4
+ X si restul X
5
+ X
3
+ X + 1.
Circuitul funct ioneaza 11 tact i. Etapele prin care trece n efectuarea acestei
mpart iri sunt reprezentate de tabelul urmator:
Nr. tact Intrare Elemente de nmagazinare Iesire
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 si (0, 1, 0, 0, 1) - scris mai gros si n
ordine inversa pe ultima coloana - reprezinta restul 1 +X +X
3
+X
5
respectiv catul
X + X
4
mpart irii lui a(X) la g(X).
90 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS
D. Circuitul liniar are realizeaza nmult irea cu polinomul h(X) = h
0
+ h
1
X +
. . . + h
n
X
n
urmata de mp art irea la polinomul g(X) = g
0
+ g
1
X + . . . + g
n
X
n
este:
`
_
_
_
_
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
- -
6 6 6
,
6
,
6 6 6 6
- - - - - - - -
6
6
-
?
,
? ?
,
? ? ?
g
0
g
1
g
n1 g
1
n
+ + + +
h
0
h
1
h
n1
h
n
. . .
. . .
. . .
Cand gradele polinoamelor sunt diferite, se construieste nt ai circuitul liniar co-
respunzator polinomului de grad maxim, dupa care se completeaza cu circuitul cores-
punzator celuilalt polinom.
Exemplul 8.6 Sa luam polinoamele h(X) = 1 + X + X
3
, g(X) = 2 + X + X
4
cu
coecient i n Z
3
. Circuitul liniar care realizeaza nmult irea cu h(X) si mpart irea la
g(X) este
_
_
_
`
_
-
6 6
,
6
,
- - - - - - -
6
?
-
?
,
?
2
+ + +
Deoarece calculele se fac n Z
3
, 2 = 1, 1 = 2, si 1
1
= 1.
Pentru intrarea a(X) = 1 +2X +2X
2
, comportarea circuitului este urmatoarea:
0 0 0 0
2 2 2 0 2
2 1 2 2 2 2
1 0 0 2 0 2
ceea ce corespunde catului 2 + 2X si restului 2X
2
.
De remarcat ca primul coecient (de grad maxim) al catului este scos de circuit
cu o ntarziere de grad(g(X)) grad(f(X)) = 1 tact.
8.2. EXTENSII GALOIS 91
Exemplul 8.7 Un circuit liniar pentru nmult irea cu h(X) = 1 X
2
+ 2X
4
si
mpart irea la g(X) = 3 2X + X
2
, ambele din Z[X], este:
_
_
_
`
_
`
_
`
_
`
_
-
6 6
,
6
- - - - - -
6
?
, -
?
? ?
6
3 2
1 2
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 catul este 2X
3
7X 12 iar restul 34 2X.
De remarcat ca circuitul este lasat sa funct ioneze grad(h(X)) grad(f(X)) = 2
tact i n plus (prin introducerea de zero-uri), pentru golirea elementelor de nmagazi-
nare necontrolate de mpart itor.
8.2 Extensii Galois
Fie q un numar prim si g(X) = g
0
+ g
1
X + . . . + g
n
X
n
Z
q
[X]. Vom considera
algebra polinoamelor modulo g(X).
Fiind dat un polinom oarecare din Z
q
[X], clasa sa de resturi modulo g(X) se
gaseste mp art ind polinomul respectiv cu g(X). Restul mpart irii specica clasa de
resturi respectiva.
Doua polinoame carora le corespunde acelasi rest la mpart irea cu g(X) sunt
echivalente, intr and n aceeasi clasa de resturi modulo g(X).
Fiecare clasa de resturi modulo g(X) se reprezint a prin polinomul (unic) de grad
strict mai mic decat n, care apart ine clasei respective. Tot i acesti reprezentant i pot
considerat i ca polinoame de gradul n 1, av and eventual coecient 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 Z
q
(prin
completare eventual cu zerouri).
Operat iile n algebra claselor de resturi sunt:
{a(X)} +{b(X)} = {a(X) + b(X)}
c{a(X)} = {ca(X)}, c Z
q
{a(X)}{b(X)} = {a(X)b(X)}
92 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS
toate calculele ind facute modulo g(X).
Evident, {0} = {g(X)}, unde {0} este polinomul de grad n1 cu tot i coecient ii
nuli (sau vectorul cu n componente zero). Vom nota {0} = 0.
Pentru un polinom s(X) Z
q
[X], clasa de resturi modulo g(X) se obt ine foarte
usor. Teorema mpart irii cu rest da:
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.
Sa reluam circuitul liniar de mpart ire denit n Figura 8.3, n care facem urma-
toarele modicari (vezi Figura 8.4):
Se neglijeaza intrarea si iesirea;
La momentul init ial elementele de nmagazinare cont in coecient ii unui poli-
nom b(X) = b
0
+ b
1
X + . . . + b
n1
X
n1
.
Figura 8.4:
b
0
_
b
1
_
b
n1
_
- - - - - -
6
6
?
,
?
?
?-
?
,
?
g
0
g
1
g
n1 g
1
n
+ +
. . .
. . .
La urmatorul tact, n elementele de nmagazinare se obt in coecient ii polinomu-
lui:
b
(X) = g
0
g
1
n
b
n1
+ (b
0
g
1
g
1
n
b
n1
)X + (b
1
g
2
g
1
n
b
n1
)X
2
+ . . .
+(b
n2
g
n1
g
1
n
b
n1
)X
n1
=
= b
0
X +b
1
X
2
+. . . +b
n1
X
n
b
n1
X
n
g
1
n
b
n1
(g
0
+g
1
X +. . . +g
n1
X
n1
) =
= Xb(X) g
1
n
b
n1
g(X).
Daca notam = {X} ({X} este clasa de resturi a polinomului X), din relat ia
de mai sus se obt ine:
b
() = {b
n
= g
0
+g
1
{X}+. . .+g
n
{X}
n
= g
0
+g
1
{X}+. . .+g
n
{X
n
} =
{g
0
+ g
1
X + . . . + g
n
X
n
} = {g(X)} = 0.
2. Folosind acelasi rat ionament, se obt ine pentru orice polinom f(X) cu
grad(f(X)) < n, ca f() = {f(X)} = 0, deoarece toate polinoamele ne-
identic nule de grad strict mai mic decat n apart in la clase de resturi distincte.
2
Sa presupunem acum ca g(X) Z
q
[X] este un polinom ireductibil. Conform
Teoremei 8.1, = {X} este rad acina a lui g(X). Acest element poate considerat
e ca polinom de grad n 1 (cu tot i coecient ii nuli nafara de cel al lui X), e ca
vector cu n componente (0, 1, 0, . . . , 0).
Vom nota cu GF(q
n
) mult imea vectorilor din Z
n
q
, sau - echivalent:
- mult imea polinoamelor de grad n 1 cu coecient i n Z
q
, sau
- mult imea claselor de resturi modulo polinomul g(X) Z
q
[X], ireductibil
peste Z
q
.
GF(q
n
) se numeste extensia Galois de grad n a lui Z
q
.
Spunem ca GF(q
n
) se obt ine prin adaugarea la Z
q
a unei radacini a polinomului
g(X) Z
q
[X] de grad n, ireductibil peste corpul de baza Z
q
.
Observat ie: Procedeul de trecere de la Z
q
la GF(q
n
) este similar trecerii de la
corpul numerelor reale R la cel complex C, prin adaugarea rad acinii i = {X} n
algebra claselor de resturi modulo 1 + X
2
, ireductibil peste R. Putem considera
mult imea C a numerelor complexe e ca mult imea polinoamelor de grad 2 1 =
1, a + bi cu a, b R, e ca mult imea vectorilor (a, b) cu doua componente reale.
Daca polinomul g(X) Z
q
[X] este ireductibil peste Z
q
si 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, introducand la momentul
init ial n elementele de nmagazinare coecient ii polinomului b(X) = 1 (adica vec-
torul (1, 0, . . . , 0)). Conform celor observate mai sus, la momentul urmator se obt ine
{Xb(X)} = {X} = , dupa care urmeaza pe rand
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 Z
2
si = {X} n algebra
claselor de resturi modulo 1+X+X
4
. Circuitul liniar care va genera toate elementele
nenule din GF(2
4
) este:
_
-
6
?
,
- -
?
- - -
+
unde, la momentul init ial, n elementele de nmagazinare este vectorul (1, 0, 0, 0).
Conform Teoremei 8.1, este o radacina a polinomului 1 + X + X
4
, adica
1 + +
4
= 0.
Lasand circuitul sa funct ioneze, n elementele de nmagazinare se obt in toate ele-
mentele lui GF(2
4
), pe care le interpretam e ca vectori cu patru componente peste
Z
2
, e ca polinoame de gradul 3 n cu coecient i n Z
2
94 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS
0
= 1 1 0 0 0
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 ca polinomul 1 + X + X
4
este primitiv, puterile lui epuizand tot i
vectorii nenuli din GF(2
4
) = {0,
0
, , . . . ,
14
}.
Exemplul 8.9 Tabelul din exemplul precedent descrie operat ia de nmult ire din
GF(2
4
), generata de radacina a polinomului primitiv 1 + X + X
4
. Daca s-ar
alege ca radacina a altui polinom primitiv - de exemplu 1+X
3
+X
4
, se va genera
tot GF(2
4
), dar ntr-o alta ordine. Lasam ca exercit iu aceasta generare.
In GF(2
4
) se poate deni si operat ia de adunare, nsumand modulo 2 cei doi
operanzi, pe componente. Astfel, daca reluam GF(2
4
) generat n Exemplul 8.8 de
radacina polinomului 1 + X + X
4
, tabela de adunare va :
+ 0
0
2
10
11
12
13
14
0 0
0
2
10
11
12
13
14
0
0
4
14
10
13
12
11
3
4
0
5
11
14
10
13
12
5
0
6
10
3
12
11
14
13
14
6
0
7
11
13
12
10
4
0
10
7
0
8
12
14
13
11
10
2
11
8
0
9
13
14
12
13
11
12
9
0
10
14
7
4
14
12
13
10
0
11
10
13
14
11
0
12
7
11
14
12
0
13
10
10
10
12
6
13
0
14
11
11
11
12
13
3
8
14
0
0
10
12
12
11
13
10
14
0
0
5
13
13
12
14
11
10
4
0
2
14
14
13
12
8
6
11
10
2
0
Fie acum a(X) = a
0
+ a
1
X + . . . + a
k1
X
k1
Z
q
[X]. Valoarea a() se obt ine
folosind circuitul de mp art ire dat n Figura 8.3, cu urmatoarele observat ii:
8.2. EXTENSII GALOIS 95
Se ignora iesirea;
Coecient ii lui a(X) se introduc la intraren ordinea descrescatoare a puterilor;
Init ial, elementele de nmagazinare cont in valorile (0, 0, . . . , 0).
Pentru calculul unei valori de forma a()
j
, (j 0 xat), se pot construi circuite
liniare care sa realizeze direct acest produs.
Exemplul 8.10 Fie GF(2
4
) element primitiv, solut ie a ecuat iei 1+X+X
4
= 0.
Polinomul a(X) va avea atunci gradul maxim 3. Fie a(X) = a
0
+a
1
X+a
2
X
2
+a
3
X
3
.
Sa construim un circuit liniar care sa efectueze a()
5
.
Folosind tabelul din Exemplul 8.8, avem:
(a
0
+a
1
+a
2
2
+a
3
3
)
5
= a
0
5
+a
1
6
+a
2
7
+a
3
8
= a
0
( +
2
) +a
1
(
2
+
3
)+a
2
(1++
2
)+a
3
(1+
2
) = (a
2
+a
3
)+(a
0
+a
2
)+(a
0
+a
1
+a
3
)
2
+(a
1
+a
2
)
3
Pentru acest polinom se va construi circuitul liniar:
a
0
a
1
a
2
a
3
_
_
_
_
-
?
6
-
6
6
6 6 6
-
? -
6
6 6
6
-
? -
6
-
? -
+ + + +
La momentul init ial, n elementele de nmagazinare se gasesc coecient ii lui a();
dupa un tact, aici vor coecient ii polinomului a()
5
.
96 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS
8.3 Exercit ii
8.1 Sa se realizeze circuite liniar (n ambele modalitat i de construct ie) care sa
efectueze nmult iri cu polinoamele:
h(X) = 1 + 2X + 3X
2
+ 4X
3
Z[X]
h(X) = 1 + 2X + X
5
Z
7
[X]
8.2 Sa se reprezinte comportamentul circuitelor realizate anterior, la nmult irea cu
polinoamele:
a(X) = 2 + 5X + X
3
, a(X) = X X
3
2X
4
, a(X) = 0.
8.3 Se da cavantul g = (1, 0, 0, 1, 0, 1). Sa se realizeze circuitul de nmult ire
cu polinomul corespunzator si sa se reprezinte comportamentul acestui circuit la
nmult irea cu a = (1) si a = (1, 1, 1, 0, 0, 0, 1).
8.4 Sa se realizeze un circuit liniar care realizeaza 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 Sa se faca mpart 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 Aceeasi problema pentru polinoamele g(X) = 2X1 si respectiv a(X) = X
3
3.
(1) :
In Q[X];
(2) :
In Z
3
[X].
8.7 Sa realizeze un circuit care sa efectueze (n Q) nmult irea cu polinomul
g(X) = 1 2X + X
3
si mpart irea cu polinomul h(X) = g(X).
8.8 Aceeasi problema pentru polinoamele:
g(X) = X 2X
3
X
4
, h(X) = 2 + X + X
3
n Z
5
[X];
g(X) = 1 + X X
6
, h(X) = X
2
4X
3
2X
5
+ 3X
7
n Z
11
[X].
8.9 Sa se rezolve problema enunt ata n Exemplul 8.9.
8.10 Sa se genereze toate puterile lui , radacina a polinomului 1 + X
2
+ X
5
Z
2
[X] si 1 + X + X
3
Z
3
[X].
8.11 Folosind elementele din Exemplul 8.10 sa se construiasca circuite de generare
pentru a(), a()
2
si a()
7
.
8.12 Sa se construiasca circuite de generare n GF(2
5
) pentru a() si a()
10
,
unde este radacina a polinomului 1 + X
2
+ X
5
Z
2
[X].
Prelegerea 9
Coduri ciclice
9.1 Relat ii de recurent a liniara
Teorema 9.1 Fie q prim si f(X) Z
q
[X], grad(f(X) = n.
In algebra poli-
noamelor modulo f(X), e I un ideal si g(X) polinomul de grad minim a carui
clasa de resturi apart ine lui I : {g(X)} I. Atunci:
1. {s(X)} I g(X)|s(X);
2. g(X)|f(X).
Demonstrat ie: (1): Fie {s(X)} I. Folosind identitatea mp art irii, avem
s(X) = b(X)g(X) + r(X), grad(r(X)) < grad(g(X)).
Trec and la clasele de resturi respective, se obt ine {s(X)} = {b(X)}{g(X)} +
{r(X)}. Cum {s(X)} I, {b(X)}{g(X)} I deoarece I este ideal, rezulta
{r(X)} I, absurd, deoarece g(X) este polinomul de grad minim a carui clasa de
resturi apart ine idealului I. Deci r(X) 0, adica s(X) = b(X)g(X).
Reciproca este imediata, deoarece din s(X) = b(X)g(X) rezulta {s(X)} =
{b(X)}{g(X)} I.
(2): Prin mpart irea polinomului f(X) cu g(X) se obt ine
f(X) = c(X)g(X) + r(X) unde grad(r(X)) < grad(g(X)).
Avem 0 = {f(X)} = {c(X)}{g(X)} +{r(X)} de unde rezulta {r(X)} I, absurd;
deci r(X) 0. 2
Teorema 9.2
In algebra polinoamelor modulo f(X), pentru orice ideal I exista un
polinom normat unic g(X) de grad minim, cu {g(X)} I.
Reciproc, pentru orice divizor normat al lui f(X) exista un ideal generat de acel
divizor.
g(X) se numeste generatorul idealului I si scriem I = ({g(X)}).
Demonstrat ie: Fie h(X) un polinom de grad minim cu {h(X)} I; vom nota
g(X) = h
1
n
h(X) unde h
n
este coecientul termenului de grad maxim din polinomul
h(X)).
Sa presupunem ca g(X), g
(X)
97
98 PRELEGEREA 9. CODURI CICLICE
se divid unul pe altul si - av and acelasi grad - difera printr-o constant a. Polinoamele
ind normate, aceasta constant a este 1. Deci g(X) = g
(X).
Reciproc, e g(X) un divizor normat al polinomului f(X) si ({g(X)}) idealul
generat de el. Un element al acestui ideal este {a(X)} ({g(X)}), deci are forma
{a(X)} = {b(X)}{g(X)} = {b(X)g(X)}. 2
Teorema 9.3 Fie q un numar prim, f(X) Z
q
[X], normat, cu grad(f(X)) = n
si e f(X) = g(X)h(X). Daca grad(h(X)) = k, atunci n algebra polinoamelor
modulo f(X), idealul ({g(X)}) are dimensiunea k.
Demonstrat ie: Sa observam ca vectorii (asociat i polinoamelor)
{g(X)}, {Xg(X)}, . . . , {X
k1
g(X)}
sunt liniar independent i.
Intr-adevar, pentru orice k elemente c
0
, . . . , c
k1
Z
q
, nu
toate nule, avem
c
0
{g(X)}+c
1
{Xg(X)}+. . . +c
k1
{X
k1
} = {(c
0
+c
1
X+. . . +c
k1
X
k1
)g(X)} = 0
deoarece s-a obt inut un polinom de grad cel mult n k + k 1 = n 1 < n.
j=0
h
j
a
i+j
= 0 (1)
unde i 0, h
k
= 1, h
0
= 0, h
j
Z
q
, a
i+j
Z
q
.
Realt iile de recurent a liniara se pot scrie si
a
i+k
=
k1
j=0
h
j
a
i+j
, i = 0, 1, . . .
O solut ie a unei astfel de relat ii de recurent a liniara este orice succesiune innita de
forma a
0
, a
1
, . . . , a
p
, . . . care verica relat ia data, cu h
0
, h
1
, . . . , h
k
date, h
0
= 0,
9.1. RELAT II DE RECURENT
A LINIAR
A 99
h
k
= 1. Relat ia va determina succesiv pe a
k
din a
0
, . . . , a
k1
, apoi pe a
k+1
din
a
1
, . . . , a
k
, s.a.m.d.
Altfel spus, condit iile init iale a
0
, a
1
, . . . , a
k1
determina o solut ie a relat iei de
recurent a liniara.
Observat ii:
Orice combinat ie liniara de solut ii ale unei relat ii de recurent a liniara este tot
o solut ie.
Solut iile pentru care condit iile init iale sunt respectiv (1, 0, . . . , 0), (0, 1, . . . , 0),
. . . , (0, 0, . . . , 1) determina orice alta solut ie. Deci, spat iul solut iilor relat iei de
recurent a (1) are dimensiunea cel mult k.
Fiind date condit iile init iale (arbitrare) a
0
, a
1
, . . . , a
k1
, solut ia relat iei de recurent a
liniara (1) corespunzatoare lor se poate obt ine folosind circuitul liniar
a
j
a
j+1
`
_
`
_
`
_
`
_
a
j+k2
a
j+k1
_ _ _
h
0
h
1
h
k2
h
k1
6
- - - - -
?
6 6
,
6
6
,
6
6
,
6
+ + +
. . .
. . .
n care, la momentul init ial, n elementele de nmagazinare se gasesc a
0
, a
1
, . . . , a
k1
.
Sa consideram acum polinomul (xat) h(X) Z
q
[X], h(X) = h
0
+ h
1
X + . . . +
h
k
X
k
, h
0
= 0, h
k
= 1, si e n cel mai mic num ar natural pentru care X
n
1 se
divide cu h(X). Notam
g(X) =
X
n
1
h(X)
(2)
Pe baza acestor date construim relat ia de recurent a liniara
a
i+k
=
k1
j=0
h
j
a
i+j
, i 0 (3)
Teorema 9.5
1. Solut iile relat iei de recurent a (3) sunt periodice, de perioada n.
2. Mult imea formata din prima perioada a ecarei solut ii, scrisa ca polinom
a(X) = a
0
X
n1
+ . . . + a
n2
X + a
n1
constituie idealul ({g(X)}) n algebra
polinoamelor modulo X
n
1.
Demonstrat ie: (a): Vom arata ca oricarui element {a(X)} ({g(X)}) cu
a(X) = a
0
X
n1
+ . . . + a
n2
X + a
n1
i corespunde o solut ie periodica
a
1
, a
1
, . . . , a
n1
, a
0
, a
1
, . . . , a
n1
, a
0
, . . .
a relat iei de recurent a (3). Evident, nu este obligatoriu ca tot i coecient ii a
i
sa
e nuli, gradul real al polinomului f(X) putand chiar zero.
100 PRELEGEREA 9. CODURI CICLICE
Fie {a(X)}{h(X)} = {c(X)}. Vom nota c(X) = c
0
+ c
1
X + . . . + c
n1
X
n1
.
Avem:
- pentru k p n 1, c
p
= h
0
a
n1p
+ h
1
a
n1p+1
+ . . . + h
k
a
n1p+k
(4)
- pentru 0 p < k, c
p
= h
0
a
n1p
+h
1
a
n1p+1
+. . . +h
p
a
n1
+h
p+1
a
0
+. . . +
h
k
a
kp1
. (5)
Conform Teoremei 9.4, daca {a(X)} ({g(X)}) atunci {a(X)}{h(X)} = 0,
adica c
p
= 0, (0 p n 1).
Considerand (a
i
)
i
ca o succesiune periodica, vom avea evident a
i+n
= a
i
, i =
0, 1, . . .. T inand cont de aceasta introducand c
p
= 0 n (4) si (5), se obt ine (3).
(b): Idealul ({g(X)}) are dimensiunea k = grad(h(X)) (Teorema 9.3) si ecare
element al acestui ideal (polinom sau vector - dupa cum este scris) va da (conform
cu (a)) o solut ie a relat iei de recurent a liniara (3). Dar spat iul solut iilor relat iei (3)
are dimensiunea cel mult k. Deci idealul ({g(X)} va da toate solut iile relat iei de
recurent a liniara (3). Mai trebuie aratat ca perioada acestor solut ii este chiar n.
Din cele de pana acum a rezultat ca perioada este cel mult n. Vom arata ca
solut ia corespunzatoare clasei de resturi {g(X)} are perioada n.
Sa presupunem prin absurd ca solut ia corespunzatoare lui {g(X)} are perioada
m < n. Dar n este divizibil cu m si deci coecient ii polinomului g(X) - considerat
ca ind de grad n 1 (prin completare cu coecient i nuli) formeaza
n
m
blocuri care
se repeta.
Deci g(X) = q(X)(1 + X
m
+ x
2m
+ . . . + X
nm
) unde q(X) este un polinom de
gradul m1. Relat ia se poate scrie si g(X) = q(X)
X
n
1
X
m
1
.
Vom avea acum (X
n
1)(X
m
1) = g(X)h(X)(X
m
1) = q(X)h(X)(X
n
1)
adica X
m
1 = q(X)h(X), ceea ce contrazice denit ia numarului n (minim).
Deci m = n. 2
Exemplul 9.1 Sa consideram polinomul h(X) = 1+X+X
2
+X
4
Z
2
[X]. Relat ia
de recurent a liniara asociata este
a
i+4
= a
i+2
+ a
i+1
+ a
i
, i 0.
Circuitul liniar corespunzator are forma
_
_
6
- - -
?
6 6
, ,
+ +
Cel mai mic n pentru care X
n
1 se divide cu h(X) este n = 7. Cum g(X) =
X
7
1
h(X)
= X
3
+ X + 1, rezulta ca circuitul va genera cuvintele idealului ({g(X)}).
Fiecare din ele este caracterizat de cele patru valori binare init iale din elementele
de nmagazinare. Vor deci 2
4
= 16 cuvinte de lungime 7. Ele corespund tuturor
polinoamelor de grad maxim 6 din Z
2
[X], care se divid cu g(X).
De exemplu, pentru valorile init iale (1, 0, 1, 1), funct ionarea circuitului timp de
sapte tact i este:
9.2. DEFINIREA CODURILOR CICLICE 101
Iesire
1 0 1 1
1 0 1 1 0
0 1 1 0 0
1 1 0 0 0
1 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 1 0 1 1
In elementele de nmagazinare se regasesc valorile init iale, iar la iesire s-a obt inut
polinomul f(X) = X
6
+ X
4
+ X
3
= X
3
g(X).
Exemplul 9.2 Circuitul liniar corespunzator polinomului
h(X) = 1 + X
3
+ X
5
+ X
6
+ X
8
Z
2
[X] este
_
_
_
6
- - - -
?
6 6 6
, , ,
+ + +
El da solut iile relat iei de recurent a liniara a
i
+ a
i+3
+ a
i+5
+ a
i+6
+ a
i+8
= 0,
care formeaza idealul generat de polinomul g(X) =
X
255
1
h(X)
ideal compus din
2
8
= 256 cuvinte de lungime 255.
9.2 Denirea codurilor ciclice
Fie n 2 un num ar natural. Sa notam cu A
n
algebra polinoamelor din Z
q
[X],
modulo X
n
1. Dupa cum s-a convenit, identic am cuvantul cuvantul a
0
a
1
. . . a
n1
cu vectorul (a
0
, a
1
, . . . , a
n1
) si cu polinomul a(X) = a
0
+ a
1
X + . . . + a
n1
X
n1
.
i=0
a
i
X
i
, b(X) =
n1
i=0
b
i
X
i
.
Atunci {c(X)} = {a(X)}{b(X)} = {c
0
+ c
1
X + . . . + c
n1
X
n1
} unde
c
j
=
j
i=0
a
i
b
ji
+
n1
i=j+1
a
i
b
j+ni
= (a
0
a
1
. . . a
n1
) (b
j
b
j1
. . . b
0
b
n1
b
n2
. . . b
j+1
)
T
si Propozit ia rezulta din faptul ca c
j
= 0 j. 2
Denit ia 9.2 Un subspat iu liniar V
n
A
n
se numeste ciclic daca
(a
0
, a
1
, . . . , a
n1
) V
n
= (a
n1
, a
0
, . . . , a
n2
) V
n
.
Teorema 9.6 Un subspat iu liniar V
n
A
n
este ciclic daca si numai daca este ideal.
102 PRELEGEREA 9. CODURI CICLICE
Demonstrat ie:
Inmult irea cu clasa de resturi {X} nseamn a de fapt permutarea
ciclica a componentelor cu o unitate spre dreapta, pentru ca:
{X}{a
0
+ a
1
X + . . . + a
n1
X
n1
} = {a
n1
+ a
0
X + . . . + a
n2
X
n1
}
=: Daca V
n
A
n
este ideal, atunci pentru orice v V
n
avem v
= {X}v V
n
(s-a notat tot cu v clasa de resturi modulo X
n
1 corespunzatoare polinomului ai
carui coecient i sunt componentele vectorului v). Deci V
n
este ciclic.
=: Presupunem ca subspat iul liniar V
n
A
n
este ciclic si e v V
n
. Atunci,
din {X}v V
n
rezulta {X
j
}v V
n
, j = 1, . . . , n 1. Deci
{c
0
+ c
1
X + . . . + c
n1
X
n1
}v V
n
, adica V
n
este ideal n A
n
. 2
Denit ia 9.3 Se numeste cod ciclic un ideal din A
n
.
Codurile ciclice au fost introduse de Prange (1957), care a evident iat bogat ia de
informat ie rezultata din structura lor algebrica.
9.3 Generarea codurilor ciclice
Pentru a construi un cod ciclic se foloseste structura idealelor n algebra modulo
X
n
1. Fie I un ideal n A
n
si g(X) polinomul normat de grad minim cu {g(X)} I.
Atunci (Teorema 9.1) {f(X)} I daca si numai daca g(X)|f(X).
De asemenea, g(X)|X
n
1. Oricarui divizor al lui X
n
1 i corespunde un ideal
n A
n
, generat de el.
Pentru a da un cod ciclic este sucient sa dam generatorul sau g(X), divizor al
lui X
n
1. Fie g(X) = g
0
+ g
1
X + . . . + g
nk
X
nk
, (k < n). O baza a idealului
({g(X)}) se poate alege (Teorema 9.3)
{g(X)}, {Xg(X)}, . . . , {X
k1
g(X)}.
Matricea generatoare corespunzatoare codului ciclic va
G
n,k
=
g
0
g
1
. . . g
nk
0 0 . . . 0
0 g
0
. . . g
nk1
g
nk
0 . . . 0
.
.
.
0 0 . . . 0 g
0
g
1
. . . g
nk
Rezulta ca un cod ciclic poate organizat ca un (n, k) - cod liniar, unde n este
gradul polinomului X
n
1 iar k este gradul polinomului h(X) =
X
n
1
g(X)
.
Exemplul 9.3 Codul cu repetit ie este un cod ciclic al carui polinom generator este
g(X) = 1 + X + X
2
+ . . . + X
n1
.
Exemplul 9.4 Sa consideram codul ciclic binar A de lungime 7, cu polinomul gen-
erator g(X) = 1 + X + X
3
(vezi si Exemplul 9.1). El are matricea generatoare
G =
1 1 0 1 0 0 0
0 1 1 0 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 0 1
.
9.3. GENERAREA CODURILOR CICLICE 103
Exemplul 9.5 Fie codul ciclic de lungime 6 peste Z
3
, de polinom generator g(X) =
2 + X
2
. Matricea sa generatoare este
G =
2 0 1 0 0 0
0 2 0 1 0 0
0 0 2 0 1 0
0 0 0 2 0 1
.
El este deci un (6, 4) - cod ternar.
Idealul generat de {g(X)} este spat iul nul al idealului ({h(X)}) unde
h(X) =
X
n
1
g(X)
. Acest ideal ({h(X)}) se construieste luand ca baza polinoamele
{h(X)}, {Xh(X)} . . . , {X
nk1
h(X)}.
T inand cont de Propozit ia 9.1, pentru a construi matricea de control H a codului
ciclic ({g(X)}), luam ca linii ale matricii cele n k polinoame de sus, cu ordinea
componentelor inversata.
Exemplul 9.6 Sa reluam codul din Exemplul 9.4. Deoarece X
7
1 = (1 + X)(1 +
X + X
3
)(1 + X
2
+ X
3
), pentru acest cod, avem
h(X) = (1 + X)(1 + X + X
3
) = 1 + X
2
+ X
3
+ X
4
.
Matricea generatoare a codului ({h(X)}) este
1 0 1 1 1 0 0
0 1 0 1 1 1 0
0 0 1 0 1 1 1
.
deci matricea de control asociat a codului din Exemplul 9.4 va
H =
0 0 1 1 1 0 1
0 1 1 1 0 1 0
1 1 1 0 1 0 0
.
Deoarece coloanele sale sunt nenule si distincte doua cate doua, codul astfel cons-
truit este echivalent cu un cod Hamming (7, 4).
Pentru a obt ine un cod ciclic sistematic, este convenabil sa alegem o alta baza pentru
idealul ({g(X)}). Sa observam ca pentru i = nk, nk +1, . . . , n1, putem scrie
X
i
= q
i
(X)g(X) + r
i
(X) cu grad(r
i
(X)) < grad(g(X)) = n k.
Deci {X
i
r
i
(X)} ({g(X)}), i = n k, n k + 1, . . . , n 1.
Aceasta mult ime de vectori este liniar independenta si conduce la o matrice
generatoare de forma
G = [R I]
unde linia j din matricea R este vectorul coecient ilor lui r
j
(X) pentru j = n
k, . . . , n 1. Codul obt inut este deci sistematic, iar matricea sa de control se scrie
imediat:
H = [I R
T
]
De remarcat ca matricea H
T
are pe linii componentele resturilor r
i
(X) pentru i =
0, 1, . . . , n 1.
104 PRELEGEREA 9. CODURI CICLICE
Exemplul 9.7 Sa luam din nou X
7
1 = g(X)h(X) peste Z
2
, unde
g(X) = 1 + X
2
+ X
3
, h(X) = 1 + X
2
+ X
3
+ X
4
(deci n = 7, k = 4). Avem
X
0
= 0g(X) + 1
X
1
= 0g(X) + X
X
2
= 0g(X) + X
2
X
3
= g(X) + 1 + X
2
X
4
= (1 + X)g(X) + 1 + X + X
2
X
5
= (1 + X + X
2
)g(X) + 1 + X
X
6
= (X + X
2
+ X
3
)g(X) + X + X
2
Baza corespunzatoare idealului ({g(X)}) este
{1 + X
2
+ X
3
}, {1 + X + X
2
+ X
4
}, {1 + X + X
5
}, {X + X
2
+ X
6
}
care conduce la matricea generatoare a unui cod sistematic:
G
7,4
=
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 1 1 0 0 0 1
= [R
4,3
I
4
].
Matricea de control corespunzatoare se scrie simplu:
H
7,3
=
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
= [I
3
R
T
3,4
].
9.4 Generarea automata a codurilor ciclice
Codurile ciclice sunt coduri a caror implementare este mult facilitata de circuitele
liniare. Cu ajutorul acestora se poate realiza automat codicarea, calculul sindro-
mului, corectarea si detectarea erorilor.
j=0
h
j
a
i+j
= 0, i = 0, 1, . . .
Mesajul de informat ie care trebuie codicat - cont in and k simboluri pe ecare bloc
- se introduce la momentul init ial n elementele de nmagazinare ale circuitului,
sub forma de condit ii init iale. Las and circuitul sa funct ioneze, obt inem dupa n
momente cuvantul - cod corespunzator, apart in and idealului ({g(X)}) si avand pe
primele k pozit ii elementele de informat ie.
9.4. GENERAREA AUTOMAT
6
- -
?
6
,
+
deoarece h(X) =
X
7
1
1 + X
2
+ X
3
+ X
4
= 1 + X
2
+ X
3
.
9.4.2 Circuit cu n k elemente de nmagazinare
Este o strategie avantajos de utilizat n cazul n k < k.
Daca interpret am mesajul de informat ie ca un polinom de gradul k 1, atunci
codicarea se poate face utilizand un circuit de nmult ire cu polinomul generator
g(X) (vezi Prelegerea anterioar a). La decodicare se recapata mesajul init ial (daca
nu au aparut erori) folosind un circuit de mp art ire cu g(X).
Exemplul 9.9 Codul ciclic de polinom generator g(X) = 1+X +X
3
poate codica
mesajele de informat ie folosind circuitul liniar:
_
_
- - - -
6
6
- - -
6
,
+ +
u
3
u
2
u
1
u
0
Astfel, mesajul de informat ie u = 1001 se codica n v = 1100101, conform
calculelor:
v(X) = u(X)g(X) = (1 + X
3
)(1 + X + X
3
) = 1 + X + X
4
+ X
6
Pentru decodicare se foloseste circuitul
_
- - - - - -
6
-
? ?
,
+ + v(X)
u(X)
Dezavantajul unei asemenea metode l constituie faptul ca, neind un cod sis-
tematic, prin codicare pozit iile de informat ie se pierd. Pentru a obt ine un cod
sistematic, procedam n felul urmator: mesajul de informat ie este considerat un
polinom u
0
(X) de gradul n 1 av and pozit iile de informat ie drept coecient ii lui
X
nk
, . . . , X
n1
, restul coecient ilor ind nuli. Atunci avem u
0
(X) = q(X)g(X) +
r(X) cu grad(r(X)) < grad(g(X)) = n k de unde
{u
0
(X) r(X)} ({g(X)}).
{u
0
(X) r(X)} reprezint a un cuvant - cod n care coecient ii lui X
nk
, . . . , X
n1
sunt pozit iile de informat ie nealterate, iar coecient ii lui r(X) cu semnul schimbat
(deci coecient ii lui X
0
, X
1
, . . . , X
nk1
) sunt caracterele de control.
Circuitul care realizeaza aceasta codicare este urmatorul:
106 PRELEGEREA 9. CODURI CICLICE
_
_
_
_
Canal
_
6
P
P
P
Pi
, , ,
?
?- - - - - - - -,
6
?
?
?
?
?
?
-
6
,
_
1
?
-
3
-
+ + + +
g
0
g
1
g
2
g
nk1 g
1
nk
u(X)
. . .
. . .
El funct ioneaz a astfel:
Init ial cele n k elemente de nmagazinare cont in 0, ntrerupatorul de iesire
este decuplat iar cel de feedback - cuplat.
Se introduc cele k elemente ale mesajului de informat ie atat n circuit cat si
n canalul de comunicat ie. Dupa k momente, n elementele de nmagazinare
avem coecient ii restului r(X).
Se decupleaza feedbackul si se cupleaza circuitul la canalul de comunicat ie.
Coecient ii restului - cu semn schimbat - se transmit n canal imediat dupa
pozit iile de informat ie.
Deoarece provine din circuitul de mpart ire cu g(X), acelasi circuit poate folosit
si pentru detectarea erorilor la recept ie. Pentru aceasta, dupa decuplarea ntrerup a-
torului de iesire si cuplarea celui de feedback, se introduce n circuit cuvantul
recept ionat. Daca n momentul n restul nu este nul (cel put in un element de
nmagazinare cont ine un element nenul) nseamn a ca a aparut cel put in o eroare
n transmisie.
Exemplul 9.10 Codul de lungime 7 generat de g(X) = 1 + X
2
+ X
3
, poate
construit folosind circuitul liniar:
_
,
_
Canal
6
Z
Z}
?-
?
- - - -,
-
6
,
?-
>
-
+ +
u
3
u
2
u
1
u
0
9.5 Exercit ii
9.1 Sa se determine toate codurile ciclice de lungime 5
(a) : peste Z
2
; (b) : peste Z
3
.
9.2 Construit i o baza pentru cel mai mic cod ciclic de lungime n care cont ine
cuvantul v:
(a) v = 1101000, n = 7;
(b) v = 010101, n = 6;
(c) v = 11011000, n = 8.
9.3 Pentru ecare din cuvintele de mai jos gasit i polinomul generator al celui mai
mic cod ciclic care cont ine cuvantul:
9.5. EXERCIT II 107
010010 01100110 0101100
001000101110000 000010010000000 010111010000000
9.4 Sa se ae polinomul generator al codului ciclic C stiind o baza S a sa:
S = {010, 011, 111};
S = {1010, 0101, 1111};
S = {0101, 1010, 1100};
S = {1000, 0100, 0010, 0001};
S = {11000, 01111, 11110, 01010}.
9.5
Intr-o codicare sistematica, codicat i mesajul de informat ie 1101 ntr-un cu-
vant - cod al unui cod binar ciclic de lungime 7 cu polinomul generator g(X) =
1 + X
2
+ X
3
.
9.6 Pentru codul denit mai sus codicat i mesajele de informat ie date de poli-
noamele: 1 + X
2
, X, X + X
2
+ X
3
.
Fiind date cuvintele - cod X
2
+X
4
+X
5
, 1+X +X
2
+X
4
, X
2
+X
3
+X
4
+X
6
,
gasit i mesajele de informat ie corepunzatoare.
9.7 Construit i circuite liniare pentru codicare si decodicare ale codului ciclic bi-
nar de lungime 7 generat de polinomul g(X) = (1 + X
2
+ X
3
)(1 + X).
9.8 Care este lungimea minima a unui cod ciclic binar de polinom generator
g(X) = 1 + X
2
+ X
3
+ X
4
?
Construit i circuite liniare pentru codicarea si decodicarea sa.
9.9 Construit i un circuit liniar pentru codicarea (15, 11) - codului Hamming binar.
9.10 Construit i matricea de control a codului ciclic binar de lungime n si polinom
generator g(X):
n = 6, g(X) = 1 + X
2
;
n = 8, g(X) = 1 + X
2
;
n = 9, g(X) = 1 + X
3
+ X
6
;
n = 15, g(X) = 1 + X + X
4
(genereaza codul Hamming);
n = 23, g(X) = 1 + X + X
5
+ X
6
+ X
7
+ X
9
+ X
11
(genereaza codul Golay);
n = 15, g(X) = 1 + X
4
+ X
6
+ X
7
+ X
8
.
9.11 Sunt ciclice codurile liniare binare denite de matricile generatoare denite
mai jos ?
1 0 1 1 1 0 0
1 1 0 1 0 0 0
1 1 0 0 1 0 1
0 0 1 0 1 1 1
1 1 1 1 0 0 0
0 1 1 1 1 0 0
0 0 1 1 1 1 0
0 0 0 1 1 1 1
9.12 Aratat i ca daca polinomul generator al unui cod binar se divide cu polinomul
1 + X, atunci toate cuvintele sale au pondere para.
Reciproca este adevarata ?
108 PRELEGEREA 9. CODURI CICLICE
9.13 Dat i o condit ie necesara si sucienta pentru polinomul generator al unui cod
ciclic de lungime impara pentru ca 11 . . . 1 sa e cuvant - cod.
9.14 Aratat i ca daca g(X) genereaza un (n, k) - cod ciclic, atunci g(X
i
) genereaza
un (in, kn) - cod ciclic.
Descriet i codurile pentru g(X) = 1 + X si g(X) = 1 + X + X
3
cu n = 7.
9.15 Aratat i ca intersect ia a doua coduri ciclice de aceeasi lungime este tot un cod
ciclic.
Care este polinomul sau generator ?
Prelegerea 10
Decodicarea codurilor ciclice
Dupa cum se stie de la codurile liniare, o caracterizare important a a tipurilor de
erori care pot apare n transmisia mesajelor este data de sindrom.
In cazul codurilor
ciclice este convenabil sa lucram cu un sindrom polinomial.
Denit ia 10.1 Fie A un cod ciclic de lungime n cu polinomul generator g(X). Se
numeste sindrom polinomial s(X) al cuvantului a de lungime n, restul mpart irii
polinomului corespunzator a(X) la g(X).
Deci, daca se transmite cuvantul - cod q(X)g(X) si se primeste a(X), sindromul va
(X)} =
{Xa(X)}, construit astfel:
a
(X) = Xa(X) a
n1
X
n
+ a
n1
= Xa(X) a
n1
(X
n
1) =
= Xa(X) a
n1
g(X)h(X) = Xq(X)g(X) + Xs(X) a
n1
g(X)h(X) =
= Xs(X) + g(X)[Xq(X) a
n1
h(X)].
Rezulta de aici ca resturile mp art irii lui a
? ?
- - - - -
+ + 1011001
Dupa 7 tact i, n elementele de nmagazinare se obt ine sindromul 110.
- 110 nu este pe lista, deci a
6
a fost corect.
- Se permuta circular a n 1101100 si se lasa circuitul sa funct ioneze un tact;
elementele de nmagazinare vor cont ine 011.
- Nici acest sindrom nu este pe lista, deci a
5
a fost corect, etc.
Pasii de lucru ai algoritmului sunt reprezentat i n tabloul:
Pas Bit Sindrom
7 a
6
110
8 a
5
011
9 a
4
111
10 a
3
101
11 a
2
100
12 a
1
010
13 a
0
001
Deci singurul bit corectat (unde se transforma 1 n 0) este a
3
.
Exemplul 10.3 Sa consideram codul ciclic binar generat de polinomul g(X) = 1 +
X
4
+ X
6
+ X
7
+ X
8
. El este un (15, 7) - cod de distant a d = 5 (dupa cum vom
vedea mai tarziu) deci poate corecta 2 erori. Lista completa a sindromurilor (deci a
tuturor erorilor - tip de pondere 0, 1, 2) are C
0
15
+C
1
15
+C
2
15
= 121 elemente. Folosind
algoritmul Meggitt, numarul lor se reduce la 15, anume
112 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Tip eroare Sindrom
X
14
X
7
+ X
6
+ X
5
+ X
3
1 + X
14
X
7
+ X
6
+ X
5
+ X
3
+ 1
X + X
14
X
7
+ X
6
+ X
5
+ X
X
2
+ X
14
X
7
+ X
6
+ X
5
+ X
3
+ X
2
X
3
+ X
14
X
7
+ X
6
+ X
5
X
4
+ X
14
X
7
+ X
6
+ X
5
+ X
4
+ X
3
X
5
+ X
14
X
7
+ X
6
+ X
3
X
6
+ X
14
X
7
+ X
5
+ X
3
X
7
+ X
14
X
6
+ X
5
+ X
3
X
8
+ X
14
X
5
+ X
4
+ X
3
+ 1
X
9
+ X
14
X
7
+ X
4
+ X
3
+ X + 1
X
10
+ X
14
X
3
+ X
2
+ X
X
11
+ X
14
X
7
+ X
6
+ X
5
+ X
4
+ X
2
+ X
X
12
+ X
14
X
7
+ X
6
+ X
4
+ X
X
13
+ X
14
X
7
+ X
4
+ X
3
+ X
2
Deci, la primirea unui cuvant a de lungime 15, vom calcula sindromul si - daca
acesta se aa n tabelul de sus - vom modica bitul a
14
. Apoi se face o permutare
ciclica si se corecteaza a
13
, s.a.m.d.
De remarcat can Exemplul 10.3 decodicarea nu este completa: algoritmul Meggitt
corecteaza n total 121 erori - tip. Privit ns a ca un cod liniar tabela de decodicare
va avea 2
15
/2
7
= 256 linii. Deci cu algoritmul Meggitt se vor corecta toate erorile
simple sau duble ignorand complet posibilitatea altor tipuri de erori.
Vom ncerca n continuare sa mbun atat im aceasta situat ie.
10.1 Corectarea pachetelor de erori
Fie A A
n
un (n, k) - cod ciclic peste Z
q
capabil sa corecteze t erori.
Denit ia 10.2 Pentru un polinom e(X) = X
s
e
0
(X) Z
q
[X] cu e
0
(0) = 1, spunem
ca lungimea pachet a lui e este 1 + grad(e
0
(X)).
Cuvantul e Z
n
q
este un pachet - tip de lungime j daca gradul minim al
polinoamelor {X
s
e(X)} este j 1.
Daca se trimite un cuvant v si se recept ioneaz a a, spunem ca erorile au afectat
j pozit ii daca eroarea - tip e = a v este un pachet - tip de lungime j.
Exemplul 10.4 Fie n = 7 si e = 0101100. Atunci e(X) = X + X
3
+ X
4
=
X(1+X
2
+X
3
). Efectuand toate permutarile ciclice, se obt ine ca toate au grad mai
mare decat 3, nafara de {X
6
e(X)} = {1 + X
2
+ X
3
}, tot de gradul 3. Deci e este
un pachet - tip de lungime 4.
Daca se ia e = 1000100, 1 + X
4
are gradul 4, dar permutarea ciclica {X
3
(1 +
X
4
)} = {1 + X
3
} are gradul 3, deci si acesta este un pachet - tip de lungime 4.
10.2. DETECTAREA PACHETELOR DE ERORI 113
Reamintim ca la codurile liniare se construia un tablou standard n care pe ecare
linie se aau toate cuvintele cu acelasi sindrom. Codul era corector de t erori daca
toate cuvintele din Z
n
q
de pondere cel mult t erau pe linii diferite; acestea constituiau
reprezentant ii sindromurilor si apareau pe prima coloana, ind considerate erori -
tip pentru ecare linie.
Astfel de tabele se pot construi si pentru codurile ciclice; aici se iau ca reprezen-
tant i n ecare linie, pachetele de erori de lungime minima.
In acest fel, un cod
liniar corector de t erori (independente) este corector de pachete de j erori daca
toate cuvintele de lungime - pachet cel mult j sunt reprezentant i.
Lema 10.1 Daca un cod A este corector de t erori independente si corector de
pachete de j erori, atunci t j.
Demonstrat ie: Exercit iu. 2
Denit ia 10.3 Un (n, k) - cod ciclic corecteaza pachetele de j erori daca orice
pachet - tip de lungime cel mult j este un sindrom.
Exemplul 10.5 Sa consideram toate pachetele - tip nenule de lungime cel mult 3
n Z
15
2
. Fiecare astfel de cuvant este de forma
{e(X)} = {X
s
e
0
(X)} cu 0 s 14 si e
0
(X) {1, 1 + X, 1 + X
2
, 1 + X + X
2
}.
In schimb sunt numai 61 pachete - tip de lungime maxim 3 (Exemplul 10.5, la care
se adauga pachetul nul), deci acest cod poate corecta pachetele de 3 erori. Faptul ca
este un cod ciclic corector de pachete de 3 erori rezulta din calculul sindromurilor
polinoamelor {X
s
e
0
(X)} unde 0 s 14 si e
0
(X) {1, 1+X, 1+X
2
, 1+X+X
2
}.
10.2 Detectarea pachetelor de erori
Teorema 10.1 Un (n, k) - cod ciclic detecteaza orice pachet de maxim nk erori.
Demonstrat ie: Daca {e(X)} este o eroare - tip de lungime cel mult n k, atunci
e(X) = X
s
e
0
(X) cu grad(e
0
(X)) < nk. Fie g(X) polinomul generator al codului,
cu grad(g(X)) = n k.
Stim ca {e(X)} este cuvant - cod g(X)|e(X).
Cum g(X)|X
n
1, el va prim cu X
s
; deci {e(X)} este n cod daca si numai
daca g(X)|e
0
(X), absurd deoarece grad(e
0
(X)) < n k = grad(g(X)). 2
Teorema 10.2 Proport ia pachetelor - tip de j > n k erori pe care nu le poate
detecta un (n, k) - cod ciclic este
q
(nk1)
q 1
daca j = n k + 1
q
(nk)
daca j > n k + 1.
114 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Demonstrat ie: Fie {e(X)} = {X
s
e
0
(X)} unde grad(e
0
(X)) = j 1. Sa numar am
cate asemenea pachete - tip de erori sunt posibile. Ca prim si ultim coecient al
lui e
0
(X) poate orice element din Z
q
\ {0} (n num ar de q 1), iar coecient ii
intermediari pot orice elemente din Z
q
(n num ar de q). Deci sunt (q 1)
2
q
j2
pachete - tip de eroare care ncep si se termina n aceeasi pozit ie.
Un pachet - tip de eroare {e(X)} nu este detectat de un (n, k) - cod ciclic
daca si numai daca {e(X)} este cuvant - cod, adica e
0
(X) = g(X)h(X), unde
grad(h(X)) = grad(e
0
(X)) grad(g(X)) = j 1 (n k). Deci polinomul h(X)
are j n + k coecient i. Apar doua situat ii:
1. grad(h(X)) = 0, adica j = n k + 1. Atunci h(X) se reduce la o constanta
si exista q 1 asemenea polinoame h(X). Deci, raportul dintre numarul pa-
chetelor - tip de lungime j nedetectabile si num arul total al pachetelor - tip
de lungime j care pot localizate este
q 1
(q 1)
2
q
j2
=
q
(nk1)
q 1
.
2. Daca grad(h(X)) > 0, adica j > nk+1, vom avea (q1)
2
q
jn+k2
polinoame
h(X) posibile (pachete - tip de lungime j) nedetectabile. Rezulta ca raportul
de sus este n acest caz
(q 1)q
jn+k2
(q 1)
2
q
j2
= q
(nk)
.
2
Exemplul 10.7 Codul ciclic denit n Exemplul 10.6 detecteaza orice pachet de
maxim 9 erori.
Dintre pachetele de 10 erori posibile care pot apare, doar 1/2
8
nu pot detectate,
iar dintre pachetele de 11 15 erori nu pot detectate 1/2
9
.
10.3 Corectarea pachetelor de erori
Algoritmul este o variant a a Algoritmului Meggitt.
Fie A = ({g(X)}) un (n, k) - cod ciclic corector de pachete - tip de j erori si
a Z
n
q
un cuvant recept ionat.
1. Se calculeaza sindromul {s(X)};
2. Pentru ecare i 0 se calculeaza s
i
(X) = X
i
s(X) mod g(X), pan a se
ajunge la un p cu grad(s
p
(X)) < j 1.
Atunci eroarea - tip este {e(X)} = {X
np
s
p
(X)} si se genereaza cuvantul
a +e.
10.4. TRANSPUNERE 115
Exemplul 10.8 Polinomul g(X) = 1 + X + X
2
+ X
3
+ X
6
genereaza un (15, 9) -
cod ciclic corector de pachete - tip de 3 erori. Sa folosim algoritmul de sus pentru a
decodica a = 111100100001010.
s(X) = 1+X+X
2
+X
3
+X
6
+X
11
+X
13
(mod g(X)) = 1+X
3
+X
4
+X
5
.
s
1
(X) = Xs(X) (mod g(X)) = 1 = X
2
+ X
3
+ X
4
+ X
5
,
s
2
(X) = X
2
s(X) = 1 + X
2
+ X
4
+ X
5
,
s
3
(X) = X
3
s(X) = 1 + X
2
+ X
5
,
s
4
(X) = X
4
s(X) = 1 + X
2
.
S-a ajuns la grad(s
4
(X)) = 2 < 3 1. Deci eroarea - tip este
{e(X)} = {X
154
s
4
(X)} = X
11
+ X
13
.
Cuvantul - cod transmis a fost
v = a +e = 111100100001010 + 000000000001010 = 111100100000000.
10.4 Transpunere
O metoda ecient a de utilizare a capacitat ilor de corectare a pachetelor - tip de erori
de catre codurile ciclice este utilizarea de transpuneri (interleaving).
c
11
c
12
c
13
. . . c
1n
c
21
c
22
c
23
. . . c
2n
.
.
.
c
s1
c
s2
c
s3
. . . c
sn
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1
1 0 0 0 1 1 1 0
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 1
G
2
=
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1
.
Deci, n
1
= 8, k
1
= 4, d
1
= 4, n
2
= 6, k
2
= 3, d
2
= 3.
Sa codicam mesajele de informat ie m
1
= 1000, m
2
= 1100, m
3
= 1010
folosind o transpunere ncrucisata a lui C
1
cu K
2
, C
2
ind transpus la o adancime
s = 3 = d
1
1.
Codicarea mesajelor de informt ie cu codul C
1
da:
c
1
= m
1
G
1
= 10001110, c
2
= m
2
G
1
= 11000011, c
3
= m
3
G
1
= 10100101.
Transpunerea acestor cuvinte la adancimea k
2
= 3 conduce la mesajul
111 010 001 000 100 101 110 011
Aceste 8 mesaje de informat ie sunt codicate cu C
2
n:
c
1
= 111000, c
2
= 010101, c
3
= 001011, c
4
= 000000,
c
5
= 100110, c
6
= 101101, c
7
= 110011, c
8
= 011110.
si apoi transpuse la adancimea s = 3 (c
6
si c
7
vor transpuse cu urmatorul
cuvant - cod c
9
obt inut de urmatoarele trei mesaje de informat ie m
4
, m
5
, m
6
).
Scvent a de caractere transmisa va ncepe cu
100 110 101 010 001 011 011 000 001 011 010 001 . . .
Conform Teoremei 10.5, folosind C
2
pentru a detecta d
2
1 = 2 erori, si apoi C
1
pentru a corecta toate caracterele marcate, se pot corecta n ansamblu toate pachetele
de cel mult s(d
2
1) = (d
1
1)(d
2
1) = 6 erori.
10.5. EXERCIT II 119
De exemplu, sa presupunem ca primii 6 bit i au fost transmisi incorect, deci s-a
primit 011 001 101 010 001 011 . . .. Eliminand efectul transpunerii la adancimea
s = 3, se ajunge la cuvintele
001000 100101 111011
(care comparate respectiv cu c
1
, c
2
, c
3
au erori ecare pe primele doua pozit ii). Deoa-
rece sindromurile sunt nenule, C
2
va detecta erori n toate cele trei cuvinte, deci tot i
cei 18 bit i sunt marcat i (i vom nlocui cu ).
Presupunand ca nu mai sunt alte erori, dupa un procedeu similar se obt in cuvin-
tele c
4
, . . . , c
8
, fara caractere marcate.
Eliminand acum efectul transpunerii la adancimea k
2
= 3, se obt in cuvintele
c
1
= 01110, c
2
= 00011, c
3
= 100101.
Exista o modalitate unica de a ajunge la cuvinte - cod din C
1
prin nlocuirea cu
caractere 0 sau 1.
10.5 Exercit ii
10.1 Demonstrat i Lema 10.1
10.2 Aratat i ca daca un cod ciclic detecteaza o eroare - tip e, atunci detecteaza
toate erorile - tip obt inute prin permutari ciclice ale lui e.
10.3 Vericat i ca pachetele ciclice - tip de erori de lungime 3 din Z
15
2
au sindromuri
diferite pentru codul din Exemplul 10.6.
10.4 Aratat i ca g(X) = 1+X
2
+X
4
+X
5
genereaza un (15, 10) - cod ciclic corector
de pachete de maxim 2 erori. Este acesta un cod corector de 2 erori independente ?
10.5 Aratat i ca g(X) = 1 + X
3
+ X
4
+ X
5
+ X
6
genereaza un (15, 9) - cod ci-
clic corector de pachete de maxim 3 erori. Este acesta un cod corector de 3 erori
independente ?
10.6 Aratat i ca g(X) = 1 + X
4
+ X
6
+ X
7
+ X
8
genereaza un (15, 7) - cod ciclic
corector de 2 erori independente si de pachete de 4 erori.
10.7 Fie codul din Exemplul 10.6. Sa se decodice mesajele:
101101110001000, 001101100010101, 100110101010011
101101000010111, 000000111110000
10.8 Fie (15, 10) - codul ciclic binar generat de g(X) = 1 + X
2
+ X
4
+ X
5
.
Cate erori au pachetele - tip pe care le poate corecta ?
Decodicat i mesajele:
010101000010010, 011010010010100, 001101000000100
000100010100101, 000000011111001.
120 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
10.9 Fie codul generat de polinomul g(X) = 1 + X + X
2
+ X
3
+ X
6
. Codicat i
mesajele de informat ie m
1
(X) = 1, m
2
(X) = X
2
, m
3
(X) = 1 + X,
m
4
(X) = 1 + X
2
, m
5
(X) = X
3
, m
6
(X) = 1.
Determinat i sirul de bit i transmisi daca se foloseste o transpunere la adancimea
s unde
(a) s = 1 (b) s = 2 (c) s = 3.
10.10 Ce secvent a de caractere este transmisa daca se foloseste un 0 - cadru de
transpunere ntarziata ?
10.11 Demonstrat i Teorema 10.4
10.12 Folosind codurile denite n Exemplul 10.12, sa se codice urmatoarele me-
saje de informat ie prin transpunerea ncrucisata a lui C
1
cu C
2
:
(a) m
1
= 0110, m
2
= 1011, m
3
= 1111, s = 2
(b) m
1
= 0110, m
2
= 1011, m
3
= 1111, s = 3
(c) m
1
= 0010, m
2
= 1111, m
3
= 1010, s = 3
(d) m
1
= 1000, m
2
= 0100, m
3
= 0010, m
4
= 0001, m
5
= 0011,
m
6
= 0100 s = 3
10.13 Folosind codurile din Exemplul 10.12 au fost obt inute prin transpunere
ncrucisata a lui C
1
cu C
2
la adancimea s = 3, urmatoarele secvent e binare:
(a) 000001001110110001000111000111000111000000000000000000 . . .
(b) 100011001111101010011001111010100110100100011101000100 . . .
Aat i meajele de informat ie m
1
, m
2
, m
3
.
10.14 Gasit i un rezultat analog Teoremei 10.5 daca pentru C
2
se foloseste s - cadrul
de transpunere ntarziata n loc de s - transpunere.
Prelegerea 11
Alte denit ii ale codurilor ciclice
Primele doua sect iuni ale acestei prelegeri vor trecen revista cateva not iuni algebrice
fundamentale n construirea codurilor ciclice.
11.1 Elemente primitive n extensii Galois
Denit ia 11.1 Fie F un corp nit. Un element a F are ordin n (n 1) daca
a
n
= 1 si a
k
= 1, k, 0 < k < n. Vom scrie ord(a) = n.
Propozit ia 11.1
Intr-un corp nit:
- Orice element nenul are un ordin nit;
- Daca n = ord(a) atunci a, a
2
, . . . , a
n
sunt distincte;
- a
k
= 1 daca si numai daca ord(a)|k (ord(a) este divizor al lui k).
Demonstrat ie: Fie a F, a = 0. Cum F este nit, elementele a, a
2
, a
3
, . . . nu pot
toate distincte. Vom alege cel mai mic n pentru care i a
n+i
= a
i
. Relat ia se
poate simplica (lucram ntr-un corp) cu a
i
si se obt ine a
n
= 1. Din construct ie,
a, a
2
, . . . , a
n
sunt distincte, deci n este ordinul lui a.
Pentru k = ni avem a
k
= (a
n
)
i
= 1
i
= 1. Reciproc, sa presupunem a
k
= 1.
Teorema mpart irii cu rest da k = qn + r, r < n. Avem 1 = a
k
= a
qn
a
r
= a
r
.
Cum r < n rezulta r = 0. 2
Denit ia 11.2 Un element a F este primitiv daca toate puterile sale genereaza
F \ {0}.
Observat ie: Daca F are r elemente, atunci un element este primitv daca si numai
daca are ordinul r 1.
Teorema 11.1 Orice corp nit are cel put in un element primitiv.
Demonstrat ie: Cum F este nit (card(F) = r), se poate gasi un element a F de
ordin n maxim. Evident n r 1. Mai trebuie aratat ca n r 1.
Fie b F de ordin s. Sa-l descompunem pe sn factori primi: s = p
i
q
j
. . . (p, q, . . .
numere prime). La randul lui n = p
t
n
unde n
= s/p
i
(deci s = p
i
s
) si e c = a
p
t
b
s
F. Vrem sa arat am ca
c are ordinul m = p
i
n
m
= a
p
t
n
p
i
b
p
i
s
= (a
n
)
p
i
(b
s
)
n
= 1
p
i
1
n
= 1.
Mai ram ane de aratat ca c
m
= 1 = m
.
Din calculul 1 = (c
m
)
n
= a
p
i
n
b
s
= (a
n
)
m
b
s
= b
s
rezulta (Propozit ia
11.1) ca ordinul s = p
i
s
al lui b divide s
; deci p
i
|m
In plus, din 1 = (c
m
)
p
= a
p
t
p
i
m
b
p
i
s
= a
p
t
p
i
m
(b
s
)
m
= a
p
t
p
i
m
rezulta ca ordinul
n = p
t
n
al lui a divide p
t
p
i
m
; deci n
|p
i
m
.
Cum n este cel mai mare ordin ale elementelor din F, avem p
i
n
p
t
n
, deci
i t, adica p
i
divide n = p
i
n
In mod similar, tot i factorii lui s sunt divizori ai lui n, deci s|n.
Am aratat urmatoarea armat ie:
b F = ord(b)|n
Deci b este p rad acina a polinomului X
n
1 = 0, de unde rezulta ca polinomul
X
n
1 = 0 are r 1 radacini, adica r 1 n. 2
Fie F un corp xat si f(X) F[X] un polinom arbitrar. Spunem ca a F este
radacina a lui f daca f(a) = 0.
Se poate demonstra imediat armat ia:
Propozit ia 11.2 Daca un polinom f are radacinile distincte a
1
, a
2
, . . . , a
n
atunci
el este divizibil cu polinomul (X a
1
)(X a
2
) . . . (X a
n
).
Exemplul 11.1 Polinomul X
3
+ 1 are o radacina 1 n Z
2
. Deci X
3
+ 1 se divide
cu X + 1:
X
3
+ 1 = (X + 1)(X
2
+ X + 1)
Aceasta este o factorizare completa; deoarece X
2
+X +1 nu are radacini n Z
2
,
el nu poate descompus n produsul a doua polinoame de gradul 1. Acelasi polinom
X
3
+ 1 are n Z
3
pe 2 ca radacina tripla, deci aici putem scrie:
X
3
+ 1 = (X + 1)
3
.
Rezulta ca factorizarea unui polinom depinde de corpul n care este denit.
Din Teorema 11.1 si Propozit ia 11.2 rezulta ca daca a F este un element de
ordin n, atunci X
n
1 se poate descompune n
X
n
1 = (X a)(X a
2
) . . . (X a
n
).
Denit ia 11.3 Un polinom f(X) F[X] de grad n este ireductibil daca nu se poate
descompune n produsul a doua polinoame din F[X] de grad mai mic decat n.
Observat ii;
Orice polinom liniar este ireductibil. Pentru polinoame de grad cel put in 2,
Propozit ia 11.2 arma ca:
Un polinom ireductibil ntr-un corp nu are radacini n acel corp.
Este interesant ca reciproca nu este adevarata decat pentru polinoamele de
grad 2 si 3. Astfel, polinomul f(X) = (X
2
+ X + 1)
2
Z
2
[X], desi nu are
radacini n Z
2
, este reductibil.
11.2. POLINOAME MINIMALE 123
In R singurele polinoame ireductibile sunt de gradul 1 sau 2. Daca un polinom
are grad impar, el are sigur o rad acin a reala, iar daca este de grad par, atunci
are sau cel put in o rad acina reala, sau cel put in doua rad acini complexe de
forma a ib.
In acest ultim caz, el se va divide cu (x a)
2
+ b
2
, care este un
polinom din R[X] de gradul 2.
In corpul complex C, teorema fundamental a a algebrei asigura ca orice polinom
ireductibil are gradul 1.
Denit ia 11.4 Caracteristica unui corp nit F este cel mai mic numar de termeni
ai sumei S = 1 + 1 + . . . + 1 cu proprietatea S = 0.
Propozit ia 11.3 Caracteristica unui corp nit este numar prim.
Demonstrat ie: Sa consideram elementele a
i
= 1 + 1 + . . . + 1 de cate i termeni
ecare. Deoarece nu pot o innitate de valori distincte, e p minim cu proprietatea
i, a
i
= a
i+p
. Rezulta a
p
= a
i+p
a
i
= 0. Deci F are caracteristica p.
Presupunem p = st cu 1 s < p. Evident 0 = a
st
= a
s
+a
s
+. . . +a
s
(t termeni).
Deoarece s < p avem a
s
= 0.
Impart ind relat ia cu a
s
se obt ine 0 = 1+1+. . .+1 = a
t
.
Deci t = p. 2
Corolarul 11.1 Orice corp de caracteristica p este o extensie a lui Z
p
.
Demonstrat ie: Exercit iu.
Corolarul 11.2 GF(q
r
) este un corp de caracteristica q.
Demonstrat ie: Reamintim ca GF(q
r
) cont ine toate polinoamele din Z
q
[X] de grad
cel mult r 1.
In particular, polinoamele de grad 0 (constantele) formeaza un
subcorp izomorf cu Z
q
care are caracteristica q. 2
Propozit ia 11.4
Intr-un corp de caracteristica p avem (a + b)
p
= a
p
+ b
p
Demonstrat ie: Se foloseste binomul lui Newton, n care C
k
p
= 0, k, 0 < k < p. 2
11.2 Polinoame minimale
3
,
5
,
6
1 + X
2
+ X
3
124 PRELEGEREA 11. ALTE DEFINIT II ALE CODURILOR CICLICE
Propozit ia 11.5 Un polinom minimal g(X) Z
q
[X] este ireductibil peste Z
q
.
Demonstrat ie: Daca ar exista descompunerea g(X) = u(X)v(X) cu u(X), v(X)
Z
q
[X], atunci vom avea u() = 0 sau v() = 0, ceea ce contrazice denit ia polino-
mului minimal pentru . 2
Propozit ia 11.6 Daca f(X) Z
q
[X] verica f() = 0 atunci g(X)|f(X).
Demonstrat ie: Conform identitat ii mpart irii, avem
f(X) = q(X)g(X) + r(X) cu grad(r(X)) < grad(g(X)).
Cum f() = 0, g() = 0, va rezulta r() = 0, contradict ie.
Singura posibilitate ram ane r(X) 0, deci f(X) = q(X)g(X). 2
Din Propozit iile 11.5 si 11.6 rezulta ca un polinom normat peste Z
q
care admite
pe ca rad acina este polinom minimal al lui . Acest polinom este unic.
Teorema 11.2 Fie GF(q
k
). Atunci exista un polinom minimal al lui de grad
cel mult k.
Demonstrat ie: Dupa cum am vazut (Prelegerea 8), GF(q
k
) are dimensiunea k. O
baza a lui este {1}, {X}, . . . , {X
k1
}. Deci cele k + 1 elemente 1, ,
2
, . . . ,
k
GF(q
k
) sunt liniar dependente.
Rezulta ca exista un polinom de grad maxim k pentru care este radacin a. 2
Teorema 11.3 Solut iile ecuat iei X
q1
1 = 0 dau elementele nenule din Z
q
.
Demonstrat ie: Elementele nenule din Z
q
formeaza grup multiplicativ. Ordinul
ecarui element divide ordinul grupului, care este q 1 (Teorema 11.1).
Fie Z
q
\ {0}; subgrupul ciclic generat de este 1, ,
2
, . . . ,
t1
unde b
t
= 1
si t|q 1. Deci
q1
= 1.
In plus, ecuat ia X
q1
1 = 0 are q 1 radacini. 2
Teorema 11.4 X
m
1|X
n
1 m|n.
Demonstrat ie: : Fie n = md. Cum Y 1 divide pe Y
d
1, daca se ia Y = X
m
,
vom avea X
m
1|X
md
1.
: Sa presupunem ca X
m
1|X
n
1 si e n = md + s, (s < m). Avem
X
n
1 = X
s
(X
md
1) + X
s
1 = q(X)(X
m
1) + r(X) cu grad(r(X)) = s < m.
Pentru a verica ipoteza, trebuie ca s = 0, deci n = md. 2
Teorema 11.5 Fie f(X) Z
q
[X] si o radacina a sa (eventual dintr-o extensie
a lui Z
q
). Atunci si
q
este radacina a lui f(X).
Demonstrat ie: Scriem f(X) = a
0
+ a
1
X + . . . + a
n
X
n
. Cum Z
q
este corp de carac-
teristica q, este adevarat a relat ia (a + b)
q
= a
q
+ b
q
(Propozit ia 11.4).
De asemenea (Teorema 11.3) a Z
q
\ {0} avem a
q1
1 = 0, deci a
q
= a.
Atunci se poate scrie
(f(X))
q
= a
q
0
+ a
q
1
X
q
+ . . . + a
q
n
(X
n
)
q
= a
0
+ a
1
X
q
+ . . . + a
n
X
nq
= f(X
q
).
In particular, f(
q
) = (f())
q
= 0. 2
11.2. POLINOAME MINIMALE 125
Teorema 11.6 Orice polinom normat ireductibil peste Z
q
de grad m este un factor
al polinomului X
q
m
X.
Demonstrat ie: Daca g(X) = X, armat ia este banala.
Sa presupunem ca g(X) = X si e GF(q
m
) o radacin a nenul a a sa, deci
g() = 0. Atunci (Teorema 11.3) satisface ecuat ia X
q
m
1
1 = 0, deci (Propozit ia
11.6) X
q
m
1
1 se divide cu polinomul minimal g(X). 2
Teorema 11.7 Orice factor ireductibil g(X) Z
q
[X] al lui X
q
m
X are gradul cel
mult m.
Demonstrat ie: Fie g(X)|X
q
m
X, ireductibil peste Z
q
, cu grad(g(X)) = k.
Vom considera algebra polinoamelor modulo g(X), n care luam = {X}. Se
stie (Prelegerea 8) ca g() = 0. Un element oarecare din aceasta algebra este de
forma
= a
0
+ a
1
+ . . . + a
k1
k1
.
Atunci
q
m
= a
q
m
0
+a
q
m
1
q
m
+. . . +a
q
m
k1
(
k1
)
q
m
= a
0
+a
1
q
m
+. . . +a
k1
(
q
m
)
k1
=
a
0
+ a
1
+ . . . + a
k1
k1
=
deoarece GF(q
m
) are tot caracteristica q ca si Z
q
, iar ind o rad acina a lui g(X),
este rad acina si a lui X
q
m
X, deci
q
m
= , de unde rezulta
jq
m
=
j
j 0.
Am obt inut n nal faptul ca este o solut ie a ecuat iei X
q
m
X = 0. Sunt
posibile q
k
asemenea elemente distincte, iar cum ecuat ia are q
m
rad acini, rezulta
q
k
q
m
sau k m. 2
Teorema 11.8 Fie GF(q
m
) de polinom minimal g(X), grad(g(X)) = k si
ord() = t. Atunci
(i) t|q
k
1;
(ii) k este minim cu proprietatea (i).
Demonstrat ie: Stim (Teorema 11.6) ca g(X) este un factor al lui X
q
k
X; deci
q
k
= , de unde rezulta t|q
k
1.
Sa presupunem acum ca exista p < k cu t|q
p
1. Atunci
q
p
1
= 1, adica este
o radacin a a ecuat iei X
q
p
X = 0, deci g(X) este un factor al polinomului X
q
p
X.
Conform Teoremei 11.7, rezulta k p, contradict ie. 2
Teorema 11.9 Fie polinomul g(X) Z
q
[X], grad(g(X)) = m si GF(q
m
) o
radacina a sa. Atunci ,
q
,
q
2
, . . . ,
q
m1
sunt toate radacinile lui g(X).
Demonstrat ie: Deoarece g() = 0, avem conform Teoremei 11.5 ca
q
,
q
2
, . . . ,
q
m1
sunt si ele rad acini ale lui g(X). De asemenea, conform Teoremei 11.6, este
rad acin a a lui X
q
m
X, adica
q
m
= . Mai ram ane de aratat ca aceste rad acini
sunt distincte. Presupunem ca exista 0 i < j < m cu
q
i
=
q
j
. Avem
=
q
m
=
q
j
q
mj
=
q
i
q
mj
=
q
m+ij
Deci este radacin a a polinomului X
q
m+ij
= X si cu Teorema 11.7,
grad(g(X)) = m m + i j < m, contradict ie. 2
Din Teorema 11.9 rezulta ca n extensia GF(q
m
)[X] se poate scrie
g(X) = (X )(X
q
) . . . (X
q
m1
).
126 PRELEGEREA 11. ALTE DEFINIT II ALE CODURILOR CICLICE
Teorema 11.10 Fie g(X) un polinom normat ireductibil peste Z
q
, grad(g(X)) =
m, si o radacina a sa din GF(q
m
). Atunci toate radacinile lui g(X) au acelasi
ordin.
Demonstrat ie: Fie p = ord(), p
= ord(
q
j
) care conform Teoremei 11.9 este
tot rad acina a lui g(X). Avem:
q
j
p
= (
p
)
q
j
= 1 si deci p
|p.
De asemenea,
q
m
q
j
q
mj
q
j
q
mj
= 1 p|p
.
S-a mai folosit Teorema 11.8, conform careia p divide q
m
1 dar nu divide nici
un numar de forma q
s
1 cu s < m.
Deci p = p
. 2
11.3 Denirea codurilor ciclice prin radacini
O alta metoda de denire a unui cod ciclic consta n a da init ial toate rad acinile
(eventual ntr-o extensie a lui Z
q
) cuvintelor - cod, considerate ca polinoame.
Denit ia 11.6 Fie
1
,
2
, . . . ,
r
elemente dintr-o extensie a lui Z
q
. Codul ciclic
A este format din toate elementele {f(X)} din algebra polinoamelor modulo X
n
1
care admit pe
i
, 1 i r ca radacini simple.
De remarcat ca n aceasta denit ie n este deocamdata nedeterminat.
Conform Denit iei 11.6, f(X) se va divide cu ecare polinom minimal m
i
(X)
corespunzator radacinii
i
(1 i r). Deci polinomul generator al codului ciclic
este
g(X) = cmmmc {m
1
(X), m
2
(X), . . . , m
r
(X)} .
Propozit ia 11.7 A = ({g(X)}).
Demonstrat ie: Este lasat a ca exercit iu.
Deoarece polinomul generator g(X) divide pe X
n
1, rezulta ca ecare
i
este
rad acin a a lui X
n
1. Deci ordinul ord(
i
) al ecarei radacini
i
(1 i r) va
divide pe n. O modalitate naturala de denire a lui n este
n = cmmmc {ord(
1
), ord(
2
), . . . , ord(
r
)}
Un caz particular important este acela n care toate rad acinile
1
,
2
, . . . ,
r
sunt
puteri ale unui anumit element, adica
i
=
u
i
, 1 i r.
Fie p = ord(). Atunci polinomul minimal m
i
(X) al lui
i
va avea (Teorema 11.9)
toate rad acinile printre elementele
u
i
,
qu
i
,
q
2
u
i
, . . ..
Numarul factorilor lui g(X) si gradul ecarui polinom minimal m
i
(X) se vor
determina atunci din ordinul p si din exponent ii u
i
, qu
i
, q
2
u
i
, . . . (1 i r).
Intr-
adevar, num arul de clase de resturi modulo p n succesiunea u
i
, qu
i
, . . . va da gradul
polinomului minimal m
i
(X).
11.3. DEFINIREA CODURILOR CICLICE PRIN R
AD
ACINI 127
Exemplul 11.3 Fie GF(2
4
) primitiv, radacina a polinomului 1 + X + X
4
,
ireductibil peste Z
2
. Sa denim un cod care sa aiba ca radacini ,
2
,
3
,
4
,
5
,
6
.
Fiind primitiv, ord() = 2
4
1 = 15 (vezi si Prelegerea 8, Exemplul 8.8).
Fie m
i
(X) polinomul minimal al radacinii
i
, 1 i 6.
Radacinile lui m
1
(X) sunt ,
2
,
4
,
8
(
16
= ), deci
m
1
(X) = m
2
(X) = m
4
(X) = (X )(X
2
)(X
4
)(X
8
).
Acest polinom este cunoscut, anume 1 + X + X
4
.
Radacinile lui m
3
(X) sunt
3
,
6
,
12
,
24
=
9
(
18
=
3
), deci m
3
(X) este un
polinom de gradul 4, egal cu m
6
(X). Notam m
3
(X) = a
0
+a
1
X+a
2
X
2
+a
3
X
3
+X
4
.
Detaliind m
3
(
3
) = 0, avem
a
0
1
0
0
0
+ a
1
0
0
0
1
+ a
2
0
0
1
1
+ a
3
0
1
0
1
1
1
1
1
0
0
0
0
.
de unde se poate scrie sistemul de ecuat ii
a
0
+ 1 = 0, a
3
+ 1 = 0, a
2
+ 1 = 0, a
1
+ a
2
+ a
3
+ 1 = 0
cu solut ia a
0
= a
1
= a
2
= a
3
= 1, deci m
3
(X) = m
6
(X) = 1 + X + X
2
+ X
3
+ X
4
.
Radacinile lui m
5
(X) sunt
5
,
10
(
20
=
5
), deci m
5
(X) este un polinom de
gradul 2 : m
5
(X) = b
0
+ b
1
X + X
2
. Cum m
5
(
5
) = 0, se obt ine:
b
0
1
0
0
0
+ b
1
0
1
1
0
1
1
1
0
0
0
0
0
2
+ . . . + a
n1
n1
, sau altfel scris:
(a
0
a
1
a
2
. . . a
n1
)
.
.
.
n1
= 0
128 PRELEGEREA 11. ALTE DEFINIT II ALE CODURILOR CICLICE
Deci cuvantul corespunzator polinomului f(X) este n spat iul nul al matricii
(1 . . .
n1
) (1).
Aceasta este si condit ia de divizibilitate a polinomului f(X) cu polinomul mini-
mal m(X) al lui . Mult imea polinoamelor care satisfac condit ia formeaza idealul
generat de m(X). Dimensiunea acestui ideal este (Prelegerea 9) n k unde
k = grad(m(X)). Deci spat iul liniar generat de matricea (1) are dimensiunea k.
Prin urmare, a cere ca f(X) sa admita pe
1
,
2
, . . . ,
r
GF(q
m
) ca radacini
este echivalent cu a cere ca vectorul corespunzator sa apart ina spat iului nul al ma-
tricii
H
mr,n
=
1
1
2
1
. . .
n1
1
1
2
2
2
. . .
n1
2
.
.
.
1
r
2
r
. . .
n1
r
Exemplul 11.5 Sa revenim la Exemplul 11.3. Polinomul {f(X)} apart ine codului
respectiv daca si numai daca vectorul corespunzator apart ine spat iului nul al matricii
H =
1
2
10
11
12
13
14
1
3
12
1
3
12
1
3
12
1
5
10
1
5
10
1
5
10
1
5
10
1
5
10
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
0 1 0 0 1 1 0 1 0 1 1 1 1 0 0
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
1 0 0 0 1 1 0 0 0 1 1 0 0 0 1
0 0 0 1 1 0 0 0 1 1 0 0 0 1 1
0 0 1 0 1 0 0 1 0 1 0 0 1 0 1
0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S-a obt inut o matrice 12 15, desi - conform rezultatelor teoretice, n = 15, n
k = 10, k = 5 si deci matricea de control a codului ar trebui sa aiba dimensiunile
(n k) n = 10 15. Se observa nsa ca de fapt ultima linie este nula, iar
urmatoarele doua linii sunt identice (deci penultima se poate elimina).
11.4. ALT
2
0
6
1
10
0
14
1
Dupa cum se observa, sunt 8 = 2
3
valori 0 si 8 valori 1.
Putem da acum teorema principala care deneste codurile ciclice folosind oper-
atorul Tr:
Teorema 11.12 Fie n numar natural, q numar prim, k ordinul lui q modulo n
(q
k
1 mod n) si GF(q
k
) element primitiv de ordin n. Atunci
A = {c
; deci A este
cod ciclic. Deoarece este primitiv, nseamn a ca polinomul sau minimal m(X) =
h
0
+ h
1
X + . . . + h
k
X
k
are gradul k. Daca c
= (c
0
, c
1
, . . . , c
n1
), avem
k
i=0
c
i
h
i
= Tr(m()) = Tr(0) = 0
care constituie una din cele n k ecuat ii de control pentru A. Deoarece m(X) este
minimal (deci ireductibil), h(X) = X
k
m(X
1
) este polinomul de control pentru A.
Cum gradul lui este k, avem un (n, k) - cod ciclic peste Z
q
. 2
De remarcat ca aceasta teorema deneste numai codurile ciclice ireductibile
(care nu cont in subcoduri ciclice proprii), deci clasa lor este inclusa strict n clasa
codurilor ciclice data de cele doua denit ii anterioare (prin ideale si prin rad acinile
polinomului generator).
Exemplul 11.7 Sa luam n = 15, q = 2, deci k = 4.
In GF(2
4
) vom lua ,
radacina polinomului 1 +X +X
4
. Se stie ca ea este un element primitiv. Aplicat ia
Tr este Tr(X) = X+X
2
+X
4
+X
8
iar codul A este format din 16 cuvinte de forma
(Tr(), Tr(), . . . , Tr(
n1
)), GF(2
4
).
Pentru = 0, 00 . . . 0 A.
Pentru = 1, (Tr(1), Tr(), . . . , Tr(
n1
)) = 000100110101111
Celelalte 14 cuvinte sunt permutarile circulare ale acestuia.
Polinomul de control al codului este h(X) = X
4
1 +
1
X
+
1
X
4
= 1 +X
3
+X
4
,
iar polinomul generator
g(X) =
X
16
X
X
4
+ X
3
+ 1
= X + X
4
+ X
5
+ X
7
+ X
9
+ X
10
+ X
11
+ X
12
,
al carui vector corespunzator se obt ine n construct ia de sus pentru =
2
.
Acesta este un (15, 4) - cod ciclic, ireductibil.
De remarcat ca pentru n = 15 sunt numai doua astfel de coduri, celalalt ind
codul dual (radacina polinomului 1 + X
3
+ X
4
este de asemenea primitiva).
11.5. EXERCIT II 131
11.5 Exercit ii
11.1 Demonstrat i Corolarul 11.1.
11.2 Demonstrat i Propozit ia 11.7
11.3 Construit i urmatoarele corpuri:
(a) GF(2
2
);
(b) GF(2
3
) folosind polinomul 1 + X
2
+ X
3
;
(c) GF(2
4
) folosind polinomul 1 + X
3
+ X
4
;
(d) GF(2
5
) folosind polinomul 1 + X
2
+ X
5
.
11.4 Gasit i o extensie a lui Z
2
n care X
9
1 sa se descompuna n factori liniari.
11.5 Gasit i toate elementele primitive din GF(2
3
) si GF(2
4
).
11.6 Gasit i toate elementele primitive din GF(3
2
) si GF(5
2
).
11.7 Construit i GF(2
4
) ca o extensie a lui GF(2
2
).
11.8 Fie GF(2
4
), radacina a polinomului 1 + X + X
4
.
Gasit i polinoamele minimale al lui =
7
si =
10
.
11.9 Gasit i polinoamele minimale al tuturor elementelor din:
- GF(2
3
), generat cu 1 + X + X
3
;
- GF(2
5
), generat cu 1 + X
2
+ X
5
;
- GF(3
2
), generat cu 2 + X + X
2
;
- GF(5
2
), generat cu 3 + 2X + X
2
.
11.10 Orice element nenul din GF(q
m
) are un ordin prim cu q.
11.11 Gasit i polinomul generator al unui cod ciclic de lungime 15, de radacini
1,
5
,
7
, GF(2
4
) ind radacina a polinomului 1 + X + X
4
.
Construit i matricea de control a codului.
Aratat i ca v(X) este polinom - cod daca si numai daca ponderea w(v) este para.
11.12 Gasit i polinomul generator al unui cod ciclic de radacini
2
,
3
,
6
unde
GF(2
3
) este radacina polinomului 1 + X + X
3
.
11.13 Aratat i ca orice cuvant - cod al unui cod ciclic are pondere para daca si
numai daca 1 + X este un factor al polinomului generator.
11.14 Sa se descompuna Tr(X) n produs de polinoame minimale n corpurile:
(a) GF(2
3
) (b) GF(2
5
) (c) GF(3
2
) (d) GF(3
3
) (e) GF(5
2
).
11.15 Folosind Teorema 11.12 sa se construiasca toate codurile ireductibile pentru
GF(2
3
), GF(2
5
), GF(3
2
).
11.16 Vericat i ca polinomul h(X) construit n demonstrat ia Teoremei 11.12 este
polinomul generator al codului dual.
Prelegerea 12
Coduri BCH
Codurile BCH constituie cea mai relevanta clasa de coduri ciclice. Ele au fost
denite n mod independent de Bose si Chaudhuri pe de-o o parte, Hocquenheim
de pe de-alta parte. Numele de BCH (Bose - Chaudhuri - Hocquenheim) a fost
dat de Peterson, care s-a ocupat de ele n mod special, construind si algoritmul de
decodicare.
12.1 Denirea codurilor BCH
Denit ia 12.1 Fie q numar prim, m
0
, m, d numere naturale si GF(q
m
). Un
cuvant {f(X)} este n codul BCH daca polinomul are ca radacini
m
0
,
m
0
+1
, . . . ,
m
0
+d2
.
n
deci
n
= 1. Prin urmare e|n si n e.
De asemenea, (
j
)
e
= (
e
)
j
= 1 j = m
0
, m
0
+ 1, . . . , m
0
+d 2, adica n e.
Rezulta n = e. 2
De remarcat ca, daca este primitiv, atunci e = q
m
1.
Teorema 12.2
Intr-un cod BCH denit de radacinile
m
0
,
m
0
+1
, . . . ,
m
0
+d2
(
GF(q
m
)), distant a minima a codului este cel put in d (si deci codul poate corecta cel
put in orice combinat ie de t
_
d 1
2
_
erori).
133
134 PRELEGEREA 12. CODURI BCH
Demonstrat ie: Un cod BCH este spat iul nul al matricii
H =
_
_
_
_
_
_
1
m
0
(
m
0
)
2
. . . (
m
0
)
n1
1
m
0
+1
(
m
0
+1
)
2
. . . (
m
0
+1
)
n1
.
.
.
1
m
0
+d2
(
m
0
+d2
)
2
. . . (
m
0
+d2
)
n1
_
_
_
_
_
_
Sa consideram urmatorul determinant, obt inut prin alegerea arbitrara a d 1
coloane din H:
D =
(
m
0
)
j
1
(
m
0
)
j
2
. . . (
m
0
)
j
d1
(
m
0
+1
)
j
1
(
m
0
+1
)
j
2
. . . (
m
0
+1
)
j
d1
.
.
.
(
m
0
+d2
)
j
1
(
m
0
+d2
)
j
2
. . . (
m
0
+d2
)
j
d1
=
=
m
0
(j
1
+j
2
+...+j
d1
)
1 1 . . . 1
j
1
j
2
. . .
j
d1
.
.
.
(
j
1
)
d2
(
j
2
)
d2
. . . (
j
d1
)
d2
=
=
m
0
(j
1
+j
2
+...+j
d1
)
i>k
(
j
i
j
k
) = 0
pentru ca j
i
= j
k
daca i = k.
Deci orice submult ime formata cu maxim d 1 coloane din H este liniar inde-
pendenta de unde - conform Teoremei 2.4 (Prelegerea 2) - distant a minima a codului
este cel put in d. 2
Exemplul 12.1 Daca se lucreaza n binar, puterile pare ale radacinilor se pot omite
din lista(daca
i
este radacina, atunci si
2i
este radacina - conform Teoremei 11.9,
Prelegerea 11). Atunci un cod BCH binar corector de 3 erori este dat de radacinile
,
3
,
5
, unde este un element primitiv dintr-o extensie a lui Z
2
. De exemplu,
daca = , radacina a polinomului 1 +X +X
4
, se obt ine codul din Exemplul 11.3,
Prelegerea 11.
Exemplul 12.2 Fie GF(3
2
) generat de radacina a polinomului ireductibil 2 +
X + X
2
. Deoarece ord() = 8, orice cod va avea lungimea 8. Sa construim codul
BCH de radacini
2
,
3
,
4
. Polinoamele minimale sunt:
m
2
(X) = 1 + X
2
cu radacini
2
,
6
;
m
3
(X) = 2 + X +X
2
cu radacini
3
,
m
4
(X) = 1 + X numai cu radacina
4
.
Deci polinomul generator este
g(X) = (1 + X
2
)(2 + X +X
2
)(1 + X) = 2 + X
2
+X
3
+ 2X
4
+X
5
.
Codul este un (8, 3) - cod ciclic. Deoarece printre radacini este si , se poate
considera m
0
= 1, d = 5, deci codul poate corecta cel put in doua erori.
De remarcat ca daca folosim acest cod drept cod liniar, cum ponderea minima
a cuvintelor sale este 4 (de exemplu 02010201 este cuvant - cod), distant a minima
este 4, deci codul nu poate corecta decat o singura eroare. Astfel, tratarea codurilor
ciclice sub forma de coduri liniare scade de obicei puterea de corect ie a erorilor.
12.2. ALGORITMUL PETERSON DE DECODIFICARE 135
Numerele m, m
0
, d, q sunt parametrii codului BCH. Ideea este de a-l mari pe d,
pentru a putea corecta cate mai multe combinat ii de erori. Acest lucru este posibil
totdeauna, deoarece m si q sunt arbitrari.
Sa observam ca pentru primitiv, toate puterile lui pana la q
m
1 sunt
distincte.
In cazul binar, avem urmatorul rezultat:
Teorema 12.3 Fie m un numar natural oarecare si GF(2
m
) primitiv. Atunci
exista un cod BCH de lungime n = 2
m
1 care corecteaza orice combinat ie de
t
_
2
m
1
2
_
erori independente, folosind mt pozit ii de control.
Demonstrat ie: Vom considera codul binar denit de rad acinile ,
2
, . . . ,
2t
. Acesta
este un cod BCH pentru q = 2, m
0
= 1, d = 2t +1, n = 2
m
1 si care are distant a
minima cel put in 2t + 1. Pentru ca rad acinile ment ionate mai sus sa e distincte,
trebuie ca 2t 2
m
1.
Sa observam ca orice putere para a lui este rad acina a unui polinom minimal
al unei puteri impare anterioare a lui . Deci este sucient sa dam la nceput doar
rad acinile ,
3
, . . . ,
2t1
ale cuvintelor codului binar.
Avem - dupa denit ie: g(X) = cmmmc{m
1
(X), m
3
(X), . . . , m
2t1
(X)}.
Pe de - alta parte, m
i
(X)|X
n
1 = X
2
m
1
1 si deci - conform Teoremei 11.7
(Prelegerea 11), grad(m
i
(X)) m. Din cele doua relat ii rezulta grad(g(X)) mt.
Cum grad(g(X)) da numarul de simboluri de control, teorema este demonstrata. 2
12.2 Algoritmul Peterson de decodicare
Fie codul BCH denit de rad acinile
m
0
,
m
0
+1
, . . . ,
m
0
+2t1
(d = 2t + 1) cu
GF(q
m
).
Un asemenea cod corecteaza orice combinat ie de maxim t erori independente.
Fie {f(X)} un cuvant - cod transmis si
{r(X)} = {f(X) + e(X)} = {f(X)} +{e(X)}
secvent a recept ionat a, unde {e(X)} este vectorul - eroare.
Avem, pentru j = m
0
, m
0
+ 1, . . . , m
0
+ 2t 1 :
S
j
= r(
j
) = f(
j
) +e(
j
) = e(
j
).
S
j
se numesc componentele sindromului.
La decodicare, tipul e de eroare este determinat complet daca se stiu:
Valorile erorilor Y
i
Z
q
;
Localizarile erorilor X
i
GF(q
m
).
Vom nota pozit iile elementelor cuvintelor din GF(q
m
) prin puterile lui ; pe pozit ia
i n e() se aa coecientul lui
i1
, deci
i1
va localiza a i - a componenta dintr-un
cuvant.
Daca au intervenit t erori, modelul de eroare este complet caracterizat de cunoas-
terea celor t perechi nenule (Y
i
, X
i
), 1 i t.
136 PRELEGEREA 12. CODURI BCH
Putem conveni (evident) ca
Y
i
= 0 X
i
= 0.
De remarcat ca X
i
nu reprezint a
i
ci un
j
arbitrar care va trebui aat.
Deci, a gasi pe {e(X)} revine la a determina 2t elemente X
i
, Y
i
, 1 i t,
grupate n t perechi, cu proprietatea Y
i
= 0 i, t < i q
m
1. Avem
S
j
= e(
j
) =
t
i=1
Y
i
X
j
i
, m
0
j m
0
+ 2t 1.
Atunci
(S
j
)
q
=
_
t
i=1
Y
i
X
j
i
_
q
=
t
i=1
Y
q
i
X
jq
i
=
t
i=1
Y
i
X
jq
i
= S
jq
Deci, determinarea polinomului - eroare {e(X)} se reduce la aarea solut iilor
(Y
i
, X
i
), 1 i t ale sistemului de ecuat ii
t
i=1
Y
i
X
j
i
= S
j
, m
0
j m
0
+ 2t 1. (1)
Daca au intervenit k (k < t) erori, se completeaza cele k perechi nenule cu alte
tk perechi nule (Y
i
, X
i
). De fapt, acest numar k nu este cunoscut apriori; de aceea,
se pleaca de la t erori potent iale (maximul pe care codul BCHl poate corecta sigur),
caracterizate de t perechi (Y
i
, X
i
). Problema care se pune este deci de a-l determina
pe k si cele 2k necunoscute Y
i
, X
i
(1 i k).
Orice metoda de corectare a erorilor revine la rezolvarea sistemului de ecuat ii
(1), care este un sistem neliniar de 2t ecuat ii cu 2t necunoscute, problema NP -
completa.
Fie polinomul
(X
1
X)(X
2
X) . . . (X
t
X) =
t
+
t1
(X) +. . . +
1
(X)
t1
+(X)
t
.
unde
j
sunt funct iile simetrice date de relat iile lui V i` ete.
Daca n aceasta relat ie se ia X = X
i
(i = 1, . . . , t), obt inem
X
t
i
+ (1)
1
X
t1
i
+. . . + (1)
t1
t1
X
i
+ (1)
t
t
= 0, 1 i t.
Inmult im cu Y
i
X
j
i
si sumam dupa i. Se obt ine:
t
i=1
Y
i
X
j+t
i
+(1)
1
t
i=1
Y
i
X
j+t1
i
+. . . +(1)
t1
t1
t
i=1
Y
i
X
j+1
i
+(1)
t
t
Y
i
X
j
i
=
0, j = m
0
, m
0
+ 1, . . . , m
0
+t 1
relat ie care se poate scrie
S
j
(1)
t
t
+S
j+1
(1)
t1
t1
+. . . +S
j+t1
(1)
1
+S
j+t
= 0,
m
0
j m
0
+t 1 (2)
Algoritmul lui Peterson de corectare a k (k t) erori ntr-un cod BCH este:
12.2. ALGORITMUL PETERSON DE DECODIFICARE 137
1. Se rezolva sistemul (2) n care necunoscutele sunt (1)
p
p
, 1 p t;
2. Se nlocuiesc valorile aate n ecuat ia
X
t
+ (1)
1
X
t1
+. . . + (1)
t1
t1
X + (1)
t
t
= 0
si se aa cele t rad acini X
1
, X
2
, . . . , X
t
GF(q
m
) ale sale;
3. Cu aceste valori introduse n sistemul (1), se determina din primele t
ecuat ii valorile Y
1
, Y
2
, . . . , Y
t
Z
q
;
4. Daca (Y
i
, X
i
), X
i
=
j
i
sunt cele k t valori nenule ale solut iei obt inute,
atunci:
Pentru k = 0, cuvantul recept ionat este {r(X)} (fara erori);
Pentru 0 < k t, e e(X) =
k
i=1
Y
i
X
j
i
.
Cuvantul - cod decodicat este {f(X)} = {r(X)} {e(X)}.
De remarcat ca n cazul binar, pasul (3) nu mai este necesar, deoarece
Y
i
= 1, i k.
Pentru corectitudinea algoritmului, trebuie studiate compatibilitat ile sistemelor
de ecuat ii (1) si (2).
Teorema 12.4 Sistemul
t
i=1
Y
i
X
j
i
= S
j
, m
0
j m
0
+ t 1, de necunoscute Y
i
este compatibil daca si numai daca au intervenit t erori.
Demonstrat ie: Considerat ca sistem n Y , este liniar; determinantul principal este
X
m
0
1
X
m
0
2
. . . X
m
0
t
X
m
0
+1
1
X
m
0
+1
2
. . . X
m
0
+1
t
X
m
0
+2
1
X
m
0
+2
2
. . . X
m
0
+2
t
.
.
.
X
m
0
+t1
1
X
m
0
+t1
2
. . . X
m
0
+t1
t
= X
m
0
1
X
m
0
2
. . . X
m
0
t
1 1 . . . 1
X
1
X
2
. . . X
t
X
2
1
X
2
2
. . . X
2
t
.
.
.
X
t1
1
X
t1
2
. . . X
t1
t
= X
m
0
1
X
m
0
2
. . . X
m
0
t
1j<it
(X
i
X
j
)
El este nenul numai daca au intervenit t erori, pentru ca atunci tot i X
i
sunt distinct i
si nenuli. 2
Teorema 12.5 Matricea M =
_
_
_
_
_
_
S
m
0
S
m
0
+1
. . . S
m
0
+t1
S
m
0
+1
S
m
0
+2
. . . S
m
0
+t
.
.
.
S
m
0
+t1
S
m
0
+t
. . . S
m
0
+2t1
_
_
_
_
_
_
este nesingulara daca au intervenit t erori si este singulara daca au intervenit
mai put in de t erori.
138 PRELEGEREA 12. CODURI BCH
Demonstrat ie: T inand cont de forma sistemului (1), este posibila descompunerea
matricii M n produs de 3 matrici M = ABA
T
unde:
A =
_
_
_
_
_
_
_
_
_
1 1 . . . 1
X
1
X
2
. . . X
t
X
2
1
X
2
2
. . . X
2
t
.
.
.
X
t1
1
X
t1
2
. . . X
t1
t
_
_
_
_
_
_
_
_
_
B =
_
_
_
_
_
_
Y
1
X
m
1
0 . . . 0
0 Y
2
X
m
2
. . . 0
.
.
.
0 0 . . . Y
t
X
m
t
_
_
_
_
_
_
M este nesingulara daca cele doua matrici din descompunere sunt nesingulare.
Matricea A este nesingulara daca si numai daca valorile X
i
, (1 i t) sunt distincte
si nenule, deci daca au intervenit t erori. Matricea diagonala B este nesingulara daca
toate elementele de pe diagonala principala sunt nenule, deci daca toate perechile
(Y
i
, X
i
), 1 i t sunt nenule - adica au aparut t erori. 2
Aplicarea algoritmului Peterson se face n felul urmator:
1. Folosind polinomul recept ionat {r(X)}, se calculeaza marimile
S
j
= r(
j
), j = m
0
, m
0
+ 1, . . . , m
0
+ 2t 1
2. Se studiaza compatibilitatea sistemului
S
j
(1)
t
t
+S
j+1
(1)
t1
t1
+. . . +S
j+t1
(1)
1
+S
j+t
= 0,
m
0
j m
0
+t 1.
Daca matricea M a sistemului este nesingulara, nseamn a ca au aparut t erori.
Daca M este singulara, atunci se observa ca
t
= 0 (deoarece
t
= X
1
X
2
. . . X
t
)
si - neglijand prima sau ultima din ecuat iile de mai sus, n care se nlocuieste
t
= 0 - se obt ine un nou sistem liniar format din t 1 ecuat ii cu t 1
necunoscute.
Se studiaza matricea acestui nou sistem. Daca ea este nesingulara, nseamn a
ca au aparut t 1 erori. Daca si aceasta este singulara, cum
t1
= 0, se
repeta procedeul.
Primul sistem compatibil (cu matricea nesingulara) care se obt ine va da num a-
rul k t de erori care au intervenit n transmisie, precum si valorile
(1)
1
, (1)
2
2
, . . . , (1)
k
k
.
3. Se introduc valorile determinate mai sus n polinomul
P = X
k
+ (1)
1
X
k1
+. . . + (1)
k1
k1
X + (1)
k
k
si se aa cele k radacini X
1
, X
2
, . . . , X
k
GF(q
m
) ale ecuat iei P = 0 (prin
diverse metode, eventual chiar prin simpla vericare a ecuat iei cu toate ele-
mentele din GF(q
m
)). Aceste radacini vor da localizarile erorilor.
De remarcat ca ordinea de notare a erorilor X
1
, X
2
, . . . , X
m
este neesent ial a.
12.2. ALGORITMUL PETERSON DE DECODIFICARE 139
4. Se introduc aceste solut ii n ecuat iile sistemului
k
i=1
Y
i
X
j
i
= S
j
, j = m
0
, m
0
+ 1, . . . , m
0
+k 1
si se determina valorile erorilor Y
1
, Y
2
, . . . , Y
k
.
5. Se calculeaza astfel polinomul eroare {e(X)}, care se scade din polinomul
recept ionat si se obt ine cuvantul - cod transmis:
{r(X)} {e(X)} = {r(X) e(X)} = {f(X)}
Exemplul 12.3 Fie codul BCH denit de radacinile ,
2
,
3
,
4
,
5
6
unde
GF(2
4
) este element primitiv, radacina a polinomului 1 + X + X
4
(Exemplul 11.3,
Prelegerea 11 si Exemplul 12.1). Deoarece t = 3, acest cod este capabil sa corecteze
maxim 3 erori.
Sa presupunem ca au aparut doua erori, pe pozit iile
3
si
10
(adica pe pozit iile
4 si 11) ale cuvantului transmis. Ele reprezinta polinomul eroare e(X) = X
3
+X
10
.
Sa calculam sindromul (pentru operat ile folosite, a se vedea Exemplele 8.8 si 8.9,
Prelegerea 8):
S
1
= r() = e() =
3
+
10
=
12
S
2
= (S
1
)
2
=
24
=
9
S
3
= r(
3
) = e(
3
) =
9
+
30
=
9
+
0
=
7
S
4
= (S
2
)
2
=
18
=
3
S
5
= r(
5
) = e(
5
) =
15
+
50
=
0
+
5
=
10
S
6
= (S
3
)
2
=
14
.
Observam ca ntr-o situat ie reala, nu se stie unde sunt localizate erorile si deci
- n cazul n care au intervenit doua erori pe pozit iile
3
si
10
(care nu se cunosc
nca), din vectorul recept ionat se obt ine direct sindromul
S = (S
1
, S
2
, S
3
, S
4
, S
5
, S
6
) = (
12
,
9
,
7
,
3
,
10
,
14
)
fara sa stim din combinat iile caror localizari ale erorilor provin aceste compo-
nente ale sindromului.
Sa consideram sistemul de ecuat ii
_
_
S
1
3
+S
2
2
+S
3
1
= S
4
S
2
3
+S
3
2
+S
4
1
= S
5
S
2
3
+S
4
2
+S
5
1
= S
6
adica
_
12
3
+
9
2
+
7
1
=
3
3
+
7
2
+
7
1
=
10
3
+
3
2
+
10
1
=
14
7
=
8
,
3
=
12
,
10
=
5
si obt inem:
_
3
+
2
2
+
1
=
11
3
+
4
2
+
1
=
7
12
3
+
8
2
+
1
=
4
Adunam prima ecuat ie la ultimele doua si atunci
_
9
3
+
10
2
=
8
14
3
+
0
2
=
13
140 PRELEGEREA 12. CODURI BCH
Deoarece a doua ecuat ie se obt ine din prima prin nmult ire cu
5
, ele nu sunt in-
dependente; deci au aparut mai put in de 3 erori. Facem
3
= 0 si a doua ecuat ie
va da
2
=
13
. Din prima ecuat ie a sistemului se ajunge la
0
+
1
=
11
, adica
1
=
12
.
Deci, n acest caz k = 2,
1
=
12
,
2
=
13
. Se ajunge la polinomul X
2
+
1
X +
2
= X
2
+
12
X +
13
, care are ca radacini X
1
=
3
, X
2
=
10
.
Am redescoperit astfel cele doua localizari ale erorilor. Codul ind binar, corecta-
rea se face imediat: se modica (din 1 n 0 sau din 0 n 1) bit ii de pe pozit iile 4
respectiv 11 din cuvantul recept ionat.
Exemplul 12.4 Fie codul BCH denit de radacinile ,
2
,
3
,
4
unde GF(2
4
)
este radacina polinomului 1 +X +X
4
. Acest cod are m
0
= 1, m
0
+2t 1 = 4, deci
t = 2; codul poate corecta n mod sigur cel put in doua erori. Sa presupunem ca s-a
recept ionat cuvantul
r = 100100110000100
de 15 componente. Sa determinam cuvantul - cod transmis.
Polinomul corespunzator acestui cuvant este r(X) = 1 + X
3
+ X
6
+ X
7
+ X
12
.
Componentele sindromului sunt
S
1
= r() =
0
S
2
= r(
2
) = (S
1
)
2
=
0
S
3
= r(
3
) =
4
S
4
= r(
4
) = (S
2
)
2
=
0
Trebuie rezolvat sistemul
_
S
1
2
+S
2
1
= S
3
S
2
2
+S
3
1
= S
4
adica
_
0
2
+
0
1
=
4
2
+
4
1
=
0
,
de unde se obt ine
1
=
0
,
1
= .
Polinomul de localizare a erorilor este X
2
+
1
X+
2
= X
2
+X+, cu radacinile
X
1
=
7
, X
2
=
9
. Au aparut deci doua erori, pe pozit iile 8 si 10. Pentru ca suntem
n cazul binar, Y
1
= Y
2
= 1; vectorul - eroare obt inut este e(X) = X
7
+ X
9
, deci
cuvantul - cod transmis este
{f(X)} = {r(X)} {e(X)} = {r(X) + e(X)} = 1 +X +X
6
+X
9
+X
12
adica f = 100100100100100.
12.3 Localizarea erorii la codurile BCH binare
Dupa cum s-a observat, n cazul codurilor BCH binare este sucient sa se localizeze
eroarea; corectarea se face imediat prin complementaritatea bit ilor aat i pe pozit iile
respective. Dupa determinarea valorilor
1
,
2
, . . . ,
t
, algoritmul Peterson nu ex-
pliciteaza modul de rezolvare a ecuat iei de localizare al erorii, care uneori poate
dicil de prelucrat.
Un procedeu ecient de determinare a pozit iilor erorilor pentru codurile BCH
binare a fost realizat de Chien.
Fie polinomul (de localizare a erorii):
S(X) = (1 X
1
X)(1 X
2
X) . . . (1 X
t
X) =
0
+
1
X +
2
X
2
+. . . +
t
X
t
12.3. LOCALIZAREA ERORII LA CODURILE BCH BINARE 141
unde
0
= 1
1
= X
1
+X
2
+. . . +X
t
. . .
t
= X
1
X
2
. . . X
t
(operat iile ind efectuate n binar, semnul este asimilat cu +).
Rad acinile acestui polinom sunt inversele localizarilor erorilor X
1
i
, 1 i t.
Procedeul lui Chien de corectare a erorilor n cazul binar pentru codurile BCH,
este urmatorul:
Fie r = r
0
r
1
. . . r
n1
cuvantul recept ionat; componentele lui se vor decodica pas
- cu - pas (pe masur a ce sunt recept ionate).
Sa consideram primul bit primit r
n1
si sa cercetam daca el este corect sau nu.
Aceasta este echivalent cu a verica daca
n1
este o localizare a erorii, sau daca
(n1)
= este o rad acina a polinomului S(X) de localizare a erorii.
Daca
1
+
2
2
+ . . . +
t
t
= 1 adica S() = 0, atunci a intervenit o eroare
pe pozit ia
n1
si deci componenta r
n1
trebuie corectata.
Daca
1
+
2
2
+ . . . +
t
t
= 1 adica S() = 0, atunci r
n1
s-a recept ionat
corect.
Procedeul se repeta: n general componenta recept ionat a r
ns
este corecta daca
(ns)
=
s
nu este rad acina a polinomului S(X), adica
s
+
2
2s
+. . . +
t
st
= 1
In caz contrar, r
ns
va corectata n r
ns
+ 1.
Algoritmul lui Chien este deci:
1. s := 0;
2. while s n do
(a) s := s + 1;
(b) Se calculeaza P :=
1
s
+
2
2s
+. . . +
t
ts
;
(c) Se decodica a
ns
:= r
ns
+v unde v =
_
0 daca P = 0
1 daca P = 0
Circuitul liniar care implementeaza acest algoritm este:
1
2
t
`
_
`
_
2
`
_
t
t
i=1
si
A
T
E
c
T
E
c
T
E
c
c c c
'
T
E
'
T
E
'
T
E
`
_
E E
E
T
+
. . .
. . .
r
0
, r
1
, . . . , r
n1
142 PRELEGEREA 12. CODURI BCH
Cele t circuite din stanga realizeaza la ecare tact multiplicarea cu
i
.
La momentul init ial blocul A calculeaza suma
1
+
2
2
+ . . . +
t
t
dand la
iesire valoarea 1 (scalar) daca aceasta suma este egala cu 1 si 0 (scalar) daca suma
anterioar a da orice element din GF(2
m
) diferit de 1 = (1, 0, . . . , 0).
In funct ie de
acest rezultat, componenta r
n1
este schimbat a, respectiv pastrata.
La momentul urmator, blocul A calculeaza suma
1
2
+
2
4
+. . . +
t
2t
. Daca
aceasta suma este 1,
2
este rad acina a polinomului de localizare a erorii S(X),
deci
2
=
n2
este o localizare a erorii.
In caz contrar, suma este diferita de
1. La iesirea din blocul A se obt ine scalarul 1 respectiv 0 - componenta r
n2
ind
modicata respectiv pastrata.
Exemplul 12.5 Fie GF(2
4
) primitiv, radacina polinomului 1 + X + X
4
. Sa
presupunem si ca se stiu
1
si
2
. Circuitul care multiplica cu este (Prelegerea 8,
Figura 8.4) circuitul de mpart ire cu m(X) = 1 + X +X
4
:
_
,
+
E E E E E
T
'
cE
c
Circuitul de nmult ire cu
2
este - conform egalitat ii
2
(a
1
+ a
2
+ a
3
2
+ a
4
3
) = a
1
2
+ a
2
3
+ a
3
4
+ a
4
5
= a
3
+ (a
3
+ a
4
) +
(a
1
+a
4
)
2
+a
2
3
urmatorul (vezi si Exemplul 8.10, Prelegerea 8):
_
,
,
_
E E
c E
T
E E
c '
T
T
T
E E
T
'
cE
c
E
c E
+
+
Init ial n elementele de nmagazinare ale celor doua circuite se aa
1
respectiv
2
.
Pentru cazul binar vom nota cu
E
E
E
E
x
1
x
2
x
n
x
1
x
2
. . . x
n
dispozitivul sau care da valoarea (scalar) 0 daca si numai daca
x
1
= x
2
= . . . = x
n
= 0,
si cu
E E
x
x
dispozitivul non.
Atunci, circuitul de implementare a procedeului Chien de localizare a erorii este:
12.4. EXERCIT II 143
1
_
,
_
,
_
,
_
`
_
+
+
c
+
+
+
+
+
+
c E c '
c
'
c
c E c '
c
c E c '
cE
c
c E
c
c E c '
c E
c
c
c
E
c
E E E E E
T
'
c E
c
'
T
E
c '
c
'
T
'
'
T
E
c
c
'
T
'
c '
r
0
, r
1
, . . . , r
n1
In acest circuit, cele patru elemente de nmagazinare din stanga formeaza circuitul
de nmult ire cu (unde init ial se introduce
1
), iar cele patru elemente din dreapta
formeaza circuitul de nmult ire cu
2
, aranjat n ordine inversa (unde
2
se introduce
init ial de la dreapta spre stanga).
De asemenea, exista un element de nmagazinare care cont ine numai 1, element
pe care l furnizeaza la ecare tact.
Init ial, circuitul funct ioneaza odata la momentul 0 fara a introduce nimic de pe
canal (pentru amorsarea n elementele de nmagazinare a coecient ilor pentru
1
respectiv
2
2
).
La momentul urmator se ncepe procesul efectiv de decodicare. Daca r
n1
a fost
perturbat, atunci
n1
este localizarea erorii, adica este radacina a polinomului de
localizare a erorii si avem 1+
1
+
2
2
= 0.
In acest caz, la intrarea n sumatorul
sau este vectorul 0 = (0, 0, 0, 0), iar la iesire scalarul 0. Dupa negare se obt ine
scalarul 1, care se aduna (pentru corect ie) la r
n1
.
Daca r
n1
este corect, la intrarea n sumator se obt ine o valoare nenula, deci
iesirea va 1, care prin negare este 0 si r
n1
ramane nemodicat.
12.4 Exercit ii
12.1 Sa se verice valabilitatea descompunerii M = ABA
T
din demonstrat ia Teo-
remei 12.5
12.2 Fie GF(2
m
), m > 2 primitiv. Atunci polinoamele minimale m
1
(X) si
m
3
(X) au acelasi grad.
12.3 Construit i un cod BCH binar corector de 2 erori de lungime 11.
12.4 Construit i un cod BCH ternar de lungime 26 si d = 5.
144 PRELEGEREA 12. CODURI BCH
12.5 Sa se determine polinomul generator si cel de control pentru codul BCH binar
corector de 3 erori de lungime
(a) 15 (b) 31.
Codicat i mesajul de informat ie format numai din 1.
12.6 Caracterizat i codurile BCH care sunt denite de toate elementele extensiei
Galois GF(q
m
).
12.7 Daca g(X) = 1 + X
4
+ X
6
+ X
7
+ X
8
este polinomul generator al unui cod
BCH binar de lungime 15, sa se cerceteze daca urmatoarele secvent e sunt cuvinte -
cod:
(a) 011001011000010 (b) 000111010000110
(c) 011100000010001 (d) 111111111111111
12.8 Aat i radacinile polinoamelor cu coecient i n GF(2
4
) ( este radacina poli-
nomului 1 + X +X
4
):
X
2
+
4
X +
13
, X
2
+
7
X +
2
, X
2
2
X +
5
X
2
+
6
, X
2
+
2
X, X
2
+X +
8
.
12.9 Denim codul BCH de polinom generator g(X) = m
1
(X)m
3
(X) peste GF(2
4
)
folosind elementul primitiv , radacina a polinomului 1 +X +X
4
. Se recept ioneaza
cuvintele a si se calculeaza sindromurile aH. Stiind aceste sindromuri, localizat i
erorile (daca se poate):
01000101 11101000 11001101 01000000
00000100 10100100 00111101 00000000
12.10 Pentru codul BCH denit n exemplul anterior, decodicat i mesajele:
110000000000000 000010000100001 010001010100000
110011100111000 110011100100000 111000000000001
101110000000000 101010010110001 010000100000000
010101001011000 110111011101100 101110000001000
111001011000000 000111010000110
12.11
In codul BCH de lungime 15 corector de 3 erori, sa se decodice mesajele:
(a) 001000100000000, (b) 101011001000000.
12.12
In codul BCH peste Z
3
de lungime 8, corector de 2 erori, sa se decodice
mesajele
(a) 00100000 (b) 12121212 (c) 11211122
(d) 02020202 (e) 10201020 (f) 22110011.
12.13 Fie GF(2
5
) primitiv, radacina a polinomului 1 +X
2
+X
5
. Se deneste
un cod BCH de lungime 31 cu d = 5.
1. Sa se construiasca polinomul generator al codului: g(X) = m
1
(X)m
3
(X).
2. Sa se decodice mesajul 1001011011110000110101010111111.
Prelegerea 13
Coduri Reed - Solomon
13.1 Denirea codurilor RS
O clasa foarte interesanta de coduri ciclice a fost denitan 1960 de Reed si Solomon.
Numite n articolul init ial coduri polinomiale, Peterson arata un an mai tarziu ca ele
sunt de fapt un caz particular de coduri BCH. Construct ia data de Reed - Solomon
a fost urmatoarea:
Fie GF(q
m
) primitiv (deci ord() = n = q
m
1).
Daca a
0
a
1
. . . a
k1
GF(q
m
)
k
este secvent a de informat ie, se deneste polinomul
h(X) = a
0
+a
1
X +. . . +a
k1
X
k1
GF(q
m
)[X]. Codul polinomial va format de
toate cuvintele de forma h(1)h() . . . h(
n1
).
Teorema 13.1 Un cod polinomial este un cod BCH peste GF(q
m
), denit de rada-
cinile ,
2
, . . . ,
nk
.
Demonstrat ie: Sa consideram polinomul {f(X)} asociat cuvantului - cod:
f(X) = h(1) + h()X + . . . + h(
n1
)X
n1
= a
0
(1 + X + X
2
+ . . . + X
n1
) +
a
1
(1+X +
2
X
2
+. . . +
n1
X
n1
) +a
2
(1+
2
X +
4
X
2
+. . . +(
2
X)
n1
) +. . . +
a
k1
(1 +
k1
X + . . . + (
k1
X)
n1
).
Se stie ca toate elementele nenule din GF(q
m
) sunt radacinile polinomului
X
q
m
1
1 = X
n
1 = (X 1)(1 +X +X
2
+. . . +X
n1
), deci toate elementele din
GF(q
m
) \ {0, 1} sunt radacini ale polinomului 1 + X + X
2
+ . . . + X
n1
.
Prin calcul se obt ine f(1) = a
0
, f(
1
) = a
1
, f(
2
) = a
2
, . . . ,
f(
(k1)
) = a
k1
si f(
j
) = 0 daca n 1 j k.
Dar cum
n
= 1, avem
j
=
nj
si deci f(
i
) = 0, 1 i n k. 2
In continuare vom numi aceste coduri Reed - Solomon pentru care vom folosi
urmatoarea denit ie:
Denit ia 13.1 Fie GF(q
m
) primitiv. Se numeste cod Reed - Solomon (RS)
codul BCH de polinom generator g(X) GF(q
m
)[X],
g(X) = (X
m
0
)(X
m
0
+1
) . . . (X
m
0
+d2
).
Deci, diferent a fat a de codurile BCH generale este aceea ca un cod RS este denit
direct pe extensie, nu pe corpul de baza. Astfel, la un cod BCH cuvintele - cod sunt
din Z
n
q
, pe cand la un cod RS, ele sunt din GF(q
m
)
n
. Cum si GF(q
m
) este corp,
toate proprietat ile codurilor BCH se pastreaz a si n cazul codurilor RS.
145
146 PRELEGEREA 13. CODURI REED - SOLOMON
Deoarece au fost studiate (si utilizate) numai codurile Reed - Solomon de carac-
teristica 2, vom considera n continuare q = 2.
Exemplul 13.1 Fie GF(2
3
) generat de radacina a polinomului 1 + X + X
3
, si
sa consideram codul RS denit de polinomul g(X) = ( + X)(
2
+ X) = 1 + +
( +
2
)X + X
2
. Este un cod ciclic de lungime n = 7, k = 5 si d = 3. Folosind
denit ia din sect iunea 9.3, se poate construi matricea generatoare a codului:
G =
1 + +
2
1 0 0 0 0
0 1 + +
2
1 0 0 0
0 0 1 + +
2
1 0 0
0 0 0 1 + +
2
1 0
0 0 0 0 1 + +
2
1
Codul are 8
5
cuvinte, obt inute prin nmult irea cu g(X) a tuturor polinoamelor din
GF(2
3
)[X] de grad cel mult 4 sau - echivalent - din nmult irea cu matricea G a
tuturor cuvintelor din GF(2
3
)
5
.
De exemplu, codicarea mesajului de informat ie a = 100
3
, sau a(X) = 1 +
X+
3
X
4
este a(X)g(X) = 1++(+
2
)X
2
+X
3
+(1+
2
)X
4
+X
5
+(1+)X
6
(respectiv
3
0
4
6
1
3
).
O matrice de control foarte simpla se obt ine folosind (conform sect iunii 11.3)
radacinile si
2
ale cuvintelor - cod:
H =
1
2
6
1
2
6
3
.
Teorema 13.2 Distant a minima a unui cod RS este d = n k + 1.
Demonstrat ie: Sa notam - temporar - cu d
H
distant a minima a unui cod. Conform
Teoremei 3.3, d
H
n k + 1. Pe de-alta parte, ntr-un cod RS, grad(g(X)) =
nk = d 1 deci d = nk +1. Din cele doua armat ii rezulta d
H
d. Pe de-alta
parte, din Teorema 12.2, cum codul RS este un caz particular de cod BCH, rezulta
d
H
d. 2
Din aceasta teorema rezulta ca un cod RS are distant a maxima separabila (se
mai spune ca este un cod DMS).
13.2 Coduri RS scurte
Deoarece GF(2
m
) este primitiv, toate cuvintele unui cod RS au lungimea
n = 2
m
1 si k = n d + 1 = 2
m
d simboluri de informat ie. Uneori ns a sunt
necesare coduri RS a caror lungime sa nu e de aceasta forma. Ele se obt in astfel:
Fie A un (n, k) - cod RS de distant a d si s (1 s < 2
m
d) un numar ntreg.
Se construieste codul RS scurt A(s) format din toate cuvintele lui A care au 0 pe
ultimele s pozit ii, din care apoi aceste s pozit ii se ignora.
Exemplul 13.2 Fie A codul dat de g(X) = +X unde este radacina polinomului
1 + X + X
2
si genereaza GF(2
2
). A are deci n = 3, k = 2, d = 2 si 16 cuvinte
13.2. CODURI RS SCURTE 147
- cod. Codul A(1) se obt ine luand toate cuvintele lui A care au 0 pe ultima pozit ie
(acestea sunt 000, 10,
2
0, 10), din care se elimina ultimul caracter.
Deci A(1) = {00, 1,
2
, 1}.
Atent ie: Ultima pozit ie nu nseamna ultimul bit. Fiecare element din cuvant are
aici doua pozit ii binare. Astfel, cele patru cuvinte - cod alese din A au reprezentarea
binara
000000, 011000, 110100, 100100
iar codul scurt, reprezentat n binar este
A(1) = {0000, 0110, 1101, 1001}.
Daca g(X) este polinomul generator al codului A, atunci
A(s) = {b A|grad(b(X)) < n s}.
Sau - altfel spus - A(s) cont ine toate polinoamele de forma b(X) unde
b(X) = a(X)g(X), grad(a(X)) < k s = 2
m
d s (deoarece grad(g(X)) =
d 1 = n k).
De aici rezulta ca matricea generatoare a unui cod RS scurt A(s) este
G =
g(X)
Xg(X)
.
.
.
X
ks1
g(X)
care se obt ine din matricea generatoare a codului A, din care se elimina ultimele s
linii. Numarul de simboluri de informat ie este egal cu num arul de linii din G, deci
k
s
= k s = 2
m
d s
Sa notam acum cu d respectiv d
s
distant ele minime ale celor doua coduri. Se
observa ca c
1
, c
2
A(s), c
1
= c
1
00. . . 0, c
2
= c
2
00. . . 0 A si deci d(c
1
, c
2
) =
d(c
1
, c
2
), adica d
s
d.
Pe de-alta parte (Teorema 3.3), d
s
n
s
k
s
+1 = 2
m
1s(2
m
ds)+1 = d,
deci d
s
= d.
Din cele aratate mai sus putem enunt a teorema:
Teorema 13.3 Fie A un (n, k) - cod RS cu distant a minima d si A(s) codul sau
scurt, cu parametrii n
s
, k
s
, d
s
. Atunci
n
s
= 2
m
1 s, k
s
= 2
m
d s, d
s
= d
si A(s) este un cod DMS.
Observat ie: Alte coduri scurte se pot obt ine eliminand orice set de s elemente din
cuvintele unui cod RS. Se poate vedea imediat ca proprietat ile aratate mai sus nu
se schimba.
Exemplul 13.3 Plecand de la codul RS din Exemplul 13.1, codul scurt A(2) va
avea ca matrice generatoare matricea G fara ultimele doua linii si coloane, iar ca
parametri n
2
= 5, k
2
= 3, d
2
= 3.
148 PRELEGEREA 13. CODURI REED - SOLOMON
13.3 Decodicarea codurilor RS
Fiind cazuri particulare de coduri BCH, codurile RS se pot decodica folosind al-
goritmul Peterson (Sect iunea 12.2). Sa reluam detaliat pe un exemplu aplicarea
acestui algoritm.
Exemplul 13.4 Fie g(X) = (1 + X)( + X)(
2
+ X)(
3
+ X) unde GF(2
3
)
este radacina (primitiva) a polinomului 1 + X + X
3
. Codul are d = 5, deci poate
corecta maxim 2 erori independente. Mai stim ca:
3
= 1 + ,
4
= +
2
,
5
= 1 + +
2
,
6
= 1 +
2
.
Sa presupunem ca s-a recept ionat cuvantul v =
6
2
10
2
. Pentru decodi-
care se aplica urmatorii pasi:
(1): Se calculeaza cele patru sindromuri:
S
0
= v(
0
) =
6
++
5
+
2
+1+0+
2
= 1+
2
++1++
2
+
2
+1+
2
= 1
S
1
= v() =
6
+
2
+
7
+
5
+
4
+0 +
8
=
3
S
2
= v(
2
) =
6
+
3
+
9
+
8
+
8
+0 +
14
=
3
S
3
= v(
3
) =
6
+
4
+
11
+
11
12
+0 +
20
= 1
(2) Deoarece rangul matricii
S
0
S
1
S
1
S
2
1
3
este 2, cuvantul
v are doua erori; cum distant a este 5, ele pot corectate.
(3) Se rezolva sistemul liniar
S
0
2
+ S
1
1
= S
2
S
1
2
+ S
2
1
= S
3
adica
2
+
3
1
=
3
2
+
3
1
= 1
Adunand cele doua ecuat ii, se obt ine (1 +
3
)
2
= 1 +
3
, deci
2
= 1.
1
=
3
+1 = , de unde, prin nmult ire cu
4
se ajunge la
1
=
5
.
(4) Polinomul de localizare a erorii este (X) = X
2
+
1
X +
2
= X
2
+
5
X + 1. Prin ncercari se obt ine () = (
6
) = 0, deci cele doua erori sunt pe
pozit iile X
1
= , X
2
=
6
.
(5) Se rezolva sistemul liniar
X
0
1
X
0
2
X
1
X
2
Y
1
Y
2
S
0
S
1
, adica:
Y
1
+ Y
2
= 1
Y
1
+
6
Y
2
=
3
2
100.
13.4 Alta construct ie a codurilor RS
Plecand de la construct ia init iala, se poate realiza si o alta denit ie pentru codurile
RS. Ea se bazeaza pe o modalitate diferita de reprezentare a cuvintelor din Z
n
q
:
folosind polinoamele ca funct ii.
13.4. ALT
6
f(x) 0 0 1 1 0 1 0 0
Atunci f(x) se poate reprezenta prin
v
f
= f(0)f(1)f()f(
2
)f(
3
)f(
4
)f(
5
)f(
6
) = 00110100.
Exemplul 13.6 Fie S = GF(2
3
) si funct ia f : S S denita v
f
=
4
01
2
100.
Pe baza valorilor n ecare punct din S, f se poate reprezenta si ca un polinom
f(X) =
4
+
2
X +
3
X
2
+ X
3
.
Denit ia 13.2 Fie S GF(2
m
). Doua polinoame p(X), q(X) reprezinta aceeasi
funct ie : S GF(2
m
) daca si numai daca S, p() = q().
Mult imea A = {f(X) GF(2
m
)[X]|grad(f(X)) k1} se poate structura evident
ca un spat iu liniar de dimensiune k, cu baza {1, X, X
2
, . . . , X
k1
}. Deoarece toate
aceste polinoame pot scrise si ca funct ii denite pe o mult ime S GF(2
m
), vom
numi A spat iul funct iilor pe S.
De remarcat ca n aceasta faza S nu este denit explicit.
Teorema 13.4 Fie mult imea S, |S| = n si k n. Mult imea tuturor funct iilor
: S GF(2
m
) reprezentate prin polinoame de grad k 1 formeaza un spat iu
liniar de funct ii, cu baza {1, X, . . . , X
k1
}.
Demonstrat ie: Evident, orice polinom de grad cel mult k 1 este generat de
{1, X, . . . , X
k1
}. Tot ce trebuie aratat este ca ecare funct ie are o reprezentare
unica sub forma de polinom.
Sa presupunem (prin absurd) ca p(X) si q(X) sunt egale ca funct ii pe S. Deci
S, p() = q(). Dar atunci p(X) q(X) este un polinom de grad < k care
are n (n k) rad acini, deci p(X) q(X) 0, adica p(X) q(X). 2
Exemplul 13.7 Fie S = GF(2
3
) construit folosind 1 + X + X
3
, si sa consideram
toate polinoamele din GF(2
3
)[X], de grad cel mult doi. O baza pentru acest spat iu
de funct ii este {1, X, X
2
}, cu reprezentarea corespunzatoare:
1 11111111
X 01
2
6
X
2
01
2
5
Atunci, orice polinom p(X) = a
0
+ a
1
X + a
2
X
2
considerat ca o funct ie, poate
reprezentat sub forma de vector prin
v
p
= (a
0
a
1
a
2
)
1 1 1 1 1 1 1 1
0 1
2
6
0 1
2
6
3
i=0
(1 +
i
) = h(X)(1 + X
n
).
2
Teorema 13.7 Fie S mult imea radacinilor de ordinul n ale unitat ii din GF(2
m
).
Atunci spat iul funct iilor tuturor polinoamelor din GF(2
m
)[X] de grad k 1 pe S
formeaza un (n, k) - cod ciclic peste GF(2
m
).
Demonstrat ie: Sa notam cu C acest spat iu si e S generat de primitiv. Atunci,
daca p(X) GF(2
m
)[X] este un polinom de grad cel mult k 1, avem v
p
=
p(1)p() . . . p(
n1
) C.
Fie q(X) = p(X). Cum grad(q(X)) k 1, rezulta v
q
C. Dar
q(1)q() . . . q(
n1
) = p()p(
2
) . . . p(
n1
)p(1) C,
ceea ce reprezint a chiar denit ia unui cod ciclic. 2
Exemplul 13.8 Sa consideram GF(2
3
) construit cu 1 + X + X
3
si e p(X) =
4
+
2
X +
3
X
2
+ X
3
, care are reprezentarea 01
2
100. Permutarea ei ciclica
este 1
2
1000, care corespunde funct iei p(X) =
4
+
3
X +
5
X
2
+
3
X
3
=
(
4
+ X)(
5
+ X)(
6
+ X)
3
.
Denit ia 13.3 Fie polinomul V (X) = V
0
+ V
1
X + . . . + V
n1
X
n1
GF(2
m
)[X]
si GF(2
m
) o radacina primitiva de ordinul n a unitat ii. Spunem ca v(X) =
v
0
+ v
1
X + . . . + v
n1
X
n1
este transformata lui V (X) daca
V (
j
) =
n1
i=0
V
i
ji
= v
j
, j = 0, 1, . . . , n 1
13.4. ALT
i=1
v
j
ij
= v(
i
)
Vom arata aceasta ns a n mod direct, far a a folosi inversa matricii A:
Teorema 13.8 Fie GF(2
m
) o radacina primitiva de ordin n a unitat ii. Daca
v
j
= V (
j
) pentru V (X) = V
0
+ V
1
X + . . . + V
n1
X
n1
GF(2
m
)[X], atunci
V
i
= v(
i
) unde v(X) = v
0
+ v
1
X + . . . + v
n1
X
n1
.
Demonstrat ie: Deoarece este primitiv, vom avea
n1
j=0
(ki)j
=
n (mod 2) daca k i = 0
0 daca k i = 0
Atunci
v(
i
) =
n1
j=0
v
j
ij
=
n1
j=0
n1
k=0
V
k
kj
ij
=
n1
k=0
V
k
n1
j=0
(ki)j
= V
i
. 2
Deci, ind dat un vector de valori (v
0
, v
1
, . . . , v
n1
), se pot regasi coecient ii
polinomului V (X) = V
0
+ V
1
X + . . . + V
n1
X
n1
, lucru esent ial n denirea unui
algoritm de decodicare.
Teorema 13.9 Fie S GF(2
m
) mult imea radacinilor de ordinul n ale unitat ii din
GF(2
m
), generata de elementul primitiv . Spat iul funct iilor tuturor polinoamelor
de grad < n d + 1 pe S este un cod ciclic DMS cu polinomul generator
g(X) = ( + X)(
2
+ X) . . . (
d1
+ X).
Demonstrat ie: Funct ia polinomiala V (X) a carei reprezentare corespunde lui v(X) =
a(X)g(X) este V (X) =
n1
i=0
v(
ni
)X. Deoarece v(
ni
) = 0 pentru i = n d +
1, n d + 2, . . . , n 1 (grad(v(X) < n d + 1), coecientul lui X
i
din V (X) este
zero, deci V (X) are gradul < n d + 1. 2
Daca se ia n = 2
m
1, se ajunge la o alta modalitate de construct ie a codurilor
RS, care are o alta matrice generatoare (deci o alta dispunere a bit ilor de informat ie).
Exemplul 13.9 Fie radacina polinomului 1 + X + X
3
cu care se construieste
GF(2
3
). Consideram codul RS de polinom generator g(X) = (1 + X)( + X)(
2
+
X)(
3
+ X) =
6
+
5
X +
5
X
2
+
2
X
3
+ X
4
care corespunde reprezentarii
2
100). Transformata lui g(X) este polinomul G(X) =
6
k=0
g(
7k
)X
k
.
Pentru ca g(
0
)g() . . . g(
6
) = 00001
4
, avem
G(X) = g(
71
)X+g(
72
)X
2
+g(
73
)X
3
=
4
X+X
2
+X
3
= X(
4
+X+X
2
).
Se verica usor ca G(X) este o funct ie cu reprezentarea
152 PRELEGEREA 13. CODURI REED - SOLOMON
G(
0
)G() . . . G(
6
) =
6
2
100.
Putem gandi acest cod RS ca spat iul tuturor polinoamelor de grade 1, 2 si 3, adica
{Xp(X)|p(X) GF(2
3
)[X], grad(p(X)) < 3}.
Baza pentru acest spat iu liniar este {X, X
2
, X
3
}, iar matricea generatoare
1
2
6
1
2
6
3
5
1
3
5
4
Deci G(X) =
4
X + X
2
+ X
3
va avea reprezentarea
(
4
1)
1
2
6
1
2
6
3
5
1
3
5
4
= (
6
2
1 0 0).
13.4.1 Algoritmul de decodicare Berlekamp - Massey
Fie g(X) polinomul generator al unui cod RS, c(X) = a(X)g(X) un polinom -
cod transmis, si v(X) = c(X) + e(X) polinomul recept ionat. Notam V (X), C(X)
si E(X) transformatele lui v(X), c(X) respectiv e(X). Cum transformata Fourier
nita este o aplicat ie liniara, se veric a imediat V (X) = C(X) + E(X).
Deoarece g(X) are d1 rad acini consecutive
i
, m
0
i m
0
+d2, sindromul
s(X) va avea s(
ni
) = e(
ni
) = E
i
pentru n m
0
d + 1 i n m
0
. Deci
sindromul va putea determina d1 coecient i ai transformatei E(X). Pentru ceilalt i
coecient i va trebui sa reluam polinomul de localizare a erorilor (X).
(X) are proprietatea ca (
k
) = 0 e
k
= 0. Deoarece E(
k
) = e
k
, vom
avea (
k
)E(
k
) = 0 k, deci - lucrand n algebra polinoamelor modulo 1 + X
n
:
{(X)}{E(X)} = 0
si
{(X)}{E(X)} =
i=0
i
X
i
n1
k=0
E
k
X
k
t
E
k
+
t1
E
k+1
+ . . . +
0
E
k+t
= 0.
Pentru ca stim deja d1 valori consecutive ale lui E
k
, putem determina recursiv
coecient ii
i
, pe care i folosim la generarea tuturor valorilor E
k
.
2
10
2
. Deoarece d = 5, avem t 2 si
E
0
= v(
0
) = 1, E
6
= v() =
3
, E
5
= v(
2
) =
3
, E
4
= v(
3
) = 1. Polinomul de
localizare a erorii este (X) = X
2
+
1
X +
0
. Determinam
0
,
1
ca n Exemplul
13.4 si gasim
0
= 1,
1
=
5
. Se poate determina astfel relat ia de recurent a:
E
k
=
5
E
k+1
+ E
k+2
Deoarece (E
0
, E
6
, E
5
, E
4
) = (1,
3
,
3
, 1), vom avea:
E
3
=
5
E
4
+ E
5
=
5
+
3
=
2
,
E
2
=
5
E
3
+ E
4
=
5
2
+1 = 0,
E
1
=
5
E
2
+ E
3
= 0 +
2
=
2
13.5. STERGERI 153
Am determinat transformata lui e(X), adica E(X) = 1 +
2
X +
2
X
3
+ X
4
+
3
X
5
+
3
X
6
. De aici rezulta e = (E(
0
), E(), E(
2
), . . . , E(
6
)) = 0
6
0000
2
,
deci cuvantul decodicat este
c = v + e =
6
2
100.
Pe de-alta parte, daca s-ar folosit matricea generatoare din Exemplul 13.9, nu
ar mai fost necesar sa se determine vectorul eroare e, ci doar sa se calculeze toate
valorile lui v(
k
), 0 k 6, din care se obt ine direct mesajul transmis; mai precis,
se aa transformata lui v(X), care se aduna la transformata lui e(X):
v
0
v
1
. . . v
6
= v(
0
)v(
6
)v(
5
) . . . v() = 1
6
1
3
3
,
E
0
E
1
. . . E
6
= 1
2
0
2
1
3
3
, si deci
C
0
C
1
. . . C
6
= V
0
V
1
. . . V
6
+ E
0
E
1
. . . E
6
= 0
4
1000.
S-a obt inut C(X) =
4
X + X
2
+ X
3
. Deci bit ii de informat ie sunt (
4
, , 1).
De aici se obt ine forma cuvantului transmis c =
6
2
100.
13.5 Stergeri
O stergere este o eroare detectata, pentru corectarea careia trebuind determinata
doar valoarea erorii. Numarul locat iei de stergere este pozit ia elementului perturbat.
Acest num ar este n general cunoscut (din citirea zica a mesajului primit sau din
structura codului).
Astfel, e A un cod RS peste GF(2
m
) si sa consideram codul
A format din
reprezentarea binara a cuvintelor codului A (ecare element din GF(2
m
) se scrie ca
un cuvant binar de lungime m). Se deneste si codul
A
,
se nlocuieste ecare element 0, 1, ,
2
respectiv cu 000, 101, 011, 110 (al treilea bit
este bitul de paritate). Astfel, pentru 10 A avem 011101000
A
.
Deoarece ecare element dintr-un cuvant - cod c A este reprezentat printr-un
cuvant binar de lungime m + 1, cuvantul - cod corespunzator c
va avea
lungimea (2
m
1)(m + 1). Se observa ca ecare element nenul din c este nlocuit
cu un cuvant de pondere para. Deci, c
va format din 2
m
1 cuvinte binare de
lungimi m + 1, ecare de pondere para.
In acest fel, daca n cuvantul recept ionat
v
iB
(
i
+ X) ca ind polinomul de localizare a stersaturilor. Atunci polinomul de
localizare a erorilor se poate scrie
A
(X) =
B
(X)
A\B
(X).
Aarea pozit iilor erorilor revine la determinarea rad acinilor polinomului
A\B
(X).
Pentru aceasta se poate folosi algoritmul Peterson de decodicare a codurilor BCH,
cu cateva schimb ari, corespunzatoare sindromurilor modicate.
Astfel, e
B
(X) = B
0
+B
1
X +. . . +B
s1
X
s1
+X
s
si
A\B
(X) = A
0
+A
1
X +
. . . + A
t1
X
t1
+ X
t
.
Similar algoritmului Peterson, vom nmult i ambii membrii ai egalitat ii
B
(X)
A\B
(X) =
A
(X) cu Y
i
X
j
i
(m
0
j m
0
+ d 2) (reamintim, X
i
sunt
locat iile, iar Y
i
sunt valorile erorilor).
Apoi se nlocuieste X = X
i
si se face suma dupa i = 1, . . . , t + s. Se obt ine
S
j
A
0
+ S
j+1
A
1
+ . . . + S
j+t1
A
t1
+ S
j+t
= 0 (m
0
j m
0
+ d 2) (1)
unde S
k
sunt sindromurile modicate, de forma
S
k
= B
0
S
k
+ B
1
S
k+1
+ . . . + B
s1
S
k+s1
+ S
k+s
. (2)
Pentru ca se stiu valorile lui S
j
pentru j = m
0
, . . . , m
0
+d2 iar B
0
, B
1
, . . . , B
s1
sunt cunoscute, se pot determina S
j
pentru m
0
j d 1 s. Deoarece 2t +s
d 1, deci 2t d 1 s, se poate rezolva sistemul (1) scris matricial
m
0
S
m
0
+1
. . . S
m
0
+t1
S
m
0
+1
S
m
0
+2
. . . S
m
0
+t
.
.
.
S
m
0
+t1
S
m
0
+t
. . . S
m
0
+2t1
A
0
A
1
.
.
.
A
t1
m
0
+t
S
m
0
+t+1
.
.
.
S
m
0
+2t
(3)
cu t necunoscute A
0
, A
1
, . . . , A
t1
.
Dupa determinarea polinomului de localizare a erorilor, algoritmul Peterson se
poate aplica n continuare nemodicat. 2
Fie A un cod RS peste GF(2
m
), de polinom generator g(X) = (
m
0
+ X) . . .
(
m
0
+d2
+ X). Se transmite cuvantul - cod c si se recept ioneaz a v cu s stergeri
localizate n elementele mult imii B = {X
1
, . . . , X
s
}. Fie
B
(X) = B
0
+B
1
X +. . . +
B
s1
X
s1
+ X
s
polinomul de localizare al stergerilor.
Polinomul de localizare a erorilor
A
(X) =
A\B
(X)
B
(X) poate determinat
aand
A\B
(X) = A
0
+ A
1
X + . . . + A
t1
X
t1
+ X
t
astfel:
(a) Se calculeaza S
j
= v(
j
) pentru j = m
0
, m
0
+ 1, . . . , m
0
+ d 2;
(b) Se determina S
j
(m
0
j m
0
+ d 2 s) cu relat iile (2);
(c) Se rezolva sistemul liniar (3) de necunoscute A
i
.
13.6. EXERCIT II 155
Exemplul 13.13 Fie A codul RS peste GF(2
4
) construit de 1 + X + X
4
, cu poli-
nomul generator g(X) = (1 + X)( + X) . . . (
4
+ X) si
A
14
0. . . 0.
Singura stergere localizata este
1
, deci
B
(X) = + X.
Trebuie sa determinam polinomul de localizare a erorilor.
Din v(X) =
10
+
2
X
2
+
6
X
4
+
14
X
5
calculam sindromurile
S
0
=
5
, S
1
= 0, S
2
=
3
, S
3
=
4
, S
4
=
3
.
Deoarece B
0
= si s = 1, relat ia de recurent a pentru sindromurile modicate
este S
j
= B
0
S
j
+ S
j+1
= S
j
+ S
j+1
(0 j 3).
Se determina astfel S
0
=
6
, S
1
=
3
, S
2
= 0, S
3
=
11
.
Deoarece d = 5 avem t = 2, deci sistemul (3) este
0
S
1
S
1
S 2
a
0
A
1
2
S
sau
3
0
A
0
A
1
11
cu solut ia A
0
=
8
, A
1
=
11
. S-a obt inut polinomul
A\B
(X) =
8
+
11
X+X
2
.
Deci,
A
(X) =
B
(X)
A\B
(X) = (+X)(
8
+
11
X+X
2
) = (+X)(
3
+X)(
5
+X).
Rezulta ca erorile sunt localizate pe pozit iile X
1
= , X
2
=
3
, X
3
=
5
.
Mai departe se lucreaza pentru determinarea valorilor erorilor, folosind sindro-
murile originale n algoritmul Peterson. Trebuie rezolvat sistemul:
1 1 1
3
10
Y
1
Y
2
Y
3
5
0
cu solut ia Y
1
=
12
, Y
2
= 1, Y
3
=
3
.
Deci v(X) se decodica n c(X) = v(X)+e(X) = (
10
+
2
X
2
+
6
X
4
+
14
X
5
)+
(
12
X + X
3
+
3
X
5
), adica c =
10
12
2
1
6
10. . . 0, sau - n
A
:
11101 11110 00101 10001 00110 10001 0 . . . 0.
13.6 Exercit ii
13.1 Construit i matricea generatoare si listat i toate cuvintele - cod ale codului RS
din Exemplul 13.2. Scriet i si forma binara a acestor cuvinte.
13.2 Fie codul denit de g(X) = (1+X)(+X)(
2
+X)(
3
+X), bazat pe extensia
Galois GF(2
3
) generata de , radacina a polinomului 1 + X + X
3
.
1. Determinat i n, k, d si numarul de cuvinte - cod.
2. Construit i o matrice generatoare si o matrice de control a codului.
3. Codicat i mesajele de informat ie
10
2
, 111,
2
6
.
13.3 Construit i coduri RS cu urmatorii parametri:
(a) m = 2, d = 3, m
0
= 2;
156 PRELEGEREA 13. CODURI REED - SOLOMON
(b) m = 3, d = 3, m
0
= 2;
(c) m = 3, d = 5, m
0
= 0;
(d) m = 4, d = 5, m
0
= 0;
(e) m = 5, d = 7, m
0
= 0.
13.4 Pentru ecare cod determinat la exercit iul anterior determinat i n, k si numa-
rul de cuvinte - cod.
13.5 Aratat i ca un (2
m
1, k) - cod RS are 2
mk
cuvinte - cod.
13.6 Fie codul RS de polinom generator g(X) = (1 + X)( + X)(
2
+ X)(
3
+
X)(
4
+ X)(
5
+ X) GF(2
4
)[X] unde este radacina polinomului 1 + X + X
4
.
Decodicat i mesajele:
0
3
10
000000
1
4
2
0010
5
2
0
10
0
7
0
12
3
10000000
13.7 Fie codul RS generat de g(X) = ( + X)(
2
+ X)(
3
+ X)(
4
+ X) unde
GF(2
4
) este radacina polinomului 1 + X + X
4
. Decodicat i mesajele:
001
8
00
5
00000000
0
10
0
6
13
0
8
11
5
00000
4
0100
2
12
al
14
000000
13.8 Plecand de la codul RS din exercit iul precedent, se formeaza codul scurt A(4)
de lungime n = 11 (si k = 7). Deecodicat i mesajele:
001
8
00
5
0000
0
10
0
6
13
0
8
11
5
0
4
0100
2
12
14
00
13.9 Aratat i ca transformata Fourier nita A este inversabila.
13.10 Fiind dat GF(2
3
) construit cu polinomul 1 +X +X
3
, gasit i matricea gene-
ratoare pentru un cod DMS de lungime 7 pentru spat iul funct iilor denit pe
S = GF(2
3
) \ {0}, cu baza:
(a) {X, X
2
, X
3
} (b) {1, X, X
2
, X
3
, X
4
} (c) {X, X
2
, X
3
}.
Aratat i ca toate aceste coduri sunt ciclice. Determinat i polinomul generator pen-
tru ecare cod.
13.11 Fiind dat GF(2
3
) construit cu 1+X +X
3
, determinat i pentru ecare G(X)
reprezentarea v
g
:
G(X) = X + X
3
, G(X) = 1 + X
2
+ X
4
.
13.12
In aceleasi condit ii din exercit iul precedent, determinat i G(X) stiind valorile
lui v
g
:
v
g
=
3
4
0
6
2
v
g
=
4
3
0
6
1.
13.13 Folosind codul denit n Exemplul 13.13, decodicat i mesajele:
11101 11110 11010 00111 11110 10100 10110 10100 0 . . . 0
11000 00000 01010 11111 11011 00000 10001 00101 0 . . . 0
00000 10000 10000 10000 00101 10100 11101 0 . . . 0.
Bibliograe
[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;
[2] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza de
doctorat), PARIS VI, 1990;
[3] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;
[4] S. Guiasu - Teoria Codurilor, Tipograa Universit at ii Bucuresti, 1976;
[5] D.G. Homan, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;
[6] A.M.Kerdok - A class of low-rate non linear codes, Information and control, 20
(1972), 182-187;
[7] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;
[8] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
157
Prelegerea 14
Alte clase de coduri ciclice
14.1 Coduri Hamming ciclice
Sa consideram spat iul nul al matricii
H = (1
2
. . .
n1
)
unde GF(2
p
) este primitiv, deci n = ord() = 2
p
1.
Cum poate considerat ca un vector coloana cu p componente, H este o
matrice p 2
p
n care toate coloanele sunt distincte. Acesta este dupa cum se stie
(Prelegerea 4) un cod Hamming (2
p
1, 2
p
p 1) - construit nsa ca un cod ciclic.
Exemplul 14.1 Fie GF(2
3
), radacina a polinomului ireductibil 1+X +X
3
.
Se verica imediat ca ord() = 7, deci este primitiv. Construim matricea
H = (1
2
6
) =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
j
(0 < j 2
p
2).
La ecare tact circuitul nmult este cont inutul elementelor de nmagazinare cu ;
deci, dupa n j = 2
p
1 j momente, n elementele de nmagazinare se obt ine
2
p
1j+j
=
2
p
1
=
n
=
0
= 1 = (1, 0, . . . , 0).
Cum componentele cuvantului recept ionat sunt scrise n ordinea descrescatoare a
puterilor (prima component a este coecientul termenului de rang maxim), nseam-
na ca va trebui sa corectam componenta nj din cuvant, nlocuind 0 cu 1 sau 1 cu
0.
Exemplul 14.2 Fie GF(2
4
), radacina a polinomului 1 + X + X
4
. Codul
Hamming (15, 11) obt inut folosind ca radacina pe - deci polinom generator
g(X) = 1 + X + X
4
, are matricea de control
H = (1 . . .
14
) =
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
0 1 0 0 1 1 0 1 0 1 1 1 1 0 0
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
1
2
. . .
2
p
2
1 1 1 . . . 1
unde GF(2
p
) este primitiv. H are p + 1 linii si n = 2
p
1 coloane (pe prima
coloana, primele p pozit ii formeaza vectorul 1 =
0
, iar pe a p + 1-a pozit ie se aa
scalarul 1 Z
2
). Codul obt inut este codul Hamming extins (Denit ia 3.1), capabil
sa corecteze o eroare si sa detecteze doua erori.
Un asemenea cod se poate deni cerand ca orice cuvant - cod {f(X)} sa aiba
ca rad acini si 1. Generatorul unui astfel de cod ciclic este g(X) = (1 + X)m(X),
unde m(X) este polinomul minimal al lui .
Codicarea n acest caz se face - ca mai sus - folosind circuitul cu n k + 1 =
p+1 elemente de nmagazinare. Pentru calculul sindromului cuvantului recept ionat
{r(X)} se folosesc ns a practic doua circuite: unul de mp art ire la m(X) (pentru cal-
culul lui r()) si altul de mp art ire la 1+X (pentru r(1)). Discut ia este urmatoarea:
Daca r() = r(1) = 0, atunci nu a intervenit nici o eroare (sau avem o eroare
nedetectabila);
Daca r() = 0, r(1) = 0, avem o eroare simpla care se corecteaza cu circuitul
de mp art ire cu m(X), dupa procedeul descris n Exemplul 14.2;
Daca r() = 0, r(1) = 0, atunci au fost detectate doua erori.
Exemplul 14.3 Sa extindem codul Hamming din Exemplul 14.2. Vom avea poli-
nomul generator
g(X) = (1 + X)(1 + X + X
4
) = 1 + X
2
+ X
4
+ X
5
Circuitul liniar care codica mesajele de informat ie (de lungime k = 10) este:
+ + +
E E E E E E E
T
'
k
'
cE
c
r r
c
c EBE
E
T
r
Sindromul se calculeaza cu ajutorul circuitului liniar corespunzator polinomului
m(X) = 1 + X + X
4
:
j j
+ +
E
T
E E E E E E
T
'
c c
r
iar r(1) se obt ine din circuitul de mpart ire la 1 + X:
j E E E
T
'
c
+
Circuitul liniar construit pentru m(X) face si corectarea erorilor simple.
160 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
14.2 Coduri Hamming ciclice nebinare
Am studiat codurile Hamming atat sub forma liniara, cat si ca un caz particular
de coduri Reed - Muller sau coduri ciclice.
In aceasta ultima situat ie, ele se pot
implementa cu ajutorul circuitelor liniare si - fapt important - admit o variant a de
generalizare naturala la cazul nebinar.
Denit ia 14.1 Fie GF(q
p
) un element primitiv. Se deneste codul Hamming
ciclic nebinar A astfel:
{f(X)} A f(X) are radacina =
q1
sau - echivalent - A are matricea de control H = (1
2
. . .
n1
) unde n = ord().
Din
n
= 1 = ()
q
p
1
=
q1
q
p
1
q1
rezulta n =
q
p
1
q 1
.
Se observa imediat ca H are un num ar maxim de coloane distincte si nenule.
Propozit ia 14.1 (n, q 1) = 1 daca si numai daca (p, q 1) = 1
Demonstrat ie: Din q 1|q
j
1 rezulta q
j
= (q 1)s
j
+ 1. Deci
n =
q
p
1
q 1
= q
p1
+ q
p2
+ . . . + q + 1 = (q 1)(s
p
+ s
p1
+ . . . + s
1
) + p
si atunci
(p, q 1) = 1 (n, q 1) = 1. 2
Teorema 14.1 Spat iul nul al matricii H = (1
2
. . .
n1
) unde =
q1
,
n =
q
p
1
q 1
si GF(q
p
) primitiv, are distant a minima d 3 daca si numai daca
(n, q 1) = 1.
Demonstrat ie: : Sa presupunem ca exista doua coloane liniar dependente n
matricea H. Deci
i
= a
j
cu a Z
q
, adica
ij
= a.
Elementele nenule din Z
q
sunt rad acinile ecuat iei X
q1
1 = 0 (Teorema 11.3).
Mai mult, ele sunt chiar primele q 1 puteri ale lui
n
.
Intr-adevar, pentru orice
s = 0, 1, . . . , q 2 avem
(
ns
)
q1
=
q
m
1
s
= 1
s
= 1.
Deci pentru a Z
q
avem a =
ns
. Se poate scrie atunci
ij
=
ns
, adica
(ij)(q1)
=
ns
(i j)(q 1) = ns.
Dar s < q 1 iar (n, q 1) = 1, deci i = j, de unde rezulta a = 1,
i
=
j
.
Orice doua coloane din H sunt liniar independente, adica (Teorema 2.4) d 3.
: Daca q 1 si n nu sunt prime ntre ele, atunci ecuat ia anterioar a admite
si solut ia i = j; deci exista doua coloane distincte liniar dependente
i
si
j
n
matricea H, ceea ce contrazice faptul ca d 3. 2
Pentru operat ia de codicare se foloseste circuitul de mpart ire cu polimul mini-
mal m(X) al lui (care aici este chiar polinomul generator al codului Hamming ciclic
A). Acelasi circuit va calcula sindromul r() al polinomului recept ionat {r(X)}.
14.2. CODURI HAMMING CICLICE NEBINARE 161
1
0
0
+ b
0
0
1
+ c
0
2
1
1
1
1
0
0
0
4
. . .
24
) =
1 0 0 1 2 0 2 0 1 1 1 2 1
0 0 2 1 0 1 0 2 2 2 1 2 1
0 1 1 1 2 1 1 0 0 1 2 0 2
Am denit astfel (13, 10) - codul Hamming ternar, evocat n Exemplul 4.5 relativ
la Problema Pronosportului.
Sa consideram mesajul de informat ie 0120120120. Pentru operat ia de codicare
se va folosi circuitul (pentru detalii, a se revedea sect iunea 9.4.2):
j
j
j
j
j
+ +
2 2
+
E E E E E
T
'
cE
c
r
c
c
r
c
E
T
r
0210210210
(s-a t inut cont ca 1 = 2, 2 = 1).
In primii 10 tact i de funct ionare, bit ii de
informat ie sunt trimisi pe canal si - simultan - intra n circuitul liniar, a carui
funct ionare este (pe prima coloana se aa informat ia, iar pe celelalte trei - cont inutul
elementelor de nmagazinare):
0 0 0 0 2 2 1 2
1 1 2 2 0 2 0 2
2 1 0 1 1 0 2 0
0 1 0 2 2 2 1 0
1 0 1 0 0 0 2 1
162 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
1 0 1 2
0 1 2 2
i=1
v
i
X a
i
= 0.
Teorema 14.2 Codul Goppa cont ine numai cuvintele v = v
1
v
2
. . . v
n
pentru care
n
i=1
v
i
g(a
i
)
1
a
s
i
= 0, s = 0, 1, . . . , t 1
unde t = grad(g(X)).
Demonstrat ie: Sa explicitam polinomul
1
X a
. Daca g(X) = g
0
+ g
1
X + . . . +
g
t
X
t
(g
t
= 0), atunci pentru orice a Z
q
cu g(a) = 0, are loc descompunerea
g(X) g(a)
X a
= g
t
X
t1
+ (ag
t
+ g
t1
)X
t2
+ (a
2
g
t
+ ag
t1
+ g
t2
)X
t3
+ . . . +
(a
t1
g
t
+ a
t2
g
t1
+ . . . + g
1
).
Deci coecientul lui X
k1
(1 k t) n polinomul
1
X a
este g(a)
1
t
j=k
a
tj
g
j
.
Ecuat ia caracteristica a codurilor Goppa
n
i=1
v
i
X a
i
= 0 implica faptul ca tot i
coecient ii lui X
k1
, k = 1, . . . , t sunt nuli. Deci
n
i=1
v
i
g(a
i
)
1
t
j=k
a
tj
g
j
= 0, 1 k t.
164 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
Cazul k = t conduce la g
t
n
i=1
v
i
g(a
i
)
1
= 0 si - deoarece g
t
= 0 - se obt ine
n
i=1
v
i
g(a
i
)
1
= 0.
Din cazul k = t 1 se obt ine g
t
n
i=1
v
i
g(a
i
)
1
a
i
+ g
t1
n
i=1
v
i
g(a
i
)
1
= 0. Cum a doua
suma este zero, iar g
t
= 0, va rezulta
n
i=1
v
i
g(a
i
)
1
a
i
= 0, s.a.m.d.
Am obt inut echivalent a
n
i=1
v
i
X a
i
= 0
n
i=1
v
i
g(a
i
)
1
a
s
i
= 0, 0 s t 1
2
Corolarul 14.1 Codul Goppa determinat de un polinom g(X) de gradul t are ma-
tricea de control
H =
1
g(a
1
)
1
g(a
2
)
1
g(a
3
)
. . .
1
g(a
n
)
a
1
g(a
1
)
a
2
g(a
2
)
a
3
g(a
3
)
. . .
an
g(a
n
)
.
.
.
a
t1
g(a
1
)
a
t1
2
g(a
2
)
a
t1
3
g(a
3
)
. . .
a
t1
n
g(an)
.
Demonstrat ie: Este lasat a ca exercit iu.
Exemplul 14.5 Polinomul 1+X+X
3
Z
2
[X] este ireductibil. Fie o radacina a
sa, cu ajutorul careia se genereaza extensia GF(2
3
). Daca alegem g(X) = 1+X+X
2
si drept elemente a
i
cele 8 componente ale lui GF(2
3
), vom obt ine un cod Goppa de
lungime 8 cu matricea de control
H =
1
g(0)
1
g(1)
1
g()
. . .
1
g(
6
)
0
1
g(1)
g()
. . .
6
g(
6
)
1 1
2
2
4
0 1
3
=
=
1 1 0 0 0 0 0 0
0 0 0 1 0 1 1 1
0 0 1 1 1 0 0 1
0 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1
0 0 0 1 1 1 1 0
m
0
,
m
0
+1
, . . . ,
m
0
+d2
unde GF(q
m
) are ordinul n. Acest cod se poate scrie ca un cod Goppa astfel: Se
14.3. CODURI GOPPA 165
ia polinomul g(X) = X
m
0
+d2
si elementele
0
,
1
, . . . ,
(n1)
. Vom avea pentru
orice i = 0, 1, . . . , d 2 si k = 0, 1, . . . , n 1:
(
k
)
i
(
k
)
m
0
+d2
= (
k
)
m
0
+d2i
= (
m
0
+d2i
)
k
Pe baza aceasta, codul Goppa rezultat are matricea de control
H =
1
m
0
+d2
(
m
0
+d2
)
2
. . . (
m
0
+d2
)
n1
1
m
0
+d3
(
m
0
+d3
)
2
. . . (
m
0
+d3
)
n1
.
.
.
1
m
0
(
m
0
)
2
. . . (
m
0
)
n1
care coincide cu matricea de control a codului BCH considerat, n care s-a efectuat
o inversare a liniilor.
Se poate arata (Van Lint) ca singurele coduri Goppa ciclice sunt codurile BCH.
Propozit ia 14.3 Codul Goppa binar de lungime n, determinat de un polinom de
grad t peste GF(2
m
) are k n mt simboluri de informat ie si distant a minima
t + 1.
Demonstrat ie: Matricea de control a codului Goppa are t linii n GF(2
m
), deci mt
linii scrise n binar. Rezulta ca numarul n k de simboluri de control este cel mult
mt : n k mt.
Pe de-alta parte, se arata usor ca orice combinat ie liniara de t coloane din H
este liniar independent a. 2
Denit ia 14.3 Fie g(X) un polinom ireductibil peste GF(q
m
). Codul Goppa deter-
minat de g(X) si de toate elementele lui GF(q
m
) se numeste ireductibil.
Codul prezentat n Exemplul 14.5 este un cod ireductibil. Despre codurile Goppa
ireductibile se poate prezenta urmatorul rezultat:
Teorema 14.3 Un cod Goppa binar ireductibil, determinat de un polinom de gradul
t poate corecta cel put in t erori independente.
Pentru demonstrat ie va trebui sa facem o construct ie suplimentara.
Denit ia 14.4 Derivata formala a polinomului a(X) = a
0
+a
1
X +. . . +a
n
X
n
este
denita prin a
(X) = a
1
+ 2a
2
X + 3a
3
X
2
+ . . . + na
n
X
n1
.
Lema 14.1 Pentru derivata formala sunt adevarate egalitat ile:
1. (a(X) + b(X))
= a
(X) + b
(X);
2. (a(X)b(X))
= a
(X)b(X) + a(X)b
(X)
Demonstrat ie: Exercit iu.
Lema 14.2
Intr-un corp de caracteristica 2 derivata formala a unui polinom este
un patrat perfect.
166 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
Demonstrat ie: Deoarece (X
n
)
= nX
n1
= 0 pentru n par, derivata va avea numai
puteri pare. Cum ecare coecient se poate scrie ca un patrat perfect (se lucreaza
ntr-un corp de caracteristica 2), avem f
(X) = f
2
0
+ f
2
2
X
2
+ f
2
4
X
4
+ . . . si, daca se
ia g(X) = f
0
+ f
2
X + f
4
X
2
+ . . ., avem f
(X) = g
2
(X). 2
Sa revenim acum la Demonstrat ia Teoremei 14.3: Fie g(X) un polinom ire-
ductibil de grad t peste GF(2
m
) = {a
1
, a
2
, . . . , a
n
} (n = 2
m
) si v = v
1
v
2
. . . v
n
un cuvant al codului Goppa, w(v) = s. Notam v
i
1
, v
i
2
, . . . , v
is
bit ii egali cu 1 din
v. Deoarece v este cuvant - cod, avem
n
i=1
v
i
X a
i
=
s
k=1
1
X a
i
k
= 0. Polino-
mul f(X) = (X a
i
1
)(X a
i
2
) . . . (X a
is
) nu este divizibil cu g(X) (deoarece
g(X) este ireductibil de grad t 2). Rezulta ca, n algebra claselor de resturi
Z
2
[X]/g(X), f() = 0 deci admite invers. Rezulta ca exista un polinom r(X) cu
{f()}{r()} = 1.
Sa calculam derivata formala f
(X) =
s
k=1
f(X)
X a
i
k
. Facand X = si nmult ind
relat ia cu r(), obt inem
{f
()}{r()} =
s
k=1
{f()}{r()}
a
i
k
=
s
k=1
1
a
i
k
= 0 (mod g(X)).
Aceastanseamn a ca f
(X).
Deoarece suntem ntr-un corp de caracteristica 2, conform Lemei 14.2 derivata
formala este un patrat perfect: f
(X) = b
2
(X). Din faptul ca g(X) este divizor
ireductibil al lui b
2
(X) rezulta g(X)|b(X). Deci g
2
(X)|b
2
(X) = f
(X).
Se stie ca grad(f
(X)) grad(g
2
(X)), adica
s 1 2t.
Cum ponderea oricarui cuvant - cod este 2t + 1, rezulta ca distant a minima a
codului este cel put in 2t + 1, deci codul corecteaza sigur t erori independente. 2
Exemplul 14.6 Sa consideram GF(2
3
) generat de o radacina a lui g(X) = 1 +
X + X
3
. Deoarece g(X) are 3 radacini n GF(2
3
), el nu va avea nici o radacina
n corpul GF(2
5
) (GF(2
5
) nu este o extensie a lui GF(2
3
)), deci aici g(X) este
ireductibil.
Codul Goppa ireductibil corespunzator are n = 32, k 32 5 3 = 17, d 7;
deci este un (32, 17) - cod corector de 3 erori.
Decodicarea codurilor Goppa se face n maniera similara decodicarii codurilor
BCH. Astfel, e C un cod Goppa denit de g(X) Z
q
[X] (grad(g(X)) = t),
si a
1
, . . . , a
n
GF(q
m
); consideram v = v
0
v
1
. . . v
n1
un cuvant - cod si r =
r
0
r
1
. . . r
n1
cuvantul recept ionat dupa transmiterea lui v.
Vom nota cu e = r v = e
0
e
1
. . . e
n1
secvent a - eroare.
Pentru w(e) t/2 se poate folosi un algoritm din cei uzuali.
In practica ns a
t = grad(g(X)) este mare si exista algoritmi ecient i de decodicare pentru cazul
w(e) < t/2. Un astfel de algoritm vom construi mai jos.
Fie M = {i|e
i
= 0}, card(M) = e < t/2; consideram polinomul sindrom
{s(X)} =
n1
i=0
e
i
X a
i
(mod g(X)).
14.4. EXERCIT II 167
De remarcat ca {s(X)} se poate determina prin calcul la primirea cuvantului r.
Se denesc polinoamele (X) (de localizare a erorii) si (X) prin
(X) =
iM
(X a
i
), (X) =
iM
e
i
jM\{i}
(X a
j
).
Din denit ie rezulta ca (X) si (X) sunt prime ntre ele.
In plus, grad((X)) =
e, grad((X)) < e.
Intre ele exista relat ia
{s(X)}{(X)} =
n1
i=0
e
i
X a
i
iM
(X a
i
) {(X)} (mod g(X)). (1)
(X) si (X) sunt polinoamele normate de grad minim care veric a relat iile de
sus.
Intr-adevar, sa presupunem ca exista
1
(X) un polinom nenul normat de grad
< e si
1
(X) polinomul corespunzator, astfel ca
{s(X)}{
1
(X)} {
1
(X)} (mod g(X))
Fie d(X) = cmmdc(s(X), g(X)). Din relat iile
s(X)(X) = a(X)g(X) + (X), s(X)
1
(X) = b(X)g(X) +
1
(X),
rezulta ca d(X) va divide si polinoamele (X),
1
(X). Deci,
s(X)
d(X)
{(X)}
(X)
d(X)
0,
s(X)
d(X)
{
1
(X)}
1
(X)
d(X)
mod
g(X)
d(X)
sau
s(X)
d(X)
{
1
(X)(X) (X)
1
(X)}
{d(X)}
0 (mod g(X)).
Deci {
1
(X)(X) (X)
1
(X)} 0 (mod g(X)). Deoarece polinomul din mem-
brul stang are grad mai mic decat t, rezulta ca membrul stang este 0. Apoi,
cum cmmdc((X), (X)) = 1, deducem (X)|
1
(X) ceea ce contrazice faptul
ca grad(
1
(X)) < grad((X)) si {
1
(X)} 0.
Rezumand, procedeul de decodicare a mesajelor la codurile Goppa are loc astfel:
1. Din mesajul recept ionat r se calculeaza sindromul s(X);
2. Se determina polinomul normat (X) de grad minim < t/2 care veric a
relat ia (1) (un algoritm ecient a fost dat de Berlekamp).
Din rezolvarea ecuat iei (X) = 0 se aa locat iile erorilor;
3. Se determina e
i
(i M) din relat iile (a
i
) = e
i
jM\{i}
(a
i
a
j
).
Pe baza acestor valori se construieste secvent a - eroare e;
4. Cuvantul decodicat este v = r e.
14.4 Exercit ii
14.1 Sa se construiasca matricea generatoare a (13, 10) - codului Hamming ternar
din Exemplul 14.4.
168 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
14.2
In codul din Exemplul 14.4 sa se codice mesajele de informat ie:
(a) 1122002211 (b) 0000111122 (c) 1020012210
(d) 2200211101 (e) 2222222222 (f) 0000000000
14.3 Sa se construiasca toate codurile Hamming peste Z
3
si Z
5
.
14.4 Demonstrat i Corolarul 14.1
14.5 Demontrat i Lema 14.1
14.6 Pentru g(X) = X
2t
aratat i ca
1
X a
=
2t
j=1
a
j
X
j1
.
14.7 Gasit i distant a minima a codului binar Goppa determinat de g(X) = 1 + X
2
si de elementele 0, ,
2
GF(2
2
).
14.8 Gasit i o matrice de control a (16, 8) - codului Goppa binar ireductibil dat de
g(X) =
3
+ X + X
2
, unde GF(2
4
) este primitiv.
14.9 Polinomul generator este g(X) = 1+X
2
iar parametrii sunt cele 15 elemente
nenule ale extensiei GF(2
4
) generata de radacina polinomului 1+X+X
4
. Analizat i
codul Goppa binar astfel construit.
14.10 Sa se construiasca codul Goppa ireductibil peste GF(2
4
), cu g(X) = 1+X+
X
3
. Sa se determine matricea de control si matricea generatoare.
Care este distant a minima a codului ?
14.11 Folosind codul construit anterior, sa se decodice (folosind algoritmi de co-
duri liniare) cuvintele:
0110110010011110 0111011001000000 1011110101100100
1111111111111111 1011011111001011 1010010110000010
14.12 Pentru acelasi cod Goppa binar ireductibil, sa se decodice cuvintele
0101100101111001 1100101100110100 0001100010010110
folosind algoritmul rapid specic.
14.13 Vericat i ca polinomul 1 + X + X
2
este ireductibil n GF(2
5
). Determinat i
parametrii si matricea de control a codului Goppa ireductibil corespunzator.
Prelegerea 15
Coduri Preparata
In 1968 Preparata a introdus o clasa de coduri neliniare corectoare de doua erori, care
s-au dovedit foarte interesante prin proprietat ile si prin legaturile pe care le au cu
diverse alte coduri deja studiate. Ele sunt o combinat ie ntre codurile Reed - Muller
si codurile BCH corectoare de doua erori. Denit ia pe care o vom folosi apart ine lui
Baker si permite o abordare mai simpla a algoritmilor de codicare/decodicare.
15.1 Denirea codurilor Preparata extinse
Sa revenim la modalitatea de marcare a pozit iilor cuvintelor de lungime 2
r
folosind
elementele lui GF(2
r
), asa cum s-a denit n algoritmul de decodicare Peterson
pentru codurile BCH. Deci:
Fie r 2 un num ar ntreg, GF(2
r
) primitiv, si U GF(2
r
); se noteaza
(U) cuvantul de lungime 2
r
denit prin
1 pe pozit ia i daca
i
U (0 i 2
r
2),
1 pe pozit ia 2
r
1 daca 0 U,
0 n rest.
Exemplul 15.1 Fie GF(2
3
) primitiv. Atunci
({0}) = 00000001
({
2
,
5
,
6
}) = 00100110
() = 00000000.
Se denesc n mod natural operat iile:
U + = {u +|u U}, U = {u|u U},
UV = {u|u U V, u U V }, U, V GF(2
r
), GF(2
r
).
Se veric a usor relat iile
(U) +(V ) = (UV ), w((U)) = card(U). (1)
Exemplul 15.2 Fie GF(2
3
) construit folosind radacina (primitiva) a polinomu-
lui 1 + X +X
3
, si mult imile U = {
2
,
5
,
6
}, V = {
5
, 0}. Atunci
U +
2
= {
2
+
2
,
5
+
2
,
6
+
2
} = {0,
3
,
0
},
2
U = {
2
2
,
2
5
,
2
6
} = {
4
,
0
, },
(U) +(V ) = 00100110 + 00000101 = 00100011 = ({
2
,
6
, 0}) = (UV ).
169
170 PRELEGEREA 15. CODURI PREPARATA
Denit ia 15.1 Fie r > 2 un numar impar. Codul extins Preparata P(r) este mul-
t imea cuvintelor de forma (U)(V ) unde U, V GF(2
r
) verica condit iile
1. card(U), card(V ) sunt numere pare;
2.
uU
u =
vV
v;
3.
uU
u
3
+
uU
u
3
=
vV
v
3
.
Pentru usurint a vom nota cuvintele - cod cu [(U), (V )] (vezi si codul Golay).
Exemplul 15.3
In ipotezele din Exemplul 15.2, sa consideram U = {,
2
,
5
, 0},
V = {
0
, ,
2
,
3
,
6
, 0}. Prima condit ie din denit ie este vericata. Pentru a
doua condit ie avem:
uU
u = +
2
+
5
+0 = 010 + 001 + 111 + 000 = 100 =
0
,
vV
v =
0
++
2
+
3
+
6
+0 = 100+010+001+110+101+000 = 100 =
0
.
A treia condit ie este si ea vericat a deoarece
uU
u
3
=
3
+
6
+ +0 = 110 + 101 + 010 + 000 = 001 =
2
,
vV
v
3
=
0
+
3
+
6
+
2
+
4
+0 = 100+110+101+001+011+000 = 101 =
6
si
2
+ (
0
)
3
=
6
.
Deci [(U), (V )] = 01100101 11110011 este cuvant - cod n P(3).
Observat ii:
Deoarece card((U)) = card((V )) = 2
r
, P(r) este un cod de lungime 2
r+1
.
Faptul ca 0 este sau nu un element al mult imilor U sau V nu afecteaza cu
nimic condit iile 2 si 3 din Denit ia 15.1. Acest element se introduce n cele
doua mult imi numai pentru a asigura prima condit ie din denit ie. Rezulta
ca bit ii de pe pozit ia 2
r
1 din (U) si (V ) sunt bit i de paritate (ceea ce
justica termenul de cod Preparata extins).
Exponentul
3
uU
u.
Atunci [(UA +), (V B)] P(r).
Demonstrat ie: Vom arata ca noul cuvant construit veric a condit iile din Denit ia
15.1.
15.1. DEFINIREA CODURILOR PREPARATA EXTINSE 171
1. Deoarece card(U), card(V ), card(A), card(B) sunt pare, se arata usor ca:
card(V B) = card(V ) +card(B) 2 card(V B),
card(UA +) = card(UA) = card(U) +card(A) 2 card(U A).
2. Sa observamnt ai ca daca I, J GF(2
r
), avem
xIJ
x =
xI
x+
xJ
x deoarece
orice element
i
I J apare de doua ori n membrul drept si niciodata n
membrul stang, iar
i
+
i
= 0. Deci:
xUA+
x =
yUA
(y + ) =
yUA
y + card(UA) =
yU
y +
yA
+0
(deoarece card(UA) este par) =
yV
y +
yB
y =
yV B
y.
3.
xUA+
x
3
+
xUA+
x
3
=
yUA
(y +)
3
+
yV B
y
3
=
=
yU
(y +)
3
+
yA
(y +)
3
+
yV
y +
yB
y
3
=
yU
y
3
+
yU
y
2
+
2
yU
y +
3
card(U) +
yA
y
3
+
yA
y
2
+
2
yA
y +
3
card(A) +
yV
y
3
+
yV
y
yB
y
yV
y
yB
y
2
+
yB
y
3
.
Dar =
yU
y =
yV
y,
yV
y
2
=
yV
y
2
, iar card(U), card(V ) sunt pare.
Deci expresia de sus se reduce la
yV
y
3
+
yB
y
3
=
yV B
y
3
.
Denit ia 15.2 Un cod C este invariant la distant a daca pentru orice c
1
, c
2
C,
are loc relat ia
i 0 i n, card({|d(, c
1
) = i}) = card({|d(, c
2
) = i}).
Exemple simple de coduri invariante la distant a sunt codurile liniare.
Ca o consecint a imediata, pentru un cod invariant la distant a care cont ine
cuvantul nul, distant a minima este ponderea minima a unui cuvant - cod nenul.
Vom arata n continuare ca un cod Preparata are aceasta proprietate.
Lema 15.2 P(r) este invariant la distant a.
Demonstrat ie: Fie [(U), (V )], [(A), (B)] P(r) arbitrare aate la distant a i
unul de altul. Conform Lemei 15.1, [(UU+), (V V )], [(UA+), (V B)]
sunt de asemenea cuvinte - cod si se verica usor ca ele se aa la distant a i. Deoarece
UU = rezulta [(UU + ), (V V )] = 0, deci [(UA) + ), (V B)] are
pondere i. 2
172 PRELEGEREA 15. CODURI PREPARATA
Lema 15.3 Fie [(U), (V )] P(r). Atunci P(r) mai cont ine urmatoarele cuvinte:
(i). [(V ), (U)];
(ii). [(U +), (V +)] pentru orice GF(2
r
);
(iii). [(U), (V )] pentru orice GF(2
r
), = 0.
Demonstrat ie: Se rezolva similar demonstrat iei de la Lema 15.1. 2
Exemplul 15.4 Conform Exemplului 15.3, [(U), (V )] P(3), unde
U = {,
2
,
5
, 0}, V = {
0
, ,
2
,
3
,
6
, 0}.
Conform Lemei 15.3 n care se ia =
3
, vom mai gasi drept cuvinte - cod si pe
[(V ), (U)] = 11110011 01100101,
[(U +), (V +)] = [({
0
,
5
,
2
,
3
}), ({,
0
,
5
, 0,
4
,
3
})] =
= 10110100 11011101,
[(U), (V )] = [({
4
,
5
, , 0}), ({
3
,
4
,
5
,
6
,
2
, 0})] =
= 01001101 00111111.
Putem folosi Lema 15.3 pentru a simplica problema determinarii distant ei mini-
me a lui P(r). Pentru aceasta ns a, este nevoie de un rezultat suplimentar (care
justica condit ia ca r sa e impar).
Lema 15.4 Fie GF(2
r
) primitiv. Atunci
3
este primitiv daca r este impar si
nu este primitiv daca r este par.
Demonstrat ie: Se stie ca
i
este primitiv daca si numai daca (i, 2
r
1) = 1. Avem
2
r
1 = (31)
r
1 = M3+(1)
r
1; deci pentru r impar 2
r
1 = M32 = M3+1,
ceea ce nseamn a ca
3
este primitiv. Similar, pentru r par, 2
r
1 = M3, deci
3
nu este primitiv. 2
Corolarul 15.1 Daca r > 2 este un numar impar, atunci pentru orice x GF(2
r
)\
{0} exista y unic (numit radacina cubica a lui x) astfel ca y
3
= x.
Teorema 15.1 P(r) are distant a minima t = 6.
Demonstrat ie: Deoarece P(r) este invariant la distant a, el va cont ine un cuvant -
cod [(U), (V )] de pondere t. Deci
t = w((U)) +w((V )) = card(U) + card(V ).
Rezulta ca t este num ar par; mai trebuie vericat ca t = 2, t = 4 si exista un
cuvant - cod de pondere 6.
Sa presupunem t = 2; atunci card(U) = 2, card(V ) = 0 (Lema 15.3 asigura ca
totul se poate reduce la acest caz). Folosind tot Lema 15.3, (ii), putem presupune ca
U = {0, x} cu x = 0. Dar atunci
uU
u = 0 +x = x, ceea ce duce la o contrazicere
a denit iei codurilor Preparata, pentru ca V = .
Sa presupunem t = 4. Cu Lema 15.3, (i) aceasta nseamna card(U) = 4,
card(V ) = 0 sau card(U) = card(V ) = 2.
In primul caz avem U = {0, x, y, z} cu
x, y, z = 0 si distincte. Ultima condit ie a denit iei codurilor Preparata este:
0
3
+x
3
+y
3
+z
3
+ (0 +x +y +z)
3
= 0 sau (x +y)(x +z)(y +z) = 0
ceea ce este imposibil, cele trei numere ind distincte si nenule.
15.2. CODIFICAREA CODURILOR PREPARATA EXTINSE 173
In a doua varianta, se poate considera U = {0, x}, V = {y, z}, toate cele patru
elemente ind distincte. Din denit ie rezulta
0
3
+x
3
+ (0 +x)
3
= y
3
+z
3
sau y
3
+z
3
= 0.
Folosind acum Corolarul 15.1, din y
3
= z
3
rezulta y = z, contradict ie.
Sa construim acum un cuvant - cod de pondere t = 6. Fie x, y, z GF(2
r
)
elemente distincte nenule. Exista atunci (Corolarul 15.1) un element v GF(2
r
)
unic cu v
3
= x
3
+y
3
+z
3
. Daca v = x, atunci v
3
= x
3
deci y
3
= z
3
, ceea ce duce
la contradict ia y = z. Deci v este distinct de x, y, z.
Denim u = v +x +y +z. Se observa ca u = 0 (altfel
v
3
+ (x +y +z)
3
= (x +y)(x +z)(y +z) = 0
deci - cu Corolarul 15.1 - v = x +y +z). Fie acum U = {0, u}, V = {v, x, y, z}.
Din construct ie, cum toate elementele sunt distincte, [(U), (V )] este un cuvant
de pondere 6 si se veric a usor ca este cuvant - cod. 2
Exemplul 15.5 Sa consideram GF(2
3
) construit anterior. Fie elementele
x = , y =
3
, z =
5
. Denim
v
3
= x
3
+y
3
+z
3
=
3
+
9
+
15
= 110 + 001 + 100 =
4
= (
6
)
3
(deoarece
7
= 1), deci se poate lua v =
6
. Mai departe,
u = v +x +y +z =
6
+ +
3
+
5
=
4
. Acum, U = {0, u} = {0,
4
},
V = {v, x, y, z} = {
6
, ,
3
,
5
} si se obt ine [(U), (V )] = 00001001 01010110
care este un cuvant cod din P(3) de pondere 6.
Teorema 15.2 Codul Preparata nu este cod liniar.
Demonstrat ie: Dupa cum se stie, [(U), (V )]+[(A), (B)] = [(UA), (V B)].
Din demonstrat ia Teoremei 15.1 am vazut cum se pot construi cuvintele - cod
[(U), (V )], [(A), (B)] P(r) cu U = {0, u
1
}, V = {x
1
, y
1
, z
1
, v
1
},
A = {0, u
2
}, B = {x
2
, y
2
, z
2
, v
2
}. Conform Lemei 15.1,
c = [(UA +u
1
), (V B)] P(r). Facem urmatoarele observat ii:
card(UA +u
1
) 2;
d(c, [(UA), (V B)]) 2 card(UA +u
1
) 4;
P(r) are distant a minima 6.
Din ele rezulta ca [(U), (V )] + [(A), (B)] P(r).
Deci P(r) nu este cod liniar. 2
Ca o consecint a a acestei teoreme, nu se poate da nici o dimensiune pentru P(r),
deci se pare ca nu se poate determina numarul de cuvinte - cod. Vom reusi totusi
acest lucru ca o consecint a a schemei de codicare.
15.2 Codicarea codurilor Preparata extinse
Fie GF(2
r
) primitiv si sa consideram codul BCH de polinom generator g(X) =
m
1
(X)m
3
(X) unde m
i
(X) este polinomul minimal al lui
i
(i = 1, 3). Dupa cum se
stie, grad(m
1
(X)) = grad(m
3
(X)) = r, deci grad(g(X)) = 2r. Codul BCH astfel
denit poate corecta maxim 2 erori si are matricea de control (transpusa):
174 PRELEGEREA 15. CODURI PREPARATA
H =
6
.
.
.
2
r
2
3(2
r
2)
Deoarece g(X) genereaza un cod ciclic, rezulta ca orice submatrice a lui H formata
din 2r linii consecutive este nesingulara, deci inversabila. Se deneste matricea A
ca submatrice a lui H formata din ultimele 2r linii, si H
010 110
001 101
110 001
011 111
111 010
101 011
cu A
1
=
001 011
111 010
011 101
110 100
101 110
111 001
.
Pentru GF(2
5
) generata de radacina a polinomului 1 +X
2
+X
5
avem
A =
21
63
22
66
.
.
.
.
.
.
30
90
00011 01000
10101 00001
11110 00101
01111 10001
10011 00111
11101 11011
11010 01100
01101 10101
10010 10011
01001 01101
cu A
1
=
00111 00010
00011 10001
10011 00011
11011 01010
01101 10101
10101 11001
00110 11111
11001 01110
11000 00111
10001 10100
Fie a = [a
L
, a
R
] un cuvant binar oarecare de lungime 2
r+1
2r 2, unde
|a
L
| = 2
r
1, |a
R
| = 2
r
2r 1.
In notat ie polinomiala putem scrie
a
L
H = [a
L
(), a
L
(
3
)], a
R
H
= [a
R
(), a
R
(
3
)].
Se mai deneste
v
R
= [a
L
() +a
R
(), a
L
(
3
) + (a
L
())
3
+a
R
(
3
)]A
1
. (2)
Teorema 15.3 Fie r un numar impar. Pentru orice cuvant binar a de lungime
2
r+1
2r 2, daca (U) = [a
L
, p
L
], (V ) = [a
R
, v
R
, p
R
] unde p
L
, p
R
sunt bit ii de
control pentru a
L
respectiv [a
R
, v
R
], atunci [(U), (V )] P(r).
Demonstrat ie: [a
R
, v
R
]H = a
R
H
+v
R
A = [a
R
(), a
R
(
3
)] + [a
L
() +a
R
(),
a
L
(
3
) + (a
L
())
3
+a
R
(
3
)] = [a
L
(), a
L
(
3
) + (a
L
())
3
].
Dar [a
R
, v
R
] = [
vV
v,
vV
v
3
], a
L
() =
uU
u, a
L
(
3
) + (a
L
())
3
=
uU
u
3
+
uU
u
3
, ceea ce veric a condit iile din Denit ia 15.1.
Deci [(U), (V )] este cuvant - cod n P(r). 2
15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 175
Corolarul 15.2 P(r) are 2
2
r+1
2r2
cuvinte - cod.
Demonstrat ie:
In Teorema 15.3 exista 2
2
r+1
2r2
alegeri posibile pentru a, toate
conducand la cuvinte - cod distincte. 2
Putem da acum un algoritm de codicare a meajelor de informat ie n codurile
Preparata.
Fie a
L
, a
R
cuvinte de lungimi 2
r
1 respectiv 2
r
2r 1.
Fie v
R
denit de (2).
Se construiesc p
L
, p
R
conform Teoremei 15.3.
Atunci mesajul de informat ie a = [a
L
, a
R
] se codica
n [a
L
, p
L
, a
R
, v
R
, p
R
].
Exemplul 15.7 Sa consideram r = 3, a
L
= 0110010, a
R
= 1. Deci
a
L
() = +
2
+
5
=
0
, a
R
() =
0
,
a
L
(
3
) =
3
+
6
+
15
=
2
, a
R
(
3
) =
0
.
Din (2) avem v
R
= [
0
+
0
,
2
+
0
+
0
]A
1
= [000 001]A
1
= 111001 unde
A
1
este matricea din Exemplul 15.6. Atunci vom codica a = [0110010 1] n
c = [a
L
, p
L
, a
R
, v
R
, p
R
] = [01100010 1 1 111001 1].
Deci c = [(U), (V )] unde (U) = 01100101, (V ) = 11110011, care coincide
cu secvent a - cod construita n Exemplul 15.3.
15.3 Decodicarea codurilor Preparata extinse
Cum P(r) are distant a minima 6, el poate corecta maxim 2 erori.
Fie b un cuvant recept ionat; l scriem b = [b
L
, p
L
, b
R
, p
R
] unde b
L
, b
R
sunt
ambele de lungime 2
r
1 iar p
L
, p
R
sunt bit i de control a paritat ii. Se calculeaza
b
L
H = [b
L
(), b
L
(
3
)], b
R
H = [b
R
(), b
R
(
3
)].
Apar mai multe cazuri, n funct ie de pozit iile unde apar erori.
1. Daca erorile apar pe pozit iile de control, atunci
b
L
() = b
R
(), b
L
(
3
) + (b
L
())
3
= b
R
(
3
)
(conform Denit iei 15.1), ceea ce se veric a usor.
2. Daca exista o eroare pe pozit ia i n b
R
si cel mult o eroare pe pozit iile de
control atunci
b
L
() = b
R
() +
i
, b
L
(
3
) + (b
L
())
3
= b
R
(
3
) +
3i
, deci
(b
L
() + b
R
())
3
= b
L
(
3
) + (b
L
())
3
+b
R
(
3
).
Daca ultima relat ie este vericat a, atunci se scrie
i
= b
L
() + b
R
() si se
schimba bitul i din b
R
(plus cel mult un bit de control).
3. Daca exista o eroare pe pozit ia i din b
L
si cel mult o eroare pe pozit iile de
control, similar cu cazul anterior (lucru posibil pe baza Lemei 15.3) se verica
relat ia
(b
R
() +b
L
())
3
= b
R
(
3
) + (b
R
())
3
+b
L
(
3
);
176 PRELEGEREA 15. CODURI PREPARATA
n caz armativ, se calculeaza
i
= b
R
() +b
L
() si se schimb a bitul i din b
L
(plus cel mult un bit de control).
4. Daca apar doua erori n b
R
pe pozit iile i si j, atunci:
b
L
() = b
R
() +
i
+
j
, b
L
(
3
) + (b
L
())
3
= b
R
(
3
) +
3i
+
3j
,
deci se determina
i
+
j
si
3i
+
3j
. Valorile i, j sunt determinate cu un
algoritm similar celui de la codurile BCH.
5. Daca apar doua erori n b
L
, invocand din nou Lema 15.3 putem aplica analiza
de la cazul anterior.
6. Daca apar doua erori: una pe pozit ia i n b
L
si una pe pozit ia j n b
R
, atunci
b
L
() +
i
= b
R
() +
j
, b
L
(
3
) +
3i
+ (b
L
() +
i
)
3
= b
R
(
3
) +
3j
.
Acest sistem de necunoscute
i
si
j
se rezolva astfel: din prima ecuat ie se
scoate
j
= b
L
() +
i
+b
R
() si se nlocuieste n a doua ecuat ie, ceea ce da
b
L
(
3
) +
3i
+ (b
L
() +
i
)
3
= b
R
(
3
) + (b
L
() +
i
)
3
+ (b
L
() +
i
)
2
b
R
() +
(b
L
() +
i
)b
R
()
2
+b
R
()
3
.
Dupa simplicari se ajunge la
3i
+
2i
b
R
() +
i
(b
R
())
2
+ (b
R
())
3
= b
L
(
3
) + b
R
(
3
) + b
L
()
2
b
R
() +
b
L
()b
R
()
2
, sau
(
i
+b
R
())
3
= (b
L
(
3
) + b
R
(
3
)) + (b
L
() +b
R
())
3
+b
L
()
3
+b
R
()
3
.
Notand membrul drept al acestei expresii cu , obt inem solut ia
i
= b
R
() +
1/3
,
j
= b
L
() +
1/3
.
Deci locat iile erorilor se pot determina n toate situat iile posibile. Bit ii de paritate
pentru ecare jumatate de cuvant dau posibilitatea de a decide ce caz se aplica lui
b. Putem da acum algoritmul de decodicare pentru codurile Preparata P(r).
15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 177
Fie b = [b
L
, p
L
, b
R
, p
R
] cuvantul recept ionat.
0. Se calculeaza L
1
= b
L
(), L
3
= b
L
(
3
), R
1
= b
R
(), R
3
= b
R
(
3
);
1. Daca L
1
+ R
1
= 0 si L
3
+ L
3
1
+ R
3
= 0, atunci singurele erori posibile au
aparut pe pozit iile de control.
2. Daca (L
1
+R
1
)
3
+L
3
+L
3
1
+R
3
= 0, calculam
i
= L
1
+R
1
. Se corecteaza
pozit ia i din b
R
si cel mult un bit de control al paritat ii; se cere retransmisia
daca ambii bit i de paritate trebuie modicat i.
3. Daca (L
1
+R
1
)
3
+R
3
+R
3
1
+L
3
= 0, calculam
i
= L
1
+R
1
. Se corecteaza
pozit ia i din b
L
si cel mult un bit de control al paritat ii; se cere retransmisia
daca ambii bit i de paritate trebuie modicat i.
4. Daca ambele jumatat i ale lui b sunt de pondere para si
X
2
+ (L
1
+R
1
)X +
L
3
+L
3
1
+R
3
+ (L
1
+R
1
)
3
L
1
+R
1
= (X +
i
)(X +
j
),
se corecteaza pozit iile i si j din b
L
.
5. Daca ambele jumatat i ale lui b sunt de pondere para si
X
2
+ (L
1
+R
1
)X +
R
3
+R
3
1
+R
3
+ (L
1
+R
1
)
3
L
1
+R
1
= (X +
i
)(X +
j
),
se corecteaza pozit iile i si j din b
R
.
6. Daca ambele jumatat i ale lui b sunt de pondere impara, se calculeaza
i
= R
1
+ (L
3
1
+R
3
1
+ (L
1
+R
1
)
3
+L
3
+R
3
)
1/3
j
= L
1
+ (L
3
1
+R
3
1
+ (L
1
+R
1
)
3
+L
3
+R
3
)
1/3
Se corecteaza pozit ia i din b
L
si pozit ia j din b
R
.
7. Daca nu a aparut nici una din situat iile anterioare, se cere retransmisia
cuvantului.
Exemplul 15.8 Sa decodicam urmatoarele cuvinte primite, despre care se pre-
supune ca au fost codicate folosind P(3), unde GF(2
3
) s-a generat cu radacina
a polinomului 1 +X +X
3
:
I: b = 10010011 11100111
(0) [L
1
, L
3
] = b
L
H = 111 110, [R
1
, R
3
] = b
R
H = 101 110
(1) L
1
+R
1
= 111 + 101 = = 0
(2) (L
1
+R
1
)
3
+L
3
+L
3
1
+R
3
=
3
+
3
+
15
+
3
=
0
= 0
(3) (L
1
+R
1
)
3
+R
3
+R
3
1
+L
1
=
3
+
3
+
18
+
3
=
6
= 0
(4) X
2
+X +
3
+
15
+
3
+
3
= X
2
+X +
6
= (X +
2
)(X +
4
)
Deci b se decodica n 10010011 11001111.
II: b = 10100100 10001001
(0) [L
1
, L
3
] = b
L
H = [010, 011], [R
1
, R
3
] = b
R
H = [111, 011]
(1) L
1
+R
1
= 010 + 111 =
6
= 0
(2) (L
1
+R
1
)
3
+L
3
+L
3
1
+R
3
=
18
+
4
+
3
+
4
=
6
= 0
(3) (L
1
+R
1
)
3
+R
3
+R
3
1
+L
3
=
18
+
4
+
15
+
4
=
2
= 0
Ambele jumatat i ale lui b au pondere impara, deci
(6)
i
=
5
+ (
3
+
15
+
18
+
4
+
4
)
1/3
=
5
+ (
5
)
1/3
=
5
+ (
12
)
1/3
=
5
+
4
=
0
.
S-a obt inut i = 0. Se poate determina apoi imediat
j
= +
4
=
2
, deci j = 2.
Cuvantul b se decodica n 00100100 10101001.
178 PRELEGEREA 15. CODURI PREPARATA
III: b = 10001000 11101001
(0) [l
1
, L
3
] = b
L
H = [111, 011], [R
1
, R
3
] = b
R
H = [100, 000]
(1) L
1
+R
1
= 111 + 100 =
4
= 0
(2) (L
1
+R
1
)
3
+L
3
+L
3
1
+R
3
=
12
+
4
+
15
+0 =
3
= 0
(3) (L
1
+R
1
)
3
+R
3
+R
3
1
+L
3
=
12
+0 +
0
+
4
= 0
Calcul am
i
= L
1
+R
1
=
4
, deci i = 4. Dar modicarea bitului 4 n b
L
cere ca
ambii bit i de control sa e modicat i; deci se cere retransmisia cuvantului.
Pentru codul Preparata obt inut prin relaxarea lui P(r), se poate aplica aceeasi
strategie de decodicare folosita la codul Golay; cum acesta are d = 5, poate corecta
de asemenea cel mult 2 erori independente.
15.4 Coduri nrudite cu codul Preparata
15.4.1 Codul Nordstrom - Robinson
Sa plecam de la codul Golay binar extins C
24
ale carui cuvinte le scriem sub forma
a = [a
1
, a
2
] unde |a
1
| = 8, |a
2
| = 16. Consideram submult imea GNR C
24
ale
carei elemente veric a condit iile:
1. Daca a GNR atunci w(a
1
) {0, 2}.
2. Daca a, b GNR atunci d(a
1
, b
1
) 2.
Evident, GNR va avea 256 cuvinte. Pe baza lui se construieste codul
NR = {a
2
|a = [a
1
, a
2
] GNR}.
Acesta este un cod neliniar de lungime n = 16 si distant a minima d = 6. Numit
codul Nostrom - Robinson, el coincide cu codul Preparata P(3).
Un alt cod derivat din acesta este codul Nadler, construit astfel: se pastreaza din
NR doar cuvintele - cod care coincid pe ultimele doua pozit ii. Apoi la toate aceste
cuvinte se sterg ultimele trei caractere (o dubla scurtare urmata de o relaxare).
Codul astfel obt inut este unic, are n = 13, d = 5 si 64 cuvinte - cod.
15.4.2 Codurile Kerdock
Denit ia 15.3 Fie r 3, r impar si U, V GF(2
r
), card(U), card(V ) pare.
Un cod Kerdock K(r) este format din toate cuvintele de forma [U, V ] care verica
condit iile:
1. s (1 s 2
r
2) (1 w
2
(s) < r 2)
uU
u
s
=
vV
v
s
= 0;
2. s ( s 2
r
2) (w
2
(s) = r2)
uU
u
s
=
vV
v
s
=
uU
u
1
+
vV
v
1
s
unde w
2
(s) reprezinta ponderea reprezentarii n binar a lui s.
Se considera prin convent ie s, 0
s
= 0.
15.5. EXERCIT II 179
Codul Kerdok K(r) (denit n 1972) este de fapt un subcod al codului Reed
- Muller RM(2, r + 1); el este format din perechi de translatari de cuvinte din
RM(1, r) selectate n asa fel ca sa maximizeze distant a minima dintre doua trans-
latari.
Este interesant ca dintre toate codurile cu aceeasi distant a minima, codul Kerdok
are numarul maxim de cuvinte - cod.
Nu vom detalia demonstrat ii referitoare la proprietat ile acestor coduri. Pentru
informat ii suplimentare se pot folosi [6] si [2], cu ment iunea ca justicarile pleaca de
la o modalitate diferita de denire a codurilor K(r) si P(r). Rezultatele sunt nsa
deosebit de interesante. Astfel:
Teorema 15.4 K(r) este invariant la distant a.
Lema 15.5 K(3) = P(3).
Teorema 15.5 Codurile P(r) si K(r) sunt duale.
Ca o consecint a imediata, P(3) este un cod auto-dual.
15.5 Exercit ii
15.1 Demonstrat i relat iile (1).
15.2 Demonstrat i Lema 15.3.
15.3 Demonstrat i Corolarul 15.1.
15.4 Aplicat i Lema 15.3 cuvantului - cod denit n Exemplul 15.4, folosind
=
0
, = , =
6
15.5 De ce [(U), (V )] nu este cuvant - cod pentru = 0 ?
15.6 Aratat i ca cele trei cuvinte obt inute n Exemplul 15.4 satisfac condit iile deni-
t iei codurilor Preparata.
15.7 Fie GF(2
3
) generat de radacina a polinomului 1 + X + X
3
= 0. Folosind
urmatoarele cuvinte x, y, z GF(2
3
) construit i cuvinte - cod de pondere 6 din P(3):
x = y =
2
, z =
3
,
x = y =
4
, z =
6
,
x =
0
y =
3
, z =
6
,
15.8 Fie GF(2
3
) construit cu 1 + X + X
3
, iar A
1
din Exemplul 15.6. Codicat i
urmatoarele mesaje folosind P(3):
a
L
= 1010100, a
R
= 1;
a
L
= 1010100, a
R
= 0;
a
L
= 1111111, a
R
= 1;
a
L
= 1111111, a
R
= 0;
a
L
= 0000000, a
R
= 1;
180 PRELEGEREA 15. CODURI PREPARATA
15.9 Fie GF(2
5
) construit cu 1 +X
2
+X
5
, iar A
1
din Exemplul 15.6. Codicat i
urmatoarele mesaje folosind P(5):
a
L
= 10100 . . . 0, a
R
= 000001000100 . . . 0;
a
L
= 10100 . . . 0, a
R
= 00 . . . 0;
a
L
= 10100 . . . 0, a
R
= 111100 . . . 0;
a
L
= 0000 . . . 0, a
R
= 100 . . . 0;
Care este lungimea lui a
L
? dar a lui a
R
?
15.10
In aceleasi condit ii din Exemplul 15.8, sa se decodice cuvintele:
10000001 11101000 00011010 01000010 00100101 10100100
01010110 00011110 11101000 10001001 10011001 01010101
01000111 11001000 10101101 11010000 11101110 01010101
10111011 01101010 01011101 11101101 10011100 10100100
01101101 10011000 10101010 10111011 10100101 00010001
15.11 Decodicat i cuvintele primite, care au fost codicate cu P(5), unde GF(2
5
)
a fost construit folosind polinomul 1 +X
2
+X
5
.
11000110001000000000000001000010 00011110000000000000000110010000
10100000001000000000000000000000 00000100010000000100010101011100
15.12 Fie b un cuvant recept ionat n care w(b
L
) este impar iar w(b
R
) este par.
Poate decodicat b la pasul 2 al algoritmului ntr-un cuvant - cod situat la distant a
cel mult 2 ?
Bibliograe
[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;
[2] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza de
doctorat), PARIS VI, 1990;
[3] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;
[4] S. Guiasu - Teoria Codurilor, Tipograa Universit at ii Bucuresti, 1976;
[5] D.G. Homan, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;
[6] A.M.Kerdok - A class of low-rate non linear codes, Information and control, 20
(1972), 182-187;
[7] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;
[8] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
181
Prelegerea 16
Coduri convolut ionale
1 0 0 1
0 1 0 1
0 0 1 1
(X));
C(ta(X)) = tC(a(X)).
C este invarianta n timp: nt arzierea mesajului sursa cu k tact i are ca efect
decalarea raspunsului cu n tact i:
C(X
k
a(X)) = X
n
C(a(X)).
C nu are memorie: codicarea unui mesaj sursa de lungime k nu depinde de
mesajele sursa precedente.
Aceste trei proprietat i caracterizeaza complet codurile liniare. Daca se renunt a la
ultima proprietate, se obt ine o noua clasa de coduri, numite coduri convolut ionale.
Denit ia 16.1 Fie q un numar prim. Prin (n, k) - cod convolut ional se nt elege o
aplicat ie liniara C : Z
q
[X] Z
q
[X] cu proprietatea (de invariant a de timp)
C(X
k
a(X)) = X
n
C(a(X)).
Exemplul 16.2 Sa consideram circuitul liniar:
`
_
`
_
`
_
-
6
-
?-
6
?
-
?
-
-
?-
-
6
-
6
+
+ +
El reprezinta un (2, 1) - cod convolut ional binar. Este liniar (datorita circuitului),
invariant n timp (o ntarziere de 1 tact la intrare provoaca o ntarziere de 2 tact i
la iesire).
De exemplu, pentru intrarea 1 se obt ine 11 la primul tact, 11 la al doilea tact si
01 la al treilea (dupa care urmeaza 0000 . . .). Deci
C(1) = 111101 = 1 + X +X
2
+X
3
+X
5
.
Datorita invariant ei n timp, avem
C(X) = C(01) = 00111101, C(X
2
) = C(001) = 0000111101, . . .
(s-a t inut cont de dualitatea de notare polinom - cuvant).
Datorita liniaritat ii, raspunsul C(1) caracterizeaza complet codul. De exemplu,
mesajul de intrare 101 se codica prin
C(101) = C(1 + X
2
) = C(1) + C(X
2
) = C(1) + C(001) = 11110100 . . . +
0000111101 . . . = 1111101101 = 1 + X +X
2
+X
3
+X
4
+X
6
+X
7
+X
9
.
16.2 Coduri (n, 1) - convolut ionale
g
0
(X)
X
n
g
0
(X)
X
2n
g
0
(X)
.
.
.
Numarul liniilor (si deci si al coloanelor) lui G nu este xat, el depinzand de lungimea
mesajului sursa. Astfel, pentru un mesaj de lungime i, matricea G are i linii si
1 + grad(g
0
(X)) + (i 1) n coloane.
Exemplul 16.5 Fie (3, 1) - codul convolut ional binar de polinom generator g
0
(X) =
1 +X +X
3
+X
4
+X
5
+X
8
. Pentru un mesaj sursa de lungime 3, matricea G va
avea dimensiunea 3 15:
G =
1 1 0 1 1 1 0 0 1
1 1 0 1 1 1 0 0 1
1 1 0 1 1 1 0 0 1
(spat iile libere sunt completate cu 0). Astfel, codicarea mesajului 101 este
101 G = 110001000110001.
16.3 Coduri (n, k) - convolut ionale
Sa dezvoltam o descriere a codurilor (n, k) - convolut ionale, similara celei date an-
terior pentru cazul k = 1. Vom ncepe cu un exemplu:
Exemplul 16.6 Fie circuitele liniare a doua (2, 1) - coduri convolut ionale, care au
iesirea comuna:
_
_
_
_
+ +
+
+ +
6
-
6
-
6
-
?
_
+
-
,
?- -
? ?
? - -
6
-
-
? - - -
6
?-
,
- -
6
? ?
16.3. CODURI (N, K) - CONVOLUT IONALE 185
La ecare tact intrarea este formata din doi bit i care formeaza intrarile n cele doua
circuite liniare. O ntarziere cu doi tact i la intrare genereaza o ntarziere de doi
tact i la iesire; deci, acesta este un (2, 2) - cod convolut ional.
Pentru intrarea 10 iesirea este 110101 (funct ioneaza doar circuitul superior), iar
pentru 01 iesirea este 010111 (numai pe baza circuitului inferior). Formal,
C(1) = 1+X+X
3
+X
5
= g
0
(X), C(X) = X+X
3
+X
4
+X
5
= g
1
(X).
Folosind invariant a n timp se pot determina si alte iesiri:
C(X
2i
) = X
2i
g
0
(X), C(X
2i+1
) = X
2i
g
1
(X) i 1.
Denit ia 16.2 Pentru un (n, k) - cod convolut ional, polinoamele
g
i
(X) = C(X
i
), 0 i k 1
se numesc polinoame generatoare.
Teorema 16.1 Un (n, k) - cod convolut ional de polinoame generatoare g
i
(X), (0
i k 1) este determinat de funct ia de codicare
a(X)
k1
i=0
a
(i)
(X
n
)g
i
(X) (1)
unde pentru secvent a a = a
0
a
1
a
2
. . . s-a notat a
(i)
= a
i
a
i+k
a
i+2k
. . . (0 i k 1).
Reciproc, ind date polinoamele g
i
(X) i = 0, 1, . . . , k 1 si un numar n, formula
(1) determina un (n, k) - cod convolut ional.
Demonstrat ie: Vom ncepe prin a arata ultima armat ie. Aplicat ia
a(X) a
(i)
(X
n
)g
i
(X)
este liniara (ca o compunere de transformari liniare) si invariant a n timp (deci
deneste un (n, k) - cod convolut ional). Ultima asert iune rezulta din observat ia ca
pentru orice secvent a a,
X
k
a(X)
(i)
X
n
a
(i)
(X).
Deci iesirea la X
k
a(X) prin aceasta aplicat ie este X
n
k1
i=0
a
(i)
(X
n
)g
i
(X).
Sa aratam acum ca un (n, k) - cod convolut ional denit de aplicat ia C este identic
cu cel dat de C
(a(X)) =
k1
i=0
a
(i)
(X
n
)g
i
(X) unde g
i
(X) = C(X
i
) sunt polinoamele
generatoare. Deoarece C si C
(X
r
) pentru orice r 0; atunci vom avea
C(a
0
+a
1
X +a
2
X
2
+. . .) =
r0
a
r
C(X
r
) =
r0
a
r
C
(X
r
) = C
(a
0
+a
1
X +. . .).
Deoarece ambele aplicat ii sunt (n, k) invariante n timp, ne putem restrange la
0 r k 1. Pentru a = 00 . . . 0100 . . . (cu 1 pe pozit ia r), este evident ca
a
(r)
= 100 . . . si a
(i)
= 000 . . . pentru i = r. Deci C
(X
r
) = g
r
(X) = C(X
r
). 2
Analog codurilor (n, 1) - convolut ionale, si n acest caz se poate deni ma-
tricea generatoare, care este o reprezentare matriciala a relat iei (1). Liniile ma-
tricii sunt g
0
(X), g
1
(X), . . . , g
k1
(X), X
n
g
0
(X), X
n
g
1
(X), . . ., considerate ca poli-
noame de grad innit. Pentru mesajul a = a
0
a
1
. . . a
r
codicarea este aG =
186 PRELEGEREA 16. CODURI CONVOLUT IONALE
a
0
g
0
(X) +. . . +a
k1
g
k1
(X) +X
n
[a
k
g
0
(X) +. . . +a
2k1
g
k1
(X)] +X
2n
[a
2k
g
0
(X) +
. . . +a
3k1
g
k1
(X)] +. . . = (a
0
+a
k
X
n
+a
2k
X
2n
+. . .)g
0
(X)+. . . +(a
k1
+a
2k1
X
n
+
. . .)g
k1
(X) =
k1
i=0
a
(i)
(X
n
)g
i
(X).
Exemplul 16.7 Matricea generatoare a (2, 2) - codului convolut ional descris n Ex-
emplul 16.6 este
G =
1 1 0 1 0 1
0 1 0 1 1 1
1 1 0 1 0 1
0 1 0 1 1 1
1 1 0 1 0 1 . . .
0 1 0 1 1 1 . . .
.
.
.
1 1 0 1 0 1 0 0
0 1 0 1 1 1 0 0
0 0 1 1 0 1 0 1
= (1 1 1 0 0 0 0 1), deci
C(1 +X
3
) = 1 + X +X
3
+X
8
.
S-a prezentat anterior modul de construct ie al unui circuit liniar pentru (n, 1) -
coduri convolut ionale, plecand de la polinomul generator g(X).
In mod similar se
determina circuitul liniar de codicare pentru un (n, k) - cod convolut ional:
1. Pentru i = 0, 1, . . . , k 1 se construieste circuitul liniar al (n, 1) - codului dat
de a(X) a(X
n
)g
i
(X);
2. Se foloseste un buer comun de iesire (de n simboluri), n care ajung rezultatele
nsumate ale celor k circuite;
3. Secvent a de intrare este segmentat a n grupe de cate k simboluri, ecare din
ele constituind intrarea n cate un circuit liniar.
Exemplul 16.8 Sa construim circuitul liniar pentru (2, 2) - codul denit de poli-
noamele generatoare
g
0
(X) = X +X
3
+X
4
+X
5
, g
1
(X) = 1 + X +X
2
+X
4
+X
5
+X
6
+X
7
.
Scriem g
0
(X) = (0 + X) + (0 + X
3
) + (X
4
+ X
5
) deci circuitul sau liniar are 2
elemente de nmagazinare. Pentru g
1
(X) = (1+X)+(X
2
+0)+(X
4
+X
5
)+(X
6
+X
7
)
sunt necesare trei elemente de nmagazinare.
Reprezentarea sa graca este:
16.4. CODURI CONVOLUT IONALE SISTEMATICE 187
_
_
_
_
_
+ +
+ +
+
+
?
-
6
- - -
?
,
6
- - -
?
6 6
-
?- - - -
6
_
_
+ +
,
6
- - -
6
-
6 6
? - - -
6
? ?
-
-
6
Denit ia 16.3 Un (n, k) - cod convolut ional are memorie N daca
i (0 i k 1), grad(g
i
(X)) Nn,
iar N este minim cu aceasta proprietate. Numarul Nn se numeste lungimea
restransa a codului.
Dupa cum s-a vazut, un cod convolut ional de memorie N poate implementat cu
o combinat ie de N 1 elemente de nmagazinare. N este numarul de simboluri de
iesire care pot modicate la schimbarea unui singur caracter de intrare.
16.4 Coduri convolut ionale sistematice
Un (n, k) - cod convolut ional sistematic are proprietatea ca la ecare iesire de n car-
actere, pe primele k pozit ii se gasesc simbolurile de informat ie. Vom da o construct ie
directa a acestor coduri, plecand tot de la similitudinea cu codurile - bloc.
Fie n, k, N (k < n) numere naturale nenule. Consideram sistemul de k(n k)
secvent e cu N componente peste Z
q
:
g(i, j) = g
0
(i, j)g
1
(i, j) . . . g
N1
(i, j), 1 i k, 1 j n k.
Aceste secvent e se numesc subgeneratori.
Consideram matricea
Q
0
=
(1)
g
(2)
.
.
.
g
(k)
= (I
k
P
0
O
k
P
1
O
k
P
2
O
k
. . . P
N2
O
k
P
N1
O
k
O
k
. . .)
unde I
k
este matricea unitate, O
k
este matricea nula (ambele de ordin k),
P
t
=
g
t
(1, 1) g
t
(1, 2) . . . g
t
(1, n k)
g
t
(2, 1) g
t
(2, 2) . . . g
t
(2, n k)
.
.
.
g
t
(k, 1) g
t
(k, 2) . . . g
t
(k, n k)
, 0 t N 1
iar
g
(i) = 0 . . . 010 . . . g
0
(i, 1) . . . g
0
(i, n k)0 . . . 0g
1
(i, 1) . . . g
1
(i, n k)0 . . . 0
0 . . . 0g
N1
(i, 1) . . . g
N1
(i, n k)0 . . . (1 i k).
Cuvintele obt inute din primele Nn componente ale lui g
(i) (1 i k):
g(i) = 0 . . . 010 . . . 0g
0
(i, 1) . . . g
0
(i, n k)0 . . . 0g
N1
(i, 1) . . . g
N1
(i, n k)
188 PRELEGEREA 16. CODURI CONVOLUT IONALE
se numesc generatori.
Fie un numar natural. Se deneste operatorul
D
(i) = 0 . . . 0
n
g
(i)
care translateaza g
In sfarsit, e
G
Q
0
DQ
0
D
2
Q
0
.
.
.
(1)
.
.
.
g
(k)
Dg
(1)
.
.
.
Dg
(k)
D
2
g
(1)
.
.
.
=
=
I
k
P
0
O
k
P
1
O
k
P
2
. . . O
k
P
N1
. . .
I
k
P
0
O
k
P
1
. . . O
k
P
N2
O
k
P
N1
. . .
I
k
P
0
. . . O
k
P
N3
O
k
P
N2
O
k
P
N1
.
.
.
p=0
b
i,p
X
i
a polinomului g
i
(X) =
m
p=0
k1
j=0
(k b
i,np+j
)X
np+j
+b
i
X
i
(0 i k 1).
Desi are - teoretic - un numar innit de linii si coloane, ind n forma canonica,
pentru aceasta reprezentare se poate construi imediat matricea de control:
H
P
T
0
I
nk
. . .
P
T
1
O
nk
P
T
0
I
nk
. . .
P
T
2
O
nk
P
T
1
O
nk
P
T
0
I
nk
. . .
.
.
.
P
T
N1
O
nk
P
T
N2
O
nk
P
T
N3
O
nk
. . .
P
T
N1
O
nk
P
T
N2
O
nk
. . .
P
T
N1
O
nk
. . .
.
.
.
P
0
P
1
P
2
. . . P
N1
. . .
I
nk
O
nk
O
nk
. . . O
nk
. . .
P
0
P
1
. . . P
N2
P
N1
. . .
I
nk
O
nk
. . . O
nk
O
nk
. . .
.
.
.
H
T
= O
.
Sa consideram un mesaj de informat ie a, sub forma unei succesiuni (teoretic)
innite. El va descompus init ial n blocuri de lungime k:
a = a
0
(1) . . . a
0
(k)
a
0
a
1
(1) . . . a
1
(k)
a
1
. . . a
p
(1) . . . a
p
(k)
a
p
. . .
Mesajul codicat se obt ine similar codurilor liniare, prinnmult irea lui a cu matricea
generatoare: c = aG
= c
0
(1) . . . c
0
(n)
c
0
c
1
(1) . . . c
1
(n)
c
1
. . . c
p
(1) . . . c
p
(n)
c
p
. . .
T inand cont de forma canonica a matricii G
i=1
N1
t=0
a
pt
(i)g
t
(i, j), (1 j n k). (2)
Aceeasi formula de codicare se poate scrie si n alt mod:
c = aG
=
k
i=1
a
0
(i)g
(i) +
k
i=1
a
1
(i)Dg
(i) +
k
i=1
a
2
(i)D
2
g
(i) +. . ., deci
c =
k
i=1
t=0
a
t
(i)D
t
g
(i) (3)
Exemplul 16.9 Sa consideram un (2, 1) - cod convolut ional binar cu N = 4 si
subgenerator g(1, 1) = 1101. Generatorul va atunci g(1) = 110100001 iar matricea
G
11 01 00 01 . . .
11 01 00 01 . . .
11 01 00 01 . . .
.
.
.
= 1101001010 . . .
Exemplul 16.10 Fie (3, 2) - codul convolut ional binar cu N = 3 si subgeneratori
g(1, 1) = 101, g(2, 1) = 110. Calculand generatorii, se obt ine
g(1) = 101000001, g(2) = 011001000 si deci
G
= 110001100 . . .
190 PRELEGEREA 16. CODURI CONVOLUT IONALE
16.5 Arborescent a codurilor convolut ionale
Cuvintele - cod dintr-un cod convolut ional sistematic se pot reprezenta folosind
un graf arborescent innit, cu noduri situate la o distant a de n pozit ii si cu q
k
descendent i din ecare nod. Codicarea unui mesaj revine la parcurgerea unui
drum n acest arbore.
Pentru simplicare, sa consideram un (n, 1) - cod convolut ional sistematic binar
(generalizarea este imediata) de lungime restrans a N. El este complet caracterizat
prin n 1 subgeneratori
g(1, j) = g
0
(1, j)g
1
(1, j) . . . g
N1
(1, j), (1 j n 1).
Codul are un singur generator, anume
g(1) = 1g
0
(1, 1)g
0
(1, 2) . . . g
0
(1, n 1)0g
1
(1, 1)g
1
(1, 2) . . . g
1
(1, n 1)0 . . .
. . . 0g
N1
(1, 1) . . . g
N1
(1, n 1)
Vom folosi notat iile
g
0
= 1g
0
(1, 1) . . . g
0
(1, n 1),
g
p
= 0g
p
(1, 1) . . . g
p
(1, n 1), (1 p N 1).
Atunci g(1) = g
0
g
1
. . . g
N1
, iar g
p
este a p - a ramicat ie a lui g(1). Matricea
generatoare a codului va - cu aceste notat ii:
G
(1)
Dg
(1)
D
2
g
(1)
.
.
.
g
0
g
1
g
2
. . . g
N1
0 0 . . .
0 g
0
g
1
. . . g
N2
g
N1
0 . . .
0 0 g
0
. . . g
N3
g
N2
g
N1
. . .
.
.
.
= a
0
g
(1) +a
1
Dg
(1) +a
2
D
2
g
(1) +. . . (4)
De aici rezulta ca c
0
= 0 daca a
0
= 0 si c
0
= g
0
daca a
0
= 1. Cu alte cu-
vinte, codul poate partit ionat n doua submult imi de marime egala: o submult ime
S
0
cont ine toate secvent ele care corespund lui a
0
= 0 (deci toate cuvintele - cod
din S
0
au acelasi prex 0); cealalta submult ime S
1
cont ine toate cuvintele - cod
corespunzatoare lui a
0
= 1 (deci toate cuvintele - cod din S
1
au prexul g
0
).
La randul lui, S
0
se mparte n doua submult imi egale S
00
si S
01
. S
00
corespunde
secvent elor - cod pentru care a
0
= a
1
= 0 (deci toate cuvintele - cod din S
00
ncep
cu 00). S
01
cont ine secvent ele cu a
0
= 0, a
1
= 1, deci cu prexul 0g
0
. Similar, S
1
se partit ioneaza n S
10
si S
11
, S
10
ind pentru a
0
= 1, a
1
= 0 (deci cuvintele - cod
din S
10
au prexul g
0
g
1
); secvent ele din S
11
ncep cu prexul g
0
(g
0
+g
1
).
Acest procedeu continu a indenit.
Deci cuvintele - cod pot aranjate ntr-un arbore cu noduri de n caractere si
cate doua ramicat ii din ecare nod. O ramicat ie este marcata de un cod bloc
de n caractere, corespunzatoare unui caracter de informat ie particular, iar ntreaga
secvent a corespunde unui drum prin arbore.
16.5. ARBORESCENT A CODURILOR CONVOLUT IONALE 191
0
g
0
g
1
g
0
+g
1
g
2
g
0
+g
2
g
1
+g
2
g
0
+g
1
+g
2
0
g
0
g
1
g
0
+g
1
0
g
0
6
-
? -
-
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
-
6
? -
0
0
0
1
1
0
1
1
0
1
0
1
0
1
Operat ia de codicare poate privita atunci ca un proces n care este trasat un
drum particular n arbore, conform instruct iunilor date de mesajul de informat ie.
Exemplul 16.11 Sa consideram (3, 1) - codul convolut ional binar cu N = 4, gene-
rat de g(1, 1) = 1011, g(1, 2) = 1101. Generatorul codului este
g(1) = 111 001 010 011, iar arborele de codicare
000
111
001
110
010
101
011
100
011
100
010
101
001
110
000
111
000
111
001
110
010
101
011
100
000
111
001
110
000
111
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
-
6
-
? -
Daca vom considera de exemplu mesajul de informat ie a = 1001 . . ., secvent a -
cod generata va c = 111 001 010 100 . . ..
Aceasta construct ie se poate extinde la un (n, k) - cod convolut ional sistematic binar.
Deoarece la momentul 0 exista 2
k
secvent e posibile de lungime k, toate cuvintele
- cod se pot partit iona n 2
k
submult imi S
0
, S
1
, . . . , S
2
k
1
. Toate secvent ele din S
i
ncep cu acelasi bloc, corespunzator aceluiasi mesaj de informat ie. Fiecare S
i
se
mparte la randul lui n 2
k
submult imi, dupa tipul celui de-al doilea bloc de la tactul
1. Procesul continu a n mod similar pan a la epuizarea mesajului de informat ie.
192 PRELEGEREA 16. CODURI CONVOLUT IONALE
16.6 Exercit ii
16.1 Construit i un codicator pentru (2, 1) - codul convolut ional binar de polinom
generator g
0
(X) = 1 + X + X
3
+ X
4
+ X
6
+ X
7
+ X
9
. Cat este N ? Codicat i
mesajele 110, 0110, 1010.
16.2 Construit i o matrice generatoare pentru codul denit anterior.
16.3 Construit i un codicator pentru (2, 1) - codul convolut ional ternar de polinom
generator g
0
(X) = 1 + 2X + 2X
3
.
Sa se determine o matrice generatoare.
Sa se codice mesajele 102, 200, 0120.
16.4 Construit i un codicator pentru un (3, 2) - cod convolut ional binar cu N = 2.
16.5 Codicatorul din Exemplul 16.8 are 5 elemente de nmagazinare. Construit i
un codicator pentru acelasi cod, care utilizeaza doar 4 elemente de nmagazinare.
16.6 Construit i polinoamele generatoare ale codului convolut ional dat mai jos:
_
_
_
_
_
_
_
_
6
-
6
-
-
-
? -
6
- - -
?
- -
6 6
-
?
,
?-
?
,
- - - -
?-
- - -
6
-
,
-
6
6
6
- - -
6
6
?- - - -
6
-
? ? ?
+ +
+ +
+ + +
+
+ + +
16.7 Construit i o matrice generatoare pentru codul din exercit iul anterior.
Codicat i mesajul 11001.
16.8 Construit i un codicator pentru (4, 3) - codul binar, de polinoame generatoare
g
0
(X) = 1 +X +X
3
+X
5
+X
6
, g
1
(X) = X +X
2
+X
3
+X
4
, g
2
(X) = 1 +X
2
+
X
3
+X
5
+X
6
.
16.9 Sa se construiasca matricea generatoare si de control pentru (3, 2) - codul
convolut ional sistematic ternar de subgeneratori g(1, 1) = 1200, g(2, 1) = 2011.
Sa se codice mesajele 11220, 1012, 2222.
16.10 Aceeasi problema pentru (4, 2) - codul binar cu
g(1, 1) = 001, g(1, 2) = 110, g(2, 1) = 101, g(2, 2) = 111.
Sa se codice mesajele 1100, 011, 001100.
Sa se construiasca reprezentarea arborescenta.
16.11 Sa se demonstreze formulele (2).
Bibliograe
[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;
[2] M. Blaum - A (16, 9, 6, 5, 4) error correcting dc-free block code, IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[3] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza de
doctorat), PARIS VI, 1990;
[4] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;
[5] S. Guiasu - Teoria Codurilor, Tipograa Universitat ii Bucuresti, 1976;
[6] D.G. Homan, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;
[7] B. Honary, G. Markarian - Trellis Decoding of Block Codes, A Parctical Ap-
proach, Kluwer Academic Publ., 1997;
[8] A. M. Kerdok - A class of low-rate non linear codes, Information and control,
20 (1972), 182-187;
[9] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;
[10] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
[11] W. E. Ryan - A Turbo Code Tutorial, IEEE Trans. Comm., pp. 1261- 1271,
Oct. 1996.
193
Prelegerea 17
Decodicarea codurilor
convolut ionale
17.1 Capacitatea de corectare a erorilor
Algoritmii de decodicare pentru codurile convolut ionale folosesc aceeasi idee de la
codurile liniare: cuvantul primit este decodicat n cel mai apropiat cuvant - cod,
n sensul distant ei Hamming.
Ideea este de a nu decodica deodata tot cuvantul primit, ci pas cu pas, la ecare
tact ind decodicate n caractere (cont inutul unui buer de iesire) n k simboluri
(marimea buerului de intrare). Distant a Hamming (notata cu d
H
) pentru un (n, k)
- cod convolut ional se deneste
d
H
(a(X), b(X)) = d(a
0
a
1
. . . a
n1
, b
0
b
1
. . . b
n1
).
Observat ie:
In cele ce urmeaza vom continua sa identicam secvent ele de p + 1
caractere a = a
0
a
1
. . . a
p
cu polinoamele de gradul p a(X) = a
0
+a
1
X+. . . +a
p
X
p
.
Se va folosi adesea chiar notat ia (neambigua) a(X) = a.
Fie deci a(X) mesajul de informat ie; el se codica n v(X) = C(a(X)). Sa
presupunem ca se recept ioneaza u(X). La primul tact se determina cuvantul - cod
w(X) cu d
H
(u(X), w(X)) minim (cel mai apropiat cuvant - cod), iar u
0
u
1
. . . u
n1
se
transforman w
0
w
1
. . . w
n1
. Daca decodicarea este corecta, atunci s-au determinat
primele n caractere si se pot gasi imediat ca-racterele de informat ie a
0
a
1
. . . a
k1
(cont inutul primei intrari). Se deneste apoi
u(X) := u(X) C(a
0
+ a
1
X + . . . + a
k1
X
k1
)
(care aduce 0 pe primele n caractere ale cuvantului recept ionat), se ignora primele
n caractere si procedeul continua inductiv.
Motivat ia consta n faptul ca acum nu se lucreaza cu v(X) = C(a(X)) ci cu
v(X) C(a
0
+ a
1
X + . . . a
k1
X
k1
) = C(a(X) a
0
a
1
X . . . a
k1
X
k1
) =
C(a
k
X
k
+a
k+1
X
k+1
+. . .) = C(X
k
(a
k
+a
k+1
X+a
k+2
X
2
+. . .)) = X
n
C(a
k
+a
k+1
X+
a
k+2
X
2
+ . . .).
Exemplul 17.1 Sa consideram (2, 1) - codul convolut ional binar de polinom gene-
rator g
0
(X) = 1 + X + X
3
. Cuvintele lui cod sunt
193
194PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
0 00000000 . . .
g
0
(X) 11010000 . . .
X
2
g
0
(X) 00110100 . . .
(1 + X
2
)g
0
(X) 11100100 . . .
. . . . . .
Daca se primeste - de exemplu - u = 11110001, vom determina cel mai apropiat
cuvant - cod, care este (1 +X
2
+X
4
)g
0
(X), adica 11101001. Primul grup de n = 2
bit i este 11, deci primul bit de informat ie (k = 1) este 1. Fie acum
u := u C(1) = 11110001 11010000 = 00100001.
Se ignora primele doua simboluri din noul u si se determina cel mai apropiat
cuvant - cod de 100001; acesta este 000 . . . 0; deci al doilea grup cadru este 00 - adica
al doilea simbol de informat ie este 0.
Refacem u := u X
2
C(0) = 00100001. Se sterg primele patru simboluri din u
si se cauta cel mai apropiat cuvant - cod de 0001. Acesta este din nou 00 . . .. Deci
u se corecteaza n
C(1 + 0X + 0X
2
) = 11000000.
Denit ia 17.1 Pentru un (n, k) - cod convolut ional se deneste distant a libera prin
d
lib
= min{d
H
(C(a(X)), C(a
(X)))|a
0
a
1
. . . a
k1
= a
0
a
1
. . . a
k1
}.
Similar observat iei de la codurile liniare, d
lib
este cea mai mica pondere a unui cuvant
- cod C(a
(X)) cu proprietatea a
0
a
1
. . . a
k1
= 0. (s-a notat a
(X) = a(X) a
(X)
unde a(X), a
(X) = C(a
(X)) t. Deci, cu
inegalitatea triunghiului, d(u(X), u
(X))) s + t 2t < d
lib
. Din denit ia
distant ei libere rezulta ca primele k simboluri din a(X) au drept cel mai apropiat
grup de k simboluri generat de cod grupul primelor k simboluri din a
(X), ceea ce
permite decodicarea si corectarea erorilor.
Pentru urmatoarele grupuri, procedeul decurge analog.
Invers, sa presupunem d
lib
2t si e u(X) = C(a(X)), u
(X) = C(a
(X)) cu
d
H
(u(X), u
(X)) = d
lib
si u
0
. . . u
k1
= u
0
. . . u
k1
. Fie i
1
, i
2
, . . . i
d
lib
tot i indicii i
pentru care u
i
= u
i
. Construim urmatorul cuvant v(X):
v
i
=
u
i
daca u
i
= u
i
sau i = i
2s+1
u
i
daca i = i
2s
Avem d
H
(u(X), v(X)) d
H
(u
(X) si recept ionat v(X). Atunci eroarea, care a modicat cel mult t simboluri -
17.2. DECODIFOCAREA CODURILOR SISTEMATICE 195
poate conduce la o decodicare incorecta, deoarece u(X) este cuvantul cod cel mai
apropiat.
Deci, n aceasta ipoteza, codul nu va corecta t erori. 2
Din analiza de sus rezulta ca un parametru important pentru un cod convolu-
t ional este distant a libera, care specica num arul maxim de erori care pot corec-
tate. Din nefericire ([1]), nu se cunoaste nici o metoda analitica de construct ie de
coduri convolut ionale bune, n sensul unei maximizari a d
lib
pentru n si k date.
Folosind calculatorul, au fost gasite nsa o serie de astfel de coduri bune. Listam
cateva din ele pentru cazul binar si k = 1:
n d
lib
g
0
(X)
2 5 110111 = 1 + X + X
3
+ X
4
+ X
5
2 6 11110111
2 7 1101011011
2 8 110111011011
2 10 11011111001011
2 10 111011110111
3 8 111011111
3 10 111011101111
3 12 111011101011111
4 10 111101111111
4 13 1111011110011111
17.2 Decodifocarea codurilor sistematice
Pastr and similitudinea cu codurile liniare, sa folosim la codurile sistematice ideea
de decodicare bazata pe calculul sindromului.
Fie un (n, k) - cod convolut ional sistematic denit prin matricea generatoare G
si cea de control H
H
T
= 0 si
c = aG
se obt ine cH
T
= 0.
Sa presupunem ca s-a recept ionat secvent a (innita) r = c +e unde e este o
secvent a eroare. Ca si la codurile liniare, sindromul va
s = rH
T
= cH
T
+eH
T
= eH
T
.
Secvent a recept ionata se poate structura n blocuri de n caractere:
r = r
0
(1) . . . r
0
(n)
r
0
r
1
(1) . . . r
1
(n)
r
1
. . . r
p
(1) . . . r
p
(n)
rp
. . .
Similar se segmenteaz a sindromul n blocuri de lungime n k:
s = s
0
(1) . . . s
0
(n k)
s
0
s
1
(1) . . . s
1
(n k)
s
1
. . . s
p
(1) . . . s
p
(n k)
sp
. . .
Vom avea
s
p
(j) = r
p
(k +j)
k
i=1
r
p
(i)g
0
(i, j)
k
i=1
r
p1
(i)g
1
(i, j) . . .
k
i=1
r
pN+1
(i)g
N1
(i, j),
1 j n k.
196PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
Aceasta relat ie se poate scrie si s
p
(j) = r
p
(k + j) A
p
(j), unde
A
p
(j) =
N1
t=0
k
i=1
r
pt
(i)g
t
(i, j) este rezultatul codicarii secvent ei r
p
(1) . . . r
p
(k) folo-
sind matricea G
, n funct ie de r
p1
(1), . . . , r
p1
(k), . . . , r
pN+1
(1) . . . , r
pN+1
(k).
Din aceste relat ii, se poate deduce o formula pentru calculul elementelor sindro-
mului, n funct ie de caracterele secvent ei - eroare:
s
p
(j) = e
p
(k +j)
k
i=1
e
p
(i)g
0
(i, j)
k
i=1
e
p1
(i)g
1
(i, j) . . .
k
i=1
e
pN+1
(i)g
N1
(i, j),
1 j n k,
unde e = e
0
(1) . . . e
0
(n)
e
0
e
1
(1) . . . e
1
(n)
e
1
. . . e
p
(1) . . . e
p
(n)
ep
. . .
este secvent a de eroare - tip, segmentat a n blocuri de lungime n. Deci, pentru orice
j = 1, 2, . . . , n k, putem scrie:
s
0
(j) = e
0
(k + j)
k
i=1
e
0
(i)g
0
(i, j),
s
1
(j) = e
1
(k + j)
k
i=1
e
1
(i)g
0
(i, j)
k
i=1
e
0
(i)g
1
(i, j),
.
.
.
s
N1
(j) = e
N1
(k + j)
N1
p=0
k
i=1
e
p
(i)g
Np1
(i, j),
s
N
(j) = e
N
(j)
N1
p=0
k
i=1
e
p+1
(i)g
Np1
(i, j),
.
.
.
s
N+m
(j) = e
N+m
(k + j)
N1
p=1
k
i=1
e
p+m1
(i)g
Np1
(i, j)
.
.
.
De remarcat ca secvent a e
0
afecteaza numai primele N componente ale sin-
dromului: s
0
, s
1
, . . . , s
N1
, deoarece apare numai n primele N(n k) ecuat ii din
sistemul de sus.
Pentru corectarea erorilor, se determina init ial secvent a e
0
; dupa aceasta, sindro-
mul se recalculeaza scaz and din el componentele lui e
0
. Aceasta operat ie se numeste
rearanjarea sindromului.
In paralel, e
0
se foloseste la corectarea primelor n caractere
recept ionate; operat ia se realizeaza identic cu cea de la codurile liniare.
0
(j) = 0
s
m
(j) = e
m
(k+j)
m1
p=0
k
i=1
e
mp
(i)g
p
(i, j), 1 m N1, 1 j nk
s
N+m
(j) = s
N+m
(j), m 0.
De remarcat ca secvent a e
1
gureaza numai n expresiile lui s
1
, s
2
, . . . , s
N
unde
s
i
= s
i
(1) . . . s
i
(nk), 1 i N. Deci aceste componente apar n N(nk) ecuat ii.
17.3. ALGORITMUL VITERBI 197
Dupa determinarea lui e
1
se corecteaza blocul r
1
din secvent a recept ionat a, apoi se
recalculeaza sindromul, s.a.m.d.
17.3 Algoritmul Viterbi
Cel mai cunoscut algoritm de decodicare pentru codurile convolut ionale apart ine
lui Viterbi si a fost folosit pe scara larga n comunicat iile spat iale. Astfel - ca sa
dam numai un exemplu, stat ia Voyager n misiunea sa din 1974 spre Marte, Saturn
si Jupiter, a folosit pentru transmisii un (2, 1) - cod convolut ional binar de polinom
generator g
0
(X) = 1 + X + X
2
+ X
5
+ X
6
+ X
7
+ X
8
+ X
10
+ X
11
+ X
12
.
_
+
`
`
,
`
`
are doua stari posibile (dupa cont inutul elementului de nmagazinare): 0 si 1.
Pentru intrarea i (i = 0, 1) iesirea este secvent a
ii daca starea este 0,
i(1 i) daca starea este 1.
Diagrama ret ea a codului este:
,
, , , , ,
, , , ,
`
0
1
0 1 2 3 4
. . .
00 00 00 00
10 10 10
11 11 11 11
01 01 01
Exemplul 17.4 (2, 1) - codul convolut ional (de memorie N = 2) reprezentat prin
circuitul liniar
198PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
_
_
_
,
`
` `
`
+ +
+
are patru stari: 00, 01, 10 si 11 (dupa cont inuturile elementelor de nmagazinare).
Din starea S = 00 se ajunge la S
0
= 00 daca intrarea este 0, sau n S
1
= 10
daca intrarea este 1. Iesirile corespunzatoare sunt 00 respectiv 11.
Analog, daca S = 10, atunci S
0
= 01 (intrare 0 iesire 10) si S
1
= 11 (intrare 1
iesire 01), etc. Se ajunge la diagrama ret ea urmatoare:
, , , , ,
, , , ,
, , , ,
, , , , , ,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
00
10
01
11
0 1 2 3 4 5
. . .
00 00 00 00 00
11 11 11 11 11
01 01 01 01
10 10 10
01 01 01
10 10 10 10
00 00 00
11 11 11
Orice drum prin ret ea, care pleaca din momentul 0 conduce - prin citirea marcajelor
arcelor - la un cuvant - cod. De exemplu, pentru intrarea 100110, codul generat este
C(100110) = 111000011001 (reamintim, spre dreapta pleaca totdeauna doua arce,
iar arcul pentru intrarea 0 este situat sub arcul pentru intrarea 1).
Invers, orice cuvant - cod reprezint a marcajul unui drum n ret ea.
17.3. ALGORITMUL VITERBI 199
Sa construim acum algoritmul de decodicare Viterbi.
La recept ia unui cuvant v = v
0
v
1
v
2
. . . vom cauta construct ia unui drum n
ret ea, cat mai apropiat de v.
Pentru ecare moment i si stare S vom lista drumurile active prin ret ea pana la
starea S la momentul i. Un drum este activ daca discrepant a sa este minima (prin
discrepant a se nt elege distant a Hamming dintre cuvantul generat de drumul prin
arbore si cuvantul de aceeasi lungime primit la intrare). Vom adnota ecare stare
la momentul i cu discrepant a drumului sau activ. Pentru calculul ei se poate folosi
o formula recursiva denita astfel:
Fie d(S S
si secvent a de
n caractere primita, iar di(S) discrepant a starii S. Atunci
di(S
) = min
SS
{di(S) + d(S S
)} (1)
Algoritmul va avea o durata de funct ionare nita numit a fereastra de decodicare,
pe care o notam cu b (deci va funct iona b tact i).
Algoritmul Viterbi:
Intrare: Secvent a v
0
v
1
. . . , v
p
= v
p,0
v
p,1
. . . v
p,n1
;
Algoritm:
1. Fie p := 0 si S
0
starea init iala a ret elei (starea cu toate elementele de
nmagazinare 0);
2. Se marcheaz a di(S
0
) = 0;
3. for i := 1 to b do
Pentru toate starile S accesibile la momentul p+i se determina
di(S) folosind formula (1), si se listeaza toate drumurile active care
duc la S.
4. Daca toate drumurile active la momentul p + b ncep cu acelasi arc
S
0
S
1
, secvent a de intrare v
p
se corecteazan marcajul u
p
al acestui
prim arc (si se decodica n primul caracter al lui S
1
). Altfel, eroarea
nu este corectabila, STOP.
5. p := p + 1, S
0
:= S
1
, salt la pasul 3.
Exemplul 17.5 Sa reluam codul descris n Exemplul 17.4, mpreuna cu diagrama
sa de ret ea. Presupunem ca s-a primit secvent a v = 10010100101100000 . . . Deci
v
0
= 10, v
1
= 01, v
2
= 01, v
3
= 00, v
4
= 10, v
5
= 11, v
6
= 00 . . ..
Vom lucra cu o fereastra de decodicare b = 7. Detaliem grac numai procedura
de decodicare a primului bloc (cazul p = 0).
200PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
,
0 i = 0 :
, ,
,
>
>
>
1
1
i = 1 :
, ,
,
>
>
>
,
,
,
,
>
>
>
>
>
>
2
2
3
1
i = 2 :
, ,
,
>
>
>
,
,
,
>
>
>
i = 3 :
,
,
,
,
>
>
>
3
3
1
2
, ,
,
>
>
>
,
,
,
>
>
>
i = 4 :
,
,
,
,
,
,
,
3
1
3
3
, ,
,
>
>
>
,
,
,
>
>
>
i = 5 :
,
,
,
,
,
,
,
,
,
,
,
>
>
>
>
>
>
4
4
1
3
,
,
>
>
>
,
i = 6 :
,
,
,
>
>
>
,
,
,
3
3
4
4
,
,
,
>
>
>
,
i = 7 :
,
,
,
>
>
>
,
,
, ,
,
,
,
>
>
>
>
>
>
4
3
4
4
Se ajunge la concluzia ca toate arcele active au acelasi nceput: arcul marcat cu
11. Deci primul bloc v
0
= 10 se decodica n 11, dupa care se ia ca nod init ial
S
0
= 10 si procesul se repeta.
De remarcat ca pentru o fereastra de decodicare b = 5, eroarea nu s-ar putut
corecta (primul arc nu este unic).
_
_
0 1 00 10
11
01
Pentru codul din Exemplul 17.4, reprezentarea nita este:
_
_
_
_
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` `
10 11
01 00
01
10
11 00 10 01
11
00
De remarcat ca pe ecare arc este sucient sa marcam doar secvent a de iesire;
caracterul de intrare este reprezentat de primul caracter al starii n care intra arcul
respectiv.
Denit ia 17.2 Se deneste lungimea unui drum ca ind numarul de arce care
formeaza acel drum.
Ponderea unui drum este suma ponderilor arcelor care formeaza drumul.
Reamintim, ponderea unui cuvant este numarul de caractere nenule din cuvantul
respectiv.
Conform Denit iei 17.1, distant a libera a unui cod este ponderea nenula minima
a unui cuvant cod - deci a unei secvent e care marcheaza un drum prin diagrama de
translatare.
Propozit ia 17.2 Distant a libera a unui (n, 1) - cod convolut ional este egala cu pon-
derea nenula minima a unui ciclu care trece prin starea init iala 00 . . . 0 a diagramei
de translatare a codului.
Demonstrat ie: Este imediata.
Fie S
0
= 00 . . . 0 starea init iala. Pentru orice t, 1 t
d
lib
1
2
, se de-
neste d(t) ca ind cel mai mic numar ntreg pozitiv p cu proprietatea ca orice
202PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
drum S
0
S
1
. . . S
p1
, (S
0
S
1
) are ponderea mai mare de 2t. Pentru de-
terminarea algoritmica a lui d(t) se poate adapta imediat un algoritm similar din
teoria grafurilor.
Deoarece codul este liniar, valoarea lui d(t) se pastreaz a pentru orice stare a
diagramei de translatare.
Acum, n condit iile ca pot apare maxim t erori, algoritmul Viterbi va funct iona
corect pentru o fereastra b = d(t) (datorita Propozit iei 17.1).
Reluarea algoritmului Viterbi la ecare pas cu fereastra maxima d(t) este ns a
destul de costisitoare ca timp; de aceea, practic, se foloseste o fereastra mobila
b d(t) si algoritmul trece la faza de decodicare atunci cand toate drumurile
active selectate au acelasi prim arc. Daca s-a ajuns la b = t(b) si nu s-a selectat un
prim arc comun, algoritmul esueaza.
17.4 Coduri convolut ionale catastroce
Daca este denit neglijent, un cod convolut ional poate conduce la urmatoarea situa-
t ie, complet nefericita: un mesaj n care a fost perturbat un num ar mic de caractere
genereaza prin decodicare o innitate de erori.
Pentru a studia acest caz, consideram din nou numai codurile (n, 1) - convolut io-
nale binare. Pentru a vedea n ce consta problema, sa luam urmatorul exemplu:
Exemplul 17.8 Fie (2, 1) - codul convolut ional binar, cu polinoamele generatoare
g
0
(X) = 1 + X
3
, g
1
(X) = 1 + X + X
2
. Diagrama sa de translatare este
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
`
`
`
`
`-
/
/
/
/
/
/- `
`
`
`
`
``
/
/
/
/
/
/`
/
/
/
/
/
/`
/
/
/
/
/
/-
`
`
`
`
`
``
`
`
`
`
`
`-
000 010 101 111
100 110
001 011
00 01 00 01
10
11 01 00 11
10
11
10 01 00 10
11
Sa presupunem ca s-a transmis mesajul de informat ie a = 00 . . ., caruia i
corespunde cuvantul - cod nul c = 0000 . . .. La recept ie s-a primit un cuvant cu
primele trei simboluri gresite: v = 111000 . . .. Decodicarea sa nu ridica nici o
problema, acesta ind de asemenea cuvant - cod, care marcheaza drumul prin starile
000 100 110 011 101 110 . . ..
Deci, n ipoteza generala din Teoria Codurilor (cea a decodic arii cele mai proba-
bile), nu au aparut erori, si mesajul decodicat este a
In acest mod, modicarea doar a primelor trei caractere a dus la situat ia n care
aceste erori se propaga ntr-o secvent a innita.
17.5. EXERCIT II 203
Se observa din acest exemplu ca tot necazul provine din faptul ca diagrama cont ine
doua cicluri distincte cu iesirea 0: 000 000 si 110 011 101 110.
Denit ia 17.3 Un cod convolut ional se numeste catastroc daca diagrama sa de
translatare cont ine doua cicluri distincte de pondere zero.
Observat ie: Orice cod convolut ional cont ine un ciclu de pondere zero, anume bucla
care pleaca si intr a n starea init iala. Reamintim, ponderea unui drum este suma
ponderilor arcelor sale.
Teorema 17.1 Un (n, 1) - cod convolut ional este catastroc daca si numai daca
cmmdc(g
0
(X), . . . , g
n1
(X)) = 1.
Demonstrat ie: Teorema ram ane valabila daca o demonstram pentru cazul n = 2. Fie
deci un (2, 1) - cod convolut ional, de polinoame generatoare g
0
(X), g
1
(X). Pentru
a marca un ciclu, un cuvant de intrare trebuie sa e de forma b(X) +X
r
a(X) (1 +
X
p
+X
2p
+. . .), cu grad(a(X)) < p. Pentru a elimina din discut ie bucla din starea
S
0
, vom considera a(X) 0. Sa presupunem can diagrama de translatare a codului
exista un ciclu de lungime p si pondere 0. Atunci a(X) g
0
(X) si a(X) g
1
(X) trebuie
sa se divida cu 1 + X
p
, deci a(X) g
(X) (unde g
(X) = cmmdc(g
0
(X), g
1
(X))), se
divide cu 1 + X
p
.
Daca g
(X)) 1.
In acest caz, toate
mesajele de informat ie b(X) +a(X) [g
(X)]
t
(1 +X
p
+X
2p
+. . .), (t 0) se codica
identic, ceea ce va conduce la imposibilitatea decodicarii.
Reciproca se demonstreaza similar. 2
17.5 Exercit ii
17.1 Determinat i d
lib
pentru ecare din codurile urmatoare:
(a) g
0
(X) = 1 + X
2
, g
1
(X) = 1 + X + X
2
;
(b) g
0
(X) = 1 + X + X
2
+ X
3
, g
1
(X) = 1 + X
2
+ X
3
;
(c) g
0
(X) = 1 + X
3
+ X
4
, g
1
(X) = 1 + X + X
2
+ X
4
.
17.2 Folosind (2, 2) - codul convolut ional denit n Exemplul 17.4, si fereastra de
decodicare b = 7, decodicat i (cat este posibil) secvent ele
v = 01000001000 . . .
v = 11000110010010001110010 . . .
17.3 Trasat i diagrama ret ea a (2, 1) - codului convolut ional generat de g
0
(X) =
1 = X
2
+ X
3
+ X
4
. Folosit i algoritmul Viterbi pentru decodicarea secvent ei v =
1000001000001000 . . .
17.4 Fie (2, 1) - codul generat de g
0
(X) = 1 + X + X
2
+ X
3
, g
1
(X) = 1 +
X
2
+ X
3
. Decodicat i primele 4 caractere de informat ie ale cuvantului recept ionat
c = 11000000 . . . pentru
204PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT IONALE
b = 2, b = 3, b = 4.
17.5 Generalizat i conceptul de diagrama ret ea la (n, k) - coduri.
Trasat i ret eaua (2, 2) - codului denit de circuitul liniar:
_
_
_
`
`
,
`
`
`
,
`
`
+ +
+ +
+
17.6 Generalizat i not iunea de diagrama de translatare pentru (n, k) coduri binare.
Construit i diagrama de translatare a codului denit n exercit iul anterior.
17.7 Demonstrat i Propozit ia 17.2,
17.8 Pentru codurile denite n Exercit iul 17.1, determinat i diagramele de trans-
latare si d(t) pentru 1 t
d
lib
1
2
.
17.9 Ce se ntampla daca se ncearca sa se determine d(t) pentru t >
d
lib
1
2
?
17.10 Construit i un algoritm pentru determinarea lui d(t) n cazul unui (n, 1) -
cod convolut ional (1 t
d
lib
1
2
dat).
17.11 Pentru ecare din codurile urmatoare, decidet i daca sunt catastroce sau nu.
1 0 0 . . . 0 1
0 1 0 . . . 0 1
.
.
.
0 0 0 . . . 1 1
(1)
unde p = k
1
, k
2
.
Un astfel de (n
1
n
2
, k
1
k
2
) - cod are distant a d = d
1
d
2
= 22 = 4, deci corecteaza
o eroare si detecteaza doua erori. Chiar daca n scrierea liniara a cuvintelor - cod
ultimul simbol de control se poate elimina (el este de fapt suma modulo 2 a bit ilor
de control de pe ultima linie si coloana) distant a se reduce la 3, deci capacitatea de
corectare a unei erori ramane.
Exemplul 18.1 Fie un (3, 2) - cod binar sistematic, generat de matricea G =
1 0 1
0 1 1
= GG =
1 0 1 0 0 0 1 0 1
0 1 1 0 0 0 0 1 1
0 0 0 1 0 1 1 0 1
0 0 0 0 1 1 0 1 1
In cadrul codurilor convolut ionale s-a denit o structura de ret ea pentru facilitarea
codicarii, decodicarii, detectarii si corectarii de erori (Prelegerea 17). Aceasta
structura se poate extinde cu mici modicari si la codurile liniare.
Fie C un (n, k) - cod liniar care se poate reprezenta printr-un cod - tablou. Lui
i se asociaza un graf orientat cu arce marcate. Varfurile grafului sunt partit ionate
n coloane V
0
, V
1
, . . . , V
Nc1
(N
c
n + 1). O coloana V
i
cont ine mult imea starilor
la care se poate ajunge la momentul i. Fiecare arc U pleaca dintr-o stare q
j
V
i
si
ajunge la o stare q
m
V
i+1
(i 0); n acest caz, q
m
este succesorul lui q
j
, iar q
j
este
predecesorul lui q
m
. Arcul este marcat cu o pereche (U)/(U), unde (U) Z
q
este
un mesaj de informat ie, iar (U) Z
q
este mesajul - cod corespunzator (de obicei
ele se reduc la cate un singur caracter).
Proprietat i:
(a) V
0
= {q
0
}, V
Nc1
= {q
Nc1
}; deci, orice ret ea pleaca dintr-o stare unica q
0
(radacina) si ajunge de asemenea ntr-o stare unica q
Nc1
(t inta);
(b) Orice stare este accesibila din rad acin a prin cel put in un drum;
(c) Din orice stare se poate ajunge la t int a prin cel put in un drum.
Numim drum prin ret ea un drum de la rad acina la t inta. Printr-o ret ea se pot
cataloga toate cuvintele unui cod liniar reprezentabil sub forma de cod - tablou.
Orice cuvant - cod corespunde unui drum unic prin ret ea. Deci o astfel de ret ea va
cont ine q
k
drumuri distincte. Fiecare astfel de drum are doua marcaje:
(i) concatenarea marcajelor de informat ie (U) ale ecarui arc U al drumului;
aceasta secvent a formeaza mesajul de informat ie care se codica.
(ii) concatenarea marcajelor (U) ale ecarui arc U al drumului; ele formeaza
cuvantul care codica secvent a de informat ie.
0
(00, 00) = (00)
0
+ (00)
1
= 00
0
(00, 01) = (00)
0
+ (01)
1
= 01
0
(00, 01) = (00)
0
+ (10)
1
= 10
0
(00, 11) = (00)
0
+ (11)
1
= 11.
iar ecare arc va marcat cu o pereche de forma
0
/
0
= a
1
a
2
/a
1
a
2
c
1
unde c
1
= a
1
+ a
2
.
Pe nivelul p = 1, arcele sunt marcate prin perechi din tabelul urmator:
1
(A, B) 00 01 10 11
00 00/000 01/011 10/101 11/110
01 01/011 00/000 11/110 10/101
10 10/101 11/110 00/000 01/011
11 11/110 10/101 01/011 00/000
La ultimul nivel, pentru p = N
c
2 = 2 vom avea
2
(A, 00) = si
2
(00, 00) = 000,
2
(01, 00) = 011,
2
(10, 00) = 101,
2
(11, 00) = 110 (pe ultimul
arc sunt numai simboluri de control).
196 PRELEGEREA 18. CODURI - TABLOU
Ret eaua se poate reprezenta grac astfel:
00
00 00
01 01
10 10
11 11
00
`
00/000
01/011
10/101
11/110
/000
/011
/101
/110
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Exemplul 18.3
In mod similar se construiesc codurile tablou obt inute prin produsul
a doua (3, 2)(n
2
, k
2
) - coduri bloc. Toate au acelasi numar de stari N
s
= 2
2
=
4, doar adancimea (numarul de coloane) variind n funct ie de n
2
(N
c
= n
2
+ 1).
Reprezentarea graca a ret elei este
>
>
>
>
>
>
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` `
`
`
>
>
.
.
..
>
>
>>
-
-
--
.
.
.
>
>
>>
.
.
..
-
-
--
`
`
``
-
-
-
-
-
-
-
-
--
00
00 00 00
00
01 01 01
10 10 10
11 11 11
. . .
marcajul nodurilor ind realizat similar cu cel din Exemplul 18.2.
18.3 Decodicarea codurilor tablou
Operat ia de codicare se realizeaza foarte simplu: ecare mesaj de informat ie de
k
1
k
2
caractere, se scrie ca o secvent a de k
2
+ 1 grupuri, primele k
2
grupuri av and
cate k
1
simboluri, iar ultimul . Aceasta secvent a traseaza prin ret ea un drum unic
18.3. DECODIFICAREA CODURILOR TABLOU 197
(00 . . . 0) A
1
. . . A
N
c
2
(00 . . . 0)
de la radacin a la t int a. Ceea ce se obt ine prin concatenarea iesirilor
0
(00 . . . 0, A
1
)
1
(A
1
, A
2
) . . .
N
c
2
(A
N
c
2
, 00 . . . 0)
va un cuvant - cod al (n
1
n
2
, k
1
k
2
) - codului - tablou reprezentat de ret ea.
Pentru decodicare se poate folosi o variant a a algoritmului Viterbi, cu mici
modicari, necesare trecerii de la codurile convolut ionale la coduri bloc.
1. Cuvantul recept ionat este mpart it n n
2
subcuvinte, ecare av and n
1
valori digitizate (vezi Exemplul 18.4) ale alfabetului - cod.
2. La ecare nivel p, pentru ecare arc (A
p
, B
p+1
) se calculeaza metrica
arcului, care este distant a euclidiana dintre al p + 1-lea subcuvant
recept ionat si
p
(A
p
, B
p+1
). Distant a euclidiana dintre x = x
1
x
2
. . . x
n
si
y = y
1
y
2
. . . y
n
este
d
E
(x, y) = (x
1
y
1
)
2
+ (x
2
y
2
)
2
+ . . . + (x
n
y
n
)
2
.
3. Pentru ecare nod B al ret elei se determina metrica nodului B, astfel:
(a) Metrica nodului rad acina este 0;
(b) Pentru un nod B
p+1
V
p+1
(p 0), metrica lui B este cea mai mica
valoare a sumei dintre metrica unui nod A
p
V
p
si d
E
((A)
p
, (B)
p+1
),
minimul ind luat dupa toate nodurile din V
p
.
4. Arcul selectat n calculul metricii nodului se introduce ntr-un drum posi-
bil, iar toate celelalte arce de pe nivelul respectiv sunt eliminate.
5. Dupa ce s-a calculat metrica nodului t inta, se considera drumul posibil
corespunzator si decodicarea se face prin concatenarea sub-mesajelor
de informat ie care marcheaz a arcele acestui drum.
Exemplul 18.4 Sa reluam codul - tablou denit n Exemplul 18.2. Presupunem ca
s-a transmis cuvantul cod a = 011101110 si s-a recept ionat mesajul digitizat
b
.
Metrica nodului radacina (00)
0
este 0.
Prima subsecvent a de n
1
= 3 caractere primite este 0.2 0.4 0.4.
Se calculeaza metricile celor patru arce care pleaca din radacina:
d
E
((00)
0
, (00)
1
) = (0.2 0.0)
2
+ (0.4 0.0)
2
+ (0.4 0.0)
2
= 0.36;
d
E
((00)
0
, (01)
1
) = (0.2 0.0)
2
+ (0.4 1.0)
2
+ (0.4 1.0)
2
= 0.76;
d
E
((00)
0
, (10)
1
) = (0.2 1.0)
2
+ (0.4 0.0)
2
+ (0.4 1.0)
2
= 1.16;
d
E
((00)
0
, (11)
1
) = (0.2 1.0)
2
+ (0.4 1.0)
2
+ (0.4 0.0)
2
= 1.16.
Metricile celor patru noduri de pe nivelul 1 sunt chiar aceste valori.
198 PRELEGEREA 18. CODURI - TABLOU
Urmatorul submesaj primit este 0.3 0.1 0.9. Pentru nodurile de pe nivelul
2, valorile calculate ale metricilor (metrica nodului predecesor plus metrica arcului)
sunt:
(00)
2
(01)
2
(10)
2
(11)
2
(00)
1
1.27 1.27 0.87 2.42
(01)
1
1.67 1.67 2.87 1.37
(10)
1
1.67 3.27 2.07 2.07
(11)
1
3.27 1.67 2.07 2.07
Minimul pe ecare coloana ale acestor valori (scris ngrosat) reprezinta metrica
nodului respectiv. Deci nodurile (00)
2
si (01)
2
au metrica 1.27, (10)
2
are metrica
0.87, iar (11)
2
are metrica 1.37.
Ultima subsecvent a de trei caractere digitizate este 1.0 0.9 0.6. Valorile calcu-
late ale metricilor (metrica nodului predecesor plus metrica arcului) drumurilor care
ajung n nodul t inta sunt:
(00)
3
(00)
2
3.44
(01)
2
2.44
(10)
2
1.84
(11)
2
1.74
Deci metrica nodului t inta este 1.74. Refacand acum traiectoria n sens invers,
se obt ine drumul posibil (00)
0
(01)
1
(11)
2
(00)
3
, reprezentat n gura
.
.
.
.
.
.
`
`
`
`
`
`
`
00
00
01
10
11
00
01
10
11
00
01/011
10/101
/110
Prin concatenarea marcajelor arcelor de pe acest drum, rezulta cuvantul - cod
011101110 (care coincide cu mesajul transmis a) si decodicarea lui - mesajul de
informat ie 0110.
18.4 Coduri tablou generalizate (GAC)
Denit ia codurilor - tablou se poate extinde pentru a cuprinde si alte clase de coduri
liniare (Hamming, Reed - Muller) sau ciclice (BCH, Reed - Solomon); ceea ce se
obt ine este un cod - tablou generalizat (GAC - Generalized Array Codes).
Un GAC este o suma binara de doua sau trei coduri - tablou, completate eventual
cu linii nule. Procedura de construct ie a unui astfel de (n, k) - cod C este:
A. Fie C
1
un cod - produs prin nmult irea Kronecker G
A
1
G
A
2
, unde:
(i) G
A
1
este o matrice k
1
(k
1
+ 1) de tipul (1);
18.4. CODURI TABLOU GENERALIZATE (GAC) 199
(ii) G
A
2
= (I
k
2
|J
k
2
,n
2
k
2
) unde I
k
2
este matricea unitate iar J este o matrice cu
toate elementele 1;
(iii) n = (k
1
+ 1) n
2
, k
A
= k
1
k
2
.
B. Fie C
2
un cod - produs prin nmult irea Kronecker G
B
1
G
B
2
, unde:
(i) G
B
1
este o matrice 1 n
B
1
cu toate elementele 1;
(ii) G
B
2
= (G
3
|G
4
) este o matrice k
B
n
B
2
unde G
3
este o matrice cu coloane 0
sau 1, iar G
4
este o matrice de tipul (1) cu k
B
linii. Coloanele lui G
B
2
pot eventual
permutate.
(iii) n = n
B
1
n
B
2
.
C. Fie C
3
un cod - produs prin nmult irea Kronecker G
C
1
G
C
2
, unde:
(i) G
C
1
= (00 . . . 01) are dimensiunea 1 n
C
1
;
(ii) G
C
2
= (11 . . . 1) are dimensiunea 1 n
C
2
;
(iii) n = n
C
1
n
C
2
.
D. Codul C este C
1
+ C
2
sau C
1
+ C
2
+ C
3
unde suma se efectueaza n Z
2
; el
are lungimea n, k = k
A
+ k
B
respectiv k = k
A
+ k
B
+ 1 simboluri de informat ie si
este generat de matricea
G
A
1
G
A
2
G
B
1
G
B
2
sau
G
A
1
G
A
2
G
B
1
G
B
2
G
C
1
G
C
2
In exemplele urmatoare vom prezenta sub forma de coduri GAC unele din cele
mai cunoscute coduri - bloc (liniare sau ciclice).
Exemplul 18.5 Sa consideram
G
A
1
=
1 0 0 1
0 1 0 1
0 0 1 1
, G
A
2
= (1 1)
G
B
1
= (1 1 1 1), G
B
2
= (0 1).
Dimensiunile codului sunt n = 4 2 = 8, k = 3 + 1 = 4. Matricea generatoare va
G =
1 1 0 0 0 0 1 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
0 1 0 1 0 1 0 1
.
Aceasta corespunde unui cod Reed - Muller RM(1, 3). Daca se ignora ultima
coloana (de control), se obt ine un (7, 4) - cod Hamming binar.
Aranjarea sub forma de tablou a cuvintelor - cod din cele doua coduri - produs
componente este urmatoarea:
Fie a = a
1
a
2
a
3
a
4
un mesaj de informat ie. Atunci cuvantul - cod x este dat prin:
x
1
=
a
1
p
1
a
2
p
2
a
3
p
3
p
4
p
5
x
2
=
0 a
4
0 a
4
0 a
4
0 a
4
,
x = x
1
+x
2
=
a
1
p
1
+ a
4
a
2
p
2
+ a
4
a
3
p
3
+ a
4
p
4
p
4
+ a
4
= (a
1
, a
4
+ p
1
, a
2
, p
2
+ a
4
, a
3
, p
3
+ a
4
, p
4
, p
4
+ a
4
),
unde p
i
= a
i
(1 i 3) si p
4
= a
1
+ a
2
+ a
3
sunt simboluri de control.
200 PRELEGEREA 18. CODURI - TABLOU
Exemplul 18.6 Codul RM(1, 4) poate generat cu un cod GAC astfel:
G
A
1
=
1 0 0 1
0 1 0 1
0 0 1 1
G
A
2
= (1 1 1 1)
G
B
1
= (1 1 1 1) G
B
2
=
0 1 0 1
0 0 1 1
.
Deci n = 4 4, k = 3 + 2 = 5 si
G =
1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
.
Eliminand ultimul simbol de control (ultima coloana din matricea G) se ajunge
la un (15, 5) - cod binar cu d = 7, care este un cod BCH.
Fie a = a
1
a
2
a
3
a
4
a
5
un mesaj de informat ie. Reprezentarea tabelara a cuvintelor
- cod este:
x
1
=
a
1
p
1
p
1
p
1
a
2
p
2
p
2
p
2
a
3
p
3
p
3
p
3
p
4
p
4
p
4
p
4
x
2
=
0 a
4
a
5
a
4
+ a
5
0 a
4
a
5
a
4
+ a
5
0 a
4
a
5
a
4
+ a
5
0 a
4
a
5
a
4
+ a
5
,
x = x
1
+x
2
=
a
1
p
1
+ a
4
p
1
+ a
5
p
1
+ a
4
+ a
5
a
2
p
2
+ a
4
p
2
+ a
5
p
2
+ a
4
+ a
5
a
3
p
3
+ a
4
p
3
+ a
5
p
3
+ a
4
+ a
5
p
4
p
4
+ a
4
p
4
+ a
5
p
4
+ a
4
+ a
5
,
unde p
i
= a
i
(1 i 3), p
4
= a
1
+ a
2
+ a
3
sunt simboluri de control.
Exemplul 18.7 Sa plecam de la urmatoarele matrici de baza:
G
A
1
= G
A
2
=
1 0 0 1
0 1 0 1
0 0 1 1
G
B
1
= G
C
2
= (1 1 1 1), G
B
2
= G
C
1
= (0 0 0 1).
Se obt ine un cod C = C
1
+ C
2
+ C
3
cu n = 4 4 = 16, k = 3 3 + 1 + 1 = 11 si
matrice generatoare
G =
1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1
0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
1 0 1
0 1 1
G
A
2
=
1 0 0 0 1 1 1 1
0 1 0 0 1 1 1 1
0 0 1 0 1 1 1 1
0 0 0 1 1 1 1 1
G
B
1
= (1 1 1) G
B
2
=
1 1 1 0 1 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 1 1 1 1
G
C
1
= (0 0 1) G
C
2
= (1 1 1 1 1 1 1 1).
Fie a = a
1
a
2
. . . a
12
un mesaj de informat ie.
Pentru obt inerea cuvantului - cod, avem:
x
1
=
a
1
a
2
a
3
a
4
p
1
p
2
p
3
p
4
a
5
a
6
a
7
a
8
p
5
p
6
p
7
p
8
p
9
p
10
p
11
p
12
p
13
p
14
p
15
p
16
x
2
=
c
1
a
9
c
2
a
10
c
3
c
4
a
11
c
5
c
1
a
9
c
2
a
10
c
3
c
4
a
11
c
5
c
1
a
9
c
2
a
10
c
3
c
4
a
11
c
5
x
3
=
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
a
12
a
12
a
12
a
12
a
12
a
12
a
12
a
12
deci
x = x
1
+x
2
+x
3
=
a
1
+ c
1
a
2
+ a
9
. . . a
11
+ p
3
c
5
+ p
4
a
5
+ c
1
a
6
+ a
9
. . . a
11
+ p
7
c
5
+ p
8
a
12
+ p
9
+ c
1
a
12
+ p
10
+ a
9
. . . a
12
+ a
11
+ p
15
a
12
+ p
16
+ c
5
De remarcat maniera mult mai simpla de codicare, ea reducandu-se la adunari
de valori binare (pentru simbolurile de control) si adunari de matrici binare.
18.5 Decodicarea codurilor GAC
Pentru decodicare se poate folosi tot algoritmul lui Viterbi aplicat unei structuri
de ret ea sub care se pot reprezenta aceste coduri. Structura de ret ea se construieste
similar cu cea a codurilor - tablou, cu unele mici modicari datorate denit iei cu-
vintelor - cod, ca sume de doua sau trei alte secvent e.
202 PRELEGEREA 18. CODURI - TABLOU
Vom considera reprezentarea cuvintelor unui cod GAC sub forma de tablou cu
n
1
linii si n
2
coloane. Fie k
i
num arul de simboluri noi de informat ie care pot apare
pe linia i a cuvintelor - cod si t = max
1in
1
{k
i
}.
1. Numarul de coloane (adancimea ret elei) este N
c
= n
1
+ 1, iar num arul
de stari distincte este N
s
= 2
t
.
2. Fiecare stare de pe coloana p se noteaza (a
1
a
2
. . . a
t
)
p
unde a
i
Z
2
(1
i t).
3. Radacina ret elei este (00 . . . 0)
0
iar t inta (00 . . . 0)
n
1
.
4. Fiecare arc (A
p
, B
p+1
) de pe nivelul p este marcat cu o pereche
p
(A, B)/
p
(A, B) unde
p
(A, B) este secvent a de simboluri noi de
informat ie de pe linia p (eventual ), iar
p
(A, B) este linia p a cuvantului
- cod.
5. Daca A
p
si B
p+1
sunt legate printr-un arc si |
p
(A, B)| = s, atunci B
p+1
=
A
p
+
p
(A, B)0
ts
.
6. Daca construct ia codului GAC a folosit si codul C
3
, atunci ecare nod
de pe coloana n
2
este legat de t inta prin doua arce, marcajul celui de-al
doilea arc ind complementara marcajului primului arc (pe acest nivel
n
2
(A, 00 . . . 0) = ).
p=1
2
k
i
drumuri distincte, ecare din ele
corespunzand unui cuvant - cod.
Operat iile de codicare/decodicare (inclusiv aplicarea algoritmului Viterbi a-
daptat) sunt identice cu cele denite la codurile - tablou.
Exemplul 18.9 Reluam codul denit n Exemplul 18.5. Pentru el se poate construi
o ret ea n felul urmator:
Sunt necesare N
c
= n
1
+ 1 = 4 + 1 = 5 coloane. Pentru numarul de stari, sa
studiem forma de tablou a cuvintelor cod:
x =
a
1
p
1
+ a
4
a
2
p
2
+ a
4
a
3
p
3
+ a
4
p
4
p
4
+ a
4
>
>
>
>
>
>
>
.
.
.
.
.
.
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
-- .
.
.
.
.
.
.
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
-
.
.
.
.
.
.
.
>
>
>
>
>
>
>
00
00 00 00
00
10 10 10
01 01 01
11 11 11
18.5. DECODIFICAREA CODURILOR GAC 203
0
(00, B) = a
1
a
4
,
1
(A, B) = a
2
,
2
(A, B) = a
3
,
3
(A, 00) = .
Nodurile si arcele sunt marcate cu valorile date de tabelele urmatoare:
0
(A, B)/
0
(A, B) 00 10 01 11
00 00/00 10/11 01/01 11/10
1
(A, B)/
1
(A, B) 00 10 01 11
00 0/00 1/11
10 1/11 0/00
01 0/01 1/10
11 1/10 0/01
2
(A, B)/
2
(A, B) 00 10 01 11
00 0/00 1/11
10 1/11 0/00
01 0/01 1/10
11 1/10 0/01
3
(A, B)/
3
(A, B) 00
00 /00
10 /11
01 /01
11 /10
pentru codul RM(1, 3),
3
(A, B)/
3
(A, B) 00
00 /0
10 /1
01 /0
11 /1
pentru (7, 4) - codul Hamming
Exemplul 18.10 Reprezentarea prin ret ea a codurilor RM(1, 4) si (15, 5) BCH
construite sub forma de GAC n Exemplul 18.6 se realizeaza astfel:
Adancimea ret elei (numarul de coloane) este N
c
= 4 + 1 = 5. Numarul maxim
de simboluri de informat ie noi se aa pe prima linie a cuvintelor - cod (a
1
, a
4
, a
5
);
deci ret eaua are N
s
= 2
3
= 8 stari distincte.
Funct ia este denita
0
(000, B) = a
1
a
4
a
5
,
1
(A, B) = a
2
,
2
(A, B) = a
3
,
3
(A, 000) = .
iar funct ia :
0
(000, B) = a
1
(a
1
+ a
4
)(a
1
+ a
5
)(a
1
+ a
4
+ a
5
)
1
(A, B) = a
2
(a
2
+ a
4
)(a
2
+ a
5
)(a
2
+ a
4
+ a
5
)
2
(A, B) = a
3
(a
3
+ a
4
)(a
3
+ a
5
)(a
3
+ a
4
+ a
5
)
3
(A, 000) = (a
1
+a
2
+a
3
)(a
1
+a
2
+a
3
+a
4
)(a
1
+a
2
+a
3
+a
5
)(a
1
+a
2
+a
3
+a
4
+a
5
)
pentru codul RM(1, 4). Pentru (15, 5) - codul BCH se elimina ultimul bit de control.
Nodurile si arcele sunt etichetate conform tabelelor:
0
/
0
000 100 001 101 010 110 011 111
000 000/0000 100/1111 001/0011 101/1100 010/0101 110/1010 011/0110 111/1001
204 PRELEGEREA 18. CODURI - TABLOU
.
.
.
.
.
..
-
-
-
-
-
-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
-
-
-
-
-
-
.
.
.
.
.
..
>
>
>
>
>
>
>
000
000 000 000
000
100 100 100
001 001 001
101 101 101
010 010 010
110 110 110
011 011 011
111 111 111
i
/
i
000 100 001 101 010 110 011 111
000 0/0000 1/1111
100 1/1111 0/0000
001
0/0011 1/1100
101
1/1100 0/0011
010
0/0101 1/1010
110
1/1010 0/0101
011
0/0110 1/1001
111
1/1001 0/0110
(i=1,2)
3
/
3
0000
000 /0000
100 /1111
001 /0011
101 /1100
010 /0101
110 /1010
011 /0110
111 /1001
respectiv
3
/
3
0000
000 /000
100 /111
001 /001
101 /110
010 /010
110 /101
011 /011
111 /100
.
De remarcat ca aceasta ret ea se poate reprezenta folosind numai 4 stari n loc de 8:
{
y
{
{ {
{
y
{
{
{
y
{
{ {
`
Cele doua arce care leaga doua noduri sunt marcate cu etichete complementare.
Except ie fac arcele de pe primul nivel unde n denit ia funct iei
0
este complemen-
tat numai primul bit (a
1
); ceilalt i doi bit i de informat ie a
4
a
5
sunt identici pentru
ecare pereche de arce si formeaza marcajele nodurilor succesor de pe nivelul 1:
00, 01, 10, 11.
Bibliograe
[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;
[2] L. Bahl, J. Cocke, F. Jelinek, J. Raviv - Optimal decoding of linear codes for
minimizing symbol error rate, IEEE Inf. Theory, pp. 284-287, Martie 1974;
[3] M. Blaum - A (16, 9, 6, 5, 4) error correcting dc-free block code, IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[4] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza de
doctorat), PARIS VI, 1990;
[5] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;
[6] S. Guiasu - Teoria Codurilor, Tipograa Universitat ii Bucuresti, 1976;
[7] D.G. Homan, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;
[8] B. Honary, G. Markarian - Trellis Decoding of Block Codes, A Practical Ap-
proach, Kluwer Academic Publ., 1997;
[9] A. M. Kerdok - A class of low-rate non linear codes, Information and control,
20 (1972), 182-187;
[10] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;
[11] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
[12] W.E.Ryan - A Turbo Code Tutorial, IEEE Trans. comm. pp. 1261-1271, Oct.
1996;
205
Prelegerea 19
Alte reprezentari de coduri - bloc
19.1 RLL - coduri
Sistemele de comunicare actuale (telefonice, de nregistrare etc), datorita vitezei
mari de lucru, difera substant ial de canalele clasice (binar simetrice). Pentru ele
se folosesc ltre de banda capabile sa elimine fenomenul de interferent a care apare.
Numite canale cu raspuns part ial, ele corecteaza aceste interferent e folosind algoritmi
de tip Viterbi, incorporat i prin construct ie. Reusita decodicarii corecte a cuvintelor
recept ionate este asigurata de supra-codicari ale mesajului sursa.
In prezent sunt
folosite trei supra-coduri care asigura transmiterea fara interferent e (n anumite
limite) a mesajului: acestea sunt codurile cu lungime limitata si codurile balansate
pentru codurile-bloc, turbo-codurile pentru ocdurile convolut ionale.
Denit ia 19.1 Un cod cu lungime limitata (RLL - Run Length Limited Codes), sau
(d
0
, k
0
) - cod, este un cod - bloc cu proprietatea ca orice doua simboluri 1 consecutive
sunt separate prin p zerouri, unde d
0
p k
0
.
Parametrul d
0
este folosit pentru controlul interferent ei dintre simboluri (feno-
men care apare la viteze de transmisie mari, apropiate de capacitatea de saturat ie a
canalului); k
0
impune num arul maxim de zerouri care pot apare, pentru pastrarea
unei rate de informat ie cat mai convenabile.
Fie C un (n, k) - cod bloc care poate reprezentat sub forma de cod tablou
(n
1
n
2
, k
1
k
2
), si c
1,n
un cuvant binar de comutat ie. Codul C +c = {a +c|a A}
va tot un (n, k) - cod, cu restrict ii RLL.
Dicultatea acestei construct ii rezida n modul de alegere a vectorului c. De
aceea, vom detalia procedura de codicare pentru obt inerea de coduri RLL cu d
0
=
0:
1. Se deneste codul - tablou (n
1
n
2
, k
1
k
2
) care trebuie transformat.
2. Se deneste cuvantul de comutat ie c = c
1
c
2
. . . c
n
2
, unde c
i
=
c
i
1
c
i
2
. . . c
i
n
1
(1 i n
2
) este secvent a binara de comutat ie pentru linia i.
3. Pentru linia i (care este un cuvant - cod cu un singur simbol de control),
cuvantul de comutat ie veric a urmatoarea condit ie:
Daca n
1
este par, c
i
are un num ar impar de 1,
altfel, c
i
are un num ar par de 1.
217
218 PRELEGEREA 19. ALTE REPREZENT
p
(A, B) := (A, B) +c
p
.
Exemplul 19.3 Sa reluam (8, 4) - codul GAC de mai sus, a carui ret ea este de-
scrisa n Exemplul 18.5. Folosind secvent a de comutat ie c = 00010001, se obt ine un
cod RLL cu aceeasi structura de ret ea:
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
>
>
>
>
>
>
>
.
.
.
.
.
.
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
-- .
.
.
.
.
.
.
-
-
-
-
-
--
.
.
.
.
.
..
-
-
-
-
-
-
.
.
.
.
.
.
.
>
>
>
>
>
>
>
00
00 00 00
00
10 10 10
01 01 01
11 11 11
iar marcajele arcelor:
0
/
0
00 10 01 11
00 00/00 10/11 01/01 11/10
1
/
1
00 10 01 11
00 0/01 1/10
10 1/10 0/01
01 0/01 1/11
11 1/11 0/00
2
/
2
00 10 01 11
00 0/00 1/11
10 1/11 0/00
01 0/01 1/10
11 1/10 0/01
3
/
3
00
00 /01
10 /10
01 /00
11 /11
(pentru (7, 4) - codul Hamming binar se ignora ultimul bit din
3
).
De remarcat ca fat a de Exemplul 18.5 s-a modicat numai marcajul nodurilor de
pe nivelele 1 si 3).
220 PRELEGEREA 19. ALTE REPREZENT
0
(00 . . . 0, B) = a
2n
1
1
. . . a
k
, iar
0
(00 . . . 0, B) = g
1
(a
1
, a
2
).
(b) Arcul spre t int a are
k
0
(A, 00 . . . 0) = si
k
0
(A, 00 . . . 0) = g(p
1
, p
2
). (notat iile sunt cele din algoritmul B).
4.
In ecare subret ea se deneste valoarea
j
/
j
(1 j < k
0
) a arcu-
lui (A
j
, B
j+1
) astfel:
j
(A, B) este valoarea nemodicata din R
b
, iar
j
(A, B) = g(a
2j+1
, a
2j+2
).
Exemplul 19.7 Sa reluam (8, 3) - codul balansat din Exemplul 19.4. Dupa ce se
construieste ret eaua (8, 2) - codului cadru, deoarece exista doar un bit de informat ie
suplimentar avem p = 1 deci ret eaua se mai copiaza de 2
p
1 = 1 ori.
Sunt doua maniere de abordare:
A. Daca transmiterea se face pe linii, apare o construct ie conforma cu cea a
ret elelor denite pentru codurile GAC. Ret eaua corespunzatoare codului cadru este
prezentat a n (a), iar cea pentru codul balansat, n (b):
`
`
`
`
`
`
`
`
`
`
`
``
`
`
`
``
`
00/0101 /0101
01/0110 /0110
10/1001 /1010
11/1010 /1010
(a)
`
000/0101 /0101
010/0110 /0110
100/1001 /1001
110/1010 /1010
001/0101 /1010
011/0110 /1001
101/1001 /0110
111/1010 /0101
(b)
una pentru ecare linie din tabelul de codicare. Deoarece cuvintele - cod sunt citite
pe coloane, ecare subret ea are cate 5 coloane si 4 stari.
Pentru a
7
= a
8
= a
9
= 0 (prima linie din tabel) subret eaua construita plecnd de
la (16, 6) - codul cadru din Exemplul 19.6 are structura:
_
_
_
00
00 00 00
00
01 01 01
10 10 10
11 11 11
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
i=1
a
i
r
n(i)
= x, |a
i
| < r, n(i) 0
_
.
$
$
$
$
$
$
$
$
0
1 3 2 4
5
deci tabelul distant elor ntre elementele lui Z
6
este:
d 0 1 2 3 4 5
0 0 1 1 2 1 2
1 1 0 2 1 2 1
2 1 2 0 1 2 2
3 2 1 1 0 2 1
4 1 2 2 2 0 1
5 2 1 2 1 1 0
De remarcat ca alegerea lui m trebuie facuta cu grija. De exemplu, daca se ia
r = 3, m = 35 vom avea d
35
(0, 12) = 1 deoarece 12 = 3
11
(mod 35). Practic ns a,
lucrand cu numere din Z
35
, nu vom putea corecta erori pe pozit ia corespunzatoare
lui 3
11
.
De aceea, aritmetica pe calculator considera doar situat ia m = r
n
1 (n 2)
care elimina astfel de situat ii. Orice num ar ntreg nenul x admite o reprezentare
unica
x
n1
i=0
c
i
r
i
mod (r
n
1),
cu 0 c
i
< r nu tot i nuli.
Deci Z
r
n
1
poate interpretat ca ind mult imea GF(r
n
) \ {0} cuvintelor nenule
de lungime n peste alfabetul {0, 1, . . . , r 1}.
Pentru a b = m = r
n
1 distant a modulara devine distant a obisnuit a n Z
m
si
C
a,b
are un comportament similar unui cod liniar.
Denit ia 20.4 Un AN - cod ciclic de lungime n si baza r este un subgrup multi-
plicativ C Z
r
n
1
.
230 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Evident, un astfel de subgrup este ideal principal n inelul Z
r
n
1
, deci exista a, b Z
astfel nc at a b = r
n
1 si C = C
a,b
, adica:
C = {a k|k Z, 0 k < b}.
Daca x C
a,b
, atunci r x (mod r
n
1) este tot n C
a,b
deoarece acesta este grup
multiplicativ; pe de-alta parte noul num ar este o permutare ciclica a lui x (ambele
ind scrise n baza r). Numarul b poate asimilat polinomului de control al unui
cod ciclic.
Exemplul 20.3 Fie r = 2, n = 11. Atunci m = 2
11
1 = 2047. Sa consideram
a = 23, b = 89. Se obt ine AN - codul ciclic format din 89 multipli ai lui 23 (pana la
2047). Exista 22 modalitat i de a semnala o eroare, ecare din ele corespunzand unui
numar de forma 2
j
(0 j 11). Acestea sunt exact toate numerele din Z
23
\ {0}.
Deci orice numar ntreg din intervalul [0, 2047] are distant a modulara 0 sau 1 de
exact un cuvant - cod. Acest AN - cod ciclic este perfect si poate considerat o
generalizare a codurilor Hamming.
i=1
a
i
r
n(i)
cu a
i
, n(i) numere ntregi, |a
i
| < r, n(i) 0 (0 i w
(r)
). Aceasta reprezentare
are defectul ca nu este unica. De exemplu, pentru r = 10, num arul 99 se poate
reprezenta n doua moduri diferite:
99 = 9 10 + 9 10
0
, 99 = 1 10
2
1 10
0
.
Se poate obt ine prin impunerea de restrict ii asupra coecient ilor o reprezenta-
re unica a numerelor ntregi.
Denit ia 20.5 Fie b, c Z , |b| < r, |c| < r. Perechea (b, c) se numeste admisibila
daca este adevarata una din relat iile:
(1) b c = 0;
(2) b c > 0 si |b +c| < r;
(3) b c < 0 si |b| > |c|.
De remarcat ca ambele perechi (b, c), (c, b) sunt admisibile numai n cazurile (1) sau
(2). Cazul (3) nu permite comutativitatea relat iei de admisibilitate.
Exemplul 20.4 Pentru r = 2 este posibil numai cazul (1). Deci o reprezentare
x =
i=0
c
i
2
i
n care toate perechile (c
i+1
, c
i
) sunt admisibile, nu are doi coecient i
consecutivi nenuli.
20.1. CODURI ARITMETICE 231
Denit ia 20.6 O reprezentare x =
i=0
c
i
r
i
cu c
i
Z, |c
i
| < r si n
x
cu c
i
= 0 i >
n
x
se numeste NAF (non-adiacent form) daca pentru orice i 0, perechea (c
i+1
, c
i
)
este admisibila.
Exemplul 20.5 Pentru r = 10 putem scrie:
96 = 4 10
0
+ 0 10
1
+ 1 10
2
(cazul (1)),
11 = 1 10
0
+ 1 10
1
(cazul (2)),
38 = 2 10
0
+ 4 10
1
(cazul (3)).
De remarcat ca reprezentarea lui 96 = 6 10
0
+ 9 10
1
nu este n forma NAF
deoarece perechea (9, 6) nu este admisibila. La fel pentru reprezentarile celorlaltor
numere.
Teorema 20.2 Orice numar ntreg x are o reprezentare NAF unica n baza r.
Daca aceasta este
x =
i=0
c
i
r
i
,
atunci w
(r)
(x) = card ({i|i 0, c
i
= 0}).
Demonstrat ie: Fie
i=0
b
i
r
i
, (|b
i
| < r) o reprezentare a lui x n baza r, si i cel
mai mic num ar cu proprietatea ca perechea (b
i+1
, b
i
) nu este admisibila. Putem
presupune ca b
i
> 0 (altfel se va lucra cu x). Vom nlocui b
i
cu b
i
= b
i
r si b
i+1
cu b
i+1
= b
i+1
+ 1 (daca b
i+1
+ 1 = r, atunci b
i+1
= 0 si facem deplasarea obisnuita
de la adunare).
Daca b
i+1
> 0, atunci avem sau b
i+1
= 0, sau b
i
b
i+1
< 0 si b
i+1
= b
i+1
+ 1 >
r b
i
= |b
i
| (deoarece perechea (b
i+1
, b
i
) nu era admisibila).
Daca b
i+1
< 0, atunci sau b
i+1
= 0, sau b
i
b
i+1
> 0 si |b
i
+b
i+
| = r b
i
b
i+1
< r
deoarece b
i+1
b
i
(perechea (b
i+1
, b
i
) nu era admisibila).
Deci, (b
i+1
, b
i
) este admisibila, si se verica similar daca (b
i
, b
i1
) este admisibila.
Procedeul continua pan a se ajunge la i = 0.
Sa aratam acum ca reprezentarea NAF este unica. Presupunem ca exista x Z
cu doua astfel de reprezent ari:
x =
i=0
c
i
r
i
=
i=0
c
i
r
i
.
Consideram far a a micsora generalitatea ca c
0
= c
0
si c
0
> 0; deci c
0
= c
0
r.
Atunci pentru c
1
sunt posibile trei valori: c
1
+ 1, c
1
+ 1 r. Daca c
1
= c
1
+ 1 r,
atunci c
1
0, deci c
0
+c
1
r 1. Deoarece c
0
c
1
> 0, avem c
0
c
1
< r, de unde
r c
0
+ r c
1
1 < r, deci c
0
+ c
1
> r 1, contradict ie. Celelalte doua cazuri se
trateaza similar. 2
Reprezentarea NAF a unui num ar x se poate aa direct si pe baza teoremei:
Teorema 20.3 Fie x Z, x 0. Consideram reprezentarile n baza r a numerelor
(r + 1) x =
i=0
a
i
r
i
, x =
i=0
b
i
r
i
,
unde a
i
, b
i
{0, 1, . . . , r 1}. Atunci reprezentarea NAF pentru x este
x =
i=0
(a
i+1
b
i+1
) r
i
.
232 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Demonstrat ie: Stim ca pentru doua numere naturale nenule a, r, [a/r] reprezint a
catul mpart irii celor doua numere, iar a [a/r] r - restul.
Din reprezentarea din enunt , rezulta ca ecare coecient a
i
se determina prin
adunarea coecient ilor corespunzatori ai numerelor x si r x, scrise n baza r. Sa
denim secvent a numerica
i
, i 0 astfel:
0
= 0,
i
=
_
i1
+b
i1
+b
i
r
_
.
Atunci, conform observat iei de la nceputul demonstrat iei, a
i
=
i1
+b
i1
+b
i
i
r. Daca notam c
i
:= a
i
b
i
, avem c
i
=
i1
+b
i1
i
r.
Mai ramane de vericat faptul ca (c
i+1
, c
i
) este o pereche admisibila. Relat ia
|c
i+1
+ c
i
| < r rezulta imediat din denit ia lui
i
. Sa presupunem c
i
> 0, c
i+1
< 0;
atunci
i
= 0. Vom avea c
i
=
i1
+ b
i1
, c
i+1
= b
i
r si condit ia |c
i+1
| > |c
i
| este
echivalenta cu
i1
+b
i1
+b
i
< r, adica
i
= 0. Celalalt caz se arata analog. 2
Exemplul 20.6 Pentru a gasi reprezentarea NAF a numarului 98 n baza r = 10,
avem
98 = 8 10
0
+ 9 10
1
+ 0 10
2
+ 0 10
3
+. . .
980 + 98 = 1078 = 8 10
0
+ 7 10
1
+ 0 10
2
+ 1 10
3
Deci, 98 = (7 9) 10
0
+ (0 0) 10
1
+ (1 0) 10
2
= 2 + 1 10
2
.
Similar situat iei din paragraful anterior, sa consideram acum cazul reprezent arii
modulare. Vom lua deci m = r
n
1, (n 2).
Denit ia 20.7 O reprezentare
x
n1
i=0
c
i
r
i
(mod m)
cu c
i
Z, |c
i
| < r se numeste CNAF (cyclic NAF) pentru x daca i (0 i
n 1), (c
i+1
, c
i
) este admisibila (se considera c
n
= c
0
).
Din Teoremele 20.2 si 20.3 rezulta un rezultat similar pentru reprezenta- rile CNAF:
Teorema 20.4 Orice numar ntreg x admite o reprezentare CNAF modulo m.
Aceasta reprezentare este unica, exceptand cazul
(r + 1) x 0 x (mod m),
cand sunt posibile doua reprezentari.
Daca x
n1
i=0
c
i
r
i
(mod m), atunci
w
m
(x) = card({i|0 i < n, c
i
= 0}).
Demonstrat ie: Construct ia este identic a cu cea din demonstrat ia Teoremei 20.3.
Unicitatea se arata similar cu cea din demonstrat ia Teoremei 20.2. Singura except ie
este cazul b
i+1
b
i
(mod m).
In acest caz sunt posibile doua reprezentari:
x b
0
+b
1
r +. . . b
n1
r
n1
si x b
1
b
2
r . . . b
0
r
n1
,
ambele modulo m. 2
20.2. TURBO - CODURI 233
20.1.3 Coduri Mandelbaum - Barrows
O clasa de AN coduri a fost denita de Mandelbaum si Barrows, generalizata ulterior
de van Lindt ([11]).
Init ial este necesar un rezultat referitor la ponderea modulara n AN coduri
ciclice, a carui demonstrare se aa n [11], pag. 127 128:
Teorema 20.5 Fie C Z/(r
n
1) un AN cod ciclic cu generator a si b = (r
n
xC
w
m
(x) = n
__
r b
r + 1
_
_
b
r + 1
__
.
Teorema 20.6 Fie b un numar prim care nu divide r, cu proprietatea ca grupul
multiplicativ Z
b
este generat de r si 1. Fie n un numar ntreg pozitiv astfel ca
r
n
1 (mod b) si a = (r
n
1)/b. Atunci codul C Z/(r
n
1) generat de a este
un cod echidistant cu distant a
n
b 1
__
r b
r + 1
_
_
b
r + 1
__
.
Demonstrat ie: Fie x C\{0}. Atunci x = a n (mod r
n
1) cu n = 0 (mod b). Din
ipoteza rezulta ca exista j ntreg cu n r
j
(mod b). Deci w
m
(x) = w
m
(r
j
a) =
w
m
(a). Aceasta arata ca C este echidistant. Valoarea distant ei rezulta din Teorema
20.5. 2
20.2 Turbo - coduri
In ultimii ani, viteza tot mai mare de transmisie a datelor - aproape de capacitatea
maxima a canalelor de comunicat ie a condus la modalitati noi de codicare. Turbo
codurile sunt prezentate prima data n 1993 de Berrou, Glavier si Thitimajshima
si combin a sub forma de ret ea (minim) doua coduri convolut ionale. Modalitatea
de decodicare este total deosebita de algoritmii cunoscut i pana acum (se folosesc
capacitat ile statistice de performant a ale canalelor de transmisie). Ele asigura o
rata de corectare a erorilor mult mai ridicata decat la codurile clasice; de aceea
turbo - codurile asigura transmisiile de pe stat iile lansate dupa anul 1993, precum
si canalele de satelit.
20.2.1 Structura unui turbo - cod
Un turbo - cod standard este reprezentat de Figura 20.1:
El foloseste doua (2, 2) - coduri convolut ionale (care far a a micsora generali-
tatea au fost considerate identice), separate printr-un bloc P
N
de permutare de N
caractere (N ind o constant a xata, dependenta de structura canalului de trans-
misie). Mesajul de informat ie este spart n blocuri u Z
q
de lungime N; daca
se ignora mecanismul de relaxare R, rata codicatorului este 1/3 (N simboluri de
informat ie se transforma n cuvinte - cod de lungime 3N). Cele 3 iesiri (x
s
, x
1p
, x
2p
)
sunt apoi transmise pe coloana, ca un cod GAC.
234 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Tabelul 20.1: Turbo - codicator standard
P
N
g
1
(X)
g
0
(X)
g
1
(X)
g
0
(X)
R
E s
c
E s E
c E E
E
u = x
s
u
x
1p
x
2p
x
1p
, x
2p
Codicatorul
Pentru codul convolut ional, matricea generatoare poate considerata (ntr-o vari-
ant a simplicata, bazata pe structura de ret ea a mesajelor) G = (g
0
(X) g
1
(X)).
Codicatorul unui turbo - cod va folosi ca matrice generatoare o forma echivalent a
recursiva:
G
T
R
=
_
1
g
1
(X)
g
0
(X)
_
.
Din acest motiv, un codicator convolut ional pentru turbo - coduri este numit Cod-
icator Sistematic Recursiv (RSE).
Un mesaj de informat ie u(X), este codicat de codul convolut ional n u(X)G =
(u(X)g
0
(X) u(X)g
1
((X)). RSE va realiza aceeasi iesire pentru mesajul u
(X) =
u(X)g
0
(X) (se veric a imediat relat ia u(X)g
0
(X)G
R
= u(X)G). Vom numi totusi
cuvant - cod perechea de polinoame u(X)G (desi se mai efectueaza o operat ie de
nmult ire pentru obt inerea mesajului u
(X)).
Se observa ca pentru un RSE, cuvantul cod are pondere nita daca si numai
daca mesajul de intrare se divide cu g
0
(X).
Corolarul 20.1 Un mesaj sursa u
cu w(u
(X) = X
p
nu se divide cu g
0
(X). 2
Corolarul 20.2 Pentru orice polinom netrivial g
0
(X) Z
q
[X] exista o innitate
de mesaje sursa de pondere 2 care se codica n cuvinte - cod de pondere nita.
Demonstrat ie: Pentru g
0
(X) Z
q
[X], g
0
(X) = X
p
, exista un n minim cu propri-
etatea g
0
(X)|X
n
1 (n este lungimea secvent ei pseudo-aleatoare generata de g
0
(X)
- a se vedea Relat ii de recurent a liniara, Prelegerea 8).
Orice secvent a u
de forma u
(X) = aX
i
(X
n
1), a Z
q
\ {0} are pondere 2
si este divizibila cu g
0
(X), deci codicarea prin RSE va genera un polinom cu un
num ar nit de termeni. 2
Exemplul 20.7 Fie g
0
(X) = 1 + X + X
4
, g
1
(X) = 1 + X
2
+ X
3
+ X
4
polinoame
din Z
2
[X].
In mod uzual se foloseste notat ia n octal; deci, cum g
0
= 11001
2
=
31
8
, g
1
= 10111
2
= 27
8
, vom avea (g
0
g
1
) = (31, 27).
20.2. TURBO - CODURI 235
Matricea generatoare este
G
R
=
_
1
1 +X
2
+X
3
+X
4
1 + X +X
4
_
,
iar un circuit liniar care realizeaza acest RSE are forma:
j
j
E E E E E
T
'
c
E
T
'
c
T
E
c E c '
c
c
%
c E
s s s s s s
+
+
u
k
u
k
p
k
(s-a notat cu u
k
simbolul de informat ie curent, iar cu p
k
simbolul de control core-
spunzator).
Cum g
0
(X) este primitiv, lungimea secvent elor este 2
4
1 = 15. De exemplu,
mesajul sursa u(X) = 1+X
15
se codica n (1+X
15
, 1+X+X
2
+X
3
+X
5
+X
7
+
X
8
+X
11
) = (1000000000000001, 1111010110010000).
u(X) = X
7
(1 + X
15
) va genera acelasi cuvant - cod, cu o ntarziere de sapte tact i.
Permutatorul
P
N
este un bloc de permutare. Cele N caractere care constituie intrarea n primul
codicator RSE sunt rearanjate nainte de a intra n al doilea codicator. Din
considerente practice este preferabil ca permutarea folosita sa nu pastreze nici o
ordine anterioar a a simbolurilor (desi acest lucru este uneori dicil, mai ales pentru
cuvinte de pondere mica). De asemenea, N trebuie sa e sucient de mare (n
practica se foloseste N 1000). Aceste doua cerint e uzuale n criptograe sunt
necesare n obt inerea de performant e ridicate la decodicare.
Mecanismul de relaxare
Daca pentru transmiterea de imagini din spat iu sunt folosite coduri cu rate mici
de informat ie (ecarui bit i corespund cel put in 3 caractere cod), n alte situat ii
(comunic ari prin satelit de exemplu) sunt preferabile rate mari (cel put in 1/2).
Rolul mecanismului de relaxare (vezi Capitolul 2) este de a reduce periodic anumite
caractere pentru a scurta lungimea cuvintelor - cod. De obicei se elimina bit i de
control; astfel, pentru a obt ine o rata de informat ie 1/2 se pot elimina tot i bit ii de
control pari de la nceputul codului si tot i bit ii de control impari de la sfarsit.
20.2.2 Decodicarea turbo - codurilor
Din construct ie rezulta ca un turbo codicator este liniar, deoarece toate compo-
nentele sale sunt liniare. Codicarile RSE sunt implementate prin circuite liniare,
permutatorul este liniar deoarece poate modelat printr-o matrice de permutare.
La fel, mecanismul de relaxare nu afecteaza liniaritatea, deoarece din toate cuvintele
- cod se sterg simbolurile de pe aceleasi pozit ii. Important a liniaritat ii consta n fap-
tul ca se poate lua ca referint a cuvantul - cod nul. De asemenea, toate construct iile
236 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
le facem pentru cazul binar, cu simbolurile 1. Decodicatorul va lucra dupa prin-
cipiul obisnuit al decodicarii cele mai probabile.
Din pacate, utilizarea algoritmului Viterbi nu este posibila din cauza operat iei
de permutare folosita n decodicare. Totusi, pentru subsecven-t e stricte, un astfel
de algoritm poate da rezultate.
Primul algoritm de decodicare pentru turbo - coduri a fost propus de Berrou
n 1993 ([12]), bazat pe ideile din [2]. Numit BCJR, el foloseste o decodicare
caracter-cu-caracter (spre deosebire de Viterbi care decodica pe secvent e bloc de
cate n caractere).
Vom folosi urmatoarele notat ii:
E
i
- notarea codicatorului RSE i (1 i 2);
D
i
- notarea decodicatorului i (1 i 2);
m - capacitatea de memorie (buer) a codicatorului;
S - mult imea celor 2
m
stari ale codicatorului;
x
s
= x
s
1
x
s
2
. . . x
s
N
= u
1
u
2
. . . u
N
secvent a de informat ie care se codica;
x
p
= x
p
1
x
p
2
. . . x
p
N
cuvantul de control generat de codicator;
y
k
= y
s
k
y
p
k
o recept ie (posibil perturbata) a lui x
s
k
x
p
k
;
y
b
a
= y
a
y
a+1
. . . y
b
;
y
N
1
= y
1
y
2
. . . y
N
cuvantul recept ionat.
Algoritmul BCJR (init ial si modicat)
O prima versiune a algoritmului se bazeaza pe decodicarea cea mai probabila apos-
teriori (MAP - maximul aposteriori). Se realizeaza decodicarea
u
k
=
_
+1 daca P(u
k
= +1|y) > P(u
k
= 1|y)
1 altfel.
Formal, u
k
= sign[L(u
k
)], unde L(u
k
) este logaritmul raportului probabilitat ilor
de potrivire aposteriori, denit prin relat ia
L(u
k
) = log
_
P(u
k
= +1|y)
P(u
k
= 1|y)
_
.
Daca se t ine cont de faptul ca se codica n ret ea, aceasta se scrie:
L(u
k
) = log
_
_
_
_
S
+
p(s
k1
= s
, s
k
= s, y)/p(y)
p(s
k1
= s
, s
k
= s, y)/p(y)
_
_
_
_
(1)
unde
s
k
S este starea codicatorului la momentul k,
S
+
este mult imea perechilor (ordonate) (s
) (s
k
= s) generate de u
k
= +1,
20.2. TURBO - CODURI 237
S
, s, y).
In [2], este construita o variant a sub forma
p(s
, s, y) =
k1
(s
)
k
(s
, s)
k
(s) (2)
unde:
k
(s
, s) = p(s
k
= s, y
k
|s
k1
= s
);
k
(s) = p(s
k
= s, y
k
1
) este calculat recursiv cu formula
k
(s) =
k1
(s
)
k
(s
, s)
cu condit iile init iale
0
(0) = 1,
0
(s = 0) = 0
(codicatorul pleaca din starea 0).
k
(s) = p(y
N
k+1
|s
k
= s) are formula recursiva de calcul
k1
(s
) =
sS
k
(s)
k
(s
, s)
si condit iile
N
(0) = 1,
N
(s = 0) = 0
(dupa N bit i de intrare codicatorul trebuie sa ajunga la starea 0; restrict ia
se realizeaza alegand corespunzator ultimii m bit i, numit i bit i de ncheiere).
Aplicarea acestei variante de decodicare la turbo - coduri (reamintim, algoritmul
BCJR init ial a fost denit n 1974) are un neajuns: simplicarea cu p(y) conduce la
algoritmi numerici instabili. De aceea, Berrou ([12]) face o modicare a algoritmului,
n felul urmator:
Se denesc probabilitat ile (modicate)
k
(s) =
k
(s)/p(y
k
1
),
k
(s) =
k
(s)/p(y
N
k+1
|y
N
1
).
Prin mpart irea relat iei (2) cu p(y)/p(y
k
) = p(y
k1
1
) p(y
N
k+1
|y
k
1
) se ajunge la
p(s
, s|y) p(y
k
) =
k1
(s
)
k
(s
, s)
k
(s).
Pentru ca p(y
k
1
) =
sS
k
(s), valorile
k
(s) se pot determina din
k
(s) pe baza
formulei
k
(s) =
k
(s)
sS
k
(s)
,
sau folosind denit ia recursiva a lui
k
(s):
k
(s) =
k1
(s
)
k
(s
, s)
sS
k1
(s
)
k
(s
, s)
=
S
k1
(s
)
k
(s
, s)
sS
S
k1
(s
)
k
(s
, s)
ultimul rezultat ind obt inut prin mp art irea numar atorului si numitorului cu
p(y
k1
1
).
Denirea recursiva a lui
k
(s) se obt ine plecand de la
p(y
N
k
|y
k1
1
) = p(y
k
1
)
p(y
N
k+1
|y
k
1
)
p(y
k1
1
=
sS
k1
(s
)
k
(s
, s)
p(y
N
k+1
|y
k
1
)
p(y
k1
1
)
=
sS
S
k1
(s
k
(s
, s) p(y
N
k+1
|y
k
1
)
si folosind denit ia recursiva a lui
k1
(s), se ajunge la relat ia
238 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
k1
(s
) =
sS
k
(s)
k
(s
, s)
sS
S
k1
(s
)
k
(s
, s)
.
S
+
k1
(s
)
k
(s
, s)
k
(s)
k1
(s
)
k
(s
, s)
k
(s)
_
_
_
_
. (3)
Condit iile la limita pentru
k
(s) si
k
(s) sunt cele de la
k
(s) respectiv
k
(s).
O alta versiune a algoritmului foloseste informat ia apriori. Pentru acesta avem
L(u
k
) = log
_
P(y|u
k
= +1)
P(y|u
k
= 1)
_
+log
_
P(u
k
= +1)
P(u
k
= 1)
_
.
Deoarece n mod normal P(u
k
= +1) = P(u
k
= 1), al doilea termen al sumei
este zero n decodicatoarele uzuale. Pentru un turbo - decodor care lucreaza re-
cursiv, D
1
primeste informat ie suplimentar a de la D
2
, care serveste ca informat ie
apriori. Similar, D
2
primeste de la D
1
informat ie suplimentar a, s.a.m.d. Ideea
consta n faptul ca D
2
poate da lui D
1
informat ii despre u
k
la care acesta nu are
acces (de exemplu caracterele de control generate de E
2
); acelasi lucru l realizeaza
D
1
pentru D
2
.
Un circuit de decodicare bazat pe algoritmul BCJR este:
D
1
P
1
N
P
1
N
P
1
N
D
2
E
E
E E E
T
' '
c
c E
s
E
T
E
E
T
y
1p
y
s
y
2p
L
e
12
L
e
21
S-a notat cu P
1
N
inversa matricii de permutare P
N
din circuitul de codicare. L
e
12
este informat ia suplimentar a transmisa de la D
1
la D
2
, iar L
e
21
este cea transmisa de
la D
2
la D
1
. Deciziile nale de decodicare pot veni atat de la D
1
cat si de la D
2
.
Mai ramane de vazut cum se poate obt ine aceasta informat ie suplimentara care
circula ntre cei doi decodicatori recursivi.
Denit ia lui
k
(s
, s) se poate rescrie
k
(s
, s) = P(s|s
)p(y
k
|s
, s) = P(u
k
) p(y
k
|u
k
)
unde evenimentul u
k
corespunde tranzit iei s
s. Daca se noteaza:
L
e
(u
k
) = log
_
P(u
k
= +1)
P(u
k
= 1)
_
,
P
+
= P(u
k
= +1), P
= P(u
k
= 1), avem
_
_
_
P
/P
+
1 + P
/P
+
_
_
_
P
+
/P
= P
+
daca u
k
= +1,
_
_
_
P
/P
+
1 + P
/P
+
_
_
_
P
/P
+
= P
daca u
k
= 1.
(y
s
k
u
k
)
2
2
2
(y
p
k
x
p
k
)
2
2
2
_
=
= exp
_
(y
s
k
)
2
+u
2
k
+ (y
p
k
)
2
+ (x
p
k
)
2
2
2
_
exp
_
u
k
y
s
k
+x
p
k
y
p
k
2
_
=
= B
k
exp
_
y
s
k
u
k
+y
p
k
x
p
k
2
_
deci
k
(s
, s) A
k
B
k
exp [u
k
L
e
(u
k
)/2] exp
_
u
k
y
s
k
+x
p
k
y
p
k
2
_
(4)
Deoarece
k
(s
k
(s
, s) exp [u
k
(L
e
(u
k
) +L
c
y
s
k
)/2 +L
c
y
p
k
x
p
k
/2] =
= exp [u
k
(L
e
(u
k
) +L
c
y
s
k
)/2]
e
k
(s
, s),
unde L
c
=
4E
c
N
0
si
e
k
(s
, s) = exp [L
c
y
p
k
x
p
k
/2].
Combinand aceasta relat ie cu (3) se ajunge la
L(u
k
) = log
_
_
_
_
S
+
k1
(s
)
e
k
(s
, s)
k
(s) C
k
k1
(s
)
e
k
(s
, s)
k
(s) C
k
_
_
_
_
=
= L
c
y
s
k
+L
e
(u
k
) + log
_
_
_
_
S
+
k1
(s
)
e
k
(s
, s)
k
(s)
k1
(s
)
e
k
(s
, s)
k
(s)
_
_
_
_
(5)
unde s-a notat C
k
= exp [u
k
(L
e
(u
k
) + L
c
y
s
k
)/2].
A doua egalitate rezulta deoarece C
k
(u
k
= +1) si C
k
(u
k
= 1) pot scoase ca
factor. Primul termen al sumei (5) este numit valoare de canal, al doilea reprezinta
informat ia apriori despre u
k
(furnizata de un decodicator anterior), iar al treilea
termen cont ine informat ia suplimentara care se trimite la decodicatorul urmator.
Deci de exemplu la orice iterat ie, D
1
calculeaza
L
1
(u
k
) = L
c
y
s
k
+L
e
21
(u
k
) +L
e
12
(u
k
)
unde L
e
21
(u
k
) este informat ia suplimentar a venit a de la D
2
si L
e
12
(u
k
) este al treilea
termen din (5), folosit ca o informat ie suplimentara trecuta de la D
1
spre D
2
.
Algoritmul BCJR se poate formaliza, n unele ipoteze implicite. Astfel:
- se presupune ca cei doi codicatori lucreaza corect, adica ultimii m bit i din
mesajul de informat ie de lungime N se codica astfel ca la sfarsit E
1
sa ajunga la
starea zero.
- decodicatorii det in toata informat ia referitoare la ret eaua de codicare; ast-
fel, ei au tabele complete cu simbolurile de informat ie si de control pentru toate
tranzit iile de stari s
(1)
N
(s) :=
_
1 pentru s = 0
0 pentru s = 0
L
e
21
(u
k
) := 0, k = 1, 2, . . . , N
D
2
:
(2)
0
(s) :=
_
1 pentru s = 0
0 pentru s = 0
,
(2)
N
(s) :=
(2)
N
(s), s.
L
e
12
(u
k
) se determina din D
1
dupa prima trecere, deci nu se init ializeaz a.
2. (A n-a iterat ie):
D
1
: pentru k = 1, 2, . . . , N
- Se determina y
k
:= y
s
k
y
1p
k
unde y
1p
k
sunt bit ii de control recept ionat i pentru
E
1
(posibil perturbat i de canal);
- Se determina
k
(s
s;
- Se determina
(1)
k
(s), s.
pentru k = N, N 1, . . . , 2 se determina
(1)
k1
(s), s;
pentru k = 1, 2, . . . , N se determina L
e
12
(u
k
) cu valorile de probabilitat i
asociate lui D
1
.
D
2
: pentru k = 1, 2, . . . , N
- Se determina y
k
:= y
s
P
N
[k]
y
2p
k
;
- Se determina
k
(s
s;
- Se determina
(2)
k
(s), s;
pentru k = N, N 1, . . . , 2 se determina
(2)
k1
(s), s;
pentru k = 1, 2, . . . N se determina L
e
21
(u
k
) cu valorile de probabilitati
asociate lui D
2
;
3. (Dupa ultima iterat ie):
Pentru k = 1, 2, . . . , N
- Se determina L
1
(u
k
) := L
c
y
s
k
+L
e
21
(u
P
1
N
[k]
) + L
e
12
(u
k
);
- Daca L
1
(u
k
) > 0 atunci u
k
:= +1 altfel u
k
:= 1;
4. Stop.
20.3 Exercit ii
20.1 Demonstrat i Propozit ia 20.1.
20.2 Demonstrat i Propozit ia 20.2, (3).
20.3 Calculat i w
(2)
, w
(10)
si w
(16)
pentru numerele 100, 32412, 999, 1024.
20.4 Fie x Z. Un cod Booth este o reprezentare x =
i=0
c
i
3
i
unde c
i
{1, 0, 1}.
1. Sa se reprezinte n codul Booth numerele 23, 455, 81, 6493;
2. Sa se arate ca pentru orice numar ntreg, codul Booth este unic.
20.5 Determinat i AN - codurile ciclice din Z
2
3
1
si Z
3
3
1
.
Stabilit i valorile a si b pentru ecare din ele.
20.3. EXERCIT II 241
20.6 Generalizat i Exemplul 20.3. Gasit i un AN - cod ciclic perfect corector de o
eroare pentru r = 3.
20.7 Scriet i n forma NAF pentru r = 2, r = 10 si r = 7 numerele
15, 32075, 5665, 992.
20.8 Completat i demonstrat ia Teoremei 20.2, vericand unicitatea re-prezentarii
NAF n cazurile c
1
= c
1
+ 1 si c
1
= c
1
+ 1 +r.
20.9
In denit ia reprezentarii NAF a numarului ntreg x (cu completarea n
0
=
1), sa se arate ca
n
x
k |x| <
r
k+2
r + 1
.
20.10 Consideram reprezentarea ternara modulo 3
6
1. Sa se determine forma
CNAF pentru numarul 455.
20.11 Determinat i cuvintele - cod din codul Mandelbaum - Barrows cu b = 11, r =
3, n = 5.
20.12 Fie g
0
(X) = 1 +X +X
3
, g
1
(X) = 1 +X
2
+X
4
+X
5
din Z
2
[X]. Construit i
circuitul liniar pentru codicatorul RSE.
Codicat i mesajele de informat ie 1 +X
2
+X
3
, 1 +X
7
, X +X
4
+X
5
.
20.13 Aceeasi problema pentru polinoamele g
0
(X) = 1 + X
3
+ X
4
, g
1
(X) = X +
X
3
+X
6
.
20.14 Sa se construiasca un turbo-codicator folosind codicatoarele RSE din Ex-
emplul 20.7, N = 3, matricea de comutat ie P
3
=
_
_
_
1 0 0
0 0 1
0 1 0
_
_
_ si fara mecanism de
relaxare.
Sa se codice mesajul de informat ie 100 011 101.
242 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Bibliograe
[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;
[2] L. Bahl, J. Cocker, F. Jelinek, J. Raviv - Optimal decoding of linear codes for
minimizing symbol error rate, IEEE Trans. Inf. Theory, pp. 284-287, Martie
1974;
[3] M. Blaum - A (16, 9, 6, 5, 4) error correcting dc-free block code, IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[4] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza de
doctorat), PARIS VI, 1990;
[5] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;
[6] S. Guiasu - Teoria Codurilor, Tipograa Universitat ii Bucuresti, 1976;
[7] D.G. Homan, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;
[8] B. Honary, G. Markarian - Trellis Decoding of Block Codes, A Parctical Ap-
proach, Kluwer Academic Publ., 1997;
[9] A. M. Kerdok - A class of low-rate non linear codes, Information and control,
20 (1972), 182-187;
[10] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;
[11] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
[12] W.E.Ryan - A Turbo Code Tutorial, IEEE Trans. Comm. pp. 1261-1271, Oct.
1996;
243
Prelegerea 1
Semnaturi electronice
1.1 Considerat ii generale
Vom lua n discut ie n aceasta sect iune not iunea de semnatura electronica (ntr-un mediu de
calcul) precum si diverse modalitat i de utilizare ale ei.
Orice semnatura pe un document autentic a acest document dar si angajeaza n mod nor-
mal responsabilitatea semnatarului. Probleme practice legate de rapiditatea transmiterii unor
documente care sa e certicate ca autentice prin semnatura au condus la necesitatea creerii
de semnaturi electronice.
De exemplu, se stie ca majoritatea operat iunilor si tranzact iilor bancare devin legal valide
numai dupa ce ambele part i au semnat formularele respective. Totusi, daca part ile sunt legate
ntr-o ret ea de calculatoare, ele vor adesea sa faciliteze aceasta operat ie care provoac a un mare
consum de timp; solicita de aceea posibilitatea de a semna documentele folosind terminalele si
ret eaua aata la dispozit ie.
Deci, apare urmatoarea problema:
Cum se poate crea o semnatura ntr-un mediu de calcul ?
Deoarece calculatoarele accepta informat ia numai n forma digitala, orice semnatura pusa
n discut ie trebuie sa aiba aceasta forma. O semnatur a (electronica sau olografa) trebuie sa
satisfaca urmatoarele condit ii:
Unica: o anumita semnatura trebuie sa poata generata numai de o singura persoana;
Neimitabila: nici o alta persoana nu va putea genera semnatura utilizatorului indicat;
altfel spus, utilizatorii ilegali trebuie sa rezolve probleme NP complete daca vor sa
foloseasca o semnatura care nu le apart ine;
Usor de autenticat: orice destinatar legal si orice arbitru (n cazul unor eventuale
dispute) sa poata stabili autenticitatea semnaturii (indiferent dupa ce interval de timp);
Imposibil de negat: nici un utilizator legal sa nu-si poata nega propria semnatur a, sub
armat ia ca nu este autentica;
Usor de generat.
Trebuie facut a totusi distinct ie ntre semnatura olografa si cea digitala.
Iata cateva diferent e notabile ntre cele doua tipuri de semnaturi:
1
2 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
O semnatura scrisa de mana este o conrmare zica a unui document, cu ajutorul unei foi
de hartie care cont ine doua elemente: un mesaj (textul docu-mentului) si o semnatur a.
O astfel de legatura ntre mesaje si semnaturi nu este posibila ntr-un mediu de calcul;
O semnatura olografa este aceeasi indiferent de document. Pentru semnaturile digitale
ns a, este esent ial ca ele sa depinda atat de semnatar cat si de cont inu-tul documentului;
Orice copie a unui document electronic (inclusiv semnatura) este identic a cu originalul.
In schimb copia unui document pe hartie este diferita ca valoare de original. Aceasta
conduce la ideea ca un document electronic nu este reutili-zabil. De exemplu, daca Bob
trimite lui Alice un cec n valoare de 10 milioane lei, banca nu va accepta onorarea sa
decat o singura data.
1.2 Protocoale de semnatura
Orice protocol de semnatura este format dintr-un algoritm de semnatura si un algoritm de
vericare. Bob semneaza un mesaj x bazat pe un algoritm (secret) de semnatura sig. Rezultatul
sig(x) este apoi vericat de un algoritm public de vericare ver. Pentru orice pereche (x, y),
algoritmul de vericare ofera un raspuns dicotomic (adevarat sau fals), dupa cum y este o
semnatur a autentica a lui x sau nu. Formal ([8]):
Denit ia 1.1 Un protocol de semnatura este un cvintuplu (P, A, K, S, V) unde:
1. P, A, K sunt mult imi nite, nevide, ale caror elemente se numesc mesaje, semnaturi
si respectiv chei;
2. Exista o aplicat ie biunivoca ntre Ksi SV; anume, pentru ecare K K exista o pereche
unica (sig
K
, ver
K
) unde sig
K
: P A, ver
K
: P A {T, F} au proprietatea:
x P, y A, ver
K
(x, y) = T y = sig
K
(x)
Pentru ecare K K, funct iile sig
K
si ver
K
trebuie sa e calculabile n timp polinomial;
ver
K
este publica iar sig
K
este secreta. Pentru Oscar, imitarea unei semnaturi a lui Bob pentru
un mesaj x trebuie sa e imposibila (din punct de vedere al complexitat ii calculului). Altfel
spus, pentru un x dat, numai Bob este capabil sa calculeze o semnatura y astfel ca ver(x, y) = T.
Binent eles, nici un protocol de semnatur a nu este absolut sigur, deoarece Oscar poate
ncerca folosind funct ia publica de vericare ver toate semnaturile y posibile ale unui mesaj
x, pana va gasi semnatura corecta.
Deci, daca ar dispune de sucient timp, Oscar poate totdeauna sa contrafaca semnatura
lui Bob.
Exemplul 1.1 Un prim exemplu de semnatura este folosirea n acest scop a sistemului de
criptare RSA. Se denesc
P = A = Z
n
, K = {(n, p, q, a, b) | n = pq, p, q prime, ab 1 (mod (n))}.
n si b sunt publice, p, q, a sunt secrete.
Pentru K = (n, p, q, a, b) se denesc:
sig
K
(x) = x
a
(mod n)
ver
K
(x, y) = T x y
b
(mod n)
1.3. SEMN
ATURA EL GAMAL 3
Aici Bob semneaza un mesaj folosind cheia sa de decriptare din sistemul de criptare RSA; el
este singurul capabil sa genereze o semnatura corecta deoarece d
K
= sig
K
este secreta. Funct ia
de vericare utilizeaza funct ia de criptare e
K
care este publica, deci oricine o poate verica.
De remarcat ca oricine poate genera o semnatura a lui Bob pentru un mesaj aleator x; Oscar
poate alege un y si calculeaza x = e
k
(y); atunci y = sig
K
(x).
Acest lucru poate prevenit folosind mesaje x cu sucient de mult a redondant a (cu anumita
semnicat ie). O alta modalitate de a evita acest atac este folosirea unor funct ii de dispersie
(hash); vom studia aceasta maniera n prelegerea urmatoare.
Sa vedem cum pot combinate procedeele de semnatura si criptare. Presupunem ca Alice
doreste sa trimita lui Bob un mesaj criptat si semnat. Pentru un text clar x dat, Alice determina
semnatura y = sig
Alice
(x), dupa care cifreaza x si y folosind cheia publica a lui Bob : z =
e
Bob
((x, y)).
Textul criptat z este transmis lui Bob. Acesta foloseste cheia sa secreta d
Bob
si obt ine (x, y).
Dupa aceasta, verica semnatura lui Alice cu ajutorul cheii publice ver
Alice
(x, y).
Ce se nt ampla daca Alice cripteaza nainte de a semna ? Ea va calcula z = e
Bob
(x), y =
sig
Alice
(e
Bob
(x)) si va trimite lui Bob mesajul (z, y). Acesta decripteaza z, obt ine x si verica
y ca semnatur a a lui z.
Pericolul consta n faptul ca Oscar poate intercepta (z, y), nlocuieste y cu propria sa
semnatur a y
).
Din acest motiv se recomanda folosirea semnaturii nainte de criptare.
1.3 Semnatura El Gamal
Fie p un num ar prim (pentru care problema logaritmilor discret i n Z
p
este dicila) si
Z
p
= Z
p
\ {0} un element primitiv. Se ia:
P = Z
p
, A = Z
p
Z
p1
, K = {(p, , a, ) | =
a
(mod p)}.
Valorile p, , sunt publice iar a este secret.
Pentru K = (p, , a, ), k Z
p1
(secret) se deneste:
sig
K
(x, k) = (, ) unde
=
k
(mod p), = (x a)k
1
(mod p 1).
Pentru x, Z
p
, Z
p1
se deneste
ver
K
(x, , ) = T
x
(mod p)
Daca semnatura este corecta, vericarea autentic a semnatura, deoarece:
k
(mod p)
x
(mod p)
(s-a folosit egalitatea a + k x (mod p 1)).
Protocolul de semnatur a El Gamal a fost denit n 1985 ([4]). Ca o particularitate, el nu este
determinist: pentru un mesaj dat pot exista mai multe semnaturi valide. Funct ia de vericare
va trebui deci sa accepte ca autentice toate aceste semnaturi.
4 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
Protocolul de semnatur a ElGamal este descris pe pagina anterioar a.
Bob calculeaza semnatura folosind cheia sa secreta a si o valoare aleatoare secreta k (generata
numai pentru semnarea mesajului x). Vericarea se realizeaza cu ajutorul cheii publice.
Exemplul 1.2 : Sa luam p = 467, = 2, a = 127. Avem
=
a
(mod p) = 2
127
(mod 467) = 132.
Daca Bob doreste sa semneze mesajul x = 100 alegand valoarea k = 213 (de remarcat ca
(213, 466) = 1 si 213
1
(mod 466) = 431), va obt ine
= 2
213
(mod 467) = 29 si = (100 127 29) 431 (mod 466) = 51.
Pentru a verica semnatura, calculam
132
29
29
51
189 (mod 467) si 2
100
189 (mod 467).
Semnatura este deci valida.
Sa studiem securitatea protocolului de semnatura El Gamal.
Vom presupune ca Oscar doreste sa falsice semnatura pe mesajul x fara sa stie a.
Daca Oscar alege valoarea si ncearca sa gaseasca corespunzator, el va trebui sa
calculeze logaritmul discret log
x
(mod p) de necunoscuta .
Nu se cunoaste nca o metoda pentru rezolvarea unei astfel de probleme.
Daca Oscar alege aleator si pe si cauta sa obt ina x, el va ajunge din nou la problema
logaritmului discret, adica la calculul log
.
Oscar poate totusi sa semneze un mesaj aleator x n felul urmator:
Fie numerele ntregi i, j (0 i p 2, 0 j p 2, (j, p 1) = 1).
Se efectueaza calculele:
=
i
j
(mod p); = j
1
(mod p 1); x = ij
1
(mod p 1)
(deoarece calculele sunt facute modulo p 1, exista j
1
).
(, ) este o semnatura valid a pentru x.
Intr-adevar, se verica
j
(
i
j
)
j
j
1
ij
1
j
ij
1
j
ij
1
x
(toate calculele sunt facute modulo p).
Sa exemplicam acest atac:
Exemplul 1.3 Fie din nou p = 467, = 2, = 132. Sa presupunem ca Oscar alege
i = 99, j = 179 ( deci j
1
= 151 (mod p 1)); Oscar calculeaza:
= 2
99
132
179
= 117 (mod 467)
= 117 151 = 41 (mod 466)
x = 99 41 = 331 (mod 466)
Deci (117, 41) este o semnatura a mesajului 331, ceea ce se poate verica imediat, calculand
132
117
117
41
303 (mod 467) si 2
331
303 (mod 467).
Semnatura este deci valida.
Sa mai arat am o modalitate prin care Oscar poate utiliza un mesaj semnat anterior de Bob.
Sa presupunem ca (, ) este o semnatur a valida a lui x. Oscar poate semna atunci alte tipuri
de mesaje:
Fie h, i, j numere ntregi din intervalul [0, p 2] cu (h j, p 1) = 1.
1.4. VARIANTE ALE PROTOCOLULUI DE SEMN
ATUR
A ELGAMAL 5
Calculam:
l =
h
j
(mod p), y = l(h j)
1
(mod p 1),
x
= l(hx + i)(h j)
1
(mod p 1)
unde (h j)
1
este calculat modulo p 1. Se poate atunci verica direct
l
l
y
.
Aceste doua strategii construiesc semnaturi valide, dar se pare ca nu este posibil ca cineva
sa contrafac a semnatura unui mesaj ales de el, fara sa rezolve o problema de logaritmi discret i.
Din acest motiv se considera ca nu exista slabiciuni n protocolul de semnatura El Gamal.
Sa arat am n nal doua maniere de a sparge acest protocol de semnatur a, atunci cand este
aplicat neglijent.
Daca ntregul aleator k este cunoscut, se determina imediat
a = (x k)
1
mod (p 1)
Din acest moment, Oscar, stiind a, poate calcula semnaturile la fel ca Bob.
Daca se utilizeaza acelasi k pentru mai multe mesaje. Aceasta i permite de asemenea lui
Oscar sa determine a. El va proceda astfel:
Fie (,
i
) semnaturile mesajelor x
i
, i = 1, 2. Avem:
i
x
i
(mod p), i = 1, 2, deci
x
2
x
1
1
(mod p).
Inlocuind =
k
se obt ine ecuat ia de necunoscuta k:
x
2
x
1
k(
2
1
)
(mod p),
care este echivalent a cu x
2
x
1
k(
2
1
) (mod p 1).
Daca se ia d = (
2
1
, p 1), din d | (p 1) si d | (
2
1
) rezulta d | (x
2
x
1
).
Daca notam:
x
=
x
2
x
1
d
=
2
1
d
p
=
p 1
d
ecuat ia devine x
, p
) = 1, se poate determina = (
)
1
(mod p
).
Valoarea lui k verica deci relat ia k x
+ ip
In general, un mesaj este criptat si decriptat o singura data, ind necesara doar securitatea
sistemului de criptare.
In schimb, un document semnat cum ar un contract are o valoare
juridica, si este posibil ca autenticitatea sa sa e vericata chiar si dupa mai mult i ani. Este deci
important sa existe criterii de securitate mai severe pentru semnatura electronica decat pentru
criptare. Cum sigurant a protocolului de semnatura ElGamal este echivalenta cu complexitatea
problemei logaritmilor discret i, este necesar sa se foloseasca un modul p cat mai mare. Un p
de 1024 bit i conduce ns a la o semnatura ElGamal de 2048 bit i, ceea ce o elimina din multe
aplicat ii (cum ar exemplu smart-cardurile).
6 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
1.4.1 Standard de semnatura electronica
Standardul de semnatur a electronica (DSS de la Digital Signature Standard) este o variant a a
protocolului de semnatur a ElGamal, cu proprietatea ca reduce substant ial lungimea semnaturii.
Protocolul de semnatur a DSS este urmatorul:
Fie p un num ar prim de 512 bit i, q un factor de 160 bit i ai lui p 1 si Z
p
o rad acin a
primitiva de ordin q a unitat ii.
Fie P = Z
p
, A = Z
q
Z
q
si K = {(p, q, , a, ) |
a
(mod p)}.
Valorile p, q, , sunt publice, iar a este secreta.
Pentru K = (p, q, , a, ) si pentru un num ar (secret) k (1 k q 1) se denesc:
sig
K
(x, k) = (, ) unde
= (
k
mod p) mod q = (x + a)k
1
mod q
Pentru x Z
p
, , Z
q
funct ia de vericare este denita
ver
K
(x, , ) = T (
e
1
e
2
mod p) mod q =
unde e
1
= x
1
(mod q) e
2
=
1
(mod q)
Diferent e ntre protocoalele de semnatura El Gamal si DSS:
a. DSS se distinge n primul rand de El Gamal prin faptul ca asigura o semnatur a de 320
bit i pe un mesaj de 160 bit i, lucrandn Z
p
cu p de 512 bit i. Aceasta permite lucrul ntr-un
corp cu circa 2
160
elemente. Ipoteza este aceea ca n aceasta baza, calculul logaritmilor
discret i este foarte dicil.
b.
In denirea lui semnul s-a schimbat n +. Aceasta schimba ecuat ia de vericare n:
mod p.
Daca (x + , p 1) = 1, atunci exista
1
mod (p 1) si aceasta ecuat ie se poate scrie
x
1
1
(mod p).
c. (idee a lui Schnorr). Sa presupunem ca q este un num ar de 160 bit i astfel nc at q | (p1) si
Z
p
este o rad acina primitiva de ordinul q a unitatii modulo p (pentru a gasi un astfel
de num ar, se ia o rad acina primitiva
0
Z
p
si se construieste =
(p1)/q
0
(mod p)).
In
acest fel, si sunt de asemenea rad acini de ordinul q ale unitat ii. Deci exponent ii lui
, , se pot reduce modulo q, fara a modica ecuat ia de vericare de mai sus.
Algoritmul de Schnorr foloseste si o funct ie de dispersie h : {0, 1}
Z
q
(a se vedea
prelegerea urmatoare), pe baza careia deneste componentele semnaturii astfel:
= h(x
k
), = k + (mod q)
Pentru x {0, 1}
si , Z
q
, procedura de vericare este
ver
K
(x, (, )) = T h(x
) =
Relat ia de vericare este adevarata deoarece se obt ine imediat
=
k
(mod p)
Exemplul 1.4 Fie q = 101, p = 78q + 1 = 7879. 3 este radacina primitiva n Z
7879
, deci se
poate lua = 3
78
(mod 7879) = 170.
Daca alegem de exemplu a = 75, obt inem =
a
(mod 7879) = 4567.
1.4. VARIANTE ALE PROTOCOLULUI DE SEMN
ATUR
A ELGAMAL 7
Sa presupunem ca Bob doreste sa semneze mesajul x = 1234 si ia k = 50 (deci
k
1
(mod 101) = 99); el va avea:
= (170
50
mod 7879) mod 101 = 2518 (mod 101) = 94
= (1234 + 75 94) 99 (mod 101) = 97
Semnatura (94, 97) a mesajului 1234 se verica prin calcul:
1
= 97
1
(mod 1010 = 25, e
1
= 1234 25 (mod 1010 = 45, e
2
= 94 25 (mod 101) = 27
(170
45
4567
27
mod 7879) mod 101 = 2518 mod 101 = 94
Semnatura este deci valida.
In varianta Schnorr trebuie calculata valoarea h(12342518) unde h este o funct ie de dis-
persie, iar 1234 si 2518 sunt reprezentate n binar. Pentru a nu intra n detalii, sa presupunem
ca h(12342518) = 96. Atunci
= 50 + 75 96 (mod 101) = 79
si semnatura este (96, 79).
Ea este vericata calculand 170
79
4567
96
(mod 7879) = 2518 si vericand h(12342518) = 96.
O alta varianta a protocolului DSS este protocolul de semnatur a DSA (Digital Signature
Algorithm). Acesta a fost propus n 1991 si adoptat ca standard de semnatur a la 1 decembrie
1994 (dupa publicarea sa n Registrul Federal la 19 mai 1994). Singura modicare fat a de DSS
consta n nlocuirea mesajului x (din calculul lui si al lui e
1
) cu SHA1(x), unde SHA1
este o funct ie de dispersie standard.
Exemplul 1.5 Sa reluam valorile lui p, q, , a, , k din Exemplul 1.4 si sa presupunem ca Alice
vrea sa semneze amprenta SHA 1(x) = 22. Ea va calcula
k
1
(mod 1010 = 50
1
(mod 1010 = 99,
= (170
50
(mod 7879)) (mod 1010 = 2518 (mod 101) = 94 si
= (22 + 75 94) 99 (mod 101) = 97.
Semnatura (94, 97) a amprentei 22 este vericata efectuand calculele;
1
= 97
1
(mod 1010 = 25,
e
1
= 22 25 (mod 101) = 45, e
2
= 94 25 (mod 101) = 27
si vericand ca 170
45
4567
27
(mod 7879) (mod 101) = 2518 (mod 101) = 94.
Cand DSS a fost propus n 1991, a avut mai multe critici. Astfel:
Mult i s-au aratat nemult umit i de impunerea marimii de 512 bit i pentru modul; o marime
variabila care sa e aleasa de beneciari n funct ie de necesitat i ar fost mai convenabila.
Ca raspuns, NIST a schimbat descrierea standardului pentru a permite alegerea ca modul
a oricarui num ar divizibil cu 64 avand ntre 512 si 1024 bit i.
In octombrie 2001 NIST
revine si recomanda alegerea pentru p a unui numar prim de 1024 bit i.
Semnaturile pot mult mai usor generate decat vericate. Pentru comparat ie, n sistemul
RSA un exponent mic de decriptare poate conduce la un protocol de vericare mult mai
rapid decat semnatura. Obiect ia este ridicata din considerente practice, anume:
Un mesaj este semnat o singura data, dar poate vericat de foarte multe ori de-a
lungul timpului.
Pe ce tipuri de calculatoare sunt efectuate aceste protocoale de semnatur a si/sau
vericare ? Cea mai mare parte a aplicat iilor folosesc calculatoare de birou, cu
resurse limitate, care comunica cu sisteme puternice de calcul. Trebuie dezvoltat
deci un protocol care sa oblige calculatorul de birou la cat mai put ine calcule.
8 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
Raspunsul dat de NIST la aceasta obiect ie a fost ca este foarte put in important ce calcul
este mai simplu, av and n vedere sistemele actuale de calcul, tot mai performante.
1.4.2 Protocolul de semnatura ECDSA
In 2000 protocolul ECDSA (Elliptic Curve Digital Signature Algorithm) a fost aprobat sub
numele FIPS 186 2. Si el este o variant a a protocolului ElGamal, construit pentru funct ii
eliptice. Sa prezent am o descriere a sa:
Fie p un numar prim sau o putere a lui 2 si E o curba eliptica peste Z
p
. Fie A un punct
din E de ordin q (num ar prim) astfel ca Problema Logaritmului discret pentru A sa e
dicila. Fie
P= {0, 1}
, A= Z
1
Z
q
, K= {(p, q, E, A, m, B) | B = mA},
unde m Z
q1
. Valorile p, q, E, A, B sunt publice, m este cheia secreta.
Pentru K = (p, q, E, A, m, B) si k Z
q
ales aleator, denim
sig
K
(x, k) = (r, s)
unde
kA = (u, v), r = u (mod q), s = k
1
(SHA
1
(x) + mr) (mod q).
(daca r s = 0 se alege alta valoare aleatoare pentru k).
Pentru x {0, 1}
, r, s Z
q
vericarea este denita prin
w = s
1
(mod q), i = w SHA
1
(x) (mod q),
j = w r (mod q), (u, v) = iA + jB si
ver
K
(x, (r, s)) = T u (mod q) = r
Exemplul 1.6 Sa consideram curba eliptica y
2
= x
3
+ x + 6 denita peste Z
11
. Alegem
parametrii protocolului de semnatura astfel: p = 11, q = 13, A = (2, 7), m = 7 si B = (7, 2).
(a se vedea si exemplul din prelegerea anterioara).
Sa presupunem ca avem un mesaj x cu SHA
1
(x) = 4 si Alice vrea sa-l semneze folosind
valoarea aleatoare k = 3. Ea va calcula
(u, v) = 3 (2, 7) = (8, 3), r = u (mod 13) = 8 si s = 3
1
(4 + 7 8) (mod 13) = 7.
Deci semnatura este (8, 7).
Bob verica aceasta semnatura efectuand urmatoarele calcule:
w = 7
1
(mod 13) = 2, i = 2 4 (mod 13) = 8, j = 2 8 (mod 13) = 3,
(u, v) = 8A + 3B = (8, 3) si u (mod 13) = 8 = r.
Deci semnatura este valida.
1.5. PROTOCOALE DE SEMN
ATUR
A ONE-TIME 9
1.5 Protocoale de semnatura One-time
Ideea acestor protocoale se bazeaza pe faptul ca funct ia care asigura semnatura este folosita
pentru a semna un singur document, dupa care ea este abandonata (cu toate ca poate
vericat a de un numar arbitrar de ori).
Poate cel mai cunoscut astfel de procedeu este Protocolul de semnatura Lamport:
Fie k > 0 un numar ntreg si P = {0, 1}
k
. Daca f : Y Z este o funct ie neinversabil a,
se alege A = Y
k
. Se selecteaza aleator y
i,j
Y, 1 i k, j = 0, 1 si e z
i,j
= f(y
i,j
).
Cheia K este lista celor 2k valori y (secrete) si a celor 2k valori z (publice).
Pentru K = {(y
i,j
, z
i,j
) | 1 i k, j = 0, 1} se deneste:
sig
K
(x
1
, . . . , x
k
) = (y
1,x
1
, . . . , y
k,x
k
)
si
ver
K
(x
1
, . . . , x
k
, a
1
, . . . , a
k
) = T f(a
i
) = z
i,x
i
, 1 i k.
Conform acestui protocol, mesajul care trebuie semnat este un sir binar de lungime k.
Fiecare bit, de valoare j (j = 0, 1) este semnat prin z
i,j
, unde ecare z
i,j
este imaginea printr-o
funct ie neinversabil a a unui y
i,j
.
Vericarea consta n aplicarea lui f si compararea rezultatului cu cheia publica.
Exemplul 1.7 Fie 7879 un numar prim, iar 3 Z
7879
un element primitiv. Se deneste
f(x) = 3
x
mod 7879.
Daca Bob doreste sa semneze un mesaj de trei bit i, el alege (secret) sase numere aleatoare
y
1,0
= 5831 y
2,0
= 803 y
3,0
= 4285
y
1,1
= 735 y
2,1
= 2467 y
3,1
= 6449
Calculeaza apoi imaginea lor prin funct ia f:
z
1,0
= 2009 z
2,0
= 4672 z
3,0
= 268
z
1,1
= 3810 z
2,1
= 4721 z
3,1
= 5731
Aceste numere z sunt publice.
Sa presupunem ca Bob vrea sa semneze mesajul x = (1, 1, 0). Semnatura lui este
(y
1,1
, y
2,1
, y
3,0
) = (735, 2467, 4285)
Pentru a verica semnatura, este sucient sa se constate ca:
3
735
= 3810; 3
2467
= 4721; 3
4285
= 268,
toate calculele ind realizate modulo 7879.
Oscar nu poate imita semnatura, deoarece f nu are invers a.
In plus, protocolul de semnatur a nu poate utilizat decat pentru un singur mesaj: daca
dispune de doua mesaje cu aceeasi semnatura, Oscar poate imita semnatura unui nou mesaj
(diferit de cele doua).
De exemplu, daca mesajele (0, 1, 1) si (1, 0, 1) sunt semnate prin procedeul de sus cu
(y
1,0
, y
2,1
, y
3,1
) respectiv (y
1,1
, y
2,0
, y
3,1
), se pot imediat semna mesaje cum ar (1, 1, 1) sau
(0, 0, 1).
Desi foarte simplu si elegant, acest protocol nu este practic din cauza dimensiunii mari a
semnaturii. Reluand exemplul de mai sus, o implementare sigura necesita un modul p de 512
bit i. Aceasta nseamna ca ecare bit al mesajului are o semnatura de 512 bit i; avem deci o
semnatur a de 512 ori mai lunga decat mesajul !
De aceea a aparut o simplicare, care reduce lungimea semnaturii fara a diminua securitatea
ei. Numit Bos-Chaum, acest protocol este denit astfel:
10 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
Fie k > 0 un num ar ntreg si P = {0, 1}
k
. Daca n este un num ar ntreg cu proprietatea
2
k
C
n
2n
, e B mult imea numerelor ntregi din intervalul [1, 2n] si
: P B
o funct ie injectiva n mult imea B a part ilor lui B de n elemente.
Daca f : Y Z este o funct ie neinversabil a, e A = Y
n
.
Se aleg aleator valorile y
i
Y, 1 i 2n si e z
i
= f(y
i
).
Cheia K este lista celor 2n valori y (secrete) si a celor 2n valori z (publice).
Pentru K = {(y
i
, z
i
) | 1 i 2n}, se denesc
sig
K
(x
1
, . . . , x
k
) = {y
j
| j (x
1
, . . . x
k
)}
si
ver
K
(x
1
, . . . , x
k
, a
1
, . . . , a
n
) = T {f(a
i
) | 1 i n} = {z
j
| j (x
1
, . . . , x
k
)}
Avantajul protocolului Bos-Chaum este acela ca scurteaza semnatura. De exemplu, sa
presupunem ca vrem sa semnam un mesaj de sase bit i (k = 6); cum 2
6
= 64 si C
4
8
= 70,
putem lua n = 4. Aceasta permite semnarea mesajului cu numai patru valori y (n loc de
sase la Lamport). De asemenea, si cheia este mai scurta, cu numai opt valori z fat a de 12 la
semnatura Lamport.
Protocolul de semnatura Bos-Chaum necesita o funct ie injectiva care asociaza ecarei
secvent e de k bit i x = (x
1
, . . . , x
k
) o submult ime de n elemente. Un exemplu de algoritm
simplu care realizeaza o astfel de asociere este:
x
k
i=1
x
i
2
i1
(x)
t 2n
e n
while t > 0 do
t t 1
if x > C
e
t
then
x x C
e
t
e e 1
(x) (x) {t + 1}.
enddo
Daca vrem sa dam o estimare generala a valorii lui n din protocolul Bos-Chaum, plecam de
la inegalitatea 2
k
C
n
2n
n care se evalueaz a C
n
2n
=
(2n)!
(n!)
2
cu formula lui Stirling, obt inandu-se
2
2n
/
ATURI INCONTESTABILE 11
Semnatura nu poate validata far a aportul semnatarului Bob. Aceasta l protejeaza pe
Bob de difuzarea far a consimtam ant a unui document pe care se pretinde ca l-ar semnat.
Validarea se face urmand un protocol de ntreb ari si raspunsuri.
Pentru a evita ca Bob sa-si nege propria semnatur a, exista un protocol de dezmint ire pe
care Bob trebuie sa-l urmeze pentru a arata ca o semnatur a este falsa.
Refuzul de a folosi acest protocol este o conrmare a autenticit at ii semnaturii.
Deci, un protocol de semnatura incontestabil a este format dintr-o funct ie de semna-tur a, un
protocol de vericare si o procedura de dezmint ire.
Algoritmul Chaum-van Antwerpen este:
Fie p = 2q + 1 un num ar prim cu proprietatea ca q este prim si Z
p
un element de
ordin q. Pentru 1 a q 1, se deneste
a
mod p.
Fie G subgrupul de ordin q al lui Z
p
generat de .
Se denesc P = A = G, K = {(p, , a, ) |
a
(mod p)}.
Valorile p, , sunt publice iar a este secreta.
Pentru K = (p, , a, ), x G se deneste y = sig
K
(x) = x
a
mod p.
Pentru x, y G, protocolul de vericare se efectueaza astfel:
1. Alice alege aleator numerele e
1
, e
2
Z
q
;
2. Alice calculeaza c = y
e
1
e
2
mod p si-l trimite lui Bob;
3. Bob calculeaza d = c
a
1
mod q
mod p si-l trimite lui Alice;
4. Alice admite autenticitatea lui y daca si numai daca d x
e
1
e
2
mod p.
A. Sa explicam nt ai rolul lui p si q n acest protocol. Calculele sunt efectuate n Z
p
. Este
necesar totusi ca anumite calcule sa e facute ntr-un subgrup al sau de ordin prim (notat cu
G).
In particular este nevoie sa calculam inverse modulo q (ceea ce justica de ce q = card(G)
trebuie sa e prim). Alegand p = 2q + 1 cu q prim, se asigura acest deziderat si - n plus -
dimensiunea lui G este maxima, lucru de dorit deoarece mesajele de semnat sunt elemente din
G.
Sa aratam nt ai cum admite Alice autenticitatea semnaturilor valide.
In calculul de mai
jos, exponent ii sunt redusi modulo q.
d c
a
1
(mod p) y
e
1
a
1
e
2
a
1
(mod p).
Cum
a
(mod p), avem
a
1
(mod p).
De asemenea, din y = x
a
(mod p) rezulta y
a
1
x (mod p).
Se ajunge deci la d x
e
1
e
2
(mod p).
Exemplul 1.8 Fie p = 467. 2 este o radacina primitiva, deci 2
2
= 4 este un generator al lui
G, grupul reziduurilor patratice modulo 467. Vom lua deci = 4.
Sa presupunem a = 101; avem =
a
mod 467 = 449.
Bob semneaza deci mesajul x = 119 cu y = 119
101
mod 467 = 129.
Sa presupunem ca Alice vrea sa autentice semnatura y si ca alege pentru asta e
1
= 38, e
2
=
397. Ea calculeaza c = 13, la care Bob raspunde cu d = 9. Alice verica atunci relat ia
119
38
4
397
9 (mod 467).
Semnatura este acceptata ca autentica.
12 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
B. Sa arat am acum ca Alice nu poate accepta o semnatur a falsa drept autentica decat cu
o probabilitate neglijabila.
Teorema 1.1 Daca y x
a
(mod p) atunci Alice admite pe y ca semnatura autentica a lui x
cu probabilitate 1/q.
Demonstrat ie: Se observa ca orice ntrebare c corespunde la exact q perechi (e
1
, e
2
) posibile
(deoarece y si sunt elemente ale grupului G de ordin q prim si n denit ia lui c, ecare e
1
determina un e
2
unic). Cand Bob primeste c, el nu stie ce pereche (e
1
, e
2
) a fost folosita pentru
a-l construi. Vom arata ca daca y x
a
(mod p), orice raspuns d nu poate consistent decat
cu o singura pereche (e
1
, e
2
).
Deoarece genereaza G, orice element din G se scrie ca o putere (unica modulo q) a lui .
Deci c =
i
, d =
j
, x =
k
, y =
m
cu i, j, k, m Z
q
si operat iile aritmetice efectuate modulo
p. Sa consideram sistemul:
c y
e
1
e
2
(mod p) d x
e
1
e
2
(mod p).
El este echivalent cu
i me
1
+ ae
2
(mod q) j ke
1
+ e
2
(mod q).
Cum prin ipoteza y x
a
(mod p), rezulta m ak (mod q).
Astfel, matricea sistemului modulo q admite un determinant nenul, deci sistemul are solut ie
unica. Altfel spus, pentru orice d G, nu exista raspuns corect la ntrebarea c decat pentru
un singur cuplu (e
1
, e
2
). Deci probabilitatea ca Bob sa raspunda corect lui Alice n condit iile
teoremei este 1/q. 2
C. Sa construim acum procedura de dezmint ire. Ea foloseste de doua ori protocolul de
vericare. Algoritmul este:
1. Alice alege aleator e
1
, e
2
Z
q
;
2. Alice calculeaza c = y
e
1
e
2
(mod p) si-l trimite lui Bob;
3. Bob calculeaza d = c
a
1
mod q
(mod p) si-l trimite lui Alice;
4. Alice verica d x
e
1
e
2
(mod p);
5. Alice alege aleator f
1
, f
2
Z
q
;
6. Alice calculeaza C = y
f
1
f
2
(mod p) si-l trimite lui Bob;
7. Bob calculeaza D = C
a
1
mod q
(mod p) si-l trimite lui Alice;
8. Alice verica D x
f
1
f
2
(mod p);
9. Alice admite ca y este fals daca si numai daca
(d
e
2
)
f
1
(D
f
2
)
e
1
(mod p)
Pasii 1 4 si 5 8 corespund protocolului de vericare. Pasul 9 este validarea consistent ei
raspunsului, care permite lui Alice sa determine daca Bob a calculat bine raspunsurile sale
conform protocolului.
1.6. SEMN
ATURI INCONTESTABILE 13
Exemplul 1.9 Sa luam parametrii din exemplul anterior: p = 467, = 4,
a = 101, = 449. Fie mesajul x = 286 cu semnatura (gresita) y = 83.
Bob doreste sa dezminta aceasta semnatura.
Fie e
1
= 45, e
2
= 237 primele valori alese de Alice. Ea calculeaza c = 305 si Bob raspunde
cu d = 109. Alice calculeaza atunci
286
45
4
237
(mod 467) = 149.
Deoarece 149 = 109, Alice trece la pasul 5 al protocolului. Sa presupunem ca ea alege acum
f
1
= 125, f
2
= 9 si calculeaza C = 270 la care Bob raspunde cu D = 68. Alice calculeaza acum
286
125
4
9
(mod 467) = 25.
Cum 25 = 68, Alice trece la pasul 9 si efectueaza testul de consistenta:
(109 4
237
)
125
188 (mod 467) (68 4
9
)
45
188 (mod 467)
Acum Alice este convinsa ca semnatura nu este valabila.
Pentru nal, mai trebuiesc aratate doua elemente:
Bob poate sa o convinga pe Alice sa invalideze o semnatur a incorecta.
Bob nu poate sa o convinga pe Alice sa invalideze o semnatur a corecta decat cu proba-
bilitate neglijabila.
Teorema 1.2 Daca y x
a
(mod p) si daca Alice si Bob urmeaza corect protocolul de dezmin-
t ire, atunci
(d
e
2
)
f
1
(D
f
2
)
e
1
(mod p).
Demonstrat ie: Utilizand faptul ca d c
a
1
(mod p) si c y
e
1
e
2
(mod p), avem:
(d
e
2
)
f
1
((y
e
1
e
2
)
a
1
e
2
)
f
1
(mod p) y
e
1
f
1
e
2
a
1
f
1
e
2
f
1
(mod p)
y
e
1
f
1
e
2
f
1
e
2
f
1
(mod p) y
e
1
f
1
(mod p).
Un calcul similar folosind D C
a
1
(mod p), C y
f
1
f
2
(mod p) si
a
(mod p) arata ca
(D
f
2
)
e
1
y
e
1
f
1
(mod p)
deci testul de consistenta de la pasul 9 reuseste. 2
Sa studiem acum cazul cand Bob ncearca sa dezmint a o semnatura valid a.
In acest caz
Bob nu va urma protocolul, si va construi d si D far a sa respecte procedura.
Teorema 1.3 Sa presupunem ca y x
a
(mod p) si Alice urmeaza procedura de dezmint ire.
Daca d x
e
1
e
2
(mod p) si D x
f
1
f
2
(mod p) atunci probabilitatea ca (d
e
2
)
f
1
(D
f
2
)
e
1
(mod p) este 1
1
q
.
Demonstrat ie: Sa presupunem ca avem (conform ipotezei):
y x
a
d x
e
1
e
2
D x
f
1
e
2
(d
e
2
)
f
1
(D
f
2
)
e
1
toate calculele ind facute modulo p. Vom arata ca se ajunge la o contradict ie.
Testul de consistent a (pasul 9) se rescrie D d
f
1
0
f
2
(mod p) unde
d
0
= d
1/e
1
e
2
/e
1
(mod p) nu depinde decat de pasii 1 4 ai protocolului. Aplicand Teorema
1.1 se obt ine ca y este o semnatura valida a lui d
0
cu probabilitate 1
1
q
. Dar, prin ipoteza, y
este o semnatura valida a lui x. Deci, cu mare probabilitate vom avea x
a
d
a
0
(mod p) adica
x = d
0
.
Pe de-alta parte, din d x
e
1
e
2
(mod p) rezulta x d
1/e
1
e
2
/e
1
(mod p), adica tocmai
x = d
0
, contradict ie. 2
14 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
1.7 Protocol de semnatura fara esec
O semnatur a fara esec ofera protect ie contra unui adversar atat de puternic nc at poate con-
traface semnaturi. Protocolul de semnatur a prezentat aici este construit de Heyst si Pedersen
n 1992. Este un tip de semnatura one - time, compus dintr-o funct ie de semnatur a, o funct ie
de vericare si un protocol pentru proba de autenticare. Prezentarea sa n detaliu este:
Fie p = 2q + 1 un num ar prim cu q prim, si Z
p
un element de ordin q. Pentru
1 a
0
q 1 se deneste =
a
0
(mod p).
Valorile p, q, , sunt publice si considerate xe.
Valoarea a
0
este secreta pentru toata lumea (inclusiv Bob).
Fie P = Z
q
, A = Z
q
Z
q
. O cheie este de forma K = (
1
,
2
, a
1
, a
2
, b
1
, b
2
) unde
a
1
, a
2
, b
1
, b
2
Z
q
,
1
=
a
1
a
2
(mod p)
2
=
b
1
b
2
(mod p).
1
, g
2
sunt publice, a
1
, a
2
, b
1
, b
2
sunt secrete.
Daca x Z
q
, se deneste
sig
K
(x) = (y
1
, y
2
) unde y
1
= a
1
+ xb
1
(mod q) y
2
= a
2
+ xb
2
(mod q).
Pentru y = (y
1
, y
2
) Z
q
Z
q
, avem
ver
K
(x, y) = T
1
x
2
y
1
y
2
(mod p)
Se poate vedea direct ca o semnatur a corect construita este validata de funct ia de vericare.
Ram ane de studiat problema de securitate si de ce procedeul este far a esec. Sa stabilim ntai
cateva proprietat i importante ale cheilor.
Doua chei (
1
,
2
, a
1
, a
2
, b
1
, b
2
) si (
1
,
2
, a
1
, a
2
, b
1
, b
2
) sunt echivalente daca
1
=
1
,
2
=
2
.
= (
1
,
2
, a
1
, a
2
, b
1
, b
2
) cu
1
a
1
a
2
(mod p)
a
2
(mod p) si
2
b
1
b
2
(mod p)
b
2
(mod p).
Sa presupunem ca mesajul x este semnat cu y = (y
1
, y
2
) folosind cheia K, unde
y
1
a
1
+ xb
1
(mod q) y
2
a
2
+ xb
2
(mod q)
Sa presupunem ca vericarea lui y se face cu cheia K
y
1
y
2
a
1
+xb
2
+xb
2
(mod p)
a
2
(
b
2
)
x
(mod p)
1
x
2
(mod p).
Deci y se veric a si cu cheia K
. 2
Lema 1.2 Fie o cheie K si y = sig
K
(x). Exista exact q chei K
1
a
1
a
2
(mod p)
2
b
1
b
2
(mod p)
y
1
a
1
+ xb
1
(mod q) y
2
= a
2
+ xb
2
(mod q).
Cum genereaza Z
q
, exista exponent ii unici c
1
, c
2
, a
0
Z
q
astfel nc at
1
c
1
(mod p),
2
c
2
(mod p),
a
0
(mod p).
ATUR
A F
AR
A ESEC 15
y
1
a
1
+ xb
1
(mod q) y
2
a
2
+ xb
2
(mod q).
Matricea acestui sistem de ecuat ii cu necunoscutele a
1
, a
2
, b
1
, b
2
are rangul 3 (determinantul
este
1 a
0
0 0
0 0 1 a
0
1 0 x 0
0 1 0 x
), deci sistemul are cel put in o solut ie netriviala obt inuta cu ajutorul cheii
K si n plus dimensiunea spat iului solut iilor este 4 3 = 1, deci exista exact q solut ii. 2
Lema 1.3 Fie o cheie K, y = sig
K
(x) si ver
K
(x
, y
) = T pentru x
echivalenta cu K astfel ca
y = sig
K
(x), y
= sig
K
(x
)
Demonstrat ie: Se face printr-un rat ionament analog cu cel din lema precedent a. 2
Din ultimele doua leme putem trage urmatoarea concluzie: ind data o semnatura valid a y
a unui mesaj x, exista exact q chei posibile care pot semna x. Pentru orice alt mesaj x
= x,
aceste q chei produc semnaturi diferite ale lui x
) decat cu
probabilitate
1
q
.
De remarcat ca rezultatul acestei teoreme nu depinde de puterea de calcul a lui Oscar;
securitatea provine din faptul ca el nu poate distinge care din cele q chei posibile a fost utilizata.
Se poate explica acum not iunea de semnatur a far a esec. S-a aratat ca ind dat un mesaj
x semnat cu y, Oscar nu poate calcula semnatura y
. Ar mai
posibilitatea ca Oscar sa poata calcula o semnatur a y = sig
K
(x
, y) astfel ncat
ver
K
(x
, y) = T si y = sig
K
(x
).
Avem
1
2
y
1
y
2
(mod p) unde y = (y
1
, y
2
).
Bob poate calcula propria sa semnatura pentru x
, pe care o noteaza y
= (y
1
, y
2
) si are
2
y
2
(mod p).
Deci
y
1
y
2
y
2
(mod p). Scriind =
a
0
(mod p) se obt ine:
y
1
+a
0
y
2
y
1
+a
0
y
2
(mod p) de unde y
1
+ a
0
y
2
y
1
+ a
0
y
2
(mod q)
sau y
1
y
1
a
0
(y
2
y
2
) (mod q). Evident y
2
y
2
deoarece y este un fals.
Deci (y
2
y
2
)
1
(mod q) exista si avem:
a
0
= log
= (y
1
y
1
)(y
2
y
2
)
1
(mod q).
Binent eles, n vericarea probei de autenticare s-a presupus ca nici Bob nu poate calcula
logaritmul discret log
.
Ca o remarca nala, acest procedeu este cu utilizare unica, deoarece cheia K a lui Bob poate
usor determinata dupa doua folosiri.
16 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
Exemplul 1.10 Sa presupunem p = 3467 = 2 1733 +1. Numarul = 4 are ordinul 1733 n
Z
3467
. Daca se ia a
0
= 1567 vom avea = 4
1567
(mod 3467) = 514.
Reamintim ca Bob cunoaste si dar nu a
0
.
Sa presupunem ca Bob construieste cheia sa cu a
1
= 888, a
2
= 1024,
b
1
= 786, b
2
= 999 deci
1
= 4
888
514
1024
(mod 3467) = 3405
2
= 4
786
514
999
(mod 3467) = 2281.
In acest moment Bob este pus n prezent a semnaturii false (822, 55) a mesajului 3383.
Aceasta semnatura este valida, deoarece condit ia de vericare este satisfacuta:
3405 2281
3383
2282 (mod 3467) 4
822
514
56
2282 (mod 3467).
Dar Bob stie ca aceasta nu este semnatura sa si trebuie sa dovedeasca acest lucru. El
calculeaza propria sa semnatura:
(888 + 3383 786 (mod 1733), 1024 + 3383 999 (mod 1733)) = (1504, 1291)
dupa care evalueaza logaritmul discret
a
0
= (822 1504)(1291 55)
1
(mod 1733) = 1567
care constituie proba de autenticare, si arata ca semnatura nu i apart ine.
1.8. EXERCIT II 17
1.8 Exercit ii
1.1 Sa presupunem ca Bob utilizeaza semnatura El Gamal si semneaza mesajele x
1
, x
2
obt i-
nand (,
1
) respectiv (,
2
) (cu aceeasi valoare a lui n ambele sem-naturi). Se considera n
plus ca (
1
2
, p 1) = 1.
Ar atat i ca aceste informat ii sunt suciente pentru determinarea lui k;
Ar atat i cum se poate sparge protocolul de semnatura;
Presupunand p = 3187, = 5, = 25703, efectuat i calculul lui k si a plecand de la
semnaturile (23972, 31396) pentru x = 8990 si (23972, 20481) pentru x = 31415.
1.2 Protocolul de semnatura El Gamal este implementat folosind p = 31847,
= 5, = 26379. Sa se scrie un program care:
Verica semnatura (20679, 11082) a mesajului x = 20543.
Calculeaza exponentul secret a prin compromisul spat iu - timp al lui Shanks. Apoi deter-
mina valoarea aleatoare k utilizata n semnatura lui x.
1.3 Bob utilizeaza procedeul de semnatura El Gamal ca n Exemplul 1.1: p = 467, = 2, =
132. Sa presupunem cael semneaza mesajul x = 100 cu (29, 51). Calculat i semnatura falsa pe
care o poate obt ine Oscar cu h = 102, i = 45, j = 293. Autenticat i semnatura rezultata cu
funct ia de vericare.
1.4 Aratat i ca a doua metoda de atac din semnatura El Gamal furnizeaza o semna-tura corecta
care satisface funct ia de vericare.
1.5 Modicam put in protocolul de semnatura El Gamal. Cheia este construita astfel: Bob
alege o radacina primtiva Z
p
, un exponent secret a (0 a p2), (a, p1) = 1 si =
a
.
Cheia este K = (, a, ) unde , sunt publice, iar a este secreta. Fie x Z
p
un mesaj care
trebuie semnat. Bob calculeaz a semnatura sig
K
(x) = (, ) prin:
=
k
(mod p) = (x k)a
1
(mod p 1).
Singura diferenta fata de semnatura El Gamal este calculul lui .
Descriet i cum se poate verica cu cheia publica a lui Bob o semnatura (, ) pe un mesaj
x;
Descriet i avantajul noului procedeu (fata de cel vechi) din punct de vedere al calculelor;
Comparat i pe scurt securitatea celor doua protocoale.
1.6 Bob utilizeaza procedeul DSS cu q = 101, p = 7879, = 170, a = 75, = 4567.
Determinat i semnatura lui Bob pe mesajul x = 5001 utilizand valoarea aleatoare k = 49, si
aratat i cum poate vericata semnatura rezultata.
18 PRELEGEREA 1. SEMN
ATURI ELECTRONICE
1.7
In protocolul de semnatura Lamport, Bob semneaza doua mesaje x, x
, ambele de cate k
bit i. Fie s = d(x, x
.
1.9
In protocolul de semnatura Bos-Chaum, Bob semneaza doua mesaje x, x
. Fie s =
card((x) (x
In criptograe este esent ial ca un num ar aleator sa nu paota aat. Un numar perfect
aleator este acela pe care Oscar nu-l poate ghici decat prin fort a bruta. O parte destul de im-
portanta din criptanaliza se bazeaza pe exploatarea imperfect iunilor unor funct ii care genereaza
numere aleatoare.
O generare de numere pur aleatoare se realizeaza prin colectarea si procesarea de date
obt inute dintr-o sursa de entropie exterioara calculatorului. Sursa de entropie poate foarte
simpla, ca de exemplu variat iile misc arii mouse-ului, sau intervalul de timp dintre apasarea a
doua taste. Surse foarte bune de entropie pot cele radioactive sau cele care folosesc zgomote
din atmosfera.
Proprietatea de a aleator a fost introdusa n calculatoare cu ajutorul generatorilor de
numere pseudo-aleatoare.
Denit ia 3.1 Fie m, k (m 1 k > 0) numere ntregi. Un (k, m) generator de numere
pseudo-aleatoare este o aplicat ie recursiva
f : Z
k
2
Z
m
2
calculabila n timp polinomial.
33
34 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
In varianta init ial a, si acesti generatori sunt usor de spart, deoarece starea init iala se poate
deduce usor din k valori consecutive ale lui x. Daca ns a parametrii nu se cunosc, generatorii
Ranrot pot solosit i cu succes n criptograe, av and o securitate sporita.
3.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 37
Exemplul 3.2 Sa consideram o varianta de generator Ranrot:
x
n
= ((x
n1
r
1
) + (X
n2
r
2
) +. . . + (x
nk
r
k
) +h) (mod 2
b
)
unde h este un numar ntreg arbitrar. Pentru ecare r sunt b
k
valori posibile, iar pentru
0 h 2
b
. Astfel, pentru k = 17, b = 32 numarul de variante este 1, 6 10
35
Exista un sistem de criptare (Power Crypto) bazat pe generatorul Ranrot de tip B3.
3.2.3 Generatorul Blum - Blum - Shub
Cel mai simplu si se pare cel mai ecient generator de numere pseudo- aleatoare este Blum
- Blum - Shub (numit si generator rezidual patratic).
Denit ia 3.2 Fie p, q doua numere prime. Daca
p 3 (mod 4), q 3 (mod 4)
atunci numarul n = pq se numeste ntreg Blum.
Algoritmul Blum - Blum - Shub (BBS pe scurt) de generare de numere pseudo-aleatoare
(prezentat ca un (k, m) generator) este:
Fie n = pq un ntreg Blum, unde p, q sunt numere prime pe k/2 bit i.
Fie x
0
un reziduu patratic modulo n. Se deneste secvent a
s
i+1
= s
2
i
(mod n)
Daca z
i
= s
i
(mod 2) pentru 1 i m, atunci num arul aleator generat este
f(x
0
) = z
1
z
2
. . . z
m
.
Generarea bit ilor nu este de fapt recursiva, deoarece z
i
(1 i m) se poate calcula direct cu
formula
z
i
= x
2
i
(mod (p1)(q1))
0
(mod 2)
Exemplul 3.3 Fie p = 383, q = 503; deci n = 192649. Alegand x
0
= 101355
2
(mod n) =
20749, generatorul BBS va produce sirul pseudo-aleator 11001110000100111010. Detaliind
i 0 1 2 3 4 5 6 7 8 9 10
s
i
20749 143135 177671 97048 89992 174051 80649 45663 69442 186894 177046
z
i
1 1 0 0 1 1 1 0 0 0
i 11 12 13 14 15 16 17 18 19 20
s
i
137922 123175 8630 114386 14863 133015 106065 45870 137171 48060
z
i
0 1 0 0 1 1 1 0 1 0
Securitatea acestui generator se bazeaza pe dicultatea factorizarii lui n. n poate facut public,
oricine poate genera o secvent a pseudo-aleatoare pe baza lui. Totusi, daca n nu se descompune
n factori, nimeni nu poate prezice iesirea; nici macar o armat ie de genul: Urmatorul bit este
1 cu probabilitate 51%.
Mai mult, ind data o parte a secvent ei, nu exista nici o modalitate de a prezice bitul
anterior sau cel ulterior secvent ei.
38 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
Algoritmul BBS este destul de lent, dar are unele implementari mai rapide. Astfel, daca n
este lungimea lui x
i
, pot pastrat i ultimii log
2
x
i
bit i.
In acest moment BBS este considerat cel mai bun generator de numere pseudo-aleatoare
pentru protocoale de generare si distribut ie a cheii.
3.3 Circuite liniare
Circuitele liniare
1
sunt folosite pe scara larga n teoria codurilor detectoare si corectoare de
erori (codurile ciclice si codurile convolut ionale) precum si n unele sisteme de criptare liniare
(AES de exemplu). Avantajul lor consta n modalitatea extrem de rapida de calcul.
Teoria circuitelor liniare a fost stabilita n 1965 ([6]) de Ernst Selmer, seful biroului de
criptograe al guvernului norvegian. Pentru detalii si rezultate teoretice poate consultat
cartea de teoria codurilor [1].
Un LFSR (Linear Feedback Shift Register) este un circuit liniar format dintr-un registru
serial si o funct ie de ntoarcere (feedback). Daca registrul este compus din n ip-opuri de date
(DF F), vom avea un n LFSR.
Funct ie de ntoarcere
b
n
b
n1
. . .
b
2
b
1
-
? ? ? ?
6
-
Funct ia de ntoarcere este o adunare modulo 2 (XOR) a anumitor bit i din registru; uneori ea
este numita congurat ie Fibonacci (vezi generatoarele Ranrot).
Exemplul 3.4 Sa consideram un 4 LFSR dat de schema (poarta XOR s-a notat cu ):
_
- - - -
?
6
-
?
, ,
+
Funct ia de ntoarcere este formata dintr-un singur XOR ntre primul si ultimul bit. Sa pre-
supunem ca init ial cei patru bit i din registru sunt 1001. La ecare tact se va obt ine o noua
congurat ie, anume:
0100, 0010, 0001, 1000, 1100, 1110, 1111, 0111, 1011, 0101, 1010, 1101, 0110, 0011
dupa care apare din nou 1001.
La iesire va apare secvent a 1001000111101011. Acest circuit asigura un generator de pe-
rioada 16.
Un n LFSR poate avea maxim 2
n
1 stari distincte (starea 00 . . . 0 este exclusa deoarece ea
formeaza un ciclu de lungime 1, neinteresant pentru generarea de numere pseudo-aleatoare).
Fie g(X) Z
2
[X], g(X) = 1 +g
1
X +. . . +g
n
X
n
polinomul asociat unui n LFSR, unde
g
i
= 1 daca si numai daca bitul i participa la o adunare modulo 2. Astfel, n Exemplul 3.4
polinomul este g(X) = 1 +X +X
4
.
1
Termenul din engleza este Shift Register.
3.4. GENERATORI BAZAT I PE LFSR 39
Sa consideram un polinom g(X) Z
2
[X], grad(g(X)) = n si e m cel mai mic num ar
astfel ca g(X)|X
m
+1. Atunci secvent a binara generata de un n LFSR asociat lui g(X) are
perioada m (este o m - secvvent a).
Daca g(X) este un polinom ireductibil peste Z
2
, atunci m = 2
n
1, iar aceasta este valoarea
maxima posibila (egaleaza numarul de stari distincte posibile din n LFSR). Toate detaliile
teoretice care justica aceste armat ii se gasesc n [1].
Lema 3.1 Un polinom g(X) Z
2
[X] este ireductibil daca si numai daca
1. Are un numar impar de termeni;
2. Cel put in un termen este de forma X
2p+1
.
Demonstrat ie: Exercit iu.
In [5] pag. 376 este dat un tabel cu aproape 300 polinoame ireductibile de diverse grade.
Evident, un nLFSR este un generator de secvent e, dar proprietatea lor pseudo-aleatoare
este extrem de slaba; o stare interna ofera urmatorii n bit i din secvent a de iesire. Chiar daca
funct ia de ntoarcere nu este cunoscuta, ea poate determinata pe baza a 2n bit i de iesire
(Algoritmul de decodicare Berlekamp - Massey). Totusi, prin combinarea mai multor circuite
LFSR se pot obt ine generatori de numere aleatoare acceptabili.
3.4 Generatori bazat i pe LFSR
3.4.1 Generatorul Gee
Generatorul Gee combin a ntr-o maniera neliniara trei LFSR, conform schemei urmatoare:
LFSR
1
LFSR
3
LFSR
2
EMUX
-
-
-
6
-
0
1
LFSR
1
formeaza funct ia de select ie a multiplexorului elementar, intr arile ind asigurate de
celelalte doua LFSR-uri. Daca a
1
, a
2
, a
3
sunt iesirile din cele trei LFSR-uri, iesirea din gener-
atorul Gee este data de relat ia
b = (a
1
a
2
) (a
1
a
3
)
Perioada generatorului este cel mai mic multiplu comun al perioadelor celor trei LFSR-
uri. Deci, daca cele trei polinoame care denesc circuitele au grade prime ntre ele, perioada
generatorului Gee este produsul celor trei perioade.
Din punct de vedere criptograc generatorul nu rezista unui atac prin corelare. Iesirea din
generator coincide cu iesirea din LFSR
2
cam 75% din timp. Deci, daca denit iile polinomiale
ale circuitelor sunt cunoscute se poate ghici valoarea init iala din LFSR
2
si genera secvent a sa
40 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
de iesire. Apoi se num ar a de cate ori iesirea din LFSR
2
coincide cu iesirea din generator. Daca
nu s-a ghicit corect, cele doua secvent e coincid cam 50%; daca s-a ghicit corect, ele coincid cam
75%.
Similar, iesirea generatorului coincide cu cea din LFSR
3
cam 75% din timp. Cu aceste
corelari secvent a poate ghicita complet.
Intr-un articol din 1991, Zeng s.a. ([8]) arata ca
daca polinoamele ireductibile au cate trei termeni iar cel mai mare LFRS este de lungime n,
atunci o secvent ae 37n bit i la iesirea din generator este sucienta pentru determinarea starilor
interne din tot i LFSR.
Genratorul Gee poate extins la 2
k
+1 LFSR legat i printr-un MUX
k
. Acest lucru nu va
mari nsa securitatea generatorului.
3.4.2 Generatori Stop-and-Go
Cel mai cunoscut este generatorul Beth - Piper (dupa numele autorilor); structura sa este
urmatoarea:
LFSR
3
LFSR
2
LFSR
1
-
6
-
6
-
-
? -
-
6
-
6
-
-
-
6
,
,
CK
a
1
(t)
a
2
(t)
a
3
(t)
b(t)
Acest generator controleaza ceasurile celor trei circuite. Astfel, ceasul de intraren LFSR
2
este controlat de iesirea din LFSR
1
; n acest fel, LFSR
2
si schimba starea la momentul
t numai daca iesirea din LFSR
1
a fost 1 la momentul t 1.
Nu se cunosc studii asupra complexitat ii acestui generator. El totusi nu a rezistat at-
acurilor corelate ([8]).
Stop-and-Go alternativ: Aceasta varianta foloseste trei LFSR de lungimi diferite, legate
ntr-un circuit de forma:
LFSR
3
LFSR
2
LFSR
1
-
? -
X
X
-
-
6
-
6
-
-
? -
6
-
? -
6
-
? -
-
6
-
-
,
,
,
CK
Cand iesirea din LFSR
1
este 1 e activeaz a LFSR
2
; n caz contrar este activat LFSR
3
.
Iesirea din generator este un XOR dintre cele doua iesiri.
Acest generator are o perioada mare. Exista un atac prin corelare asupra sa (mai precis
asupra LFSR
1
), dar acesta nu a slabit substant ial sigurant a sa.
3.5. ALTE GENERATOARE DE NUMERE PSEUDO-ALEATOARE 41
Generator Gollmann: Este o legare seriala n cascada a mai multor circuite LFSR,
ceasul ecarui LFSR ind controlat de circuitul anterior.
LFSR
1
LFSR
2
LFSR
2
-
6
-
6
-
6
- - -
? -
6
-
-
-
? -
6
?-
6
-
? -
6
-
? -
-
-
, ,
,
,
,
1
CK
. . .
. . .
Daca la momentul t 1 iesirea din LFSR
i
este 1, atunci la momentul t este activat
LFSR
i+1
. Iesirea din generator este iesirea din ultimul LFSR. Daca toate circuitele
liniare au aceiasi lungime n, complecitatea unui generator Gollmann cu k LFSR-uri este
n (2
n
1)
k1
3.5 Alte generatoare de numere pseudo-aleatoare
3.5.1 Generatorul Mother-of-all
Este un generator propus de George Marsaglia.
Init ial se aleg cinci numere ntregi x
0
, x
1
, x
2
, x
3
, c (nu toate nule), stocate pe 32 bit i ecare.
Algoritmul este:
1. n 4;
2. while n MAX do
(a) S 2111111111 x
n4
+ 1492 x
n3
+ 1776 x
n2
+ 5115 x
n1
+c;
(b) x
n
S (mod 2
32
), c
S
2
32
;
(c) n n + 1;
Suma intermediar a S este stocata pe 64 bit i. Valoarea MAX este stabilita n funct ie de
lungimea secvent ei de numere pseudo-aleatoare generate.
Implementat n limbaj de asamblare, algoritmul este extrem de rapid, deoarece aici exista
o instruct iune de nmult ire a doua numere ntregi pe 32 bit i ecare, cu rezultatul pe 64 bit i.
Scris ntr-un limbaj de nivel nalt, algoritmul foloseste numere n virgula mobila cu o mantisa
de 63 bit i.
3.5.2 Generatorul Blum - Micali
Fie g un num ar prim, p un num ar prim impar si x
0
o valoare init ial a. Se genereaza numerele
x
i+1
= g
x
i
(mod p)
Iesirea din generator este 1 daca x
i
<
p 1
2
si 0 altfel.
Securitatea acestui sistem se bazeaza pe problema logaritmului discret. Daca p este sucient
de mare astfel ca problema logaritmului discret sa e dicila, generatorul este sigur.
42 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
3.5.3 Generator RSA
Sistemul de criptare RSA poate folosit si pentru generare de numere aleatoare.
Fie n = pq un modul obt inut prin produsul a doua numere prime mari, un num ar e astfel
ca (e, (p 1) (q 1)) = 1 si x
0
o valoare init ial a (x
0
< n). Se deneste
x
i+1
= x
e
i
(mod n)
Iesirea din generator este z
i
= x
i
(mod 2).
Securitatea generatorului se bazeaza pe dicultatea spargerii sistemului RSA. Daca n este
sucient de mare, sistemul este sigur.
3.6 Securitatea generatorilor de numere pseudo-aleatoare
Denit ia 3.3 Fie X
n
, Y
n
doua distribut ii de probabilitate pe {0, 1}
n
. Notam t X
n
atunci
cand t este ales astfel ca z {0, 1}
n
,
Pr(x = z) = X
n
(z)
Spunem ca {X
n
} este inseparabil de {Y
n
} n timp polinomial daca pentru orice algoritm
probabilist A si orice polinom Q exista n
0
astfel ca n (n > n
0
) sa avem
|Pr
tXn
(A(t) = 1) Pr
tYn
(A(t) = 1)| <
1
Q(n)
Condit ia de inseparabilitate spune ca pentru siruri sucient de lungi nu exista un algoritm
probabilist care sa decida daca sirul a fost selectat urmand distribut ia X
n
sau Y
n
. Intuitiv, nu
se poate face distinct ie ntre distributia aleatoare si cea uniforma.
Vom nota cu U
n
distribut ia uniforma pe {0, 1}
n
; adica {0, 1}
n
,
Pr
xU
n
(x = ) =
1
2
n
Denit ia 3.4 Sirul {X
n
} este pseudo-aleator daca este inseparabil n timp polinomial de {U
n
}.
Algoritmul A din Denit ia 3.3 este numit test statistic n timp polinomial. Exemple de teste
statistice se gasesc n [3]. De asemenea, Marsaglia a construit n 1996 pachete de teste folosite
astazi ca standard de securitate pentru generatorii de numere pseudo-aleatoare.
Denit ia 3.5 Un program determinist n timp polinomial
G : {0, 1}
k
{0, 1}
p
este un generator pseudo-aleator (PSRG) daca verica urmatoarele condit ii;
1. p > k;
2. {G
p
}
p
este pseudo-aleator, unde G
p
este distribut ia pe {0, 1}
p
obt inuta astfel:
(a) pentru a obt ine t G se alege x U;
(b) se deneste t = G(x).
Adica, pentru orice algoritm probabilist A si orice polinom Q avem
Pr
tXn
(A(t) = 1) Pr
tUp
(A(t) = 1)
<
1
Q(p)
Bibliograe
[1] A.Atanasiu - Teoria codurilor corectoare de erori, Editura Univ. Bucuresti, 2001;
[2] A.Fog - http://www.agner.org/random/theory;
[3] D.Knuth - The art of computer Programming, vol 2 (Seminumerical Algorithms)
[4] P. L Ecuyer - Random Numbers for Simulation, Comm ACM 33, 10(1990), 742-749, 774.
[5] B. Schneier - Applied Cryptograpgy, John Wiley & Sons 1996;
[6] E.S. Selmer - Linear Recurrence over Finite Field, Univ. of Bergen, Norway, 1966;
[7] E.H.Sibley - Random Number Generators: Good Ones are Hard to Find, Comm ACM 31,
10(1988), 1192-1201.
[8] K.C.Zeng, C.H.Yang, D.Y.Wei, T.R.N. Rao - Pseudorandom Bit Generators in Stream
Cipher Cryptography, IEEE Computer, 24 (1991), 8.17.
43
Prelegerea 4
Protocoale de distribuire a cheilor
4.1 Introducere
Am vazut ca sistemele bazate pe chei publice nu necesita un canal sigur pentru transmiterea
unei chei private. Aceste avantaj este compensat ns a de faptul ca un canal cu cheie publica este
mult mai lent decat unul cu cheie privat a, el necesitand protocoale, procedee de autenticare
etc.
1 r
U
+ r
V
r
U
r
V
1 r
W
0
0 1 r
W
a
b
c
m
a
W
b
W
i=0
k
j=0
a
i,j
x
i
y
j
(mod p)
unde a
i,j
Z
p
(0 i k, 0 j k) si a
i,j
= a
j,i
pentru orice i si j.
4.2.2 Protocolul Die - Hellman
Este un protocol celebru, des folosit, bazat pe problema logaritmului discret.
Vom folosi grupul Z
p
unde p este num ar prim (desi construct ia funct ioneaz a pentru orice
grup nit n care problema logaritmului discret este dicila) si e Z
p
un element primitiv.
p si sunt publice.
ID(U) este o informat ie capabila sa identice utilizatorul U n ret ea (numele, adresa elec-
tronica, numarul de telefon etc). Orice utilizator U dispune de un num ar secret a
U
(0 a
U
p 2), putand sa calculeze
b
U
=
a
U
(mod p)
Arbitrul A dispune de un algoritm de semnatur a secret sig
A
si o procedura de vericare
publica ver
A
. Mai presupunem implicit ca datele au fost n prealabil supuse unei funct ii de
dispersie criptograce h pe care pentru simplicarea scrierii nu o mai ment ion am explicit.
Anumite informat ii despre utilizatorul U sunt autenticate folosind un certicat care cont ine
si amprenta (semnatura) arbitrului; un certicat este o denit ca o secvent a de forma
C(U) = (ID(U), b
U
, sig
A
(id(U), b
U
)).
De remarcat ca arbitrul nu trebuie sa cunoasca a
U
pentru a produce certicatul. Cand U
intr a n ret ea, se genereaza un astfel de certicat, care poate pastrat n baza de date sau
poate comunicat chiar de U la ecare utilizare. Semnatura lui A permite oricui sa verice
autenticitatea informat iei pe care o cont ine.
O cheie privat a pentru U si V este denita
K
U,V
=
a
U
a
V
(mod p).
Ea poate construita atat de U, prin K
U,V
= b
a
U
V
(mod p) cat si de V prin K
U,V
=
b
a
V
U
(mod p) (reamintim, a
U
, a
V
sunt private, b
U
, b
V
sunt publice).
Exemplul 4.2 Sa presupunem p = 25307 si = 2. Daca luam a
U
= 3578, vom avea b
U
=
2
3578
= 6113 (mod 25307), valoare pusa n certicatul lui U.
Sa presupunem ca V alege a
V
= 19956; atunci
b
V
= 2
19956
= 7984 (mod 25307).
U poate calcula cheia comuna K
U,V
= 7984
3578
= 3694 (mod 25307).
Aceiasi cheie este calculata si de V :
K
U,V
= 6113
19956
= 3694 (mod 25307).
4.3. KERBEROS 47
Sa studiem securitatea acestui protocol contra unui atac (activ sau pasiv). Semnatura lui
A pe certicate mpiedic a producerea de informat ii publice false. Deci vor ram ane n discut ie
numai atacurile pasive, care se reduc la problema: W poate determina K
U,V
daca nu este U
sau V ? Altfel spus: ind date
a
U
si
u
V
, ambele (mod p), se poate calcula
a
U
a
V
(mod p) ?
Aceasta este cunoscuta si sub numele de problema Die - Hellman, formulat a astfel:
Fie I = (p, , , ) unde p este num ar prim, Z
p
este primitiv, iar , Z
p
.
Se poate determina
log
(mod p) ?
(sau echivalent,
log
(mod p))
Evident, securitatea protocolului Die - Hellman de predistribuire a cheii fat a de atacurile
pasive este echivalent cu dicultatea problemei Die - Hellman.
Daca W poate calcula a
U
(sau a
V
) plecand de la b
U
(b
V
), el poate deduce K
U,V
asa cum
face U (respectiv V ). Aceasta conduce la rezolvarea unei probleme de logaritm discret. Deci,
daca problema logaritmului discret n Z
p
este dicila, atunci protocolul de predistribuire a cheii
Die - Hellman nu poate atacat. Conjectura este aceea ca problema Die - Hellman este
echivalenta cu problema logaritmului discret (asa cum s-a conjecturat ca spargerea sistemului
RSA este echivalenta cu factorizarea unui num ar).
Teorema 4.2 A sparge sistemul de criptare El Gamal este echivalent cu a rezolva problema
Die - Hellman.
Demonstrat ie: Sa reamintim sistemul de criptare El Gamal: O cheie este K = (p, , a, ) unde
=
a
(mod p); a este secret, iar p, , sunt publice. Criptarea unui mesaj x Z
p
se face
alegand aleator un num ar k Z
p1
; apoi e
K
(x, p) = (y
1
, y
2
) unde
y
1
=
k
(mod p), y
2
= x
k
(mod p)
Pentru y
1
, y
2
Z
p
, decriptarea este denita prin
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
(mod p)
Sa presupunem ca dispunem de un algoritmAcare rezolva problema Die - Hellman si ncerc am
un atac asupra mesajului criptat (y
1
, y
2
). Aplicand A asupra intr arilor p, , y
1
si avem:
A(p, , y
1
, ) = A(p, ,
k
,
a
) =
ka
=
k
(mod p)
De aici rezulta x = y
2
(
k
)
1
(mod p), deci se poate decripta mesajul (y
1
, y
2
).
Invers, sa presupunem ca dispunem de un algoritmB de decrptare pentru sistemul El Gamal.
Deci B admite la intrare (p, , , y
1
, y
2
) si calculeaza
x = y
2
y
log
1
(mod p).
Fiind data o aparit ie (p, , , ) a problemei Die - Hellman, se poate calcula usor
B(p, , , , 1)
1
= 1
log
1
=
log
(mod p)
2
4.3 Kerberos
Un punct slab n metodele de predistribuire a cheilor prezentate este acela ca ecare pereche
de utilizatori primeste mereu aceeasi cheie. Acest lucru, pe o perioada de timp mai lunga
periciliteaza condent ialitatea cheii. Este mult mai indicat sa se calculeze cate o cheie noua
(freshness) pentru ecare contact direct.
48 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
Inregistreaza ora T a cererii;
Stabileste o durata L de validitate a lui K; deci cheia de sesiune este valida n intervalul
de timp [T, T + L].
Aceste informat ii sunt transmise de A lui U, apoi V . Protocolul Kerberos este urmatorul:
1. A genereaza K, T si L.
2. A calculeaza
m
1
= e
K
U
(K, ID(V ), T, L), m
2
= e
K
V
(K, ID(U), T, L)
pe care le trimite lui U.
3. U calculeaza d
K
U
(m
1
) si aa K, T, L, ID(V ). Pe urma calculeaza
m
3
= e
K
(ID(U), T)
si trimite lui V mesajele m
2
si m
3
.
4. V aa K, T, L, ID(U) din d
K
V
(m
2
) si T, ID(U) din d
K
V
(m
2
). Verica daca cele
doua valori pentru T si ID(U) sunt identice.
5. V calculeaza
m
4
= e
K
(T + 1)
pe care l trimite lui U.
6. U calculeaza d
K
(m
4
) si verica daca este T + 1.
Fiecare din cele patru mesaje m
i
transmise are rolul sau bine determinat. Astfel, m
1
si m
2
servesc la transmiterea condent iala a cheii K. La randul lor, m
3
si m
4
asigura o conrmare a
cheii; dupa primirea ei, U si V sunt siguri ca dispun de aceeasi cheie de sesiune K.
Rolul lui T si L este acela de protejare contra unui atac activ constand din nregistrarea
unor mesaje vechi si retransmiterea lor ulterior.
Unul din slabiciunile sistemului Kerberos consta n imposibilitatea unei sincronizari a cea-
surilor utilizatorilor.
In practica se admit anumite decalaje, stabilite de comun acord.
In plus,
spargerea sistemului DES a condus la renunt area treptata la sistemul Kerberos.
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 49
4.4 Schimbul de chei Die - Hellman
Daca nu se accepta un furnizor universal de chei, atunci va trebui stabilit un protocol de punere
de acord. Primul si cel mai cunoscut astfel de protocol este protocolul de schimb de chei Die
- Hellman.
Fie p numar prim si Z
p
un element primitiv, ambele publice; eventual ele sunt alese de
U si comunicate lui V . Protocolul de schimb este urmatorul:
1. U alege aleator a
U
[0, p 2];
2. U calculeaza
a
U
(mod p) si l trimite lui V ;
3. V alege aleator a
V
[0, p 2];
4. V calculeaza
a
V
(mod p) si l trimite lui U;
5. U calculeaza K = (
a
V
)
a
U
(mod p) iar V calculeaza K = (
a
U
)
a
V
(mod p)
La sfarsitul protocolului, U si V obt in aceeasi cheie K =
a
U
a
V
(mod p). Procedeul este
aseman ator cu cel de predistribuire a cheii, cu diferent a ca exponent ii a
U
si a
V
se schimb a la
ecare sesiune.
4.4.1 Protocol ntre stat ii
Protocolul Die - Hellman se efectueaza dupa schema urmatoare:
-
U V
a
V
a
U
Acest protocol este nsa vulnerabil la un atac activ al unui intrus W, care se interpune ntre U
si V n modul urmator:
- -
U W V
a
U
a
V
W intercepteaz a mesajele lui U si V si le nlocuieste cu ale sale. La sfarsitul lui, W a stabilit
o cheie de comunicat ie
a
U
a
V
cu U si o cheie
a
U
a
V
cu V . Cand U doreste sa trimita un mesaj
lui V , el va utliliza cheia pe care o mparte cu W; acesta poate decripta mesajul si apoi sa l
cripteze cu cheia comuna cu V . Acesta primeste mesajul, far a sa realizeze ca a fost citit de W.
Acelasi lucru se nt ampla n cazul unui mesaj trimis de V catre U.
Este necesar deci ca utilizatorii sa si autentice punerea de acord a protocolului de stabilire
a cheilor. Acesta va numit protocol de punere de acord autenticat. Un astfel de acord, bazat
pe schimbul de chei Die - Helmann este numit protocol ntre stat ii (STS) si este construit de
Die, Van Oorschot si Wiener. O variant a STS simplicata este:
50 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
1. U genereaza aleator un num ar a
U
[0, p 2]; apoi calculeaza num arul
a
U
(mod p)
pe care l trimite lui V ;
2. V genereaza aleator un num ar a
V
[0, p 2];
3. V calculeaza
a
V
(mod p), apoi K = (
a
U
)
a
V
(mod p) si y
V
= sig
V
(
a
V
,
a
U
).
Trimite lui U mesajul (C(V ),
a
V
(mod p), y
V
).
4. U calculeaza K = (
a
V
)
a
U
(mod p) si verica C(V ) cu ver
A
, apoi y
V
cu ver
V
extras
din C(V );
5. U calculeaza y
U
= sig
U
(
a
U
,
a
V
) si trimite lui V mesajul (C(U), y
U
);
6. V veric a C(U) cu ver
A
, apoi y
U
cu ver
U
extras din C(U).
-
U V
a
U
a
V
, sig
V
(
a
V
,
a
U
)
sig
U
(
a
U
,
a
V
)
Prin acest protocol, un intrus W nu se mai poate interpunentre U si V .
Intr-adevar, daca W in-
tercepteaza
a
U
si l nlocuieste cu
a
U
, el va trebui sanlocuiasca de asemenea si sig
V
(
a
V
,
a
U
)
cu sig
V
(
a
V
,
a
U
), ceea ce nu poate decat n cazul a
U
= a
U
si a
V
= a
V
(pentru ca nu cunoaste
sig
V
).
La fel, W nu poate nlocui sig
U
(
a
U
,
a
V
) cu sig
U
(
a
U
,
a
V
), pentru ca nu cunoaste sig
V
.
Varianta aceasta de protocol nu ofera totusi o conrmare a cheii. Pentru aceasta trebuie
modicat y
V
= e
K
(sig
V
(
a
V
,
a
U
)) n pasul 3 si y
U
= e
K
(sig
U
(
a
U
,
a
V
)) n pasul 5.
In acest fel, ca la Kerberos, se obt ine o conrmare a cheii decriptand o parte cunoscuta a
cheii de sesiune. Acesta este protocolul STS complet.
4.4.2 Punerea de acord MTI
Matsumoto, Takashima si Imai au dezvoltat mai multe protocoale de punere de acord, bazate
pe schimbul de chei Die - Hellman. Aceste protocoale numite MTI necesita doar doua
schimburi de informat ii ntre U si V (cate unul pe ecare sens) si nu folosesc protocoale de
semnatur a.
Unul din protocoalele MTI este denit astfel:
Fie p un numar prim si Z
p
un element primitiv, ambele publice. Fiecare utilizator
U poseda un identicator ID(U), un exponent secret a
U
[0, p 2] si o valoare publica
b
U
=
a
U
(mod p).
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 51
Arbitrul dispune de un protocol de semnatur a sig
A
si unul de semnatura ver
A
.
Fiecare utilizator poseda un certicat
C(U) = (ID(U), b
U
, sig
A
(ID(U), b
U
)).
Protocolul MTI este dat mai jos.
In urma lui, utilizatorii U si V obt in aceeasi cheie
K =
r
U
a
V
+r
V
a
U
(mod p).
1. U selecteaza aleator r
U
[0, p 2], calculeaza
s
U
=
r
U
(mod p) si trimite lui V (C(U), s
U
).
2. V selecteaza aleator r
V
[0, p 2], calculeaza
s
V
=
r
V
(mod p) si trimite lui U (C(V ), s
V
).
3. U calculeaza K = s
a
U
V
b
r
U
V
(mod p), iar V calculeaza K = s
a
V
U
b
r
V
U
(mod p).
Exemplul 4.3 Sa luam p = 27803 si = 5. Daca U alege a
U
= 21131, el va calcula b
U
=
5
21131
= 21420 (mod 27803), pe care l pune n certicatul sau. La fel, daca V alege a
V
= 17555,
va avea b
V
= 5
17555
= 17100 (mod 27803)
Presupunem ca U selecteaza r
U
= 169; el va trimite lui V
s
U
= 5
169
= 6268 (mod 27803).
Daca V alege r
V
= 23456, el trimite lui U
s
V
= 5
23456
= 26759 (mod 27803).
Acum se poate calcula
K
U,V
= s
a
U
V
b
r
U
V
(mod p) = 26759
21131
17100
169
= 21600 (mod 27803)
Aceeasi cheie 21600 o obt ine si V .
Semnatura arbitrului elimina posibilitatea interpunerii lui Oscar.
Intr-adevar, daca un intrus
W se interpune ntre U si V , va avea loc scenariul
- -
U W V C(V ),
r
V
C(U),
r
U
C(U),
r
U
C(V ),
r
V
a
V
+r
V
a
U
(mod p).
In plus, nici una din cheile lui U sau V nu pot
calculate de W, pentru ca aceasta ar solicita cunoasterea exponentului secret a
U
respectiv a
V
.
Deci, desi U si V obt in chei distincte, nici una din ele nu poate calculata si de W (n ipoteza
ca problema logaritmului discret este dicila). Altfel spus, U si V sunt siguri ca nici o alta
persoana nu poate calcula cheia. Aceasta proprietate este numit a autenticare implicita.
Pentru atacuri pasive, securitatea sistemului MTI se reduce tot la dicultatea problemei
Die - Hellman.
4.4.3 Chei auto-certicate
Metoda punerii de acord prezentata n acest paragraf este construita de Girault; ea nu necesita
certicat. Valoarea cheii publice asigura o autenticare implicita.
Protocolul lui Girault combina proprietat ile sistemului RSA cu cele ale logaritmului discret.
Fie n = pq unde p = 2p
1
+ 1, q = 2q
1
+ 1 sunt numere prime sigure (p
1
, q
1
sunt numere prime
52 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
distincte). Cum grupul multiplicativ Z
n
este izomorf cu Z
p
Z
q
, ordinul maxim al unui element
din Z
n
este deci cmmmc(p1, q 1) = 2p
1
q
1
. Fie Z
n
de ordin 2p
1
q
1
. Vom utiliza problema
logaritmului discret n subgrupul ciclic al lui Z
n
, generat de .
U V
ID(V ), p
V
,
r
V
(mod n)
ID(U), p
U
,
r
U
(mod n)
La sfarsitul acestui protocol, U si V dispun de aceeasi cheie:
K =
r
U
a
V
+r
V
a
U
(mod n).
1. U alege aleator r
U
si calculeaza s
U
=
r
U
(mod n);
tripletul (ID(U), p
U
, s
U
) este trimis lui V .
2. V alege aleator r
V
si calculeaza s
V
=
r
V
(mod n);
tripletul (ID(V ), p
V
, s
V
) este trimis lui U.
3. U calculeaza cheia K = s
a
U
V
(p
e
V
+ ID(V ))
r
U
(mod n).
Cheia calculata de V este K = s
a
V
U
(p
e
U
+ ID(U))
r
V
(mod n).
Exemplul 4.4 Sa presupunem p = 839 si q = 863. Vom avea n = 724057 si (n) = 722356.
Elementul = 5 are ordinul 2p
1
q
1
= (n)/2.
Daca arbitrul A alege e = 84453 drept exponent de criptare, vom avea d = 125777.
Daca ID(U) = 500021 si a
U
= 111899, vom avea b
U
= 488889 si p
U
= 650704.
In mod
similar, consideram ID(V ) = 500022 si a
V
= 123456, deci b
V
= 111692, p
V
= 683556.
Daca U si V vor sa stabileasca o cheie comuna si U alege numarul r
U
= 56381, iar V
numarul r
V
= 356935, vom avea s
U
= 171007, s
V
= 320688.
Dupa protocol, cei doi vor dispune de cheia K = 42869.
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 53
Sa studiem put in evitarea atacurilor cu acest sistem de chei auto-certicate.
Cum valorile b
U
, p
U
, ID(U) nu sunt semnate de A, nimeni nu poate verica direct autentic-
itatea lor. Sa presupunem ca ele provin de la W (fara ajutorul arbitrului), care vrea sa se dea
drept U. Daca W furnizeaza ID(U) si daca p
U
conduce la un b
U
, W nu poate
determina cheia.
O situat ie similara apare daca W se interpune ntre U si V . El poate mpiedica pe U si
V sa obt in a o cheie comuna, dar nu poate efectua calculele lor. Are loc deci o autenticare
implicita, ca la MTI.
O ntrebare ar : De ce U trebuie sa comunice arbitrului valoarea a
U
? A poate determina
p
U
plecand de la b
U
, far a sa cunoasca a
U
. Acest lucru se face pentru ca arbitrul sa e convins
ca U poseda a
U
, nainte de a calcula p
U
.
Daca A nu face aceasta vericare nainte de calculul lui p
U
, sistemul poate atacat.
Sa presupunem ca W alege un a
U
fals si determina b
U
=
a
U
(mod n). Cu ele, stabileste o
cheie publica falsa p
U
= (b
U
ID(U))
d
(mod n) n felul urmator:
W calculeaza b
W
= B
U
, ID(W)). Pre-
supunem ca arbitrul calculeaza efectiv pentru W valoarea p
W
= (b
W
ID(W))
d
(mod n).
Atunci, din
b
W
ID(W) b
U
ID(U) (mod n)
se obt ine imediat p
W
= p
U
.
Sa presupunem acum ca U si V efectueaza protocolul, iar W se interpune conform schemei
urmatoare:
- -
U W V
ID(V ), p
V
,
r
V
mod n
ID(U), p
U
,
r
U
mod n ID(U), p
U
,
r
U
mod n
ID(V ), p
V
,
r
V
mod n
V calculeaza deci cheia K
=
r
U
a
V
+r
V
a
U
(mod n), iar U calculeaza K =
r
U
a
V
+r
V
a
U
(mod n).
W obt ine K
calculand K
= s
a
U
V
(p
e
V
+ ID(V )))
r
U
(mod n).
W si V poseda deci aceeasi cheie, n timp ce V crede ca o mparte cu U.
In acest moment,
W poate decripta mesajele trimise de V pentru U.
Prelegerea 5
Sisteme de partajare a secretelor
5.1 Sistemul condent ial al lui Shamir
Intr-o banca, seiful trebuie deschis n ecare zi. Banca are trei directori, dar nu ncredint eaza
combinat ia seifului nici unuia din ei. Ea doreste sa dispuna de un sistem de acces prin care
orice asociere de doi directori sa poata deschide seiful, dar acest lucru sa e imposibil pentru
unul singur.
Ca un exemplu, conform revistei Time Magazin (4 mai 1992), n Rusia, accesul la arma
nuclear a utilizeaza un astfel de sistem doi - din - trei. Cele trei persoane sunt Presedintele
t arii, Presedintele Parlamentului si Ministrul Apar arii.
Sa prezentam ntai un sistem de partajare a secretului numit sistem condent ial.
1
Denit ia 5.1 Fie t, w doua numere ntregi pozitive, t w. Un sistem condent ial (t, w) este
o metoda de partajare a unei chei K ntre membrii unei mult imi T de w participant i, astfel
ncat orice asociere de t participant i sa poata calcula K, lucru imposibil pentru asocieri de t 1
sau mai put ini participant i.
Exemplul precedent este deci un sistem condent ial (2, 3).
Valoarea lui K este aleasa de un arbitru
2
D. Vom presupune ca D , T. D va distribui n
secret componente ale cheii membrilor grupului T, astfel nc at nici un participant sa nu cunoasca
componentele celorlalt i si nici sa e capabil ca din componenta sa sa poata recompune cheia
K.
Ulterior, participant ii unei submult imi B T pot pune n comun componentele cheii cunos-
cute de ei (sau sa le dea unei autoritat i n care au ncredere) cu scopul de a determina K. Ei
trebuie sa poata reusi n aceasta tentativa daca si numai daca card(B) t.
Sa notam
T= P
i
[ 1 i w
mult imea celor w participant i. / este spat iul tuturor cheilor posibile, iar o este spat iul
componentelor (toate componentele posibile ale cheii).
Sistemul prezentat n aceasta sect iune este datorat lui Shamir si a fost creat n 1979. Fie
p (p w + 1) un numar prim si /= Z
p
, o= Z
p
. Deci cheile si componentele sunt numere din
Z
p
. Sistemul condent ial al lui Shamir, prezentat mai jos, se bazeaza pe un polinom aleator
1
Threshold scheme n engleza, a seuil n franceza.
2
Dealer n engleza, initiateur n franceza.
55
56 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
a(X) de grad cel mult t 1, n care termenul liber este K. Fiecare participant P
i
aa un punct
(x
i
, y
i
) de pe gracul acestui polinom.
1. (Init ializare): D alege w elemente distincte x
1
, . . . , x
w
Z
p
(x
i
publice), ecare x
i
ind comunicat lui P
i
.
2. Sa presupunem ca D doreste sa repartizeze cheia K Z
p
. D va selecta aleator t 1
elemente a
1
, . . . , a
t1
Z
p
si construieste polinomul
a(X) = K
t1
j=1
a
j
X
j
(mod p).
3. D calculeaza y
i
= a(x
i
) si comunic a aceasta valoare lui P
i
(1 i w).
Fie acum o submult ime P
i
1
, . . . , P
i
t
de participant i care doresc sa reconstituie cheia. Ei stiu
valorile x
i
j
si y
i
j
= a(x
i
j
) pentru 1 j t; a(X) Z
q
[X] este polinomul (secret) folosit de D.
Cum gradul lui este cel mult t 1, putem scrie
a(X) = a
0
+ a
1
X + . . . + a
t1
X
t1
unde a
0
= K iar a
0
, . . . , a
t1
Z
q
sunt necunoscute. Ele se aa rezolvand sistemul liniar
de t ecuat ii y
i
j
= a(x
i
j
). Daca ecuat iile sunt independente, solut ia este unica, iar valoarea lui
a
0
este chiar cheia K.
Exemplul 5.1 Sa presupunem p = 17, t = 3, w = 5, iar x
i
= i, (1 i 5). Daca
B = P
1
, P
3
, P
5
vor sa ae cheia aducand ecare informat iile 8, 10 si respectiv 11, ei vor
scrie polinomul general a(X) = a
0
+ a
1
X + a
2
X
2
si vor reduce problema la rezolvarea n Z
17
a
sistemului liniar
_
_
a(1) = a
0
+ a
1
+ a
2
= 8
a(3) = a
0
+ 3a
1
+ 9a
2
= 10
a(5) = a
0
+ 5a
1
+ 8a
2
= 11
Acesta admite solut ia unica n Z
17
: a
0
= 13, a
1
= 10, a
2
= 2.
Deci valoarea cautata este K = 13.
Teorema 5.1
In sistemul condent ial al lui Shamir, orice mult ime B de t participant i poate
reconstitui n mod unic cheia K.
Demonstrat ie: Fie a(X) = a
0
+ a
1
X + . . . + a
t1
X
t1
polinomul ales de D, unde a
0
= K.
Armat ia se reduce la a arata ca sistemul de ecuat ii y
i
j
= a(x
i
j
) (1 j t), de necunoscute
a
0
, . . . , a
t1
, admite solut ie unica. Determinantul acestui sistem este
1 x
i
1
x
2
i
1
. . . x
t1
i
1
1 x
i
2
x
2
2
1
. . . x
t1
i
2
. . .
1 x
i
t
x
2
it
. . . x
t1
it
1j<kt
(x
i
k
x
i
j
) (mod p)
Deoarece toate numerele x
i
sunt distincte, iar Z
p
este corp, rezulta ca acest produs este
nenul, deci sistemul are totdeauna solut ie unica, iar a
0
este chiar cheia cautat a. 2
Ce se nt ampl a daca un grup de t 1 participant i ncearc a sa calculeze cheia K ?
5.1. SISTEMUL CONFIDENT IAL AL LUI SHAMIR 57
Daca procedeaza conform algoritmului anterior, vor obt ine un sistem de t 1 ecuat ii cu t
necunoscute. Fie y
0
o valoare arbitrara a cheii K. Vom avea y
0
= a
0
= a(0), care formeaza a
t - a ecuat ie a sistemului. Acesta ofera de asemenea solut ie unica. Deci, pentru orice valoare
K Z
p
exista un polinom unic a
K
(X) Z
p
[X] care verica toate condit iile:
y
i
j
= a
K
(x
i
j
) (1 j t 1), y
0
= a
K
(0).
Rezulta ca orice valoare a lui K este consistent a cu componentele det inute de cei t 1
participant i; asocierea lor nu ofera nici o informat ie suplimentara pentru aarea cheii.
Mai exista o modalitate de abordare a sistemului condent ial al lui Shamir: folosind poli-
noamele de interpolare Lagrance. Acestea ofera o exprimare explicita a polinomului a(X), sub
forma
a(X) =
t
j=1
y
i
j
1 k t
k ,= j
x x
i
k
x
i
j
x
i
k
.
Evident, acesta este un polinom de grad cel mult t 1, cu proprietatea y
i
j
= a(x
i
j
), j =
1, . . . , t. Cum un astfel de polinom este unic, rezulta ca el este chiar polinomul cautat.
Un grup B de t participant i poate calcula a(X) pe baza acestei formule. De fapt, nici nu
este nevoie se determine tot polinomul: este sucient sa obt ina K = a(0). Deci, nlocuind n
formul a pe X cu 0, avem
K =
t
j=1
y
i
j
1 k t
k ,= j
x
i
k
x
i
k
x
i
j
.
Daca denim
b
j
=
1 k t
k ,= j
x
i
k
x
i
k
x
i
j
(1 j t),
aceste valori pot precalculate si facute publice de catre arbitru. Cheia este atunci o combinat ie
liniara de t componente:
K =
t
j=1
b
j
y
i
j
.
Exemplul 5.2 Sa revenim la Exemplul 5.1. Participant ii P
1
, P
3
, P
5
pot calcula b
1
, b
2
, b
3
;
se obt ine (calculele sunt facute modulo 17):
b
1
=
x
3
x
5
(x
3
x
1
)(x
5
x
1
)
= 3 5 (2)
1
(4)
1
= 4.
Similar, b
2
= 3, b
5
= 11. Cu componentele 8, 10 si 11, cheia se determina imediat:
K = 4 8 + 3 10 + 11 11 = 13 (mod 17)
Aceasta varianta ofera o simplicare a algoritmului Shamir pentru cazul w = t. Ea funct ioneaza
pentru /= Z
m
, o= Z
m
(m nu este obligatoriu numar prim si chiar mai mult este posibil
ca m w). Noul algoritm este:
58 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
1. D alege aleator t 1 elemente y
1
, . . . , y
t1
Z
m
;
2. D calculeaza y
t
= K
t1
i=1
y
i
(mod m);
3. Fiecare element y
i
este transmis n secret lui P
i
(1 i t).
Cei t participant i pot determina cheia K pe baza formulei
K =
t
i=1
y
i
(mod m).
Evident, t 1 participant i nu pot obt ine cheia K. Chiar daca pun n comun componentele lor,
ei pot determina valoarea K y, unde y este componenta celui care lipseste. Cum y este o
valoare aleatoare din Z
m
, nu se va obt ine nici o informat ie suplimentar a referitoare la cheie.
Acesta este deci un sistem condent ial (t, t).
5.2 Structura de acces si partaj a secretului general
In paragraful precedent am studiat situat ia cand orice asociere de t participant i din totalul
de w poate calcula cheia. Vom restrange aici aceasta condit ie, specicand ce submult imi de
participant i pot avea acces la cheie si pentru ce submult imi acest acces este interzis. Fie o
mult ime de submult imi ale lui T, ecare din ele reprezentand o asociat ie autorizata sa calculeze
cheia K. se numeste structura de acces, iar submult imile ei se numesc submult imi autorizate.
Fie / o mult ime de chei si o o mult ime de componente. Cand arbitrul D doreste sa
repartizeze o cheie K /, el va distribui cate o component a ecarui participant, urmand ca
ulterior, o submult ime de participant i sancerce sa determine K punandn comun componentele
cunoscute de ei.
Denit ia 5.2 Un sistem perfect de partajare a secretelor cu structura de acces este un pro-
cedeu de partajare a secretului unei chei K peste o mult ime T de participant i, astfel ncat:
1. Orice submult ime autorizata B T de participant i poate reconstitui cheia din componen-
tele cunoscute de ei;
2. Orice submult ime neautorizata B T de participant i nu poseda nici o informat ie despre
valoarea lui K.
Un sistem condent ial (t, w) realizeaza structura de acces = B T [ card(B) t. O
asemenea structura de numeste structura condent iala. Conform paragrafului precedent, sis-
temul condent ial al lui Shamir este perfect si realizeaza o structura condent ial a.
Sa studiem securitatea sistemelor de partajare a secretelor. Ca de obicei, nu se impune nici
o restrict ie asupra puterii de calcul a submult imilor neautorizate.
Fie B si B C T. Daca C cauta sa determine cheia K, ea va reusi lucrand numai
cu B si ignorand participant ii din C B. Altfel spus, structura de acces satisface condit ia de
monotonie:
5.3. CONSTRUCT IA CIRCUITELOR MONOTONE 59
Daca B si B C T, atunci C .
In cazul structurilor condent iale de acces, baza este mult imea submult imilor formate cu t
participant i.
5.3 Construct ia circuitelor monotone
Ideea din aceasta sect iune apart ine lui Benaloh si Leichter; ea consta n construirea unui cir-
cuit combinat ional care recunoaste structura de acces si genereaza un sistem de partajare a
secretului. Un astfel de circuit este numit de autori circuit monoton.
Fie C un circuit computat ional cu w intr ari notate prin variabilele booleene x
1
, . . . , x
w
(corespunzatoare celor w participant i P
1
, . . . , P
w
) si o iesire booleana y = C(x
1
, . . . , x
w
). Pre-
supunem ca la construct ia circuitului sunt folosite numai port i AND si OR (far a port i NOT).
Un astfel de circuit este numit monoton daca modicarea unei intr ari din 0 n 1 nu va implica
niciodata transformarea iesirii y din 1 n 0.
Vom nota
B(x
1
, . . . , x
w
) = P
i
[ x
i
= 1
mult imea participant ilor asociat i n mult imea B. Presupunand ca circuitul C este monoton,
vom avea
(C)= B(x
1
, . . . , x
w
) [ C(x
1
, . . . , x
w
= 1.
Circuitul C ind monoton, (C) este o mult ime monotona de part i ale lui T.
Fiind data o mult ime monotona de part i ale lui T, se poate construi usor un circuit
monoton C cu (C)= . Un exemplu de construct ie este urmatorul:
Fie
0
o baza a lui . Vom construi formula booleana (n forma normal disjunctiva)
B
0
_
_
P
i
B
P
i
_
_
Fiecare clauza din aceasta forma normala este legata printr-o poarta AND, iar disjunc-t ia
nala corespunde unei port i OR. Numarul total de port i folosite este card(
0
) + 1.
Fie acum C un circuit monoton care recunoaste . Vom prezenta un algoritm care permite
arbitrului D sa construiasca un sistem perfect de partajare a secretului cu structura de acces
. Vom folosi sistemul condent ial (t, t) din paragraful anterior. Mult imea cheilor este deci
/= Z
m
.
Algoritmul parcurge circuitul de la iesire spre intrare, marcand recursiv cu x
V
/, ecare
arc V parcurs (n sens invers). Init ial, arcului care marcheaz a iesirea y i se atribuie valoarea
x
out
= K a cheii. Formal, algoritmul este:
60 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
1. x
out
K;
2. pentru orice poarta G din care iese un arc marcat x, iar arcele care intr a sunt
nemarcate, executa:
(a) Daca G este o poarta OR, atunci x
V
x pentru orice arc V care intr a n G;
(b) Daca G este o poarta AND si V
1
, . . . , V
t
sunt arcele care intra n G, atunci
i. Alege aleator x
V,1
, . . . , x
V,t1
Z
m
;
ii. Calculeaza x
V,t
= x
t1
i=1
x
V,i
(mod m);
iii. Marcheaz a arcul V
i
cu x
V,i
, (1 i t).
Exemplul 5.4 Pentru mult imea din Exemplul 5.3, avem
0
= P
1
, P
2
, P
4
, P
1
, P
3
, P
4
,
P
2
, P
3
, deci se poate asocia expresia booleana
(P
1
P
2
P
4
) (P
1
P
3
P
4
) (P
2
P
3
).
Circuitul monoton asociat este desenat mai jos; n paralel au fost marcate si arcele, conforma
algoritmului descris:
"!
&% "! &%
?
? -
?
?
? ?
u u u u
? -
? ?
?
? ?
?
?
-
?
?
?
-
?
x
1
x
2
x
3
x
4
K
K K
K
a
1 b
1
a
2
c
1 Kc
1
b
2
Ka
1
a
2
Kb
1
b
2
Aici a
1
, a
2
, b
1
, b
2
, c
1
, c
2
sunt numere alese aleator n Z
m
. Fiecare participant primeste drept
componenta doua numere:
1. a
1
si b
1
pentru P
1
,
2. a
2
si c
1
pentru P
2
,
3. b
2
si K c
1
pentru P
3
,
4. K a
1
a
2
si K b
1
b
2
pentru P
1
.
Fiecare submult ime autorizata poate calcula valoarea lui K. Astfel, P
1
, P
2
, P
4
determina
K = a
1
+a
2
+(K a
1
a
2
), submult imea P
1
, P
3
, P
4
calculeaza K = b
1
+b
2
+(K b
1
b
2
),
iar P
2
, P
3
va calcula K = c
1
+ (K c
1
).
Sa vedem acum ce se nt ampl a cu mult imile neautorizate.
Ca o remarca, daca o mult ime B este neautorizata, orice submult ime a sa va de asemenea
neautorizata.
Denit ia 5.3 O mult ime B T este maximal neautorizat a daca
B
1
B = B
1
.
Este sucient deci de demonstrat ca mult imile maximal neautorizate nu pot aa cheia din
informat iile pe care le det in.
5.4. RATA DE INFORMAT IE 61
Exemplul 5.5 Revenind la exemplul anterior, mult imile maximal neautorizate sunt P
1
, P
2
,
P
1
, P
3
, P
1
, P
4
, P
2
, P
4
, P
3
, P
4
.
In ecare caz, pentru determinarea cheii K lipseste o
informat ie denita aleator. De exemplu, P
1
, P
2
det in informat iile a
1
, a
2
, b
1
si c
1
. Pentru a
reconstitui cheia K ar avea nevoie cel put in de numarul K a
1
a
2
, sau de K c
1
.
Sisteme cu aceeasi structura de acces pot obt inute folosind si alte circuite.
Exemplul 5.6 Sa reluam Exemplul 5.3 si sa rscriem expresia booleana sub forma normal con-
junctiva:
(P
1
P
2
) (P
1
P
3
) (P
2
P
3
) (P
2
P
4
) (P
3
P
4
)
Construind sistemul condent ial corespunzator acestei expresii, vom avea urmatoarea distri-
but ie a componentelor (omitem detaliile):
1. P
1
primeste a
1
si a
2
;
1. P
2
primeste a
1
, a
3
si a
4
;
1. P
3
primeste a
2
, a
3
si K a
1
a
2
a
3
a
4
;
1. P
4
primeste a
4
si K a
1
a
2
a
3
a
4
;
Teorema 5.2 Fie C un circuit boolean monoton. Construct ia sa genereaza un sistem perfect
de partajare a secretului, a carui structura de acces este (C).
Demonstrat ie: Vom folosi o recurent a asupra num arului de port i din circuitul C. Cazul cand
C are o singura poarta este banal: daca poarta este OR, ecare participant cont ine cheia K
si structura de acces este mult imea tuturor part ilor nevide ale lui T; daca poarta este AND si
are t intrari, se obt ine sistemul condent ial (t, t) denit anterior.
Sa presupunem ca pentru j > 1, orice circuit C cu mai put in de j port i veric a teorema,
si e C un circuit cu j port i. Vom considera ultima poarta G a acestui circuit (din care iese
rezultatul y). Ea nu poate decat OR sau AND. Daca G este o poarta OR, sa consideram cele
t arce care intra n G : V
i
(1 i t). Acestea sunt arcele de iesire din t circuite C
i
; conform
ipotezei de induct ie, ecare astfel de circuit deneste un sub-sistem de partajare a secretului,
cu structura de acces (C
i
). Vom avea evident
(C) =
t
_
i=1
(C
i
).
Cum valoarea cheii se atribuie ecarui arc V
i
, sistemul va avea structura de acces (C).
Procedeul este similar daca G este o poarta AND.
In acest caz,
(C) =
t
i=1
(C
i
).
Deoarece K este repartizata peste toate arcele V
i
conform unui sistem condent ial (t, t),
sistemul total va admite (C) drept structura de acces. 2
Cand o mult ime autorizata B doreste aarea cheii, ea trebuie sa stie circuitul utilizat de
arbitru pentru construirea sistemului si sa deduca de aici ce componente sunt necesare pentru
parcurgerea arcelor respective. Aceasta informat ie trebuie sa e publica. Numai valoarea
componentelor trebuie sa e secreta.
5.4 Rata de informat ie
Fie T o mult ime de participant i si o spat iul tuturor componentelor posibile ale cheii. O
distribut ie de componente este o funct ie
62 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
f : T o
Ea codica matematic modalitatea de repartizare a informat iilor ntre participant i. f(P
i
)
va componenta distribuita participantului P
i
(1 i w).
Pentru ecare K /, e T
K
mult imea tuturor distribut iilor posibile ale cheii K.
In general,
T
K
este publica. Denim
T=
_
KK
T
K
.
T este ansamblul complet al tuturor distribut iilor posibile de chei. Rolul arbitrului va de
a selecta aleator un element f T
K
si de a distribui componentele n conformitate cu aceasta
alegere.
Pentru o submult ime B T (autorizata sau nu) de participant i, se deneste S(B) =
f[
B
[ f T, unde funct ia f
B
: B o este restrict ia distribut iei de part i f la submult imea
B; ea este deci denita prin f
B
(P
i
) = f(P
i
), P
i
B.
Deci S(B) este mult imea tuturor distribut iilor posibile ale componentelor la elementele
submult imii B.
Ne punem acum problema evalu arii performant elor sistemelor perfecte de partajare a se-
cretelor construite anterior, pe baza structurilor de acces monotone.
In cazul unui sistem condent ial (t, w), circuitul boolean construit pe baza expresiei n forma
normal disjunctiva are 1 + C
t
w
port i. Fiecare participant primeste o componenta formata din
C
t1
w1
numere din Z
m
. Aceasta partajare este foarte slaba comparativ cu sistemul condent ial
al lui Shamir (t, w), care ofera acelasi rezultat folosind componente formate dintr-un singur
num ar.
Pentru masurarea performant elor sistemelor perfecte de partajare a secretelor, vom folosi
un instrument numit rata de informat ie.
Denit ia 5.4 Consideram un sistem perfect de partajare a secretelor cu structura de acces .
Rata de informat ie a unui participant P
i
este prin denit ie
i
=
log
2
(card(X))
log
2
(card(S(P
i
)))
.
S(P
i
) o este mult imea componentelor posibile pe care le poate primi participantul P
i
. S-a
notat cu X = / mult imea cheilor posibile.
Rata de informat ie a sistemului este
= min
i
[ 1 i w.
Exemplul 5.7 Sa comparam cele doua sisteme date ca exemplu n paragraful anterior. Sis-
temul din Exemplul 5.4 are rata de informat ie =
log
2
m
log
2
m
2
=
1
2
.
Pentru sistemul din Exemplul 5.6, avem =
log
2
m
log
2
m
3
=
1
3
.
Primul sistem este deci mai bun.
= B P
j
. Fie g S(B). Cum
B
, , distribut ia componentelor g[
B
nu da nici o informat ie asupa cheii. Deci, pentru orice
K / exista o distribut ie a componentelor g
K
T astfel ca g
K
[
B
= g[
B
. Cum B , vom
avea g
K
(P
j
) ,= gK
(P
j
) pentru K ,= K
. Deci card(S(P
j
)) card(/), adica 1. 2
Un sistem cu = 1 va numit ideal. Ca un exemplu, sistemul condent ial al Shamir are
= 1, deci este un sistem ideal.
In schimb, rata de informat ie pentru un sistem condent ial
(t, w) bazat pe circuite monotone construite cu forma normal disjunctiva este
1
C
t1
w1
, extrem de
inecient a daca 1 < t < w.
5.5 Sistemul de partajare al lui Brickell
Sistemul construit n acest paragraf este cunoscut sub numele de construct ia vectoriala a lui
Brickell.
Fie o structura de acces, p un num ar prim, iar d 2 un numar ntreg. Fie
|: T Z
d
p
o funct ie cu proprietatea
(1, 0, . . . , 0) | (P
i
) [ P
i
B) B . (A)
Altfel spus, vectorul (1, 0, . . . , 0) este o combinat ie liniara de vectori din mult imea
| (P
i
) [ P
i
B daca si numai daca B este o submult ime autorizata.
Plecand de la aceasta funct ie, vom construi un sistem de partajare a secretelor cu /=
S(P
i
) = Z
p
(1 i w). Pentru orice a = (a
1
, . . . , a
d
) Z
d
p
. vom deni o funct ie de distribut ie
a componentelor f
a
: T o prin f
a
(x) = a | (x).
S-a notat cu produsul scalar a doi vectori. Algoritmul de partajare a secretelor Brickell
este urmatorul:
1. (Init ializare) Pentru 1 i w, D atribuie lui P
i
vectorul | (P
i
) Z
d
p
.
Acesti vectori sunt publici.
2. Pentru repartizarea cheii K Z
p
, arbitrul D alege aleator d 1 elemente
a
2
, . . . , a
d
Z
p
.
3. Folosind vectorul a = (K, a
2
, . . . , a
d
), arbitrul calculeaza componenta
y
i
= a | (P
i
) (1 i w), pe care o da lui P
i
.
Vom avea rezultatul urmator:
64 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
Teorema 5.5 Daca | verica proprietatea (A), mult imea distribut iilor de componente T
K
,
K / formeaza un sistem perfect de partajare a secretelor, cu structura de acces .
Demonstrat ie: Sa aratam ntai ca daca B este o mult ime autorizata, participant ii lui B pot
calcula cheia K. Deoarece (1, 0, . . . , 0) | (P
i
) [ P
i
B), putem scrie
(1, 0, . . . , 0) =
{i|P
i
B}
c
i
| (P
i
)
unde c
i
Z
p
. Fie s
i
componenta lui P
i
. Vom avea s
i
= a | (P
i
), unde a este vectorul
necunoscut ales de D, iar K = a
1
= a (1, 0, . . . , 0). Vom avea deci
K =
{i|P
i
B}
c
i
a | (P
i
).
Component ii grupului B pot reconstitui deci cheia K =
{i|P
i
B}
c
i
s
i
.
Ce se nt ampl a daca B nu este autorizat ? Fie e dimensiunea spat iului vectorial
| (P
i
) [ P
i
B) (evident, e card(B)). Sa consideram K / si sistemul liniar
| (P
i
) a = s
i
P
i
B
(1, 0, . . . , 0) a = K
cu necunoscutele a
1
, . . . , a
d
. Matricea sistemului are rangul e + 1 deoarece (1, 0, . . . , 0) ,
| (P
i
) [ P
i
B). Deci, independent de valoarea lui K, spat iul solut iilor este de1, adica ex-
ista p
de1
distribut ii de componente n ecare T
K
, consistente cu componentele participant ilor
din B. 2
Sistemul condent ial (t, w) al lui Shamir este un caz particular al acestei construct ii.
Intr-
adevar, e d = t si | (P
i
) = (1, x
i
, x
2
i
, . . . x
t1
i
), pentru 1 i w, unde x
i
este coordonata x
data de P
i
. Sistemul obt inut este echivalent cu cel al lui Shamir.
Un alt rezultat general se refera la structurile de acces care admit ca baza un ansamblu
de perechi care denesc un graf multipartit complet. Reamintim, un graf G = (V, E) este
multipartit complet daca V se poate partit ionan submult imile V
1
, . . . , V
s
astfel nc at x, y E
daca si numai daca x V
i
, y V
j
cu i ,= j.
Mult imile V
i
se numesc componente. Daca card(V
i
) = n
i
(1 i s), graful este notat
K
n
1
,...,ns
. Graful multipartit complet K
1,...,1
cu s componente este de fapt un graf complet si se
noteaza K
s
.
Teorema 5.6 Fie G = (V, E) un graf multipartit complet. Atunci exista un sistem perfect de
partajare a secretelor, ideal, cu structura de acces E peste mult imea V de participant i.
Demonstrat ie: Fie V
1
, . . . , V
s
componentele lui G, si x
1
, . . . , x
s
Z
p
distincte (p s). Fie si
d = 2. Pentru ecare participant v V
i
se deneste | (v) = (x
i
, 1). Proprietatea (A) se verica
imediat, deci conform Teoremei 5.5 armat ia este demonstrata. 2
Vom aplica acest rezultat considerand structurile de acces posibile pentru patru partici-
pant i. Va sucient sa luam n calcul numai structurile a caror baza nu se poate partit iona n
doua mult imi nevide. De exemplu,
0
= P
1
, P
2
, P
3
, P
4
poate partit ionat an P
1
, P
2
P
3
, P
4
, ecare cu dezvoltarea sa independent a, deci nu o vom lua n considerare. O lista
completa a structurilor de acces neizomorfe pentru 2, 3 sau 4 participant i este data n Tabelul
5.1 (s-a notat cu
Rezultate
1. 2 P
1
P
2
1 Condent ial (2, 2)
2. 3 P
1
P
2
, P
2
P
3
1
0
K
1,2
3. 3 P
1
P
2
, P
2
P
3
, P
1
P
3
1 Condent ial (2, 3)
4. 3 P
1
P
2
P3 1 Condent ial (3, 3)
5. 4 P
1
P
2
, P
2
P
3
, P
3
P
4
2/3
6. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
1
0
K
1,3
7. 4 P
1
P
2
, P
1
P
4
, P
2
P
3
, P
3
P
4
1
0
K
2,2
8. 4 P
1
P
2
, P
2
P
3
, ; P
2
P
4
, P
3
P
4
2/3
9. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
, P
2
P
3
, P
2
P
4
1
0
K
1,1,2
10. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
, P
2
P
3
, P
2
P
4
, P
3
P
4
1 Condent ial (2, 4)
11. 4 P
1
P
2
P
3
, P
1
P
4
1
12. 4 P
1
P
3
P
4
, P
1
P
2
, P
2
P
3
2/3
13. 4 P
1
P
3
P
4
, P
1
P
2
, P
2
P
3
, P
2
P
4
2/3
14. 4 P
1
P
2
P
3
, P
1
P
2
P
4
1
15. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
3
P
4
1
16. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
1
P
3
P
4
1
17. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
1
P
3
P
4
, P
2
P
3
P
4
1 Condent ial (3, 4)
18. 4 P
1
P
2
P
3
P
4
1 Condent ial (4, 4)
Exemplul 5.8 Sa consideram structura de acces cu numarul 9 din Tabelul 5.1; deci d = 2 si
p 3. Denim | prin
| (P
1
) = (0, 1), | (P
2
) = (0, 1), | (P
3
) = (1, 1), | (P
4
) = (1, 2).
Aplicand Teorema 5.6 se obt ine o structura perfecta de partajare a secretelor, ideala pentru
acest tip de acces.
Ram an de studiat opt structuri de acces. Se poate utiliza construct ia lui Brickell pentru patru
din ele: structurile 11, 14, 15 si 16.
Exemplul 5.9 Pentru structura de acces 11 vom considera d = 3 si p 3. Denit ia lui | este
| (P
1
) = (0, 1, 0), | (P
2
) = (1, 0, 1), | (P
3
) = (0, 1, 1), | (P
4
) = (1, 1, 0).
Calculand, se obt ine | (P
4
) | (P
1
) = (1, 1, 0) (0, 1, 0) = (1, 0, 0) si
| (P
2
)+ | (P
3
) | (P
1
) = (1, 0, 1) + (0, 1, 1) (0, 1, 0) = (1, 0, 0).
Deci (1, 0, 0) | (P
1
), | (P
2
), T(T
)) si (1, 0, 0) | (P
1
), | (P
4
)).
Mai ramane de aratat ca (1, 0, 0) , | (P
i
) [ P
i
B) pentru orice mult ime maximala neau-
torizata B. Exista numai trei astfel de mult imi: P
1
, P
2
, P
1
, P
3
, P
2
, P
3
, P
4
. Pentru ecare
caz se arata ca sistemul liniar asociat nu are solut ie. De exemplu, sa consideram sistemul
(1, 0, 0) = a
2
| (P
2
) + a
3
| (P
3
) + a
4
| (P
4
)
cu a
2
, a
3
, a
4
Z
p
. Se obt ine sistemul echivalent
a
2
+ a
4
= 1
a
3
+ a
4
= 0
a
2
a
3
= 0
66 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
care nu are solut ie.
Exemplul 5.10 Pentru structura de acces 14 vom deni d = 3, p 2, iar | va :
| (P
1
) = (0, 1, 0), | (P
2
) = (1, 0, 1), | (P
3
) = (0, 1, 1), | (P
4
) = (0, 1, 1).
Proprietatea (A) se verica imediat; deci se poate aplica Teorema 5.6.
In mod similar se pot construi sisteme perfecte de partajare a secretelor ideale pentru structurile
15 si 16.
Cele patru sisteme ramase nu admit construct ia unor astfel de sisteme.
5.6 Construct ia prin descompunere
Prezent am aici o alta modalitatea de construire a sistemelor de partajare a secretelor, remar-
cabila prin performant ele rezultatelor, care maximizeaza rata de informat ie.
Denit ia 5.5 Fie o structura de acces cu baza
0
si / un set de chei. O / - descompunere
ideala a lui
0
este un set
1
, . . . ,
n
cu proprietat ile
1.
k
0
(1 k n);
2.
n
_
k=1
k
=
0
;
3. k (1 k n) exista un sistem perfect de partajare a secretelor, ideal, cu mult imea de
chei /, peste mult imea de participant i T
k
=
_
B
k
B.
Pentru o / - descompunere ideala a structurii de acces se poate construi usor un sistem
perfect de partajare a secretelor.
Teorema 5.7 Fie o structura de acces cu baza
0
, / un set de chei si o / - descompunere
ideala
1
, . . . ,
n
a lui . Pentru ecare participant P
i
, e R
i
= cardk [ P
i
T
k
.
Exista atunci un sistem perfect de partajare a secretelor cu structura de acces si rata de
informat ie = 1/R, unde R = max
1iw
R
i
.
Demonstrat ie: Pentru 1 k n exista un sistem ideal de structura de acces de baza
k
peste
mult imea /. Notam T
k
mult imea distribut iilor componentelor sale. Vom construi un sistem
cu structura de acces peste mult imea /. Mult imea distribut iilor componentelor sale este
generata dupa regula: daca arbitrul D doreste sa mpart a cheia K (n cazul 1 k n), el va
genera aleator o distribut ie de componente f
k
T
k
K
si va distribui efectiv aceste componente
participant ilor din T
k
.
Se veric a usor ca acest sistem este perfect. Sa determinam rata sa de informat ie. Vom
avea card(S(P
i
)) = [card(/)]
R
i
pentru orice i (1 i w). Deci
i
= 1/R
i
si
=
1
maxR
i
[ 1 i w
,
ceea ce incheie demonstrat ia. 2
O generalizare a acestui rezultat pentru s / - descompuneri ideale se bazeaza pe teorema
5.6. CONSTRUCT IA PRIN DESCOMPUNERE 67
Teorema 5.8 (Construct ia prin descompunere): Fie o structura de acces de baza
0
, s 1
un numar ntreg, si / un set de chei. Presupunem ca s-a construit o / - descompunere ideala
T
j
=
j,1
, . . . ,
j,n
j
a lui
0
, si e T
j,k
mult imea participant ilor la structura de acces
j,k
.
Pentru ecare participant P
i
denim
R
i
=
s
j=1
cardk [ P
i
T
j,k
.
Exista atunci un sistem perfect de partajare a secretelor, cu structura de acces , a carui
rata de informat ie este = s/R, unde R = max
1iw
(R
i
).
Demonstrat ie: Pentru 1 j s si 1 k n se poate construi un sistem ideal cu baza
j,k
si
mult imea de chei /. Vom nota T
j,k
mult imea corespunzatoare de distribut ii a componentelor.
Vom construi un sistem cu structura de acces si mult imea de chei /
s
. Mult imea sa de
distribut ii de componente T se genereaza astfel: daca arbitrul D doreste sa mpart a cheia
K = (K
1
, . . . , K
s
) (pentru 1 k n), el va genera aleator o distribut ie de componente
f
j,k
T
j,k
K
j
, pe care le distribuie efectiv participant ilor din T
j,k
.
1,2
= P
2
, P
3
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
2,2
= P
3
, P
4
1,2
= P
2
, P
3
, P
2
, P
4
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
, P
2
, P
4
2,2
= P
3
, P
4
T
1
corespunde lui K
2
si K
3
, iar T
2
lui K
2
si K
1,3
; deci ambele sunt / - descompuneri.
Aplicand Teorema 5.8 cu s = 2 se va obt ine = 2/3. Similar exemplului precedent, o construct ie
efectiva se realizeaza astfel:
68 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
D alege aleator (si independent) patru elemente b
1,1
, b
1,2
, b
2,1
, b
2,2
Z
p
. Pentru o cheie
(K
1
, K
2
) Z
2
p
, arbitrul va distribui componentele astfel:
1. P
1
primeste b
1,1
+ K
1
si b
2,1
+ K
2
;
2. P
2
primeste b
1,1
, b
1,2
si b
2,1
;
3. P
3
primeste b
1,2
+ K
1
, b
2,1
+ K
2
si b
2,2
;
4. P
4
primeste b
1,2
+ 2K
1
, b
21
+ K
2
si b
2,2
+ K
2
.
(toate calculele sunt efectuate n Z
p
).
Prelegerea 6
Sisteme electronice de plata
6.1 Proprietat i de baza ale sistemelor electronice de plata
Sistemele electronice de plata realizeaza tranzact ii nanciare prin intermediul informat iei trans-
misa prin canale de telecomunicat ie.
In prezent sistemele de plata electronice exista n mai
multe forme, printre care: cecuri digitale (digital checks), carti de credit (credit cards), bani
electronici (electronic cash).
In aceasta prelegere vom trata sistemele de plata care utilizeaza monezile electronice si sunt
denite prin anumite proprietat i criptograce. Utilizand acest tip de sisteme, vom incerca
realizarea unui model care va imita sistemul bancar clasic de emitere a numerarului, cu singura
diferent a ca totul este realizat digital.
T. Okamoto si K. Ohta au propus n 1991 sase proprietat i fundamentale ale unui sistem
digital de plata:
1. Securitatea:
Protocolul de tranzact ie trebuie sa asigure un nivel de securitate ridicat, utilizand tehnici
criptograce. Vor prevenite atacuri care ncearc a sa modice sau sa reproduca informa-
t ia transmisa.
2. Anonimitatea:
Aceasta tras atura permite utilizatorului sa ram ana anonim n timpul desfasurarii proto-
colului de tranzact ie.
3. Portabilitatea:
Securitatea si folosirea sistemului digital nu trebuie sa e dependente de caracteristicile
zice ale calculatoarelor folosite.
In plus, informat ia va putea transferata prin orice
ret ea de calculatoare, fara sa existe o ret ea speciala care sa aiba drepturi separate.
4. Transferul n ambele sensuri:
Monezile digitale se pot transfera ntre utilizatori, fara ca acest transfer sa e realizat
printr-o banca.
5. Capacitatea de a realiza tranzact ii o-line:
69
70 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
Protocolul de tranzact ie ntre doua parti trebuie sa se desfasoare n orice moment, fara
autenticarea unei a treia part i si far a ca utilizatorii sa e conectat i obligatoriu la o
institut ie nanciara de control.
6. Divizibilitatea:
O moneda electronica obt inuta de utilizator din contul sau poate mp art ita n monezi
de valori mai mici, cu scopul de a folosite (separat sau nu) la diferite tranzact ii.
Scenariul sistemului de plata electronic presupune 3 tipuri de participant i:
Un utilizator (sau client) pe care-l vom nota de obicei U.
Un comerciant (sau magazin) care va accepta banii electronici ai clientului, furnizand n
schimb anumite bunuri. Acesta se va nota S.
O institut ie nanciara (sau banca, notata B) unde atat clientul, cat si comerciantul au
conturi deschise. Este posibil sa e o ret ea de banci care comunic a si realizeaza tranzact ii
ntre ele, dar noi vom considera pentru simplicare existent a unei singure banci.
6.2 Securitatea plat ilor electronice
Pentru securitatea unui sistem electronic de plata mai sunt necesare cateva proprietat supli-
mentare:
Intimitatea (Privacy) sau protect ia mpotriva interceptarii mesajelor
Autenticarea utilizatorului: ecare dintre cele doua part i implicate ntr-un protocol
trebuie sa e sigura de identitatea celeilalte part i.
Integritatea mesajului: destinatarul trebuie sa verice daca mesajul primit a fost (sau
nu) modicat n tranzit.
Imposibilitatea negarii (Non-repudiation): cel care a trimis un mesaj nu va putea sa
nege mai tarziu acest lucru.
David Chaum, init iatorul sistemelor electronice de plata, deneste nca doua trasaturi de
baza ale acestora:
Imposibilitatea bancii de a urmai utilizatorul dupa protocolul de extragere a monezilor
electronice n cazul n care acesta este onest (adica va utiliza monezile o singura data).
Vom vedea ulterior ca pentru un sistem de ncredere se impune ca banca sa aiba posibili-
tatea de a-l identica pe cel care comite o frauda (ncearc a sa foloseasca acceasi moneda de
mai multe ori). Mai mult decat atat, s-au elaborat sisteme (toate folosind o component a
hardware de tip card, chip sau micro-procesor) care previn frauda.
Daca se respecta aceasta condit ie, sistemul se va numi fara urmarire (un-traceable).
6.2. SECURITATEA PL
AT ILOR ELECTRONICE 71
Imposibilitatea de a deduce identitatea utilizatorului, daca se urmaresc mai multe monezi
folosite de acesta; altfel spus nu se poate realiza o legatura ntre monezile folosite n
tranzact ii diferite pentru a obt ine informat ii suplimentare.
A
6.3 Protocoale de semnatura blind
Introdus de Chaum n 1983, protocolul de semnatur a blind (blind signature protocol) este
extrem de util n crearea sistemelor de plat i electronice.
Pentru usurint a exprimarii vom nota cu B partea care semneaza un mesaj, si cu U partea
care primeste semnatura.
Denit ia 6.1 Un protocol de semnatura (P, A, K, S, V) se numeste protocol de semnatura
blind daca x P (x complet necunoscut lui B) U poate sa obt ina de la B un mesaj semnat
valid (x, sig
K
(x)).
Exemplul 6.1 Protocolul de semnatura blind RSA.
Fie p, q, n denite ca la sistemul cu cheie publica RSA. Vom avea
P = A = Z
n
, K={(n, p, q, a, b), n = pq, ab 1 (mod (n))}.
Fie x mesajul care trebuie semnat. Pasii protocolului blind sunt urmatorii:
1. U alege aleator un numar r Z
n
si trimite lui B numarul x
= r
b
x (mod n).
2. B semneaza mesajul x
: y
= sig
K
(x
) = sig
K
(r
b
x) = (r
b
x)
a
(mod n) rx
a
(mod n) si
trimite y
lui B.
3. U mparte y
la r si obt ine y = y
r
1
= x
a
(mod n).
La sfarsitul protocolului, U obt ine (x, y = sig
K
(x)): un mesaj semnat valid, astfel ncat B nu
cunoaste x.
Observam ca funct iile sig
K
si ver
K
sunt cele denite n protocolul de semnatura RSA:
sig
K
(x
) = (x
)
a
(mod n)
ver
K
(x
, y
) = T x
= (y
)
b
(mod n).
6.4 Scheme de identicare
O schem a de identicare este un protocol ntre doua part i: P (prover) si V (verier) n care P
demonstreaza cunoasterea cheii sale secrete far a a o revela, iar V la sfarsitul protocolului este
convins de identitatea lui P.
Orice schema de identicare se poate transforma ntr-un protocol de semnatura prin uti-
lizarea unei funct ii de dispersie. Vom prezenta schema de identicare si protocolul de semnatura
denite de Clauss Schnorr, a caror securitate este bazata pe problema logaritmului discret.
y
1
= r + sx
1
(mod q)
y
2
= r + sx
2
(mod q)
Rezolvand acest sistem, se obt ine
y
1
y
2
= s(x
1
x
2
) (mod q) s = (y
1
y
2
)(x
1
x
2
)
1
(mod q). 2
Protocolul de semnatura:
Sa arat am cum poate transformat protocolul de autenticare Schnorr ntr-un protocol de
semnatur a digitala.
74 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
Introducem o funct ie de dispersie H far a coliziuni tari. Presupunem ca U doreste sa obt ina
de la B o semnatur a asupra unui mesaj m. Similar protocolului de autenticare Schnorr, B va
avea cheia publica v si cheia sa secreta s.
Protocolul de semnatura Schnorr
1. B alege un numar aleator r (0 < r < q) si calculeaza b = g
r
(mod p).
2. B concateneaza m cu b si formeaza x = H(m b).
3. B calculeaza y = r + sx (mod q) si trimite lui U perechea (x, y).
4. U calculeaza b
= g
y
v
x
(mod p) si x
= H(m b
).
Daca x = x
= g
y
v
x
g
r+sx
g
sx
g
r
b (mod p) x
= H(m b
) = H(m b) = x,
deci relat ia de la pasul 4 este vericat a si U accepta semnatura lui B drept valid a.
Observam ca determinarea cheii secrete s din cheia publica v, cunoscand g, este echivalent a
din punct de vedere al complexitat ii cu rezolvarea problemei logaritmilor discret i.
6.5 Problema reprezentarii n grupuri
In aceasta sect iune vom discuta despre problema reprezent arii n grupuri, problema care sta
la baza construct iei unui sistem de plata electronic. Vom demonstra, de asemenea, echivalenta
acestei probleme din punct de vedere al complexitat ii cu problema logaritmilor discret i.
6.5.1 Denirea problemei reprezentarii
Denit ia 6.2 Fie k 2 numar natural si q un numar prim. Un tuplu generator de lungime
k pentru grupul Z
q
este un k-tuplu (g
1
, . . . , g
k
) astfel ncat g
i
Z
q
\{1}, i {1, 2, . . . , n} si
g
i
= g
j
, i = j.
Pentru orice h Z
q
, (a
1
, . . . , a
k
) este o reprezentare a lui h n raport cu tuplul generator
(g
1
, . . . , g
k
) daca
k
i=1
g
a
i
i
= h (mod q).
6.5. PROBLEMA REPREZENT
ARII
IN GRUPURI 75
Propozit ia 6.2 Fie k 2 un numar natural si q un numar prim. Pentru orice h Z
q
si orice
(g
1
, . . . , g
k
) tuplu generator, exista exact q
k1
reprezentari ale lui h n raport cu (g
1
, . . . , g
k
).
Demonstratie: Cum q este prim, orice element din Z
q
este primitiv, deci generator al grupului
multiplicativ Z
q
\ {1}.
Alegem primele k 1 elemente ale unui k-tuplu (a
1
, . . . , a
k
) aleator in q
k1
moduri si din
relat ia
k
i=1
g
a
i
i
= h (mod q) determinam g
a
k
k
= h(
k1
i=1
g
a
i
i
)
1
(mod q) deci
a
k
= log
g
k
h(
k1
i=1
g
a
i
i
)
1
(mod q).
Logaritmul are sens, deoarece din denit ia tuplului generator, g
k
= 1.
Din problema logaritmilor discret i, a
k
este unic determinat, deci exista exact q
k1
reprezen-
tari ale lui h n raport cu (g
1
, . . . , g
k
). 2
Acest rezultat relativ simplu arata ca xand h si un tuplu generator (g
1
, . . . , g
k
), printr-o
cautare exhaustiva n mult imea k-tuplurilor peste Z
q
, probabilitatea de a obt ine o reprezentare
a lui h n raport cu (g
1
, . . . , g
k
) este
q
k1
q
k
=
1
q
.
Astfel, suntemn masura sa enunt am problema reprezentarii n grupuri cu cardinalul numar
prim.
Problema reprezentarii:
Fie q un num ar prim, k 2 un num ar natural, (g
1
, . . . , g
k
) un tuplu generator si h Z
q
.
Sa se gaseasca o reprezentare a lui h n raport cu (g
1
, . . . , g
k
) n Z
q
, n cazul n care aceasta
exista.
Observam ca pentru k = 1 se obt ine problema logaritmilor discret i; de aceea am considerat
n denit ie k 2 pentru a face distinct ie intre cele doua probleme.
6.5.2 Echivalent a problemei reprezentarii cu problema logaritmilor
discret i
Sa reamintim cateva denit ii relative la algoritmii probabilisti.
Denit ia 6.3 Un algoritm probabilist este un algoritm care foloseste numere aleatoare.
Probabilitatea de succes a unui algoritm probabilist este probabilitatea ca acesta sa ofere un
raspuns corect.
Fie 0 < 1. Un algoritm tip Las-Vegas este un algoritm probabilist care pentru orice
aparit ie a unei probleme, poate oferi un raspuns ntotdeauna corect, sau poate esua si sa nu dea
nici un raspuns cu probabilitatea . Probabilitatea de succes pentru un algoritm Las-Vegas este
1 .
Observat ia 6.1 Daca construim un algoritm Las-Vegas pentru rezolvarea unei probleme, pu-
tem sa l apelam de un numar mediu de
1
1
ori pentru a obt ine raspuns, care este ntotdeauna
corect.
Teorema 6.1 Fie q un numar prim mare. Urmatoarele armat ii sunt echivalente:
76 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
1. Exista 0 < P
1
1 si un algoritm probabilist polinomial n timp A
1
care avand la intrare
un tuplu generator de lungime k si un element h Z
q
calculeaza o reprezentare a lui h
cu probabilitatea de succes cel put in P
1
.
2. Exista 0 < P
2
1 si un algoritm probabilist polinomial n timp A
2
care avand la
intrare un tuplu generator de lungime k calculeaza o reprezentare netriviala a lui 1 cu
probabilitatea de succes cel put in P
2
.
3. Exista 0 < P
3
1, h Z
q
si un algoritm probabilist polinomial n timp A
3
care
avand la intrare un tuplu generator de lungime k calculeaza o reprezentare a lui h cu
probabilitatea de succes cel put in P
3
.
4. Exista 0 < P
4
1 si un algoritm probabilist polinomial n timp A
4
care rezolva prob-
lema logaritmilor discret i (avand la intrare g Z
q
\ {1} si h Z
q
, calculeaza log
g
h) cu
probabilitatea de succes cel put in P
4
.
Demonstratie: Vom demonstra implicat iile:
(1) = (2), (1) = (3), (4) = (1), (1) = (4), (2) = (4), (3) = (4).
(1) = (2);
Presupunand existent a algoritmului A
1
si a lui P
1
, e (g
1
, . . . , g
k
) intrarea n algoritmul
A
2
. Se introduc n A
1
tuplul generator (g
1
, . . . , g
k
) si h = 1. Dupa executarea lui A
1
,
suntem n posesia unei reprezent ari a lui 1 n raport cu (g
1
, . . . , g
k
) cu probabilitatea de
succes P
2
= P
1
.
(1) = (3);
Alegem un element arbitrar h Z
q
\ {1} si tuplul generator (g
1
, . . . , g
k
), intrare pentru
A
3
. Se executa A
1
care calculeaza o reprezentare a lui h cu probabilitatea de succes P
1
.
Atunci exista P
3
= P
1
.
(4) = (1);
Exista algoritmul A
4
si probabilitatea 0 < P
4
1. Construim algoritmul A
1
care primeste
la intrare tuplul generator (g
1
, . . . , g
k
) si h Z
q
.
1. for i = 1, 2, . . . , k 1 do
(a) Se genereaza aleator h
i
Z
q
;
(b) Se introduc g
i
, h
i
n A
4
care calculeaza a
i
.
(c) if g
a
i
i
= h
i
(mod q) then STOP (esec).
2. Se calculeaza a
k
= log
g
k
(h
k1
i=1
h
1
i
) (mod q);
3. STOP cu succes si raspuns (a
1
, . . . , a
k
).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes
P
1
=
P
4
k 1
.
6.5. PROBLEMA REPREZENT
ARII
IN GRUPURI 77
In cazul n care A
1
se termina cu succes, la pasul 2 avem g
a
i
i
= h
i
(mod q), i
{1, . . . , k 1} (deci a
i
= log
g
i
h
i
(mod q), i {1, . . . , k 1}).
a
k
= log
g
k
(h
k1
i=1
h
1
i
) (mod q) g
a
k
k
= h
k1
i=1
h
1
i
(mod q)
k1
i=1
h
i
g
a
k
k
=
h (mod q)
k
i=1
g
a
i
i
= h (mod q) (a
1
, . . . , a
k
) este o reprezentare a lui h.
Algoritmul se repeta de un numar mediu de
1
P
4
ori pentru ecare i {1, . . . , k 1}
pentru ca n pasul (b) sa obt inem a
i
= log
g
i
h
i
(mod q). Deci, algoritmul trebuie rulat
de un num ar mediu de (k 1)
1
P
4
ori, ceea ce nseamn a ca probabilitatea de succes a
algoritmului A
1
este P
1
=
P
4
k 1
.
(1) = (4);
Exista algoritmul A
1
si probabilitatea 0 < P
1
1. Construim algoritmul A
4
care primeste
la intrare g Z
q
\ {1} si h Z
q
.
1. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
; se calculeaza g
i
= g
u
i
, 1 i k.
2. Se ruleaza algoritmul A
1
cu intrarea (g
1
, . . . , g
k
) si h.
3. Fie (a
1
, . . . , a
k
) iesirea lui A
1
;
if (a
1
, . . . , a
k
) nu e o reprezentare a lui h (h =
k
i=1
g
a
i
i
(mod q)) then STOP (esec).
4. Se calculeaza log
g
h =
k
i=1
a
i
u
i
(mod q). STOP (succes).
Corectitudine: Algoritmul astfel construit este de tip Las-Vegas cu probabilitate de succes
P
4
= P
1
.
i=1
g
a
i
i
=
k
i=1
g
a
i
u
i
(mod q) = log
g
h =
k
i=1
a
i
u
i
(mod q).
Algoritmul se repeta de un numar mediu de
1
P
1
ori pentru a obt ine o reprezentare corecta
a lui h n pasul 3. Deci probabilitatea de succes a algoritmului A
4
este P
4
= P
1
.
(2) = (4);
Exista algoritmul A
2
si probabilitatea 0 < P
2
1. Construim algoritmul A
4
care primeste
la intrare g Z
q
\ {1} si h Z
q
.
78 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
1. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
; se calculeaza g
1
=
h
u
1
(mod q), g
i
= g
u
i
(mod q), 2 i k 1.
2. Se genereaza aleator o permutare S
k
si se ruleaza algoritmul A
2
cu intrarea
(g
(1)
, . . . , g
(k)
).
3. Fie (a
1
, . . . , a
k
) iesirea lui A
2
.
if [(a
1
, . . . , a
k
) nu e o reprezentare a lui 1 (
k
i=1
g
a
i
(i)
= 1 (mod q))] or [a
1
(1)
= 0]
then STOP (esec).
4. Se calculeaza log
g
h = (u
1
a
1
(1)
)
1
k
i=2
u
i
a
1
(i)
(mod q); STOP (succes).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitate de succes
P
4
=
2P
2
k
.
Daca algoritmul se termina cu succes, atunci (a
1
, . . . , a
k
) este o reprezentare a lui 1 n
raport cu (g
(1)
, . . . , g
(k)
), ceea ce este echivalent cu:
k
i=1
g
a
i
(i)
= 1 (mod q) g
a
1
(1)
1
k
i=2
g
a
1
(i)
i
= g
0
(mod q)
h
u
1
a
1
(1)
k
i=2
g
u
i
a
1
(i)
= g
0
(mod q) si logaritmand, relat ia este echivalent a cu:
u
1
a
1
(1)
log
g
h +
k
i=2
u
i
a
1
(i)
= 0 (mod q)
de unde se obt ine formula din pasul 4 pentru log
g
h.
De remarcat ca la pasul 4, a
1
(1)
= 0, ceea ce asigura existent a inversului (u
1
a
1(1)
)
1
n Z
q
.
Algoritmul se repeta de un numar mediu de
1
P
2
ori pan a se obt ine la pasul 3 o reprezentare
(a
1
, . . . , a
k
) a lui 1.
Pentru ecare reprezentare (a
1
, . . . , a
k
) a lui 1, n cazul cel mai defavorabil k 2 com-
ponente ale k-tuplului (a
1
, . . . , a
k
) sunt nule (cum
k
i=1
g
a
i
(i)
= 1 (mod q), daca ar nule
k 1 componente, ar rezulta a
i
= 0 i = 1, 2, . . . , k, deci A
2
ar calcula o reprezentare
triviala a lui 1, contradict ie cu ipoteza (2)). Rezulta ca avem cu o probabilitate cel put in
2
k
, a
1
(1)
= 0.
Atunci algoritmul se va repeta de cel mult
1
P
2
k
2
ori, probabilitatea de succes ind cel
put in P
4
=
2P
2
k
.
(3) = (4);
6.5. PROBLEMA REPREZENT
ARII
IN GRUPURI 79
Exista h
Z
q
si algoritmul A
3
care avand la intrare un tuplu generator de lungime k
determina o reprezentare a lui h
cu probabilitatea de succes P
3
. Construim algoritmul
A
4
care primeste la intrare g Z
q
\ {1} si h Z
q
.
1. i = 1.
2. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
;
se calculeaza g
i1
= h
u
i1
, g
ij
= g
u
ij
(mod q) pentru j = 2, . . . , k.
3. Se genereaza aleator o permutare
i
S
k
;
Se ruleaza algoritmul A
3
cu intrarea (g
i1
, . . . , g
i
i
(k)
).
4. Fie (a
i1
, . . . , a
ik
) iesirea lui A
3
;
if (a
i1
, . . . , aik) nu e o reprezentare a lui h n raport cu (g
i1
, . . . , g
ik
) then STOP
(esec).
5. i = i + 1 goto 1.
6. if u
21
a
2
1
2
(1)
= u
11
a
1
1
1
(1)
(mod q) then STOP (esec).
7. Se calculeaza
log
g
h = (u
21
a
2
1
2
(1)
u
11
a
1
1
1
(1))
1
(
k
j=2
u
1j
a
1
1
1
(j)
k
j=2
u
2j
a
2
1
2
(j)
) (mod q).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes
P
4
=
P
2
3
k
.
Daca algoritmul se termina cu succes, atunci (a
11
, . . . , a
1k
) si (a
21
, . . . , a
2k
) sunt reprezen-
tari ale lui h
n raport cu (g
1
1
(1)
, . . . , g
1
1
(k)
), respectiv (g
2
1
(1)
, . . . , g
2
1
(k)
) ceea ce este
echivalent cu
h
=
k
j=1
g
a
1j
1
1
(j)
=
k
j=1
g
a
2j
2
2
(j)
(mod q) = g
11
a
1
1
1
(1)
k
j=2
g
a
1
1
1
(j)
1j
= g
21
a
2
1
2
(1)
k
j=2
g
a
2
1
2
(j)
2j
(mod q) h
u
11
a
1
1
1
(1)
k
j=2
g
u
1j
a
1
1
1
(j)
= h
u
21
a
2
1
2
(1)
k
j=2
g
u
2j
a
2
1
2
(j)
(mod q)
si logaritmand n baza g, rezulta:
u
11
a
1
1
1
(1)
log
g
h +
k
j=2
u
1j
a
1
1
1
(j)
= u
21
a
2
1
2
(1)
log
g
h +
k
j=2
u
2j
a
2
1
2
(j)
(mod q)
de unde se obt ine formula din pasul 7 pentru log
g
h.
De remarcat ca la pasul 7, u
11
a
1
1
1
(1)
= u
21
a
1
1
2
(1)
, ceea ce asigura existent a inversului
(u
11
a
1
1
1
(1)
u
21
a
1
1
2
(1)
)
1
n Z
q
.
Pentru i = 1 algoritmul se repeta de un num ar mediu de
1
P
3
ori pentru a obt ine o
reprezentare (a
11
, . . . , a
1k
) a lui h
.
Pentru i = 2 algoritmul se repeta n cazul cel mai defavorabil de un num ar de k
1
P
3
ori,
deoarece trebuie repetat pasul 6 de cel mult k ori.
80 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
Astfel, algoritmul se repeta de cel mult
1
P
3
k
P
3
=
k
P
2
3
ori pana se obt ine raspunsul succes.
Deci probabilitatea de succes este cel put in
P
2
3
k
Cu aceasta echivalent a celor doua probleme din punct de vedere al complexitat ii este complet
demonstrata. Deoarece problema logaritmilor discret i este NP - completa n Z
q
pentru valori
mari ale lui q prim, va rezulta ca si problema reprezentarii n Z
q
este NP-completa.
Corolarul 6.1 Alegang q prim asfel ncat problema logaritmilor discret i este NP-completa, nu
exista un algoritm polinomial n timp care, avand la intrare un tuplu generator (g
1
, . . . , g
k
)
scoate la iesire un numar h Z
q
si doua reprezentari diferite ale lui h n raport cu (g
1
, . . . , g
k
)
cu o probabilitate ne-neglijabila.
Demonstrat ie:
Presupunem, prin reducere la absurd, existent a unui astfel de algoritm A. Construim
urmatorul algoritm:
1. Fie (g
1
, . . . , g
k
) un tuplu generator. Se ruleaza algoritmul A cu intrarea (g
1
, . . . , g
k
).
Se primesc ca raspuns h si doua reprezent ari ale acestuia (a
1
, . . . , a
k
) si (b
1
, . . . , b
k
)
n raport cu (g
1
, . . . , g
k
).
2. Raspuns la iesire: (a
1
b
1
(mod q), . . . , a
k
b
k
(mod q)).
Evident:
k
i=1
g
a
i
b
i
i
= 1 (mod q), deci (a
1
b
1
(mod q), . . . , a
k
b
k
(mod q)) este o reprezentare
a lui 1 n raport cu (g
1
, . . . , g
k
).
Am construit astfel algoritmul A
2
, polinomial n timp din teorema 6.1, ceea ce contrazice
presupunerea de NP-completitudine a problemei logaritmilor discret i.
Corolarul 6.2 Funct ia f : Z
k
q
= Z
q
denitia f(a
1
, . . . , a
k
) =
k
i=1
g
a
i
i
este o funct ie de dispersie
fara coliziuni tari.
Demonstrat ie:
Din Corolarul 6.1, este calculabil dicil sa se obt in a un num ar h Z
q
si doua reprezent ari
diferite ale acestuia (a
1
, . . . , a
k
) si (b
1
, . . . , b
k
) n raport cu (g
1
, . . . , g
k
). Rezulta ca este calculabil
dicil sa obt inem x = (a
1
, . . . , a
k
) Z
k
q
si x
1
= (b
1
, . . . , b
k
) Z
k
q
asfel nc at f(x) = f(x
1
); adica
f este far a coliziuni tari.
Aceasta funct ie de dispersie nu e sucient de rapida pentru aplicat ii practice, dar constituie
un model teoretic sugestiv.
6.5.3 Demonstrarea cunoasterii unei reprezentari
Fie p si q doua numere prime mari, cu proprietatea q|p 1.
Presupunem ca un utilizator P (Prover) cunoaste o reprezentare (a
1
, . . . , a
k
) Z
k
q
a unui
num ar h Z
q
n raport cu tuplul generator (g
1
, . . . , g
k
) Z
k
q
. P doreste sa i demonstreze lui
V (Verier) acest lucru, fara a-i revela reprezentarea sa secreta (a
1
, . . . , a
k
).
6.5. PROBLEMA REPREZENT
ARII
IN GRUPURI 81
Construim un protocol de tip provocare-raspuns care i permite lui P demonstrarea
cunoasterii reprezentarii (a
1
, . . . , a
k
).
1. P genereaza aleator k numere w
1
, . . . , w
k
Z
q
si trimite lui V numarul z =
k
i=1
g
w
i
i
(mod q).
2. V genereaza o provocare c Z
q
si o trimite lui P.
3. P calculeaza raspunsul r
i
= w
i
+ ca
i
(mod q), pentru i = 1, . . . , k, si trimite
(r
1
, . . . , r
k
) lui V.
4. V accepta daca si numai daca zh
c
=
k
i=1
g
r
i
i
(mod q).
Teorema 6.2
1. (Completitudinea) Daca P este n posesia reprezentarii (a
1
, . . . , a
k
) a lui h n raport
cu (g
1
, . . . , g
k
) si urmeaza protocolul pas cu pas, atunci V accepta n pasul 4.
2. (Consistent a) Daca P nu cunoaste o reprezentare a lui hn raport cu (g
1
, . . . , g
k
), atunci
nu exista o strategie pentru el astfel ncat V sa accepte cu o probabilitate ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca V ar dispune de o putere de calcul nelimitata,
executand protocolul pas cu pas, nu va reusi sa ae n nal reprezentarea cunoscuta de P
cu o probabilitate ne-neglijabila.
Demonstrat ie:
1. Presupunand ca protocolul este executat corect de ambele part i, la pasul 4 avem:
zh
c
=
k
i=1
g
w
i
i
h
c
=
k
i=1
g
w
i
i
(
k
i=1
g
a
i
i
)
c
=
k
i=1
g
w
i
+a
i
c
i
=
k
i=1
g
r
i
i
(mod q), deci V accepta la pasul
4.
2. P nu cunoaste o reprezentare a lui h n raport cu (g
1
, . . . , g
k
), deci nu poate sa respecte
protocolul la pasul 3.
Distingem doua situat ii:
P urmeaza protocolul n pasul 1, deci P alege aleator w
1
, . . . , w
k
Z
q
si calculeaza
z =
k
i=1
g
w
i
i
(mod q).
Dupa ce primeste provocarea c a lui V, P trebuie sa determine numerele r
1
, . . . , r
k
care sa verice relat ia din pasul 4:
zh
c
=
k
i=1
g
r
i
i
(mod p) =
k
i=1
g
w
i
i
h
c
=
k
i=1
g
r
i
i
(mod q) =
h
c
=
k
i=1
g
r
i
w
i
i
(mod q) = h =
k
i=1
g
(r
i
w
i
)c
1
i
(mod q).
82 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT
A
Deci, daca P reuseste sa determine r
1
, . . . , r
k
asfel ncat V sa accepte la pasul 4,
el va cunoaste o reprezentare a lui h n raport cu (g
1
, . . . , g
k
) si anume: ((r
1
w
1
)c
1
, . . . , (r
k
w
k
)c
1
), ceea ce contrazice ipoteza.
P nu urmeaza protocolul din pasul 1, deci P alege un num ar z pentru care nu
cunoaste o reprezentare n raport cu (g
1
, . . . , g
k
).
i=1
g
r
i
i
(mod q), problema echivalent a cu determinarea unei reprezentari a lui zh
c
n raport
cu (g
1
, . . . , g
k
). Cum problema reprezent arii este NP-completa pentru p, q convenabil
alese si protocolul se desfasoara n timp real, nici n acest caz P nu are o strategie
cu o probabilitate de succes ne-neglijabila pentru a-l convinge pe V sa accepte.
3. La sfarsitul protocolului V este n posesia urmatoarelor informat ii: z, c, r
1
, . . . , r
k
.
Avem r
i
= w
i
+ ca
i
(mod q) a
i
= c
1
(r
i
w
i
) (mod q), deci problema deter-
minarii lui (a
1
, . . . , a
k
) este echivalenta cu problema determinarii lui (w
1
, . . . , w
k
).
In plus
a
1
, . . . , a
k
sunt unic determinate de w
1
, . . . , w
k
.
Singura informat ie pe care V o are despre w
1
, . . . , w
k
este z =
k
i=1
g
w
i
i
(mod q).
Dispunand de o putere de calcul nelimitata, V poate sa determine o reprezentare a lui z
n raport cu (g
1
, . . . , g
k
).
Conform Propozitiei 6.2, exista exact q
k1
reprezentari ale lui z n raport cu (g
1
, . . . , g
k
),
deci probabilitatea ca V sa calculeze exact aceeasi reprezentare (w
1
, . . . , w
k
) este
1
q
k1
,
adica neglijabila.
Prelegerea 7
Sistemul electronic de plata Brands
7.1 O scurta prezentare a sistemelor de plata electronice
o-line
Prima si cea mai simpla schem a a fost denita de Chaum, Fiat si Naor. Prezentam, pe scurt,
ideea acestui protocol.
Fie n, p, q, a, b parametrii sistemului RSA si f o funct ie de dispersie far a coliziuni tari. O
moneda electronica de o valoare xata d este reprezentata sub forma
(x, (f(x))
b
(mod n)
cu x ales aleator. Pentru ecare valoare a unei monezi trebuie folosit un alt exponent de criptare
b si un exponent de decriptare corespunzator a. Identitatea utilizatorului trebuie inclusa n
moneda electronica asfel ncat daca moneda este folosita corect, identitatea nu poate dedusa;
alfel identitatea poate calculata.
Pentru aceasta este folosita o tehnica numit a Cut-and-Choose: cand U doreste sa extraga
o moneda din banca, construieste un mesaj format din k perechi de numere (k este num arul de
candidat i). Aceste numere au proprietatea ca dintr-o pereche se poate calcula identitatea lui U
(de exemplu printr-un simplu XORntre cele doua numere ale perechii), iar av and la dispozit ie
un singur numar din ecare pereche nu se poate deduce nici o informat ie. U concateneaza cei
k candidat i si obt ine o semnatur a blind de la B asupra mesajului trimis cu protocolul de
semnatur a blind RSA.
A BRANDS
Desi este conceptual simpla, aceasta schem a nu este ecient a, deoarece ecare moneda tre-
buie nsot it a de 2k numere mari. Modelul Chaum-Fiat-Naor satisface primele patru proprietat i
denite n prelegerea anterioar a.
Okamoto si Ohta au descris un sistem universal de plata care satisface toate cele sase
proprietat i, dar din pacate este inecient din punct de vedere al dimensiunii mesajelor
transmise.
In schimb ei au avut ideea de a introduce proprietatea de divizibilitate a monezilor
electronice. Pentru ecare moneda de valoare d se asociaza un arbore binar etichetat astfel:
nodul rad acina (de nivel 0) are valoarea d, cele doua noduri de pe nivelul 1 au etichetele d/2 si
n general nodurile de pe nivelul k sunt etichetate cu
d
2
k
. Daca d = 2
s
, arborele are s + 1
nivele, cu frunzele av and valoarea minima 1.
Orice suma mai mica decat d poate folosita dupa urmatoarele reguli:
1. Odata ce un nod este folosit, tot i succesorii si predecesorii sai nu vor putea folosit i la o
plata viitoare;
2. Nici un nod nu poate folosit mai mult decat o data.
Aceste doua reguli asigura folosirea unui singur nod pentru orice drum de la rad acin a la o
frunza, ceea ce face imposibila folosirea unei valori mai mari decat valoarea rad acinii d.
Exemplul 7.1 Sa presupunem ca U are o moneda n valoare de 4 unitat i. Se construieste
arborele binar:
a
a
a
a
a
,
,
l
l
Z
Z
4
2 2
1 1 1 1
00
01
000
001
010
011
Pentru a realiza o plata de 3 unitat i, U foloseste
00
si
010
. Singurul nod care poate
utilizat la o plata viitoare este
011
n valoare de o unitate.
Daca cel put in una din cele doua reguli este ncalcat a, atunci exista un drum de la radacina la
o frunza pe care s-au folosit 2 noduri si se va putea determina identitatea lui U.
Mai exact, ecare utilizator U are o valoare secreta s care releva identitatea sa, iar ecare
nod i al arborelui are asignata o valoare secreta t
i
. Se construieste dreapta y = sx + t
i
pentru
ecare nod i. Cand se face o plata utilizand un nod particular n, U va revela t
i
pentru tot i i
predecesori ai lui n. Magazinul S va trimite o provocare x
1
la care U raspunde cu y
1
= sx
1
+t
n
.
Daca acelasi nod n este folosit a doua oara, U primeste nc a o provocare x
2
la care raspunde
cu y
2
= sx
2
+t
n
, deci U a revelat doua puncte (x
1
, y
1
), (x
2
, y
2
) ale dreptei y = sx +t
n
, de unde
se poate calcula s si apoi identitatea lui U.
Daca se folosesc doua noduri n si m de pe acelasi drum de la radacin a la o frunza, pre-
supunem ca n este succesor al lui m. Cand se foloseste nodul n se releva t
m
; apoi daca se
foloseste nodul m U raspunde la provocarea x
1
a lui S cu y
1
= sx
1
+ t
m
.
Deci si n acest caz S poate calcula s si identitatea lui U.
Un alt dezavantaj al acestei scheme ar ca se pot realiza legaturi ntre plat i, adica se poate
deduce daca doua plat i provin din aceeasi moneda si deci, de la aceeasi persoana.
7.2. INIT IALIZAREA SISTEMULUI BRANDS 85
Protocoalele discutate pana acum pot sa detecteze identitatea utilizatorilor necinstit i, far a
nsa a putea preveni utilizarea unei monezi de doua ori. Singurul mod prin care s-ar putea
realiza acest lucru este prin ncorporarea unei componente hardware (chip sau smart card) n
calculatorul utilizatorului, cu rolul de observator al tuturor plat ilor.
In plus, nici un protocol
de plata al utilizatorlui nu poate efectuat fara o informat ie secreta det inut a de observator.
Astfel, observatorul autorizeaza si participa activ la toate tranzact iile.
Totusi, se poate ntampla ca utilizatorul sa reuseasc a printr-o modalitate oarecare sa ae
informat ia secreta a observatorului.
In acest caz sistemul trebuie sa asigure detectarea utiliza-
torului care a comis frauda, la fel ca n primele protocoale discutate.
Cele mai cunoscute si utilizate protocoale de plata o-line cu monezi electronice apart in lui
Stefan Brands. Primul sistem real de tip o-line, numit DigiCash, se bazeaza n totalitate
pe aceste protocoale.
7.2 Init ializarea sistemului Brands
Se cauta doua numere prime mari p si q cu proprietatea q|p 1 (p si q sunt alese la fel ca n
schema de identicare Schnorr) si H o funct ie de dispersie far a coliziuni tari. Se genereaza un
subgrup G
q
de ordin q al lui Z
p
(aici se vor efectua toate calculele din sistem).
Init ializarea sistemului consta n generarea de catre banca a urmatoarelor cinci numere
distincte:
1. g G
q
, x Z
q
; se calculeaza h = g
x
(mod q). Tuplul generator (g, h) G
q
G
q
constituie cheia publica a bancii, iar x Z
q
cheia secreta.
2. Un tuplu generator (g
1
, g
2
) cu g
1
, g
2
G
q
.
3. Un generator d G
q
.
Vom presupune pentru nceput ca exista n sistem monezi de o singura valoare, apoi vom
arata cum se pot introduce monezi de valori diferite.
Securitatea acestei scheme consta n alegerea numerelor g, h, g
1
, g
2
, d astfel nc at nici un
utilizator sa nu poata exprima oricare din aceste numere ca o combinat ie de puteri ale celorlalte.
Acest lucru este din punct de vedere al complexitat ii la fel de dicil ca si gasirea unei reprezentari
netriviale a lui 1 n raport cu (g, h, g
1
, g
2
, d) o problema NP-completa pentru p si q convenabil
alese (prelegerea precedent a).
Cand utilizatorul U si deschide un cont n banca, el genereaza aleator numerele u
1
, u
2
Z
q
si calculeaza I = g
u
1
1
g
u
2
2
(mod p). (u
1
, u
2
) va constitui cheia secreta a lui U, iar I G
q
va
pseudonimul folosit de B pentru identitatea reala a lui U. B stocheaza ntr-o baza de date
identitatea reala a lui U, num arul contului sau si I. Este important ca U sa cunoasca o singura
reprezentare a lui I n raport cu (g
1
, g
2
). Daca U utilizeaza o moneda de doua ori, B poate sa
determine (u
1
, u
2
).
O moneda electronica este reprezentat a sub forma (m, sig
K
(m)) cu anumite restrict ii asupra
lui m, dupa cum vom vedea in continuare.
86 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT
A BRANDS
7.3 Tehnici pentru crearea sistemului
7.3.1 Protocolul de semnatura Chaum - Pedersen
Protocolul de semnatur a Chaum - Pedersen este un protocol de tip Schnorr. Fie m G
q
mesajul care trebuie semnat. Presupunem ca U doreste o semnatur a de la B asupra lui m.
Pasii protocolului sunt urmatorii:
1. B genereaza aleator w Z
q
si trimite lui U numerele z = m
x
(mod p), a =
g
w
(mod p) si b = m
w
(mod p).
2. U genereaza aleator provocarea c = H(m z a b) si o trimite lui B.
3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca h
c
a = g
r
(mod p) si z
c
b = m
r
(mod p).
(de vericat; nu coincide cu pag 22 din licenta)
Se observa ca singura diferent a fat a de schema lui Schnorr este trimiterea la pasul 1 a nca
doua numere: z si b. sig
K
(m) = (z, a, b, r) va constitui semnatura asupra mesajului m.
Formal, protocolul de semnatura Chaum-Pedersen este:
P =G
q
,
A =G
3
q
Z
q
,
K= {(p, q, g, h, x)| p, q prime, q|p 1, h = g
x
(mod p)}.
Cheia (p, q, g, h) este publica, iar x este secreta.
K K , m G
q
si w Z
q
aleator, denim
sig
K
(m, w) = (z, a, b, r), unde z = m
x
(mod p), a = g
w
(mod p), b = m
w
(mod p),
c = H(m z a b), r = w + cx (mod q).
ver
K
(m, (z, a, b, r)) = T h
c
a = g
r
(mod p), z
c
b = m
r
(mod p).
Daca U si B urmeaza protocolul, dupa primii 3 pasi avem:
g
r
= g
w+cx
= (g
x
)
c
g
w
= h
c
a (mod p),
m
r
= m
w+cx
= (m
x
)
c
m
w
= z
c
b (mod p),
deci U accepta n pasul 4.
7.3.2 Protocolul restrictiv de semnatura blind Chaum - Pedersen
In aceasta sect iune descriem o variant a simplicata a schemei de semnatura blind folosita
n protocolul de extragere. Pentru a transforma protocolul de semnatur a Chaum - Pedersen
ntr-un protocol de semnatura blind, U trebuie sa obt in a un nou mesaj m
si noile numere
a
, b
, z
, c
= H(m
astfel nc at
(z
, a
, b
, r
q
, u, v Z
q
, apoi calculeaza:
m
= m
s
(mod p), w
= uw + v (mod q), a
= a
u
g
v
= g
w
(mod p),
b
= a
us
(m
)
v
= (m
)
w
(mod p), z
= z
s
= (m
)
x
(mod p), c
= H(m
||z
||a
||b
)
si trimite lui B numarul c = c
u
1
(modq).
3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca h
c
a = g
r
(mod p) si z
c
b = m
r
(mod p).
Se observa ca (z, a, b, r) nu este o semnatur a valida asupra lui m deoarece r este un raspuns
la o provocare diferita de H(m||z||a||b). Dar U poate calcula r
) = (z
, a
, b
, r
, a
, b
, r
.
Demonstrat ie:
Pentru K = (p, q, g, h, x, w), ver
K
(m
, (z
, a
, b
, r
)) = T
h
c
= g
r
(mod p)
(z
)
c
= (m
)
r
(mod p)
Dar r
= g
u(w+cx)+v
= g
ucx
g
v+uw
= (g
x
)
uc
g
w
=
h
c
(mod p) si (m
)
r
= (m
)
ucx
(m
)
uw+v
= (m
)
xc
(m
)
w
= (z
)
c
(mod p),
deci sig
K
(m
) = (z
, a
, b
, r
). 2
Protocolul este de tip blind deoarece B nu cunoaste m
, sig
K
(m
)) nu poate legata
de nici o execut ie specica a protocolului.
2. Chiar daca B aa m
.
Demonstratie:
La nalul protocolului, B este n posesia urmatoarelor informat ii: w, z, a, b, c. Arat am ca
exista q alegeri posibile pentru (s, u, v) care produc n nal aceeasi pereche (m
, sig
K
(m
)).
Fie s Z
q
xat (sunt posibile q 1 alegeri pentru s) si m
, sig
K
(m
) = (z
, a
, b
, r
) xate.
Sa analizam n cate moduri putem alege u, v.
Se calculeaza n mod unic c
= H(m
||z
||a
||b
(mod q) = u =
c
c
1
(mod q), deci si u este unic determinat.
88 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT
A BRANDS
r
= ur +v = u(w +cx) +v = uw +c
x +v (mod q) = v = r
uw c
x (mod q). Sa
arat am ca u si v astfel determinate veric a relat iile pentru a
si b
.
a
u
g
v
= a
u
g
r
uwc
x
= a
u
g
r
(g
w
)
u
(g
x
)
c
= a
u
h
c
a
u
h
c
= a
(mod p)
(m
)
w
= (m
)
uv+w
= b
us
(m
)
v
= b
us
(m
)
r
uwc
x
= (m
w
)
us
(m
)
r
(m
)
uw
((m
)
x
)
c
=
m
wus
(z
)
c
(m
s
)
uw
(z
)
c
= b
(mod p)
Am demonstrat asfel ca exista exact q1 alegeri pentru (s, u, v) care produc aceeasi pereche
(m
, sig
K
(m
)), deci B nu realizeaza n care execut ie specica a protocolului s-a semnat mesajul
m
. 2
7.3.3 Generarea aleatoare a unei reprezentari
=
k+1
i=1
g
x
i
i
(mod p).
2. B trimite lui U un tuplu ales aleator (y
1
, . . . , y
k
).
3. U trimite x
k+1
lui B.
Daca U a fost corect la pasul 3, (x
1
+ y
1
, . . . , x
k
+ y
k
) este o reprezentare a lui h =
h
g
x
k+1
k+1
(
k
i=1
g
y
i
i
) (mod p) n raport cu (g
1
, . . . , g
k
).
Intr-adevar, g
x
1
+y
1
1
. . . g
x
k
+y
k
k
=
k
i=1
g
x
i
i
k
i=1
g
y
i
i
= h
g
x
k+1
k+1
k
i=1
g
y
i
i
= h (mod p).
7.4 Sistemul de baza Brands
In aceasta sect iune sunt descrise cele trei protocoale care formeaza sistemul de baza: protocolul
de extragere a monezilor electronice, protocolul de plata si protocolul de depozit. Se presupune
ca n sistem exista monezi de o unica valoare. Ulterior vom arata cum se pot introduce n
sistem monezi de diferite valori.
7.4.1 Protocolul de extragere a monezilor
Daca utilizatorul U avand identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga o moneda din
contul sau, mai ntai trebuie sa conving a banca ca ntr-adevar el este posesorul contului de unde
se face extragerea. Pentru aceasta U si B vor executa protocolul din prelegerea anterioar a, prin
care U i demonstreaza lui B cunoasterea unei reprezentari a lui I n raport cu (g
1
, g
2
), far a a
o revela.
7.4. SISTEMUL DE BAZ
A BRANDS 89
Pentru ecare extragere a unei monezi, este executat urmatorul protocol:
1. U i demonstreaza lui B cunoasterea reprezentarii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
)
prin protocolul din prelegerea anterioara.
2. B realizeaza urmatoarele operat ii:
(a) extrage din contul lui U valoarea xata a monezii;
(b) calculeaza m = Id (mod p);
(c) genereaza aleator w Z
q
;
(d) trimite lui U: z = m
x
(mod p), a = g
w
(mod p) si b = m
w
(mod p).
3. U realizeaza urmatoarele operati:
(a) calculeaza m = Id (mod p);
(b) genereaza aleator s Z
q
, u, v Z
q
;
(c) calculeaza: m
= m
s
= I
s
d
s
= g
u
1
s
1
g
u
2
s
2
d
s
(mod p),
z
= z
s
(mod p), w
= uw + v (mod q), a
= a
u
g
v
= g
w
(mod p), b
=
b
us
(m
)
v
= (m
)
w
(mod p);
(d) determina aleator a descompunere a lui m
in A si B (m
= H(m
||z
||a
||b
||A);
(f) trimite lui B mesajul c = c
u
1
(mod q).
4. B raspunde cu r = cx + w (mod q).
5. U accepta daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).
In nal, U calculeaza r
= ru + v (mod q).
Conform propozit iilor 7.1 si 7.2, n nal U este n posesia unui mesaj semnat
(A, B, sig
K
(A, B)) = (z
, a
, b
, r
)
care nu poate legat de nici o execut ie specica a protocolului.
In plus, m
= AB (mod p).
Descompunerea lui m
, A, B
n raport cu (g
1
, g
2
, d) care sunt (u
1
s, u
2
s, s), (x
1
, y
1
, z
1
) si respectiv (x
2
, y
2
, z
2
). Din Corolarul
?.1 (prelegerea precedenta), U nu poate aa doua reprezent ari ale lui m
n timp polinomial.
Cum (x
1
+ x
2
, y
1
+ y
2
, z
1
+ z
2
) este de asemenea o reprezentare a lui m
rezulta ca trebuie
ndeplinite simultan condit iile (toate modulo q):
u
1
s = x
1
+ x
2
, u
2
s = y
1
+ y
2
, s = z
1
+ z
2
.
Faptul ca U accepta n pasul 5 se deduce similar protocolului din ?.3.2.
90 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT
A BRANDS
7.4.2 Protocolul de plata
Cand U doreste sa foloseasca o moneda la magazinul S este executat urmatorul protocol:
1. U i trimite lui S:
A = g
x
1
1
g
y
1
2
d
z
1
(mod p), B = g
x
2
1
g
y
2
2
d
z
2
(mod p), sig
K
(A, B) = (z
, a
, b
, r
).
(Daca n sistem sunt monezi de valori diferite U trebuie sa trimita si valoarea mo-
nezii.)
2. S se asigura ca AB = 1.
Apoi el veric a semnatura bancii:
ver
K
(m
, sig
K
(m
)) = T
g
r
= h
c
(mod p)
(m
)
r
= (z
)
c
(mod p)
cu c
= H(AB||z
||a
||b
||A).
Daca relat iile sunt ndeplinite, S este convins ca moneda a fost emisa de banca si
trimite lui U o provocare c Z
q
\ {1}.
3. U raspunde cu
r
1
= x
1
+ cx
2
, r
2
= y
1
+ cy
2
, r
3
= z
1
+ cz
2
(toate calculele sunt modulo q).
4. S accepta daca si numai daca g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p).
Teorema 7.1
1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere a
monezii a fost executat corect, atunci S accepta la pasul 4.
2. (Consistent a) Daca U nu cunoaste cate o reprezentare a lui A, respectiv B n raport cu
(g
1
, g
2
, d), atunci nu exista strategie pentru el astfel ncat S sa accepte cu o probabilitate
de succes ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca S dispune de o putere de calcul nelimitata, iar
U si S executa protocolul pas cu pas, S nu va reusi sa ae n nal identitatea lui U cu o
probabilitate ne-neglijabila.
Demonstrat ie:
1. Daca protocolul este executat pas cu pas, la pasul 4 avem:
g
r
1
1
g
r
2
2
d
r
3
= g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
= g
x
1
1
g
y
1
2
d
z
1
(g
x
2
1
g
y
2
2
d
z
2
)
c
= AB
c
(mod p),
deci S accepta.
2. U ar trebui sa determine numerele r
1
, r
2
, r
3
Z
q
asfel nc at g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p),
ceea ce este echivalent cu determinarea unei reprezentari a lui AB
c
n raport cu (g
1
, g
2
, d),
care este o problema pe care U nu o poate rezolva n timp polinomial.
Astfel, se deduce un lucru foarte important pentru securitatea sistemului:
7.4. SISTEMUL DE BAZ
A BRANDS 91
S accepta U cunoaste cate o reprezentare a lui A si B n raport cu (g
1
, g
2
, d) si
este cinstit = U cunoaste o reprezentare a lui m
n raport cu (g
1
, g
2
, d).
Deci, daca U nu cunoaste o reprezentare a lui m
n raport cu (g
1
, g
2
, d), nu are nici o
sansa sa-l faca pe S sa accepte la pasul 4.
3. La sfarsitul protocolului, S se aa n posesia urmatoarelor informat ii:
A, B, z, a, b, r, c, r
1
, r
2
, r
3
.
Consideram sistemul (ntai cu necunoscutele u
1
, u
2
, s, r
1
, r
2
, r
3
, iar a doua oara cu ne-
cunoscutele x
1
, x
2
, y
1
, y
2
, z
1
, z
2
):
x
1
+ x
2
= u
1
s y
1
+ y
2
= u
2
s z
1
+ z
2
= s
x
1
+ cx
2
= r
1
y
1
+ cy
2
= r
2
z
1
+ cz
2
= r
3
(toate ecuat iile sunt scrise modulo q).
Din acest sistem se deduce ca problema determinarii lui (u
1
, u
2
) este echivalent a cu prob-
lema determinarii numerelor: x
1
, x
2
, y
1
, y
2
, z
1
, z
2
.
Informat iile pe care S le are despre x
1
, x
2
, y
1
, y
2
, z
1
, z
2
sunt:
x
1
+ cx
2
= r
1
(mod q) (1) A = g
x
1
1
g
y
1
2
d
z
1
(mod p) (4)
y
1
+ cy
2
= r
2
(mod q) (2) B = g
x
2
1
g
y
2
2
d
z
2
(mod p) (5)
z
1
+ cz
2
= r
3
(mod q) (3) g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p) (6)
(1) x
1
= r
1
cx
2
(mod q), (2) y
1
= r
2
cy
2
(mod q) , (3) z
1
= r
3
cz
2
(mod q)
Inlocuind x
1
, y
1
, z
1
n (4) si folosind (6) rezulta:
A = g
r
1
cx
2
1
g
r
2
cy
2
2
d
r
3
cz
2
(mod p) g
r
1
1
g
r
2
2
d
r
3
= A(g
x
2
1
g
y
2
2
d
z
2
)
c
(mod p)
g
x
2
1
g
y
2
2
d
z
2
= (A
1
g
r
1
1
g
r
2
2
d
r
3
)
1
c
= B (mod p). (7)
Relatia (7) este echivalent a cu (5), ceea ce demonstreaza ca din relat iile (1),(2) si (3) nu
se obt ine nici o informat ie n plus, deci (4) si (5) sunt de fapt singurele informat ii esent iale
pe care S le are despre x
1
, x
2
, y
1
, y
2
, z
1
, z
2
.
De aici rezulta ca determinarea lui (x
1
, y
1
, z
1
) este echivalenta cu determinarea unei
reprezent ari a lui An raport cu (g
1
, g
2
, d), iar determinarea lui (x
2
, y
2
, z
2
) este echivalenta
cu determinarea unei reprezent ari a lui B.
Daca dispune de o putere de calcul nelimitata, S poate determina o reprezentare a lui A
si o reprezentare a lui B n raport cu (g
1
, g
2
, d). Probabilitatea ca aceste reprezent ari sa
e egale cu cele cunoscute de U este
1
q
2
1
q
2
=
1
q
4
din Propozit ia ?.2 (prelegerea anterioara).
Deci probabilitatea ca S sa ae identitatea lui U dupa executarea protocolului este
1
q
4
.
7.4.3 Protocolul de depozit
Dupa un anumit interval de timp, toate magazinele depoziteaza la banca monezile electronice
primite de la client i. Protocolul executat de un magazin S cu banca pentru trimiterea ecarei
monezi este urmatorul:
92 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT
A BRANDS
1. S si B urmeaza protocolul provocare/raspuns (prelegerea anterioar a) prin care S
demonstreaza cunoasterea reprezent arii identitat ii sale n raport cu (g
1
, g
2
).
2. S trimite lui B mesajele A, B, sig
K
(A, B), c, r
1
, r
2
, r
3
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, r
3
ntr-o baza de date si crediteaza contul lui S cu valoarea monezii.
Teorema 7.2 Daca moneda (A, B, sig
K
(A, B)) apare de doua ori n baza de date a bancii,
atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de doua
ori.
Demonstrat ie:
Daca moneda (A, B, sig
K
(A, B)) apare de doua ori n baza de date, rezulta ca banca dispune
de doua seturi de raspunsuri ale lui U: (r
1
, r
2
, r
3
) si (r
1
, r
2
, r
3
ale lui S.
Din relat iile de vericare ale protocolului de plata rezulta:
g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p) (1)
g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p) (2)
Ridicand (1) la puterea c
A
c
B
cc
= g
r
1
c
1
g
r
2
c
2
d
r
3
c
(mod p)
A
c
B
cc
= g
r
1
c
1
g
r
2
c
2
d
r
3
c
(modp)
c
= g
r
1
c
r
1
c
1
g
r
2
c
r
2
c
2
d
r
3
c
r
3
c
(mod p) =
A = g
(r
1
c
r
1
c)(c
c)
1
1
g
(r
2
c
r
2
c)(c
c)
1
2
d
(r
3
c
r
3
c)(c
c)
1
(mod p) (3)
Analog se obt ine: B = g
(r
1
r
1
)(cc
)
1
1
g
(r
2
r
2
)(cc
)
1
2
d
(r
3
r
3
)(cc
)
1
(mod p) (4)
Dar A = g
x
1
1
g
y
1
2
d
z
1
(mod p) (5) si B = g
x
2
1
g
y
2
2
d
z
2
(mod p) (6)
Cum nu se cunoaste o reprezentare netriviala a lui 1 n raport cu (g
1
, g
2
, d), din (3),(4),(5)
si (6) rezulta (toate relat iile sunt modulo q):
(r
1
c
r
1
c)(c
c)
1
= x
1
(r
2
c
r
2
c)(c
c)
1
= y
1
(r
3
c
r
3
c)(c
c)
1
= z
1
(r
1
r
1
)(c c
)
1
= x
2
(r
2
r
2
)(c c
)
1
= y
2
(r
3
r
3
)(c c
)
1
= z
2
Ceea ce nseamn a ca banca poate sa calculeze:
u
1
s = x
1
+ x
2
= (r
1
c
r
1
c)(c
c)
1
+ (r
1
r
1
)(c c
)
1
(mod q) (7)
u
2
s = y
1
+ y
2
= (r
2
c
r
2
c)(c
c)
1
+ (r
2
r
2
)(c c
)
1
= y
2
(mod q) (8)
s = z
1
+ z
2
= (r
3
c
r
3
c)(c
c)
1
+ (r
3
r
3
)(c c
)
1
= z
2
(mod q) (9)
Din (9) = s = (c
c)
1
(r
3
(c
1) r
3
(c 1)) (mod q) =
s
1
= (r
3
(c
1) r
3
(c 1))
1
(c
c) (mod q) (10).
Din (7) si (10) rezulta u
1
= u
1
ss
1
= (c
c)
1
(r
1
(c
1) r
1
(c 1))(r
3
(c
1) r
3
(c
1))
1
(c
c) = (r
1
(c
1) r
1
(c 1))(r
3
(c
1) r
3
(c 1))
1
(mod q)
si analog u
2
= (r
2
(c
1) r
2
(c 1))(r
3
(c
1) r
3
(c 1))
1
(mod q),
deci banca poate sa calculeze identitatea utilizatorului necinstit. 2
7.5. CORECTITUDINEA SISTEMULUI DE BAZ
A 93
7.5 Corectitudinea sistemului de baza
Urmatoarea teorema este fundamental a pentru demonstrarea securitat ii sistemului:
Teorema 7.3
In protocolul de extragere a monezilor, U nu poate sa obt ina o semnatura asupra
unui mesaj m
, cu
m
de forma m
= m
s
g
r
1
= g
u
1
s+r
1
g
u
2
s
2
d
s
(mod p), cu s, r Z
q
arbitrare. Celelalte cazuri pentru
forma lui m
) = (z
, a
, b
, r
) n timp polinomial.
Sa vedem cat de difcila este pentru U calcularea lui b
.
b
= (m
)
w
= (m
)
uw+v
= (m
s
g
r
1
)
uw+v
= m
suw
m
sv
(g
ru
1
)
w
g
rv
1
= b
su
m
sv
g
rv
1
(g
ru
1
)
w
(mod p).
Notam g
3
= g
ru
1
= g
w
3
= g
rv
1
m
sv
b
su
b
(mod q), cu g
1
, m, b, s, u, v, r, g
3
cunoscute, iar w
necunoscut lui U (w este ales de B aleator la ecare execut ie a protocolului). Deci calcularea
lui b
care nu e multiplu de m. 2
Consecint a: Din Teoremele 7.1 si 7.3 deducem ca U poate sa obt ina o semnatura asupra
lui m
pe care o poate folosi ntr-un protocol de plata daca si numai daca impunem urmatoarele
restrict ii asupra lui m
este de forma m
s
m G
q
;
2. U cunoaste o reprezentare a lui m
n raport cu (g
1
, g
2
, d) care este multiplu al reprezent arii
lui m.
Sa enunt am cateva proprietat i importante ale sistemului:
1. Securitatea:
Din consecint a anterioara rezulta ca identitatea utilizatorului este inclusa n m
(m
=
m
s
= I
s
d
s
); astfel, daca utilizatorul foloseste moneda o singura data i este garantat a
anonimitatea.
In schimb, daca moneda este folosita de doua ori, se poate detecta identi-
tatea utilizatorului necinstit, cum am aratat n Teorema 7.2.
94 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT
A BRANDS
Securitatea acestui sistem se bazeaza pe presupunerea de NP-completitudine a problemei
reprezent arii n grupuri, a problemei determinarii cheii unice Die-Hellman si pe ipoteza
ca funct ia de dispersie folosita n sistem este far a coliziuni tari.
Falsicarea unei monezi presupune imitarea semnaturii bancii, ceea ce este calculabil
dicil. Presupunand totusi ca U fasica o moneda (m
, sig
K
(m
)) (dispunand de o
putere de calcul foarte mare), pentru a avea vreo sansa ca moneda sa i e acceptata n
protocolul de plata, trebuie sa cunoasca o reprezentare a lui m
n raport cu (g
1
, g
2
, d)
(din Teorema 7.1). Astfel, sarcina falsicatorului devine si mai dicila.
2. Anonimitatea utilizatorilor este de asemenea garantat a de Teorema 7.1.
3. Sistemul este fara legaturi.
O moneda nu poate legata de nici o execut ie specica a protocolului de extragere,
conform Propozit iei 7.2.
4. Sistemul este fara urmarire.
Tranzact iile utilizatorului nu pot urmarite de banca dupa protocolul de extragere a
monezilor.
In momentul n care moneda este depozitata n banca de catre un magazin,
banca nu poate deduce din care cont a fost extrasa init ial.
5. Sistemul este o-line.
6. Sistemul asigura protejarea utilizatorilor mpotriva acuzarii nedrepte a bancii.
Daca banca acuza un utilizator U ca a folosit o moneda de doua ori, ea trebuie sa dezvaluie
juriului o reprezentare a identitatii lui U, de exemplu (u
1
, u
2
). Daca U este onest,
reprezentarea (u
1
, u
2
) coincide cu cea cunoscuta de U cu o probabilitate
1
q
(prelegerea
anetrioara). Deci, cu o probabilitate mare (1
1
q
), cele doua reprezent ari sunt dis-
tincte. Asfel, U se aa n posesia a doua reprezentari ale lui I n raport cu (g
1
, g
2
),
deci poate calcula o reprezentare a lui 1 n raport cu (g
1
, g
2
). U prezinta juriului aceasta
reprezentare a lui 1, ceea ce constituie proba nevinovat iei sale (U nu ar putut calcula
altfel o reprezentare a lui 1, deoarece aceasta este o problema NP - completa).
7. Introducerea monezilor de valori diferite. Exista cel put in doua metode:
Banca poate sa utilizeze cate o cheie publica diferita pentru ecare tip de moneda.
Astfel, daca n sistem exista k monezi distincte, banca dispune de k chei publice:
(g, h
1
), . . . , (g, h
k
) si de k chei secrete corespunzatoare: x
1
, . . . , x
k
cu x
i
= log
g
i
h
i
,
i = 1, 2, . . . k.
Se utilizeaza k generatori d
1
, . . . , d
k
(n loc de unul singur d utilizat n sistemul de
baza). Fiecare generator d
i
reprezinta o anumit a valoare (de exemplu d
i
reprezint a
valoarea 2
i1
). Atunci se poate forma orice moneda de valoare cuprinsa ntre 1
si 2
k
folosind reprezentarea n binar a valorii monezii. Generatorul d
i
apare n
reprezentarea monezii daca bitul i din reprezentarea binara este 1.
De exemplu, pentru o moneda de valoarea 11 = 1011
2
, m = Id
4
d
2
d
1
, iar pentru o
moneda de valoare 18 = 10010
2
, m = Id
5
d
2
.
Inlocuirea lui m = Id cu m = Id
i
p
. . . d
i
1
este singura modicare realizata n proto-
coalele sistemului de baza.
Prelegerea 8
Cecuri electronice
8.1 Sistemul de plata cu cecuri nedivizibile
Sistemele de plata cu monezi electronice pot extinse n mod natural la sisteme care utilizeaza
cecuri electronice.
Ideea acestei extensii se bazeaza pe intrpducerea a k noi generatori (f
1
, . . . , f
k
) G
k
g
, unde
f
i
reprezint a o anumita valoare (de exemplu 2
i1
unitat i). Dupa cum s-a vazut n prelegerea
anterioar a, orice suma de cel mult 2
k
1 poate reprezentata ca un produs de generatori f
i
,
conform reprezentarii binare a valorii sumei.
Succesiunea de evenimente n sistemul de cecuri nedivizibile este urmatoarea:
1. Protocolul de extragere a cecului electronic:
Daca utilizatorul U (cunoscut bancii prin identitatea sa I = g
u
1
1
g
u
2
2
mod p)) doreste sa
extraga din banca un cec de valoare maxima 2
k
1, genereaza aleator (a
1
, . . . , a
k
) Z
k
q
si calculeaza m =
m
i=1
f
a
i
i
(mod p). Banca extrage din contul lui U valoarea 2
k
1 si
stocheaz a ntr-o baza de date identitatea lui U mpreuna cu m.
2. Protocolul de plata:
Utilizatorul U doreste sa foloseasca la magazinul S o suma de valoare mai mica sau egala
cu 2
k
1 (presupunem, pentru claritate, k 3 si U utilizeaza suma de 5 = 101
2
unitat i).
Atunci, U trebuie sa i releve lui S: valorile A, B, semnatura pe care a obt inut-o de
la banca asupra lui (A, B) si numerele (a
1
, a
3
), corespunzatoare reprezent arii n binar a
valorii sumei.
3. Protocolul de depozit:
Magazinul S depoziteaza la banca cecul electronic (A, B, sig
K
(A, B)) mpreun a cu partea
folosita din cec: (a
1
, a
3
). Banca stocheaz a perechea (a
1
, a
3
) ntr-o lista de recuperare.
4. Protocolul de recuperare a sumei nefolosite:
Utilizatorul U doreste sa recupereze suma din cec pe care nu a utilizat-o (corespunzatoare
generatorilor f
2
, f
4
, . . . , f
k
). U trimite bancii (A, B, sig
K
(A, B) si (a
2
, a
4
, . . . , a
k
). Banca
veric a faptul ca m = AB este asociat cu I n baza sa de date si ca (a
2
, a
4
, . . . , a
k
) nu
sunt pe lista de recuperare.
95
96 PRELEGEREA 8. CECURI ELECTRONICE
Daca banca accepta, ea sterge din baza de date m si crediteaza contul lui U cu suma
nefolosita din cec: 2
k
1 5 = 2
k
6.
Deoarece cecul este nedivizibil, un utilizator are dreptul sa foloseasca un cec o singura
data. Daca nu a utilizat valoarea maxima a cecului, U trebuie sa urmeze mpreun a cu banca
protocolul de recuperare.
Vom construi mai tarziu si un sistem de cecuri cu proprietatea de divizibilitate.
8.1.1 Init ializarea sistemului de cecuri
Numerele p, q, g, x, h, g
1
, g
2
, funct ia de dispersie H si subgrupul G
q
al lui Z
q
sunt generate ca
n sistemul de baza. Apoi, banca genereaza urmatoarele numere:
Doua tupluri generatoare de lungime k: (e
1
, . . . , e
k
) G
k
q
si (f
1
, . . . , f
k
) G
k
q
.
Doi generatori: d
1
, d
2
G
k
q
.
Deschiderea unui cont se similar ca n sistemul de baza, utilizatorul U ind cunoscut prin
pseudonimul sau I = g
u
1
1
g
u
2
2
(mod p), cu u
1
, u
2
generate aleator n Z
q
.
Un cec electronic este de forma (m
, sig
K
(m
)) cu restrict ia ca exista s Z
q
cu m
=
m
s
(mod p), unde m cont ine de aceasta data atat identitatea utilizatorului care a extras cecul,
cat si valoarea maxima a cecului:
m = (
2
i=1
g
u
i
i
)d
z
1
1
. .
identitate
(
k
i=1
e
a
i
i
f
b
i
i
)d
a
k+1
2
. .
valoare
(mod p)
Rolul generatorului d
1
este acelasi ca n sistemul de baza (sa asigure ca identitatea utiliza-
torului ram ane ascunsa daca acesta este onest), iar rolul lui d
2
va sa mpiedice realizarea de
legaturi de catre banca dupa protocolul de recuperare.
8.1.2 Protocolul de extragere a cecurilor
Presupunand ca utilizatorul U cu identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga un cec de
valoare maxima 2
k
1, U si B urmeaza protocolul urmator:
1. U i demonstreaza lui B cunoasterea reprezentarii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
),
prin protocolul din Prelegerea ? (cunoasterea unei reprezentari).
2. U genereaza aleator 2k + 1 numere distincte a
1
, a
2
, . . . , a
k+1
, b
1
, b
2
, . . . , b
k
Z
q
.
Apoi U calculeaza m
1
= (
k
i=1
e
a
i
i
f
b
i
i
)d
a
k+1
2
si trimite m
1
lui B.
3. B efectueaza urmatoarele operat ii:
(a) extrage din contul lui U valoarea maxima a cecului;
(b) stocheaza m
1
si I ntr-o baza de date a cecurilor emise;
(c) calculeaza m
2
= Id
1
(mod p), m = m
1
m
2
(mod p);
8.1. SISTEMUL DE PLAT
A CU CECURI NEDIVIZIBILE 97
(d) genereaza aleator w Z
q
;
(e) trimite lui U numerele z = m
x
(mod p), a = g
w
(mod p) si b = m
w
(mod p).
4. U realizeaza urmatoarele operat ii:
(a) calculeaza m
2
= Id
1
(mod p), m = m
1
m
2
(mod p);
(b) genereaza aleator s Z
q
, u, v Z
q
;
(c) calculeaza m
= m
s
= m
s
1
m
s
2
= g
u
1
s
1
g
u
2
s
2
d
s
1
(
k
i=1
e
a
i
s
i
f
b
i
s
i
)d
a
k+1
s
2
(mod p);
z
= z
s
(mod p), w
= uw + v (mod q), a
= a
u
g
v
= g
w
) (mod p), b
=
b
us
(m
)
v
= (m
)
w
) (mod p);
(d) U determina aleator o descompunere a lui m
n A si B (m
i=1
e
iA
i
f
iA
i
)d
A
2
(mod p), B = g
x
2
1
g
y
2
2
d
z
2
1
(
k
i=1
e
iB
i
f
iB
i
)d
B
2
(mod p) si
c
= H(m
||z
||a
||b
||A);
(e) trimite lui B numarul c = c
u
1
(mod q).
5. B raspunde cu r = cx + w (mod q).
6. U accepta protocolul daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).
In nal, el calculeaza r
= ru + v (mod q).
(z
, a
, b
, r
, sig
K
(m
)) nu pot
legate de nici o execut ie specica a protocolului.
Demonstrat ia este similara celei de la Propozitia ?.2, aratand ca exista exact q valori posibile
pentru (s, u, v) care produc aceeasi pereche (m
, sig
K
(m
)). 2
Propozit ia 8.2
In protocolul de extragere a monezilor, U nu poate sa obt ina o semnatura
asupra unui mesaj m
, unde m
= m
s
cu m = g
u
1
+t
1
g
u
2
2
d
1
(mod p). Apoi, U ar putea sa foloseasca aceasta semnatura ca o moneda si
ar ncalca armat iile demonstrate n Teorema ?.2, cu consecint e asupra securitat ii sistemului.
Sa demonstram acest lucru.
Propozit ia 8.3 Daca utilizatorul U foloseste de doua ori n sistemul de baza o moneda de
forma (m
, sig
K
(m
)) cu m
= m
s
(mod p) si m = g
u
1
+t
1
g
u
2
2
d
1
(mod p), t ales aleator n Z
q
,
atunci B nu are suciente informat ii pentru a determina identitatea lui U cu o probabilitate
ne-neglijabila.
Demonstrat ie:
Similar demonstrat iei Teoremei ?.2, B poate calcula
(u
1
+ t)s = x
1
+ x
2
= (r
1
c
r
1
c)(c
c)
1
+ (r
1
r
1
)(c c
)
1
(mod q),
u
2
s = y
1
+ y
2
= (r
2
c
r
2
c)(c
c)
1
+ (r
2
r
2
)(c c
)
1
= y
2
(mod q),
s = z
1
+ z
2
= (r
3
c
r
3
c)(c
c)
1
+ (r
3
r
3
)(c c
)
1
= z
2
(mod q),
unde r
1
, r
2
, r
3
, respectiv r
1
, r
2
, r
3
q
, B are q 1 posibilitat i
de alegere pentru t, deci cunoaste identitatea lui U cu probabilitatea
1
q 1
2
8.1.3 Protocolul de plata
Daca U doreste sa foloseasca suma 2
j
1 din cecul sau (corespunzatoare generatorilor
(e
1
, f
1
), . . . , (e
j
, f
j
)) la magazinul S, este este parcurs urmatorul protocol:
1. U i trimite lui S numerele A, B, sig
K
(A, B) = (z
, a
, b
, r
).
De asemenea, el l informeaza pe S asupra sumei pe care doreste sa o utilizeze (2
j
1 n
acest caz).
2. S se asigura ca AB = 1.
Apoi el veric a semnatura bancii: ver
K
(m
, sig
K
(m
) = T
_
g
r
= h
c
(mod p)
(m
)
r
= (z
)
c
(mod p)
cu c
= H(AB||z
||a
||b
||A)
si trimite lui U o provocare c Z
q
\ {1}.
3. U verica daca c = 1, apoi calculeaza si trimite lui S raspunsurile:
for i = 1 to j do r
i
= (r
i1
, r
i2
, r
i3
, r
i4
) (
iA
,
iB
,
iA
,
iB
)
for i = j + 1 to k do r
i
= (r
i1
, r
i2
) (
iA
+ c
iB
,
iA
+ c
iB
)
r
k+1
= (r
(k+1)1
, r
(k+1)2
, r
(k+1)3
) (x
1
+ cx
2
, y
1
+ cy
2
, z
1
+ cz
2
)
r
k+2
A
+ c
B
.
8.1. SISTEMUL DE PLAT
A CU CECURI NEDIVIZIBILE 99
Pentru ecare generator care apare n expresia sumei, U releva puncte, iar pentru gener-
atorii care nu apar, U releva drepte.
4. S accepta
_
_
r
13
+ r
14
= 0 . . . r
j3
+ r
j4
= 0
AB = 1
AB
c
=
j
i=1
e
r
i1
i
f
r
i3
i
_
_
j
i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k
i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
(mod p)
Teorema urmatoare este o consecint a imediata a Teoremei ?.1:
Teorema 8.1
1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere a
cecului electronic a fost executat corect, atunci S accepta n pasul 4.
2. (Consistent a) Daca U nu cunoaste cate o reprezentare a lui A respectiv B n raport
cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), atunci nu exista strategie pentru el astfel ncat S sa
accepte cu o probabilitate de succes ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca S dispune de o putere de calcul nelimitata, iar
U si S executa protocolul pas cu pas, S nu va reusi sa ae n nal identitatea lui U cu o
probabilitate ne-neglijabila.
Demonstrat ie:
1. Daca protocolul este executat pas cu pas, la pasul 4 avem:
r
i3
+ r
i4
=
iA
+
iB
= b
i
s, i, 1 i j.
Cum b
i
= 0, s = 0 daca U urmeaza protocolul, rezulta r
i3
+ r
i4
= 0, i, 1 i j.
m
= m
s
, s = 0 = m
= 1 = AB = 1.
j
i=1
e
r
i1
i
f
r
i3
i
_
_
j
i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k
i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
=
j
i=1
e
iA
i
f
iA
i
_
_
j
i=1
e
iB
i
f
iB
i
_
_
c
_
_
k
i=j+1
e
iA
+c
iB
i
f
iA
+ciB
i
_
_
g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
1
d
A
+c
B
2
=
g
x
1
1
g
y
1
2
d
z
1
1
_
k
i=1
e
iA
i
f
iA
i
_
d
A
2
_
g
x
2
1
g
y
2
2
d
z
2
1
_
k
i=1
e
iB
i
f
iB
i
_
d
B
2
_
c
= AB
c
(mod p)
deci S accepta n pasul 4.
2. U ar trebui sa determine numerele r
1
, r
2
, . . . , r
k+2
Z
q
astfel ncat
AB
c
=
j
i=1
e
r
i1
i
f
r
i3
i
_
_
j
i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k
i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
(mod p),
ceea ce este echivalent cu determinarea unei reprezent ari a lui AB
c
n raport cu
(g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), care este o problema pe care U nu o poate rezolva n timp
polinomial.
100 PRELEGEREA 8. CECURI ELECTRONICE
Similar demonstrat iei Teoremei ?.1, se deduce ca daca U nu cunoaste o reprezentare a
lui m
n raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), nu are nici o sans a sa-l faca pe S sa
accepte la pasul 4.
3. La sfarsitul protocolului, S se aa n posesia urmatoarelor informat ii:
A, B, z
, a
, b
, r
, c, r
1
, r
2
, . . . , r
k+2
.
Analog demonstrat iei folosite la Teorema ?.1, se deduce ca problema determinarii lui
(u
1
, u
2
) este echivalenta cu problema determinarii numerelor: x
1
, x
2
, y
1
, y
2
, z
1
, z
2
. Deter-
minarea lui (x
1
, y
1
, z
1
) se poate face doar prin determinarea unei reprezent ari a lui A n
raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), iar determinarea lui (x
2
, y
2
, z
2
) prin aarea unei
reprezent ari a lui B.
Daca dispune de o putere de calcul nelimitata, S poate sa determine o reprezentare a lui
A si o reprezentare a lui B n raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
). Probabilitatea ca
aceste reprezentari sa e egale cu cele cunoscute de U este (cf. Propozit iei ?.4)
1
q
2k+3
. Deci
probabilitatea ca S sa ae identitatea lui U dupa executarea protocolului, este neglijabila.
2
8.1.4 Protocolul de depozit
Pentru a depozita un cec electronic, magazinul S urmeaza mpreuna cu B protocolul urmator:
1. S demonstreaza lui B cunoasterea reprezent arii identit at ii sale n raport cu (g
1
, g
2
), prin
protocolul din Prelegerea ?.
2. S trimite lui B numerele: A, B, sig
K
(A, B), c, r
1
, r
2
, . . . r
k+2
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, . . . , r
k+2
ntr-o baza de date si crediteaza contul lui S cu valoarea cecului.
, sig
K
(m
)) (core-
spunzatoare generatorilor (e
j+1
, f
j+1
), . . . , (e
k
, f
k
)), el urmeaza mpreun a cu banca urmatorul
protocol:
1. U i trimite lui B identitatea sa I mpreun a cu m
1
.
2. B verica daca m
1
este asociat lui I n baza de date a cecurilor emise.
8.1. SISTEMUL DE PLAT
i=j+1
e
a
i
i
f
b
i
i
_
_
1
(mod p) n raport cu (e
1
, f
1
, . . . , e
j
, f
j
, d
2
).
6. Daca B accepta proba lui U, el crediteaza contul lui U cu suma corespunzatoare si imtro-
duce a
i
(b
i
)
1
, i = j + 1, . . . , k n lista de recuperare. Apoi sterge m
1
din baza de date a
cecurilor emise
Teorema 8.2 Presupunand ca protocoalele de extragere, de plata si de depozit sunt executate
corect, daca U este necinstit n protocolul de recuperare, atunci B nu accepta sa-i returneze
suma ceruta la pasul 6.
Demonstrat ie:
, b
i
, b
i
), j <
i k astfel nc at sa cunoasca o reprezentare a lui m
1
_
_
k
i=j+1
e
a
i
i
f
b
i
i
_
_
1
n raport cu
(e
1
, f
1
, . . . , e
j
, f
j
, d
2
). Acest lucru este echivalent pentru U cu determinarea numerelor
a
i
, (1 i k + 1) si b
i
, (1 i k) astfel nc at:
m
1
_
_
k
i=j+1
e
a
i
i
f
b
i
i
_
_
1
=
_
_
j
i=1
e
a
i
i
f
b
i
i
_
_
d
a
k+1
2
m
1
=
_
k
i=1
e
a
i
i
f
b
i
i
_
d
a
k+1
2
(mod q).
Deoarece protocolul de extragere a fost executat corect, avem:
m
1
=
_
k
i=1
e
a
i
i
f
b
i
i
_
d
a
k+1
2
(mod q).
Cum U nu poate determina n timp polinomial doua reprezentari diferite ale lui m
1
n
raport cu (e
1
, f
1
, . . . , e
K
, f
K
, d
2
), rezulta ca a
i
= a
i
, i {1, 2, . . . , k +1} si b
i
= b
i
, i
{1, 2, . . . , k}.
Am demonstrat astfel ca U este obligat sa foloseasca n protocolul de recuperare perechi (a
i
, b
i
)
care au fost generate n protocolul de extragere. Deci n niciunul din cele doua cazuri, B nu
accepta sa-i returneze lui U suma ceruta, iar alta strategie pentru U nu exista. 2
102 PRELEGEREA 8. CECURI ELECTRONICE
Din punct de vedere al securitat ii, sistemul de cecuri este echivalent cu sistemul de baza,
toate proprietat ile demonstrate pentru sistemul de baza raman and valabile si la sistemul de
cecuri.
Sistemul de cecuri nu este ns a ecient, deoarece orice cec poate utilizat o singura data, iar
dupa protocolul de plata utilizatorul este obligat sa urmeze mpreun a cu banca protocolul de
recuperare. Aceste dezavantaj poate eliminat part ial folosind un protocol de cecuri divizbile.
8.2 Sistemul de plata cu cecuri divizibile
Un cec divizibil este caracterizat de o valoare maxima si de proprietatea de divizibilitate:
utilizatorul care a extras cecul din banca poate sa utilizeze parti ale lui n diferite tranzact ii, cu
condit ia sa nu depaseasca suma maxima.
In orice moment, utilizatorul poate sa ceara bancii
sa-i returneze suma neutilizata a cecului, caz n care banca si utilizatorul vor urma protocolul
de recuperare.
Pentru a obt ine proprietatea de divizibilitate, modicam sistemul de plata cu cecuri nedi-
vizibile n felul urmator:
1. La init ializarea sistemului, banca genereaza toate numerele si tuplurile generatoare folosite
n sistemul de cecuri nedivizibile.
In plus, banca genereaza nc a un tuplu generator
(h
1
, h
2
, . . . , h
k
) G
k
q
.
2. Un cec electronic este reprezentat sub forma (m
, sig
k
(m
)) cu restrict ia ca exista s Z
q
astfel nc at m
= m
s
(mod p), unde forma lui m este de aceasta data:
m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k
i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p),
cu a
1
, . . . , a
k+1
, b
1
, . . . , b
k
, r alese aleator de U la pasul al doilea al protocolului de ex-
tragere.
Valoarea cecului este data de termenii de forma e
a
i
i
f
b
i
i
h
a
i
r
i
(n acest caz ea este 2
k
1),
iar generatorii d
1
si d
2
au acelasi rol ca n sistemul de cecuri nedivizibile.
Sa arat am cum se modica n acest caz protocoalele de extragere a cecurilor, de plata si de
depozit.
8.2.1 Protocolul de extragere a cecurilor electronice divizibile
Presupunand ca utilizatorul U cu identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga un cec de
valoare maxima 2
k
1, U si B urmeaza protocolul urmator:
1. U i demonstreaza lui B cunoasterea reprezent arii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
) prin
protocolul din Prelegerea ?.
2. U genereaza aleator 2k + 2 numere distincte a
1
, a
2
, . . . , a
k+1
, b
1
, . . . , b
k
Z
q
. Apoi el
calculeaza m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k
i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p) si trimite m lui B.
3. B realizeaza urmatoarele operat ii:
8.2. SISTEMUL DE PLAT
q
, u, v Z
q
;
(b) calculeaza: m
= m
s
= (g
u
1
rs
1
g
u
2
rs
2
d
s
1
)
k
i=1
_
e
a
i
s
i
f
b
i
s
i
h
a
i
rs
i
_
d
a
k+1
s
2
(mod p),
z
= z
s
(mod p), w
= uw + v (mod q), a
= a
u
g
v
(= g
w
) (mod p),
b
= b
us
(m
)
v
(= (m
)
w
) (mod p),
(c) determina o descompunere aleatoare m
i=1
e
a
i
s
i
f
b
i
s
i
h
iA
i
_
d
A
2
(mod p),
B = (g
x
2
1
g
y
2
2
d
z
2
1
)
_
k
i=1
h
iB
i
_
d
B
2
(mod p) si c
= H(m
||z
||a
||b
||A),
(e) trimite lui B numarul c = c
u
1
(mod q).
5. B raspunde cu r = cx + w (mod q).
6. U accepta daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).
In nal, U calculeaza r
= ru + v (mod q).
(z
, a
, b
, r
, a
, b
, r
).
, sig
K
(m
) = T
_
g
r
= h
c
(mod p)
(m
)
r
= (z
)
c
(mod p)
104 PRELEGEREA 8. CECURI ELECTRONICE
cu c
= H(AB||z
||a
||b
||A)
si trimite o provocare c Z
q
\ {1}.
3. U verica daca c = 1, apoi calculeaza si trimite lui S raspunsurile:
for i = 1 to j do r
i
= (r
i1
, r
i2
, r
i3
) (a
i
s, b
i
s,
iA
+ c
iB
)
r
k+1
= (r
(k+1)1
, r
(k+1)2
, r
(k+1)3
) (x
1
+ cx
2
, y
1
+ cy
2
, z
1
+ cz
2
)
r
k+2
A
+ c
B
r
k+3
k
i=j+1
e
a
i
s
i
f
b
i
s
i
h
iA
+c
iB
i
.
Pentru ecare generator (e
i
, f
i
, h
i
) care apare n expresia sumei, U releva puncte pentru
exponent ii lui e
i
si f
i
si o dreapta pentru exponentul lui h
i
, iar pentru generatorii care nu
apar, U nu releva nimic.
4. S accepta
_
_
r
i1
, r
i2
= 0, i = 1, . . . , j
AB = 1
AB
c
= (g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
)
j
i=1
(e
r
i1
i
f
r
i2
i
h
r
i3
i
) d
r
k+2
2
r
k+3
(mod p)
Propozit ia 8.5 (Completitudinea) Daca U este onest n protocolul de plata, atunci S ac-
cepta la pasul 4.
Demonstrat ie:
Daca protocolul este executat pas cu pas, la pasul 4 avem r
i1
= a
i
s, r
i2
= b
i
s, i, (1 i j).
Cum a
i
= 0, b
i
= 0, s = 0 rezulta r
i1
= 0, r
i2
= 0, i, (1 i j).
m
= m
s
, s = 0 = m
1 = AB = 1.
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
_
j
i=1
(e
r
i1
i
f
r
i2
i
h
r
i3
i
) d
r
k+2
2
r
k+3
=
=
_
g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
1
_
j
i=1
_
e
a
i
s
i
f
b
i
s
i
h
iA
+c
iB
i
_
d
A
+c
B
2
k
i=j+1
_
e
a
i
s
i
f
b
i
s
i
h
iA
+c
iB
i
_
=
= (g
x
1
1
g
y
1
2
d
z
1
1
)
k
i=1
_
e
a
i
s
i
f
b
i
s
i
h
iA
i
_
d
A
2
_
(g
x
2
1
g
y
2
2
d
z
2
1
)
_
k
i=1
h
iB
i
_
d
B
2
_
c
= AB
c
(mod p)
8.2.3 Protocolul de depozit
Pentru a depozita un cec electronic, magazinul S urmeaza mpreun a cu B protocolul
urmator:
1. S demonstreaza lui B cunoasterea reprezent arii identitat ii sale n raport cu (g
1
, g
2
) prin
protocolul din Prelegerea ?.
2. S trimite lui B numerele A, B, sig
K
(A, B), c, r
1
, r
2
, . . . r
j
, r
k+1
, r
k+2
, r
k+3
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, . . . , r
j
,
r
k+1
, r
k+2
, r
k+3
ntr-o baza de date si crediteaza contul lui S cu valoarea cecului.
B introduce n lista de recuperare termenii r
i1
(r
i2
)
1
(mod q), pentru 1 i j.
8.2. SISTEMUL DE PLAT
, r
1
, r
k+1
,
r
k+2
, r
k+3
, unde c = c
= x
1
+ c
x
2
(mod q)
Acesta este un sistem liniar cu determinantul c
)
1
)
1
(c
1
r
(k+1)1
(c
)
1
r
(k+1)1
) (mod q)
x
2
= (c c
)
1
(r
(k+1)1
r
(k+1)1
) (mod q)
Analog se determina:
_
y
1
= (c
1
(c
)
1
)
1
(c
1
r
(k+1)2
(c
)
1
r
(k+1)2
) (mod q)
y
2
= (c c
)
1
(r
(k+1)2
r
(k+1)2
) (mod q)
_
z
1
= (c
1
(c
)
1
)
1
(c
1
r
(k+1)3
(c
)
1
r
(k+1)3
) (mod q)
z
2
= (c c
)
1
(r
(k+1)3
r
(k+1)3
) (mod q)
_
1A
= (c
1
(c
)
1
)
1
(c
1
r
13
(c
)
1
r
13
) (mod q)
1B
= (c c
)
1
(r
13
r
13
) (mod q)
Apoi se pot calcula:
_
u
1
rs = x
1
+ x
2
(mod q) (1) u
2
rs = y
1
+ y
2
(mod q) (2)
s = z
1
+ z
2
(mod q) (3) a
1
rs =
1A
+
1B
(4)
Din r
11
= a
1
s si din (4) rezulta r = (a
1
rs)(a
1
s)
1
= (
1A
+
1B
)r
1
11
(mod q) (5).
Din (1), (2) si (3) se pot calcula:
_
u
1
r = (u
1
sr)(s)
1
= (x
1
+ x
2
)(z
1
+ z
2
)
1
(mod q)
u
2
r = (u
2
sr)(s)
1
= (y
1
+ y
2
)(z
1
+ z
2
)
1
(mod q)
Din (5) va rezulta acum:
u
1
= (u
1
r)r
1
= (x
1
+ x
2
)(z
1
+ z
2
)
1
[(
1A
+
1B
)r
1
11
] = (x
1
+ x
2
)(z
1
+ z
2
)
1
r
11
(
1A
+
1B
)
1
(mod q), u
2
= (y
1
+ y
2
)(z
1
+ z
2
)
1
r
11
(
1A
+
1B
)
1
(mod q).
Deci B a calculat identitatea lui U: (u
1
, u
2
).
2. Valoarea unui cec ind 2
k
1, putem presupune ca U utilizeaza n primul protocol de
plata valoarea 2
j
1 (corespunzatoare generatorilor (e
1
, f
1
, h
1
), . . . , (e
j
, f
j
, h
j
)), iar n al
doilea protocol, valoarea 2
k
2
j
(corespunzatoare generatorilor (e
j+1
, f
j+1
, h
j+1
), . . . ,
(e
k
, f
k
, h
k
)). Atunci B se va aa n posesia informat iilor:
106 PRELEGEREA 8. CECURI ELECTRONICE
A, B, c, r
1
, . . . , r
j
, r
k+1
, r
k+2
, r
k+3
, c
, r
j+1
, . . . , r
k
, r
k+1
, r
k+2
, r
k+3
.
Valorile x
1
, x
2
, y
1
, y
2
, z
1
, z
2
se determina la fel ca n demonstrat ia primului punct, iar
pentru
A
,
B
avem:
_
A
= (c
1
(c
)
1
)
1
(c
1
r
k+2
(c
)
1
r
k+2
) (mod q)
B
= (c c
)
1
(r
k+2
r
k+2
) (mod q)
r
i1
= a
i
s, r
i2
= b
i
s, (1 i j), r
i1
= a
i
s, r
i2
= b
i
s, (j + 1 i k).
Cum s = z
1
+ z
2
(mod q) =
_
_
a
i
= r
i1
(z
1
+ z
2
)
1
(mod q)i = 1, . . . , j
a
i
= r
i1
(z
1
+ z
2
)
1
(mod q)i = j + 1, . . . , k
a
k+1
= (
A
+
B
)(z
1
+ z
2
)
1
(mod q)
b
i
= r
i2
(z
1
+ z
2
)
1
(mod q), i = 1, . . . , j
b
i
= r
i2
(z
1
+ z
2
)
1
(mod q), i = j + 1, . . . , k
u
1
rs, u
2
rs, u
1
r, u
2
r se calculeaza identic cu primul punct.
B mai stie ca m
= m
s
(mod p). Din m
si s = z
1
+ z
2
(mod q), B va determina
m = (m
)
1
s
(mod p).
Dar m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k
i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p) md
1
1
_
k
i=1
e
a
i
i
f
b
i
i
_
1
d
a
k+1
2
=
_
I
k
i=1
h
a
i
i
_
r
(mod p).
Notand m
1
= md
1
1
_
k
i=1
e
a
i
i
f
b
i
i
_
1
d
a
k+1
2
si m
2
=
k
i=1
h
a
i
i
, obt inem m
1
= (Im
2
)
r
(mod p)
cu m
1
, m
2
cunoscute.
B trebuie sa determine identitatea lui U din urmatoarea ecuat ie cu necunoscutele I si r:
m
1
= (Im
2
)
r
(mod p).
Ecuat ia are exact q 1 solut ii: pentru ecare valoare a lui r Z
q
, se determina n mod
unic I = m
1
r
1
m
1
2
(mod p).
Deci B determina I (identitatea lui U), cu probabilitatea
1
q1
. 2
Protocolul de recuperare este identic cu cel pentru sistemul de cecuri nedivizibile, Teorema
8.2 ram anand adevarat a si n cazul sistemului de cecuri care accepta divizibilitatea.
Se observa ca n protocolul de plata U trebuie sa releve m
In aceasta prelegere vom prezenta cateva protocoale de vot care sa ndeplineasca cat mai multe
din aceste cerint e.
9.2 Protocol independent de vot
Cele mai simple protocoale de vot nu folosesc nici o autoritate, bazajndu-se numai pe alegatori.
Sunt primele protocoale concepute pentru votare, bazate pe aplcari succesive de criptari si/sau
semnari digitale de mesaje. Anonimitatea se obt ine prin aplicarea de permut ari n diverse faze.
Pentru exemplicare, prezent am protocolul lui Michael Merritt:
Sunt N alegatori, ecare alegator i av and cheia publica de criptare e
i
si cheia privata d
i
,
precum si o semnatur a electronica sig
i
. Protocolul este urmatorul;
1. Fiecare alegator i ataseaz a un num ar aleator r
i
la votul sau m
i
.
1
Este celebra declarat ia dictatorului rus I.V.Stalin: Nu este important pe cine voteaza lumea; important este
cine numara voturile.
9.3. PROTOCOL CU AUTORITATE CENTRRAL
A 109
2. Cripteaza perechea (m
i
, r
i
) cu cheile publice ale tuturor alegatorilor n ordinea 1, . . . , N,
obt in and secvent a e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .).
3. Repeta pasul anterior, adaug and dupa ecare criptare cate un numar aleator R
i
distinct
(pe care-l trimite lui i). Se obt ine
e
N
(R
N
, e
N1
(. . . (R
2
, e
1
(R
1
, e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .)
4. Toate aceste voturi sunt stranse de alegatorul N. Fiecare alegator i:
(a) Decripteaza mesajul cu cheia sa secreta d
i
, scoate num arul R
i
si se asigura ca este
pe lista numerelor aleatoare primite.
(b) Amesteca cele N voturi si le trimite lui i 1 (alegatorul 1 le trimite lui N).
Dupa afectuarea acestui pas, alegatorul N dispune de N mesaje de forma
e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .).
pe care le semneaza cu semnatura sa sig
N
.
5. Procedeul se reia, ecare alegator i:
(a) Veric a validitatea semnaturii alegatorului i + 1;
(b) Decripteaza mesajele primite;
(c) Aplica propria sa semnatur a sig
i
si trimite lui i 1 cele N mesaje de forma
sig
i
(e
i
(. . . (e
1
(m
i
, r + i) . . .).
6. Tot i alegatorii conrma semnatura alegatorului 1. Voturile sunt num arate n comun,
ecare alegator putandu-se convinge de existent a votului sau datorita num arului aleator
atasat.
In timpul procesului de votare numarul de voturi este constant, deci pierderea sau adaugarea
unui vot este usor de detectat.
Amestecul voturilor asigura anonimitatea.
De asemenea, voturile nu pot nlocuite; o astfel de ncercare pe parcursul primei runde este
depistata prin num arul aleator introdus incorect. Daca alegatorul i nlocuieste votul alegstorului
j (j > i), atunci alegatorul j va detecta acest lucru la nceputul celei de-a doua runde de
decriptari (pasul 5).
O ncercare de nlocuire pe parcursul celei de-a doua runde este depistata la decriptarea
nala cand ecare alegator si veric a prpriul sau numar r
i
.
Un defect major al acestui protocol consta n implementarea dicila datorata numarului
mare de calcule, dependent de num arul de votant i N.
9.3 Protocol cu autoritate centrrala
Pentru micsorarea volumului de calcule se poate itnroduce o noua entitate care se ocupa cu
nregistrarea alegatorilor; ea este numit a de obicei autoritate centrala (AC). Prezentam o
variant a de protocol cu autoritate centrala. Se presupune ca prin carta de alegator, ecare
persoana k dispune de doua chei e
k
(publica) si d
k
(secreta).
110 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
1. AC ntreaba ecare alegator daca doreste sau nu sa participe la alegeri.
2. Se publica o lista cu tot i alegatorii nregistrat i.
3. Fiecare alegator primeste de la AC un ID (printr-un protocol de dezvaluire part ial a a
secretelor)
4. Fiecare alegator i trimite spre AC perechea (ID, e
i
(ID, m)).
5. AC publica e
i
(ID, m) pentru tot i alegatorii de pe lista de la punctul (2).
6. Fiecare alegator i trimite anonim spre AC perechea (ID, d
i
).
7. AC asociaza mesajele dupa ID, le decripteaza, verica autenticitatea voturilor si publica
perechile (ID, m) pentru tot i participant ii la vot.
Acest sistemmpiedica atat alegatorii neautorizat i sa voteze, cat si pe cei neautorizat i sa voteze
de doua ori. Alegatorilor nu li se pot aa identitatea reala, deoarece ecare ID se obt ine printr-
un protocol de dezvaluire part iala a secretelor, deci AC nu stie la cine a ajuns ecare ID.
Exista si n acest protocol cateva neajunsuri. Primul si cel mai important este acela ca
o autoritate centrala reprezint a un punct de corupt ie asupra caruia nu exista control. ea poate
falsica voturi n numele alegatorilor care se abt in, poate pierde voturi valide (nici un alegator
nu poate demonstra ca a trimis ntr-adevar un vot).
In plus, implementarea sa ramane destul
de complexa.
O prima idee de mbunat at ire a sistemului a constat n introducerea mai multor autoritat i
centrale, dependente una de alta. De exemplu, se pot introduce doua autoritat i: una care se
ocupa de legitimitatea alegatorilor (sa i spunem AL - agente de legimitate), alta care se ocupa
de num ararea efectiva a voturilor (AT - agent ie de tabulare). Un vot valid trebuie sa treaca
prin ambele agent ii pentru validare. Prima recunoaste dreptul alegatorului de a vota (fara a
vedea cont inutul votului), eliberandu-i un buletin. A doua agent ie primeste votul mpreuna cu
buletinul de validare. O varianta de astfel de protocol (n ipoteza ca cele doua agent ii nu se
aliaza pentru falsicarea vot arii) este:
1. Fiecare alegator (dupa demonstrarea identitat ii sale) solicita AL un num ar de autenti-
care.
2. AL genereaza aleator numere de autenticare si le distribuie.
3. AL trimite spre AT lista tuturor numerelor de autenticare.
4. Fiecare votant alege aleator un ID (num ar de validare) si trimite spre AT un triplet
format din numarul de autenticare, ID si votul sau.
5. AT veric a numarul de autenticare si daca este pe lista l bifeaza si publica votul
mpreun a cu nunm arul de validare.
9.4. PROTOCOLUL MU-VARADHARAJAN 111
9.4 Protocolul Mu-Varadharajan
Dupa 1986 au fost publicate diverse protocoale de vot, ecare av and avantajele si dezavantajele
sale. A se vedea de exemplu [1] (primul protocol de vot utilizabil pe scara larga), [2], [4], [7],
[8], [9].
In continuarea acestei prelegeri vom prezenta un protocol de vot electronic pentru o ret ea
informatica (bazat pe schemele de semnatur a electronica ElGamal si RSA) propus de Mu si
Varadjarajan n 1998 ([6]). Ulterior n [3] sunt demonstrate si corectate cateva slabiciuni.
Componentele protocolului Mu-Varadharajan sunt:
V - mult ime nita nevida de votant i;
AS - un server de autenticare a votantilor;
V S - o mult ime nita de servere de votare;
TCS - un server de num arare a buletinelor de vot;
CA - un certicat de autenticitate.
Protocolul cont ine trei etape:
1. Obt inerea buletinului de vot;
2. Votarea (si colectarea buletinelor de vot);
3. Numararea buletinelor de vot.
9.4.1 Init ializarea
Vom nota cu p un num ar prim mare si cu t stampila de timp. De asemenea, va reprezenta
concatenarea secvent elor si b.
p
. Pe baza lor calculeaza parametrii
a = g
r
(mod p),
x
1
= gb
e
AS
(mod n
AS
), (1)
x
2
= g
k
1
b
e
AS
(mod n
AS
),
x
3
= ab
e
AS
(mod n
AS
) (2)
si trimite lui AS cvadruplul (V, AS, Cert
V
, (x
1
x
2
x
3
t)
d
V
(mod n
V
)).
2. AS verica ntai validitatea certicatului si valideaza semnatura
(x
1
x
2
x
3
t)
d
V
(mod n
V
)). Apoi AS alege un num ar aleator k
2
si calculeaza
x
4
= (k
2
t)
e
V
(mod n
V
)
x
5
= (x
3k
2
1
x
2
2
x
3
)
d
AS
(mod n
AS
) = (y
1
y
2
a)
d
AS
b
3(k
2
+1)
(mod n
AS
)
unde y
1
= g
k
1
+k
2
, y
2
= g
k
1
+2k
2
. Mesajul (AS, V, x
4
, (x
5
t)
e
V
(mod n
V
)) este trimis lui V .
Parametrul k
2
este diferit pentru ecare votant, iar AS stocheaza n baza sa de date k
2
mpreun a cu identitatea lui V (Cert
V
).
3. Prin decriptarea lui x
4
, V obt ine k
2
. Deci V poate calcula y
1
si y
2
, dupa care determina
s = x
5
b
3(k
2
+1)
= (y
1
y
2
a)
d
AS
(mod n
AS
)
s este semnatura RSA pentru produsul y
1
y
2
a.
Pentru un vot m, V poate genera acum o semnatura (s
1
, s
2
) de tip ElGamal:
s
1
= (k
1
+ k
2
)
1
(ma r) (mod p 1), (3)
s
2
= (k
1
+ 2k
2
)
1
(ma r) (mod p 1). (4)
Buletinul de vot al lui V este
T = a g y
1
y
2
s s
1
s
2
m.
9.4.3 Etapa II: Votarea (si colectarea buletinelor de vot)
In aceasta faza V poate trimite prin ret ea buletinul sau de vot spre un server de votare V S.
Scopul principal al unui V S este de a garanta validitatea buletinului de vot. Protocolul cont ine
doi pasi:
1. V trimite T spre V S;
2. V S decripteaza T si veric a validitatea lui a, y
1
, y
2
folosind semnatura s si cheia publica
e
AS
. Apoi V S determina corectitudinea semnaturii (s
1
, s
2
) pentru m, folosind relat iile:
ay
s
1
1
= g
ma
(mod p), (5)
ay
s
2
2
= g
ma
(mod p) (6)
Daca rezultatul acestei vericari este pozitiv, atunci V S are certitudinea ca buletinul T
este valid.
V S stocheaza toate buletinele de vot si trimite n nal baza de date prin ret ea catre serverul
de numarare a buletinelor TCS.
9.5. SL
si sa
trimita un al doilea buletin T = a g y
1
y
2
s s
1
s
2
m
spre alt V S.
Pentru a detecta o dubla votare, V S veric a parametrii a, g, y
1
, y
2
din toate buletinele T
pentru a vedea daca ei se repeta.
In caz armativ, el rezolva sistemul liniar
k
1
+ k
2
=
ma
ma
s
1
s
1
(mod p 1) (7)
k
1
+ 2k
2
=
ma
ma
s
2
s
2
(mod p 1) (8)
si aa k
2
. Folosind baza de date a lui AS, se identic a n mod unic votantul V .
9.5 Slabiciuni ale protocolului Mu-Varadharajan
In [3] se arata ca totusi exista doua modalitat i prin care cineva poate vota de mai multe ori
far a sa e depistat.
Sa presupunem ca V a obt inut buletinul valid de vot T = a g y
1
y
2
s s
1
s
2
m.
Pe baza lui poate genera un alt buletin valid T
astfel:
9.5.1 Atacul 1
La nceput V calculeaza g
, y
1
, y
2
, a
cu relat iile
g
= q
c
0
(mod p),
y
1
= (g
)
(k
1
+k
2
+c
1
)c
1
0
(mod p),
y
2
= (g
)
(k
1
+2k
2
+c
2
)c
1
0
(mod p),
a
= (g
)
(r+c
3
)c
1
0
(mod p),
unde c
0
, c
1
, c
2
, c
3
sunt numere ntregi care evrica condit iile c
1
+ c
2
+ c
3
= 0, c
1
c
2
c
3
= 0.
Acum V genereaza buletinul T
= a
1
y
2
s s
1
s
2
m unde (s
1
, s
2
) este semnatura
votului m cu cheile (k
1
+ k
2
+ c
1
)c
1
0
respectiv (k
1
+ 2k
2
+ c
2
)c
1
0
; anume
s
1
= ((k
1
+ k
2
+ c
1
)c
1
0
)
1
(ma
(r + c
3
)c
1
0
) (mod p 1)
s
2
= ((k
1
+ 2k
2
+ c
2
)c
1
0
)
1
(ma
(r + c
3
)c
1
0
) (mod p 1)
, y
1
, y
2
folosind ecuat ia
s
e
AS
= y
1
y
2
a (mod n
AS
) = y
1
y
2
a
(mod n
AS
)
1
, s
2
) cu ecuat iile (5) si (6). Cum toate sunt
corecte, V S crede ca T
este un buletin valid si-l trimite lui TCS. Aici, pentru protejarea contra
dublei vot ari, TCS verica parametrii a
, g
, y
1
, y
2
si decide ca ei au fost folosit i o singura data.
Deci atacul funct ioneaz a. Chiar daca V S detecteaza ca semnatura s a mai fost utilizata, el nu
va putea detecta identitatea votantului ilegal (cu (7) si (8)).
9.5.2 Atacul 2
Similar primului atac, V alege ntai aleator numarul h si calculeaza
g
= g
h
, a
= a
h
2
, y
1
= y
h
2
1
, y
2
= y
h
2
2
, s
= s
h
2
114 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
Apoi, semnatura (s
1
, s
2
) pentru m poate calculata cu o variant a a relat iilor (3) si (4)
folosind cheile (k
1
+ k
2
)h respectiv (k
1
+ 2k
2
)h:
s
1
= (k
1
+ k
2
)
1
h
1
(ma
2
= (k
1
+ 2k
2
)
1
h
1
(ma
= a
1
y
2
s
1
s
2
m.
V S este convins de validitatea lui T
)
e
AS
= (y
1
y
2
a)
h
2
= y
1
y
2
a
(mod n
AS
)
(y
1
)
s
1
a
= (g
)
a
m
(mod p)
(y
2
)
s
2
a
= (g
)
a
m
(mod p)
sunt vericate.
Cu aceste atacuri, un votant poate vota de oricate ori vrea, fara sa e detectat.
9.6 Protocolul Mu-Varadharajan modicat
Pentru a evita slabiciunile n fat a atacurilor prezentate anterior, este construita o variant a
mbunat at it a a protocolului de vot Mu-Varadharajan. Noua schem a are tot trei etape; acestea
sunt (s-au folosit aceleasi notat ii):
9.6.1 Etapa I: Obt inerea buletinului de vot
1. V alege doi factori blind b
1
, b
2
si doua nuemre aleatoare k
1
, r. Cu acesti parametri cal-
culeaza w
1
si w
2
dupa formulele
w
1
= g
r
b
e
AS
1
(mod n
AS
)
w
2
= g
k
1
b
e
AS
2
(mod n
AS
)
unde g Z
p
este un parametru public al sistemului.
V trimite lui AS structura {V, AS, Cert
V
, t, w
1
, w
2
, ((w
1
w
2
t)
d
V
(mod n
V
))}.
2. V S veric a validitatea certicatului si valideaza semnatura (w
1
w
2
t)
d
V
(mod n
V
).
Daca rezultatul veric arii este pozitiv, AS poate sigur ca parametrii primit i sunt corect i.
El continu a alegand un num ar aleator k
2
diferit pentru ecare votant si calculeaza
w
3
= (k
2
t)
e
V
(mod n
V
)
w
4
= (w
1
AS)
d
AS
(mod n
AS
) = (a AS)
d
AS
b
1
(mod n
AS
)
w
5
= (w
2
g
k
2
AS)
d
AS
(mod n
AS
) = (y
1
AS)
d
AS
b
2
(mod n
AS
)
w
6
= (w
2
2
g
k
2
AS)
d
AS
(mod n
AS
) = (y
2
AS)
d
AS
b
2
2
(mod n
AS
)
unde a = g
r
, y
1
= g
k
1
+k
2
, y
2
= g
k
1
+2k
2
.
Mesajul {AS, V, w
3
, ((w
4
w
5
w
6
t)
e
V
(mod n
V
))} este trimis lui V .
In paralel, AS
stocheaz a n baza sa de date k
2
mpreuna cu identitatea lui V .
3. V obt ine k
2
prin decriptarea lui w
3
, iar pe baza lui poate determina y
1
si y
2
. Mai departe,
V determina semnatura (s
1
, s
2
, s
3
) (eliminand factorii blind) conform relat iilor
s
1
= w
4
b
1
1
= (a AS)
d
AS
quad(mod n
AS
)
s
2
= w
5
b
1
2
= (y
1
AS)
d
AS
quad(mod n
AS
)
9.6. PROTOCOLUL MU-VARADHARAJAN MODIFICAT 115
s
3
= w
6
b
2
2
= (y
2
AS)
d
AS
quad(mod n
AS
)
4. V aplica o schem a de semnatur a ElGamal pentru a semna votul m. Fie y
1
, y
2
cheile
publice ale sistemului de criptare ElGamal si x
1
= k
1
+ k
2
, x
2
= 2k
1
+ k
2
cheile se-
crete corespunzatoare; deci y
1
= g
k
1
+k
2
(mod p) si y
2
= g
2k
1
+k
2
(mod p). Semnatura
((a, s
4
), (a, s
5
)) pentru votul m este generata de ecuat iile
s
4
= x
1
1
(ma r) (mod p 1) respectiv
s
5
= x
1
2
(ma r) (mod p 1).
Buletinul de vot al lui V este T = s
1
s
2
s
3
s
4
s
5
a y
1
y
2
m.
9.6.2 Etapa II: Votarea (si colectarea buletinelor de vot)
1. V trimite buletinul de vot T lui V S.
2. V S verica validitatea lui a, y
1
, y
2
folosind ecuat iile
AS a = s
e
AS
1
(mod n
AS
) (9)
AS y
1
= s
e
AS
2
(mod n
AS
) (10)
AS y
2
= s
e
AS
3
(mod n
AS
) (11)
Daca toate sunt vericate, V S trece la vericarea corectitudinii semnaturii ((a, s
4
), (a, s
5
))
folosind relat iile:
g
ma
= y
s
4
1
a = y
s
5
2
a (mod p)
Daca ele se veric a, V S accepta T ca valid.
In nal, V S formeaza o baza de date cu toate
buletinele de vot valide, pe care o trimite prin ret ea lui TCS.
9.6.3 Etapa III: Numararea buletinelor de vot
Dupa ce primeste buletinele de vot de la toate V S-urile, TCS face public cont inutul lor si le
num ara.
In plus, el este responsabil cu detectarea dublei vot ari.
Sa presupunem ca un votant V foloseste aceiasi parametri y
1
, y
2
, a pentru a semna un vot
diferit m
a ma
s
4
s
4
(mod p 1) si
x
2
=
m
a ma
s
5
s
5
(mod p 1).
De aici, x
2
x
1
= (2k
1
+ k
2
) (k
1
+ k
2
) = k
1
si deci k
2
= x
1
k
1
. Cu ajutorul lui k
2
se
poate aa cine a ncercat sa triseze.
116 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
9.7 Securitatea protocolului Mu-Varadharajan modicat
In ipoteza ca serverul de autenticare SA este sigur si deci nu va genera nici un buletin de vot
far a consimt am antul votantului, sistemul construit verica toate restrict iile unui sistem de vot
electronic.
In plus, el are o securitate sporita, rezultata din urmatoarele observat ii:
9.7.1 Rezistent a la atacurile 1 si 2
Sa presupunem ca un votant fort eaz a parametrii a, y
1
, y
2
n conformitate cu Atacul 1; el nu va
putea totusi sa obt in a semnatura (s
1
, s
2
, s
3
) data de ecuat iile (9), (10), (11) pentru ca nu stie
cheia secreta d
AS
.
2
= (AS y
2
)
d
AS
dar nu poate gebera
restul semnaturiii pentru vatul m. De exemplu, sa presupunem s
2
= s
2
2
= (AS
2
y
2
2
)
d
AS
si y
2
= AS y
2
2
. Deci parametrul y
2
poate trece de vericare. Dar din cauza problemei
logaritmilor discret i votantul nu poate obt ine cheia secreta corespunzatoare x
1
. Far a cheia
secreta, V nu poate genera o semnatura corecta.
9.7.2 Rezistent a fat a de un atac aliat
Sa presupunem ca doi votant i V
1
, V
2
cu semnaturile valide (s
11
, s
12
, s
13
) respectiv (s
21
, s
22
, s
23
)
colaboreaza pentru obt inerea unei noi semnaturi (s
1
, s
2
, s
3
) denita prin
s
i
= s
1i
s
2i
(mod n
AS
), i = 1, 2, 3, 4.
Totusi ei nu vor putea calcula parametrii r
, x
1
, x
2
din cauza dicultat ii de rezolvare a
problemei logaritmului discret.
Bibliograe
[1] J. Benaloh Veriable sectret-ballot elections, Ph.D thesis, Yale University, Technical report
561 (1987)
[2] J.D. Cohen Improving Privacy in Cryptographic Elections
[3] I.Chang Lin, M.Hwang, C.Chang Security enhancement for anonymous secure e-voting
over a network, Computer Science $ interfaces 25 (2003), 131-139
[4] K. Iversen A criptographic scheme for cmputerized general elections, proc. Crypto 1,
Springer LNCS 576 (1992), 405 - 419.
[5] C.I. Lei, C.I. Fan A universal single-authority election system, IEICE Transactions on
Fundamentals E81-A (10) (1998), 2186-2193
[6] Y.Mu, V. Varadharajan Anonymous e-voting over a network, Proc. of the 14th Annual
Computer Security Applications Conference, ASAC8 (1998) 293-299
[7] H. Nurmi, A. Salomaa, L. Santean Secret ballot elections in computer networks, Computer
and Security 10 (1991), 553 - 560.
[8] C. Park, K. Itoh, K. Kurosawa it Ecient anonymous channel and all or nothing election
scheme, Proc. Eurocrypt 3, Springer LNCS 765 (1994), 248 - 259.
[9] A. Renvall Cryptogtaphic Protocols and techniques for Communication, Ph.D. Thesis
117
Pag. 1
Criptogrfie i securitate Anul III Sem. 1 USH
A Criptografie si securitate 6 / 12 subiecte
RSA Criptografie si securitate 4 / 12 subiecte
ELG Criptografie si securitate 2 / 12 subiecte
B Securitatea retelelor de calculatoare 2008-2009 100 sub
C Servere de date 73 subiiecte
C 45
Afisarea unei portiuni de text cu o dimensiune mai mare decat cea prestabilita se face prin:
a) <b> c) <sup>
b) <big> d) <bigger>
b
C 54
Alegeti culoarea data de codul de culoare #000000:
a) black c) red
b) white d) blue
a
C 53
Alegeti culoarea data de codul de culoare #ffffff:
a) black c) green
b) white d) gray
b
C 3
Aplicatiile de control a conexiunii folosesc protocolul:
a) ip c) icmp
b) udp d) igrp
a
B 3 Aplicatiile de control al conexiunii folosesc protocolul: TCP
B 65
Arhitecturile de retea cele mai cunoscute sunt modelul de referinta OSI (Open System Interconnection)
si TCP/IP (transmission control protocol / Internet Protocol).
C 55
Care din urmatoarele atribute apartine tagului font?
a) align c) size
b) width d) style
b
C 2
Care din urmatoarele programe foloseste campul TTL:
a) ping c) traceroute
b) telnet d) arp
c
B 2 Care program foloseste campul TTL: tracert/traceroute
C 22
Care program nu este un client de mail
a) Thunderbird c) Kmail
b) Sendmail d) Outlook
b
C 23
Care program nu este un client de mail
a) Thunderbird c) Postfix
b) Evolution d) Outlook
c
C 24
Care program nu este un client de mail
a) Thunderbird c) Outlook
b) Evolution d) Exim
d
C 9
Care program nu este un client de web
a) Mozilla firefox c) Safari
b) Opera d) Explorer
d
Pag. 2
C 25
Care program nu este un server de mail
a) Postfix c) Cyrus
b) Sendmail d) Exim
c
C 8
Care program nu este un server de web
a) firefox c) apache
b) lighhttp d) iis
a
B 13 Cate situri poate gazdui un server de web? oricare
B 95
Cifrul ..................... este cel mai cunoscut cifru bloc cu cheie simetrica, este un cifru Feistel care proce-
seaza blocuri de text de n = 64 biti si produce blocuri cifrate de 64 biti. Dimensiunea cheii secrete este
k = 56 biti.
R: DES (DataEncryption Standard, Standardul de Criptare a Datelor)
B 98
Cifrul ........................ este un cifru cu o arhitectura orientata cuvant pentru cuvinte cu dimensiune varia-
bila (16, 32 sau 64 biti). Are o descriere compacta si este potrivit pentru implementare hardware sau
software.
R: RC5
B 96
Cifrul....................... este un cifru bazat pe o generalizare a structurii Feistel si consta din 8 repetari iden-
tice urmate de o transformare. n prezent, se pare ca singurul punct slab al lui este dimensiunea mica (64
biti) a blocului.
R: IDEA (International Data Encryption Algorithm)
B 97
Cifrul.......................... este un cifru bloc iterat cu dimensiunea blocului de 64 biti. Spre deosebire de ci-
frurile Feistel, algoritmii lui de criptare si decriptare sunt diferiti.
R: SAFER (SAFER K-64 - Secure And Fast Encryption Rottine)
C 64
Comanda cat din sistemul de operare UNIX
a) Afiseaza continutul unui fisier c) Concateneaza doua sau mai multe siruri
b) Afiseaza continutul unui director d) Afiseaza lista de partitii si spatiul liber
a
C 65
Comanda cat din sistemul de operare UNIX
a) Afiseaza continutul unui director c) Afiseaza lista de partitii si spatiul liber
b) Afiseaza lista de procese active d) Concateneaza doua sau mai multe fisiere
d
C 67
Comanda df din sistemul de operare UNIX
a) Afiseaza continutul unui fisier
b) Afiseaza continutul unui director
c) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestea
d) Afiseaza lista de partitii si spatiul liber si cel ocupat
d
B 40 Comanda df din sistemul de operare UNIX Afiseaza lista de partitii si spatiul liber si cel ocupat
C 68
Comanda df h din sistemul de operare UNIX
a) Afiseaza continutul unui fisier c) Afiseaza lista de procese active
b) Afiseaza lista de partitii si spatiul liber d) Afiseaza continutul unui director
b
C 66
Comanda du din sistemul de operare UNIX
a) Afiseaza continutul unui fisier
b) Afiseaza continutul unui director
c) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestea
d) Afiseaza lista de partitii si spatiul liber
c
B 41
Comanda du din sistemul de operare UNIX Afiseaza lista de fisiere si directoare si spatiul ocupat
de acesta
Pag. 3
C 70
Comanda head din sistemul de operare UNIX
a) Afiseaza continutul unui fisier
b) Afiseaza primele linii ale unui fisier
c) Afiseaza ultimele linii ale unui fisier
d) Afiseaza lista de partitii si spatiul liber si cel ocupat
b
B 39 Comanda ifconfig din sistemul de operare UNIX Arata configurarea curenta a placilor de retea
B 44 Comanda ipfw din sistemul de operare UNIX Este un program de configurare a firewall-ului
C 62
Comanda ls din sistemul de operare UNIX
a) Afiseaza continutul unui fisier
b) Afiseaza continutul unui director
c) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestea
d) Afiseaza lista de partitii si spatiul liber si cel ocupat
b
B 36 Comanda ls din sistemul de operare UNIX Afiseaza continutul unui director
B 37
Comanda netstat din sistemul de operare UNIX Afiseaza starea conexiunilor TCP adresa remote si
portul
C 63
Comanda ps din sistemul de operare UNIX
a) Afiseaza continutul unui fisier c) Afiseaza lista de procese active
b) Afiseaza continutul unui director d) Afiseaza lista de partitii si spatiul liber
c
C 72
Comanda ps din sistemul de operare UNIX
a) Afiseaza interactiv procesele din sistem
b) Afiseaza continutul unei partitii
c) Afiseaza lista de programe instalate in sistem
d) Afiseaza lista de procese active
d
B 45 Comanda ps din sistemul de operare UNIX Afiseaza lista de procese active
B 42 Comanda route din sistemul de operare UNIX Adauga o ruta statica in tabela de rutare
C 71
Comanda tail din sistemul de operare UNIX
a) Afiseaza continutul unui fisier
b) Afiseaza primele linii ale unui fisier
c) Afiseaza ultimele linii ale unui fisier
d) Afiseaza lista de partitii si spatiul liber si cel ocupat
c
B 43 Comanda tcpdump din sistemul de operare UNIX Analizator de pachete
C 69
Comanda top din sistemul de operare UNIX
a) Afiseaza topul userilor logati n sistem
b) Afiseaza lista de programe si memoria alocata acestora
c) Afiseaza interactiv procesele active n sistem
d) Afiseaza interactiv primele linii ale unui fisier
c
B 38 Comanda top din sistemul de operare UNIX Afiseaza interactiv procesele active in sistem
C 73
Comanda who din sistemul de operare UNIX
a) Afiseaza userul curent c) Afiseaza lista de useri conectati in sistem
b) Afiseaza directorul curent d) Afiseaza lista de grupuri din sistem
c
C 41
Comentariile n limbajul html se introduc astfel:
a) //comentariu c) <!-- comentariu -->
b) /*comentariu */ d) {comentariu}
c
B 4 Comunicarea dintre un client si un server se realizeaza pe baza adresei de: IP IP
Pag. 4
C 4
Comunicarea dintre un client si un server se realizeaza pe baza adresei de:
a) ip c) udp
b) mac d) web
a
B 5 Comunicarea directa dintre doua hosturi din aceiasi retea se realizeaza doar pe baza adresei de . MAC
C 5
Comunicarea directa dintre doua hosturi din aceiasi retea se realizeaza doar pe baza adresei de:
a) ip c) email
b) mac d) web
b
B 85
Concepte de baza ce apar in criptografie :
A este o multime finita, numita alfabetul de definitie.
M reprezinta spatiul mesajelor si contine siruri de simboluri dintr-un alfabet de definitie.
Elementele din M se numesc:
R: mesaje in clar
B 86
Concepte de baza ce apar in criptografie :
Multimea C contine siruri de simboluri dintr-un alfabet de definitie care poate diferi de alfabetul lui M
(spatiul mesajelor). Un element din C este numit text cifrat. Multimea C se numeste:
R: spatiul textelor cifrate
B 87
Concepte de baza ce apar in criptografie :
K este o multime numita spatiul cheilor . Un element al lui K este numit cheie. Fiecare element e din K
determina in mod unic o bijectie de la M (spatiul mesajelor) la C (spatiul textelor cifrate), notata Ee,
numita:
R: functie (transformarea) de criptare
B 88
Concepte de baza ce apar in criptografie :
Pentru fiecare element d din spatiul cheilor K, Dd este o bijectie de la C (spatiul textelor cifrate) la M
(spatiul mesajelor) numita :
R: functie (transformare) de decripate
B 89
Concepte de baza ce apar in criptografie :
Multimea {Ee |e din K } a functiilor de criptare si o multime corespunzatoare
in
d
D d K a functii-
lor de decriptare, cu proprietatea ca pentru fiecare e din K exista o cheie unica din K astfel incat
1
=
d e
D E , formeaza :
R: scheme de cripate
B 49 Configurare firewall-uri in mediul UNIX iptables
B 50 Configurare routere
A 9
Considerm modul de utilizare CBC al cifrului bloc DES care aplic permutri biilor unui vector de bii
de lungime 4. Criptai textul clar x = 1011000101001010 folosind cheia
| |
=
]
\
1 2 3 4
2 3 4 1
i blo-
cul iniial IV = 1010
R: 0010 0110 0100 1101
A 11
Considerm modul de utilizare CFB al cifrului bloc DES care aplic permutri biilor unui vector de bii
de lungime 4. Criptai textul clar x = 1011000101001010 folosind cheia
| |
=
]
\
1 2 3 4
2 3 4 1
i blo-
cul iniial IV = 1010
R: 1101 0101 1101 0010
Pag. 5
A 8
Considerm modul de utilizare ECB al cifrului bloc DES care aplic permutri biilor unui vector de bii
de lungime 4. Criptai textul clar x = 1011000101001010 folosind cheia
| |
=
]
\
1 2 3 4
2 3 4 1
R: 0111 0010 1000 0101
A 10
Considerm modul de utilizare OFB al cifrului bloc DES care aplic permutri biilor unui vector de bii
de lungime 4. Criptai textul clar x = 1011000101001010 folosind cheia
| |
=
]
\
1 2 3 4
2 3 4 1
i blo-
cul iniial IV = 1010
R: 1110 1011 0001 0000
RSA 12C
Considerm sistemul de criptare RSA construit cu numerele prime p = 3; q = 5. Dac exponentul de crip-
tare este e = 4 i se dorete codificarea textului clar m = 11, determinai textul criptat c.
R: 1
B 92
Criptarea similara cifrurilor cascada, dar in care cheile nivelurilor nu trebuie sa fie independente si cifru-
rile pot fi ori un cifru bloc E, ori functia de decriptare corespunzatoare E-1 , se numeste criptare:
R: multipla
A 2
Criptai un text clar la alegere folosind sistemul de criptare Hill cu matricea
3 2
3 5
| |
]
\
R:
B 57
Daca in retea datele circula:
-ntr-un singur sens simplex
-n ambele sensuri dar nu simultan semi-duplex
-n ambele sensuri simultan duplex
B 58
Daca transmiterea mesajului de la sursa la destinatie se poate face pe mai multe cai, trebuie ales un anu-
mit drum. Aceasta alegere se numeste dirijare sau .
R: rutare
C 57
Deschiderea unui link intr-o fereastra noua se va produce prin accesarea unui link de forma:
a) <a href="url" new> c) <a href="url" target="new">
b) <a href="url" target="_blank"> d) <a href="url" target="_self">
b
A 1
Determinai inversa matricei (modulo 26)
3 2
3 5
| |
]
\
R: [15 20;17 9]
C 36
DHCP provine de la
a) Detect Host Configuration Protocol c) Dynamic Host Connection Process
b) Dynamic Host Configuration Protocol d) Ddebug Host Configuration Problems
b
B 33 DHCP provine de la Dinamic Host Configuration Protocol
C 37
DNS provine de la
a) Domain Name Service c) Domain Name System
b) Dynamic Network Server d) Domain Name Service
c
B 34 DNS provine de la Domain Name System
B 59
Elementele active ale unui nivel se numesc entitati. Entitatile aceluiasi nivel dar de pe masini diferite se
numesc entitati pereche Entitatile pot fi: software (un proces) sau hardware (un cip I/E inteligent).
R: pereche
Pag. 6
C 48
Elementul inline generic potrivit cu o gama larga de utilizari, inclusiv pentru a atasa CSS
unei portiuni a unui rand este:
a) <div> c) <span>
b) <p> d) <tr>
c
C 51
Evidentierea unui fragment de text, prin afisarea acestuia cu stilul cursiv se face prin
utilizarea urmatorului element de fraza:
a) <em> c) <i>
b) <b> d) <c>
c
C 52
Evidentierea unui fragment de text, prin afisarea acestuia cu stilul aldin se face prin
utilizarea urmatorului element de fraza:
a) <strong> c) <aldine>
b) <em> d) <b>
d
ELG 12B
Fie cifrul El-Gamal asociat numrului prim p = 11 i rdcinii primitive, modulo 7, 5. Cheia secret a lui
Alice este 4, iar cea a lui Bob este 7. Alice primete de la Bob textul criptat (3,7) pe care l decodific i
gsete mesajul clar ....
R: x=m(textul clar)=2
ELG 12A
Fie cifrul El-Gamal asociat numrului prim p = 7 i rdcinii primitive, modulo 7, 5. Cheia secret a lui
Alice este 3, iar cea a lui Bob este 4. Dac Bob codific textul clar x = 11 i il transmite lui Alice, atunci
aceasta primete codificarea ....
R: c=(c1,c2)=(2,4)
RSA 12B
Fie d = 11 exponentul de decriptare al sistemului de criptare RSA construit cu numerele prime
p = 7; q = 11. Determinai exponentul de criptare e.
R: E=11
RSA 12A
Fie d exponentul de decriptare al sistemului de criptare RSA construit cu numerele prime p = 3; q = 5.
Dac exponentul de criptare este e = 7, determinai d.
R: D=7
A 3
Folosind sistemul de criptare Polybios codificai textul clar UNIVERSITATE.
R: EACDBDEBAEDCDDBDDEAADEAE (am eliminat w)
A 6
Folosind un sistem aditiv fluid binar de criptare se cere criptarea /decriptarea secvenei de text clar
x = 101101, cunoscnd cheia fluid z = 1101.
R: 011010 (criptarea)
A 7
Folosind un sistem de criptre asincron cu auto-cheie, pentru k = 11, codificai /decodificai textul clar
SPIRU HARET.
R: DSARLSSJNG
B 62
Formal, un serviciu este specificat printr-un set de primitive (operatii) disponibile entitatii ca-
re foloseste acest serviciu. Acestea comanda serviciului sa execute anumite actiuni sau sa raporteze des-
pre actiunile executate de o entitate pereche.
C 31
HTML provine de la
a) HyperText Multi Language c) HyperText Markup Language
b) HyperTag Markup Language d) HighexTensible Markup Language
c
B 28 HTML provine de la Hyper Text Markup Language
C 32
HTTP provine de la
a) Hypertext Transfer Protocol c) Hypertext Transport Protocol
b) Hypertext Transmission Protocol d) Hyper Text Protocol
a
B 29 HTTP provine de la Hyper Text Transfer Protocol
C 33
IMAP provine de la
a) Instant Message Access Protocol c) Internet Mail Access Protocol
b) Internet Message Access Protocol d) Interior Message Access Protocol
b
X 10
Pag. 7
B 30 IMAP provine de la Internet Message Access Protocol
C 47
Inserarea textului n paragrafe se realizeaza folosind:
a) <blockquote> c) <div>
b) <p> d) <span>
b
C 61
Inserarea unei imagini se face prin:
a) <image src="image.gif"> c) <img href="image.gif>
b) <img src="image.gif"> d) <img>image.gif</img>
b
C 56
Inserarea unui hyperlink n limbajul HTML se face prin:
a) <a name="http://www.w3schools.com">W3Schools.com</a>
b) <a href="http://www.w3schools.com">W3Schools</a>
c) <a url="http://www.w3schools.com">W3Schools.com</a>
d) <a>http://www.w3schools.com</a>
b
B 53
n LAN-urile cu inel fiecare bit se propaga independent de ceilalti pe inel, fara sa astepte restul pachetu-
lui.
R: inel
A 5
n sistemul de criptare Vigenere, s consideram cuvntul cheie GRUPA. Criptm cu aceast cheie textul
clar CRIPTOGRAFIE i se obine textul criptat ...
R: IICETUXLPFOV
B 55
ntre doua nivele adiacente exista o interfata care defineste operatiile si serviciile primitive oferite de ni-
velul n nivelului n+1.
R: interfata
C 43
ntreruperea de rand n cadrul unui paragraf de text se realizeaza prin introducerea unui
element de tipul:
a) <p> c) <br>
b) <b> d) <hr>
c
B 71
Nivelul ...................... al modelului OSI stabileleste si ntretine conexiunea ntre procese de pe masini
diferite, permite proceselor sa defineasca proprietatile dialogului si sa-l sincronizeze.
R: sesiune
B 73
Nivelul ........................ al modelului OSI contine o multitudine de protocoale utilizate frecvent cum ar fi
HTTP (protocol de transmitere a hipertextului), FTP (protocol pentru transferul fisierelor), SMTP (pro-
tocol pentru posta electronica), etc.
R: aplicatie
B 72
Nivelul ........................ al modelului OSI realizeaza operatii de transformare a datelor n formate recu-
noscute de entitatile ce intervin n conexiune, transfera date ntre masini de tipuri diferite (Unix-DOS),
realizeaza codificarea datelor n functie de caracteristicile acestor masini., ofera servicii de securitate
(permite comunicarea unor structuri de date de nivel inalt, cum ar fi inregistrarile bancare).
R: prezentare
B 76
Nivelul aplicatie al modelului TCP/IP cuprinde toate protocoalele de nivel nalt. Unul dintre acestea este
protocolul de terminal virtual ....................... care permite unui utilizator de pe o masina sa se conecteze
si sa lucreze pe o masina situata la distanta.
R: telnet
B 77
Nivelul aplicatie al modelului TCP/IP cuprinde toate protocoalele de nivel nalt. Unul dintre acestea este
protocolul pentru transferul de fisiere ............. care poseda un mecanism de mutare eficienta a datelor de
pe o masina pe alta.
R: FTP
B 78
Nivelul aplicatie al modelului TCP/IP cuprinde toate protocoalele de nivel nalt. Unul dintre acestea este
protocolul de posta electronica
R: SMTP
B 79
Nivelul aplicatie al modelului TCP/IP cuprinde toate protocoalele de nivel nalt sialte servicii. Unul din-
tre acestea este serviciul numelor de domenii .................... care stabileste corespondenta dintre numele
gazdelor si adresele retelelor.
R: DNS
Pag. 8
B 54
Nivelul n de pe o masina comunica folosind anumite reguli si conventii numite . cu nivelul
n de pe alta masina
R: protocoale
B 66
Nivelul fizic al modelului OSI are rolul de a transmite bitii de la o masina la alta printr-un canal
de comunicatie. Nivelul rezolva problemele de natura electrica: cum ar fi tensiunea si intensitatea curen-
tului.
B 68
Nivelul legaturi de date al modelului OSI cuprinde un subnivel de control al accesului la me-
diu care rezolva problema controlului accesului la canalul partajat pentru retelele cu difuzare.
B 69
Nivelul retea al modelului OSI are rolul de a controla functionarea subretelei. Acesta trebuie sa
determine modul de dirijare a pachetelor de la sursa la destinatie prin intermediul tabelelor statistice (cu
trasee care sunt stabilite la nceputul fiecarei conversatii) sau n mod dinamic (prin determinarea trasee-
lor pentru fiecare pachet n parte n concordanta cu traficul din retea la momen tul respectiv).
R: retea
B 67
Nivelul transport al modelului OSI are rolul de a transforma un mijloc de transmisie ntr-o li-
nie disponibila nivelului retea fara erori de transmisie.
B 70
Nivelul transport al modelului OSI descompune datele pe care le primeste de la nivelul ime-
diat superior n unitati mai mici, le trimite nivelului imediat inferior si se asigura ca acestea ajung corect
la distanta. De asemenea, stabileste tipul de serviciu pe care l furnizeaza nivelului imediat su perior si
utilizatorilor retelei.
R: transport
C 58
O linie n cadrul unui tabel se introduce prin:
a) <td> c) <table>
b) <tr> d) <th>
b
B 56
O lista de protocoale folosita de un sistem, cte u n protocol pentru fiecare nivel se numeste stiva
de protocoale.
C 60
O lista neordonata se introduce prin:
a) <ul> c) <dl>
b) <list> d) <ol>
a
C 59
O lista ordonata se introduce prin:
a) <dl> c) <ul>
b) <list> d) <ol>
d
B 81
Obiectivul esential al criptografiei care se refera la ascunderea informatiilor fata de toate persoanele,
mai putin cele autorizate, este:
R: confidentialitate
B 82
Obiectivul esential al criptografiei care se refera la evitarea alterarii neautorizate a datelor este:
R: intregritate
B 83
Obiectivul esential al criptografiei care se refera la identificarea unei persoane sau a originii unui mesaj
este:
R: autentificare
B 90
Obiectivul unui cifru bloc este de a asigura confidentialitatea. Obiectivul unui intrus este de a recupera
mesajul in clar din textul cifrat. Daca un intrus poate obtine parti ale mesajului in clar din textul cifrat,
dar nu poate obtine cheia, un cifru bloc este:
R: partial compromis
B 91
Obiectivul unui cifru bloc este de a asigura confidentialitatea. Obiectivul unui intrus este de a recupera
mesajul in clar din textul cifrat. Daca se poate gasi o cheie, un cifru bloc este:
R: total compromis
B 80
Paginile pot fi vazute printr-un program de navigare numit ........................... Exemple de astfel de pro-
grame sunt: Mosaic, Opera si Netscape, care aduc pagina dorita, interpreteaza textul si comenzile de for-
matare continute n text si afiseaza pe ecran pagina formatata corespunzator .
R: browser
Pag. 9
A 4
Pentru a = 3; b = 5 se definesc funciile de criptare, respectiv decriptare, ale unui sistem de criptare afin:
, )
, ) = +
3,5
3 5 e x x
, )
, ) , ) , ) = + = +
3,5
9 9 26 - 5 mod26 9 7 d y y y
S luam textul clar GRUPA. Codificarea acestuia este ...
R: XENYF
B 26 Pentru a aduce mesajele de mail un client se conecteaza la un MTA cu pop3 pe portul 110
C 27
Pentru a aduce mesajele de mail un client se conecteaza la un MTA cu pop3 pe portul
a) 21 c) 25
b) 100 d) 110
c
C 50
Pentru a insera o portiune de text preformatat se recomanda utilizarea tagului :
a) <plaintext> c) <pre>
b) <text> d) <xmp>
c
C 44
Pentru inserarea unui element de text formatat cu stilul teletype se foloseste:
a) <i> c) <tr>
b) <tt> d) <td>
b
C 35
POP provine de la
a) Postfix Office Protocol c) Post Online Protocol
b) Post Office Protocol d) Postfix Online Protocol
b
B 32 POP provine de la Post Office Protocol
B 64
Prin protocol ntelegem un set de reguli ce guverneaza formatul si semnificatia cadrelor, pache-
telor sau mesajelor schimbate ntre ele de entitatile pereche ale unui nivel.
B 63
Prin serviciu ntelegem un set de primitive pe care un nivel le furnizeaza nivelului de deasupra.
El spune ce operatii poate oferi utilizatorilor sai fara sa precizeze nimic despre modul de implementare
al acestor operatii. Acesta este definit n contextul unei interfete ntre doua nivele.
B 47 Programul bind in mediul UNIX Programul bind e server de DNS
B 46 Programul nmap in mediul UNIX Este un program de scanare a retelei
B 48 Programul ssh in mediul UNIX Clinet de SSH din Linux
B 74
Protocolul ................. din cadrul modelului TCP/IP este un protocol sigur, orientat pe conexiune care re-
alizeaza controlul transmisiei (pentru a elimina erorile de transmisie ce pot aparea ntre doua masini a-
flate n retea) si controlul fluxului (pentru a evita inundarea unui receptor lent de catre un emitator cu o
viteza mult mai mare).
R: TCP
B 75
Protocolul .......................... din cadrul modelului TCP/IP este un protocol nesigur si neorientat pe cone-
xiune care ofera posibilitatea utilizatorilor sa foloseasca propriul lor control al transmisiei si al fluxului.
Protocolul asigura comunicarea rapida clientserver si ntre aplicatii, fara sa garanteze nsa acuratetea
transmisiei.
R: UDP
B 99
Schema de criptare .............................. este bazata pe codurile corectoare de erori. Ideea este de a selec-
ta, mai intai, un cod particular pentru care este cunoscut un algoritm eficient de decodare si apoi prezen-
tarea acestui cod ca un cod liniar general. Cheia privata poate fi o descriere a codului original iar cheia
publica o descriere a codului transformat.
R: Mc Eliece
B 100
Schema de criptare ............................... este cea mai eficienta schema de criptare probabilista cunoscuta.
Ea se bazeaza pe imposibilitatea de rezolvare in timp real a problemei factorizarii intregilor si este se-
mantic sigura (textul cifrat nu ofera nici o informatie despre textul in clar, informatie ce poate fi calcula-
ta in timp polinomial). Totusi, este vulnerabila la un atac de tip text cifrat ales.
R: Blum-Goldwasser
Pag. 10
B 52
Se numeste retea de calculatoare o colectie interconectata de calculatoare autonome care sunt capabile
sa schimbe informatii intre ele si sa partajeze resurse.
R: retea
B 84
Serviciul care impiedica o entitate sa nege actiuni sau angajamente anterioare este:
R: non-repudierea
B 61
Serviciul secventelor de mesaje orientat pe conexiuni , este serviciul n care se mentine deli-
mitarea mesajelor. Daca spre exemplu sunt trimise doua mesaje de aceasi dimensiune, ele vor sosi la
destinatie sub forma a doua mesaje distincte si niciodata ca un singur mesaj de dimensiune dubla.
C 34
SMTP provine de la
a) Simple Mail Transmission Protocol c) Simple Mail Transport Protocol
b) Simple Message Transfer Protocol d) Simple Mail Transfer Protocol
d
B 31 SMTP provine de la Simple Mail Transfer Protocol
C 46
Stilul de text ingrosat/aldin se poate aplica folosind:
a) <aldin> c) <bold>
b) <b> d) <big>
b
C 49
Tagul <span> nu accepta atributul:
a) width c) title
b) align d) style
b
C 42
Titlul unei pagini web afisat n bara de titlu a browserului se introduce prin:
a) <head> c) <h2>
b) <h1> d) <title>
d
B 94
Un cifru bloc ce repeta secvential o functie interna numita functie repetitiva se numeste cifru bloc
R: iterat
B 93
Un cifru simplu de perioada t peste un alfabet cu s caractere care foloseste o cheie de t caractere
k1k2kt iar functia ce transforma textul in clar m1m2m3 in textul cifrat c1c2c3 este aplicata ca-
racterelor individuale astfel: ci = mi + ki (mod s), unde indicele i in ki este luat modulo t (cheia este re-
folosita), se numeste cifru:
R: vigenere simplu
C 39
Un client ARP :
a) obtine o adresa IP intr-o adresa UDP c) obtine o adresa IP intr-o adresa MAC
b) obtine o adresa de web intr-o adresa IP d) obtine o adresa MAC intr-o adresa IP
c
C 20
Un client de mail aduce mesajele prin protocolul:
a) xml c) imap
b) http d) smtp
c
C 21
Un client de mail aduce mesajele prin protocolul:
a) xml c) http
b) pop3 d) smtp
b
B 23 Un client de mail aduce mesajele prin protocolul: POP3/IMAP
B 24 Un client de mail aduce mesajele prin protocolul: POP3/IMAP
C 29
Un exemplu de MDA este
a) Thunderbird c) Sendmail
b) Cyrus d) Gmail
b
C 30
Un exemplu de MTA este
a) Outlook c) Gmail
b) Cyrus d) Postfix
d
Pag. 11
C 28
Un program de tip MUA se conecteaza la un MDA imap pe portul
a) 140 c) 23
b) 143 d) 110
b
B 27 Un program de tip MUA se conecteaza la un MDA imap pe portul 143
C 16
Un server de fisiere livreaza datele pe portul:
a) 19 c) 21
b) 20 d) 22
b
B 19 Un server de fisiere livreaza datele pe portul: 20
C 15
Un server de fisiere se ataseaza uzual la portul:
a) 19 c) 21
b) 20 d) 22
c
B 18 Un server de fisiere se ataseaza uzual la portul: 21
C 14
Un server de fisiere utilizeaza protocolul:
a) http c) ftps
b) ftp d) udp
b
B 17 Un server de fisiere utilizeaza protocolul: FTP
C 26
Un server de mail primeste conexiuni pe portul
a) 21 c) 25
b) 22 d) 80
c
B 25 Un server de mail primeste conexiuni pe portul 25
C 19
Un server de mail trimite mesajele prin protocolul:
a) xml c) imap
b) http d) smtp
d
B 22 Un server de mail trimite mesajele prin protocolul: SMTP
B 16 Un server de web care accepta conexiuni securizate se ataseaza uzual la portul: 443
C 13
Un server de web care accepta conexiuni securizate se ataseaza uzual la portul:
a) 88 c) 445
b) 443 d) 22
b
C 7
Un server de web de web poate gazdui:
a) Un singur site c) Oricat de multe situri
b) Cel mult doua situri d) Un numar limitat de situri
c
B 15 Un server de web se asculta uzual la portul 80
C 12
Un server de web se ataseaza uzual la portul:
a) 88 c) 80
b) 8080 d) 21
c
C 11
Un server de web serveste n mod uzual:
a) fisiere zip c) mesaje de e-mail
b) date din baza de date d) pagini html
d
C 6
Un server de web utilizeaza protocolul:
a) html c) imap
b) http d) ftp
b
Pag. 12
C 10
Un server de web utilizeaza protocolul:
a) https c) xml
b) pop3 d) html
a
B 12 Un server de web utilizeaza protocolul: HTTP
B 14 Un server de web utilizeaza protocolul: HTTP
C 38
Un server DNS :
a) Translateaza o adresa IP intr-o adresa UDP
b) Translateaza o adresa de web intr-o adresa IP
c) Translateaza o adresa IP intr-o adresa MAC
d) Translateaza o adresa MAC intr-o adresa IP
b
C 40
Un server DNS raspunde pe portul
a) 69 c) 80
b) 55 d) 53
d
B 35 Un server DNS raspunde pe portul: 53
B 21 Un server UNIX adminstrat de la distanta primeste conexiuni pe portul 22
C 18
Un server UNIX adminstrat de la distanta primeste conexiuni pe portul
a) 21 c) 25
b) 22 d) 80
b
B 20 Un server UNIX de web se administreaza de la distanta prin protocolul SSH
C 17
Un server UNIX de web se administreaza de la distanta prin protocolul
a) ftp c) imap
b) http d) ssh
d
RSA 12D
Un utilizator al sistemului de criptare RSA are ca cheie public (n; e) = (35; 5) i cheia secret d = 5. Da-
c primete textul criptat c = 3, atunci textul clar decodificat de utilizator este ..
R: 33
B 60
Una dintre caracteristicile unui serviciu este calitatea serviciului. Un serviciu de calitate trebuie sa fie
sigur, adica sa nu piarda niciodata date. Pentru aceasta, receptorul trebuie sa confirme primirea fiecarui
mesaj, ceea ce duce la introducerea unui timp suplimentar si deci la ntrzieri.
R: sigur
B 51 Utilizare sniffere Dsniff, Ettercap, Cain
C 1
Verificare unei conexiuni fizice de retea se va realiza prin:
a) ping c) traceroute
b) telnet d) arp
a
B 1 Verificarea unei conexiuni fizice de retea se va realiza prin PING
B 9 Vulnerabilitati de tip buffer-overflow Dos, DDos
B 11 Vulnerabilitati la nivelul aplicatie Dos, DDos
B 10 Vulnerabilitati la nivelul de retea IP Spooling
B 6 Vulnerabilitati la nivelul legaturii de date MAC Flooding
B 7 Vulnerabilitati prin ARP poisoning
B 8 Vulnerabilitati prin DHCP 22
RSA
Reguli generale RSA:
n = p*q
f = (p-1)*(q-1)
1<e<n astfel incat c.m.m.d.c(e,f)=1
d=e
-1
(mod f) || se calculeaza folosind algoritmul lui Euclid extins
Criptare: c=m
e
(mod n)
Decriptare: m = c
d
(mod n)
m text clar, c text criptat, e exponentul de criptare, d exponentul de decriptare.
Algoritmul lui Euclid extins pentru aflarea inversului unui numar intr-un mod n.
Vom nota pasii algoritmului lui Euclid pornind de la pasul 0. Coeficientul obtinut la pasul i va fi notat q
i
. In timp ce efectuam
fiecare pas al algoritmului, vom calcula si un numar auxiliar, p
i
. Pentru primii 2 pasi stim deja valorile : p
0
= 0 and p
1
= 1. Pentru
restul pasilor vom calcula recursiv p
i
= p
i-2
- p
i-1
q
i-2
(mod n). Continuam calculul numarului auxiliar inca un pas dupa terminarea
algoritmului.
Algoritmul incepe prin impartirea lui n la x, apoi continua prin impartirea impartitorului la rest. Cand ultimul rest diferit de 0 se
afla la pasul k, daca acest rest e 1 , x admite un invers care va fi p
k+2
. (Daca restul nu e 1, atunci x nu admite un invers.)
EXEMPLU:
Calculam inversul lui 15 mod 26.
PAS 0: 26 /15= 1 rest 11 p
0
= 0
PAS 1: 15/11 = 1 rest 4 p
1
= 1
PAS 2: 11/4 = 2 rest 3 p
2
= 0 - 1( 1) mod 26 = 25
PAS 3: 4/3 = 1 rest 1 => x admite invers p
3
= 1 - 25( 1) mod 26 = -24 mod 26 = 2
PAS 4: 3/1 = 3 rest 0 p
4
= 25 - 2( 2) mod 26 = 21
p
5
= 2 - 21( 1) mod 26 = -19 mod 26 = 7
Observati ca 15*7 = 105 = 1 + 4*26 1 (mod 26).
EL-GAMAL
Reguli generale EL-GAMAL:
A cheia privata a lui Alice
B cheia privata a lui Bob
p numar prim mare
primitiv
(p,,
A
) Cheia publica a lui Alice
(p,,
B
) Cheia publica a lui Bob
Criptare : Bob obtine cheia publica a lui Alice, calculeaza textul criptat c
1
folosind cheia lui privata si c
2
folosind
A
a
lui Alice pe care-l obtine din cheia ei publica.
c
1
=
B
mod p ; c
2
= m(
A
)
k
mod p ; c = (c
1
,c
2
) - Trimite textul cifrat c = (c
1
,c
2
) la utilizatorul Alice.
Decriptare : Pentru a determina textul clar m din textul cifrat c, utilizatorul Alice execut urmtoarele:
1. Utilizeaz cheia sa privat a pentru a calcula: f = c
1
p-1-A
(mod p).
2. Determin textul clar m astfel: m = f*c
2
(mod p).
RSA 1) : p=3 ; q=5 ; e=7 , d=?
f=(p-1)*(q-1) = 2*4 = 8
d = e
-1
(mod f) = 7
-1
(mod 8)
8/7 = 1 rest 1 p
0
=0
7/1 = 7 rest 0 p
1
=1
p
2
=0 1*1 (mod 8) = -1 (mod 8) = 7
d = 7
RSA 2) : p=7; q=5; d=11 ; e=?
f=(p-1)*(q-1) = 6*4 = 24
e= d
-1
(mod f) = 11
-1
( mod 24 )
24/11 = 2 rest 2 p
0
=0
11/2 = 5 rest 1 p
1
=1
2/1 = 2 rest 0 p
2
=0 1*2 (mod 24) = 22
P
3
= 1 22*5 (mod 24) = -109 mod 24 = 11
e = 11
RSA 3) : n=15; e=4; m=11, c=?
c = m
e
(mod n) = 11
4
(mod 15) = 14641 mod 15 = 1
RSA 4) : (n,e) = (35,5) ; d=5, c=3 , m=?
m = c
d
(mod n) = 3
5
(mod 35) = 243 mod 35 = 33
El-Gamal 1): p=11; =2; csA=3; csB=4; m=9; c=?
c
1
=
B
(mod p) = 2
4
mod 11 = 16 mod 11 = 5
c
2
= m(
A
)
B
(mod p) = 9(2
3
)
4
mod 11 = 9*4096 (mod 11) = 3
c = (c
1
,c
2
) = (5,3)
El-Gamal 2): p=7; =5; csA=3; csB=4; m=11; c=?
c
1
=
B
(mod p) = 5
4
mod 7 = 625 mod 7 = 2
c
2
= m(
A
)
B
(mod p) = 11(5
3
)
4
mod 7 = 11*244140625 (mod 7) = 4
c = (c
1
,c
2
) = (2,4)
El-Gamal 3): p=11; =2; csA=3; csB=4; A primeste de la B (y
1
,y
2
)=(5,3); txt. Clar x =?
z = y
1
p-1-A
(mod p) = 5
11-1-3
(mod 11) = 5
7
(mod 11) = 3
x = z * y
2
(mod p) = 3 * 3 (mod 11) = 9
El-Gamal 4): p=11; =2; csA=4; csB=7; (y
1
,y
2
) = (3,7); txt clar x=?
Daca (y
1
,y
2
) = (3,7) este primit de B de la A, atunci:
f = y
1
p-1-B
(mod p) = 3
11-1-7
(mod 11) = 3
3
(mod 11) = 5
x = f * y
2
(mod p) = 5 * 7 (mod 11) = 2
Daca (y
1
,y
2
) = (3,7) este primit de A de la B, atunci:
f = y
1
p-1-A
(mod p) = 3
11-1-4
(mod 11) = 3
6
(mod 11) = 3
x = f * y
2
(mod p) = 3 * 7 (mod 11) = 10