Criptografie complet

710
Definitii de baza Sisteme de criptare simetrice Criptografie si securitate Luciana Morogan Facultatea de Matematica-Informatica Universitatea Spiru Haret Laboratoare Laborator

Transcript of Criptografie complet

Page 1: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Criptografie si securitate

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laboratoare

Laborator

Page 2: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Outline

1 Definitii de baza

2 Sisteme de criptare simetriceCifruri de permutareExercitiiCifruri cu substitutie

Sisteme monoalfabeticeSisteme polialfabetice

Laborator

Page 3: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Definitie generica

Criptografia =⇒ studiul metodelor matematice legate desecuritatea informatiei, capabile sa asigure

confidentialitateaautentificareanon-repudierea mesajelorintegritatea datelor vehiculate

Termenul criptografie =⇒ scriere secreta: format dincuvintele grecesti cryptos 7→ ascuns si grafie 7→ scriere.Domeniul cuprinde

operatia de criptare (cifrare) a unui texteventualele incercari de descifrare si de aflare a cheii decriptare

Procesul de determinare a unei chei folosind un text criptatse numeste criptanaliza.

Laborator

Page 4: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Schema generala

Fig.1

Figure: Fig.1

Laborator

Page 5: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Definitie formala(1)

Un sistem de criptare este o structura (P,C,K ,E ,D)

P = {w |w ∈ V ∗} este multimea textelor clare, scrise pesteun alfabet nevid V (uzual V = {0,1}).C = {α|α ∈W ∗} este multimea textelor criptate, scrisepeste un alfabet nevid W (uzual W = V ).K este o multime de elemente numite chei.Fiecare cheie κ ∈ K determina o metoda de criptareeκ ∈ E si o metoda de decriptare dκ ∈ D

functiile eκ : P −→ C si dκ : C −→ P au proprietateadκ(eκ(w)) = w ,w ∈ P

C = {α|∃w ∈ P, ∃κ ∈ K , α = eκ(w)}

Functia eκ este evident injectiva; daca eκ este bijectiva (si decidκ = e−1

κ ) atunci sistemul de criptare se numeste simetric.

Laborator

Page 6: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Definitie formala(2)

Pentru ca un sistem de criptare sa fie considerat bun, trebuieindeplinite patru criterii (enuntate de Francis Bacon in sec.XVII):

Fiind date eκ si w ∈ P, este usor de determinat eκ(w)

Fiind date dκ si α ∈ C, este usor de determinat dκ(α)

w este imposibil de determinat din α, fara a cunoaste dκ

(defineste vag ideea de securitate a sistemului)Textul criptat trebuie sa fie un text banal, fara suspiciuni(Aceasta conditie este utilizata astazi doar de unsubdomeniu strict al criptografiei, numit steganografie)

Laborator

Page 7: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sisteme clasiceSistemele de criptare clasice↔ sisteme simetrice

odata cu aflarea cheii de criptare cheia de decriptare seobtine imediat, fiind functia inversa

ClasificareSistemele de criptare simetrice se impart in doua clase mari

cifruri de permutarecifruri cu substitutie

Laborator

Page 8: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Cifru de permutare: definitie formalaFie n un numar natural nenul. Un cifru de permutare este unsistem (P,C,K ,E ,D) unde P = C = (Z26)

n ,K = Pn (multimeapermutarilor de n elemente). Pentru o cheie (permutare) π,

eπ (a1a2...an) = aπ(1)aπ(2)...aπ(n) = b1b2...bn

dπ (b1b2...bn) = bπ−1(1)bπ−1(2)...bπ−1(n)

CriptareaTextul clar se imparte in blocuri de n,n ≥ 2 caractere, sifiecaruia i se va aplica o permutare prefixata.

Laborator

Page 9: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 1 (1)

Fie cheia de criptare permutarea(1 2 32 1 3

)

CriptareaTextul clar GRUPELE ANULUI III se imparte in grupuri decate trei caractere (consideram si caracterul spatiu, notat•)GRU PEL E•A NUL UI• IIITextul criptat va fi....?si eliminand gruparile...?

Laborator

Page 10: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 1 (2)

SolutiaTextul criptat va fi... RGU EPL •EA UNL IU• IIIsi eliminand gruparile... RGUEPL•EAUNLIU•III

Laborator

Page 11: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 2: sistemul de criptare Hill (1929) (1)

Fie d ≥ 2 un numar intreg fixat. DefinimP = C = (Z26)

d

K = {M|M ∈Md (Z26) ,det(M) 6= 0}O cheie de criptare este o matrice M patrata nesingulara dedimensiune d , cu elemente din (Z26), iar M−1 formeazacheia de criptare.

Criptarea.Textul clar w se imparte in blocuri de lungimed : w = α1α2 . . . αn, |αi | = d(ultimul bloc se completeaza - eventual - pana se ajunge ladimensiunea d).Textul criptat va fix = β1β2 . . . βn, βi = eM(αi) = αi ·M(mod26), (1 ≤ i ≤ n).Decriptarea. Se foloseste relatia dM(βi) = βi ·M−1(mod26).

Laborator

Page 12: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 2: sistemul de criptare Hill (1929) (2)

Consideram exemplul in care d = 2 si cheia M =

(3 32 5

)a

carei inversa este matricea M =

(15 1720 9

).

Daca w = FRAC, avemα1 =

(F R

)=(

5 17)

si α2 =(

A C)

=(

0 2)

Din urmatoarele doua relatii

β1 = eM(α1) = α1 ·M(mod26) =(

5 17)·(

3 32 5

)=(

23 22)

=(

X W)

β2 = eM(α2) = α2 ·M(mod26) =(

0 2)·(

3 32 5

)=(

4 10)

=(

E K)

Laborator

Page 13: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri 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 siincearca sa afle matricea M (M−1) cunoscand perechea (textclar, text criptat) = (FRAC, XWEK), Oscar se afla in fataurmatoarei probleme:

M =?,M =

(a bc d

),a,b, c,d ∈ 0,1, ...,25 astfel incat(

5 170 2

)·(

a bc d

)=

(23 224 10

)

Laborator

Page 14: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 2: sistemul de criptare Hill (1929) (4)

Oscar criptanalistul varianta 1 (2)Pentru aflarea lui M, Oscar trebuie sa afle inversa lui(

5 170 2

).

Cum determinantul matricii(

5 170 2

)este 10 si

cmmdc(10,26) > 1⇒ 10−1(mod26) nu exista⇒ matricea nu este inversabila.

Laborator

Page 15: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 2: sistemul de criptare Hill (1929) (5)

Oscar criptanalistul varianta 2: ipoteza atacului cu text clarales (1)Oscar alege un text clar a carui matrice este inversabila si ii aflacriptarea.Fie BRAD acest text clar. Matricea asociata acestuia este

A =

(1 170 3

).

Oscar solicita criptarea lui BRAD si primeste LKGP cu matricea

B =

(11 106 15

)⇒ Oscar dispune acum de perechea (BRAD,

LKGP).

Determinand pe A−1 =

(1 30 9

)si apoi ecuatia A ·M = B, va

gasi solutia M = A−1 ·B =

(1 30 9

)·(

11 106 15

)=

(3 32 5

)Laborator

Page 16: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exemplul 2: sistemul de criptare Hill (1929) (6)

Oscar criptanalistul varianta 2: ipoteza atacului cu text clarales (2)

Permutarii(

1 2 32 1 3

)ii corespunde matricea de permutare 0 1 0

1 0 00 0 1

Opertatia de criptare este imediata si criptarea textului FLOeste(

5 11 14)·

0 1 01 0 00 0 1

=(

11 5 14)

adica LFO.

Laborator

Page 17: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exercitiul 1

Determinati inversele matricilor (modulo 26)

1 (2 53 1

)

2 7 3 51 8 22 2 4

Laborator

Page 18: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exercitiul 2

Criptati un text clar la alegere folosind sistemul de criptareHill cu matricea

1 17 17 521 18 212 2 19

sau

2 5 11 52 14 12 4 9

Laborator

Page 19: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Exercitiul 3

Fie cifrul de permutare: Se fixeaza 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 plinii si q coloane. Criptarea blocului se realizeaza scriindaceste matrici pe coloane.

Exemplu: pentru p = 3,q = 4, textul clarMAINI CURATE se scrie

M A I NI C U RA T E X

(spatiile se completeaza cu litera X). Textulcriptat va fi MIAACTIUENRX.

Decriptati textul DTREAECRURESIAIPATLaborator

Page 20: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Cifruri cu substitutie

sisteme monoalfabetice: substituie fiecare caracter cu altcaracter, totdeauna acelasi indiferent de pozitie

sistemul de criptare Polybiossistemul cavalerilor de Maltasistemul de criptare afincriptanaliza

sisteme polialfabetice: substitutia unui caracter variaza intext in functie de diversi parametrii

sistemul de criptare Vigenerecriptanaliza

exercitii

Laborator

Page 21: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare Polybios (1)

Consideram alfabetul latin, din care eliminam o litera de frecventa cat mairedusa; fie aceasta W . Cele 25 litere ramase le asezam intr-un patrat 5 x 5(numit careu Polybios) ca mai jos.In operatia de criptare, fiecare caracter a va fi reprezentat printr-o pereche(x , y) (x , y ∈ {A, B, C, D, E}) care dau linia respectiv coloana pe care se aflaa.

Laborator

Page 22: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare Polybios (2)

ExempluTextul clar UNIVERSITATE este criptat inEACDBDEBAEDCDDBDDEAADEAE.

Deci sistemul de criptare Polybios este o substitutiemonoalfabetica cu alfabetul W = {AA,AB,AC, ...,EE} de 25caractere.

Laborator

Page 23: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare afin (1)

P = C = (Z26)

K = (a,b)|a,b ∈ Z26, cmmdc(a,26) = 1pentru k ∈ K , k = (a,b) definim

functia de criptare: ek (x) = ax + b(mod26) = yfunctia de decriptare: dk (y) = a−1y + a−1(26− b)(mod26)(cum (a,26) = 1, ∃a−1 ∈ Z26)

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 N0 1 2 3 4 5 6 7 8 9 10 11 12 13

O P Q R S T U V W X Y Z14 15 16 17 18 19 20 21 22 23 24 25

Laborator

Page 24: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare afin (2)

ExempluPentru a = 3, b = 5 avem

e(3,5)(x) = 3x + 5

d(3,5)(y) = 9y + 9(26−5)(mod26) = 9y + 7 deoarece 3−1 = 9(mod26)

Sa luam textul clar GRUPA. Codificarea 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

Page 25: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare Vigenere (1)

Consideram, ca la sistemele anterioare, cele 26 litere alealfabetului, numerotate de la 0 (pentru A) pana la 25 (pentru Z).Definim

P = C = Z26

K = Z+26 unde o cheie k ∈ K este un cuvant avand

codificarea numerica k0k1 . . . kp−1

Fie a = a0a1 . . . an codificarea textului clar care trebuietransmis. Textul criptat va fi ek (a) = x = x0x1 . . . xn, undexi = ai + ki(modp)(mod26)

Laborator

Page 26: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri cu substitutie

Sistemul de criptare Vigenere - exemplu (2)

Criptare (1)Sa consideram cuvantul cheie GRUPA; deci p = 5 sik =

(23 4 13 24 5

). Daca vrem sa criptam cu aceasta

cheie textul clar CRIPTOGRAFIE, vom proceda astfel:Codificarea textului este a = 2 17 8 15 19 14 6 17 0 5 8 4.Sub fiecare numar din a se aseaza cate un numar din k ;cand cheia se termina, ea se reia ciclic, pana se termina aLinia a treia va contine suma modulo 26 a numerelor de peprimele doua linii, iar pe ultima linie s-a scris textul criptatrezultat

Laborator

Page 27: Criptografie complet

Definitii de bazaSisteme de criptare simetrice

Cifruri de permutareExercitiiCifruri 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 425 21 21 13 24 11 10 4 24 10 5 8Z V V N Y L K E Y K F I

DecriptareDecriptarea se realizeaza similar, scazand (modulo 26) dincodul caracterului criptat, codul caracterului corespunzator dincheie.

Laborator

Page 28: Criptografie complet

GENERATORI DE

NUMERE PSEUDO-

ALEATOAREAsist. Drd. Morogan Maria Luciana

Page 29: Criptografie complet

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.

Page 30: Criptografie complet

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

Page 31: Criptografie complet

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 lf Z Z→ 0 2

ks Z∈

0 2( ) lf s Z∈

Page 32: Criptografie complet
Page 33: Criptografie complet

In studiul securitatii unui sistem criptografic exista doua abordari fundamentale:

� Securitatea calculabila[1] care masoara cantitatea de calcul necesar pentru spargerea unui sistem. Vom spune ca un sistem este sigur in sensul teoriei complexitatii[2] daca cel mai bun algoritm pentru spargerea sistemului necesita N operatii, unde N este un numar foarte mare.

� Securitatea neconditionata masoara securitatea sistemului fara limita a cantitatii de calcule pe care un adversar este capabil sa le faca. Un procedeu este neconditionat sigur daca nu poate fi spart, nici cu o putere de calcul infinita.

[1] Computational security

[2] Computationally secure

Page 34: Criptografie complet

Este important de studiat informatia care poate avea relevanta pentru un adversar in realizarea unui atac cu text cunoscut si intr-un timp arbitrar de calcul. Instrumentul de baza in studierea acestei probleme il reprezinta notiunea de entropie ( Shannon, 1948, teoria informatiei).

In general, pentru un sir binar, avem:

entropia = log (numarul sirurilor posibile)

(log se refera la un logaritm in baza 2)

Page 35: Criptografie complet

Generatori de numere pseudo – aleatoare

Din punctul de vedere

al securitatii:

� Generatori siguri� ANSI X9.17

� FISP 186

� Generatori nesiguri:� Generatorul RSA

� Micali-Schnorr

� Blum-Blum-Schub

Alta clasificare:

� generatori simplii � Generatorul liniar congruential� Generatori Ranrot � Generatorul Blum – Blum – Shub

� generatori bazati pe LFSR � Generatorul Geffe � Generatori de tip “Stop-and-go”� Generatorul Stop-and-go alternativ

� “clasa” separata � Generatorul Mother-of-all � Generatorul Blum – Micali � Generatorul1/p

Page 36: Criptografie complet

Generatori simplii de

numere pseudo-aleatoare

Page 37: Criptografie complet

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)mod31s s→ +

Page 38: Criptografie complet
Page 39: Criptografie complet

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+ −

=

= = +

Page 40: Criptografie complet
Page 41: Criptografie complet

Generatorul Blum – Blum – Shub

Unul dintre cele mai des utilizate generatoare de

numere pseudo-aleatoare,este acest generator.

Page 42: Criptografie complet

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 1n

xx Z

n

∈ =

Page 43: Criptografie complet

Definitie. Fie p si q doua numere prime. Daca

atunci numarul n = pq se numeste intreg

Blum.

3(mod 4)p q≡ ≡

Page 44: Criptografie complet

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 0s QR n∈ ≥2

1 modi is s n+ =

0 1 2( ) ( , ,..., )lf s z z z=

mod2, pentru 1 .i iz s i l= ≤ ≤

Page 45: Criptografie complet

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.

Page 46: Criptografie complet

Generatori bazati pe LFSR

Page 47: Criptografie complet

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 mR R R−

0 1 1, ,..., mx x x −

Page 48: Criptografie complet

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.

1mx −

2mR −

2mx − 3mR −

Page 49: Criptografie complet

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 01, 0, 0, 1, 1x x x x x= = = = =

1 10 0 1

4R 3R 2R 1R 0R

11 0 0

4R 3R 2R 1R 0R

( ) ( )4 3 2 1 0 4 3 2 1, , , , , , , ,x x x x x x x x x→ −

Page 50: Criptografie complet

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−

+ +=

=∑

0m ≥

ix

0c

1 1 2 2 1 1 0 0...m m m m mx c x c x c x c x− − − −= + + + +

1 2 0, ,..,m mc c c− −

Page 51: Criptografie complet

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:

Page 52: Criptografie complet

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

Page 53: Criptografie complet

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= ∧ ⊕ ∧

Page 54: Criptografie complet

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.

Page 55: Criptografie complet

Alti generatori de numere

pseudo-aleatoare

Page 56: Criptografie complet

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.

Page 57: Criptografie complet

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.

0x

1 (mod )ix

ix g p+ =

1

2i

px

−<

Page 58: Criptografie complet

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

0x

0x

1 (mod )e

i ix x n+ =

(mod 2)i iz x=

Page 59: Criptografie complet

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.

Page 60: Criptografie complet

MODELUL TEORETIC DE

VERIFICARE A SECURITATII

UNUI GENERATOR

Page 61: Criptografie complet

Exista doua cerinte generale legate de securitatea unui

generator de numere pseudo-aleatoare:

� secventa rezultat a unui PRBG ar trebui sa

fie inseparabila, din punct de vedere

statistic, de o secventa de numere pur

aleatoare

� bitii rezultat ar trebui sa fie imprevizibili pentru

un adversar care dispune de resurse de

calcul limitate

Page 62: Criptografie complet

Definitie. Fie doua distributii de probabilitate[1] pe

Prin intelegem ca t este ales astfel incat

Spunem ca este inseparabil in timp polinomial de

daca pentru orice algoritm probabilist A si orice polinom Q

exista astfel incat avem:

Adica, conditia de inseparabilitate spune ca pentru siruri

suficient de lungi nu exista un algoritm probabilist care sa

decida daca sirul a fost selectat dupa distributia sau

[1] O distributie de probabilitate pe o multime S este o

functie astfel incat

,n nX Y {0,1}n

nt X∈

{0,1} ,Pr[ ] ( )n

nz x z X z∀ ∈ = =

{ }nX { }nY

0n 0, ,n n n∀ >

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )n nt X t YA t A tQ n

∈ ∈= − = <

nX nY

: [0,1]D S R→ ⊂( ) 1

s S

D s∈

=∑

Page 63: Criptografie complet

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:

nU

{0,1}nα ∈1

Pr ( )2nx U n

x α∈ = =

nX

nU

0n

0, ,n n n∀ >

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )n nt X t UA t A tQ n

∈ ∈= − = <

Page 64: Criptografie complet

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.

nX

Page 65: Criptografie complet

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 pG →

{ }p pG pG {0,1}p

pt G∈

kx G∈

1| Pr ( ( ) 1) Pr ( ( ) 1) |

( )p pt G t UA t A tQ p

∈ ∈= − = <

Page 66: Criptografie complet

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 ½.

Page 67: Criptografie complet

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

0k 0 si mp k p> <

1 2 1

1 1| Pr [ ( ... ) ] |

2 ( )pt G m mA t t t tQ k

∈ += < +

Page 68: Criptografie complet

TESTE STATISTICE DE

VALIDARE

Page 69: Criptografie complet

Distributia normala si distributia Distributia normalaDefinitie. 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 ,

22

xf x x

µσσ π

− −= −∞ < < ∞

2( , )N µ σ

2( , )N µ σ

( ) /Z X µ σ= −

1v ≥2χ

( / 2) 1 / 2

/ 2

1e ,0

( / 2)2( )

0, 0

v x

vx x

vf x

x

− − ≤ < ∞Γ= <

Γ

vµ =2 2vσ =

2( , )N µ σ2 0σ > 2 2( ) /Z X µ σ= −

2χ2X

1

0

( ) t xt x e dx

∞− −Γ = ∫

Page 70: Criptografie complet

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.

Page 71: Criptografie complet

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, , ,..., ns s s s s −=

Page 72: Criptografie complet

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.

Page 73: Criptografie complet

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.

Page 74: Criptografie complet

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 2mn

m

≥ ⋅ nk

m

=

in1 2mi≤ ≤

Page 75: Criptografie complet

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.

Page 76: Criptografie complet

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.

Page 77: Criptografie complet

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.

Page 78: Criptografie complet

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.

Page 79: Criptografie complet

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

� A. Atanasiu, Crptografie, Note de Curs, disponibil la adresa de internet: http://www.galaxyng.com/adrian_atanasiu/cript.htm

� S. Goldwasser, M. Bellare, Lecture Notes on Cryptography, Cambridge, Massachusetts, August 2001.� 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/

Page 80: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Sisteme de criptare fluide

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 81: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Outline

1 Preview

2 Sisteme sincrone

3 Sisteme asincrone

Page 82: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Sisteme de criptare

Sistemele de criptare:bloc(block cyphers)

elemente succesive ale textului clar sunt criptate folosindaceeasi cheie de criptaredaca x = x1x2x3 . . . atunciy = y1y2y3 . . . = ek (x1)ek (x2)ek (x3) . . .

fluide(stream cyphers)sincroneasincrone

Page 83: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Definitii formale (1)

FieM = (P, C,K, E ,D) un sistem de criptare. Secventa desimboluri k1k2k3 · · · ∈ K + se numeste cheie fluida.M = (P, C,K, E ,D) este un sistem de criptare fluid dacacipteaza textul clar x = x1x2x3 . . . iny = y1y2y3 . . . = ek1(x1)ek2(x2)ek3(x3) . . ., unde k1k2k3 . . .este o cheie fluida din K +

Page 84: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Definitii formale (2)

Problema generala: generarea cheii fluide cu ajutorul unuigenerator numit generator de chei fluideObs! Daca

cheia fluida este aleasa aleator si nu mai este foloitaulteriorlungimea cheii = lungimea textului clar

Atunci sistemul de criptare se numeste one-time-pad

Page 85: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Definitie formala

Un sistem de criptare fluid sincron este o structura(P, C,K,L, E ,D) unde

Fie P, C,K sunt multimi finite, nevide, ale caror elementese numesc texte clare, texte criptate si, respectiv, cheiL este o multime finita, nevida numita alfabetul sirului decheise defineste g : K → L+ generatorul de chei fluide astfelincat ∀k ∈ K avem g(k) = k1k2k3 · · · ∈ K + cheia fluida(teoretic infinita)∀z ∈ L,

exista regula de criptare ez ∈ Eexista regula de decriptare dz ∈ D

astfel incat ∀x ∈ P, dz(ez(x)) = x

Page 86: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Exemplu: Sistemul de criptare Vigenere

Descrierea sistemuluim lungimea cuvantului cheieP, C,K=Z26, K= (Z26)

m

ez(x) = x + z(mod26),dz(y) = y − z(mod26)

cheia z1z2 . . . definita prin

zi =

{ki dc 1 ≤ i ≤ m

zi−m dc i ≥ m + 1

va genera din cheia fixa K = (k1, k2, . . . , km), cheia fluidak1, k2, . . . , kmk1, k2, . . . , kmk1, k2, . . .

Page 87: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Criptarea si decriptarea

Se realizeaza ca un automat descris deqi+1 = δ(qi , k), zi = g(qi , k), yi = h(zi , xi) unde:

q0 - starea initiala determinata din cheia kδ - functia de tranzitie a starilorg - functia ce produce cheia fluida zi

h - functia iesire care produce textul criptat yi pe bazatextului clar xi si a cheii fluide zi

Page 88: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Criptarea si decriptarea: schematic

Criptarea

Page 89: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Decriptarea: schematic

Decriptarea

Page 90: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Observatii

Sistemul de criptare bloc este un caz particular de sistemde criptare fluid: ∀i ≥ 1, zi = k(Sincronizare.) Cel care trimite mesajele si cel ce urmeazaa le primi trebuie sa isi sincronizeze cheia fluida pentru aobtine o criptare/decriptare corecta. Daca in timpultransmisiei sunt inserati sau eliminati biti in textul criptat,atunci decriptarea esueaza si poate fi reluata pe baza unortehnici de resincronizare (de exp. reinitializarea)Modificarea unui bit din textul criptat (fara a se elimina sauadauga nimic) nu afecteaza decriptarea altor caractere(nepropagarea erorii)Adversarul activ care elimina, insereaza sau retrimitecomponente ale mesajului provoaca desincronizari si vafidetectat la receptie

Page 91: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Sistemul aditiv fluid binar de criptare

Un sistem aditiv fluid binar de criptare este un sistem fluidsincron in care P = C = L= Z2 iar h reprezinta functia XOR

Criptare Decriptare

Page 92: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Sistemul aditiv fluid binar de criptare - exemplu

Sa considerm exemplul in care dorim criptarea/decriptarea secventei de textclar x = 101101 si presupunem ca iesirea generatorului de chei fluide oferacheia z = 1101. Vom avea: x1 = 1, x2 = 0, x3 = 1, x4 = 1, x5 = 0, x6 = 1 siz1 = 1, z2 = 1, z3 = 0, z4 = 1, z5 = z1 = 1, z6 = z2 = 1

Criptarea

y1 = ez1(x1) = x1 ⊕ z1 = 1⊕ 1 = 0y2 = ez2(x2) = x2 ⊕ z2 = 0⊕ 1 = 1y3 = ez3(x3) = x3 ⊕ z3 = 1⊕ 0 = 1y4 = ez4(x4) = x4 ⊕ z4 = 1⊕ 1 = 0y5 = ez1(x5) = x5 ⊕ z1 = 0⊕ 1 = 1y6 = ez2(x6) = x6 ⊕ z2 = 1⊕ 1 = 0Se obtine astfel secventa de text cripty = 011010

Decriptarea

x1 = dz1(y1) = y1 ⊕ z1 = 1⊕ 0 = 1x2 = dz2(y2) = y2 ⊕ z2 = 1⊕ 1 = 0x3 = dz3(y3) = y3 ⊕ z3 = 0⊕ 1 = 1x4 = dz4(y4) = y4 ⊕ z4 = 1⊕ 0 = 1x5 = dz1(y5) = y5 ⊕ z1 = 1⊕ 1 = 0x6 = dz2(y6) = y6 ⊕ z2 = 1⊕ 0 = 1Se obtine astfel secventa de text clarx = 101101

Page 93: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Definitie formala

Un sistem de criptare fluid se numeste asincron(auto-sincronizabil) daca functia de generare a cheii fluidedepinde de un numar de caractere criptate anterior:qi = (yi−t , yi−t+1, . . . , yi−1), zi = g(qi , k), yi = h(zi , xi) unde:

q0 = (y−t , y−t+1, . . . , y−1) - starea initialak - cheiag - functia ce produce cheia fluidah - functia iesire care produce care cripteaza textului clar xi

Page 94: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Sisteme asincrone - Exemple

LFSR- registrii lineari cu feedback

Criptarea cu auto-cheieP = C = L= Z26

cheia fluida este data de z1 = k , zi = yi−1, i ≥ 2pentru z ∈ Z26, definim

ez(x) = x + z(mod26)dz(y) = y − z(mod26)

ExercitiuPentru k = 11codificati/decodificati textul clarSPIRU HARET

SolutiaSe va obtine textul criptatatDSARLSSJNG.

Page 95: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Solutia detaliata a exercitiului anterior

Codificarea textului clar SPIRU HARET este x =18 15 8 17 20 7 0 17 4 19,iar k = z1 = 11

Modul criptare

y1 = ez1(x1) = x1 + z1(mod26) = 18 + 11(mod26) = 3 si z2 = y1 = 3y2 = ez2(x2) = x2 + z2(mod26) = 15 + 3(mod26) = 18 si z3 = y2 = 18y3 = ez3(x3) = x3 + z3(mod26) = 8 + 18(mod26) = 0 si z4 = y3 = 0y4 = ez4(x4) = x4 + z4(mod26) = 17 + 0(mod26) = 17 si z5 = y4 = 17y5 = ez5(x5) = x5 + z5(mod26) = 20 + 17(mod26) = 11 si z6 = y5 = 11y6 = ez6(x6) = x6 + z6(mod26) = 7 + 11(mod26) = 18 si z7 = y6 = 18y7 = ez7(x7) = x7 + z7(mod26) = 0 + 18(mod26) = 18 si z8 = y7 = 18y8 = ez8(x8) = x8 + z8(mod26) = 17 + 18(mod26) = 9 si z9 = y8 = 9y9 = ez9(x9) = x9 + z9(mod26) = 4 + 9(mod26) = 13 si z10 = y9 = 13y10 = ez10(x10) = x10 + z10(mod26) = 19 + 13(mod26) = 6Se obtine astfel textul criptat y = 3 18 0 17 11 18 18 9 13 6 si decicodificarea DSARLSSJNG.

Decripatrea se va realiza in mod similar.

Page 96: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Observatii

Auto-sincronizare: cum h−1 depinde de un numar fixat decaractere criptate anterior, desincronizarea rezulta dininserarea sau stergerea de caractere criptate (se poateevita)Daca starea unui sistem fluid auto-sincronizabil depinde det caractere anterioare, atunci modificarea(stergerea,inserarea) unui caracter va duce la decriptareaincorecta a maxim t caractere, dupa care decriptarearedevine corecta.

Page 97: Criptografie complet

Preview Sisteme sincrone Sisteme asincrone

Alte exemple de sisteme fluide de criptare

SEAL - sistem de criptare aditiv binarRC4 (Rist Code 4) - creat pentru RSA Data Security Inc.(astazi RSA Security), este un sistem aditiv fluid decriptare destinat scopurilor comerciale

Page 98: Criptografie complet

Laborator

Sisteme de criptare bloc- Moduri de utilizare -

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 99: Criptografie complet

Laborator

Outline

Sisteme de criptare bloc

Modul de utilizare ECB

Modul de utilizare CBC

Modul de utilizare OFB

Modul de utilizare CFB

Page 100: Criptografie complet

Laborator

Sisteme de criptare bloc

Sisteme de criptare - definitie

Sistemele de criptare bloc (block cyphers):I elemente succesive ale textului clar sunt criptate folosind

aceeasi cheie de criptareI daca x = x1x2x3 . . . atunci

y = y1y2y3 . . . = ek (x1)ek (x2)ek (x3) . . .

Page 101: Criptografie complet

Laborator

Sisteme de criptare bloc

Moduri de utilizare

I ECB (Electonic Codebook Mode)I CBC (Cypher Block Chaining Mode)I OFB (Output Feedback Mode)I CFB (Cypher Feedback Mode)

Page 102: Criptografie complet

Laborator

Modul de utilizare ECB

Descrierea modului de utilizare ECB

I textul clar se descompune in blocuri de lungime n; dacaeste necesar, aceasta se suplimenteaza a. i. lungimea safie divizibila cu n (suplimentarea poate consta din simbolurialese aleator)

I daca este folosita cheia de criptare k , atunci fiecare blocde lungime n se cripteaza folosind functia ek

I textul criptat este decriptat prin aplicarea functiei dk , undek reprezinta cheia de decriptare corespunzatoare lui k

Page 103: Criptografie complet

Laborator

Modul de utilizare ECB

Descrierea formala a modului de utilizare ECB

I Fie x = α1α2α3 . . . texul clar unde fiecare bloc de textαi , i ≥ 1 este de lungime n

I Formula de criptare cu cheia k : βi = ek (αi), i ≥ 1I Textul criptat este y = β1β2β3 . . .

Page 104: Criptografie complet

Laborator

Modul de utilizare ECB

Exercitiu

I Consideram cifrul bloc care aplica permutari bitilor unuivector de biti de lungime 4.

I Daca K =S4, atunci pentru π ∈ S4, avemeπ : [0,1]4 → [0,1]4,b1b2b3b4 7−→ bπ(1)bπ(2)bπ(3)bπ(4)

In particularCriptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)

Page 105: Criptografie complet

Laborator

Modul de utilizare CBC

Descrierea modului de utilizare CBC

I codificarea unui boc nu mai depinde doar de cheie (a sevedea ECB) ci si de blocurile anterioare

I aceleasi blocuri in contexte diferite, vor fi codificate diferitI receptorul poate spune daca textul criptat a fost modificat,

deoarece decriptarea acestuia esueaza

Page 106: Criptografie complet

Laborator

Modul de utilizare CBC

Descrierea formala a modului de utilizare CBC

I se defineste blocul initial IV = β0

I Formula de criptare cu cheia k : βi = ek (βi−1 ⊕ αi), i ≥ 1,unde ⊕ reprezinta operatia XOR pe biti

Page 107: Criptografie complet

Laborator

Modul de utilizare CBC

Schematic - CBC

Criptare Decriptare

Page 108: Criptografie complet

Laborator

Modul de utilizare CBC

Exercitiu

I Consideram cifrul bloc care aplica permutari bitilor unuivector de biti de lungime 4.

I Daca K =S4, atunci pentru π ∈ S4, avemeπ : [0,1]4 → [0,1]4,b1b2b3b4 7−→ bπ(1)bπ(2)bπ(3)bπ(4)

In particularCriptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)

Blocul initial este IV = 1010

Page 109: Criptografie complet

Laborator

Modul de utilizare OFB

Descrierea modului de utilizare OFB

I construit conform sistemelor de criptare fluideI se genereaza intai cheia fluida, care apoi se va combina

cu textul clarI este o criptare sincronizabila aditiva: componentele cheii

fluide sunt obtinute prin criptarea iterativa a unui bloc initial

Page 110: Criptografie complet

Laborator

Modul de utilizare OFB

Descrierea formala a modului de utilizare OFB

I Obtinerea cheii fluideI se defineste blocul initial γ0 = IV , IV ∈ {0,1}n si un numar

intreg pozitiv r ,1 ≤ r ≤ nI textul clar se va descompune in blocuri de dimensiune rI se calculeaza recursiv cheia fluida γ1γ2γ3 . . . dupa formulaγi = ek (γi−1), i ≥ 1

I Secventa de text clar x = α1α2α3 . . . se codifica cuformula de criptare βi = ek (αi ⊕ γi), i ≥ 1

I Textul criptat este y = β1β2β3 . . .

MUGUR
Typewritten Text
X
Page 111: Criptografie complet

Laborator

Modul de utilizare OFB

Exercitiu

I Consideram acelasi cifru bloc, text clar si cheie ca laexercitiile anterioare

I Blocul initial este IV = 1010

Sa se realizeze criptarea/decriptarea secventei de text clar.

Page 112: Criptografie complet

Laborator

Modul de utilizare CFB

Descrierea modului de utilizare CFB

I construit conform sistemelor de criptare fluide, este potrivitpentru codificarea mesajelor mari

I in cadrul aplicatiilor in timp real, poate avea totusiprobleme de eficienta

I se genereaza intai cheia fluida, care apoi se va combinacu textul clar

I este necesar un vector de initializare

Page 113: Criptografie complet

Laborator

Modul de utilizare CFB

Descrierea formala a modului de utilizare CFB

I se defineste blocul initial IV = β0, IV ∈ {0,1}n si un numarintreg pozitiv r ,1 ≤ r ≤ n

I textul clar se va descompune in blocuri de dimensiune rI se calculeaza cheia fluida δ1δ2δ3 . . . criptand blocul de text

criptat anterior dupa formula δi = ek (βi−1), i ≥ 1I Secventa de text clar x = α1α2α3 . . . se codifica cu

formula de criptare βi = ek (αi ⊕ δi), i ≥ 1I Textul criptat este y = β1β2β3 . . .

MUGUR
Typewritten Text
MUGUR
Typewritten Text
MUGUR
Typewritten Text
X
Page 114: Criptografie complet

Laborator

Modul de utilizare CFB

Schematic - CFB

Criptare Decriptare

Page 115: Criptografie complet

Laborator

Modul de utilizare CFB

Exercitiu

I Consideram acelasi cifru bloc, text clar si cheie ca laexercitiile anterioare

I Lungimea blocurilor in care se imparte textul clar este tot 4I Blocul initial este IV = 1010

Page 116: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Sisteme de criptare cu cheie publica

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 117: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Outline

1 Sisteme de criptare cu cheie publicaGeneralitatiSecuritatea

2 Sistemul RSARSA

3 Sistemul El-GamalEl-Gamal

4 Exercitii propuseExercitii propuse

Page 118: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Idei de baza

Regula de criptare ek poate fi pulicata intr-un registru public.

Alice (sau orice alta persoana) poate trimite lui Bob un mesajcriptat cu ek , fara a intra in prealabil in contact, iar Bob estesingurul capabil sa descifreze textul, utilizand cheia sa secretade decriptare dk .

Page 119: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Cele mai cunoscute sisteme cu cheie publica

Sistemul RSA - bazat pe dificultatea descompunerii infactori primi a numerelor mari (de sute de cifre); cel mailarg utilizat in acest momentSistemul El-Gamal - bazat pe dificultatea calcululuilogarimului discret intr-un corp finitSistemul Merkle-Hellman - primul sistem definit cu cheiepublica, bazat pe problema {0,1} a rucsacului (problemaNP-completa1)Sistemul McEliece - bazat pe teoria algebrica a codurilor(decodificarea unui cod linear este o problemaNP-completa)Curbe eliptice - sistem ce isi desfasoara calculele pemultimea punctelor unei curbe eliptice

1Daca problema se reduce la o problema nepolinomiala elementara(NP-tare). De exemplu: 2n, en, aan

s.a.

Page 120: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Functii neinversabile (1)

Exemple

Strazile cu sens unic dintr-un orasA→ BB → A imposibil

desi este usor sa parcurgi drumul A→ B, este imposibil sa te intorciB → A (decriptarea)

Cartea de telefon a unui oras mareEste usor de gasit numarul de telefon al unei persoane si foarte greu(imposibil) de aflat persoana care are un anumit numar de telefon.

Criptarea. Pentru fiecare litera a textului clar se alege un nume careincepe cu acelasi caracter, iar numarul de telefon al persoaneireprezinta criptarea (doua aparitii ale aceleiasi litere pot fi codificatediferit)

Decriptarea. Bob detine cartea de teleon scrisa in ordinecrescatoare/descrescatoare a numerelor de telefon

Page 121: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Functii neinversabile (2)

O functie neinversabila trebuie sa verifice conditiile:fiind dat x , f (x) este usor de calculatcalculul lui x din f (x) este imposibil

D. p. d. v. matematic nu se cunosc astfel de functii si deci oproblema este:

usoara - daca se poate rezolva cu un algoritm polinomialcel mult lineargrea - daca se poate rezolva cu un algoritm polinomialnelinearimposibila - daca este NP-completa

Page 122: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Trapa secreta

Bob trebuie sa dispuna de un procedeu care sa-i permita satransforme o problema NP-completa in una usoara.

procedeu numit trapa secreta

ExempluIn exemplul cu cartea de telefon, trapa secreta estereprezentata de cartea de telefon ordonata dupa numere si nudupa abonati.

Page 123: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Generalitati

Principii generale de constructie a unui sistem de criptare cu cheiepublica

Se incepe cu o problema P dificila a carei rezolvare, intermeni de complexitate, este imposibila (nu exista nici unalgoritm de complitate polinomiala care sa rezolve P)Se alege P1 o subproblema a lui P rezolvabila in timppolinomial (preferabil linear)Lui P1 i se aplica o transformare si se obtine P2 care sa nusemene cu P1, dar sa fie apropiata PSe face publica P2 si se descrie algoritmul de criptarebazat pe aceasta. Trapa secreta: modul in care se obtineP1 din P2

Se construiesc detaliile de criptare a.i. destinatarul sapoata folosi trapa secreta si sa rezolve P1, iar criptanalistulsa trebuiasca sa rezolve P2, imposibila datorita asemanariiacesteia cu P

Page 124: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (1)

Daca criptanalistul Oscar dispune de un text criptat y ,atunci el poate cauta un text clar x a.i. ek (x) = yRaspundeti la intrebarea ce modalitate de aparareconsiderati a fi posibila in acest caz?

Page 125: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (1) - raspuns

Raspuns: gradul de complexitate al sistemului

Page 126: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (2)

Meet - in - the middle

Presupunem ipoteza in care Alice si Bob vor sa stabileascaintre ei o legatura (un contact)

cei doi vor face publice cheile lor de criptare eA si eBdaca contactul este nepersonalizat, aunci Oscar poatecontrola mesajele schimbate intre cei doi:

Oscar opacizaza cele doua chei de criptare si trimite luiAlice ceia e1

B ca venind dpartea lui Bob. La fel procedeazade cealalta parte substituind eA cu e1

Adaca consideram m mesajul pe care Alice doreste sa-ltrimita lui Bob, atunci aceasta codifica pe m si trimitey1 = e1

B(m)Oscar intercepteaza mesajul si afla m = d1

B(y1)Oscar recripteaza y = eB(m) si trmite y lui Bob (Oscarpoate intarzia sau modifica mesajul)

CE CONCLUZII TRAGETI DE AICI?

Page 127: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Securitatea

Atacuri (2) - raspuns

Apare necesitatea:autentificarii mesajului sau expeditorului - autentificarea::procesul princare un calculator (program sau alt uilizator)incearca sa confirme destinatarului ca mesajul primit deacesta provine sau nu din partea saconfidentialtatea:: asigura accesul la informatie doarpartilor autorizateintegritatea:: siguranta ca datele la care se refera unutilizator pot fi accesate si modificate doar de catre ceiautorizati

Page 128: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Algoritm

RSA:: Rivest-Shamir-Adlemanp,q numere prime impare, p 6= q si n = pqϕ(n) = (p − 1)(q − 1) indicatorul lui Eulerfie P = C =Zn, definimK= {(n,p,q,a,b)|n = pq,ab ≡ 1(modϕ(n))}pentru k = (n,p,q,a,b),∀x , y ∈ Zn avem

ek (x) = xb(mod n)dk (y) = ya(mod n)

valorile n,b sunt publice; p,q,a sunt secrete

Page 129: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Securitatea si trapa secreta

Securitatea

Se bazeaza pe ipoteza ca ek (x) = xb (mod n) esteneinversabila d.p.d.v al complexitatii.

Pentru ca sistemul sa fie sigur, trebuie ca n sa fie suficientde mare pentru ca factorizarea acestuia sa fie imposibila(⇒ ϕ(n) imposibil⇒ a imposibil)

Trapa secretaDescompunerea lui n = pq

se calculeaza ϕ(n) = (p − 1)(q − 1)

se determina exponentul de decriptare a folosindalgoritmul lui Euclid extins (pentru aflarea cmmdc-ului si ainversului intr-un inel Zn)

Page 130: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

RSA

Implementarea

DecriptareBob trebuie sa urmareasca pasii:

genereaza numerele prime mari p si qcalculeaza n = pq si ϕ(n) = (p − 1)(q − 1)

alege aleator un b,1 < b < ϕ(n) a.i. (b, ϕ(n)) = 1calculeaza a = b−1(modϕ(n)) folosind algoritmul lui Euclidface publice n si b

Page 131: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

Problema logaritmului discret

p - prim, α, β ∈ Zp, β 6= 0a =?,a ∈ Zp−1 a.i. αa ≡ β (mod p)a, dc exista, este unic si a = logαβ

Obs! Pentru problema logaritmilor discreti nu este obligatoriu ca p sa fienumar prim, important este ca α sa fie radacina primitiva de ordinul p − 1 aunitatii (∀i, 0 < i < p − 1, αi 6≡ 1 (mod p))

Teorma lui Fermat. αp−1 ≡ 1 (mod p)

Obs! Cum logritmul discret este dificil de calculat iar operatia inversa(exponentierea) este simpla, trebuie utilizata problema logaritmului discretdificila in Zp:

p - minim 512 biti (1024 pt securitate pe termen lung)

p − 1 - are cel putin un divizor prim mare

Pentru alegerea convenabila a lui p, problema este NP-completa.

Page 132: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

El-Gamal

Algoritmp - prim a.i. problema logaritmilor discreti sa fie dificila inZp si α ∈ Z∗

p primitivP= Z∗

p, C= Z∗p ∗ Z∗

p

K= {(p, α, a, β)|β ≡ αa(modp)}valorile p, α, β - publice, iar a - secretapt K = (p, α, a, β) si k ∈ Zp−1 aleator(secret) definim:eK (x , k) = (y1, y2) unde

y1 = αk (mod p)y2 = x · βk (mod p)

pt y1, y2 ∈ Z∗p definim dK (y1, y2) = y2 · (ya

1 )−1 (mod p)Sistemul este nedeterminist: criptarea depinde de x si ovariabila aleatoare k aleasa de Alice⇒ exista mai multe textecriptate corespunzatoare unui anumit text clar.

Page 133: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

El-Gamal

Observatii

Dezavantaj: dublarea lungimii textului criptat comparativ culungimea textului clarDaca (y1, y2), (z1, z2) sunt textele criptare ale mesajelorm1, respectiv m2, atunci se deduce textul criptat pentrum1m2 ca fiind (y1z1, y2z2)

criptarea pentru 2m1 (respectiv 2m2) conduce la concluziaca sistemul El-Gamal este sensibil la atacul cu text clar ales

ESENTIAL: doua texte diferite ce vor fi criptate trebuie safoloseasca valori diferite pentru k

Page 134: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Exercitii propuse

Sistemul RSA

Ex. 1Fie d exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 3, q = 5. Dacaexponentul de criptare este e = 7,determinati d .

Ex. 2Fie d = 11 exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 7, q = 11.Determinati exponentul de criptare e.

Ex. 3Consideram sistemul de criptare RSAconstruit cu numerele primep = 3, q = 5. Daca exponentul decriptare este e = 4 si se dorestecodificarea textului clar m = 11,determinati textul criptat c.

Ex. 4Un utilizator al sistemului de criptareRSA are ca cheie publica(n, e) = (35, 5) si cheia secreta d = 5.Daca primeste textul criptat c = 3,atunci textul clar decodificat deutilizator este ...

Page 135: Criptografie complet

Sisteme de criptare cu cheie publica Sistemul RSA Sistemul El-Gamal Exercitii propuse

Exercitii propuse

Sistemul El-Gamal

Ex. 1Fie cifrul El-Gamal asociat numarului prim p = 7 si radaciniiprimitive α = 5. Cheia secreta a lui Alice este 3, iar cea a luiBob este 4. Daca Bob codifica textul clar x = 11 si il transmitelui Alice, atunci aceasta primeste codificarea...

Ex. 2Fie cifrul El-Gamal asociat numarului prim p = 11 si radaciniiprimitive α = 5. Cheia secreta a lui Alice este 4, iar cea a luiBob este 7. Alice primeste de la Bob textul criptat (3,7) pe careil decodifica si gaseste mesajul clar ...

Page 136: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice si functii dedispersie

Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Laborator

Page 137: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Outline

1 Preview: Semnaturi electronice

2 Protocoale de semnaturaProtocoale de semnaturaProcedee de criptare vs. procedee de semnaturaSemnatura El-Gamal

3 Functii de dispersieSemnaturi si functii de dispersieFunctii de dispersie cu coliziuniExemplu de exercitiu

Page 138: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi electronice

O semnatura electronica trebuie sa fie:1 unica - o anumita semnatura trebuie sa poata fi generata

de catre o singura persoana2 neimitabila - nici o alta persoana nu va putea genera

semnatura utilizatorului indicat3 usor de autentificat - orice destinatar legal si, eventual,

orice arbitru sa poata stabilii autenticitatea semnaturii4 imposibil de negat - nici un utilizator legal sa nu-si poata

nega propria semnatura5 usor de generat

Page 139: Criptografie complet

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 estemesajul transmisalgoritmul de verificare - public: daca y este o semnaturaautentica a lui x, atunci ∀(x , y) algoritmul ver(x , y) ofera unraspuns dicotomic (adevarat sau fals)

Page 140: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Protocoale de semnatura

Definitie formala

Un protocol de semnatura este un cvintuplu (P,A,K,S,V)unde:

P,A,K - multimi finite, nevide ale caror elemente senumesc mesaje, semnaturi si, respectiv, cheiexista o aplicatie biunivoca K ↔ S × V astfel incat∀k ∈ K, ∃!(sigk , verk ) unde

sigk : P → A, verk : P ×A →{T ,F} au proprietatea ca∀x ∈ P, ∀y ∈ A,verk (x , y) = T ⇔ y = sigk (x)

Obs! Pentru fiecare k ∈ K, functiile sigk si verk trebuie sa fiecalculabile in timp polinomial.

Page 141: Criptografie complet

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 mesajsemnat si criptat. Fie x textul in clar.Alice:

determina semnatura y = sigAlice(x)

codifica x si y cu cheia publica a lui Bob obtinand textulcriptat z cu z = eBob((x , y))

trimite pe z lui BobBob:

foloseste cheia sa secreta dBob si obtine perechea (x , y)

verifica semnatura lui Alice cu cheia publica verAlice(x , y)

Page 142: Criptografie complet

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 = eBob(x)

calculeaza y = sigAlice(eBob(x))

trimite lui Bob mesajul (z, y)

Bob:decripteaza z si obtine xverifica y ca semnatura lui z cu cheia publica verAlice(x , z)

Pericolul: Oscar poate intercepta (z, y), inlocuieste y cu propriasa semnatura y1 = sigOscar (z) si trimite lui Bob mesajul (z, y1)⇒ se recomanda folosirea semnaturii inante de criptare

Page 143: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Semnatura El-Gamal

p - prim a.i. problema logaritmilor discreti sa fie dificila inZp si α ∈ Z∗

p element primitivP= Z∗

p, A= Z∗p × Zp−1

K= {(p, α, a, β)|β ≡ αa(modp)}valorile p, α, β - publice, iar a - secretapt K = (p, α, a, β) si k ∈ Zp−1 aleator(secret) definim:sigK (x , k) = (γ, δ) unde

γ = αk (mod p)δ = (x − aγ)k−1(mod (p − 1))

pt x , γ ∈ Z∗p, δ ∈ Zp−1 definim

verK (x , γ, δ) =T⇔ βγγδ ≡ αx (mod p)

Page 144: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnatura El-Gamal

Observatii

1 Daca semnatura este corecta, verificarea autentificasemnatura:

βγγδ ≡ αaγαkδ ≡ αaγ+kδ ≡ αaαk +k(x−aγ)k−1 ≡ αaαk +x−aγ ≡αaαk +x−aαk ≡ αx (mod p)

2 Protocolul este nedeterminist: pentru un mesaj dat, potexista mai multe semnaturi posibile.

Page 145: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Semnaturi si functii de dispersie

Trasatura generala a protocoalelor de semnatura digitala

Mesajele ce pot fi semnate sunt de dimensiune mica, insa, inpractica, documentele ce trebuiesc a fi semnate ajung ladimensiuni mult mai mari.

Solutia: functia de dispersie ce trebuie calculata rapid. Aceastatransforma un mesaj de lungime arbitrara intr-o amprentanumerica de dimensiune fixata care ulterior va fi semnata:

daca se doreste semnarea unui mesaj x1 se calculeaza amprenta numerica z = h(x)2 aceasta se semneaza cu y = sigk (z)3 perechea (x , y) este transmisa prin canalul de comunicatie

oricine poate efectua verificarea calculand z = h(x) siutilizand verk (z, y)

Page 146: Criptografie complet

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 trebuiesa satisfaca cateva conditii (pt a evita falsificarea)

atacul cel mai simplu al unui mesaj (x , y) semnat cuy = sigk (h(x)) este urmatorul:

1 se calculeaza z = h(x)2 se cauta x1 6= x a.i h(x1) = h(x)

Daca exista x1 ⇒ (x1, y) este un mesaj valid

=⇒ h trebuie sa fie cu coliziuni slabe1

1Definitie. Functia de dispersie h este cu coliziuni slabe daca fiind dat unmesaj x , este calculabil dificil sa se gaseasca un mesaj x1 6= x a.i.h(x1) = h(x)

Page 147: Criptografie complet

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 x1, x2 a.i. x1 6= x2 sih(x1) = h(x2). Il convinge pe Bob sa semneze x1 cuamprenta sa numerica h(x1) si obtine y ⇒ (x1, y)semnatura autentica

=⇒ h trebuie sa fie cu coliziuni tari2

Obs! O functie cu coliziuni tari este si cu coliziuni slabe.

2Definitie. Functia de dispersie h este cu coliziuni tari daca este calculabildificil sa se obtina doua mesaje x1, x2, x1 6= x2 a.i. h(x1) = h(x2)

Page 148: Criptografie complet

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 obtinaaleator falsificari ale amprentelor numerice. Daca Oscarobtine o semnatura valida a amprentei z, el cauta x a.i.h(x) = z=⇒ h neinversabila3

Lema. Daca o functie de dispersie este cu coliziuni tari,atunci ea este neinversabila.

3Definitie. h este neinversabila daca fiind data o amprenta numerica z,este calculabil dificil sa se gaseasca mesajul x a.i. h(x) = z.

Page 149: Criptografie complet

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 canalde comunicatie. Pentru ca aceasta sa poata semnadocumentul x ∈ {0,1}∗, ea alege cheia secreta a = 5 si k = 3.Se considera publica o functie de dispersie (hash function) a.i.h(x) = 11.Cunoscand protocolul de semnatura El-Gamal folosit, cu

r = gkmodps = (x − ar)k−1mod (p − 1)

determinati (r , s).

Page 150: Criptografie complet

Preview: Semnaturi electronice Protocoale de semnatura Functii de dispersie

Exemplu de exercitiu

Solutie

(r , s) =?

r = 33 mod 15 ≡ 12 mod 15s = (11− 5 ∗ 12)3−1 mod 14 ≡ 7 mod 14

=⇒ (r , s) = (12,7)

Page 151: Criptografie complet

Probleme

Criptografie si securitate

Ion D. Ion, Luciana Morogan

Facultatea de Matematica-InformaticaUniversitatea Spiru Haret

Exemple de probleme pentru testare

Exemple de probleme pntru testare

Page 152: Criptografie complet

Probleme

Outline

1 Probleme

Exemple de probleme pntru testare

Page 153: Criptografie complet

Probleme

Exercitiul 1

Determinati inversa matricei (modulo 26)(3 23 5

)

Exemple de probleme pntru testare

Page 154: Criptografie complet

Probleme

Exercitiul 2

Criptati un text clar la alegere folosind sistemul de criptare Hillcu matricea (

3 23 5

)

Exemple de probleme pntru testare

Page 155: Criptografie complet

Probleme

Exercitiul 3

Folosind sistemul de criptare Polybios codificati textul clarUNIVERSITATE.

Exemple de probleme pntru testare

Page 156: Criptografie complet

Probleme

Exercitiul 4

Pentru a = 3,b = 5 se definesc functiile de criptare, respectivdecriptare, ale unui sistem de criptare afin:

e(3,5)(x) = 3x + 5d(3,5)(y) = 9y + 9(26− 5)(mod26) = 9y + 7

Sa luam textul clar GRUPA. Codificarea acestuia este ...

Exemple de probleme pntru testare

Page 157: Criptografie complet

Probleme

Exercitiul 5

In sistemul de criptare Vigenere, sa consideram cuvantul cheieGRUPA. Criptam cu aceasta cheie textul clar CRIPTOGRAFIEsi se obtine textul criptat...

Exemple de probleme pntru testare

Page 158: Criptografie complet

Probleme

Exercitiul 6

Folosind un sistem aditiv fluid binar de criptare se cerecriptarea/decriptarea secventei de text clar x = 101101,cunoscand chea fluida z = 1101.

Exemple de probleme pntru testare

Page 159: Criptografie complet

Probleme

Exercitiul 7

Folosind un sistem de criptre asincron cu auto-cheie, pentruk = 11, codificati/decodificati textul clar SPIRU HARET.

Exemple de probleme pntru testare

Page 160: Criptografie complet

Probleme

Exercitiul 8

Consideram modul de utilizare ECB al cifrului bloc DES careaplica permutari bitilor unui vector de biti de lungime 4.Criptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)

Exemple de probleme pntru testare

Page 161: Criptografie complet

Probleme

Exercitiul 9

Consideram modul de utilizare CBC al cifrului bloc DES careaplica permutari bitilor unui vector de biti de lungime 4.Criptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)si blocul initial IV = 1010

Exemple de probleme pntru testare

Page 162: Criptografie complet

Probleme

Exercitiul 10

Consideram modul de utilizare OFB al cifrului bloc DES careaplica permutari bitilor unui vector de biti de lungime 4.Criptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)si blocul initial IV = 1010

Exemple de probleme pntru testare

Page 163: Criptografie complet

Probleme

Exercitiul 11

Consideram modul de utilizare CFB al cifrului bloc DES careaplica permutari bitilor unui vector de biti de lungime 4.Criptati textul clar x = 1011000101001010 folosind cheia

π =

(1 2 3 42 3 4 1

)si blocul initial IV = 1010

Exemple de probleme pntru testare

Page 164: Criptografie complet

Probleme

Exercitiul 12: Sistemul RSA

Problema AFie d exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 3, q = 5. Dacaexponentul de criptare este e = 7,determinati d .

Problema BFie d = 11 exponentul de decriptare alsistemului de criptare RSA construitcu numerele prime p = 7, q = 11.Determinati exponentul de criptare e.

Problema CConsideram sistemul de criptare RSAconstruit cu numerele primep = 3, q = 5. Daca exponentul decriptare este e = 4 si se dorestecodificarea textului clar m = 11,determinati textul criptat c.

Problema DUn utilizator al sistemului de criptareRSA are ca cheie publica(n, e) = (35, 5) si cheia secreta d = 5.Daca primeste textul criptat c = 3,atunci textul clar decodificat deutilizator este ...

Exemple de probleme pntru testare

Page 165: Criptografie complet

Probleme

Exercitiul 12: Sistemul El-Gamal

Problema AFie cifrul El-Gamal asociat numarului prim p = 7 si radaciniiprimitive, modulo 7, 5. Cheia secreta a lui Alice este 3, iar ceaa lui Bob este 4. Daca Bob codifica textul clar x = 11 si iltransmite lui Alice, atunci aceasta primeste codificarea...

Problema BFie cifrul El-Gamal asociat numarului prim p = 11 si radaciniiprimitive, modulo 7, 5. Cheia secreta a lui Alice este 4, iar ceaa lui Bob este 7. Alice primeste de la Bob textul criptat (3,7) pecare il decodifica si gaseste mesajul clar ...

Exemple de probleme pntru testare

Page 166: Criptografie complet

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=me (mod n) Decriptare: m = cd (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 qi. In timp ce efectuam

fiecare pas al algoritmului, vom calcula si un numar auxiliar, pi. Pentru primii 2 pasi stim deja valorile : p0 = 0 and p1 = 1. Pentru

restul pasilor vom calcula recursiv pi = pi-2 - pi-1 qi-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 pk+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 p0 = 0

PAS 1: 15/11 = 1 rest 4 p1 = 1

PAS 2: 11/4 = 2 rest 3 p2 = 0 - 1( 1) mod 26 = 25

PAS 3: 4/3 = 1 rest 1 => x admite invers p3 = 1 - 25( 1) mod 26 = -24 mod 26 = 2

PAS 4: 3/1 = 3 rest 0 p4 = 25 - 2( 2) mod 26 = 21

p5 = 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 c1 folosind cheia lui privata si c2 folosind αA a lui Alice pe care-l obtine din cheia ei publica. c1 = αB mod p ; c2 = m(αA)k mod p ; c = (c1,c2) - Trimite textul cifrat c = (c1,c2) la utilizatorul Alice. Decriptare : Pentru a determina textul clar m din textul cifrat c, utilizatorul Alice execută următoarele: 1. Utilizează cheia sa privată a pentru a calcula: f = c1

p-1-A (mod p). 2. Determină textul clar m astfel: m = f*c2 (mod p).

Page 167: Criptografie complet

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 p0=0 7/1 = 7 rest 0 p1=1 p2=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 p0=0

11/2 = 5 rest 1 p1=1

2/1 = 2 rest 0 p2=0 – 1*2 (mod 24) = 22

P3= 1 – 22*5 (mod 24) = -109 mod 24 = 11

e = 11

RSA 3) : n=15; e=4; m=11, c=?

c = me (mod n) = 114 (mod 15) = 14641 mod 15 = 1

RSA 4) : (n,e) = (35,5) ; d=5, c=3 , m=?

m = cd (mod n) = 35 (mod 35) = 243 mod 35 = 33

El-Gamal 1): p=11; α=2; csA=3; csB=4; m=9; c=?

c1 = αB (mod p) = 24 mod 11 = 16 mod 11 = 5

c2 = m(αA)B (mod p) = 9(23)4 mod 11 = 9*4096 (mod 11) = 3

c = (c1,c2) = (5,3)

El-Gamal 2): p=7; α=5; csA=3; csB=4; m=11; c=?

c1 = αB (mod p) = 54 mod 7 = 625 mod 7 = 2

c2 = m(αA)B (mod p) = 11(53)4 mod 7 = 11*244140625 (mod 7) = 4

c = (c1,c2) = (2,4)

El-Gamal 3): p=11; α=2; csA=3; csB=4; A primeste de la B (y1,y2)=(5,3); txt. Clar x =?

z = y1p-1-A (mod p) = 511-1-3 (mod 11) = 57 (mod 11) = 3

x = z * y2 (mod p) = 3 * 3 (mod 11) = 9

El-Gamal 4): p=11; α=2; csA=4; csB=7; (y1,y2) = (3,7); txt clar x=?

Daca (y1,y2) = (3,7) este primit de B de la A, atunci:

f = y1p-1-B (mod p) = 311-1-7 (mod 11) = 33 (mod 11) = 5

x = f * y2 (mod p) = 5 * 7 (mod 11) = 2

Daca (y1,y2) = (3,7) este primit de A de la B, atunci:

f = y1p-1-A (mod p) = 311-1-4 (mod 11) = 36 (mod 11) = 3

x = f * y2 (mod p) = 3 * 7 (mod 11) = 10

Page 168: Criptografie complet

Prelegerea 1

Notiuni de baza ale criptografiei

1.1 Definitii si notatii preliminare

Criptografia este o componenta a unui domeniu mult mai larg, numit securitatea informatiei.Obiectivele urmarite de acesta pot fi sumarizate ın:

1. Confidentialitate (privacy): proprietatea de a pastra secretul informatiei, pentru caaceasta sa fie folosita numai de persoanele autorizate.

2. Integritatea datelor: proprietatea de a evita orice modificare (inserare, stergere,substitutie) neautorizata a informatiei.

3. Autentificare: Proprietatea de a identifica o entitate conform anumitor standarde.Este compusa din

(a) Autentificarea unei entitati;

(b) Autentificarea sursei informatiei;

4. Non - repudierea: Proprietatea care previne negarea unor evenimente anterioare.

Celelalte obiective legate de securitatea informatiei (autentificarea mesajelor, semnaturi,autorizare, validare, controlul accesului, certificare, timestamping, confirmarea receptiei,anonimitate, revocare) pot fi derivate din acestea.

Definitia 1.1 Criptografia este studiul metodelor matematice legate de securitatea infor-matiei, capabile sa asigure confidentialitatea, autentificarea si non-repudierea mesajelor,precum si integritatea datelor vehiculate ([1].

Termenul criptografie ınseamna scriere secreta1. Domeniul cuprinde atat operatia decriptare (cifrare) a unui text, cat si eventualele ıncercari de descifrare si de aflare a cheii

1Cuvantul este format din cuvintele grecesti cryptos – ascuns si grafie – scriere

1

Page 169: Criptografie complet

2 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

de criptare. In unele lucrari, cadrul general de lucru este numit criptologie, termenul decriptografie desemnand numai operatia de cifrare si descifrare legala.

Situatia generala de care se ocupa criptografia este urmatoarea:

Criptanalist

Expeditor Destinatar6

-

Expeditorul (personalizat ın majoritatea lucrarilor cu apelativul Alice) doreste sa trimitadestinatarului (numit Bob) un mesaj printr-un canal de comunicatie, canal cu un gradridicat de nesiguranta2. Aceasta insecuritate o prezinta un adversar criptanalist (Oscar)care doreste – din diverse motive – sa cunoasca si – eventual – sa modifice continutulmesajului, desi acesta nu ıi este destinat.

Aceasta confidentialitate solicitata de Alice si Bob se rezolva de obicei prin transfor-marea mesajului ın asa fel ıncat el sa nu poata fi ınteles de nici o persoana care l-ar puteaintercepta. Transformarea respectiva se numeste criptare.

In general, hackerul Oscar poate avea doua tipuri de comportament:

• Pasiv: el se multumeste sa intercepteze mesajele si sa le citeasca, folosindu-le ınscop personal;

• Activ: doreste sa modifice mesajele, sa le schimbe ordinea sau sa introduca propriilesale mesaje, ın intentia de a fi acceptat de Bob drept Alice. In acest caz, mesajul vatrebui sa verifice – ınafara de conditia de confidentialitate – si pe cea de autenticitate:Bob trebuie sa fie sigur ca mesajul primit a fost de la Alice.

In unele cazuri, problema se poate complica prin faptul ca exista anumite mesaje pecare Alice neaga ca ıi apartin, desi le-a trimis chiar ea. In acest caz trebuie prevazuteanumite protocoale care sa ıntareasca proprietatile de autentificare; proprietati caresa o sileasca pe Alice sa ısi recunoasca propriile mesaje (non-repudiere).

In toate aceste scenarii nu exista personaje pozitive sau negative. Orice serviciu decriptare/decriptare are si o sectie de criptanaliza. Se pot da numeroase exemple dinistorie care sa arate rolul pozitiv al lui Oscar ın anumite situatii. In general, ıntr-untriplet (expeditor, destinatar, criptanalist) nimeni nu are ıncredere ın nimeni. Variantelestudiate ın care Alice are ıncredere ın Bob sau invers, sunt mult mai simple si – de aceea– extrem de rare.

2Canalul de comunicatie poate suferi si perturbari de ordin fizic: zgomote, stergeri, demodulari etc;studiul detectarii si corectarii erorilor de de transmitere a informatiei constituie tema altui domeniu,numit Teoria Codurilor.

Page 170: Criptografie complet

1.1. DEFINITII SI NOTATII PRELIMINARE 3

Pentru a ıncepe un studiu sistematic al domeniului, sa stabilim ıntai terminologiafolosita uzual:

Un mesaj ın forma sa originara este numit text clar. Expeditorul rescrie acest mesajfolosind o metoda cunoscuta numai de el (eventual si de destinatar); spunem ca el cripteaza(sau cifreaza) mesajul, obtinand un text criptat. Destinatarul primeste textul cifrat si ıldecripteaza stiind metoda folosita pentru criptare; deci Alice si Bob trebuie sa stabileascaıntr-o etapa preliminara detaliile modalitatii de criptare si de decriptare.

Algoritmul care realizeaza operatiile descrise se numeste sistem de criptare. Formal,

Definitia 1.2 Un sistem de criptare este o structura (P , C,K, E ,D), unde:

• P= {w | w ∈ V ∗} este multimea ”textelor clare”, scrise peste un alfabet nevid V(uzual V = {0, 1}).

• C= {w | w ∈ W ∗} este multimea ”textelor criptate”, scrise peste un alfabet nevidW (uzual W = V ).

• K este o multime de elemente numite chei.

• Fiecare cheie K ∈ K determina o metoda de criptare eK ∈ E si o metoda dedecriptare dK ∈ D. eK : P−→ C si dK : C−→ P sunt functii cu proprietateadK(eK(w)) = w, ∀w ∈ P.

In general se considera C= {α | ∃a ∈ P , ∃k ∈ K, α = eK(a)}.Functia eK este evident injectiva3; daca eK este bijectiva (si deci dK = e−1

K ), sistemulde criptare se numeste ”simetric”.

Pentru ca un sistem de criptare sa fie considerat bun, trebuie ındeplinite trei criterii(enuntate de Francis Bacon ın sec. XV II):

1. Fiind date eK si α ∈ P , este usor de determinat eK(α);

2. Fiind date dK si w ∈ C, este usor de determinat dK(w);

3. α este imposibil de determinat din w, fara a cunoaste dK .

Ultimul criteriu defineste – sub o forma vaga – ideea de ”securitate” a sistemului.La aceste criterii, Bacon adauga si o a patra regula:

4 Textul criptat trebuie sa fie un text banal, fara suspiciuni.

Aceasta conditie este utilizata astazi doar de un subdomeniu strict al criptografiei, numitsteganografie.

In termeni de complexitate, prin ”usor” se ıntelege folosirea unui algoritm polinomialde grad mic – preferabil algoritm liniar; o problema se considera ”imposibila” daca pentrurezolvarea ei nu se cunosc decat algoritmi de complexitate exponentiala.

3Conditia de injectivitate nu este obligatorie pentru functia de decriptare dK .

Page 171: Criptografie complet

4 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

Observatia 1.1 Intreaga disciplina numita ”criptografie” se bazeaza pe o conjectura no-tata prescurtat P6= NP 4(pentru detalii a se vedea [5]). P reprezinta clasa problemelorrezolvabile prin algoritmi a caror complexitate este marginita superior de o functie poli-nomiala ın lungimea datelor de intrare. Modelul standard de calculabilitate este masinaTuring. NP este clasa problemelor rezolvabile prin algoritmi nedeterministic polinomiali(care sunt inclusi ın algoritmii de complexitate cel putin exponentiala). Evident, P⊆ NP,dar se pare ca problema egalitatii este nedecidabila (ın termeni matematici). Oricum,pentru cei interesati, 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 criptareCezar. Conform istoricului Suetoniu, el a fost folosit de Cezar ın corespondenta sa.

Sa consideram alfabetul latin scris, ın ordineA 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 ordinek (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 ZC 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 procedaastfel:

Sa presupunem ca acest text clar este NIMIC NOU. Alice va aseza sub fiecare litera aacestui text, litera aflata pe linia a doua din tabelul de sus, astfel:

N I M I C N O UP K O K E P Q W

Textul criptat obtinut este PKOKEPQW (din motive suplimentare de securitate,spatiile 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 (fiind destinatar legal) cheia de criptare ek. Cheia sa dedecriptare este e26−k. Pe baza ei Bob va putea construi cele doua linii ale tabelului, dupacare va proceda ca Alice: scrie textul criptat pe prima linie, iar pe a doua linie determinaliterele corespunzatoare, conform tabelului.

In cazul k = 2, Bob va folosi drept cheie numarul e26−2 = e24, iar tabelul (litera 24corespunde lui Y) este

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 ZY Z A B C D E F G H I J K L M N O P Q R S T U V W X

Literele PKOKEPQW determina pe a doua linie textul NIMICNOU .

4Aceasta este prima din cele cinci probleme ale mileniului, pentru rezolvarea carora se acorda premiide cate un milion dolari.

Page 172: Criptografie complet

1.1. DEFINITII SI NOTATII PRELIMINARE 5

Sa rescriem sistemul Cezar ın termenii Definitiei 1.2. Deoarece textele clare si celecriptate folosesc alfabetul latin, vom efectua ın prima etapa o operatie de ”codificare”:asociem literelor numere ıntregi din intervalul [0, 25]:

A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25

In acest fel putem opera matematic pe un inel finit foarte simplu: Z26. Vom aveaP = C = K= Z26. Pentru un K ∈ K ales arbitrar,

eK(m) = m + K (mod 26)

sidK(α) = α−K (mod 26)

Definitia 1.3 Procesul de determinare a unei chei K folosind un text criptat α (asociateventual cu alte informatii auxiliare) se numeste ”criptanaliza”.

Deci decriptarea si criptanaliza au ın final acelasi scop: aflarea textului clar. Diferentaconsta ın faptul ca ın criptanaliza el trebuie aflat fara a sti cheia de decriptare. Exista o”regula de aur” a creatorilor de sisteme de criptare:

Nu subestimati niciodata pe criptanalist.care s-a verificat din punct de vedere istoric pentru toate sistemele create pana ın

prezent: acestea sau au fost sparte sau trebuie sa se revizuiasca periodic pentru a rezistaatacurilor permanente ale intrusilor.

Sa studiem putin pozitia unui criptanalist (Oscar). Se presupune ıntotdeauna ca elare la dispozitie facilitati de calcul excelente, adesea superioare celor de care dispun ceidoi parteneri Alice si Bob.

Mai mult, se poate considera ca Oscar cunoaste sistemul de criptare. S-a constatatca – practic – acest lucru se ıntampla totdeauna. Ce nu cunoaste ınsa criptanalistul estecheia K ∈ K.

Cel mai simplu atac consta ın parcurgerea tuturor cheilor posibile si verificarea textuluicriptat, pana se gaseste cheia corecta. Este atacul prin forta bruta si el reuseste totdeauna,pentru ca exista ıntotdeauna o cheie ın K, care a folosit la criptare. Deci, ın cazul candnumarul cheilor posibile este mic (ın Exemplul 1.1 sunt numai 26 chei), aceasta cheie sepoate afla foarte usor dupa un numar finit de ıncercari. De aceea sunt folosite obligatoriusisteme de criptare cu card(K) foarte mare. Pentru o cheie care ocupa n biti sunt necesareın general 2n cautari (daca nu exista nici o informatie suplimentara). O extindere alungimii cheii la n+1 biti dubleaza deci spatiul de cautare. In momentul de fata, tehnicade calcul ofera atacuri prin forta bruta eficiente pentru cheile de lungimi mai mici de 128

Page 173: Criptografie complet

6 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

biti; asa ca sistemele de criptare actuale folosesc ın general chei de 1024 biti sau chiar maimult5.

In general, un criptanalist este pus ın fata urmatoarelor situatii, care ıi solicita strategiidiverse de urmat:

1. Stie numai textul criptat w; ın acest caz atacurile sunt direct legate de lungimeatextului.

In sisteme simple – cum este Cezar – sunt suficiente texte scurte, pentru ca osingura potrivire produce textul - clar. Pentru sistemele mai evoluate, este necesarao lungime mai mare a textului criptat. Metodele de criptanaliza folosesc diverseconjecturi si informatii statistice relative la alfabetul textului - clar, la frecventaaparitiei caracterelor etc.

2. Stie cel putin o pereche de caractere (text clar, text criptat); din cunoasterea catorvaperechi (x, eK(x)) cu x ∈ V criptanalistul va ıncearca sa decripteze ıntregul textcriptat interceptat.

Exemplul 1.2 La sistemul de criptare Cezar, o singura pereche (a, eK(a)), dezvaluieimediat cheia si – implicit duce la decriptare.

Exemplul 1.3 Aceasta a fost situatia ın care s-a aflat 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 textclar ales, considerat ın majoritatea studiilor de criptanaliza. Aceasta situatie esteadesea superioara celei din cazul precedent; sa exemplificam acest lucru.

Exemplul 1.4 Fie sistemul de criptare Hill, creat ın 1929 de Lester Hill. Fie d ≥ 2un numar ıntreg fixat. Se definesc

P= C= (Z26)d, K= {M | M ∈Md(Z26), det(M) 6= 0}.

Deci o cheie de criptare este o matrice M patrata nesingulara de dimensiune d, cuelemente din Z26, 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 vafi x = β1β2 . . . βn unde βi = eM(αi) = αi ·M (mod 26), (1 ≤ i ≤ n).

Pentru decriptare se foloseste relatia dM(βi) = βi ·M−1 (mod 26).

Sa luam de exemplu d = 2 si cheia M =

(3 32 5

), cu inversa M−1 =

(15 1720 9

).

5O exceptie o constituie sistemele bazate pe curbe eliptice, datorita aparatului matematic special.

Page 174: Criptografie complet

1.1. DEFINITII SI NOTATII PRELIMINARE 7

Daca textul clar este w = FRAC, vom aveaα1 = (F R) = (5 17), α2 = (A C) = (0 2)

Din relatiile

β1 = α1 ·M (mod 26) = (5 17) ·(

3 32 5

)= (23 22) = (X W )

β2 = α2 ·M (mod 26) = (0 2) ·(

3 32 5

)= (4 10) = (E K)

se obtine textul criptat x = XWEK.

Sa ne situam acum pe pozitia lui Oscar: presupunem ca am gasit dimensiunea d = 2si ıncercam sa aflam matricea M (sau – echivalent – M−1), stiind perechea (textclar, text criptat)= (FRAC, XWEG).

Deci Oscar se afla acum ın fata urmatoarei probleme: care este matricea M =(a bc d

)cu a, b, c, d ∈ {0, 1, . . . , 25}, astfel ca

(5 170 2

)·(

a bc d

)=

(23 224 10

).

Pentru a putea afla aceasta matrice, Oscar trebuie sa afle inversa lui A =

(5 170 2

).

Cum det(A) = 10 si cmmdc(10, 26) > 1 =⇒ 10−1 (mod 26) nu exista; deci A nueste inversabila.

Sa presupunem acum ca Oscar lucreaza ın ipoteza (3); alege un text clar a carui ma-trice este inversabila si ıi afla criptarea. Fie BRAD acest text clar, a carui matrice

asociata este A =

(1 170 3

). Oscar solicita criptarea lui BRAD si primeste LKGP

– de matrice B =

(11 106 15

). Deci el dispune de perechea (BRAD, LKGP ).

Oscar detemina ıntai A−1 =

(1 30 9

). Apoi, din ecuatia A ·M = B, va gasi solutia

M = A−1 ·B =

(1 30 9

)·(

11 106 15

)=

(3 32 5

)

4. Stie cheia de criptare; acum Oscar va cunoaste cheia eK si ıncearca sa determine dK

ınainte de interceptarea mesajelor criptate.

Aceasta este situatia tipica sistemelor de criptare cu cheie publica: cheia de criptareeK este cunoscuta public cu mult ınainte de a fi folosita pentru criptare. Decicriptanalistul are la dispozitie destul de mult timp pentru prelucrarea ei si oriceclarificare ın perioada cand timpul este ”ieftin” are o valoare deosebita; dupa ce seprimesc mesaje criptate, timpul devine scump, si el trebuie sa fie scurtat cat maimult.

Page 175: Criptografie complet

8 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

1.2 Sisteme simetrice de criptare

In general, sistemele de criptare clasice se numesc si sisteme simetrice. Motivul este acelaca odata cu aflarea cheii de criptare eK , cheia de decriptare dK se obtine imediat, fiindfunctia inversa.

Exemplul 1.5 In Exemplul 1.1, la sistemul Cezar dK = e26−K este cheia de decriptarepentru cheia de criptare eK.

Sistemele de criptare simetrice se ımpart ın doua clase mari: cifruri de permutare si cifruricu substitutie.

1.2.1 Cifruri de permutare

La aceste sisteme de criptare, textul clar se ımparte ın blocuri de n (n ≥ 2) caractere,dupa care fiecarui bloc i se aplica o permutare fixata.

Exemplul 1.6 Sa presupunem ca vom lua drept cheie de criptare permutarea

(1 2 32 1 3

).

Atunci un text clar, de exemplu FLOARE ALBASTRA se ımparte ın grupuri de cate treicaractere (s-a considerat si caracterul spatiu, notat )

FLO ARE AL BAS TRA

Textul criptat va fiLFO 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 deutilizare a unui astfel de sistem.

Fie cartonul 6× 6, ın care zonele hasurate constituie gauri.

Vrem sa criptam textulEMINESCU A FOST UN MARE POET NATIONAL

Vom scrie acest text sub forma unui tabel cu sase linii si sase coloane, astfel:

Page 176: Criptografie complet

1.2. SISTEME SIMETRICE DE CRIPTARE 9

E M I N E SC U A FO S T U NM A R E PO E T N AT I O N A L

Aplicand cartonul peste acest text, vor ramane vizibile 9 caractere: MNS TA AN (cititede la stanga la dreapta si de sus ın jos).

Vom roti acum cartonul cu 90o ın sensul acelor de ceasornic. El va arata

Asezand acum peste text, raman vizibile caracterele F MPTNIL (primul caracter a fostun spatiu si l-am marcat cu pentru a-l face vizibil).

La a treia rotire a cartonului se obtine similar textul ICSUEETOA, iar la a patra –EEUAOURO

Deci textul criptat esteMNS TA AN F MPTNILICSUEETOAEEUAOURO

Operatia de decriptare se realizeaza similar.

Sa formalizam aceste informatii.

Definitia 1.4 Fie n un numar natural nenul. Un cifru de permutare este un sistem(P , C,K, E ,D) unde P= C= (Z26)

n, K= Pn (multimea permutarilor de n elemente).Pentru o cheie (permutare) π

eπ(a1a2 . . . an) = aπ(1)aπ(2) . . . aπ(n)

dπ(b1b2 . . . bn) = bπ−1(1)bπ−1(2) . . . bπ−1(n)

Lema 1.1 Un cifru de permutare este un sistem de criptare Hill.

Demonstratie: Pentru fiecare permutare π ∈ Pn putem construi o matrice de permutareMπ = (mi,j) definita

mi,j = 1 ⇐⇒ i = π(j)

Se verifica usor faptul ca sistemul de criptare Hill cu matricea Mπ este echivalent cu uncifru de permutare bazat pe cheia π. Mai mult, M−1

π = Mπ−1 .

Page 177: Criptografie complet

10 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

Exemplul 1.8 Sa reluam Exemplul 1.6. Permutarii

(1 2 32 1 3

)ıi corespunde matricea

de permutare

0 1 01 0 00 0 1

.

Operatia de criptare este imediata. De exemplu, criptarea textului FLO este

(5 11 14) ·

0 1 01 0 00 0 1

= (11 5 14)

adica LFO.

1.3 Exercitii

1.1 Textul clar NUMAR este criptat ın ”Orice vant nu bate seara”. Sa se descrie sistemulde criptare.

1.2 Folosind atacul prin forta bruta, decriptati mesajul WYPTBSJBYZ criptat cu unsistem Cezar.

1.3 O cheie K este ”auto-cheie” daca dK = eK. Gasiti toate auto-cheile sistemului decriptare Cezar.

1.4 Fie p un numar prim. Aratati ca numarul matricilor 2× 2 inversabile peste Zp este(p2 − 1)(p2 − p).

1.5 Cate matrici 2× 2 sunt inversabile peste Zn pentru n = 6, 9, 26 ?

1.6 Sa se cripteze textul clar INAINTE SI LA DREAPTA folosind sistemul de xriptareHill cu matricea

M =

17 17 521 18 212 2 19

sau M =

11 2 195 23 2520 7 1

1.7 Cate auto-chei sunt ıntr-un sistem de criptare Hill cu d = 2 ?

1.8 Determinati inversele matricilor (modulo 26):

(2 59 5

),

(11 83 7

),

10 5 123 14 218 9 11

,

1 11 124 23 217 15 9

Page 178: Criptografie complet

1.3. EXERCITII 11

1.9 Demonstrati ca ıntr-un cifru de permutare, π este o auto-cheie daca si numai daca

(∀i, j) [π(i) = j =⇒ π(j) = i]

Gasiti toate auto-cheile unui cifru de permutare cu n = 2, 3, 4, 5, 6.

1.10 Consideram urmatorul cifru de permutare: Se fixeaza numerele naturale p, q. Tex-tul clar se ımparte ın blocuri de cate p ·q caractere. Fiecare astfel de bloc se scrie pe liniileunei matrici de p linii si q coloane. Criptarea blocului se realizeaza scriind aceste matricipe coloane.

De exemplu, pentru p = 3, q = 4, textul clar MAINI CURATE se scrieM A I NI C U RA T E X

(textul s-a completat cu litera X). Textul criptat va fi MIAACTIUENRX.Decriptati urmatorul text DJNOUDNAINPAPANONZ criptat ıntr-un mod similar.

1.11 Sa se decripteze mesajulN T I N I I I D D N R I R T E E A DU M I I G R A D V O B E M C I I I EZ S R U A U C M L T A I T U I T N ID A A L E A R A C R I A S Z T E E EI G P S A D E A P R E Z S T C A OA E R I D R E D D E I E S E E P E L

stiind ca a fost criptat cu matricea Richelieu definita ın Exemplul 1.7.

Page 179: Criptografie complet

12 PRELEGEREA 1. NOTIUNI DE BAZA ALE CRIPTOGRAFIEI

Page 180: Criptografie complet

Bibliografie

[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, Criptografie 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

Page 181: Criptografie complet

Prelegerea 2

Cifruri de substitutie

Cifrurile de substitutie sunt cele mai utilizate sisteme de criptare simetrice; ele se ıntalnescsi azi, exemple fiind sistemele DES si AES.

Un astfel de cifru consta ın ınlocuirea fiecarui caracter din V cu alt caracter (din W ).Exista doua clase mari de cifruri de substitutie: sisteme monoalfabetice si polialfabetice.

2.1 Sisteme de criptare monoalfabetice

Un astfel de sistem substituie fiecare caracter cu alt caracter – totdeauna acelasi, indiferentde pozitie. Atunci cand cele doua alfabete coincid (V = W ), sistemele monoalfabeticesunt 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 criptareeK , fiecare caracter cod x se ınlocuieste prin caracterul cod x + k (mod 26) (a se vedeaPrelegerea I). Decriptarea se realizeaza dupa formula dK(x) = x− k (mod 26).

Observatia 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 Cezara fost utilizat mult timp. Armata rusa apela frecvent la el ın 1915, ca ınlocuitor pentrusistemele sale proprii de criptare, prea sofisticate la nivelul trupelor de camp. Un sistemCezar cu k = 13 este inclus ın ROT13, implementat pe sistemele UNIX ([5],[3])

Evident, Cezar este un sistem generat de permutarile ciclice din P26. Fiind numai 26 cheiposibile, el este extrem de vulnerabil la atacul prin forta bruta. Pentru a-i mari rezistenta,s-a utilizat si o varianta, numita sistem Cezar cu cheie, definita astfel:

1

Page 182: Criptografie complet

2 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

Se considera un cuvant (cheie), preferabil cu toate caracterele distincte (ın caz contrar,literele identice se folosesc doar la prima aparitie). Acest cuvant se aseaza la ınceputul al-fabetului. Dupa ce se termina, sirul de completeaza cu literele care nu existau ın cuvantulcheie, ın ordine alfabetica.

De exemplu, sa presupunem ca s-a ales cuvantul cheie MARTOR. ScriemA B C D E F G H I J K L M N O P Q R S T U V W X Y ZM 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 ınQSUTOJS, ARGINT ın MPCEJS etc.

Sistemul Cezar cu cheie rezista mai bine la atacul cu forta bruta, numarul cheilor fiindacum card(P26 = 26!.

2.1.2 Sistemul de criptare afin

Sistemul de criptare afin este o generalizare a sistemului Cezar. Vom avea P = C= Z26,K= {(a, b) | a, b ∈ Z26, cmmdc(a, 26) = 1}, iar functiile de criptare si decriptare (pentruo cheie K = (a, b)) sunt

eK(x) = ax + b (mod 26), dK(y) = a−1y + a−1(26− b) (mod 26)

Conditia ca a sa fie prim cu 26 asigura existenta lui a−1 ın Z26.De exemplu, pentru a = 3, b = 5 functia de criptare este eK(x) = 3x + 5, care poate

fi 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 255 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 caractereA B C D E F G H I J K L M N O P Q R S T U V W X Y ZF 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 functia

dK(x) = 9x + 7 (sau – practic – inversand cele doua linii ale tabelului de mai sus).Conditia cmmdc(a, 26) = 1 asigura de asemenea injectivitatea aplicatiei eK .

De exemplu, pentru eK(x) = 10x + 1, A si N se transforma ambele ın B, iar O nu apareca imagine ın alfabetul substitutiei.

Sa studiem spatiul cheilor K. Orice cheie K ∈ K este determinata complet de valorileıntregi (a, b) cu (a, 26) = 1. Sunt posibile 12 valori1 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 exceptiea = 1, b = 0 (care se exclude deoarece nu conduce la nici o criptare). Deci card(K) = 311,numar suficient de mic pentru reusita unui atac prin forta bruta.

1Pentru un numar dat n exista φ(n) numere mai mici decat n si prime cu n, unde phi este functiaEuler. In particular φ(26) = 12.

Page 183: Criptografie complet

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 fostPolybios (istoric grec mort cu 30 ani ınaintea nasterii lui Cezar). Initial acesta a fost doarun sistem maritim de semnalizare cu torte; ulterior i s-a dat o semnificatie criptografica.

Sa consideram alfabetul latin, din care eliminam o litera de frecventa cat mai redusa2;fie aceasta W . Cele 25 litere ramase le asezam ıntr-un patrat 5×5 (numit careu Polybios)ın felul urmator:

A B C D EA A B C D EB F G H I JC K L M N OD P Q R S TE U V X Y Z

In operatia de criptare, fiecare caracter a va fi reprezentat printr-o pereche (x, y) (x, y ∈{A, B, C,D, E}) care dau linia respectiv coloana pe care se afla a.

Astfel, textul clar MERGEM ACASA este criptat ınCCAEDCBBAECCAAACAADDAA.

Deci sistemul de criptare Polybios este o substitutie monoalfabetica cu alfabetul W ={AA, AB, AC, . . . , EE} de 25 caractere.

Sunt diverse variante ale sistemului Polybios. Astfel, daca se folosesc drept coordonatecifrele 1, 2, 3, 4, 5 ın loc de A, B, C,D,E, sistemul a fost folosit ın penitenciarele rusesti3

si de catre prizonierii americani din Vietnam. Este foarte simplu de ınvatat si poate fiaplicat folosind diverse semne drept coordonate (cifre, puncte, figuri, batai de toba etc).A fost utilizat de asemenea ın cadrul altor sisteme de criptare, cum ar fi sistemul nihilist,cifrul ADFGVX (utilizat de armata germana ın primul razboi mondial) sau sistemul Bifid,inventat de Dellastell ın 1901 (pentru detalii, se vedea [6]).

Sistemul cavalerilor de Malta

Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizareaunei cruci. Astfel, sa consideram careurile:

A : B : C :D : E : F :G : H : I :

J. K. L.M. N. O.P. Q. R.

S T UV W XY Z

2In limba engleza litera eliminata este de obicei J .3Alfabetul cirilic are 33 litere, deci ın acest caz s-a utilizat un careu 6× 6.

Page 184: Criptografie complet

4 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

Liniile care ıncadreaza fiecare caracter (inclusiv spatiul), ımpreuna cu punctele (doua, unulsau zero) indica substitutia caracterului respectiv. Astfel, textul clar DUPA DOUAZECIDE ANI se cripteaza ın

: . : : . : : : : : : : . :

2.1.4 Criptanaliza sistemelor de criptare monoalfabetice

Punctul slab al sistemelor de criptare monoalfabetice consta ın frecventa de aparitie acaracterelor ın text. Daca un text criptat este suficient de lung si se cunoaste limbaın care este scris textul clar, sistemul poate fi spart printr-un atac bazat pe frecventaaparitiei literelor ıntr-o limba.

Sunt construite diverse structuri de ordine relative la frecventa aparitiei literelor ınfiecare limba europeana. De obicei, cu cat un text criptat este mai lung, cu atat frecventaliterelor folosite se apropie de aceasta ordonare generala. O comparare ıntre cele douarelatii de ordine (cea a caracterelor din textul criptat si cea a lterelor din alfabetul limbiicurente) conduce la realizarea catorva corespondente (litera text clar – litera text criptat),ceea ce stabileste ın mod univoc cheia de criptare. Pentru sistemul Cezar este suficientastabilirea unei singure perechi; pentru sistemul afin trebuiesc doua perechi etc.

Pentru limba romana, un tabel al literelor cele mai frecvent ıntalnite este

Litera FrecventaA 13, 04 %I 12, 89 %E 11, 75 %R 7, 39 %T 6, 62 %N 6, 44 %U 6, 44 %S 5, 50 %C 5, 47 %

Litera FrecventaL 4, 58 %O 3, 85 %D 3, 68 %M 3, 33 %P 2, 91 %F 1, 50 %V 1, 26%

(restul caracterelor au o ın mod normal o frecventa de aparitie sub 1 %).

Exemplul 2.1 Sa consideram ca s-a interceptat urmatorul text, criptat cu un sistemmonoalfabetic (nu se stie exact ce sistem a fost utilizat).

lqakc sp gcxk aca pcmgqb kq kxc pkersmpqsb vk vsmgxkbc mkacpc tcacpbqlqs

vk cgele cmtxq ms nocxgsb mbxcsp vk exsgk oxcbqsbcbk texbslk spclbk gcxk

cmgqpvkcq bxkgcbexslk gqxbslk xktxknkpbcq tkpbxq mbxcsps qp cfkxbsmakpb

mqtcxcbex vcx lsatkvk pq bxkrqscq mc zsk txkc gqxsems psgs mc mk cmbktbk

mc czlk acxk lqgxq vk lc gkl gq gcxk fkpkcq sp gepbcgb

Page 185: Criptografie complet

2.1. SISTEME DE CRIPTARE MONOALFABETICE 5

In prima etapa, vom numara de cate ori apare ın text fiecare caracter. se obtine tabelul

Caracter c k x b s q g p m l e p a v b n o f zFrecventa 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 frecventecaractere din limba romana sunt a, i si e (textul nu este destul de mare pentru a puteaface o distinctie neta). In mod cert, a ∈ {c, k}. Sunt patru optiuni posibile, din care treise 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 kcu 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 frecventa ridicata (27aparitii); deci el trebuie sa corespunda unei litere frecvente din limba romana si – ın plus –sa aiba semnificatie semantica. Concluzie: acest cuvant este ERA. Deci x←− R. Facemsubstitutia sı se obtine 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

In acest text, cuvantul REtREnEpbAq are corespondent ın limba romana numai peREPREZENTA{I, M, U}. De aici se obtin decriptarile t ←− P, n ←− Z, p ←− N sib←− T (pentru ultimul caracter - q, nu facem deocamdata nici o optiune). Noul text vafi

lqaEA sp gARE aAa NAmgqT Eq ERA NEersmNqsT vE vsmgRETA mEaANA PAaANTqlqs

vE Agele AmPRq ms ZoARgsT mTRAsN vE eRsgE oRATqsTATE PeRTslE sNAlTE gARE

AmgqNvEAq TREgATeRsleR gqRTslE REPREZENTAq PENTRq mTRAsNs qN AfERTsmaENT

mqPARATeR vAR lsaPEvE Nq bRErqsAq mA zsE PREA gqRsems Nsgs mA mE AmTEPTE

mA AzlE aARE lqgRq vE lA gEs gq gARE fENEAq sN geNTAgT

Lucrurile ıncep acum sa se simplifice: PENTRq este corect numai pentru q ←− U ,AmTEPTE pentru m ←− S. Apoi NASgUT da g ←− C, SUPARATeR da e ←− O,iar din fENEAU deducem f ←− V . Facand aceste ınlcuiri, se obtine textul

Page 186: Criptografie complet

6 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

lUaEA sp CARE MAM NASCUT EU ERA NEOrsSNUsT DE vsSCRETA SEaANA PAaANTUlUs

DE ACOlO ASPRU Ss ZoARCsT STRAsN vE ORsCE oRATUsTATE PORTslE sNAlTE CARE

ASCUNvEAU TRECATORslOR CURTslE REPREZENTAU PENTRU STRAsNs UN AfERTsSaENT

SUPARATOR vAR lsaPEvE NU bRErqsAU SA zsE PREA CURsOms NsCs SA SE ASTEPTE

mA AzlE aARE lUCRU vE lA CEs CU CARE VENEAU sN CONTACT

Ultimele caractere se deduc imediat: l ←− L, a ←− M, r ←− B, s ←− I, v ←− D.Textul clar final este:

LUMEA IN CARE MAM NASCUT EU ERA NEOBISNUIT DE DISCRETA SEMANA PAMANTULUI

DE ACOLO ASPRU SI ZGARCIT STRAIN DE ORICE GRATUITATE PORTILE INALTE CARE

ASCUNDEAU TRECATORILOR CURTILE REPREZENTAU PENTRU STRAINI UN AVERTISMENT

SUPARATOR DAR LIMPEDE NU TREBUIAU SA FIE PREA CURIOSI NICI SA SE ASTEPTE

SA AFLE MARE lUCRU DE LA CEI CU CARE VENEAU IN CONTACT

(textul provine din romanul ”Viata ca o corida” de Octavian Paler).

Evident, daca se stia sistemul de criptare (afin, Cezar etc) criptanaliza se simplificamult.

Pentru alte aplicatii, oferim tabelele de frecventa a literelor pentru principalele limbieuropene4 (am retinut din fiecare limba numai cele mai frecvente noua litere):

Engleza FrecventaE 12, 31 %T 9, 59 %A 8, 05 %O 7, 94 %N 7, 19 %I 7, 18 %S 6, 59 %R 6, 03 %H 5, 14 %

Germana FrecventaE 18, 46 %N 11, 42 %I 8, 02 %R 7, 14 %S 7, 04 %A 5, 38 %T 5, 22%U 5, 01%D 4, 94%

Franceza FrecventaE 15, 87 %A 9, 42 %I 8, 41 %S 7, 90 %T 7, 26 %N 7, 15 %R 6, 46 %U 6, 24 %L 5, 34 %

Spaniola FrecventaE 13, 15 %A 12, 69 %O 9, 49 %S 7, 60 %N 6, 95 %R 6, 25 %I 6, 25 %L 5, 94 %D 5, 58 %

Exista o situatie ipotetica ın care criptanaliza unui sistem monoalfabetic este imposibila:atunci cand P= V ∗ si nu dispunem de nici o alta informatie (decat eventual sistemul decriptare). Acest caz corespunde ınsa unei codificari; adevarata criptare a avut loc atuncicand mesajele inteligibile au fost translatate ın cuvinte din V ∗.

4Datele statistice pentru toate tabelele – inclusiv limba romana – sunt din anul 1994.

Page 187: Criptografie complet

2.2. SISTEME DE CRIPTARE POLIALFABETICE 7

2.2 Sisteme de criptare polialfabetice

Diferenta dintre aceste sisteme de criptare si cele monoalfabetice consta ın faptul casubstitutia unui caracter variaza ın text, ın functie de diversi parametri (pozitie, contextetc.). Aceasta conduce bineınteles la un numar mult mai mare de chei posibile. Seconsidera ca primul sistem de criptare polialfabetic a fost creat de Leon Battista ın 1568([3]). Unele aplicatii actuale folosesc ınca pentru anumite sectiuni asyfel de sisteme decriptare.

2.2.1 Sistemul homofonic

Sistemul de criptare homofonic este un sistem intermediar ıntre sistemele mono si celepolialfabetice. Principalul lui scop este de a evita atacul prin frecventa de aparitie acaracterelor. Se pare ca a fost utilizat prima oara ın 1401 de catre ducele de Mantua.

Fiecarui caracter a ∈ P i se asociaza o multime H(a) ⊂ C astfel ıncat:

1. H(a) ∩H(b) = ∅ ⇐⇒ a 6= b;

2. Daca a apare mai frecvent ın textele clare, atunci card((H(a)) ≥ card(H(b)).

Criptarea unui caracter a ∈ P se face cu un element ales aleator din H(a). Pentrudecriptarea lui y ∈ C se cauta o multime H(a) astfel ca y ∈ H(a).

Exemplul 2.2 Sa consideram P= {a, b} si H(a) = {001, 010}, H(b) = {000, 011, 101,111}. Pentru criptarea textului ab se poate folosi oricare din secventele

001000, 001011, 001101, 001111, 010000, 010011, 010101, 010111.

Sistemul homofonic este mult mai rezistent la un atac doar pe baza textului criptat, darcedeaza 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 ılsustine pentru a fi adoptat ca cifru oficial al Marii Britanii este baronul Lyon Palyfayr deSt. Andrews. Guvernul prefera alta varianta, dar acest sistem de criptare capata numelebaronului.

Ideea de baza este urmatoarea:

Din cele 26 litere ale alfabetului se elimina una de frecventa minima; sa spunem Q.Restul literelor se aranjeaza arbitrar sub forma unui patrat 5×5. Sa exemplificam sistemulpentru tabloul

Page 188: Criptografie complet

8 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

S Y D W ZR I P U LH C A X FT N O G EB 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 spatiile). Condi-tia este ca nici un bloc sa nu contina aceiasi litera, iar textul sa fie de lungime para.Aceste deziderate se realizeaza usor modificand putin textul clar (se introduce olitera de frecventa mica ıntre cele doua litere egale, respectiv ca ultim caracter).

• Fiecare bloc se cripteaza astfel: daca cele doua litere nu sunt plasate ın tabel peaceiasi linie sau coloana (de exemplu A si E), se cerceteaza colturile dreptunghiuluideterminat 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 afla literele dintextul 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 pozitiela dreapta (respectiv jos). Deci CA se cripteaza ın AX, WX ın UG, CA ın AXetc.

De exemplu, textul clar AFARA PLOUA se cripteaza ın XHHPPDPEPX. Se observa cacele patru aparitii ale caracterului A au fost criptate cu X, H, P si din nou X.

O permutare ciclica a liniilor si coloanelor tabloului nu modifica criptarea. De exemplu,patratul

P U L R IA X F H CO G E T NM J V B KD W Z S Y

obtinut prin deplasarea cu doua pozitii spre stanga si o pozitie ın sus, este echivalent cucel initial (ambele asigura aceeasi cheie de criptare).

Regulile de baza pot fi modificate sau completate dupa necesitati. Astfel, se poateadauga din loc ın loc cate o litera falsa (cu frecventa foarte redusa, cum ar fi X, Y ) caresa modifice textul criptat. Patratul 5 × 5 poate fi ınlocuit cu un dreptunghi 4 × 6 sau3× 8, cu schimbarile corespunzatoare ın alegerea literelor care se elimina.

Pentru a pastra cheia ın siguranta, se recomanda memorarea acesteia. Cum o astfelde cheie este extrem de greu de memorat, se foloseste un cuvant cheie sau o propozitie cutoate literele distincte. Acesta cuvant este scris la ınceputul tabloului. Spatiile ramasesunt completate cu restul literelor alfabetului, scrise ın ordinea aparitiei lor5.

5In definitia initiala a sistemului, Wheatstone pleca de la cuvantul Holmes.

Page 189: Criptografie complet

2.2. SISTEME DE CRIPTARE POLIALFABETICE 9

Astfel, ın preajma primului razboi mondial, armata romana folosea un dreptunghi3 × 8 din care lipseau literele Q si K. Cuvantul cheie era ROMANESC. Un astfel detablou putea avea de exemplu forma

R O M A N E S CB D F G H I J LP T U V W X Y Z

Ca si sistemul anterior, Palyfair rezista la atacuri bazate pe frecventa aparitiei, darnu si la cele prin text clar ales.

Implementari actuale folosesc reprezentarea binara a literelor si fac un pas suplimentar:dupa ce s-a obtinut o pereche criptata, aceasta se combina printr-un XOR (adunaremodulo 2) cu perechea criptata anterior.

2.2.3 Sistemul de criptare Vigenere

Numele sistemului6 vine de la baronul francez Blaise de Vigenere (1523− 1596) diplomatla curtea regelui Henry III. A fost considerat mult timp unul din cele mai bune sistemede criptare.

Prezentarea sistemului

Consideram – ca si la sistemele anterioare – cele 26 litere ale alfabetului, numerotate dela 0 (pentru A) pana la 25 (pentru Z), conform tabelului:

A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25

Definim P = C= Z26, K= Z+26.

O cheie K ∈ K este un cuvant avand codificarea numerica k0k1 . . . kp−1.Fie a = a0a1 . . . an codificarea textului clar care trebuie transmis. Textul criptat va fi

eK(a) = x = x0x1 . . . xn, undexi = ai + ki (mod p) (mod 26) (∗)

Exemplul 2.3 Sa consideram cuvantul cheie FOCAR; deci p = 5 si K = 5 14 2 0 17.Daca vrem sa criptam cu aceasta cheie textul clar NU POT VENI AZI, vom proceda

astfel:Codificarea textului este a = 13 20 15 14 19 21 4 13 8 0 25 8.Sub fiecare numar din a se aseaza cate un numar din K; cand cheia se termina, ea

se reia ciclic, pana se termina a. Deci vom avea

6Sursa [7] indica drept real inventator al sistemului pe Giovan Batista Belaso ın 1553.

Page 190: Criptografie complet

10 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

13 20 15 14 19 21 4 13 8 0 25 85 14 2 0 17 5 14 2 0 17 5 14

18 8 17 14 10 0 18 15 8 17 4 22S I R O K A S P I R E W

Linia a treia contine suma modulo 26 a numerelor de pe primele doua linii, iar pe ultimalinie s-a scris textul criptat rezultat.

Decriptarea se realizeaza similar, scazand (modulo 26) din codul caracterului criptat,codul caracterului corespunzator din cheie.

O varianta a sistemul Vigenere este sistemul Beaufort (amiral englez, autorul si a uneiscale a vanturilor care ıi poarta numele); aici relatia de criptare (∗) este ınlocuita cu

xi = ki (mod p) − ai (mod 26), (i ≥ 0)

Avantajul sistemului Beaufort consta ın faptul ca ecuatia de criptare se aplica si ladecriptare (ai = ki (mod p) − xi).

Alta varianta este sistemul Autoclave, atribuit matematicianului Cardano (autorulformulelor de rezolvare pentru ecuatiile de gradul 3 si 4). Aici cheia se foloseste o singuradata, la ınceput, dupa care este utilizat drept cheie textul clar.

Exemplul 2.4 Sa luam cuvantul cheie COV OR si textul clar A VENIT TOAMNA.Putem aranja sistemul de criptare sub forma unui tabel (s-au trecut doar caracterele, nusi codificarile lor):

Text clar: A V E N I T T O A M N ACheie: C O V O R A V E N I T T

Text criptat C J Z B Z T O S N U G T

Sistemul Vigenere a fost utilizat secole de-a randul, fiind considerat ca fiind unul dincele mai sigure sisteme de criptare. In 1917 de exemplu, prestigioasa revista ”ScientificAmerican” ıl considera imposibil de atacat. Numai ca acest sistem a fost spart de Kasiskiınca din 1863 (si independent de Babbage ın 1854).

Criptanaliza sistemului Vigenere

Fie x = x0x1 . . . xn−1 textul criptat cu cheia K = k0k1 . . . kp−1. Putem aranja acest textsub forma unei matrici cu p linii si dn/pe coloane, astfel

x0 xp x2p . . .x1 xp+1 x2p+1 . . .

...xp−1 x2p−1 x3p−1 . . .

Elementele de pe prima linie au fost criptate dupa formula

xpr = apr + k0 (mod 26), (k ≥ 0)

Page 191: Criptografie complet

2.2. SISTEME DE CRIPTARE POLIALFABETICE 11

adica cu un sistem Cezar (k0 fiind o valoare fixata din Z26). In mod similar si celelaltelinii.

Deci, daca s-ar cunoaste lungimea p a cheii, problema s-ar reduce la criptanaliza a ptexte criptate cu Cezar – sistem de criptare monoalfabetic.

Sunt cunoscute doua metode pentru aflarea lungimii cheii: testul lui Kasiski si indexulde coincidente.

Prima metoda consta ın studiul textului criptat si aflarea de perechi de segmente decel putin 3 caractere (aceasta lungime este propusa de Kasiski) identice. Pentru fiecareastfel de pereche, se determina distanta dintre segmente.

Dupa ce s-au gasit mai multe astfel de distante, valoarea lui p va fi cel mai mare divizorcomun al lor (sau – eventual un divizor al acestuia).

Exemplul 2.5 Oscar intercepteaza urmatorul text criptat, despre care banuie ca s-afolosit Vigenere:

D V L O E G O G L C G I W W A F R S C K A R V S S R A A K R S T U H D A

Q L N C J T S R U J V C W E A W K O H Z T I E U A R I Q L N C J C I K A

Q V A G K A S J T S G R W D A G K R C W A O L N S Z P C V Z W Z C S C E

P I E R V M W Y A W V M W E E G T U

Textul este destul de scurt (146 litere) si nu se mai stie nici un text trimis anterior.Folosind metoda Kasiski, Oscar gaseste secventa QLNCJ care apare pe randul al doilea.Distanta dintre cele doua aparitii este 27. De asemenea, apar doua cuvinte foarte asema-natoare: AQLN si AOLN , avand ıntre ele distanta 57.

Deci putem banui ca avem de-a face cu un cuvant cheie de lungime cmmdc(27, 57) = 3.Rescriem textul pe coloane, fiecare coloana avand trei elemente. Anume:

D O O C W F C R S A S H Q C S J W W H I A Q C I Q G S S W G C O S C W S P R W W W G

V E G G W R K V R K T D L J R V E K Z E R L J K V K J G D K W L Z V Z C I V Y V E T

L G L I A S A S A R U A N T U C A O T U I N C A A A T R A R A N P Z C E E M A M E U

Numarand frecventa aparitiei literelor pe fiecare linie, obtinem tabelul

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 ZLinia 1 2 0 6 1 0 1 3 2 2 1 0 0 0 0 3 1 3 2 7 0 0 1 8 0 0 0Linia 2 0 0 1 2 4 0 3 0 1 3 6 3 0 0 0 0 0 4 0 2 0 6 2 0 1 3Linia 3 11 0 3 0 3 0 1 0 2 0 0 2 2 3 1 1 0 3 2 3 4 0 0 0 0 1

In limba romana, primele litere ca frecventa sunt A−E−I, aflate la distanta egala unade alta. Deci vom cauta pe fiecare linie tripletele de litere situate pe pozitiile (k, k+4, k+8)avand frecventa semnificativ de mare (maxima ın cazul unui text lung). Pentru linia 3,alegerea este simpla: ea este chiar A−E− I (16 aparitii din 49 posibile), deci o deplasare0 ın codul Cezar.

Pentru prima linie, sunt doua posibilitati: O− S −W (deplasare 14) sau S −W −A(deplasare 18), ambele cu cate 18 aparitii.

Page 192: Criptografie complet

12 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

Tot doua variante apar si pentru a doua linie: C−G−K (deplasare 2) cu 10 aparitii,sau R− V − Z (deplasare 14) cu 13 aparitii.

Deplasarile dau exact codificarile cheii. Deci trebuie luate ın considerare patru vari-ante de cuvant cheie: OCA, ORA, SCA sau SRA. Cum de obicei cuvantul cheie areo semnificatie semantica (pentru a putea fi retinut mental usor), putem presupune ca eleste OCA sau ORA.

O simpla verificare retine drept cuvant cheie ORA, care conduce la decriptarea corectaa textului (spatiile si semnele de punctuatie se pun corespunzator):

PELANGAPLOPIIFARASOTADESEAAMTRECUTMACUNOSTEAUVECINIITOTITUNUMAICUNOSCUT

ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBREDEMIHAIEMINESCU

A doua metoda de aflare a lungimii cheii de criptare ıntr-un sistem Vigenere se bazeazape un concept definit ın 1920 de Wolfe Friedman ın 1920: indexul de coincidente ([4]).

Definitia 2.1 Daca x = x1x2 . . . xn este o secventae n caractere alfabetice, se numeste”index de coincidente” al lui x probabilitatea ca doua caractere din x, alese aleator, sa fieidentice. Aceasta valoare se noteaza Ic(x).

Sa notam cu fi frecventa de aparitie ın x a caracterului literal codificat i (0 ≤ i ≤ 25).Doua litere din x pot fi alese ın C2

n moduri. Din acestea, sunt C2fi

moduri ca ambele saaiba aceiasi codificare i (0 ≤ i ≤ 25). De aici se poate deduce formula

Ic(x) =

25∑i=0

C2fi

C2n

=

25∑i=0

fi(fi − 1)

n(n− 1)

Sa presupunem ca x este un text ın limba romana. Din tabelul frecventelor de aparitie aleliterelor, notand pi probabilitatea de aparitie a caracterului codificat cu i (0 ≤ i ≤ 25),valoarea pe care o putem estima pentru indxul de coincidente este

Ic(x) ≈25∑i=0

p2i = 0, 0788

Motivatie: Probabilitatea ca doua elemente aleatoare sa fie ambele egale cu caracterul decod i este p2

i (0 ≤ i ≤ 25). Afirmatia este valabila pentru orice criptare cu un sistemmonoalfabetic.

Sa presupunem acum ca am aranjat textul criptat x = x0x1 . . . xn−1 ıntr-o matrice cup linii si dn/pe coloane (unde p este un numar ıntreg pozitiv arbitrar), astfel

x0 = x0 xp x2p . . .x1 = x1 xp+1 x2p+1 . . .

...xp−1 = xp−1 x2p−1 x3p−1 . . .

Page 193: Criptografie complet

2.3. EXERCITII 13

Daca p este chiar lungimea cheii, atunci fiecare valoare Ic(xi) trebuie sa fie apropiata de0, 0788. In caz contrar, sirul xi va arata mult mai aleator, fiind obtinut prin amesteculunei secvente de caractere criptate cu chei diferite. Pentru o secventa complet aleatoare,valoarea indexului de coincidente este

Ic ≈ 26(

1

26

)2

=1

26= 0, 0384

Valorile 0, 0788 si 0, 0384 vor constitui punctele de extrem pe care le poate lua Ic. Vom luadeci diverse valori pentru p, pana vom gasi una care sa se apropie cat mai mult de 0, 788si nu de 0, 384. Aceea poate fi considerata – cu suficienta siguranta – ca este lungimeacheii.

In etapa a doua, vom ıncerca sa aflam efectiv cheia K = k0k1 . . . kp−1.Daca notam n1 = bn/pc lungimea secventei xi, atunci distributia de probabilitate ale

celor 26 litere ın xi estef0

n1

,f1

n1

, . . . ,f25

n1

Secventa xi a fost obtinuta printr-o criptare Cezar cu o deplasare ki. Deci, situatia idealaeste cand distributia de probabilitate a deplasarii

fki

n1

,fki+1 (mod 26)

n1

, . . . ,fki+25 (mod 26)

n1

este cat mai apropiata de distributia de probabilitate p0, p1, . . . , p25 a limbii romane.Fie un ıntreg m (0 ≤ m ≤ 25); definim expresia

Fm =25∑i=0

pi · fi+m

n1

Daca m = kj (0 ≤ j ≤ p− 1), ne putem astepta ca Fm ≈25∑i=0

p2i = 0, 0788.

Daca m 6= kj, atunci Fm va fi semnificativ mai mic decat aceasta valoare. Deci, dupacel mult 25 ıncercari, se poate afla deplasarea kj si deci a j-a litera din cheie.

2.3 Exercitii

2.1 Demonstrati ca functia de criptare afina eK(x) = ax+b (mod 26) este injectiva dacasi numai daca cmmdc(a, 26) = 1.

2.2 Textul clar este scris peste alfabetul V = {a, b, c, d}. Se foloseste un sistem decriptare monoalfabetic dat de regulile a −→ bb, b −→ aab, c −→ bab, d −→ a. Sa searate ca functia de criptare este injectiva.

Dar pentru: a −→ ab, b −→ ba, c −→ a, d −→ c ?

Page 194: Criptografie complet

14 PRELEGEREA 2. CIFRURI DE SUBSTITUTIE

2.3 Se definesc doua sisteme de criptare cu P= {a, b}, C= {c, d} si regulilea −→ 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 receptionat mesajulARAU RIRU ITAA URIR EESU URAP IUTE IRI

Despre el, criptanalistul are urmatoarele informatii: s-a folosit un careu de criptaretip Polybios, precum si cuvantul cheie STROP .

Sa se decripteze mesajul.

2.5 In sistemele de criptare simple, orice cheie de criptare poate fi reprezentata ca ocompunere de cateva chei generatoare. La sistemul Cezar, o astfel de cheie este e1. Aratatica la sistemul afin sunt necesare cel putın doua chei generatoare.

2.6 Decriptati 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 afin.

2.7 O varianta a sistemului AUTOCLAVE este utilizarea textului criptat (ın loc de textclar) dupa prima aplicare a cheii. La care din cele doua variante de AUTOCLAVE estecriptanaliza mai usoara ?

2.8 Cate chei are un sistem de criptare afin ın care card(V ) = 30, 100 sau 1225 ?

2.9 Sa presupunem ca K = (5, 21) este o cheie ıntr-un sistem de criptare afin peste Z29.(a) Exprimati functia de decriptare sub forma dK(y) = ay + b unde a, b ∈ Z29;(b) Aratati ca eK(dK(x)) = x, ∀x ∈ Z29.

2.10 Fie K = (a, b) o cheie ıntr-un sistem afin peste Zn. Aratati ca K este auto-cheiedaca si numai daca a−1 ≡ a (mod n) si b · (a + 1) ≡ 0 (mod n).

Aflati toate auto-cheile dintr-un sistem afin peste Z15.Sa presupunem ca n = pq unde p si q sunt numere prime distincte. Aratati ca numarul

auto-cheilor din sistemul afin peste Zn este n + p + q + 1.

Page 195: Criptografie complet

Bibliografie

[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook pf Applied Cryptography

[2] A. Salomaa, Criptografie 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

Page 196: Criptografie complet

Prelegerea 3

Sisteme mecanice de criptare

Sistemele de criptare pot fi aduse la un grad mai mare de complexitate si securitate dacase folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor usura– pe de-o parte – operatiile de criptare/decriptare, iar pe de-alta parte vor fi capabile sacreeze 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 decriptare cu permutari. El este sub forma aproximativ cilindrica, ın jurul lui fiind ınfasuratao banda de hartie. Mesajul se scrie ın mod normal pe aceasta banda, dupa care hartia estedesfacuta. 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 istoricilorgreci, spartanii foloseau acest mod de comunicare ın timpul campaniilor militare. 1 Elavea avantajul de a fi rapid si nu comporta erori de transmitere. Dezavantajul este acelaca este usor de spart.

Exemplul 3.1 Sa presupunem ca dimensiunile batului permit scrierea a 4 randuri, cu5 caractere pe fiecare rand. Fie ”VINO MAINE LA INTALNIRE” textul care trebuiecriptat. Ignorand spatiile, mesajul va apare scris sub forma

1Skitala a fost mentionata prima oara de poetul grec Archilochus (sec. VII ı.H). Desi apare ulteriorsi ın alte texte, abia la mijlocul secolului III ı.H. Apollonius din Rhodos specifica limpede utilizarea luica mijloc de criptare. De remarcat ca pentru perioada respectiva, sistemele de criptare folosite de grecierau de tip steganografic. O descriere a modului de operare este data apoi de Plutarh (50-120 A.D.).

1

Page 197: Criptografie complet

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 fi rulata din nou si fiecare a patra litera va fi pe aceeasi linie.Criptanaliza este foarte simpla. Se iau pe rand valorile n = 2, 3, 4, . . .. Pentru o astfel

de valoare fixata, 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 esteinteligibil.

3.2 Cilindrul Jefferson

Ideea de masina de criptare apare clar prima data la Thomas Jefferson, primul secretarde Stat al Statelor Unite; acesta a inventat un aparat de criptat numit roata de criptare,folosit pentru securitatea corespondentei cu aliatii – ın special cei francezi. 2

Un cilindru Jefferson este format din n discuri de dimensiuni egale (initial n = 26sau n = 36, dar valoarea este nerelevanta pentru descrierea sistemului) asezate pe un ax.Discurile se pot roti independent pe ax, iar pe muchea fiecaruia sunt inscrise cele 26 litereale alfabetului, ıntr-o ordine aleatoare (dar diferita pentru fiecare disc).

La criptare, textul clar se ımparte ın blocuri de n caractere. Fiecare astfel de blocse scrie pe o linie (generatoare) a cilindrului, rotind corespunzator fiecare disc pentru aaduce pe linie caracterul cautat. Oricare din celelalte 25 linii va constitui blocul de textcriptat.

Pentru decriptare este necesar un cilindru identic, ın care se scrie pe o linie textulcriptat (de n caractere) si apoi se cauta printre celelalte 25 linii un text cu semnificatiesemantica. Probabilitatea de a avea un singur astfel de text creste cu numarul de discuridin cilindru.

O mica diferenta apare daca textul clar nu are nici o semnificatie semantica (s-afolosit o dubla criptare). Atunci trebuie convenita dinainte o anumita distanta de criptares (1 ≤ s ≤ 25).

2Thomas Jefferson a folosit acest aparat ın perioada 1790 − 1802, dupa care se pare ca ideea s-apierdut. Devenit presedinte, Jefferson a fost atras de sistemul Vigenere, pe care ıl considera mai sigursi-l recomanda secretarului sau de stat James Madison ca ınlocuitor al sistemului pe care ıl inventaseanterior.

Page 198: Criptografie complet

3.2. CILINDRUL JEFFERSON 3

Ordinea discurilor poate fi de asemenea schimbata. De exemplu, un cilindru cu n = 10discuri poate realiza 10! = 3.628.800 texte criptate diferite pentru acelasi text clar.

Cilindrul Jefferson realizeaza o substitutie polialfabetica de perioada n. Daca ar fiprivit ca un sistem de criptare Vigenere, lungimea cheii este enorma (de multe ori nn, ınfunctie de modalitatile de aranjare a alfabetelor pe discuri), si deci metoda de atac a luiKasiski este inaplicabila.

Exemplul 3.2 Sa consideram n = 10 si fie cilindrul, ın care am desfasurat literele de pecele 10 discuri:

1 2 3 4 5 6 7 8 9 101 A A A A A A A A A A2 R R P N V S P E I I3 I O S I O O U S R H4 E S Y M T R H U E E5 K U L O Y P I P S T6 O V U C L M S B L O7 B I K U E U E L B M8 C J B L B B N C C U9 U L R T C D R D D C10 D B C Y D Y Y H F D11 J V D B G E D I N F12 T C T F F C B J Y G13 L G F G K V F F T J14 N K G S N H G O G P15 P N O H H F V G H Q16 W P N J U K J K J B17 Q Q E D P L K M K N18 M T H E Q Q M N M V19 S H M K R I T Q P W20 V E Q P S J O R Q X21 X D V Q W N L V V L22 Z Y W V X G W W W Y23 G W X X M T Q Y O K24 H X Z R I W X X U R25 Y Z I Z J X Z T X S26 F M J W Z Z C Z Z Z

Cu ajutorul lui, textul clar TREI CULORI construit pe una din liniile generatoare alecilindrului va genera urmatoarele linii (oricare din ele putand fi folosit drept text criptat):

Page 199: Criptografie complet

4 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE

T R E I C U L O R IL O H M D B W G E HN S M O G D Q K S EP U Q C F Y X M L TW V V U K E Z N B OQ I W L N C C Q C MM J X T H V A R D US L Z Y U H P V F CV B I B P F U W N DX F J F Q K H Y Y FZ C A G R L I X T GG G P S S Q S T G JH K S H W I E Z H PY N Y J X J N A J QF P L D M N R E K BA Q U E I G Y S M NR T K K J T D U P VI H B P Z W B P Q WE E R Q A X F B V XK D C V V Z G L W LO Y D X O A V C O YB W T R T S J D U KC XX F Z Y O K H X RU Z G W L R M I Z SD M O A E P T J A ZJ A N N B M O F I A

Daca se considera o dubla criptare cu distanta s = 3, atunci textul clar AAAAAAAAAAva fi criptat cu cilindrul anterior ın ESYMTRHUEE.

Cilindrul Jefferson a fost reinventat ulterior de mai multe ori, cea mai notabila fiindse pare masina de criptat M − 94, care a fost ın serviciu pana pana ın al doilea razboimondial.

3.3 Masini de criptat

Prima jumatate a sec. XX este dominata de masinile de criptat, o combinatie ıntremasinile 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 armateiamericane de a avea o masina de criptat portabila, usor de manuit, care sa poata fi folosita

Page 200: Criptografie complet

3.3. MASINI DE CRIPTAT 5

dupa un instructaj sumar. Este cunoscuta si sub numele de M − 209 C, la baza fiindun model creat de Hagelin ın Suedia la sfarsitul anilor ′30. Ea ıncepe sa fie produsa –dupa cateva modificari legate de design – ın 1940 si ınlocuieste treptat masina de criptatM − 94. Se apreciaza ca ın timpul razboiului au fost produse circa 140.000 masini decriptat C − 36.

Nu au fost specificate masuri speciale de securitate; C − 36 nu a fost realizata pentrua fi criptografic sigura, ea fiind destinata zonelor militare tactice, unde era nevoie doar deo siguranta de cateva ore fata de o eventuala criptanaliza.

Vom da o prezentare matematica a principiilor sale de constructie; pentru alte detalii,a se vedea [1] si [5].

Definitia 3.1 Se numeste matrice lug o matrice binara M6×27 ın care fiecare din cele 27coloane contine cel mult doi de 1.

Exemplul 3.3 ([4]). Toate exemplificarile referitoare la M − 209 vor fi facute pentrumatricea

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 11 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 00 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 00 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 10 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 00 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

Fie v un vector binar de dimensiune 6. Atunci c · M este un vector cu 27 componenteavand elemente din multimea {0, 1, 2}. Numarul de elemente nenule din v ·M se numesteponderea lui v ın raport cu M .

O configuratie de ınceput se obtine prin asezarea unul sub altul (aliniati la stanga) asase vectori binari de lungimi 17, 19, 21, 23, 25, 26.

Exemplul 3.4 Structura0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 00 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1

formeaza o posibila configuratie de ınceput.Spre deosebire de matricea lug, la configuratia de ınceput nu exista restrictii privind

numarul de 1.

Plecand de la o configuratie de ınceput se pot genera o infinitate de vectori de dimensiune6 ın felul urmator:

Page 201: Criptografie complet

6 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE

1. Primii 17 vectori sunt coloanele complete ale configuratiei de ınceput.

2. Fiecare vector linie se repeta ciclic din momentul cand s-a terminat.

Pe baza acestor elemente se poate descrie sistemul de criptare al masinii C − 36. Ream-intim, codificarea numerica a literelor este de la A − 0 pana la Z − 25; toate calculele sevor face modulo 26.

Fie x codul celui de-al i-lea caracter din textul clar si h ponderea celui de-al i-leavector generat de configuratia de ınceput ın raport cu matrica lug. Atunci

y = h− x − 1.

Exemplul 3.5 Sa consideram textul clarNU PUTEM REUSI DECAT IMPREUNA

ımpreuna cu matricea lug si configuratia de ınceput din exemplele anterioare. Codifi-carea numerica a textului este

13 20 15 20 19 4 12 17 4 20 18 8 3 4 2 0 19 8 12 15 17 4 20 13 0.Dupa ignorarea spatiilor libere3, lungimea textului clar este 25.Vom calcula ponderile primilor 25 vectori si vom aranja totul sub forma unui tablou:

h 10 17 16 9 9 9 7 0 0 0 0 12 0x 13 20 15 20 19 4 12 17 4 20 18 8 3

h− x − 1 22 20 0 14 15 4 20 8 21 5 7 3 22W W A O P E U I V F H D W

h 0 18 7 0 0 18 7 9 9 19 14 9x 4 2 0 19 8 12 15 17 4 20 13 0

h− x − 1 21 15 6 6 17 5 17 17 4 24 0 8V P G G R F R R E Y A I

Deci textul criptat esteWWAOPEUIVFHDWVPGGRFRREYAI

Matricea lug si configuratia de ınceput formeaza cheia pentru masina C − 36. De fapt,masina ınsasi este o realizare fizica a acestui sistem: ea opereaza conform cu o cheiestabilita anterior prin fixarea unor roti dintate si a unui disc (pentru detalii vezi [5]).

Observatia 3.1 Ecuatia de decriptare este identica cu cea de criptare:

x = h− y − 1.

Deci din acest punct de vedere sistemul de criptare este de tip Beaufort si masina C − 36poate fi folosita atat pentru criptare cat si pentru decriptare.

3In aplicatiile practice, spatiul se ınlocuieste uneori cu o litera de frecventa redusa.

Page 202: Criptografie complet

3.3. MASINI DE CRIPTAT 7

Deoarece liniile din configuratia de ınceput au lungimi numere prime ıntre ele, vectoriigenerati ıncep sa se repete sigur dupa 17·19·21·23·25·26 = 101.405.850 pasi; deci cuvantulcheie poate fi considerat mai lung decat orice text clar. Sunt ınsa cazuri cand aceastaperioada poate fi mai scurta. De exemplu, daca configuratia de ınceput contine numai 1,se va genera un singur vector, deci perioada este 1. De asemenea se obtin perioade scurtepentru matrici lug cu foarte putini 1 sau configuratii de ınceput ın care raportul dintrenumarul de 0 si 1 este disproportionat.

Nu exista o conditie matematica pentru existenta a exact 6 linii ın configuratia deınceput. Acest numar a fost ales ca un compromis ıntre securitatea criptografica siusurinta 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 alesecare au anumite componente comune poate duce la informatii asupra matricii lug), astfelca ın 1943 criptanalistii germani puteau decripta mesajele. Totusi – din punct de vederemilitar tactic – ea a fost considerata perfect adaptata necesitatilor si a fost folosita dearmata americana pana dupa razboiul din Coreea (1953 − 1956).

Ulterior, Hagelin a elaborat un model ımbunatatit: masina C − 52. Aceasta avea operioada de 2.756.205.443; discurile puteau si scoase si reinserate ın alta ordine; existaun disc al carui alfabet putea fi permutat. C − 52 a facut parte din ultima generatiede masini de criptat clasice, noua tehnologie (cea a computerelor) permitand dezvoltareaaltor 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 numese afla o varietate larga de modele de masini de criptat electro-mecanice, care asigura ocriptare polialfabetica de tip Vigenere sau Beaufort.

Ea a fost proiectata la Berlin ın 1918, de inginerul german Arthur Scherbius. Primulmodel (A) este prezentat la Congresele Uniunii Postale Internationale din 1923 si 1924.Modele ulterioare sunt folosite ın mai multe tari europene si asiatice (Suedia, Olanda,Marea Britanie, Japonia, Italia, Spania, SUA, Polonia, Elvetia) ın scopuri comerciale,militare sau diplomatice. Din 1926 ıncepe sa fie preluata si de armata germana, caredupa 1928 ısi defineste propriile modele (G, I, K).

In total au fost construite circa 100.000 masini Enigma, din care 40.000 ın timpulrazboiului. Dupa 1945 aliatii au capturat toate masinile de pe teritoriul german, acesteafiind ınca mult timp considerate sigure. Abia ın 1970 au aparut primele informatii despredecriptarea de catre aliati (Biuro Szyfrow - Polonia si Bletchley Park - Anglia) a unuimare numar de mesaje criptate prin modelul militar Enigma si transmise prin radio ıntimpul razboiului.

O descriere completa a masinii este destul de lunga; recomand pentru detalii [2], [3].In linii mari, ea are urmatoarele componente:

• Tastatura: Este o componenta mecanica formata din:

Page 203: Criptografie complet

8 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE

– Un pupitru de taste (similar unei masini de scris);

– n discuri adiacente, care se rotesc ın jurul unui ax. La marea majoritate amodelelor Enigma n = 3; sunt ınsa si versiuni cu n = 5, 6 sau n = 7 discuri.Pe fiecare disc sunt scrise cele 26 caractere alfabetice (la care uneori se maiadauga trei caractere speciale);

– Un mecanism de avans (similar ceasurilor mecanice) care permite – la apasareaunei taste – rotirea unuia sau mai multor discuri cu un numar de pozitii. Suntfolosite mai multe variante; cea mai frecventa consta ın rotirea cu o pozitie adiscului din dreapta, la fiecare apasare a unei taste, acompaniata ın anumitesituatii de rotirea discurilor vecine.

• Circuite electrice: Criptarea unui caracter se realizeaza electric. Componenta meca-nica este conceputa ın asa fel ıncat sa formeze un circuit electric. La apasarea uneitaste circuitul se ınchide si lumineaza una sau mai multe lampi, indicand litera deiesire.

• Reflector (Umkehrwalze): Este o componenta specifica masinilor de criptat Enigma(introdusa ın 1926 la sugestia lui Willy Korn). Scopul ei este de a realiza o criptareBeaufort (masina sa poata cripta sau decripta mesajele ın acelasi timp). In ma-joritatea variantelor, reflectorul este asezat pe ax dupa ultimul disc (din stanga); elrealizeaza o substitutie (fixata), dupa care reintroduce noul caracter prin discuri ınsens invers, dar pe alt drum. Deci o masina Enigma cu n discuri va realiza criptareaunui caracter prin 2n + 1 substitutii.

O consecinta a acestei proprietati este aceea ca un caracter nu va fi niciodata criptatın el ınsusi, lucru exploatat cu succes de criptanalisti.

• Tabela de conexiuni (Steckerbrett)4: Este o componenta (pozitionata ın fata, subtastele literelor) ın care se pot face conexiuni ıntre perechi de litere, prin intermediulunor cabluri (similar centralelor telefonice vechi). Deci la un mesaj sunt posibilemaxim 13 conexiuni. De exemplu, daca printr-un cablu sunt conectate literele Ssi W , de cate ori este tastat S, semnalul este comutat pe W ınainte de a intra pediscuri.

Introdusa ın 1930, aceasta componenta asigura un plus de securitate si a fost prin-cipalul obstacol ın criptanaliza.

Starea initiala a unei masini Enigma se refera la:

• Ordinea discurilor (Walzenlage): alegerea numarului de discuri si ordinea lor deutilizare;

4plugboard ın engleza.

Page 204: Criptografie complet

3.3. MASINI DE CRIPTAT 9

• Pozitia initiala a discurilor: pozitionarea ın mod independent a fiecarui disc, diferitapentru fiecare mesaj;

• Initializarea inelului de caractere (Ringstellung): pozitionarea alfabetului relativ laprimul disc.

• Initializarea conexiunilor (Steckerverbindungen): conexiunile dintre litere ın cadrultabelei de conexiuni.

Matematic, Enigma cripteaza fiecare litera dupa o procedura care poate fi exprimata prinprodus de permutari. Sa presupunem ca avem o masina Enigma cu 3 discuri si fie Ptransformarea tabelei de conexiuni, U – reflectorul, S, M, D – actiunile celor 3 discuri(din stanga, mijloc si respectiv dreapta). Atunci criptarea e poate fi scrisa sub forma:

e = PDMSUS−1M−1D−1P−1

Dupa fiecare apasare a unei taste, discurile se rotesc schimband transformarea. De exem-plu, daca discul din dreapta se roteste cu i pozitii, atunci transformarea devine ρiRρ−i,where ρ este permutarea ciclica stanga a vectorului (A, B, C, . . . , Z). Similar, discuriledin mijloc si stanga pot fi reprezentate prin j respectiv k rotiri ale lui M respectiv S.

Atunci functia de criptare poate fi descrisa astfel:

e = P (ρiDρ−i)(ρjMρ−j)(ρjSρ−k)U(ρjS−1ρ−k)(ρjM−1ρ−j)(ρiD−1ρ−i)P−1

Sa calculam numarul de variante posibile pentru criptarea unui mesaj. Vom considerao masina Enigma cu 3 discuri. Atunci numarul de situatii initiale posibile este 26·26·26 =17.576. Cum cele 3 discuri pot fi permutate ın 6 moduri, numarul variantelor se ridica la6 · 17.576 = 105.456.

Pentru fiecare din acestea, o tabela de conexiuni cu 10 perechi de litere conectateridica numarul variantelor la 150.738.274.937.250.

La acestea se adauga si modul de pozitionare al inelului de caractere la mecanismuldiscurilor, care mai ridica ordinul de marime al variantelor cu aproximativ 105. Acesteestimari arata ca Enigma era cea mai sigura masina de criptat a momentului respectiv.

Page 205: Criptografie complet

10 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE

Page 206: Criptografie complet

Bibliografie

[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 - Criptografie 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

Page 207: Criptografie complet

Prelegerea 4

Sisteme de criptare fluide

4.1 Sisteme sincronizabile si auto-sincronizabile

In sistemele de criptare prezentate pana acum, elementele succesive ale textului clar eraucriptate folosind aceeasi cheie K. Deci, daca

x = x1x2x3 . . .

este textul clar, textul criptat este

y = y1y2y3 . . . = eK(x1)eK(x2)eK(x3) . . .

Sistemele de criptare de acest tip se numesc sisteme de criptare bloc (block cyphers).Alta maniera utilizata este aceea a sistemelor de criptare fluide (stream cyphers).

Definitia 4.1 Fie M= (P , C,K, E ,D) un sistem de criptare. O secventa de simbolurik1k2k3 . . . ∈ K+ se numeste cheie fluida.

Definitia 4.2 M= (P , C,K, E ,D) este un sistem fluid daca cripteaza un text clar

x = x1x2x3 . . .

ıny = y1y2y3 . . . = ek1(x1)ek2(x2)ek3(x3) . . .

undek = k1k2k3 . . .

este o cheie fluida din K+.

Problema principala este aceea de a genera o astfel de cheie de criptare (teoretic infinit).Aceasta se poate realiza fie aleator, fie pe baza unui algoritm care pleaca de la o secventamica de chei de criptare. Un astfel de algoritm se numeste generator de chei fluide.Mai multe detalii vor fi prezentate ın cadrul prelegerii dedicate generatorilor de numerepseudo-aleatoare.

1

Page 208: Criptografie complet

2 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

Exemplul 4.1 (sistemul de criptare Vernam):In acest sistem xi, ki, yi ∈ {0, 1}. Criptarea se realizeaza conform formulei

yi = xi ⊕ ki, (i ≥ 1)

Daca cheia fluida este aleasa aleator si nu mai este folosita ulterior, sistemul decriptare Vernam se numeste ”one - time pad”.

Un sistem de criptare one-time pad este teoretic imposibil de spart. 1 Intr-adevar,fiind dat un text criptat cu un astfel de sistem, Oscar nu are nici o informatie privindcheia fluida sau textul clar. Dificultatea consta ınsa atat ın lungimea cheii (egala cu ceaa 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 diferentiala” (prezentata mai tarziu, ın cadrul sistemului de criptare DES).Anume:

Daca y1y2 . . . yn si y′1y′2 . . . y′n sunt doua texte criptate cu aceiasi chee fluida k1k2 . . . kn,

atunci

yi = xi ⊕ ki, y′i = x′i ⊕ ki (1 ≤ i ≤ n)

deci yi⊕y′i == xi⊕x′i, si cheia nu mai este necesara, ci doar informatia privind lungimea

sa; redundanta ultimei relatii va permite criptanaliza.

Sistemele de criptare fluide sunt clasificate ın sisteme sincrone si auto-sincronizabile.

Definitia 4.3 Un sistem de criptare fluid sincron este o structura (P , C,K,L, E ,D),unde:

• P, C,K sunt multimi finite nevide ale caror elemente se numesc ”texte clare”, ”textecriptate” si respectiv ”chei”;

• L este o multime finita nevida numita ”alfabet sir de chei”;

• g : K−→ L+ este un generator de chei fluide: pentru∀k ∈ K, g(k) = k1k2k3 . . . ∈ L+

este o cheie fluida (teoretic infinita);

• ∀z ∈ L exista o regula de criptare ez ∈ E si o regula de decriptare dz ∈ D astfel ca∀x ∈ P , dk(ek(x)) = x

Exemplul 4.2 Sistemul de criptare Vigenere poate fi definit ca un sistem de criptarefluid sincron. Fie m lungimea cuvantului cheie din sistemul Vigenere. Definim

1In anii ′90 comunicarea ıntre Moscova si Washington era securizata ın acest mod, transportul cheiide criptare fiind asigurat de curieri.

Page 209: Criptografie complet

4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 3

P = C = L =Z26, K =(Z26)m ,

ez(x) = x + z (mod 26), dz(y) = y − z (mod 26)

Cheia z1z2z3 . . . este definita

zi =

{ki daca 1 ≤ i ≤ mzi−m daca i ≥ m + 1

Ea va genera din cheia fixa K = (k1, k2, . . . , km), cheia fluida k1k2 . . . kmk1k2 . . . km

k1k2 . . .

Procesul de criptare cu un sistem fluid sincron poate fi reprezentat ca un automatdescris de relatiile

qi+1 = δ(qi, k), zi = g(qi, k), yi = h(zi, xi)

unde q0 este starea initiala – care poate fi determinata din cheia k, δ este functia detranzitie a starilor, g este functia care produce cheia fluida zi, iar h este functia de iesirecare produce textul criptat yi pe baza textului clar xi si a cheii fluide zi.

� �� � ��� �� qi

-666

- -6

6-

?�

g hk

qi+1

zi

xi

yi � �� � ��� �� qi

-666

- -6

6-

?�

g h−1k

qi+1

zi

yi

xi

(a) Criptare (b) Decriptare

Observatia 4.1

• Un sistem de criptare bloc poate fi privit ca un caz particular de sistem de criptarefluid, ın care ∀i ≥ 1, zi = K.

• (sincronizare): In sistemele de criptare fluide sincrone, Alice si Bob trebuie sa-sisincronizeze cheia fluida pentru a putea obtine o criptare/decriptare corecta. Daca ıntimpul transmisiei sunt inserati sau eliminati biti ın textul criptat, atunci decriptareaesueaza si ea poate fi reluata numai pe baza unor tehnici de resincronizare (cum ar fide exemplu reinitializarea sau plasarea unor marcatori speciali la intervale regulateın textul transmis).

• Modificarea unui bit din textul criptat (faa a se elimina sau adauga nimic) nu vaafecta decriptarea altor caractere (nepropagarea erorii).

Page 210: Criptografie complet

4 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

• Un adversar activ care elimina, insereaza sau retrimite componente ale mesajuluicriptat, va provoca desincronizari si va fi deci detectat la receptie. De asemenea, elpoate face modificari ın textul criptat si sa observe cum vor afecta ele textul clar.Deci un text criptat cu un sistem fluid sincron necesita meca-nisme separate deautentificare si de garantare a integritatii datelor.

Definitia 4.4 Un sistem aditiv fluid binar de criptare este un sistem fluid sincron ın careP = C = L =Z2 iar h este functia ⊕ (XOR).

Un astfel de sistem este reprezentat mai jos:

Generatorchei fluide

⊕- -?

-kzi

xi

yiGeneratorchei fluide

⊕- -?

-kzi

yi

xi

(a) Criptare (b) Decriptare

Definitia 4.5 Un sistem de criptare fluid este auto-sincronizabil (sau ”asincron”) dacafunctia de generare a cheii fluide depinde de un numar fixat de caractere criptate anterior.

Deci comportamentul unui astfel de sistem poate fi descris de ecuatiile

qi = (yi−t, yi−t+1, . . . , yi−1), zi = g(qi, k), yi = h(zi, xi)

unde q0 = (y−t, y−t+1, . . . , y−1) este starea initiala (cunoscuta), k este cheia, g este functiade generare a cheii fluide, iar h este functia de iesire care cripteaza textul clar xi. Celemai cunoscute sisteme auto-sincronizabile sunt registrii liniari cu feedback, utilizati lagenerarea secventelor de numere pseudo-aleatoare (ın criptografie) si la generarea codurilorciclice (ın teoria codurilor).

Exemplul 4.3 (Criptare cu auto-cheie)2:Fie P = C = L =Z26. Se defineste cheia fluida astfel:

z1 = K, zi = yi−1, (i ≥ 2)

Pentru un element oarecare al cheii z ∈ Z26, se definesteez(x) = x + z (mod 26)dz(y) = y − z (mod 26)

Sa consideram K = 13 si sa criptam textul clar BUCURESTI.

2Se pare ca sistemul este atribuit lui Vigenere.

Page 211: Criptografie complet

4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 5

Transformat ın secventa numerica vom avea

(x1, x2, x3, x4, x5, x6, x7, x8, x9) = (1, 20, 2, 20, 17, 4, 18, 19, 8)

In faza de criptare, vom calcula pe rand:y1 = e13(x1) = 1 + 13 (mod 26) = 14; y2 = e14(x2) = 20 + 14 (mod 26) = 8;y3 = e8(x3) = 2 + 8 (mod 26) = 10; y4 = e10(x4) = 20 + 10 (mod 26) = 4;y5 = e4(x5) = 17 + 4 (mod 26) = 21; y6 = e21(x6) = 4 + 21 (mod 26) = 25;y7 = e25(x7) = 18 + 25 (mod 26) = 17; y8 = e17(x8) = 19 + 17 (mod 26) = 10;y9 = e10(x9) = 8 + 10 (mod 26) = 18;

Deci textul criptat este (14, 8, 10, 4, 21, 25, 17, 10, 18) sau – ın litere: OIKEV ZRKS.Pentru decriptare, vom avea:x1 = d13(y1) = 14− 13 (mod 26) = 1; x2 = d14(y2) = 8− 14 (mod 26) = 20; s.a.m.d.Se observa ca textul decriptat poate fi obtinut de oricine, aproape ın totalitate, fara a

cunoaste nici o cheie (aceasta fiind necesara doar pentru decriptarea primului caracter).Deci gradul sau de securitate este nul.

Ceva mai dificil este sistemul ın care generarea cheii fluide se realizeaza cu ecuatiazi = xi−1 (i ≥ 2).

In acest caz, BUCURESTI se cripteaza ın OV WWLV WLB (pentru K = 13).Nici acest sistem de criptare cu auto-cheie nu este sigur, deoarece – evident – sunt

posibile doar 26 chei.

Proprietati:

1. Auto-sincronizare: Deoarece functia de decriptare h−1 depinde numai de un numarfixat de caractere criptate anterior, desincronizarea – rezultata eventual prin in-serarea sau stergerea de caractere criptate – se poate evita. Astfel de sisteme decriptare pot restabili proprietatea de sincronizare afectand doar un numar finit decaractere din textul clar.

2. Propagarea limitata a erorii: Daca starea unui sistem fluid auto-sincronizabil de-pinde de t caractere anterioare, atunci modificarea (eventual stergerea sau inser-area) unui caracter din textul criptat poate duce la decriptarea incorecta a maximt caractere; dupa aceea decriptarea redevine corecta.

3. Raspandirea textelor clare: Deoarece fiecare caracter din textul clar influenteazaıntregul text criptat care urmeaza, eventualele proprietati statistice ale textului clarsunt dispersate prin textul criptat. Deci, din acest punct de vedere, sistemele decriptare auto-sincronizabile sunt mai rezistente decat cele sincronizabile la atacurilebazate pe redondanta textului clar.

4. Rezistenta la criptanaliza activa: Din proprietatile de mai sus rezulta ca este destulde dificil de depistat un atac venit din partea unui adversar activ (care poate mod-ifica, insera sau sterge caractere) auto-sincronizarea readucand decriptarea ın faza

Page 212: Criptografie complet

6 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

normala. De aceea sunt necesare mecanisme suplimentare pentru a asigura auten-tificarea si integritatea datelor.

4.2 Exemple de sisteme fluide de criptare

4.2.1 SEAL

SEAL (Software - optimized Encryption ALgorithm) este un sistem de criptare aditivbinar (Definitia 4.4), definit ın 1993 de Coppersmith si Rogaway. Este unul din cele maieficiente sisteme implementabile pe procesoare de 32 biti.

La un astfel de sistem este importanta descrierea generatorului de chei fluide (care seaduna modulo 2 cu textul clar). SEAL este o functie pseudo-aleatoare care scoate o cheiefluida de L biti folosind un numar n de 32 biti si o cheie secreta a de 160 biti.

Fie A, B, C,D, Xi, Yj cuvinte de 32 biti. Vom folosi urmatoarele notatii:

1. A: complementul lui A (pe biti);

2. A ∨B, A ∧B, A⊕B: operatiile OR, AND si XOR (pe biti);

3. A << s: rotirea ciclica a lui A spre stanga cu s pozitii;

4. A >> s: rotirea ciclica a lui A spre dreapta cu s pozitii;

5. A + B (mod 232): suma lui A si B (considerate ca numere ıntregi fara semn);

6. f(B, C, D) = (B ∧ C) ∨ (B ∧D);g(B, C, D) = (B ∧ C) ∨ (B ∧D) ∨ (C ∧D); h(B, C, D) = B ⊕ C ⊕D.

7. A||B: concatenarea lui A cu B;

8. (X1, X2, . . . , Xn)←− (Y1, , , , , Y2, . . . , Yn): atribuire simultana.

Page 213: Criptografie complet

4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 7

Algoritmul de generare a tabelei G pentru SEAL 2.0: 3

Intrare: Un sir a de 160 biti si un ıntreg i (0 ≤ i < 232).Iesire: Ga(i) – sir de 160 biti.Algoritm 1:

1. Se definesc constantele (de 32 biti):

y1 = 0x5a827999, y2 = 0x6ed9eba1,y3 = 0x8f1bbcdc, y4 = 0xca62c1d6

2. a. X0 ←− i;

b. for j ←− 1 to 15 do Xj ←− 0x00000000;

c. for j ←− 16 to 79 do Xj ←− ((Xj−3 ⊕Xj−8 ⊕Xj−14 ⊕Xj−16) << 1);

d. (A, B, C,D, E)←− (H0, H1, H2, H3, H4) where a = H0H1H2H3H4;

e. (Runda 1): for j ←− 0 to 19 do

t←− ((A << 5) + f(B, C, D) + E + Xj + y1);

(A, B, C,D, E)←− (t, A, B << 30, C,D);

f. (Runda 2): for j ←− 20 to 39 do

t←− ((A << 5) + h(B, C, D) + E + Xj + y2);

(A, B, C,D, E)←− (t, A, B << 30, C,D);

g. (Runda 3): for j ←− 40 to 59 do

t←− ((A << 5) + g(B, C, D) + E + Xj + y3);

(A, B, C,D, E)←− (t, A, B << 30, C,D);

h. (Runda 4): for j ←− 60 to 79 do

t←− ((A << 5) + h(B, C, D) + E + Xj + y4);

(A, B, C,D,E)←− (t, A, B << 30, C,D);

i. (H0, H1, H2, H3, H4)←− (H0 + A, H1 + B, H2 + C, H3 + D, H4 + E);

Ga(i) = H0||H1||H2||H3||H4.

SEAL(a, n) (Generatorul de chei fluide pentru SEAL 2.0):

3Algoritmul SEAL 1.0 este bazat pe functia de dispersie SHA, iar SEAL 2.0 – pe functia SHA− 1.

Page 214: Criptografie complet

8 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

Intrare: a – cheia secreta (160 biti), n ∈ [0, 232) ıntreg, L - lungimea solicitata pentrucheia fluida.Iesire: cheia fluida y, |y| = L′, unde L′ este primul multiplu de 128 din [L,∞).

1. Se genereaza tabelele T, S, R avand ca elemente cuvinte de 32 biti.

Fie functia Fa(i) = H ii (mod 5) unde H i

0Hi1H

i2H

i3H

i4 = Ga(bi/5c).

a. for i←− 0 to 511 do T [i]←− Fa(i);

b. for j ←− 0 to 255 do S[j]←− Fa(0x00001000 + j);

c. for k ←− 0 to 4 · d(L− 1)/8192e − 1 do R[k]←− Fa(0x00002000 + k);

2. Descrierea procedurii Initialize(n, l, A,B, C, D, n1, n2, n3, n4) cu intrarile n (cuvant)si l (ıntreg). Iesirile sunt A, B, C,D, n1, n2, n3, n4 (cuvinte).

a.A←− n⊕R[4 · l], B ←− (n >> 8)⊕R[4 · l + 1],C ←− (n >> 16)⊕R[4 · l + 2], D ←− (n >> 24)⊕R[4 · l + 3].

b. for j ←− 1 to 2 do

P ←− A ∧ 0x000007fc, B ←− B + T [P/4], A←− (A >> 9),

P ←− B ∧ 0x000007fc, C ←− C + T [P/4], B ←− (B >> 9),

P ←− C ∧ 0x000007fc, D ←− D + T [P/4], C ←− (C >> 9),

P ←− D ∧ 0x000007fc, A←− A + T [P/4], D ←− (D >> 9),

(n1, n2, n3, n4)←− (D, A, B, C);

P ←− A ∧ 0x000007fc, B ←− B + T [P/4], A←− (A >> 9),

P ←− B ∧ 0x000007fc, C ←− C + T [P/4], B ←− (B >> 9),

P ←− C ∧ 0x000007fc, D ←− D + T [P/4], C ←− (C >> 9),

P ←− D ∧ 0x000007fc, A←− A + T [P/4], D ←− (D >> 9),

3. l←− 0, y ←− ε (sirul vid);

4. repeat

a. Initialize(n, l, A, B, C, D, n1, n2, n3, n4);

b. for i←− 1 to 64 do

P ←− A ∧ 0x000007fc, B ←− B + T [P/4], A←− (A >> 9), B ←− B ⊕ A;

Q←− B ∧ 0x000007fc, C ←− C + T [Q/4], B ←− (B >> 9), C ←− C ⊕B;

P ←− (P + C)∧ 0x000007fc, D ←− D + T [P/4], C ←− (C >> 9), D ←− D⊕C;

Q←− (Q + D)∧ 0x000007fc, A←− A + T [Q/4], D ←− (D >> 9), A←− A⊕D;

P ←− (P + A) ∧ 0x000007fc, B ←− B + T [P/4], A←− (A >> 9);

Q←− (Q + B) ∧ 0x000007fc, C ←− C + T [Q/4], B ←− (B >> 9);

Page 215: Criptografie complet

4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 9

P ←− (P + C) ∧ 0x000007fc, D ←− D + T [P/4], C ←− (C >> 9);Q←− (Q + D) ∧ 0x000007fc, A←− A + T [Q/4], D ←− (D >> 9);y ←− y||(B + S[4 · i− 4])||(C ⊕ S[4 · i− 3])||(D + S[4 · i− 2])||(A⊕ S[·i− 1]).

if |y| ≥ L then return(y) STOPelse if i (mod 2) = 1 then (A, C)←− (A + n1, C + n2)

else (A, C)←− (A + n3, C + n4)c. l←− l + 1.

Observatia 4.2 ([1]) In majoritatea aplicatiilor pentru SEAL 2.0 se foloseste L ≤ 219.Algoritmul functioneaza si pentru valori mai mari, dar devine ineficient deoarece crestemult dimensiunea tabelei R. O varianta este concatenarea cheilor fluide SEAL(a, 0)||SEAL(a, 1)||SEAL(a, 2)|| . . . Deoarece n < 232, se pot obtine astfel chei fluide de lungimipana la 251, pastrand L = 219.

4.2.2 RC4

Sistemul RC4 (Rivest Code #4) a fost creat ın 1987 de Ron Rivest pentru societatea RSAData Security Inc (astazi RSA Security). Destinat scopurilor comerciale, el a fost secret,fiind accesibil numai dupa semnarea unui protocol de confidentialitate. In septembrie 1994ınsa, un anonim publica codul sau sursa pe o lista de discutii, dupa care se raspandesterapid starnind o serie de polemici referitor la drepturile intelectuale. Se considera ca astaziexista mai multe implementari ilegale.

RC4 este un sistem aditiv fluid de criptare.Printre sistemele care folosesc RC4 se pot aminti SQL (Oracle), Lotus Notes, AOCE

(Apple Computer), WEP WPA CipherSaber Secure Sockets Layer (optional) sau Secureshell (optional)4 RC4 este utilizat pentru criptarea fisierelor ın protocoale cum ar fi RSASecurPC sau ın standarde de comunicatii (WEP, WPA pentru carduri, criptarea traficuluide date sau a site-urilor de web bazate pe protocolul SSL). De asemenea, el face partedin Cellular Digital Packet Data specification.

La acest sistem, pentru generarea cheii fluide se foloseste o stare interna (secreta)formata din doua componente:

• Un tablou de 256 octeti: S[0], S[1], . . . S[255], numit S − box.

• Doi pointeri de cate 8-biti (notati ”i” respectiv ”j”).

S − boxul este initializat cu o cheie de lungime variabila – de obicei ıntre 40 si 256biti, folosind un algoritm numit KSA (key-sheduling algorithm).

In faza a doua, cheia fluida este generata folosind algoritmul PRGA (pseudo-randomgeneration algorithm).

4Cand un sistem de criptare este marcat optional, ınsemna ca el este una din variantele oferite pentruimplementare.

Page 216: Criptografie complet

10 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

Algoritmul PRGA de generare a cheii fluide

i j

+

? ?

?666

�?-?�

6

?

S

0 1 2 S[i]+S[j] 254 255

K

. . . . . . . . . . . .

Continuturile 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 fluida. In plus cei doi octetisunt interschimbati.

Procedeul este reluat atat timp cat este nevoie. La fiecare reluare starea celor doipointeri se modifica (i este incrementat cu 1 iar j este incrementat cu S[i]). In acest fel,orice locatie din S − box este modificata cel putin odata ;a 256 iteratii.

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 initializare

KSA este utilizat pentru initializarea S − boxului. Fie n (1 ≤ n ≤ 255) numarul deocteti din cheie5. Initial ın S se introduce permutarea identica. Ulterior se realizeaza 256transpozitii. 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 octeti si necesita256 pentru S − box, n octeti de memorie pentru cheie, plus trei variabile ıntregi i, j, k.Operatiile folosite sunt XOR si AND (sau – pe unele platforme – simpla adunare pe biti,fara transport).

5In majoritatea implementarilor n este ın intervalul [5, 16].

Page 217: Criptografie complet

4.3. EXERCITII 11

Securitatea RC4

Conform cu Bruce Schneier ([2]), sistemul are circa 256! × 2562 = 21700 stari posibile; eleste rezistent la criptanaliza diferentiala si liniara, iar ciclurile sunt mai mari de 10.100.

Totusi, securitatea RC4 este slaba din mai multe puncte de vedere si criptografii nurecomanda sistemul pentru aplicatiile actuale.

Cheia fluida generata are o usoara preferinta pentru anumite secvente de octeti.Aceasta a permis construirea unui atac (Fluhrer si McGrew), care separa cheia fluidadintr-o secventa aleatoare de maxim 1 GB.

In 2001, Fluhrer, Mantin si Shamir descopera ca din toate cheile RC4 posibile, primiiocteti de iesire nu sunt aleatori, oferind informatii importante despre cheie.

La majoritatea sistemelor de criptare, o masura de securitate ncesara este alegereaunui numar aleator nou6 care sa fie folosit pentru criptarea fiecarui mesaj. In acest fel,criptarea de doua ori a aceluiasi mesaj va genera texte diferite. O solutıe sigura (carefunctioneaza pentru orice sistem de criptare) este de a folosi o cheie pe termen lung dincare, prin amestec cu un nonce (dupa un algoritm prestabilit) se obtine cheia necesaraunei criptari. Multe aplicatii ınsa – care folosesc RC4 – fac o simpla concatenare a cheii cunonce. Aceasta slabiciune este exploatata de Fluhrer, Mantin si Shamir pentru a spargeulterior sistemul de criptare WEP (wired equivalent pruvacy) folosit pe retelele fara fir802.11.

Ulterior implementarile sistemului RC4 s-au aparat eliminand primii octeti (uzual1024) din cheia fluida, ınainte de a o folosi.

4.3 Exercitii

1. Construiti coduri de autentificare a mesajelor (MAC) capabile sa autentifice mesajeleprimite printr-un sistem fluid de criptare. (Indicatie: a se vedea [1], paragraf 9.5.4)

2. Presupunem ca definim o cheie fluida ıntr-un sistem sincronizabil ın felul urmator:Fie K ∈ K, L un alfabet al cheilor si Σ o multime finita de stari. Se defineste ostare initiala q0 ∈ σ. Apoi, pentru i ≥ 1, se defineste recursiv

qi = f(qi−1, K)

unde f : Σ×K−→ Σ. De asemenea, ∀i ≥ 1, elementul zi din cheia fluida este definitprin

zi = g(qi, K)

unde g : Σ × K−→ L. Aratati ca orice cheie fluida rezultata ın acest mod are operioada de lungime maxim |Σ|.

6Un astfel de numar poarta numele de nonce (new number)

Page 218: Criptografie complet

12 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE

Page 219: Criptografie complet

Bibliografie

[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

Page 220: Criptografie complet

Prelegerea 5

Sistemul de criptare DES

5.1 Consideratii generale

In mai 1973, Biroul National de Standarde din SUA a lansat ın Registrul Federal (jurnaluloficial al guvernului) un apel la construirea unui sistem de criptare oficial care sa senumeasca Data Encryption Standard (DES). Firma IBM a construit acest sistem –publicat ın Registrul Federal la 17 martie 1975, modificand un sistem de criptare maivechi, numit Lucifer. Dupa dezbateri publice, DES a fost adoptat oficial la 17 ianuarie1977 ca standard de criptare. De atunci, el a fost re-evaluat la fiecare 5 ani, fiind ın acestmoment cel mai popular sistem de criptare cu cheie simetrica. Spargerea sa ın iulie 1998a coincis (ıntamplator ?) cu durata sa oficiala de utilizare.

5.2 Descrierea sistemului DES

Sistemul DES cripteaza un bloc de text clar de 64 biti ıntr-un text criptat tot de 64 biti,utilizand o cheie de 56 biti. Algoritmul cuprinde 3 etape:

1. Fie α textul clar initial, de 64 biti. Lui i se aplica o permutare IP initiala fixata,obtinandu-se α0 = IP (α) = L0R0. L0 este format din primii 32 biti ai lui α0, iarR0 – din ultimii 32 biti.

2. Se efectueaza 16 iteratii (tururi) ale unei functii care se va preciza. La fiecare turse calculeaza LiRi (1 ≤ i ≤ 16) dupa regula

Li = Ri−1

Ri = Li−1 ⊕ f(Ri−1, Ki)

unde ⊕ este sau - exclusiv (XOR) a doua secvente binare. f este o functie care seva preciza, iar K1, K2, . . . , K16 sunt secvente de 48 biti calculati din cheia K. Sespune ca K1, K2, . . . , K16 sunt obtinuti prin diversificarea cheii (key shedule).

1

Page 221: Criptografie complet

2 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

3. Blocului R16L16 i se aplica inversa permutarii initiale pentru a obtine textul criptatβ = IP−1(R16L16).

Observatia 5.1 Sistemul de ecuatii care definesc criptarea la fiecare tur poate fi inversatimediat pentru a obtine ecuatiile tururilor de decriptare. Acestea sunt:

Ri−1 = Li, Li−1 = Ri ⊕ f(Li, Ki)

Functia de criptare f(A, J) are ca argumente doua secvente binare: una de 32 biti,iar a doua de 48 biti. Rezultatul este o secventa de 32 biti. Etapele de calcul ale functieisunt:

1. Argumentul A este extins la 48 biti folosind o functie de expansiune E. E(A)cuprinde bitii lui A asezati ıntr-o anumita ordine, unii bitii fiind scrisi de doua ori.

2. Se calculeaza B = E(A) ⊕ J ; rezultatul se descompune ın 8 subsecvente de cate 6biti fiecare: B = B1B2B3B4B5B6B7B8.

3. Se folosesc 8 S − cutii S1, S2, . . . , S8, fiecare din ele fiind un tablou de dimensiuni4 × 16 cu elemente numere ıntregi din intervalul [0, 15]. Pentru o secventa Bj =b1b2b3b4b5b6 se calculeaza un sir de 4 biti Sj(Bj) astfel: bitii b1b6 dau reprezentarea bi-nara a indicelui unei linii r (0 ≤ r ≤ 3) din Sj; ceilalti biti b2b3b4b5 dau reprezentareabinara a indicelui unei coloane c (0 ≤ c ≤ 15) din tablou. Atunci Cj = Sj(Bj) =[Sj(r, c)]2 (1 ≤ j ≤ 8). ([x]2 este reprezentarea ın baza 2 a numarului ıntreg x).

4. Secventa C = C1C2C3C4C5C6C7C8 – de lungime 32 – se rearanjeaza folosind opermutare fixata P . Rezultatul final este f(A, J) = P (C).

Mai ramane sa specificam functiile particulare folosite de sistemul DES:

• Permutarea initiala IP este:

58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

• Permutarea inversa IP−1 este:

Page 222: Criptografie complet

5.2. DESCRIEREA SISTEMULUI DES 3

40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

• Functia de expansiune E este definita de tabloul:

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

• Cele opt cutii S (S-boxes) sunt:

S1

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Page 223: Criptografie complet

4 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

S5

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

• Permutarea fixata P este:

16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25

Mai ramane de prezentat procesul de diversificare al cheii K. De fapt, K este o secventade 64 biti, din care 56 definesc cheia, iar 8 (bitii de pe pozitiile 8, 16, 24, . . . , 64) sunt bitide paritate, aranjati ın asa fel ıncat fiecare octet sa contina un numar impar de 1. Acesti8 biti sunt ignorati ın procesul de diversificare.

1. Din cheie se elimina bitii de paritate, iar asupra celorlalti se aplica o permutarePC1, obtinandu-se PC1(K) = C0D0 (C0 sunt primii 28 biti din secventa, iar D0 –ceilalti 28 biti). Permutarea PC1 este

Page 224: Criptografie complet

5.3. CONTROVERSE LEGATE DE DES 5

57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4

2. Pentru i = 1, 2, . . . , 16 se calculeaza

Ci = LSi(Ci−1)

Di = LSi(Di−1)

si Ki = PC2(CiDi). LSi este o rotatie circulara la stanga cu una sau doua pozitii,ın functie de valoarea lui i: o pozitie daca i = 1, 2, 9, 16, altfel rotirea este de douapozitii. Permutarea PC2 este:

14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

Decriptarea se realizeaza plecand de la textul criptat β si utilizand acelasi algoritm, ınordine inversa; se vor folosi ın ordine cheile K16, . . . , K1.

5.3 Controverse legate de DES

Inca de la lansarea sa, DES a fost supus la numeroase critici. O prima obiectie a fostfolosirea cutiilor S. Toate calculele din DES sunt liniare, cu exceptia cutiilor. Deci, defapt toata securitatea sistemului se bazeaza pe acestea. Dar, nimeni (cu exceptia autorilor)nu stie cum sunt concepute cutiile. Multe persoane sunt convinse ca ele ascund diversetrape secrete care permit celor de la Agentia nationala de securitate (NSA - serviciulamerican care raspunde de chestiunile legate de criptografie) sa decripteze orice mesaj.

Ca urmare, NSA afirma ın 1976 ca S - cutiile au fost construite pe baza urmatoarelorcriterii:

1. Fiecare linie este o permutare a numerelor 0, . . . , 15;

Page 225: Criptografie complet

6 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

2. Nici o cutie nu este o functie liniara sau afina;

3. Modificarea unui bit din operand, o S - cutie provoaca modificarea cel putin a doibiti din rezultat;

4. Pentru fiecare cutie S si α (secventa de lungime 6), S(α) si S(α ⊕ 001100) diferaprin cel putin doi biti.

Alte doua proprietati au fost mentionate ca fiind consecinte ale criteriilor de constructie:

5. Pentru orice cutie S si orice α, S(α) 6= S(α⊕ 11ab00), oricare ar fi a, b ∈ {0, 1};

6. Pentru orice cutie S, daca un bit din operand este mentinut constant si se urmarsteun bit al rezultatului, numarul de valori care produc 0 este apropiat de numarulde valori care produc 1. Intr-adevar, daca bitul fixat este unul din cei doi biti caredetermina linia cutiei S, exista – conform criteriului 1. – 16 valori care produc 0 si16 valori care produc 1; pentru ceilalti biti, aceasta nu este adevarat, dar numarulde 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 (numai256) a spatiului cheilor. Ca urmare s-au conceput numeroase masini dedicate atacurilorcu text clar cunoscut, care sa caute cheia. Fiind dat un text clar α de 64 biti si textulsau criptat β, se verifica toate cheile posibile K pana se obtine eK(α) = β (de remarcatca solutia 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, moduriextinse ulterior si la alte sisteme:

• Modul ECB (Electronic Codebook Mode) corespunde metodei descrise anterior: fiinddat un text clar x = α1α2 . . ., fiecare bloc αi de 64 biti este criptat cu cheia K dupaformula

βi = eK(αi), (i ≥ 1)

procedeul conducand la textul criptat y = β1β2 . . .

• In modul CBC (Cypher Block Chaining Mode), fiecare bloc de text criptat βi estecombinat printr-un XOR (⊕) cu textul clar urmator αi+1, ınainte de criptareaacestuia. Operatia decurge conform schemei:

Page 226: Criptografie complet

5.4. MODURI DE UTILIZARE ALE DES -ULUI 7

β1

eK eK

β2

j jα1 α2

V I = β0 + +

Criptare

-?

?

?-

6- ?

?

?-

6- . . .

α1 α2

j jdK dK

β1 β2

V I = β0-

?

?

?

-

?-

?

?

?

-

?-+ + . . .

Decriptare

Se defineste un bloc cu valoarea initiala V I = β0, dupa care blocurile se cripteazadupa formula

βi = eK(βi−1 ⊕ αi), (i ≥ 1)

• Modurile OFB si CFB sunt construite conform sistemelor de criptare fluide: segenereaza ıntai cheia fluida, care se combina apoi cu textul clar. OFB (OutputFeedback Mode) este o criptare sincronizabila aditiva: componentele cheii fluidesunt obtinute prin criptarea iterativa a unui bloc initial V I de 64 biti; se definesteγ0 = V I si se calculeaza γ1, γ2, . . . dupa formula

γi = eK(γi−1), (i ≥ 1)

Secventa blocurilor de text clar x = α1, α2, . . . este criptata apoi aditiv conformrelatiei

βi = αi ⊕ γi, (i ≥ 1)

• In modul CFB (Cypher Feedback Mode) se ıncepe cu β0 = V I (bloc initial de 64biti) si se calculeaza cheia fluida γi criptand din nou blocul de text criptat obtinutanterior:

γi = eK(βi−1), (i ≥ 1)

. Ca si la modul OFB, ın etapa a doua avem

βi = αi ⊕ γi, (i ≥ 1)

De remarcat ca functia de criptare eK este folosita aici atat la procesul de criptarecat si la cel de decriptare.

β1

� ��eKV I = β0

α1

eK � ��β2

α2

- -?

?-

6- -

?

?-

6-++

Criptare

. . .

α1

� ��eKV I = β0

β1

eK � ��′al2

β2

- -?

?

-

?- -?

?

-

?-++

Decriptare

. . .

Desi metoda prezentata a fost descrisa pentru blocuri de marime 64, modurile OFBsi CFB pot fi extinse la blocuri de k biti (1 ≤ k ≤ 64).

Page 227: Criptografie complet

8 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

Cele patru moduri de utilizare prezinta diverse avantaje si dezavantaje. Astfel, laECB si OFB, modificarea unui bloc de text clar αi provoaca modificarea unui singurbloc de text criptat, βi. In anumite situatii, acest fapt constituie un defect. Modul OFBeste utilizat adesea pentru transmisiile prin satelit.

In modurile CBC si CFB dimpotriva, modificarea unui bloc αi de text clar antreneazamodificari ın toate blocurile de texte criptate, ıncepand cu βi. De aceea, aceste modurisunt adaptate ın particular problemelor de autentificare a mesajelor (MAC - MessageAuthentication Code). Un MAC este adaugat la un text clar cu scopul de a-l convingepe Bob ca textul primit a fost scris de Alice si nu a fost alterat de Oscar. El garanteazaastfel integritatea (sau autenticitatea) mesajului, dar nu si confidentialitatea sa.

Sa descriem cum este utilizat modul CBC la constructia unui MAC. Se pleaca de lablocul initial V I ın care toti bitii sunt 0. Se construieste textul criptat β1, β2, . . . , βn

cu cheia K, ın modul CBC, iar MAC este blocul βn. Alice va transmite mesajulα1, α2, . . . , αn, asociat cu MAC-ul βn. Cand Bob primeste mesajul α1, α2, . . . , αn, elgenereaza β1, . . . , βn folosind cheia (secreta) K si verifica daca βn este identic cu mesajulMAC primit.

De remarcat ca Oscar nu poate construi un MAC deoarece nu cunoaste cheia Kutilizata de Alice si Bob; orice modificare a mesajelor clare este depistata astfel usor.

Se poate realiza si o combinare a integritatii cu confidentialitatea, ın felul urmator:Alice utilizeaza cheia K1 pentru a calcula un MAC bazat pe α1, . . . , αn; fie αn+1 acestMAC. Apoi, ea cripteaza mesajul α1, . . . , αn+1 ın β1, . . . , βn+1 folosind o a doua cheieK2. Cand Bob primeste mesajul, el decripteaza ın prima faza (cu cheia K2), apoi verificacu cheia K1 daca αn+1 este MAC-ul lui α1, . . . , αn.

Sau – ca alta varianta – Alice poate utiliza K1 pentru criptarea mesajului α1, . . . , αn;apoi, pentru β1, . . . , βn determina MAC-ul βn+1 folosind cheia K2. Bob va face ıntai ver-ificarea 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 sistemderivat din DES, propus de Walter Tuchman (seful echipei IBM care a construit DES).Numele oficial este FIPS Pub 46− 3.

Formal, 3DES este definit prin formula

c = DESk3(DES−1k2

(DESk1(m))).

unde:m este un bloc de text clar (64 biti),

Page 228: Criptografie complet

5.5. SISTEME DE CRIPTARE INRUDITE CU DES 9

e este blocul de text criptat rezultat,

k1, k2, k3 sunt chei DES (de 56 biti),

DESk: criptarea DES cu cheia k,

DES−1k : decriptarea DES cu cheia k.

Introducerea la pasul 2 a decriptarii nu afecteaza securitatea algoritmului. Avantajulconsta ın utilizarea pentru 3DES a unei implementari de DES (astfel, cele doua sistemepot inter-opera).

Uneori – dar destul de rar – se foloseste pentru Triplu DES o criptare ın lant de treicriptari DES (numita si DES − eee):

c = DESk3(DESk2(DESk1(m))).

Utilizarea a trei pasi (ede sau eee) este esentiala pentru protejarea contra unui atac detipul meet-in-the-middle. In cazul unei duble criptari, acest atac este destul de eficient.

Intr-adevar, sa consideram un sistem de criptare bloc unde marimea cheii este n. Ocriptare dubla cu doua chei diferite va folosi de fapt o cheie de lungime 2n. Pentru untext clar dat m, sa presupunem ca putem stoca eK(m), pentru toate cheile K posibile.

Fie x un text criptat dupa formula x = ek2(ek1(m)), unde cheile k1 si k2 sunt secrete.Pentru fiecare cheie p exista o cheie unica q astfel ca dp(x) = eq(m). In particular existaexact 2n chei posibile determinate de perechea (m,x), chei care pot fi gasite ın aproximativO(2n) pasi.

Daca numarul cheilor care pot fi stocate este de ordinul 2p < 2n, algoritmul poate fimodificat pentru a afla toate cheile posibile ın circa O(22n−p) pasi.

Observatia 5.2 Pentru oricare din situatiilek1 = k2, k2 = k3, k1 = k2 = k3,

DES − ede se reduce la un simplu DES, lucru utilizat frecvent pentru a verificacompatibilitatea.

Cheia pentru Triplu DES are 3× 56 = 168 biti, la care se adauga 3× 8 = 24 biti deparitate; ın total sunt 192 biti.

O varianta, numita ”3DES cu doua chei” foloseste k1 = k3; aici marimea de stocarea cheii va fi de numai 128 biti (din care 16 biti de paritate). Acest mod este ınsa sensibilla anumite atacuri cu text clar ales, propuse de Merkle si Hellman (1981) si – mai tarziu– de Van Oorschot si Wiener (1991).

Sistemul de criptare 3DES nu este ınca spart, dar utilizarea sa este ıngreunata dincauza vitezei mici de criptare. Totusi multe sisteme continua sa foloseasca 3DES; caexemple mai recente sunt cardurile bancare (Mastercard si partial – Visa) care din 2002sunt configurate pe baza acestui sistem de criptare. De asemenea, sistemul de telefoniemobila Zapp are ca sistem de criptare 3DES.

Page 229: Criptografie complet

10 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

5.5.2 DES −X

DES − X (sau – mai simplu – DESX) este o varianta a sistemului de criptare DES,dezvoltata pentru a rezista mai bine unui atac prin forta bruta.

Dupa cum am vazut, sistemul DES opereaza cu o cheie de 56 biti; deci sunt numai256 chei posibile, unele din acestea fiind chei slabe 1 Pentru a evita un atac direct, in mai1984 Rivest propune cresterea marimii cheii K fara a modifica substantıal algoritmul.

DES−X foloseste doua chei suplimentare K1, K2 de cate 64 biti si efectueaza criptareaunui bloc de text clar x dupa formula

DESXK,K1,K2(x) = K2 ⊕DESK(x⊕K1)

Marimea cheii creste deci la 56 + 2 ∗ 64 = 184 biti.

5.5.3 IDEA

Prima aparitie a sistemului IDEA are loc ın 1990, sub denumirea PES (Proposed En-cryption Standard). Deoarece ın acelasi an, Biham si Shamir publica sistemul de atacal DES-ului prin criptanaliza diferentiala, ın 1991 autorii (Xuejia Lai si James Massey)modifica sistemul de criptare pentru a rezista acestui gen de atac. Noul sistem este numitIPES (Improved Proposed Encryption Standard), nume care ın 1992 se schimba ın IDEA(International Data Encryption Standard Algorithm).

In opinia lui Bruce Schneider, ın 1996 IDEA constituia cel mai sigur sistem de criptareutilizabil fara restrictii. 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 careopereaza cu blocuri de texte clare de 64 biti, folosind o cheie de 128 biti.

Textul clar de 64 biti este despartit ın 4 sublocuri X1, X2, X3, X4, de cate 16 bitifiecare. Aceste patru componente formeaza intrarea la prima runda a algoritmului. Intotal sunt 8 runde, care folosesc operatiile de adunare, ınmultire (modulo 216) si XOR;toate pe 16 biti. De asemenea sunt implicate si 16 subchei a cate 16 biti fiecare. Intrerunde, subblocurile 2 si 3 sunt schimbate ıntre ele. Dupa runda 8, cele patru subblocurisunt combinate cu 4 subchei, formand iesirea.

O runda contine 14 operatii, anume:

1DES are 4 chei slabe K pentru care eK(eK(x)) = x. Mai exista 12 chei semi-slabe – asociate ınperechi (K1,K1) – pentru care eK1(eK2(m)) = m. Posibilitatea ca printr-o alegere aleatoare a cheii sase obtina o cheie slaba sau semi-slaba este deci 2−52. Multi utilizatori solicita un test pentru depistareachilor slabe, test care nu afecteaza semnificativ timpul de criptare.

Page 230: Criptografie complet

5.5. SISTEME DE CRIPTARE INRUDITE CU DES 11

1. Se ınmulteste X1 cu prima subcheie;2. Se aduna X2 cu a doua subcheie;3. Se aduna X3 cu a treia subcheie;4. Se ınmulteste X4 cu a patra subcheie;5. Ce s-a obtinut la pasii 1 si 3 se combina prin XOR;6. Ce s-a obtinut la pasii 2 si 4 se combina prin XOR;7. Se ınmulteste rezultatul pasului 5 cu subcheia 5;8. Se aduna rezultatele pasilor 6 si 7;9. Se ınmulteste rezultatul pasului 8 cu subcheia 6;10. Se aduna rezultatele pasilor 7 si 9;11. Ce s-a obtinut la pasii 1 si 9 se combina prin XOR;12. Ce s-a obtinut la pasii 3 si 9 se combina prin XOR;13. Ce s-a obtinut la pasii 2 si 10 se combina prin XOR;14. Ce s-a obtinut la pasii 4 si 10 se combina prin XOR.

Rezultatele pasilor 11, . . . , 14 formeaza iesirea dintr-o runda; cele patru subblocuri (dupace subblocurile doi si trei sunt interschimbate) formeaza intrarea ın runda urmatoare.

Dupa ultima runda, are loc o transformare finala:

1. Se ınmulteste X1 cu prima subcheie;2. Se aduna X2 cu a doua subcheie;3. Se aduna X3 cu a treia subcheie;4. Se ınmulteste X4 cu a patra subcheie.

Cela patru subblocuri obtinute ın final formeaza textul criptat.

Prelucrarea subcheilor se face dupa urmatorul algoritm:

1. Cheia de 128 biti este desfacuta ın 8 subchei a cate 16 biti fiecare;2. Primele 6 subchei sunt folosite la prima runda, iar urmatoarele doua, la rundaa doua;3. Cheia este rotita spre stanga cu 25 biti si se desface din nou ın 8 subchei, folositela rundele 2 si 3 (cate patru subchei);4. Se repeta pasul 3 cat timp este necesar.

Operatia de decriptare se realizeaza urmand aceeiasi pasi, cu singura diferenta ca subcheilese introduc ın ordine inversa.

Comparativ cu DES, IDEA prezinta unele avantaje. Astfel, implementarile realizatepermit o viteza dubla de criptare ın IDEA fata de DES.

Lungimea cheii (128) biti, asigura o securitate sporita la atacurile brute: pentru agasi cheia prin ıncercari, ar fi necesare cam 2128 teste; deci cu un chip care testeaza unmiliard de chei pe secunda, ar trebui cam 1013 ani – o perioada mai lunga decat varstaPamantului.

Page 231: Criptografie complet

12 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

Autorii au afirmat (fara sa demonstreze) ca IDEA rezista atacurilor prin criptanalizadiferentiala. 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 fi completarea algoritmului de generare a subcheilor prin operareafiecarei subchei generate printr-un XOR cu 0x0D, unde ”x” este o cifra hexazecimalaaleasa aleator.

5.5.4 NEW DES

NEWDES a fost creat ın 1985 de Robert Scott, ca un posibil ınlocuitor al sistemuluiDES. Algoritmul nu este o varianta a DES-ului (cum s-ar putea ıntelege din numelesau, ales destul de nefericit). El opereaza cu texte clare grupate ın blocuri de 64 biti, darcheia are lungimea 120 biti. Ca o simplificare, aici nu vom avea permutare initiala si nicifinala.

Blocul unui text clar este spart ın 8 subblocuri de cate 8 biti: B0, B1, . . . , B7. Acestesubblocuri trec prin 17 runde, fiecare runda avand 8 pasi.

Cheia este ımpartita ın 15 subchei K0, K1, . . . , K14. Procedeul de criptare este descrisdestul de clar de schema urmatoare:

f

f

f

f

f

f

f

f jjj j

jjj j

jjj j

jjj j�

�?

�?

�?

�?

-

-

-

--

-?

-

-?

- -

-?

- -

-?

- -

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

B0 B1 B2 B3 B4 B5 B6 B7

K0

K1

K2

K3

K4

K5

K6

Runda 1

Runda 2

Rundele 3− 15

Page 232: Criptografie complet

5.6. EXERCITII 13

f

f

f

f

f

f

f

f

jj

jj

jj

jjj

jj

jj

jj

j-

-?

- -6666

-

-?

- -

-

-?

- -

-

-?

- -

�?

��

�?

��

�?

��

�?

��+

+

+

+

+

+

+

+ +

+

+

+

+

+

+

+

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

K8

K9

K10

B7B6B5B4B3B2B1B0

K14

K13

K12

K11

Runda 16

Runda 17

5.6 Exercitii

5.1 Sa se arate ca procesul de decriptare folosind DES se realizeaza folosind tot sistemulde 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(i1i2 . . . in) = inin−1 . . . i1, sa se arate ca β′ = c(β).

5.3 O modalitate de a ıntari sistemul de criptare DES consta ın dubla-rea criptarii:fiind date doua chei K, K ′, se defineste β = eK2(eK1(α)). Daca eK2 = dK1, cheile K1

si K2 se numesc duale (si atunci β = α). O cheie este auto-duala daca este propria saduala.

1. Sa se arate ca daca C0 are toti bitii identici si la fel D0, 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 C0 = 0101 . . . 01 sau C0 = 1010 . . . 10, atunci

Ci XOR C17−i = 1 . . . 1; Di XOR D17−i = 1 . . . 1 (1 ≤ i ≤ 16).

4. Sa se arate ca urmatoarele perechi de chei sunt duale:

E001E001F101F101, 01E001E001F101F1;FE1FFE1FFE0EFE0E, 1FFE1FFE0EFE0EFE;E01FE01FFF10FF10, 1FE01FE00EF10EF1.

Page 233: Criptografie complet

14 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES

5.4 Se poate defini un cod de autentificare al mesajului (MAC) utilizand un mod CFBsau CBC. Fiind data o secventa de blocuri α1, α2, . . . , αm de texte clare, de defineste val-oarea initiala IV = α1. Criptarea lui α2, . . . , αn cu cheia K ın modul CFB da β1, . . . , βn−1

(sunt numai n − 1 blocuri de text criptat). Se defineste MAC ca fiind eK(βn−1). Sa searate ca el coincide cu rezultatul MAC dat ın prelegere, cu modul CBC.

5.5 Daca o secventa de texte clare α1, α2, . . . , αn produce prin criptare β1, β2, . . . , βn, iarblocul βi este transmis gresit (apar erori de canal), sa se arate ca numarul de blocuri carevor fi decriptate gresit este 1 ın modul ECB sau OFB si 2 ın modul CBC sau CFB.

Page 234: Criptografie complet

Prelegerea 6

Modalitati de atac asupra DES

In aceasta prelegere trecem ın revista principalele modalitati de criptanaliza dezvoltatecu scopul de a sparge sistemul DES. Ele si-au largit ulterior aria de aplicabilitate, fiindconsiderate astazi mijloace de atac standard, carora trebuie sa le reziste orice sistem noude criptare, pentru a putea fi luat ın considerare.

6.1 Compromisul spatiu - timp al unui atac

Vom studia aici un compromis ıntre spatiu si timp ıntr-un atac cu text clar ales. AiciOscar va dispune de o pereche (α, β) cu β = eK(α), si cauta sa determine cheia K.

Nu vom folosi o structura particulara de implementare a sistemului DES; stim numaica textele clare si cele criptate sunt de 64 biti, iar cheia are 56 biti.

O cautare exhaustiva consta ın a ıncerca toate cele 256 chei posibile. Aceasta operatienu necesita memorie, dar sunt necesare ın medie 255 chei pentru a o gasi pe cea buna. Sau,fiind dat un text clar α, Oscar poate forma anterior un tabel cu 256 perechi (βk, K), astfelca βK = eK(α), trierea urmand a fi facuta dupa βK . Cand Oscar obtine textul criptat βdin textul clar α, el va cauta ın tabela si va afla imediat cheia K. Astfel, aflarea cheii vanecesita un timp de calcul neglijabil (complexitate logaritmica), dar un spatiu de memoriegigantic si un timp de precalcul important. Aceasta varianta nu aduce nici un avantajdin punct de vedere al timpului total, pentru aflarea unei singure chei. Avantajul apareatunci cand este necesara cautarea mai multor chei, deoarece atunci tabela precalculataa fost construita o singura data.

Compromisul spatiu - timp permite obtinerea unui timp de calcul (precalculul nu seinclude) inferior celui unei cautari exhaustive, cu un spatiu de memorie inferior celuinecesar retinerii tuturor cheilor. Algoritmul foloseste o functie de reducere R, care reduceo secventa de 64 biti la una de 56 biti (de exemplu, R poate sterge pur si simplu 8 bitidin secventa initiala).

Fie α un text clar de 64 biti; se defineste g(K0) = R(eK0(α)) pentru orice secventa K0

1

Page 235: Criptografie complet

2 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

de 56 biti (rezultatul g(K0) este de asemenea de lungime 56).Algoritmul mai foloseste doi parametri ıntregi pozitivi m, t. In faza de precalcul, Oscar

defineste m secvente arbitrare de 56 biti fiecare, notate X(i, 0), 1 ≤ i ≤ m. Apoi, folosindrelatia de recurenta

X(i, j) = g(X(i, j − 1)), 1 ≤ i ≤ m, 1 ≤ j ≤ t

Oscar determina valorile X(i, j), 1 ≤ j ≤ t, formand cu ele o matrice Xm′timest. Dinaceste 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 obtine textul criptat β al textului clar α ales de el. Elva cauta cheia K ın cele t coloane ale matricii X, consultand tabloul T . Sa presupunemK = X(i, t− j) pentru un j (1 ≤ j ≤ t) dat (K este ın una din cele t coloane ale lui X).Vom avea gj(K) = X(i, t), si

gj(K) = gj−1(g(K)) = gj−1(R(eK(α))) = gj−1(R(β)).

Sa calculam sirul βj (1 ≤ j ≤ t) definit de relatia de recurenta

βj =

{R(β) daca j = 1g(βj−1) daca 2 ≤ j ≤ t

Daca K = X(i, t−j), vom avea βj = X(i, t). De remarcat ca reciproca nu este adevarata:nu este suficient ca βj = X(i, t) pentru a avea K = X(i, t−j), deoarece functia de reducereR nu este injectiva (R reduce un spatiu de 264 ın unul de 256 valori, deci fiecare valoareprovine ın general din 28 = 256 valori). Trebuie deci verificat ca β = eX(i,t−j)(α) pentrua decide ca X(i, t− j) este ıntr-adevar cheia. Valoarea X(i, t− j) nu este disponibila ınmemorie, 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) then2.1.1. calculeaza X(i, t− j) = gt−j(X(i, 0))2.1.2. if β = eX(i,t−j)(α) then K ← X(i, t− j), STOP

2.2. βj+1 ← g(βj)

Analizand probabilitatea de succes a algoritmului, se poate arata ca daca mt2 ≈ N =256, atunci probabilitatea ca sa avem cheia K ın cele t coloane ale matricii X este de circa0, 8mt/N . Coeficientul 0, 8 provine din faptul ca valorile X(i, t) pot sa nu fie distincte. Osugestie este de a alege m ≈ t ≈ N1/3 si de a construi N1/3 tabele, fiecare cu alta functiede reducere R. Astfel, spatiul de memorie necesar este de 112 ·N2/3 biti (trebuie pastrati2N2/3 valori de 56 biti). Timpul de precalcul este liniar O(N).

Page 236: Criptografie complet

6.2. ATACUL MEET-IN-THE-MIDDLE 3

Timpul de calcul al atacului este mai dificil de evaluat. De remarcat ca pasul 2.1poate fi implementat ın cel mai rau caz ıntr-un timp O(log m), utilizand arbori binari decautare. Daca acest pas esueaza (deci nu se gaseste nici o valoare), timpul de calcul esteO(N2/3). Ceilalti 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 ideeaunei duble criptari cu doua chei diferite, conform schemei

e e- - -? ?

m x y

K1 K2

Lema 6.1 Pentru un sistem de criptare bloc, o dubla criptare poate fi atacata folosindO(2n) operatii si O(2n) spatiu de memorie, unde n este lungimea cheii.

Demonstratie: Fie (m, y) o pereche (text clar, text criptat) obtinuta pe baza schemei demai sus.

1. Pentru fiecare din cele 2n chei posibile se calculeaza xi = eKi(m);

2. Se stocheaza (xi, Ki) sortate (sau indexate) dupa xi.

3. Pentru fiecare din cele 2n chei posibile:

(a) Se calculeaza xj = dKj(y);

(b) Se cauta in lista creata la pasul anterior o pereche (xi, Ki) cu xi = xj;

4. O pereche de chei posibile este (Ki, Kj);

(deoarece eKi(m) = dKj

(y), deci eKj(eKi

(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 deordin 2112 si un spatiu neglijabil. Daca se foloseste un atac meet-in-the-middle, timpul vafi 256 iar spatiul 256. Strategii complementare de genul compromisului spatiu - timp potduce la variante de genul: 2p spatiu, 2q timp, unde p + q = 112 ([1]).

Vom mai ıntalni frecvent acest atac la protocoalele de stabilire a cheilor de sesiune.

Page 237: Criptografie complet

4 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

6.3 Criptanaliza diferentiala

Unul din atacurile cele mai cunoscute ale DES-ului este criptanaliza diferentiala, intro-dusa de Biham si Shamir ın 1991. Este un atac cu text clar cunoscut. Cu toate ca nuda o modalitate practica de spargere a functiei DES ın 16 tururi, ea furnizeaza atacurieficace pentru variantele de DES cu un numar redus de runde. De exemplu, un DES cu8 runde poate fi spart ın cateva minute cu un PC obisnuit.

Intr-un astfel de atac se ignora permutarea initiala IP si inversa sa (ele nu joaca niciun rol ın criptanaliza). Ne vom margini la un DES restrans pe n (n ≤ 16) runde. Decitextul clar este L0R0 si LnRn textul criptat (vom ignora de asemenea inversarea finaladintre Ln si Rn).

Criptanaliza diferentiala considera doua texte clare L0R0, L∗0R

∗0 si textele criptate

corespunzatoare LnRn respectiv L∗nR

∗n. Ea va efectua studii asupra mesajelor L0

′R0′ =

L0R0 ⊕ L∗0R

∗0 si Ln

′Rn′ = LnRn ⊕ L∗

nR∗n.

Definitia 6.1 Fie Sj (1 ≤ j ≤ 8) o S - cutie din sistemul DES. Pentru orice pereche(Bj, B

∗j ) de siruri de 6 biti, vom defini XOR-ul de intrare pentru Sj prin Bj

′ = Bj ⊕B∗j ,

iar XOR-ul de iesire prin Sj(Bj)⊕ Sj(B∗j ).

De remarcat ca un XOR de intrare este o secventa de 6 biti, iar un XOR de iesire esteo secventa de 4 biti.

Definitia 6.2 Pentru orice Bj′ ∈ Z6

2 se noteaza ∆(Bj′) multimea perechilor (Bj, B

∗j ) care

prin XOR dau B′j.

Observatia 6.1

• O multime ∆(Bj′) contine 26 = 64 elemente;

• ∆(Bj′) = {(Bj, Bj ⊕Bj

′)| Bj ∈ Z62}.

Pentru fiecare pereche din ∆(Bj′) vom calcula XOR-ul de iesire al lui Sj si construim

o tabela de distributii ale valorilor obtinute (sunt 64 iesiri pe un spatiu de 24 = 16 valoriposibile). Pe aceasta tabela se va baza atacul de criptanaliza diferentiala.

Exemplul 6.2 Sa consideram prima S - cutie S1 si XOR-ul de intrare 110100. Vomavea:

∆(110100) = {(000000, 110100), (000001, 110101), . . . , (111111, 001011)}.

Pentru fiecare pereche din ∆(110100) vom calcula XOR-ul de iesire al lui S1. De exemplu,S1(000000) = E16 = 1110, S1(110100) = 916 = 1001 deci XOR-ul de iesire S1 al perechii(000000, 110100) este 0111.

Efectuand acest calcul pentru toate cele 64 perechi din ∆(110100), vom obtine distribu-tia urmatoare a XOR-urilor de iesire pentru S1:

Page 238: Criptografie complet

6.3. CRIPTANALIZA DIFERENTIALA 5

0000 0001 0010 0011 0100 0101 0110 01110 8 16 6 2 0 0 12

1000 1001 1010 1011 1100 1101 1110 11116 0 0 0 0 8 0 6

In Exemplul 6.2 au aparut numai 8 din cele 16 valori de iesire posibile. In general, dacase fixeaza o S-cutie Sj si un XOR de intrare diferit de 000000, se constata ca vor aparenumai 75− 80 % din valorile posibile de iesire.

Definitia 6.3 Pentru 1 ≤ j ≤ 8 si secventele Bj′, Cj

′ de 6 respectiv 4 biti, definim

INj(Bj′, Cj

′) = {Bj ∈ Z62 | Sj(Bj)⊕ Sj(Bj ⊕Bj

′) = Cj′,

Nj(Bj′, Cj

′) = card(INj(Bj′, Cj

′)).

Distributia data ın Exemplul 6.2 da valorile N1(110100, C1′), C1

′ ∈ Z42 . Toate aceste

valori se gasesc ın Tabelul urmator:

XOR de iesire intrari posibile00000001 000011, 001111, 011110, 011111, 101010, 101011, 110111, 1110110010 000100, 000101, 001110, 010001, 010010, 010100, 011010, 011011

100000, 100101, 010110, 101110, 101111, 110000, 110001, 1110100011 000001, 000010, 010101, 100001, 110101, 1101100100 010011, 100111010101100111 000000, 001000, 001101, 010111, 011000, 011101, 100011, 101001

101100, 110100, 111001, 1111001000 001001, 001100, 011001, 101101, 111000, 11110110011010101111001101 000110, 010000, 010110, 011100, 100010, 100100, 101000, 11001011101111 000111, 001010, 001011, 110011, 111110, 111111

Pentru fiecare din cele 8 S-cutii exista 64 XOR-uri de intrare posibile; deci ın total vor fi512 date de distribuit, lucru usor de realizat cu un calculator.

Reamintim ca intrarea ıntr-o S-cutie la turul i este B = E⊕J , unde E = E(Ri−1) esterezultatul expandarii lui Ri−1, iar J = Ki este un subsir reordonat al cheii K. XOR-ulde intrare (al celor 8 cutii) este deci

B ⊕B∗ = (E ⊕ J)⊕ (E∗ ⊕ J) = E ⊕ E∗.

Page 239: Criptografie complet

6 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

De remarcat ca XOR-urile de intrare nu depind de sub-cheia J , pe cand XOR-urile deiesire depind.

Sa detaliem pe grupuri de cate 6 biti, cuvintele cu care se lucreaza;

B = B1B2B3B4B5B6B7B8, E = E1E2E3E4E5E6E7E8, J = J1J2J3J4J5J6J7J8

In mod similar se scriu B∗ si E∗. Sa presupunem acum ca se stiu valorile Ej si E∗j pentru

un j (1 ≤ j ≤ 8) dat, precum si valoarea XOR de iesire Cj′ = Sj(Bj)⊕ Sj(B

∗j ) a lui Sj.

Vom aveaEj ⊕ Jj ∈ INj(Ej

′, Cj′)

unde Ej′ = Ej ⊕ E∗

j .Sa presupunem ca se defineste multimea testj astfel:

testj(Ej, E∗j , Cj

′) = {Bj ⊕ Ej| Bj ∈ INj(Ej′, Cj

′)}

(s-au luat toate XOR-urile lui Ej cu elemente din INj(Ej′, Cj

′)). Din aceste consideratiirezulta imediat teorema:

Teorema 6.1 Daca Ej, E∗j sunt subsecvente construite pentru intrarea ın S-cutia Sj, iar

Cj′ este XOR-ul de iesire al lui Sj, atunci bitii cheii Jj apar ın multimea testj(Ej, E

∗j , Cj

′).

Cum se poate remarca, exista exact Nj(Ej′, Cj

′) secvente de 6 biti ın testj(Ej, E∗j , Cj

′);valoarea corecta Jj este una din acestea.

Exemplul 6.3 Sa consideram E1 = 000001, E∗1 = 110101, C1

′ = 1101. DeoareceN1(110100, 1101) = {000110, 010000, 010110, 011100, 100010, 101000, 110010} are 8 ele-mente, exista 8 secvente posibile pentru J1, cumulate ın test1(000001, 110101, 1101) ={000111, 010001, 010111, 011101, 100011, 100101, 101001, 110011}.

Daca se ia un alt triplet (E1, E∗1 , C1

′), vom obtine alt test1 cu valori pentru J1, decivaloarea corecta se va gasi ın intersectia lor.

6.3.1 Atac pe trei runde

Sa vedem cum se aplica aceste idei pentru un DES construit pe 3 runde. Vom ıncepe cuo pereche de texte clare L0R0 si L∗

0R∗0, criptate ın L3R3 respectiv L∗

3R∗3. Vom avea

R3 = L2 ⊕ f(R2, K3) = R1 ⊕ f(R2, K3) = L0 ⊕ f(R0, K1)⊕ f(R2, K3).Constructia pentru R∗

3 este similara. DeciR3

′ = L0′ ⊕ f(R0, K1)⊕ f(R∗

0, K1)⊕ f(R2, K3)⊕ f(R∗2, K3).

Sa presupunem ca s-a ales R0 = R∗0, deci R0

′ = 00 . . . 0. Atunci f(R0, K1) = f(R∗0, K1)

si deci R3′ = L0

′ ⊕ f(R2, K3)⊕ f(R∗2, K3).

R3′ se poate calcula pe baza textelor criptate, iar L0

′ – pe baza textelor clare; deci sepoate determina f(R2, K3)⊕ f(R∗

2, K3) = R3′ ⊕ L0

′.

Page 240: Criptografie complet

6.3. CRIPTANALIZA DIFERENTIALA 7

Avem f(R2, K3) = P (C), f(R∗2, K3) = P (C∗) unde C respectiv C∗ sunt iesirile core-

spunzatoare din cele 8 S-cutii (reamintim, P este o permutare fixata din descrierea sis-temului DES). Deci P (C)⊕ P (C∗) = R3

′ ⊕ L0, de unde

C ′ = C ⊕ C∗ = P−1(R3′ ⊕ L0

′)

Acesta este XOR-ul de iesire din cele opt S-cutii dupa a treia runda.R2 = L3 si R∗

2 = L∗3 sunt cunoscute (componente ale textelor criptate); deci se poate

calculaE = E(L3), E∗ = E(L∗

3)

folosind functia de expansiune E. Aceste valori sunt intrarile ın S-cutii la runda a treia.Se cunosc deci E, E∗, C ′ la a treia runda si se poate trece – asa cum am vazut – laconstructia multimilor test1, test2, . . . , test8 de valori posibile pentru J1, J2, . . . , J8.

Un algoritm pentru aceasta metoda este formalizat mai jos. Atacul foloseste mai multetriplete E, E∗, C ′. Se utilizeaza opt tabele de valori si se determina astfel cei 48 biti aisubcheii K3 de la a treia runda. Cheia de 56 biti se calculeaza apoi printr-o cautareexhaustiva a celor 28 = 256 posibilitati a celor 8 biti necunoscuti.

Intrare: L0R0, L∗0R

∗0, L3R3, L∗

3R∗3 cu R0 = R∗

0.1. C ′ ← P−1(R3

′ ⊕ L0′)

2. E ← E(L3), E∗ ← E(L∗3)

3. for j := 1 to 8 do testj(Ej, E∗j , Cj).

6.3.2 Atacul pe sase runde

Sa extindem ideile precedente ın cazul unui atac probabilist asupra unui sistem de criptareDES de 6 runde. Ideea este de a alege o pereche de texte clare cu un XOR bine ales si destudia comportamentul probabilist al evolutiei acestui XOR de-alungul ıntregii operatiide criptare. Pentru aceasta este necesar sa introducem o noua notiune.

Definitia 6.4 Fie n ≥ 1 un numar ıntreg. O caracteristica de n runde este un sir deforma

L0′, R0

′, L1′, R1

′, p1, . . . , Ln′, Rn

′, pn

care verifica conditiile:

1. Li′ = Ri−1

′ pentru 1 ≤ i ≤ n;

2. Pentru 1 ≤ i ≤ n se aleg Li−1Ri−1 si L∗i−1R

∗i−1 astfel ca Li−1 ⊕ L∗

i−1 = Li−1′ si

Ri−1⊕R∗i−1 = Ri−1

′; daca LiRi si L∗i R

∗i sunt calculate la a i-a runda DES cunoscand

Li−1′Ri−1

′, probabilitatea de a obtine relatiile Li ⊕ L∗i = Li

′, Ri ⊕ R∗i = Ri

′ este pi

(probabilitatea se extinde pentru toate subcheile posibile J1, J2, . . . , J8).

Probabilitatea caracteristicii este produsul p = p1 · p2 · . . . · pn.

Page 241: Criptografie complet

8 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

Observatia 6.2

• Daca L0R0 si L∗0R

∗0 sunt alese astfel ca L0 ⊕ L∗

0 = L0′, R0 ⊕ R∗

0 = R0′, nu se

poate afirma ca probabilitatea ca pentru orice i = 1, 2, . . . , n sa avem Li ⊕ L∗i =

Li′, Ri ⊕ R∗

i = Ri′ este p1 · p2 · . . . · pn. Intr-adevar, procesul de diversificare

a cheilor nu genereaza distributia independenta a sub-cheilor K1, . . . , Kn. Totusi,probabilitatea p1 · p2 · . . . · pn furnizeaza o estimare destul de precisa a probabilitatiireale.

• Probabilitatile pi sunt inserate ın caracteristica pentru o pereche de texte clare oare-care, avand un XOR dat, pentru o distibutie de 48 biti ai sub-cheii. Criptanalistulcauta o cheie fixata necunoscuta. De aceea el va utiliza texte clare aleatoare (cuXOR-ul cerut), sperand ca distributia obtinuta de XOR-urile de la a n-a runda sacoincida cu cea descrisa de o cheie aleatoare, deci cu p1, p2, . . . , pn.

Exemplul 6.4 O caracteristica pe o runda – care forma baza atacului pe 3 runde – este(ın notatie hexazecimala):

L0′ = oarecare R0

′ = 0000000016

L1′ = 0000000016 R1

′ = L0′ p = 1

O alta caracteristica poate fi de exemplu:

L0′ = 0000000016 R0

′ = 6000000016

L1′ = 6000000016 R1

′ = 0080820016 p = 16/64

Intr-adevar, ın calculul lui f(R0, K1) si f(R∗0, K1), functia de expansiune opereaza ıntai

asupra lui R0 si R∗0; XOR-ul rezultatelor este 001100 . . . 0. Deci XOR-ul de intrare al lui

S1 este 001100, iar pentru celelalte S - cutii este 000000. La iesire XOR - ul este 0000la aceste cutii si 1110 pentru S1; deoarece N(001100, 1110) = 14 (se poate verifica), vomavea probabilitatea 14/64.

Se obtine deci C ′ = 11100000000000000000000000000000 cu probabilitate 14/64.Aplicand P , vom avea

P (C)⊕ P (C∗) = 00000000 10000000 10000010 00000000,ceea ce da 00808200 ın hexazecimal. Dupa calculul XOR-ului cu L0

′ se obtine valoarealui R1

′ cu probabilitate 14/64. Vom avea bineınteles L1′ = R0

′.

Atacul asupra DES-ului ın 6 runde este bazat pe caracteristica celui pe 3 runde ın modulurmator:

L0′ = 4008000016 R0

′ = 0400000016

L1′ = 0400000016 R1

′ = 0000000016 p = 1/4L2

′ = 0000000016 R2′ = 0400000016 p = 1

L3′ = 0400000016 R3

′ = 4008000016 p = 1/4

Page 242: Criptografie complet

6.3. CRIPTANALIZA DIFERENTIALA 9

Se ıncepe cu o pereche de texte clare (L0R0, L∗0R

∗0) cu proprietatea L0

′ = 4008000016,R0

′ = 0400000016 si cu perechea de texte criptate corespunzatoare (L6R6, L∗6R

∗6). Vom

aveaR6 = L5 ⊕ f(R5, K6) = R4 ⊕ f(R5, K6) = L3 ⊕ f(R3, K4)⊕ f(R5, K6).In mod similar se exprima R∗

6. AtunciR6

′ = L3′ ⊕ f(R3, K4)⊕ f(R∗

3, K4)⊕ f(R5, K6)⊕ f(R∗5, K6) (∗)

R6′ este cunoscut. Dupa caracteristica, avem L3

′ = 0400000016 si R3′ = 4008000016

cu probabilitate 1/16. Daca s-a obtinut ıntr-adevar asa, se poate calcula XOR - ul deintrare al S - cutiilor la a patra runda, dupa expansiune:

00100000 00000000 01010000 0000.XOR - urile de intrare pentru S2, S5, S6, S7, S8 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 relatiei (∗). Deci se poatecalcula

C1′C2

′C3′C4

′C5′C6

′C7′C8

′ = P−1(R6′ ⊕ 0400000016)

unde fiecare Ci′ are lungimea 4. C2

′, C5′, C6

′, C7′ si C8

′ sunt respectiv XOR - urile deiesire ale cutiilor S2, S5, S6, S7, S8 cu probabilitate 1/16. Intrarile E2, E5, E6, E7, E8 siE∗

2 , E∗5 , E

∗6 , E

∗7 , E

∗8 ın aceste cutii se pot calcula cu relatiileE1E2E3E4E5E6E7E8 = E(R5) = E(L6)E∗

1E∗2E

∗3E

∗4E

∗5E

∗6E

∗7E

∗8 = E(R∗

5) = E(L∗6)

plecand de la textele criptate, conform algoritmului:

Intrare: L0R0, L∗0R

∗0, L6R6, L∗

6R∗6 cu L0

′ = 4008000016, R0′ = 0400000016.

1. C ′ ← P−1(R6′ ⊕ 4008000016)

2. E ← E(L6), E∗ ← E(L∗6)

3. for j = 2, 5, 6, 7, 8 do testj(Ej, E∗j , Cj

′)

Ar fi ideal de determinat cei 30 biti din J2, J5, J6, J7, J8 ca la atacul asupra DES -ului ın 3 runde. Problema este ca aici valorile XOR - ului de iesire la a 6 - a runda suntadevarate cu probabilitate 1/16. Deci ın circa 15/16 din cazuri se obtin valori aleatoarefara interes pentru criptanaliza, valori are trebuiesc eliminate. Ce este interesant estefaptul ca acest lucru este deseori posibil.

Definitia 6.5 Fie L0 ⊕ E∗0 = E0

′, R0 ⊕ R∗0 = R0

′. Spunem ca perechea de texte clare(L0R0, L

∗0R

∗0) este o pereche buna pentru caracteristica data, daca pentru orice i (1 ≤ i ≤

n) avem Li ⊕ L∗i = Li

′, Ri ⊕R∗i = Ri

′. Altfel, avem o perechea rea.

Strategiile de calcul pentru Ej, E∗j , Cj

′ si testj pentru j = 2, 5, 6, 7, 8 a fost descrisa ante-rior. Daca avem o pereche buna, valoarea ei apare ın testj. Pentru o pereche rea, valoarealui Cj

′ este incorecta si se poate presupune ca toate multimile testj au un continut aleator.O pereche rea se poate recunoaste astfel: daca pentru un j avem card(testj) = 0,

perechea este sigur rea. Fiind data o pereche rea, probabilitatea de a avea card(testj) = 0

Page 243: Criptografie complet

10 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

pentru un anumit j, este cam 1/5 (card(testj) = Nj(Ej′, Cj

′) si Nj(Ej′, Cj

′) = 0 ıntr-ocincime din cazuri). Probabilitatea ca cinci multimi testj sa fie nevide este 0, 85 ≈ 0, 33,deci probabilitatea ca cel putin un testj sa fie vid este 0, 67. Se pot elimina astfel cam 2/3din perechile rele prin acest test simplu, numit operatie de filtrare. Proportia perechilorrele care raman dupa filtrare este ce circa (15/16) · (1/3) = 5/16. Rezulta ca proportiaperechilor bune ramse dupa filtrare este de 1/6.

Exemplul 6.5 Sa presupunem ca dispunem de urmatoarele perechi:

text clar text criptat86FA1C2B1F51D3BE 1E23ED7F2F553971C6F21C2B1B51D3BE 296DE2B687AC6340

Se verifica imediat ca L0′ = 4008000016, R0

′ = 0400000016. Intrarile si iesirile din S -cutii la turul 6 se determina astfel:

j Ej E∗j C ′

j

2 111100 010010 11015 111101 111100 00016 011010 000101 00107 101111 010110 11008 111110 101100 1101

Cele cinci multimi testj vor fi atunci:

j testj2 14, 15, 26, 30, 32, 33, 48, 5256 7, 24, 36, 41, 54, 5978 34, 35, 48, 49

Deoarece test5 = test7 = ∅, perechea este rea si va fi eliminata prin operatia de filtrare.

Sa presupunem acum ca avem o pereche cu proprietatea testj 6= ∅ pentru j = 2, 5, 6, 7, 8,deci care va ramane dupa operatia de filtrare. Spunem ca secventa de 30 biti J2J5J6J7J8

este sugerata de pereche, daca ∀ j ∈ {2, 5, 6, 7, 8}, Jj ∈ testj. Numarul de secventesugerate este ∏

j∈{2,5,6,7}card(testj).

Adesea, numarul de lanturi sugerate este destul de mare (de ordinul miilor).

Page 244: Criptografie complet

6.4. CRIPTANALIZA LINIARA 11

Sa presupunem ca se construieste tabela tuturor secventelor sugerate de N perechiramase dupa filtrare. Pentru fiecare pereche buna, secventa corecta J2J5J6J7J8 este sug-erata; deci ea va fi sugerata de n/6 ori. O secventa incorecta va fi sugerata de un numaraleator de ori, deci adesea mai putin, comparabil cu numarul lanturilor (230).

Este extrem de dificil de pastrat – ca spatiu – tabela celor 230 numere; de aceea se vafolosi un algoritm care sa foloseasca un spatiu mai mic. Astfel, se codifica fiecare multimetestj ıntr-un vector Tj de lungime 64, ın care a i - a coordonata (0 ≤ i ≤ 63) este 1 dacasecventa de 6 biti care reprezinta pe i ın binar este ın testj, 0 ın caz contrar.

Pentru fiecare pereche numarul i (1 ≤ i ≤ N) ramasa, se construiesc vectorii T ij (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∑

i∈I

T ij

Daca perechea i este buna pentru orice i ∈ I, atunci I este admisibila. Deci, speram saavem o multime admisibila de marime aproximatic N/6, ceea ce sugereaza sigur o valoareunica de 30 biti pentru cheie. Multimile admisibile I pot fi generate cu un simplu algoritmrecursiv.

6.4 Criptanaliza liniara

Criptanaliza liniara este un atac cu text clar cunoscut care seamana destul de mult cucriptanaliza diferentiala; principala diferenta consta ın faptul ca aici comparatia se faceıntre bitii de intrare si cei de iesire ai aceluiasi mesaj, nu ıntre diferentele a doua mesajela intrare respectiv iesire.

Pe scurt, principiul este urmatorul ([2]): sa presupunem ca putem afla o relatie liniarastatistica ıntre o submultime de biti din textul clar si o submultime de biti de starecare preced imediat substitutiile din ultimul rund de criptare. Altfel spus, exista un setde biti al caror XOR se determina aproape determinist (de exemplu ia valoarea 1 cu oprobabilitate mult peste 1/2). Sa consideram acum ca Oscar detine un numar relativmare de perechi (text clar, text criptat) pentru care s-a folosit aceeasi cheie de criptareK. Pentru fiecare astfel de pereche se ıncearca decriptarea folosind toate cheile posibile laultimul rund de criptare. In acest calcul se determina valorile bitilor implicati ın relatialiniara presupusa, verificand veridicitatea ei. Daca relatia se verifica, se incrementeazaun contor corespunzator acestei chei. La sfarsitul procesului, cheia al carui contor este(mult) peste 50% din numarul perechilor verificate, va contine valorile bitilor determinatede relatia data.

Sa formalizam aceasta idee.Fie X1, X2, . . . variabile aleatoare independente care iau valori din multimea {0, 1} si

p1, p2, . . . ∈ [0, 1] numere reale definite prin

Pr[Xi = 0] = pi, i = 1, 2, . . .

Page 245: Criptografie complet

12 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

Evident,Pr[Xi = 1] = 1− pi, i = 1, 2 . . .

Daca i 6= j, independenta variabilelor Xi, Xj conduce la relatiile

Pr[Xi = 0, Xj = 0] = pipj, P r[Xi = 0, Xj = 1] = pi(1− pj),P r[Xi = 1, Xj = 0] = (1− pi)pj, P r[Xi = 1, Xj = 1] = (1− pi)(1− pj).

Fie acum variabila aleatoare discreta Xi ⊕Xj; se verifica usor faptul ca probabilitatea eide distributie este

Pr[Xi ⊕Xj = 0] = pipj + (1− pi)(1− pj)

Pr[Xi ⊕Xj = 1] = pi(1− pj) + (1− pi)pj

Pentru a simetriza formulele, introducem o noua variabila numita tendinta 1 definita

εi = pi −1

2, εi ∈

[−1

2,1

2

]Atunci

Pr[Xi = 0] =1

2+ εi, P r[Xi = 1] =

1

2− εi

Lema 6.2 Fie X1, X2, . . . Xn variabile aleatoare independente si pentru 1 ≤ i1 < i2 <. . . < ik ≤ n, fie εi1,i2,...ik tendinta variabilei aleatoare Xi1 ⊕Xi2 ⊕ . . .⊕Xik . Atunci

εi1,i2,...ik = 2k−1k∏

j=1

εij .

Demonstratie: Prin inductie dupa k. Pentru k = 1 egalitatea este banala. Pentru k = 2se verifica usor relatia εi1,i2 = 2εi1εi2 .

Presupunem egalitatea adevarata pentru k = p si sa o aratam pentru k = p + 1. Din

faptul ca tendinta lui Xi1 ⊕ . . .⊕Xip este 2p−1p∏

j=1

εij rezulta

Pr[Xi1 ⊕ . . .⊕Xip = 0] =1

2+ 2p−1

p∏j=1

εij si

Pr[Xi1 ⊕ . . .⊕Xip = 1] =1

2− 2p−1

p∏j=1

εij

De aici putem calculaPr[Xi1 ⊕ . . .⊕Xip ⊕Xip+1 = 0] =1

2+ 2p−1

p∏j=1

εij

(1

2+ εip+1

)+

1

2− 2p−1

p∏j=1

εij

(1

2− εip+1

)=

1

2+ 2p

p+1∏j=1

εij .

Corolarul 6.1 Fie εi1,i2,...,ik tendinta variabilei aleatoare Xi1⊕. . . Xik . Daca ∃j cu εij = 0atunci εi1,i2,...,ik = 0.

1bias ın engleza

Page 246: Criptografie complet

6.4. CRIPTANALIZA LINIARA 13

6.4.1 Aproximari liniare ale S-cutiilor

Fie S-cutia πS : {0, 1}m −→ {0, 1}n si X = (x1, x2, . . . , xm) un m-tuplu de intrare,ales arbitrar: matematic, aceasta ınseamna ca fiecare coordonata xi defineste o variabilaaleatoare Xi cu valori 0 sau 1, avand tendinta εi = 0. Cele m variabile aleatoare suntindependente.

Iesirea se poate reprezenta ca un n-tuplu Y = (y1, y2, . . . , yn) unde fiecare yi definesteo variabila aleatoare Yi de valori 0, 1. In general, aceste n variabile aleatoare sunt depen-dente de intrari sau ıntre ele. Are loc formula

Pr[X1 = x1, . . . , Xm = xm, Y1 = y1, . . . , Yn = yn] =

{0 daca (y1, . . . , yn) 6= πS(x1, . . . , xm)2−m daca (y1, . . . , yn) = πS(x1, . . . , xm)

Observatia 6.3 Ultima parte a relatiei se bazeaza pe faptul caPr[X1 = x1, . . . , Xm = xm] = 2−m si

Pr[Y1 = y1, . . . , Yn = yn|X1 = x1, . . . , Xm = xm] = 1 daca (y1, . . . , yn) = πS(x1, . . . , xm)

Cu aceasta formula se poate calcula tendinta unei variabile aleatoare de tipulXi1 ⊕ . . .⊕Xik ⊕ Yj1 ⊕ . . .⊕ Yjp .

Exemplul 6.6 Sa consideram o S-cutie πS : {0, 1}4 −→ {0, 1}4 definita

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 aleatoareX1, . . . , X4, Y1, . . . , Y4 care pot lua valorile reprezentate pe liniile tabelului de pe paginaurmatoare.

Sa consideram acum variabila aleatoare X1 ⊕ X4 ⊕ Y2. Probabilitatea ca ea sa iavaloarea 0 poate fi determinata numarand liniile din tabel unde X1 ⊕X4 ⊕ Y2 = 0 si apoiımpartind la 16 (numarul total de linii).

Se obtine Pr[X1 ⊕X4 ⊕ Y2 = 0] =1

2, de unde rezulta Pr[X1 ⊕X4 ⊕ Y2 = 1] =

1

2.

Tendinta acestei variabile aleatoare este deci 0.

Page 247: Criptografie complet

14 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

X1 X2 X3 X4 Y1 Y2 Y3 Y4

0 0 0 0 1 1 1 00 0 0 1 0 1 0 00 0 1 0 1 1 0 10 0 1 1 0 0 0 10 1 0 0 0 0 1 00 1 0 1 1 1 1 10 1 1 0 1 0 1 10 1 1 1 1 0 0 01 0 0 0 0 0 1 11 0 0 1 1 0 1 01 0 1 0 0 1 1 01 0 1 1 1 1 0 01 1 0 0 0 1 0 11 1 0 1 1 0 0 11 1 1 0 0 0 0 01 1 1 1 0 1 1 1

In general ın Exemplul 6.6 sunt 28 = 256 variabile aleatoare de acest gen. Pentrufiecare din ele se poate da o reprezentare uniforma de tipul:(

4⊕i=1

aiXi

)⊕(

4⊕i=1

biYi

)

unde ai, bi ∈ {0, 1}, (1 ≤ i ≤ 4). Vectorii binari (a1, a2, a3, a4) – numiti sume de intrare si(b1, b2, b3, b4) (sume de iesire) vor fi codificati prin cifre hexazecimale. Astfel, fiecare dincele 256 variabile aleatoare se va scrie ın mod unic ca o pereche de doua cifre hexazecimale.

Exemplul 6.7 Variabila X1 ⊕X4 ⊕ Y2 va avea suma de intrare (1, 0, 1, 0) care este 9 ınhexazecimal, iar suma de iesire este (0, 1, 0, 0), care este 4 ın hexazecimal. Deci perecheaatasata variabilei este (9, 4).

Pentru o variabila aleatoare de suma de intrare a = (a1, a2, a3, a4) si suma de iesireb = (b1, b2, b3, b4), fie NL(a, b) numarul octetilor binari (x1, x2, x3, x4, y1, y2, y3, y4) cu pro-prietatile

1. (y1, y2, y3, y4) = πS(x1, x2, x3, x4)

2.

(4⊕

i=1

aiXi

)⊕(

4⊕i=1

biYi

)= 0

Tendinta unei astfel de variabile aleatoare este

ε(a, b) =NL(a, b)− 8

16.

Page 248: Criptografie complet

6.5. EXERCITII 15

Exemplul 6.8 Variabila din Exemplul 6.7 are NL(9, 4) = 8, deci ε(9, 4) = 0. Se poatecosntrui o tabela cu toate valorile NL – numita ”tabela de aproximare liniara”:

a/b 0 1 2 3 4 5 6 7 8 9 A B C D E F0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 81 8 8 6 6 8 8 6 14 10 10 8 8 10 10 8 82 8 8 6 6 8 8 6 6 8 8 10 10 8 8 2 103 8 8 8 8 8 8 8 8 10 2 6 6 10 10 6 64 8 10 8 6 6 4 6 8 8 6 8 10 10 4 10 85 8 6 6 8 6 8 12 10 6 8 4 10 8 6 6 86 8 10 6 12 10 8 8 10 8 6 10 12 6 8 8 67 8 6 8 10 10 4 10 8 6 8 10 8 12 10 8 108 8 8 8 8 8 8 8 8 6 10 10 6 10 6 6 29 8 8 6 6 8 8 6 6 4 8 6 10 8 12 10 6A 8 12 6 10 4 8 10 6 10 10 8 8 10 10 8 8B 8 12 8 4 12 8 12 8 8 8 8 8 8 8 8 8C 8 6 12 6 6 8 10 8 10 8 10 12 9 10 8 6D 8 10 10 8 6 12 8 10 4 6 10 8 10 8 8 10E 8 10 10 8 6 4 8 10 6 8 8 6 4 10 6 8F 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 prezentatala ınceputul sectiunii.

6.5 Exercitii

6.1 Fie X1, X2, X3 variabile aleatoare independente cu valori ın {0, 1} de tendinte ε1, ε2

respectiv ε3. Demonstrati ca X1 ⊕ X2 si X2 ⊕ X3 sunt indepedente daca si numai dacaε1 = 0, ε3 = 0 sau ε2 = ±1/2.

6.2 Pentru fiecare din cele opt S-cutii DES calculati tendinta variabilei aleatoare X2 ⊕Y1 ⊕ Y2 ⊕ Y3 ⊕ Y4.

6.3 S-boxul DES S4 are cateva proprietati specifice:a) Aratati ca a doua linie din S4 poate fi obtinuta din prima linie folosind operatia

(y1, y2, y3, y4) −→ (y2, y1, y4, y3)⊕ (0, 1, 1, 0)

b) Aratati ca orice linie din S4 poate fi transformata ın orice alta linie printr-o operatiesimilara.

Page 249: Criptografie complet

16 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

6.4 Fie πS : {0, 1}m −→ {0, 1}n o S-cutie. Demonstrati ca:a) NL(0, 0) = 2m;b) NL(a, 0) = 2m − 1, ∀a ∈ [0, 2m − 1];

c) ∀b ∈ [0, 2n − 1],2m−1∑a=0

NL(a, b) = 22m−1 ± 2m−1; ???????????

d)2m−1∑a=0

2n−1∑b=0

NL(a, b) ∈ {2n+2m−1, 2n+2m−1 + 2n+m−1}.

6.5 O S-cutie πS : {0, 1}m −→ {0, 1}n este ”balansata” daca

|πs−1(y)| = 2n−m

pentru orice y ∈ {0, 1}n. Demonstrati urmatoarele afirmatii despre NL pentru o S-cutiebalansata:

a) NL(0, b) = 2m − 1, ∀b ∈ [0, 2n − 1];

b) ∀a ∈ [0, 2m − 1],2n−1∑b=0

NL(a, b) = 2m+n−1 − 2n−1 + i2n

unde i este un numar ıntreg din intervalul [0, 2m−n].

6.6 Fie S-cutia definita: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 0Determinati tabela ei de aproximatie liniara;

6.7 Fie un sistem de criptare P = C = K care asigura confidentialitate perfecta; deci,din eK(α) = eK1(α) rezulta K = K1. Notam P= Y = {β1, β2, . . . , βN}. Fie α un bloc detext clar fixat. Definim functia g : Y −→ Y prin g(β) = eβ(α). Definim un graf orientatΓ avand a noduri Y si ca arce (βi, g(βi)) (1 ≤ i ≤ N).

1. Aratati ca Γ este o reuniune de cicluri orientate disjuncte.

2. Fie T un parametru de timp fixat. Consideram o multime Z = {γ1, . . . , γm} ⊆ Y ,astfel ca pentru orice βi ∈ Y, βi este ıntr-un ciclu de lungime cel mult T , sauexista un element γj 6= βi astfel ca distanta de la βi la γj (ın Γ) este cel mult T .Demonstrati ca exista o astfel de multime cu card(Z) ≤ 2N/T (deci card(Z) estede complexitate O(N/T ).

3. Pentru fiecare γ − j ∈ Z, definim g−1(γj) ca fiind acel element βi astfel ca gT (β −i) = γj, unde gT este functia g aplicata de T ori. Cosntruiti tabela X a perechilor(γj, g

−1(γj)), ordonate dupa prima coordonata.

Un algoritm care gaseste K astfel ca β = eK(α) este urmatorul:

Page 250: Criptografie complet

6.5. EXERCITII 17

1. β0 ← β;2. f lag ← True;3. while g(β) 6= β0 do

3.1. if ∃ j β = γj and flag then3.1.1. β −→ g−1(γj)3.1.2. f lag −→ False

else3.1.3. β −→ g(β);

3.2. K = β.

Aratati ca el determina K ın maxim T etape (compromisul spatiu - timp este deciO(N)).

4. Dati un algoritm care construieste o multime Z ın timp O(NT ), fara a folosi tablouride marine N .

Page 251: Criptografie complet

18 PRELEGEREA 6. MODALITATI DE ATAC ASUPRA DES

Page 252: Criptografie complet

Bibliografie

[1] Menezes, A, Oorschot, P, Vanstome, S - Handbook of Applied cryptography

[2] Stinton, D - Cryptography, Theory and Practicce, Chapman & Hall/CRC, 2002

19

Page 253: Criptografie complet

Prelegerea 7

Sistemul de criptare AES

7.1 Istoric

La sfarsitul anilor ′90 se decide ınlocuirea sistemului de criptare DES. Motivele suntmultiple, dar mentionam numai doua:

• In iulie 1998 sistemul DES pe 56 biti este spart de catre organizatia ElectronicFrontier Foundation; s-a folosit un calculator construit special ın acest scop, iartimpul necesar spargerii a fost de 3 zile.

• In luna septembrie a aceluiasi an, administratia 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 biti.

In legatura cu aceste evenimente, pe 20 august 1998 NIST (National Institute of Stan-dards and Technology) anunta (ın cadrul unei conferinte speciale) un set de 15 algoritmicandidati sa ınlocuiasca DES1. Este ales si numele noului sistem de criptare: AES(Advanced Encryption Standard). Cei 15 algoritmi au fost trimisi de membri din co-munitatea criptografica mondiala. Criteriile stabilite de NIST pentru noul sistem aufost:

• Sa fie un sistem de criptare simetric pe blocuri de 128 biti.

• Sa accepte chei de lungime 128, 192 si 256 biti;

• Sa nu aiba chei slabe;

• Sa fie eficient atat pe platforme Intel Pentium Pro cat si pe alte platforme softwaresau hardware;

1Acestia sunt (ın ordine alfabetica) CAST − 256, CRY PTON,DEAL, DFC,E2, FROG, HPC,LOKI97,MAGENTA, MARS,RC6, Rijndael, SAFER+, Serpent, Twofish.

1

Page 254: Criptografie complet

2 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

• Sa poate fi implementat atat pe procesoare de 32 biti cat si pe smart- carduri(procesoare de 8 biti);

• Sa fie cat mai simplu.

• Sa fie mai rapid decat DES si sa ofere o securitate mai mare decat 3DES.

A doua conferinta AES are loc ın martie 1999; dupa analiza rezultatelor algoritmilorpropusi, NIST selecteaza 5 algoritmi: Mars, RC6, Rijndael, Serpent si Twofish. Acestiasunt supusi testelor si discutiilor publice, folosind drept criterii de evaluare au fost: secu-ritate, cost, implementare.

In mai 2000 NIST anunta drept sistem ”castigator” sistemul de criptare Rijndael,care devine oficial AES.

7.2 Scurta prezentare a sistemelor de criptare finale

7.2.1 Mars

Sistemul MARS este propus de firma IBM , autorii sai fiind un grup condus de DonCoppersmith. Cateva detalii de constructie:

• Algoritmul este format din trei componente, fiecare din ele asigurand protectie pen-tru anumite tipuri de atac.

• Lucreaza pe procesoare de 32 biti, putand fi implementat atat ın format big-endian,cat si ın little endian 2.

• La intrare textul clar este ”spart” ın grupuri de 128 biti (4 numere ıntregi de cate 32biti). Prima si a treia parte a algoritmului amesteca acesti biti folosind o cheie dedimensiune variabila (ıntre 128 si 448 biti) si o S-cutie de 512 elemente. Componentadin mijloc este formata din 16 runde si foloseste ın plus o o functie de expandare E.

• Operatiile folosite sunt: adunari, scaderi, XOR, rotatii (fixe sau dependente de date)si ınmultiri; toate calculele se fac modulo 32. Constructia S-cutiei s-a facut pe bazaunui algoritm public, plecand de la o serie de conditii initiale clare.

Notatiile folosite ın algoritm:

2Fie a1a2a3a4 un cuvant pe 4 octeti, unde ai este un numar ıntreg din intervalul [0, 255].

1. In arhitectura big-endian (o statie SPARK de exemplu), un cuvant reprezinta ıntregul a1224 +a2216 + a328 + a4.

2. In arhitctura little-endian (cum este familia Intel 80xxx) un cuvant reprezinta ıntregul a4224 +a3216 + a228 + a1.

Page 255: Criptografie complet

7.2. SCURTA PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 3

• D[0], D[1], D[2], D[3] – cuvinte (de 32 biti), initializate cu textul clar; ın final aiciva fi blocul de text criptat; se noteaza D[i : j] octetul j din D[i] (j = 0, 1, 2, 3).

• K[] – cheia expandata; secventa de 40 cuvinte;

• S[] – S - cutia de 512 cuvinte; S0[] va contine primele 256 elemente, iar S1[] –ultimele 256 cuvinte.

Faza I (Mixare preliminara):1. for i←− 0 to 3 do D[i]←− D[i] + K[i];2. for i←− 0 to 7 do

2.1. D[1]←− D[1]⊕ S0[D[0, 0]];2.2. D[1]←− D[1] + S1[D[0, 1]];2.3. D[2]←− D[2] + S0[D[0, 2]];2.4. D[3]←− D[3]⊕ S1[D[0, 3]];2.5. D[0]←− D[0] >>> 24;2.6. if i ∈ {0, 4} then D[0]←− D[0] + D[3];2.6. if i ∈ {1, 5} then D[0]←− D[0] + D[1];2.7. (D[0], D[1], D[2], D[3]) −→ (D[3], D[0], D[1], D[2]).

Faza II (Transformari bazate pe cheie):1. for i←− 0 to 15 do

1.1. (o1, o2, o3)←− E(D[0], K[2i + 4], K[2i + 5]);1.2. D[0] <<< 13;1.3. D[2]←− D[2] + o2;1.4. if i < 8 then

1.4.1. D[1]←− D[1] + o1;1.4.2. D[3]←− D[3]⊕ o3;

else1.4.3. D[3]←− D[3] + o1;1.4.4. D[1]←− D[1]⊕ o3;

1..5. (D[0], D[1], D[2], D[3])←− (D[3], D[0], D[1], D[2]).

Faza III (Mixare finala):1. for i←− 0 to 7 do

1.1. if i ∈ {2, 6} then D[0]←− D[0]−D[3];1.2. if i ∈ {3, 7} then D[0]←− D[0]−D[1];1.3. D[1]←− D[1]⊕ S1[D[0, 0]];1.4. D[2]←− D[2]− S0[D[0, 3]];1.5. D[3]←− D[3]− S1[D[0, 2]];1.6. D[3]←− D[3]⊕ S0[D[0, 1]];2.5. D[0]←− D[0] <<< 24;2.7. (D[0], D[1], D[2], D[3]) −→ (D[3], D[0], D[1], D[2]).

Page 256: Criptografie complet

4 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

2. for i←− 0 to 3 do D[i]←− D[i]−K[36 + i];3. Output(D[0], D[1], D[2], D[3]).

Mai trebuie precizate functia E si modalitatea de expandare a cheii K.

E(inp, cheie1, cheie2);

1. M ←− inp + cheie1; (M este variabila auxiliara)2. R←− (inp <<< 13) · cheie2; (R este variabila auxiliara)3. i←− cei mai mici noua biti din M ;4. L←− S[i]; (L este variabila auxiliara)5. R←− (R <<< 5);6. r ←− cei mai mici cinci biti din R;7. M ←− (M <<< r);8. L←− L⊕R;9. R←− (R <<< 5);10. L←− L⊕R;11. r ←− cei mai mici cinci biti din R;12. L←− (L <<< r);13. output(L, M, R).

Expandarea cheii:Aceasta procedura expandeaza o cheie k[0, . . . , n− 1] de n cuvinte (4 ≤ n ≤ 14) ıntr-o

cheie K de 40 cuvinte, folosind un vector temporar T de 15 cuvinte si un vector fixat Zde 4 cuvinte.

1. Z ←− 0xA4A8D57B 0x5B5D193B 0xC8A8309B 0x73F9A978;2. T [0, . . . , n− 1]←− k[0, . . . , n− 1], T [n]←− n, T [n + 1, . . . , 14]←− 0;3. for j ←− 0 to 3 do

3.1. for i←− 0 to 14 doT [i]←− T [i]⊕ ((T [(i− 7) mod 15]⊕ T [(i− 2) mod 15] <<< 3)⊕ (4 · i + j);

3.2. for m←− 1 to 4 tofor i←− 0 to 14 to

T [i]←− (T [i] + S[cei mai mici noua biti dinT [(i− 10) mod 15]]) <<< 9;3.3. for i←− 0 to 9 do K[10 · j + i]←− T [4 · i mod 15];

4. for i←− 5, 7, . . . , 33, 35 do4.1. j ←− cei mai din dreapta doi biti din K[i];4.2. w ←− K[i] cu cei mai din dreapta doi biti setati pe 1;4.3. for p←− 2 to 30 to

if (w[p− 1] = w[p] = w[p + 1]) ∨ (w[p] e ıntr-o secventa de 10 biti consecutivi egali)then M [p]←− 1;

4.4. r ←− cei mai din dreapta cinci biti din K[i− 1];4.5. X ←− (Z[j] <<< r);

Page 257: Criptografie complet

7.2. SCURTA PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 5

4.6. K[i]←− w ⊕ (X ∧M).5. output(K[]).Cele 512 cuvinte ale S-cutiei au fost generate ın asa fel ıncat sa verifice conditiile:- Nu are valorile 0x00000000 si 0xFFFFFFFF ;- Orice doua valori difera prin cel putin 4 biti;- Nu exista doua valori a, b astfel ca a = b sau a = −b;- Diferentele de scadere sau XOR ıntre orice doua valori sunt maxime.Pentru alte detalii privind securitatea sistemului MARS, algoritmul de decriptare,

moduri de implementare, componentele S-cutiei etc, a se vedea [3].

7.2.2 RC6

Sistemul de criptare RC6 este o versiune a lui RC5, elaborata de laboratoarele RSA(sub coordonarea lui Ron Rivest) cu scopul de a ındeplini criteriile AES. Este un sistemsimplu, fara atacuri practice cunoscute (sunt elaborate doar cateva atacuri teoretice),complet parametrizat: versiunea generala este RC6−w/r/b unde marimea cuvintelor estew, numarul de runde este r, iar b este marimea (ın octeti) a cheii de criptare. Versiuneapentru AES are w = 32, r = 20. Algoritmul lucreaza pe blocuri de lungime w folosindsase operatii: +,−, · (toate modulo 2w), ⊕, a <<< b (rotirea lui a spre stanga cu unnumar de pozitıi dat cei mai putin semnificativi log2w biti din b) si a >>> b (operatiesimilara spre dreapta).

Algoritmul de criptareIntrare:- Textul clar stocat ın cuvintele A, B, C,D;- Numarul r de runde;- Cheia [0, . . . 2r + 3];Iesire: Textul criptat stocat ın A, B, C,D.Algoritm:1. B ←− B + S[0];2. D ←− D + S[1];3. for i←− 1 to r do

3.1. t←− (B · (2B + 1)) <<< log2w;3.2. u←− (D · (2D + 1)) <<< log2w;3.3 A←− ((A⊕ t) <<< u) + S[2i];3.3 C ←− ((C ⊕ u) <<< t) + S[2i + 1];3.4. (A, B, C,D)←− (B, C, D,A);

4. A←− A + S[2r + 2];5. C ←− C + S[2r + 3].Detalii privind securitatea si modalitati de implementare pot fi gasite ın [4].

Algoritmul de diversificare a cheii S este identic cu cel de la RC5. In [5] acesta esteprezentat ımpreuna cu un cod pentru RC5, scris ın C + +.

Page 258: Criptografie complet

6 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

Cheia initiala are b octeti (0 ≤ b ≤ 255) si este stocata ıntr-un tablou L cu c = db/4ecuvinte (completand ultimul cuvant cu 0 daca este necesar).

In prima faza tabloul S este initializat folosind un generator liniar congruential:1. S[0]←− P ;2. for i←− 1 to 2(r + 1)− 1 do S[i]←− (S[i− 1] + Q) mod 232

P = 0xB7E15163 si Q = 0x9E3779B9 sunt constante bazate pe reprezentarea binaraa lui e si π.

In etapa a doua se efectueaza un amestec ıntre L si S:3. i←− 0, j ←− 0;4. A←− 0, B ←− 0;5. for s←− 1 to 3 ·max{c, 2(r + 1)} do

5.1. S[i]←− (S[i] + A + B) <<< 3, A←− S[i];5.2. L[i]←− (L[i] + A + B) <<< (A + B), B ←− L[i];5.3. i←− (i + 1) (mod 2(r + 1));5.4. j ←− (j + 1) mod c

7.2.3 Serpent

Sistemul de criptare Serpent a fost propus de Ross Anderson (Universitatea Cambridge),Eli Biham (Institutul Tehnion, Haifa) si Lars Knudsen (Universitea Bergen). El cripteazatexte clare de 128 biti ın blocuri de aceeasi lungime, ın 32 runde, folosind 33 chei decriptare de runda, de lungime 128 biti 3. Ea se extinde la 256 biti punand ın fata 1 pentruprimul bit, apoi 0 pentru ceilalti biti – atat cat este necesar.

Algoritmul de criptare cuprinde 3 pasi:Intrare: P (textul clar)Iesire: C (Textul criptat)Algoritm:

1. B0 = IP (P ): (IP - permutare initiala);

2. for i←− 0 to 31 do Bi+1 ←− Ri(Bi);

where Ri(X) = L(Si(Xi ⊕ Ki)), 0 ≤ i ≤ 30,

R31(X) = S7(X31 ⊕ K31)⊕K32.

Se aplica 32 runde formate din: combinarea cu cheia de runda Ki, 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 ınparalel a 32 copii ale S-cutiei Si mod 8.

3. C ←− FP (B32) (FP - permutare finala).

3Lungimea cheii date de utilizator este variabila, ınsa algoritmul descris foloseste chei de lungime128, 192 sau 256 biti.

Page 259: Criptografie complet

7.2. SCURTA PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 7

Observatia 7.1 S-cutiile lucreaza pe 4 biti, ca si la DES4. Fiecare runda foloseste osingura S-cutie ın 32 copii. De exemplu, runda R0 foloseste cutia S0 ın 32 exemplare; ocopie pentru bitii 0−3 din B0⊕K0 ıntorcand primii patru biti dintr-un tablou intermediar,a doua copie pentru bitii 4 − 7 din B0 ⊕K0 ıntoarce bitii 4 − 7 din vectorul intermediars.a.m.d. Apoi vectorul intermediar obtinut trece prin transformarea liniara, producandB1. Analog, R1 foloseste 32 S- cutii identice S1 pentru bitii din B1 ⊕ K1 produand unvector intermediar care dupa trecerea prin L da B2 etc.

Detalii asupra IP, FP , continutul si modul de generare a S-cutiilor, precum si o crip-tanaliza amanuntita pot fi gasite ın [2], [7]. De remarcat ca la fiecare etapa IP (Bi) =Bi, IP (Ki) = Ki.

Transformarea liniara L:

Blocul de 128 biti dintr-o runda este spart ın patru cuvinte (X0, X1, X2, X3) = Si(Bi⊕Ki).Se aplica apoi urmatorii pasi:

1. X0 ←− (X0 <<< 13); 2. X2 ←− (X2 <<< 13);3. X1 ←− X1 ⊕X0 ⊕X2; 4. X3 ←− X3 ⊕X2 ⊕ (X0 << 3);5. X1 ←− (X1 <<< 1); 6. X3 ←− (X3 <<< 7)7. X0 ←− X0 ⊕X1 ⊕X3; 8. X2 ←− X2 ⊕X3 ⊕ (X1 << 7);9. X0 ←− (X0 <<< 5); 10. Bi+1 ←− (X0, X1, X2, X3).

unde <<< ınseamna rotire spre stanga, iar << este deplasare spre stanga. In ultimarunda, L este ınlocuita cu B32 ←− S7(B31 ⊕K31)⊕K32.

Generarea cheilor de runda:

Fiecare runda necesita 132 fragmente de cate 32 biti. In prima faza se completeaza cheiafurnizata de utilizator pana la 256 biti. Apoi ea se extinde pana la 33 subchei de cate 128biti K0, K1, . . . , K32 ın modul urmator:

Cheia K se descompune ın opt cuvinte w−8, . . . , w−1 care se extind la o cheie interme-diara w0, . . . , w131 prin formula

wi ←− (wi−8 ⊕ wi−5 ⊕ wi−3 ⊕ wi−1 ⊕ φ⊕ i) <<< 11

unde φ este partea fractionara a raportului de aur (0x9E3779B9).Cheile de runda sunt calculate din cheia intermediara folosind S-cutiile:

(k0, k1, k2, k3)←− S3(w0, w1, w2, w3)(k4, k5, k6, k7)←− S2(w4, w5, w6, w7)

(k8, k9, k10, k11)←− S1(w8, w9, w10, w11)

4O varianta initiala, Serpent0 folosea aceleasi S-cutii ca DES.

Page 260: Criptografie complet

8 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

(k12, k13, k14, k15)←− S0(w12, w13, w14, w15)

(k16, k17, k18, k19)←− S7(w16, w17, w18, w19)

. . . . . .

(k124, k125, k126, k127)←− S4(w124, w125, w126, w127)

(k128, k129, k130, k131)←− S3(w128, w129, w130, w131)

Cheile de runda se regrupeaza ın

Ki ←− (k4i, k4i+1, k4i+2, k4i+3)

7.2.4 Twofish

Sistemul Twofish este propus de un colectiv condus de Bruce Schneier, fiind unul dinputinele sisteme free (implementarea este disponibila la adresa [6]). Algoritmul cripteazablocuri de 128 biti, folosind o cheie de lungime variabila.

Algoritmul de criptare

Intrare: P = p0p1 . . . p15 un bloc de text clar de 128 biti (pi - octeti)

Iesire: C - bloc text criptat, de 128 biti.

Algoritm:

1. P se sparge ın patru cuvinte P0, P1, P2, P3 dupa sistemul little-endian:

Pi ←−3∑

j=0

p4i+j · 28j, (0 ≤ j ≤ 3)

2. R0,i ←− Pi ⊕Ki, (0 ≤ i ≤ 3)5

3. for r ←− 0 to 15 do

3.1. (Fr,0, Fr,1)←− F (Rr,0, Rr,1, r);

3.2. Rr+1,0 ←− (Rr,2 ⊕ Fr,0) >>> 1;

3.3. Rr+1,1 ←− (Rr,3 <<< 1)⊕ Fr,1;

3.4. Rr+1,2 ←− Rr,0

3.5. Rr+1,3 ←− Rr,1

4. Ci ←− R16,(i+2) mod 4 ⊕Ki+4, (0 ≤ i ≤ 3)

5. ci ←−⌊

Cb i4c

28·(i mod 4)

⌋mod 28, (0 ≤ i ≤ 15)

(cele patru cuvinte din textul criptat sunt scrise ca o secventa de opt octeti ın sistemullittle-endian).

5Operatia este numita whitening si a fost introdusa ın mod independent de Merkle pentruKhufu/Khafre, respectiv Rivest pentru DES −X.

Page 261: Criptografie complet

7.2. SCURTA PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 9

Functia F

F (R0, R1, r) este o functie ternara care ıntoarce doua valori (F0, F1). Varianta propusaeste bazata la rdul ei pe o alta functie g.

1. T0 ←− g(R0) 2. T1 ←− g(R1 <<< 8)3. F0 ←− (T0 + T1 + K2r+8) mod 232 4. F1 ←− (T0 + 2 · T1 + K2r+9) mod 232

Functia unara g constituie esenta sistemului de criptare Twofish:

1. xi ←− bX/28ic mod 28 (0 ≤ i ≤ 3)Cuvantul de intrare X este spart ın patru octeti.2. yi ←− si[xi], (0 ≤ i ≤ 3)Octetii sunt trecuti prin patru S-cutii, dependente de cheie.

3.

z0

z1

z2

z3

←−

01 EF 5B 5B5B EF EF 01EF 5B 01 EFEF 01 EF 5B

·

y0

y1

y2

y3

4. Z ←−

3∑i=0

zi28i. (Z este valoarea rezultata).

Observatia 7.2 La pasul 3 se face o corespondenta ıntre octeti si elementele corpuluiGF (28). Deoarece GF (28) ≡ GF (2)[X]/v(X) unde v(X) = X8 + X6 + X5 + X3 + 1 este

un polinom primitiv peste Z2. Elementul a =7∑

i=0

aiXi ∈ GF (28) se identifica cu octetul

7∑i=0

ai2i. Elementele matricii 4 × 4 au fost scrise ca valori hexazecimale ale octetilor,

folosind aceasta corespondenta.

Diversificarea cheii

Sistemul Twofish este definit pentru chei de lungime N unde standardul este N = 128, 192sau 256. Se pot folosi ınsa chei de orice lungime mai mica de 256; daca se da o astfel decheie, ea este extinsa prin completare cu 0 la cea mai apropiata lungime standard. Dincheia M a utilizatorului, prin diversificare se obtin 40 cuvinte K0, K1, . . . , K39 si patruS-cutii folosite la functia g.

Fie k ←− N/64. Cheia M consta din 8k octeti m0, m1, . . . ,m8k−1. Se calculeazavectorii Me, Mo, S astfel:

1. Mi ←−3∑

j=0

m4i+j · 28j, (0 ≤ j ≤ 2k − 1)

2. Me ←− (M0, M2, . . . ,M2k−2), Mo = (M1, M3, . . . ,M2k−1);

3. S = (Sk−1, Sk−2, . . . , S0) unde Si ←−3∑

j=0

si,j · 28j, (0 ≤ i ≤ k − 1)

Page 262: Criptografie complet

10 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

Octetii si,j se obtin printr-o codificare cu un cod Reed-Solomon, pe baza formulei

si,0

si,1

si,2

si,3

=

01 A4 55 87 5A 58 DB 9EA4 56 82 F3 1E C6 68 E502 A1 FC C1 47 AE 3D 19A4 55 87 5A 58 DB 9E 03

·

m8i

m8i+1

m8i+2

m8i+3

m8i+4

m8i+5

m8i+6

m8i+7

Pentru generarea S-cutiilor si a cuvintelor cheii expandate se foloseste functia h,

definita astfel:

Drept argumente sunt X (cuvant) si L = (L0, L1, . . . , Lk−1) – o lista de k cuvinte.Rezultatul va fi un cuvant Z.

1. li,j ←− bLi/28jc mod 28, (0 ≤ i ≤ k − 1)

xj ←− bX/28jc mod 28, (0 ≤ j ≤ 3) (cuvintele sunt sparte ın octeti)

2. yk,j ←− xj, (0 ≤ j ≤ 3)

3. if k = 4 theny3,0 ←− q1[y4,0]⊕ l3,0, y3,1 ←− q1[y4,1]⊕ l3,1, y3,2 ←− q1[y4,2]⊕ l3,2, y3,3 ←− q1[y4,3]⊕ l3,3

4. if k ≥ 3 theny2,0 ←− q1[y3,0]⊕ l2,0, y2,1 ←− q1[y3,1]⊕ l2,1, y2,2 ←− q1[y3,2]⊕ l2,2, y2,3 ←− q1[y3,3]⊕ l2,3

5.y0 ←− q1[q0[q0[y2,0]⊕ l1,0]⊕ l0,0, y1 ←− q0[q0[q1[y2,1]⊕ l1,1]⊕ l0,1,y2 ←− q1[q1[q0[y2,2]⊕ l1,2]⊕ l0,2, y3 ←− q0[q1[q1[y2,3]⊕ l1,3]⊕ l0,3

unde q0 si q1 sunt permutari pe 8 biti, definite detaliat ın [6].

6. Z se obtine aplicand pasii 3 si 4 din definitia functiei g.

In acest moment putem defini:

• S-cutiile din functia g sub forma

g(X) = h(X,S)

Pentru i = 0, 1, 2, 3, S-cutia si dependenta de cheie se formeaza prin aplicarea lui hde la xi la yi, ın care lista L este vectorul S derivat din cheie.

• Cuvintele cheii expandate:

Fie ρ ←− 224 + 216 + 28 + 20, Ai ←− h(2i · ρ, Me), Bi ←− (h((2i + 1) ·ρ, Mo) <<< 8

Atunci

K2i ←− (A + i + Bi) mod 232, K2i+1 ←− ((Ai + 2Bi) mod 232) <<< 9

Page 263: Criptografie complet

7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 11

7.3 Detalii ale sistemului de criptare AES

Din 2000, sistemul de criptare Rijndael creat de olandezii Joan Daemen si Vincent Rijmandevine oficial sistemul AES.6 Similar sistemulelor anterioare (inclusiv DES), si acestsistem cripteaza blocuri de text clar de lungime fixa, folosind subchei ale unei chei generatealeator. Lungimile folosite sunt de 128, 192 sau 256 biti.

Definitia 7.1 Un rezultat intermediar al sistemului de criptare se numeste ”stare”.

Vom reprezenta starea unui bloc sub forma unui tablou cu 4 linii si Nb coloane, ale caruielemente sunt octeti; deci valoarea lui Nb se determina usor: Nb = N/32, unde N estelungimea blocului text care se cripteaza.

Similar, o cheie de criptare se va reprezenta printr-un tablou 4×Nk, unde Nk = K/32(K fiind lungimea cheii).

Exemplul 7.1 O stare cu Nb = 6 si o cheie cu Nk = 4 au forma urmatoare:

a0,0 a0,1 a0,2 a0,3 a0,4 a0,5

a1,0 a1,1 a1,2 a1,3 a1,4 a1,5

a2,0 a2,1 a2,2 a2,3 a2,4 a2,5

a3,0 a3,1 a3,2 a3,3 a3,4 a3,5

k0,0 k0,1 k0,2 k0,3

k1,0 k1,1 k1,2 k1,3

k2,0 k2,1 k2,2 k2,3

k3,0 k3,1 k3,2 k3,3

Uneori, aceste blocuri se reprezinta ca un vector ın care fiecare element este coloana uneistari (deci, avand o lungime de 4 octeti). In functie de marimea N a blocului de criptare(respectiv K a cheii), un astfel de vector are 4, 6 sau 8 componente, numite cuvinte.Octetii unui cuvant se noteaza cu a, b, c si respectiv d; astfel, octetul 0 este a, octetul 1este b s.a.m.d.

Intrarea si iesirea din sistemul AES sunt definite sub forma unor vectori avand dreptcomponente octeti, numerotate de la 0 la 4Nb − 1. Un vector de intrare/iesire are deci16, 24 sau respectiv 32 componente, numerotate 0 . . . 15, 0 . . . 23 sau 0 . . . 31.

Similar, cheia de criptare este definita ca un vector de 16, 24 sau 32 octeti, numerotatide la 0 la 4Nk − 1 (unde Nk = 128, 192 si respectiv 256).

Octetii care formeaza intrarea ın sistem (textul clar, daca se foloseste modul de criptareECB) completeaza pe coloane un tablou ca ın exemplu, numit starea initiala. Similar seprocedeaza cu cheia de criptare.

Procedeul este identic la sfarsit, cand se obtine blocul criptat prin liniarizarea pecoloane a starii finale rezultate dupa criptare.

Relatiile dintre indexul n al unui element (octet) din reprezentarea liniara si coordo-natele (i, j) ale aceluiasi octet din reprezentarea matriciala sunt

i = n (mod 4); j = bn/4c; n = i + 4 · j.6Rijndael a castigat obtinand 86 voturi, contra Serpent cu 59, Twofish cu 31, RC6 cu 23 si Mars cu

13 voturi. Principalul atu: desi Serpent este considerat mai sigur, Rijndael are mai putine transformarisi este mai rapid.

Page 264: Criptografie complet

12 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

In plus, i este indicele octetului ın cadrul unui cuvant care contine acel octet, iar jeste indicele cuvantului ın cadrul blocului care ıl contine.

Criptarea se realizeaza ın Nr runde, unde Nr depinde de Nb si Nk. Valorile lui Nr suntdate ın tabelul:

Nr Nb = 4 Nb = 6 Nb = 8Nk = 4 10 12 14Nk = 6 12 12 14Nk = 8 14 14 14

Fiecare runda are la intrare o stare si foloseste o cheie de runda. Cu exceptia rundeifinale, o runda este formata din patru transformari, notate pe scurt:

• ByteSub(Stare);

• ShiftRow(Stare);

• MixColumn(Stare);

• AddRoundKey(Stare, Cheie).

Ultima runda contine numai trei transformari, fiind eliminata MixColumn(Stare). Savedem cum sunt definite aceste transformari:

• ByteSub(Stare): Este o substitutie neliniara care opereaza pe octeti. Tabela desubstitutie (S - box, daca folosim termenul consacrat din DES) este o matriceinversabila formata din compunerea a doua transformari:

1. Fiecare octet nenul α este ınlocuit cu inversul sau α−1 ∈ GF (28); octetul 00este lasat nemodificat.

2. Rezultatul este modificat printr-o transformare afina peste Z2:

y0

y1

y2

y3

y4

y5

y6

y7

=

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

x0

x1

x2

x3

x4

x5

x6

x7

+

11000110

Page 265: Criptografie complet

7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 13

Transformarea ByteSub se aplica tuturor octetilor starii de intrare ın runda, rezul-tatul fiind o alta stare de iesire din runda.

Inversa transformarii se obtine aplicand fiecarui octet transforma-rea afina inversa,dupa care se ia inversul multiplicativ din GF (28) (daca octetul nu este nul).

• ShiftRow(Stare): La acest pas, liniile starii sunt permutate ciclic spre stanga. Numa-rul de octeti cu care se face ciclarea sunt: 0 pentru linia 0, Ci pentru linia i (1 ≤i ≤ 3). Valorile Ci depind de lungimea Nb a blocului si sunt date de tabelul

Nb C1 C2 C3

4 1 2 36 1 2 38 1 3 4

Exemplul 7.2 Aplicand transformarea ShiftRow starii din Exemplul 7.1 (undeNb = 6), vom obtine starea

a0,0 a0,1 a0,2 a0,3 a0,4 a0,5

a1,1 a1,2 a1,3 a1,4 a1,5 a1,0

a2,2 a2,3 a2,4 a2,5 a2,0 a2,1

a3,3 a3,4 a3,5 a3,0 a3,1 a3,2

Inversa transformarii ShiftRow consta ın permutarea ciclica spre stanga cu Nb −Ci

octeti pentru linia i (1 ≤ i ≤ 3); ın acest fel, fiecare octet aflat pe pozitia j ın liniai se deplaseaza pe pozitia j + Nb − Ci (mod Nb).

• MixColumn(Stare): In aceasta transformare, fiecare coloana a starii este privita caun polinom de gradul 3 cu coeficienti ın GF (28). Fiecare astfel de polinom esteınmultit cu

c(X) = ′03′X3 + ′01′X2 + ′01′X + ′02′

ın algebra polinoamelor modulo X4 + 1; polinomul c(X) este prim cu X4 + 1, deciva fi inversabil.

Aceasta transformare poate fi reprezentata si sub forma unei ınmul-tiri matriciale,care transforma starea coloana cu coloana; anume:

b0

b1

b2

b3

=

02 03 01 0101 02 03 0101 01 02 0303 01 01 02

a0

a1

a2

a3

Page 266: Criptografie complet

14 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

Operatia inversa este similara. Fiecare coloana este transformata prin ınmultire cupolinomul invers lui c(X) modulo X4 + 1; acesta este

d(X) = ′0B′X3 + ′0D′X2 + ′09′X + ′0E ′

• AddRoundKey(Stare, Cheie): Aceasta transformare consta ın aplicarea unui XOR(⊕) ıntre starea curenta si cheia de runda. Cheia de runda are lungimea Nb si estededusa din cheia de criptare pe baza unui procedeu pe care ıl descriem mai jos.

Formal, transformarea are loc conform figurii (pentru Nb = 6):

a0,0 a0,1 a0,2 a0,3 a0,4 a0,5

a1,0 a1,1 a1,2 a1,3 a1,4 a1,5

a2,0 a2,1 a2,2 a2,3 a2,4 a2,5

a3,0 a3,1 a3,2 a3,3 a3,4 a3,5

k0,0 k0,1 k0,2 k0,3 k0,4 k0,5

k1,0 k1,1 k1,2 k1,3 k1,4 k1,5

k2,0 k2,1 k2,2 k2,3 k2,4 k2,5

k3,0 k3,1 k3,2 k3,3 k3,4 k3,5

=

b0,0 b0,1 b0,2 b0,3 b0,4 b0,5

b1,0 b1,1 b1,2 b1,3 b1,4 b1,5

b2,0 b2,1 b2,2 b2,3 b2,4 b2,5

b3,0 b3,1 b3,2 b3,3 b3,4 b3,5

unde bi,j = ai,j ⊕ ki,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 initiala;

2. Nr − 1 runde;

3. O runda finala.

Inainte de aplicarea acestui algoritm (sau – eventual – ın paralel) se foloseste un algoritmde obtinere a cheilor de runda.

7.3.1 Prelucrarea cheii de criptare

Toate cheile de runda se obtin din cheia de criptare printr-o prelucrare separata, formatadin doua componente: extinderea cheii si alegerea cheii de runda. Principiile de baza aleprelucrarii sunt:

• Numarul total al bitilor din toate cheile de runda este Nb(Nr + 1).

• Cheia de criptare este extinsa ıntr-o Cheie Expandata.

Page 267: Criptografie complet

7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 15

• Cheia de runda se obtine luand primii Nb octeti din Cheia Expandata, care nu aufost folositi pentru alte chei.

Extinderea cheii

Cheia expandata (notata W [Nb(Nr + 1)]) este un tablou liniar ale carui elemente suntcuvinte. Primele Nk cuvinte sunt cheia de criptare; celelalte cuvinte se obtin recursiv dincuvintele definite anterior. Functia de extindere a cheii depinde de valoarea lui Nk; existao versiune pentru Nk ≤ 6 si o alta pentru Nk > 6.

Pentru Nk ≤ 6 avem:

KeyExpansion(byte Key[4 ∗Nk] word W [Nb ∗ (Nr + 1)]){

for (i = 0; i < Nk; i + +)W [i] = (Key[4 ∗ i], Key[4 ∗ i + 1], Key[4 ∗ i + 2], Key[4 ∗ i + 3]);

for (i = Nk; i < Nb ∗ (Nr + 1); i + +){

temp = W [i− 1];if (i % Nk == 0)

temp = SubByte(RotByte(temp)) ˆ Rcon(i/Nk);W [i] = W [i−Nk] ˆ temp;

}}

In acest algoritm (scris ın C ++), SubByte(W ) este o functie care ıntoarce un cuvantın care fiecare octet este rezultatul aplicarii S - boxului definit la transformarea ByteSubfiecarui octet din cuvantul de intrare. RotByte(w) ıntoarce un cuvant ın care octetii suntrotiti ciclic la stanga (pentru intrarea (a, b, c, d) iesirea este (b, c, d, a)).

Esenta algoritmului este urmatoarea: primele Nk cuvinte sunt completate cu cheia decriptare. In continuare, fiecare cuvant W [i] este egal cu W [i − 1] ⊕W [i − Nk]. Pentrucuvintele care sunt pe pozitii multipli de Nk, ınainte de aceasta operatie, lui W [i− 1] i seaplica o permutare ciclica spre stanga a octetilor, urmata de aplicarea unui S - box. Inplus, rezultatul este XOR - at ınca odata, cu o constanta de runda.

Pentru Nk > 6, algoritmul este:

KeyExpansion(byte Key[4 ∗Nk] word W [Nb ∗ (Nr + 1)]){

for (i = 0; i < Nk; i + +)W [i] = (Key[4 ∗ i], Key[4 ∗ i + 1], Key[4 ∗ i + 2], Key[4 ∗ i + 3]);

for (i = Nk; i < Nb ∗ (Nr + 1); i + +){

temp = W [i− 1];if (i % Nk == 0)

Page 268: Criptografie complet

16 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

temp = SubByte(RotByte(temp)) ˆ Rcon(i/Nk);else if (i % Nk == 4)

temp = SubByte(temp)W [i] = W [i−Nk] ˆ temp;

}}

La aceasta schema apare conditia suplimentara ca pentru situatia cand i − 4 estemultiplu de Nk, procedura SubByte este aplicata lui W [i− 1] ınainte de XOR.

Constantele de runda sunt independente de Nk si sunt definite prinRcon[i] = (RC[i], ′00′, ′00′, ′00′)

unde RC[i] = αi−1 unde α este un element generator al lui GF (28).

Selectarea cheii de runda

Cheia rundei i este formata din secventa de cuvinteW [Nb ∗ i] . . . W [Nb ∗ (i + 1)− 1].

Ca o remarca, aceasta cheie poate fi calculata treptat, pe masura ce se ajunge la rundarespectiva.

Pentru alte detalii privind securitatea sistemului, a se vedea [1], [8]

Page 269: Criptografie complet

Bibliografie

[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 RC6TM 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. - Twofish, http://www.counterpane.com/twofish.html

[7] Serpent homepage, http://www.cl.cam.ac.uk/ rja14/serpent.html

[8] Douglas Stinton - Cryptography, Theroy and Practice, Ed. II (2002)

17

Page 270: Criptografie complet

Prelegerea 8

Criptare cu cheie publica

8.1 Consideratii generale

In sistemele de criptare clasice, Alice si Bob si aleg o cheie secreta K care definesteregulile de criptare (eK) si decriptare (dK). In aproape toate cazurile dK si eK coincideausau se puteau deduce imediat una din alta. Astfel de sisteme sunt numite sisteme cucheie privata (sau sisteme simetrice) deoarece publicarea lui eK face sistemul extrem devulnerabil.

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 mesajuluicriptat. Practic, ın conditiile cererii tot mai mari de securizare a comunicatiilor, acestlucru este din ce ın ce mai dificil de realizat.

Obiectivul sistemelor de criptare cu cheie publica este acela de a face ”imposibil”asupraacestui termen vom reveni) de obtinut cheia dK plecand de la eK . Astfel, regula de criptareeK poate fi publicata ıntr-un ”registru public” (de unde si numele sistemelor). Avantajulconsta ın faptul ca Alice (sau oricare alta persoana) poate trimite lui Bob un mesaj criptatcu eK fara a intra ın prealabil ın contact. Bob este singura persoana capabila sa decriptezetextul, utilizand cheia sa secreta dK .

Ideea de sistem de criptare cu cheie publica apare ın 1976 si este prezentata de Diffiesi Hellman (vezi [1])1. De atunci au aparut diverse astfel de sisteme, a caror securitateeste bazata pe probleme calculatorii. Cele mai cunoscute ın acest moment sunt:

• Sistemul RSA: se bazeaza pe dificultatea descompunerii ın factori primi a numerelormari (de sute de cifre). Este sistemul cel mai larg utilizat ın acest moment.

1Se pare ca prima idee de cheie publica este schitata ın ianuarie 1970 de catre britanicul JamesEllis – membru ın Communication-Electronic Security Group – ın articolul The possibility of non-secretencryption. Informatia este facuta publica de catre British Government Communications Headquartersabia in 1997.

1

Page 271: Criptografie complet

2 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

• Sistemul El Gamal: se bazeaza pe dificultatea calculului logaritmului discret ıntr-uncorp finit.

• Sistemul Merkle - Hellman: primul sistem definit cu cheie publica, bazat pe problema{0, 1} a rucsacului, problema NP - completa.

• Sistemul McEliece: este bazat pe teoria algebrica a codurilor, decodificarea unui codliniar fiind de asemenea o problema NP - completa.

• Curbe eliptice: Sunt sisteme de criptare care ısi desfasara calculele pe multimeapunctelor unei curbe eliptice (ın locul unui inel finit Zn).

8.2 Functii neinversabile

O observatie importanta este aceea ca un sistem cu cheie publica nu este sigur neconditionat;oricine - putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe caresa ıi permita sa si decripteze mesajele. Ideea de baza folosita este aceea de functie nein-versabila. Sa clarificam putin acest aspect.

Exemplul 8.1 Ne putem imagina usor strazile cu sens unic dintr-un oras. Astfel, esteusor ca mergand pe astfel de strazi sa ajungi de la punctul A la punctul B, dar esteimposibil sa ajungi de la B la A. In acest mod, criptarea este privita ca directia A → B;desi este foarte usor de parcurs drumul ın aceasta directie, nu te poti ıntoarce ınapoi spreA (adica sa decriptezi mesajul).

Exemplul 8.2 Sa consideram cartea de telefon a unui oras mare2; cu ajutorul ei estefoarte usor sa gasim numarul de telefon al unei anumite persoane. In schimb, este extremde greu - practic imposibil - sa afli persoana care are un anumit numar de telefon. Teafli ın situatia parcurgerii secventiale a (cel putin) unui volum gros, ceea ce conduce la ocrestere exagerata a timpului.

Aceasta da o sugestie de constructie a unui sistem de criptare cu cheie publica. Criptarease face independent de context, litera cu litera. Pentru fiecare litera a textului clar se alegeun nume care ıncepe cu acest caracter si numarul de telefon al persoanei respective va con-stitui criptarea. Sistemul este homofonic; douaaparitii diferite ale aceleiasi litere vor ficodificate foarte probabil cu numere diferite.

De exemplu, textul clar SOLIST se poate cripta astfel:

2O carte de telefon expirata va duce la cresterea dificultatii decriptarii ilegale.

Page 272: Criptografie complet

8.2. FUNCTII NEINVERSABILE 3

S Simion Pavel 6394502O Olaru Stefan 7781594L Lambru Stelian 6300037I Ilie Romeo 3134971S Solovean Raluca 6281142T Tecuceanu Paul 3359962

Deci, textul criptat va fi639450 277815 946300 037313 497162 811423 359962.

De remarcat ca metoda este nedeterminista; din acelasi text clar se pot obtine enormde multe texte criptate. Pe de-alta parte, orice text criptat conduce la un text clar unic.

Bob va avea la dispozitie pentru decriptare o carte de telefon scrisa ın ordinea crescatoarea numerelor. Aceasta ıi va permite sa decripteze mesajele cu un algoritm de complexitateO(log n).

Deci, o functie neinversabila f trebuie sa verifice doua conditii:

• 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 functii. Ademonstra ca exista functii neinversabile este echivalent cu a demonstra relatia P 6= NP ,conjectura care sta la baza ıntregii teorii criptografice (a se vedea [4],[5]). De aceea,termenii folositi 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 principaleorsisteme de criptare cu cheie publica.

Exemplul 8.3 Sa consideram ”problema rucsacului” Ea consta dintr-un vector de di-mensiune n A = (a1, a2, . . . , an) cu elemente numere ıntregi pozitive distincte, si unnumaıntreg pozitiv k. Trebuiesc aflati acei ai din A (daca exista) a caror suma estek. Numele intuitiv dat problemei este evident. De exemplu, fie

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 solutie (vom

da mai tarziu o definitie formala riguroasa a problemei).In principiu o solutie se poate gasi parcurgand sistematic toate submultimile lui A si

verificand daca suma elementelor lor este k. In cazul de sus, aceasta ınseamna 210 − 1 =1023 submultimi (fara multimea vida), dimensiune acceptabila ca timp de lucru.

Ce se ıntampla ınsa daca A are cateva sute de componente ? In acest caz se cunoastefaptul ca problema rucsacului este NP - completa.

Page 273: Criptografie complet

4 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

Cu ajutorul lui A se poate defini o functie f astfel:Fie x ∈ [0, 2n−1]; x poate fi reprezentat ın binar ca un cuvant de lungime n (adaugand

eventual 0 - uri ın fa�a↽.f(x)vafinumarul obtinut din A prin ınsumarea tuturor nu-merelor ai aflate pe pozitiile marcate cu 1 ın reprezentarea binara a lui x. Formal,

f(x) = A ·BTx

unde Bx este reprezentarea binara a lui x, scrisa ca un vector coloana.Sa definim acum un sistem de criptare bazat pe problema rucsacului. Textul clar

este codificat initial ın binar si segmentat apoi ın blocuri de cate n biti (eventual ultimulbloc este completat la sfarsit cu zerouri). Fiecare bloc rezultat este apoi criptat calculandvaloarea corespunzatoare a functiei f .

Pentru alfabetul latin sunt suficienti 5 biti pentru codificarea binara a literelor si aspatiului. Mai exact, daca asociem literelor A - Z reprezentarile binare ale numerelor1− 26, vom avea:

− 00000 A − 00001 B − 00010C − 00010 D − 00011 E − 00101F − 00110 G − 00111 H − 01000I − 01001 J − 01010 K − 01011L − 01100 M − 01101 N − 01110O − 01111 P − 10000 Q − 10001R − 10010 S − 10011 T − 10100U − 10101 V − 10110 W − 10111X − 11000 Y − 11001 Z − 11010

Sa consideram un text clar, FLOARE DE COLT de exemplu. Cum fiecare caracterse codifica ın 5 biti, ın fiecare bloc intra doua caractere: FL OA RE D E CO LT.Codificand,se obtin sapte blocuri de cate 10 biti:

0011001100 0111100001 1001000101 0000000100 0000000101 0001101111 0110010100care conduc la textul criptat: (1814, 3243, 3204, 1165, 1118, 5321, 1811).

Sa consideram sistemul de criptare definit ın Exemplul 8.3. Daca ıl privim ca unsistem clasic, (cu cheie privata) criptanalistul trebuie sa afle vectorul de baza A si apoi sarezolve problema rucsacului.

Daca el foloseste metoda textelor clare alese, ıl va afla usor pe A: este suficient satrimita n texte clare cu cıte un singur 1 iar restul 0. Problema apare ın momentulrezolvarii problemei rucsacului; aici atat Bob cat si Oscar sunt pusi ın fata acelaiasiprobleme NP - complete. Ori, practic, doar Oscar trebuie sa rezolve o problema dificila,nu si Bob.

O alta problema ridicata de acest sistem de criptare: este obligatoriu ca un text criptatsa determine ın mod unic un text clar. Aceasta ınseamna ca nu trebuie sa existe douasubmultimi 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 fi decriptat ın doua moduri: SAUNA si FAUNA.

Page 274: Criptografie complet

8.3. TRAPA SECRETA 5

8.3 Trapa secreta

Pentru ca Bob sa nu fie pus ın aceasi situatie ca si Oscar, el trebuie sa dispuna deun procedeu care sa ıi permita sa transforme problema NP - completa publica, ıntr-oproblema usoara. Acest procedeu este numit trapa secreta. In primul exemplu, trapasecreta era cartea de telefon ordonata dupa numerele de telefon, nu dupa abonati. Savedem 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 oformeaza vectorii cu crestere mare.

Spunem ca vectorul rucsac A = (a1, a2, . . . , an) este cu crestere mare daca

∀ j ≥ 2, aj ≥j−1∑i=1

ai.

In acest caz, pentru a rezolva problema rucsacului este suficient sa parcurgem vectorulA de la dreapta spre stanga. Cunoscand valoarea k, cercetam ıntai valoarea de adevara relatiei k ≥ an. Daca raspunsul este FALSE, an nu poate apartine sumei pe care ocautam. Daca ınsa se obtine TRUE, an trebuie sa fie ın suma, deoarece toate elementeleai ramase nu pot depasi ın suma pe k. Vom defini

k1 =

{k daca an > kk − an daca an ≤ k

si repetam procedeul pentru k si a1. Algoritmul se va opri la valoarea a1.Sa presupunem ca avem vectorul rucsac cu crestere mare

A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)si vrem sa decodificam mesajul 278. Vom parcurge 10 pasi, sumarizati ın tabelul:

Numar Componenta lui A Bit rezultat278 701 0278 349 0278 175 1103 87 116 44 016 21 016 11 15 5 10 3 00 1 0

Deci se obtine secventa binara 00110 01100 care - conform codificarii din Exemplul 8.3corespunde perechii de litere FL.

Daca se foloseste ınsa public o astfel de informatie, orice utilizator – inclusiv Oscar –poate decripta mesajele folosind un algoritm liniar. Ori s-a presupus (ın prima prelegere)

Page 275: Criptografie complet

6 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

ca pentru orice intrus aflarea 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

ai) 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 = (a1, a2, . . . , an) Bob genereaza vectorul

B = (b1, b2, . . . , bn) unde bi = t · ai (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)

devineB = (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 folosivectorul rucsac B si va cripta mesajul x ın y = B ·BT

x , conform Exemplului 8.3.La receptie, 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 solutia 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. InExemplul 8.4 s-a vazut ca decriptarea mesajului 278 cu vectorul A conduce la textul clarFL.

Putem trasa acum cateva principii generale de construire a unui sistem de criptare cucheie publica:

1. Se ıncepe cu o problema dificila P ; rezolvarea lui P este imposibila ın conformitatecu teoria complexitatii (nu se cunoaste nici un algoritm de complexitate polinomialacare sa rezolve P ).

2. Se selecteaza o subproblema P1 a lui P , rezolvabila ın timp polinomial (preferabilliniar).

3. Se aplica o transformare problemei P1 astfel ıncat sa se obtina o problema P2 caresa nu semene cu P ′ dar sa fie foarte apropiata de problema P .

3Pentru calculul inversului unui numar se poate folosi algoritmul lui Euclid. Vom dezvolta mai tarziuaceasta idee.

Page 276: Criptografie complet

8.4. SECURITATEA SISTEMELOR DE CRIPTARE CU CHEIE PU-BLICA 7

4. Se face publica problema P2 si se descrie algoritmul de criptare bazat pe aceasta.Informatia referitoare la modul ın care se obtine P1 din P2 este o trapa secreta.

5. Se construiesc detaliile sistemului de criptare, astfel ıncat principiile de lucru sadifere esential pentru destinatar fata de criptanalist; astfel, ın timp ce primul vafolosi trapa secreta si va rezolva problema P1, al doilea va trebui sa rezolve problemaP2, imposibila datorita asemanarii ei cu problema P .

In functie de aceste principii generale, apar ın detalii de constructie multe alte problemepe 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 functiilor recursive si teoria probabilitatilor. Pe o scara mult mai restransaapar functiile eliptice, teoria automatelor, calcul neconventional (cuantic, molecular etc).

Sistemele de criptare cu cheie publica un avantaj major fata de sistemele clasice: aicinu mai este necesar efortul transmiterii cheii. Un contact prealabil ıntre Alice si Bobpentru a pune la punct detaliile sistemului de criptare este inutil.

Un sistem de criptare cu cheie publica nu ofera ınsa o securitate absoluta. Aceastase 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 textclar x astfel ca eK(x) = y. Singura aparare contra unui astfel de atac consta ıngradul de complexitate al sistemului.

• Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle. Sapresupunem ca Alice si Bob doresc sa stabileasca un contact. Ei fac publice cheile decriptare eA respectiv eB. Daca contactul este nepersonalizat, Oscar poate controlamesajele schimbate ıntre cei doi, ın felul urmator:

Alice

Oscar

Bob

? - -

66

�6

-

?

(eA, eB)e1B e1

A

y1 = e1B(m) y = eB(m)

1. Oscar ”opacizeaza” printr-un mijloc oarecare aceste chei, si trimite lui Alicecheia e1

B ca din partea lui Bob; substituie – similar – pentru Bob cheia eA cue1

A.

Page 277: Criptografie complet

8 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

2. Fie m mesajul pe care Alice vrea sa ıl trimita lui Bob. Ea va cripta si va trimitey1 = e1

B(m).

3. Oscar intercepteaza mesajul (reamintim, toate canalele sunt nesigure) si aflam = d1

B(y1).

4. Oscar recripteaza y = eB(m) si trimite y lui Bob.

Bineınteles, Oscar poate modifica sau ıntarzia mesajul m daca doreste.

Din aceasta cauza, aproape ın toate sistemele de criptare cu cheie publica apare nece-sitatea autentificarii mesajului sau a expeditorului, precum si aceea a confidentialitatii.

Definitia 8.1 Confidentialitatea4 asigura accesul la informatie doar partilor autorizatede a avea acest acces.

Definitia 8.2 Autentificarea5 este procesul prin care un calculator (program de calculatorsau alt utilizator) ıncearca sa confirme unui destinatar ca mesajul primit de acesta vine(sau nu vine) din partea sa.

Metodele prin care un expeditor uman se poate autentifica sunt clasificate ın:

1. ”ceva ce utilizatorul este” (de exemplu amprente digitale, de retina, de voce, secventaDNA, recunoasterea semnaturii, identificatori biometrici).

2. ”ceva de utilizatorul are” (de exemplu card ID, date de securitate soft pe calculatorsau telefon).

3. ”ceva ce utilizatorul stie” (de exemplu un password, o parola, un numar de identi-ficare - PIN).

4. Orice combinatie ıntre metodele anterioare (de exemplu un card bancar cu PINasigura o dubla autentificare).

Alt termen frecvent utilizat este cel de integritate. El se refera la validitatea datelor.

Definitia 8.3 Integritatea este siguranta ca datele la care se refera un utilizator pot fiaccesate si pot fi modificate numai de cei autorizati sa o faca.

In general integritatea poate fi compromisa ın doua moduri:

1. Prin alterare intentionata (de exemplu modificarea unui cont bancar, a unei adresede e-mail, a unui document de indetitate);

4conform International Standards Organization (ISO)5de la grecescul ”authentes” = author

Page 278: Criptografie complet

8.5. COMPARATIE INTRE CRIPTAREA SIMETRICA SI CEA CU CHEIE PUBLICA9

2. In mod accidental (transmisii perturbate de zgomote de canal, zgarierea harddiscului)6.

Sa presupunem ca Alice si Bob sunt doi utilizatori, cu posibile conflicte de interese.cand Alice trimite un mesaj lui Bob, ambele parti trebuie sa se asigure ca:

• Mesajul nu este trimis de o terta persoana care pretinde a fi Alice;

• Bob sa nu poata obliga pe Alice sa tina cont de mesaje care nu-i apartin, iar Alicesa poata recunoaste public propriile mesaje.

Intr-o oarecare masura, cele doua conditii sunt contradictorii: conform primei conditii,Bob trebuie sa stie ceva despre modul de criptare al lui Alice, care ıi va permite saautentifice mesajul, iar conform celei de-a doua conditii, el nu trebuie sa stie prea mult.O modalitate frecvent utilizata pentru autentificarea mesajelor este folosirea codurilor deautentificare.

Exemplul 8.6 MAC-ul (Message Authentication Code) definit ın cadrul sistemului decriptare DES este o varianta prin care se poate asigura atat autenticitatea cat si integri-tatea mesajului.

Daca se solicita si autentificarea partenerilor, atunci se foloseste de obicei semnaturaelectronica.

Exemplul 8.7 Sa presupunem ca Alice vrea sa trimita lui Bob mesajul m. Daca sefoloseste un sistem de criptare cu cheie publica ın care functiile de criptare/decriptaresunt comutative, iar (eA, dA), (eB, dB) sunt perechile (cheie publica,cheie privata) ale celordoi, ei pot urma urmatorul protocol:

1. Alice trimite lui Bob y1 = eA(m);2. Bob trimite lui Alice y = eB(y1);3. Alice trimite lui Bob dA(y) = eB(m);4. Bob calculeaza dB(eB(m)) = m si afla mesajul.Se observa ca sunt verificate cele doua conditii de autentificare 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 = eB(dA(m)).

La receptie, Bob va folosi propria sa cheie pentru decriptare, impreuna cu cheia publica alui Alice. Metoda merge si pentru sisteme de criptare necomutative.

8.5 Comparatie ıntre criptarea simetrica si cea cu

cheie publica

Avantaje ale sistemelor de criptare cu cheie simetrica:

6De recuperarea informatiei pierduta ın acest mod se ocupa Teworia Codurilor detectoare si corectoarede erori.

Page 279: Criptografie complet

10 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

1. Pot transmite volume mari de date. Exista implementari hard care pentru unelesisteme de criptare pot asigura rate de criptare de sute de mega-octeti pe secunda(sunt si implementari soft cu rate de mega-octeti pe secunda).

2. Cheile sunt relativ scurte.

3. Pot fi folosite ca baza de constructie a diverselor mecanisme de criptare, cum ar figeneratori de numere pseudo-aleatoare, generatori de functii de dispersie, schemede semnatura.

4. Prin compunere pot conduce la sisteme de criptare puternice.

5. Au o istorie bogata ın evenimente si experienta.

Dezavantaje ale sistemelor de criptare cu cheie simetrica:

1. Cheia trebuie sa ramana permament secreta ın (cel putın) doua locuri distincte.

2. Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart.

3. In retele mari, o gestionare a cheilor devine extrem de dificila.

4. Necesita un canal sigur de comunicare, cel putin pentru transmiterea cheii. Acestlucru devine dificil mai ales pentru sistemele care necesita schimbari frecvente alecehilor de criptare/decriptare.

Avantaje ale sistemelor de criptare cu cheie punlica

1. Sistemul este ideal pentru transmiterea informatiei prin canale nesigure.

2. Sistemele cu cheie publica sunt simplu de definit si elegante matematic.

3. Doar cheia de decriptare trebuie tinuta secreta, la un singur punct (destinatar).

4. In funtie de modul de utilizare, o pereche de chei (publica,privata) poate fi pastratao perioada mai lunga de timp.

5. Conduc la aplicatii de mare ıntindere: semnaturi electronice, algoritmi de autentifi-care, componente de comert electronic etc.

Dezavantaje ale sistemelor de criptare cu cheie publica:

1. Sunt semnificativ 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 cheiepublica.

Page 280: Criptografie complet

8.5. COMPARATIE INTRE CRIPTAREA SIMETRICA SI CEA CU CHEIE PUBLICA11

4. Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teo-retic de securitate pot fi sparte usor printr-o implementare neglijenta.

Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantajecomplementare. Acest lucru face ca ele sa fie folosite combinat.

Exemplul 8.8 Multe sisteme de criptare ıncep comunicarea transmitand via un sistem cucheie publica, cheia unui sistem simetric. In faza a doua, mesajele sunt criptate folosindsistemul simetric de criptare. Aceasta asigura o viteza mult mai mare de transmitere siun spor de autentcitate a mesajelor.

Page 281: Criptografie complet

12 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLICA

Page 282: Criptografie complet

Bibliografie

[1] W. Diffie, M.E. Hellman - New Directions in Cryptography, IEEE Transactions onInformation Theory, IT-22, 6 (1976), pp. 644-654

[2] D. Stinton - Cryptographie, theorie et pratique, International Thompson PublishingFrance, 1995

[3] A. Salomaa - Criptografie 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

Page 283: Criptografie complet

Prelegerea 10

Sistemul de criptare RSA

10.1 Descrierea sistemului RSA

Sistemul de criptare RSA (Rivest - Shamir - Adleman) este ın acest moment cel maicunoscut si uzitat sistem cu cheie publica1. Aceasta se datoreaza ın primul rand modalitatiifoarte simple de criptare si decriptare, care se realizeaza similar – cu aceleasi module decalcul (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= Zn. Se definesteK= {(n, p, q, a, b)| n = pq, ab ≡ 1 (mod φ(n))}Pentru K = (n, p, q, a, b) se definesc (∀x, y ∈ Zn):

eK(x) = xb (mod n)si

dK(y) = ya (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 = Zn \ {0}, putem scrie (toate calculele se fac ın Zn):

(xb)a ≡ xtφ(n)+1 ≡(xφ(n)

)tx ≡ 1tx ≡ x.

Pentru x = 0 afirmatia este banala.

Exemplul 10.1 Sa presupunem ca Bob alege p = 101, q = 113. Atunci n = 11413, φ(n) =11200. Deoarece 11200 = 26527, un numar b poate fi utilizat ca exponent de criptare daca

1Sistemul este prezentat ın 1977 de Ron Rivest, Adi Shamir si Len Adleman ın cadrul unui proiectde cercetare la MIT. Totusi, dupa declasificarea ın 1997 a unor documente din Marea Britanie, se pareca matematicianul Clifford Cocks a elaborat ın 1973 un sistem echivalent, prezentat ıntr-un documentintern GCHQ (Government Communications Headquarters).

1

Page 284: Criptografie complet

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 suficient sa verifice daca (φ(n), b) = 1 folosind algoritmul lui Euclid). Fie de exemplub = 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

97263533 mod 11413 = 5761si trimite prin canal textul criptat 5761. Cand Bob primeste acest numar, el determina

57616597 mod 11413 = 9726.

Securitatea sistemului de criptare RSA se bazeaza pe ipoteza ca functia eK(x) = xb mod neste neinversabila din punct de vedere al complexitatii, deci este imposibil pentru Oscarsa o determine. Trapa secreta de care dispune Bob pentru decriptare este descompunerean = 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 sevedea Anexa).

10.2 Implementarea sistemului RSA

Pentru a realiza criptarea, Bob trebuie sa efectueze urmatorii pasi (fiecare din ei va fidetaliat 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 serealizeaza aceasta, este usor de determinat φ(n) = (p−1)(q−1) si de calculat exponentulde decriptare a plecand de la b.

Deci, pentru ca sistemul RSA sa fie sigur, este necesar ca n sa fie suficient de marepentru ca factorizarea sa sa fie imposibila (din punct de vedere al complexitatii). Algo-ritmii de factorizare actuali pot descompune numere de pana la 200 cifre zecimale. Se

Page 285: Criptografie complet

10.2. IMPLEMENTAREA SISTEMULUI RSA 3

recomanda de aceea – pentru siguranta – sa se lucreze cu numere prime p si q de cel putin300 cifre fiecare, deci n va avea peste 500 cifre. Aproape toate implementarile actuale alesistemului folosesc chei de 1024− 2048 biti2.

Cu intentia ca vom reveni asupra problemelor legate de numere prime mari, sa studiemıntai operatiile necesare pentru criptare si decriptare. Orice astfel de calcul se bazeazape o exponentiere modulo n. Cum n este foarte mare, vom utiliza aritmetica numerelormari pentru lucrul ın Zn, timpul de calcul necesar fiind direct proportional cu numarulde biti ai lui n.

Daca n ocupa k biti ın memorie (deci k = [log2n] + 1), prin metode de calcul uzualese ajunge la concluzia ca suma a doua numere de k biti se face ın O(k), iar ınmultirea ınO(k2). La fel si reducerea modulo n. Deci, pentru x, y ∈ Zn, numarul xy mod n se poatedetermina prin calcule de complexitate O(k2). Conform prelegerii anterioare, vom numiaceasta multiplicare modulara.

Sa cercetam acum exponentierea modulara xc mod n. O modalitate de calcul consta ınefectuarea de c−1 multiplicari modulare - proces foarte ineficient pentru c mare, deoarecealgoritmul devine de complexitate exponentiala.

Exista ınsa un algoritm de exponentiere rapida, care realizeaza xc mod n cu complex-itate O(k3) (deci polinomial). Acesta utilizeaza descompunerea binara a lui c,

c =s−1∑i=0

ci2i

unde s (s ≤ k) este numarul de biti ai lui c, iar ci ∈ {0, 1}. Exponentierea se face doarprin ridicari la patrat si maxim s ınmultiri modulare, conform algoritmului:

z ←− 1;for i←− s− 1 downto 0 do

z ←− z2 mod n;if ci = 1 then z ←− z · x mod n

Exemplul 10.2 Sa reluam datele din Exemplul 10.1. Calculul lui 97263533 mod 11413 seefectueaza cu algoritmul de sus ın numai 12 pasi; anume:

2Un numar n de maxim 256 biti poate fi factorizat de un PC obisnuit ın cateva ore, folosind un softfree. Daca n are pana la 512 biti, el poate fi factorizat folosind o retea de cateva sute de calculatoare,conform unei scheme prezentate ın 1999. In 2003 a fost pusa sub semnul ıntrebarii securitatea modulelorde 1024 biti.

Page 286: Criptografie complet

4 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

i ci z11 1 12 · 9726 = 972610 1 97262 · 9726 = 26599 0 26592 = 56348 1 56342 · 9726 = 91677 1 91672 · 9726 = 49586 1 49582 · 9726 = 77835 0 77832 = 62984 0 62982 = 46293 1 46292 · 9726 = 101852 1 101852 · 9726 = 1051 0 1052 = 110250 1 110252 · 9726 = 5761

Deci textul clar 9726 este criptat de Alice ın 5761.

Pentru aplicarea sistemului de criptare RSA, trebuiesc generate ıntai numerele primep, q - despre care ne ocupam ın sectiunea urmatoare. Etapa a doua (din Tabelul 10.1) seefectueaza evident ın O((log2n)2). Etapele 3 si 4 folosesc algoritmul lui Euclid extins. Carezultat general, calculul celui mai mare divizor comun (a, b) cu a > b se poate realiza cucomplexitatea O((log2a)2).

In general, un algoritm RSA este cam de 1000 ori mai lent decat DES pentru oimplementare harwdare, cam de 100 ori la o implementare software. In [3] se dau catevatabele 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 numarmare de cifre. Practic, se realizeaza aleator numere, a caror primalitate se testeaza, pana seajunge la un numar prim. Pentru teste se folosesc algoritmi probabilisti al caror avantajeste rapiditatea (complexitatea lor este log n) dar care pot afirma uneori primalitateaunor numere care nu sunt prime. Aceste erori se pot reduce la o marja acceptabila prinmultiplicarea testelor.

Problema generarii aleatoare este posibila din urmatorul considerent. Un rezultat dinteoria numerelor (numit Teorema rarefierii numerelor prime) afirma ca sunt circa n/log nnumere prime mai mici decat n. Astfel, pentru un modul de 512 biti, un numar p de 256biti are o probabilitate 1/logp ≈ 1/177 de a fi prim. Deci se fac ın medie cam 177 generaride numere p pentru a obtine un numar prim (daca se foloseste si faptul ca se genereazanumai numere impare, aceasta reduce la jumatate numarul de ıncercari). Rezulta ca estepractic sa se construiasca numere mari, care sunt probabil prime, pe baza carora sa serealizeze criptarea RSA. Vom detalia acest procedeu.

Definitia 10.1 O problema de decizie este o problema care pune o ıntrebare al caruiraspuns este dicotomic (Da/Nu).

Page 287: Criptografie complet

10.3. TESTE DE PRIMALITATE PROBABILISTE 5

Un algoritm probabilist este un algoritm care foloseste numere aleatoare.

Definitia 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 unraspuns negativ poate fi incorect.

In mod similar se defineste algoritmul Monte - Carlo negativ.Un algoritm Monte - Carlo pozitiv are o probabilitate de eroare ε daca pentru orice

problema al carei raspuns ar trebui sa fie pozitiv, algoritmul da un raspuns negativ cuprobabilitatea cel mult ε.

Problema de decizie folosita aici, numita Problema de descompunere este

Fiind dat un numar ıntreg n, se poate el descompune ın produs de alte numere maimici ?

Vom prezenta ın aceasta sectiune doi algoritmi de tip Monte Carlo pozitiv care rezolvaaceasta problema de de decizie.

10.3.1 Algoritmul Solovay - Strassen

Sa reamintim ıntai cateva notiuni matematice:

Definitia 10.3 Fie p ≥ 3 numar prim si a ∈ Z∗p . Spunem ca a este rest (reziduu) patratic

modulo p daca ecuatia x2 ≡ a (mod p) are solutie ın Zp. In caz contrar, un numar a 6= 0nu este rest patratic.

Exemplul 10.3 Resturile patratice modulo 11 sunt 1, 3, 4, 5, 9 Aceasta deoarece ın Z11

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 restpatratic. 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 patraticmodulo p daca si numai daca

ap−12 ≡ 1 (mod p)

Demonstratie: Sa presupunem a ≡ x2 (mod p). Cum xp−1 ≡ 1 (mod p) (Teorema luiFermat) pentru x 6≡ 0 (mod p),vom avea

ap−12 ≡ (x2)

p−12 ≡ xp−1 ≡ 1 (mod p).

Invers, fie ap−12 ≡ 1 (mod p) si b ∈ Zp un element primitiv (de ordin p − 1). Atunci

a ≡ bi (mod p) pentru un anumit i. Calculam

1 ≡ ap−12 ≡ (bi)

p−12 ≡ b

i(p−1)2 (mod p).

Ordinul p − 1 al lui b va divide i(p − 1)/2. Deci i este par si radacinile patrate ale lui asunt ±bi/2. 2

Page 288: Criptografie complet

6 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

Definitia 10.4 Daca p ≥ 3 este prim, pentru orice numar a ≥ 0 se defineste simbolulLegendre 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(p−1)/2 ≡ 1 (mod p) daca si numai daca a este rest patraticmodulo p. Daca a este multiplu de p, evident a(p−1)/2 ≡ 0 (mod p). In sfarsit, daca a nueste rest patratic modulo p, avem a(p−1)/2 ≡ −1 (mod p) deoarece ap−1 ≡ 1, a(p−1)/2 6≡1 (mod p) si −1 este singura radacina patrata diferita de 1 modulo p. Este deci adevaratateorema urmatoare:

Teorema 10.2 Daca p este numar prim impar, atunci(a

p

)≡ a

p−12 (mod p)

Simbolul lui Legendre se poate generaliza astfel:

Definitia 10.5 Fie n = pe11 . . . pek

k un numar impar descompus ın factori primi. Dacaa ≥ 0 este un numar ıntreg, se defineste simbolul Jacobi prin

(a

n

)=

k∏i=1

(a

pi

)ei

Exemplul 10.4 Sa calculam simbolul Jacobi(

6278

9975

). Descompunerea ın factori primi

a lui 9975 este 9975 = 3 · 52 · 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

)≡

an−1

2 (mod n).Invers, daca n nu este prim, este posibil ca egalitatea de sus sa fie falsa. Daca

congruenta se verifica, spunem ca n este numar Euler pseudo - prim pentru baza a.De exemplu, 91 este pseudo-prim pentru baza 10 deoarece(

10

91

)= −1 = 1045 (mod 91).

Putem enunta acum testul de primalitate Solovay - Strassen pentru un numar imparn:

Page 289: Criptografie complet

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 ←− an−1

2 (mod n);

5. if x ≡ y (mod n) then ”n este prim”,

else ”n nu este prim”.

Pentru evaluarea an−1

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 proprietati. 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 · yn

)=(

x

n

)·(

y

n

);

Lema 10.2 Fie m,n doua numere ıntregi pozitive impare. Atunci

(m

n

)=

−(

nm

)daca m ≡ n ≡ 3 (mod 4)(

nm

)altfel

Lasam ca exercitiu demonstratiile 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

Page 290: Criptografie complet

8 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

O analiza sumara arata ca se poate calcula simbolul Jacobi(

mn

)folosind cel mult O(log n)

reduceri modulare, fiecare ın timp O((log n)2). Deci complexitatea poate fi estimata laO((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, cuprobabilitate de eroare 1/2. Un studiu referitor la complexitatea aplicarii acestui test deprimalitate si a probabilitatii 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. Formasa este:

1. Se descompune n− 1 = 2km unde m este impar;

2. Se alege aleator ıntregul a ∈ [2, n− 2];

3. b←− am (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←− b2 (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 pentruproblema de descompunere.

Demonstratie: Sa presupunem prin absurd ca algoritmul raspunde ca un numar prim nse poate descompune, adica am 6≡ 1 (mod n). Vom urmari sirul de valori pe care le ia b.Cum la fiecare iterare b este ridicat la patrat, acest sir este am, a2m, . . . , a2k−1m. Vom aveadeci

a2im 6≡ −1 (mod n) pentru 0 ≤ i ≤ k − 1.

3O analiza mai detaliata poate reduce aceasta complexitate la O((log n)2).

Page 291: Criptografie complet

10.3. TESTE DE PRIMALITATE PROBABILISTE 9

Deoarece n este prim, teorema lui Fermat da a2km ≡ 1 (mod n). Deci a2k−1m este oradacina patrata a lui 1 modulo n.

Din faptul ca n este prim, singurele radacini patrate ale lui 1 sunt ±1. Aceastaafirmatie 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 a2k−1m 6≡ −1 (mod n), avem a2k−1m ≡ 1 (mod n).

Atunci a2k−2m trebuie sa fie radacina patrata a lui 1, diferita de −1, deci

a2k−2m ≡ 1 (mod n).

Procedand iterativ, se ajunge la am ≡ 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 6= 9.

De exemplu, pentru n = 91 (neprim), multimea valorilor a pentru care algoritmulda raspuns incorect este {9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82}. Pentrun = 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 computational mai complex.

2. Implementarea lui Solovay - Strasen este mai dificila din cauza calculului simboluluiJacobi.

3. Probabilitatea de eroare pentru Solovay - Strasen este 1/2, pe cand la Miller - rabinea se reduce la 1/4.

4. Deoarece orice valoare a lui a pentru care testul Miller - Rabin este gresit esteun numar Euler pseudo-prim (vezi Exercitiul 10.8), un test Miler - Rabin nu esteniciodata inferior unui test Solovay - Strasen.

Deoarece orice implementare a unui sistem RSA trebuie ınsotita de un generator denumere prime mari, sunt necesare constructii care sa genereze rapid astfel de numere.Schneier propune urmatoarea varianta ([3]):

1. Se genereaza un numar aleator p de n biti.

2. Se verifica daca primul si ultimul bit sunt 1.

Page 292: Criptografie complet

10 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

3. Se verifica 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 iaalta valoare pentru a. Cinci teste sunt suficiente. Pentru viteza, se recomanda sa seia 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 256elimina 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 eficace de determinare acelui mai mare divizor comun a doua numere ıntregi pozitive. El poate fi extins pentru adetermina si inversele elementelor dintr-un corp finit Zn.

Sa reamintim ıntai algoritmul lui Euclid (forma clasica):Fie r0, r1 ∈ N∗. Se efectueaza secventa de ımpartiri succesive:

r0 = q1r1 + r2 0 < r2 < r1

r1 = q2r2 + r3 0 < r3 < r2... (1)

rm−2 = qm−1rm−1 + rm 0 < rm < rm−1

rm−1 = qmrm.

Deoarece (r0, r1) = (r1, r2) = . . . = (rm−1, rm) = rm, rezulta ca cel mai mare divizorcomun dintre r0 si r1 este rm.

Sa definim acum sirul t0, t1, . . . , tm astfel:

t0 = 0, t1 = 1tj = tj−2 − qj−1tj−1 (mod r0), j ≥ 2 (2)

Teorema 10.4 Pentru 0 ≤ j ≤ m avem rj ≡ tjr1 (mod r0) unde rj si tj sunt definite de(1) respectiv (2).

Demonstratie: Se foloseste o inductie dupa j. Pentru j = 0 si j = 1 afirmatia este banala.O presupunem adevarata pentru j = i−1 si j = i−2 (i ≥ 2) si sa o aratam pentru j = i.Toate calculele se fac modulo r0.

Conform ipotezei de inductie, ri−2 = ti−2r1, ri−1 = ti−1t1. Acum:ri = ri−2 − qi−1ri−1 = ti−2r1 − qi−1ti−1r1 = (ti−2 − qi−1ri−1)r1 = tir1. 2

Corolarul 10.1 Daca (r0, r1) = 1 atunci tm = r−11 (mod r0).

4Multe implementari testeaza divizibilitatea cu numerele prime mai mici decat 256. Eficienta estecrescuta daca se merge pana la 2000

Page 293: Criptografie complet

10.4. ANEXA 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. n0 ←− n, b0 ←− b, t0 ←− 0, t←− 1

2. q ←−[n0

b0

], r ←− n0 − q · b0

3. while r > 0 do3.1. temp←− t0 − q · t3.2. if temp ≥ 0 then temp←− temp (mod n)

else temp←− n− ((−temp) (mod n))3.3. n0 ←− b0, b0 ←− r, t0 ←− t, t←− temp

3.4. q ←−[n0

b0

], r ←− n0 − q · b0

4. if b0 6= 1 then b nu are inversa mod nelse b−1 (mod n) = t.

Exemplul 10.6 Sa calculam 28−1 mod 75, folosind algoritmului lui Euclid extins. Vomavea pe rand:

n0 b0 q r t0 t temp75 28 2 19 0 1 7328 19 1 9 1 73 319 9 2 1 73 3 679 1 9 0 3 67

Deci 28−1 mod 75 = 67.

10.4.2 Teorema chineza a resturilor

Teorema 10.5 Se dau numerele p1, p2, . . . , pr prime ıntre ele si fie n = p1p2 . . . pr. Atuncisistemul de ecuatii

x ≡ ai (mod pi), 1 ≤ i ≤ r

are solutie comuna ın intervalul [0, n− 1].

Demonstratie: Pentru fiecare i, (pi, n/pi) = 1; deci exista numerele yi astfel ıncat

n

pi

· yi ≡ 1 (mod pi).

De asemenea, pentru j 6= i, deoarece pj|(n/pi), avemn

pi

· yi ≡ 0 (mod pj).

Alegem

x =r∑

i=1

n

pi

· yi · ai (mod n).

Page 294: Criptografie complet

12 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA

Pentru orice i, x este o solutie a ecuatiei x ≡ ai (mod pi) deoarece ın Zpiavem

x =n

pi

· yi · ai = ai. 2

Exemplul 10.7 Fie r = 3, p1 = 7, p2 = 11, p3 = 13, deci n = 1001. Notand mi =n

pi

,

avem m1 = 143, m2 = 91 si m3 = 77. Folosind algoritmul lui Euclid, se obtine y1 =5, y2 = 4, y3 = 12. Solutia generala este atunci

x = 715a1 + 364a2 + 924a3 (mod 1001).De exemplu, pentru sistemul

x ≡ 5 (mod 7), x ≡ 3 (mod 11), x ≡ 10 (mod 13)formula de sus dax = 715 · 5 + 364 · 3 + 924 · 10 (mod 1001) = 13907 (mod 1001) = 894.Verificarea se realizeaza reducand x modulo 7, 11 13.

10.5 Exercitii

10.1 Demonstrati lemele 10.1 si 10.2.

10.2 Fie p, q numere prime impare distincte si n = pq. Definim

λ(n) =(p− 1)(q − 1)

cmmdc(p− 1, q − 1)

Folosim un sistem de criptare RSA ın care s-a facut modificarea a · b ≡ 1 (mod λ(n)).(a) Demonstrati ca operatiile de criptare si decriptare sunt operatii inverse si ın acest

sistem.(b) Daca p = 37, q = 79 si b = 7, calculati 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) numereprime 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 arestului. Sa presupunem ca n = pq si dK(y) = ya (mod n). Definim dp = d (mod (p −1)), dq = d (mod (q − 1)) si Mp = q−1 (mod p), Mq = p−1 (mod q). Vom consideraalgoritmul

1. xp ←− ydp (mod p);2. xq ←− ydq (mod q);3. x←−Mp · q · xp + Mq · p · xq (mod n);4. return(x).

Page 295: Criptografie complet

10.5. EXERCITII 13

(a) Demonstrati ca valoarea x returnata este de fapt yd (mod n).(b) Pentru p = 1511, q = 2003 calculati dp, dq, Mp, Mq si apoi decriptati textul y =

152702 folosind algoritmul din acest exercitiu.

10.5 Pentru n = 837, 851 1189 aflati numarul de baze b pentru care n este un numaruln este Euler pseudo-prim.

10.6 Scrieti un program pentru calculul simbolului Jacobi, folosind lemele 10.1 si 10.2.Singura operatie de factorizare permisa este ımpartirea la 2. valori de test:(

610

987

),

(20964

1987

),

(1234567

11111111

)

10.7 Fie

G(n) ={a|a ∈ Z∗

n,(

a

n

)≡ a

n−12 (mod n)

}.

(a) Demonstrati ca G(n) este subgrup al lui Zn. Deci, conform Teoremei lui Lan-grance, daca subgrupul este propriu, atunci

|G(n)| ≤ |Z∗n|

2≤ n− 1

2.

(b) Sa presupunem ca n = pk · q, unde p si q sunt numere impare prime ıntre ele, peste prim si k ≥ 2. Fie a = 1 + pk−1 · q. Demonstrati ca(

a

n

)6≡ a

n−12 (mod n).

(c) Fie n = p1p2 . . . ps unde pi sunt numere prime impare distincte. Sa presupunemca a ≡ 1 (mod p1) si a ≡ 1 (mod p2p3 . . . ps), unde u este un non-reziduu patratic modulop1 (un astfel de a exista, conform teoremei chineze a restului). Demonstrati ca(

a

n

)≡ −1 (mod n), a

n−12 6≡ −1 (mod p2p3 . . . ps)

(deci an−1

2 6≡ −1 (mod n).

(d) Daca n este un numar neprim impar, aratati ca |G(n)| ≤ n− 1

2.

(e) Pe baza celor de mai sus, aratati ca probabiltatea de eroare a testului de primalitateSolovay - Strassen este cel mult 1/2.

10.8 Sa se arate ca orice numar a pentru care testul Miller - Rabin da rezultat fals este unnumar Euler pseudo-prim. Reciproca este adevarata daca si numai daca n ≡ 3 (mod 4).

Page 296: Criptografie complet

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 b2 ≡ a (mod pi−1). Demonstrati ca exista un x ∈ Zp

unic astfel ca x2 ≡ a (mod pi) si x ≡ b (mod pi−1). Gasiti o modalitate eifcienta de calcula lui x.

(b) Aplicati punctul anterior ın urmatoarea situatie: plecand de la congruenta 62 ≡17 (mod 19), aflati radacinile patrate ale lui 17 modulo 192 si modulo 193.

(c) ∀i ≥ 1, aratati ca numarul solutiilor congruentei x2 ≡ a (mod pi) este 0 sau 2.

10.10 Folosind algoritmul lui Euclid extins, calculati inversele:

17−1 (mod 101), 357−1 (mod 1234), 3125−1 (mod 9987)

10.11 Fie aplicatia u : Z105 −→ Z3 × Z5 × Z7 definita prin

u(x) = (x (mod 3), x (mod 5), x (mod 7))

Sa se gaseasca o formula pentru u−1 si sa se determine cu ajutorul ei u−1(2, 2, 3).

10.12 Sa se rezolve sistemul de congruente

x ≡ 12 (mod 25), x ≡ 9 (mod 26), x ≡ 23 (mod 27)

10.13 Sa se rezolve sistemul de congruente

13 · x ≡ 4 (mod 99), 15 · x ≡ 56 (mod 101)

Page 297: Criptografie complet

Bibliografie

[1] D. Stinton, Cryptography, Theory et Pratice, Second Edition, Chapman & Hall/CRC2002

[2] A. Salomaa, Criptografie cu chei publice, Ed. Militara, 1994

[3] B. Schneier, Applied Cryptography, Second Edition, John Wiley & Sons, 1996

[4] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography,

[5] R. Rivest, A. Shamir, L. Adleman, A Method for Obtaining Digital Signatures andPublic-Key Cryptosystems, Communications of the ACM, Vol. 21 (2), 1978, pages120–126.

15

Page 298: Criptografie complet

Prelegerea 11

Securitatea sistemului RSA

Vom trece ın revista cateva modalitati de atac ale sistemelor de criptare RSA.Ca o prima observatie, RSA nu rezista la un atac de tipul meet-in-the middle, strategia

fiind cea prezentata ın cazul general al sistemelor de criptare cu cheie publica. De aceea,un sistem RSA este ınsotit permanent de un certificat generat conform unui protocolPKI (Public Key Infrastructure) si – bineınteles – de un generator de numere prime.

11.1 Informatii despre p si q

Evident, cunoasterea lui φ(n) este suficienta pentru spargerea sistemului. In acest caz,totul se reduce la rezolvarea ın N ′timesN a sistemului{

pq = n(p− 1)(q − 1) = φ(n)

sau - dupa substitutie - a ecuatiei

X2 − (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 unulde altul. In acest caz (cu p > q), vom avea (p− q)/2 un numar foarte mic, iar (p + q)/2un 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 x2−n este patrat perfect; fie acesta y2. Atunci vom avea imediatp = x + y, q = x− y.

1

Page 299: Criptografie complet

2 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Exemplul 11.1 Pentru n = 97343 se gaseste√

n = 311, 998. Apoi 3122−n = 1, ceea ceconduce 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 exista un algoritm care calculeaza exponentul de decriptare a, acesta poate fi utilizatca oracol1 ıntr-un algoritm probabilist care descompune n. Deci, se poate spune ca dacaa este descoperit, secretul factorizarii lui n este compromis; deci Bob va trebui sa schimbenu numai exponentul de decriptare, ci si modulul n.

Algoritmul de descompunere care va fi descris este de tip Las Vegas.

Definitia 11.1 Fie ε (0 ≤ ε < 1). Un algoritm tip Las Vegas este un algoritm probabilistcare, pentru orice aparitie a unei probleme, poate oferi un raspuns - totdeauna corect -sau poate esua si sa nu dea nici un raspuns, cu probabilitate ε.

Observatia 11.1 Un algoritm Las Vegas poate sa nu dea raspuns, dar daca da - acestraspuns este sigur corect. Algoritmii Monte Carlo ın schimb dau totdeauna raspuns, desiacesta uneori este incorect.

Deci, daca avem un algoritm Las Vegas pentru rezolvarea unei probleme, putem sa ılapelam de mai multe ori, pana se obtine un raspuns. Probabilitatea ca el sa nu raspundala m tentative consecutive este εm.

Sa consideram un algoritm ipotetic A care calculeaza exponentul de decriptare aplecand de la exponentul de criptare b. Se poate descrie atunci un algoritm Las Vegascare utilizeaza A ca oracol. El este bazat pe studiul radacinilor patrate ale unitatii modulon, cand n = pq, p si q fiind numere prime impare. In acest caz x2 ≡ 1 (mod p) are casingure solutii x ≡ ±1 (mod p). La fel, x2 ≡ 1 (mod q) are solutiile x ≡ ±1 (mod q).

Din Teorema chineza a resturilor rezulta ca x2 ≡ 1 (mod n) este echivalenta cux2 ≡ 1 (mod p) si x2 ≡ 1 (mod q). Vom avea deci patru radacini patrate ale unitatiimodulo n, care pot fi calculate cu Teorema chineza a resturilor. Doua sunt solutiile 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 403sunt 1, 92, 311 si 402.

1program care raspunde numai cu Da/Nu la o ıntrebare - tip a utilizatorului

Page 300: Criptografie complet

11.2. EXPONENTUL DE DECRIPTARE 3

Sa presupunem acum ca x este o radacina patrata netriviala a lui 1 modulo n, deci osolutie a ecuatiei x2 ≡ 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(x−1, 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 descompunerealui n, construind algoritmul de mai jos, care foloseste A ca oracol:

1. Se genereaza aleator w ∈ Z∗n, w 6= 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 = 2sr, r impar;6. v ←− wr (mod n);7. if v ≡ 1 (mod n) then Stop (esec);8. while v 6≡ 1 (mod n) do

8.1. v0 ←− v;8.2. v ←− v2 (mod n);

9. if v0 ≡ −1 (mod n) then Stop (esec);else x←− cmmdc(v0 +1, n), Stop (p = x sau q = x).

Deci, cunoasterea unei radacini patrate netriviale a lui 1 modulo n determina des-compunerealui n printr-un calcul de complexitate polinomiala.

Exemplul 11.3 Fie n = 89855713, b = 34986517, a = 82330933 si sa consideram cas-a tras aleator w = 5. Vom avea:

ab− 1 = 23 · 360059073378795.La pasul 6 se obtine v = 85877701, iar la pasul 8.2, v = 1. La pasul 9 se va obtine

atunci cmmdc(85877702, n) = 9103.Acesta este un factor al lui n; celalalt este n/9103 = 9871.

Trebuie demonstrata urmatoarea afirmatie:

Afirmatia 11.1 Procedeul descris este un algoritm.

Demonstratie: Ca o prima observatie, daca exista suficienta sansa si w este multiplu de psau q, atunci el se factorizeaza imediat (pasul 2).

Daca w este prim cu n, atunci se calculeaza succesiv wr, w2r, . . . prin ridicari succesivela patrat, pana se ajunge la un t cu w2tr ≡ 1 (mod n). Deoarece ab − 1 = 2sr ≡0 (mod φ(n)), se stie ca w2sr ≡ 1 (mod n). Deci bucla while va efectua maxim s iteratii.

La sfarsitul buclei se va gasi o valoare v0 6≡ 1 (mod n) cu v20 ≡ 1 (mod n). Daca

v0 ≡ −1 (mod n), algoritmul esueaza; altfel, v0 este o radacina patrata netriviala a lui 1modulo 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.

Page 301: Criptografie complet

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 dedecriptare a este mic; mai exact, trebuie verificate conditiile

3a < n1/4, q < p < 2q.

Deci, daca n are j biti, atunci atacul va fi eficient pentru orice sistem de criptare RSA ıncare a are mai putin de j/4− 1 biti, iar p si q sunt suficient de apropiati2.

Din conditia 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 > q2 rezulta q <√

n, deci

0 < n− φ(n) = pq − (p− 1)(q − 1) = p + q − 1 < 2q + q − 1 < 3q < 3√

n

Pe baza acestor relatii, putem evalua∣∣∣∣∣ bn − t

a

∣∣∣∣∣ =

∣∣∣∣∣ab− tn

an

∣∣∣∣∣ =

∣∣∣∣∣1 + t(φ(n)− n)

an

∣∣∣∣∣ <3t√

n

an=

3 · ta√

n

Deoarece t < a (evident), vom avea 3 · t < 3 · a < n1/4 si deci∣∣∣∣∣ bn − t

a

∣∣∣∣∣ <1

a · n1/4<

1

3 · a2.

Rezulta ca valoarea fractiei t/a este foarte apropiata de valoarea lui b/n. Din teoriafractiilor continue se stie ca orice aproximare suficient de buna a lui b/n este una dinconvergentele dezvoltarii ın fractie continua a lui b/n. Sa descriem acest procedeu.

Definitia 11.2 O fractie continua (finita) este un m-tuplu de numere naturale [q1, q2, . . . , qm]care reprezinta notarea expresiei

q1 +1

q2 + 1q3+...+ 1

qm

Fie a, b doua numere ıntregi pozitive prime ıntre ele si (q1, q2, . . . , qm) secventa caturilor

obtinute prin aplicarea algoritmului lui Euclid. Se verifica usor caa

b= [q1, q2, . . . , qm].

Vom spune ca [q1, q2, . . . , qm] este dezvoltarea ın fractie continua a lui a/b.

2Bob poate fi tentat sa aleaga astfel de parametri, pentru cresterea vitezei de decriptare; reamintim,RSA este un sistem relativ lent.

Page 302: Criptografie complet

11.2. EXPONENTUL DE DECRIPTARE 5

Acum, pentru fiecare j (1 ≤ j ≤ m) definim Cj = [q1, q2, . . . , qj] ca fiind a j-aconvergenta a lui [q1, q2, . . . , qm]. Fiecare Cj se poate scrie ca un numar rational cj/dj,unde valorile cj si dj se pot defini recursiv astfel:

cj =

1 daca j = 0q1 daca j = 1qj · cj−1 + cj−2 daca j ≥ 2

dj =

0 daca j = 01 daca j = 1qj · dj−1 + dj−2 daca j ≥ 2

Exemplul 11.4 Sa dezvoltam ın fractie continua 34/99. Folosind algoritmul lui Euclidse obtine [0, 2, 1, 10, 3], care este notarea fractiei

34

99= 0 +

1

2 + 11+ 1

10+13

Convergentele acestei fractii 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∣∣∣∣ab − c

d

∣∣∣∣ <1

2 · d2

atunci c/d este una din convergentele dezvoltarii ın fractie continua a lui a/b.

Sa revenim acum la sistemul de criptare RSA. In conditiile 3a < n1/4 si q < p < 2q,putem da urmatorul algoritm de factorizare a lui n:

1. Plecand de la n si b (publice), se afla dezvoltarea ın fractie continua a lui b/n(folosind algoritmul lui Euclid).

2. Se parcurg pe rand convergentele acestei dezvoltari. Daca exista convergenta t/a

care verifica t|(a · b− 1), se calculeaza φ(n) =a · b− 1

t.

3. Cu n si φ(n) se afla p si q conform metodei din prima sectiune a acestei prelegeri.

Daca sunt ındeplinite ipotezele de la ınceputul acestui paragraf, Teorema 11.1 asigura caexista o convergenta care satisface pasul 2 al algoritmului.

Tinand cont de observatiile anterioare, algoritmul lui Wiener poate fi detaliat:

Page 303: Criptografie complet

6 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Intrare: [q1, q2, . . . , qm] - dezvoltarea ın fractie continua a lui b/n.Algoritm:1 c0 ←− 1, c1 ←− q1, d0 ←− 0, d1 ←− 1;2. for j ←− 1 to m do

2.1. if cj|(dj · b− 1) then2.1.1. m←− (dj · b− 1)/cj;2.1.2. Fie p, q radacinile ecuatiei x2 − (n−m + 1)x + n = 02.1.3. if p, q ∈ Zn then return(p, q);

2.2. j ←− j + 1;2.3. cj ←− qj · cj−1 + ck−2, dj ←− qj · dj−1 + dj−2;

3. return(”esec”);

Exemplul 11.5 Sa presupunem ca n = 160523347, b = 60728973. Dezvoltarea ın fractiecontinua a lui b/n este

[0, 2, 1, 1, 1, 4, 12, 102, 1, 1, 2, 3, 2, 2, 36]

Primele convergente sunt: 0,1

2,1

3,2

5,3

8,14

37. . .

Primele cinci convergente nu verifica conditia de divizibilitate. Pentru 14/37 avemınsa:

m =37 · 60728973− 1

14= 160498000

Rezolvand ecuatia x2 − 25348x + 160523347 = 0 obtinem radacinile 12347 si 13001. Deciavem factorizarea

160523347 = 12347 · 13001

11.3 Informatie partiala despre textul clar

Sa studiem putin informatia din textul clar care ar putea trada sistemul de criptare RSA.Stiind ca y = eK(x), vom considera doua exemple de informatie partiala data de y desprex:

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 fi utilizat caoracol pentru regasirea textului clar x. Altfel spus, a calcula una din aceste functii estela fel de dificil cu a decripta tot textul y.

Faptul ca cele doua functii sunt polinomial echivalente rezulta din

jum(y) = par(y · eK(2) mod n) par(y) = jum(y · eK(2−1) mod n)

Page 304: Criptografie complet

11.3. INFORMATIE PARTIALA DESPRE TEXTUL CLAR 7

si din relatia eK(x1x2) = eK(x1)eK(x2).

Sa aratam acum cum se poate calcula x = dK(y) cu ajutorul unui oracol care davaloarea jum(y):

1. k ←− [log2n];2. for i = 0 to k do

2.1. yi ←− jum(y)2.2. y ←− (y · eK(2)) mod n

3. jos←− 0;4. sus←− n;5. for i = 0 to k do

5.1. mijloc←− (jos + sus)/2;5.2. if yi = 1 then jos←− mijloc

else sus←− mijloc6. x←− [sus]

La pasul 2 se calculeaza yi = jum(y · (eK(2))i) = jum(eK(x · 2i)) pentru 0 ≤ i ≤ [log2 n].Se observa ca

jum(eK(x)) = 0⇐⇒ x ∈[0,

n

2

)jum(eK(2x)) = 0⇐⇒ x ∈

[0,

n

4

)∪

[n

2,3n

4

)jum(eK(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. CalculameK(2) = 946. Sa presupunem ca oracolul jum din pasul 3 da urmatoarele raspunsuri:

i 0 1 2 3 4 5 6 7 8 9 10yi 1 0 1 0 1 1 1 1 1 0 0

Cautarea binara este realizata ın tabelul:

Page 305: Criptografie complet

8 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

i jos mijloc sus0 0, 00 728, 50 1457, 001 728, 50 1092, 75 1457, 002 728, 50 910, 62 1092, 753 910, 62 1001, 69 1092, 754 910, 62 956, 16 1001, 695 956, 16 978, 92 1001, 696 978, 92 990, 30 1001, 697 990, 30 996, 00 1001, 698 996, 00 998, 84 1001, 699 998, 84 1000, 26 1001, 69

10 998, 84 999, 55 1000, 26998, 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 factoriprimi. De aceea aici vom face doar o trecere ın revista a celor mai cunoscuti algoritmi defactorizare.

Astfel, cel mai simplu pare a fi ciurul lui Eratostene care consta ın ıncercarea deımparti numarul n impar prin toate numerele ıntregi impare din intervalul [3,

√n]. Pentru

n < 1012 tehnica este destul de eficienta.

11.4.1 Metoda p− 1

Un algoritm simplu care se poate aplica uneori si la numere mari este metoda p − 1enuntata de Pollard ın 1974. El foloseste esential trei variabile de intrare: numaruln (impar) care trebuie descompus, o margine B si un numar oarecare g ∈ [2, n − 1].Descrierea algoritmului este:

Intrare: n, B, g.1. a←− g2. for j = 2 to B do a←− aj mod n3. 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 functioneaza acest algoritm:Presupunem ca p este un divizor prim al lui n si ca toti divizorii primi ai lui p− 1 – la

puterile la care apar ın descompunerea lui p−1 – sunt mai mici decat B. Atunci p−1|B!.La terminarea ciclului de la pasul 2, avem

a ≡ gB! (mod n) deci a ≡ gB! (mod p)

Page 306: Criptografie complet

11.4. ALGORITMI DE DESCOMPUNERE IN FACTORI PRIMI 9

deoarece p|n. Cum gp−1 ≡ 1 (mod p) conform teoremei lui Fermat (ın afara de cazulcand p|g) si cum (p− 1)|B!, se obtine 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 finala

15770708441 = 135979 · 115979.Descompunerea a reusit deoarece 135978 are numai factori primi ”mici”:

135978 = 2 · 3 · 131 · 173. Luand deci B ≥ 173 se obtine 135978|B!.

Observatia 11.2 Conditia ca metoda sa functioneze este ca divizorii primi la puterilela care apar ın descompunerea lui p−1 sa fie mai mici decat b. Daca s-ar considera cadoar divizorii primi sa verifice aceasta conditie, rezultatul ar fi fals. Astfel, sa consideramp = 17 si B = 3. Atunci p− 1 = 24. 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 fi 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, serecomanda folosirea numerelor prime tari.

Definitia 11.3 Se numeste numar prim tare un numar prim p care verifica conditiile: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 exemplificare amales algoritmul lui Gordon:

1. Se genereaza aleator doua numere prime mari s, t distincte.2. Se alege un numar aleator i0. Se afla primul numar prim de forma 2 · i · t + 1, undei←− i0, i0 + 1, . . .. Fie r = 2 · i · t + 1 acest numar prim.3. p0 ←− 2 · (sr−2 (mod r)) · s− 1;4. Se alege un numar aleator j0. Se afla primul numar prim de forma p0 + 2 · j · r · s,unde j ←− j0, j0 + 1, . . .. Fie p = p0 + 2 · j · r · s acest numar prim.5. return(p)

Teorema 11.2 Numarul p generat de algoritmul Gordon este un numar prim tare.

Page 307: Criptografie complet

10 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Demonstratie: Cum r 6= s, vom avea sr−1 ≡ 1 (mod r) (Fermat). Deci p0 ≡ 1 (mod r) sip0 ≡ −1 (mod s). Acum:

(1) p− 1 = p0 + 2 · j · r · s− 1 ≡ 0 (mod r), deci p− 1 are pe r drept divizor prim.(2) p + 1 = p0 + 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, i0, j0;- Se testeaza daca s si t sunt numere prime, folosind algoritmul Miller - Rabin;- In caz afirmativ, se aplica algoritmul lui Gordon, bazat de asemenea pe algoritmul

Miller - Rabin.

De multe ori, pentru criptarea RSA este suficient sa se foloseasca numere prime mari

p cu proprietatea cap− 1

2este de asemenea numar prim.

Exemplul 11.8 In practica este folosit frecvent exponentul de criptare b = 3. In acestcaz ınsa, este necesar ca p− 1 si q − 1 sa nu fie divizibile cu 3. Rezultatul este o criptareextrem de rapida, deoarece se foloseste o singura ınmultire modulara si o singura ridicarela patrat modulara.

De asemenea este utilizat des si b = 216 + 1 = 65537. Acest numar are numai doi de1 ın reprezentarea binara, asa ca o criptare foloseste 16 ridicari la patrat modulare si oınmultire modulara.

11.4.2 Algoritmul lui Dixon si sita patratica

Algoritmul lui Dixon se bazeaza pe o idee extrem de simpla: daca se pot afla douanumere x, y cu x 6≡ y (mod n) dar x2 ≡ y2 (mod n), atunci cmmdc(x − y, n) este undivizor netrivial al lui n.

Metoda utilizeaza o baza B de factori primi ”mici”. Se cauta ıntai mai multe numerex pentru care divizorii primi ai lui x2 mod n sunt ın B. Se formeaza apoi produse cuaceste numere ın asa fel ca fiecare factor prim al patratului produsului sa apara de unnumar par de ori. Aceasta conduce la o relatie x2 ≡ y2 (mod n) care va da – eventual –o descompunere a lui n.

Exemplul 11.9 Fie n = 15770708441 si alegem multimea B= {2, 3, 5, 7, 11, 13}. Se-lectam

83409341562 ≡ 3 · 7 (mod n)120449429442 ≡ 2 · 7 · 13 (mod n)27737000112 ≡ 2 · 3 · 13 (mod n)

Daca se ia produsul acestor trei congruente, se ajunge la

(8340934156 · 12044942944 · 2773700011)2 ≡ (2 · 3 · 7 · 13)2 (mod n)

Page 308: Criptografie complet

11.5. ALTE TIPURI DE ATAC 11

Reducand continutul parantezelor modulo n, se obtine95034357852 ≡ 5462 (mod n).

Vom calcula acum cmmdc(9503435785− 546, 15770708441) = 115759,care va da un divizor 115759 al lui n.

Fie B= {p1, p2, . . . , pB}; consideram un numar C ”putin” mai mare decat B (de exempluC = B + 10) si presupunem ca am gasit C relatii de forma

x2j ≡ p

α1j

1 · pα2j

2 · . . . · pαBj

B 1 ≤ j ≤ C

Pentru fiecare j se considera vectorul binar (elementele sale se iau modulo 2)αj = (α1j, . . . , αBj) ∈ ZB

2 .Daca se poate determina o submultime a acestor vectori a caror suma modulo 2 este

(0, 0, . . . , 0), patratul produsului elementelor xj corespunzatoare va avea fiecare divizor ınB 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 verifica imediat ca α1 + α2 + α3 ≡ (0, 0, 0, 0, 0, 0) (mod 2).

Evident, a cauta o submultime de C vectori de suma nula modulo 2 revine la a cauta orelatie de dependenta liniara (ın Z2) ıntre acesti vectori. Daca C > B, o asemenea relatieexista si poate fi gasita usor prin eliminare gaussiana.

Ar mai fi de vazut cum sa se obtina acei xj pentru care x2j se descompun ın factori

primi din baza B. Sunt mai multe metode posibile pentru aceasta; de exemplu, ciurulpatratic - construit de Pomerance - foloseste numere ıntregi de forma

xj = j + [√

n], j = 1, 2, . . . .

De remarcat ca daca B este mare, este foarte posibil ca un ıntreg xj sa se descompunaın B, dar numarul acestor xj trebuie sa creasca pentru a cauta relatiile de dependenta.Se arata ca alegerea optima pentru B este ın jur de√

e√

logn log logn.

11.5 Alte tipuri de atac

11.5.1 Atac bazat pe proprietati multiplicative ale criptarii RSA

Fie m1, m2 doua texte clare si c1 respectiv c2 textele criptate corespunzatoare. Vom avea

(m1m2)b ≡ mb

1mb2 ≡ c1c2 (mod n)

Aceasta proprietate de hmomorfism a criptarii poate oferi unui adversar activ posibilitateaunui atac cu text clar ales.

Page 309: Criptografie complet

12 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Sa presupunem ca Oscar vrea sa decripteze mesajul c = mb (mod n) trimis de Boblui Alice, iar Alice are amabilitatea sa ıi decripteze lui Oscar orice text criptat primit(ınafara de c, bineinteles). Atunci Oscar va alege un numar aleator x ∈ Z∗

n, va calculac1 = c · xb (mod n) si va solicita decriptarea lui. Alice va decripta pentru el m1 =ca1 (mod n). Deoarece

m1 ≡ ca1 ≡ ca(xb)a ≡ mx (mod n)

Oscar va afla imediat m = m1 · 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 preferaexponenti mici de criptare (cum este b = 3). Aceasta alegere are unele slabiciuni, carepermit atacuri ın anumite conditii.

Astfel, sa presupunem ca Alice doreste sa trimita acelasi text clar m la trei destinataridiferiti, care au modulele ni, dar acelasi exponent de criptare b = 3. Deci textele criptatevor fi ci = m3 (mod ni) i = 1, 2, 3. Oscar le intercepteaza si rezolva sistemul

x ≡ c1 (mod n1), x ≡ c2 (mod n2), x ≡ c3 (mod n3)

folosind teorema chineza a resturilor, care asigura existenta unui x ∈ [0, n1 · n2 · n3).Deoarece m3 < n1 · n2 · n3, va rezulta ca x = m3. Deci Oscar va afla textul clar mextragand radacina de ordinul 3 din solutıa x.

In general, exponenti mici de criptare asigura o securitate redusa pentru mesajele micim: daca m < n1/b atunci textul clar poate fi dedus din textul criptat c = mb calculandradacina de ordin b a lui c.

Folosirea unui modul comun de criptare de catre mai multi utilizatori permite deasemenea un atac usor. Sa presupunem ca Alice trimite acelasi mesaj m catre doi utiliza-otri care au cheile publice b1, b2 dar acelasi modul n. Deci

c1 ≡ mb1 (mod n), c2 ≡ mb2 (mod n).

Fara a micsora generalitatea, putem presupune ca cmmdc(b1, b2) = 1. Oscar va folosialgoritmul lui Euclid pentru a determina numerele ıntregi r, s astfel ca

r · b1 + s · b2 = 1

Unul din numerele r, s este negativ; sa presupunem ca este r (pentru s negativ se pro-cedeaza analog). Atunci Oscar obtine textul clar m folosind egalitatea

(c−11 )−r · cs

2 ≡ m (mod n)

Page 310: Criptografie complet

11.6. ALTE SISTEME DE CRIPTARE INRUDITE CU RSA 13

11.5.3 Atacuri ciclice

Fie c = mb (mod n) un text criptat si k un ıntreg pozitiv astfel ca

cbk ≡ c (mod n)

(un astfel de k exista totdeauna, deoarece criptarea RSA este de fapt o permutare ınspatiul Zn al textelor clare). Rezulta ca

cbk−1 ≡ m (mod n)

Aceasta observatie conduce la un atac ciclic: Oscar calculeaza cbi(mod n) pentru i =

1, 2, . . . pana gaseste un k astfel ca cbk ≡ c (mod n). Atunci va decripta c ın cbk−1 ≡m (mod n).

Un atac ciclic generalizat consta ın aflarea celui mai mic ıntreg pozitiv k astfel cacmmdc(cbk − c, n) > 1. Vom avea implicatia

cbk ≡ c (mod p), cbk 6≡ c (mod q) =⇒ k = p

si similarcbk 6≡ c (mod p), cbk ≡ c (mod q) =⇒ k = q

In ambele cazuri s-a obtinut factorizarea lui n.Pe de-alta parte, daca

cbk ≡ c (mod p), cbk ≡ c (mod q) =⇒ k = nsicbk ≡ c (mod n)

In acest caz s-a reusti decriptarea m = cbk−1(mod n).

Folosirea unor numere prime tari asigura o protectie suficienta pentru acest gen deatac.

11.6 Alte sisteme de criptare ınrudite cu RSA

11.6.1 Sistemul de criptare Rabin

Sistemul de criptare Rabin este o varianta a sistemului RSA (propusa ın 1979), care oferao securitate de calcul echivalenta. Descrierea sa este:

Fie n = pq unde p, q sunt numere prime distincte, p, q ≡ 3 (mod 4). Se iaP = C= Zn si K= {(n, p, q, B) | 0 ≤ B ≤ n− 1}.Pentru cheia K = (n, p, q, B) se definesc:

eK(x) = x(x + B) (mod n) dK(y) =

√B2

4+ y − B

2

Page 311: Criptografie complet

14 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

Observatia 11.3 Numerele prime n cu n ≡ 3 (mod 4) se numesc ”numere Blum”.

Exista patru texte clare distincte care se pot cripta ın acelasi text. Sa detaliem aceastaafirmatie:

Fie α una din cele patru radacini patrate modulo n ale unitatii, si x ∈ Zn. Efectuamcalculele

eK

(x +

B

2

)− B

2

)= α2

(x +

B

2

)2

−(

B

2

)2

= x2 + Bx = eK(x)

(calculele s-au realizat ın Zn, iar ımpartirea la 2 si 4 s-a facut prin ınmultirea ın Zn

cu 2−1 respectiv 4−1).Cele patru texte clare care se cifreaza ın eK(x) sunt

x, −x−B, α(x + B/2)−B/2 si −α(x + B/2)−B/2,

unde α este o radacina patrata netriviala a unitatii modulo n.Verificarea 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 informatii suplimentare.Sa vedem cum se realizeaza decriptarea. Bob primeste mesajul criptat y si ıncearca

sa sa determine x astfel ca x2 + Bx ≡ y (mod n).Aceasta este o ecuatie de gradul doi ın x. Termenul de gradul 1 se poate elimina

folosind substitutia x1 = x + B/2 (sau – echivalent – x = x1 −B/2).Se ajunge la ecuatia

x21 ≡

B2

4+ y (mod n).

Notand membrul drept cu C, aceasta ecuatie se scrie x21 ≡ C (mod n). Deci decriptarea

se reduce la extragerea radacinilor patrate modulo n. Aceasta echivaleaza cu rezolvareasistemului

x21 ≡ C (mod p) x2

1 ≡ C (mod q)

care, prin combinarea solutiilor fiecarei ecuatii va da patru radacini patrate mo-dulo n.Intr-o criptare corecta, C este totdeauna un rest patratic modulo p si q. Daca p ≡

3 (mod 4), exista o formula simpla pentru extragerea radacinilor patrate dintr-un restpatratic C modulo p. Avem (calculele se fac modulo p):

(±C(p+1)/4

)2≡ C(p+1)/2 ≡ C(p−1)/2C ≡ C

(s-a folosit Teorema 10.1). Avem deci cele patru radacini patratice

±C(p+1)/4 (mod p), ±C(q+1)/4 (mod q)

care – prin combinare pe baza teoremei chineze a resturilor – dau cele patru radacinipatrate ale lui C.

Page 312: Criptografie complet

11.6. ALTE SISTEME DE CRIPTARE INRUDITE CU RSA 15

Observatia 11.4 De remarcat ca nu se cunoaste un algoritm polinomial determinist pen-tru extragerea radacinilor patratice modulo p pentru p ≡ 1 (mod 4); ın aceasta situatieexista doar algoritmi Las Vegas.

Dupa determinarea acestor radacini x1, se afla x = x1 − B/2. Aceasta da formula dedecriptare din enuntul metodei Rabin.

Exemplul 11.11 Fie n = 77 = 7 · 11 si B = 9. Functia de criptare esteeK(x) = x2 + 9x (mod 77)

iar cea de decriptare

dK(y) =√

1 + y − 43 (mod 77).Sa presupunem ca Bob vrea sa decripteze textul y = 22. El va trebui sa determine

radacinile patrate ale lui 23 modulo 7 si 11. Cum aceste doua module sunt congruente cu3 modulo 4, se poate aplica formula aratata anterior:

23(7+1)/4 ≡ 22 ≡ 4 (mod 7) 23(11+1)/4 ≡ 13 ≡ 1 (mod 11).

Utilizand teorema chineza a resturilor, se obtin radacinile patrate ale lui 23 modulo 77:

11 · 2 · a + 7 · 8 · b (mod 77)

unde a = ±4, b = ±1. Calculand, se obtin valorile ±10, ±32. Cele patru texte clareposibile (calculate modulo 77) vor fi deci:

10− 43 = 44, 67− 43 = 24, 32− 43 = 66, 45− 43 = 2.

Se verifica imediat ca toate aceste patru texte clare se cripteaza ın 22.

Sa studiem acum securitatea sistemului de criptare Rabin. Sa presupunem ca exista unalgoritm de decriptare A; acesta poate fi atunci utilizat ıntr-un algoritm Las Vegas caredescompune modulul n cu probabilitate 1/2; algoritmul este urmatorul:

1. Se alege aleator r ∈ Zn;2. y ←− r2 −B2/4 mod n;3. x←− A(y);4. x1 ←− x + B/2;5. if x1 ≡ ±r (mod n) then Stop (esec)

else cmmdc(x1 + r, n) = p sau q, Stop

Sa observam ıntai ca y = eK

(r − B

2

), deci la pasul 3 se decripteaza x sub forma r−B/2.

Cum la pasul 5. avem x21 ≡ r2 (mod n), rezulta x1 ≡ ±r (mod n) sau x1 ≡ ±αr (mod n),

unde α este o radacina netriviala modulo n a unitatii. In al doilea caz, n|(x1− r)(x1 + r)

Page 313: Criptografie complet

16 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA

si n nu divide nici unul din cei doi factori. Deci, calculul lui cmmdc(x1 + r, n) saucmmdc(x1 − r, n) va da p sau q, adica o descompunere a lui n.

Sa calculam probabilitatea de succes a algoritmului ([2]), din n− 1 extrageri posibileale lui r. Pentru doua resturi nenule r1, r2, se defineste

r1 ∼ r2 ⇐⇒ r21 ≡ r2

2 (mod n)

Aceasta este evident o relatie de echivalentToate clasele de echivalenta din Z∗n sunt de

cardinal patru, fiecare fiind de forma [r] = {±r,±′alr}. In algoritmul anterior, doua valoridintr-o clasa de echivalenta conduc la acelasi y. Sa consideram un x1 calculat plecand dela valoarea x returnata de oracolul A pentru un y dat. x1 este un element din [r]. Dacax1 = ±r, algoritmul esueaza; daca x1 = ±′alr, el reuseste sa descompuna n. Cum r estealeator, cele patru posibilitati sunt echi-probabile, deci algoritmul da reusita ın 50% dincazuri.

11.7 Exercitii

11.1 Folosind metoda p − 1 si diverse margini B, factorizati 262063 si 9420457. Cateste B pentru fiecare caz ?

11.2 Fie n = 317940011 si b = 7753781. Descompuneti n ın factori, folosind algoritmullui Wiener.

11.3 Consideram algoritmul lui Rabin cu p = 199, q = 211, n = pq si B = 1357.(a) Criptati mesajul 32767;(b) Determinati cele 4 mesaje clare care duc la textul criptat y = eK(32767).

Page 314: Criptografie complet

Bibliografie

[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography

[2] D. Stinton, Cryptography, theory et practice, Chapman & Hall/CRC, 2002

[3] A. Salomaa, Criptografie cu chei publice, Ed. Militara, 1994

[4] M.J. Wiener - Cryptanalysis of short RSA secret exponents, IEEE Trans on Informa-tion Theory, 36 (1990), 553-558

17

Page 315: Criptografie complet

Prelegerea 12

Sistemul de criptare El Gamal

12.1 Descrierea algoritmului de criptare El Gamal

Sistemul de criptare El Gamal1, prezentat ın 1985 (vezi [1]) de Taher ElGamal, se bazeazape problema logaritmului discret, care este urmatoarea:

Fie p numar prim si α, β ∈ Zp, β 6= 0.Sa se determine a ∈ Zp−1 astfel ca

α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 fi exprimate ca puteri

ale lui α:a 0 1 2 3 4 5 6 7 8 9

6a (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 10log6β 0 9 2 8 6 1 3 7 4 5

Pentru α = 3 ınsa nu vom avea totdeauna solutie. Deoarece

a 0 1 2 3 4 5 6 7 8 93a (mod 11) 1 3 9 5 4 1 3 9 5 4

valorile β ∈ {2, 6, 7, 8, 10} nu pot fi exprimate ca logaritmi ın baza 3. Altfel spus, ecuatialog3x = β nu are solutie ın Z11 pentru aceste valori ale lui b.

1Implementari ale sistemului sunt continute ın softuri pentru GNU Privacy Guard si PGP – pentru alista cele mai cunoscute aplicatii.

1

Page 316: Criptografie complet

2 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Observatia 12.1 Pentru problema logaritmului discret, nu este obligatoriu ca p sa fienumar prim. Important este ca α sa fie radacina primitiva de ordinul p − 1 a unitatii:∀i (0 < i < p− 1), αi 6≡ 1 (mod p). Teorema lui Fermat asigura αp−1 ≡ 1 (mod p).

La o alegere convenabila a lui p, problema este NP - completa. Pentru siguranta, pse alege de minim 512 biti2 iar p− 1 sa aiba cel putin un divizor prim ”mare”. Pentru unastfel de modul p, spunem ca problema logaritmului discret este dificila ın Zp. Utilitateaacestei cerinte rezida ın faptul ca, desi este foarte dificil de calculat un logaritm discret,operatia inversa – de exponentiere – este foarte simpla (dupa cum s-a vazut la sistemulRSA).

Sistemul de criptare El Gamal este urmatorul:

Fie p numar prim pentru care problema logaritmului discret ın Zp este dificila, siα ∈ Z∗

p primitiv.Fie P= Z∗

p , C= Z∗p × Z∗

p siK= {(p, α, a, β)| β ≡ αa (mod p)}.

Valorile p, α, β sunt publice, iar a este secret.Pentru K = (p, α, a, β) si k ∈ Zp−1 aleator (secret) se defineste

eK(x, k) = (y1, y2)

unde y1 = αk (mod p), y2 = x · βk (mod p).Pentru y1, y2 ∈ Z∗

p se defineste

dK(y1, y2) = y2 · (ya1)−1 (mod p)

Verificarea este imediata:

y2 · (ya1)−1 ≡ x · βk · (αka)−1 ≡ x · βk(βk)−1 ≡ x (mod p)

Sistemul este evident nedeterminist: criptarea depinde de x si de o valoare aleatoarealeasa de Alice. Exista deci mai multe texte criptate corespunzatoare unui anumit textclar.

Exemplul 12.2 Sa alegem p = 2579, α = 2, a = 765. Prin calcul se obtine β =2765 (mod 2579) = 949.

Sa presupunem ca Alice vrea sa trimita mesajul x = 1299. Ea alege aleator k (saspunem k = 853) si calculeaza y1 = 2853 = 435, apoi y2 = 1299 · 949853 = 2396 (toatecalculele se fac modulo 2579).

Cand Bob primeste mesajul criptat y = (435, 2396), el va determina

x = 2396 · (435765)−1 = 1299 (mod 2579).

2Pentru o securitate pe termen lung se recomanda 1024 biti ([3]).

Page 317: Criptografie complet

12.2. CALCULUL LOGARITMULUI DISCRET 3

Observatia 12.21. Un dezavantaj al sistemului El Gamal consta ın dublarea lungimii textului criptat

(comparativ cu lungimea textului clar).2. Daca (y1, y2), (z1, z2) sunt textele criptate ale mesajelor m1, m2 atunci se poate

deduce imediat un text criptat pentru m1m2 : (y1z1, y2z2). Similar poate fi dedusa o

criptare pentru 2m1 (sau 2m2). Acest lucru face sistemul El Gamal sensibil la un atac cutext clar ales.

3. Indicatia ca pentru criptarea a doua texte diferite sa se foloseasca valori diferite aleparametrului k este esentiala: astfel, sa prsupunem ca mesajele m1, m2 au fost criptate ın(y1, y2) respectiv (z1, z2) folosind acelasi k. Atunci y2/z2 = m1/m2 si cunoasterea unuiadin 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 deordinul p − 1 a unitatii. Aceste doua valori fiind fixate, problema logaritmului se poatereformula astfel:

Fiind dat un β ∈ Z∗p , sa se determine exponentul a ∈ Zp−1 astfel ca αa ≡ β (mod p).

Evident aceasta problema se poate rezolva printr-o cautare directa (se calculeaza puterilelui α) ı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), aflarea valorii cautate se poate face ın O(1), darcu un spatiu de complexitate O(p).

Toti algoritmii construiti pentru calculul logaritmului discret stabilesc un compromisspatiu - timp.

12.2.1 Algoritmul Shanks

Fie m =⌈√

p− 1⌉. Algoritmul Shanks este:

1. Se construieste lista L1 = {(j, αmj (mod p)) | 0 ≤ j ≤ m− 1};2. Se construieste lista L2 = {(i, βα−i (mod p)) | 0 ≤ i ≤ m− 1};3. Se determina perechile (j, y) ∈ L1, (i, y) ∈ L2 (identice pe a doua pozitie);4. Se defineste logαβ = m · j + i (mod (p− 1))

De remarcat ca prin alegerea perechilor (j, y) ∈ L1, (i, y) ∈ L2 vom avea

αmj = y = βα−i, deci αmj+i = β.

Invers, pentru orice β putem scrie logαβ = m · j + i cu 0 ≤ i, j ≤ m− 1, deci cautareade la pasul 3 se termina totdeauna cu succes.

Implementarea acestui algoritm se poate face ın timp O(m) si spatiu O(m).

Page 318: Criptografie complet

4 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Exemplul 12.3 Fie p = 809 si sa determinam log3525. Avem deciα = 3, β = 525, m = d

√808e = 29, iar α29 mod 809 = 99.

Lista L1 a perechilor (j, 99j (mod 809)), 0 ≤ j ≤ 28 este:

(0, 1) (1, 99) (2, 93) (3, 308) (4, 559)(5, 329) (6, 211) (7, 664) (8, 207) (9, 268)(10, 644) (11, 654) (12, 26) (13, 147) (14, 800)(15, 727) (16, 781) (17, 464) (18, 632) (19, 275)(20, 528) (21, 496) (22, 564) (23, 15) (24, 676)(25, 586) (26, 575) (27, 295) (28, 81)

Lista L2 a cuplurilor (i, 525 · (3i)−1 (mod 809)), 0 ≤ i ≤ 28 este:

(0, 525) (1, 175) (2, 328) (3, 379) (4, 396)(5, 132) (6, 44) (7, 554) (8, 724) (9, 511)(10, 440) (11, 686) (12, 768) (13, 256) (14, 355)(15, 388) (16, 399) (17, 133) (18, 314) (19, 644)(20, 754) (21, 521) (22, 713) (23, 777) (24, 259)(25, 356) (26, 658) (27, 489) (28, 163)

Parcurgand (eventual simultan) cele doua liste se gaseste (10, 644) ∈ L1, (19, 644) ∈ L2.Se poate scrie deci

log3525 = 29 · 10 + 19 = 309.

Se verifica usor ca 3309 ≡ 525 (mod 809).

12.2.2 Algoritmul Pohlig - Hellman

Mai ıntai, un rezultat matematic:

Lema 12.1 Fie x ∈ Zp un element primitiv. Atunci

xm ≡ xn (mod p) ⇐⇒ m ≡ n (mod (p− 1))

Demonstratie: Relatia xm ≡ xn (mod p) se poate rescrie xm−n ≡ 1 (mod p). Dar –conform Teoremei lui Fermat – xp−1 ≡ 1 (mod p) si xi 6≡ 1 (mod p) pentru 0 < i < p− 1.Deci p−1|m−n, sau m−n ≡ 0 (mod (p−1)), relatie echivalenta cu m ≡ n (mod p−1)).2

Revenind la sistemul de criptare El Gamal, sa consideram descompunerea ın factoriprimi

p− 1 =k∏

i=1

qcii .

Page 319: Criptografie complet

12.2. CALCULUL LOGARITMULUI DISCRET 5

Daca s-ar putea calcula a (mod qcii ) pentru toti 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 qc) si p− 1 6≡

0 (mod qc+1). Sa aratam cum se poate calcula atunci x ≡ a (mod qc) pentru oricex, (0 ≤ x ≤ qc − 1).

Sa descompunem ıntai x ın baza q folosind egalitatea

x =c−1∑i=0

aiqi 0 ≤ ai ≤ q − 1, 0 ≤ i ≤ c− 1

Atunci, se poate scrie a = x + qc · s pentru un anumit numar ıntreg pozitiv s.La primul pas trebuie calculat a0. Se porneste de la observat ia ca

β(p−1)/q ≡ α(p−1)a0/q (mod p).

Pentru a arata aceasta, deoarece β(p−1)/q ≡ α(p−1)(x+qcs)/q (mod p), este suficient sa severifice ca α(p−1)(x+qcs)/q ≡ α(p−1)a0/q (mod p).

Aceasta relatie este adevarata dacasi numai daca

(p− 1)(x + qcs)

q≡ (p− 1)a0

q(mod p− 1),

ceea ce se poate verifica prin calcul direct:(p− 1)(x + qcs)

q− (p− 1)a0

q=

p− 1

q(x + qcs− a0) =

p− 1

q

(c−1∑i=0

aiqi + qcs− a0

)

=p− 1

q

(c−1∑i=1

aiqi + qcs

)= (p− 1)

(c−1∑i=1

aiqi−1 + qc−1s

)≡ 0 (mod p− 1).

Putem acum sa ıncepem calculul lui β(p−1)/q (mod p). Daca β(p−1)/q ≡ 1 (mod p),atunci a0 = 0. Altfel se calculeaza ın Zp γ = α(p−1)/q, γ2, . . . pana se obt ine un numarıntreg pozitiv i pentru care γi ≡ β(p−1)/q. Atunci a0 = i.

Daca c = 1, algoritmul se termina; altfel, (c > 1), se cauta valoarea lui a1. Pentruaceasta se defineste

β1 = βα−a0

si se noteaza x1 = logαβ1 (mod qc).

Deoarece (evident) x1 =c−1∑i=1

aiqi, se va obtine β

(p−1)/q2

1 ≡ α(p−1)a1/q (mod p).

Se calculeaza atunci β(p−1)/q2

1 (mod p) si se cauta i astfel ca

γi ≡ β(p−1)/q2

1 (mod p).

Se ia a1 = i.Daca c = 2, s-a terminat; ın caz contrar, se mai efectueaza c − 2 pasi pentru deter-

minarea coeficientilor a2, . . . , ac−1.Formal, algoritmul Pohlig - Hellman este urmatorul:

Page 320: Criptografie complet

6 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

1. Se calculeaza γi = α(p−1)i/q (mod p), 0 ≤ i ≤ q − 1;2. β0 ←− β;3. for j = 0 to c− 1 do

3.1 δ ←− β(p−1)/qj+1

j (mod p);3.2. Se cauta i astfel ca δ = γi;3.3. aj ←− i;

3.4. βj+1 ←− βjα−ajqj

mod p.

Reamintim, α este o radacina primitiva de ordinul p a unitatii, iar q este numar prim; ınplus, p− 1 ≡ 0 (mod qc), p− 1 6≡ 0 (mod qc+1).

Algoritmul calculeaza a0, a1, . . . , ac−1 unde logαβ (mod qc) =c−1∑i=0

aiqi.

Exemplul 12.4 Fie p = 29. Avem n = p− 1 = 28 = 2271.Sa alegem α = 2, β = 18 si ne punem problema determinarii lui a = log2 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 = 214 = 28, deci δ = β28/2 = 1814 = 28, de unde rezulta a0 = 1.β1 = β0 · α−1 = 9, β

28/41 = 97 = 28. Cum γ1 = 28, rezulta a1 = 1. Avem deci

a ≡ 3 (mod 4).Sa consideram acum q = 7, c = 1. Vom avea (modulo 29):β28/7 = 184 = 25, γ1 = α28/7 = 24 = 16, apoi γ2 = 24, γ3 = 7, γ4 = 25, deci a0 = 4

si a ≡ 4 (mod 7).Se obtine sistemul a ≡ 3 (mod 4), a ≡ 4 (mod 7), de unde – folosind teorema chineza

a resturilor – a ≡ 11 (mod 28). Deci, log218 = 11 ın Z29.

12.2.3 Algoritmul Pollard Rho

Fie p un numar prim si α ∈ Zp un element de ordin n. Vom considera Gα ⊆ Zp subgrupulciclic generat de α. Ne punem problema calcularii lui logαβ, unde β ∈ Gα este arbitrar.

Fie Zp = S1 ∪ S2 ∪ S3 o partitie a lui Zp ın multimi de cardinale aproximativ egale;consideram functia

f : Gα × Zn × Zn −→ Gα × Zn × Zn

definita prin

f(x, a, b) =

(βx, a, b + 1) daca x ∈ S1

(x2, 2a, 2b) daca x ∈ S2

(αx, a + 1, b) daca x ∈ S3

Pe baza acestei functii vom genera recursiv triplete (x, a, b) cu proprietatea x = αaβb. Fie(1, 0, 0) tripletul initial (el are aceasta proprietate). In continuare

(xi, ai, bi) =

{(1, 0, 0) daca i = 0f(xi−1, ai−1, bi−1) daca i ≥ 1

Page 321: Criptografie complet

12.2. CALCULUL LOGARITMULUI DISCRET 7

In continuare se compara tripletele (x2i, a2i, b2i) si (xi, ai, bi) pana se gaseste o valoare alui i pentru care x2i = xi. In acel moment,

αa2iβb2i = αaiβbi

Notand c = logαβ, relatia poate fi rescrisa

αa2i+cb2i = αai+cbi

Cum α are ordinul n, rezulta

a2i + cb2i ≡ ai + cbi (mod n)

sauc(b2i − bi) ≡ ai − a2i (mod n)

Daca cmmdc(b2i − bi, n) = 1, atunci se poate obtine c:

c =ai − a2i

b2i − bi

(mod n)

Exemplul 12.5 Sa consideram p = 809 si α = 89; ordinul lui α ın Z∗809 este n = 101.

Se verifica usor ca β = 618 ∈ G89. Vom calcula log89618.Sa presupunem ca alegem partitia

S1 = {x | x ∈ Z809, x ≡ 1 (mod 3)}S2 = {x | x ∈ Z809, x ≡ 0 (mod 3)}S3 = {x | x ∈ Z809, x ≡ 2 (mod 3)}

Pentru i = 1, 2, 3, . . . obtinem urmatoarele triplete:

i (xi, ai, bi) (x2i, a2i, b2i)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 x10 = x20 = 422. Se poate calcula atuncilog89618 = (11− 5) · (11− 15)−1 (mod 101) = 6 · 25 (mod 101) = 49

(ın grupul multiplicativ Z∗809).

Page 322: Criptografie complet

8 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

O formalizare a algoritmului Pollard Rho pentru calculul logaritmului discret3 este:

Algoritm Pollard Rho(Zp, n, α, β)1 Se defineste partitia Zp = S1 ∪ S2 ∪ S3;2. (x, a, b)←− f(1, 0, 0), (x1, a1, b1)←− f(x, a, b)3. while x 6= x1 do

3.1. (x, a, b)←− f(x, a, b);3.2. (x1, a1, b1)←− f(x1, a1, b1), (x1, a1, b1)←− f(x1, a1, b1);

4. if cmmdc(b1 − b, n) > 1 then return(Esec)else return((a− a1) · (b1 − b)−1 (mod n))

procedure f(x, a, b)1. if x ∈ S1 then f ←− (β · x, a, (b + 1) (mod n));2. if x ∈ S2 then f ←− (x · x, 2 · a (mod n), 2 · b (mod n));3. if x ∈ S3 then f ←− (α · x, (a + 1) (mod n), b);4. return(f).end procedure

In cazul cmmdc(b1 − b, n) = d > 1, congruenta c · (b1 − b) ≡ a− a1 (mod n) are d solutiiposibile. Daca d este destul de mic, aceste solutii se pot afla si o simpla operatie deverificare gaseste solutia 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 etapaconsta ın aflarea logaritmilor elementelor din baza B.

In a doua etapa, folosind acesti logaritmi, se va determina logaritmul discret al lui β.

I: Se construiesc C = B + 10 congruente modulo p de forma

αxj ≡ paij

1 pa2j

2 . . . paBj

B (mod p), 1 ≤ j ≤ C

Cu aceste C ecuatii de necunoscute logαpi (1 ≤ i ≤ B) se ıncearca aflarea unei solutiiunice modulo (p− 1). In caz de reusita, primul pas este ıncheiat.

Problema ar fi cum sa se gaseasca aceste C congruente. O metoda elementara constadin trei pasi: alegerea aleatoare a unui x, calculul lui αx (mod p) si verificarea daca acestnumar are toti divizorii ın B.

II: Acum se poate determina logαβ cu un algoritm de tip Las Vegas. Se alege aleatorun numar ıntreg s (1 ≤ s ≤ p− 2) si se determinaγ = βαs (mod p).

3Un algoritm similar Pollard Rho poate fi construit pentru factorizarea unui numar. Detalii se gasescde exemplu ın [4].

Page 323: Criptografie complet

12.3. SECURITATEA LOGARITMILOR DISCRETI FATA DE INFORMATII PARTIALE9

Se ıncearca apoi descompunerea lui γ ın baza B. Daca acest lucru este posibil, seobtine o relatie de forma

βαs ≡ pc11 pc2

2 . . . pcBB (mod p)

care poate fi transformata ın

logαβ + s ≡ c1logαp1 + . . . + cBlogαpB (mod p− 1).

De aici - prin evaluarea membrului drept, se poate determina logαβ.

Exemplul 12.6 Fie p = 10007 si α = 5 (element primitiv). Sa consideramB= {2, 3, 5, 7} ca baza de divizori. Cum – evident – log55 = 1, trebuiesc determinati doartrei logaritmi de baza.

Trei numere aleatoare ”norocoase” pot fi 4063, 5136, 9865.Pentru x = 4063 calculam 54063 (mod 10007) = 42 = 2 · 3 · 7, care conduce la congruenta

log52 + log53 + log57 ≡ 4063 (mod 10006).In mod similar se obtin 55136 (mod 10007) = 54 = 2 ·33, 59865 (mod 10007) = 189 =

33 · 7.Ele dau relatiile

log52 + 3log53 ≡ 5136 (mod 10006),3log53 + log57 ≡ 9865 (mod 10006).

Rezolvarea acestui sistem de trei ecuatii ın Z10006 conduce la solutia unica

log52 = 6578, log53 = 6190, log57 = 1301.

Sa presupunem acum ca se cauta log59451. Daca se genereaza aleator numarul s =7736, avem 9451 · 57736 (mod 10007) = 8400 = 24315271.

Cum acesta se poate factoriza ın B, avemlog59451 = 4log52+ log53+2log55+ log57−s = 4 ·6578+6190+2 ·1+1301−7736 = 6057,calculele fiind realizate modulo 10006.

Se verifica usor ca 56057 ≡ 9451 (mod 10007).

12.3 Securitatea logaritmilor discreti fata de informatii

partiale

In aceasta sectiune vom considera un tip de atac care ıncearca sa determine valoarea unuiasau mai multor biti din reprezentarea binara a logaritmilor discreti.

Mai exact se ıncearca calculul lui Li(β): al i-lea bit (numarand de la cel mai putinreprezentativ) din scrierea ın binar a lui logαβ peste Z∗

p ; deci 1 ≤ i ≤ dlog2(p− 1)e.

Afirmatia 12.1 L1(β) poate fi calculat printr-un algoritm de complexitate polinomiala.

Page 324: Criptografie complet

10 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

Demonstratie: Sa consideram functia f : Z∗p ←− Z∗

p definita

f(x) = x2 (mod p)

Notam RP (p) multimea resturilor patratice modulo p:

RP (p) = {x | ∃y ∈ Z∗p , x ≡ y2 (mod p)}

Pe baza observatiilor

1. f(x) = f(p− x),

2. x2 ≡ y2 (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 α ∈ Zp 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αβ este par, adica L1(β) = 0.

Conform teoremei 10.1 (Prelegerea 10), β este rest patratic daca si numai daca

βp−12 ≡ 1 (mod p)

fapt care poate fi testat cu un algoritm de compmexitate polinomiala. Deci putem da oformula pentru calculul lui L1(β):

L1(β) =

{0 daca β(p−1)/2 ≡ 1 (mod p)1 altfel

2

Afirmatia 12.2 Daca p− 1 = 2s(2t + 1), atunci1. Calculul lui Li(β) pentru 1 ≤ i ≤ s este usor.2. Orice algoritm (sau oracol) care poate calcula Ls+1(β) permite rezolvarea problemei

logaritmului discret ın Zp.

Prima parte a afirmatiei 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 L2(β) poate fi folosit la rezolvarea problemeilogaritmului discret ın Zp.

Se stie (Prelegerea 11, algoritmul lui Rabin) ca daca β este rest patratic ın Zp sip ≡ 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 β 6= 0, atunci L1(p− β) = 1− L1(β).

Demonstratia lemei: Fie αa ≡ β (mod p). Atunci αa+(p−1)/2 ≡ −β (mod p). Deoarecep ≡ 3 (mod 4), numarul (p− 1)/2 este impar. Deci L1(β) 6= L1(p− β). 2

Page 325: Criptografie complet

12.3. SECURITATEA LOGARITMILOR DISCRETI FATA DE INFORMATII PARTIALE11

Fie acum β = αa pentru un exponent par a, necunoscut. Atunci

±β(p+1)/4 ≡ αa/2 (mod p)

Cum L2(β) = L1(αa/2), valoarea L2(β) poate determina care din cele doua variante (cu

+ sau −) este corecta. Acest lucru este folosit de urmatorul algoritm care da valoarealogaritmului discret logαβ (s-a presupus ca valoarea L2(β) se poate afla – folosind deexemplu un oracol):

Algoritm aflare bit(p, α, β)1. x0 ←− L1(β);2. β ←− β/αx0 (mod p)3. i←− 1;4. while β 6= 1 do

4.1. xi ←− L2(β);4.2. γ ←− β(p+1)/4 (mod p);4.3. if L1(γ) = xi then β ←− γ

else β ←− p− γ;4.4. β ←− β/αxi (mod p);4.5. i←− i + 1;

5. return(xi−1, xi−2, . . . , x0).

In final, se obtinelogαβ =

∑j≥0

xj · 2j.

Exemplul 12.7 Fie p = 19, α = 2, β = 6. Deoarece numerele sunt foarte mici, se potdetermina usor valorile pentru L1 si L2. Ele sunt adunate ın tabelul

x L1(x) L2(x) x L1(x) L2(x) x L1(x) L2(x)1 0 0 7 0 1 13 1 02 1 0 8 1 1 14 1 13 1 0 9 0 0 15 1 14 0 1 10 1 0 16 0 05 0 0 11 0 0 17 0 16 0 1 12 1 1 18 1 0

Pe baza acestor informatii, aplicam algoritmul. Se obtine:x0 ←− 0, β ←− 6, i←− 1;x1 ←− L2(6) = 1, γ ←− 5, L1(5) = 0 6= x1, β ←− 14, β ←− 7, i←− 2;x2 ←− L2(7) = 1, γ ←− 11, L1(11) = 0 6= x2, β ←− 8, β ←− 4, i←− 3;x3 ←− L2(4) = 1, γ ←− 17, L1(17) = 0 6= x3, β ←− 2, β ←− 1, i←− 4.return(1, 1, 1, 0).Deci log26 = 11102 = 14.

Page 326: Criptografie complet

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 (definita corespunzator) este dificila.Fie (G, ◦) un grup finit. Problema logaritmului discret se defineste ın G astfel:

Fie α ∈ G si H = {αi | i ≥ 0} subgrupul generat de α. Daca β ∈ H, sa se determineun a (unic) (0 ≤ a ≤ card(H)− 1) cu αa = β, unde αa = α ◦ α ◦ . . . ◦ α︸ ︷︷ ︸

a ori

Definirea 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 dificila.Fie P= G, C= G×G si K= {(G, α, a, β)|β = αa}.Valorile α, β sunt publice iar a este secret.Pentru K = (G, α, a, β) si un k ∈ Zcard(H) aleator (secret), se defineste

eK(x, k) = (y1, y2) unde y1 = αk, y2 = x ◦ βk.

Pentru y = (y1, y2), decriptarea este

dK(y) = y2 ◦ (ya1)−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 carecele doua procese functioneaza fara probleme.

Se poate observa de asemenea ca G nu este neaparat abelian (H ın schimb este, fiindciclic).

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 dificultatea problemei depinde mult dereprezentarea grupului utilizat.

Astfel ın grupul aditiv Zn, problema este simpla; aici exponentierea αa este de faptınmultirea cu a modulo n. Deci, problema logaritmului discret consta ın aflarea unuinumar ıntreg a astfel ca

aα ≡ β (mod n).

Daca se alege α astfel ca (α, n) = 1 (α este generator al grupului), α are un inversmultiplicativ modulo n, care se determina usor cu algoritmul lui Euclid. Atunci,

a = logαβ = βα−1 (mod n)

Page 327: Criptografie complet

12.5. EXERCITII 13

Sa vedem cum se reprezinta problema logaritmului discret ın grupul multiplicativ Z∗p cu

p prim. Acest grup este ciclic de ordin p−1, deci izomorf cu grupul aditiv Zp−1. Deoareceproblema logaritmului discret ın grupul aditiv se poate rezolva usor, apare ıntrebarea dacase poate rezolva aceasta problema ın Z∗

p reducand-o la Zp−1.Stim ca existaun izomorfism φ : Z∗

p −→ Zp−1, 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 eficace pentru calculul izomorfismului φ, se obtine

un algoritm eficace pentru calculul logaritmului discret ın Z∗p . Problema este ca nu se

cunoaste nici o metoda generala de constructie a lui φ pentru un numar prim p oarecare.Desi se stie ca cele doua grupuri sunt izomorfe, nu exista ınca un algoritm eficient pentruconstructia explicita a unui izomorfism.

Aceasta metoda se poate aplica problemei logaritmului discret ıntr-un grup finit ar-bitrar. Implementarile au fost realizate ın general pentru Zp, GF (2p) (unde problemalogaritmului discret este dificila) sau curbe eliptice.

12.5 Exercitii

12.1 Implementati algoritmul Shanks pentru aflarea logaritmului discret. Aplicatii pen-tru aflarea log10612375 ın Z∗

24691 si log6248388 ın Z∗458009.

12.2 Numarul p = 458009 este prim si α = 2 are ordinul 57251 ın Z∗p . Folosind algorit-

mul Pollard Rho, calculati log256851 ın Z∗p . Luati valoarea initiala x0 = 1 si partitia din

Exemplul 12.5.

12.3 Fie p un numar prim impar si k un numar pozitiv. Grupul multiplicativ Z∗pk are

ordinul pk−1 · (p − 1) si este ciclic. Un generator al acestui grup este numit ”elementprimitiv modulo pk”.

(a) Daca α este un element primitiv modulo p, aratati ca cel putin unul din numereleα, α + p este element primitiv modulo p2.

(b) Descrieti cum se poate poate verifica eficient ca 3 este o radacina primitiva modulo29 si modulo 292. Aratatoi ıntai ca daca α este o radacina primitiva modulor p si modulop2, atunci ea este radacina primitiva modulo pj pentru orice j ıntreg.

(c) Gasiti un ıntreg α care este radacina primitiva modulo 29 dar nu este radacinaprimitiva modulo 292.

(d) Folositi algoritmul Pohlig - Hellman pentru a calcula log33344 ın Z∗24389.

Page 328: Criptografie complet

14 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL

12.4 Implementati algoritmul Pohlig Hellman. Aplicatie pentru log58563 ın Z28703 silog1012611 ın Z31153.

12.5 Fie p = 227. Elementul α = 2 este primitiv ın Z∗p .

(a) Calculati α32, α40, α59 si α156 modulo p si apoi factorizati-le pentru baza de factori{2, 3, 5, 7, 11}.

(b) Folosind faptul ca log22 = 1, calculati log23, log25, log27, log211 folosind factor-izarea anterioara.

(c) Sa presupunem ca vrem sa calculam log2173. Inmultim 173 cu valoarea ”aleatoare”2177 (mod p). Factorizati rezultatul peste baza de factori data mai sus si determinatılog2173.

12.6 Sa implementam sistemul El Gamal ın GF (33). Polinomul x3 + 2x2 + 1 este ire-ductibil peste Z3[x] si deci GF (33) = Z[x]/(x3 + 2x2 + 1). Asociem cele 26 luitere alealfabetului cu cele 26 elemente nenule ale corpului (ordonate lexicografic):

A ↔ 1 B ↔ 2 C ↔ xD ↔ x + 1 E ↔ x + 2 F ↔ 2xG ↔ 2x + 1 H ↔ 2x + 2 I ↔ x2

J ↔ x2 + 1 K ↔ x2 + 2 L ↔ x2 + xM ↔ x2 + x + 1 N ↔ x2 + x + 2 O ↔ x2 + 2xP ↔ x2 + 2x + 1 Q ↔ x2 + 2x + 2 R ↔ 2x2

S ↔ 2x2 + 1 T ↔ 2x2 + 2 U ↔ 2x2 + xV ↔ 2x2 + x + 1 W ↔ 2x2 + x + 2 X ↔ 2x2 + 2xY ↔ 2x2 + 2x + 1 Z ↔ 2x2 + 2x + 2

Sa presupunem ca Bob foloseste α = x si p = 11 ıntr-un sistem de criptare El Gamal.Apoi alege β = x + 2. Decriptati mesajul

(K, H) (P, X) (N, K) (H, R) (T, F ) (V, Y ) (E, H) ((F, A) (T,W ) (J, D) (U, J)

Page 329: Criptografie complet

Bibliografie

[1] T. El Gamal, A public key cryptosystem and a signature scheme based on discretealgorithms, IEEE Transactions on Information Theory, 31 (1985), 469-472

[2] J. Gibson, Discrete logarithm hash function that is collision free and one way. IEEEProceedings-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, Criptografie cu chei publice, ed. Militara, 1994

15

Page 330: Criptografie complet

Prelegerea 13

Alte sisteme de criptare cu cheiepublica

13.1 Criptarea folosind curbe eliptice

Pentru ınceput, sa definim notiunea de curba eliptica.

Definitia 13.1 Fie p (p > 3) un numar prim. Curba eliptica y2 = x3 + ax + b peste Zp

este multimea solutiilor (x, y) ∈ Zp × Zp ecuatieiy2 ≡ x3 + ax + b (mod p) (1)

unde a, b ∈ Zp sunt constante astfel ca 4a3 + 27b2 6≡ 0 (mod p)si dintr-un punct O numit ”punct la infinit”.

O curba eliptica E se poate structura ca un grup abelian finit. Legea de compozitie(notata aditiv) este definita astfel:

Fie P, Q ∈ E, P = (x1, y1), Q = (x2, y2).Daca x2 = x1, y2 = −y1, atunci P + Q = O; altfel, P + Q = (x3, y3) unde

x3 = λ2 − x1 − x2, y3 = λ(x1 − x3)− y1,

iar

λ =

y2−y1

x2−x1daca P 6= Q

3x21+a

2y1daca P = Q

Se mai defineste P +O= O+P = P, ∀P ∈ E.Verificarea proprietatilor 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 y2 = x3 + x + 5 peste Z19. Sa calculam la ınceputpunctele lui E. Aceasta se face astfel: ∀x ∈ Z11 se calculeaza z = x3 + x + 5 (mod 19);apoi se testeaza daca z este rest patratic.

1

Page 331: Criptografie complet

2 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

In caz afirmativ, deoarece 19 ≡ 3 (mod 4), exista o formula (Prelegerea 10) pe care ovom aplica direct, obtinand radacinile patrate ale lui z :

± z(19+1)/4 (mod 19) = ±z5 (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 18a2 0 1 4 9 16 6 17 11 7 5 5 7 11 17 6 16 9 4 1

x x3 + x + 5 y x x3 + x + 5 y x x3 + x + 5 y0 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 fiind aditiv). Pentru 2α secalculeaza ıntai (modulo 19):

λ = (3 · 02 + 1)(2 · 9)−1 = 1 · 18−1 = 18.

Acum se pot determinax3 = 182 − 0− 0 = 361 ≡ 1 (mod 19), y3 = 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, decix3 = 22 − 1− 0 = 3, y3 = 2 · (1− 3)− 11 = −15 ≡ 4 (mod 19),

de unde rezulta 3α = (3, 4).In mod similar se obtin toate punctele curbei eliptice E:

α = (0, 9) 2α = (1, 11) 3α = (3, 4) 4α = (4, 4) 5α = (13, 12)6α = (11, 6) 7α = (12, 15) 8α = (12, 4) 9α = (11, 13) 10α = (13, 7)11α = (4, 15) 12α = (3, 15) 13α = (1, 8) 14α = (0, 10) 15α = O

De remarcat ca – de exemplu – (3, 4) nu este element primitiv, avand ordinul 5.

O curba eliptica definita pe Zp (p > 3 prim) are aproximativ p puncte. O teorema alui Hasse ([2]) stabileste un interval pentru acest numar:

p + 1− 2√

p ≤ card(E) ≤ p + 1 + 2√

p

Page 332: Criptografie complet

13.1. CRIPTAREA FOLOSIND CURBE ELIPTICE 3

Calculul efectiv al lui card(E) este destul de dificil si vom trece peste el1. Existaun algoritm al lui Schoof ([2], pag 137-140) de numarare a punctelor unei curbe eliptice,dar complexitatea lui este destul de mare: O(log6p) (O(log9p) ın versiunea originala)ınmultiri si inversiuni, si O(log3p) spatiu de memorie. In plus implementarea sa estedestul de greoaie si nu a fost realizata complet pana ın prezent.

Alta problema dificila consta ın aflarea unui subgrup ciclic al lui E ın care problemalogaritmului discret sa fie dificila. O informatie utila este data de teorema urmatoare:

Teorema 13.1 (Teorema lui Ruck) Fie E o curba eliptica peste Zp cu p > 3 numar prim.Atunci exista doua numere ıntregi n1, n2 astfel ca E sa fie izomorfa cu Zn1

′timesZn2, iar

n2|n1, n2|(p− 1).

Demonstratia poate fi gasita ın [2], pag. 107.

Pe spatiul 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 aplicatiispecifice.

Principala atractie a sistemelor construite pe curbe eliptice consta ın dimensiuni miciale 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 elipticadefinita ın Exemplul 13.1.

Fie α = (0, 9) si sa presupunem ca exponentul secret este a = 7. Atunci β = 7α =(12, 15), iar operatia de criptare este:

eK(x, k) = (k · (0, 9), x + k · (12, 15)), unde x ∈ E, 0 ≤ k ≤ 14.

Pentru decriptare se foloseste operatia

dK(y1, y2) = y2 − 7y1

Sa presupunem ca Alice vrea sa cripteze mesajul x = (3, 4) (care este un punct dinE); daca ea alege aleator valoarea k = 8, va calcula

y1 = 8 · (0, 9) = (12, 4), si

y2 = (3, 4) + 8 · (12, 15) = (3, 4) + (4, 15) = 3α + 8 · 7α = 3α + 11α = 14α = (0, 10)(coeficientii se calculeaza modulo 15).

Deci y = ((12, 4), (0, 10)). Dupa receptie, Bob decripteaza mesajul astfel:

x = (0, 10)− 7 · (12, 4) = 14α− 7 · 8α = 3α.

1Nu 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 (ımpreunacu ”problema ”P versus NP”).

Page 333: Criptografie complet

4 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

13.1.1 Criptarea Menezes - Vanstone

In acest sistem de criptare – de fapt o varianta a lui El Gamal – curba eliptica esteutilizata pentru ”mascare”, domeniile de valori al textelor clare si criptate fiind mult mailarg. Prezentarea algoritmului este:

Fie E o curba eliptica peste Zp (p > 3 prim) care contine un subgrup ciclic H ıncare problema logaritmului discret este dificila.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 ∈ Zcard(H) ales aleator (secret) si x = (x1, x2) ∈ P,definim

eK(x, k) = (y0, y1, y2),

unde y0 = k · α, (c1, c2) = k · β, yi = ci · xi (mod p), i = 1, 2.Pentru un text criptat y = (y0, y1, y2) se defineste

dK(y) = (y1 · c−11 (mod p), y2 · c−1

2 (mod p)),

unde a · y0 = (c1, c2).

Exemplul 13.3 Revenind la curba y2 = x3 + x + 5 peste Z19 definita ın Exemplul 13.1,criptarea Menezes - Vanstone autorizeaza 18× 18 = 324 texte clare, fata de numai 15 ınsistemul 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 = (x1, x2) = (5, 11) (de remarcat caacesta nu este un punct din E) si alege k = 4, ea va ıncepe prin a calcula

y0 = k · α = 4 · (2, 7) = (4, 4)sik · β = 4(12, 15) = (1, 8)

deci c1 = 1, c2 = 8.

Apoi se calculeaza (modulo 19):

y1 = c1 · x1 = 1 · 5 = 5 si y2 = c2 · x2 = 8 · 11 = 12.

Alice trimite deci lui Bob mesajul criptat y = (y0, y1, y2) = ((4, 4), 5, 12).

Dupa receptie, Bob calculeaza (c1, c2) = a · y0 = 7 · (4, 4) = 7 · 4α = 13α = (1, 8), apoi

x = (y1 · c−11 (mod 19), y2 · c−1

2 (mod 19)) = (5 · 1−1, 12 · 8−1) = (5, 12 · 12) = (5, 11).

Page 334: Criptografie complet

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 multeasemanari cu sistemele RSA si El Gamal. Se pare ca el are toate avantajele sistemuluiRSA; oricum, se poate demonstra ca orice ıncercare de spargere a sistemului prin pre-lucrarea mesajelor criptate conduce la o operatie de factorizare a modulului. Modul decriptare 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 fixat, ne-patrat perfect. Consideram multimea

{x = a + b√

c|a, b ∈ Z, a2 − cb2 = 1}.

Numerele x pot fi privite si ca perechi (a, b), pe baza carora aceasta multime se poatestructura algebric ca inel, folosind operatiile

(a1, b1) + (a2, b2) = (a1 + a2, b1 + b2)(a1, b1)(a2, b2) = (a1a2 + cb1b2, a1b2 + a2b1).

Notam x = a− b√

c conjugatul lui x.Pentru i = 0, 1, 2, . . . se definesc functiile Xi(x), Yi(x) astfel:

Xi(x) = Xi((a, b)) =xi + xi

2

Yi(x) = Yi((a, b)) = bxi − xi

x− x=

xi − xi

2√

c

De aici se pot scoate relatiile

xi = Xi(x) + Yi(x)√

c, xi = Xi(x)− Yi(x)√

c.

Evident, Xi(x) si Yi(x) sunt numere ıntregi; ın continuare vom scrie aceste numere fara amai preciza si argumentul x, decat daca este necesar.

Din conditia a2 − cb2 = 1 rezultaxx = 1, X2i − cY 2

i = 1.

Lema 13.1 Au loc relat iile:Xi+j = XiXj + cYiYj, Yi+j = YiXj + XiYj, ∀i, j ∈ NXi+j = 2XiXj −Xj−i, Yi+j = 2XiYj − Yj−i, ∀i, j, i ≤ j.

Demonstratie: Este lasata ca exercitiu.Din lema 13.1 se deduc formulele recursive de calcul

X2i = X2i + cY 2

i = 2X2i − 1, Y2i = 2XiYi,

X2i+1 = 2XiXi+1 −X1, Y2i+1 = 2XiYi+1 − Y1.

Page 335: Criptografie complet

6 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

Acestea conduc la o evaluare rapida a valorilor Xi si Yi.

Deoarece X0 = 1, X1 = a, rezulta ca Xi nu depinde de b.

Relatiile astfel definite se pot extinde ın mod natural la congruente modulo un numarnatural nenul n:

a1 + b1

√c ≡ a2 + b2

√c ⇐⇒ a1 ≡ a2 (mod n) si b1 ≡ b2 (mod n)

Folosind si a2−cb2 ≡ 1 (mod n) ın loc de a2−cb2 = 1, relatiile de sus raman adevarate.

Lema 13.2 Se dau numerele:

n = pq cu p, q numere prime mari;

a, b, c care verifica congruenta a2 − cb2 ≡ 1 (mod n) (2)

Simbolurile Legendre εp =(

cp

), εq =

(cq

)care verifica relatiile εi ≡

−i (mod 4) pentru i = p, q.

Presupunem verificate conditiile (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).

In toate aceste ipoteze, x2de ≡ ±x (mod n) unde x = a + b√

c.

Demonstratie: Se realizeaza prin calcul direct.

Pe baza acestei leme se pot stabili metode de criptare si decriptare similare celor dinRSA.

Saconstruim acum ın detaliu sistemul de criptare Williams. Prezentarea va consta dinpatru parti: descrierea sistemului, criptarea, decriptarea si criptanaliza.

A (Prezentarea): In prima faza se aleg doua numere prime mari p, q si se calculeazan = pq.

Se alege apoi un numar c astfel ca simbolurile Legendre εp si εq sa verifice conditiiledin Lema 13.2 (c se poate obtine foarte rapid deoarece cam un numar din patru satisfacecongruentele cerute).

Se determina apoi un numar s astfel ıncat simbolul Jacobi sa verifice(s2 − 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 satisfacacongruentele cerute.

Numerele n, c, e, s sunt publice iar p, q, m, d sunt secrete.

Page 336: Criptografie complet

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

(s2 − c

n

)=(−1

11

)(−1

13

)= −1 · 1 = −1.

Se obtine m = 10 · 14/4 = 35. Pentru ca 23 · 16 ≡ 18 (mod 35), se pot folosi dreptexponenti de criptare/decriptare e = 23 respectiv d = 16.

B (Criptarea): Textele clare sunt numere w (0 < w < n). In prima etapa w este codificatca un numar x (metoda este prezentata mai jos); criptarea va fi xe (mod n).

Codificarea: Notam

b1 = 0, γ = w +√

c sau

b1 = 1, γ = (w +√

c)(s +√

c)

dupa cum simbolul Jacobi

(w2 − c

n

)are valoarea +1 sau respectiv −1. Cazul cand

el este 0 trebuie evitat.

Ambele variante conduc la(

γγ

n

)= 1; relatia este evidenta ın primul caz, rezulta prin

calcul din alegerea lui s ın cazul al doilea.

In final, se noteazax =γ

γ.

Scrierea lui x sub forma a + b√

c este posibila ın ambele cazuri; astfel (toate calculelese fac modulo n):

pentru b1 = 0 : x =γ

γ=

w +√

c

w −√

c=

w2 + c

w2 − c+

2w

w2 − c

√c (mod n)

pentru b1 = 1 : x =γ

γ=

(w +√

c)(s +√

c)

(w −√

c)(s−√

c)=

=(w2 + c)(s2 + c) + 4scw

(w2 − c)(s2 − c)+

2s(w2 + c) + 2w(s2 + c)

(w2 − c)(s2 − c)

√c (mod n).

Definitia lui x asigura ın ambele situatii relatia xx = a2 − cb2 ≡ 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 codificarea textului clar w ca x = a+b√

c, textul criptat este xe (mod n), numarcare poate fi exprimat ın functie de Xe si Ye, calculate recursiv pe baza relatiilor din Lema13.1. Notam

E = XeY−1e (mod n).

Textul criptat este tripletul (E, b1, b2), unde b1 s-a definit anterior, iar b2 este dat de relatiab2 ≡ a (mod 2).

Page 337: Criptografie complet

8 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

Deoarece fiecarui text criptat ıi corespund patru texte clare distincte, bitii b1 si b2

asigura unicitatea decriptarii.

Exemplul 13.5 Revenind la Exemplul 13.4, sa consideram textul clar w = 21. Deoarece(212 − 5

143

)=(

7

11

)(7

13

)= (−1)(−1) = 1, avem b1 = 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 b2 = 1.Vom calcula recursiv pe X23 si Y23:

X1 = 125 Y1 = 6 X2 = 75 Y2 = 70 X3 = 35 Y3 = 48X5 = 120 Y5 = 44 X6 = 18 Y6 = 71 X11 = 48 Y11 = 17X12 = 75 Y12 = 125 X23 = 68 Y23 = 125

Obtinem 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 numarul x2e:

x2e =x2e

(xx)e=

xe

xe=

Xe + Ye

√c

Xe − Ye

√c

=E +

√c

E −√

c=

E2 + c

E2 − c+

2E

E2 − c

√c (mod n)

De remarcat ca acest calcul poate fi facut si de un criptanalist, ın eventualitateainterceptarii textului criptat.

Totusi, informatia secreta este necesara pentru calculul ulterior:

x2ed = X2ed(x) + Y2ed(x)√

c = Xd(x2e) + Yd(x

2e)√

c,

unde valorile lui Xd si Yd se pot calcula recursiv pe baza lui x2e, determinat anterior.Cum toate ipotezele Lemei 13.2 sunt satisfacute, vom avea x2ed = ±x (mod n). Ultima

componenta b2 a textului criptat da semnul corect al lui x.Deci x se poate determina, iar textul clar w se obtine din x si b1 (a doua componenta

a textului criptat) ın felul urmator:

Fie x′ =

{x daca b1 = 0

x · s−√

cs+

√c

daca b1 = 1

Atunci x′ =w +

√c

w −√

c(mod n), ceea ce duce la w =

x′ + 1

x′ − 1

√c (mod n).

Exemplul 13.6 In conditiile din Exemplul 13.4, sa decriptam mesajul (28, 0, 1). FolosimE pentru a calcula ın prima faza

x2e =282 + 5

282 − 5+

2 · 28

282 − 5

√5 = 95 + 126

√5 (mod 143).

Reamintim, d = 16; deci vom calcula (modulo 143)

Page 338: Criptografie complet

13.2. SISTEMUL DE CRIPTARE WILLIAMS 9

X1(x2e) = 95 Y1(x

2e) = 126 X2(x2e) = 31 Y2(x

2e) = 59X4(x

2e) = 62 Y4(x2e) = 83 X8(x

2e) = 108 Y8(x2e) = 139

X16(x2e) = 18 Y16(x

2e) = 137

S-a obtinut 18 + 137√

5 = ±x (mod 143). Pentru ca b2 = 1, a trebuie sa fie impar, decix = −(18 + 137

√5) = 125 + 6

√5 (mod 143).

Cum b1 = 0, avem x′ = x si deci

w =126 + 6

√5

124 + 6√

5

√5 =

(126 + 6√

5)(124− 6√

5)

1242 − 5 · 62

√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 dificil decat RSA.Totusi ordinele de complexitate ale criptarii si decriptarii sunt egale ın celel doua sisteme.

D Criptanaliza: Daca s-au aflat p si q, m si d se pot calcula imediat. Invers, sapresupunem ca criptanalistul a gasit ıntr-un mod oarecare un algoritm de decriptare.Atunci el poate folosi acest algoritm la descompunerea lui n astfel.

In prima faza se alege prin ıncercari un numar x care verifica

(x2 − c

n

)= −1.

Apoi x este criptat alegand b1 = 0 si γ = x +√

c. Deci, ca prima ipoteza, pentrusimbolul Jacobi este folosita valoarea (falsa) +1. Fie (E, 0, b2) textul criptat rezultat.Acestuia, criptanalistul ıi aplica algoritmul pentru a stabili textul clar w corespunzator;acest w nu este identic cu x deoarece procesul de criptare a plecat de la o ipoteza falsa.Prin simplu calcul se arata ca (x− w, n) este p sau q (vezi [6])

Aceasta ınseamna ca si criptanalistul este ın masura sa descompuna pe n.

Exemplul 13.7 Reluam cadrul descris ın Exemplul 13.4. Alegem x = 138, care satisfacecondit ia de plecare pentru criptanaliza. Se iau ca valori init iale false b1 = 0, γ =138 +

√5. Atunci α = γ/γ = 73 + 71

√5.

Deoarece 73 este impar, se obtine b2 = 1. Pentru criptare se calculeaza iterativ (modulo143):

X1(α) = 73 Y1(α) = 71 X2(α) = 75 Y2(α) = 70X3(α) = 9 Y3(α) = 139 X5(α) = 133 Y5(α) = 44X6(α) = 18 Y6(α) = 71 X11(α) = 139 Y11(α) = 82X12(α) = 75 Y12(α) = 125 X23(α) = 42 Y23(α) = 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 obtine imediat factorizarea lui n

deoarece (x− w, n) = (117, 143) = 13.

Deci, sistemul Williams nu rezista la un atac cu text clar ales.

Page 339: Criptografie complet

10 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

13.3 Sistemul de criptare McEliece

Sistemul de criptare McEliece – propus ın 1978 – este destul de apropiat de problemarucsacului. El utilizeaza drept cadru teoria codurilor liniare (pentru detalii vezi [1]); aici,ın general decodificarea unui cod liniar binar corector de erori este o problema NP - com-pleta. Pentru unele clase de coduri sunt construiti algoritmi de decodificare polinomiali;o astfel de clasa o formeaza codurile Goppa, care constituie baza sistemului de criptareMcEliece.

Definitia 13.2 Fie k, n ∈ N (k ≤ n). Un (n, k) - cod liniar binar este un subspatiu liniarC ⊆ Zn

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 ∈ Zn

2 se defineste ponderea w(a) = numarul de elemente nenule din a.Pentru a,b ∈ Zn

2 a = (a1, . . . , an), b = (b1, . . . , bn), se defineste distanta Hammingprin d(a,b) = w(a− b).

Pentru un (n, k) - cod liniar binar C, distanta minima este

dC = min{d(a,b)|a,b ∈ C, a 6= b}

Un (n, k, d) - cod este un (n, k) - cod de distanta minima d.

Rolul unui cod corector de erori este de a corija modificari aleatoare care apar ın trans-miterea unui set de date (binare) printr-un canal. In linii mari, acesta functioneaza astfel:daca a este un mesaj de informatie de k biti, Alice ıl codifica ıntr-un cuvant de n bitib = aG, unde G este matricea generatoare a codului.

Bob primeste un mesaj r ∈ Zn2 (eventual r = b) si cauta un cuvant b1 ∈ C cu d(r,b1)

minima posibil. Va decodifica r ın b1 dupa care va calcula un mesaj de informatie a1

astfel ca b1 = a1G. Cazul ideal este acela cand b1 = b, a1 = a (adica erorile au fostacoperite corect). Se cunoaste ca, daca numarul de erori care apar nu depaseste (d−1)/2,acest procedeu corecteaza efectiv erorile.

Daca Bob cauta cuvantul - cod cel mai apropiat comparand r pe rand cu fiecare elementdin C, cum sunt 2k astfel de cuvinte, algoritmul va fi exponential, deci nefunctional.

Majoritatea algoritmilor de decodificare se bazeaza pe notiunea de sindrom, definitastfel:

Matricea de control a unui (n, k, d) - cod liniar binar de matrice generatoare G este omatrice H de dimensiune (n− k)× n ale carei linii formeaza o baza a unui spatiu liniarortogonal. Evident, GHT = 0.

Pentru un cuvant r ∈ Zn2 , se numeste sindrom secventa de n− k biti definita HrT .

Teorema 13.2 a este un cuvant - cod daca si numai daca HaT = 0.In plus, daca a ∈ C, e ∈ Zn

2 si r = a + e, atunci HrT = HeT .

Page 340: Criptografie complet

13.3. SISTEMUL DE CRIPTARE MCELIECE 11

Pentru demonstratie se poate consulta de asemenea [1].

e poate fi considerat drept vectorul de erori care au aparut ın transmiterea mesajuluia. Teorema anterioara afirma ca sindromul nu depinde decat de erori, nu de cuvantul -cod transmis.

Aceasta observatie sugereaza o metoda de decodificare bazata pe sindrom. Se cal-culeaza ıntai s = HrT . Daca s = 0, decodificarea lui r este tot r. Altfel, se ıncearca toatecuvintele de pondere 1. Pentru fiecare astfel de cuvant e se calculeaza HeT . Daca s-agasit un e cu HeT = s, r se decodifica ın r− e. In caz contrar se ıncearca vectorii depondere 2, 3, . . . , [(d− 1)/2]. Daca nu s-a gasit nici un cuvant e cu HeT = s, se deduceca au aparut mai mult de [(d− 1)/2] erori ın cursul transmisiei.

Metoda prezentata functioneaza pentru toate codurile liniare. Pentru anumite clasespeciale de coduri exista algoritmi polinomiali de decodificare si corectare a erorilor; ıncazul 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 eficace de decodificare - 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 = 2m, d = 2t+1, k =n−mt.Se definesc S o matrice inversabila k×k peste Z2 si P o matrice de permutare n×n(matrice ın care pe fiecare linie si coloana exista o valoare 1, iar restul elementelorsunt 0).Fie P= Zk

2 , C= Zn2 , K= {(G, S, P, G′) | G′ = S ·G · P}.

G′ este publica iar G, S, P sunt secrete.Pentru K = (G, S, P, G′) se defineste

eK(a, e) = aG′ + e

unde e ∈ Zn2 este un cuvant aleator2 de pondere t.

Bob decripteaza un mesaj b ∈ Zn2 astfel:

1. Calculeaza b1 = bP−1;2. Decodifica b1 obtinand b1 = a1 + e1 unde a1 ∈ C;3. Calculeaza a0 ∈ Zk

2 astfel ca a0G = a1;4. Calculeaza a = a0S

−1.

Corectitudinea algoritmului de decriptare:

Deoarece b1 = 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 decodificare al codului dematrice generatoare G poate decodifica corect pe b1 si obtine un mesaj sursa a0 = aS.

La ultimul pas se afla mesajul initial a = a0S−1.

Page 341: Criptografie complet

12 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

Nu vom intra ın detalii privind definitia codurilor Goppa ([1]). Acestea pot fi priviteınsa drept coduri liniare cu parametrii n = 2m, d = 2t + 1, k = n − mt. Pentru oimplementare practica referitor la criptare, McEliece sugereaza m = 10, t = 50, ceea cecorespunde unui (1024, 524, 101) - cod Goppa3. Un text clar este o secventa de 524 biti,iar un text criptat este o secventa de 1024 biti. Cheia publica este o matrice binara dedimensiuni 524× 1024.

Exemplul 13.8 Vom exemplifica algoritmul pe un (8, 2, 5) - cod Goppa (deci n = 23, 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 11 1 0 0 1 0 1 1

)

Sa presupunem ca Bob alege matricile

S =

(1 01 1

)cu S−1 =

(1 01 1

)si

P =

0 1 0 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 0 0 1 01 0 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 0 0 1 0 00 0 0 0 1 0 0 00 0 0 0 0 0 0 1

cu P−1 =

0 0 0 1 0 0 0 01 0 0 0 0 0 0 00 0 0 0 1 0 0 00 1 0 0 0 0 0 00 0 0 0 0 0 1 00 0 0 0 0 1 0 00 0 1 0 0 0 0 00 0 0 0 0 0 0 1

Matricea publica generata este deci

G′ = SGP =

(1 0 1 0 1 1 1 11 1 0 1 0 1 1 0

)

Sa presupunem ca Alice vrea sa cripteze textul clar a = (0, 1) folosind vectorul - eroaree = (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 receptionarea mesajului, Bob calculeaza ıntaib1 = bP−1 = (1, 1, 1, 1, 1, 0, 0, 0),

pe care ıl scrie sub forma a1 + e1 unde a1 = (1, 1, 1, 1, 0, 1, 0, 0) este un cuvant - cod,iar e1 = (0, 0, 0, 0, 1, 1, 0, 0) 6= e (din cauza ınmultirii cu P−1).

Bob calculeaza apoi mesajul a0 = (1, 1), singurul cu proprietatea a0G = a1.Ultimul pas este determinarea lui a = S−1a0 = (0, 1), care este textul clar expediat de

Alice.

3O analiza a securitatii recomanda parametrii n = 1024, t = 38, k ≥ 644.

Page 342: Criptografie complet

13.4. EXERCITII 13

Algoritmul McElliece s-a dovedit sigur. Acest lucru rezulta din analiza celor douatipuri de atac posibile:

1. Din informatia publica, Oscar ıncearca sa afle matricea G sau o matrice G1 a unuicod Goppa echivalent (avand aceeasi parametri). Nu se cunoaste nici un algoritmeficient pentru un astfel de demers.

2. Oscar ıncearca sa afle mesajul clar a direct din textul criptat b. El ia aleator kcoloane din matricea publica G′. Notand G′

k,bk, ek restrictiile lui G′,b respectiv ela aceste k coloane, vom avea aG′

k = bk + ek. Daca bk = 0 si G′k este nesingulara,

atunci a poate fi aflat rezolvand sistemul liniar aG′k = bk. Probabilitatea ca cei k

biti selectati sa nu faca parte din eroare (deci ek = bf0 este Ckn−t/C

kn, neglijabila

pentru valorile alese ale parametrior n, k, t.

Interesant, dar aceasta securitate este mult diminuata daca se foloseste alta clasa de coduriliniare ın locul codurilor Goppa.

Totusi, ın ciuda securitatii sale si a vitezei relativ mari de criptare/decriptare sistemulMcElliece 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 219 biti.

13.4 Exercitii

13.1 Fie E curba eliptica y2 = x3 + x + 28 peste Z71.

1. Determinati numarul de puncte din E;

2. Aratati caE nu este ciclic;

3. Care este ordinul maxim al unui element din E ? Gasiti un astfel de element.

13.2 Fie E curba eliptica y2 = x3 + x + 13 definitape Z31. Se poate arata ca |E| = 34 sica (9, 10) este de ordinul 34 ın E. Sistemul de criptare Mezenes - Vanstome definit pe Eadmite ca spatiu al textelor clare Z∗

34 × Z∗34. Fie a = 25 exponentul secret al lui Bob.

1. Calculati β = aα;

2. Decriptati textul urmator:

((4, 9), 28, 7)((19, 28), 9, 13)((5, 22), 20, 17)((25, 16), 12, 27)

3. Daca presupunem ca fiecare text clar reprezinta doua caractere alfabetice, convertitiacest text clar ın engleza (s-a folosit corespondenta A− 1, . . . , Z − 26).

Page 343: Criptografie complet

14 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

13.3 Fie E curba eliptica y2 = x3 + x + 6 peste Z11.(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 Demonstrati Lemele 13.1 si 13.2.

13.5 Fie curba eliptica E de ecuatie y2 = x3 + x + 28 peste Z71.(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 ∈ Zp. Daca ecuatia x3 +ax+ b ≡ 0 (mod p)are trei radacini distincte ın Zp, aratati ca grupul curbei eliptice corespunzatoare (E, +)nu este ciclic.

13.7 Fie E o curba eliptica definita peste Zp unde p > 3 este un numar prim. Sapresupunem ca n = card(E) este prim si fie P ∈ E, P 6= O.

(a) Aratati ca logP (−P ) = n− 1.(b) Dati un algoritm de calcul pentru n de complexitate O(p1/4) folosind teorema lui

Hasse si o varianta a algoritmului Shanks.

13.8 O reprezentare binara (an−1, an−2, . . . , a0) a numarului ıntreg a este ın ”forma ne-adiacenta” (forma NAF ) daca nu exista doua valori consecutive nenule.

(a) Dati un algoritm de reprezentare a numerelor ıntregi ın forma NAF . Aplicatiacest algoritm pentru numerele 87, 112, 2047.

(b) Folosind reprezentarea NAF a lui 87, calculati 87P , unde P = (2, 6) este un punctpe curba eliptica y2 = x3 + x + 26 definita peste Z27.

Page 344: Criptografie complet

Bibliografie

[1] A. Atanasiu, Teoria Codurilor, Editura Universitatii Bucuresti, 2002

[2] A. Enge, Elliptic Curves and their applications to Cryptography, Kluwer AcademicPubl, 1999

[3] M. Rosing, Implementing Elliptic Curve Cryptography, Manning, 1998

[4] D. Stinton, Cryptography, theory and pratice, International Thompson PublishingFrance, 1995

[5] A. Salomaa, Criptografie 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

Page 345: Criptografie complet

Prelegerea 1

Codificare si decodificare

1.1 Codificare

Definitia 1.1 Fiind date multimile A (alfabetul sursa) si B (alfabetul cod), o co-dificare este o aplicatie injectiva K : A → B∗.

Elementele multimii K(A) ⊆ B∗ se numesc cuvinte-cod, iar K(A) se numeste cod.Daca B are numai doua simboluri, codificarea K se numeste binara.

Exemplul 1.1 Printre secventele binare de lungime 5, numarul celor care au doide 1 este C2

5 = 10. Ele pot fi folosite pentru a codifica cifrele din scrierea zecimala(Tabelul 1.1).

Tabelul 1.1: Codul ”doi-din-cinci”

Simbol zecimal Cuvant cod1 110002 101003 011004 100105 010106 001107 100018 010019 001010 00011

Mesajul ′′173′′ are codul 110001000101100. De remarcat ca ıntre cuvintele codnu se lasa nici un spatiu, deoarece ”spatiu” poate fi el ınsusi un simbol-cod. Astfelde exemplu, codul Morse are alfabetul B = {.,−, spatiu}.

Decodificarea se face foarte simplu: se ımparte mesajul codificat ın grupe de catecinci caractere si se vede cifra din tabel corespunzatoare grupei respective. Repar-tizarea cuvintelor cod a fost facuta pentru a realiza si o decodificare pe baza unei

1

Page 346: Criptografie complet

2 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

formule. Astfel, daca a0a1a2a3a4 este cuvantul - cod, el corespunde cifrei k data dealgoritmul:

beginx := a1 + 2a2 + 4a3 + 7a4;if x = 11 then k := 0 else k := x;

end.

Definitia 1.2 Pentru o codificare K : A → B∗, se numeste ”codificare a mesajelor(textului) sursa” aplicatia K∗ : A∗ → B∗ definita recursiv prin:

• K∗(ε) = ε (ε este cuvantul vid);

• K∗(aα) = K∗(a)K∗(α), ∀a ∈ A,α ∈ A∗.

Definitia 1.3 Codificarea K este ”unic decodabila” daca K∗ este injectiva.

Codificarea data ın Exemplul 1.1 este - dupa cum s-a observat - unic decodabila.Acest lucru nu este totdeauna posibil. Daca luam de exemplu codificarea

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 .

Definitia 1.4 1. O codificare K : A → B∗ ın care toate cuvintele cod au lungi-mea n se numeste ”codificare-bloc de lungime n”, iar K(A) este un ”cod-blocde lungime n”.

2. O codificare K : A → B∗ se numeste ”instantanee” daca K(A) are proprietateaprefixului (daca α, αβ ∈ K(B) atunci β = ε).

Codul definit ın Exemplul 1.1 este un cod - bloc de lungime 5.Codurile bloc sunt eficiente ın cazul cand simbolurile sursa au frecvente egale de

aparitie; ın caz contrar, ele devin greoaie si sunt preferabile codurile instantanee culungimi variabile ale cuvintelor cod.

Exemplul 1.2 Codul Morse, dat ın Tabelul 1.2 este un cod instantaneu cu alfabetulcod B = {.,−, }. Deoarece spatiul este folosit numai la sfarsitul fiecarui cuvant -cod, procedura de decodificare este simpla: orice cuvant - cod se afla ıntre douaspatii, de la ınceputul mesajului pana la primul spatiu, sau de la ultimul spatiu panala sfarsit. Motivul pentru care nu se foloseste un cod - bloc este simplu: frecventeleliterelor ıntr-o limba difera foarte mult.

Exemplul 1.3 Un alt exemplu de cod - bloc este codul octal:

0 000 4 1001 001 5 1012 010 6 1103 011 7 111

Page 347: Criptografie complet

1.2. EXEMPLE DE CODURI - BLOC IMPORTANTE 3

Tabelul 1.2: Codul Morse

A . - F . . - . K - . - P . - - . U . . -B - . . . G - - . L . - . . Q - - . - V . . . -C - . - . H . . . . M - - R . - . W . - -D - . . I . . N - . S . . . X - . . -E . J . - - - O - - - T - Y - . - -

Z - - . .

Exemplul 1.4 Sa presupunem ca vrem sa construim un cod binar pentru alfabetul{0, 1, 2, 3} si observam ca 0 apare ın mesajele sursa mai des decat orice alt simbol.Atunci urmatoarea schema de codificare pare rezonabila:

K(0) = 0, K(1) = 01, K(2) = 011, K(3) = 111.

Decodificarea sa este foarte simpla: se aplica recursiv regula:

”Se considera sufixul 01k; valoarea lui k reprezinta numarul codificat.”

Totusi aceasta codificare nu este instantanee. Intr-adevar, daca se primeste unmesaj lung de forma

0111111111111111 . . .

nu vom sti daca primul simbol sursa este 0, 1 sau 2 pana nu se termina mesajul.

1.2 Exemple de coduri - bloc importante

Codurile binare sunt de obicei lungi si deci greu de manipulat. Este deci convenabilsa grupam simbolurile binare formand alfabete mai complexe.

Astfel, formand grupuri de cate trei simboluri, se obtin codurile octale (Exemplul1.3). Reprezentarea ın octal se indica de obicei prin indicele 8 asezat la sfarsit. Deexemplu,

(01)8 = 000001

In mod similar, prin gruparea a cate patru simboluri binare se obtine codul hexa-zecimal.

Un cod foarte important folosit ın reprezentarea standard a simbolurilor alfa-betice si numerice este codul ASCII (American Standard Code for InformationInterchange) - Tabelul 1.3.

Page 348: Criptografie complet

4 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

Tabelul 1.3: Codul ASCII (7 biti de informatie)

Simbol Cod Simbol Cod Simbol Cod Simbol Codsursa 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 27 = 128 simboluri sursa codificate ın secvente binare de lungime 8;primele 7 contin infomatia, iar ultimul - numit bit de paritate da un prim controlasupra corectitudinii secventei. Valoarea acestui caracter este suma modulo 2 aprimilor sapte biti.

De exemplu, litera A, va avea codul 10000010; primele sapte simboluri provindin Tabelul 1.3 iar ultimul are valoarea 0 deoarece anterior au fost doua (numarpar) simboluri binare cu valoarea 1.

Un ultim cod, folosit international pentru toate cartile este International Stan-dard Book Number (ISBN). El este un cod - bloc de lungime 10 (lungimea cuvintelor- cod creste prin folosirea simbolului ’-’ pe diverse pozitii, dar acest caracter este ig-

Page 349: Criptografie complet

1.3. CONSTRUCTIA CODURILOR INSTANTANEE 5

norat la prelucrarea automata). Alfabetul cod este B = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X},(X pentru numarul 10).

De exemplu, cartea S. Lin, P. Costello - Teoria Codurilor are codul

ISBN 0 − 13 − 283796 − X

Primul numar (0) reprezinta tara (SUA), 13 reprezinta editura (Prentice-Hall),iar urmatoarele sase cifre sunt asignate de editura ca numar de identificare al cartii.Ultimul simbol este de control (similar cu bitul de paritate definit anterior) si definitastfel:

Pentru codul ISBN a1a2 . . . a10,10∑

i=1

ia11−i = 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 publicatii au codul de identificare de trei cifre (de exemplu Wiley-Inter-

science are 471); ın acest caz numarul pentru fiecare publicatie are numai cincisimboluri. Pentru Romania, codul de tara este 973.

1.3 Constructia codurilor instantanee

Ne punem problema construirii unui cod binar instantaneu peste alfabetul sursaA = {a1, . . . , an}.

Initial se specifica lungimile d1, d2, . . . , dn ale cuvintelor cod. Fara a micsorageneralitatea, putem presupune d1 ≤ d2 ≤ . . . ≤ dn.

Se alege un cuvant - cod binar arbitrar K(a1) de lungime d1.Se alege un cuvant - cod arbitrar K(a2) din multimea cuvintelor binare de

lungime d2 care nu au pe K(a1) ca prefix. Aceasta este totdeauna posibil pentru ca:Numarul tuturor secventelor binare de lungime d2 este 2d2 ; dintre acestea, numa-

rul celor care nu au prefixul K(a1) este 2d2−d1 . Cum 2d2 ≥ 2d2−d1 + 1, exista celputin o alegere posibila pentru K(a2) de lungime d2.

Va trebui sa selectam ın continuare un cuvant de lungime d3 care nu are ca prefixK(a1) sau K(a2). Deci, din cele 2d3 secvente binare posibile trebuiesc eliminate cele2d3−d1 secvente cu prefixul K(a1) si 2d3−d2 secvente cu prefixul K(a2). Aceasta esteposibil daca si numai daca

2d3 ≥ 2d3−d2 + 2d3−d1 + 1

Impartind aceasta inegalitate cu 2d3 se obtine

1 ≥ 2−d1 + 2−d2 + 2−d3 .

In mod analog se poate arata inegalitatea

1 ≥ 2−d1 + 2−d2 + . . . + 2−dn

din care rezulta constructia. De remarcat ca ea este o conditie necesara si suficientapentru constructia codurilor instantanee.

Page 350: Criptografie complet

6 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

Teorema 1.1 Fiind dat un alfabet sursa de n simboluri si un alfabet cod de k sim-boluri, se poate construi un cod instantaneu cu lungimile cuvintelor cod d1, d2, . . . , dn

daca si numai daca este verificata inegalitatea (Kraft):

k−d1 + k−d2 + . . . + k−dn ≤ 1.

Demonstratie: Fie A = {a1, a2, . . . , an} si putem presupune relatia d1 ≤ d2 ≤ . . . ≤dn. Construim codificarea instantanee K prin inductie astfel:

• Se alege K(a1) arbitrar.

• Presupunem ca au fost alese K(a1), K(a2), . . . K(as−1). Atunci se va alege uncuvant arbitrar K(as) care nu are ca prefix nici unul din cuvintele selectateanterior. Aceasta este posibil deoarece numarul cuvintelor cu prefixul K(ai)este 2ds−di (1 ≤ i ≤ s− 1); deci alegerea poate fi facuta din

kds −s−1∑

i=1

kds−di elemente.

Din inegalitatea lui Kraft avem

1−s−1∑

i=1

k−di ≥ k−ds

care, prin multiplicare cu kds conduce la

kds −s−1∑

i=1

kds−di ≥ 1.

Afirmatia reciproca se demonstreaza similar (pentru k = 2 ea a fost data anterior).2

Teorema 1.2 (McMillan) Orice codificare unic decodabila satisface inegalitatea luiKraft.

Demonstratie: Fie K o codificare unic decodabila. Notam cu di lungimea cuvantuluicod K(ai), (1 ≤ i ≤ n). Se observa ca ∀j, (j ≥ 1) se pot forma kj cuvinte de lungimej peste alfabetul - cod cu k simboluri. Din proprietatea de unic decodabilitate,numarul mesajelor sursa α = ai1ai2 . . . air al caror cod are lungimea j nu depasestekj. Lungimea codului pentru α este di1 +di2 +. . .+dir ; deci numarul tuturor sumelorde forma

di1 + di2 + . . . + dir = j

este cel mult kj.

Ramane de demonstrat ca numarul c =n∑

i=1

k−di este cel mult 1. Pentru aceasta,

vom arata ca ∀r ≥ 1,cr

reste marginit.

Page 351: Criptografie complet

1.4. CODURI HUFFMAN 7

Sa calculam puterile lui c:

c2 =

(n∑

i=1

k−di

)

n∑

j=1

k−dj

=

n∑

i,j=1

k−(di+dj)

si, ın general,

cr =n∑

i1,i2,...,ir=1

k−(di1+di2

+...+dir )

Aceasta suma se poate re-ordona grupand toti termenii de forma k−j unde j satisfaceegalitatea anterioara. Cel mai mare j posibil este j = d + d + . . . + d = rd, unded = max{d1, d2, . . . , dn}.

Numarul tuturor termenilor de forma k−j din suma este cel mult kj. Deci,

cr ≤rd∑

j=1

kjk−j =rd∑

j=1

1 = rd.

Deci,cr

r≤ d, de unde va rezulta c ≤ 1 (pentru c > 1 sirul ar =

cr

r→ ∞, deci nu

este marginit). 2

Corolarul 1.1 Pentru orice cod unic decodabil exista un cod instantaneu care aretoate cuvintele - cod de lungimi egale.

Demonstratie: Rezulta din demonstratia teoremei precedente.

Exemplul 1.5 Sa consideram alfabetul sursa = {a, b, c} si alfabetul - codB = {0, 1}; deci n = |A| = 3, k = |B| = 2. Vrem sa construim o codificareinstantanee 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 verifica este

d = 2. Deci orice multime de 3 secvente binare de lungime 2 va putea fi folositadrept cod. Sunt 4 astfel de multimi:

{00, 01, 10}, {00, 01, 11}, {00, 10, 11}, {01, 10, 11}

1.4 Coduri Huffman

Am mentionat anterior faptul ca daca frecventa simbolurilor sursa variaza, atunci co-durile instantanee sunt preferabile codurilor bloc, deoarece simbolurile care apar maifrecvent vor fi codificate cu cuvinte cod mai scurte. Ne punem problema aflarii unorcodificari cat mai eficiente, ın ipoteza ca frecventele simbolurilor sursa sunt cunos-cute exact (de exemplu probabilitatea distributiei simbolurilor sursa ın mesaje).

Definitia 1.5 O sursa de informatie este o pereche S = (A,P ) unde

• A = {a1, a2, . . . , an} este alfabetul sursa(multime ordonata);

• P = {P (a1), P (a2), . . . , P (an)} este multimea ordonata a probabilitatilor ele-mentelor lui A, deci

Page 352: Criptografie complet

8 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

– 0 ≤ P (ai) ≤ 1, (1 ≤ i ≤ n);

–n∑

i=1

P (ai) = 1.

Fie K o codificare a unei surse de informatie. Daca se noteaza cu di = |K(ai)| (|α|reprezinta lungimea secventei α), se poate defini lungimea medie L a cuvintelor codprin

L =n∑

i=1

diP (ai).

O codificare este eficienta daca lungimea medie a secventelor cod este cat mai mica.

Definitia 1.6 Fiind data o sursa de informatie S si un alfabet cod, un cod Huffmaneste un cod instantaneu cu lungimea medie minima.

Lungimea medie minima a unui cod Huffmann se noteaza cu Lmin(S).

Exemplul 1.6 Sa se determine un cod Huffman 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 orimai des decat orice consoana.

Deci, vom avea sursa de informatie

Simbol a b c d e fProbabilitate 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 Krafteste saturata: 1

2+ 1

22 + 424 = 1. Un astfel de cod se poate construi:

K(a) = 0 K(c) = 1101 K(e) = 10K(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, Lmin(S) ≤ 2.4

1.4.1 Constructia codurilor Huffman binare

O sursa cu doua simboluri are evident un cod Huffman de cuvinte cod {0, 1} (si deciLmin(S) = 1).

O sursa cu trei simboluri {a1, a2, a3} ın care a1 are probabilitate maxima, poatefi redusa la cazul a doua simboluri {a1, a2,3} unde P (a2,3) = P (a2) + P (a3). Vomgasi o codificare Huffman pentru sursa redusa

K(a1) = 0, K(a2,3) = 1.

dupa care ”spargem” cuvantul cod 1 ın doua cuvinte: 10 si 11; ın acest fel se obtineun cod Huffman pentru sursa originala:

Page 353: Criptografie complet

1.4. CODURI HUFFMAN 9

a1 a2 a3

0 10 11

In general, fie S o sursa de informatie cu simbolurile {a1, a2, . . . , an} ordonate dupaprobabilitati, adica:

P (a1) ≥ P (a2) ≥ . . . ≥ P (an).

Contruim o sursa redusa S∗ cu simbolurile {a1, . . . , an−2, an−1,n} unde an−1,n este unsimbol nou, cu probabilitatea P (an−1,n) = P (an−1) + P (an).

Daca nu se poate construi un cod Huffman pentru S∗, se reia procedeul pentruaceasta sursa (reordonand eventual simbolurile dupa probabilitate); ın final se vaajunge la o sursa (pentru doua simboluri problema a fost rezolvata) ın care carecodul Huffman se poate construi.

Daca se poate gasi o codificare Huffman K∗ pentru sursa redusa S∗, atunci coduldin Tabelul 1.4 este un cod Huffman pentru S (vom demonstra aceasta afirmatie) .

Tabelul 1.4:

a1 a2 . . . an−2 an−1 an

K∗(a1) K∗(a2) . . . K∗(an−2) K∗(an−1,n)0 K∗(an−1,n)1

Lema 1.1L(K) = L(K∗) + P (an−1) + P (an)

Demonstratie: Fie d1, d2, . . . , dn−2, d∗ lungimile cuvintelor cod corespunzatoare lui

K∗. Atunci lungimile cuvintelor cod pentru K sunt d1, d2, . . . , dn−2, d∗ + 1, d∗ + 1.

Efectuand calculele, se obtine:

L(K) =n−2∑

i=1

diP (ai) + (d∗ + 1)P (an−1) + (d∗ + 1)P (an) =

=n−2∑

i=1

diP (ai) + d∗[P (an−1) + P (an)] + P (an−1) + P (an) =

= L(K∗) + P (an−1) + P (an).

2

Teorema 1.3 Fie K∗ o codificare Huffman pentru o sursa de informatie redusa S∗.Atunci codificarea K definita de Tabelul 1.4 este un cod Huffman pentru sursa deinformatie S.

Demonstratie: Fie a1, a2, . . . , an simbolurile sursa, ordonate descrescator dupa prob-abilitate. Deoarece teorema este evidenta pentru P (an) = 0, vom considera doarcazul P (an) > 0. Demonstratia consta din trei pasi:

• S admite o codificare Huffman K0 cu lungimile cuvintelor cod ordonate:

d1 ≤ d2 ≤ . . . ≤ dn (di = |K0(ai)|, 1 ≤ i ≤ n).

Pentru a demonstra aceasta, plecam de la un cod Huffman arbitrar K pentruS. Daca exista un simbol ai astfel ca di > di+1, notam cu K ′ codificarea

Page 354: Criptografie complet

10 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

obtinuta din K prin permutarea cuvintelor cod corespunzatoare lui ai si ai+1.K ′ este evident un cod instantaneu, iar diferenta dintre lungimile medii L =Lmin (al lui K) si L′ (al lui K ′) este:

Lmin − L′ = [diP (ai) + di+1P (ai+1)]− [di+1P (ai) + diP (ai+1)] =

= (di − di+1)[P (ai)− P (ai+1)].

Aceasta expresie este produsul dintre un numar pozitiv si unul nenegativ, deciLmin ≥ L′, iar din proprietatea de minimalitate rezulta Lmin = L′. Cu altecuvinte, K ′ este un alt cod Huffman. Procedeul continua pana se obtine codulK0 cerut.

• S admite o codificare Huffman K1 ın care ultimele cuvinte cod, K1(an−1) siK1(an) difera doar prin ultimul simbol.

Fie K0 codul Huffman anterior si K0 codul rezultat din K0 eliminand ultimulsimbol din K0(an). Lungimea medie a lui K0 va fi evident mai mica decat ceaa lui K0 (pentru ca P (an) > 0), deci K0 nu poate fi instantaneu. Cuvantul codK0(ai) = K0(ai), (1 ≤ i ≤ n − 1) nu este prefixul nici unui cuvant cod; deciexista un i (i ≤ n − 1) astfel ıncat K0(an) este prefixul lui K0(ai). Aceastaeste posibil numai daca di = dn si deci K0(ai) difera de K0(an) numai prinultimul simbol. Daca i = n− 1, se ia K1 = K0. Altfel, se observa ca di = dn

implica di = di+1 = . . . = dn; deci se pot permuta cuvintele cod definite ın K0

pentru ai si an−1. Codul K1 astfel obtinut are aceeasi lungime medie ca si K0,deci este un cod Huffman.

• Sa presupunem ca se da o codificare Huffman K∗ pentru sursa redusa S∗

si definim un cod K pentru S conform Tabelului 1.4. Lungimile lor mediiL(K), L(K∗) verifica relatia din Lema 1.1.

Sa folosim acum codul Huffman K1 construit mai sus. Deoarece ultimele douacuvinte cod difera numai prin ultimul simbol, K1 poate fi obtinut dintr-un codK∗

1 al lui S∗ prin ”spargerea” ultimului cuvant - cod. In plus, K∗1 este evident

instantaneu. Prin calcule se ajunge la relatia

L(K1)− L(K∗1) = P (an−1) + P (an)

Cum avem si L(K)− L(K∗) = P (an−1) + P (an), rezulta

L(K) = L(K1)− L(K∗1) + L(K∗).

Acum, L(K∗) = Lmin(S∗), deci −L(K∗1) + L(K∗) ≤ 0. Rezulta L(K) ≤

L(K1) = Lmin(S). Deci, K este un cod Huffman.

2

Page 355: Criptografie complet

1.5. EXERCITII 11

1.5 Exercitii

Exercitiul 1.1 Care este cea mai mica lungime a unui cod bloc cu alfabetul sursaA = {A,B, . . . , Z} si alfabetul cod B = {.,−, spatiu} (ca la codul Morse).

Exercitiul 1.2 Se defineste codificarea

1 → 01 4 → 10002 → 011 5 → 11003 → 10 6 → 0111

Este ea unic decodabila ? Este instantanee ? Se poate gasi un cod instantaneu cuaceleasi lungimi ale cuvintelor cod ?

Exercitiul 1.3 Se defineste codificarea

A → 1010 D → 0001B → 001 E → 1101C → 101 F → 1011

Este ea unic decodabila ? Daca nu, gasiti doua mesaje sursa cu acelasi cod.

Exercitiul 1.4 Este unic decodabila codificarea:

0 → AA 4 → ABBAA 7 → AAAABB1 → AABAB 5 → BABBA 8 → AAAABA2 → ABBBBB 6 → BBBAB 9 → AAAAAB3 → ABABA

Exercitiul 1.5 Se poate decide unic decodabilitatea codificarilor

K(a) = 001 K(a) = 00K(b) = 1001 K(b) = 10K(c) = 0010 K(c) = 011K(d) = 1110 K(d) = 101K(e) = 1010 K(e) = 111K(f) = 01110 K(f) = 110K(g) = 0101 K(g) = 010

folosind inegalitatea lui Kraft ?

Exercitiul 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 LLungime 2 4 7 7 3 4 7 7 3 4 7 7

Exercitiul 1.7 Sa se construiasca un cod ternar (trei simboluri cod) instantaneupentru urmatorul alfabet sursa, cu lungimile corespunzatoare ale cuvintelor cod:

Page 356: Criptografie complet

12 PRELEGEREA 1. CODIFICARE SI DECODIFICARE

Simbol 1 2 3 4 5 6 7 8 9 0Lungime 1 3 3 3 3 3 2 2 2 2

Exercitiul 1.8 Cate simboluri cod sunt necesare pentru ca urmatorul alfabet sursasa poata fi codificat ıntr-un cod instantaneu cu lungimile cuvintelor cod date:

A B C D E F G H I J K L M N O P1 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2

Exercitiul 1.9 Demonstrati ca pentru orice cod instantaneu ın care inegalitateaKraft este stricta, este posibil sa se adauge un nou simbol sursa si sa se extindacodul dat la un nou cod instantaneu (cu acelasi alfabet cod). Demonstrati aceastapentru codul definit la Exercitiul 1.6.

Page 357: Criptografie complet

Prelegerea 2

Coduri liniare

2.1 Matrice generatoare

Definitia 2.1 Fie q un numar prim si n ∈ N∗ un numar natural nenul. Se numeste”cod liniar” orice subspatiu liniar al lui Zn

q .Un subspatiu k-dimensional al lui Zn

q se numeste (n, k)- cod liniar peste alfabetulZq.

Sa notam ın general cu An,k (An,k ⊆ Znq ) un (n, k) - cod liniar. Elementele sale se

numesc cuvinte-cod.Fie n, k ∈ N, k < n. O codificare este o aplicatie injectiva φ : Zk

q −→ Znq , iar

An,k = φ(Zkq ). Elementele lui Zk

q se numesc mesaje de informatie.

Deci, x ∈ Zkq este un mesaj de informatie scris cu caractere din alfabetul Zq.

Daca transmitem succesiunea x de semnale printr-un canal de comunicatie, mesajuleste supus diverselor perturbari ”de canal” care-l modifica. Ideea teoriei coduriloreste urmatoarea: ın loc de a transmite elementele lui Zk

q , sa ”lungim” mesajulinformational scufundand (prin intermediul aplicatiei φ) Zk

q ıntr-un spatiu liniarZn

q (n > k) astfel ıncat cele n− k pozitii noi - numite pozitii de control - sa asigureredondanta necesara refacerii mesajului de informatie initial.

Astfel, cu pretul lungirii mesajului, se castiga protectia fata de (anumite tipuride) erori.

Observatii:

• Din definitie rezulta ca un cod liniar de lungime n este un set A de cuvinte(secvente, siruri, vectori) de lungime n cu proprietatile:

– ∀a,b ∈ A =⇒ a + b ∈ A;

– ∀a ∈ A, t ∈ Zq =⇒ ta ∈ A.

• Orice cod - liniar contine cuvantul cod nul 0 = (0, 0, . . . , 0).

• |Zq| = r =⇒ |An,k| = rk

An,k fiind un spatiu liniar k-dimensional, admite o baza formata din k vectori cu nelemente. Fie

e1, e2, . . . , en

13

Page 358: Criptografie complet

14 PRELEGEREA 2. CODURI LINIARE

o astfel de baza. Atunci orice cuvant cod v ∈ An,k are forma

v =k∑

i=1

uiei

unde (u1, u2, . . . , uk) ∈ Zkq este unic determinat.

Cu alte cuvinte, k simboluri de informatie u1, . . . , uk ∈ Zq determina ın modunic un cuvant - cod v ∈ An,k prin relatia de sus, si reciproc. Operatia de codificareφ face aceasta asociere biunivoca:

u = (u1, . . . , uk) ∈ Zkq ⇐⇒ v =

k∑

i=1

uiei ∈ An,k

Fiecare vector - cod ıntr-un cod liniar va avea deci k simboluri de informatie; celelalten− k simboluri se numesc simboluri de control.

Definitia 2.2 Fie An,k un cod liniar cu baza e1, . . . , ek. Matricea

Gn,k =

e1

e2

. . .ek

se numeste ”matricea generatoare” a codului.

Deci operatia de codificare este definita prin matricea generatoare:

∀u ∈ Zkq , φ(u) = uG.

Exemplul 2.1 Matricea

G =

(1 0 0 1 10 1 0 0 1

)

genereaza un (5, 2)-cod liniar peste Z2. Rangul ei este 2 (primele doua coloaneformeaza matricea unitate), deci cele doua linii ale lui G sunt cuvinte - cod liniarindependente.

Multimea mesajelor de de informatie este Z22 = {00, 01, 10, 11}. Inmultind fiecare

mesaj cu matricea G se obtine spatiul liniar al cuvintelor - cod

A4,2 = {00000, 01001, 10011, 11010}.Functia de codificare este:

00 → 00000, 01 → 01001, 10 → 10011, 11 → 11010.

Un cod liniar poate fi generat de mai multe baze posibile. Deci se pot construimai multe matrici generatoare pentru un (n, k)-cod liniar. Ele se pot transformauna ın alta prin operatiile liniare obisnuite, definite pentru liniile unei matrici. Prinschimbarea matricii generatoare nu se schimba spatiul liniar al cuvintelor - cod, cinumai modalitatea de codificare (functia φ). Cum prin termenul cod se ıntelege deobicei spatiul liniar An,k, rezulta ca doua matrici diferite care se deduc una din altaprin operatii pe linii, reprezinta acelasi cod.

Page 359: Criptografie complet

2.1. MATRICE GENERATOARE 15

Exemplul 2.2 Reluand Exemplul 2.1, prin adunarea liniei doi la prima linie seobtine matricea

G′ =

(1 1 0 1 00 1 0 0 1

)

Ea genereaza acelasi spatiu liniar A5,2, dar codificarea difera:

00 → 00000, 01 → 01001, 10 → 11010, 11 → 10011

Exemplul 2.3 Matricea

G =

1 1 0 0 0 00 0 2 2 0 01 1 1 1 1 1

genereaza un (6, 3)-cod liniar peste Z3. Aducand matricea la forma canonica, seobtine

G′ =

1 1 0 0 0 00 0 1 1 0 00 0 0 0 1 1

Toate cele 33 = 27 cuvinte ale acestui cod au urmatoarea proprietate: fiecare simboleste scris de doua ori. Din acest motiv, codul este numit ”cod cu repetitie”.

Cea mai convenabila regula de codificare consta ın scrierea simbolurilor de informatiesi suplimentarea lor cu n − k simboluri de control. Aceasta corespunde matriciigeneratoare (unice)

G = (I|B)

unde I este matricea unitate de ordin k, iar B este o matrice cu k linii si n − kcoloane.

Definitia 2.3 Un cod liniar este numit sistematic daca admite o matrice genera-toare de forma G = (I|B) unde I este matricea unitate.

Definitia 2.4 Doua coduri liniare A si A′ de aceeasi lungime n se numesc echiva-lente daca ∃π ∈ Sn astfel ıncat

v1v2 . . . vn ∈ A ⇐⇒ vπ(1)vπ(2) . . . vπ(n) ∈ A′

(s-a notat cu Sn multimea permutarilor de n elemente).

Exemplul 2.4 Codul din Exemplul 2.1 este un cod sistematic. Din codificare seobserva ca mesajul de informatie se afla ın cuvantul - cod pe primele doua pozitii.

Codul cu repetitie 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 ajungela un cod sistematic generat de matricea

G∗ =

1 0 0 1 0 00 1 0 0 0 10 0 1 0 1 0

Page 360: Criptografie complet

16 PRELEGEREA 2. CODURI LINIARE

Teorema 2.1 Orice cod liniar este echivalent cu un cod liniar sistematic.

Demonstratie: Matricea generatoare G a unui (n, k) - cod liniar A are rangul k; deciea are k coloane liniar independente.

1. Sa presupunem ca primele k coloane ale lui G sunt liniar independente. DeciG = (X|Y ) unde Y este o matrice k×k inversabila. Exista atunci o succesiunede operatii de linii care transforma X ın matricea unitate. Aceeasi succesiunede operatii efectuate acum pentru toata matricea G va conduce la matriceaG′ = (I|Y ′). Deoarece si G′ este matrice generatoare pentru codul A, rezultaca acesta este sistematic.

2. Fie (p1, p2, . . . , pn) permutarea care aduce coloanele liniar independente alematricii G pe primele k pozitii. Se obtine ın acest fel o noua matrice G′. FieA′ codul liniar obtinut prin codificarea cu matricea generatoare G′. Atunci Asi A′ sunt echivalente, iar A′ este sistematic, conform cazului anterior. 2

2.2 Matrice de control

Definitia 2.5 Fie An,k un cod liniar generat de matricea G = Gk,n. Se numeste”matrice de control” o matrice H = Hn−k,n cu proprietatea GHT = 0.

Observatii:

• Din definitie rezulta ca matricea de control H a unui cod liniar A are urma-toarea proprietate:

v ∈ A ⇐⇒ vHT = 0

Lasam ca exercitiu demonstrarea acestei echivalente.

• Prin transpunere, relatia de sus se poate scrie si HGT = 0. Aceasta ınseamnaca si H este matricea generatoare a unui (n, n−k) - cod liniar peste corpul Zq,cod pentru care G este matrice de control. Cele doua coduri astfel definite senumesc coduri duale. Cuvintele - cod din cele doua coduri duale sunt ortogo-nale (produsul lor scalar este zero). Intr-adevar, daca A si B sunt doua coduriduale generate de matricile G respectiv H, iar x ∈ A,y ∈ B sunt cuvinte -cod arbitrare, exista u,v cu x = uG,y = vH. In plus, xHT = 0,yGT = 0.

Atunci, xyT = uGyT = u(yGT )T = u0T = 0.

Exemplul 2.5 (7, 4) - codul liniar binar cu matricea generatoare

G =

1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 0 0 1 1 1 1

are drept matrice de control

Page 361: Criptografie complet

2.2. MATRICE DE CONTROL 17

H =

0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1

care la randul ei este matricea generatoare a unui (7, 3) - cod liniar binar.Se verifica imediat relatia

GHT =

0 0 00 0 00 0 00 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 camatrice de control H = (−BT |I).

Demonstratie: Cele doua matrici unitate din scrierea lui G si H sunt de ordin krespectiv n− k. Efectuand calculele, se obtine:

GHT = (I|B)

−B−−I

= −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 aratam aceasta pe un exemplu:

Exemplul 2.6 Plecand de la matricea generatoare construita ın Exemplul 2.4, sepoate construi matricea de control (calculele se fac ın Z3):

H∗ =

−1 0 0 1 0 0

0 0 −1 0 1 00 −1 0 0 0 1

=

2 0 0 1 0 00 0 2 0 1 00 2 0 0 0 1

.

Aplicand acum permutarea inversa coloanelor lui H∗, se ajunge la matricea de con-trol a codului definit ın Exemplul 2.3:

H =

2 1 0 0 0 00 0 0 0 1 20 0 1 2 0 0

Relatia xHT = 0 pe care o verifica orice cuvant - cod x ∈ An,k permite sa definimun cod si sub forma unui sistem de ecuatii. Astfel, An,k este un cod peste Zq dacasi numai daca elementele sale sunt solutii ale sistemului liniar xHT = 0.

Exemplul 2.7 Codul cu matricea de control H =

(1 1 0 1 01 1 1 1 1

)

este definit ca multimea solutiilor binare (x1, x2, x3, x4, x5) ale sistemului

x1 + x2 + x4 = 0, x1 + x2 + x3 + x4 + x5 = 0

Page 362: Criptografie complet

18 PRELEGEREA 2. CODURI LINIARE

2.3 Sindrom

Fie codul liniar An,k ⊂ Znq peste Zq, cu matricea de control H si a ∈ Zn

q . Se numestesindrom al vectorului a vectorul z cu n− k componente obtinut prin relatia

zT = HaT ,

sau - echivalent - z = aHT .Observatie: z = 0 ⇐⇒ a ∈ An,k.Daca se transmite printr-un canal de comunicatie un cuvant a ∈ An,k pentru

care sindromul corespunzator verifica relatia z = aHT 6= 0, ınseamna ca s-a detectatfaptul ca ın timpul transmisiei au aparut erori.

Teorema 2.3 In Z2, sindromul receptionat este egal cu suma coloanelor din ma-tricea de control corespunzatoare pozitiilor perturbate.

Demonstratie: Fie a = (a1, a2, . . . , an) ∈ An,k cuvantul-cod transmis. Fara a res-trange generalitatea, sa presupunem ca au intervenit trei erori, pe pozitiile i, j, k,fiind receptionat vectorul

a′ = (a1, . . . , ai−1, a′i, ai+1, . . . , aj−1, a

′j, aj+1, . . . , ak−1, a

′k, ak+1, . . . , an)

unde a′i 6= ai, a′j 6= aj, a′k 6= ak. Avem0 = aHT = a1(h1) + . . . + ai(hi) + . . . + aj(hj) + . . . + ak(hk) + . . . + an(hn)pentru ca a ∈ An,k, iar (h1), . . . , (hn) sunt coloanele matricii H.Avem, de asemeneaa′HT = a1(h1) + . . . + a′i(hi) + . . . + a′j(hj) + . . . + a′k(hk) + . . . + an(hn)Prin adunarea acestor doua egalitati se obtine:z′ = a′HT = aHT +a′HT = (0)+ . . . +(0) + (hi) + . . .+ (hj)+ . . .+(hk)+ (0)+

. . . + (0) = (hi) + (hj) + (hk). 2

2.4 Pondere, distanta Hamming

Pentru orice cuvant x ∈ Znq , se numeste pondere numarul w(x) de componente

nenule. Evident, 0 ≤ w(x) ≤ n.Pentru doua cuvinte x,y ∈ Zn

q , se numeste distanta Hamming ıntre ele, numarul

d(x,y) = w(x− y).

Ca o remarca, deoarece x− y ∈ Znq , rezulta ca distanta Hamming dintre doua

cuvinte este ponderea unui cuvant din Znq .

Definitia 2.6 Se numeste distanta (Hamming) a codului liniar An,k ⊂ Znq peste Zq

cea mai mica distanta (Hamming) dintre elementele codului An,k, adica

d = minx,y∈An,k,x6=y

d(x,y)

Page 363: Criptografie complet

2.5. DETECTARE SI CORECTARE DE ERORI 19

Folosind proprietatea anterioara si faptul ca 0 ∈ An,k, rezulta ca

d = minx∈An,k,x6=0

w(x).

Se poate verifica imediat ca d este o distanta cu ajutorul careia Znq se poate structura

ca spatiu metric.

Teorema 2.4 Fie H matricea de control a unui cod liniar An,k. Codul are distantaminima d daca si numai daca orice combinatie liniara de d − 1 coloane ale lui Heste liniar independenta si exista cel putin o combinatie liniara de d coloane liniardependente.

Demonstratie: Pentru orice cuvant a, cu w(a) = s, aHT este o combinatie liniarade s coloane ale lui H. Cum exista un cuvant - cod de pondere minima egala cudistanta d a codului, rezulta ca avem cel putin o combinatie de d coloane liniardependente ale lui H. O combinatie de mai putin de d coloane liniar dependente arconduce la contradictie. 2

Definitia 2.7 Pentru r > 0 si x ∈ Znq , definim sfera de raza r si centru x ca

Sr(x) = {y|d(x,y) ≤ r}

Teorema 2.5 Fie An,k ⊆ Znq un cod liniar peste Zq cu distanta Hamming d. Daca

r =

[d− 1

2

], atunci

∀x,y ∈ An,k,x 6= y, Sr(x) ∩ Sr(y) = ∅.

Demonstratie: Presupunem prin absurd ca exista z ∈ Znq , z ∈ Sr(x) ∩ Sr(y).

Atunci d(x, z) ≤ r, d(y, z) ≤ r deci, conform inegalitatii triunghiului, d(x,y) ≤d(x, z) + d(y, z) ≤ 2r = 2

[d−12

]< d, ceea ce contrazice afirmatia ca d este distanta

codului An,k. 2

Evident, ın fiecare astfel de sfera exista un singur cuvant - cod: cel aflat ıncentru.

Definitia 2.8 Un cod liniar An,k ⊂ Znq de distanta d peste Zq este perfect daca

Znq =

x∈An,k

Sr(x)

unde r =[

d−12

].

2.5 Detectare si corectare de erori

Fie An,k ⊂ Znq un cod liniar peste Zq, de distanta d si t =

[d−12

]. Sa presupunem ca

s-a receptionat cuvantul z ∈ Znq ; va exista cel mult un cuvant x ∈ An,k astfel ıncat

z ∈ St(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).

Page 364: Criptografie complet

20 PRELEGEREA 2. CODURI LINIARE

Daca z 6= 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 ∈ An,k astfel cad(x, z) ≤ t, atunci z provine din cuvantul - cod x - si se va transforma ın acestaprin corectarea corespunzatoare a erorilor.

In celelalte cazuri, z sau nu se poate corecta, sau se corecteaza gresit, ın altcuvant cod.

Aceasta ultima situatie nu apare la codurile perfecte.Metoda de detectare si corectare a erorilor descrisa mai sus se numeste decodi-

ficarea cea mai probabila. Pentru marea majoritate a codurilor liniare aceasta estesingura metoda utilizata.

Pentru orice cuvant e ∈ Znq formam multimea

Ve = e + A = {e + v|v ∈ A}Ve este multimea cuvintelor w = e + v care pot fi receptionate la transmitereacuvantului cod v, atunci cand a actionat un vector - eroare e. e va fi numit eroare- tip.

In particular, A = 0 + A = V0.

Propozitia 2.1 Pentru orice a ∈ Ve, Va = Ve.

Demonstratie: Din a ∈ Ve, rezulta ca exista x ∈ A cu a = e + x. Deoarece x+A = A(evident, A fiind subspatiu liniar), avem Va = a + A = e + x + A = e + A = Ve. 2

Vom utiliza aceasta propozitie pentru definirea unei tehnici de decodificare.Daca vrem sa detectam o anumita eroare - tip e care modifica cuvintele din A

ın cuvintele subspatiului Ve, atunci vor fi mai usor de depistat cuvintele din Ve cuponderea minima.

Pentru fiecare Ve se alege un cuvant numit reprezentantul lui Ve; acesta este unelement cu cea mai mica pondere din Ve.

Se construieste urmatorul tablou (numit tablou standard):

1. Pe prima linie se scriu cuvintele - cod, ıncepand cu 0 (reprezentantul luiA = V0);

2. Pe prima coloana se scriu reprezentantii 0, e1, e2, . . .;

3. Pe linia cu reprezentantul ei, sub cuvantul cod xj se scrie cuvantulei + xj( mod q).

Exemplul 2.8 Fie matricea generatoare G =

(1 0 0 10 1 1 1

)peste Z2. Ea va cod-

ifica Z22 = {00, 01, 10, 11} ın A4,2 = {0000, 1001, 0111, 1110}.

Calculul multimilor Ve conduce la

V0000 = V1001 = V0111 = V1110

V1000 = V0001 = V0110 = V1111

V0100 = V1101 = V0011 = V1010

V0010 = V1011 = V0101 = V1100

Page 365: Criptografie complet

2.5. DETECTARE SI CORECTARE DE ERORI 21

Alegem ca reprezentanti pe 0000, 1000 (se poate si 0001), 0100, 0010. Tabloulstandard va fi:

0000 1001 0111 11101000 0001 1111 01100100 1101 0011 10100010 1011 0101 1100

Pentru receptie, acest tablou este ca un dictionar care se utilizeaza astfel: cu-vantul primit se decodifica ın cuvantul - cod din capul coloanei pe care se afla.

De exemplu, daca se receptioneaza 1101, el se va decodifica ın 1001.Evident, cuvintele de pe prima coloana se decodifica ın ele ınsele (ele nu au fost

perturbate de nici o eroare).

Pentru orice cod liniar, un dictionar complet de tipul celui de mai sus constituie ceamai simpla metoda de decodificare.

Problema apare atunci cand ıntr-o multime Ve sunt mai multe cuvinte de pondereminima. Atunci tabela va decodifica corect numai eroarea - tip aleasa ca reprezen-tant.

Astfel, revenind la Exemplul 2.8, cuvantul receptionat 1111 se decodifica ın 0111(considerand ca a fost alterat primul caracter).

Daca se ia ınsa drept reprezentant pe linia a doua 0001 ın loc de 1000, a doualinie din tabloul standard este

0001 1000 0110 1111

Atunci, 1111 se decodifica ın 1110 (considerınd ultimul caracter ca fiind cel alteratde canalul de transmisie). Care este cuvantul - cod corect transmis ? Acest lucru nupoate fi decis. Singurul lucru care poate fi facut este sa se aleaga drept reprezentantierorile - tip cele mai probabile.

Pentru un (n, k) - cod peste Zq, un dictionar complet consta din toate cele qn

cuvinte posibile, lucru destul de dificil deoarece ın practica codurile sunt destul delungi (de exemplu n = 100, k = 80). De aceea este utilizata o alta maniera de lucrucare reduce mult marimea tabloului de lucru.

Fie H matricea de control a unui (n, k) - cod liniar A; putem considera (Corolarul2.1) ca liniile lui H sunt vectori liniar independenti.

Teorema 2.6 Pentru orice e ∈ Znq , toate cuvintele din Ve au acelasi sindrom.

Demonstratie: Fie v ∈ A arbitrar si w = e + v. Avem

wHT = (e + v)HT = eHT + vHT = eHT + 0 = eHT .

Deci toate cuvintele din Ve au sindromul egal cu sindromul lui e. 2

Invers, pentru fiecare sindrom - deci pentru fiecare cuvant s de lungime n−k, sepoate determina un vector - eroare e avand sindromul s. Mai mult, s va fi ales astfelıncat sa aiba pondere minima (conform decodificarii cele mai probabile). Pentru

Page 366: Criptografie complet

22 PRELEGEREA 2. CODURI LINIARE

aceasta, se rezolva sistemul de ecuatii liniare HeT = sT , care are solutie, deoareceliniile lui H sunt liniar independente. Din multimea solutiilor alegem una de pondereminima, cu ajutorul careia construim multimea Ve a tuturor cuvintelor de sindroms.

Pe baza celor de mai sus, se poate folosi urmatoarea procedura de decodificare:

1. La receptionarea unui cuvant w, se calculeaza sindromul s:

sT = HwT .

2. Se afla eroarea - tip e cu sindromul s.

3. Se considera cuvantul - cod corect ca fiind v = w − e.

In acest fel, nu mai este necesar sa se retina tot tabloul standard; este suficientsa se stie reprezentantii subspatiilor Ve si sindromurile corespunzatoare.

Exemplul 2.9 Reluand codul definit ın Exemplul 2.8, el are ca matrice de control

H =

(0 1 1 01 1 0 1

)

Calculand sindromurile reprezentantilor, se ajunge la tabloul:

Sindrom Reprezentant00 000001 100010 001011 0100

care reprezinta o reducere cu 50% a datelor stocate.La receptionarea cuvantului 1101, i se calculeaza sindromul

(0 1 1 01 1 0 1

)

1101

=

(11

)

Repezentantul sindromului 11 este 0100. Efectuand operatia

1101− 0100 = 1101 + 0100 = 1001

(ın Z2 scaderea este de fapt adunare) se ajunge la cuvantul transmis, anume 1001.

Exemplul 2.10 Sa consideram codul liniar peste Z3 definit de matricea de control

H =

(1 0 2 1 00 1 2 1 2

)

Sindromurile sunt cuvinte de lungime 2 peste Z3, deci ın total noua cuvinte.Lista sindromurilor si a reprezentantilor este:

Page 367: Criptografie complet

2.6. EXERCITII 23Sindrom Reprezentant00 0000010 1000001 0100022 0010011 0001002 0000120 2000012 1000121 20002

De remarcat ca un tablou standard pentru acest cod are dimensiunea 9 × 27 sicontine 243 cuvinte; volumul de date s-a redus deci cu 92%.

Sa presupunem ca s-a trimis cuvantul cod 21122 si s-a receptionat 11122.Sindromul este

(1 0 2 1 00 1 2 1 2

)

11122

=

(20

)

deci e = 20000; decodificarea este

v = w − e = 11122− 20000 = 21122.

Decodificarea a fost corecta deoarece eroarea - tip aparuta a fost una din celeselectate prin reprezentanti.

2.6 Exercitii

2.1 Sa se construiasca coduri liniare care sa transforme cuvantul (a1, a2, . . . , an) ∈Zn

q ın:

1. (a1, a1, a1, a2, a2, a2, . . . , an, an, an);

2. (a1, b1, a2, b2, . . . , an, bn) unde b1 = a1, b + 2 = a1 + a2, bn = a1 + . . . + an;

3. (a1, 2an, 3a2, 4an−1, . . .).

2.2 Un cod liniar peste Z5 are urmatoarea matrice generatoare:

G =

1 2 3 1 22 2 4 1 01 1 2 2 1

Sa se afle matricea de control.

2.3 Aceeasi problema pentru Z7.

Page 368: Criptografie complet

24 PRELEGEREA 2. CODURI LINIARE

2.4 Determinati daca urmatorul cod liniar binar este sistematic sau nu:

G =

1 1 0 0 0 00 0 1 1 1 10 0 0 0 1 1

Daca nu, gasiti un cod sistematic echivalent.

2.5 Gasiti matricea generatoare a unui cod liniar binar care are matricea de control:

H =

1 0 1 1 0 0 01 1 1 0 1 0 01 1 0 0 0 1 00 0 1 0 0 0 1

2.6 Se da matricea de control

H =

1 1 0 1 0 11 1 0 0 1 01 0 1 1 0 0

a unui cod liniar binar.Sa se decodifice mesajele 110110, 010100.

2.7 Descrieti dualul (6, 3) - codului binar descris de ecuatiile:

x1 = x4, x2 = x5, x3 = x6.

2.8 Fie A un cod liniar binar obtinut din toate sumele posibile ale cuvintelor101011, 011101, 011010.

1. Aflati o matrice de control a codului.

2. Aflati un tablou standard si decodificati 111011.

2.9 Demonstrati ca codul liniar binar descris de ecuatiile

x3 = x1 + x2, x4 = x1, x5 = x1 + x2

corecteaza o eroare. Construiti tabloul standard.

2.10 Construiti o tabela de sindromuri de decodificare pentru:

1. Codul cu repetitie de lungime 7;

2. Codul din Exercitiul 2.7;

3. Codul peste Z3 cu matricea generatoare:

G =

1 0 0 2 20 1 0 0 10 0 1 1 0

2.11 Fie un cod liniar An,k ⊂ Znq si tabela de sindromuri de decodificare cores-

punzatoare. Definim o operatie de decodificare θ : Znq → An,k cu proprietatea:

∀v ∈ An,k,∀e reprezentant din tabela, θ(v + e) = v. (θ corecteaza erorile - tip dintabela de decodificare). Sa se arate ca atunci θ nu corecteaza nici o alta eroare - tip:daca e nu este un reprezentant din tabela, atunci exista v ∈ An,k cu θ(v + e) 6= v.

(Altfel spus, decodificarea cu sindromuri este optimala).

Page 369: Criptografie complet

Prelegerea 3

Coduri liniare - II

3.1 Capacitati de detectare si corectare de erori

Dupa cum am vazut pana acum, un cod liniar este un spatiu liniar, codul dual estecomplementul sau ortogonal etc. Teoria codurilor este interesata ınsa ın depistareaunor coduri cu proprietati deosebite ın detectarea si corectarea erorilor. Acesteproprietati sunt legate ın special de distanta minima a codului. Vom prezenta pentruınceput cateva rezultate legate de diverse margini relativ la distanta, numarul desimboluri de control, informatie etc.

Teorema 3.1 Un cod liniar An,k ⊂ Znq are distanta minima d daca si numai daca

poate detecta orice combinatie de maxim d− 1 erori.

Demonstratie: Daca se transmite un cuvant a ∈ An,k si apar t(t < d) erori, se vareceptiona cuvantul a + e ∈ Zn

q cu w(e) = t.Deoarece d(a, a + e) = t, rezulta a + e 6∈ An,k, deci se detecteaza eroare.Reciproca este evidenta. 2

Teorema 3.2 Un cod liniar An,k ⊂ Znq are distanta minima d daca si numai daca

poate corecta orice combinatie de maxim[

d−12

]erori.

Demonstratie: Sa presupunem prin absurd ca d ≤ 2t si vom arata ca exista erori- tip de pondere t (numite si pachete de t erori) care nu pot fi corectate de codulAn,k. Aceasta contradictie va duce la concluzia d ≥ 2t + 1, adica An,k poate corecta

orice pachet de t ≤[

d−12

]erori.

Fie a,b ∈ An,k cu d(a,b) = d si i1, i2, . . . , id toti indicii ın care a difera de b.

Alegand t =[

d+12

], avem d ≤ 2t (t astfel ales este minim).

Sa presupunem ca se trimite a si se receptioneaza cuvantul a′ = (a′1, a′2, . . . , a

′n)

unde

a′i =

ai = bi daca i 6= i1, i2, . . . , id,ai daca i = i1, i3, . . . ,bi daca i = i2, i4, . . .

Atunci, evident d(a, a′) =

[d + 1

2

]= t si d(a′,b) =

[d

2

]≤ t = d(a′, a). Aceasta va

duce la decodificarea lui a ın b - incorect.

25

Page 370: Criptografie complet

26 PRELEGEREA 3. CODURI LINIARE - II

Sa presupunem acum d ≥ 2t + 1. Atunci codul An,k poate corecta orice pachetde t erori. Pentru a arata aceasta, sa presupunem ca se trimite un cuvant - coda si se primeste un cuvant a′ cu d(a, a′) ≤ t. Pentru orice cuvant cod b (deci cud(a,b) ≥ d ≥ 2t + 1) avem, conform inegalitatii triunghiului:

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 decodificare cea mai probabila, a′ se va decodifica ın a. 2

Teorema 3.3 Distanta minima a unui (n, k) - cod liniar verifica relatia

d ≤ n− k + 1.

Demonstratie: Vom separa demonstratia ın doua parti:

A: Fie An,k un cod sistematic. Atunci primele k simboluri din orice cuvant - codpot fi alese arbitrar. Fie v ∈ An,k cuvantul de forma v = 100 . . . 0vk+1vk+2 . . . vn.Evident, 0 < w(v) ≤ n− k + 1. Cum d este cea mai mica pondere a unui cuvant -cod nenul, rezulta inegalitatea ceruta.

B: Fie An,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, inegalitatease obtine din nou. 2

Teorema 3.4 In orice cod liniar An,k peste Zq avem

d ≤ nqk−1(q − 1)

qk − 1(marginea Plotkin)

Demonstratie: Sa consideram elementele din An,k asezate ca linii ale unui tablou. Seobtine un tablou cu qk linii si n coloane. Fiecare componenta nenula din Zq aparepe fiecare coloana ın qk−1 linii. Atunci, suma ponderilor tuturor cuvintelor - codeste egala cu nqk−1(q − 1) deoarece fiecare componenta nenula apare de qk−1 ori ınfiecare coloana si avem q − 1 componente nenule distribuite pe n coloane.

Distanta minima a codului nu poate sa depaseasca ponderea medie a cuvintelorcodului, adica

d ≤ nqk−1(q − 1)

qk − 1

deoarece ın An,k sunt qk − 1 cuvinte nenule. 2

Teorema 3.5 Fie An,k un cod liniar peste Zq care corecteaza orice combinatie de

maxim t erori. Intr-un asemenea cod sunt necesare cel putin

n− k ≥ logq[1 + C1n(q − 1) + C2

n(q − 1)2 + . . . + Ctn(q − 1)t]

pozitii de control (marginea Hamming).

Page 371: Criptografie complet

3.1. CAPACITATI DE DETECTARE SI CORECTARE DE ERORI 27

Demonstratie: Pentru ca An,k sa corecteze orice combinatie de cel mult t erori, estenecesar ca fiecare astfel de eroare - tip sa fie reprezentata ın tabloul standard, decisa fie caracterizata printr-un sindrom distinct. Sunt qn−k sindromuri distincte, deciacesta este numarul maxim de erori care pot fi corectate de cod. Din cele qn−k

sindromuri, 1 trebuie sa fie pentru 0 erori, C1n(q − 1) - pentru erori - tip simple

(cuvinte e cu o singura componenta nenula), C2n(q − 1)2 pentru erori duble etc.

Deci, este necesar ca

qn−k ≥ 1 + C1n(q − 1) + C2

n(q − 1)2 + . . . + Ctn(q − 1)t.

Apoi se logaritmeaza. 2

Teorema 3.6 Daca

n− k ≥ logq[1 + C1n−1(q − 1) + C2

n−1(q − 1)2 + . . . + Cd−2n−1(q − 1)d−2]

atunci exista un cod liniar An,k peste Zq cu distanta minima d (marginea Varsamov- Gilbert).

Demonstratie: Pentru ca sa existe un cod liniar An,k peste Zq cu distanta minima deste suficient (Teorema 2.4) ca orice coloana din matricea de control Hn−k,n sa nufie combinatie liniara a altor d−2 coloane, ın acest fel ne-existand nici o combinatieliniara ıntre d− 1 coloane ale lui H. Aceasta conditie este echivalenta cu

qn−k − 1 ≥ C1n−1(q − 1) + C2

n−1(q − 1)2 + . . . + Cd−2n−1(q − 1)d−2.

Aici, qn−k − 1 reprezinta numarul total de coloane distincte nenule care pot apareın matricea H. Semnificatia termenilor din membrul drept este evidenta; astfel, deexemplu C2

n−1(q − 1)2 reprezinta numarul combinatiilor liniare cu coeficienti nenulia doua din cele n− 1 coloane etc.

Apoi se logaritmeaza. 2

Fie En,k un cod liniar peste Zq pentru care d ≥ 2t + 1 (deci cu capacitatea de acorecta orice combinatie de maxim t erori). Reamintim ca ın prelegerea precedentaam definit pentru orice x ∈ An,k sfera centrata ın x prin

St(x) = {y ∈ Znq |d(x,y) ≤ t}.

Mai introducem si suprafata (scoarta) acestei sfere, definita:

At(x) = {y ∈ Znq |d(x,y) = t}.

Vom nota numarul de elemente ale fiecareia din cele doua multimi prinSt = |St(x)|, At = |At(x)|

(valorile sunt aceleasi pentru orice x ∈ Znq ).

Au loc relatiile evidente:

At ≤ St, St =t∑

i=0

Ai.

Page 372: Criptografie complet

28 PRELEGEREA 3. CODURI LINIARE - II

Deoarece sferele de raza t centrate ın cuvintele codului An,k sunt disjuncte, avemqkSt ≤ qn.

Aici, qk reprezinta numarul de cuvinte - cod, iar qn - numarul total de cuvintedin Zn

q .Din aceasta relatie se obtine imediat

n− k ≥ logqSt,

cunoscuta sub numele de inegalitatea volumului. Ea mai poate fi gasita si sub forma

k

n≤ 1− 1

nlogqSt.

Raportulk

nse numeste rata de informatie si da o masura a cantitatii de informatie

pe care o poarta un cuvant - cod. O rata de informatie mica (mai multe simboluride control) asigura o securitate mai mare a transmiterii datelor. In schimb, conditiipractice de eficienta cer o rata de informatie cat mai mare (mai multa informatiepe unitatea de mesaj). Aceasta este una din solicitarile contradictorii ale teorieicodurilor.

3.2 Modificari ale codurilor liniare

Adesea este imposibil sa se utilizeze un cod bun deoarece el nu satisface anumiterestrictii tehnice, cum ar fi lungimea sau rata de informatie. De aceea este practicsa se faca anumite modificari asupra codurilor, care sa nu afecteze proprietatileprincipale de detectare si corectare de erori.

Definitia 3.1 Numim extensie a unui (n, k) - cod liniar A peste Zq, (n + 1, k) -codul liniar A∗ obtinut din A prin adaugarea la fiecare cuvant cod a1a2 . . . an a unui

simbol nou an+1 cu proprietatean+1∑

i=1

ai = 0 (mod q).

Observatii:

• In cazul binar, noul caracter an+1 poarta numele bit de paritate.

Daca H este matricea de control a codului An,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 reprezinta ecuatian∑

i=1

xi = 1.

Page 373: Criptografie complet

3.2. MODIFICARI ALE CODURILOR LINIARE 29

• Daca un cod liniar binar A are o distanta minima impara d, atunci codulextins are distanta minima d + 1. Intr-adevar, fie a = a1a2 . . . an ∈ A cu

w(a) = d. Cum d este impar, rezultan∑

i=1

ai = 1 (ın Z2), deci an+1 = 1.

Cuvantul a′ = a1a2 . . . an1 ∈ A∗, w(a′) = d + 1 si nu se poate construi un altcuvant - cod ın A∗ de pondere mai mica.

Definitia 3.2 Fie A un cod liniar de lungime n peste Zq.

1. ”Relaxarea” lui A este un cod liniar A de lungime n− 1 obtinut prin stergereaultimului simbol din cuvintele lui A;

2. ”Completarea” lui A este un cod definit A∗ = A∪(A+1) (unde 1 este cuvantulcu toate elementele 1, iar suma se face modulo q);

3. ”Expurgarea” lui A este codul A′ = {a ∈ A|w(a) ≡ 0 mod 2}.

Observatii:

• Relaxarea este operatia inversa extensiei.

• Prin completarea si expurgarea codurilor liniare se obtin coduri liniare numaiın cazul binar. In celelalte cazuri, noile multimi rezultate nu sunt spatii liniare.

Propozitia 3.1 Prin completarea unui cod liniar binar An,k se obtine un cod liniarbinar An,k+1 cu un numar dublu de cuvinte - cod.

Demonstratie: Completarea unui cod binar ınseamna adaugarea la cuvintele - codale lui A a tuturor cuvintelor obtinute prin complementare (schimbarea lui 0 ın 1 sia lui 1 ın 0).

Fie Gk,n matricea generatoare a codului An,k. Se verifica usor ca matricea

G′ =

G

1 1 . . . 1 1

genereaza An,k ∪ (1 + An,k). Acest cod are k + 1 pozitii de informatie si lungimen. Fiecare din cele doua submultimi are un numar egal de elemente. 2

Propozitia 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.

Demonstratie: Fie A un cod liniar binar cu un cuvant v1 de pondere impara. Sapresupunem ca v1,v2, . . . ,vr sunt toate cuvintele lui A; atunci A = A+v1. Pentruorice cuvant - cod vi de pondere para (impara), v1 + vi are pondere impara (para).Pentru aceasta, sa presupunem ca w(v1) = 2p + 1, w(vi) = 2q iar vi si v1 au 1 per pozitii comune. Atunci w(vi + v1) = w(vi) + w(v1) − 2r (pentru ca 1 + 1 = 0)= 2p + 1 + 2q − 2r = 2s + 1. Similar daca vi are pondere impara.

Deci adunarea cu v1 defineste o corespondenta biunivoca ıntre cuvintele - codde pondere para si cele de pondere impara, ceea ce completeaza demonstratia. 2

Page 374: Criptografie complet

30 PRELEGEREA 3. CODURI LINIARE - II

Corolarul 3.1 Expurgarea unui cod liniar binar A este tot A sau un cod liniaravand ca elemente jumatate din elementele lui A.

Matricea generatoare Gexp a lui Aexp se poate obtine din matricea G a lui A astfel:daca toate liniile lui G sunt vectori de pondere para cele doua coduri coincid. Altfel,fie G = [e1, e2, . . . , er, er+1, . . . , ek]

T ın care - fara a micsora generalitatea, putempresupune ca primele r au pondere impara, iar celelalte k − r au pondere para.Atunci Gexp = [0, e2 + e1, . . . , er + e1, er+1 . . . , ek]

T .

Exemplul 3.1 Sa construim codul A4,2 peste Z3 de matrice generatoare

G =

(1 0 0 10 1 1 1

).

Ea codifica cele 9 elemente din Z23 ın

A4,2 = {0000, 0111, 0222, 1001, 1112, 1220, 2002, 2110, 2221}.Codul liniar relaxat A3,2 = {000, 011, 022, 100, 111, 122, 200, 211, 222} este generatde matricea

Grel =

(1 0 00 1 1

).

Constructia a fost posibila deoarece prin eliminarea ultimei coloane, liniile ramasesunt tot liniar independente. Daca acest lucru nu este realizabil, se cauta k cuvinte- cod ın An,k cu proprietatea ca dupa eliminarea ultimei componente, ele sunt liniarindependente. Acestea formeaza liniile noii matrici generatoare.

Codul completat este

0000 0111 0222 1001 1112 1220 2002 2110 22211111 1222 1000 2112 2220 2001 0110 0221 0002

De remarcat ca el nu este un spatiu liniar (nu este ınchis la adunarea din Z3).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 uncod liniar peste Z2. Codul generat de G este A4,2 = {0000, 0111, 1001, 1110}.

Toate codurile modificate sunt ın acest caz coduri liniare. Astfel

• Codul relaxat Arel = {000, 011, 100, 111} este generat de aceeasi matrice Grel

din Exemplul 3.1.

• Codul completat Acom = {0000, 0111, 1001, 1110, 1111, 1000, 0110, 0001} esteun cod liniar generat de matricea

Gcom =

1 0 0 10 1 1 11 1 1 1

.

• Codul expurgat Aexp = {0000, 1001} este un cod liniar generat de matricea

Gex =

(1 0 0 10 0 0 0

).

Page 375: Criptografie complet

3.3. DETECTAREA SI CORECTAREA SIMULTANA 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 10 1 1 0 0 1 11 0 1 0 1 0 1

.

El are distanta 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 receptioneaza 1010000,sindromul este 010. Tabloul standard conduce la corectarea celui de-al doilea bit, sidecodifica (incorect) ın cuvantul - cod 111000.

Uneori ınsa, se solicita ın mod explicit un cod capabil sa detecteze si sa corectezeerori ın acelasi timp.

Definitia 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 ∈ Znq [d(w,v) ≤ s =⇒ ∀a ∈ A \ {v}, d(w, a) > t].

In aceasta situatie, detectarea si corectarea simultana a erorilor se realizeaza astfel:la receptionarea unui cuvant w ∈ Zn

q se cauta cel mai apropiat cuvant - cod v (ınsensul distantei Hamming). Daca d(w,v) ≤ t atunci cuvantul se corecteaza ın v;altfel, se anunta ca cel putin s simboluri sunt modificate.

Justificarea acestui procedeu rezulta imediat din definitie.

Teorema 3.7 Un cod corecteaza t erori si detecteaza s erori simultan daca si numaidaca

d ≥ t + s + 1.

Demonstratie: A: Sa presupunem d ≥ s + t + 1. Fie v un cuvant - cod si w ∈ Znq

cu d(v,w) ≤ s. Pentru orice cuvant - cod v′(v′ 6= 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, conditia din definitie este ındeplinita.B: Sa presupunem prin absurd d < t + s + 1. Fie v,v′ doua cuvinte - cod cu

d(v,v′) = d ≤ t + s. Construim cuvantul w din v ınlocuind primele s simboluriın care acesta difera de v′, cu valorile lor din v′. Atunci d(v,w) = s si d(v′,w) =d− s ≤ t + s− s = t, ceea ce contrazice conditia din definitie. 2

Page 376: Criptografie complet

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 00 1 0 0 1 1 0 10 0 1 0 1 0 1 10 0 0 1 0 1 1 1

.

El are distanta minima d = 4, deci - conform Teoremei 3.2 poate corecta maximo eroare, iar conform Teoremei 3.7 poate corecta o eroare si detecta simultan douaerori.

Astfel receptionarea cuvantului 11110010 conduce la corectarea sa ın 10110010(deoarece d(11110010, 10110010) = 1 si 10110010 este cuvant - cod).

In schimb receptionarea cuvantului 00001111 anunta ca au aparut cel putin douaerori. In aceasta situatie, nu mai putin de patru cuvinte - cod (00010111, 00101011,01001101, 10001110) sunt situate la distanta 2 de cuvantul primit.

Exemplul 3.5 Codul binar cu repetitie de lungime 7 (care are 2 elemente) poaterealiza una din conditiile:

• 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 unuicuvant - cod a sa fie receptionat alt cuvant - cod b (b 6= a). Altfel spus, care esteprobabilitatea ca o eroare sa scape nedetectata ?

Notand cu e = b− a, o eroare este nedetectata daca si numai daca e este uncuvant - cod nenul.

Vom considera un canal de transmisie binar simetric, adica un canal ın caresingurele simboluri transmise sunt 0 si 1, iar probabilitatea p (0 ≤ p ≤ 1) ca latransmiterea lui 0 sa fie receptionat 1 este egala cu probabilitatea ca la transmiterealui 1 sa se receptioneze 0. Intr-un astfel de canal, daca w(e) = i (adica au fostperturbate la transmisie i caractere), probabilitatea de aparitie a erorii - tip e estepiqn−i, unde q = 1− p. Notand cu Ai numarul cuvintelor - cod cu ponderea i, prob-abilitatea Pned a unei erori nedetectabile este suma probabilitatilor piqn−i, fiecaretermen aparand de Ai ori pentru i = 1, 2, . . . , n. Formal,

Pned =n∑

i=1

Aipiqn−i

Cum A1 = A2 = . . . = Ad−1 = 0, suma se reduce la Pned =n∑

i=d

piqn−i.

Page 377: Criptografie complet

3.5. IDENTITATEA MACWILLIAMS 33

Exemplul 3.6 Sa consideram un cod care are un cuvant de pondere 0, cate saptecuvinte de pondere 3 si 4 si un cuvant de pondere 7. Atunci

Pned = 7p3q4 + 7p4q3 + p7

Daca folosim acest cod ıntr-un canal binar simetric cu eroare de probabilitatep = 0.01, avem

Pned = 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 cuvintetransmise.

Definitia 3.4 Polinomul de variabila x ∈ [0, 1] definit

P (x) =n∑

i=0

Aixi

unde Ai este numarul de cuvinte din An,k de pondere i, se numeste ”numaratorulde ponderi” al codului An,k.

Exemplul 3.7 Codul definit ın Exemplul 3.2 are numaratorul de ponderi

P (x) = 1 + x2 + 2x3

Propozitia 3.3 Fie An,k un cod liniar binar cu numarator de ponderi P (x). Proba-bilitatea aparitiei unei erori nedetectabile la folosirea codului An,k ıntr-un canal binarsimetric este

Pned = qn

[P

(p

q

)− 1

].

Demonstratie: Relatia de definitie a lui Pned se poate rescrie

qnn∑

i=1

Aipiq−i = qn

n∑

i=1

Ai

(p

q

)i

.

Deoarece A0 = 1 (singurul cuvant - cod de pondere 0 este cuvantul - cod 0, expresiadevine ın continuare

Pned = qn

n∑

i=0

Ai

(p

q

)i

− 1

= qn

[P

(p

q

)− 1

]. 2

3.5 Identitatea MacWilliams

In acest paragraf vom arata un rezultat care face posibila determinarea numara-torului de ponderi PA⊥ al dualului A⊥ unui cod liniar A, direct din numaratorul deponderi PA al codului A.

Propozitia 3.4 Fie v ∈ Zn2 si A un (n, k) - cod liniar binar. Atunci are loc egali-

tatea1

2k

v∈A

(−1)vw =

{1 daca w ∈ A⊥

0 altfel

Page 378: Criptografie complet

34 PRELEGEREA 3. CODURI LINIARE - II

Demonstratie: Daca w ∈ A⊥ atunci evident, (−1)vw = (−1)0 = 1 si suma este egalacu numarul de cuvinte - cod din A, care este 2k.

Sa presupunem acum ca w 6∈ A⊥, deci exista un cuvant - cod v0 ∈ A cu v0w = 1.Vom arata ca ın acest caz, numarul cuvintelor - cod ortogonale pe w este egal cucel al cuvintelor - cod ne-ortogonale pe w (si deci suma din formula este 0).

Fie v1,v2, . . . ,vr toate cuvintele - cod ortogonale pe w. Facem afirmatia caatunci v1 + v0,v2 + v0, . . . ,vr + v0 sunt toate cuvintele - cod ne-ortogonale pe v0.Intr-adevar:

1. ∀i (1 ≤ i ≤ r) (vi + v0)w = viw + v0w = 0 + 1 = 1;

2. Daca v ∈ A verifica relatia vw = 1, atunci v − v0 este un cuvant cod -ortogonal pe w, deci v − v0 = vi pentru un anumit i. 2

Teorema 3.8 Pentru orice (n, k) - cod liniar binar A are loc relatia (identitateaMacWilliams):

PA⊥(x) =(1 + x)n

2kPA

(1− x

1 + x

).

Demonstratie: Sa rescriem numaratorul de ponderi sub o forma putin diferita:

B(x, y) =n∑

i=0

Aixiyn−i.

Evident, deoarece P (x) = B(x, 1) si B(x, y) = ynP

(x

y

), cele doua expresii sunt

echivalente.In notatia cu polinomul B, identitatea MacWilliams se scrie

BA⊥(x) =1

2kBA(y − x, y + x).

Cu ajutorul ponderii cuvintelor - cod, numaratorul de ponderi are forma

BA(x, y) =n∑

i=0

Aixiyn−i =

a∈A

xw(a)yn−w(a)

Prelucrand membrul drept al identitatii MacWilliams, avem:

BA(y − x, y + x) =∑

a∈A

(y − x)w(a)(y + x)n−w(a) =∑

a∈A

n∏

i=1

[y + (−1)aix] .

In mod analog, membrul stang se scrie:

BA⊥(x, y) =∑

a∈A⊥xw(a)yn−w(a).

Folosind Propozitia 3.4, el se poate reformula:

BA⊥(x, y) =∑

a∈Zn2

[1

2k

v∈A

(−1)av]xw(a)yn−w(a).

Page 379: Criptografie complet

3.5. IDENTITATEA MACWILLIAMS 35

Expresia din paranteze este 0 pentru toate cuvintele a care nu sunt ın A⊥. Deci

BA⊥(x, y) =1

2k

v∈A

a∈Zk2

(−1)vaxw(a)yn−w(a).

Suma interioara se face dupa toate secventele binare a de lungime n. Vom ordonaaceasta suma dupa ponderile lui a: pentru a = 0 sumandul este yn; pentru cu-vintele a de pondere 1 avem: [(−1)a1 + (−1)a2 + . . . + (−1)an ]xyn−1 etc; ın final,pentru ponderea n avem [(−1)a1 + . . . + (−1)an ]xn. Suma tuturor acestor sumanzin∑

k=0

[(−1)ai1 + . . . + (−1)aik ]xkyn−k se observa usor ca este egala cu

[y + (−1)a1x][y + (−1)a2x] . . . [y + (−1)akx] =n∏

i=1

[y + (−1)aix]. Deci

BA⊥(x, y) =1

2k

a∈A

n∏

i=1

[y + (−1)aix] =1

2kBA(y − x, y + x). 2

Exemplul 3.8 Sa consideram codul din Exemplul 3.2 al carui numarator de ponderia fost dat ın Exemplul 3.7. Pentru codul dual, numaratorul de ponderi este

PA⊥(x) =(1 + x)4

22PA

(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 + 4x2 + 4x3

4= 1+x2 +x3.

Deci cele doua coduri au acelasi numarator de ponderi. Aceasta nu ınseamnaınsa ca cele doua coduri coincid (si deci codul ar fi auto - dual); a avea acelasinumarator de ponderi este doar o conditie necesara, nu si suficienta pentru ca uncod sa coincida cu dualul sau.

Exemplul 3.9 Fie codul cu repetitie de lungime para n A = {00 . . . 0, 11 . . . 1};numaratorul lui de ponderi este PA(x) = 1 + xn. Codul dual are numaratorul deponderi

PA⊥(x) =(1 + x)n

2

[1 +

(1− x

1 + x

)n]= 1 + C2

nx2 + C4nx4 + . . . + xn.

Rezulta din aceasta forma ca dualul codului cu repetitie este codul liniar al cu-vintelor de pondere para.

Page 380: Criptografie complet

36 PRELEGEREA 3. CODURI LINIARE - II

3.6 Exercitii

3.1 In Zn2 notam cu x cuvantul obtinut din x prin permutarea caracterelor 0 si 1

ıntre ele. Sa se arate ca pentru orice a,b ∈ Zn2 :

1. a + b = a + b;

2. a + b = a + b = a + b;

3. d(a,b) = d(a + b) = w(a + b).

3.2 Descrieti codurile modificate obtinute din codul liniar binar cu matricea genera-toare

G =

1 1 1 0 00 0 1 1 11 1 1 1 0

3.3 Aceeasi problema pentru codul peste Z3 definit prin

G =

1 0 0 2 20 1 0 0 10 0 1 1 0

.

3.4 Fie A un (n, k) - cod liniar binar si A′ (n, k − 1) - codul obtinut din A prinexpurgare. Ce relatie exista ıntre matricile de control ale celor doua coduri ?

3.5 Aratati cum poate codul binar cu repetitie de lungime 7 sa corecteze doua erorisi sa detecteze 4 erori simultan. Cate erori poate detecta daca corecteaza o eroare ?

3.6 Fie A (15, 4) - codul liniar binar ın care fiecare coloana i din matricea genera-toare este scrierea binara a lui i sub forma unui vector cu 4 componente. Sa sedetermine distanta minima, numaratorul de ponderi si numaratorul de ponderi alcodului dual.

3.7 Fie A un (2k + 1, k) - cod binar astfel ca A⊥ ⊂ A. Descrieti A⊥ \ A.

Page 381: Criptografie complet

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 receptioneaza a + e (deci cu eroarea - tip e, atunci sindromul este eHT .Acest sindrom este egal cu suma coloanelor lui H care corespund pozitiilor afectatede erori (Prelegerea II, Teorema 2.3).

In particular, o eroare care apare pe o pozitie corespunzatoare unei coloane nuledin H nu influenteaza sindromul. Deci, o astfel de eroare nu este detectata.

Daca H are doua coloane identice si se ıntampla ca pe pozitiile corespunzatoarelor sa apara simultan erori, acestea se anuleaza reciproc ın calculul sindromului - sideci nu pot fi detectate.

Pe de-alta parte, daca toate coloanele lui H sunt distincte si nenule, o eroaresingulara pe pozitia s va face ca sindromul sa fie egal cu coloana numarul s din H.In acest caz, erorile singulare pot fi detectate si corectate foarte usor.

Pe baza acestor observatii am demonstrat teorema:

Teorema 4.1 Un cod liniar binar poate corecta o eroare daca si numai daca ma-tricea sa de control are toate coloanele nenule si distincte.

Pentru a se putea corecta toate erorile simple, trebuie sa existe sindromuri distinctepentru fiecare eroare - tip; deci, conform marginii Hamming (Prelegerea III, Teorema3.5),

2n−k ≥ n + 1.

Pe baza acestor considerente se defineste codul Hamming binar:

Definitia 4.1 Codul liniar binar ın care coloanele matricii H sunt reprezentareabinara a numerelor 1, 2, . . . , 2r − 1 este numit cod Hamming binar.

Deci, pentru orice numar natural r (r ≥ 2) se poate construi un (n, k) - cod liniarın care n = 2r − 1, k = 2r − r − 1.

De remarcat ca definitia nu determina pentru fiecare r ın mod unic matricea decontrol a codului Hamming. De obicei se considera acea matrice H ın care coloanai reprezinta scrierea ın binar a numarului i. Deoarece codul este sistematic (existacoloane pentru 20, 21, . . . , 2r−1), toate celelalte reprezentari au aceleasi proprietati.

37

Page 382: Criptografie complet

38 PRELEGEREA 4. CLASE DE CODURI LINIARE

Exemplul 4.1 Pentru r = 3 avem codul Hamming de lungime n = 23 − 1 = 7 cuk = 23 − 3 − 1 = 4 simboluri de informatie si 3 simboluri de control. Matricea decontrol este:

H3,7 =

0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1

De aici rezulta ca el este determinat de solutiile sistemului liniar:

x4 + x5 + x6 + x7 = 0x2 + x3 + x6 + x7 = 0x1 + x3 + x5 + x7 = 0

Sa determinam matricea generatoare a acestui cod. Pentru aceasta, construim ıntaicodul echivalent, permutand coloanele pentru a aduce matricea de control la formaesalonata canonic:

H∗3,7 =

0 1 1 1 1 0 01 0 1 1 0 1 01 1 0 1 0 0 1

.

De aici se obtine matricea generatoare esalonata canonic:

G∗4,7 =

1 0 0 0 0 1 10 1 0 0 1 0 10 0 1 0 1 1 00 0 0 1 1 1 1

Aplicand permutarea inversa asupra coloanelor, se obtine matricea generatoare a(7, 4) - codului Hamming binar:

G4,7 =

1 1 1 0 0 0 01 0 0 1 1 0 00 1 0 1 0 1 01 1 0 1 0 0 1

.

Codul este sistematic: coloanele corespunzatoare matricii unitate: 3, 5, 6, 7, suntpozitiile simbolurilor de informatie ın fiecare cuvant - cod. Deci simbolurile x1, x2, x4

sunt simboluri de control. Sistemul de sus poate fi rearanjat pentru a permite calcululsimbolurilor de control din simbolurile de informatie:

x1 = x3 + x5 + x7

x2 = x3 + x6 + x7

x4 = x5 + x6 + x7

Toate cuvintele codului sunt:

Page 383: Criptografie complet

4.1. CODURI HAMMING 39Informatie Cuvant cod Informatie Cuvant cod0000 0000000 0110 01100111000 1000011 0101 01010100100 0100101 0011 00110010010 0010110 1110 11100000001 0001111 1101 11010011100 1100110 1011 10110101010 1010101 0111 01111001001 1001100 1111 1111111

Teorema 4.2 Un cod Hamming are distanta minima 3.

Demonstratie: 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 sumasa fie 0. Conform Teoremei 2.4 (Prelegerea II), distanta minima a codului este 3.2

Deci orice cod Hamming poate corecta o eroare sau poate detecta doua erori. Elnu poate realiza acest lucru simultan (nu verifica conditia d ≥ s+ t+1 din Teorema3.7, Prelegerea III).

Decodificarea se realizeaza foarte simplu, conform urmatorului algoritm:

Algoritm A:Fie a vectorul receptionat.

1. Se calculeaza sindromul s = aHT .

2. Daca s = 0, nu a aparut nici o eroare (sau eroarea este nedetectabila),deci v = a, STOP.

3. Altfel, eroarea este pe pozitia i, unde i este numarul a carui reprezentareın binar este sindromul s. Decodificarea este v = a + ei, unde ei estevectorul care are 1 pe pozitia i si 0 ın rest.

Exemplul 4.2 Sa consideram din nou (7, 4) - codul Hamming din Exemplul 4.1si sa presupunem ca s-a receptionat cuvantul x = 0011101. Calculul sindromuluiconduce la valoarea

xHT =

101

care este scrierea ın binar a numarului 5. Deci a intervenit o eroare simpla pe pozitiaa cincea. Corectam aceasta pozitie - schimband 1 cu 0 si se obtine cuvantul - cod0011001, care pe pozitiile 3, 5, 6, 7 contine mesajul de informatie: 1001.

Codul Hamming poate fi ımbunatatit prin extensie. Aceasta operatie conduce la un(2m, 2m −m− 1) - cod liniar, cu toate cuvintele - cod de pondere para.

Exemplul 4.3 Prin extensia (7, 4) - codului Hamming se obtine codul cu matriceade control

H∗ =

0 0 0 1 1 1 1 00 1 1 0 0 1 1 01 0 1 0 1 0 1 01 1 1 1 1 1 1 1

.

Page 384: Criptografie complet

40 PRELEGEREA 4. CLASE DE CODURI LINIARE

De remarcat ca H∗ are rangul 4; ın plus, toate liniile ei sunt cuvinte - cod ıncodul Hamming extins. Deci H∗ poate fi considerata matrice generatoare a acestuicod. Rezulta ca (8, 4) - codul Hamming extins este auto - dual.

Un cod Hamming extins este solutia unui sistem liniar de n− k + 1 ecuatii, ecuatia

suplimentaran+1∑

i=1

xi = 0 fiind numita ecuatia de control a paritatii.

Propozitia 4.1 Un cod Hamming extins are d = 4.

Demonstratie: Fie a1a2 . . . an un cuvant - cod de pondere d = 3 din codul Ham-ming. Trecand la codul extins, cuvantul a1a2 . . . anan+1 verifica relatia suplimentaran+1∑

i=1

ai = 0 (reamintim, sumele se fac modulo 2). Cumn∑

i=1

ai = 1, rezulta an+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 verificarea celor n − k + 1 ecuatii decontrol:

Algoritm B:

1. Daca nu sunt verificate ecuatia de control a paritatii si cel putin unadin primele n− k ecuatii, ınseamna ca a aparut o eroare simpla, care secorecteaza cu Algoritmul A;

2. Daca ecuatia de control a paritatii este verificata dar cel putin una dinprimele n−k ecuatii de control nu se verifica, s-a detectat o eroare dubla;

3. In celelalte situatii 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.

Demonstratie: Reamintim (Prelegerea II, Definitia 2.8) ca un cod A este perfectdaca

Znq =

x∈A

St(x).

Scriind aceasta relatie ın functie de numarul de elemente din fiecare sfera si tinandcont ca toate sferele contin un numar egal de elemente, avem

qk[1 + C1

n(q − 1) + . . . + Ctn(q − 1)t

]= qn.

Pentru cazul codurilor Hamming, q = 2, n = 2r − 1, k = 2r − r − 1, t = 1, decitotul revine la verificarea egalitatii 2k(1 + n) = 2n. 2

De remarcat ca rata de informatie a codurilor Hamming

R =k

n= 1− r

2r − 1

creste rapid spre 1. Evident ınsa ca odata cu aceasta crestere scade protectia fatade erori.

Page 385: Criptografie complet

4.1. CODURI HAMMING 41

4.1.1 Coduri Hamming nebinare

Definitia 4.2 Fie q numar prim, r (r ≥ 2) un ıntreg si n = qr−1q−1

. Se numeste cod

Hamming nebinar un (n, n− r) - cod liniar peste Zq ın care matricea de control areorice pereche de doua coloane liniar independente (nici o coloana nu este multipluscalar al altei coloane).

Multimea coloanelor unui astfel de cod formeaza o multime maximala de vectoriliniar independenti doi cate doi.

Exemplul 4.4 Sa consideram q = 3, r = 2. Atunci n =32 − 1

3− 1= 4. Un (4, 2) -

cod Hamming ternar poate fi dat de matricea de control

H =

(0 1 1 11 0 1 2

)

Decodificarea se poate face folosind tabela de sindromuri, ın care s-au luat ca repre-zentanti toate combinatiile posibile de o eroare:

Sindrom Reprezentant Sindrom Reprezentant01 1000 12 000102 2000 20 020010 0100 21 000211 0010 22 0020

Daca se receptioneaza 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 01 2 0 1

)ultimele doua

caractere formeaza mesajul de informatie; deci s-a codificat mesajul 21.

Despre codurile Hamming nebinare se pot stabili urmatoarele rezultate:

• Deoarece pentru q, r fixati codurile Hamming corespunzatoare sunt echiva-lente, se poate alege o anumita matrice de control. Uzual se foloseste matriceaın care se scriu toate coloanele nenule de r elemente din Zq, cu conditia caprimul element nenul (de sus ın jos) sa fie 1.

• Codurile Hamming nebinare au d = 3 (evident, din constructia matricii decontrol de mai sus). Deci ele pot corecta o eroare.

• Proprietatea de a fi coduri perfecte se pastreaza. Intr-adevar, deoarece uncod Hamming contine qn−r cuvinte - cod iar n = qr−1

q−1, egalitatea stabilita ın

demonstratia Teoremei 4.3 se scrie qn−r[1 + n(q − 1)] = qn, care se verificaimediat.

Page 386: Criptografie complet

42 PRELEGEREA 4. CLASE DE CODURI LINIARE

Exemplul 4.5 Sa consideram (13, 10) - codul Hamming ternar. Acest cod are oaplicatie interesanta ın problema Pronosportului. Dupa cum se stie, un buletinPronosport contine rezultatele (notate cu 1, 2, X) a 13 meciuri. Pentru a avea sigur13 rezultate exacte trebuiesc completate 313 buletine. Cate buletine sunt ınsa necesarepentru a fi sigur de 12 rezultate ? La prima vedere s-ar parea ca 312. Completandınsa buletinele cu elementele codului Hamming ternar (13, 10) (cu 0 ın loc de X) -care sunt ın numar de 310, se atinge scopul dorit. Intr-adevar, acesta fiind un codperfect corector de o eroare, orice element din Z13

3 difera prin cel mult o pozitie deun cuvant - cod.

Astfel, numarul buletinelor se reduce de noua ori.

4.2 Codul Golay

Al doilea cod liniar prezentat are capacitatea de corectie pentru maxim 3 erori.Vom construi ıntai varianta extinsa a codului, deoarece algoritmul de decodificareeste 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 spatial Voyager la ınceputul anilor ′80, latransmiterea fotografiilor 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 11 0 1 1 1 0 0 0 1 0 1 10 1 1 1 0 0 0 1 0 1 1 11 1 1 0 0 0 1 0 1 1 0 11 1 0 0 0 1 0 1 1 0 1 11 0 0 0 1 0 1 1 0 1 1 10 0 0 1 0 1 1 0 1 1 1 10 0 1 0 1 1 0 1 1 1 0 10 1 0 1 1 0 1 1 1 0 0 11 0 1 1 0 1 1 1 0 0 0 10 1 1 0 1 1 1 0 0 0 1 11 1 1 1 1 1 1 1 1 1 1 0

Fie G matricea 12×24 G = (I12|B). Codul liniar binar generat de G se numestecodul Golay extins si va fi notat C24.

Observatii:

• Matricea B este mai usor de construit decat pare. Astfel, eliminand ultimalinie si coloana, matricea ramasa - sa spunem B1 - este generata ciclic (spre

Page 387: Criptografie complet

4.2. CODUL GOLAY 43

stanga) de cuvantul binar 11011100010. Deci B =

(B1 1T

1 0

),

unde 1 = 11111111111. Evident, B este simetrica (BT = B).

• C24 are n = 24, k = 12 si 212 = 4096 cuvinte - cod.

• Conform Teoremei 2.2, o matrice de control a codului este H = (B|I12).

Teorema 4.4 H = (I12|B) este de asemenea matrice de control pentru C24.

Demonstratie: Liniile din B au pondere impara (7 sau 11); deci produsul (scalar)al unei linii cu ea ınsasi este 1. O verificare simpla arata ca produsul primei linii cuoricare alta linie din B este 0. Structura ciclica a lui B1 asigura ca atunci produsulscalar al oricaror doua linii este 0.

In concluzie, BBT = I12. Dar BT = B, asa ca putem scrie:

GHT = (I|B)

(IB

)= I2 + B2 = I + BBT = I + I = 0.

Vom folosi ambele matrici de control pentru decodificarea codului C24. 2

Corolarul 4.1A. C24 admite ca matrice generatoare si pe G = (B|I12).B. Codul Golay extins este auto - dual (C24 = C⊥

24).

Demonstratie: Se verifica imediat. 2

Teorema 4.5 C24 are distanta minima d = 8.

Demonstratie: Vom demonstra afirmatia ın trei pasi.

1. Ponderea cuvintelor din C24 este multiplu de 4.

Sa observam ca liniile lui G au pondere 8 sau 12. Fie v ∈ C24 ca suma de doualinii din G : v = ri + rj. Cum B are liniile ortogonale, rezulta ca si liniile luiG sunt ortogonale. Deci ri si rj au un numar par (sa zicem 2x) de elemente 1ın comun. Atunci w(v) = w(ri) + w(rj)− 2(2x), care este multiplu de 4.

Fie acum v ∈ C24 ca suma de trei linii din G : v = ri + rj + rs. Notamv1 = ri + rj. Deoarece C24 este auto - dual, v1 si rs au un numar par (sazicem 2y) de elemente 1 ın comun. Deci w(v) = w(v1) + w(rs) − 2(2y) careeste multiplu de 4.

Folosind acum un procedeu de inductie, cum orice cuvant - cod este combinatieliniara de linii din G, ponderea sa va fi multiplu de 4.

2. Primele 11 linii din G sunt cuvinte - cod de pondere 8, deci distanta coduluiC24 este 4 sau 8.

3. C24 nu are cuvinte de pondere 4.

Sa presupunem ca exista v ∈ C24 cu w(v) = 4. Exista atunci u1,u2 ∈ Z122

cu v = u1(I|B), v = u2(B|I). Deoarece exista o jumatate din v care are celputin doi de 1, rezulta w(u1) ≤ 2 sau w(u2) ≤ 2. Pe de-alta parte, sumaa una sau doua linii din B nu poate avea o pondere mai mica de 4; deciw(v) = w(ui) + w(uiB) > 4, contradictie. 2

Page 388: Criptografie complet

44 PRELEGEREA 4. CLASE DE CODURI LINIARE

4.2.2 Decodificarea codului Golay extins

Conform Teoremei 4.5, un cod Golay extins poate corecta orice combinatie de maxim3 erori.

In aceasta sectiune vom nota cu a cuvantul receptionat, cu v cuvantul - cod celmai apropiat, si cu e eroarea - tip (v = a + e). Deoarece capacitatea de corectieeste de 3 erori, vom considera w(e) ≤ 3.

Pentru orice cuvant din Z242 , vom separa cu o virgula prima jumatate a cuvantului

de cea de-a doua. Eroarea - tip va fi notata u = [u1,u2], unde u1,u2 au fiecarelungimea 12. Evident, conditia w(u) ≤ 3 implica w(u1) ≤ 1 sau w(u2) ≤ 1.

Folosind cele doua matrici de control, se pot defini doua sindromuri pentru a:

s1 = u

(I12

B

)= [u1,u2]

(I12

B

)= u1 + u2B,

s2 = u

(BI12

)= [u1,u2]

(BI12

)= u1B + u2.

De aici rezulta urmatoarea observatie: daca w(u2) ≤ 1, atunci s1 este sau uncuvant de pondere maxim 3 (daca w(u2) = 0), sau o linie a lui B cu cel mult doibiti schimbati (daca w(u2) = 1).

Similar, daca w(u1) ≤ 1, atunci s2 este sau un cuvant de pondere maxim 3 sauo linie a lui B cu cel mult doi biti schimbati.

Daca se foloseste si faptul ca s2 = u1B + u2 = (u1 + u2B)B = s1B (deci sepoate folosi doar prima matrice de control), putem defini urmatorul algoritm dedecodificare 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 bi a lui B cu w(s + bi) ≤ 2, atunci e = [s + bi, ei],STOP.

4. Daca w(sB) ≤ 3, atunci e = [0, sB], STOP.

5. Daca exista o linie bi a lui B cu w(sB +bi) ≤ 2, atunci e = [ei, sB +bi],STOP.

6. Daca e nu a fost determinat ınca, se cere retransmiterea.

S-a notat cu ei un cuvant de lungime 12 cu 1 pe pozitia i si 0 ın rest.

Dupa determinarea erorii e, cuvantul - cod transmis se determina prin v = a + e.

Exemplul 4.6 Sa decodificam cuvantul a = 101111101111, 010010010010.

Sindromul este

s = aHT = 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.

Page 389: Criptografie complet

4.2. CODUL GOLAY 45

Deoarece G = (I12|B) este ın forma esalonat canonica, mesajul de informatie (oricecuvant din Z12

2 ) apare pe primele 12 pozitii ale cuvantului - cod. Astfel, ın exemplulde sus, mesajul de informatie a fost 001111101110.

Exemplul 4.7 Se cere decodificarea 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 + b1 = 000110001100s + b2 = 011111000010s + b3 = 101101011110s + b4 = 001001100100s + b5 = 000000010010

Deoarece w(s + b5) ≤ 2, se determinae = [s + b5, e5] = 000000010010, 000010000000

si se decide ca s-a transmis cuvantul - codv = a + e = 001001011111, 101010101000.

Exemplul 4.8 Sa decodificam cuvantul a = 000111000111, 011011010000.Sindromul estes = aHT = u1 + u2B = 000111000111 + 101010101101 = 101101101010care are ponderea 7. Trecand la pasul 3 se gaseste w(s + bi) ≥ 3 pentru toate

liniile lui B; deci se continua cu pasul 4: al doilea sindrom este sB = 111001111101cu ponderea 8. Pasul 5 va da:

sB + b1 = 001110111000sB + b2 = 010111110110sB + b3 = 100101101010sB + b4 = 000001010000

S-a ajuns la w(sB + b4) ≤ 2, deci se poate determina eroarea:e = [e4, sB + b4] = 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 fiecare cuvant -cod) se ajunge la Codul Golay binar.

Fie B matricea 12× 11 obtinuta din B prin eliminarea ultimei coloane. DefinimG = (I12|B). Codul liniar binar generat de G se numeste codul Golay si este notatcu C23. Caracteristicile sale sunt:

n = 23, k = 12, Numar de cuvinte - cod: 212 = 4096.

Evident, extensia lui C23 este C24.

Page 390: Criptografie complet

46 PRELEGEREA 4. CLASE DE CODURI LINIARE

Teorema 4.6 Distanta unui cod Golay este d = 7.

Demonstratie: Demonstratia se poate face fie direct (similar celei de la Teorema 4.5)fie folosind faptul ca C23 este relaxarea codului C24, care are distanta 8. 2

In consecinta, un cod Golay va corecta orice combinatie de maxim 3 erori.

Teorema 4.7 Codul Golay este perfect.

Demonstratie: Se verifica relatia:212(C0

23 + C123 + C2

23 + C323) = 212(1 + 23 + 253 + 1771) = 212211 = 223. 2

Rezulta ca orice cuvant a ∈ Z232 se afla la distanta maxim 3 de un cuvant - cod.

Astfel, daca se adauga la sfarsit 0 sau 1, formand a0 respectiv a1 pentru a obtineun cuvant de pondere impara, acest cuvant este la distanta maxim 3 de un cuvant- cod c ∈ C24. Se foloseste Algoritmul C pentru a obtine acest cuvant - cod, apoi seelimina ultimul caracter din c; se ajunge astfel la cel mai apropiat cuvant - cod dinC23 fata de a.

Algoritmul D:

1. Se formeaza cuvantul extins de pondere impara a0 sau a1;

2. Se decodifica ai folosind Algoritmul C si se obtine c ∈ C24;

3. Se elimina ultimul caracter din c.

Exemplul 4.9 Sa decodificam a = 001001001001, 11111110000.Deoarece a are pondere impara, se construieste

a0 = 001001001001, 111111100000.Sindromul acestui cuvant este s1 = 100010111110.Pentru ca s1 = b6 + e9 + e12, a0 se decodifica ın 001001000000, 111110100000,

asa ca a este decodificat ın 001001000000, 11111010000.

4.3 Unicitatea codurilor perfecte binare

Ambele clase de coduri liniare prezentate aici sunt perfecte.Se observa imediat ca pentru corectarea unei erori, singurele coduri binare per-

fecte sunt codurile Hamming.Vom mai arata ca aceasta singularitate este valabila si ın cazul codurilor Golay;

anume, singurul cod binar perfect corector de 3 erori este codul Golay. Pentruaceasta sunt necesare doua leme:

Lema 4.1 O conditie necesara pentru existenta unui (n, k) - cod binar perfect corec-

tor de t erori estet∑

i=0

Cin = 2p pentru un anumit p.

Demonstratie: Rezulta imediat din relatia scrisa ın demonstratia Teoremei 4.3, ıncare se ia q = 2. 2

Page 391: Criptografie complet

4.3. UNICITATEA CODURILOR PERFECTE BINARE 47

Lema 4.2t∑

i=0

Cin =

n + 1

t!Rt(n)

unde t este numar natural impar, Rt(X) ∈ Z[X], gr(Rt(X)) = t− 1.

Demonstratie: Pentru t = 1 se verifica imediat.Presupumem adevarata afirmatia pentru t si o demonstram pentru t + 2. Avem

t+2∑

i=0

C in =

n + 1

t!+ Ct+1

n + Ct+2n =

n + 1

(t + 2)!

[(t + 1)(t + 2)Rt(n) +

t∏

i=0

(n− i)

].

Expresia din paranteza dreapta este un polinom de gradul t + 1; notandu-l cuRt+2(n), afirmatia este demonstrata. 2

Sa consideram acum cazul t = 3. Pentru ca sa existe un cod binar perfectcorector de 3 erori, cu lemele de sus, trebuie ca (n + 1)(n2 − n + 6) = 3 · 2s, sau

(n + 1)[(n + 1)2 − 3(n + 1) + 8] = 3 · 2s.

Considerata ca o ecuatie ın n + 1, singurele solutii ıntregi pozitive sunt de forman + 1 = 2kp unde p = 1 sau p = 3. Inlocuind, se ajunge la

22kp3 − 2k · 3p2 + 8p = 2s−k · 3 (1)

Pentru k ≤ 3 si p = 1, 3 verificarile se fac imediat. Pentru k ≥ 4 se ajunge lacontradictie. Singurele valori care verifica ecuatia 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 repetitie {0000000, 1111111}.n = 23 − codul Golay.

In acest mod am demonstrat teorema:

Teorema 4.8 Codul binar Golay este singurul cod binar perfect netrivial corectorde 3 erori.

Lemele 4.1 si 4.2 pot fi folosite si pentru alte valori impare ale lui t. Cercetarile nuau condus la alte coduri perfecte binare, dar nici nu s-a demonstrat ca nu existanici un cod perfect binar corector de t (t > 3 impar) erori. Afirmatia este valabiladeocamdata pentru t < 20.

Un alt caz interesant de studiu este q = 2, t = 2. Aici se poate da teorema:

Teorema 4.9 Nu exista nici un cod netrivial binar perfect corector de 2 erori.

Demonstratie: Lema 4.1 conduce la relatia

(2n + 1)2 = 2s+3 − 7.

Ecuatia x2 + 7 = 2m a fost studiata ın multe articole (vezi Math. Rev. 26, #74).Singurele solutii sunt x = 1, 3, 5, 11, 181 carora le corespund:

n = 0, 1 − fara coduri.n = 2 − codul trivial cu un singur cuvant.n = 5 − codul cu repetitie {00000, 11111}.n = 90.

Page 392: Criptografie complet

48 PRELEGEREA 4. CLASE DE CODURI LINIARE

Acest ultim caz este eliminat de urmatorul rezultat (Van Lindt - Coding theory,pp. 95):

Daca exista un cod binar perfect corector de t erori, atuncin + 1

t + 1este numar

ıntreg. 2

4.4 Exercitii

4.1 Fie (8, 4) - codul Hamming binar extins. Decodificati cuvintele

10101010 11010110 11111111.

4.2 Sa se demonstreze ca toate cuvintele - cod ale codului Hamming binar extins(2r, 2r − r − 1) au pondere para.

4.3 Construiti codurile Hamming ternare pentru r = 2, 3 si determinati decodifi-carea pe baza sindromurilor.

4.4 Construiti (5, 3) - codul Hamming cu q = 4. Determinati toate cuvintele - cod sitabela de decodificare cu sindromuri. Decodificati cuvintele: 11223, 32101 2222 1100.

4.5 Demonstrati afirmatiile din Corolarul 4.1.

4.6 Aratati ca C24 contine un cuvant cu toate componentele egale cu 1 si nici uncuvant de pondere 20.

Demonstrati ca numaratorul de ponderi al lui C24 este:

1 + 759X8 + 2576X12 + 759X16 + X24.

4.7 In codul Golay extins C24 sa se decodifice - daca este posibil, cuvintele:

111000000000, 011011011011 111111000000, 100011100111111111000000, 101011100111 111111000000, 111000111000111000000000, 110111001101 110111001101, 111000000000000111000111, 101000101101 110000000000, 101100100000

4.8 Sa se determine eroarea tip cea mai probabila pentru un cuvant cu sindromurile:

s1 = 010010000000, s2 = 011111010000s1 = 010010100101, s2 = 001000110000s1 = 111111000101, s2 = 111100010111s1 = 111111111011, s2 = 010010001110s1 = 001101110110, s2 = 111110101101s1 = 010111111001, s2 = 100010111111

4.9 Folosind C23, decodificati cuvintele:101011100000, 10101011011 101010000001, 11011100010100101011000, 11100010000 011001001001, 01101101111

4.10 Detaliati demonstratia Teoremei 4.6.

4.11 Rezolvati ecuatia (1).

Page 393: Criptografie complet

Prelegerea 5

Coduri Reed - Muller

Vom introduce o noua clasa de coduri binare, caracterizate printr-o tehnica de de-codificare deosebit de simpla: codurile Reed - Muller (R −M). Ele au fost definitede Reed, iar Muller a construit modalitatea de decodificare si - implicit - de de-tectare si corectare a erorilor. Unul din aceste coduri - RM(1, 5) - a fost folosit ın1969 de sonda Mariner pentru transmiterea de imagini de pe Luna. Fiecare pixeldin imagine avea asignat una din 26 = 64 grade de umbra, iar acesti sase biti deinformatie erau codificati ıntr-un cuvant de lungime 32. Codul poate corecta panala 7 erori.

5.1 Definirea prin functii booleene

5.1.1 Functii si polinoame booleene

Definitia 5.1 O functie booleana de m (m ≥ 1) variabile este o aplicatief : Zm

2 → Z2.

O modalitate simpla folosita pentru definirea unei functii booleene este asociereaunei tabele de adevar: un tablou (m+1)×2m care contine toate combinatiile posibilede m valori binare, carora li se asociaza valoarea functiei (de asemenea o valoarebinara). Prin conventie, primii m biti de pe coloana i (0 ≤ i ≤ 2m − 1) reprezintascrierea ın baza 2 a numarului i.

Exemplul 5.1 Urmatoarea tabela de adevar defineste o functie booleana de 3 vari-abile:

x0 0 1 0 1 0 1 0 1x1 0 0 1 1 0 0 1 1x2 0 0 0 0 1 1 1 1f 0 1 1 0 1 1 1 0

Observam ca o astfel de tabela defineste un cuvant binar de lungime 8. Afirmatiaeste adevarata si invers: orice cuvant binar de lungime 8 este definit printr-o tabelade adevar a unei functii booleene de 3 variabile. Astfel, se pot identifica functiilebooleene de 3 variabile prin cuvintele binare de lungime 8. In tabela de sus, cuvantul01101110 este pus ın corespondenta biunivoca cu functia f .

49

Page 394: Criptografie complet

50 PRELEGEREA 5. CODURI REED - MULLER

In cele ce urmeaza, orice cuvant binar f = f0f1 . . . f2m−1 de lungime 2m este conside-rat ca o functie booleana de m variabile, unde

f(0, 0, . . . , 0, 0) = f0,f(0, 0, . . . , 0, 1) = f1,f(0, 0, . . . , 1, 0) = f2,

...f(1, 1, . . . , 1, 1) = f2m−1

In general, fi = f(im−1, . . . , i1, i0), unde i =m−1∑

k=0

ik2k

(im−1 . . . i1i0 este scrierea ın binar a lui i).

Exemplul 5.2 Exista doua functii booleene constante:

1 = 11 . . . 11, 0 = 00 . . . 00.

Exemplul 5.3 Orice variabila poate fi tratata ca o functie booleana. De exemplu,x0 este functia booleana care asigneaza fiecarui m-tuplu (x0, x1, . . . , xm−1) valoareaprimei coordonate x0. Deci, valoarea este 0 pentru toate numerele pare si 1 pentrutoate numerele impare: x0 = 0101 . . . 01 (vezi Exemplul 5.1 pentru cazul m = 3).

In general,

xi este cuvantul binar ın care pe pozitia k (0 ≤ k ≤ 2m − 1) este 1 atunci sinumai atunci cand scrierea binara a lui k contine 1 pe pozitia i.

Aceasta observatie rezulta din modul de scriere al tabelelor de adevar.De exemplu, x1 = 00110011 . . . 0011 si xm−1 = 00 . . . 00︸ ︷︷ ︸

2m−1

11 . . . 11︸ ︷︷ ︸2m−1

.

Pentru m = 4, cele patru variabile sunt descrise ın Tabelul 5.1:

Tabelul 5.1:

x0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1x1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1x2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1x3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Pe multimea functiilor booleene se definesc doua operatii:

• Suma logica (sau exclusiv): f + g = h

unde hi = fi + gi (mod 2), 0 ≤ i ≤ 2m − 1.

• Produsul logic (si): fg = h

unde hi = figi (mod 2), 0 ≤ i ≤ 2m − 1.

Observatii:

Page 395: Criptografie complet

5.1. DEFINIREA PRIN FUNCTII BOOLEENE 51

1. Produsul logic verifica relatia ff = f .

Deci ın reprezentarea functiilor nu vor apare exponenti mai mari de 1.

2. Exista si alte operatii care pot fi exprimate cu ajutorul sumei si produsuluilogic. Astfel,

• Negatia f = 1 + f

• ∨ (sau disjunctiv): f ∨ g = f + g + fg

Definitia 5.2 Un polinom boolean de m nedeterminate este o suma de termeni dinmultimea

{0,1} ∪ {xi1xi2 . . .xik |0 ≤ i1 < i2 < . . . < ik ≤ m− 1, k ≥ 1}.

Functia 0 este numita polinom boolean de gradul −1, functia 1 este numita polinomboolean de gradul 0, iar orice alt polinom boolean are gradul k unde k este numarulmaxim de factori dintr-un termen al lui f .

Exemplul 5.4 Polinomul boolean 1 + x0x1 de 3 nedeterminate are gradul 2. Eleste negatia polinomului

x0x1 = (01010101)(00110011) = 00010001.Deci 1 + x0x1 = 11101110.Acelasi polinom, considerat ca functie de 4 nedeterminate, este cuvantul

1110111011101110.

Exemplul 5.5 Polinomul xixj (i 6= j) este cuvantul binar ın care pe pozitia k este1 daca si numai daca reprezentarea binara a lui k are 1 pe pozitiile i si j. Numarulacestor situatii este 2m−2 (deoarece celelalte m− 2 pozitii din scrierea binara a lui kpot fi alese arbitrar). Deci w(xixj) = 2m−2.

Mai general,

Daca i1, i2, . . . , ir sunt valori distincte din [0,m− 1], atunciw(xi1xi2 . . .xir) = 2m−r. (∗)

Fiecare polinom boolean de m variabile determina un cuvant binar de lungime2m: pentru o singura nedeterminata, se foloseste Exemplul 5.3, dupa care se opereazaadunarile si multiplicarile necesare.

Invers, orice cuvant binar f = f0f1 . . . f2m−1 poate fi translatat ıntr-un polinomboolean pe baza urmatoarei propozitii:

Propozitia 5.1 Daca f este o functie booleana de m variabile, atunci:f(x0, . . . , xm−2, xm−1) = f(x0, . . . , xm−2, 0)+

+[f(x0, . . . , xm−2, 0) + f(x0, . . . , xm−2, 1)]xm−1.

Demonstratie: Deoarece xm−1 poate lua doar doua valori (0, 1), este suficient saverificam identitatea pentru acestea. Cazul xm−1 = 0 se verifica banal. Pentruxm−1 = 1 avem:

f(x0, . . . , xm−2, 0)+[f(x0, . . . , xm−2, 0)+f(x0, . . . , xm−2, 1)] = f(x0, . . . , xm−2, 1).2

Page 396: Criptografie complet

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 Propozitia 5.1:

f = 0110 + [0110 + 1110]x2 = 0110 + 1000x2 == (01 + [01 + 10]x1) + (10 + [10 + 00]x1)x2 = 01 + 11x1 + 10x2 + 10x1x2 == (0 + [0 + 1]x0) + (1 + [1 + 1]x0)x1 + (1 + [1 + 0]x0)x2 + (1 + [1 + 0]x0)x1x2 == x0 + x1 + x2 + x0x2 + x1x2 + x0x1x2.

Teorema 5.1 Spatiul liniar Zn2 , (n = 2m) are o baza formata din toate monoamele

booleene:

1xi (i = 0, 1, . . . , m− 1)xixj (i, j = 0, 1, . . . ,m− 1, i 6= j)...x0x1 . . .xm−1

Demonstratie: Fiecare cuvant de lungime n = 2m este o functie booleana de m nede-terminate, care poate fi exprimata printr-un polinom boolean. Monoamele booleenepot fi considerate ın Zn

2 si sunt evident liniar independente. In plus, deoarece pentrufiecare k = 0, 1, . . . , m sunt Ck

m monoame de grad k, numarul lor total va fim∑

k=0

Ckm = 2m = n, adica dimensiunea spatiului liniar. 2

5.1.2 Coduri Reed - Muller

Definitia 5.3 Se numeste cod Reed - Muller de lungime n = 2m si grad r(0 ≤ r ≤ m), codul liniar RM(r,m) al tuturor cuvintelor binare de lungime n careau - 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 repetitie de lungime 2m.

Exemplul 5.8 RM(1,m) are baza 1,x0, . . . ,xm−1; orice polinom de grad cel mult1 se poate scrie ca suma de o parte din aceste m+1 polinoame (liniar independente).Deci, RM(1,m) este un (2m,m + 1) - cod liniar.

De exemplu, RM(1, 3) are matricea generatoare:

G =

1x0

x1

x2

=

1 1 1 1 1 1 1 10 1 0 1 0 1 0 10 0 1 1 0 0 1 10 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 mentionat anterior.

Propozitia 5.2 RM(r,m) are k = C0m + C1

m + . . . + Crm simboluri de informatie.

Page 397: Criptografie complet

5.1. DEFINIREA PRIN FUNCTII BOOLEENE 53

Demonstratie: Codul RM(r,m) are ca baza monoamele booleene{1} ∪ {xi1xi2 . . .xis|s ≤ r, 0 ≤ i1 < i2 < . . . < is < m}.

Numarul acestor monoame este C0m + C1

m + . . . + Crm. Cum ele sunt liniar in-

dependente, vor forma liniile matricii generatoare G a codului; ori numarul de liniieste egal cu numarul de simboluri de informatie. 2

Propozitia 5.3 Dualul codului RM(r,m) este codul RM(m− r − 1,m).

Demonstratie: Trebuie aratat ca cele doua coduri au baze ortogonale si suma di-mensiunilor lor este egala cu suma ıntregului spatiu.

A: Fie vi1vi2 . . .vip (p ≤ r) un monom din baza codului RM(r,m) sivj1vj2 . . .vjs (s ≤ m − r − 1) un monom din baza codului RM(m − r − 1,m).Produsul lor are t (t ≤ r+m−r−1 = m−1) variabile distincte (variabilele comuneapar o singura data), deci ponderea lui este (conform (∗)) 2m−t ≥ 2. Fiind un numarpar, rezulta ca produsul scalar (adica suma ın binar a termenilor) este 0.

B: Suma dimensiunilor celor doua coduri este:r∑

i=0

Cim +

m−r−1∑

i=0

Cim =

r∑

i=0

Cim +

m∑

i=r+1

C im =

m∑

i=0

C im = 2m = n. 2

Exemplul 5.9 RM(m − 2,m) este codul Hamming extins de lungime 2m. Intr-adevar, codul sau dual este RM(m− (m− 2)− 1,m) = RM(1,m), deci RM(m−2,m) are matricea de control

H =

1x0...

xm

=

1 1 1 1 . . . 1 1 1 10 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 obtine alta matrice de control a codului:

H ∼

1 0 1 0 . . . 1 0 1 01 1 0 0 . . . 1 1 0 0

...1 1 1 1 . . . 0 0 0 01 1 1 1 . . . 1 1 1 1

.

Dupa eliminarea ultimei linii si coloane se obtine un (2m − 1,m) - cod ale caruicoloane sunt nenule si diferite doua cate doua, adica matricea de control H0 a unuicod Hamming binar. Deci H este matricea de control a unui cod Hamming extins.

Codificarea mesajelor cu un cod R−M se realizeaza normal, ınmultind mesajul deinformatie cu matricea generatoare. In acest fel bitii de informatie devin coeficientiipolinomului boolean corespunzator. De exemplu, ın RM(1,m) codificarea celorm + 1 caractere de informatie este:

(a1, a2, . . . , am+1)

1x0...

xm−1

= a11 + a2x0 + . . . + am+1xm−1.

Page 398: Criptografie complet

54 PRELEGEREA 5. CODURI REED - MULLER

5.2 Definirea recursiva a codurilor R - M

Sa introducem o alta modalitate de definire a codurilor Reed - Muller, nu prinpolinoame booleene, ci prin constructie recursiva.

Definitia 5.4 Fie m ≥ 0 un numar natural. Se defineste codul Reed - MullerRM(r,m) de ordin r (0 ≤ r ≤ m) si lungime n = 2m astfel:

• RM(0,m) = {00 . . . 0, 11 . . . 1}, RM(m,m) = Zn2 .

• RM(p,m) = {[a, a + b]|a ∈ RM(p,m−1),b ∈ RM(p−1,m−1)}, 0 < p ≤ r.

S-a notat cu [x,y] un cuvant de lungime 2m scris ca alaturare de doua subcuvintede lungimi egale (2m−1), 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) = Z4

2

RM(1, 2) = {(a, a + b)|a ∈ {00, 01, 10, 11},b ∈ {00, 11}} == {0000, 0011, 0100, 0111, 1000, 1011, 1100, 1111}

In mod similar se poate da o definitie recursiva a matricii generatoare G(r,m) pentrucodul RM(r,m).

• G(0,m) = (11 . . . 1);

• pentru 0 < p < m, G(p, m) =

(G(p,m− 1) G(p,m− 1)

0 G(p− 1, m− 1)

);

• G(m, m) =

(G(m− 1,m)

00 . . . 01

).

Teorema 5.2 G(r,m) este matrice generatoare pentru codul RM(r,m).

Demonstratie: Se verifica prin inductie dupa r. 2

Exemplul 5.11 Sa consideram r = 2; atunci lungimea este n = 22 = 4 si pentrur = 1, 2 avem

G(1, 2) =

(G(1, 1) G(1, 1)

0 G(0, 1)

)G(2, 2) =

(G(1, 2)0001

).

Din definitie, matricile generatoare pentru RM(0, 1) si RM(1, 1) sunt

G(0, 1) = (11), G(1, 1) =

(1 10 1

), asa ca

G(1, 2) =

1 1 1 10 1 0 10 0 1 1

, G(2, 2) =

1 1 1 10 1 0 10 0 1 10 0 0 1

.

Page 399: Criptografie complet

5.3. DEFINIREA GEOMETRICA A CODURILOR R-M 55

Propozitia 5.4 RM(r − 1,m) ⊆ RM(r,m).

Demonstratie: Sa consideram initial matricea

G(1,m) =

(G(1,m− 1) G(1,m− 1)

0 G(0,m− 1)

).

Pentru ca 1 este prima linie a lui G(1,m − 1), cuvantul [1,1] formeaza primalinie a matricii (G(1,m − 1) G(1,m − 1)). Deci RM(0,m) = {0,1} este continutın codul RM(1,m).

In general, deoarece G(r − 1,m− 1) este submatrice a lui G(r,m− 1) si

G(r − 2,m− 1) este o submatrice a lui G(r − 1,m− 1), este evident ca

G(r − 1, m) =

(G(r − 1,m− 1) G(r − 1,m− 1)

0 G(r − 2,m)

)

este o submatrice a lui G(r,m), deci RM(r−1,m) este subcod al lui RM(r,m).2

Teorema 5.3 RM(r,m) are distanta d = 2m−r.

Demonstratie: Vom folosi o inductie dupa r:

Pentru r = 0, evident (RM(0,m) fiind codul cu repetitie, distanta sa este

d = n = 2m).

La pasul II, deoarece

RM(r,m) = {[x,x + y]|x ∈ RM(r,m− 1),y ∈ RM(r − 1, m− 1)} siRM(r−1,m−1) ⊆ RM(r,m−1) (Propozitia 5.4), rezulta x + y ∈ RM(r,m−1).

Daca x 6= y, conform ipotezei de inductie w(x + y) ≥ 2m−1−r. Cum si w(x) ≥2m−1−r, putem scrie w([x + y,x]) = w(x + y) + w(x) ≥ 2m−r.

Daca x = y, atunci [x,x + y] = [y,0]; dar y ∈ RM(r − 1,m − 1) si deciw([y,0]) = w(y) ≥ 2m−r.

Cum orice linie a matricii generatoare este cuvant - cod, iar ultima linie areponderea exact 2m−r, demonstratia este ıncheiata. 2

5.3 Definirea geometrica a codurilor R-M

Codurile Reed - Muller mai pot fi definite si geometric - prin folosirea spatiilorafine. Avantajul acestei reprezentari consta ın modalitatea mai simpla de aplicarea algoritmilor de decodificare.

Pentru usurinta descrierii am construit ıntai cazul tridimensional. De asemenea,pentru a vedea echivalenta cu definirea anterioara a codurilor Reed - Muller, vomface permanent legatura cu polinoamele booleene (sau cu functiile lor caracteristice).

Page 400: Criptografie complet

56 PRELEGEREA 5. CODURI REED - MULLER

5.3.1 Cazul 3 -dimensional

Spatiul euclidian 3 - dimensional binar este multimea {(a, b, c)|a, b, c ∈ Z2}. Spredeosebire de spatiul euclidian obisnuit - unde cele trei coordonate luau valori ın R- aici numarul punctelor este finit: numai 8. Ele pot fi listate, renotandu-le astfel:

Punct Functie caracteristicap0 = 000 00000001p1 = 001 00000010p2 = 010 00000100p3 = 011 00001000p4 = 100 00010000p5 = 101 00100000p6 = 110 01000000p7 = 111 10000000

Liniile pot fi definite ın geometria euclidiana prin expresii de forma

a + tb a,b ∈ Z32 , b 6= 0.

unde t este un parametru binar (t ∈ {0, 1}). Deci o linie ın spatiul 3 - dimensionalbinar are numai 2 puncte: a, a + b. Invers, orice pereche de doua puncte distinctea, a′ formeaza o dreapta, anume a + t(a′ − a). Putem astfel sa consideram liniile cafiind totalitatea celor C2

8 = 28 submultimi de cate doua puncte

{p0,p1}, {p0,p2}, . . . , {p6,p7}.In mod similar, planele din geometria euclidiana sunt definite

a + t1b + t2c, a,b, c ∈ Z32 , b, c liniar independente,

unde t1, t2 sunt parametri binari. Un plan este format deci din patru puncte:a, a + b, a + c, a + b + c. Aparent, desi numarul planelor ın geometria euclidianabinara 3 - dimensionala ar trebui sa fie C4

8 = 70, conditia de liniar independentareduce acest numar la 14:

Plan Functie caracteristica Polinom boolean{p1,p3,p5,p7} 10101010 x0

{p2,p3,p6,p7} 11001100 x1

{p4,p5,p6,p7} 11110000 x2

{p0,p2,p4,p6} 01010101 1 + x0

{p0,p1,p4,p5} 00110011 1 + x1

{p0,p1,p2,p3} 00001111 1 + x2

{p1,p2,p5,p6} 01100110 x0 + x1

{p1,p3,p4,p6} 01011010 x0 + x2

{p2,p3,p4,p5} 00111100 x1 + x2

{p1,p2,p4,p7} 10010110 x0 + x1 + x2

{p0,p3,p4,p7} 10011001 1 + x0 + x1

{p0,p2,p5,p7} 10100101 1 + x0 + x2

{p0,p1,p6,p7} 11000011 1 + x1 + x2

{p0,p3,p5,p6} 01101001 1 + x0 + x1 + x2

Page 401: Criptografie complet

5.3. DEFINIREA GEOMETRICA A CODURILOR R-M 57

In general, un plan este descris de ecuatia generala

h0x0 + h1x1 + h2x2 = c

care defineste un subspatiu 2 - dimensional al lui Z32 .

Din faptul ca orice dreapta este o intersectie de doua plane, ea poate fi descrisaprintr-o pereche de doua ecuatii:

h0x0 + h1x1 + h2x2 = c, h′0x0 + h′1x1 + h′2x2 = c′.

Liniile si planele sunt exemple de spatii afine. Un spatiu afin ın Z32 este o multime

de formaa + A = {a + b|b ∈ A}

unde a ∈ Z32 iar A este un subspatiu liniar din Z3

2 . Daca dimensiunea lui A este s,numim acea multime un s - spatiu afin.

Deci liniile sunt 1 - spatii afine, iar planele: 2 - spatii afine. Pentru fiecare punctpi avem un 0 - spatiu afin, si - ın sfarsit - exista un 3 - spatiu afin unic - Z3

2 .

Orice spatiu afin L poate fi descris de un cuvant binar fL = f7 . . . f1f0 definitprin

fi =

{1 daca pi ∈ L,0 altfel

Cuvantul fL (sau functia booleana de trei variabile corespunzatoare) se numestefunctia caracteristica a spatiului afin L (tabelele anterioare listeaza aceste functiipentru 0 si 2 - spatii afine).

Fiind date spatiile afine L, L′, intersectia lor L∩L′ este caracterizata de produsullogic fLfL′ .

Exemplul 5.12 Primele doua plane din tabelul de sus se intersecteaza dupa linia{p3,p7}. Produsul logic al functiilor lor caracteristice este

x0x1 = 10001000,care se poate verifica imediat ca fiind functia caracteristica a dreptei {p3,p7}.

5.3.2 Cazul m - dimensional

Vom prezenta constructiile anterioare ıntr-un cadru mai general, al geometriei eu-clidiene m - dimensionale binare. Punctele (elementele lui Zm

2 ) pot fi renotate dupaextensia binara a indicilor; mai clar, vom scrie Zm

2 = {p0,p1, . . . ,p2m−1} undep0 = 000 . . . 00, p1 = 000 . . . 01, p2 = 000 . . . 10, . . . ,p2m−1 = 111 . . . 11.

Definitia 5.5 Fie A un subspatiu liniar r - dimensional al lui Zm2 si a ∈ Zm

2 .Multimea

Aa = a + A = {a + b|b ∈ A}se numeste r - spatiu afin ın geometria euclidiana m - dimensionala.

Un (m− 1) - spatiu afin se numeste ”hiperplan”.

Page 402: Criptografie complet

58 PRELEGEREA 5. CODURI REED - MULLER

Daca b1, . . . ,br este o baza a lui A, r - spatiul afin Aa se noteaza

a + t1b1 + . . . + trbr.

El are 2r puncte (date de variantele de alegere ale parametrilor binari ti, 1 ≤ i ≤ r).O alta modalitate de notare a r - spatiilor afine se realizeaza cu ajutorul sis-

temelor de ecuatii liniare: astfel, daca A este definit ca multimea solutiilor sistemuluiHxT = 0T , atunci Aa este dat de multimea solutiilor sistemului

HxT = HaT .

Acest sistem are m − r ecuatii. In particular, un hiperplan este definit printr-osingura ecuatie:

h0x0 + h1x1 + . . . + hm−1xm−1 = c.

Exemplul 5.13 Un 0 - spatiu afin cuprinde un singur punct. Exista deci 2m

0 - spatii afine distincte: {p0}, {p1}, . . . , {p2m−1}.Similar, orice 1 - spatiu afin (sau ”linie”) este o multime formata din doua

punctea + tb ≡ {a, a + b},

si invers, orice multime de doua puncte distincte formeaza un 1 - spatiu afin.Exista deci C2

2m 1 - spatii afine.

Exemplul 5.14 Fie Pi spatiul afin definit de ecuatia xi = 1. Deci Pi este multimeapunctelor pk care au 1 pe pozitia i. De exemplu P0 = {p1,p3, . . . ,p2m−1}.

Fiecare Pi este un hiperplan si - deoarece p2i are un singur 1 pe pozitia i si 0 ınrest, putem scrie

Pi ≡ p2i + A

unde A este spatiul liniar definit de ecuatia xi = 0, (deci tot un hiperplan).

Propozitia 5.5 Exista 2(2m − 1) hiperplane.

Demonstratie: Deoarece se pot construi 2m−1 ecuatii cu coeficienti binari si variabilex0, x1, . . . , xm−1, Zm

2 are 2m − 1 subspatii A de dimensiune m − 1. Fiecare din ele

are 2m−1 puncte, deci vor exista2m

2m−1= 2 spatii afine modulo A. 2

Exemplul 5.15 Pentru i 6= j, intersectia Pi ∩Pj (multimea punctelor care au 1 pe

pozitiile i si j) este un (m − 2) - spatiu afin. Intr-adevar, daca se ia a = p2i+2j,avem

Pi ∩ Pj ≡ a + A,

unde A este determinat de ecuatiile xi = xj = 0 (deci A are dimensiunea m− 2).

Definitia 5.6 Functia caracteristica a unui r - spatiu afin L este cuvantul binarfL = f2m−1 . . . f1f0 definit prin

fj =

{1 daca pj ∈ L,0 altfel

Page 403: Criptografie complet

5.3. DEFINIREA GEOMETRICA A CODURILOR R-M 59

Functia caracteristica poate fi interpretata ca un polinom boolean fL(x0, . . . , xm−1).Din proprietatile acestor polinoame rezulta

a0a1 . . . am−1 ∈ L ⇐⇒ fL(a0, a1, . . . am−1) = 1

Observatii:

1. Singurul m - spatiu afin (Zm2 ) are functia caracteristica 1 = 11 . . . 1.

2. Un hiperplan Pi are functia fPi= xi.

3. Fie L un hiperplan definit de ecuatia h0x0 + . . . hm−1xm−1 = c. Functia sacaracteristica va fi un polinom boolean de gradul 1, anume

fL(x0, . . . , xm−1) = h0x0 + . . . + hm−1xm−1 + c + 1

Aceasta relatie rezulta din faptul ca un punct a0 . . . am−1 este ın plan daca sinumai daca h0a0 + . . . + hm−1am−1 = c, adica fL(a0, . . . , am−1) = 1.

4. Pentru doua spatii afine L, L′, functia caracteristica a intersectiei L ∩ L′ estefLfL′ .

Astfel, pentru Pi∩Pj (care este un (m−2) - spatiu afin) functia caracteristicaeste xixj.

Mai general, polinomul boolean xi1xi2 . . .xis este functia caracteristica a unui(m− s) - spatiu afin.

Teorema 5.4 Functia caracteristica a unui r - spatiu afin este un polinom booleande gradul m− r.

Demonstratie: Un r - spatiu afin L este definit ca solutia sistemului de ecuatiiHxT = cT , sau, detaliind,

m−1∑

j=0

hijxj = ci, 1 ≤ i ≤ m− r.

Aceste ecuatii se pot scrie

m−1∑

j=0

hijxj + ci + 1 = 1, 1 ≤ i ≤ m− r.

Atunci, polinomul boolean de grad m− r

f(x0, . . . , xm−1) =m−r∏

i=1

m−1∑

j=0

hijxj + ci + 1

este functia caracteristica a lui L. 2

Definitia 5.7 RM(r,m) este codul liniar generat de toate functiile caracteristiceale spatiilor afine de dimensiune cel putin m−r ın geometria euclidiana m - dimen-sionala peste Z2.

Page 404: Criptografie complet

60 PRELEGEREA 5. CODURI REED - MULLER

Faptul ca aceasta coincide cu definitia anterioara a codurilor Reed - Muller rezultadin construtia spatiilor afine: RM(r,m) contine toate functiile caracteristice ale s- spatiilor afine, unde s ≥ m − r. Faptul ca aceste functii genereaza tot spatiulRM(r,m) rezulta din Observatia 4.

Exemplul 5.16 Codul RM(1, 3) este generat de functiile caracteristice ale tuturorplanelor. Orice astfel de functie este un polinom de trei variabile de gradul 1.

Codul RM(2, 3) este generat de functiile caracteristice ale tuturor planelor siliniilor. Cum o linie este intersectia a doua plane, functia sa caracteristica esteprodusul a doua polinoame de gradul 1, deci un polinom de gradul 2 (cuvant - coddin RM(2, 3)).

5.4 Exercitii

5.1 Ce polinom boolean are ultima linie a tabelei de adevar:

10100110 1010011010100110 0101001110011100

5.2 Determinati tabela de adevar a polinomului boolean 1 + x0 + x1x2:

1. Ca functie de trei variabile;

2. Ca functie de patru variabile.

5.3 Demonstrati afirmatia (∗).

5.4 Gasiti un (15, 5) - cod liniar binar corector de 3 erori (folositi un cod R −Mrelaxat).

5.5 Fiind dat codul RM(1, 3), codificati toate mesajele de informatie posibile.Acelasi lucru pentru codul RM(2, 3).

5.6 Demonstrati Teorema 5.2

5.7 Construiti matricile generatoare G(1, 3), G(2, 3), G(r, 4), r = 0, 1, 2.

5.8 Demonstrati ca G(r,m) are k + 1 linii, unde k este dat de Propozitia 5.2

5.9 Calculati numarul de 2 - spatii afine ın geometria euclidiana peste Zm2 .

5.10 Este orice functie booleana functia caracteristica a unui anumit spatiu afin ?Caracterizati astfel de functii.

5.11 Orice functie caracteristica a unui (r + 1) - spatiu afin apartine codului duallui RM(r,m).

5.12 Sa se arate ca RM(2, 5) este auto - dual. Sa se determine toate codurileRM auto - duale.

Page 405: Criptografie complet

Prelegerea 6

Decodificarea codurilor Reed -Muller

Avantajul principal al codurilor Reed - Muller consta ın facilitatea decodificarii,facilitate bazata pe o tehnica diferita de cea de pana acum. Aceasta tehnica, numitadecodificare majoritara nu apeleaza la ideea de sindrom, ci corecteaza direct bitiimodificati, folosind diverse proprietati ale cuvantului receptionat.

6.1 Decodificarea majoritara

Sa prezentam pe scurt principiile generale ale decodificarii majoritare. Vom ıncepecu un exemplu foarte simplu:

Exemplul 6.1 Fie codul binar cu repetitie de lungime 2n + 1 :C = {00 . . . 0︸ ︷︷ ︸

2n+1

, 11 . . . 1︸ ︷︷ ︸2n+1

}.Ca sistem de ecuatii de control se poate lua

x1 + x2 = 0x1 + x3 = 0

...x1 + x2n+1 = 0

Daca se receptioneaza cuvantul y = x + e, la ınlocuirea lui ın sistem, acesta deviney1 + yi = e1 + ei, 2 ≤ i ≤ 2n + 1.

Daca mai mult de n din cele 2n expresii y1 + yi iau valoarea 1, aceasta ınseamnaca:

• Au aparut mai putin de n erori, printre care si pe prima pozitie (e1 = 1), sau

• Au aparut mai mult de n erori, dar nu pe prima pozitie (e1 = 0).

Din aceste doua variante, prima este mai probabila. Deci valoarea majoritara pecare o iau cele n valori y1 + yi va fi valoarea lui e1.

Definitia 6.1 Fie An,k un cod liniar. Un set de ecuatii de control pentru An,k esteortogonal pe multimea de pozitii P ⊂ {1, 2, . . . , n} daca si numai daca:

61

Page 406: Criptografie complet

62 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

1. ∀i ∈ P , termenul xi apare (cu coeficient nenul) ın fiecare ecuatie;

2. ∀i 6∈ P , termenul xi apare cel mult ıntr-o ecuatie.

Decodificarea se realizeaza caracter cu caracter, dupa urmatorul procedeu:

Fie a = a1 . . . an cuvantul receptionat si i (1 ≤ i ≤ n) o pozitie.Se construieste multimea maximala de ecuatii de control ortogonale pe pozitiai.Fie ei valoarea obtinuta ın majoritatea acestor ecuatii. Al i-lea caracter de-codificat este ai + ei.

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 10 0 0 1 1 1 1 0 0 0 0 1 1 1 10 1 1 0 0 1 1 0 0 1 1 0 0 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Pentru fiecare pereche de coloane distincte din H exista o a treia coloana astfel ıncatsuma celor trei coloane este 0. Deci, fiecare cuvant de pondere 3 al codului Hammingda o ecuatie de control cu trei termeni pentru codul dual; ın acest fel se obtine pentrufiecare caracter xi cate un sistem de 7 ecuatii ortogonale pe pozitia i. Astfel,

pentru x1 ele sunt: x1 = x2 + x3 = x4 + x5 = x6 + x7 = x8 + x9 = x10 + x11 =x12 + x13 = x14 + x15;

pentru x2 : x2 = x1 +x3 = x4 +x6 = x5 +x7 = x8 +x10 = x9 +x11 = x12 +x14 =x13 + x15, etc.

Codul are distanta d = 8; deci poate corecta maxim 3 erori.Daca ın mesajul primit y apar cel mult 3 erori, atunci un sistem de ecuatii

ortogonal pe x1 va avea cel mult trei ecuatii care sa dea pentru x1 o valoare gresitasi cel putin cinci cu valoarea calculata corect. Valoarea gasita majoritar va fi cea ıncare se decodifica primul caracter.

Procedeul se reia pentru y2, y3, . . ..Sa presupunem de exemplu ca s-a receptionat mesajul 001011110101011. Pentru

decodificarea primului caracter vom calcula sumele0 + 1, 0 + 1, 1 + 1, 1 + 0, 1 + 0, 1 + 0, 1 + 1.

Se obtin 5 valori de 1 si doua de 0; deci, primul simbol este 1.Procedand similar pentru fiecare (folosind ecuatiile ortogonale corespunzatoare

fiecarei pozitii), se ajunge la cuvantul 10101011010101010.

Aceasta metoda este nu numai usor de implementat, dar are adesea si alte completari(gen ”bitul de testare a paritatii”) care fac posibila corectarea mai multor erori.

In aceasta prelegere vom construi trei algoritmi de decodificare a codurilor R −M . Doi din ei sunt bazati pe modurile de reprezentare (geometric si algebric) aleacestor coduri; al treilea este un algoritm bzat pe definirea recursiva a codurilorR−M si este prezentat numai pentru cazul r = 1. Totii algoritmii sunt foarte usorde implementat, utilizarea unuia sau a altuia depinzand de criterii particulare ınalegerea parametrilor codului.

Page 407: Criptografie complet

6.2. ALGORITM GEOMETRIC DE DECODIFICARE MAJORITARA 63

6.2 Algoritm geometric de decodificare majori-

tara

Deoarece distanta unui cod RM(r,m) este d = 2m−r, el va fi capabil sa corectezepana la 2m−r−1 − 1 erori. In cele ce urmeaza vom presupune ca s-a receptionatcuvantul y = y2m−1 . . . y1y0, ın care au fost modificate maxim 2m−r−1 − 1 pozitii.Problema este de a determina pentru fiecare i (0 ≤ i ≤ 2m− 1) daca bitul yi trebuiecorectat sau nu. Sau - altfel spus - de a vedea daca pozitia lui y corespunzatoare 0- spatiului afin {pi} trebuie sau nu corectata.

Pentru a folosi proprietatile codurilor Reed - Muller exprimate de spatiile afine,vom reformula totul ın maniera urmatoare:

Pentru fiecare s - spatiu afin L (0 ≤ s ≤ r + 1) vom cerceta daca pozitiilecuvantului receptionat y corespunzatoare punctelor lui L (adica acei biti yi pentrucare pi ∈ L) sunt modificati sau nu.

Vom da ıntai cateva notiuni si notatii ajutatoare pentru a simplifica demons-tratiile.

Definitia 6.2 Fie G un grup, A un subgrup al sau si x ∈ G. Se numeste ”subgrupmodulo A” al lui G multimea

Ax = x + A = {x + a|a ∈ A}.

Lema 6.1 Subgrupurile unui grup modulo un subgrup arbitrar A, au urmatoareleproprietati:

1. ∀a ∈ G, ∃x ∈ G, a ∈ Ax;2. Daca x 6= y atunci Ax ∩ Ay = ∅ sau Ax = Ay;3. Daca a, b ∈ Ax atunci a− b ∈ A;4. ∀x, card(Ax) = card(A).

Demonstratie: Este lasata ca exercitiu.

Teorema principala a acestui paragraf este:

Teorema 6.1 Orice s - spatiu afin din geometria binara m - dimensionala estecontinut ın exact 2m−s − 1 (s + 1) - spatii afine distincte. In plus, orice punct dinafara lui L este exact ın unul din aceste (s + 1) - spatii afine.

Demonstratie: I: Sa aratam ıntai ca orice s - subspatiu liniar A ⊆ Zm2 este continut

ın exact 2m−s − 1 subspatii distincte de dimensiune s + 1.Orice (s + 1) - spatiu care contine A este de forma

A = A + tb ≡ {a + tb|a ∈ A, t = 0, 1},

unde b 6∈ A este un punct arbitrar fixat. Aceasta rezulta imediat din faptul ca oricebaza a lui A poate fi extinsa la o baza a lui A.

Pentru doua puncte b,b′ 6∈ A, spatiile liniare A + tb si A + tb′ coincid daca sinumai daca b si b′ sunt ın acelasi subspatiu modulo A (Lema 6.1).

Page 408: Criptografie complet

64 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

Din aceeasi lema rezulta ca sunt2m

2ssubspatii modulo A. Unul este chiar A, iar

celelalte contin numai puncte dinafara lui A. Deci exista 2m−s − 1 spatii distincteA + tb pentru b 6∈ A.

II: Orice s - spatiu afin L ≡ a + A (dimA = s) este continut ın 2m−s − 1(s + 1) - spatii afine distincte de forma a + A.Cu I, orice spatiu care contine L este de forma b + A. Deoarece L este de formaa+A, rezulta ca a ∈ b+A, deci a− b ∈ A, de unde rezulta (Lema 6.1) ca punctelea,b sunt ın acelasi subspatiu modulo A.

III: Orice punct b 6∈ L = a + A este ıntr-un (s + 1) - spatiu afin care contine L,anume a + A unde A = A + t(b− a).

Intr-adevar, alegand t = 1 si 0 ∈ A, avem b = a + [0 + (b− a)].Pentru a verifica ca A are dimensiunea s+1 este suficient de aratat ca b− a 6∈ A;

daca prin absurd b− a ∈ A, atunci a + (b− a) = b ∈ A, contradictie.In final, ar mai trebui aratat ca acest (s + 1) - spatiu afin care ıl contine pe

b este unic. Orice (s + 1) - spatiu afin care contine a + A are forma a + A undedim(A) = s + 1. Daca b ∈ a + A, atunci b− a ∈ A, deci A contine spatiul liniarA + (b− a). Cum ambele spatii au aceeasi dimensiune (s + 1), ele coincid. 2

Corolarul 6.1 Daca numarul de erori din cuvantul receptionat este t < 2m−r−1,atunci pentru fiecare s - spatiu afin L (0 ≤ s ≤ r) majoritatea (s + 1) - spatiilorafine care contin L au aceeasi paritate a erorilor ca L.

Demonstratie: Conform Teoremei 6.1, L este continut ın 2m−r − 1 > 2t(s + 1) - spatii afine L′, fiecare L′ fiind unic determinat de un punct din afara lui L.Sa consideram toate punctele pi 6∈ L pentru care caracterul yi este modificat. Lorle corespund cel mult t (s + 1) - spatii afine L′. Toate celelalte spatii L′ ramase auproprietatea ca nu contin nici un punct pi din afara lui L pentru care yi este gresit.Deci aceste spatii au aceeasi paritate de erori ca si L, iar numarul lor este cel putin(2m−r − 1)− t > t, deci majoritar. 2

Algoritm de decodificare pentru RM(r,m):1. (Initializare): La receptionarea unui cuvant a ∈ Zm

2 se considera toate(r + 1) - spatiile afine L. Un spatiu L se numeste impar daca afL = 1 (fL estefunctia caracteristica a spatiului afin L). In caz contrar L este par.

2. (Inductie): Pentru fiecare s = r, r − 1, . . . , 0 unde (s + 1) - spatiile afineau fost definite drept pare sau impare, se considera toate s - spatiile afine. Uns - spatiu afin L este par daca majoritatea (s + 1) - spatiilor afine care continpe L sunt pare; altfel L este impar.

3. (Final): Pentru i = 0, 1, . . . , 2m − 1, se corecteaza ai daca si numai daca0 - spatiul afin {pi} este impar.

Page 409: Criptografie complet

6.2. ALGORITM GEOMETRIC DE DECODIFICARE MAJORITARA 65

Exemplul 6.3 Sa consideram RM(1, 3) ın care s-a receptionat cuvantula = 11101010.

Tabelul 6.1: Primul pas al decodificarii 11101010

Plan Paritate Plan Paritate{p1,p3,p5,p7} par {p1,p3,p4,p6} impar{p2,p3,p6,p7} impar {p2,p3,p4,p5} par{p4,p5,p6,p7} impar {p0,p3,p4,p7} par{p0,p2,p4,p6} impar {p0,p2,p5,p7} par{p0,p1,p4,p5} par {p0,p1,p6,p7} impar{p0,p1,p2,p3} par {p1,p2,p4,p7} par{p1,p2,p5,p6} impar {p0,p3,p5,p6} impar

Tabelul 6.2: Al doilea pas al decodificarii 11101010

Linie Paritate Linie Paritate Linie Paritate{p0,p1} par {p1,p5} par {p3,p5} par{p0,p2} par {p1,p6} par {p3,p6} impar{p0,p3} par {p1,p7} par {p3,p7} par{p0,p4} par {p2,p3} par {p4,p5} par{p0,p5} par {p2,p4} par {p4,p6} impar{p0,p6} impar {p2,p5} par {p4,p7} par{p0,p7} par {p2,p6} impar {p5,p6} impar{p1,p2} par {p2,p7} par {p5,p7} par{p1,p3} par {p3,p4} par {p6,p7} impar{p1,p4} par

La primul pas trebuie sa decidem care plane sunt pare si care sunt impare. Deexemplu planul L = {p1,p3,p5,p7} este par deoarece afL = 11101010·10101010 = 0(vezi Prelegerea V , Paragraful 5.3.1). Se obtine Tabelul 6.1.

La pasul urmator trebuie sa decidem paritatea fiecarei linii.De exemplu, linia {p0,p1} este continuta ın trei plane:{p0,p1,p4,p5} (par), {p0,p1,p2,p3} (impar), {p0,p1,p6,p7} (impar).deci, prin majoritate, {p0,p1} este para. In mod similar se efectueaza calculele

pentru toate liniile, obtinandu-se Tabelul 6.2.Se poate trece acum la corectarea erorilor. RM(1, 3) poate corecta maxim

2m−r−1−1 = 23−1−1−1 = 1 erori. {p0} este continut ın sapte linii, sase pare si unaimpara, deci a0 este corect, etc. Singurul bit care trebuie corectat este a6 deoarece{p6} este ın sapte linii impare. Cuvantul trimis a fost deci 10101010.

Algoritmul de decodificare se bazeaza pe urmatoarea observatie:

Page 410: Criptografie complet

66 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

Fie codul RM(r,m) si a ∈ Zm2 un cuvant receptionat.

Un (r + 1) - spatiu afin L este par ⇐⇒ afL = 0.

Intr-adevar, daca a este cuvant - cod, atunci afL = 0 (Prelegerea V, Exercitiul5.11). Acum, daca au fost perturbate un numar par de caractere din a, cores-punzatoare unor puncte din L, valoarea produsului scalar afL nu se modifica. Pentruun numar impar de pozitii perturbate, valoarea produsului scalar este 1.

6.3 Algoritm algebric de decodificare majoritara

In afara de algoritmul prezentat anterior, care foloseste reprezentarea geometrica acodurilor R −M , se poate da si o varianta algebrica de decodificare, bazata directpe definitia decodificarii majoritare.

In cele ce urmeaza sa consideram un cod RM(r,m) fixat si k = 1+C1m+. . .+Cr

m

numarul simbolurilor de informatie, n = 2m - lungimea codului.

In matricea Um,n =

x0

x1...

xm−1

care contine pe coloane toate elementele spatiului

liniar Zm2 , vom nota cu ui (0 ≤ i ≤ m− 1) coloanele care reprezinta baza (naturala)

a lui Zm2 . Deci, orice coloana wj, 0 ≤ j ≤ n− 1 din Zm

2 se poate scrie

wj =m−1∑

i=0

tijui, tij ∈ {0, 1}.

Orice cuvant v ∈ Zn2 poate fi considerat indicatorul unei multimi de cuvinte din Zm

2 :acele coloane din U care corespund pozitiilor din v unde se afla valoarea 1.

Exemplul 6.4 Pentru orice j = 0, . . . , n− 1, cuvantul ej = 00 . . . 010 . . . 0 cu 1 pepozitia j corespunde coloanei cuvantului de pe coloana j din U ;

Cuvantul 1 = 11 . . . 1 corespunde ıntregului spatiu Zm2 .

Propozitia 6.1

ej =m−1∏

i=0

[xi + (1 + tij)1] , ∀j, 0 ≤ j ≤ 2m − 1.

Demonstratie: Sa aratam ıntai ca xi+(1+tij)1 reprezinta indicatorul acelor coloanedin U care au aceeasi componenta i ca si coloana wj.

Intr-adevar:

1. Daca tij = 1, atunci xi + (1 + tij)1 = xi + (1 + 1)1 = xi care este indicatorulmultimii coloanelor cu 1 (ca si wj) pe linia i.

Page 411: Criptografie complet

6.3. ALGORITM ALGEBRIC DE DECODIFICARE MAJORITARA 67

2. Daca tij = 0, atunci xi + (1 + tij)1 = xi + 1 care are componentele lui xi cu 0si 1 permutate, fiind deci indicatorul multimii coloanelor care au 0 (ca si wj)pe linia i.

Cuvantulm−1∏

i=0

[xi + (1 + tij)1] reprezinta indicatorul multimii acelor coloane din ma-

tricea U care au toate componentele egale cu cele ale coloanei wj. Cum coloanelematricii U sunt distincte, aceasta multime este chiar {wj}, al carei indicator este ej.2

Fie mesajul de informatie a1a2 . . . ak ∈ Zk2 . Ele se codifica cu ajutorul (2m, k) -

codului Reed - Muller ın cuvantul - cod

f = (f0, f1, . . . , fn−1) =a11 + a2x0 + . . . + am+1xm−1 + am+2x0x1 + . . . + akxm−rxm−r+1 . . .xm−1.

Putem enunta acum rezultatul principal pe baza caruia se construieste algoritmulalgebric de decodificare majoritara al codurilor R−M .

Teorema 6.2 Pentru fiecare componenta as din mesajul de informatie care se ın-multeste - la codificare - cu un produs de forma xi1xi2 . . .xir, exista 2m−r sumedisjuncte (cu termeni diferiti) continand fiecare 2r componente ale cuvantului - codcorespunzator f = f0f1 . . . fn−1, care sunt toate egale cu as.

Demonstratie: Tinand cont de Propozitia 6.1 si de faptul ca e0, e1, . . . , en−1 consti-tuie de asemenea o baza pentru Zn

2 , putem scrie:

f = (f0, f1, . . . , fn−1) =n−1∑

j=0

fjej =n−1∑

j=0

fj

m−1∏

i=0

[xi + (1 + tij)1].

Prin urmare, ca un produs de forma xi1 . . .xiu sa fie ın aceasta suma, trebuie catij = 0 pentru i 6∈ {i1, i2 . . . , iu}. Daca notam

C(i1, . . . , ij) = {p| p =m−1∑

i=0

tip2i, tip = 0 daca i 6∈ {i1, . . . , ij}} =

= {p| p = ti1p2i1 + ti2p2

i2 + . . . + tijp2ij , tip ∈ {0, 1}},

vom avea

f = (f0, f1, . . . , fn−1) =∑

i1<i2<...<iu

j∈C(i1,...,iu)

fj

xi1xi2 . . .xiu

Pe de-alta parte,

f = (f0, . . . , fn−1) = a11+a2x0+. . .+am+1xm−1+am+2x0x1+. . .+akxm−r . . .xm−1.

Prin identificare, rezulta ca elementul as, coeficient al produsului xi1xi2 . . .xir este

as =∑

j∈C(i1,...,ir)

fj (1)

Fie z 6∈ {i1, . . . , ir}. Deoarece baza codului RM(r,m) nu contine monoame deforma xi1 . . .xirxir+1 , vom obtine prin codificare

Page 412: Criptografie complet

68 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

j∈C(i1,...,ir,z)

fj = 0 (2)

Insa, C(i1, . . . , ir, z) = C(i1, . . . , ir) ∪ [C(i1, . . . , ir) + 2z]unde s-a notat C + α = {x + α| x ∈ C}. Intr-adevar, putem scrie

C(i1, . . . , ir, z) = {j| j = ti1j2i1 + . . . + tirj2

ir + tzj2z} =

= {j| j = ti1j2i1 + . . . + tirj2

ir} ∪ {j| j = ti1j2i1 + . . . + tirj2

ir + 2z} == C(i1, . . . , ir) ∪ [C(i1, . . . , ir) + 2z],

cele doua multimi ale reuniunii fiind disjuncte.Deci relatia (2) se scrie

j∈C(i1,...,ir)

fj +∑

j∈C(i1,...,ir)+2z

fj = 0 si - tinand cont de (1),

avem

as +∑

j∈C(i1,...,ir)+2z

fj = 0 (3)

Din (1) si (3) rezulta urmatoarea afirmatie: daca m = r + 1, pentru orice simbol deinformatie as ınmultit la codificare cu un produs de forma xi1 . . .xir exista 2m−r = 2sume disjuncte ((1) si (3)), fiecare de cate 2r componente ale lui f .

Aceste doua relatii se numesc relatii de determinare a componentei as.Fie acum t1, t2 6∈ {i1, . . . , ir}. Deoarece baza codului nu are produse de forma

xi1 . . .xirxir+1xir+2 , vom avea

j∈C(i1,...,ir,t1,t2)

fj = 0. (4)

Dar C(i1, . . . , ir, t1, t2) = C(i1, . . . , ir) ∪ [C(i1, . . . , ir) + 2t1 ] ∪ [C(i1, . . . , ir) + 2t2 ] ∪∪[C(i1, . . . , ir) + 2t1 + 2t2 ].

Deci (4) se descompune ın∑

j∈C(i1,...,ir)

fj +∑

j∈C(i1,...,ir)+2t1

fj +∑

j∈C(i1,...,ir)+2t2

fj +∑

j∈C(i1,...,ir)+2t1+2t2

fj = 0

ceea ce, tinand cont de (1) si (3) devine as + as + as +∑

j∈C(i1,...,ir)+2t1+2t2

fj = 0

deci

as =∑

j∈C(i1,...,ir)+2t1+2t2

fj (5)

Am aratat astfel ca, daca m = r + 2, atunci exista 2m−r = 22 = 4 sume ((1), dedoua ori (3) pentru t1 respectiv t2, si (5)) care dau pe as, fiecare suma continand 2r

componente ale lui f . Deci, pentru as exista ın acest caz patru relatii de determinare.Teorema rezulta ın continuare printr-un procedeu de inductie finita. 2

Sa vedem cum se foloseste Teorema 6.2 la decodificarea majoritara a codurilorReed - Muller:

Dupa cum s-a vazut, pentru fiecare componenta as corespunzatoare unui produsde forma xi1 . . .xir exista 2m−r sume disjuncte, continand fiecare 2r componente alelui f care - ın absenta erorilor - vor fi toate egale cu as.

Page 413: Criptografie complet

6.4. DECODIFICAREA CODURILOR RM(1,M) 69

Deoarece sumele sunt disjuncte (deci termenii lor sunt elemente diferite alecuvantului - cod), orice eroare va afecta o singura relatie de determinare a lui as.Prin urmare, daca apar ın transmiterea cuvantului - cod f cel mult 2m−r−1− 1 eroriindependente, putem determina - prin majoritate - pe as, identificandu-l cu valoareaa jumatate plus unu din relatiile de determinare corespunzatoare.

Dupa ce se determina ın acest mod coeficientii tuturor produselor xi1 . . .xir , sescade din vectorul receptionat combinatia liniara

apx0 . . .xr−1 + . . . + akxm−r . . .xm−1.

In acest fel problema se reduce la decodificarea ıntr-un cod de ordin r−1 si lungime2m; procedeul este similar, fiind determinate aici componentele de informatie carese codifica prin ınmultirea cu produsele de forma xj1 . . .xjr−1 , s. a. m. d.

Exemplul 6.5 Fie codul RM(2, 4). El are lungimea n = 16, ordinul r = 2, k =1 + C1

4 + C24 = 11 simboluri de informatie si n − k = 5 simboluri de control. Deci

este un (16, 11) - cod liniar.Orice mesaj de informatie (a1, a2, . . . , a11) ∈ Z11

2 se codifica ın cuvantulf = (f0, . . . , f15) = a11+a2x0+a3x1+a4x2+a5x3+a6x0x1+a7x0x2+a8x0x3+

a9x1x2 + a10x1x3 + a11x2x3.Sa stabilim de exemplu relatiile de determinare pentru a9, care se codifica prin

ınmultire cu x1x2. Trebuiesc calculate multimile:

C(1, 2) = {j| j = t1j21 + t2j2

2} = {0, 2, 4, 6}C(1, 2) + 20 = {1, 3, 5, 7}C(1, 2) + 23 = {8, 10, 12, 14}C(1, 2) + 20 + 23 = {9, 11, 13, 15}.

Deci relatiile de determinare corespunzatoare lui a9 devin

a9 = f0 + f2 + f4 + f6 a9 = f1 + f3 + f5 + f7

a9 = f8 + f10 + f12 + f14 a9 = f9 + f11 + f13 + f15

Daca intervine o eroare ın timpul transmiterii cuvantului - cod f , va fi afectata osingura relatie de determinare, celelalte trei relatii dand valoarea corecta a lui a9.

Dupa ce s-a determinat valorile a6, a7, a8, a9, a10, a11, se trece la etapa a doua adecodificarii, scazand din cuvantul receptionat combinatia

a6x0x1 + a7x0x2 + a8x0x3 + a9x1x2 + a10x1x3 + a11x2x3

si aplicand cuvantului obtinut procedeul de corectare a erorilor pentru codul R−Mde ordinul r − 1 = 1.

6.4 Decodificarea codurilor RM(1,m)

Pentru cazul r = 1 se poate da si un alt algoritm de decodificare, extrem de eficient.El foloseste transformarea Hadamard pentru aflarea celui mai apropiat cuvant - cod.

Vom da initial cateva notiuni ajutatoare.

Page 414: Criptografie complet

70 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

Definitia 6.3 Fie Am,n, Bp,q doua matrici. Se defineste produsul Kronecker A×Bca fiind matricea Cmp,nq = [aijB].

Acest produs este evident asociativ si necomutativ; el va fi utilizat pe larg si ın alteprelegeri.

Exemplul 6.6 Fie H =

(1 11 −1

), I2 =

(1 00 1

). Atunci

I2 ×H =

1 1 0 01 −1 0 00 0 1 10 0 1 −1

, H × I2 =

1 0 1 00 1 0 11 0 −1 00 1 0 −1

.

Se considera sirul de matrici definit

H im = I2m−i ×H × I2i−1 , i = 1, 2, . . .

unde H este matricea (Hadamard) definita ın Exemplul 6.6.

Exemplul 6.7 Fie m = 2. AtunciH1

2 = I2 ×H × I1 = I2 ×H, H22 = I1 ×H × I2 = H × I2.

Exemplul 6.8 Fie m = 3. Atunci:

H13 = I4 ×H × I1 =

1 1 0 0 0 0 0 01 −1 0 0 0 0 0 00 0 1 1 0 0 0 00 0 1 −1 0 0 0 00 0 0 0 1 1 0 00 0 0 0 1 −1 0 00 0 0 0 0 0 1 10 0 0 0 0 0 1 −1

,

H23 = I2 ×H × I2 =

1 0 1 0 0 0 0 00 1 0 1 0 0 0 01 0 −1 0 0 0 0 00 1 0 −1 0 0 0 00 0 0 0 1 0 1 00 0 0 0 0 1 0 10 0 0 0 1 0 −1 00 0 0 0 0 1 0 −1

,

Page 415: Criptografie complet

6.4. DECODIFICAREA CODURILOR RM(1,M) 71

H33 = I1 ×H × I4 =

1 0 0 0 1 0 0 00 1 0 0 0 1 0 00 0 1 0 0 0 1 00 0 0 1 0 0 0 11 0 0 0 −1 0 0 00 1 0 0 0 −1 0 00 0 1 0 0 0 −1 00 0 0 1 0 0 0 −1

.

Modalitatea recursiva de constructie a codurilorRM(r,m) (Prelegerea V , sectiunea5.2) sugereaza existenta unui algoritm similar de decodificare. Acest algoritm existanumai pentru RM(1,m) si ıl prezentam fara a demonstra corectitudinea lui.

Algoritm de decodificare a codurilor RM(1,m):

Fie a ∈ Zm2 cuvantul receptionat si G(1,m) matricea generatoare a codului.

1. Se ınlocuieste 0 cu −1 ın a; fie a′ noul cuvant;

2. Se calculeaza a1 = a′H1m, ai = ai−1H

im, 2 ≤ i ≤ m;

3. Se determina pozitia j a celei mai mari componente (ın valoare absoluta)a lui am.

Fie v(j) ∈ Zm2 reprezentarea binara a lui j (ıncepand cu bitii cei mai

nesemnificativi). Cuvantul decodificat este:

(1, v(j)) daca a j - a componenta a lui am este pozitiva,

(0, v(j)) daca a j - a componenta a lui am este negativa.

Exemplul 6.9 Fie m = 3 si G(1, 3) matricea generatoare a codului RM(1, 3). Sapresupunem ca s-a receptionat cuvantul a = 10101011.

Primul pas al algoritmului transforma acest cuvant ına′ = (1,−1, 1,−1, 1,−1, 1, 1). Se calculeaza apoi:

a1 = a′H13 = (0, 2, 0, 2, 0, 2, 2, 0)

a2 = a1H23 = (0, 4, 0, 0, 2, 2,−2, 2)

a3 = a2H33 = (2, 6,−2, 2,−2, 2, 2,−2).

Cea mai mare compomenta a lui a3 este 6 pe pozitia 1. Cum v(1) = 100 si 6 > 0,rezulta ca a fost trimis cuvantul 1100.

Daca s-a receptionat cuvantul a = 10001111, atunci a′ = (1,−1,−1,−1, 1, 1,1, 1) si

a1 = a′H13 = (0, 2,−2, 0, 2, 0, 2, 0),

a2 = a1H23 = (−2, 2, 2, 2, 4, 0, 0, 0),

a3 = a2H33 = (2, 2, 2, 2,−6, 2, 2, 2).

Cea mai mare componenta a lui a3 este −6 aflata pe pozitia 4. Deoarece v(4) = 001si −6 < 0, mesajul transmis este 0001.

Page 416: Criptografie complet

72 PRELEGEREA 6. DECODIFICAREA CODURILOR REED - MULLER

6.5 Exercitii

6.1 In codul Hamming (15, 11) sa se decodifice mesajele111100000000000, 011101000111001.

6.2 Demonstrati Lema 6.1.

6.3 Sa se decodifice cuvantul 01111100 ın RM(1, 3). Verificati corectitudinea de-codificarii.

6.4 Sa se decodifice 0111100 ın RM(2, 3).

6.5 Sa se scrie toate relatiile de determinare din codul RM(2, 4).

6.6 Aceeasi problema pentru codul RM(1, 3).

6.7 Sa se decodifice 1111111011111111 ın RM(2, 4).

6.8 Aratati ca orice hiperplan L ın geometria euclidiana peste Zm2 are drept com-

plement Zm2 \ L tot un hiperplan.

6.9 In codul RM(1, 3), sa se decodifice cuvintele01011110, 01100111, 00010100, 11001110.

6.10 Sa se calculeze H i4 pentru i = 1, 2, 3, 4.

6.11 In codul RM(1, 4), sa se decodifice cuvintele:1011011001101001, 1111000001011111.

Page 417: Criptografie complet

Prelegerea 7

Alte clase de coduri elementare

Inafara codurilor Hamming si Reed - Muller se pot construi si alte clase de coduricu proprietati remarcabile. Vom prezenta numai cateva astfel de coduri - nu toateliniare - punand ın evidenta la fiecare clasa caracteristicile sale specifice.

7.1 Codurile MacDonald

Fie An,k un cod liniar peste Z2 si G matricea sa generatoare.Vom nota cu Mk,2k−1 o matrice care contine toate coloanele nenule posibile cu

k elemente care se pot construi peste Z2. Ordinea acestor coloane este arbitraradar fixata. Coloana i din matricea M se va numi coloana de tip i. Pentru usurintanotatiei se admite asertiunea ca tipul de coloana i este reprezentarea ın binar anumarului zecimal i.

Deoarece codul An,k nu este influentat de operatiile elementare efectuate asupracoloanelor din matricea generatoare (ın particular permutarea de coloane), este sufi-cient sa definim acest cod indicand doar numarul coloanelor de fiecare tip care intraın componenta matricii generatoare.

Se obtine astfel reprezentarea modulara a codului An,k:

N = (n1, n2, . . . , n2k−1) (1)

unde ni este numarul coloanelor de tip i care apar (sau nu) ın matricea G,

2k−1∑

i=1

ni = n.

Exemplul 7.1 Sa luam k = 2, n = 3 si matricea generatoare G =

(0 1 01 1 1

)

Avem matricea M =

(0 1 11 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 tipul3).

73

Page 418: Criptografie complet

74 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE

Sa introducem matricea

K2k−1,n = MT G (2)

K are drept linii toate cuvintele nenule ale codului An,k.

Fie de asemenea matricea patrata simetrica:

C2k−1,2k−1 = MT M (3)

Astfel, pentru Exemplul 7.1, K =

1 0 10 1 01 1 1

, C =

1 1 10 1 01 0 1

.

Teorema 7.1 O lista a ponderilor cuvintelor codului An,k se obtine ınmultind (ınR) matricea de reprezentare modulara cu matricea C:

W2k−1 = NC (4)

Demonstratie: Scriem matricea M sub forma unei matrici linie

M = (v1,v2, . . . ,v2k−1)

unde vi (1 ≤ i ≤ 2k − 1) este coloana de tip i din matricea M .Matricea generatoare corespunzatoare reprezentarii modulare N = (n1, n2, . . . ,

n2k−1) este G = (v1, . . . ,v1︸ ︷︷ ︸n1

,v2, . . . ,v2︸ ︷︷ ︸n2

, . . . ,v2k−1, . . . ,v2k−1︸ ︷︷ ︸n

2k−1

)

unde n1 + n2 + . . . + n2k−1 = n. Se obtine deci

C =

v1

v2...

v2k−1

(v1, . . . ,v2k−1) =

v1v1 v1v2 . . . v1v2k−1

v2v1 v2v2 . . . v2v2k−1...

v2k−1v1 v2k−1v2 . . . v2k−1v2k−1

,

unde produsele scalare sunt efectuate ın Z2.Acum, W = (w1, w2, . . . , w2k−1) = (n1, n2, . . . , n2k−1)C, ınmultire efectuata ın

R.Prin identificare rezulta wi = n1v1vi + n2v2vi + . . . + n2k−1v2k−1vi.Deoarece toate produsele scalare vjvi sunt 0 sau 1, wi este un numar natural.

El este chiar ponderea cuvantului cod care ocupa linia i ın matricea K. Intr-adevar,avem

K2k−1,n =

v1v1 v1v1 . . . v1v2k−1

v2v1 v2v1 . . . v2v2k−1...

v2k−1v1 v2k−1v1 . . . v2k−1v2k−1

,

produsele scalare fiind ın Z2.Deci ponderea cuvantului situat pe linia i ın matricea K este:viv1 + . . . + viv1︸ ︷︷ ︸

n1

+ . . .+viv2k−1 + . . . + viv2k−1︸ ︷︷ ︸n

2k−1

= n1viv1 + . . .+n2k−1viv2k−1.

2

Ne punem problema de a determina un cod atunci cand se da vectorul ponderilorcuvintelor sale (deci si ponderea minima, adica distanta Hamming). Formal, din (4)se obtine

Page 419: Criptografie complet

7.1. CODURILE MACDONALD 75

N = WC−1 (5)

ınmultire 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 Cpe 0 cu −1 si ımpartind toate elementele cu 2k−1.

Demonstratie: I: Fiecare linie (deci si coloana) din C contine 1 pe 2k−1 pozitii. Doualinii (coloane) distincte din C au ın comun 1 ın 2k−2 pozitii.

Intr-adevar, liniile lui C - la care se adauga linia nula - formeaza un spatiu liniarcu 2k cuvinte binare. Sa consideram submultimea liniilor care au 1 ın componentele

i si j. Ele formeaza un subspatiu liniar cu2k

22= 2k−2 elemente deoarece, factorizand

cu acest spatiu se obtin 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 fiecare linie din C de 2k−1 ori se rationeaza similar.II: In aceste conditii, putem scrie

C2 =

2k−1 2k−2 . . . 2k−2

2k−2 2k−1 . . . 2k−2

...2k−2 2k−2 . . . 2k−1

= 2k−2(I + J)

unde I este matricea unitate iar J este matricea patrata cu toate elementeleegale cu 1, ambele de ordin 2k.

Se mai observa ca CJ = 2k−1J . Deci

I =1

2k−1(2C2 − 2k−1J) =

1

2k−1(2C2 − CJ) = C

2C − J

2k−1= CC−1.

De aici rezulta ca C este inversabila si C−1 =1

2k−1(2C − J). 2

Exemplul 7.2 Sa luam k = 3, n = 5. Vom avea:

M =

0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1

, C = MT M =

1 0 1 0 1 0 10 1 1 0 0 1 11 1 0 0 1 1 00 0 0 1 1 1 11 0 1 1 0 1 00 1 1 1 1 0 01 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 10 1 0 1 00 0 1 0 1

, el are reprezenta-

rea modulara N = (1, 1, 0, 1, 1, 1, 0). Vectorul ponderilor cuvintelor - cod este

Page 420: Criptografie complet

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 10 1 0 1 00 1 1 1 11 0 0 1 11 0 1 1 01 1 0 0 11 1 1 0 0

.

Sa determinam acum reprezentarea modulara a unui cod liniar binar ın care toatecuvintele - cod au aceeasi pondere w (si deci distanta minima va fi d = w). Vomavea prin ipoteza W = (w,w, . . . , w︸ ︷︷ ︸

2k−1

).

Dupa cum am remarcat ın demonstratia Teoremei 7.2, 1 apare pe fiecare liniedin C ın 2k−1 pozitii. Rezulta (Teorema 7.2) ca ın C−1, 1 va apare pe fiecare linie(coloana) tot ın 2k−1 pozitii, ın rest fiind −1. Deci

N = WC−1 = (w2−(k−1), . . . , w2−(k−1)

︸ ︷︷ ︸2k−1

)

Problema enuntata are solutie daca w se divide cu 2k−1; ın acest caz, reprezenta-rea modulara este de forma N = (r, r, . . . , r︸ ︷︷ ︸

2k−1

), adica fiecare tip de coloana apare ın

matricea generatoare de r = w · 2−(k−1) ori.

Plecand de la aceste considerente, McDonald a introdus o clasa de coduri pentrucare reprezentarea modulara este de forma 0i1j. Mai exact,

n d N2k − 1 2k−1 (1, 1, 1, . . . , 1)2k − 2 2k−1 − 1 (0, 1, 1, . . . , 1)2k − 3 2k−1 − 2 (0, 0, 1, . . . , 1). . . . . . . . .2k − 2u 2k−1 − 2u−1 (0, . . . , 0︸ ︷︷ ︸

2u−1

, 1, . . . , 1︸ ︷︷ ︸2k−2u

)

Aceste coduri au proprietatea ca prezinta o distanta minima foarte apropiata demarginea Plotkin.

Sa luam de exemplu al treilea cod din tabelul de sus. Reamintim, margineaPlotkin este

d ≤ nqk−1(q − 1)

qk − 1.

In cazul codului McDonald avem q = 2, n = 2k − 3, d = 2k−1 − 2, decinqk−1(q − 1)

qk − 1− d =

(2k − 3)2k−1

2k − 1− (2k−1 − 2) =

2k − 2

2k − 1< 1.

Page 421: Criptografie complet

7.2. CODURI DERIVATE DIN MATRICILE HADAMARD 77

7.2 Coduri derivate din matricile Hadamard

In prelegerea anterioara am folosit o matrice Hadamard pentru a construi un al-goritm de decodificare al codurilor RM(1,m). De fapt matricile Hadamard pot fiutilizate ın mod direct la constructia de coduri.

Definitia 7.1 Se numeste matrice Hadamard Hn o matrice patrata de ordinul n cuelemente 1 si −1, ale carei linii sunt ortogonale doua cate doua.

Teorema 7.3 Fiind data matricea Hadamard Hn, (n par) se poate construi un cod

de distanta minima d =n

2, format din 2n cuvinte de lungime n.

Demonstratie: In matriceaHn vom ınlocui 1 cu 0 si−1 cu 1. Vom nota v1,v2, . . . ,vn

vectorii care formeaza liniile noii matrici. Codul cautat este

C = {v1,v2, . . . ,vn,−v1,−v2, . . . ,−vn}.Acest cod (care nu este neaparat liniar) are 2n cuvinte de lungime n. Mai trebuiearatat ca distanta sa minima este n/2.

Deoarece v si −v difera ın toate componentele, distanta Hamming dintre ele esten. Pe de-alta parte, din proprietatea matricilor Hadamard rezulta

vi(±vj) = 0, ∀i, j ∈ {1, . . . , n}, i 6= j.

Pentru ca aceasta egalitate sa fie adevarata, este necesar ca vi si vj sa coincida ınjumatate din componente si sa difere ın cealalta jumatate (atentie, calculele se fac

ın R, nu ın Z2 !). Rezulta ca distanta Hamming dintre cele doua cuvinte esten

2.

Deci d =n

2. 2

Pentru n = 32 un astfel de cod a fost folosit de programul spatial Mariner.

Teorema 7.4 Daca Hn este matrice Hadamard, atunci H2n =

(Hn Hn

Hn −Hn

)

este matrice Hadamard.

Demonstratie: Evident, H2n este o matrice 2n × 2n cu elemente ±1. Mai trebuiearatat ca liniile sale sunt ortogonale doua cate doua.

Avem: [vi,vi][vi,−vi] = vivi − vivi = n− n = 0.De asemenea, pentru i 6= j, [vi,vi][vj,±vj] = [vi,vj]± [vi,vj] = 0± 0 = 0. 2

Pe baza acestei teoreme, putem construi coduri Hadamard a caror distanta safie oricat de mare. Este suficient sa gasim o matrice Hadamard initiala, pe care(folosind Teorema 7.4) sa o ”dilatam” ulterior cat este nevoie. O astfel de matriceHadamard initiala a fost data ın Prelegerea anterioara: ea este

H2 =

(1 11 −1

).

Pentru constructia altor matrici (si coduri) Hadamard mai generale au fost elaboratediverse tehnici. Una din cele mai cunoscute este cea a lui Paley si Hall.

Page 422: Criptografie complet

78 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE

Definitia 7.2 O matrice patrata C de ordin n cu 0 pe diagonala principala si ±1ınafara ei, astfel ca CCT = (n−1)In se numeste matrice de conjunctura (conferencematrix).

Exemplul 7.3 Matricile

(0 11 0

),

0 1 1 1−1 0 −1 1−1 1 0 −1−1 −1 1 0

sunt matrici de conjunctura.

Fie q = pr cu p numar prim impar, r ≥ 1. Pe Zq definim functia χ astfel:

χ(x) =

0 daca x = 01 daca x este un patrat nenul

−1 ın rest

Vom nota elementele lui Zq cu a0, a1, . . . , aq−1 unde a0 = 0, cu In matricea unitatede ordin n si cu Jn matricea patrata de ordin n cu toate elementele egale cu 1.

Teorema 7.5 Matricea Paley Sq = (sij) de ordin q definita prin sij = χ(ai − aj),0 ≤ i, j < q are urmatoarele proprietati:

1. SqJq = JqSq = 0;

2. SqSTq = qIq − Jq;

3. STq = (−1)

q−12 Sq.

Demonstratie: Este lasata ca exercitiu.

Exemplul 7.4 Pentru q = 3, matricea Paley este S3 =

0 −1 11 0 −1

−1 1 0

,

iar pentru q = 5, S5 =

0 1 −1 −1 11 0 1 −1 −1

−1 1 0 1 −1−1 −1 1 0 1

1 −1 −1 1 0

.

De remarcat ca ST3 = −S3, ST

5 = S5.

Teorema 7.6 Daca q = pr (p numar prim impar, r ≥ 1) astfel ıncat q ≡ 3 (mod 4),atunci exista o matrice Hadamard de ordin q + 1.

Demonstratie: 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

Page 423: Criptografie complet

7.3. CODURI PRODUS 79

Se verifica faptul ca C este o matrice de conjunctura cu proprietatea CT = −C(q ≡ 3 mod 4 conduce la relatia ST = −S). Fie H = Iq+1 + C.

Avem HHT = (Iq+1 + C)(Iq+1 + C)T = (Iq+1 + C)(Iq+1 + CT ) = Iq+1 + C +CT +CCT = Iq+1 + qIq+1 = (q +1)Iq+1, deci orice doua linii distincte ale lui H suntortogonale. 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 fi definit cu 0,1 si cu liniile matricilor1

2(S+In+Jn),

1

2(−S+In+Jn).

Acesta este un cod care contine 2n + 2 cuvinte - cod de lungime n si are distanta

d =n− 1

2.

Exemplul 7.5 Pentru n = 9 = 32, codul este format din cele 20 cuvinte careformeaza linile matricii

0 0 0 0 0 0 0 0 0J P 2 PP J P 2

P 2 P JI J − P 2 J − P

J − P I J − P 2

J − P 2 J − P I1 1 1 1 1 1 1 1 1

unde P =

0 1 00 0 11 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 = n1n2. In loc sa scriem cuvintele sale subforma de linii de lungime n, le putem reprezenta ca matrici cu n1 linii si n2 coloane.Un mod simplu de a realiza acest lucru este de a scrie cuvantul cod a = a0a1 . . . an−1

ca o matrice X = [xij], 0 ≤ i ≤ n1 − 1, 0 ≤ j ≤ n2 − 1, unde xij = ain2+j. Aceastava fi numita scrierea canonica.

Definitia 7.3 Fie A1, A2 doua coduri liniare de lungime n1 respectiv n2. Se cons-truieste codul A de lungime n1n2 ca mai sus (cu scrierea canonica). Spunem caA = A1 × A2 este codul produs al lui A1 cu A2 daca si numai daca A consta dintoate cuvintele - cod ın care reprezentarea matriciala verifica proprietatile:

• Fiecare coloana a unei matrici este un cuvant - cod din A1;

• Fiecare linie a unei matrici este un cuvant - cod din A2.

De remarcat ca prin permutarea lui A1 cu A2 se obtine un cod echivalent.

Page 424: Criptografie complet

80 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE

Teorema 7.7 Daca A1 este un (n1, k1) - cod liniar si A2 este un (n2, k2) - codliniar, atunci A1 × A2 este un (n1n2, k1k2) - cod liniar.

Demonstratie: Fie Gi, i = 1, 2 matricile generatoare ale celor doua coduri, pe carele presupunem ın forma esalonat canonica, deci Gi = [Iki

Bni−ki]. Vom nota cu

g(1)i (1 ≤ i ≤ k1) respectiv g

(2)i (1 ≤ i ≤ k2) liniile celor doua matrici.

Definim matricile Xij (1 ≤ i < k1, 1 ≤ j < k2) de dimensiune n1 × n2, astfel:

• Primele k1 linii sunt 0 cu exceptia liniei i care este g(2)j ;

• Primele k2 coloane sunt 0 cu exceptia coloanei j care este g(1)i

T.

• Pentru k > k1, linia k este g(1)ik g

(2)j ;

• Pentru k > k2, coloana k este g(2)jk g

(1)i

T.

Schematic, o astfel de matrice arata astfel:

Xij =

0 . . . 0 0 . . . 0. . . . . . . . . . . . . . . . . .

1 x x x. . . . . . . . . . . . . . . . . .0 . . . 0 0 . . . 00 x 0. . . x . . . X0 x 0

Evident, Xij reprezinta un cuvant - cod din A1×A2 si orice alt cuvant - cod esteo combinatie liniara formata din aceste matrici. Deci Xij, 1 ≤ i ≤ k1, 1 ≤ j ≤ k2

formeaza o baza a codului A1 × A2.Submatricile formate din primele k1 linii si k2 coloane din Xij formeaza multimea

mesajelor de informatie. 2

Exemplul 7.6 Sa consideram codurile liniare binare A1, A2 generate de matricile

G1 =

(1 0 10 1 1

)respectiv G2 =

(1 0 10 1 0

).

Deci n1 = n2 = 3, k1 = k2 = 2. Sunt 4 matrici Xij, toate de dimensiune 3× 3:

X11 =

1 0 10 0 01 0 1

X12 =

0 1 00 0 00 1 0

X21 =

0 0 01 0 11 0 1

X22 =

0 0 00 1 00 1 0

.

Sa consideram mesajul de informatie 1011 pe care ıl asezam sub forma unei matrici

2× 2 :

(1 01 1

). Matricea - cod va fi

Page 425: Criptografie complet

7.3. CODURI PRODUS 81

X11 + X21 + X22 =

1 0 10 0 01 0 1

+

0 0 01 0 11 0 1

+

0 0 00 1 00 1 0

=

1 0 11 1 10 1 0

.

Se observa ca liniile sunt cuvinte - cod din A2, iar coloanele sunt cuvinte - coddin A1.

Propozitia 7.1 Matricea generatoare a codului produs A1 ×A2 este G1 ×G2 undeG1 si G2 sunt matricile generatoare ale celor doua coduri, iar ′′×′′ este produsulKronecker.

Demonstratie: Fie (n1, k1), (n2, k2) cele doua coduri, cu matricile generatoare G1

respectiv G2, si sa consideram matricea G1 ×G2 obtinuta prin produsul Kronecker(Prelegerea 6, Definitia 6.3). Daca se ia linia k2i + j din aceasta matrice si sereprezinta sub forma canonica ca o matrice n1×n2, se obtine exact matricea Xij dinconstructia Teoremei 7.7. Cum Xij reprezinta o baza pentru codul A1×A2, rezultaca G1 ×G2 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 A1 × A2 din Exemplul 7.6este:

G = G1 ×G2 =

(G2 0 G2

0 G2 G2

)=

1 0 1 0 0 0 1 0 10 1 0 0 0 0 0 1 00 0 0 1 0 1 1 0 10 0 0 0 1 0 0 1 0

.

Se observa imediat ca prin ”plierea” celor patru linii din aceasta matrice se obtinmatricile Xij din Exemplul 7.6.

Sa consideram din nou mesajul de informatie 1011. Prin ınmultirea cu matriceaG se ajunge la cuvantul - cod 101111010 care - scris ca o matrice 3 × 3 - coincidecu rezultatul din Exemplul 7.6.

Teorema 7.8 Distanta codului A1×A2 este egala cu d1 ·d2 (d1 si d2 fiind distantelecodurilor A1 respectiv A2).

Demonstratie: Daca Ai are lungimea ni (i = 1, 2), sa consideram o matrice Xreprezentand un cuvant - cod nenul din A1 × A2 (am vazut ca asemenea cuvinteexista). Putem gasi deci cel putin o linie cu minim d2 elemente nenule. Fiecareastfel de element se afla pe o coloana cu minim d1 elemente nenule; deci matriceaX are minim d1 · d2 elemente nenule. 2

Exemplul 7.8 Cele doua coduri din Exemplul 7.6 au d1 = d2 = 2 (se gasesc imediatcuvintele - cod si se observa ca ponderea lor nenula minima este 2). Deci codul produsva avea distanta d = 2 · 2 = 4. De remarcat ca - desi A1 si A2 nu pot corecta erori,A1 × A2 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 fara fir si codificarea informatieipe CD - uri. Vom relua ulterior - pe larg - analiza acestor coduri.

Page 426: Criptografie complet

82 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE

7.4 Coduri optimal maximale

Fie multimea A ⊆ Znq . Se numeste diametrul multimii A numarul

d(A) = minx,y∈A

d(x,y), x 6= y.

De remarcat ca, daca A este cod liniar, atunci d(A) este chiar distanta minima acodului.

Definitia 7.4 A este multime optimala de distanta minima d daca:

• d(A) = d;

• ∀x ∈ Znq \ A, d(A ∪ {x}) < d.

Exemplul 7.9 In Z62 , urmatoarele multimi sunt optimale de distanta minima 3:

A = {000000, 010101, 101010, 111111}B = {000000, 101010, 011001, 000111, 110100, 111111}

Definitia 7.5 Se numeste multime optimala cardinal maximala de distanta d omultime optimala cu un numar maxim de elemente.

Vom nota acest numar cu a(n, d).

Exemplul 7.10 Multimile date ın Exemplul 7.9 sunt optimale dar nu cardinal ma-ximale pentru distanta 3. O multime optimala cardinal maximala din Z6

2 pentrud = 3 este:

C = {000000, 001011, 010101, 011110, 100110, 101101, 110011, 111000},deci a(6, 3) = 8.

Definitia 7.6 Un cod liniar A de distanta d este optimal daca A este multimeoptimala cardinal maximala de distanta d.

Spunem ca un astfel de cod satisface conditia max - min, deoarece are un numarmaxim de vectori aflati la distanta minima d.

Nu se cunosc algoritmi de constructie a unor astfel de coduri. In aceasta sectiunevom da cateva conditii necesare pentru codurile optimale.

Teorema 7.9 Intr-un cod optimal maximal A de distanta minima d (d < n),

a(n, d) ≤ q · a(n− 1, d).

Demonstratie: Putem presupune - fara a micsora generalitatea - ca primul caracteral codului este caracter de informatie.

Fie K multimea cuvintelor din A care au 0 pe prima componenta. Cum pe primacomponenta pot apare q caractere distincte, va rezulta

card(K) =a(n, d)

q.

Page 427: Criptografie complet

7.4. CODURI OPTIMAL MAXIMALE 83

K este un cod cu distanta d ın care toate cuvintele au 0 pe prima pozitie. Dacaeliminam aceasta componenta, se obtine un cod din Zn−1

q , tot de distanta d, cuacelasi numar de cuvinte. Acest cod nu este neaparat optim, deci conditia va fi

a(n− 1, d) ≥ a(n, d)

q

Mai trebuie facuta observatia ca a(n − 1, n − 1) = q pentru ca un cod cu repetitieeste optimal maximal de distanta minima egala cu lungimea cuvintelor - cod. 2

Corolarul 7.1 Daca j ≥ d, atunci qn−ja(j, d) ≥ a(n, d).

Demonstratie: Din Teorema 7.9 rezulta inegalitatile:

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 ınmultire se obtine qi ·a(n− i, d) ≥ a(n, d), dupa care se face notatia n− i = j.2

Teorema 7.10 Fie A un cod liniar optimal maximal de distanta minima d.

Daca n <qd

q − 1, atunci numarul simbolurilor de informatie verifica inegalitatea

k ≤ n− dq − 1

q − 1+ 1 + logqd.

Demonstratie: Deoarece A este cod liniar, numarul de simboluri de informatie va fidat de relatia a(n, d) = qk.

Rescriem inegalitatea lui Plotkin sub forma d(qk − 1) ≤ nqk−1(q − 1), sauqk−1(dq + n− nq) ≤ n.

Deoarece - din ipoteza - dq + n− nq > 0, avem qk ≤ dq

dq + n− nq, sau

a(n, d) ≤ dq

dq + n− nq.

Fiedq − 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) ≤ qn−ia(i, d) ≤ qn− dq−1q−1

+f

1 + (q − 1)fqd

Dezvoltand ın serie Taylor, qf ≤ 1 + (q − 1)f (f < 1) si deci

a(n, d) ≤ qn− dq−1q−1 qd,

sau qk ≤ qn− dq−1q−1 qd, de unde - prin logaritmare - se obtine relatia din enunt. 2

Page 428: Criptografie complet

84 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE

7.5 Exercitii

7.1 Sa se construiasca vectorul ponderilor pentru codurile Hamming (7, 4) siRM(1, 3).

7.2 Folosind vectorul ponderilor, sa se construiasca numaratorul de ponderi al unuicod liniar.

7.3 Sa se construiasca matricile generatoare si matricile K pentru codurileMcDonald 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 Hn este o matrice Hadamard, atunci HnHTn = nIn.

7.6 Sa se construiasca o matrice Hadamard de ordin 12.

7.7 Sa se arate ca matricea Hadamard H8 genereaza (8, 4) - codul Hamming binarextins.

7.8 Sa se construiasca codurile produs pentru codul cu repetitie de lungime n (A1)si codul cu repetitie de lungime p (A2).

7.9 Sa se construiasca matricea generatoare a codului produs A1×A2 unde A1 = A2

este codul Hamming (7, 4).

7.10 Aceeasi problema pentru codul RM(1, 3).

7.11 Demonstrati Teorema 7.5.

7.12 Folosind matricile Paley, sa se construiasca codurile Hadamard de ordin 5 sirespectiv 7.

7.13 Sa se arate ca un cod binar liniar optimal maximal de distanta minima d arecel putin 2d− 1− log2d simboluri de control.

Page 429: Criptografie complet

Prelegerea 8

Circuite liniare si extensii Galois

8.1 Circuite liniare pentru operatii elementare

In aceasta sectiune presupunem ca toate calculele se realizeaza ın Zq (q numar prim).

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

• sumator - este un conector cu cel putin doua intrari si o iesire. Efectul esteacela de a scoate suma modulo q a elementelor aflate la intrare. Operatia seexecuta instantaneu. Sumatorul se noteaza astfel:

½¼

¾»-

?

-+

• Multiplicator - este un conector cu o singura intrare si o iesire unde se obtinerezultatul ınmultirii cu c ∈ Zq a elementului de la intrare. Operatia se executa(de asemenea) instantaneu. Notatie:

½¼

¾»- -c

• Element de ınmagazinare - Este un registru buffer cu o intrare si o iesire; efectuleste ıntarzierea cu un tact a intrarii: elementul a ∈ Zq intra ın momentul k siiese ın momentul k + 1. Notatie:

- -

Aceste trei tipuri de conectori se pot grupa arbitrar - folosind eventual si noduriobisnuite. Utilizarea practica revine la obtinerea de circuite liniare care pot realizaautomat operatii uzuale cu polinoame: adunari, scaderi, ınmultiri si ımpartiri.

In cele ce urmeaza, vom identifica un vector cu n + 1 componentea = (a0, a1, . . . , an)

cu polinomul de gradul n cu o variabilaa(x) = a0 + a1X + . . . + anXn.

85

Page 430: Criptografie complet

86 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS

In cursul transmisiei mesajului a, ordinea de prelucrare (transmisie) se face dupaputerile descrescatoare ale lui X; deci, sensul de circulatie a semnalelor va fi:

a0 a1 . . . an −→

8.1.1 Constructia unor circuite liniare uzuale

A Circuit de ınmultire cu un polinom.

Fie h(X) = b0+b1X+. . .+bnXn un polinom fixat si a(X) = a0+a1X+. . .+akX

k

un polinom arbitrar. Coeficientii ambelor polinoame pot fi luati ıntr-un inel arbitrar(din considerente pur aplicative, acesta este de obicei Zq, dar constructiile ramanvalabile ın general).

Un circuit de ınmultire cu h(X) este:

Figura 8.1:

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

n n n

- - - - - -66

s6s

6s

6-

6

- -

6

-

6

-

a(X)

bn bn−1 b1 b0

+ + +. . .

. . .

Initial elementele de ınmagazinare contin 0; coeficientii polinomului a(X) intraın stanga jos - dupa puterile descrescatoare ale lui X - cate unul la un tact, iarcoeficientii produsului ies ın dreapta sus. Circuitul functioneaza n+k+1 tacti; dupak + 1 tacti, la intrare se introduc zerouri ın cei n tacti ramasi, pına ce elementele deınmagazinare contin din nou numai 0.

De remarcat ca un element de ınmagazinare functioneaza dupa principiile uneivariabile de memorie (aducerea unei valori face sa dispara vechea valoare din locatie).

Circuitul lucreaza dupa formula de ınmultire obisnuita:a(X)h(X) = a0b0 + (a0b1 + a1b0)X + . . . + (ak−1bn + akbn−1)X

k+n−1 + akbnXn+k

Exemplul 8.1 Sa luam polinomul h(X) = X3 − 5X2 + 2 ∈ Z[X] (vectorul core-spunzator este h = (2, 0,−5, 1)). Circuitul de ınmultire cu h(X) va fi:

½¼

¾»

½¼

¾»±°²¯

±°²¯

- - - -66

6

s s

- - -

6 6

−5 2

+ +

De remarcat ca multiplicarea cu 1 se face prin arc simplu (fara conector), iarmultiplicarea cu 0 revine la suprimarea arcului. In cazul operatiilor cu polinoamedin Z2[X], toti multiplicatorii se reduc la aceste doua cazuri.

Page 431: Criptografie complet

8.1. CIRCUITE LINIARE PENTRU OPERATII ELEMENTARE 87

Daca dorim sa ınmultim h(X) cu polinomul a(X) = 2X + 8 (vector a = (8, 2)),circuitul liniar va functiona 5 tacti (pana cand toate elementele de ınmagazinarerevin la 0); comportarea sa este relatata de tabelul:

Nr. tact Intrare Inmagazinare Iesire0 0 0 0 0 01 2 0 0 0 22 8 2 0 0 −23 0 8 2 0 −404 0 0 8 2 45 0 0 0 8 166 0 0 0 0 0

Deci, polinomul produs este 2X4 − 2X3 − 40X2 + 4X + 16; sau - ın termeni devectori, (16, 4,−40,−2, 2).

Aceeasi operatie de ınmultire este realizata si de circuitul liniar:

Figura 8.2:

±°²¯

±°²¯

±°²¯

±°²¯

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

- -

66 6 6 6

s s s s

6- - - - - - - - -

6 6 6 6

b0 b1 b2 bn−1 bn

+ + + +. . .

. . .

Exemplul 8.2 Circuitul liniar care realizeaza ınmultirea cu polinomulh(X) = 1 + X + X4 peste Z2 este

±°²¯

±°²¯

-

66

s

- - - - - - -

6

s

+ +

deoarece vectorul corespunzator polinomului h(X) este h = (1, 1, 0, 0, 1).

B. Fie h(X) = h0 + h1X + . . . + hnXn si g(X) = g0 + g1X + . . . + gnXn doua

polinoame fixate. Un circuit liniar care sa realizeze operatia

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

pentru doua polinoame arbitrare a(X), b(X), este:

Page 432: Criptografie complet

88 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS

±°²¯

±°²¯

±°²¯

±°²¯

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»- -

?

- -66s6s6s

6 6 6 6

???s s s

? ? ? ?- - - - - - - -

b(X)

a(X)

g0 g1 gn−1 gn

h0 h1 hn−1 hn

++++

. . .

. . .

. . .

De remarcat ca polinoamele g(X) si h(X) pot avea grade diferite; ın acest caz sealege n ca fiind gradul cel mai mare si se completeaza celalalt polinom cu coeficientinuli pana la gradul n.

Exemplul 8.3 Fie polinoamele g(X) = 1+X2, h(X) = X +X2 +X4 cu coeficientiın Z2; deci vectorii corespunzatori vor fi 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:

±°²¯

±°²¯

±°²¯

-?

?

s- - - - - - - -

-66 6s s

b(X)

a(X)

+ + +

C. Circuit liniar de ımpartire cu un polinom.

Fie polinomul (fixat) g(X) = g0 + g1X + . . . + gkXk, gk 6= 0. Un circuit liniar

care realizeaza ımpartirea unui polinom arbitrar a(X) = a0 + a1X + . . . + anXn lag(X) este:

Figura 8.3:

±°²¯

±°²¯

±°²¯

"!

"!

"!

"!

- - - - - - - -

6? ?

s

?

s6

¾¾?

-??

−g0 −g1 −gk−1 g−1k

a(X) + + +. . .

. . .

Initial, toate cele k elemente de ınmagazinare contin 0. La intrare, timp den + 1 tacti se introduc coeficientii polinomului a(X) (ın ordinea descrescatoare aputerilor). In primii k tacti, iesirea va scoate numai 0. Primul coeficient nenulapare la iesire la momentul k + 1 si este ang

−1k (operatii ın inelul coeficientilor celor

doua polinoame) - coeficientul termenului Xn−k din cat.Pentru fiecare coeficient qj al catului, polinomul qjg(X) trebuie scazut din deım-

partit; aceasta operatie se realizeaza printr-un procedeu de conexiune inversa (feed-back).

Page 433: Criptografie complet

8.1. CIRCUITE LINIARE PENTRU OPERATII ELEMENTARE 89

Dupa momentul n+1 (cand au intrat toti coeficientii polinomului a(X)) la iesires-a obtinut catul q(X) al ımpartirii la g(X), iar ın elementele de ınmagazinare segasesc coeficientii restului.

Exemplul 8.4 Un circuit liniar de ımpartire (peste Q) la polinomul g(X) = 2 + Xeste:

½¼

¾»

±°²¯

- - -

6¾ -

?

−2

+

Exemplul 8.5 Fie polinomul g(X) = 1 + X2 + X5 + X6 ∈ Z2[X]. Circuitul carerealizeaza ımpartirea este:

±°²¯

±°²¯

±°²¯

- - - - - - - - -6

¾? ?

s?s -

+++

Sa luam polinomul a(X) = 1 + X4 + X5 + X7 + X9 + X10 pe care sa-l ımpartim ınZ2 la polinomul g(X). Se obtine catul X4 + X si restul X5 + X3 + X + 1.

Circuitul functioneaza 11 tacti. Etapele prin care trece ın efectuarea acesteiımpartiri sunt reprezentate de tabelul urmator:

Nr. tact Intrare Elemente de ınmagazinare Iesire0 − 0 0 0 0 0 0 −1 1 1 0 0 0 0 0 02 1 1 1 0 0 0 0 03 0 0 1 1 0 0 0 04 1 1 0 1 1 0 0 05 0 0 1 0 1 1 0 06 1 1 0 1 0 1 1 07 1 0 1 1 1 0 0 18 0 0 0 1 1 1 0 09 0 0 0 0 1 1 1 0

10 0 1 0 1 0 1 0 111 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 ınordine inversa pe ultima coloana - reprezinta restul 1 + X + X3 + X5 respectiv catulX + X4 ımpartirii lui a(X) la g(X).

Page 434: Criptografie complet

90 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS

D. Circuitul liniar are realizeaza ınmultirea cu polinomul h(X) = h0 + h1X +. . . + hnXn urmata de ımpartirea la polinomul g(X) = g0 + g1X + . . . + gnX

n este:

½¼

¾»

±°²¯

±°²¯

±°²¯

±°²¯

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

- -66 6s 6s

6 6 6 6

- - - - - - - -6

6¾ -

?s¾

? ?s

? ? ?

−g0 −g1 −gn−1 g−1n

+ + + +

h0 h1 hn−1 hn

. . .

. . .

. . .

Cand gradele polinoamelor sunt diferite, se construieste ıntai 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 + X3, g(X) = 2 + X + X4 cucoeficienti ın Z3. Circuitul liniar care realizeaza ınmultirea cu h(X) si ımpartirea lag(X) este

±°²¯

±°²¯

±°²¯

¹¸

º·

-66s 6s

- - - - - - -

?

-

?

s

?

2

+ + +

Deoarece calculele se fac ın Z3,−2 = 1,−1 = 2, si 1−1 = 1.Pentru intrarea a(X) = 1 + 2X + 2X2, comportarea circuitului este urmatoarea:

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

ceea ce corespunde catului 2 + 2X si restului 2X2.De remarcat ca primul coeficient (de grad maxim) al catului este scos de circuit

cu o ıntarziere de grad(g(X))− grad(f(X)) = 1 tact.

Page 435: Criptografie complet

8.2. EXTENSII GALOIS 91

Exemplul 8.7 Un circuit liniar pentru ınmultirea cu h(X) = 1 − X2 + 2X4 siımpartirea la g(X) = 3− 2X + X2, ambele din Z[X], este:

±°²¯

±°²¯

±°²¯

½¼

¾»

½¼

¾»

½¼

¾»

½¼

¾»

-66s

6

- - - - - -

?

s -

?

? ?

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 00 0 −2 22 −12 −70 0 0 34 −2 −12

deci catul este 2X3 − 7X − 12 iar restul 34− 2X.De remarcat ca circuitul este lasat sa functioneze grad(h(X))− grad(f(X)) = 2

tacti ın plus (prin introducerea de zero-uri), pentru golirea elementelor de ınmagazi-nare necontrolate de ımpartitor.

8.2 Extensii Galois

Fie q un numar prim si g(X) = g0 + g1X + . . . + gnXn ∈ Zq[X]. Vom considera

algebra polinoamelor modulo g(X).Fiind dat un polinom oarecare din Zq[X], clasa sa de resturi modulo g(X) se

gaseste ımpartind polinomul respectiv cu g(X). Restul ımpartirii specifica clasa deresturi respectiva.

Doua polinoame carora le corespunde acelasi rest la ımpartirea cu g(X) suntechivalente, intrand ın aceeasi clasa de resturi modulo g(X).

Fiecare clasa de resturi modulo g(X) se reprezinta prin polinomul (unic) de gradstrict mai mic decat n, care apartine clasei respective. Toti acesti reprezentanti potfi considerati ca polinoame de gradul n− 1, avand eventual coeficienti nuli.

Vom nota cu {f(X)} clasa de resturi a polinomului f(X) modulo g(X). Decif(X) va corespunde unui vector (distinct) de lungime n, cu componente din Zq (princompletare eventual cu zerouri).

Operatiile ın algebra claselor de resturi sunt:

{a(X)}+ {b(X)} = {a(X) + b(X)}c{a(X)} = {ca(X)}, c ∈ Zq

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

Page 436: Criptografie complet

92 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS

toate calculele fiind facute modulo g(X).Evident, {0} = {g(X)}, unde {0} este polinomul de grad n−1 cu toti coeficientii

nuli (sau vectorul cu n componente zero). Vom nota {0} = 0.

Pentru un polinom s(X) ∈ Zq[X], clasa de resturi modulo g(X) se obtine foarteusor. Teorema ımpartirii 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 ımpartire definit ın Figura 8.3, ın care facem urma-toarele modificari (vezi Figura 8.4):

• Se neglijeaza intrarea si iesirea;

• La momentul initial elementele de ınmagazinare contin coeficientii unui poli-nom b(X) = b0 + b1X + . . . + bn−1X

n−1.

Figura 8.4:

b0 ±°²¯

b1 ±°²¯

bn−1

"!

"!

"!

"!

- - - - - -6

?s

?

¾?

?-

?s

?

−g0 −g1 −gn−1 g−1n

+ +

. . .

. . .

La urmatorul tact, ın elementele de ınmagazinare se obtin coeficientii polinomu-lui:

b′(X) = −g0g−1n bn−1 + (b0 − g1g

−1n bn−1)X + (b1 − g2g

−1n bn−1)X

2 + . . .+(bn−2 − gn−1g

−1n bn−1)X

n−1 == b0X + b1X

2 + . . . + bn−1Xn− bn−1X

n− g−1n bn−1(g0 + g1X + . . . + gn−1X

n−1) == Xb(X)− g−1

n bn−1g(X).

Daca notam α = {X} ({X} este clasa de resturi a polinomului X), din relatiade mai sus se obtine:

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

Deci circuitul de ımpartire cu polinomul g(X) poate fi utilizat pentru ınmultirea luib(α) cu α.

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

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

2. g este polinomul de grad minim care are pe α ca radacina.

Demonstratie:

Page 437: Criptografie complet

8.2. EXTENSII GALOIS 93

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

n = g0+g1{X}+. . .+gn{X}n = g0+g1{X}+. . .+gn{Xn} ={g0 + g1X + . . . + gnXn} = {g(X)} = 0.

2. Folosind acelasi rationament, se obtine pentru orice polinom f(X) cugrad(f(X)) < n, ca f(α) = {f(X)} 6= 0, deoarece toate polinoamele ne-identic nule de grad strict mai mic decat n apartin la clase de resturi distincte.2

Sa presupunem acum ca g(X) ∈ Zq[X] este un polinom ireductibil. ConformTeoremei 8.1, α = {X} este radacina a lui g(X). Acest element α poate fi consideratfie ca polinom de grad n− 1 (cu toti coeficientii nuli ınafara de cel al lui X), fie cavector cu n componente (0, 1, 0, . . . , 0).

Vom nota cu GF (qn) multimea vectorilor din Znq , sau - echivalent:

- multimea polinoamelor de grad n− 1 cu coeficienti ın Zq, sau- multimea claselor de resturi modulo polinomul g(X) ∈ Zq[X], ireductibilpeste Zq.GF (qn) se numeste extensia Galois de grad n a lui Zq.

Spunem ca GF (qn) se obtine prin adaugarea la Zq a unei radacini a polinomuluig(X) ∈ Zq[X] de grad n, ireductibil peste corpul de baza Zq.

Observatie: Procedeul de trecere de la Zq la GF (qn) este similar trecerii de lacorpul numerelor reale R la cel complex C, prin adaugarea radacinii i = {X} ınalgebra claselor de resturi modulo 1 + X2, ireductibil peste R. Putem consideramultimea C a numerelor complexe fie ca multimea polinoamelor de grad 2 − 1 =1, a + bi cu a, b ∈ R, fie ca multimea vectorilor (a, b) cu doua componente reale.

Daca polinomul g(X) ∈ Zq[X] este ireductibil peste Zq si primitiv, puterile luiα = {X} vor genera toate elementele lui GF (qn) \ {0} unde n = grad(g(X)). Acestlucru se poate realiza cu circuitul liniar din Figura 8.4, introducand la momentulinitial ın elementele de ınmagazinare coeficientii polinomului b(X) = 1 (adica vec-torul (1, 0, . . . , 0)). Conform celor observate mai sus, la momentul urmator se obtine{Xb(X)} = {X} = α, dupa care urmeaza pe rand α2, α3, . . .. Cum g(X) a fost alesprimitiv, el va genera toate elementele nenule din GF (qn).

Exemplul 8.8 Fie polinomul 1+X +X4 ireductibil peste Z2 si α = {X} ın algebraclaselor de resturi modulo 1+X+X4. Circuitul liniar care va genera toate elementelenenule din GF (24) este:

±°²¯

-6

¾

?

s- -

?- - -+

unde, la momentul initial, ın elementele de ınmagazinare este vectorul (1, 0, 0, 0).Conform Teoremei 8.1, α este o radacina a polinomului 1 + X + X4, adica

1 + α + α4 = 0.

Lasand circuitul sa functioneze, ın elementele de ınmagazinare se obtin toate ele-mentele lui GF (24), pe care le interpretam fie ca vectori cu patru componente pesteZ2, fie ca polinoame de gradul 3 ın α cu coeficienti ın Z2

Page 438: Criptografie complet

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 + X4 este primitiv, puterile lui α epuizand totivectorii nenuli din GF (24) = {0, α0, α, . . . , α14}.

Exemplul 8.9 Tabelul din exemplul precedent descrie operatia de ınmultire dinGF (24), generata de radacina α a polinomului primitiv 1 + X + X4. Daca s-aralege α ca radacina a altui polinom primitiv - de exemplu 1+X3 +X4, se va generatot GF (24), dar ıntr-o alta ordine. Lasam ca exercitiu aceasta generare.

In GF (24) se poate defini si operatia de adunare, ınsumand modulo 2 cei doioperanzi, pe componente. Astfel, daca reluam GF (24) generat ın Exemplul 8.8 deradacina polinomului 1 + X + X4, tabela de adunare va fi:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fie acum a(X) = a0 + a1X + . . . + ak−1Xk−1 ∈ Zq[X]. Valoarea a(α) se obtine

folosind circuitul de ımpartire dat ın Figura 8.3, cu urmatoarele observatii:

Page 439: Criptografie complet

8.2. EXTENSII GALOIS 95

• Se ignora iesirea;

• Coeficientii lui a(X) se introduc la intrare ın ordinea descrescatoare a puterilor;

• Initial, elementele de ınmagazinare contin valorile (0, 0, . . . , 0).

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

Exemplul 8.10 Fie α ∈ GF (24) element primitiv, solutie a ecuatiei 1+X+X4 = 0.Polinomul a(X) va avea atunci gradul maxim 3. Fie a(X) = a0+a1X+a2X

2+a3X3.

Sa construim un circuit liniar care sa efectueze a(α)α5.Folosind tabelul din Exemplul 8.8, avem:(a0 + a1α + a2α

2 + a3α3)α5 = a0α

5 + a1α6 + a2α

7 + a3α8 = a0(α + α2) + a1(α

2 +α3)+a2(1+α+α2)+a3(1+α2) = (a2+a3)+(a0+a2)α+(a0+a1+a3)α

2+(a1+a2)α3

Pentru acest polinom se va construi circuitul liniar:

a0 a1 a2 a3

±°²¯

±°²¯

±°²¯

±°²¯

-

6-

6

6

6 6 6

-

? -6¾6 6

6-

?¾ -

6-

? -¾+ + + +

La momentul initial, ın elementele de ınmagazinare se gasesc coeficientii lui a(α);dupa un tact, aici vor fi coeficientii polinomului a(α)α5.

Page 440: Criptografie complet

96 PRELEGEREA 8. CIRCUITE LINIARE SI EXTENSII GALOIS

8.3 Exercitii

8.1 Sa se realizeze circuite liniar (ın ambele modalitati de constructie) care saefectueze ınmultiri cu polinoamele:

h(X) = 1 + 2X + 3X2 + 4X3 ∈ Z[X]h(X) = 1 + 2X + X5 ∈ Z7[X]

8.2 Sa se reprezinte comportamentul circuitelor realizate anterior, la ınmultirea cupolinoamele:

a(X) = 2 + 5X + X3, a(X) = X −X3 − 2X4, a(X) = 0.

8.3 Se da cavantul g = (1, 0, 0,−1, 0, 1). Sa se realizeze circuitul de ınmultirecu polinomul corespunzator si sa se reprezinte comportamentul acestui circuit laınmultirea 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 + X3, h(X) = 1− 5X − 2X2 + 3X3;g(X) = −4X3 + X5 − 2X8, h(X) = X2 + 2X4 + X6;g(X) = X −X3 + 3X4, h(X) = 2X3 + X5 + X9.

8.5 Sa se faca ımpartirea ın Q[X] la polinomul g(X) = X2−2X+1 a polinoamelora(X) = X5 − 4X3 − 2X + 5, a(X) = X + 7.

8.6 Aceeasi problema pentru polinoamele g(X) = 2X−1 si respectiv a(X) = X3−3.(1) : In Q[X];(2) : In Z3[X].

8.7 Sa realizeze un circuit care sa efectueze (ın Q) ınmultirea cu polinomulg(X) = 1− 2X + X3 si ımpartirea cu polinomul h(X) = g(X).

8.8 Aceeasi problema pentru polinoamele:g(X) = X − 2X3 −X4, h(X) = 2 + X + X3 ın Z5[X];g(X) = −1 + X −X6, h(X) = X2 − 4X3 − 2X5 + 3X7 ın Z11[X].

8.9 Sa se rezolve problema enuntata ın Exemplul 8.9.

8.10 Sa se genereze toate puterile lui α, radacina a polinomului 1 + X2 + X5 ∈Z2[X] si 1 + X + X3 ∈ Z3[X].

8.11 Folosind elementele din Exemplul 8.10 sa se construiasca circuite de generarepentru a(α)α, a(α)α2 si a(α)α7.

8.12 Sa se construiasca circuite de generare ın GF (25) pentru a(α) si a(α)α10,unde α este radacina a polinomului 1 + X2 + X5 ∈ Z2[X].

Page 441: Criptografie complet

Prelegerea 9

Coduri ciclice

9.1 Relatii de recurenta liniara

Teorema 9.1 Fie q prim si f(X) ∈ Zq[X], grad(f(X) = n. In algebra poli-noamelor modulo f(X), fie I un ideal si g(X) polinomul de grad minim a caruiclasa de resturi apartine lui I : {g(X)} ∈ I. Atunci:

1. {s(X)} ∈ I ⇐⇒ g(X)|s(X);

2. g(X)|f(X).

Demonstratie: (1): Fie {s(X)} ∈ I. Folosind identitatea ımpartirii, avems(X) = b(X)g(X) + r(X), grad(r(X)) < grad(g(X)).

Trecand la clasele de resturi respective, se obtine {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 deresturi apartine 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 ımpartirea polinomului f(X) cu g(X) se obtinef(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 unpolinom 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 aceldivizor.

g(X) se numeste generatorul idealului I si scriem I = ({g(X)}).Demonstratie: Fie h(X) un polinom de grad minim cu {h(X)} ∈ I; vom nota

g(X) = h−1n h(X) unde hn este coeficientul termenului de grad maxim din polinomul

h(X)).Sa presupunem ca g(X), g′(X) sunt doua astfel de polinoame de grad minim,

normate, ale caror clase de resturi sunt ın I. Conform Teoremei 9.1, g(X) si g′(X)

97

Page 442: Criptografie complet

98 PRELEGEREA 9. CODURI CICLICE

se divid unul pe altul si - avand acelasi grad - difera printr-o constanta. Polinoamelefiind normate, aceasta constanta este 1. Deci g(X) = g′(X).

Reciproc, fie g(X) un divizor normat al polinomului f(X) si ({g(X)}) idealulgenerat 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) ∈ Zq[X], normat, cu grad(f(X)) = nsi fie f(X) = g(X)h(X). Daca grad(h(X)) = k, atunci ın algebra polinoamelormodulo f(X), idealul ({g(X)}) are dimensiunea k.

Demonstratie: Sa observam ca vectorii (asociati polinoamelor)

{g(X)}, {Xg(X)}, . . . , {Xk−1g(X)}sunt liniar independenti. Intr-adevar, pentru orice k elemente c0, . . . , ck−1 ∈ Zq, nutoate nule, avemc0{g(X)}+c1{Xg(X)}+ . . .+ck−1{Xk−1} = {(c0 +c1X + . . .+ck−1X

k−1)g(X)} 6= 0deoarece s-a obtinut un polinom de grad cel mult n− k + k − 1 = n− 1 < n.In acelasi timp, pentru orice {s(X)} ∈ ({g(X)}) avem

{s(X)} = {a(X)g(X)} = {(a0 + a1X + . . . + ak−1Xk−1)g(X)} = a0{g(X)} +

a1{Xg(X)} + . . . + ak−1{Xk−1g(X)}, unde unii din coeficientii a0, a1, . . . , ak−1 potfi nuli.

Deci vectorii de sus formeaza o baza a subspatiului liniar ({g(X)}), care are decidimensiunea k. 2

Teorema 9.4 Fie f(X) ∈ Zq[X] un polinom normat si f(X) = g(X)h(X). Inalgebra polinoamelor modulo f(X),

{a(X)} ∈ ({g(X)}) ⇐⇒ {a(X)} este ın spatiul nul al idealului ({h(X)}).Demonstratie: ′′ =⇒′′: Fie {a(X) ∈ ({g(X)}), deci {a(X)} = {v(X)g(X)}.

Fie de asemenea {b(X)} ∈ ({h(X)}), deci {b(X)} ∈ {w(X)h(X)}. Vom avea{a(X)}{b(X)} = {v(x)w(X)g(X)h(X)} = {v(X)w(X)f(X)} =

= {v(X)w(X)}{f(X)} = 0.′′ ⇐=′′: Sa consideram {a(X)} ın spatiul nul al idealului ({h(X)}). Atunci

{a(X)}{h(X)} = 0, adica a(X)h(X) = c(X)f(X) = c(X)g(X)h(X) de underezulta a(X) = c(X)g(X). Deci {a(X)} ∈ ({g(X)}). 2

Definitia 9.1 Se numeste relatie de recurenta liniara egalitateak∑

j=0

hjai+j = 0 (1)

unde i ≥ 0, hk = 1, h0 6= 0, hj ∈ Zq, ai+j ∈ Zq.

Realtiile de recurenta liniara se pot scrie si

ai+k = −k−1∑

j=0

hjai+j, i = 0, 1, . . .

O solutie a unei astfel de relatii de recurenta liniara este orice succesiune infinita deforma a0, a1, . . . , ap, . . . care verifica relatia data, cu h0, h1, . . . , hk date, h0 6= 0,

Page 443: Criptografie complet

9.1. RELATII DE RECURENTA LINIARA 99

hk = 1. Relatia va determina succesiv pe ak din a0, . . . , ak−1, apoi pe ak+1 dina1, . . . , ak, s.a.m.d.

Altfel spus, ”conditiile initiale” a0, a1, . . . , ak−1 determina o solutie a relatiei derecurenta liniara.

Observatii:

• Orice combinatie liniara de solutii ale unei relatii de recurenta liniara este toto solutie.

• Solutiile pentru care conditiile initiale sunt respectiv (1, 0, . . . , 0), (0, 1, . . . , 0),. . . , (0, 0, . . . , 1) determina orice alta solutie. Deci, spatiul solutiilor relatiei derecurenta (1) are dimensiunea cel mult k.

Fiind date conditiile initiale (arbitrare) a0, a1, . . . , ak−1, solutia relatiei de recurentaliniara (1) corespunzatoare lor se poate obtine folosind circuitul liniar

aj aj+1

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

aj+k−2 aj+k−1

j j j

−h0 −h1 −hk−2 −hk−1

6- - - - -

?¾¾¾¾¾¾ 6 6r

6

6r

6

6r

6+ + +. . .

. . .

ın care, la momentul initial, ın elementele de ınmagazinare se gasesc a0, a1, . . . , ak−1.

Sa consideram acum polinomul (fixat) h(X) ∈ Zq[X], h(X) = h0 + h1X + . . . +hkX

k, h0 6= 0, hk = 1, si fie n cel mai mic numar natural pentru care Xn − 1 sedivide cu h(X). Notam

g(X) =Xn − 1

h(X)(2)

Pe baza acestor date construim relatia de recurenta liniara

ai+k = −k−1∑

j=0

hjai+j, i ≥ 0 (3)

Teorema 9.5

1. Solutiile relatiei de recurenta (3) sunt periodice, de perioada n.

2. Multimea formata din prima perioada a fiecarei solutii, scrisa ca polinoma(X) = a0X

n−1 + . . . + an−2X + an−1 constituie idealul ({g(X)}) ın algebrapolinoamelor modulo Xn − 1.

Demonstratie: (a): Vom arata ca oricarui element {a(X)} ∈ ({g(X)}) cua(X) = a0X

n−1 + . . . + an−2X + an−1 ıi corespunde o solutie periodicaa1, a1, . . . , an−1, a0, a1, . . . , an−1, a0, . . .

a relatiei de recurenta (3). Evident, nu este obligatoriu ca toti coeficientii ai safie nuli, gradul real al polinomului f(X) putand fi chiar zero.

Page 444: Criptografie complet

100 PRELEGEREA 9. CODURI CICLICE

Fie {a(X)}{h(X)} = {c(X)}. Vom nota c(X) = c0 + c1X + . . . + cn−1Xn−1.

Avem:

- pentru k ≤ p ≤ n− 1, cp = h0an−1−p + h1an−1−p+1 + . . . + hkan−1−p+k (4)

- pentru 0 ≤ p < k, cp = h0an−1−p +h1an−1−p+1 + . . .+hpan−1 +hp+1a0 + . . .+hkak−p−1. (5)

Conform Teoremei 9.4, daca {a(X)} ∈ ({g(X)}) atunci {a(X)}{h(X)} = 0,adica cp = 0, (0 ≤ p ≤ n− 1).

Considerand (ai)i ca o succesiune periodica, vom avea evident ai+n = ai, i =0, 1, . . .. Tinand cont de aceasta introducand cp = 0 ın (4) si (5), se obtine (3).

(b): Idealul ({g(X)}) are dimensiunea k = grad(h(X)) (Teorema 9.3) si fiecareelement al acestui ideal (polinom sau vector - dupa cum este scris) va da (conformcu (a)) o solutie a relatiei de recurenta liniara (3). Dar spatiul solutiilor relatiei (3)are dimensiunea cel mult k. Deci idealul ({g(X)} va da toate solutiile relatiei derecurenta liniara (3). Mai trebuie aratat ca perioada acestor solutii este chiar n.

Din cele de pana acum a rezultat ca perioada este cel mult n. Vom arata casolutia corespunzatoare clasei de resturi {g(X)} are perioada n.

Sa presupunem prin absurd ca solutia corespunzatoare lui {g(X)} are perioadam < n. Dar n este divizibil cu m si deci coeficientii polinomului g(X) - considerat

ca fiind de grad n− 1 (prin completare cu coeficienti nuli) formeazan

mblocuri care

se repeta.

Deci g(X) = q(X)(1 + Xm + x2m + . . . + Xn−m) unde q(X) este un polinom de

gradul m− 1. Relatia se poate scrie si g(X) = q(X)Xn − 1

Xm − 1.

Vom avea acum (Xn − 1)(Xm − 1) = g(X)h(X)(Xm − 1) = q(X)h(X)(Xn − 1)adica Xm − 1 = q(X)h(X), ceea ce contrazice definitia numarului n (minim).

Deci m = n. 2

Exemplul 9.1 Sa consideram polinomul h(X) = 1+X +X2+X4 ∈ Z2[X]. Relatiade recurenta liniara asociata este

ai+4 = ai+2 + ai+1 + ai, i ≥ 0.

Circuitul liniar corespunzator are forma

±°²¯

±°²¯

¾

6- - -

?¾¾¾¾6 6s s

+ +

Cel mai mic n pentru care Xn − 1 se divide cu h(X) este n = 7. Cum g(X) =X7 − 1

h(X)= X3 + X + 1, rezulta ca circuitul va genera cuvintele idealului ({g(X)}).

Fiecare din ele este caracterizat de cele patru valori binare initiale din elementelede ınmagazinare. Vor fi deci 24 = 16 cuvinte de lungime 7. Ele corespund tuturorpolinoamelor de grad maxim 6 din Z2[X], care se divid cu g(X).

De exemplu, pentru valorile initiale (1, 0, 1, 1), functionarea circuitului timp desapte tacti este:

Page 445: Criptografie complet

9.2. DEFINIREA CODURILOR CICLICE 101Iesire− 1 0 1 11 0 1 1 00 1 1 0 01 1 0 0 01 0 0 0 10 0 0 1 00 0 1 0 10 1 0 1 1

In elementele de ınmagazinare se regasesc valorile initiale, iar la iesire s-a obtinutpolinomul f(X) = X6 + X4 + X3 = X3g(X).

Exemplul 9.2 Circuitul liniar corespunzator polinomuluih(X) = 1 + X3 + X5 + X6 + X8 ∈ Z2[X] este

±°²¯

±°²¯

±°²¯

¾

6- - - -

?¾¾¾¾¾¾¾¾6 6 6r r r

+ + +

El da solutiile relatiei de recurenta liniara ai + ai+3 + ai+5 + ai+6 + ai+8 = 0,

care formeaza idealul generat de polinomul g(X) =X255 − 1

h(X)ideal compus din

28 = 256 cuvinte de lungime 255.

9.2 Definirea codurilor ciclice

Fie n ≥ 2 un numar natural. Sa notam cu An algebra polinoamelor din Zq[X],modulo Xn−1. Dupa cum s-a convenit, identificam cuvantul cuvantul a0a1 . . . an−1

cu vectorul (a0, a1, . . . , an−1) si cu polinomul a(X) = a0 + a1X + . . . + an−1Xn−1.

In cadrul dualismului vector - polinom vom face o deosebire: anularea produsuluia doua polinoame nu ınseamna ortogonalitatea vectorilor corespunzatori. Pentruaceasta situatie se foloseste urmatoarea propozitie:

Propozitia 9.1 Produsul a doua polinoame este zero daca si numai daca toateprodusele scalare dintre vectorul unui polinom si permutarile ciclice ale vectorilorceluilalt polinom sunt zero.

Demonstratie: Fie a(X), b(X) ∈ Zq[X], a(X) =n−1∑

i=0

aiXi, b(X) =

n−1∑

i=0

biXi.

Atunci {c(X)} = {a(X)}{b(X)} = {c0 + c1X + . . . + cn−1Xn−1} unde

cj =j∑

i=0

aibj−i +n−1∑

i=j+1

aibj+n−i = (a0a1 . . . an−1) · (bjbj−1 . . . b0bn−1bn−2 . . . bj+1)T

si Propozitia rezulta din faptul ca cj = 0 ∀j. 2

Definitia 9.2 Un subspatiu liniar Vn ⊂ An se numeste ciclic daca

(a0, a1, . . . , an−1) ∈ Vn =⇒ (an−1, a0, . . . , an−2) ∈ Vn.

Teorema 9.6 Un subspatiu liniar Vn ⊆ An este ciclic daca si numai daca este ideal.

Page 446: Criptografie complet

102 PRELEGEREA 9. CODURI CICLICE

Demonstratie: Inmultirea cu clasa de resturi {X} ınseamna de fapt permutareaciclica a componentelor cu o unitate spre dreapta, pentru ca:

{X}{a0 + a1X + . . . + an−1Xn−1} = {an−1 + a0X + . . . + an−2X

n−1}”⇐=”: Daca Vn ⊆ An este ideal, atunci pentru orice v ∈ Vn avem v′ = {X}v ∈ Vn

(s-a notat tot cu v clasa de resturi modulo Xn − 1 corespunzatoare polinomului aicarui coeficienti sunt componentele vectorului v). Deci Vn este ciclic.

”=⇒”: Presupunem ca subspatiul liniar Vn ⊆ An este ciclic si fie v ∈ Vn. Atunci,din {X}v ∈ Vn rezulta {Xj}v ∈ Vn, ∀j = 1, . . . , n− 1. Deci

{c0 + c1X + . . . + cn−1Xn−1}v ∈ Vn, adica Vn este ideal ın An. 2

Definitia 9.3 Se numeste cod ciclic un ideal din An.

Codurile ciclice au fost introduse de Prange (1957), care a evidentiat bogatia deinformatie rezultata din structura lor algebrica.

9.3 Generarea codurilor ciclice

Pentru a construi un cod ciclic se foloseste structura idealelor ın algebra moduloXn−1. Fie I un ideal ın An 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)|Xn− 1. Oricarui divizor al lui Xn− 1 ıi corespunde un idealın An, generat de el.

Pentru a da un cod ciclic este suficient sa dam generatorul sau g(X), divizor allui Xn − 1. Fie g(X) = g0 + g1X + . . . + gn−kX

n−k, (k < n). O baza a idealului({g(X)}) se poate alege (Teorema 9.3)

{g(X)}, {Xg(X)}, . . . , {Xk−1g(X)}.Matricea generatoare corespunzatoare codului ciclic va fi

Gn,k =

g0 g1 . . . gn−k 0 0 . . . 00 g0 . . . gn−k−1 gn−k 0 . . . 0

...0 0 . . . 0 g0 g1 . . . gn−k

Rezulta ca un cod ciclic poate fi organizat ca un (n, k) - cod liniar, unde n este

gradul polinomului Xn − 1 iar k este gradul polinomului h(X) =Xn − 1

g(X).

Exemplul 9.3 Codul cu repetitie este un cod ciclic al carui polinom generator esteg(X) = 1 + X + X2 + . . . + Xn−1.

Exemplul 9.4 Sa consideram codul ciclic binar A de lungime 7, cu polinomul gen-erator g(X) = 1 + X + X3 (vezi si Exemplul 9.1). El are matricea generatoare

G =

1 1 0 1 0 0 00 1 1 0 1 0 00 0 1 1 0 1 00 0 0 1 1 0 1

.

Page 447: Criptografie complet

9.3. GENERAREA CODURILOR CICLICE 103

Exemplul 9.5 Fie codul ciclic de lungime 6 peste Z3, de polinom generator g(X) =2 + X2. Matricea sa generatoare este

G =

2 0 1 0 0 00 2 0 1 0 00 0 2 0 1 00 0 0 2 0 1

.

El este deci un (6, 4) - cod ternar.

Idealul generat de {g(X)} este spatiul nul al idealului ({h(X)}) unde

h(X) =Xn − 1

g(X). Acest ideal ({h(X)}) se construieste luand ca baza polinoamele

{h(X)}, {Xh(X)} . . . , {Xn−k−1h(X)}.

Tinand cont de Propozitia 9.1, pentru a construi matricea de control H a coduluiciclic ({g(X)}), luam ca linii ale matricii cele n − k polinoame de sus, cu ordineacomponentelor inversata.

Exemplul 9.6 Sa reluam codul din Exemplul 9.4. Deoarece X7 − 1 = (1 + X)(1 +X + X3)(1 + X2 + X3), pentru acest cod, avem

h(X) = (1 + X)(1 + X + X3) = 1 + X2 + X3 + X4.Matricea generatoare a codului ({h(X)}) este

1 0 1 1 1 0 00 1 0 1 1 1 00 0 1 0 1 1 1

.

deci matricea de control asociata codului din Exemplul 9.4 va fi

H =

0 0 1 1 1 0 10 1 1 1 0 1 01 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 obtine un cod ciclic sistematic, este convenabil sa alegem o alta baza pentruidealul ({g(X)}). Sa observam ca pentru i = n−k, n−k +1, . . . , n−1, putem scrie

X i = qi(X)g(X) + ri(X) cu grad(ri(X)) < grad(g(X)) = n− k.

Deci {X i − ri(X)} ∈ ({g(X)}), i = n− k, n− k + 1, . . . , n− 1.Aceasta multime de vectori este liniar independenta si conduce la o matrice

generatoare de formaG = [−R I]

unde linia j din matricea R este vectorul coeficientilor lui rj(X) pentru j = n −k, . . . , n − 1. Codul obtinut este deci sistematic, iar matricea sa de control se scrieimediat:

H = [I RT ]

De remarcat ca matricea HT are pe linii componentele resturilor ri(X) pentru i =0, 1, . . . , n− 1.

Page 448: Criptografie complet

104 PRELEGEREA 9. CODURI CICLICE

Exemplul 9.7 Sa luam din nou X7 − 1 = g(X)h(X) peste Z2, undeg(X) = 1 + X2 + X3, h(X) = 1 + X2 + X3 + X4 (deci n = 7, k = 4). Avem

X0 = 0g(X) + 1X1 = 0g(X) + XX2 = 0g(X) + X2

X3 = g(X) + 1 + X2

X4 = (1 + X)g(X) + 1 + X + X2

X5 = (1 + X + X2)g(X) + 1 + XX6 = (X + X2 + X3)g(X) + X + X2

Baza corespunzatoare idealului ({g(X)}) este

{1 + X2 + X3}, {1 + X + X2 + X4}, {1 + X + X5}, {X + X2 + X6}care conduce la matricea generatoare a unui cod sistematic:

G7,4 =

1 0 1 1 0 0 01 1 1 0 1 0 01 1 0 0 0 1 00 1 1 0 0 0 1

= [−R4,3 I4].

Matricea de control corespunzatoare se scrie simplu:

H7,3 =

1 0 0 1 1 1 00 1 0 0 1 1 10 0 1 1 1 0 1

= [I3 RT

3,4].

9.4 Generarea automata a codurilor ciclice

Codurile ciclice sunt coduri a caror implementare este mult facilitata de circuiteleliniare. Cu ajutorul acestora se poate realiza automat codificarea, calculul sindro-mului, corectarea si detectarea erorilor.

In constructia practica vom distinge doua cazuri:

9.4.1 Circuit cu k elemente de ınmagazinare

Este o metoda de generare a codurilor ciclice, avantajoasa daca sunt mai putinesimboluri de informatie decat de control: k < n− k.

Fie codul ciclic ({g(X)}) ⊆ An si h(X) =Xn − 1

g(X)= h0 + h1X + . . . + hkX

k cu

h0 6= 0, hk = 1. Conform Teoremei 9.5, idealul ({g(X)}) este generat de circuitulliniar care construieste secvential solutiile relatiei de recurenta liniara

k∑

j=0

hjai+j = 0, i = 0, 1, . . .

Mesajul de informatie care trebuie codificat - continand k simboluri pe fiecare bloc- se introduce la momentul initial ın elementele de ınmagazinare ale circuitului,sub forma de ”conditii initiale”. Lasand circuitul sa functioneze, obtinem dupa nmomente cuvantul - cod corespunzator, apartinand idealului ({g(X)}) si avand peprimele k pozitii elementele de informatie.

Page 449: Criptografie complet

9.4. GENERAREA AUTOMATA A CODURILOR CICLICE 105

Exemplul 9.8 Circuitul liniar construit ın Exemplul 9.1 este un circuit de codificarepentru codul generat de polinomul g(X) = 1 + X + X3. Exemplul descrie si un modde functionare pentru cuvantul de informatie 1011.

Daca s-ar lua drept polinom generator 1 + X2 + X3 + X4, idealul generat de eleste dat de circuitul liniar

±°²¯

¾6

- -

?¾¾¾ 6s+

deoarece h(X) =X7 − 1

1 + X2 + X3 + X4= 1 + X2 + X3.

9.4.2 Circuit cu n− k elemente de ınmagazinare

Este o strategie avantajos de utilizat ın cazul n− k < k.Daca interpretam mesajul de informatie ca un polinom de gradul k − 1, atunci

codificarea se poate face utilizand un circuit de ınmultire cu polinomul generatorg(X) (vezi Prelegerea anterioara). La decodificare se recapata mesajul initial (dacanu au aparut erori) folosind un circuit de ımpartire cu g(X).

Exemplul 9.9 Codul ciclic de polinom generator g(X) = 1+X +X3 poate codificamesajele de informatie folosind circuitul liniar:

±°²¯

±°²¯

- - - -66

- - -

6s+ +

u3u2u1u0

Astfel, mesajul de informatie u = 1001 se codifica ın v = 1100101, conformcalculelor:

v(X) = u(X)g(X) = (1 + X3)(1 + X + X3) = 1 + X + X4 + X6

Pentru decodificare se foloseste circuitul

±°²¯

±°²¯

- - - - - -6-¾

? ?s

+ +v(X)

u(X)

Dezavantajul unei asemenea metode ıl constituie faptul ca, nefiind un cod sis-tematic, prin codificare pozitiile de informatie se pierd. Pentru a obtine un codsistematic, procedam ın felul urmator: mesajul de informatie este considerat unpolinom u0(X) de gradul n − 1 avand pozitiile de informatie drept coeficientii luiXn−k, . . . , Xn−1, restul coeficientilor fiind nuli. Atunci avem u0(X) = q(X)g(X) +r(X) cu grad(r(X)) < grad(g(X)) = n− k de unde

{u0(X)− r(X)} ∈ ({g(X)}).

{u0(X) − r(X)} reprezinta un cuvant - cod ın care coeficientii lui Xn−k, . . . , Xn−1

sunt pozitiile de informatie nealterate, iar coeficientii lui r(X) cu semnul schimbat(deci coeficientii lui X0, X1, . . . , Xn−k−1) sunt caracterele de control.

Circuitul care realizeaza aceasta codificare este urmatorul:

Page 450: Criptografie complet

106 PRELEGEREA 9. CODURI CICLICE

±°²¯

±°²¯

±°²¯

±°²¯

Canal

"!

"!

"!

"!

"!

#Ã6¾PPPPisss ¾¾

?

?- - - - - - - -r 6

?

?

?

?

?

?

-6s±°

²¯−1

?-´3-

+ + + +

−g0 −g1 −g2 −gn−k−1 g−1n−k

u(X)

. . .

. . .

El functioneaza astfel:

• Initial cele n − k elemente de ınmagazinare contin 0, ıntrerupatorul de iesireeste decuplat iar cel de feedback - cuplat.

• Se introduc cele k elemente ale mesajului de informatie atat ın circuit cat siın canalul de comunicatie. Dupa k momente, ın elementele de ınmagazinareavem coeficientii restului r(X).

• Se decupleaza feedbackul si se cupleaza circuitul la canalul de comunicatie.

• Coeficientii restului - cu semn schimbat - se transmit ın canal imediat dupapozitiile de informatie.

Deoarece provine din circuitul de ımpartire cu g(X), acelasi circuit poate fi folositsi pentru detectarea erorilor la receptie. Pentru aceasta, dupa decuplarea ıntrerupa-torului de iesire si cuplarea celui de feedback, se introduce ın circuit cuvantulreceptionat. Daca ın momentul n restul nu este nul (cel putin un element deınmagazinare contine un element nenul) ınseamna ca a aparut cel putin o eroareın transmisie.

Exemplul 9.10 Codul de lungime 7 generat de g(X) = 1 + X2 + X3, poate ficonstruit folosind circuitul liniar:

jr

jCanal

6¾ZZ}¾

?- ?- - - -r-6r

? -½½>-++

u3u2u1u0

9.5 Exercitii

9.1 Sa se determine toate codurile ciclice de lungime 5(a) : peste Z2; (b) : peste Z3.

9.2 Construiti o baza pentru cel mai mic cod ciclic de lungime n care continecuvantul v:

(a) v = 1101000, n = 7;(b) v = 010101, n = 6;(c) v = 11011000, n = 8.

9.3 Pentru fiecare din cuvintele de mai jos gasiti polinomul generator al celui maimic cod ciclic care contine cuvantul:

Page 451: Criptografie complet

9.5. EXERCITII 107

010010 01100110 0101100001000101110000 000010010000000 010111010000000

9.4 Sa se afle 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 codificare sistematica, codificati mesajul de informatie 1101 ıntr-un cu-vant - cod al unui cod binar ciclic de lungime 7 cu polinomul generator g(X) =1 + X2 + X3.

9.6 Pentru codul definit mai sus codificati mesajele de informatie date de poli-noamele: 1 + X2, X, X + X2 + X3.

Fiind date cuvintele - cod X2 +X4 +X5, 1+X +X2 +X4, X2 +X3 +X4 +X6,gasiti mesajele de informatie corepunzatoare.

9.7 Construiti circuite liniare pentru codificare si decodificare ale codului ciclic bi-nar de lungime 7 generat de polinomul g(X) = (1 + X2 + X3)(1 + X).

9.8 Care este lungimea minima a unui cod ciclic binar de polinom generatorg(X) = 1 + X2 + X3 + X4 ?

Construiti circuite liniare pentru codificarea si decodificarea sa.

9.9 Construiti un circuit liniar pentru codificarea (15, 11) - codului Hamming binar.

9.10 Construiti matricea de control a codului ciclic binar de lungime n si polinomgenerator g(X):

n = 6, g(X) = 1 + X2;n = 8, g(X) = 1 + X2;n = 9, g(X) = 1 + X3 + X6;n = 15, g(X) = 1 + X + X4 (genereaza codul Hamming);n = 23, g(X) = 1 + X + X5 + X6 + X7 + X9 + X11 (genereaza codul Golay);n = 15, g(X) = 1 + X4 + X6 + X7 + X8.

9.11 Sunt ciclice codurile liniare binare definite de matricile generatoare definitemai jos ?

1 0 1 1 1 0 01 1 0 1 0 0 01 1 0 0 1 0 10 0 1 0 1 1 1

1 1 1 1 0 0 00 1 1 1 1 0 00 0 1 1 1 1 00 0 0 1 1 1 1

9.12 Aratati ca daca polinomul generator al unui cod binar se divide cu polinomul1 + X, atunci toate cuvintele sale au pondere para.

Reciproca este adevarata ?

Page 452: Criptografie complet

108 PRELEGEREA 9. CODURI CICLICE

9.13 Dati o conditie necesara si suficienta pentru polinomul generator al unui codciclic de lungime impara pentru ca 11 . . . 1 sa fie cuvant - cod.

9.14 Aratati ca daca g(X) genereaza un (n, k) - cod ciclic, atunci g(X i) genereazaun (in, kn) - cod ciclic.

Descrieti codurile pentru g(X) = 1 + X si g(X) = 1 + X + X3 cu n = 7.

9.15 Aratati ca intersectia a doua coduri ciclice de aceeasi lungime este tot un codciclic.

Care este polinomul sau generator ?

Page 453: Criptografie complet

Prelegerea 10

Decodificarea codurilor ciclice

Dupa cum se stie de la codurile liniare, o caracterizare importanta a tipurilor deerori care pot apare ın transmisia mesajelor este data de sindrom. In cazul codurilorciclice este convenabil sa lucram cu un sindrom polinomial.

Definitia 10.1 Fie A un cod ciclic de lungime n cu polinomul generator g(X). Senumeste ”sindrom polinomial” s(X) al cuvantului a de lungime n, restul ımpartiriipolinomului corespunzator a(X) la g(X).

Deci, daca se transmite cuvantul - cod q(X)g(X) si se primeste a(X), sindromul vafi

e(X) = a(X)− q(X)g(X), grad(e(X) < grad(g(X)).

Observatii:

• Deoarece a(X)− e(X) este divizibil cu g(X), rezulta ca resturile ımpartirii luia(X) si e(X) la g(X) coincid. Deci se poate vorbi despre ”tipul de eroare” e.

• Similar cu rationamentul de la coduri liniare, sindromurile vor fi toate poli-noamele din Zq[X] de grad < n− k; pentru fiecare sindrom s(X) putem alegeo eroare - tip e(X) de pondere minima care are acel sindrom.

Structura algebrica a codurilor ciclice permite constructia de metode de decodificare(cu corectarea posibilelor erori aferente) mai eficiente decat algoritmii similari de lacodurile liniare.

Vom ıncepe cu prezentarea unui exemplu.

Exemplul 10.1 Fie A codul Hamming de lungime 7, care are polinomul generatorg(X) = 1 + X + X3 (Prelegerea 9, Exemplele 9.4 si 9.6).

Eroare - tip Sindrom0 01 1X XX2 X2

X3 1 + XX4 X + X2

X5 1 + X + X2

X6 1 + X2

109

Page 454: Criptografie complet

110 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

Sindromul cuvantului receptionat a = 1011001 este restul ımpartirii lui X6 + X3 +X2 +1 la X3 +X +1, adica s(X) = X +1. Se stie ca orice cod Hamming corecteazao eroare, deci va fi util sa avem un tabel cu sindromurile tuturor erorilor - tipe(X) = X i (0 ≤ i ≤ 6). Pentru ca X + 1 este sindromul lui e(X) = X3, tragemconcluzia ca a fost perturbat al treilea bit si vom decodifica

a(X)− e(X) = 1011001− 0001000 = 1010001.

O dificultate ın aceasta metoda de decodificare bazata pe sindrom consta ın necesi-tatea de a lista toate erorile - tip corespunzatoare sindromurilor si de a le parcurge lareceptia fiecarui cuvant. O simplificare este ınsa propusa de Meggitt (1960), bazatape structura ciclica a codurilor. Vom face corectia numai pentru ultimul caracter(de grad maxim) al cuvantului a receptionat. Dupa aceea se efectueaza o permutareciclica si se studiaza din nou ultimul caracter. In acest fel, dupa n permutari ciclice,toate pozitiile au fost corectate.

Metoda prezinta doua avantaje majore:

1. Se foloseste o lista a erorilor - tip numai pentru sindromurile de grad n − 1.(Astfel, ın Exemplul 10.1 numai un sindrom are gradul 6).

2. Calculul sindromului se efectueaza o singura data– la ınceput – folosind cir-cuitul liniar de ımpartire cu g(X). Dupa ce a functionat n momente, ın ele-mentele de ınmagazinare se gaseste sindromul. Dupa aceea se neglijeaza iesireasi se lasa sa functioneze circuitul. La fiecare pas (Prelegerea 8, Figura 8.4) sin-dromul se ınmulteste cu X, avand ca efect permutarea sa ciclica cu o pozitie.

Propozitia 10.1 Daca un cuvant a = (a0, a1, . . . , an−1) are sindromul s(X), atuncipermutarea sa ciclica are sindromul s′(X), care este restul ımpartirii lui Xs(X) lapolinomul generator g(X).

Demonstratie: Sindromul s(X) este dat de identitatea ımpartirii

a(X) = q(X)g(X) + s(X)

unde q(X) este catul ımpartirii lui a(X) la g(X). Deoarece se lucreaza ın alge-bra polinoamelor modulo Xn − 1, permutarea ciclica a lui {a(X)} este {a′(X)} ={Xa(X)}, construit astfel:

a′(X) = Xa(X)− an−1Xn + an−1 = Xa(X)− an−1(X

n − 1) =

= Xa(X)− an−1g(X)h(X) = Xq(X)g(X) + Xs(X)− an−1g(X)h(X) =

= Xs(X) + g(X)[Xq(X)− an−1h(X)].

Rezulta de aici ca resturile ımpartirii lui a′(X) si Xs(X) la polinomul generatorg(X) sunt aceleasi. 2

Se poate da acum

Page 455: Criptografie complet

111

Algoritmul de decodificare Meggitt pntru (n, k) - codurile ciclicebinare:

1. Se listeaza toate sindromurile reprezentate prin polinoame de grad

n− k − 1;

2. Cuvantul receptionat a este introdus ın circuitul liniar de ımpartire cug(X), care va functiona n tacti;

3. Daca sindromul rezultat este ın lista, se modifica bitul cel mai din dreaptaal cuvantului primit;

4. Simultan se permuta ciclic cuvantul primit si si se lasa sa functioneze untact circuitul liniar (neglijand iesirea), dupa care se reia Pasul (3).

Se repeta acest procedeu de n− 1 ori.

Exemplul 10.2 Reluand codul Hamming din Exemplul 10.1, algoritmul va lucraastfel:

- Singurul sindrom din lista este 1 + X2.- Daca se receptioneaza de exemplu a = 1011001, el se introduce ın circuitul

liniar

j 1 j 1 0 -6

¾

? ?- - - - -+ +1011001

Dupa 7 tacti, ın elementele de ınmagazinare se obtine sindromul 110.- 110 nu este pe lista, deci a6 a fost corect.- Se permuta circular a ın 1101100 si se lasa circuitul sa functioneze un tact;

elementele de ınmagazinare vor contine 011.- Nici acest sindrom nu este pe lista, deci a5 a fost corect, etc.Pasii de lucru ai algoritmului sunt reprezentati ın tabloul:

Pas Bit Sindrom7 a6 1108 a5 0119 a4 11110 a3 10111 a2 10012 a1 01013 a0 001

Deci singurul bit corectat (unde se transforma 1 ın 0) este a3.

Exemplul 10.3 Sa consideram codul ciclic binar generat de polinomul g(X) = 1 +X4 + X6 + X7 + X8. El este un (15, 7) - cod de distanta d = 5 (dupa cum vomvedea mai tarziu) deci poate corecta 2 erori. Lista completa a sindromurilor (deci atuturor erorilor - tip de pondere 0, 1, 2) are C0

15+C115+C2

15 = 121 elemente. Folosindalgoritmul Meggitt, numarul lor se reduce la 15, anume

Page 456: Criptografie complet

112 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

Tip eroare SindromX14 X7 + X6 + X5 + X3

1 + X14 X7 + X6 + X5 + X3 + 1X + X14 X7 + X6 + X5 + X

X2 + X14 X7 + X6 + X5 + X3 + X2

X3 + X14 X7 + X6 + X5

X4 + X14 X7 + X6 + X5 + X4 + X3

X5 + X14 X7 + X6 + X3

X6 + X14 X7 + X5 + X3

X7 + X14 X6 + X5 + X3

X8 + X14 X5 + X4 + X3 + 1X9 + X14 X7 + X4 + X3 + X + 1

X10 + X14 X3 + X2 + XX11 + X14 X7 + X6 + X5 + X4 + X2 + XX12 + X14 X7 + X6 + X4 + XX13 + X14 X7 + X4 + X3 + X2

Deci, la primirea unui cuvant a de lungime 15, vom calcula sindromul si - dacaacesta se afla ın tabelul de sus - vom modifica bitul a14. Apoi se face o permutareciclica si se corecteaza a13, s.a.m.d.

De remarcat ca ın Exemplul 10.3 decodificarea nu este completa: algoritmul Meggittcorecteaza ın total 121 erori - tip. Privit ınsa ca un cod liniar tabela de decodificareva avea 215/27 = 256 linii. Deci cu algoritmul Meggitt se vor corecta toate erorilesimple sau duble ignorand complet posibilitatea altor tipuri de erori.

Vom ıncerca ın continuare sa ımbunatatim aceasta situatie.

10.1 Corectarea pachetelor de erori

Fie A ⊆ An un (n, k) - cod ciclic peste Zq capabil sa corecteze t erori.

Definitia 10.2 Pentru un polinom e(X) = Xse0(X) ∈ Zq[X] cu e0(0) = 1, spunemca ”lungimea pachet” a lui e este 1 + grad(e0(X)).

Cuvantul e ∈ Znq este un ”pachet - tip de lungime j” daca gradul minim al

polinoamelor {Xse(X)} este j − 1.

Daca se trimite un cuvant v si se receptioneaza a, spunem ca erorile au afectatj pozitii 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 + X3 + X4 =X(1+X2 +X3). Efectuand toate permutarile ciclice, se obtine ca toate au grad maimare decat 3, ınafara de {X6e(X)} = {1 + X2 + X3}, tot de gradul 3. Deci e esteun pachet - tip de lungime 4.

Daca se ia e = 1000100, 1 + X4 are gradul 4, dar permutarea ciclica {X3(1 +X4)} = {1 + X3} are gradul 3, deci si acesta este un pachet - tip de lungime 4.

Page 457: Criptografie complet

10.2. DETECTAREA PACHETELOR DE ERORI 113

Reamintim ca la codurile liniare se construia un tablou standard ın care pe fiecarelinie se aflau toate cuvintele cu acelasi sindrom. Codul era corector de t erori dacatoate cuvintele din Zn

q de pondere cel mult t erau pe linii diferite; acestea constituiaureprezentantii sindromurilor si apareau pe prima coloana, fiind considerate erori -tip pentru fiecare linie.

Astfel de tabele se pot construi si pentru codurile ciclice; aici se iau ca reprezen-tanti ın fiecare linie, pachetele de erori de lungime minima. In acest fel, un codliniar corector de t erori (independente) este corector de pachete de j erori dacatoate cuvintele de lungime - pachet cel mult j sunt reprezentanti.

Lema 10.1 Daca un cod A este corector de t erori independente si corector depachete de j erori, atunci t ≤ j.

Demonstratie: Exercitiu. 2

Definitia 10.3 Un (n, k) - cod ciclic corecteaza pachetele de j erori daca oricepachet - tip de lungime cel mult j este un sindrom.

Exemplul 10.5 Sa consideram toate pachetele - tip nenule de lungime cel mult 3ın Z15

2 . Fiecare astfel de cuvant este de forma{e(X)} = {Xse0(X)} cu 0 ≤ s ≤ 14 si e0(X) ∈ {1, 1 + X, 1 + X2, 1 + X + X2}.In total sunt 15 · 4 = 60 astfel de pachete de erori.

Exemplul 10.6 Fie g(X) = 1 + X + X2 + X3 + X6 polinomul generator al unui(15, 9) - cod ciclic binar. El nu este un cod corector de 3 erori independente pentruca sunt 576 tipuri de erori de pondere cel mult 3 si numai 215/29 = 64 sindromuri.In schimb sunt numai 61 pachete - tip de lungime maxim 3 (Exemplul 10.5, la carese adauga pachetul nul), deci acest cod poate corecta pachetele de 3 erori. Faptul caeste un cod ciclic corector de pachete de 3 erori rezulta din calculul sindromurilorpolinoamelor {Xse0(X)} unde 0 ≤ s ≤ 14 si e0(X) ∈ {1, 1+X, 1+X2, 1+X +X2}.

10.2 Detectarea pachetelor de erori

Teorema 10.1 Un (n, k) - cod ciclic detecteaza orice pachet de maxim n− k erori.

Demonstratie: Daca {e(X)} este o eroare - tip de lungime cel mult n − k, atuncie(X) = Xse0(X) cu grad(e0(X)) < n−k. 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)|Xn − 1, el va fi prim cu Xs; deci {e(X)} este ın cod daca si numai

daca g(X)|e0(X), absurd deoarece grad(e0(X)) < n− k = grad(g(X)). 2

Teorema 10.2 Proportia pachetelor - tip de j > n − k erori pe care nu le poatedetecta un (n, k) - cod ciclic este

q−(n−k−1)

q − 1daca j = n− k + 1

q−(n−k) daca j > n− k + 1.

Page 458: Criptografie complet

114 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

Demonstratie: Fie {e(X)} = {Xse0(X)} unde grad(e0(X)) = j − 1. Sa numaramcate asemenea pachete - tip de erori sunt posibile. Ca prim si ultim coeficient allui e0(X) poate fi orice element din Zq \ {0} (ın numar de q − 1), iar coeficientiiintermediari pot fi orice elemente din Zq (ın numar de q). Deci sunt (q − 1)2qj−2

pachete - tip de eroare care ıncep si se termina ın aceeasi pozitie.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 e0(X) = g(X)h(X), undegrad(h(X)) = grad(e0(X)) − grad(g(X)) = j − 1 − (n − k). Deci polinomul h(X)are j − n + k coeficienti. Apar doua situatii:

1. grad(h(X)) = 0, adica j = n − k + 1. Atunci h(X) se reduce la o constantasi exista q − 1 asemenea polinoame h(X). Deci, raportul dintre numarul pa-chetelor - tip de lungime j nedetectabile si numarul total al pachetelor - tipde lungime j care pot fi localizate este

q − 1

(q − 1)2qj−2=

q−(n−k−1)

q − 1.

2. Daca grad(h(X)) > 0, adica j > n−k+1, vom avea (q−1)2qj−n+k−2 polinoameh(X) posibile (pachete - tip de lungime j) nedetectabile. Rezulta ca raportulde sus este ın acest caz

(q − 1)qj−n+k−2

(q − 1)2qj−2= q−(n−k).

2

Exemplul 10.7 Codul ciclic definit ın Exemplul 10.6 detecteaza orice pachet demaxim 9 erori.

Dintre pachetele de 10 erori posibile care pot apare, doar 1/28 nu pot fi detectate,iar dintre pachetele de 11− 15 erori nu pot fi detectate 1/29.

10.3 Corectarea pachetelor de erori

Algoritmul este o varianta a Algoritmului Meggitt.Fie A = ({g(X)}) un (n, k) - cod ciclic corector de pachete - tip de j erori si

a ∈ Znq un cuvant receptionat.

1. Se calculeaza sindromul {s(X)};2. Pentru fiecare i ≥ 0 se calculeaza si(X) = X is(X) mod g(X), pana se

ajunge la un p cu grad(sp(X)) < j − 1.

Atunci eroarea - tip este {e(X)} = {Xn−psp(X)} si se genereaza cuvantula + e.

Page 459: Criptografie complet

10.4. TRANSPUNERE 115

Exemplul 10.8 Polinomul g(X) = 1 + X + X2 + X3 + X6 genereaza un (15, 9) -cod ciclic corector de pachete - tip de 3 erori. Sa folosim algoritmul de sus pentru adecodifica a = 111100100001010.

s(X) = 1+X +X2 +X3 +X6 +X11 +X13 (mod g(X)) = 1+X3 +X4 +X5.s1(X) = Xs(X) (mod g(X)) = 1 = X2 + X3 + X4 + X5,s2(X) = X2s(X) = 1 + X2 + X4 + X5,s3(X) = X3s(X) = 1 + X2 + X5,s4(X) = X4s(X) = 1 + X2.

S-a ajuns la grad(s4(X)) = 2 < 3− 1. Deci eroarea - tip este{e(X)} = {X15−4s4(X)} = X11 + X13.

Cuvantul - cod transmis a fostv = a + e = 111100100001010 + 000000000001010 = 111100100000000.

10.4 Transpunere

O metoda eficienta de utilizare a capacitatilor de corectare a pachetelor - tip de eroride catre codurile ciclice este utilizarea de transpuneri (interleaving).

In mod natural, mesajele de informatie m1,m2, . . . sunt codificate ın cuvintele- cod c1, c2, . . . si transmise prin canal ın ordinea codificarii. Transmisia se poaterealiza ınsa si dupa o rearanjare a caracterelor de informatie din mai multe cuvinte- cod consecutive.

Formal, prin transpunere la adancimea s se ıntelege scrierea a s cuvinte - codc1, c2, . . . , cs ca linii ale unei matrici

Cs,n =

c11 c12 c13 . . . c1n

c21 c22 c23 . . . c2n...

cs1 cs2 cs3 . . . csn

si transmiterea a n mesaje de lungime s, formate din coloanele matricii C:

c11c21 . . . cs1, c12c22 . . . cs2, . . . , c1nc2n . . . csn

Exemplul 10.9 Sa consideram codul generat de G =

1 0 0 1 1 00 1 0 1 0 10 0 1 0 1 1

si sase mesaje codificate c1, c2, . . . , c6, undec1 = 100110 c2 = 010101 c3 = 111000c4 = 010101 c5 = 100110 c6 = 111000

Deci - la nivel de caracter - secventa va arata:100110 010101 111000 010101 100110 111000.

Printr-o transpunere la adancimea 3, forma mesajelor este:101 011 001 110 100 010 011 101 001 110 010 100

iar cu o transpunere la adancimea 6:101011 011101 001001 110110 100010 010100.

Page 460: Criptografie complet

116 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

Ce efect are o transpunere la adıncimea s asupra capacitatii de corectie de pachete- tip de erori ale codului ? Raspunsul este dat de

Teorema 10.3 Fie A un cod corector de pachete - tip de j erori. Daca A estetranspus la adancimea s, atunci toate pachetele de cel mult sj erori pot fi corectate,ın ipoteza ca fiecare cuvant - cod este afectat de maxim un pachet - tip de j erori.

Demonstratie: Daca primul caracter al cuvantului - cod c este al i - lea caractertransmis, atunci celelalte caractere apar pe pozitiile i + s, i + 2s, . . . , i + (n − 1)s.Orice pachet de maxim sj erori va produce un pachet - tip de maxim j erori ın c,deci c va putea fi regasit la receptie (daca el nu a mai fost cumva afectat si de altepachete de erori). 2

Restrictia ca fiecare cuvant - cod sa fie afectat de cel mult un pachet de eroriimpune conditia ca pachetele de erori sa fie separate de perioade ın care transmisiaeste corecta, perioade suficient de lungi pentru evitarea situatiei ca un bloc de scuvinte sa fie afectat de doua pachete distincte de erori. In acest fel, crescand s,creste si lungimea pachetului de erori care poate fi corectat, dar creste si lungimeaperioadelor necesare de transmisie fara erori.

Exemplul 10.10 Codul din Exemplul 10.9 corecteaza o eroare. Folosind o transpu-nere la adancimea 3, el poate corecta toate pachetele - tip de cel mult 3 erori.

Un dezavantaj al transpunerii este acela ca nu se poate face transmisia pana nu aufost codificate toate cele s cuvinte, fapt care nu va permite folosirea directa a cir-cuitelor liniare. Pentru a evita acest neajuns se va folosi un s - cadru de transpunereıntarziata, care aranjeaza caracterele codificate, nu sub forma unei matrici C ci subforma de ”scara” - ca ın tabelul:

c1,1 c2,1 . . . cs+1,1 cs+2,1 . . . c2s+1,1 c2s+2,1 . . . c(n−1)s+1,1 . . .c1,2 c2,2 . . . cs+1,2 cs+2,2 . . . c(n−2)s+1,2 . . .

c1,3 c2,3 . . . c(n−3)s+1,3 . . ....c1,n . . .

Deoarece transmisia se face pe coloane, spatiile libere trebuiesc marcate. Acest lucruse realizeaza practic introducand pe aceste pozitii un caracter special ∗ 6∈ Zq.

Exemplul 10.11 Sa reluam mesajul codificat c1, c2, . . . , c6 din Exemplul 10.9.Un 1 - cadru de transpunere ıntarziata va fi

1 0 1 0 1 1 . . .∗ 0 1 1 1 0 1 . . .∗ ∗ 0 0 1 0 0 1 . . .∗ ∗ ∗ 1 1 0 1 1 0 . . .∗ ∗ ∗ ∗ 1 0 0 0 1 0 . . .∗ ∗ ∗ ∗ ∗ 0 1 0 1 0 0 . . .

Scventa de caractere transmise este

1 ∗ ∗ ∗ ∗ ∗ 00 ∗ ∗ ∗ ∗110 ∗ ∗ ∗ 0101 ∗ ∗11111 ∗ 100000 . . .

Daca se foloseste un 2 - cadru de transpunere ıntarziata, avem

Page 461: Criptografie complet

10.4. TRANSPUNERE 117

1 0 1 0 1 1 . . .∗ ∗ 0 1 1 1 0 1 . . .∗ ∗ ∗ ∗ 0 0 1 0 0 1 . . .∗ ∗ ∗ ∗ ∗ ∗ 1 1 0 1 1 0 . . .∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 1 0 0 0 1 0 . . .∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 1 0 1 0 0 . . .

iar secventa de caractere transmise este:

1 ∗ ∗ ∗ ∗ ∗ 0 ∗ ∗ ∗ ∗ ∗ 10 ∗ ∗ ∗ ∗01 ∗ ∗ ∗ ∗110 ∗ ∗ ∗ 110 ∗ ∗ ∗ . . .

Este usor de gasit o teorema analoga cu Teorema 10.3:

Teorema 10.4 Fie A un cod capabil sa corecteze pachetele - tip de j erori. Daca Afoloseste un s - cadru de transpunere ınarziata, atunci se poate corecta orice pachet- tip de maxim j(sn + 1) erori, ın ipoteza ca orice cuvant - cod este afectat de celmult un pachet - tip de j erori.

Demonstratie: Exercitiu.

Ca o alta facilitate, pentru codificarea unui mesaj se folosesc adesea doua coduri.De exemplu, pentru codificarea muzicii pe compact - discuri se utilizeaza doua coduriReed - Solomon, iar NASA si Agentia Spatiala Europeana folosesc doua coduriconvolutionale (ambele vor fi definite mai tarziu).

Fie Ci (i = 1, 2) doua (ni, ki) coduri liniare. Transpunerea ıncrucisata a lui C1

cu C2 se realizeaza astfel:

1. Mesajele de informatie sunt codificate cu C1 iar cuvintele - cod rezultatesunt transpuse la adancimea k2.

2. Coloanele obtinute ın acest proces de transpunere (care sunt de lungimek2) - privite ca mesaje de informatie - sunt codificate de codul C2.

3. Cuvintele - cod rezultate sunt transpuse la o adancime s fixata, sau cuun s - cadru de transpunere ıntarziata.

Avantajul principal al celei de-a doua codificari este urmatorul:Fie d1, d2 distantele celor doua coduri. C2 poate detecta d2−1 erori (nu ne punem

problema corectarii lor). Daca s-au detectat erori pentru un cuvant - cod din C2,atunci toate caracterele acestui cuvant sunt marcate si tratate drept simboluri carepot fi incorecte. Se considera apoi cuvintele - cod din C1. Daca n1−d1 +1 caracteredintr-un cuvant - cod din C1 sunt corecte, atunci se pot determina unic celelalted1 − 1 caractere (deoarece este imposibil ca doua cuvinte - cod distincte din C1 sacoincida pe n1−d1 +1 pozitii, ele diferind pe minim d1 pozitii; afirmatia este bazatasi pe faptul ca pozitiile caracterelor corecte sunt cunoscute).

Deci, daca un cuvant - cod din C1 are cel mult d1−1 simboluri marcate si se stieca toate caracterele gresite sunt marcate, cuvintele - cod pot fi decodificate corect.

Page 462: Criptografie complet

118 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

Cat de mare este un pachet de erori pe care ıl poate corecta aceasta schema ?Sa presupunem ca C2 a fost transpus la adancimea s, si ca orice cuvant - cod (atatdin C1 cat si din C2) a fost afectat de cel mult un pachet de erori. Daca apare unpachet de cel mult s(d2 − 1) erori, atunci el va afecta maxim d2 − 1 simboluri dinfiecare cuvant - cod din C2. Deci aceste erori vor fi detectate si se vor marca toatecaracterele cuvintelor - cod implicate. Daca s ≤ d1 − 1, atunci orice cuvant - coddin C1 are cel mult d1 − 1 simboluri marcate. In ipoteza ca nu exista decat maximun pachet de erori care l-a perturbat, caracterele marcate pot fi corectate.

Am aratat astfel:

Teorema 10.5 Fie o codificare care foloseste transpunerea ıncrucisata a (n1, k1) -codului C1 cu (n2, k2) - codul C1, C2 fiind transpus la adancimea s (s ≤ d1 − 1).Daca fiecare cuvant - cod este afectat de cel mult un pachet - tip de erori, atuncitoate pachetele - tip de erori de lungime maxim s(d2 − 1) pot fi corectate.

(d1, d2 sunt distantele minime ale celor doua coduri).

Exemplul 10.12 Fie C1 si K2 codurile binare, definite respectiv de matricile gene-ratoare

G1 =

1 0 0 0 1 1 1 00 1 0 0 1 1 0 10 0 1 0 1 0 1 10 0 0 1 0 1 1 1

G2 =

1 0 0 1 1 00 1 0 1 0 10 0 1 0 1 1

.

Deci, n1 = 8, k1 = 4, d1 = 4, n2 = 6, k2 = 3, d2 = 3.Sa codificam mesajele de informatie m1 = 1000, m2 = 1100, m3 = 1010

folosind o transpunere ıncrucisata a lui C1 cu K2, C2 fiind transpus la o adancimes = 3 = d1 − 1.

Codificarea mesajelor de informtie cu codul C1 da:

c1 = m1G1 = 10001110, c2 = m2G1 = 11000011, c3 = m3G1 = 10100101.

Transpunerea acestor cuvinte la adancimea k2 = 3 conduce la mesajul

111 010 001 000 100 101 110 011

Aceste 8 mesaje de informatie sunt codificate cu C2 ı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 fi transpuse cu urmatorulcuvant - cod c′9 obtinut de urmatoarele trei mesaje de informatie m4,m5,m6).Scventa de caractere transmisa va ıncepe cu

100 110 101 010 001 011 011 000 001 011 010 001 . . .

Conform Teoremei 10.5, folosind C2 pentru a detecta d2 − 1 = 2 erori, si apoi C1

pentru a corecta toate caracterele marcate, se pot corecta ın ansamblu toate pachetelede cel mult s(d2 − 1) = (d1 − 1)(d2 − 1) = 6 erori.

Page 463: Criptografie complet

10.5. EXERCITII 119

De exemplu, sa presupunem ca primii 6 biti au fost transmisi incorect, deci s-aprimit 011 001 101 010 001 011 . . .. Eliminand efectul transpunerii la adancimeas = 3, se ajunge la cuvintele

001000 100101 111011

(care comparate respectiv cu c′1, c′2, c

′3 au erori fiecare pe primele doua pozitii). Deoa-

rece sindromurile sunt nenule, C2 va detecta erori ın toate cele trei cuvinte, deci toticei 18 biti sunt marcati (ıi vom ınlocui cu ∗).

Presupunand ca nu mai sunt alte erori, dupa un procedeu similar se obtin cuvin-tele c′4, . . . , c

′8, fara caractere marcate.

Eliminand acum efectul transpunerii la adancimea k2 = 3, se obtin cuvintele

c1 = ∗ ∗ ∗01110, c2 = ∗ ∗ ∗00011, c3 = ∗ ∗ 100101.

Exista o modalitate unica de a ajunge la cuvinte - cod din C1 prin ınlocuirea ∗ cucaractere 0 sau 1.

10.5 Exercitii

10.1 Demonstrati Lema 10.1

10.2 Aratati ca daca un cod ciclic detecteaza o eroare - tip e, atunci detecteazatoate erorile - tip obtinute prin permutari ciclice ale lui e.

10.3 Verificati ca pachetele ciclice - tip de erori de lungime 3 din Z152 au sindromuri

diferite pentru codul din Exemplul 10.6.

10.4 Aratati ca g(X) = 1+X2+X4+X5 genereaza un (15, 10) - cod ciclic corectorde pachete de maxim 2 erori. Este acesta un cod corector de 2 erori independente ?

10.5 Aratati ca g(X) = 1 + X3 + X4 + X5 + X6 genereaza un (15, 9) - cod ci-clic corector de pachete de maxim 3 erori. Este acesta un cod corector de 3 eroriindependente ?

10.6 Aratati ca g(X) = 1 + X4 + X6 + X7 + X8 genereaza un (15, 7) - cod cicliccorector de 2 erori independente si de pachete de 4 erori.

10.7 Fie codul din Exemplul 10.6. Sa se decodifice mesajele:101101110001000, 001101100010101, 100110101010011101101000010111, 000000111110000

10.8 Fie (15, 10) - codul ciclic binar generat de g(X) = 1 + X2 + X4 + X5.Cate erori au pachetele - tip pe care le poate corecta ?

Decodificati mesajele:010101000010010, 011010010010100, 001101000000100000100010100101, 000000011111001.

Page 464: Criptografie complet

120 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE

10.9 Fie codul generat de polinomul g(X) = 1 + X + X2 + X3 + X6. Codificatimesajele de informatie m1(X) = 1, m2(X) = X2, m3(X) = 1 + X,

m4(X) = 1 + X2, m5(X) = X3, m6(X) = 1.Determinati sirul de biti transmisi daca se foloseste o transpunere la adancimea

s unde(a) s = 1 (b) s = 2 (c) s = 3.

10.10 Ce secventa de caractere este transmisa daca se foloseste un 0 - cadru detranspunere ıntarziata ?

10.11 Demonstrati Teorema 10.4

10.12 Folosind codurile definite ın Exemplul 10.12, sa se codifice urmatoarele me-saje de informatie prin transpunerea ıncrucisata a lui C1 cu C2:

(a) m1 = 0110, m2 = 1011, m3 = 1111, s = 2(b) m1 = 0110, m2 = 1011, m3 = 1111, s = 3(c) m1 = 0010, m2 = 1111, m3 = 1010, s = 3(d) m1 = 1000, m2 = 0100, m3 = 0010, m4 = 0001, m5 = 0011,

m6 = 0100 s = 3

10.13 Folosind codurile din Exemplul 10.12 au fost obtinute prin transpunereıncrucisata a lui C1 cu C2 la adancimea s = 3, urmatoarele secvente binare:

(a) 000001001110110001000111000111000111000000000000000000 . . .(b) 100011001111101010011001111010100110100100011101000100 . . .Aflati meajele de informatie m1,m2,m3.

10.14 Gasiti un rezultat analog Teoremei 10.5 daca pentru C2 se foloseste s - cadrulde transpunere ıntarziata ın loc de s - transpunere.

Page 465: Criptografie complet

Prelegerea 11

Alte definitii ale codurilor ciclice

Primele doua sectiuni ale acestei prelegeri vor trece ın revista cateva notiuni algebricefundamentale ın construirea codurilor ciclice.

11.1 Elemente primitive ın extensii Galois

Definitia 11.1 Fie F un corp finit. Un element a ∈ F are ordin n (n ≥ 1) dacaan = 1 si ak 6= 1, ∀k, 0 < k < n. Vom scrie ord(a) = n.

Propozitia 11.1 Intr-un corp finit:- Orice element nenul are un ordin finit;- Daca n = ord(a) atunci a, a2, . . . , an sunt distincte;- ak = 1 daca si numai daca ord(a)|k (ord(a) este divizor al lui k).

Demonstratie: Fie a ∈ F, a 6= 0. Cum F este finit, elementele a, a2, a3, . . . nu potfi toate distincte. Vom alege cel mai mic n pentru care ∃i an+i = ai. Relatia sepoate simplifica (lucram ıntr-un corp) cu ai si se obtine an = 1. Din constructie,a, a2, . . . , an sunt distincte, deci n este ordinul lui a.

Pentru k = ni avem ak = (an)i = 1i = 1. Reciproc, sa presupunem ak = 1.Teorema ımpartirii cu rest da k = qn + r, r < n. Avem 1 = ak = aqnar = ar.

Cum r < n rezulta r = 0. 2

Definitia 11.2 Un element a ∈ F este primitiv daca toate puterile sale genereazaF \ {0}.Observatie: Daca F are r elemente, atunci un element este primitv daca si numaidaca are ordinul r − 1.

Teorema 11.1 Orice corp finit are cel putin un element primitiv.

Demonstratie: Cum F este finit (card(F ) = r), se poate gasi un element a ∈ F deordin n maxim. Evident n ≤ r − 1. Mai trebuie aratat ca n ≥ r − 1.

Fie b ∈ F de ordin s. Sa-l descompunem pe s ın factori primi: s = piqj . . . (p, q, . . .numere prime). La randul lui n = ptn′ unde n′ nu este divizibil cu p (iar t poate fieventual zero).

121

Page 466: Criptografie complet

122 PRELEGEREA 11. ALTE DEFINITII ALE CODURILOR CICLICE

Sa consideram s′ = s/pi (deci s = pis′) si fie c = aptbs′ ∈ F . Vrem sa aratam ca

c are ordinul m = pin′. Pentru aceasta, avem:cm = aptmbs′m = aptn′pi

bpis′n′ = (an)pi(bs)n′ = 1pi

1n′ = 1.Mai ramane de aratat ca cm′

= 1 =⇒ m′ ≥ m. Este suficient sa verificam ca pi

si n′ sunt divizori ai lui m′; deoarece ei sunt primi intre ei, va rezulta ca produsulm = pin′ este de asemenea divizor al lui m′.

Din calculul 1 = (cm′)n′ = apin′m′

bs′m′= (an)m′

bs′m′= bs′m′

rezulta (Propozitia11.1) ca ordinul s = pis′ al lui b divide s′m′; deci pi|m′.

In plus, din 1 = (cm′)p′ = aptpim′

bpis′m′= aptpim′

(bs)m′= aptpim′

rezulta ca ordinuln = ptn′ al lui a divide ptpim′; deci n′|pim′.

Cum n este cel mai mare ordin ale elementelor din F , avem pin′ ≤ ptn′, decii ≤ t, adica pi divide n = pin′.

In mod similar, toti factorii lui s sunt divizori ai lui n, deci s|n.Am aratat urmatoarea afirmatie:

∀b ∈ F =⇒ ord(b)|nDeci b este p radacina a polinomului Xn − 1 = 0, de unde rezulta ca polinomul

Xn − 1 = 0 are r − 1 radacini, adica r − 1 ≤ n. 2

Fie F un corp fixat si f(X) ∈ F [X] un polinom arbitrar. Spunem ca a ∈ F esteradacina a lui f daca f(a) = 0.

Se poate demonstra imediat afirmatia:

Propozitia 11.2 Daca un polinom f are radacinile distincte a1, a2, . . . , an atunciel este divizibil cu polinomul (X − a1)(X − a2) . . . (X − an).

Exemplul 11.1 Polinomul X3 + 1 are o radacina 1 ın Z2. Deci X3 + 1 se dividecu X + 1:

X3 + 1 = (X + 1)(X2 + X + 1)Aceasta este o factorizare completa; deoarece X2 + X + 1 nu are radacini ın Z2,

el nu poate fi descompus ın produsul a doua polinoame de gradul 1. Acelasi polinomX3 + 1 are ın Z3 pe 2 ca radacina tripla, deci aici putem scrie:

X3 + 1 = (X + 1)3.Rezulta ca factorizarea unui polinom depinde de corpul ın care este definit.

Din Teorema 11.1 si Propozitia 11.2 rezulta ca daca a ∈ F este un element deordin n, atunci Xn − 1 se poate descompune ın

Xn − 1 = (X − a)(X − a2) . . . (X − an).

Definitia 11.3 Un polinom f(X) ∈ F [X] de grad n este ireductibil daca nu se poatedescompune ın produsul a doua polinoame din F [X] de grad mai mic decat n.

Observatii;

• Orice polinom liniar este ireductibil. Pentru polinoame de grad cel putin 2,Propozitia 11.2 afirma ca:

Un polinom ireductibil ıntr-un corp nu are radacini ın acel corp.

Este interesant ca reciproca nu este adevarata decat pentru polinoamele degrad 2 si 3. Astfel, polinomul f(X) = (X2 + X + 1)2 ∈ Z2[X], desi nu areradacini ın Z2, este reductibil.

Page 467: Criptografie complet

11.2. POLINOAME MINIMALE 123

• In R singurele polinoame ireductibile sunt de gradul 1 sau 2. Daca un polinomare grad impar, el are sigur o radacina reala, iar daca este de grad par, atunciare sau cel putin o radacina reala, sau cel putin doua radacini complexe deforma a± ib. In acest ultim caz, el se va divide cu (x− a)2 + b2, care este unpolinom din R[X] de gradul 2.

• In corpul complex C, teorema fundamentala a algebrei asigura ca orice polinomireductibil are gradul 1.

Definitia 11.4 Caracteristica unui corp finit F este cel mai mic numar de termeniai sumei S = 1 + 1 + . . . + 1 cu proprietatea S = 0.

Propozitia 11.3 Caracteristica unui corp finit este numar prim.

Demonstratie: Sa consideram elementele ai = 1 + 1 + . . . + 1 de cate i termenifiecare. Deoarece nu pot fi o infinitate de valori distincte, fie p minim cu proprietatea∃i, ai = ai+p. Rezulta ap = ai+p − ai = 0. Deci F are caracteristica p.

Presupunem p = st cu 1 ≤ s < p. Evident 0 = ast = as+as+ . . .+as (t termeni).Deoarece s < p avem as 6= 0. Impartind relatia cu as se obtine 0 = 1+1+. . .+1 = at.Deci t = p. 2

Corolarul 11.1 Orice corp de caracteristica p este o extensie a lui Zp.

Demonstratie: Exercitiu.

Corolarul 11.2 GF (qr) este un corp de caracteristica q.

Demonstratie: Reamintim ca GF (qr) contine toate polinoamele din Zq[X] de grad

cel mult r − 1. In particular, polinoamele de grad 0 (constantele) formeaza unsubcorp izomorf cu Zq care are caracteristica q. 2

Propozitia 11.4 Intr-un corp de caracteristica p avem (a + b)p = ap + bp

Demonstratie: Se foloseste binomul lui Newton, ın care Ckp = 0, ∀k, 0 < k < p. 2

11.2 Polinoame minimale

In cele ce urmeaza vom restrange studiul la cazul F = Zq, q numar prim.

Definitia 11.5 Fie β un element dintr-o extensie a lui Zq. Se numeste ”polinomminimal” al lui β polinomul normat g(X) ∈ Zq[X] de grad minim, cu g(β) = 0.

Exemplul 11.2 Sa consideram extensia GF (23) generata de radacina α a plinomu-lui 1+X +X3. Deoarece α este primitiv, avem GF (23) = {0, 1, α, α2, α3, α4, α5, α6}.Polinoamele minimale ale fiecarui element sunt date ın tabelul:

Element Polinom minimal0 X1 1 + Xα, α2, α4 1 + X + X3

α3, α5, α6 1 + X2 + X3

Page 468: Criptografie complet

124 PRELEGEREA 11. ALTE DEFINITII ALE CODURILOR CICLICE

Propozitia 11.5 Un polinom minimal g(X) ∈ Zq[X] este ireductibil peste Zq.

Demonstratie: Daca ar exista descompunerea g(X) = u(X)v(X) cu u(X), v(X) ∈Zq[X], atunci vom avea u(β) = 0 sau v(β) = 0, ceea ce contrazice definitia polino-mului minimal pentru β. 2

Propozitia 11.6 Daca f(X) ∈ Zq[X] verifica f(β) = 0 atunci g(X)|f(X).

Demonstratie: Conform identitatii ımpartirii, avemf(X) = q(X)g(X) + r(X) cu grad(r(X)) < grad(g(X)).Cum f(β) = 0, g(β) = 0, va rezulta r(β) = 0, contradictie.Singura posibilitate ramane r(X) ≡ 0, deci f(X) = q(X)g(X). 2

Din Propozitiile 11.5 si 11.6 rezulta ca un polinom normat peste Zq care admitepe β ca radacina este polinom minimal al lui β. Acest polinom este unic.

Teorema 11.2 Fie β ∈ GF (qk). Atunci exista un polinom minimal al lui β de gradcel mult k.

Demonstratie: Dupa cum am vazut (Prelegerea 8), GF (qk) are dimensiunea k. Obaza a lui este {1}, {X}, . . . , {Xk−1}. Deci cele k + 1 elemente 1, β, β2, . . . , βk ∈GF (qk) sunt liniar dependente.

Rezulta ca exista un polinom de grad maxim k pentru care β este radacina. 2

Teorema 11.3 Solutiile ecuatiei Xq−1 − 1 = 0 dau elementele nenule din Zq.

Demonstratie: Elementele nenule din Zq formeaza grup multiplicativ. Ordinulfiecarui element divide ordinul grupului, care este q − 1 (Teorema 11.1).

Fie β ∈ Zq \ {0}; subgrupul ciclic generat de β este 1, β, β2, . . . , βt−1 unde bt = 1si t|q − 1. Deci βq−1 = 1.

In plus, ecuatia Xq−1 − 1 = 0 are q − 1 radacini. 2

Teorema 11.4 Xm − 1|Xn − 1 ⇐⇒ m|n.

Demonstratie: ”⇐”: Fie n = md. Cum Y − 1 divide pe Y d− 1, daca se ia Y = Xm,vom avea Xm − 1|Xmd − 1.

”⇒”: Sa presupunem ca Xm − 1|Xn − 1 si fie n = md + s, (s < m). AvemXn − 1 = Xs(Xmd − 1) + Xs − 1 = q(X)(Xm − 1) + r(X) cu grad(r(X)) = s < m.

Pentru a verifica ipoteza, trebuie ca s = 0, deci n = md. 2

Teorema 11.5 Fie f(X) ∈ Zq[X] si β o radacina a sa (eventual dintr-o extensiea lui Zq). Atunci si βq este radacina a lui f(X).

Demonstratie: Scriem f(X) = a0 + a1X + . . . + anXn. Cum Zq este corp de carac-teristica q, este adevarata relatia (a + b)q = aq + bq (Propozitia 11.4).

De asemenea (Teorema 11.3) ∀a ∈ Zq \ {0} avem aq−1 − 1 = 0, deci aq = a.Atunci se poate scrie

(f(X))q = aq0 + aq

1Xq + . . . + aq

n(Xn)q = a0 + a1Xq + . . . + anXnq = f(Xq).

In particular, f(βq) = (f(β))q = 0. 2

Page 469: Criptografie complet

11.2. POLINOAME MINIMALE 125

Teorema 11.6 Orice polinom normat ireductibil peste Zq de grad m este un factoral polinomului Xqm −X.

Demonstratie: Daca g(X) = X, afirmatia este banala.Sa presupunem ca g(X) 6= X si fie β ∈ GF (qm) o radacina nenula a sa, deci

g(β) = 0. Atunci (Teorema 11.3) β satisface ecuatia Xqm−1−1 = 0, deci (Propozitia11.6) Xqm−1 − 1 se divide cu polinomul minimal g(X). 2

Teorema 11.7 Orice factor ireductibil g(X) ∈ Zq[X] al lui Xqm −X are gradul celmult m.

Demonstratie: Fie g(X)|Xqm −X, ireductibil peste Zq, 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 deforma

β = a0 + a1α + . . . + ak−1αk−1.

Atunci βqm= aqm

0 +aqm

1 αqm+ . . .+aqm

k−1(αk−1)qm

= a0 +a1αqm

+ . . .+ak−1(αqm

)k−1 =a0 + a1α + . . . + ak−1α

k−1 = βdeoarece GF (qm) are tot caracteristica q ca si Zq, iar α fiind o radacina a lui g(X),

este radacina si a lui Xqm −X, deci αqm= α, de unde rezulta αjqm

= αj ∀j ≥ 0.Am obtinut ın final faptul ca β este o solutie a ecuatiei Xqm − X = 0. Sunt

posibile qk asemenea elemente β distincte, iar cum ecuatia are qm radacini, rezultaqk ≤ qm sau k ≤ m. 2

Teorema 11.8 Fie β ∈ GF (qm) de polinom minimal g(X), grad(g(X)) = k siord(β) = t. Atunci

(i) t|qk − 1;(ii) k este minim cu proprietatea (i).

Demonstratie: Stim (Teorema 11.6) ca g(X) este un factor al lui Xqk − X; deciβqk

= β, de unde rezulta t|qk − 1.Sa presupunem acum ca exista p < k cu t|qp− 1. Atunci βqp−1 = 1, adica β este

o radacina a ecuatiei Xqp−X = 0, deci g(X) este un factor al polinomului Xqp−X.Conform Teoremei 11.7, rezulta k ≤ p, contradictie. 2

Teorema 11.9 Fie polinomul g(X) ∈ Zq[X], grad(g(X)) = m si β ∈ GF (qm) oradacina a sa. Atunci β, βq, βq2

, . . . , βqm−1sunt toate radacinile lui g(X).

Demonstratie: Deoarece g(β) = 0, avem – conform Teoremei 11.5 – ca βq, βq2, . . . ,

βqm−1sunt si ele radacini ale lui g(X). De asemenea, conform Teoremei 11.6, β este

radacina a lui Xqm − X, adica βqm= β. Mai ramane de aratat ca aceste radacini

sunt distincte. Presupunem ca exista 0 ≤ i < j < m cu βqi= βqj

. Avem

β = βqm

=(βqj

)qm−j

=(βqi

)qm−j

= βqm+i−j

Deci β este radacina a polinomului Xqm+i−j= X si – cu Teorema 11.7,

grad(g(X)) = m ≤ m + i− j < m, contradictie. 2

Din Teorema 11.9 rezulta ca ın extensia GF (qm)[X] se poate scrie

g(X) = (X − β)(X − βq) . . . (X − βqm−1

).

Page 470: Criptografie complet

126 PRELEGEREA 11. ALTE DEFINITII ALE CODURILOR CICLICE

Teorema 11.10 Fie g(X) un polinom normat ireductibil peste Zq, grad(g(X)) =m, si β o radacina a sa din GF (qm). Atunci toate radacinile lui g(X) au acelasiordin.

Demonstratie: Fie p = ord(β), p′ = ord(βqj) care – conform Teoremei 11.9 – este

tot radacina a lui g(X). Avem:(βqj

)p= (βp)qj

= 1 si deci p′|p.De asemenea,

βp′ =(βqm

)p′=

((βqj

)qm−j )p′

=((

βqj)p′

)qm−j

= 1 ⇒ p|p′.S-a mai folosit Teorema 11.8, conform careia p divide qm − 1 dar nu divide nici

un numar de forma qs − 1 cu s < m.Deci p = p′. 2

11.3 Definirea codurilor ciclice prin radacini

O alta metoda de definire a unui cod ciclic consta ın a da initial toate radacinile(eventual ıntr-o extensie a lui Zq) cuvintelor - cod, considerate ca polinoame.

Definitia 11.6 Fie α1, α2, . . . , αr elemente dintr-o extensie a lui Zq. Codul ciclicA este format din toate elementele {f(X)} din algebra polinoamelor modulo Xn− 1care admit pe αi, 1 ≤ i ≤ r ca radacini simple.

De remarcat ca ın aceasta definitie n este deocamdata nedeterminat.

Conform Definitiei 11.6, f(X) se va divide cu fiecare polinom minimal mi(X)corespunzator radacinii αi (1 ≤ i ≤ r). Deci polinomul generator al codului cicliceste

g(X) = cmmmc {m1(X),m2(X), . . . , mr(X)} .

Propozitia 11.7 A = ({g(X)}).Demonstratie: Este lasata ca exercitiu.

Deoarece polinomul generator g(X) divide pe Xn − 1, rezulta ca fiecare αi esteradacina a lui Xn − 1. Deci ordinul ord(αi) al fiecarei radacini αi (1 ≤ i ≤ r) vadivide pe n. O modalitate naturala de definire a lui n este

n = cmmmc {ord(α1), ord(α2), . . . , ord(αr)}Un caz particular important este acela ın care toate radacinile α1, α2, . . . , αr suntputeri ale unui anumit element, adica

αi = αui , 1 ≤ i ≤ r.

Fie p = ord(α). Atunci polinomul minimal mi(X) al lui αi va avea (Teorema 11.9)toate radacinile printre elementele αui , αqui , αq2ui , . . ..

Numarul factorilor lui g(X) si gradul fiecarui polinom minimal mi(X) se vordetermina atunci din ordinul p si din exponentii ui, qui, q

2ui, . . . (1 ≤ i ≤ r). Intr-adevar, numarul de clase de resturi modulo p ın succesiunea ui, qui, . . . va da gradulpolinomului minimal mi(X).

Page 471: Criptografie complet

11.3. DEFINIREA CODURILOR CICLICE PRIN RADACINI 127

Exemplul 11.3 Fie α ∈ GF (24) primitiv, radacina a polinomului 1 + X + X4,ireductibil peste Z2. Sa definim un cod care sa aiba ca radacini α, α2, α3, α4, α5, α6.

Fiind primitiv, ord(α) = 24 − 1 = 15 (vezi si Prelegerea 8, Exemplul 8.8).Fie mi(X) polinomul minimal al radacinii αi, 1 ≤ i ≤ 6.Radacinile lui m1(X) sunt α, α2, α4, α8 (α16 = α), deci

m1(X) = m2(X) = m4(X) = (X − α)(X − α2)(X − α4)(X − α8).Acest polinom este cunoscut, anume 1 + X + X4.Radacinile lui m3(X) sunt α3, α6, α12, α24 = α9 (α18 = α3), deci m3(X) este un

polinom de gradul 4, egal cu m6(X). Notam m3(X) = a0+a1X +a2X2 +a3X

3+X4.Detaliind m3(α

3) = 0, avem

a0

1000

+ a1

0001

+ a2

0011

+ a3

0101

+

1111

=

0000

.

de unde se poate scrie sistemul de ecuatii

a0 + 1 = 0, a3 + 1 = 0, a2 + 1 = 0, a1 + a2 + a3 + 1 = 0

cu solutia a0 = a1 = a2 = a3 = 1, deci m3(X) = m6(X) = 1 + X + X2 + X3 + X4.Radacinile lui m5(X) sunt α5, α10 (α20 = α5), deci m5(X) este un polinom de

gradul 2 : m5(X) = b0 + b1X + X2. Cum m5(α5) = 0, se obtine:

b0

1000

+ b1

0110

+

1110

=

0000

care are solutia b0 = b1 = 1, deci m5(X) = 1 + X + X2.Polinomul generator esteg(X) = cmmmc{m1(X),m2(X),m3(X),m4(X),m5(X),m6(X)} =

= m1(X)m3(X)m5(X) = (1 + X + X4)(1 + X + X2 + X3 + X4)(1 + X + X2) =1 + X + X2 + X4 + X5 + X8 + X10.

De remarcat ca era suficient sa cerem ca α, α3, α5 sa fie radacini ale codului.

Exemplul 11.4 Fie β = α89 unde α ∈ GF (211) este primitiv. Deoarece211 − 1 = 89 · 23, rezulta β23 = α211−1 = 1.

Sa consideram drept radacini elementele β, β3, β9, β16.Fie m(X) polinomul minimal al lui β. Radacinile lui m(X) sunt (conform Teo-

remei 11.9) β, β2, β4, β8, β16, β32 = β9, β18, β36 = β13, β26 = β3, β6, β12. (β24 = β)Deci m(X) este un polinom de gradul 11 care are ca radacini pe β, β3, β9, β16,

deci polinomul generator al codului respectiv este g(X) = m(X).

Fie polinomul f(X) = a0 + a1X + . . . + an−1Xn−1 ∈ Zq[X] si α o radacina a sa.

Atunci 0 = f(α) = a0 + a1α + a2α2 + . . . + an−1α

n−1, sau – altfel scris:

(a0 a1 a2 . . . an−1)

1α...

αn−1

= 0

Page 472: Criptografie complet

128 PRELEGEREA 11. ALTE DEFINITII ALE CODURILOR CICLICE

Deci cuvantul corespunzator polinomului f(X) este ın spatiul nul al matricii(1 α . . . αn−1) (1).

Aceasta este si conditia de divizibilitate a polinomului f(X) cu polinomul mini-mal m(X) al lui α. Multimea polinoamelor care satisfac conditia formeaza idealulgenerat de m(X). Dimensiunea acestui ideal este (Prelegerea 9) n− k undek = grad(m(X)). Deci spatiul liniar generat de matricea (1) are dimensiunea k.

Prin urmare, a cere ca f(X) sa admita pe α1, α2, . . . , αr ∈ GF (qm) ca radacinieste echivalent cu a cere ca vectorul corespunzator sa apartina spatiului nul al ma-tricii

Hmr,n =

1 α1 α21 . . . αn−1

1

1 α2 α22 . . . αn−1

2...

1 αr α2r . . . αn−1

r

Exemplul 11.5 Sa revenim la Exemplul 11.3. Polinomul {f(X)} apartine coduluirespectiv daca si numai daca vectorul corespunzator apartine spatiului nul al matricii

H =

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

1 α3 α6 α9 α12 1 α3 α6 α9 α12 1 α3 α6 α9 α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 10 1 0 0 1 1 0 1 0 1 1 1 1 0 00 0 1 0 0 1 1 0 1 0 1 1 1 1 00 0 0 1 0 0 1 1 0 1 0 1 1 1 11 0 0 0 1 1 0 0 0 1 1 0 0 0 10 0 0 1 1 0 0 0 1 1 0 0 0 1 10 0 1 0 1 0 0 1 0 1 0 0 1 0 10 1 1 1 1 0 1 1 1 1 0 1 1 1 11 0 1 1 0 1 1 0 1 1 0 1 1 0 10 1 1 0 1 1 0 1 1 0 1 1 0 1 10 1 1 0 1 1 0 1 1 0 1 1 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0

S-a obtinut 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, iarurmatoarele doua linii sunt identice (deci penultima se poate elimina).

Page 473: Criptografie complet

11.4. ALTA DEFINITIE A CODURILOR CICLICE 129

11.4 Alta definitie a codurilor ciclice

Vom mai prezenta si o a treia constructie a codurilor ciclice, realizata de EdwinBerlekamp ın 1968.

Definitia 11.7 Fie polinomul Tr(X) = X + Xq + Xq2+ . . . + Xqr−1 ∈ GF (qr)[X].

Se numeste ”urma” lui α ∈ GF (qr) expresia Tr(α).

Propozitia 11.8 Tr este o aplicatie : GF (qr) → Zq.

Demonstratie: Trebuie aratat ca ∀α ∈ GF (qr) avem Tr(α) ∈ Zq. Pentru aceastaeste suficient sa aratam ca Tr(α) verifica ecuatia Xq − X = 0. Folosind faptul caca GF (qr) este corp de caracteristica q si ca ∀α ∈ GF (qr) avem αqr

= α, se verificaimediat relatia [TR(α)]q = TR(α). 2

Propozitia 11.9 Tr este aplicatie liniara.

Demonstratie: Relatia Tr(α + β) = Tr(α) + Tr(β) este usor de verificat, deoarecese lucreaza ın corpuri de caracteristica q. 2

Propozitia 11.10 Pentru orice a ∈ Zq exista qr−1 valori α ∈ GF (qr) cu Tr(α) =a.

Demonstratie: Fiecare ecuatie Tr(X) = a admite maxim qr−1 radacini, iar numarulde elemente a posibile este q. Mai trebuie aratat ca toate cele q ecuatii au radacinidistincte. Aceasta se poate deduce foarte simplu folosind derivata formala ıntr-uncorp de caracteristica q: toate ecuatiile au aceeasi derivata: 1. 2

Teorema 11.11 Polinomul Tr(X) se poate descompune ın GF (qr) ın produs depolinoame minimale.

Demonstratie: Demonstratia se bazeaza pe urmatorul algoritm:(1) Fie polinomul g(X) = Tr(X);(2) Se considera α ∈ GF (qr) cu g(α) = 0. Deci g(X) este divizibil cu polinomul

minimal m(X) al lui α.(3) g(X) := g(X)/m(X). Daca g(X) = 1, STOP, altfel se reia pasul (2).Existenta radacinilor pentru g(X) (pasul (2)) este asigurata de faptul ca ın

GF (qr) orice polinom ireductibil este polinom minimal.

Exemplul 11.6 Sa consideram GF (24), deci q = 2, r = 4. Aici se poate verificadescompunerea

Tr(X) = X + X2 + X4 + X8 = X(1 + X)(1 + X + X2)(1 + X + X4)care sunt toate polinoame minimale.Fie α ∈ GF (24) radacina (primitiva) a ecuatiei 1 + X + X4 = 0. Deci toate

elementele nenule din GF (24) se pot scrie ca puteri ale lui α. Vom folosi aceastapentru a lista valorile functiei Tr : GF (24) → Z2 :

Page 474: Criptografie complet

130 PRELEGEREA 11. ALTE DEFINITII ALE CODURILOR CICLICE

X Tr(X) X Tr(X) X Tr(X) X Tr(X)0 0 α3 1 α7 1 α11 11 0 α4 0 α8 0 α12 1α 0 α5 0 α9 1 α13 1α2 0 α6 1 α10 0 α14 1

Dupa cum se observa, sunt 8 = 23 valori 0 si 8 valori 1.

Putem da acum teorema principala care defineste codurile ciclice folosind oper-atorul Tr:

Teorema 11.12 Fie n numar natural, q numar prim, k ordinul lui q modulo n(qk ≡ 1 mod n) si β ∈ GF (qk) element primitiv de ordin n. Atunci

A = {cα = (Tr(α), T r(αβ), T r(αβ2), . . . , T r(αβn−1))|α ∈ GF (qk)}este un (n, k) - cod ciclic peste Zq.

Demonstratie: Din Propozitia 11.9 rezulta ca A este cod liniar.Se verifica apoi ca cαβ−1 ∈ A este o permutare ciclica a lui cα; deci A este

cod ciclic. Deoarece β este primitiv, ınseamna ca polinomul sau minimal m(X) =h0 + h1X + . . . + hkX

k are gradul k. Daca cα = (c0, c1, . . . , cn−1), avem

k∑

i=0

cihi = Tr(αm(β)) = Tr(0) = 0

care constituie una din cele n− k ecuatii de control pentru A. Deoarece m(X) esteminimal (deci ireductibil), h(X) = Xkm(X−1) este polinomul de control pentru A.Cum gradul lui este k, avem un (n, k) - cod ciclic peste Zq. 2

De remarcat ca aceasta teorema defineste numai codurile ciclice ”ireductibile”(care nu contin subcoduri ciclice proprii), deci clasa lor este inclusa strict ın clasacodurilor ciclice data de cele doua definitii anterioare (prin ideale si prin radacinilepolinomului generator).

Exemplul 11.7 Sa luam n = 15, q = 2, deci k = 4. In GF (24) vom lua α,radacina polinomului 1 + X + X4. Se stie ca ea este un element primitiv. AplicatiaTr este Tr(X) = X +X2 +X4 +X8 iar codul A este format din 16 cuvinte de forma

(Tr(β), T r(βα), . . . , T r(βαn−1)), ∀β ∈ GF (24).Pentru β = 0, 00 . . . 0 ∈ A.Pentru β = 1, (Tr(1), T r(α), . . . , T r(αn−1)) = 000100110101111Celelalte 14 cuvinte sunt permutarile circulare ale acestuia.

Polinomul de control al codului este h(X) = X4(1 +

1

X+

1

X4

)= 1 + X3 + X4,

iar polinomul generator

g(X) =X16 −X

X4 + X3 + 1= X + X4 + X5 + X7 + X9 + X10 + X11 + X12,

al carui vector corespunzator se obtine ın constructia 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 fiind

codul dual (radacina polinomului 1 + X3 + X4 este de asemenea primitiva).

Page 475: Criptografie complet

11.5. EXERCITII 131

11.5 Exercitii

11.1 Demonstrati Corolarul 11.1.

11.2 Demonstrati Propozitia 11.7

11.3 Construiti urmatoarele corpuri:(a) GF (22);(b) GF (23) folosind polinomul 1 + X2 + X3;(c) GF (24) folosind polinomul 1 + X3 + X4;(d) GF (25) folosind polinomul 1 + X2 + X5.

11.4 Gasiti o extensie a lui Z2 ın care X9− 1 sa se descompuna ın factori liniari.

11.5 Gasiti toate elementele primitive din GF (23) si GF (24).

11.6 Gasiti toate elementele primitive din GF (32) si GF (52).

11.7 Construiti GF (24) ca o extensie a lui GF (22).

11.8 Fie α ∈ GF (24), radacina a polinomului 1 + X + X4.Gasiti polinoamele minimale al lui β = α7 si β = α10.

11.9 Gasiti polinoamele minimale al tuturor elementelor din:- GF (23), generat cu 1 + X + X3;- GF (25), generat cu 1 + X2 + X5;- GF (32), generat cu 2 + X + X2;- GF (52), generat cu 3 + 2X + X2.

11.10 Orice element nenul din GF (qm) are un ordin prim cu q.

11.11 Gasiti polinomul generator al unui cod ciclic de lungime 15, de radacini1, α5, α7, α ∈ GF (24) fiind radacina a polinomului 1 + X + X4.

Construiti matricea de control a codului.Aratati ca v(X) este polinom - cod daca si numai daca ponderea w(v) este para.

11.12 Gasiti polinomul generator al unui cod ciclic de radacini α2, α3, α6 undeα ∈ GF (23) este radacina polinomului 1 + X + X3.

11.13 Aratati ca orice cuvant - cod al unui cod ciclic are pondere para daca sinumai 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 (23) (b) GF (25) (c) GF (32) (d) GF (33) (e) GF (52).

11.15 Folosind Teorema 11.12 sa se construiasca toate codurile ireductibile pentruGF (23), GF (25), GF (32).

11.16 Verificati ca polinomul h(X) construit ın demonstratia Teoremei 11.12 estepolinomul generator al codului dual.

Page 476: Criptografie complet

Prelegerea 12

Coduri BCH

Codurile BCH constituie cea mai relevanta clasa de coduri ciclice. Ele au fostdefinite ın mod independent de Bose si Chaudhuri pe de-o o parte, Hocquenheimde pe de-alta parte. Numele de BCH (Bose - Chaudhuri - Hocquenheim) a fostdat de Peterson, care s-a ocupat de ele ın mod special, construind si algoritmul dedecodificare.

12.1 Definirea codurilor BCH

Definitia 12.1 Fie q numar prim, m0,m, d numere naturale si α ∈ GF (qm). Uncuvant {f(X)} este ın codul BCH daca polinomul are ca radacini

αm0 , αm0+1, . . . , αm0+d−2.

In majoritatea cazurilor studiate se considera m0 = 0 sau m0 = 1.

Teorema 12.1 Lungimea n a cuvintelor - cod este egala cu ordinul e al lui α.

Demonstratie: Conform constructiei codurilor ciclice bazata pe radacinile polino-mului generator, lungimea n a cuvintelor - cod este cel mai mic multiplu comun alordinelor radacinilor. In cazul codurilor BCH avem

(αm0)n = αm0n = 1 si 1 = (αm0+1)n = αm0+n = αm0αn

deci αn = 1. Prin urmare e|n si n ≥ e.De asemenea, (αj)e = (αe)j = 1 ∀j = m0,m0 + 1, . . . , m0 + d− 2, adica n ≤ e.Rezulta n = e. 2

De remarcat ca, daca α este primitiv, atunci e = qm − 1.

Teorema 12.2 Intr-un cod BCH definit de radacinile αm0 , αm0+1, . . . , αm0+d−2 (α ∈GF (qm)), distanta minima a codului este cel putin d (si deci codul poate corecta cel

putin orice combinatie de t ≤[d− 1

2

]erori).

133

Page 477: Criptografie complet

134 PRELEGEREA 12. CODURI BCH

Demonstratie: Un cod BCH este spatiul nul al matricii

H =

1 αm0 (αm0)2 . . . (αm0)n−1

1 αm0+1 (αm0+1)2 . . . (αm0+1)n−1

...1 αm0+d−2 (αm0+d−2)2 . . . (αm0+d−2)n−1

Sa consideram urmatorul determinant, obtinut prin alegerea arbitrara a d − 1coloane din H:

D =

∣∣∣∣∣∣∣∣∣∣

(αm0)j1 (αm0)j2 . . . (αm0)jd−1

(αm0+1)j1 (αm0+1)j2 . . . (αm0+1)jd−1

...(αm0+d−2)j1 (αm0+d−2)j2 . . . (αm0+d−2)jd−1

∣∣∣∣∣∣∣∣∣∣=

= αm0(j1+j2+...+jd−1)

∣∣∣∣∣∣∣∣∣∣

1 1 . . . 1αj1 αj2 . . . αjd−1

...(αj1)d−2 (αj2)d−2 . . . (αjd−1)d−2

∣∣∣∣∣∣∣∣∣∣=

= αm0(j1+j2+...+jd−1)∏

i>k

(αji − αjk) 6= 0

pentru ca ji 6= jk daca i 6= k.

Deci orice submultime formata cu maxim d − 1 coloane din H este liniar inde-pendenta de unde - conform Teoremei 2.4 (Prelegerea 2) - distanta minima a coduluieste cel putin d. 2

Exemplul 12.1 Daca se lucreaza ın binar, puterile pare ale radacinilor se pot omitedin 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 Z2. De exemplu,daca β = α, radacina a polinomului 1 + X + X4, se obtine codul din Exemplul 11.3,Prelegerea 11.

Exemplul 12.2 Fie GF (32) generat de radacina α a polinomului ireductibil 2 +X + X2. Deoarece ord(α) = 8, orice cod va avea lungimea 8. Sa construim codulBCH de radacini α2, α3, α4. Polinoamele minimale sunt:

m2(X) = 1 + X2 cu radacini α2, α6;

m3(X) = 2 + X + X2 cu radacini α3, α

m4(X) = 1 + X numai cu radacina α4.

Deci polinomul generator este

g(X) = (1 + X2)(2 + X + X2)(1 + X) = 2 + X2 + X3 + 2X4 + X5.

Codul este un (8, 3) - cod ciclic. Deoarece printre radacini este si α, se poateconsidera m0 = 1, d = 5, deci codul poate corecta cel putin doua erori.

De remarcat ca daca folosim acest cod drept cod liniar, cum ponderea minimaa cuvintelor sale este 4 (de exemplu 02010201 este cuvant - cod), distanta minimaeste 4, deci codul nu poate corecta decat o singura eroare. Astfel, tratarea codurilorciclice sub forma de coduri liniare scade de obicei puterea de corectie a erorilor.

Page 478: Criptografie complet

12.2. ALGORITMUL PETERSON DE DECODIFICARE 135

Numerele m,m0, d, q sunt parametrii codului BCH. Ideea este de a-l mari pe d,pentru a putea corecta cate mai multe combinatii de erori. Acest lucru este posibiltotdeauna, deoarece m si q sunt arbitrari.

Sa observam ca pentru α primitiv, toate puterile lui α pana la qm − 1 suntdistincte. In cazul binar, avem urmatorul rezultat:

Teorema 12.3 Fie m un numar natural oarecare si α ∈ GF (2m) primitiv. Atunciexista un cod BCH de lungime n = 2m − 1 care corecteaza orice combinatie de

t ≤[2m − 1

2

]erori independente, folosind mt pozitii de control.

Demonstratie: Vom considera codul binar definit de radacinile α, α2, . . . , α2t. Acestaeste un cod BCH pentru q = 2, m0 = 1, d = 2t + 1, n = 2m− 1 si care are distantaminima cel putin 2t + 1. Pentru ca radacinile mentionate mai sus sa fie distincte,trebuie ca 2t ≤ 2m − 1.

Sa observam ca orice putere para a lui α este radacina a unui polinom minimalal unei puteri impare anterioare a lui α. Deci este suficient sa dam la ınceput doarradacinile α, α3, . . . , α2t−1 ale cuvintelor codului binar.

Avem - dupa definitie: g(X) = cmmmc{m1(X),m3(X), . . . , m2t−1(X)}.Pe de - alta parte, mi(X)|Xn − 1 = X2m−1 − 1 si deci - conform Teoremei 11.7

(Prelegerea 11), grad(mi(X)) ≤ m. Din cele doua relatii rezulta grad(g(X)) ≤ mt.Cum grad(g(X)) da numarul de simboluri de control, teorema este demonstrata.2

12.2 Algoritmul Peterson de decodificare

Fie codul BCH definit de radacinile αm0 , αm0+1, . . . , αm0+2t−1 (d = 2t + 1) cuα ∈ GF (qm).

Un asemenea cod corecteaza orice combinatie de maxim t erori independente.Fie {f(X)} un cuvant - cod transmis si

{r(X)} = {f(X) + e(X)} = {f(X)}+ {e(X)}secventa receptionata, unde {e(X)} este vectorul - eroare.

Avem, pentru j = m0,m0 + 1, . . . , m0 + 2t− 1 :

Sj = r(αj) = f(αj) + e(αj) = e(αj).

Sj se numesc componentele sindromului.La decodificare, tipul e de eroare este determinat complet daca se stiu:

• Valorile erorilor Yi ∈ Zq;

• Localizarile erorilor Xi ∈ GF (qm).

Vom nota pozitiile elementelor cuvintelor din GF (qm) prin puterile lui α; pe pozitiai ın e(α) se afla coeficientul lui αi−1, deci αi−1 va localiza a i - a componenta dintr-uncuvant.

Daca au intervenit t erori, modelul de eroare este complet caracterizat de cunoas-terea celor t perechi nenule (Yi, Xi), 1 ≤ i ≤ t.

Page 479: Criptografie complet

136 PRELEGEREA 12. CODURI BCH

Putem conveni (evident) ca

Yi = 0 ⇐⇒ Xi = 0.

De remarcat ca Xi nu reprezinta αi ci un αj arbitrar care va trebui aflat.Deci, a gasi pe {e(X)} revine la a determina 2t elemente Xi, Yi, 1 ≤ i ≤ t,

grupate ın t perechi, cu proprietatea Yi = 0 ∀i, t < i ≤ qm − 1. Avem

Sj = e(αj) =t∑

i=1

YiXji , m0 ≤ j ≤ m0 + 2t− 1.

Atunci

(Sj)q =

(t∑

i=1

YiXji

)q

=t∑

i=1

Y qi Xjq

i =t∑

i=1

YiXjqi = Sjq

Deci, determinarea polinomului - eroare {e(X)} se reduce la aflarea solutiilor(Yi, Xi), 1 ≤ i ≤ t ale sistemului de ecuatii

t∑

i=1

YiXji = Sj, m0 ≤ j ≤ m0 + 2t− 1. (1)

Daca au intervenit k (k < t) erori, se completeaza cele k perechi nenule cu altet−k perechi nule (Yi, Xi). De fapt, acest numar k nu este cunoscut apriori; de aceea,se pleaca de la t erori potentiale (maximul pe care codul BCH ıl poate corecta sigur),caracterizate de t perechi (Yi, Xi). Problema care se pune este deci de a-l determinape k si cele 2k necunoscute Yi, Xi (1 ≤ i ≤ k).

Orice metoda de corectare a erorilor revine la rezolvarea sistemului de ecuatii(1), care este un sistem neliniar de 2t ecuatii cu 2t necunoscute, problema NP -completa.

Fie polinomul(X1−X)(X2−X) . . . (Xt−X) = σt +σt−1(−X)+ . . .+σ1(−X)t−1 +(−X)t.

unde σj sunt functiile simetrice date de relatiile lui V iete.Daca ın aceasta relatie se ia X = Xi (i = 1, . . . , t), obtinem

X ti + (−1)σ1X

t−1i + . . . + (−1)t−1σt−1Xi + (−1)tσt = 0, 1 ≤ i ≤ t.

Inmultim cu YiXji si sumam dupa i. Se obtine:

t∑

i=1

YiXj+ti + (−1)σ1

t∑

i=1

YiXj+t−1i + . . . + (−1)t−1σt−1

t∑

i=1

YiXj+1i + (−1)tσtYiX

ji =

0, j = m0,m0 + 1, . . . , m0 + t− 1relatie care se poate scrie

Sj(−1)tσt + Sj+1(−1)t−1σt−1 + . . . + Sj+t−1(−1)σ1 + Sj+t = 0,m0 ≤ j ≤ m0 + t− 1 (2)

Algoritmul lui Peterson de corectare a k (k ≤ t) erori ıntr-un cod BCH este:

Page 480: Criptografie complet

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 aflate ın ecuatia

X t + (−1)σ1Xt−1 + . . . + (−1)t−1σt−1X + (−1)tσt = 0

si se afla cele t radacini X1, X2, . . . , Xt ∈ GF (qm) ale sale;

3. Cu aceste valori introduse ın sistemul (1), se determina din primele tecuatii valorile Y1, Y2, . . . , Yt ∈ Zq;

4. Daca (Yi, Xi), Xi = αji sunt cele k ≤ t valori nenule ale solutiei obtinute,atunci:

• Pentru k = 0, cuvantul receptionat este {r(X)} (fara erori);

• Pentru 0 < k ≤ t, fie e(X) =k∑

i=1

YiXji .

Cuvantul - cod decodificat este {f(X)} = {r(X)} − {e(X)}.

De remarcat ca ın cazul binar, pasul (3) nu mai este necesar, deoareceYi = 1, ∀i ≤ k.

Pentru corectitudinea algoritmului, trebuie studiate compatibilitatile sistemelorde ecuatii (1) si (2).

Teorema 12.4 Sistemult∑

i=1

YiXji = Sj, m0 ≤ j ≤ m0 + t − 1, de necunoscute Yi

este compatibil daca si numai daca au intervenit t erori.

Demonstratie: Considerat ca sistem ın Y , este liniar; determinantul principal este

∣∣∣∣∣∣∣∣∣∣∣∣∣

Xm01 Xm0

2 . . . Xm0t

Xm0+11 Xm0+1

2 . . . Xm0+1t

Xm0+21 Xm0+2

2 . . . Xm0+2t

...Xm0+t−1

1 Xm0+t−12 . . . Xm0+t−1

t

∣∣∣∣∣∣∣∣∣∣∣∣∣

= Xm01 Xm0

2 . . . Xm0t

∣∣∣∣∣∣∣∣∣∣∣∣∣

1 1 . . . 1X1 X2 . . . Xt

X21 X2

2 . . . X2t

...X t−1

1 X t−12 . . . X t−1

t

∣∣∣∣∣∣∣∣∣∣∣∣∣

= Xm01 Xm0

2 . . . Xm0t

1≤j<i≤t

(Xi −Xj)

El este nenul numai daca au intervenit t erori, pentru ca atunci toti Xi sunt distinctisi nenuli. 2

Teorema 12.5 Matricea M =

Sm0 Sm0+1 . . . Sm0+t−1

Sm0+1 Sm0+2 . . . Sm0+t...

Sm0+t−1 Sm0+t . . . Sm0+2t−1

este nesingulara daca au intervenit t erori si este singulara daca au intervenitmai putin de t erori.

Page 481: Criptografie complet

138 PRELEGEREA 12. CODURI BCH

Demonstratie: Tinand cont de forma sistemului (1), este posibila descompunereamatricii M ın produs de 3 matrici M = ABAT unde:

A =

1 1 . . . 1X1 X2 . . . Xt

X21 X2

2 . . . X2t

...X t−1

1 X t−12 . . . X t−1

t

B =

Y1Xm1 0 . . . 0

0 Y2Xm2 . . . 0

...0 0 . . . YtX

mt

M este nesingulara daca cele doua matrici din descompunere sunt nesingulare.Matricea A este nesingulara daca si numai daca valorile Xi, (1 ≤ i ≤ t) sunt distinctesi nenule, deci daca au intervenit t erori. Matricea diagonala B este nesingulara dacatoate elementele de pe diagonala principala sunt nenule, deci daca toate perechile(Yi, Xi), 1 ≤ i ≤ t sunt nenule - adica au aparut t erori. 2

Aplicarea algoritmului Peterson se face ın felul urmator:

1. Folosind polinomul receptionat {r(X)}, se calculeaza marimile

Sj = r(αj), j = m0,m0 + 1, . . . , m0 + 2t− 1

2. Se studiaza compatibilitatea sistemului

Sj(−1)tσt + Sj+1(−1)t−1σt−1 + . . . + Sj+t−1(−1)σ1 + Sj+t = 0,

m0 ≤ j ≤ m0 + t− 1.

Daca matricea M a sistemului este nesingulara, ınseamna ca au aparut t erori.Daca M este singulara, atunci se observa ca σt = 0 (deoarece σt = X1X2 . . . Xt)si - neglijand prima sau ultima din ecuatiile de mai sus, ın care se ınlocuiesteσt = 0 - se obtine un nou sistem liniar format din t − 1 ecuatii cu t − 1necunoscute.

Se studiaza matricea acestui nou sistem. Daca ea este nesingulara, ınseamnaca au aparut t − 1 erori. Daca si aceasta este singulara, cum σt−1 = 0, serepeta procedeul.

Primul sistem compatibil (cu matricea nesingulara) care se obtine va da numa-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 = Xk + (−1)σ1Xk−1 + . . . + (−1)k−1σk−1X + (−1)kσk

si se afla cele k radacini X1, X2, . . . , Xk ∈ GF (qm) ale ecuatiei P = 0 (prindiverse metode, eventual chiar prin simpla verificare a ecuatiei cu toate ele-mentele din GF (qm)). Aceste radacini vor da localizarile erorilor.

De remarcat ca ordinea de notare a erorilor X1, X2, . . . , Xm este neesentiala.

Page 482: Criptografie complet

12.2. ALGORITMUL PETERSON DE DECODIFICARE 139

4. Se introduc aceste solutii ın ecuatiile sistemului

k∑

i=1

YiXji = Sj, j = m0,m0 + 1, . . . ,m0 + k − 1

si se determina valorile erorilor Y1, Y2, . . . , Yk.

5. Se calculeaza astfel polinomul eroare {e(X)}, care se scade din polinomulreceptionat si se obtine cuvantul - cod transmis:

{r(X)} − {e(X)} = {r(X)− e(X)} = {f(X)}

Exemplul 12.3 Fie codul BCH definit de radacinile α, α2, α3, α4, α5α6 unde α ∈GF (24) este element primitiv, radacina a polinomului 1 + X + X4 (Exemplul 11.3,Prelegerea 11 si Exemplul 12.1). Deoarece t = 3, acest cod este capabil sa corectezemaxim 3 erori.

Sa presupunem ca au aparut doua erori, pe pozitiile α3 si α10 (adica pe pozitiile4 si 11) ale cuvantului transmis. Ele reprezinta polinomul eroare e(X) = X3 + X10.

Sa calculam sindromul (pentru operatile folosite, a se vedea Exemplele 8.8 si 8.9,Prelegerea 8):

S1 = r(α) = e(α) = α3 + α10 = α12

S2 = (S1)2 = α24 = α9

S3 = r(α3) = e(α3) = α9 + α30 = α9 + α0 = α7

S4 = (S2)2 = α18 = α3

S5 = r(α5) = e(α5) = α15 + α50 = α0 + α5 = α10

S6 = (S3)2 = α14.

Observam ca ıntr-o situatie reala, nu se stie unde sunt localizate erorile si deci- ın cazul ın care au intervenit doua erori pe pozitiile α3 si α10 (care nu se cunoscınca), din vectorul receptionat se obtine direct sindromul

S = (S1, S2, S3, S4, S5, S6) = (α12, α9, α7, α3, α10, α14)fara sa stim din combinatiile caror localizari ale erorilor provin aceste compo-

nente ale sindromului.Sa consideram sistemul de ecuatii

S1σ3 + S2σ2 + S3σ1 = S4

S2σ3 + S3σ2 + S4σ1 = S5

S2σ3 + S4σ2 + S5σ1 = S6

adica

α12σ3 + α9σ2 + α7σ1 = α3

α9σ3 + α7σ2 + α7σ1 = α10

α7σ3 + α3σ2 + α10σ1 = α14

Inmultim cele trei ecuatii ale sistemului respectiv cuα−7 = α8, α−3 = α12, α−10 = α5

si obtinem:

α5σ3 + α2σ2 + σ1 = α11

α6σ3 + α4σ2 + σ1 = α7

α12σ3 + α8σ2 + σ1 = α4

Adunam prima ecuatie la ultimele doua si atunci

{α9σ3 + α10σ2 = α8

α14σ3 + α0σ2 = α13

Page 483: Criptografie complet

140 PRELEGEREA 12. CODURI BCH

Deoarece a doua ecuatie se obtine din prima prin ınmultire cu α5, ele nu sunt in-dependente; deci au aparut mai putin de 3 erori. Facem σ3 = 0 si a doua ecuatieva da σ2 = α13. Din prima ecuatie 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 X2 +σ1X + σ2 = X2 + α12X + α13, care are ca radacini X1 = α3, X2 = α10.

Am redescoperit astfel cele doua localizari ale erorilor. Codul fiind binar, corecta-rea se face imediat: se modifica (din 1 ın 0 sau din 0 ın 1) bitii de pe pozitiile 4respectiv 11 din cuvantul receptionat.

Exemplul 12.4 Fie codul BCH definit de radacinile α, α2, α3, α4 unde α ∈ GF (24)este radacina polinomului 1 + X + X4. Acest cod are m0 = 1, m0 + 2t− 1 = 4, decit = 2; codul poate corecta ın mod sigur cel putin doua erori. Sa presupunem ca s-areceptionat cuvantul

r = 100100110000100

de 15 componente. Sa determinam cuvantul - cod transmis.Polinomul corespunzator acestui cuvant este r(X) = 1 + X3 + X6 + X7 + X12.

Componentele sindromului suntS1 = r(α) = α0 S2 = r(α2) = (S1)

2 = α0

S3 = r(α3) = α4 S4 = r(α4) = (S2)2 = α0

Trebuie rezolvat sistemul{

S1σ2 + S2σ1 = S3

S2σ2 + S3σ1 = S4adica

{α0σ2 + α0σ1 = α4

α0σ2 + α4σ1 = α0 ,

de unde se obtine σ1 = α0, σ1 = α.Polinomul de localizare a erorilor este X2+σ1X+σ2 = X2+X+α, cu radacinile

X1 = α7, X2 = α9. Au aparut deci doua erori, pe pozitiile 8 si 10. Pentru ca suntemın cazul binar, Y1 = Y2 = 1; vectorul - eroare obtinut este e(X) = X7 + X9, decicuvantul - cod transmis este

{f(X)} = {r(X)} − {e(X)} = {r(X) + e(X)} = 1 + X + X6 + X9 + X12

adica f = 100100100100100.

12.3 Localizarea erorii la codurile BCH binare

Dupa cum s-a observat, ın cazul codurilor BCH binare este suficient sa se localizezeeroarea; corectarea se face imediat prin complementaritatea bitilor aflati pe pozitiilerespective. Dupa determinarea valorilor σ1, σ2, . . . , σt, algoritmul Peterson nu ex-pliciteaza modul de rezolvare a ecuatiei de localizare al erorii, care uneori poate fidificil de prelucrat.

Un procedeu eficient de determinare a pozitiilor erorilor pentru codurile BCHbinare a fost realizat de Chien.

Fie polinomul (de localizare a erorii):

S(X) = (1−X1X)(1−X2X) . . . (1−XtX) = σ0 + σ1X + σ2X2 + . . . + σtX

t

Page 484: Criptografie complet

12.3. LOCALIZAREA ERORII LA CODURILE BCH BINARE 141

undeσ0 = 1σ1 = X1 + X2 + . . . + Xt

. . .σt = X1X2 . . . Xt

(operatiile fiind efectuate ın binar, semnul − este asimilat cu +).Radacinile 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 = r0r1 . . . rn−1 cuvantul receptionat; componentele lui se vor decodifica pas- cu - pas (pe masura ce sunt receptionate).

Sa consideram primul bit primit rn−1 si sa cercetam daca el este corect sau nu.Aceasta este echivalent cu a verifica daca αn−1 este o localizare a erorii, sau dacaα−(n−1) = α este o radacina a polinomului S(X) de localizare a erorii.

Daca σ1α + σ2α2 + . . . + σtα

t = 1 adica S(α) = 0, atunci a intervenit o eroarepe pozitia αn−1 si deci componenta rn−1 trebuie corectata.

Daca σ1α + σ2α2 + . . . + σtα

t 6= 1 adica S(α) 6= 0, atunci rn−1 s-a receptionatcorect.

Procedeul se repeta: ın general componenta receptionata rn−s este corecta dacaα−(n−s) = αs nu este radacina a polinomului S(X), adica

σ1αs + σ2α

2s + . . . + σtαst 6= 1

In caz contrar, rn−s va fi corectata ın rn−s + 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 decodifica an−s := rn−s + v unde v =

{0 daca P = 01 daca P 6= 0

Circuitul liniar care implementeaza acest algoritm este:

σ1 σ2 σt

¹¸

º·α

¹¸

º·α2

¹¸

º·αt

t∑

i=1

σiαsi

A

6-

?6

-

?

6-

?

? ? ?

¾

6-

¾

6-

¾

6-

¹¸

º·- -

-

6

+

. . .

. . .

r0, r1, . . . , rn−1

Page 485: Criptografie complet

142 PRELEGEREA 12. CODURI BCH

Cele t circuite din stanga realizeaza la fiecare tact multiplicarea cu αi.

La momentul initial blocul A calculeaza suma σ1α + σ2α2 + . . . + σtα

t dand laiesire valoarea 1 (scalar) daca aceasta suma este egala cu 1 si 0 (scalar) daca sumaanterioara da orice element din GF (2m) diferit de 1 = (1, 0, . . . , 0). In functie deacest rezultat, componenta rn−1 este schimbata, respectiv pastrata.

La momentul urmator, blocul A calculeaza suma σ1α2 +σ2α

4 + . . .+σtα2t. Daca

aceasta suma este 1, α2 este radacina a polinomului de localizare a erorii S(X),deci α−2 = αn−2 este o localizare a erorii. In caz contrar, suma este diferita de1. La iesirea din blocul A se obtine scalarul 1 respectiv 0 - componenta rn−2 fiindmodificata respectiv pastrata.

Exemplul 12.5 Fie α ∈ GF (24) primitiv, radacina polinomului 1 + X + X4. Sapresupunem si ca se stiu σ1 si σ2. Circuitul care multiplica cu α este (Prelegerea 8,Figura 8.4) circuitul de ımpartire cu m(X) = 1 + X + X4:

±°²¯

s

+- - - - -6

¾

?-?

Circuitul de ınmultire cu α2 este - conform egalitatii

α2(a1 + a2α + a3α2 + a4α

3) = a1α2 + a2α

3 + a3α4 + a4α

5 = a3 + (a3 + a4)α +(a1 + a4)α

2 + a2α3 urmatorul (vezi si Exemplul 8.10, Prelegerea 8):

±°²¯

s

s±°²¯

- -

? -6- -

6

6

6- -

?-?

-

? -

+

+

Initial ın elementele de ınmagazinare ale celor doua circuite se afla σ1 respectiv σ2.

Pentru cazul binar vom nota cu

³

´-

---

x1x2xn

x1 ∨ x2 ∨ . . . ∨ xn

dispozitivul ”sau” care da valoarea (scalar) 0 daca si numai daca

x1 = x2 = . . . = xn = 0,

si cu

- -x x

dispozitivul ”non”.

Atunci, circuitul de implementare a procedeului Chien de localizare a erorii este:

Page 486: Criptografie complet

12.4. EXERCITII 143

1 ±°²¯

r ±°²¯

r ±°²¯

r

±°²¯

±°²¯

±°²¯

±°²¯

µ ´

±°²¯

+

+?

+

+

+

+

+

+

? - ?¾

?

? - ?¾

?

? - ?¾

?-

?

? -?? - ?¾

ª? -

?

?

?-

?

- - - - -6

¾

?-?

¾

6-

?

¾6

¾

¾

6-

?

?¾6¾?¾

r0, r1, . . . , rn−1

In acest circuit, cele patru elemente de ınmagazinare din stanga formeaza circuitulde ınmultire cu α (unde initial se introduce σ1), iar cele patru elemente din dreaptaformeaza circuitul de ınmultire cu α2, aranjat ın ordine inversa (unde σ2 se introduceinitial de la dreapta spre stanga).

De asemenea, exista un element de ınmagazinare care contine numai 1, elementpe care ıl furnizeaza la fiecare tact.

Initial, circuitul functioneaza odata la momentul 0 fara a introduce nimic de pecanal (pentru ”amorsarea” ın elementele de ınmagazinare a coeficientilor pentru σ1αrespectiv σ2α

2).La momentul urmator se ıncepe procesul efectiv de decodificare. Daca rn−1 a fost

perturbat, atunci αn−1 este localizarea erorii, adica α este radacina a polinomului delocalizare 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 obtinescalarul 1, care se aduna (pentru corectie) la rn−1.

Daca rn−1 este corect, la intrarea ın sumator se obtine o valoare nenula, deciiesirea va fi 1, care prin negare este 0 si rn−1 ramane nemodificat.

12.4 Exercitii

12.1 Sa se verifice valabilitatea descompunerii M = ABAT din demonstratia Teo-remei 12.5

12.2 Fie α ∈ GF (2m), m > 2 primitiv. Atunci polinoamele minimale m1(X) sim3(X) au acelasi grad.

12.3 Construiti un cod BCH binar corector de 2 erori de lungime 11.

12.4 Construiti un cod BCH ternar de lungime 26 si d = 5.

Page 487: Criptografie complet

144 PRELEGEREA 12. CODURI BCH

12.5 Sa se determine polinomul generator si cel de control pentru codul BCH binarcorector de 3 erori de lungime

(a) 15 (b) 31.Codificati mesajul de informatie format numai din 1.

12.6 Caracterizati codurile BCH care sunt definite de toate elementele extensieiGalois GF (qm).

12.7 Daca g(X) = 1 + X4 + X6 + X7 + X8 este polinomul generator al unui codBCH binar de lungime 15, sa se cerceteze daca urmatoarele secvente sunt cuvinte -cod:

(a) 011001011000010 (b) 000111010000110(c) 011100000010001 (d) 111111111111111

12.8 Aflati radacinile polinoamelor cu coeficienti ın GF (24) (α este radacina poli-nomului 1 + X + X4):

X2 + α4X + α13, X2 + α7X + α2, X2α2X + α5

X2 + α6, X2 + α2X, X2 + X + α8.

12.9 Definim codul BCH de polinom generator g(X) = m1(X)m3(X) peste GF (24)folosind elementul primitiv α, radacina a polinomului 1+X +X4. Se receptioneazacuvintele a si se calculeaza sindromurile aH. Stiind aceste sindromuri, localizatierorile (daca se poate):

01000101 11101000 11001101 0100000000000100 10100100 00111101 00000000

12.10 Pentru codul BCH definit ın exemplul anterior, decodificati mesajele:110000000000000 000010000100001 010001010100000110011100111000 110011100100000 111000000000001101110000000000 101010010110001 010000100000000010101001011000 110111011101100 101110000001000111001011000000 000111010000110

12.11 In codul BCH de lungime 15 corector de 3 erori, sa se decodifice mesajele:(a) 001000100000000, (b) 101011001000000.

12.12 In codul BCH peste Z3 de lungime 8, corector de 2 erori, sa se decodificemesajele

(a) 00100000 (b) 12121212 (c) 11211122(d) 02020202 (e) 10201020 (f) 22110011.

12.13 Fie α ∈ GF (25) primitiv, radacina a polinomului 1+X2 +X5. Se definesteun cod BCH de lungime 31 cu d = 5.

1. Sa se construiasca polinomul generator al codului: g(X) = m1(X)m3(X).

2. Sa se decodifice mesajul 1001011011110000110101010111111.

Page 488: Criptografie complet

Prelegerea 13

Coduri Reed - Solomon

13.1 Definirea codurilor RS

O clasa foarte interesanta de coduri ciclice a fost definita ın 1960 de Reed si Solomon.Numite ın articolul initial coduri polinomiale, Peterson arata un an mai tarziu ca elesunt de fapt un caz particular de coduri BCH. Constructia data de Reed - Solomona fost urmatoarea:

Fie α ∈ GF (qm) primitiv (deci ord(α) = n = qm − 1).Daca a0a1 . . . ak−1 ∈ GF (qm)k este secventa de informatie, se defineste polinomul

h(X) = a0 + a1X + . . . + ak−1Xk−1 ∈ GF (qm)[X]. Codul polinomial va fi format de

toate cuvintele de forma h(1)h(α) . . . h(αn−1).

Teorema 13.1 Un cod polinomial este un cod BCH peste GF (qm), definit de rada-cinile α, α2, . . . , αn−k.

Demonstratie: Sa consideram polinomul {f(X)} asociat cuvantului - cod:f(X) = h(1) + h(α)X + . . . + h(αn−1)Xn−1 = a0(1 + X + X2 + . . . + Xn−1) +a1(1+αX +α2X2 + . . .+αn−1Xn−1)+a2(1+α2X +α4X2 + . . .+(α2X)n−1)+ . . .+ak−1(1 + αk−1X + . . . + (αk−1X)n−1).

Se stie ca toate elementele nenule din GF (qm) sunt radacinile polinomuluiXqm−1− 1 = Xn− 1 = (X − 1)(1 + X + X2 + . . . + Xn−1), deci toate elementele dinGF (qm) \ {0,1} sunt radacini ale polinomului 1 + X + X2 + . . . + Xn−1.

Prin calcul se obtine f(1) = a0, f(α−1) = −a1, f(α−2) = −a2, . . . ,f(α−(k−1)) = −ak−1 si f(α−j) = 0 daca n− 1 ≥ j ≥ k.

Dar cum αn = 1, avem α−j = αn−j si deci f(αi) = 0, 1 ≤ i ≤ n− k. 2

In continuare vom numi aceste coduri Reed - Solomon pentru care vom folosiurmatoarea definitie:

Definitia 13.1 Fie α ∈ GF (qm) primitiv. Se numeste cod Reed - Solomon (RS)codul BCH de polinom generator g(X) ∈ GF (qm)[X],

g(X) = (X − αm0)(X − αm0+1) . . . (X − αm0+d−2).

Deci, diferenta fata de codurile BCH generale este aceea ca un cod RS este definitdirect pe extensie, nu pe corpul de baza. Astfel, la un cod BCH cuvintele - cod suntdin Zn

q , pe cand la un cod RS, ele sunt din GF (qm)n. Cum si GF (qm) este corp,toate proprietatile codurilor BCH se pastreaza si ın cazul codurilor RS.

145

Page 489: Criptografie complet

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 (23) generat de radacina α a polinomului 1 + X + X3, sisa consideram codul RS definit de polinomul g(X) = (α + X)(α2 + X) = 1 + α +(α + α2)X + X2. Este un cod ciclic de lungime n = 7, k = 5 si d = 3. Folosinddefinitia din sectiunea 9.3, se poate construi matricea generatoare a codului:

G =

1 + α α + α2 1 0 0 0 00 1 + α α + α2 1 0 0 00 0 1 + α α + α2 1 0 00 0 0 1 + α α + α2 1 00 0 0 0 1 + α α + α2 1

Codul are 85 cuvinte, obtinute prin ınmultirea cu g(X) a tuturor polinoamelor dinGF (23)[X] de grad cel mult 4 sau - echivalent - din ınmultirea cu matricea G atuturor cuvintelor din GF (23)5.

De exemplu, codificarea mesajului de informatie a = 1α00α3, sau a(X) = 1 +αX+α3X4 este a(X)g(X) = 1+α+(α+α2)X2+αX3+(1+α2)X4+X5+(1+α)X6

(respectiv α30α4αα61α3).O matrice de control foarte simpla se obtine folosind (conform sectiunii 11.3)

radacinile α si α2 ale cuvintelor - cod:

H =

(1 α α2 α3 α4 α5 α6

1 α2 α4 α6 α α3 α5

).

Teorema 13.2 Distanta minima a unui cod RS este d = n− k + 1.

Demonstratie: Sa notam - temporar - cu dH distanta minima a unui cod. ConformTeoremei 3.3, dH ≤ n − k + 1. Pe de-alta parte, ıntr-un cod RS, grad(g(X)) =n− k = d− 1 deci d = n− k +1. Din cele doua afirmatii rezulta dH ≤ d. Pe de-altaparte, din Teorema 12.2, cum codul RS este un caz particular de cod BCH, rezultadH ≥ d. 2

Din aceasta teorema rezulta ca un cod RS are distanta maxima separabila (semai spune ca este un cod DMS).

13.2 Coduri RS scurte

Deoarece α ∈ GF (2m) este primitiv, toate cuvintele unui cod RS au lungimean = 2m − 1 si k = n − d + 1 = 2m − d simboluri de informatie. Uneori ınsa suntnecesare coduri RS a caror lungime sa nu fie de aceasta forma. Ele se obtin astfel:

Fie A un (n, k) - cod RS de distanta d si s (1 ≤ s < 2m − d) un numar ıntreg.Se construieste codul RS scurt A(s) format din toate cuvintele lui A care au 0 peultimele s pozitii, din care apoi aceste s pozitii se ignora.

Exemplul 13.2 Fie A codul dat de g(X) = α+X unde α este radacina polinomului1 + X + X2 si genereaza GF (22). A are deci n = 3, k = 2, d = 2 si 16 cuvinte

Page 490: Criptografie complet

13.2. CODURI RS SCURTE 147

- cod. Codul A(1) se obtine luand toate cuvintele lui A care au 0 pe ultima pozitie(acestea sunt 000, α10, α2α0,1α0), din care se elimina ultimul caracter.

Deci A(1) = {00, α1, α2α,1α}.Atentie: Ultima pozitie nu ınseamna ultimul bit. Fiecare element din cuvant are

aici doua pozitii binare. Astfel, cele patru cuvinte - cod alese din A au reprezentareabinara

000000, 011000, 110100, 100100iar 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) contine toate polinoamele de forma b(X) undeb(X) = a(X)g(X), grad(a(X)) < k − s = 2m − 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)

...Xk−s−1g(X)

care se obtine din matricea generatoare a codului A, din care se elimina ultimele slinii. Numarul de simboluri de informatie este egal cu numarul de linii din G, deciks = k − s = 2m − d− s

Sa notam acum cu d respectiv ds distantele minime ale celor doua coduri. Seobserva ca ∀c1, c2 ∈ A(s), c′1 = c100 . . .0, c′2 = c200 . . .0 ∈ A si deci d(c1, c2) =d(c′1, c

′2), adica ds ≥ d.

Pe de-alta parte (Teorema 3.3), ds ≤ ns−ks+1 = 2m−1−s−(2m−d−s)+1 = d,deci ds = d.

Din cele aratate mai sus putem enunta teorema:

Teorema 13.3 Fie A un (n, k) - cod RS cu distanta minima d si A(s) codul sauscurt, cu parametrii ns, ks, ds. Atunci

ns = 2m − 1− s, ks = 2m − d− s, ds = d

si A(s) este un cod DMS.

Observatie: Alte coduri scurte se pot obtine eliminand orice set de s elemente dincuvintele unui cod RS. Se poate vedea imediat ca proprietatile aratate mai sus nuse schimba.

Exemplul 13.3 Plecand de la codul RS din Exemplul 13.1, codul scurt A(2) vaavea ca matrice generatoare matricea G fara ultimele doua linii si coloane, iar caparametri n2 = 5, k2 = 3, d2 = 3.

Page 491: Criptografie complet

148 PRELEGEREA 13. CODURI REED - SOLOMON

13.3 Decodificarea codurilor RS

Fiind cazuri particulare de coduri BCH, codurile RS se pot decodifica folosind al-goritmul Peterson (Sectiunea 12.2). Sa reluam detaliat pe un exemplu aplicareaacestui algoritm.

Exemplul 13.4 Fie g(X) = (1 + X)(α + X)(α2 + X)(α3 + X) unde α ∈ GF (23)este radacina (primitiva) a polinomului 1 + X + X3. Codul are d = 5, deci poatecorecta maxim 2 erori independente. Mai stim ca:

α3 = 1 + α, α4 = α + α2, α5 = 1 + α + α2, α6 = 1 + α2.Sa presupunem ca s-a receptionat cuvantul v = α6αα5α210α2. Pentru decodifi-

care se aplica urmatorii pasi:(1): Se calculeaza cele patru sindromuri:

S0 = v(α0) = α6+α+α5+α2+1+0+α2 = 1+α2+α+1+α+α2+α2+1+α2 = 1S1 = v(α) = α6 + α2 + α7 + α5 + α4 + 0 + α8 = α3

S2 = v(α2) = α6 + α3 + α9 + α8 + α8 + 0 + α14 = α3

S3 = v(α3) = α6 + α4 + α11 + α11α12 + 0 + α20 = 1

(2) Deoarece rangul matricii

(S0 S1

S1 S2

)=

(1 α3

α3 α3

)este 2, cuvantul

v are doua erori; cum distanta este 5, ele pot fi corectate.(3) Se rezolva sistemul liniar

{S0σ2 + S1σ1 = S2

S1σ2 + S2σ1 = S3adica

{σ2 + α3σ1 = α3

α3σ2 + α3σ1 = 1

Adunand cele doua ecuatii, se obtine (1 + α3)σ2 = 1 + α3, deci σ2 = 1.Inlocuind ın prima ecuatie, avem α3σ1 = α3 +1 = α, de unde, prin ınmultire cu

α4 se ajunge la σ1 = α5.(4) Polinomul de localizare a erorii este σ(X) = X2 + σ1X + σ2 = X2 +

α5X + 1. Prin ıncercari se obtine σ(α) = σ(α6) = 0, deci cele doua erori sunt pepozitiile X1 = α, X2 = α6.

(5) Se rezolva sistemul liniar

(X0

1 X02

X1 X2

)·(

Y1

Y2

)=

(S0

S1

), adica:

{Y1 + Y2 = 1

αY1 + α6Y2 = α3

Inmultind a doua ecuatie cu α si adunand, se obtine α6Y1 = α5, deci Y1 = α6. Dupaınlocuire ın prima ecuatie, se determina si Y2 = α2.

(6) Rezumand, au aparut erorile α6 pe pozitia 1 si α2 pe pozitia 6. Decieroarea este e = 0α60000α2, iar cuvantul - cod trimis a fost

c = v + e = α6α5α5α2100.

13.4 Alta constructie a codurilor RS

Plecand de la constructia initiala, se poate realiza si o alta definitie pentru codurileRS. Ea se bazeaza pe o modalitate diferita de reprezentare a cuvintelor din Zn

q :folosind polinoamele ca functii.

Page 492: Criptografie complet

13.4. ALTA CONSTRUCTIE A CODURILOR RS 149

Exemplul 13.5 Fie S = GF (23), construit folosind radacina primitiva α a polino-mului 1 + X + X3. Definim functia f : S → Z2 prin

x 0 1 α α2 α3 α4 α5 α6

f(x) 0 0 1 1 0 1 0 0

Atunci f(x) se poate reprezenta prinvf = f(0)f(1)f(α)f(α2)f(α3)f(α4)f(α5)f(α6) = 00110100.

Exemplul 13.6 Fie S = GF (23) si functia f : S → S definita vf = α401α21α00.Pe baza valorilor ın fiecare punct din S, f se poate reprezenta si ca un polinom

f(X) = α4 + α2X + α3X2 + X3.

Definitia 13.2 Fie S ⊆ GF (2m). Doua polinoame p(X), q(X) reprezinta aceeasifunctie : S → GF (2m) daca si numai daca ∀β ∈ S, p(β) = q(β).

Multimea A = {f(X) ∈ GF (2m)[X]|grad(f(X)) ≤ k−1} se poate structura evidentca un spatiu liniar de dimensiune k, cu baza {1, X, X2, . . . , Xk−1}. Deoarece toateaceste polinoame pot fi scrise si ca functii definite pe o multime S ⊆ GF (2m), vomnumi A ”spatiul functiilor pe S”.

De remarcat ca ın aceasta faza S nu este definit explicit.

Teorema 13.4 Fie multimea S, |S| = n si k ≤ n. Multimea tuturor functiilor: S → GF (2m) reprezentate prin polinoame de grad ≤ k − 1 formeaza un spatiuliniar de functii, cu baza {1, X, . . . , Xk−1}.Demonstratie: Evident, orice polinom de grad cel mult k − 1 este generat de{1, X, . . . , Xk−1}. Tot ce trebuie aratat este ca fiecare functie are o reprezentareunica sub forma de polinom.

Sa presupunem (prin absurd) ca p(X) si q(X) sunt egale ca functii pe S. Deci∀α ∈ S, p(α) = q(α). Dar atunci p(X) − q(X) este un polinom de grad < k careare n (n ≥ k) radacini, deci p(X)− q(X) ≡ 0, adica p(X) ≡ q(X). 2

Exemplul 13.7 Fie S = GF (23) construit folosind 1 + X + X3, si sa consideramtoate polinoamele din GF (23)[X], de grad cel mult doi. O baza pentru acest spatiude functii este {1, X, X2}, cu reprezentarea corespunzatoare:

1 − 11111111X − 01αα2α3α4α5α6

X2 − 01α2α4α6αα3α5

Atunci, orice polinom p(X) = a0 + a1X + a2X2 considerat ca o functie, poate fi

reprezentat sub forma de vector prin

vp = (a0 a1 a2)

1 1 1 1 1 1 1 10 1 α α2 α3 α4 α5 α6

0 1 α2 α4 α6 α α3 α5

Teorema 13.5 Spatiul functiilor pe S ⊆ GF (2m) (|S| = n) al tuturor polinoamelordin GF (2m)[X] de grad ≤ k − 1 formeaza un (n, k) - cod liniar DMS.

Page 493: Criptografie complet

150 PRELEGEREA 13. CODURI REED - SOLOMON

Demonstratie: Alegem o multime S ⊆ GF (2m) de cardinal n si consideram spatiulfunctiilor tuturor polinoamelor p : S → GF (2m) de grad cel mult k − 1. Lungimeafiecarui cuvant - cod este n, iar dimensiunea este k (cu Teorema 13.4). Mai ramanede aratat ca acest cod este DMS (are distanta maxima separabila), adica d = n −k +1. Pentru aceasta, sa observam ca orice polinom p(X) are maxim k− 1 radacinidistincte; deci reprezentarea vp are cel mult k−1 zero-uri, adica w(vp) ≥ n−k +1.Conform Teoremei 3.3, d ≤ n− k + 1, deci d = n− k + 1. 2

Fie n un divizor al lui 2m− 1 si S = {α ∈ GF (2m)|αn = 1} multimea radacinilorde ordinul n ale unitatii din GF (2m). Evident, S contine toate radacinile din GF (2m)ale ecuatiei Xn + 1 = 0 si S are cel putin un element primitiv (Teorema 11.1).

Teorema 13.6 Fie p(X), q(X) ∈ GF (2m)[X] si S ⊆ GF (2m) multimea radacinilorde ordinul n ale unitatii. Atunci p(X) si q(X) reprezinta aceeasi functie f : S →GF (2m) daca si numai daca p(X) ≡ q(X) (mod 1 + Xn).

Demonstratie: Fie q(X) = h(X)(1 + Xn) + p(X). Atunci pentru orice α ∈ S avemq(α) = h(α)(1 + αn) + p(α). Dar 1 + αn = 0, deci q(α) = p(α).

Invers, fie α ∈ S primitiv. Deci orice element din S are forma αi (0 ≤ i < n).Daca q(αi) = p(αi), atunci αi este radacina a polinomului p(X)−q(X). Putem scrieatunci

p(X)− q(X) = h(X)n−1∏

i=0

(1 + αi) = h(X)(1 + Xn).

2

Teorema 13.7 Fie S multimea radacinilor de ordinul n ale unitatii din GF (2m).Atunci spatiul functiilor tuturor polinoamelor din GF (2m)[X] de grad ≤ k − 1 pe Sformeaza un (n, k) - cod ciclic peste GF (2m).

Demonstratie: Sa notam cu C acest spatiu si fie S generat de α primitiv. Atunci,daca p(X) ∈ GF (2m)[X] este un polinom de grad cel mult k − 1, avem vp =p(1)p(α) . . . p(αn−1) ∈ C.

Fie q(X) = p(αX). Cum grad(q(X)) ≤ k − 1, rezulta vq ∈ C. Darq(1)q(α) . . . q(αn−1) = p(α)p(α2) . . . p(αn−1)p(1) ∈ C,

ceea ce reprezinta chiar definitia unui cod ciclic. 2

Exemplul 13.8 Sa consideram GF (23) construit cu 1 + X + X3 si fie p(X) =α4 + α2X + α3X2 + X3, care are reprezentarea 01α21α00. Permutarea ei ciclicaeste 1α21α000, care corespunde functiei p(αX) = α4 + α3X + α5X2 + α3X3 =(α4 + X)(α5 + X)(α6 + X)α3.

Definitia 13.3 Fie polinomul V (X) = V0 + V1X + . . . + Vn−1Xn−1 ∈ GF (2m)[X]

si α ∈ GF (2m) o radacina primitiva de ordinul n a unitatii. Spunem ca v(X) =v0 + v1X + . . . + vn−1X

n−1 este ”transformata” lui V (X) daca

V (αj) =n−1∑

i=0

Viαji = vj, j = 0, 1, . . . , n− 1

Page 494: Criptografie complet

13.4. ALTA CONSTRUCTIE A CODURILOR RS 151

Altfel spus, daca se noteaza cu A = (aij), aij = αij, atunci

(V0 V1 . . . Vn−1)A = (v0 v1 . . . vn−1).

Matricea A este numita transformata Fourier finita. Ea este nesingulara, deci sepoate scrie (V0 V1 . . . Vn−1) = (v0 v1 . . . vn−1)A

−1 sau

Vi =n−1∑

i=1

vjα−ij = v(α−i)

Vom arata aceasta ınsa ın mod direct, fara a folosi inversa matricii A:

Teorema 13.8 Fie α ∈ GF (2m) o radacina primitiva de ordin n a unitatii. Dacavj = V (αj) pentru V (X) = V0 + V1X + . . . + Vn−1X

n−1 ∈ GF (2m)[X], atunciVi = v(α−i) unde v(X) = v0 + v1X + . . . + vn−1X

n−1.

Demonstratie: Deoarece α este primitiv, vom avean−1∑

j=0

α(k−i)j =

{n (mod 2) daca k − i = 00 daca k − i 6= 0

Atunci

v(α−i) =n−1∑

j=0

vjα−ij =

n−1∑

j=0

(n−1∑

k=0

Vkαkj

)α−ij =

n−1∑

k=0

Vk

n−1∑

j=0

α(k−i)j

= Vi. 2

Deci, fiind dat un vector de valori (v0, v1, . . . , vn−1), se pot regasi coeficientiipolinomului V (X) = V0 + V1X + . . . + Vn−1X

n−1, lucru esential ın definirea unuialgoritm de decodificare.

Teorema 13.9 Fie S ⊆ GF (2m) multimea radacinilor de ordinul n ale unitatii dinGF (2m), generata de elementul primitiv α. Spatiul functiilor tuturor polinoamelorde grad < n− d + 1 pe S este un cod ciclic DMS cu polinomul generator

g(X) = (α + X)(α2 + X) . . . (αd−1 + X).

Demonstratie: Functia polinomiala V (X) a carei reprezentare corespunde lui v(X) =

a(X)g(X) este V (X) =n−1∑

i=0

v(αn−i)X. Deoarece v(αn−i) = 0 pentru i = n − d +

1, n − d + 2, . . . , n − 1 (grad(v(X) < n − d + 1), coeficientul lui X i din V (X) estezero, deci V (X) are gradul < n− d + 1. 2

Daca se ia n = 2m − 1, se ajunge la o alta modalitate de constructie a codurilorRS, care are o alta matrice generatoare (deci o alta dispunere a bitilor de informatie).

Exemplul 13.9 Fie α radacina polinomului 1 + X + X3 cu care se construiesteGF (23). Consideram codul RS de polinom generator g(X) = (1 + X)(α + X)(α2 +X)(α3 + X) = α6 + α5X + α5X2 + α2X3 + X4 care corespunde reprezentarii

α6α5α5α2100). Transformata lui g(X) este polinomul G(X) =6∑

k=0

g(α7−k)Xk.

Pentru ca g(α0)g(α) . . . g(α6) = 00001αα4, avemG(X) = g(α7−1)X+g(α7−2)X2+g(α7−3)X3 = α4X+αX2+X3 = X(α4+αX+X2).

Se verifica usor ca G(X) este o functie cu reprezentarea

Page 495: Criptografie complet

152 PRELEGEREA 13. CODURI REED - SOLOMON

G(α0)G(α) . . . G(α6) = α6α5α5α2100.Putem gandi acest cod RS ca spatiul tuturor polinoamelor de grade 1, 2 si 3, adica

{Xp(X)|p(X) ∈ GF (23)[X], grad(p(X)) < 3}.Baza pentru acest spatiu liniar este {X, X2, X3}, iar matricea generatoare

1 α α2 α3 α4 α5 α6

1 α2 α4 α6 α α3 α5

1 α3 α6 α2 α5 α α4

Deci G(X) = α4X + αX2 + X3 va avea reprezentarea

(α4 α 1)

1 α α2 α3 α4 α5 α6

1 α2 α4 α6 α α3 α5

1 α3 α6 α2 α5 α α4

= (α6 α5 α5 α2 1 0 0).

13.4.1 Algoritmul de decodificare 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 receptionat. Notam V (X), C(X)si E(X) transformatele lui v(X), c(X) respectiv e(X). Cum transformata Fourierfinita este o aplicatie liniara, se verifica imediat V (X) = C(X) + E(X).

Deoarece g(X) are d−1 radacini consecutive αi, m0 ≤ i ≤ m0 +d−2, sindromuls(X) va avea s(αn−i) = e(αn−i) = Ei pentru n −m0 − d + 1 ≤ i ≤ n −m0. Decisindromul va putea determina d−1 coeficienti ai transformatei E(X). Pentru ceilalticoeficienti va trebui sa reluam polinomul de localizare a erorilor σ(X).

σ(X) are proprietatea ca σ(αk) = 0 ⇐⇒ ek 6= 0. Deoarece E(αk) = ek, vomavea σ(αk)E(αk) = 0 ∀k, deci - lucrand ın algebra polinoamelor modulo 1 + Xn:

{σ(X)}{E(X)} = 0si

{σ(X)}{E(X)} =

{(t∑

i=0

σiXi

) (n−1∑

k=0

EkXk

)}

unde t = [(d− 1)/2]. Calculand ın ambele relatii coeficientul lui X t+k, se obtine:σtEk + σt−1Ek+1 + . . . + σ0Ek+t = 0.

Pentru ca stim deja d−1 valori consecutive ale lui Ek, putem determina recursivcoeficientii σi, pe care ıi folosim la generarea tuturor valorilor Ek.

In [5] se defineste o alta forma a acestui algoritm.

Exemplul 13.10 Sa reluam codul RS definit ın Exemplul 13.4, ın care consideramca s-a receptionat cuvantul v = α6αα5α210α2. Deoarece d = 5, avem t ≤ 2 siE0 = v(α0) = 1, E6 = v(α) = α3, E5 = v(α2) = α3, E4 = v(α3) = 1. Polinomul delocalizare a erorii este σ(X) = X2 + σ1X + σ0. Determinam σ0, σ1 ca ın Exemplul13.4 si gasim σ0 = 1, σ1 = α5. Se poate determina astfel relatia de recurenta:

Ek = α5Ek+1 + Ek+2

Deoarece (E0, E6, E5, E4) = (1, α3, α3,1), vom avea:E3 = α5E4 + E5 = α5 + α3 = α2,E2 = α5E3 + E4 = α5 · α2 + 1 = 0,E1 = α5E2 + E3 = 0 + α2 = α2

Page 496: Criptografie complet

13.5. STERGERI 153

Am determinat transformata lui e(X), adica E(X) = 1 + α2X + α2X3 + X4 +α3X5 + α3X6. De aici rezulta e = (E(α0), E(α), E(α2), . . . , E(α6)) = 0α60000α2,deci cuvantul decodificat este

c = v + e = α6α5α5α2100.

Pe de-alta parte, daca s-ar fi folosit matricea generatoare din Exemplul 13.9, nuar mai fi fost necesar sa se determine vectorul eroare e, ci doar sa se calculeze toatevalorile lui v(αk), 0 ≤ k ≤ 6, din care se obtine direct mesajul transmis; mai precis,se afla transformata lui v(X), care se aduna la transformata lui e(X):

v0v1 . . . v6 = v(α0)v(α6)v(α5) . . . v(α) = 1ααα61α3α3,

E0E1 . . . E6 = 1α20α21α3α3, si deci

C0C1 . . . C6 = V0V1 . . . V6 + E0E1 . . . E6 = 0α4α1000.

S-a obtinut C(X) = α4X + αX2 + X3. Deci bitii de informatie sunt (α4, α,1).De aici se obtine forma cuvantului transmis c = α6α5α5α2100.

13.5 Stergeri

O stergere este o eroare detectata, pentru corectarea careia trebuind determinatadoar valoarea erorii. Numarul locatiei de stergere este pozitia elementului perturbat.Acest numar este ın general cunoscut (din citirea fizica a mesajului primit sau dinstructura codului).

Astfel, fie A un cod RS peste GF (2m) si sa consideram codul A format dinreprezentarea binara a cuvintelor codului A (fiecare element din GF (2m) se scrie caun cuvant binar de lungime m). Se defineste si codul A′ obtinut prin adaugarea cateunui bit de paritate la fiecare simbol din componenta cuvintelor codului A.

Exemplul 13.11 Sa consideram codul RS din Exemplul 13.2. Pentru a forma A′,se ınlocuieste fiecare element 0,1, α, α2 respectiv cu 000, 101, 011, 110 (al treilea biteste bitul de paritate). Astfel, pentru α10 ∈ A avem 011101000 ∈ A′.

Deoarece fiecare element dintr-un cuvant - cod c ∈ A este reprezentat printr-uncuvant binar de lungime m + 1, cuvantul - cod corespunzator c′ ∈ A′ va avealungimea (2m − 1)(m + 1). Se observa ca fiecare element nenul din c este ınlocuitcu un cuvant de pondere para. Deci, c′ va fi format din 2m − 1 cuvinte binare delungimi m + 1, fiecare de pondere para. In acest fel, daca ın cuvantul receptionatv′ exista un grup de pondere impara, stim ca a aparut o eroare printre cei m + 1biti corespunzatori. Considerat din nou ca un cuvant cu elemente din GF (2m), stimca acest cuvant are un element perturbat; nu cunoastem valoarea erorii, dar stimpozitia sa. Avem deci o ”stergere”.

Exemplul 13.12 Reluand constructia din exemplul anterior, sa presupunem ca s-a primit 011100000. Deci, au aparut erori ın al doilea grup de 3 biti (acesta arepondere impara), asa ca α1 este un numarul locatiei de stergere. Stiind acest numar,putem ınlocui al doilea element cu 0 (usureaza calculul sindromului), si vom ıncercadecodificarea lui v = α00 ın cel mai apropiat cuvant - cod din A, stiind ca pozitiaerorii este X1 = α.

Page 497: Criptografie complet

154 PRELEGEREA 13. CODURI REED - SOLOMON

Teorema 13.10 Fie A un cod RS peste GF (2m) de distanta d, si v un cuvantreceptionat care are s stergeri si t erori care nu sunt stergeri. Atunci v poate fidecodificat corect daca 2t + s ≤ d− 1.

Demonstratie: De remarcat ca ın Teorema 3.7, o conditie mai slaba (t + s ≤ d− 1)asigura corectarea celor t erori, dar detecteaza numai celelalte s stersaturi. Aceastateorema realizeaza corectarea completa a cuvantului.

Fie B multimea pozitiilor stersaturilor si A multimea pozitiilor erorilor; deciA \ B este multimea pozitiilor erorilor care nu sunt stersaturi. Definim σB(X) =∏

i∈B

(αi + X) ca fiind polinomul de localizare a stersaturilor. Atunci polinomul de

localizare a erorilor se poate scrie

σA(X) = σB(X)σA\B(X).

Aflarea pozitiilor erorilor revine la determinarea radacinilor polinomului σA\B(X).Pentru aceasta se poate folosi algoritmul Peterson de decodificare a codurilor BCH,cu cateva schimbari, corespunzatoare sindromurilor ”modificate”.

Astfel, fie σB(X) = B0 + B1X + . . . + Bs−1Xs−1 + Xs si σA\B(X) = A0 + A1X +

. . . + At−1Xt−1 + X t.

Similar algoritmului Peterson, vom ınmulti ambii membrii ai egalitatiiσB(X)σA\B(X) = σA(X) cu YiX

ji (m0 ≤ j ≤ m0 + d − 2) (reamintim, Xi sunt

locatiile, iar Yi sunt valorile erorilor).Apoi se ınlocuieste X = Xi si se face suma dupa i = 1, . . . , t + s. Se obtineS ′jA0 + S ′j+1A1 + . . . + S ′j+t−1At−1 + S ′j+t = 0 (m0 ≤ j ≤ m0 + d− 2) (1)unde S ′k sunt sindromurile modificate, de forma

S ′k = B0Sk + B1Sk+1 + . . . + Bs−1Sk+s−1 + Sk+s. (2)Pentru ca se stiu valorile lui Sj pentru j = m0, . . . ,m0+d−2 iar B0, B1, . . . , Bs−1

sunt cunoscute, se pot determina S ′j pentru m0 ≤ j ≤ d− 1− s. Deoarece 2t + s ≤d− 1, deci 2t ≤ d− 1− s, se poate rezolva sistemul (1) scris matricial

S ′m0S ′m0+1 . . . S ′m0+t−1

S ′m0+1 S ′m0+2 . . . S ′m0+t...

S ′m0+t−1 S ′m0+t . . . Sm0+2t−1

A0

A1...At−1

=

S ′m0+t

S ′m0+t+1...Sm0+2t

(3)

cu t necunoscute A0, A1, . . . , At−1.Dupa determinarea polinomului de localizare a erorilor, algoritmul Peterson se

poate aplica ın continuare nemodificat. 2

Fie A un cod RS peste GF (2m), de polinom generator g(X) = (αm0 + X) . . .(αm0+d−2 + X). Se transmite cuvantul - cod c si se receptioneaza v cu s stergerilocalizate ın elementele multimii B = {X1, . . . , Xs}. Fie σB(X) = B0 +B1X + . . .+Bs−1X

s−1 + Xs polinomul de localizare al stergerilor.Polinomul de localizare a erorilor σA(X) = σA\B(X)σB(X) poate fi determinat

afland σA\B(X) = A0 + A1X + . . . + At−1Xt−1 + X t astfel:

(a) Se calculeaza Sj = v(αj) pentru j = m0,m0 + 1, . . . , m0 + d− 2;(b) Se determina S ′j (m0 ≤ j ≤ m0 + d− 2− s) cu relatiile (2);(c) Se rezolva sistemul liniar (3) de necunoscute Ai.

Page 498: Criptografie complet

13.6. EXERCITII 155

Exemplul 13.13 Fie A codul RS peste GF (24) construit de 1 + X + X4, cu poli-nomul generator g(X) = (1 + X)(α + X) . . . (α4 + X) si A′ codul binar asociat ıncare sunt codificate mesajele. S-a primit mesajul

v′ = 11101 11001 00101 00110 10010 0 . . . 0,deci v = α100α20α6α140 . . .0.

Singura stergere localizata este α1, deci σB(X) = α + X.Trebuie sa determinam polinomul de localizare a erorilor.Din v(X) = α10 + α2X2 + α6X4 + α14X5 calculam sindromurile

S0 = α5, S1 = 0, S2 = α3, S3 = α4, S4 = α3.Deoarece B0 = α si s = 1, relatia de recurenta pentru sindromurile modificate

este S ′j = B0Sj + Sj+1 = αSj + Sj+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(

S ′0 S ′1S ′1 S − 2′

) (a0

A1

)=

(S ′2S ′3

)sau

(α6 α3

α3 0

) (A0

A1

)=

(0

α11

)

cu solutia A0 = α8, A1 = α11. S-a obtinut polinomul σA\B(X) = α8+α11X+X2.Deci,

σA(X) = σB(X)σA\B(X) = (α+X)(α8+α11X+X2) = (α+X)(α3+X)(α5+X).Rezulta ca erorile sunt localizate pe pozitiile X1 = α, X2 = α3, X3 = α5.Mai departe se lucreaza pentru determinarea valorilor erorilor, folosind sindro-

murile originale ın algoritmul Peterson. Trebuie rezolvat sistemul:

1 1 1α α3 α5

α2 α6 α10

Y1

Y2

Y3

=

α5

0α3

cu solutia Y1 = α12, Y2 = 1, Y3 = α3.Deci v(X) se decodifica ın c(X) = v(X)+e(X) = (α10+α2X2+α6X4+α14X5)+

(α12X + X3 + α3X5), adica c = α10α12α21α610 . . .0, sau - ın A′:11101 11110 00101 10001 00110 10001 0 . . . 0.

13.6 Exercitii

13.1 Construiti matricea generatoare si listati toate cuvintele - cod ale codului RSdin Exemplul 13.2. Scrieti si forma binara a acestor cuvinte.

13.2 Fie codul definit de g(X) = (1+X)(α+X)(α2+X)(α3+X), bazat pe extensiaGalois GF (23) generata de α, radacina a polinomului 1 + X + X3.

1. Determinati n, k, d si numarul de cuvinte - cod.

2. Construiti o matrice generatoare si o matrice de control a codului.

3. Codificati mesajele de informatie

10α2, 111, α2α4α6.

13.3 Construiti coduri RS cu urmatorii parametri:(a) m = 2, d = 3, m0 = 2;

Page 499: Criptografie complet

156 PRELEGEREA 13. CODURI REED - SOLOMON

(b) m = 3, d = 3, m0 = 2;(c) m = 3, d = 5, m0 = 0;(d) m = 4, d = 5, m0 = 0;(e) m = 5, d = 7, m0 = 0.

13.4 Pentru fiecare cod determinat la exercitiul anterior determinati n, k si numa-rul de cuvinte - cod.

13.5 Aratati ca un (2m − 1, k) - cod RS are 2mk cuvinte - cod.

13.6 Fie codul RS de polinom generator g(X) = (1 + X)(α + X)(α2 + X)(α3 +X)(α4 + X)(α5 + X) ∈ GF (24)[X] unde α este radacina polinomului 1 + X + X4.Decodificati mesajele:

0α3αα5α3α2α6α10α0000001α4α2α0010αα5α3α20α10αα0α70α12α3α310000000

13.7 Fie codul RS generat de g(X) = (α + X)(α2 + X)(α3 + X)(α4 + X) undeα ∈ GF (24) este radacina polinomului 1 + X + X4. Decodificati mesajele:

001α800α5000000000α100α6α130α8α11α3α500000α40100α2α5α12al14000000

13.8 Plecand de la codul RS din exercitiul precedent, se formeaza codul scurt A(4)de lungime n = 11 (si k = 7). Deecodificati mesajele:

001α800α500000α100α6α130α8α11α3α50α40100α2α5α12α1400

13.9 Aratati ca transformata Fourier finita A este inversabila.

13.10 Fiind dat GF (23) construit cu polinomul 1 + X + X3, gasiti matricea gene-ratoare pentru un cod DMS de lungime 7 pentru spatiul functiilor definit peS = GF (23) \ {0}, cu baza:

(a) {X,X2, X3} (b) {1, X,X2, X3, X4} (c) {X,X2, X3}.Aratati ca toate aceste coduri sunt ciclice. Determinati polinomul generator pen-

tru fiecare cod.

13.11 Fiind dat GF (23) construit cu 1+X +X3, determinati pentru fiecare G(X)reprezentarea vg:

G(X) = X + αX3, G(X) = 1 + X2 + X4.

13.12 In aceleasi conditii din exercitiul precedent, determinati G(X) stiind valorilelui vg:

vg = α3αα40α6α5α2 vg = α4α2αα30α61.

13.13 Folosind codul definit ın Exemplul 13.13, decodificati mesajele:11101 11110 11010 00111 11110 10100 10110 10100 0 . . . 011000 00000 01010 11111 11011 00000 10001 00101 0 . . . 000000 10000 10000 10000 00101 10100 11101 0 . . . 0.

Page 500: Criptografie complet

Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza dedoctorat), PARIS VI, 1990;

[3] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[4] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[5] D.G. Hoffman, 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

Page 501: Criptografie complet

Prelegerea 14

Alte clase de coduri ciclice

14.1 Coduri Hamming ciclice

Sa consideram spatiul nul al matricii

H = (1 α α2 . . . αn−1)

unde α ∈ GF (2p) este primitiv, deci n = ord(α) = 2p − 1.Cum α poate fi considerat ca un vector coloana cu p componente, H este o

matrice p × 2p ın care toate coloanele sunt distincte. Acesta este dupa cum se stie(Prelegerea 4) un cod Hamming (2p− 1, 2p− p− 1) - construit ınsa ca un cod ciclic.

Exemplul 14.1 Fie α ∈ GF (23), α radacina a polinomului ireductibil 1+X +X3.Se verifica imediat ca ord(α) = 7, deci α este primitiv. Construim matricea

H = (1 α α2 α3 α4 α5 α6) =

1 0 0 1 0 1 10 1 0 1 1 1 00 0 1 0 1 1 1

Ea este matricea de control pentru un (7, 4) - cod Hamming.Deci codul studiat ın Exemplul 4.1 (Prelegerea 4) poate fi tratat si ca un cod ciclic

de polinom generator h(X) = 1 + X + X3.

Un cod Hamming ciclic se defineste cerand ca orice polinom - cod {f(X)} sa admitaca radacina pe α ∈ GF (2p) primitiv. Generatorul unui asemenea cod este chiarpolinomul minimal al lui α : g(X) = m(X).

Deoarece si α2 este radacina a polinoamelor - cod (Teorema 11.9), codul Ham-ming ciclic este un caz particular de cod BCH cu d = 3, capabil sa corecteze oeroare.

Codificarea se face folosind circuitul liniar cu p = n−k elemente de ınmagazinare(vezi paragraful 9.4.2, Prelegerea 9), corespunzator polinomului minimal m(X). Cal-culul sindromului cuvantului receptionat {r(X)} - adica rHT = r(α) se realizeazafolosind acelasi circuit de ımpartire cu m(X). Acest sindrom - ın cazul ın care estenenul, deci a intervenit o eroare simpla - este una din coloanele matricii H, adicauna din valorile 1, α, α2, . . . , αn−1.

Pentru a afla care componenta a fost afectata de eroare, se poate folosi acelasicircuit ın felul urmator: neglijam intrarea si lasam circuitul sa functioneze, avandinitial ın elementele de ınmagazinare sindromul r(α), care este de forma

157

Page 502: Criptografie complet

158 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE

αj (0 < j ≤ 2p − 2).La fiecare tact circuitul ınmulteste continutul elementelor de ınmagazinare cu α;

deci, dupa n− j = 2p − 1− j momente, ın elementele de ınmagazinare se obtine

α2p−1−j+j = α2p−1 = αn = α0 = 1 = (1, 0, . . . , 0).

Cum componentele cuvantului receptionat sunt scrise ın ordinea descrescatoare aputerilor (prima componenta este coeficientul termenului de rang maxim), ınseam-na ca va trebui sa corectam componenta n− j din cuvant, ınlocuind 0 cu 1 sau 1 cu0.

Exemplul 14.2 Fie α ∈ GF (24), radacina a polinomului 1 + X + X4. CodulHamming (15, 11) obtinut folosind ca radacina pe α - deci polinom generatorg(X) = 1 + X + X4, are matricea de control

H = (1 α . . . α14) =

1 0 0 0 1 0 0 1 1 0 1 0 1 1 10 1 0 0 1 1 0 1 0 1 1 1 1 0 00 0 1 0 0 1 1 0 1 0 1 1 1 1 00 0 0 1 0 0 1 1 0 1 0 1 1 1 1

Circuitul care realizeaza (ın functie de necesitati) codificarea, calculul sindromului sicorectarea erorilor simple este:

j j j-6

¾ZZ}¾

?

r

- - - - - -?

? -©©*-

-6r

+++Intrare 2

Intrare 1

Codificarea se obtine introducand la Intrarea 1 mesajul de informatie de lungime k,mesaj considerat ca un polinom de gradul n− 1 cu primii coeficienti (corespunzatoritermenilor de rang mare) elementele mesajului informational si cu ultimii n − kcoeficienti nuli.

La momentul initial ın elementele de ınmagazinare se afla numai 0, circuitulfeedback este ınchis, iar circuitul spre canal este deschis. De asemenea, Intrarea 2este ignorata.

Simultan cu transmiterea pe canal, elementele de informatie se introduc si ıncircuitul liniar. Dupa k momente, aici se afla pozitiile de control.

In acest moment se decupleaza feedback-ul, se cupleaza legatura spre canal si seignora cele doua intrari. Timp de n − k tacti elementele de control ınmagazinatesunt trimise pe canal, imediat dupa mesajul de informatie.

Pentru calculul sindromului: se neglijeaza canalul, se ınchide feedback-ul, iar ınelementele de ınmagazinare se gaseste initial (0, 0, . . . , 0). Cuvantul receptionat esteintrodus prin Intrarea 2. Dupa n tacti, aici se va gasi r(α).

Pentru corectarea erorii: se neglijeaza cele doua intrari, se ınchide feedback-ul sise lasa sa functioneze circuitul pana cand ın elementele de ınmagazinare se obtinevectorul (1, 0, . . . , 0). Numarul de tacti scursi da indicele componentei din mesajulreceptionat, care trebuie corectata prin complementare.

Page 503: Criptografie complet

14.1. CODURI HAMMING CICLICE 159

Sa consideram spatiul nul al matricii

H =

(1 α α2 . . . α2p−2

1 1 1 . . . 1

)

unde α ∈ GF (2p) este primitiv. H are p + 1 linii si n = 2p − 1 coloane (pe primacoloana, primele p pozitii formeaza vectorul 1 = α0, iar pe a p + 1-a pozitie se aflascalarul 1 ∈ Z2). Codul obtinut este codul Hamming extins (Definitia 3.1), capabilsa corecteze o eroare si sa detecteze doua erori.

Un asemenea cod se poate defini cerand ca orice cuvant - cod {f(X)} sa aibaca radacini α si 1. Generatorul unui astfel de cod ciclic este g(X) = (1 + X)m(X),unde m(X) este polinomul minimal al lui α.

Codificarea ın acest caz se face - ca mai sus - folosind circuitul cu n − k + 1 =p+1 elemente de ınmagazinare. Pentru calculul sindromului cuvantului receptionat{r(X)} se folosesc ınsa practic doua circuite: unul de ımpartire la m(X) (pentru cal-culul lui r(α)) si altul de ımpartire la 1+X (pentru r(1)). Discutia este urmatoarea:

• Daca r(α) = r(1) = 0, atunci nu a intervenit nici o eroare (sau avem o eroarenedetectabila);

• Daca r(α) 6= 0, r(1) 6= 0, avem o eroare simpla care se corecteaza cu circuitulde ımpartire cu m(X), dupa procedeul descris ın Exemplul 14.2;

• Daca r(α) 6= 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 + X4) = 1 + X2 + X4 + X5

Circuitul liniar care codifica mesajele de informatie (de lungime k = 10) este:

±°²¯

±°²¯

±°²¯+++- - - - - - -6

¾QQk¾

?-?r r

?

? -©©*-

-6r

Sindromul se calculeaza cu ajutorul circuitului liniar corespunzator polinomuluim(X) = 1 + X + X4:

j j++-6

- - - - - -6

¾

? ?

r

iar r(1) se obtine din circuitul de ımpartire la 1 + X:

j- - -6

¾

?+

Circuitul liniar construit pentru m(X) face si corectarea erorilor simple.

Page 504: Criptografie complet

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 particularde coduri Reed - Muller sau coduri ciclice. In aceasta ultima situatie, ele se potimplementa cu ajutorul circuitelor liniare si - fapt important - admit o varianta degeneralizare naturala la cazul nebinar.

Definitia 14.1 Fie α ∈ GF (qp) un element primitiv. Se defineste codul Hammingciclic nebinar A astfel:

{f(X)} ∈ A ⇐⇒ f(X) are radacina β = αq−1

sau - echivalent - A are matricea de control H = (1 β β2 . . . βn−1) unde n = ord(β).

Din

βn = 1 = (α)qp−1 =(αq−1

) qp−1q−1 rezulta n =

qp − 1

q − 1.

Se observa imediat ca H are un numar maxim de coloane distincte si nenule.

Propozitia 14.1 (n, q − 1) = 1 daca si numai daca (p, q − 1) = 1

Demonstratie: Din q − 1|qj − 1 rezulta qj = (q − 1)sj + 1. Deci

n =qp − 1

q − 1= qp−1 + qp−2 + . . . + q + 1 = (q − 1)(sp + sp−1 + . . . + s1) + p

si atunci(p, q − 1) = 1 ⇐⇒ (n, q − 1) = 1. 2

Teorema 14.1 Spatiul nul al matricii H = (1 β β2 . . . βn−1) unde β = αq−1,

n =qp − 1

q − 1si α ∈ GF (qp) primitiv, are distanta minima d ≥ 3 daca si numai daca

(n, q − 1) = 1.

Demonstratie: ”⇐”: Sa presupunem ca exista doua coloane liniar dependente ınmatricea H. Deci βi = aβj cu a ∈ Zq, adica βi−j = a.

Elementele nenule din Zq sunt radacinile ecuatiei Xq−1 − 1 = 0 (Teorema 11.3).

Mai mult, ele sunt chiar primele q − 1 puteri ale lui αn. Intr-adevar, pentru orices = 0, 1, . . . , q − 2 avem

(αns)q−1 =(αqm−1

)s= 1s = 1.

Deci pentru a ∈ Zq avem a = αns. Se poate scrie atunci βi−j = αns, adicaα(i−j)(q−1) = α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 ecuatia anterioara admitesi solutia i 6= j; deci exista doua coloane distincte liniar dependente βi si βj ınmatricea H, ceea ce contrazice faptul ca d ≥ 3. 2

Pentru operatia de codificare se foloseste circuitul de ımpartire cu polimul mini-mal m(X) al lui β (care aici este chiar polinomul generator al codului Hamming ciclicA). Acelasi circuit va calcula sindromul r(β) al polinomului receptionat {r(X)}.

Page 505: Criptografie complet

14.2. CODURI HAMMING CICLICE NEBINARE 161

In cazul ın care a intervenit o eroare, r(β) este de forma bβj (eroarea b a aparutpe pozitia βj). Functionarea secventiala a circuitului liniar (fara intrari) revine laınmultirea succesiva cu β. Deci, dupa n− j tacti, ın elementele de ınmagazinare seobtine vectorul (b 0 . . . 0). Atunci, din componenta n− j a cuvantului receptionatse va scadea eroarea b. De observat ca - deoarece coloanele lui H sunt nenulesi distincte - primul tact ın care se obtine un vector cu toate componentele nuleınafara de prima, este n− j.

Exemplul 14.4 Sa consideram p = q = 3 (astfel, (m, q − 1) = 1). Folosindradacina α a polinomului primitiv 1 + 2X + X3 vom genera extensia GF (33). Fieβ = αq−1 = α2. Deoarece α33−1 = α26 = 1, avem ord(β) = 13, deci n = 13. Pentrua construi polinomul minimal m(X) al lui β, sa observam (Sectiunea 11.3) ca el areca radacini α2, α6 si α18 (α54 = α2). Deci m(X) = a + bX + cX2 + X3. Punandconditia m(α2) = a + bα2 + cα4 + α6 = 0, obtinem ecuatia matriciala:

a

100

+ b

001

+ c

021

+

111

=

000

cu solutia a = 2, b = c = 1. Deci m(X) = 2 + X + X2 + X3.

Codul ciclic de polinom generator g(X) = m(X) = 2+X +X2 +X3 are matriceade control

H = (1 α2 α4 . . . α24) =

1 0 0 1 2 0 2 0 1 1 1 2 10 0 2 1 0 1 0 2 2 2 1 2 10 1 1 1 2 1 1 0 0 1 2 0 2

Am definit astfel (13, 10) - codul Hamming ternar, evocat ın Exemplul 4.5 relativla Problema Pronosportului.

Sa consideram mesajul de informatie 0120120120. Pentru operatia de codificarese va folosi circuitul (pentru detalii, a se revedea sectiunea 9.4.2):

jj

jj

j++

22

+- - - - -

?-

?r

?

?r

?

-

6

r0210210210

(s-a tinut cont ca −1 = 2, −2 = 1). In primii 10 tacti de functionare, bitii deinformatie sunt trimisi pe canal si - simultan - intra ın circuitul liniar, a caruifunctionare este (pe prima coloana se afla informatia, iar pe celelalte trei - continutulelementelor de ınmagazinare):

0 0 0 0 2 2 1 21 1 2 2 0 2 0 22 1 0 1 1 0 2 00 1 0 2 2 2 1 01 0 1 0 0 0 2 1

Page 506: Criptografie complet

162 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE

In elementele de ınmagazinare au ramas caracterele de control 021. Ele sunt trimiseprin canal la tactii 11 − 13 de la dreapta spre stanga, cu semn schimbat: ın ordine−1 = 2, −2 = 1, −0 = 0. Deci cuvantul - cod transmis a fost a = 0120120120210.Se verifica imediat ca aHT = 0.

La receptie, primele 10 caractere sunt cele de informatie. Pentru a verifica dacaau aparut sau nu erori, se foloseste acelasi circuit, dar cu alta intrare:

jj

jj

+

22

+j+ - - - -

?

r

-

?r

?

?

? -

6

-0120210210210

Functionarea acestui circuit liniar timp de 13 tacti, este data de tabelul:

0 0 0 0 1 2 00 0 0 0 1 1 1 21 1 0 0 2 1 2 22 2 1 0 0 2 2 00 0 2 1 2 2 2 21 2 2 1 1 0 0 02 0 1 1 0 0 0 0

Sindromul a(α2) obtinut este 000, deci nu a aparut nici o eroare. Daca s-ar fireceptionat ınsa cuvantul a′ = 0120120100210, dupa functionarea circuitului timpde 13 tacti s-ar fi ajuns ın elementele de ınmagazinare la 220. Cum acesta estenenul, circuitul se lasa sa functioneze ın continuare, fara intrare, pana se ajungela un sindrom de forma b00 cu b 6= 0. Mai exact, functionarea circuitului va fi (peprima coloana se numara tactii):

0 2 2 0 5 1 0 11 0 2 2 6 1 0 22 2 1 0 7 2 2 13 0 2 1 8 1 1 14 1 2 1 9 1 0 0

Deci, dupa 9 tacti s-a ajuns la 100. Corectia se face astfel: din componenta a 9 - aa cuvantului receptionat se scade b = 1, obtinandu-se 0− 1 = 2 (mod 3).

Observatie: Definitia codurilor Hamming ciclice nebinare nu este echivalenta cu cea acodurilor Hamming nebinare data ın Sectiunea 4.1.1. De exemplu, codul de matricede control

H =

(1 0 1 20 1 2 2

)

este un (4, 2) - cod Hamming ternar. El contine 9 cuvinte(0000, 1101, 2202, 0211, 1012, 2110, 0122, 1222, 2021),

care - evident - nu formeaza un cod ciclic.Deci ıntre cele doua definitii ale codurilor Hamming nebinare (liniare si ciclice)

exista doar o relatie de incluziune stricta.

Page 507: Criptografie complet

14.3. CODURI GOPPA 163

14.3 Coduri Goppa

Aceasta clasa de coduri a fost introdusa de Goppa ın 1970. Desi coduri neciclice,ele constituie o generalizare a codurilor BCH si sunt o punte ıntre teoria codurilorsi criptografie. Din acest motive, prezentarea lor este necesara.

Fie q un numar prim si g(X) ∈ Zq[X]. Daca a ∈ Zq este un element cu proprie-tatea g(a) 6= 0, vom nota

1

X − a= −g(X)− g(a)

X − ag(a)−1

Propozitia 14.2 In algebra polinoamelor din Zq[X] modulo g(X), polinomul1

X − aeste inversul lui X − a.

Demonstratie: Faptul ca1

X − aeste polinom se verifica imediat. Pe de-alta parte,

(X − a)1

X − a= [g(a)− g(X)]g(a)−1 = 1− g(a)−1g(X) ≡ 1 (mod g(X)) 2

Definitia 14.2 Un cod Goppa de lungime n peste Zq este determinat prin:

1. Un polinom g(X) peste o extensie Galois F a lui Zq, grad(g(X)) ≥ 2;

2. a1, a2, . . . , an ∈ F cu g(ai) 6= 0, 1 ≤ i ≤ n.

Codul contine toate cuvintele v = v1v2 . . . vn ∈ Znq pentru care

n∑

i=1

vi

X − ai

= 0.

Teorema 14.2 Codul Goppa contine numai cuvintele v = v1v2 . . . vn pentru care

n∑

i=1

vig(ai)−1as

i = 0, s = 0, 1, . . . , t− 1

unde t = grad(g(X)).

Demonstratie: Sa explicitam polinomul1

X − a. Daca g(X) = g0 + g1X + . . . +

gtXt (gt 6= 0), atunci pentru orice a ∈ Zq cu g(a) 6= 0, are loc descompunereag(X)− g(a)

X − a= gtX

t−1 + (agt + gt−1)Xt−2 + (a2gt + agt−1 + gt−2)X

t−3 + . . . +

(at−1gt + at−2gt−1 + . . . + g1).

Deci coeficientul lui Xk−1 (1 ≤ k ≤ t) ın polinomul1

X − aeste −g(a)−1

t∑

j=k

at−jgj.

Ecuatia caracteristica a codurilor Goppan∑

i=1

vi

X − ai

= 0 implica faptul ca toti

coeficientii lui Xk−1, k = 1, . . . , t sunt nuli. Deci

n∑

i=1

vig(ai)−1

t∑

j=k

at−jgj = 0, 1 ≤ k ≤ t.

Page 508: Criptografie complet

164 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE

Cazul k = t conduce la gt

n∑

i=1

vig(ai)−1 = 0 si - deoarece gt 6= 0 - se obtine

n∑

i=1

vig(ai)−1 = 0.

Din cazul k = t− 1 se obtine gt

n∑

i=1

vig(ai)−1ai + gt−1

n∑

i=1

vig(ai)−1 = 0. Cum a doua

suma este zero, iar gt 6= 0, va rezultan∑

i=1

vig(ai)−1ai = 0, s.a.m.d.

Am obtinut echivalenta

n∑

i=1

vi

X − ai

= 0 ⇐⇒n∑

i=1

vig(ai)−1as

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 =

1g(a1)

1g(a2)

1g(a3)

. . . 1g(an)

a1

g(a1)a2

g(a2)a3

g(a3). . . an

g(an)...

at−1

g(a1)

at−12

g(a2)

at−13

g(a3). . . at−1

n

g(an)

.

Demonstratie: Este lasata ca exercitiu.

Exemplul 14.5 Polinomul 1+X +X3 ∈ Z2[X] este ireductibil. Fie α o radacina asa, cu ajutorul careia se genereaza extensia GF (23). Daca alegem g(X) = 1+X+X2

si drept elemente ai cele 8 componente ale lui GF (23), vom obtine un cod Goppa delungime 8 cu matricea de control

H =

1g(0)

1g(1)

1g(α)

. . . 1g(α6)

0 1g(1)

αg(α)

. . . α6

g(α6)

=

(1 1 α2 α4 α2 α α α4

0 1 α3 α6 α5 α5 α6 α3

)=

=

1 1 0 0 0 0 0 00 0 0 1 0 1 1 10 0 1 1 1 0 0 10 1 1 1 1 1 1 10 0 1 0 1 1 0 10 0 0 1 1 1 1 0

Acest cod este format din numai patru cuvinte:

00000000, 00111111, 11001011, 11110100.

El are distanta minima 5; s-a obtinut deci un (8, 2) - cod binar corector de douaerori. De remarcat ca acesta nu este un cod ciclic.

Observatie: Sa consideram un cod BCH definit prin radacinileαm0 , αm0+1, . . . , αm0+d−2

unde α ∈ GF (qm) are ordinul n. Acest cod se poate scrie ca un cod Goppa astfel: Se

Page 509: Criptografie complet

14.3. CODURI GOPPA 165

ia polinomul g(X) = Xm0+d−2 si elementele α0, α−1, . . . , α−(n−1). Vom avea pentruorice i = 0, 1, . . . , d− 2 si k = 0, 1, . . . , n− 1:

(α−k)i

(α−k)m0+d−2= (αk)m0+d−2−i = (αm0+d−2−i)k

Pe baza aceasta, codul Goppa rezultat are matricea de control

H =

1 αm0+d−2 (αm0+d−2)2 . . . (αm0+d−2)n−1

1 αm0+d−3 (αm0+d−3)2 . . . (αm0+d−3)n−1

...1 αm0 (αm0)2 . . . (αm0)n−1

care coincide cu matricea de control a codului BCH considerat, ın care s-a efectuato inversare a liniilor.

Se poate arata (Van Lint) ca singurele coduri Goppa ciclice sunt codurile BCH.

Propozitia 14.3 Codul Goppa binar de lungime n, determinat de un polinom degrad t peste GF (2m) are k ≥ n − mt simboluri de informatie si distanta minima≥ t + 1.

Demonstratie: Matricea de control a codului Goppa are t linii ın GF (2m), deci mtlinii scrise ın binar. Rezulta ca numarul n− k de simboluri de control este cel multmt : n− k ≤ mt.

Pe de-alta parte, se arata usor ca orice combinatie liniara de t coloane din Heste liniar independenta. 2

Definitia 14.3 Fie g(X) un polinom ireductibil peste GF (qm). Codul Goppa deter-minat de g(X) si de toate elementele lui GF (qm) se numeste ireductibil.

Codul prezentat ın Exemplul 14.5 este un cod ireductibil. Despre codurile Goppaireductibile se poate prezenta urmatorul rezultat:

Teorema 14.3 Un cod Goppa binar ireductibil, determinat de un polinom de gradult poate corecta cel putin t erori independente.

Pentru demonstratie va trebui sa facem o constructie suplimentara.

Definitia 14.4 Derivata formala a polinomului a(X) = a0 +a1X + . . .+anXn estedefinita prin a′(X) = a1 + 2a2X + 3a3X

2 + . . . + nanXn−1.

Lema 14.1 Pentru derivata formala sunt adevarate egalitatile:

1. (a(X) + b(X))′ = a′(X) + b′(X);

2. (a(X)b(X))′ = a′(X)b(X) + a(X)b′(X)

Demonstratie: Exercitiu.

Lema 14.2 Intr-un corp de caracteristica 2 derivata formala a unui polinom esteun patrat perfect.

Page 510: Criptografie complet

166 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE

Demonstratie: Deoarece (Xn)′ = nXn−1 = 0 pentru n par, derivata va avea numaiputeri pare. Cum fiecare coeficient se poate scrie ca un patrat perfect (se lucreazaıntr-un corp de caracteristica 2), avem f ′(X) = f 2

0 + f 22 X2 + f 2

4 X4 + . . . si, daca seia g(X) = f0 + f2X + f4X

2 + . . ., avem f ′(X) = g2(X). 2

Sa revenim acum la Demonstratia Teoremei 14.3: Fie g(X) un polinom ire-ductibil de grad t peste GF (2m) = {a1, a2, . . . , an} (n = 2m) si v = v1v2 . . . vn

un cuvant al codului Goppa, w(v) = s. Notam vi1 , vi2 , . . . , vis bitii egali cu 1 din

v. Deoarece v este cuvant - cod, avemn∑

i=1

vi

X − ai

=s∑

k=1

1

X − aik

= 0. Polino-

mul f(X) = (X − ai1)(X − ai2) . . . (X − ais) nu este divizibil cu g(X) (deoareceg(X) este ireductibil de grad t ≥ 2). Rezulta ca, ın algebra claselor de resturiZ2[X]/g(X), f(α) 6= 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 − aik

. Facand X = α si ınmultind

relatia cu r(α), obtinem

{f ′(α)}{r(α)} =s∑

k=1

{f(α)}{r(α)}α− aik

=s∑

k=1

1

α− aik

= 0 (mod g(X)).

Aceasta ınseamna ca f ′(X)r(X) este divizibil cu g(X). Cum g(X) este ireductibilsi nu divide r(X) (deoarece r(α) 6= 0), rezulta g(X)|f ′(X).

Deoarece suntem ıntr-un corp de caracteristica 2, conform Lemei 14.2 derivataformala este un patrat perfect: f ′(X) = b2(X). Din faptul ca g(X) este divizorireductibil al lui b2(X) rezulta g(X)|b(X). Deci g2(X)|b2(X) = f ′(X).

Se stie ca grad(f ′(X)) = s− 1 si s ≥ 1; deci grad(f ′(X)) ≥ grad(g2(X)), adicas− 1 ≥ 2t.

Cum ponderea oricarui cuvant - cod este ≥ 2t + 1, rezulta ca distanta minima acodului este cel putin 2t + 1, deci codul corecteaza sigur t erori independente. 2

Exemplul 14.6 Sa consideram GF (23) generat de o radacina a lui g(X) = 1 +X + X3. Deoarece g(X) are 3 radacini ın GF (23), el nu va avea nici o radacinaın corpul GF (25) (GF (25) nu este o extensie a lui GF (23)), deci aici g(X) esteireductibil.

Codul Goppa ireductibil corespunzator are n = 32, k ≥ 32 − 5 · 3 = 17, d ≥ 7;deci este un (32, 17) - cod corector de 3 erori.

Decodificarea codurilor Goppa se face ın maniera similara decodificarii codurilorBCH. Astfel, fie C un cod Goppa definit de g(X) ∈ Zq[X] (grad(g(X)) = t),si a1, . . . , an ∈ GF (qm); consideram v = v0v1 . . . vn−1 un cuvant - cod si r =r0r1 . . . rn−1 cuvantul receptionat dupa transmiterea lui v.

Vom nota cu e = r− v = e0e1 . . . en−1 secventa - eroare.Pentru w(e) ≥ t/2 se poate folosi un algoritm din cei uzuali. In practica ınsa

t = grad(g(X)) este mare si exista algoritmi eficienti de decodificare pentru cazulw(e) < t/2. Un astfel de algoritm vom construi mai jos.

Fie M = {i|ei 6= 0}, card(M) = e < t/2; consideram polinomul sindrom

{s(X)} =n−1∑

i=0

ei

X − ai

(mod g(X)).

Page 511: Criptografie complet

14.4. EXERCITII 167

De remarcat ca {s(X)} se poate determina prin calcul la primirea cuvantului r.Se definesc polinoamele σ(X) (de localizare a erorii) si ω(X) prin

σ(X) =∏

i∈M

(X − ai), ω(X) =∑

i∈M

ei

j∈M\{i}(X − aj).

Din definitie rezulta ca σ(X) si ω(X) sunt prime ıntre ele. In plus, grad(σ(X)) =e, grad(ω(X)) < e. Intre ele exista relatia

{s(X)}{σ(X)} =n−1∑

i=0

ei

X − ai

i∈M

(X − ai) ≡ {ω(X)} (mod g(X)). (1)

σ(X) si ω(X) sunt polinoamele normate de grad minim care verifica relatiile desus. 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 relatiiles(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)

}≡ 0

(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 faptulca grad(σ1(X)) < grad(σ(X)) si {σ1(X)} 6≡ 0.

Rezumand, procedeul de decodificare a mesajelor la codurile Goppa are loc astfel:

1. Din mesajul receptionat r se calculeaza sindromul s(X);2. Se determina polinomul normat σ(X) de grad minim < t/2 care verifica

relatia (1) (un algoritm eficient a fost dat de Berlekamp).Din rezolvarea ecuatiei σ(X) = 0 se afla locatiile erorilor;

3. Se determina ei (i ∈ M) din relatiile ω(ai) = ei

j∈M\{i}(ai − aj).

Pe baza acestor valori se construieste secventa - eroare e;4. Cuvantul decodificat este v = r− e.

14.4 Exercitii

14.1 Sa se construiasca matricea generatoare a (13, 10) - codului Hamming ternardin Exemplul 14.4.

Page 512: Criptografie complet

168 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE

14.2 In codul din Exemplul 14.4 sa se codifice mesajele de informatie:(a) 1122002211 (b) 0000111122 (c) 1020012210(d) 2200211101 (e) 2222222222 (f) 0000000000

14.3 Sa se construiasca toate codurile Hamming peste Z3 si Z5.

14.4 Demonstrati Corolarul 14.1

14.5 Demontrati Lema 14.1

14.6 Pentru g(X) = X2t aratati ca1

X − a=

2t∑

j=1

a−jXj−1.

14.7 Gasiti distanta minima a codului binar Goppa determinat de g(X) = 1 + X2

si de elementele 0, α, α2 ∈ GF (22).

14.8 Gasiti o matrice de control a (16, 8) - codului Goppa binar ireductibil dat deg(X) = α3 + X + X2, unde α ∈ GF (24) este primitiv.

14.9 Polinomul generator este g(X) = 1+X2 iar parametrii sunt cele 15 elementenenule ale extensiei GF (24) generata de radacina polinomului 1+X +X4. Analizaticodul Goppa binar astfel construit.

14.10 Sa se construiasca codul Goppa ireductibil peste GF (24), cu g(X) = 1+X +X3. Sa se determine matricea de control si matricea generatoare.

Care este distanta minima a codului ?

14.11 Folosind codul construit anterior, sa se decodifice (folosind algoritmi de co-duri liniare) cuvintele:

0110110010011110 0111011001000000 10111101011001001111111111111111 1011011111001011 1010010110000010

14.12 Pentru acelasi cod Goppa binar ireductibil, sa se decodifice cuvintele0101100101111001 1100101100110100 0001100010010110

folosind algoritmul rapid specific.

14.13 Verificati ca polinomul 1 + X + X2 este ireductibil ın GF (25). Determinatiparametrii si matricea de control a codului Goppa ireductibil corespunzator.

Page 513: Criptografie complet

Prelegerea 15

Coduri Preparata

In 1968 Preparata a introdus o clasa de coduri neliniare corectoare de doua erori, cares-au dovedit foarte interesante prin proprietatile si prin legaturile pe care le au cudiverse alte coduri deja studiate. Ele sunt o combinatie ıntre codurile Reed - Mullersi codurile BCH corectoare de doua erori. Definitia pe care o vom folosi apartine luiBaker si permite o abordare mai simpla a algoritmilor de codificare/decodificare.

15.1 Definirea codurilor Preparata extinse

Sa revenim la modalitatea de marcare a pozitiilor cuvintelor de lungime 2r folosindelementele lui GF (2r), asa cum s-a definit ın algoritmul de decodificare Petersonpentru codurile BCH. Deci:

Fie r ≥ 2 un numar ıntreg, α ∈ GF (2r) primitiv, si U ⊆ GF (2r); se noteazaχ(U) cuvantul de lungime 2r definit prin

1 pe pozitia i daca αi ∈ U (0 ≤ i ≤ 2r − 2),1 pe pozitia 2r − 1 daca 0 ∈ U ,0 ın rest.

Exemplul 15.1 Fie α ∈ GF (23) primitiv. Atunci

χ({0}) = 00000001χ({α2, α5, α6}) = 00100110

χ(∅) = 00000000.

Se definesc ın mod natural operatiile:U + β = {u + β|u ∈ U}, βU = {βu|u ∈ U},U∆V = {u|u ∈ U ∪ V, u 6∈ U ∩ V }, U, V ⊂ GF (2r), β ∈ GF (2r).

Se verifica usor relatiileχ(U) + χ(V ) = χ(U∆V ), w(χ(U)) = card(U). (1)

Exemplul 15.2 Fie GF (23) construit folosind radacina (primitiva) α a polinomu-lui 1 + X + X3, si multimile U = {α2, α5, α6}, V = {α5,0}. Atunci

U + α2 = {α2 + α2, α5 + α2, α6 + α2} = {0, α3, α0},α2U = {α2α2, α2α5, α2α6} = {α4, α0, α},

χ(U) + χ(V ) = 00100110 + 00000101 = 00100011 = χ({α2, α6,0}) = χ(U∆V ).

169

Page 514: Criptografie complet

170 PRELEGEREA 15. CODURI PREPARATA

Definitia 15.1 Fie r > 2 un numar impar. Codul extins Preparata P (r) este mul-timea cuvintelor de forma χ(U)χ(V ) unde U, V ⊆ GF (2r) verifica conditiile

1. card(U), card(V ) sunt numere pare;

2.∑

u∈U

u =∑

v∈V

v;

3.∑

u∈U

u3 +

(∑

u∈U

u

)3

=∑

v∈V

v3.

Pentru usurinta 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 conditie din definitie este verificata. Pentru adoua conditie avem:∑

u∈U

u = α + α2 + α5 + 0 = 010 + 001 + 111 + 000 = 100 = α0,

v∈V

v = α0 +α+α2 +α3 +α6 +0 = 100+010+001+110+101+000 = 100 = α0.

A treia conditie este si ea verificata deoarece∑

u∈U

u3 = α3 + α6 + α + 0 = 110 + 101 + 010 + 000 = 001 = α2,

v∈V

v3 = α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).

Observatii:

• Deoarece card(χ(U)) = card(χ(V )) = 2r, P (r) este un cod de lungime 2r+1.

• Faptul ca 0 este sau nu un element al multimilor U sau V nu afecteaza cunimic conditiile 2 si 3 din Definitia 15.1. Acest element se introduce ın celedoua multimi numai pentru a asigura prima conditie din definitie. Rezultaca bitii de pe pozitia 2r − 1 din χ(U) si χ(V ) sunt biti de paritate (ceea cejustifica termenul de cod Preparata ”extins”).

• Exponentul ′3′ din Definitia 15.1 nu este esential. Daca el se ınlocuieste cus = 2t + 1 astfel ca aplicatiile f, g : GF (2r) −→ GF (2r), f(x) = xs, g(x) =xs−2 sa fie bijective, toate proprietatile se pastreaza.

Aceste coduri se numesc Coduri Preparata generalizate.

Lema 15.1 Fie [χ(U), χ(V )], [χ(A), χ(B)] ∈ P (r) si β =∑

u∈U

u.

Atunci [χ(U∆A + β), χ(V ∆B)] ∈ P (r).

Demonstratie: Vom arata ca noul cuvant construit verifica conditiile din Definitia15.1.

Page 515: Criptografie complet

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(U∆A + β) = card(U∆A) = card(U) + card(A)− 2 · card(U ∩ A).

2. Sa observam ıntai ca daca I, J ⊆ GF (2r), avem∑

x∈I∆J

x =∑

x∈I

x+∑

x∈J

x deoarece

orice element αi ∈ I ∩ J apare de doua ori ın membrul drept si niciodata ınmembrul stang, iar αi + αi = 0. Deci:

x∈U∆A+β

x =∑

y∈U∆A

(y + β) =∑

y∈U∆A

y + β · card(U∆A) =∑

y∈U

y +∑

y∈A

+0

(deoarece card(U∆A) este par) =∑

y∈V

y +∑

y∈B

y =∑

y∈V ∆B

y.

3.∑

x∈U∆A+β

x3 +

x∈U∆A+β

x

3

=∑

y∈U∆A

(y + β)3 +

y∈V ∆B

y

3

=

=∑

y∈U

(y +β)3 +∑

y∈A

(y +β)3 +

y∈V

y +∑

y∈B

y

3

=∑

y∈U

y3 +β∑

y∈U

y2 +β2∑

y∈U

y +

β3card(U) +∑

y∈A

y3 + β∑

y∈A

y2 + β2∑

y∈A

y + β3card(A) +

y∈V

y

3

+

y∈V

y

2 ∑

y∈B

y

+

y∈V

y

y∈B

y

2

+

y∈B

y

3

.

Dar β =∑

y∈U

y =∑

y∈V

y,

y∈V

y

2

=∑

y∈V

y2, iar card(U), card(V ) sunt pare.

Deci expresia de sus se reduce la∑

y∈V

y3 +∑

y∈B

y3 =∑

y∈V ∆B

y3.

Definitia 15.2 Un cod C este invariant la distanta daca pentru orice c1, c2 ∈ C,are loc relatia

∀i 0 ≤ i ≤ n, card({α|d(α, c1) = i}) = card({α|d(α, c2) = i}).

Exemple simple de coduri invariante la distanta sunt codurile liniare.Ca o consecinta imediata, pentru un cod invariant la distanta care contine

cuvantul nul, distanta 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 distanta.

Demonstratie: Fie [χ(U), χ(V )], [χ(A), χ(B)] ∈ P (r) arbitrare aflate la distanta iunul de altul. Conform Lemei 15.1, [χ(U∆U+β), χ(V ∆V )], [χ(U∆A+β), χ(V ∆B)]sunt de asemenea cuvinte - cod si se verifica usor ca ele se afla la distanta i. DeoareceU∆U = ∅ rezulta [χ(U∆U + β), χ(V ∆V )] = 0, deci [χ(U∆A) + β), χ(V ∆B)] arepondere i. 2

Page 516: Criptografie complet

172 PRELEGEREA 15. CODURI PREPARATA

Lema 15.3 Fie [χ(U), χ(V )] ∈ P (r). Atunci P (r) mai contine urmatoarele cuvinte:(i). [χ(V ), χ(U)];(ii). [χ(U + β), χ(V + β)] pentru orice β ∈ GF (2r);(iii). [χ(βU), χ(βV )] pentru orice β ∈ GF (2r), β 6= 0.

Demonstratie: Se rezolva similar demonstratiei de la Lema 15.1. 2

Exemplul 15.4 Conform Exemplului 15.3, [χ(U), χ(V )] ∈ P (3), undeU = {α, α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 simplifica problema determinarii distantei mini-me a lui P (r). Pentru aceasta ınsa, este nevoie de un rezultat suplimentar (carejustifica conditia ca r sa fie impar).

Lema 15.4 Fie α ∈ GF (2r) primitiv. Atunci α3 este primitiv daca r este impar sinu este primitiv daca r este par.

Demonstratie: Se stie ca αi este primitiv daca si numai daca (i, 2r − 1) = 1. Avem2r−1 = (3−1)r−1 = M3+(−1)r−1; deci pentru r impar 2r−1 = M3−2 = M3+1,ceea ce ınseamna ca α3 este primitiv. Similar, pentru r par, 2r − 1 = M3, deci α3

nu este primitiv. 2

Corolarul 15.1 Daca r > 2 este un numar impar, atunci pentru orice x ∈ GF (2r)\{0} exista y unic (numit radacina cubica a lui x) astfel ca y3 = x.

Teorema 15.1 P (r) are distanta minima t = 6.

Demonstratie: Deoarece P (r) este invariant la distanta, el va contine un cuvant -cod [χ(U), χ(V )] de pondere t. Deci

t = w(χ(U)) + w(χ(V )) = card(U) + card(V ).Rezulta ca t este numar par; mai trebuie verificat ca t 6= 2, t 6= 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 caU = {0,x} cu x 6= 0. Dar atunci

u∈U

u = 0 + x = x, ceea ce duce la o contrazicere

a definitiei 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} cux,y, z 6= 0 si distincte. Ultima conditie a definitiei codurilor Preparata este:

03 + x3 + y3 + z3 + (0 + x + y + z)3 = 0 sau (x + y)(x + z)(y + z) = 0ceea ce este imposibil, cele trei numere fiind distincte si nenule.

Page 517: Criptografie complet

15.2. CODIFICAREA CODURILOR PREPARATA EXTINSE 173

In a doua varianta, se poate considera U = {0,x}, V = {y, z}, toate cele patruelemente fiind distincte. Din definitie rezulta

03 + x3 + (0 + x)3 = y3 + z3 sau y3 + z3 = 0.

Folosind acum Corolarul 15.1, din y3 = z3 rezulta y = z, contradictie.

Sa construim acum un cuvant - cod de pondere t = 6. Fie x,y, z ∈ GF (2r)elemente distincte nenule. Exista atunci (Corolarul 15.1) un element v ∈ GF (2r)unic cu v3 = x3 + y3 + z3. Daca v = x, atunci v3 = x3 deci y3 = z3, ceea ce ducela contradictia y = z. Deci v este distinct de x,y, z.

Definim u = v + x + y + z. Se observa ca u 6= 0 (altfel

v3 + (x + y + z)3 = (x + y)(x + z)(y + z) 6= 0

deci - cu Corolarul 15.1 - v 6= x + y + z). Fie acum U = {0,u}, V = {v,x,y, z}.Din constructie, cum toate elementele sunt distincte, [χ(U), χ(V )] este un cuvantde pondere 6 si se verifica usor ca este cuvant - cod. 2

Exemplul 15.5 Sa consideram GF (23) construit anterior. Fie elementelex = α, y = α3, z = α5. Definim

v3 = x3 + y3 + z3 = α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 obtine [χ(U), χ(V )] = 00001001 01010110care este un cuvant cod din P (3) de pondere 6.

Teorema 15.2 Codul Preparata nu este cod liniar.

Demonstratie: Dupa cum se stie, [χ(U), χ(V )]+[χ(A), χ(B)] = [χ(U∆A), χ(V ∆B)].Din demonstratia Teoremei 15.1 am vazut cum se pot construi cuvintele - cod[χ(U), χ(V )], [χ(A), χ(B)] ∈ P (r) cu U = {0,u1}, V = {x1,y1, z1,v1},A = {0,u2}, B = {x2,y2, z2,v2}. Conform Lemei 15.1,

c = [χ(U∆A + u1), χ(V ∆B)] ∈ P (r). Facem urmatoarele observatii:

card(U∆A + u1) ≤ 2;

d(c, [χ(U∆A), χ(V ∆B)]) ≤ 2 · card(U∆A + u1) ≤ 4;

P (r) are distanta minima 6.

Din ele rezulta ca [χ(U), χ(V )] + [χ(A), χ(B)] 6∈ P (r).

Deci P (r) nu este cod liniar. 2

Ca o consecinta 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 totusiacest lucru ca o consecinta a schemei de codificare.

15.2 Codificarea codurilor Preparata extinse

Fie α ∈ GF (2r) primitiv si sa consideram codul BCH de polinom generator g(X) =m1(X)m3(X) unde mi(X) este polinomul minimal al lui αi (i = 1, 3). Dupa cum sestie, grad(m1(X)) = grad(m3(X)) = r, deci grad(g(X)) = 2r. Codul BCH astfeldefinit poate corecta maxim 2 erori si are matricea de control (transpusa):

Page 518: Criptografie complet

174 PRELEGEREA 15. CODURI PREPARATA

H =

α0 α0

α1 α3

α2 α6

...α2r−2 α3(2r−2)

Deoarece g(X) genereaza un cod ciclic, rezulta ca orice submatrice a lui H formatadin 2r linii consecutive este nesingulara, deci inversabila. Se defineste matricea Aca submatrice a lui H formata din ultimele 2r linii, si H ′ matricea ramasa prinstergerea lui A.

Exemplul 15.6 In extensia GF (23) generata de radacina α a polinomului 1+X +X3 vom avea

A =

α α3

α2 α6

α3 α2

α4 α5

α5 αα6 α4

=

010 110001 101110 001011 111111 010101 011

cu A−1 =

001 011111 010011 101110 100101 110111 001

.

Pentru GF (25) generata de radacina α a polinomului 1 + X2 + X5 avem

A =

α21 α63

α22 α66

......

α30 α90

=

00011 0100010101 0000111110 0010101111 1000110011 0011111101 1101111010 0110001101 1010110010 1001101001 01101

cu A−1 =

00111 0001000011 1000110011 0001111011 0101001101 1010110101 1100100110 1111111001 0111011000 0011110001 10100

Fie a = [aL, aR] un cuvant binar oarecare de lungime 2r+1 − 2r − 2, unde|aL| = 2r − 1, |aR| = 2r − 2r − 1. In notatie polinomiala putem scrie

aLH = [aL(α), aL(α3)], aRH ′ = [aR(α), aR(α3)].Se mai defineste

vR = [aL(α) + aR(α), aL(α3) + (aL(α))3 + aR(α3)]A−1. (2)

Teorema 15.3 Fie r un numar impar. Pentru orice cuvant binar a de lungime2r+1 − 2r − 2, daca χ(U) = [aL, pL], χ(V ) = [aR,vR, pR] unde pL, pR sunt bitii decontrol pentru aL respectiv [aR,vR], atunci [χ(U), χ(V )] ∈ P (r).

Demonstratie: [aR,vR]H = aRH ′ + vRA = [aR(α), aR(α3)] + [aL(α) + aR(α),aL(α3) + (aL(α))3 + aR(α3)] = [aL(α), aL(α3) + (aL(α))3].Dar [aR,vR] = [

v∈V

v,∑

v∈V

v3], aL(α) =∑

u∈U

u, aL(α3) + (aL(α))3 =∑

u∈U

u3 +

(∑

u∈U

u

)3

, ceea ce verifica conditiile din Definitia 15.1.

Deci [χ(U), χ(V )] este cuvant - cod ın P (r). 2

Page 519: Criptografie complet

15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 175

Corolarul 15.2 P (r) are 22r+1−2r−2 cuvinte - cod.

Demonstratie: In Teorema 15.3 exista 22r+1−2r−2 alegeri posibile pentru a, toateconducand la cuvinte - cod distincte. 2

Putem da acum un algoritm de codificare a meajelor de informatie ın codurilePreparata.

Fie aL, aR cuvinte de lungimi 2r − 1 respectiv 2r − 2r − 1.Fie vR definit de (2).Se construiesc pL, pR conform Teoremei 15.3.Atunci mesajul de informatie a = [aL, aR] se codificaın [aL,pL, aR,vR,pR].

Exemplul 15.7 Sa consideram r = 3, aL = 0110010, aR = 1. DeciaL(α) = α + α2 + α5 = α0, aR(α) = α0,aL(α3) = α3 + α6 + α15 = α2, aR(α3) = α0.

Din (2) avem vR = [α0 + α0, α2 + α0 + α0]A−1 = [000 001]A−1 = 111001 undeA−1 este matricea din Exemplul 15.6. Atunci vom codifica a = [0110010 1] ınc = [aL, pL, aR,vR, pR] = [01100010 1 1 111001 1].

Deci c = [χ(U), χ(V )] unde χ(U) = 01100101, χ(V ) = 11110011, care coincidecu secventa - cod construita ın Exemplul 15.3.

15.3 Decodificarea codurilor Preparata extinse

Cum P (r) are distanta minima 6, el poate corecta maxim 2 erori.Fie b un cuvant receptionat; ıl scriem b = [bL, pL,bR, pR] unde bL, bR sunt

ambele de lungime 2r − 1 iar pL, pR sunt biti de control a paritatii. Se calculeazabLH = [bL(α), bL(α3)], bRH = [bR(α), bR(α3)].

Apar mai multe cazuri, ın functie de pozitiile unde apar erori.

1. Daca erorile apar pe pozitiile de control, atunci

bL(α) = bR(α), bL(α3) + (bL(α))3 = bR(α3)

(conform Definitiei 15.1), ceea ce se verifica usor.

2. Daca exista o eroare pe pozitia i ın bR si cel mult o eroare pe pozitiile decontrol atunci

bL(α) = bR(α) + αi, bL(α3) + (bL(α))3 = bR(α3) + α3i, deci

(bL(α) + bR(α))3 = bL(α3) + (bL(α))3 + bR(α3).

Daca ultima relatie este verificata, atunci se scrie αi = bL(α) + bR(α) si seschimba bitul i din bR (plus cel mult un bit de control).

3. Daca exista o eroare pe pozitia i din bL si cel mult o eroare pe pozitiile decontrol, similar cu cazul anterior (lucru posibil pe baza Lemei 15.3) se verificarelatia

(bR(α) + bL(α))3 = bR(α3) + (bR(α))3 + bL(α3);

Page 520: Criptografie complet

176 PRELEGEREA 15. CODURI PREPARATA

ın caz afirmativ, se calculeaza αi = bR(α) + bL(α) si se schimba bitul i din bL

(plus cel mult un bit de control).

4. Daca apar doua erori ın bR pe pozitiile i si j, atunci:

bL(α) = bR(α) + αi + αj, bL(α3) + (bL(α))3 = bR(α3) + α3i + α3j,

deci se determina αi + αj si α3i + α3j. Valorile i, j sunt determinate cu unalgoritm similar celui de la codurile BCH.

5. Daca apar doua erori ın bL, invocand din nou Lema 15.3 putem aplica analizade la cazul anterior.

6. Daca apar doua erori: una pe pozitia i ın bL si una pe pozitia j ın bR, atunci

bL(α) + αi = bR(α) + αj, bL(α3) + α3i + (bL(α) + αi)3

= bR(α3) + α3j.

Acest sistem de necunoscute αi si αj se rezolva astfel: din prima ecuatie sescoate αj = bL(α) + αi + bR(α) si se ınlocuieste ın a doua ecuatie, ceea ce da

bL(α3) + α3i + (bL(α) + αi)3 = bR(α3) + (bL(α) + αi)3 + (bL(α) + αi)2bR(α) +(bL(α) + αi)bR(α)2 + bR(α)3.

Dupa simplificari se ajunge la

α3i + α2ibR(α) + αi(bR(α))2 + (bR(α))3 = bL(α3) + bR(α3) + bL(α)2bR(α) +bL(α)bR(α)2, sau

(αi + bR(α))3 = (bL(α3) + bR(α3)) + (bL(α) + bR(α))3 + bL(α)3 + bR(α)3.

Notand membrul drept al acestei expresii cu ∆, obtinem solutia

αi = bR(α) + ∆1/3, αj = bL(α) + ∆1/3.

Deci locatiile erorilor se pot determina ın toate situatiile posibile. Bitii de paritatepentru fiecare jumatate de cuvant dau posibilitatea de a decide ce caz se aplica luib. Putem da acum algoritmul de decodificare pentru codurile Preparata P (r).

Page 521: Criptografie complet

15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 177

Fie b = [bL, pL,bR, pR] cuvantul receptionat.0. Se calculeaza L1 = bL(α), L3 = bL(α3), R1 = bR(α), R3 = bR(α3);1. Daca L1 + R1 = 0 si L3 + L3

1 + R3 = 0, atunci singurele erori posibile auaparut pe pozitiile de control.2. Daca (L1 +R1)

3 +L3 +L31 +R3 = 0, calculam αi = L1 +R1. Se corecteaza

pozitia i din bR si cel mult un bit de control al paritatii; se cere retransmisiadaca ambii biti de paritate trebuie modificati.3. Daca (L1 +R1)

3 +R3 +R31 +L3 = 0, calculam αi = L1 +R1. Se corecteaza

pozitia i din bL si cel mult un bit de control al paritatii; se cere retransmisiadaca ambii biti de paritate trebuie modificati.4. Daca ambele jumatati ale lui b sunt de pondere para si

X2 + (L1 + R1)X +L3 + L3

1 + R3 + (L1 + R1)3

L1 + R1

= (X + αi)(X + αj),

se corecteaza pozitiile i si j din bL.5. Daca ambele jumatati ale lui b sunt de pondere para si

X2 + (L1 + R1)X +R3 + R3

1 + R3 + (L1 + R1)3

L1 + R1

= (X + αi)(X + αj),

se corecteaza pozitiile i si j din bR.6. Daca ambele jumatati ale lui b sunt de pondere impara, se calculeaza

αi = R1 + (L31 + R3

1 + (L1 + R1)3 + L3 + R3)

1/3

αj = L1 + (L31 + R3

1 + (L1 + R1)3 + L3 + R3)

1/3

Se corecteaza pozitia i din bL si pozitia j din bR.7. Daca nu a aparut nici una din situatiile anterioare, se cere retransmisiacuvantului.

Exemplul 15.8 Sa decodificam urmatoarele cuvinte primite, despre care se pre-supune ca au fost codificate folosind P (3), unde GF (23) s-a generat cu radacina αa polinomului 1 + X + X3:

I: b = 10010011 11100111(0) [L1, L3] = bLH = 111 110, [R1, R3] = bRH = 101 110(1) L1 + R1 = 111 + 101 = α 6= 0(2) (L1 + R1)

3 + L3 + L31 + R3 = α3 + α3 + α15 + α3 = α0 6= 0

(3) (L1 + R1)3 + R3 + R3

1 + L1 = α3 + α3 + α18 + α3 = α6 6= 0

(4) X2 + αX +α3 + α15 + α3 + α3

α= X2 + αX + α6 = (X + α2)(X + α4)

Deci b se decodifica ın 10010011 11001111.

II: b = 10100100 10001001(0) [L1, L3] = bLH = [010, 011], [R1, R3] = bRH = [111, 011](1) L1 + R1 = 010 + 111 = α6 6= 0(2) (L1 + R1)

3 + L3 + L31 + R3 = α18 + α4 + α3 + α4 = α6 6= 0

(3) (L1 + R1)3 + R3 + R3

1 + L3 = α18 + α4 + α15 + α4 = α2 6= 0Ambele jumatati 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 obtinut i = 0. Se poate determina apoi imediatαj = α + α4 = α2, deci j = 2.Cuvantul b se decodifica ın 00100100 10101001.

Page 522: Criptografie complet

178 PRELEGEREA 15. CODURI PREPARATA

III: b = 10001000 11101001(0) [l1, L3] = bLH = [111, 011], [R1, R3] = bRH = [100, 000](1) L1 + R1 = 111 + 100 = α4 6= 0(2) (L1 + R1)

3 + L3 + L31 + R3 = α12 + α4 + α15 + 0 = α3 6= 0

(3) (L1 + R1)3 + R3 + R3

1 + L3 = α12 + 0 + α0 + α4 = 0

Calculam αi = L1 + R1 = α4, deci i = 4. Dar modificarea bitului 4 ın bL cere caambii biti de control sa fie modificati; deci se cere retransmisia cuvantului.

Pentru codul Preparata obtinut prin relaxarea lui P (r), se poate aplica aceeasistrategie de decodificare folosita la codul Golay; cum acesta are d = 5, poate corectade 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 C24 ale carui cuvinte le scriem sub formaa = [a1, a2] unde |a1| = 8, |a2| = 16. Consideram submultimea GNR ⊂ C24 alecarei elemente verifica conditiile:

1. Daca a ∈ GNR atunci w(a1) ∈ {0, 2}.2. Daca a,b ∈ GNR atunci d(a1,b1) ≤ 2.

Evident, GNR va avea 256 cuvinte. Pe baza lui se construieste codulNR = {a2|a = [a1, a2] ∈ GNR}.

Acesta este un cod neliniar de lungime n = 16 si distanta minima d = 6. Numitcodul Nostrom - Robinson, el coincide cu codul Preparata P (3).

Un alt cod derivat din acesta este codul Nadler, construit astfel: se pastreaza dinNR doar cuvintele - cod care coincid pe ultimele doua pozitii. Apoi la toate acestecuvinte se sterg ultimele trei caractere (o dubla scurtare urmata de o relaxare).Codul astfel obtinut este unic, are n = 13, d = 5 si 64 cuvinte - cod.

15.4.2 Codurile Kerdock

Definitia 15.3 Fie r ≥ 3, r impar si U, V ⊂ GF (2r), card(U), card(V ) pare.Un cod Kerdock K(r) este format din toate cuvintele de forma [U, V ] care verifica

conditiile:

1. ∀s (1 ≤ s ≤ 2r − 2) (1 ≤ w2(s) < r − 2) ⇒ ∑

u∈U

us =∑

v∈V

vs = 0;

2. ∀s (≤ s ≤ 2r−2) (w2(s) = r−2) ⇒ ∑

u∈U

us =∑

v∈V

vs =

(∑

u∈U

u−1 +∑

v∈V

v−1

)−s

unde w2(s) reprezinta ponderea reprezentarii ın binar a lui s.Se considera prin conventie ∀s, 0−s = 0.

Page 523: Criptografie complet

15.5. EXERCITII 179

Codul Kerdok K(r) (definit ın 1972) este de fapt un subcod al codului Reed- Muller RM(2, r + 1); el este format din perechi de translatari de cuvinte dinRM(1, r) selectate ın asa fel ca sa maximizeze distanta minima dintre doua trans-latari.

Este interesant ca dintre toate codurile cu aceeasi distanta minima, codul Kerdokare numarul maxim de cuvinte - cod.

Nu vom detalia demonstratii referitoare la proprietatile acestor coduri. Pentruinformatii suplimentare se pot folosi [6] si [2], cu mentiunea ca justificarile pleaca dela o modalitate diferita de definire a codurilor K(r) si P (r). Rezultatele sunt ınsadeosebit de interesante. Astfel:

Teorema 15.4 K(r) este invariant la distanta.

Lema 15.5 K(3) = P (3).

Teorema 15.5 Codurile P (r) si K(r) sunt duale.

Ca o consecinta imediata, P (3) este un cod auto-dual.

15.5 Exercitii

15.1 Demonstrati relatiile (1).

15.2 Demonstrati Lema 15.3.

15.3 Demonstrati Corolarul 15.1.

15.4 Aplicati Lema 15.3 cuvantului - cod definit ın Exemplul 15.4, folosindβ = α0, β = α, β = α6

15.5 De ce [χ(βU), χ(βV )] nu este cuvant - cod pentru β = 0 ?

15.6 Aratati ca cele trei cuvinte obtinute ın Exemplul 15.4 satisfac conditiile defini-tiei codurilor Preparata.

15.7 Fie GF (23) generat de radacina α a polinomului 1 + X + X3 = 0. Folosindurmatoarele cuvinte x,y, z ∈ GF (23) construiti 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 (23) construit cu 1 + X + X3, iar A−1 din Exemplul 15.6. Codificatiurmatoarele mesaje folosind P (3):

aL = 1010100, aR = 1;aL = 1010100, aR = 0;aL = 1111111, aR = 1;aL = 1111111, aR = 0;aL = 0000000, aR = 1;

Page 524: Criptografie complet

180 PRELEGEREA 15. CODURI PREPARATA

15.9 Fie GF (25) construit cu 1 + X2 + X5, iar A−1 din Exemplul 15.6. Codificatiurmatoarele mesaje folosind P (5):

aL = 10100 . . . 0, aR = 000001000100 . . . 0;aL = 10100 . . . 0, aR = 00 . . . 0;aL = 10100 . . . 0, aR = 111100 . . . 0;aL = 0000 . . . 0, aR = 100 . . . 0;

Care este lungimea lui aL ? dar a lui aR ?

15.10 In aceleasi conditii din Exemplul 15.8, sa se decodifice cuvintele:10000001 11101000 00011010 01000010 00100101 1010010001010110 00011110 11101000 10001001 10011001 0101010101000111 11001000 10101101 11010000 11101110 0101010110111011 01101010 01011101 11101101 10011100 1010010001101101 10011000 10101010 10111011 10100101 00010001

15.11 Decodificati cuvintele primite, care au fost codificate cu P (5), unde GF (25)a fost construit folosind polinomul 1 + X2 + X5.

11000110001000000000000001000010 0001111000000000000000011001000010100000001000000000000000000000 00000100010000000100010101011100

15.12 Fie b un cuvant receptionat ın care w(bL) este impar iar w(bR) este par.Poate fi decodificat b la pasul 2 al algoritmului ıntr-un cuvant - cod situat la distantacel mult 2 ?

Page 525: Criptografie complet

Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teza dedoctorat), PARIS VI, 1990;

[3] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[4] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[5] D.G. Hoffman, 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

Page 526: Criptografie complet

Prelegerea 16

Coduri convolutionale

In cazul codurilor prezentate pana acum, la codificarea unui mesaj de informatie seobtine un cuvant - cod de lungime n, ale carui caractere nu depind decat de celek elemente de informatie curente. Avem de-a face cu un proces de codificare faramemorie, iar aceste coduri sunt numite si coduri - bloc.

P. Elias a introdus ın 1965 o clasa de coduri, remarcabile prin siguranta sporita pecare o asigura ın transmiterea informatiei: codurile convolutionale. In cazul lor,codificarea unui mesaj de lungime k se face tinand cont si de codificarile mesajelorde informatie anterioare.

De remarcat ca NASA si Agentia Spatiala Europeana folosesc o combinatie ıntreaceste coduri si codurile Reed - Solomon. Fiecare mesaj de informatie este codificatinitial cu un cod RS, apoi cu un cod convolutional.

16.1 Coduri liniare si coduri convolutionale

Dupa cum am vazut, un (n, k) - cod liniar codifica un mesaj de informatie u ∈ Zkq

ıntr-un cuvant - cod v = uG de lungime n (v ∈ Znq ). Un cod liniar poate fi privit

ınsa si ca o aplicatie care transforma mesaje sursa (de orice lungime i·k, i = 1, 2, . . .)ın mesaje - cod de lungime i · n.

Exemplul 16.1 Codul generat de matricea

G =

1 0 0 10 1 0 10 0 1 1

defineste o functie astfel:a0a1a2a3a4a5 . . . 7−→ a0a1a2x0a3a4a5x1 . . .

undex0 = a0 + a1 + a2, x1 = a3 + a4 + a5, . . .

O astfel de functie poate fi exprimata foarte simplu prin polinoame. Astfel, fiea(X) = a0 + a1X + a2X

2 + . . . polinomul reprezentand mesajul sursa, si u(X) =u0 + u1X + u2X

2 + . . . mesajul codificat. Atunci un cod liniar este o aplicatie Cdefinita C(a(X)) = u(X). O astfel de aplicatie are urmatoarele proprietati:

181

Page 527: Criptografie complet

182 PRELEGEREA 16. CODURI CONVOLUTIONALE

• C este liniara:

C(a(X) + a′(X)) = C(a(X)) + C(a′(X));

C(ta(X)) = tC(a(X)).

• C este invarianta ın timp: ıntarzierea mesajului sursa cu k tacti are ca efectdecalarea raspunsului cu n tacti:

C(Xka(X)) = XnC(a(X)).

• C nu are memorie: codificarea unui mesaj sursa de lungime k nu depinde demesajele sursa precedente.

Aceste trei proprietati caracterizeaza complet codurile liniare. Daca se renunta laultima proprietate, se obtine o noua clasa de coduri, numite coduri convolutionale.

Definitia 16.1 Fie q un numar prim. Prin (n, k) - cod convolutional se ıntelege oaplicatie liniara C : Zq[X] −→ Zq[X] cu proprietatea (de invarianta de timp)

C(Xka(X)) = XnC(a(X)).

Exemplul 16.2 Sa consideram circuitul liniar:

¹¸

º·

¹¸

º·

¹¸

º·t-6

-

?-

6

?

-

?-

-

?-

-6-

6+

+ +

El reprezinta un (2, 1) - cod convolutional binar. Este liniar (datorita circuitului),invariant ın timp (o ıntarziere de 1 tact la intrare provoaca o ıntarziere de 2 tactila iesire).

De exemplu, pentru intrarea 1 se obtine 11 la primul tact, 11 la al doilea tact si01 la al treilea (dupa care urmeaza 0000 . . .). Deci

C(1) = 111101 = 1 + X + X2 + X3 + X5.Datorita invariantei ın timp, avem

C(X) = C(01) = 00111101, C(X2) = C(001) = 0000111101, . . .(s-a tinut cont de dualitatea de notare polinom - cuvant).Datorita liniaritatii, raspunsul C(1) caracterizeaza complet codul. De exemplu,

mesajul de intrare 101 se codifica prinC(101) = C(1 + X2) = C(1) + C(X2) = C(1) + C(001) = 11110100 . . . +

0000111101 . . . = 1111101101 = 1 + X + X2 + X3 + X4 + X6 + X7 + X9.

16.2 Coduri (n, 1) - convolutionale

In cazul particular k = 1, codul este complet determinat de iesirea pentru mesajulde intrare 1. Notam

C(1) = g0(X)

polinomul generator al acestei subclase de coduri. Din invarianta ın timp rezulta

Page 528: Criptografie complet

16.2. CODURI (N, 1) - CONVOLUTIONALE 183

C(X i) = Xnig0(X), ∀i ≥ 1.

Deci, pentru orice polinom a(X) = a0 + a1X + . . . + apXp avem

C(a(X)) = a0C(1)+a1C(X)+a2C(X2)+. . .+apC(Xp) = a0g0(X)+a1Xng0(X)+

a2X2ng0(X) + . . . + apX

npg0(X) = a(Xn)g0(X).

Aceasta conduce la ideea ca un (n, 1) - cod convolutional este generat de polino-mul g0(X) conform regulii

a(X) 7→ a(Xn)g0(X).

Invers, orice polinom g0(X) ∈ Zq[X] defineste un (n, 1) - cod convolutional.

Observatie: Ideea de polinom generator este similara celei de la codurile ciclice,unde codificarea mesajului de informatie a(X) revenea la ınmultirea cu polinomulgenerator. La codurile convolutionale nu exista ınsa restrictie referitor la gradul luia(X) si – ın plus – la ınmultire se foloseste a(Xn).

Exista o modalitate simpla de constructie a unui circuit liniar, generator al unuiastfel de cod. Vom descrie aceasta pentru cazul binar.

Polinomul g0(X) se descompune ın sume de n termeni consecutivi, fiecare sumadescriind modul de conectare al elementelor de ınmagazinare. Astfel, fie

g0(X) = (b0 + b1X + . . . + bn−1Xn−1) + (bnXn + bn+1X

n+1 + . . . + b2n−1X2n−1) +

. . . + (bmnXmn + bmn+1Xmn+1 + . . . + bmn+n−1X

mn+n−1)

Numarul de m + 1 paranteze indica faptul ca sunt necesare m elemente deınmagazinare (prima paranteza se refera la intrare). A i - a secventa de termenidescrie iesirea celui de-al i - lea element de ınmagazinare (bp = 1 semnifica o legaturadirecta cu al p - lea element al iesirii).

In plus, elementele de ınmagazinare sunt legate ıntre ele secvential.

Exemplul 16.3 Sa consideram (2, 1) - codul convolutional de polinom generatorg0(X) = 1+X +X2 +X5 = (1+X)+(X2 +0)+(0+X5). Prima paranteza, 1+X,arata ca ambii biti de iesire sunt legati de intrare, X2 + 0 indica faptul ca primulelement de ınmagazinare este legat direct doar de primul bit de iesire, 0 + X5 arataca al doilea element de ınmagazinare este legat numai de al doilea bit de iesire. Inacest fel se obtine codificatorul descris de circuitul liniar:

¹¸

º·

¹¸

º·

+

+

s-6

-

? -

-

-

?-

-6-

6

?

6

Exemplul 16.4 Fie (3, 1) - codul convolutional (deci cu 3 biti de iesire) generat depolinomul g0(X) = 1 + X2 + X3 + X5 + X6 + X7 + X12 + X13 + X14. Pentru aconstrui circuitul liniar, rescriem acest polinom astfel: g0(X) = (1+0+X2)+(X3 +0 + X5) + (X6 + X7 + 0) + (X12 + X13 + X14). Se obtine

Page 529: Criptografie complet

184 PRELEGEREA 16. CODURI CONVOLUTIONALE

µ´¶³¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

+ + +

+

+ +

- - - - - -

6- - - -

?-

6

?- - -

6-

6

?

6

? -6

6

?

s s

Similar codurilor ciclice, plecand de la polinomul generator, se poate construi ma-tricea generatoare a codurilor (n, 1) - convolutionale. Aceasta este

G =

g0(X)Xng0(X)X2ng0(X)

...

Numarul liniilor (si deci si al coloanelor) lui G nu este fixat, el depinzand de lungimeamesajului sursa. Astfel, pentru un mesaj de lungime i, matricea G are i linii si1 + grad(g0(X)) + (i− 1) · n coloane.

Exemplul 16.5 Fie (3, 1) - codul convolutional binar de polinom generator g0(X) =1 + X + X3 + X4 + X5 + X8. Pentru un mesaj sursa de lungime 3, matricea G vaavea dimensiunea 3× 15:

G =

1 1 0 1 1 1 0 0 11 1 0 1 1 1 0 0 1

1 1 0 1 1 1 0 0 1

(spatiile libere sunt completate cu 0). Astfel, codificarea mesajului 101 este101 ·G = 110001000110001.

16.3 Coduri (n, k) - convolutionale

Sa dezvoltam o descriere a codurilor (n, k) - convolutionale, 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 convolutionale, care auiesirea comuna:

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

+ +

+

+ +

6

-

6-

6-

?

±°²¯+ -

s

?- -? ?

? - -

6

-

-

? - - -

6

?-

s

- -

6

? ?

Page 530: Criptografie complet

16.3. CODURI (N, K) - CONVOLUTIONALE 185

La fiecare tact intrarea este formata din doi biti care formeaza intrarile ın cele douacircuite liniare. O ıntarziere cu doi tacti la intrare genereaza o ıntarziere de doitacti la iesire; deci, acesta este un (2, 2) - cod convolutional.

Pentru intrarea 10 iesirea este 110101 (functioneaza doar circuitul superior), iarpentru 01 iesirea este 010111 (numai pe baza circuitului inferior). Formal,

C(1) = 1+X +X3 +X5 = g0(X), C(X) = X +X3 +X4 +X5 = g1(X).Folosind invarianta ın timp se pot determina si alte iesiri:

C(X2i) = X2ig0(X), C(X2i+1) = X2ig1(X) ∀i ≥ 1.

Definitia 16.2 Pentru un (n, k) - cod convolutional, polinoamelegi(X) = C(X i), 0 ≤ i ≤ k − 1

se numesc ”polinoame generatoare”.

Teorema 16.1 Un (n, k) - cod convolutional de polinoame generatoare gi(X), (0 ≤i ≤ k − 1) este determinat de functia de codificare

a(X) 7→k−1∑

i=0

a(i)(Xn)gi(X) (1)

unde pentru secventa a = a0a1a2 . . . s-a notat a(i) = aiai+kai+2k . . . (0 ≤ i ≤ k − 1).Reciproc, fiind date polinoamele gi(X) i = 0, 1, . . . , k−1 si un numar n, formula

(1) determina un (n, k) - cod convolutional.

Demonstratie: Vom ıncepe prin a arata ultima afirmatie. Aplicatiaa(X) 7→ a(i)(Xn)gi(X)

este liniara (ca o compunere de transformari liniare) si invarianta ın timp (decidefineste un (n, k) - cod convolutional). Ultima asertiune rezulta din observatia capentru orice secventa a,

(Xka(X)

)(i) 7→ Xna(i)(X).

Deci iesirea la Xka(X) prin aceasta aplicatie este Xnk−1∑

i=0

a(i)(Xn)gi(X).

Sa aratam acum ca un (n, k) - cod convolutional definit de aplicatia C este identic

cu cel dat de C ′(a(X)) =k−1∑

i=0

a(i)(Xn)gi(X) unde gi(X) = C(X i) sunt polinoamele

generatoare. Deoarece C si C ′ sunt ambele liniare, este suficient sa aratam caC(Xr) = C ′(Xr) pentru orice r ≥ 0; atunci vom avea

C(a0 + a1X + a2X2 + . . .) =

r≥0

arC(Xr) =∑

r≥0

arC′(Xr) = C ′(a0 + a1X + . . .).

Deoarece ambele aplicatii sunt (n, k) invariante ın timp, ne putem restrange la0 ≤ r ≤ k − 1. Pentru a = 00 . . . 0100 . . . (cu 1 pe pozitia r), este evident caa(r) = 100 . . . si a(i) = 000 . . . pentru i 6= r. Deci C ′(Xr) = gr(X) = C(Xr). 2

Analog codurilor (n, 1) - convolutionale, si ın acest caz se poate defini ma-tricea generatoare, care este o reprezentare matriciala a relatiei (1). Liniile ma-tricii sunt g0(X), g1(X), . . . , gk−1(X), Xng0(X), Xng1(X), . . ., considerate ca poli-noame de grad infinit. Pentru mesajul a = a0a1 . . . ar codificarea este aG =

Page 531: Criptografie complet

186 PRELEGEREA 16. CODURI CONVOLUTIONALE

a0g0(X) + . . . + ak−1gk−1(X) + Xn[akg0(X) + . . . + a2k−1gk−1(X)] + X2n[a2kg0(X) +. . .+a3k−1gk−1(X)]+ . . . = (a0+akX

n+a2kX2n+ . . .)g0(X)+ . . .+(ak−1+a2k−1X

n+

. . .)gk−1(X) =k−1∑

i=0

a(i)(Xn)gi(X).

Exemplul 16.7 Matricea generatoare a (2, 2) - codului convolutional descris ın Ex-emplul 16.6 este

G =

1 1 0 1 0 10 1 0 1 1 1

1 1 0 1 0 10 1 0 1 1 1

1 1 0 1 0 1 . . .0 1 0 1 1 1 . . .

...

(locurile goale sunt completate cu 0).Pentru intrarea 101 iesirea este

(1 0 1)

1 1 0 1 0 1 0 00 1 0 1 1 1 0 00 0 1 1 0 1 0 1

= (1 1 1 0 0 0 0 1), deci

C(1 + X3) = 1 + X + X3 + X8.

S-a prezentat anterior modul de constructie al unui circuit liniar pentru (n, 1) -coduri convolutionale, plecand de la polinomul generator g(X). In mod similar sedetermina circuitul liniar de codificare pentru un (n, k) - cod convolutional:

1. Pentru i = 0, 1, . . . , k − 1 se construieste circuitul liniar al (n, 1) - codului datde a(X) 7→ a(Xn)gi(X);

2. Se foloseste un buffer comun de iesire (de n simboluri), ın care ajung rezultateleınsumate ale celor k circuite;

3. Secventa de intrare este segmentata ın grupe de cate k simboluri, fiecare dinele constituind intrarea ın cate un circuit liniar.

Exemplul 16.8 Sa construim circuitul liniar pentru (2, 2) - codul definit de poli-noamele generatoare

g0(X) = X + X3 + X4 + X5, g1(X) = 1 + X + X2 + X4 + X5 + X6 + X7.Scriem g0(X) = (0 + X) + (0 + X3) + (X4 + X5) deci circuitul sau liniar are 2

elemente de ınmagazinare. Pentru g1(X) = (1+X)+(X2+0)+(X4+X5)+(X6+X7)sunt necesare trei elemente de ınmagazinare.

Reprezentarea sa grafica este:

Page 532: Criptografie complet

16.4. CODURI CONVOLUTIONALE SISTEMATICE 187

±°²¯

±°²¯ ±°

²¯

±°²¯

±°²¯

±°²¯

+ +

+ ++

+

?-

6- - -

?

s

6- - -

?

6 6

-

?- - - -

6

±°²¯

±°²¯

+ +

s

6- - -6

-

6 6

? - - -

6

? ?

-

-

6

Definitia 16.3 Un (n, k) - cod convolutional are ”memorie” N daca∀i (0 ≤ i ≤ k − 1), grad(gi(X)) ≤ Nn,

iar N este minim cu aceasta proprietate. Numarul Nn se numeste ”lungimearestransa” a codului.

Dupa cum s-a vazut, un cod convolutional de memorie N poate fi implementat cuo combinatie de N − 1 elemente de ınmagazinare. N este numarul de simboluri deiesire care pot fi modificate la schimbarea unui singur caracter de intrare.

16.4 Coduri convolutionale sistematice

Un (n, k) - cod convolutional sistematic are proprietatea ca la fiecare iesire de n car-actere, pe primele k pozitii se gasesc simbolurile de informatie. Vom da o constructiedirecta 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)secvente cu N componente peste Zq:

g(i, j) = g0(i, j)g1(i, j) . . . gN−1(i, j), 1 ≤ i ≤ k, 1 ≤ j ≤ n− k.Aceste secvente se numesc subgeneratori.Consideram matricea

Q0 =

g∞(1)g∞(2)

...g∞(k)

= (IkP0OkP1OkP2Ok . . . PN−2OkPN−1OkOk . . .)

unde Ik este matricea unitate, Ok este matricea nula (ambele de ordin k),

Pt =

gt(1, 1) gt(1, 2) . . . gt(1, n− k)gt(2, 1) gt(2, 2) . . . gt(2, n− k)

...gt(k, 1) gt(k, 2) . . . gt(k, n− k)

, 0 ≤ t ≤ N − 1

iarg∞(i) = 0 . . . 010 . . . g0(i, 1) . . . g0(i, n− k)0 . . . 0g1(i, 1) . . . g1(i, n− k)0 . . . 0

0 . . . 0gN−1(i, 1) . . . gN−1(i, n− k)0 . . . (1 ≤ i ≤ k).Cuvintele obtinute din primele Nn componente ale lui g∞(i) (1 ≤ i ≤ k):g(i) = 0 . . . 010 . . . 0g0(i, 1) . . . g0(i, n− k)0 . . . 0gN−1(i, 1) . . . gN−1(i, n− k)

Page 533: Criptografie complet

188 PRELEGEREA 16. CODURI CONVOLUTIONALE

se numesc generatori.Fie λ un numar natural. Se defineste operatorul

Dλg∞(i) = 0 . . . 0︸ ︷︷ ︸λn

g∞(i)

care translateaza g∞(i) cu λn pozitii spre dreapta.In sfarsit, fie

G∞ =

Q0

DQ0

D2Q0...

=

g∞(1)...

g∞(k)Dg∞(1)

...Dg∞(k)D2g∞(1)

...

=

=

IkP0 OkP1 OkP2 . . . OkPN−1 . . .IkP0 OkP1 . . . OkPN−2 OkPN−1 . . .

IkP0 . . . OkPN−3 OkPN−2 OkPN−1...

matricea generatoare a unui (n, k) - cod convolutional sistematic.Observatie: Evident, un (n, k) - cod convolutional sistematic este un (n, k) - cod

convolutional. Invers, fiind dat un (n, k) - cod convolutional, el se poate transforma

ın unul sistematic prin adunarea la fiecare polinom generator gi(X) =mn+n−1∑

p=0

bi,pXi

a polinomului g′i(X) =m∑

p=0

k−1∑

j=0

(k − bi,np+j)Xnp+j + biX

i (0 ≤ i ≤ k − 1).

Desi are - teoretic - un numar infinit de linii si coloane, fiind ın forma canonica,pentru aceasta reprezentare se poate construi imediat matricea de control:

H∞ =

−P T0 In−k . . .

−P T1 On−k −P T

0 In−k . . .−P T

2 On−k −P T1 On−k −P T

0 In−k . . ....

−P TN−1 On−k −P T

N−2 On−k −P TN−3 On−k . . .

−P TN−1 On−k −P T

N−2 On−k . . .−P T

N−1 On−k . . ....

a carei transpusa este

HT∞ =

−P0 −P1 −P2 . . . −PN−1 . . .In−k On−k On−k . . . On−k . . .

−P0 −P1 . . . −PN−2 −PN−1 . . .In−k On−k . . . On−k On−k . . .

...

Page 534: Criptografie complet

16.4. CODURI CONVOLUTIONALE SISTEMATICE 189

Se verifica imediat egalitatea G∞HT∞ = O∞.

Sa consideram un mesaj de informatie a, sub forma unei succesiuni (teoretic)infinite. El va fi ”descompus” initial ın blocuri de lungime k:

a = a0(1) . . . a0(k)︸ ︷︷ ︸a0

a1(1) . . . a1(k)︸ ︷︷ ︸a1

. . . ap(1) . . . ap(k)︸ ︷︷ ︸ap

. . .

Mesajul codificat se obtine similar codurilor liniare, prin ınmultirea lui a cu matriceageneratoare: c = aG∞; textul rezultat va fi descompus ın blocuri de lungime n:

c = aG∞ = c0(1) . . . c0(n)︸ ︷︷ ︸c0

c1(1) . . . c1(n)︸ ︷︷ ︸c1

. . . cp(1) . . . cp(n)︸ ︷︷ ︸cp

. . .

Tinand cont de forma canonica a matricii G∞, rezulta urmatoarele relatii:cp(i) = ap(i), (1 ≤ i ≤ k)

cp(k + j) =k∑

i=1

N−1∑

t=0

ap−t(i)gt(i, j), (1 ≤ j ≤ n− k). (2)

Aceeasi formula de codificare se poate scrie si ın alt mod:

c = aG∞ =k∑

i=1

a0(i)g∞(i) +k∑

i=1

a1(i)Dg∞(i) +k∑

i=1

a2(i)D2g∞(i) + . . ., deci

c =k∑

i=1

∞∑

t=0

at(i)Dtg∞(i) (3)

Exemplul 16.9 Sa consideram un (2, 1) - cod convolutional binar cu N = 4 sisubgenerator g(1, 1) = 1101. Generatorul va fi atunci g(1) = 110100001 iar matricea

G∞ =

11 01 00 01 . . .11 01 00 01 . . .

11 01 00 01 . . ....

Daca dorim sa se transmita secventa de informatie a = 10011 . . ., ea va fi codificataın c = aG∞ = 1101001010 . . .

Exemplul 16.10 Fie (3, 2) - codul convolutional binar cu N = 3 si subgeneratorig(1, 1) = 101, g(2, 1) = 110. Calculand generatorii, se obtine

g(1) = 101000001, g(2) = 011001000 si deci

G∞ =

101 000 001 . . .011 001 000 . . .

101 000 001 . . .011 001 000 . . .

101 000 001 . . .011 001 000 . . .

...

Fie a = 110010 . . . o secventa de informatie. Rezultatul codificarii ei este c = aG∞= 110001100 . . .

Page 535: Criptografie complet

190 PRELEGEREA 16. CODURI CONVOLUTIONALE

16.5 Arborescenta codurilor convolutionale

Cuvintele - cod dintr-un cod convolutional sistematic se pot reprezenta folosindun graf arborescent infinit, cu noduri situate la o distanta de n pozitii si cu qk

descendenti din fiecare nod. Codificarea unui mesaj revine la parcurgerea unuidrum ın acest arbore.

Pentru simplificare, sa consideram un (n, 1) - cod convolutional sistematic binar(generalizarea este imediata) de lungime restransa N . El este complet caracterizatprin n− 1 subgeneratori

g(1, j) = g0(1, j)g1(1, j) . . . gN−1(1, j), (1 ≤ j ≤ n− 1).

Codul are un singur generator, anumeg(1) = 1g0(1, 1)g0(1, 2) . . . g0(1, n− 1)0g1(1, 1)g1(1, 2) . . . g1(1, n− 1)0 . . .

. . . 0gN−1(1, 1) . . . gN−1(1, n− 1)Vom folosi notatiile

g0 = 1g0(1, 1) . . . g0(1, n− 1),gp = 0gp(1, 1) . . . gp(1, n− 1), (1 ≤ p ≤ N − 1).

Atunci g(1) = g0g1 . . .gN−1, iar gp este a p - a ramificatie a lui g(1). Matriceageneratoare a codului va fi - cu aceste notatii:

G∞ =

g∞(1)Dg∞(1)D2g∞(1)

...

=

g0 g1 g2 . . . gN−1 0 0 . . .0 g0 g1 . . . gN−2 gN−1 0 . . .0 0 g0 . . . gN−3 gN−2 gN−1 . . .

...

unde 0 este un bloc de n zerouri.

Fie a = a0a1a2 . . . secventa de informatie si c = c0c1c2 . . . cuvantul - cod cores-punzator, unde cp = cp(1)cp(2) . . . cp(n). Are loc egalitatea

c = c0c1c2 . . . = aG∞ = a0g∞(1) + a1Dg∞(1) + a2D2g∞(1) + . . . (4)

De aici rezulta ca c0 = 0 daca a0 = 0 si c0 = g0 daca a0 = 1. Cu alte cu-vinte, codul poate fi partitionat ın doua submultimi de marime egala: o submultimeS0 contine toate secventele care corespund lui a0 = 0 (deci toate cuvintele - coddin S0 au acelasi prefix 0); cealalta submultime S1 contine toate cuvintele - codcorespunzatoare lui a0 = 1 (deci toate cuvintele - cod din S1 au prefixul g0).

La randul lui, S0 se ımparte ın doua submultimi egale S00 si S01. S00 corespundesecventelor - cod pentru care a0 = a1 = 0 (deci toate cuvintele - cod din S00 ıncepcu 00). S01 contine secventele cu a0 = 0, a1 = 1, deci cu prefixul 0g0. Similar, S1

se partitioneaza ın S10 si S11, S10 fiind pentru a0 = 1, a1 = 0 (deci cuvintele - coddin S10 au prefixul g0g1); secventele din S11 ıncep cu prefixul g0(g0 + g1).

Acest procedeu continua indefinit.Deci cuvintele - cod pot fi aranjate ıntr-un arbore cu noduri de n caractere si

cate doua ramificatii din fiecare nod. O ramificatie este marcata de un cod blocde n caractere, corespunzatoare unui caracter de informatie particular, iar ıntreagasecventa corespunde unui drum prin arbore.

Page 536: Criptografie complet

16.5. ARBORESCENTA CODURILOR CONVOLUTIONALE 191

0

g0

g1

g0 + g1

g2

g0 + g2

g1 + g2

g0 + g1 + g2

0

g0

g1

g0 + g1

0

g0

6-

? -

-

-

6-

? -

-

6-

? -

-6-

? -

-6-

? -

-6-

? -

-

-6

? -

0

00

1

10

1

1

0

1

0

1

0

1

Operatia de codificare poate fi privita atunci ca un proces ın care este trasat undrum particular ın arbore, conform instructiunilor date de mesajul de informatie.

Exemplul 16.11 Sa consideram (3, 1) - codul convolutional binar cu N = 4, gene-rat de g(1, 1) = 1011, g(1, 2) = 1101. Generatorul codului esteg(1) = 111 001 010 011, iar arborele de codificare

000111001110010101011100011100010101001110000111

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 informatie a = 1001 . . ., secventa -cod generata va fi c = 111 001 010 100 . . ..

Aceasta constructie se poate extinde la un (n, k) - cod convolutional sistematic binar.Deoarece la momentul 0 exista 2k secvente posibile de lungime k, toate cuvintele- cod se pot partitiona ın 2k submultimi S0, S1, . . . , S2k−1. Toate secventele din Si

ıncep cu acelasi bloc, corespunzator aceluiasi mesaj de informatie. Fiecare Si seımparte la randul lui ın 2k submultimi, dupa tipul celui de-al doilea bloc de la tactul1. Procesul continua ın mod similar pana la epuizarea mesajului de informatie.

Page 537: Criptografie complet

192 PRELEGEREA 16. CODURI CONVOLUTIONALE

16.6 Exercitii

16.1 Construiti un codificator pentru (2, 1) - codul convolutional binar de polinomgenerator g0(X) = 1 + X + X3 + X4 + X6 + X7 + X9. Cat este N ? Codificatimesajele 110, 0110, 1010.

16.2 Construiti o matrice generatoare pentru codul definit anterior.

16.3 Construiti un codificator pentru (2, 1) - codul convolutional ternar de polinomgenerator g0(X) = 1 + 2X + 2X3.

Sa se determine o matrice generatoare.Sa se codifice mesajele 102, 200, 0120.

16.4 Construiti un codificator pentru un (3, 2) - cod convolutional binar cu N = 2.

16.5 Codificatorul din Exemplul 16.8 are 5 elemente de ınmagazinare. Construitiun codificator pentru acelasi cod, care utilizeaza doar 4 elemente de ınmagazinare.

16.6 Construiti polinoamele generatoare ale codului convolutional dat mai jos:

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

6

-6-

-

-

? -

6- - -

?

- -6 6

-

?

s

?-?

s - - - -?-

- - -

6-

s

-

6

6

6

- - -

6

6

?- - - -

6-

? ? ?

+ +

+ +

+ + +

+

+ + +

16.7 Construiti o matrice generatoare pentru codul din exercitiul anterior.Codificati mesajul 11001.

16.8 Construiti un codificator pentru (4, 3) - codul binar, de polinoame generatoareg0(X) = 1+X +X3 +X5 +X6, g1(X) = X +X2 +X3 +X4, g2(X) = 1+X2 +X3 + X5 + X6.

16.9 Sa se construiasca matricea generatoare si de control pentru (3, 2) - codulconvolutional sistematic ternar de subgeneratori g(1, 1) = 1200, g(2, 1) = 2011.

Sa se codifice mesajele 11220, 1012, 2222.

16.10 Aceeasi problema pentru (4, 2) - codul binar cug(1, 1) = 001, g(1, 2) = 110, g(2, 1) = 101, g(2, 2) = 111.Sa se codifice mesajele 1100, 011, 001100.Sa se construiasca reprezentarea arborescenta.

16.11 Sa se demonstreze formulele (2).

Page 538: Criptografie complet

Bibliografie

[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 dedoctorat), PARIS VI, 1990;

[4] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[5] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[6] D.G. Hoffman, 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

Page 539: Criptografie complet

Prelegerea 17

Decodificarea codurilorconvolutionale

17.1 Capacitatea de corectare a erorilor

Algoritmii de decodificare pentru codurile convolutionale folosesc aceeasi idee de lacodurile liniare: cuvantul primit este decodificat ın cel mai apropiat cuvant - cod,ın sensul distantei Hamming.

Ideea este de a nu decodifica deodata tot cuvantul primit, ci pas cu pas, la fiecaretact fiind decodificate n caractere (continutul unui buffer de iesire) ın k simboluri(marimea bufferului de intrare). Distanta Hamming (notata cu dH) pentru un (n, k)- cod convolutional se defineste

dH(a(X), b(X)) = d(a0a1 . . . an−1, b0b1 . . . bn−1).

Observatie: In cele ce urmeaza vom continua sa identificam secventele de p + 1caractere a = a0a1 . . . ap cu polinoamele de gradul p a(X) = a0 +a1X + . . .+apX

p.Se va folosi adesea chiar notatia (neambigua) a(X) = a.

Fie deci a(X) mesajul de informatie; el se codifica ın v(X) = C(a(X)). Sapresupunem ca se receptioneaza u(X). La primul tact se determina cuvantul - codw(X) cu dH(u(X), w(X)) minim (cel mai apropiat cuvant - cod), iar u0u1 . . . un−1 setransforma ın w0w1 . . . wn−1. Daca decodificarea este corecta, atunci s-au determinatprimele n caractere si se pot gasi imediat ca-racterele de informatie a0a1 . . . ak−1

(continutul primei intrari). Se defineste apoi

u(X) := u(X)− C(a0 + a1X + . . . + ak−1Xk−1)

(care aduce 0 pe primele n caractere ale cuvantului receptionat), se ignora primelen caractere si procedeul continua inductiv.

Motivatia consta ın faptul ca acum nu se lucreaza cu v(X) = C(a(X)) ci cuv(X)−C(a0 + a1X + . . . ak−1X

k−1) = C(a(X)− a0 − a1X − . . .− ak−1Xk−1) =

C(akXk+ak+1X

k+1+. . .) = C(Xk(ak+ak+1X+ak+2X2+. . .)) = XnC(ak+ak+1X+

ak+2X2 + . . .).

Exemplul 17.1 Sa consideram (2, 1) - codul convolutional binar de polinom gene-rator g0(X) = 1 + X + X3. Cuvintele lui cod sunt

193

Page 540: Criptografie complet

194PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE0 00000000 . . .g0(X) 11010000 . . .

X2g0(X) 00110100 . . .(1 + X2)g0(X) 11100100 . . .

. . . . . .

Daca se primeste - de exemplu - u = 11110001, vom determina cel mai apropiatcuvant - cod, care este (1 + X2 + X4)g0(X), adica 11101001. Primul grup de n = 2biti este 11, deci primul bit de informatie (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 - adicaal doilea simbol de informatie este 0.

Refacem u := u − X2C(0) = 00100001. Se sterg primele patru simboluri din usi se cauta cel mai apropiat cuvant - cod de 0001. Acesta este din nou 00 . . .. Deciu se corecteaza ın

C(1 + 0X + 0X2) = 11000000.

Definitia 17.1 Pentru un (n, k) - cod convolutional se defineste distanta libera prin

dlib = min{dH(C(a(X)), C(a′(X)))|a0a1 . . . ak−1 6= a′0a′1 . . . a′k−1}.

Similar observatiei de la codurile liniare, dlib este cea mai mica pondere a unui cuvant- cod C(a′′(X)) cu proprietatea a′′0a

′′1 . . . a′′k−1 6= 0. (s-a notat a′′(X) = a(X)− a′(X)

unde a(X), a′(X) sunt doua mesaje de informatie arbitrare distincte).

Exemplul 17.2 Reluand codul construit ın Exemplul 17.1, acesta are dlib = 3,deoarece g0(X) are ponderea 3 si orice cuvant C(a0 + a1X + . . .) cu a0 6= 0 areponderea minim 3.

Propozitia 17.1 Un cod convolutional corecteaza t erori daca si numai daca dlib >2t.

Demonstratie: Sa presupunem dlib > 2t. La receptia unui cuvant v(X) cu cel mult terori, exista un cuvant - cod u(X) = C(a(X)) aflat la o distanta Hamming minimade acesta: dH(u(X), v(X)) = s. Daca u′(X) = C(a′(X)) este cuvantul - cod trimisprin canal (receptionat drept v(X)), din ipoteza dH(v(X), u′(X)) ≤ t. Deci, cuinegalitatea triunghiului, d(u(X), u′(X)) ≤ s+ t. Cum s este cea mai mica distantaHamming, avem s ≤ t, deci d(C(a(X)), C(a′(X))) ≤ s + t ≤ 2t < dlib. Din definitiadistantei libere rezulta ca primele k simboluri din a(X) au drept cel mai apropiatgrup de k simboluri generat de cod grupul primelor k simboluri din a′(X), ceea cepermite decodificarea si corectarea erorilor.

Pentru urmatoarele grupuri, procedeul decurge analog.Invers, sa presupunem dlib ≤ 2t si fie u(X) = C(a(X)), u′(X) = C(a′(X)) cu

dH(u(X), u′(X)) = dlib si u0 . . . uk−1 6= u′0 . . . u′k−1. Fie i1, i2, . . . idlibtoti indicii i

pentru care ui 6= u′i. Construim urmatorul cuvant v(X):

vi =

{ui daca ui = u′i sau i = i2s+1

u′i daca i = i2s

Avem dH(u(X), v(X)) ≤ dH(u′(X), v(X)) ≤ t. Presupunem ca a fost trimisu′(X) si receptionat v(X). Atunci eroarea, care a modificat cel mult t simboluri -

Page 541: Criptografie complet

17.2. DECODIFOCAREA CODURILOR SISTEMATICE 195

poate conduce la o decodificare incorecta, deoarece u(X) este cuvantul cod cel maiapropiat.

Deci, ın aceasta ipoteza, codul nu va corecta t erori. 2

Din analiza de sus rezulta ca un parametru important pentru un cod convolu-tional este distanta libera, care specifica numarul maxim de erori care pot fi corec-tate. Din nefericire ([1]), nu se cunoaste nici o metoda analitica de constructie decoduri convolutionale ”bune”, ın sensul unei maximizari a dlib pentru n si k date.Folosind calculatorul, au fost gasite ınsa o serie de astfel de coduri bune. Listamcateva din ele pentru cazul binar si k = 1:

n dlib g0(X)2 5 110111 = 1 + X + X3 + X4 + X5

2 6 111101112 7 11010110112 8 1101110110112 10 110111110010112 10 1110111101113 8 1110111113 10 1110111011113 12 1110111010111114 10 1111011111114 13 1111011110011111

17.2 Decodifocarea codurilor sistematice

Pastrand similitudinea cu codurile liniare, sa folosim la codurile sistematice ideeade decodificare bazata pe calculul sindromului.

Fie un (n, k) - cod convolutional sistematic definit prin matricea generatoare G∞si cea de control H∞, construite pe baza subgeneratorilor de lungime N g(i, j), 1 ≤i ≤ k, 1 ≤ j ≤ n− k (a se vedea prelegerea anterioara). Din relatiile G∞HT

∞ = 0 sic = aG∞ se obtine cHT

∞ = 0.

Sa presupunem ca s-a receptionat secventa (infinita) r = c + e unde e este osecventa eroare. Ca si la codurile liniare, sindromul va fi

s = rHT∞ = cHT

∞ + eHT∞ = eHT

∞.

Secventa receptionata se poate structura ın blocuri de n caractere:

r = r0(1) . . . r0(n)︸ ︷︷ ︸r0

r1(1) . . . r1(n)︸ ︷︷ ︸r1

. . . rp(1) . . . rp(n)︸ ︷︷ ︸rp

. . .

Similar se segmenteaza sindromul ın blocuri de lungime n− k:

s = s0(1) . . . s0(n− k)︸ ︷︷ ︸s0

s1(1) . . . s1(n− k)︸ ︷︷ ︸s1

. . . sp(1) . . . sp(n− k)︸ ︷︷ ︸sp

. . .

Vom avea

sp(j) = rp(k + j)−k∑

i=1

rp(i)g0(i, j)−k∑

i=1

rp−1(i)g1(i, j)− . . .−k∑

i=1

rp−N+1(i)gN−1(i, j),

1 ≤ j ≤ n− k.

Page 542: Criptografie complet

196PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE

Aceasta relatie se poate scrie si sp(j) = rp(k + j)− Ap(j), unde

Ap(j) =N−1∑

t=0

k∑

i=1

rp−t(i)gt(i, j) este rezultatul codificarii secventei rp(1) . . . rp(k) folo-

sind matricea G∞, ın functie de rp−1(1), . . . , rp−1(k), . . . , rp−N+1(1) . . . , rp−N+1(k).

Din aceste relatii, se poate deduce o formula pentru calculul elementelor sindro-mului, ın functie de caracterele secventei - eroare:

sp(j) = ep(k + j)−k∑

i=1

ep(i)g0(i, j)−k∑

i=1

ep−1(i)g1(i, j)− . . .−k∑

i=1

ep−N+1(i)gN−1(i, j),

1 ≤ j ≤ n− k,unde e = e0(1) . . . e0(n)︸ ︷︷ ︸

e0

e1(1) . . . e1(n)︸ ︷︷ ︸e1

. . . ep(1) . . . ep(n)︸ ︷︷ ︸ep

. . .

este secventa de eroare - tip, segmentata ın blocuri de lungime n. Deci, pentru oricej = 1, 2, . . . , n− k, putem scrie:

s0(j) = e0(k + j)−k∑

i=1

e0(i)g0(i, j),

s1(j) = e1(k + j)−k∑

i=1

e1(i)g0(i, j)−k∑

i=1

e0(i)g1(i, j),

...

sN−1(j) = eN−1(k + j)−N−1∑

p=0

k∑

i=1

ep(i)gN−p−1(i, j),

sN(j) = eN(j)−N−1∑

p=0

k∑

i=1

ep+1(i)gN−p−1(i, j),

...

sN+m(j) = eN+m(k + j)−N−1∑

p=1

k∑

i=1

ep+m−1(i)gN−p−1(i, j)

...De remarcat ca secventa e0 afecteaza numai primele N componente ale sin-

dromului: s0, s1, . . . , sN−1, deoarece apare numai ın primele N(n − k) ecuatii dinsistemul de sus.

Pentru corectarea erorilor, se determina initial secventa e0; dupa aceasta, sindro-mul se recalculeaza scazand din el componentele lui e0. Aceasta operatie se numesterearanjarea sindromului. In paralel, e0 se foloseste la corectarea primelor n caracterereceptionate; operatia se realizeaza identic cu cea de la codurile liniare.

In continuare, se va folosi un nou sindrom, anume:s′0(j) = 0

s′m(j) = em(k+j)−m−1∑

p=0

k∑

i=1

em−p(i)gp(i, j), 1 ≤ m ≤ N−1, 1 ≤ j ≤ n−k

s′N+m(j) = sN+m(j), ∀m ≥ 0.

De remarcat ca secventa e1 figureaza numai ın expresiile lui s′1, s′2, . . . , s

′N unde

s′i = s′i(1) . . . s′i(n−k), 1 ≤ i ≤ N . Deci aceste componente apar ın N(n−k) ecuatii.

Page 543: Criptografie complet

17.3. ALGORITMUL VITERBI 197

Dupa determinarea lui e1 se corecteaza blocul r1 din secventa receptionata, apoi serecalculeaza sindromul, s.a.m.d.

17.3 Algoritmul Viterbi

Cel mai cunoscut algoritm de decodificare pentru codurile convolutionale apartinelui Viterbi si a fost folosit pe scara larga ın comunicatiile spatiale. Astfel - ca sadam numai un exemplu, statia Voyager ın misiunea sa din 1974 spre Marte, Saturnsi Jupiter, a folosit pentru transmisii un (2, 1) - cod convolutional binar de polinomgenerator g0(X) = 1 + X + X2 + X5 + X6 + X7 + X8 + X10 + X11 + X12.

In descrierea algoritmului Viterbi vom folosi o reprezentare ın retea a codurilorconvolutionale, care reia sub o forma finita reprezentarea arborescenta. Din nou, nevom margini la constructii pentru (n, 1) - coduri convolutionale binare, extensia lacazul general fiind imediata.

O diagrama retea este un graf orientat infinit, care are ca noduri starile unuicircuit liniar la fiecare moment (tact). Un nod marcat care corespunde unei stariS la momentul i, este legat direct cu alte doua noduri, corespunzatoare starilorcircuitului la momentul i + 1: S0 (pentru intrarea 0) respectiv starea S1 (pentruintrarea 1). Grafic, arcul S −→ S0 va fi totdeauna trasat sub arcul S −→ S1. Fiecarearc este marcat cu secventa de iesire a circuitului pentru intrarea corespunzatoare.

Exemplul 17.3 (2, 1) - codul convolutional definit de circuitul liniar

±°²¯+- - -6

6

s6

-

? -6

are doua stari posibile (dupa continutul elementului de ınmagazinare): 0 si 1.Pentru intrarea i (i = 0, 1) iesirea este secventa

ii daca starea este 0,i(1− i) daca starea este 1.

Diagrama retea a codului este:

s

s s s s s

s s s s

-

6

0

1

0 1 2 3 4 . . .

¡¡

¡¡

¡¡µ

- -

- - - -¡¡

¡¡

¡¡µ

¡¡

¡¡

¡¡µ

¡¡

¡¡

¡¡µ

-@

@@

@@

@R

@@

@@

@@R

@@

@@

@@R

00 00 00 00

10 10 10

11 11 11 11

01 01 01

Exemplul 17.4 (2, 1) - codul convolutional (de memorie N = 2) reprezentat princircuitul liniar

Page 544: Criptografie complet

198PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE±°²¯

±°²¯

±°²¯

- -s

6- - -

?-6 6

?? - -

6-

6+ +

+

are patru stari: 00, 01, 10 si 11 (dupa continuturile elementelor de ınmagazinare).Din starea S = 00 se ajunge la S0 = 00 daca intrarea este 0, sau ın S1 = 10

daca intrarea este 1. Iesirile corespunzatoare sunt 00 respectiv 11.Analog, daca S = 10, atunci S0 = 01 (intrare 0 iesire 10) si S1 = 11 (intrare 1

iesire 01), etc. Se ajunge la diagrama retea urmatoare:

s s s s s

s s s s

s s s s

s s s s s s

-

6

¡¡

¡¡

¡¡

¡¡µ¡

¡¡

¡¡

¡¡¡µ

¡¡

¡¡

¡¡

¡¡µ¡

¡¡

¡¡

¡¡¡µ

¡¡

¡¡

¡¡

¡¡µ¡

¡¡

¡¡

¡¡¡µ

¡¡

¡¡

¡¡

¡¡µ¡

¡¡

¡¡

¡¡¡µ

¡¡

¡¡

¡¡

¡¡µ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

- - - - -

- - -

AAAAAAAAAAAAAAAU

AAAAAAAAAAAAAAAU

AAAAAAAAAAAAAAAU

@@

@@

@@

@@R

@@

@@

@@

@@R@

@@

@@

@@@R

@@

@@

@@

@@R@

@@

@@

@@@R

@@

@@

@@

@@R

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 retea, care pleaca din momentul 0 conduce - prin citirea marcajelorarcelor - la un cuvant - cod. De exemplu, pentru intrarea 100110, codul generat esteC(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 reprezinta marcajul unui drum ın retea.

Page 545: Criptografie complet

17.3. ALGORITMUL VITERBI 199

Sa construim acum algoritmul de decodificare Viterbi.

La receptia unui cuvant v = v0v1v2 . . . vom cauta constructia unui drum ınretea, cat mai apropiat de v.

Pentru fiecare moment i si stare S vom lista drumurile active prin retea pana lastarea S la momentul i. Un drum este activ daca discrepanta sa este minima (prindiscrepanta se ıntelege distanta Hamming dintre cuvantul generat de drumul prinarbore si cuvantul de aceeasi lungime primit la intrare). Vom adnota fiecare starela momentul i cu discrepanta drumului sau activ. Pentru calculul ei se poate folosio formula recursiva definita astfel:

Fie d(S → S ′) distanta Hamming dintre marcajul arcului S → S ′ si secventa den caractere primita, iar di(S) discrepanta starii S. Atunci

di(S ′) = minS→S′

{di(S) + d(S → S ′)} (1)

Algoritmul va avea o durata de functionare finita numita fereastra de decodificare,pe care o notam cu b (deci va functiona b tacti).

Algoritmul Viterbi:Intrare: Secventa v0v1 . . . , vp = vp,0vp,1 . . . vp,n−1;Algoritm:

1. Fie p := 0 si S0 starea initiala a retelei (starea cu toate elementele deınmagazinare 0);

2. Se marcheaza di(S0) = 0;

3. for i := 1 to b do

Pentru toate starile S accesibile la momentul p+i se determinadi(S) folosind formula (1), si se listeaza toate drumurile active careduc la S.

4. Daca toate drumurile active la momentul p + b ıncep cu acelasi arcS0 → S1, secventa de intrare vp se corecteaza ın marcajul up al acestuiprim arc (si se decodifica ın primul caracter al lui S1). Altfel, eroareanu este corectabila, STOP.

5. p := p + 1, S0 := S1, salt la pasul 3.

Exemplul 17.5 Sa reluam codul descris ın Exemplul 17.4, ımpreuna cu diagramasa de retea. Presupunem ca s-a primit secventa v = 10010100101100000 . . . Deci

v0 = 10, v1 = 01, v2 = 01, v3 = 00, v4 = 10, v5 = 11, v6 = 00 . . ..Vom lucra cu o fereastra de decodificare b = 7. Detaliem grafic numai procedura

de decodificare a primului bloc (cazul p = 0).

Page 546: Criptografie complet

200PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE

s 0i = 0 :

s ss

-©©©*11

i = 1 :

s ss

-©©©*ssss

-©©©*©©©*¡

¡¡µ

2231

i = 2 :

s ss

-©©©*s

s

-

¡¡

¡µ

s©©©*¡

¡¡µ

i = 3 : ssss

-©©©*

HHHj

3312

s ss

-©©©*s

s

-

¡¡

¡µ

s©©©*¡

¡¡µ

i = 4 : s

ss

-

HHHj

ssss

-

@@

@R

HHHj

-HHHj

3133

s ss

-©©©*s

s

-

¡¡

¡µ

s©©©*¡

¡¡µ

i = 5 : s

ss

-

HHHj

ssss

-

HHHj

-HHHj

ssss

-©©©*©©©*¡

¡¡µ

HHHj

-

4413

ss

©©©*

s

¡¡

¡µ

i = 6 :

sHHHj

sHHHj

ss

©©©*¡

¡¡µ

sss

@@

@R

HHHj

-HHHj

3344

s

ss

©©©*

s

¡¡

¡µ

i = 7 :

sHHHj

sHHHj

ss

©©©*¡

¡¡µ

ss

@@

@R

HHHj

HHHj

s ssss

©©©*©©©*¡

¡¡µ

@@

@R 4344

Se ajunge la concluzia ca toate arcele active au acelasi ınceput: arcul marcat cu11. Deci primul bloc v0 = 10 se decodifica ın 11, dupa care se ia ca nod initialS0 = 10 si procesul se repeta.

De remarcat ca pentru o fereastra de decodificare b = 5, eroarea nu s-ar fi pututcorecta (primul arc nu este unic).

In aceasta prezentare a algoritmului Viterbi, apare o problema: cat de mare estefereastra b ? Cat de departe mergem prin diagrama retea pana sa fim siguri ca totusieste posibila decodificarea si corectarea erorilor ?

Pentru aceasta sa refacem sub o forma finita reprezentarea diagramelor - retea.

Din definitia data ın Prelegerea 16 se observa ca daca g0(X), g1(X), . . . ,gn−1(X) sunt polinoamele generatoare si a(X) un mesaj de informatie, codificareapoate fi scrisa ca o secventa de n componente (infinite)

c(X) = (a(X)g0(X), a(X)g1(X), . . . , a(X)gn−1(X))

ale caror caractere se transmit ın paralel, ın ordinea crescatoare a puterilor luiX.

Page 547: Criptografie complet

17.3. ALGORITMUL VITERBI 201

Exemplul 17.6 Fie (2, 1)- codul generat de g0(X) = 1+X +X3 si g1(X) = 1+X.Mesajul a(X) = 1 + X2 este codificat ın

c(X) = ((1 + X2)(1 + X + X3), (1 + X2)(1 + X)) = (1 + X + X2 + X5, 1 + X +X2 + X3).

Deci cuvantul cod este c = 11 11 11 01 00 10 00 . . ..

Vom construi un translator (diagrama de translatare) asociat unui (n, 1) - codconvolutional astfel:

Starile translatorului sunt N - tupluri binare, fiecare stare reprezentand o situatieposibila a celor N elemente de ınmagazinare. O stare s1 . . . sN−1sN este legata directprin arcul marcat x1 . . . xn de starea is1 . . . sN−1, (i = 0, 1) daca ın circuitul liniarcorespunzator codului, intrarea i conduce la modificarea continuturilor elementelorde ınmagazinare, din (s1, . . . , sN) ın (i, s1, . . . , sN−1) si are ca efect iesirea x1 . . . xn.

Exemplul 17.7 Reteaua codului definit ın Exemplul 17.3 poate fi reprezentata subforma de diagrama de translatare astfel:

±°²¯

±°²¯-

¾¾? -

-?¾0 100 10

11

01

Pentru codul din Exemplul 17.4, reprezentarea finita este:

±°²¯

±°²¯

±°²¯

±°²¯

-

6

¾? -

-?¾Q

QQ

QQ

QQQsQ

QQ

QQ

QQQk

10 11

0100

01 10

11 00 10 01

1100

De remarcat ca pe fiecare arc este suficient sa marcam doar secventa de iesire;caracterul de intrare este reprezentat de primul caracter al starii ın care intra arculrespectiv.

Definitia 17.2 Se defineste lungimea unui drum ca fiind numarul de arce careformeaza acel drum.

Ponderea unui drum este suma ponderilor arcelor care formeaza drumul.

Reamintim, ponderea unui cuvant este numarul de caractere nenule din cuvantulrespectiv.

Conform Definitiei 17.1, distanta libera a unui cod este ponderea nenula minimaa unui cuvant cod - deci a unei secvente care marcheaza un drum prin diagrama detranslatare.

Propozitia 17.2 Distanta libera a unui (n, 1) - cod convolutional este egala cu pon-derea nenula minima a unui ciclu care trece prin starea initiala 00 . . . 0 a diagrameide translatare a codului.

Demonstratie: Este imediata.

Fie S0 = 00 . . . 0 starea initiala. Pentru orice t, 1 ≤ t ≤[dlib − 1

2

], se de-

fineste d(t) ca fiind cel mai mic numar ıntreg pozitiv p cu proprietatea ca orice

Page 548: Criptografie complet

202PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE

drum S0 → S1 → . . . Sp−1, (S0 6≡ S1) are ponderea mai mare de 2t. Pentru de-terminarea algoritmica a lui d(t) se poate adapta imediat un algoritm similar dinteoria grafurilor.

Deoarece codul este liniar, valoarea lui d(t) se pastreaza pentru orice stare adiagramei de translatare.

Acum, ın conditiile ca pot apare maxim t erori, algoritmul Viterbi va functionacorect pentru o fereastra b = d(t) (datorita Propozitiei 17.1).

Reluarea algoritmului Viterbi la fiecare pas cu fereastra maxima d(t) este ınsadestul de costisitoare ca timp; de aceea, practic, se foloseste o fereastra mobilab ≤ d(t) si algoritmul trece la faza de decodificare atunci cand toate drumurileactive selectate au acelasi prim arc. Daca s-a ajuns la b = t(b) si nu s-a selectat unprim arc comun, algoritmul esueaza.

17.4 Coduri convolutionale catastrofice

Daca este definit neglijent, un cod convolutional poate conduce la urmatoarea situa-tie, complet nefericita: un mesaj ın care a fost perturbat un numar mic de caracteregenereaza prin decodificare o infinitate de erori.

Pentru a studia acest caz, consideram din nou numai codurile (n, 1) - convolutio-nale binare. Pentru a vedea ın ce consta problema, sa luam urmatorul exemplu:

Exemplul 17.8 Fie (2, 1) - codul convolutional binar, cu polinoamele generatoareg0(X) = 1 + X3, g1(X) = 1 + X + X2. Diagrama sa de translatare este

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

BBBBBBN

££

££

££°BB

BB

BBM

££££££±

¾?-

6

-

¾

££££££±

££

££

££°BB

BB

BBM

?

BBBBBBN

-?¾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 informatie a = 00 . . ., caruia ıicorespunde cuvantul - cod nul c = 0000 . . .. La receptie s-a primit un cuvant cuprimele trei simboluri gresite: v = 111000 . . .. Decodificarea sa nu ridica nici oproblema, acesta fiind de asemenea cuvant - cod, care marcheaza drumul prin starile000− 100− 110− 011− 101− 110− . . ..

Deci, ın ipoteza generala din Teoria Codurilor (cea a decodificarii cele mai proba-bile), nu au aparut erori, si mesajul decodificat este a′ = 110110110 . . ., care diferade a ıntr-o infinitate de pozitii.

In acest mod, modificarea doar a primelor trei caractere a dus la situatia ın careaceste erori se propaga ıntr-o secventa infinita.

Page 549: Criptografie complet

17.5. EXERCITII 203

Se observa din acest exemplu ca tot necazul provine din faptul ca diagrama continedoua cicluri distincte cu iesirea 0: 000− 000 si 110− 011− 101− 110.

Definitia 17.3 Un cod convolutional se numeste catastrofic daca diagrama sa detranslatare contine doua cicluri distincte de pondere zero.

Observatie: Orice cod convolutional contine un ciclu de pondere zero, anume buclacare pleaca si intra ın starea initiala. Reamintim, ponderea unui drum este sumaponderilor arcelor sale.

Teorema 17.1 Un (n, 1) - cod convolutional este catastrofic daca si numai dacacmmdc(g0(X), . . . , gn−1(X)) 6= 1.

Demonstratie: Teorema ramane valabila daca o demonstram pentru cazul n = 2. Fiedeci un (2, 1) - cod convolutional, de polinoame generatoare g0(X), g1(X). Pentrua marca un ciclu, un cuvant de intrare trebuie sa fie de forma b(X) + Xra(X) · (1 +Xp + X2p + . . .), cu grad(a(X)) < p. Pentru a elimina din discutie bucla din stareaS0, vom considera a(X) 6≡ 0. Sa presupunem ca ın diagrama de translatare a coduluiexista un ciclu de lungime p si pondere 0. Atunci a(X) ·g0(X) si a(X) ·g1(X) trebuiesa se divida cu 1 + Xp, deci a(X) · g′(X) (unde g′(X) = cmmdc(g0(X), g1(X))), sedivide cu 1 + Xp.

Daca g′(X)) = 1, se ajunge la o contradictie (deoarece a(X) are grad mai micdecat p si nu este polinomul identic nul). Deci grad(g′(X)) ≥ 1. In acest caz, toatemesajele de informatie b(X)+a(X) [g′(X)]t (1+Xp +X2p + . . .), (t ≥ 0) se codificaidentic, ceea ce va conduce la imposibilitatea decodificarii.

Reciproca se demonstreaza similar. 2

17.5 Exercitii

17.1 Determinati dlib pentru fiecare din codurile urmatoare:(a) g0(X) = 1 + X2, g1(X) = 1 + X + X2;(b) g0(X) = 1 + X + X2 + X3, g1(X) = 1 + X2 + X3;(c) g0(X) = 1 + X3 + X4, g1(X) = 1 + X + X2 + X4.

17.2 Folosind (2, 2) - codul convolutional definit ın Exemplul 17.4, si fereastra dedecodificare b = 7, decodificati (cat este posibil) secventele

v = 01000001000 . . .v = 11000110010010001110010 . . .

17.3 Trasati diagrama retea a (2, 1) - codului convolutional generat de g0(X) =1 = X2 + X3 + X4. Folositi algoritmul Viterbi pentru decodificarea secventei v =1000001000001000 . . .

17.4 Fie (2, 1) - codul generat de g0(X) = 1 + X + X2 + X3, g1(X) = 1 +X2 + X3. Decodificati primele 4 caractere de informatie ale cuvantului receptionatc = 11000000 . . . pentru

Page 550: Criptografie complet

204PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUTIONALE

b = 2, b = 3, b = 4.

17.5 Generalizati conceptul de diagrama retea la (n, k) - coduri.Trasati reteaua (2, 2) - codului definit de circuitul liniar:

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

6

--

6-s

6- -

6

-

6

-

??-?

- -

-- -

6s? -

6

6

?

+ +

+ ++

17.6 Generalizati notiunea de diagrama de translatare pentru (n, k) coduri binare.Construiti diagrama de translatare a codului definit ın exercitiul anterior.

17.7 Demonstrati Propozitia 17.2,

17.8 Pentru codurile definite ın Exercitiul 17.1, determinati diagramele de trans-

latare si d(t) pentru 1 ≤ t ≤[dlib − 1

2

].

17.9 Ce se ıntampla daca se ıncearca sa se determine d(t) pentru t >

[dlib − 1

2

]?

17.10 Construiti un algoritm pentru determinarea lui d(t) ın cazul unui (n, 1) -

cod convolutional (1 ≤ t ≤[dlib − 1

2

]dat).

17.11 Pentru fiecare din codurile urmatoare, decideti daca sunt catastrofice sau nu.In caz afirmativ, determinati ciclurile de pondere 0.

(a) g0(X) = 1 + X, g1(X) = 1 + X + X2 + X3;(b) g0(X) = 1 + X + X4, g1(X) = 1 + X2 + X4;(c) g0(X) = 1 + X + X2, g1(X) = 1 + X + X3 + X4.

Page 551: Criptografie complet

Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] L. Bahl, J. Cocke, F. Jelinek, J. Raviv - Optimal decoding of linear codes forminimizing 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 dedoctorat), PARIS VI, 1990;

[5] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[6] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[7] D.G. Hoffman, 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

Page 552: Criptografie complet

Prelegerea 18

Coduri - tablou

18.1 Definirea codurilor tablou

In Prelegerea 3 au fost definite codurile - produs. Desi constructia prezentata eracunoscuta din anii ′60, dezvoltarea acestei clase de coduri a fost exploziva abia dupatrei decenii, odata cu introducerea pe piata a telefoniei mobile. Acum s-a aratat caorice cod - bloc poate fi generat finit recursiv, folosind o varianta de coduri produs.

Sa consideram o clasa particulara de coduri - produs binare, ın care n1 = k1 +1, n2 = k2 + 1 (deci singurul simbol de control este bitul de control al paritatii).Acest cod este generat de produsul Kronecker a doua matrici de forma

Gp,p+1 =

1 0 0 . . . 0 10 1 0 . . . 0 1

...0 0 0 . . . 1 1

(1)

unde p = k1, k2.Un astfel de (n1 ·n2, k1 ·k2) - cod are distanta d = d1 ·d2 = 2·2 = 4, deci corecteaza

o eroare si detecteaza doua erori. Chiar daca ın scrierea liniara a cuvintelor - codultimul simbol de control se poate elimina (el este de fapt suma modulo 2 a bitilorde control de pe ultima linie si coloana) distanta se reduce la 3, deci capacitatea decorectare a unei erori ramane.

Exemplul 18.1 Fie un (3, 2) - cod binar sistematic, generat de matricea G =(1 0 10 1 1

). Codul produs (3, 2)(3, 2) = (9, 4) va avea ca matrice generatoare

G′ = G×G =

1 0 1 0 0 0 1 0 10 1 1 0 0 0 0 1 10 0 0 1 0 1 1 0 10 0 0 0 1 1 0 1 1

Daca a = 1001 este un mesaj de informatie, el se codifica ınx = aG′ = 101011110, sau – folosind forma matriciala:

x =1 0 10 1 11 1 0

= 101011110

caracterele de control fiind subliniate, iar cuvantul - cod este transmis linie cu linie.

193

Page 553: Criptografie complet

194 PRELEGEREA 18. CODURI - TABLOU

18.2 Structura de retea a codurilor tablou

In cadrul codurilor convolutionale s-a definit o structura de retea pentru facilitareacodificarii, decodificarii, detectarii si corectarii de erori (Prelegerea 17). Aceastastructura se poate extinde cu mici modificari si la codurile liniare.

Fie C un (n, k) - cod liniar care se poate reprezenta printr-un cod - tablou. Luii se asociaza un graf orientat cu arce marcate. Varfurile grafului sunt partitionateın coloane V0, V1, . . . , VNc−1 (Nc ≤ n + 1). O coloana Vi contine multimea starilorla care se poate ajunge la momentul i. Fiecare arc U pleaca dintr-o stare qj ∈ Vi siajunge la o stare qm ∈ Vi+1 (i ≥ 0); ın acest caz, qm este succesorul lui qj, iar qj estepredecesorul lui qm. Arcul este marcat cu o pereche δ(U)/λ(U), unde δ(U) ∈ Z∗

q esteun mesaj de informatie, iar λ(U) ∈ Z∗

q este mesajul - cod corespunzator (de obiceiele se reduc la cate un singur caracter).

Proprietati:(a) V0 = {q0}, VNc−1 = {qNc−1}; deci, orice retea pleaca dintr-o stare unica q0

(radacina) si ajunge de asemenea ıntr-o stare unica qNc−1 (tinta);(b) Orice stare este accesibila din radacina prin cel putin un drum;(c) Din orice stare se poate ajunge la tinta prin cel putin un drum.

Numim drum prin retea un drum de la radacina la tinta. Printr-o retea se potcataloga toate cuvintele unui cod liniar reprezentabil sub forma de cod - tablou.Orice cuvant - cod corespunde unui drum unic prin retea. Deci o astfel de retea vacontine qk drumuri distincte. Fiecare astfel de drum are doua marcaje:

(i) concatenarea marcajelor de informatie δ(U) ale fiecarui arc U al drumului;aceasta secventa formeaza mesajul de informatie care se codifica.

(ii) concatenarea marcajelor λ(U) ale fiecarui arc U al drumului; ele formeazacuvantul care codifica secventa de informatie.

In acest fel, operatia de codificare sau decodificare (fara corectare de erori) sereduce pentru fiecare mesaj de informatie (cod) la determinarea acelui drum prinretea, marcat de mesajul respectiv.

Sa consideram numai (n1 · n2, k1 · k2) - coduri - tablou binare (generalizarea lacazul nebinar se face fara probleme deosebite). Pentru aceste coduri se pot construievident mai multe structuri de retea; vom considera aici numai retele cu un numarminim de stari pe fiecare coloana. Constructia unei astfel de retele va necesita

Ns = 2min{k1,k2}

stari (reamintim, aici ki = ni − 1, i = 1, 2). Procedura de generare ([8]) a reteleieste:

Page 554: Criptografie complet

18.2. STRUCTURA DE RETEA A CODURILOR TABLOU 195

1. Fie n1 = min{n1, n2} (pentru cazul invers se procedeaza similar);

2. Se determina numarul Ns de stari si numarul Nc de coloane prin relatiile

Ns = 2n1−1, Nc = n2 + 1;

3. Pentru fiecare coloana Vp (0 ≤ p ≤ Nc−1) se noteaza elementele (starile)sale prin (A)p = (a1a2 . . . ak1)p, unde ai ∈ Z2;

4. Radacina retelei este (00 . . . 0)0, iar scopul este (00 . . . 0)Nc−1;

5. Pentru orice pereche de stari (A, B) ∈ Vp × Vp+1 (0 ≤ p < Nc − 2), semarcheaza arcul corespunzator cu δp(A,B)/λp(A,B) definite δp(A, B) =(A)p + (B)p+1, λp(A,B) = δp(A,B)c1, unde c1 este bitul de paritate alsecventei δp(A,B) iar suma se realizeaza ın Z2.

6. Arcele care leaga starile A ∈ VNc−2 de tinta au δNc−2(A,B) =ε, λNc−2(A,B) = (A)Nc−2c1 unde c1 este bitul de paritate al secventei(A)Nc−2 care defineste starea A.

Exista 2k1·k2 drumuri distincte prin retea, fiecare corespunzand unui cuvant - codunic. Procedura poate fi extinsa usor la codurile produs cu mai multe simboluri decontrol.

Exemplul 18.2 Sa construim reteaua asociata codului tablou (3, 2)(3, 2) (deci n1 =n2 = 3, k1 = k2 = 2, d = 4). Ea va avea Ns = 2n1−1 = 23−1 = 4 stari distincte siNc = n2 + 1 = 3 + 1 = 4 coloane.

Fiecare stare va fi de forma (a1a2)p cu p = 0, 1, 2, 3, a1, a2 ∈ {0, 1}.(00)0 si (00)3 vor fi radacina respectiv tinta retelei.Marcajele arcelor sunt de forma δp(A,B)/λp(A,B), obtinute prin toate combina-

tiile posibile ale lui (a1a2)p si (a1a2)p+1.Astfel, pentru p = 0 avem:

δ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 fiecare arc va fi marcat cu o pereche de formaδ0/λ0 = a1a2/a1a2c1

unde c1 = a1 + a2.Pe nivelul p = 1, arcele sunt marcate prin perechi din tabelul urmator:

δ1(A,B) 00 01 10 1100 00/000 01/011 10/101 11/11001 01/011 00/000 11/110 10/10110 10/101 11/110 00/000 01/01111 11/110 10/101 01/011 00/000

La ultimul nivel, pentru p = Nc − 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 ultimularc sunt numai simboluri de control).

Page 555: Criptografie complet

196 PRELEGEREA 18. CODURI - TABLOU

Reteaua se poate reprezenta grafic astfel:

¹¸

º·

¹¸

º·¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

00

00 00

01 01

10 10

11 11

00

6-

-

? -

-

-

?

-

-

6

-

00/000

01/011

10/101

11/110

ε/000

ε/011

ε/101

ε/110

-HHHHHHHHHHHHHHHHHj

@@

@@

@@

@@

@@

@@

@@

@@@R

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJJ

©©©©©©©©©©©©©©©©©*

-HHHHHHHHHHHHHHHHHj

@@

@@

@@

@@

@@

@@

@@

@@@R

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡¡µ

©©©©©©©©©©©©©©©©©*

-HHHHHHHHHHHHHHHHHj­­

­­

­­

­­

­­

­­

­­

­­

­­

­­

­­

­­­Á

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡

¡¡¡µ

©©©©©©©©©©©©©©©©*

-

Exemplul 18.3 In mod similar se construiesc codurile tablou obtinute prin produsula doua (3, 2)(n2, k2) - coduri bloc. Toate au acelasi numar de stari Ns = 22 =4, doar adancimea (numarul de coloane) variind ın functie de n2 (Nc = n2 + 1).Reprezentarea grafica a retelei este

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·¶

¶¶

¶¶

¶¶

¶¶7

©©©©©©*

HHHHHHj

JJ

JJ

JJ

JJJ

-Z

ZZ

ZZ

ZZ~

JJ

JJ

JJ

JJ

JJJ

AAAAAAAAAAAAAAAU

´´

´´

´´3

-Z

ZZ

ZZ

ZZ~

SS

SS

SS

SS

SSw

­­

­­

­­

­­

­­Á

½½

½½

½½½>

-Z

ZZ

ZZ

ZZ~¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¶¶

¶¶

¶¶

¶¶

¶¶7

½½

½½

½½½>

-

-QQsS

SSwAAAAU

½½>-ZZ~J

JJ

¡¡µ³³1-HHj

-©©*¡¡µ

­­­Á

-»»»»:

©©©©*

´´

´3

XXXXz-

»»»:

©©©©*

-»»»»:XXXXzHHHj

QQ

QQsPPPPqXXXz-

@@

@@

@@

@RXXXXXXXz

³³³³³³³1

¡¡

¡¡

¡¡

¡µ

00

00 00 00

00

01 01 01

10 10 10

11 11 11

. . .

marcajul nodurilor fiind realizat similar cu cel din Exemplul 18.2.

18.3 Decodificarea codurilor tablou

Operatia de codificare se realizeaza foarte simplu: fiecare mesaj de informatie dek1 · k2 caractere, se scrie ca o secventa de k2 + 1 grupuri, primele k2 grupuri avandcate k1 simboluri, iar ultimul ε. Aceasta secventa traseaza prin retea un drum unic

Page 556: Criptografie complet

18.3. DECODIFICAREA CODURILOR TABLOU 197

(00 . . . 0)− A1 − . . .− ANc−2 − (00 . . . 0)de la radacina la tinta. Ceea ce se obtine prin concatenarea iesirilor

λ0(00 . . . 0, A1)λ1(A1, A2) . . . λNc−2(ANc−2, 00 . . . 0)va fi un cuvant - cod al (n1 · n2, k1 · k2) - codului - tablou reprezentat de retea.

Pentru decodificare se poate folosi o varianta a algoritmului Viterbi, cu micimodificari, necesare trecerii de la codurile convolutionale la coduri bloc.

1. Cuvantul receptionat este ımpartit ın n2 subcuvinte, fiecare avand n1

valori digitizate (vezi Exemplul 18.4) ale alfabetului - cod.

2. La fiecare nivel p, pentru fiecare arc (Ap, Bp+1) se calculeaza metricaarcului, care este distanta euclidiana dintre al p + 1-lea subcuvantreceptionat si λp(Ap, Bp+1). Distanta euclidiana dintre x = x1x2 . . . xn siy = y1y2 . . . yn este

dE(x,y) = (x1 − y1)2 + (x2 − y2)

2 + . . . + (xn − yn)2.

3. Pentru fiecare nod B al retelei se determina metrica nodului B, astfel:

(a) Metrica nodului radacina este 0;

(b) Pentru un nod Bp+1 ∈ Vp+1 (p ≥ 0), metrica lui B este cea mai micavaloare a sumei dintre metrica unui nod Ap ∈ Vp si dE((A)p, (B)p+1),minimul fiind luat dupa toate nodurile din Vp.

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 tinta, se considera drumul posibilcorespunzator si decodificarea se face prin concatenarea sub-mesajelorde informatie care marcheaza arcele acestui drum.

Exemplul 18.4 Sa reluam codul - tablou definit ın Exemplul 18.2. Presupunem cas-a transmis cuvantul cod a = 011101110 si s-a receptionat mesajul digitizat

b′ = 0.2 0.4 0.4 0.3 0.1 0.9 1.0 0.9 0.6.Presupunand ca orice simbol digitizat din intervalul [0.0, 0.5) reprezinta carac-

terul binar 0, iar [0.5, 1.0] reprezinta 1, putem considera ca s-a primit secventab = 000001111 deci au aparut 4 erori. Intr-o decodificare obisnuita a codurilorliniare, deoarece d = 4, erorile nu pot fi corectate. Folosind structura de retea ınsa,acest lucru este realizabil. Sa detaliem pasii decodificarii cuvantului b′.

– Metrica nodului radacina (00)0 este 0.– Prima subsecventa de n1 = 3 caractere primite este 0.2 0.4 0.4.– Se calculeaza metricile celor patru arce care pleaca din radacina:

dE((00)0, (00)1) = (0.2− 0.0)2 + (0.4− 0.0)2 + (0.4− 0.0)2 = 0.36;dE((00)0, (01)1) = (0.2− 0.0)2 + (0.4− 1.0)2 + (0.4− 1.0)2 = 0.76;dE((00)0, (10)1) = (0.2− 1.0)2 + (0.4− 0.0)2 + (0.4− 1.0)2 = 1.16;dE((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.

Page 557: Criptografie complet

198 PRELEGEREA 18. CODURI - TABLOU

– Urmatorul submesaj primit este 0.3 0.1 0.9. Pentru nodurile de pe nivelul2, 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 fiecare coloana ale acestor valori (scris ıngrosat) reprezinta metricanodului respectiv. Deci nodurile (00)2 si (01)2 au metrica 1.27, (10)2 are metrica0.87, iar (11)2 are metrica 1.37.

– Ultima subsecventa de trei caractere digitizate este 1.0 0.9 0.6. Valorile calcu-late ale metricilor (metrica nodului predecesor plus metrica arcului) drumurilor careajung ın nodul tinta sunt:

(00)3

(00)2 3.44(01)2 2.44(10)2 1.84(11)2 1.74

Deci metrica nodului tinta este 1.74. Refacand acum traiectoria ın sens invers,se obtine drumul posibil (00)0 − (01)1 − (11)2 − (00)3, reprezentat ın figura

¹¸

º·¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·¹¸

º·»»»»»»: Z

ZZ

ZZ

ZZ~´

´´

´´

300

00

01

10

11

00

01

10

11

0001/011

10/101

ε/110

Prin concatenarea marcajelor arcelor de pe acest drum, rezulta cuvantul - cod011101110 (care coincide cu mesajul transmis a) si decodificarea lui - mesajul deinformatie 0110.

18.4 Coduri tablou generalizate (GAC)

Definitia codurilor - tablou se poate extinde pentru a cuprinde si alte clase de coduriliniare (Hamming, Reed - Muller) sau ciclice (BCH, Reed - Solomon); ceea ce seobtine este un cod - tablou generalizat (GAC - Generalized Array Codes).

Un GAC este o suma binara de doua sau trei coduri - tablou, completate eventualcu linii nule. Procedura de constructie a unui astfel de (n, k) - cod C este:

A. Fie C1 un cod - produs prin ınmultirea Kronecker GA1 ×GA2 , unde:(i) GA1 este o matrice k1 × (k1 + 1) de tipul (1);

Page 558: Criptografie complet

18.4. CODURI TABLOU GENERALIZATE (GAC) 199

(ii) GA2 = (Ik2|Jk2,n2−k2) unde Ik2 este matricea unitate iar J este o matrice cutoate elementele 1;

(iii) n = (k1 + 1) · n2, kA = k1 · k2.B. Fie C2 un cod - produs prin ınmultirea Kronecker GB1 ×GB2 , unde:(i) GB1 este o matrice 1× nB1 cu toate elementele 1;(ii) GB2 = (G3|G4) este o matrice kB × nB2 unde G3 este o matrice cu coloane 0

sau 1, iar G4 este o matrice de tipul (1) cu kB linii. Coloanele lui GB2 pot fi eventualpermutate.

(iii) n = nB1 · nB2 .C. Fie C3 un cod - produs prin ınmultirea Kronecker GC1 ×GC2 , unde:(i) GC1 = (00 . . . 01) are dimensiunea 1× nC1 ;(ii) GC2 = (11 . . . 1) are dimensiunea 1× nC2 ;(iii) n = nC1 · nC2 .D. Codul C este C1 + C2 sau C1 + C2 + C3 unde suma se efectueaza ın Z2; el

are lungimea n, k = kA + kB respectiv k = kA + kB + 1 simboluri de informatie sieste generat de matricea

(GA1 ×GA2

GB1 ×GB2

)sau

GA1 ×GA2

GB1 ×GB2

GC1 ×GC2

In exemplele urmatoare vom prezenta sub forma de coduri GAC unele din celemai cunoscute coduri - bloc (liniare sau ciclice).

Exemplul 18.5 Sa consideram

GA1 =

1 0 0 10 1 0 10 0 1 1

, GA2 = (1 1)

GB1 = (1 1 1 1), GB2 = (0 1).Dimensiunile codului sunt n = 4 · 2 = 8, k = 3 + 1 = 4. Matricea generatoare va fi

G =

1 1 0 0 0 0 1 10 0 1 1 0 0 1 10 0 0 0 1 1 1 10 1 0 1 0 1 0 1

.

Aceasta corespunde unui cod Reed - Muller RM(1, 3). Daca se ignora ultimacoloana (de control), se obtine un (7, 4) - cod Hamming binar.

Aranjarea sub forma de tablou a cuvintelor - cod din cele doua coduri - produscomponente este urmatoarea:

Fie a = a1a2a3a4 un mesaj de informatie. Atunci cuvantul - cod x este dat prin:

x1 =

a1 p1

a2 p2

a3 p3

p4 p5

x2 =

0 a4

0 a4

0 a4

0 a4

,

x = x1 + x2 =

a1 p1 + a4

a2 p2 + a4

a3 p3 + a4

p4 p4 + a4

= (a1, a4 + p1, a2, p2 + a4, a3, p3 + a4, p4, p4 + a4),

unde pi = ai (1 ≤ i ≤ 3) si p4 = a1 + a2 + a3 sunt simboluri de control.

Page 559: Criptografie complet

200 PRELEGEREA 18. CODURI - TABLOU

Exemplul 18.6 Codul RM(1, 4) poate fi generat cu un cod GAC astfel:

GA1 =

1 0 0 10 1 0 10 0 1 1

GA2 = (1 1 1 1)

GB1 = (1 1 1 1) GB2 =

(0 1 0 10 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 10 0 0 0 1 1 1 1 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 10 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 ajungela un (15, 5) - cod binar cu d = 7, care este un cod BCH.

Fie a = a1a2a3a4a5 un mesaj de informatie. Reprezentarea tabelara a cuvintelor- cod este:

x1 =

a1 p1 p1 p1

a2 p2 p2 p2

a3 p3 p3 p3

p4 p4 p4 p4

x2 =

0 a4 a5 a4 + a5

0 a4 a5 a4 + a5

0 a4 a5 a4 + a5

0 a4 a5 a4 + a5

,

x = x1 + x2 =

a1 p1 + a4 p1 + a5 p1 + a4 + a5

a2 p2 + a4 p2 + a5 p2 + a4 + a5

a3 p3 + a4 p3 + a5 p3 + a4 + a5

p4 p4 + a4 p4 + a5 p4 + a4 + a5

,

unde pi = ai (1 ≤ i ≤ 3), p4 = a1 + a2 + a3 sunt simboluri de control.

Exemplul 18.7 Sa plecam de la urmatoarele matrici de baza:

GA1 = GA2 =

1 0 0 10 1 0 10 0 1 1

GB1 = GC2 = (1 1 1 1), GB2 = GC1 = (0 0 0 1).Se obtine un cod C = C1 + C2 + C3 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 10 1 0 1 0 0 0 0 0 0 0 0 0 1 0 10 0 1 1 0 0 0 0 0 0 0 0 0 0 1 10 0 0 0 1 0 0 1 0 0 0 0 1 0 0 10 0 0 0 0 1 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 1 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 1 0 0 1 1 0 0 10 0 0 0 0 0 0 0 0 1 0 1 0 1 0 10 0 0 0 0 0 0 0 0 0 1 1 0 0 1 10 0 0 1 0 0 0 1 0 0 0 1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

El are d = 4 si este echivalent cu un cod RM(2, 4). Daca se elimina ultimulsimbol de control, se obtine un (15, 11) - cod Hamming binar.

Page 560: Criptografie complet

18.5. DECODIFICAREA CODURILOR GAC 201

Fie a = a1a2 . . . a11 un mesaj de informatie. Cuvantul - cod x este format din:

x1 =

a1 a2 a3 p1

a4 a5 a6 p2

a7 a8 a9 p3

p4 p5 p6 p7

, x2 =

0 0 0 a10

0 0 0 a10

0 0 0 a10

0 0 0 a10

, x3 =

0 0 0 00 0 0 00 0 0 0

a11 a11 a11 a11

x = x1 + x2 + x3 =

a1 a2 a3 p1 + a10

a4 a5 a6 p2 + a10

a7 a8 a9 p3 + a10

p4 + a11 p5 + a11 p6 + a11 p7 + a10 + a11

Exemplul 18.8 Pentru (24, 12) - codul Golay binar extins se poate da urmatoareareprezentare GAC:

GA1 =

(1 0 10 1 1

)GA2 =

1 0 0 0 1 1 1 10 1 0 0 1 1 1 10 0 1 0 1 1 1 10 0 0 1 1 1 1 1

GB1 = (1 1 1) GB2 =

1 1 1 0 1 1 0 11 0 1 1 1 1 0 11 0 1 0 1 1 1 1

GC1 = (0 0 1) GC2 = (1 1 1 1 1 1 1 1).Fie a = a1a2 . . . a12 un mesaj de informatie.Pentru obtinerea cuvantului - cod, avem:

x1 =a1 a2 a3 a4 p1 p2 p3 p4

a5 a6 a7 a8 p5 p6 p7 p8

p9 p10 p11 p12 p13 p14 p15 p16

x2 =c1 a9 c2 a10 c3 c4 a11 c5

c1 a9 c2 a10 c3 c4 a11 c5

c1 a9 c2 a10 c3 c4 a11 c5

x3 =0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

a12 a12 a12 a12 a12 a12 a12 a12

decix = x1 + x2 + x3 =

a1 + c1 a2 + a9 . . . a11 + p3 c5 + p4

a5 + c1 a6 + a9 . . . a11 + p7 c5 + p8

a12 + p9 + c1 a12 + p10 + a9 . . . a12 + a11 + p15 a12 + p16 + c5

De remarcat maniera mult mai simpla de codificare, ea reducandu-se la adunaride valori binare (pentru simbolurile de control) si adunari de matrici binare.

18.5 Decodificarea codurilor GAC

Pentru decodificare se poate folosi tot algoritmul lui Viterbi aplicat unei structuride retea sub care se pot reprezenta aceste coduri. Structura de retea se construiestesimilar cu cea a codurilor - tablou, cu unele mici modificari datorate definitiei cu-vintelor - cod, ca sume de doua sau trei alte secvente.

Page 561: Criptografie complet

202 PRELEGEREA 18. CODURI - TABLOU

Vom considera reprezentarea cuvintelor unui cod GAC sub forma de tablou cun1 linii si n2 coloane. Fie ki numarul de simboluri noi de informatie care pot aparepe linia i a cuvintelor - cod si t = max

1≤i≤n1

{ki}.

1. Numarul de coloane (adancimea retelei) este Nc = n1 + 1, iar numarulde stari distincte este Ns = 2t.

2. Fiecare stare de pe coloana p se noteaza (a1a2 . . . at)p unde ai ∈ Z2 (1 ≤i ≤ t).

3. Radacina retelei este (00 . . . 0)0 iar tinta (00 . . . 0)n1 .

4. Fiecare arc (Ap, Bp+1) de pe nivelul p este marcat cu o perecheδp(A,B)/λp(A,B) unde δp(A,B) este secventa de simboluri noi deinformatie de pe linia p (eventual ε), iar λp(A,B) este linia p a cuvantului- cod.

5. Daca Ap si Bp+1 sunt legate printr-un arc si |δp(A,B)| = s, atunci Bp+1 =Ap + δp(A,B)0t−s.

6. Daca constructia codului GAC a folosit si codul C3, atunci fiecare nodde pe coloana n2 este legat de tinta prin doua arce, marcajul celui de-aldoilea arc fiind complementara marcajului primului arc (pe acest nivelδn2(A, 00 . . . 0) = ε).

In aceasta constructie de retea suntn1∏

p=1

2ki drumuri distincte, fiecare din ele

corespunzand unui cuvant - cod.Operatiile de codificare/decodificare (inclusiv aplicarea algoritmului Viterbi a-

daptat) sunt identice cu cele definite la codurile - tablou.

Exemplul 18.9 Reluam codul definit ın Exemplul 18.5. Pentru el se poate construio retea ın felul urmator:

Sunt necesare Nc = n1 + 1 = 4 + 1 = 5 coloane. Pentru numarul de stari, sastudiem forma de tablou a cuvintelor cod:

x =

a1 p1 + a4

a2 p2 + a4

a3 p3 + a4

p4 p4 + a4

¹¸

º·¹¸

º·¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·¹¸

º·©©©©©©©*

»»»»»»:

XXXXXXXzHHHHHHHj

-PPPPPPPq-»»»»»»»:

-

-

XXXXXXXz»»»»»»»:

-

-

-

-

XXXXXXXz»»»»»»»:

XXXXXXXz»»»»»»»:

HHHHHHHjXXXXXXz

»»»»»»»:

©©©©©©©*00

00 00 00

0010 10 10

01 01 01

11 11 11

Page 562: Criptografie complet

18.5. DECODIFICAREA CODURILOR GAC 203

In aceasta reprezentare, pe prima linie sunt doua simboluri de informatie (a1 si a4),pe a doua si a treia cate unul (a2 respectiv a3, a4 nefiind simbol nou), iar pe a patralinie, nici unul. Deci numarul de stari al retelei este Ns = 22 = 4, fiecare stare fiindreprezentata printr-o secventa de t = 2 caractere binare (00, 01, 10, 11).

Functia δ este definita prinδ0(00, B) = a1a4, δ1(A,B) = a2, δ2(A,B) = a3, δ3(A, 00) = ε.Nodurile si arcele sunt marcate cu valorile date de tabelele urmatoare:

δ0(A,B)/λ0(A,B) 00 10 01 1100 00/00 10/11 01/01 11/10

δ1(A,B)/λ1(A,B) 00 10 01 1100 0/00 1/11 − −10 1/11 0/00 − −01 − − 0/01 1/1011 − − 1/10 0/01

δ2(A,B)/λ2(A,B) 00 10 01 1100 0/00 1/11 − −10 1/11 0/00 − −01 − − 0/01 1/1011 − − 1/10 0/01

δ3(A,B)/λ3(A,B) 0000 ε/0010 ε/1101 ε/0111 ε/10

pentru codul RM(1, 3),

δ3(A,B)/λ3(A,B) 0000 ε/010 ε/101 ε/011 ε/1

pentru (7, 4) - codul Hamming

Exemplul 18.10 Reprezentarea prin retea a codurilor RM(1, 4) si (15, 5) − BCHconstruite sub forma de GAC ın Exemplul 18.6 se realizeaza astfel:

Adancimea retelei (numarul de coloane) este Nc = 4 + 1 = 5. Numarul maximde simboluri de informatie noi se afla pe prima linie a cuvintelor - cod (a1, a4, a5);deci reteaua are Ns = 23 = 8 stari distincte.

Functia δ este definitaδ0(000, B) = a1a4a5, δ1(A,B) = a2, δ2(A,B) = a3, δ3(A, 000) = ε.iar functia λ:λ0(000, B) = a1(a1 + a4)(a1 + a5)(a1 + a4 + a5)λ1(A,B) = a2(a2 + a4)(a2 + a5)(a2 + a4 + a5)λ2(A,B) = a3(a3 + a4)(a3 + a5)(a3 + a4 + a5)λ3(A, 000) = (a1+a2+a3)(a1+a2+a3+a4)(a1+a2+a3+a5)(a1+a2+a3+a4+a5)

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

Page 563: Criptografie complet

204 PRELEGEREA 18. CODURI - TABLOU

¹¸

º·¹¸

º·¹¸

º·¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·¶¶

¶¶

¶¶

¶¶¶7

¡¡

¡¡

¡¡¡µ

´´

´´

´´3

»»»»»»»:

XXXXXXzHHHHHHHj

@@

@@

@@@R

SS

SS

SS

SSSw

- -

- -

- -

- -

- -

- -

- -

- -

PPPPPq³³³³³1 PPPPPq³³³³³1

PPPPPq³³³³³1 PPPPPq³³³³³³1

PPPPPq³³³³³³1 PPPPPPq³³³³³1

PPPPPPq³³³³³1 PPPPPPq³³³³³1

SS

SS

SS

SSSw

@@

@@

@@@R

QQ

QQ

QQs

XXXXXXz

»»»»»»»:

©©©©©©©*

½½

½½

½½

½>

¡¡

¡¡

¡¡

¡¡µ

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 retea se poate reprezenta folosind numai 4 stari ın loc de 8:

{

y

{

{ {

{

y

{

{

{

y

{

{{

- -- -

- -- -

- -- -

- -- -

6-

6- -

?

-

?

? -? - -

6

-

6

-6-

-6-

-? --

? -

-? -

-? -

-6-

-6-

Cele doua arce care leaga doua noduri sunt marcate cu etichete complementare.Exceptie fac arcele de pe primul nivel unde ın definitia functiei δ0 este complemen-tat numai primul bit (a1); ceilalti doi biti de informatie a4a5 sunt identici pentrufiecare pereche de arce si formeaza marcajele nodurilor succesor de pe nivelul 1:00, 01, 10, 11.

Page 564: Criptografie complet

Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] L. Bahl, J. Cocke, F. Jelinek, J. Raviv - Optimal decoding of linear codes forminimizing 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 dedoctorat), PARIS VI, 1990;

[5] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[6] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[7] D.G. Hoffman, 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

Page 565: Criptografie complet

Prelegerea 19

Alte reprezentari de coduri - bloc

19.1 RLL - coduri

Sistemele de comunicare actuale (telefonice, de ınregistrare etc), datorita vitezeimari de lucru, difera substantial de canalele clasice (binar simetrice). Pentru elese folosesc filtre de banda capabile sa elimine fenomenul de interferenta care apare.Numite canale cu raspuns partial, ele corecteaza aceste interferente folosind algoritmide tip Viterbi, incorporati prin constructie. Reusita decodificarii corecte a cuvintelorreceptionate este asigurata de supra-codificari ale mesajului sursa. In prezent suntfolosite trei supra-coduri care asigura transmiterea fara interferente (ın anumitelimite) a mesajului: acestea sunt codurile cu lungime limitata si codurile balansatepentru codurile-bloc, turbo-codurile pentru ocdurile convolutionale.

Definitia 19.1 Un cod cu lungime limitata (RLL - Run Length Limited Codes), sau(d0, k0) - cod, este un cod - bloc cu proprietatea ca orice doua simboluri 1 consecutivesunt separate prin p zerouri, unde d0 ≤ p ≤ k0.

Parametrul d0 este folosit pentru controlul interferentei dintre simboluri (feno-men care apare la viteze de transmisie mari, apropiate de capacitatea de saturatie acanalului); k0 impune numarul maxim de zerouri care pot apare, pentru pastrareaunei rate de informatie cat mai convenabile.

Fie C un (n, k) - cod bloc care poate fi reprezentat sub forma de cod tablou(n1 · n2, k1 · k2), si c1,n un cuvant binar de comutatie. Codul C + c = {a + c|a ∈ A}va fi tot un (n, k) - cod, cu restrictii RLL.

Dificultatea acestei constructii rezida ın modul de alegere a vectorului c. Deaceea, vom detalia procedura de codificare pentru obtinerea de coduri RLL cu d0 =0:

1. Se defineste codul - tablou (n1 · n2, k1 · k2) care trebuie transformat.2. Se defineste cuvantul de comutatie c = c1c2 . . . cn2 , unde ci =ci1ci2 . . . cin1

(1 ≤ i ≤ n2) este secventa binara de comutatie pentru linia i.3. Pentru linia i (care este un cuvant - cod cu un singur simbol de control),cuvantul de comutatie verifica urmatoarea conditie:

Daca n1 este par, ci are un numar impar de 1,altfel, ci are un numar par de 1.

217

Page 566: Criptografie complet

218 PRELEGEREA 19. ALTE REPREZENTARI DE CODURI - BLOC

Exemplul 19.1 Fie (16, 9) - codul tablou, avand cuvintele - cod de forma

a =

a1 a2 a3 p1

a4 a5 a6 p2

a7 a8 a9 p3

p4 p5 p6 p7

(este codul C1 construit ın Exemplul 18.7). Deoarece n1 = 4, cuvantul de comutatieal fiecarei linii contine un numar impar de 1. Vor exista opt variante posibile pentruci:

0001 0010 0100 1000 1110 1101 1011 0111,deci se pot defini N0 = 84 cuvinte de comutatie distincte c.

Daca se ia de exemplu c = 0100110110001110, codul RLL definit pe baza lui vaavea cuvintele - cod

a =

a1 a2 a3 p1

a4 a5 a6 p2

a7 a8 a9 p3

p4 p5 p6 p7

unde s-a notat x = 1− x.

Tehnica descrisa mai sus se poate extinde la coduri GAC, conducand la coduri cuproprietati RLL optime ([7]). Generalizarea este urmatoarea:

1. Daca n1 este par, ci (1 ≤ i ≤ n2) contine zero sau un numar impar de 1;2. Daca n2 este impar, ci (1 ≤ i ≤ n2) contine un numar par de 1;3. Daca n = n1 · n2 este par, cuvantul de comutatie c va contine un numarpar de 1;4. ci nu este cuvant - cod al codului care formeaza liniile; daca aceasta nu sepoate evita, atunci ci+1 se alege de asemenea dintre cuvintele aceluiasi cod.

Exemplul 19.2 Fie un (8, 4) - cod binar care codifica fiecare mesaj de informatie(a1, a2, a3, a4) ın

a =

a1 a1 + a4

a2 a2 + a4

a3 a3 + a4

p1 p1 + a4

Deoarece n si n1 sunt pare, alegem ci (1 ≤ i ≤ 4) cu numar impar de 1, astfleıncat numarul total de 1 din c sa fie par. Putem lua de exemplu

c1 = 10, c2 = 00, c3 = 01, c4 = 00Deci secventa generala de comutatie este c = 10000100 si cuvintele - cod cu

restrictia RLL sunt

a =

a1 a1 + a4

a2 a2 + a4

a3 a3 + a4

p1 p1 + a4

Page 567: Criptografie complet

19.1. RLL - CODURI 219

Studiind toate cele 16 cuvinte - cod, se gasesc trei cuvinte cod care ıncep cu treicaractere 1 si trei cuvinte - cod care se termina cu trei caractere 1. Deci k0 = 6 sise poate demonstra ca aceasta este valoarea minima care se poate obtine pentru k0

ın cazul (8, 4) - codurilor.

Daca se relaxeaza codul prin eliminarea ultimului simbol de control, se ajunge laun (7, 4) - cod Hamming binar, cu k0 = 7.

Pentru decodificarea codurilor RLL se poate folosi structura de retea definita ıncazul codurilor GAC, cu o singura modificare: la marcajul arcelor, se ınlocuiesteλp(A,B) := λ(A,B) + cp.

Exemplul 19.3 Sa reluam (8, 4) - codul GAC de mai sus, a carui retea este de-scrisa ın Exemplul 18.5. Folosind secventa de comutatie c = 00010001, se obtine uncod RLL cu aceeasi structura de retea:

¹¸

º·¹¸

º·¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·

¹¸

º·¹¸

º·©©©©©©©*

»»»»»»:

XXXXXXXzHHHHHHHj

-PPPPPPPq-»»»»»»»:

-

-

XXXXXXXz»»»»»»»:

-

-

-

-

XXXXXXXz»»»»»»»:

XXXXXXXz»»»»»»»:

HHHHHHHjXXXXXXz

»»»»»»»:

©©©©©©©*00

00 00 00

0010 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 1100 0/01 1/10 − −10 1/10 0/01 − −01 − − 0/01 1/1111 − − 1/11 0/00

δ2/λ2 00 10 01 1100 0/00 1/11 − −10 1/11 0/00 − −01 − − 0/01 1/1011 − − 1/10 0/01

δ3/λ3 0000 ε/0110 ε/1001 ε/0011 ε/11

(pentru (7, 4) - codul Hamming binar se ignora ultimul bit din λ3).

De remarcat ca fata de Exemplul 18.5 s-a modificat numai marcajul nodurilor depe nivelele 1 si 3).

Page 568: Criptografie complet

220 PRELEGEREA 19. ALTE REPREZENTARI DE CODURI - BLOC

19.2 Coduri balansate

Codurile balansate reprezinta o clasa speciala de coduri RLL ın care fiecare cuvant- cod are un numar egal de 0 si 1. Avantajele pe care le ofera aceasta conditie(siguranta la transmiterea de date la viteze mari, capacitatea de auto-control altactilor, posibilitati de detectare si corectare a erorilor comparabile cu codurile -bloc) o recomanda ca o masura eficienta de codificare suplimentara.

Algoritm B:Fie a = a1a2 . . . ak un mesaj de informatie. Definim urmatorul cuvant - codtablou balansat asociat lui a:1. Se alege n1 astfel ca 2n1 − 2 ≤ k si se noteaza n = 4 · n1.2. Se construieste un cuvant - cod tablou cu primele 2n1 − 2 caractere deinformatie:

c =

a1 a3 a5 . . . a2n1−3 p1

a1 a3 a5 . . . a2n1−3 p1

a2 a4 a6 . . . a2n1−2 p2

a2 a4 a6 . . . a2n1−2 p2

Cuvintele de aceasta forma, citite pe coloana, formeaza un (n, 2n1 − 2) - codtablou balansat C, avand d = 4. C este folosit pentru definirea caracterelorde control p1 si p2.3. Se definesc functiile f1, f2 : Z2 → Z4

2 prinf1(x, y) = (x, x, y, y)f2(x, y) = (x ∧ y, x ∧ y, x ∧ y, x ∧ y)

unde ∧ este operatorul boolean obisnuit. Evident, coloanele codului C suntcodificate folosind f1.4. Se construieste cuvantul - cod u folosind ultimele k − 2n1 + 2 caractere deinformatie x = a2n1−1a2n1 . . . ak astfel:

1. Daca x = 0 . . . 00, atunci u = f1(a1, a2)f1(a3, a4) . . . f(p1, p2);

2. Daca x = 0 . . . 01, atunci u = f1(a1, a2)f1(a3, a4) . . . f1(p1, p2);

3. In rest, u = g(a1, a2)g(a3, a4) . . . g(p1, p2), unde

(i) g este f2 sau f2; fiecare din ele apare de un numar egal de ori (caten1/2 aparitii);

(ii) Daca se noteaza f2 cu 0 si f2 cu 1, lui u i se asociaza o secventa α den1 caractere binare, cu proprietatea ca pentru primele 2n1 − 2 caracterede informatie fixate, aplicatia x 7→ α este izotona fata de relatia de ordinelexicografica.

5. Cuvantul - cod final se obtine prin scrierea pe fiecare linie a unei valorifi(x, y) din u. El apartine astfel unui cod GAC A de dimensiuni n1 × 4.

Sunt multe modalitati de transformare a unui cod - bloc binar ıntr-un cod bal-ansat; de exemplu dublarea fiecarui cuvant - cod a cu o secventa identica (aa) sau

Page 569: Criptografie complet

19.2. CODURI BALANSATE 221

cu caractere complementate (aa) conduc la coduri balansate. Constructia unui codbalansat realizata prin Algoritmul B asigura posibilitatea constructiei unei retele dedecodificare ın maniera celei din Prelegerea 18.

In constructia data de Algoritmul B mai trebuie rezolvata problema alegerii luin1. Aceasta se realizeaza folosind urmatoarea teorema:

Teorema 19.1 Fiind dat k, n1 este de forma n1 = 2s unde s este cel mai micnumar pozitiv care verifica inegalitatea

2k+2−4s ≤ 2 + Cs2s. (1)

Demonstratie: Conditia ca n1 sa fie par rezulta din cerinta ca ın u jumatate din celen1 functii g sa fie f2 si jumatate sa fie f2. Fie deci n1 = 2s.

Din conditia 2n1 − 2 ≤ k rezulta k + 2− 4p ≤ 0.Deoarece x este format din k + 2 − 4s caractere binare, sunt 2k+2−4s secvente

x posibile. Din acestea, 2k+2−4s − 2 sunt construite folosind numai functia f2, decitrebuie sa existe pentru ele cel putin tot atatea secvente α. Deoarece numarulsecventelor binare α este Cs

2s, rezulta inegalitatea din enunt.Conditia de minim asigura unicitatea codificarii. 2

De remarcat ca prin aceasta metoda, operatia de balansare nu pastreaza propri-etatea de cod liniar sau ciclic.

Exemplul 19.4 Sa construim un cod GAC balansat care sa codifice k = 3 simboluride informatie. Folosind inegalitatea (1), se obtine s = 1, deci n1 = 2, n = 8.

Codul cadru, care defineste simbolurile de control, este un (8, 2) cod bloc avandcuvintele - cod de forma (reamintim, reprezentarea desfasurata se face pe coloane):

c =

a1 p1

a1 p1

a2 p2

a2 p2

= a1 a1 a2 a2 p1 p1 p2 p2

unde p1 = a1, p2 = a2. Operatia de codificare este reprezentata de tabloul:

000 → 01010101 001 → 01011010010 → 01100110 011 → 01101001100 → 10011001 101 → 10010110110 → 10101010 111 → 10100101

Exemplul 19.5 Pentru k = 4 simboluri de informatie se obtine de asemenea s = 1si acelasi (8, 2) - cod cadru, cu doua simboluri de control. Cele doua caractere deinformatie ramase, a3a4 asigura codificarea ın felul urmator:

α = 00 =⇒ u = f(a1, a2)f(p1, p2)α = 10 =⇒ u = f(a1, a2)f(p1, p2)α = 01 =⇒ u = f2(a1, a2)f2(p1, p2)α = 11 =⇒ u = f2(a1, a2)f2(p1, p2)

Se obtine ın acest fel un (8, 4) - cod balansat. Din studiul celor 16 cuvinte - codrezulta ca el are d = 2.

Page 570: Criptografie complet

222 PRELEGEREA 19. ALTE REPREZENTARI DE CODURI - BLOC

Exemplul 19.6 Urmatorul cod balansat a fost studiat de Blaum ([2]), odata cuintroducerea metodei de balansare prezentata mai sus. Din k = 9, singura valoareposibila este s = 2, deci n1 = 4, n = 16. Cuvintele - cod cadru au forma

c =

a1 a3 a5 p1

a1 a3 a5 p1

a2 a4 a6 p2

a2 a4 a6 p2

unde p1 = a1 + a3 + a5, p2 = a2 + a4 + a6.

Procedura de codificare este data de tabelul urmator:

a7a8a9 u1u2u3u4 u5u6u7u8 u9u10u11u12 u13u14u15u16

000 f1(a1, a2) f1(a3, a4) f1(a5, a6) f1(p1, p2)

001 f1(a1, a2) f1(a3, a4) f1(a5, a6) f1(p1, p2)

010 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

011 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

100 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

101 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

110 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

111 f2(a1, a2) f2(a3, a4) f2(a5, a6) f2(p1, p2)

S-a obtinut astfel un (16, 9) - cod balansat cu d = 4.

Sa codificam mesajul de informatie a = 001101010. Pentru determinarea bitilorde control se construieste cuvantul

c =

0 1 0 11 0 1 00 1 1 01 0 0 1

Deoarece a7 = 0, a8 = 1, a9 = 0, codul va fi generat folosind a treia linie dintabelul de sus:

u =

0 1 1 10 0 1 00 0 0 11 0 1 1

= 0001 1000 1101 1011.

Alte exemple de mesaje de informatie si codificarile lor:

000000000 0101010101010101

111111001 1010101010100101

000000101 1110000100011110

111111011 1000011110000111

Pentru realizarea unei structuri de retea a codurilor balansate, dificultatea constaın faptul ca aceste coduri nu sunt liniare, deci algoritmii utilizati pana acum nufunctioneaza. Se va utiliza urmatorul algoritm, specific codurilor balansate definiteın aceasta sectiune:

Page 571: Criptografie complet

19.2. CODURI BALANSATE 223

1. Pe baza algoritmilor cunoscuti se construieste structura de retea Rb acodului - bloc cadru Cb; fie k0 numarul ei de coloane (egal cu numarulde coloane din reprezentarea ın tablou a cuvintelor - codului Cb).

2. Se copiaza reteaua Rb de 2p − 1 ori, unde p = k − 2n1 + 2 este dat depasul 3 al algoritmului B; fiecare copie corespunde unei generari posibilea unui cuvant - cod balansat.

Toate subretelele au o singura radacina si o singura tinta.

3. In fiecare din cele 2p subretele:

(a) Arcul ((00 . . . 0)0, B1) de pe nivelul 0 se marcheaza cu δ0/λ0 undeδ0(00 . . . 0, B) = a2n1−1 . . . ak, iarλ0(00 . . . 0, B) = g1(a1, a2).

(b) Arcul spre tinta are δk0(A, 00 . . . 0) = ε siλk0(A, 00 . . . 0) = g(p1, p2). (notatiile sunt cele din algoritmul B).

4. In fiecare subretea se defineste valoarea δj/λj (1 ≤ j < k0) a arcu-lui (Aj, Bj+1) astfel: δj(A,B) este valoarea nemodificata din Rb, iarλj(A,B) = g(a2j+1, a2j+2).

Exemplul 19.7 Sa reluam (8, 3) - codul balansat din Exemplul 19.4. Dupa ce seconstruieste reteaua (8, 2) - codului cadru, deoarece exista doar un bit de informatiesuplimentar avem p = 1 deci reteaua se mai copiaza de 2p − 1 = 1 ori.

Sunt doua maniere de abordare:A. Daca transmiterea se face pe linii, apare o constructie conforma cu cea a

retelelor definite pentru codurile GAC. Reteaua corespunzatoare codului cadru esteprezentata ın (a), iar cea pentru codul balansat, ın (b):

t

t t t

t

t t t

6- - - -

?

? - - - -6

SS

SS

SSw¶

¶¶

¶¶¶7

0/00 ε/11 0/00 ε/11

1/11 ε/00 1/11 ε/00

1/11 0/00 tt

t

t

t

t

t

t

t

t

t

t

t

t

6- - - -

?- - - -

? - - - -

6- - - -

QQ

QQQs´

´´

3

QQ

QQQs´

´´

´3

00/00 ε/11 0/00 ε/11

10/11 ε/00 1/11 ε/00

01/01 ε/10 0/01 ε/10

11/10 ε/01 1/10 ε/01

1/11 0/00

1/10 0/01

(a) (b)B. Daca transmiterea datelor se face pe coloane (specific codurilor balansate),

reteaua codului cadru este cea prezentata ın Figura 19.1, pozitia (a); din ea se obtinereteaua (b) a codului balansat.

Exemplul 19.8 Sa construim reteaua de (de)codificare pentru (16, 9) - codul bal-ansat definit ın Exemplul 19.6. Conform procedurii, sunt necesare 8 subretele, cate

Page 572: Criptografie complet

224 PRELEGEREA 19. ALTE REPREZENTARI DE CODURI - BLOCFigura 19.1:

t

t

t

t

t

tt

6-

-

? -

-

-

?

-

-

6

-

6

00/0101 ε/0101

01/0110 ε/0110

10/1001 ε/1010

11/1010 ε/1010

(a)

t

t

t

t

t

t

t

t

t

t

6- -

?

- -

- -

- -

? - -

6

- -

- -

- -

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 fiecare linie din tabelul de codificare. Deoarece cuvintele - cod sunt cititepe coloane, fiecare subretea are cate 5 coloane si 4 stari.

Pentru a7 = a8 = a9 = 0 (prima linie din tabel) subreteaua construita plecınd dela (16, 6) - codul cadru din Exemplul 19.6 are structura:

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

00

00 00 00

00

01 01 01

10 10 10

11 11 11

¡¡

¡¡

¡¡

¡¡µ

³³³³³³³³1

PPPPPPPq@

@@

@@

@@@R

-Z

ZZ

ZZ

ZZ~

JJ

JJ

JJ

JJ

JJJ

AAAAAAAAAAAAAAAAU

½½

½½

½½½>

-Z

ZZ

ZZ

ZZ~

SS

SS

SS

SS

SSw

¶¶

¶¶

¶¶

¶¶

¶¶¶7

½½

½½

½½½>

-Z

ZZ

ZZ

ZZ~

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¶¶

¶¶

¶¶

¶¶

¶¶¶7

½½

½½

½½

½½>

-

-

-

-

-

ZZ

ZZ

ZZ

Z~

SS

SS

SS

SS

SSw

AAAAAAAAAAAAAAAAU

´´

´´

´´

´3

QQ

QQ

QQQs

SS

SS

SS

SS

SSw

¶¶

¶¶

¶¶

¶¶

¶¶7

½½

½½

½½

½>

ZZ

ZZ

ZZZ~¢

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢

¶¶

¶¶

¶¶

¶¶

¶¶¶7

´´

´´

´´

´3

@@

@@

@@

@@R

PPPPPPPq

³³³³³³³1

¡¡

¡¡

¡¡

¡¡µ

Page 573: Criptografie complet

19.2. CODURI BALANSATE 225

unde marcajul arcelor este dat de tabela:

p δp/λp 00 01 10 110 00 00/0101 01/0110 10/1001 11/10101 00 00/0101 01/0110 10/1001 11/1010

01 01/0110 00/0101 11/1010 10/100110 10/1001 11/1010 00/0101 01/011011 11/1010 10/1001 00/0101 00/0101

2 00 00/0101 01/0110 10/1001 11/101001 01/0110 00/0101 11/1010 10/100110 10/1001 11/1010 00/0101 01/011011 11/1010 10/1001 01/0110 00/0101

3 00 ε/0101 − − −01 ε/0110 − − −10 ε/1001 − − −11 ε/1010 − − −

Pentru a7 = a8 = 0, a9 = 1 (a doua linie din tabel) se construieste aceeasi subretea,ın care valorile functiei λ3 din marcajul arcelor ultimului nivel se complementeaza.Prin compunerea acestor doua subretele se obtine (16, 7) - codul balansat cu d = 4.

Celelalte 6 subretele se definesc similar. Reteaua finala a (16, 9) - codului balansatcu d = 4 obtinuta din compunerea lor va avea 32 stari si 5 nivele.

Page 574: Criptografie complet

226 PRELEGEREA 19. ALTE REPREZENTARI DE CODURI - BLOC

19.3 Exercitii

19.1 Construiti un (3, 2)(3, 2) – RLL cod tablou si calculati parametrii sai (d0, k0).

19.2 Construiti un (12, 8) - cod GAC cu restrictii RLL si calculati pentru el(d0, k0).

19.3 Construiti un GAC cod balansat pentru k = 10.

19.4 Aceeasi problema pentru k = 13.

19.5 Definiti un vector de modificare care transforma codul tablou (3, 2)(3, 2) ıntr-un cod RLL. Construiti reteaua acesui cod.

19.6 Aceeasi problema pentru (12, 8) - codul GAC cu d = 3.

19.7 Construiti un (12, 5) cod balansat cu d = 4. Trasati reteaua acestui cod.

Page 575: Criptografie complet

Bibliografie

[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 dedoctorat), PARIS VI, 1990;

[4] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[5] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[6] D.G. Hoffman, 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;

227

Page 576: Criptografie complet

Prelegerea 20

Alte rezultate din teoria codurilor

20.1 Coduri aritmetice

Constructiile oferite de teoria codurilor pot fi utilizate si ın alte domenii decat ıncele clasice, de transmitere si receptie corecta a mesajelor. O aplicatie legata deoperatiile aritmetice pe calculator este prezentata de van Lindt ın [11].

Definitia 20.1 Fie r ≥ 2 un numar ıntreg fixat. r - ponderea aritmeticaunui numarıntreg x este definita prin

w(r)(x) =

{0 daca x = 0t altfel

unde t = min

{p

∣∣∣∣∣p∑

i=1

ai · rn(i) = x, |ai| < r, n(i) ≥ 0

}.

In practica se folosesc des cazurile r = 2, 8, 10, 16.

Exemplul 20.1w(10)(5) = 1,w(10)(199) = 2 (deoarece 199 = 200− 1 = 2 · 102 − 1 · 100),w(2)(−9) = 2,w(2)(246) = 3 (deoarece 246 = 256− 8− 2 = 28 − 23 − 21).

Propozitia 20.11. w(r)(−x) = w(r)(x);2. w(r)(x + y) ≤ w(r)(x) + w(r)(y).

Demonstratie: Este lasata ca exercitiu. 2

In cele ce urmeaza vom considera r ca o valoare fixata. Se numeste distantaaritmetica valoarea

d(x, y) = w(r)(x− y).

Propozitia 20.21. d este o distanta;2. d este invarianta la translatare.3. d(x, y) ≤ dH(x, y) unde dH este distanta Hamming a doua secvente numericereprezentate ın baza r.

227

Page 577: Criptografie complet

228 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Demonstratie: (1) Faptul ca d este o distanta se verifica imediat din Definitia 20.1si Propozitia 20.1.

(2) Deoarece d(x + z, y + z) = w(r)(x + z− y− z) = w(r)(x− y) = d(x, y) rezultaca distanta aritmetica este invarianta la translatare (proprietate pe care distantaHamming nu o are).

(3) Este lasat ca exercitiu. Precizam ca cele doua numere reprezentate ın bazar pot fi aduse la un numar egal de cifre completand eventual numarul mai scurt cu0-uri (nesemnificative) ın fata. 2

Definitia 20.2 Fie a, b numere ıntregi pozitive. Se numeste AN - cod multimeafinita Ca,b = {a · n|0 ≤ n < b}.Ideea folosirii AN - codurilor ın aritmetica calculatorului este urmatoa-rea: sa pre-supunem ca trebuie calculata suma n1 + n2 (n1, n2 pozitive si mici comparativ cub); fie S suma lor. Cele doua numere se codifica ın a · n1, a · n2 ∈ Ca,b. DacaS ≡ 0 (mod a) atunci suma a fost efectuata corect si ea este S div a. Dacanu, ınseamna ca au aparut erori de calcul si se ia ca rezultat acel numar n3 cuproprietatea ca d(S, an3) este minima.

Pentru a corecta orice combinatie de maxim t erori este necesar ca C sa aibadistanta minima ≥ 2t + 1, deci orice numar din C are ponderea minim 2t + 1.

Teorema 20.1 Fie a un numar ıntreg fixat si s = min{w(r)(a · n)|n 6= 0}. Atuncis ≤ 2.

Demonstratie: Cazurile a = 0 si a = 1 sunt banale. Pentru a < 0 se va lucra cu −a.Deci ramane de studiat numai cazul a > 1. Vom folosi Teorema lui Fermat:

Daca (a, r) = 1 atunci rφ(a) ≡ 1 (mod a).

(reamintim, φ(a) este simbolul Euler).Deci a | rφ(a) − 1. Cum w(r)(r

φ(a) − 1) = 2, afirmatia este demonstrata pentrucazul cand a si r sunt prime ıntre ele.

Sa presupunem acum ca (a, r) = d > 1. Vom avea a = a1d, r = r1d cu (a1, r1) =1. Atunci (notand n = φ(a1)), putem scrie rn−1 = dnrn

1 −1 = dn(rn1 −1)+(dn−1).

Se stie ca a1 | rn1 − 1. Daca (a1, d) = 1 atunci a1 | dn − 1, deci a1 | rn − 1, sau

a | d · rn − d si cum d < r, teorema este demonstrata.Daca (a1, d) > 1, rationamentul se reia si el se va termina dupa un numar finit

de pasi (deoarece a1 < a, d < r). 2

20.1.1 AN - coduri ciclice

Rezultatul mentionat ın Teorema 20.1 conduce la o dificultate de alegere. O ar-itmetica a calculatorului eficienta recomanda alegerea unei valori mari pentru b.Pe de-alta parte Teorema 20.1 arata ca ın acest caz riscul de a avea r - pondereaaritmetica minima cel mult 2 (deci de a nu putea corecta nici o eroare) este mare.

Problema se elimina daca vom considera codurile AN modulare. Fie a, b numereprime si m = a · b. Definim Ca,b ca subgrup al lui Zm. Aceasta conduce la oalta definitie pentru distanta dintre doua numere. Pentru determinarea ei, sa luam

Page 578: Criptografie complet

20.1. CODURI ARITMETICE 229

elementele lui Zm ca varfuri ıntr-un graf Γm; a, b ∈ Zm sunt legate printr-un arcdaca si numai daca

∃ c, j (0 < c < r, j ≥ 0) a− b ≡ ±c · rj (mod m).

Definitia 20.3 Distanta modulara dm(x, y) dintre doua numere a, b ∈ Zm estelungimea drumului minim dintre a si b ın graful Γm.

Ponderea modulara a lui a ∈ Zm este wm(a) = dm(a, 0).

Propozitia 20.3 Pentru a ∈ Zm

wm(a) = min{w(r)(x)| x ∈ Z, y ≡ x (mod m)}.

Demonstratie: Rezulta imediat din Definitia 20.3. 2

Exemplul 20.2 Sa consideram r = 2, a = 2, b = 3 deci m = 6. Graful Γ6 va fij

j j j j

j

»»»»»»»»l

ll

PPPPPPPPXXXXXXXX

QQQ

»»»»»»»»

0

1 3 2 4

5deci tabelul distantelor ıntre elementele lui Z6 este:

d 0 1 2 3 4 50 0 1 1 2 1 21 1 0 2 1 2 12 1 2 0 1 2 23 2 1 1 0 2 14 1 2 2 2 0 15 2 1 2 1 1 0

De remarcat ca alegerea lui m trebuie facuta cu grija. De exemplu, daca se iar = 3, m = 35 vom avea d35(0, 12) = 1 deoarece 12 = 311 (mod 35). Practic ınsa,lucrand cu numere din Z35, nu vom putea corecta erori pe pozitia corespunzatoarelui 311.

De aceea, aritmetica pe calculator considera doar situatia m = rn − 1 (n ≥ 2)care elimina astfel de situatii. Orice numar ıntreg nenul x admite o reprezentareunica

x ≡n−1∑

i=0

ci · ri mod (rn − 1),

cu 0 ≤ ci < r nu toti nuli.

Deci Zrn−1 poate fi interpretat ca fiind multimea GF (rn) \ {0} cuvintelor nenulede lungime n peste alfabetul {0, 1, . . . , r − 1}.

Pentru a · b = m = rn − 1 distanta modulara devine distanta obisnuita ın Zm siCa,b are un comportament similar unui cod liniar.

Definitia 20.4 Un AN - cod ciclic de lungime n si baza r este un subgrup multi-plicativ C ⊆ Zrn−1.

Page 579: Criptografie complet

230 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Evident, un astfel de subgrup este ideal principal ın inelul Zrn−1, deci exista a, b ∈ Zastfel ıncat a · b = rn − 1 si C = Ca,b, adica:

C = {a · k|k ∈ Z, 0 ≤ k < b}.Daca x ∈ Ca,b, atunci r ·x (mod rn−1) este tot ın Ca,b deoarece acesta este grup

multiplicativ; pe de-alta parte noul numar este o permutare ciclica a lui x (ambelefiind scrise ın baza r). Numarul b poate fi asimilat polinomului de control al unuicod ciclic.

Exemplul 20.3 Fie r = 2, n = 11. Atunci m = 211 − 1 = 2047. Sa considerama = 23, b = 89. Se obtine AN - codul ciclic format din 89 multipli ai lui 23 (pana la2047). Exista 22 modalitati de a semnala o eroare, fiecare din ele corespunzand unuinumar de forma ±2j (0 ≤ j ≤ 11). Acestea sunt exact toate numerele din Z23 \ {0}.Deci orice numar ıntreg din intervalul [0, 2047] are distanta modulara 0 sau 1 deexact un cuvant - cod. Acest AN - cod ciclic este perfect si poate fi considerat ogeneralizare a codurilor Hamming.

In [11] se face afirmatia ca nu exista AN - coduri perfecte corectoare de o eroarepentru r = 10 sau r = 2k, (k > 1).

20.1.2 AN - coduri corectoare de mai multe erori

Pentru a construi AN - coduri capabile sa corecteze erori multiple, va trebui definitao modalitate mai simpla de determinare a ponderii aritmetice sau modulare a nu-merelor ıntregi.

Conform Definitiei 20.1, orice numar ıntreg x se poate scrie sub forma

x =

w(r)∑

i=1

ai · rn(i)

cu ai, n(i) numere ıntregi, |ai| < r, n(i) ≥ 0 (0 ≤ i ≤ w(r)). Aceasta reprezentareare defectul ca nu este unica. De exemplu, pentru r = 10, numarul 99 se poatereprezenta ın doua moduri diferite:

99 = 9 · 10 + 9 · 100, 99 = 1 · 102 − 1 · 100.Se poate obtine – prin impunerea de restrictii asupra coeficientilor – o reprezenta-

re unica a numerelor ıntregi.

Definitia 20.5 Fie b, c ∈ Z , |b| < r, |c| < r. Perechea (b, c) se numeste admisibiladaca este adevarata una din relatiile:

(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 relatiei de admisibilitate.

Exemplul 20.4 Pentru r = 2 este posibil numai cazul (1). Deci o reprezentare

x =∞∑

i=0

ci · 2i ın care toate perechile (ci+1, ci) sunt admisibile, nu are doi coeficienti

consecutivi nenuli.

Page 580: Criptografie complet

20.1. CODURI ARITMETICE 231

Definitia 20.6 O reprezentare x =∞∑

i=0

ciri cu ci ∈ Z, |ci| < r si ∃nx cu ci = 0 ∀i >

nx se numeste NAF (non-adiacent form) daca pentru orice i ≥ 0, perechea (ci+1, ci)este admisibila.

Exemplul 20.5 Pentru r = 10 putem scrie:96 = −4 · 100 + 0 · 101 + 1 · 102 (cazul (1)),11 = 1 · 100 + 1 · 101 (cazul (2)),38 = −2 · 100 + 4 · 101 (cazul (3)).De remarcat ca reprezentarea lui 96 = 6 · 100 + 9 · 101 nu este ın forma NAF

deoarece perechea (9, 6) nu este admisibila. La fel pentru reprezentarile celorlaltornumere.

Teorema 20.2 Orice numar ıntreg x are o reprezentare NAF unica ın baza r.Daca aceasta este

x =∞∑

i=0

ci · ri,

atunci w(r)(x) = card ({i|i ≥ 0, ci 6= 0}).

Demonstratie: Fie∞∑

i=0

bi · ri, (|bi| < r) o reprezentare a lui x ın baza r, si i cel

mai mic numar cu proprietatea ca perechea (bi+1, bi) nu este admisibila. Putempresupune ca bi > 0 (altfel se va lucra cu −x). Vom ınlocui bi cu b′i = bi − r si bi+1

cu b′i+1 = bi+1 + 1 (daca bi+1 + 1 = r, atunci b′i+1 = 0 si facem deplasarea obisnuitade la adunare).

Daca bi+1 > 0, atunci avem sau b′i+1 = 0, sau b′i · b′i+1 < 0 si b′i+1 = bi+1 + 1 >r − bi = |b′i| (deoarece perechea (bi+1, bi) nu era admisibila).

Daca bi+1 < 0, atunci sau b′i+1 = 0, sau b′i · b′i+1 > 0 si |b′i + b′i+| = r− bi− bi+1 < rdeoarece −bi+1 ≤ bi (perechea (bi+1, bi) nu era admisibila).

Deci, (b′i+1, b′i) este admisibila, si se verifica similar daca (b′i, bi−1) este admisibila.

Procedeul continua pana se ajunge la i = 0.Sa aratam acum ca reprezentarea NAF este unica. Presupunem ca exista x ∈ Z

cu doua astfel de reprezentari:

x =∞∑

i=0

ci · ri =∞∑

i=0

c′i · ri.

Consideram – fara a micsora generalitatea – ca c0 6= c′0 si c0 > 0; deci c′0 = c0−r.Atunci pentru c′1 sunt posibile trei valori: c1 + 1, c1 + 1± r. Daca c′1 = c1 + 1− r,atunci c1 ≥ 0, deci c0 + c1 ≤ r− 1. Deoarece c′0 · c′1 > 0, avem −c′0− c′1 < r, de under − c0 + r − c1 − 1 < r, deci c0 + c1 > r − 1, contradictie. Celelalte doua cazuri setrateaza similar. 2

Reprezentarea NAF a unui numar x se poate afla 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

ai · ri, x =∞∑

i=0

bi · ri,

unde ai, bi ∈ {0, 1, . . . , r − 1}. Atunci reprezentarea NAF pentru x este

x =∞∑

i=0

(ai+1 − bi+1) · ri.

Page 581: Criptografie complet

232 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Demonstratie: Stim ca pentru doua numere naturale nenule a, r, [a/r] reprezintacatul ımpartirii celor doua numere, iar a− [a/r] · r - restul.

Din reprezentarea din enunt, rezulta ca fiecare coeficient ai se determina prinadunarea coeficientilor corespunzatori ai numerelor x si r · x, scrise ın baza r. Sadefinim secventa numerica αi, i ≥ 0 astfel:

α0 = 0, αi =

[αi−1 + bi−1 + bi

r

].

Atunci, conform observatiei de la ınceputul demonstratiei, ai = αi−1 + bi−1 + bi−αi · r. Daca notam ci := ai − bi, avem ci = αi−1 + bi−1 − αi · r.

Mai ramane de verificat faptul ca (ci+1, ci) este o pereche admisibila. Relatia|ci+1 + ci| < r rezulta imediat din definitia lui αi. Sa presupunem ci > 0, ci+1 < 0;atunci αi = 0. Vom avea ci = αi−1 + bi−1, ci+1 = bi − r si conditia |ci+1| > |ci| esteechivalenta cu αi−1 + bi−1 + bi < 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 · 100 + 9 · 101 + 0 · 102 + 0 · 103 + . . .980 + 98 = 1078 = 8 · 100 + 7 · 101 + 0 · 102 + 1 · 103

Deci, 98 = (7− 9) · 100 + (0− 0) · 101 + (1− 0) · 102 = −2 + 1 · 102.

Similar situatiei din paragraful anterior, sa consideram acum cazul reprezentariimodulare. Vom lua deci m = rn − 1, (n ≥ 2).

Definitia 20.7 O reprezentare

x ≡n−1∑

i=0

ci · ri (mod m)

cu ci ∈ Z, |ci| < r se numeste CNAF (cyclic NAF ) pentru x daca ∀i (0 ≤ i ≤n− 1), (ci+1, ci) este admisibila (se considera cn = c0).

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 6≡ x (mod m),cand sunt posibile doua reprezentari.

Daca x ≡n−1∑

i=0

ci · ri (mod m), atunci

wm(x) = card({i|0 ≤ i < n, ci 6= 0}).

Demonstratie: Constructia este identica cu cea din demonstratia Teoremei 20.3.Unicitatea se arata similar cu cea din demonstratia Teoremei 20.2. Singura exceptieeste cazul bi+1 ≡ bi (mod m). In acest caz sunt posibile doua reprezentari:

x ≡ b0 + b1 · r + . . . bn−1 · rn−1 si x ≡ −b1 − b2 · r − . . .− b0 · rn−1,ambele modulo m. 2

Page 582: Criptografie complet

20.2. TURBO - CODURI 233

20.1.3 Coduri Mandelbaum - Barrows

O clasa de AN coduri a fost definita de Mandelbaum si Barrows, generalizata ulteriorde van Lindt ([11]).

Initial este necesar un rezultat referitor la ponderea modulara ın AN coduriciclice, a carui demonstrare se afla ın [11], pag. 127− 128:

Teorema 20.5 Fie C ⊂ Z/(rn − 1) un AN cod ciclic cu generator a si b = (rn −1)/a = card(C), cu proprietatea ca ∀x ∈ C are o reprezentare CNAF unica. Atunci

x∈C

wm(x) = n

([r · br + 1

]−

[b

r + 1

]).

Teorema 20.6 Fie b un numar prim care nu divide r, cu proprietatea ca grupulmultiplicativ Zb este generat de r si −1. Fie n un numar ıntreg pozitiv astfel carn ≡ 1 (mod b) si a = (rn − 1)/b. Atunci codul C ⊂ Z/(rn − 1) generat de a esteun cod echidistant cu distanta

n

b− 1

([r · br + 1

]−

[b

r + 1

]).

Demonstratie: Fie x ∈ C \{0}. Atunci x = a ·n (mod rn−1) cu n 6= 0 (mod b). Dinipoteza rezulta ca exista j ıntreg cu n ± rj (mod b). Deci wm(x) = wm(±rj · a) =wm(a). Aceasta arata ca C este echidistant. Valoarea distantei rezulta din Teorema20.5. 2

20.2 Turbo - coduri

In ultimii ani, viteza tot mai mare de transmisie a datelor - aproape de capacitateamaxima a canalelor de comunicatie – a condus la modalitati noi de codificare. Turbocodurile sunt prezentate prima data ın 1993 de Berrou, Glavier si Thitimajshimasi combina sub forma de retea (minim) doua coduri convolutionale. Modalitateade decodificare este total deosebita de algoritmii cunoscuti pana acum (se folosesccapacitatile statistice de performanta ale canalelor de transmisie). Ele asigura orata de corectare a erorilor mult mai ridicata decat la codurile clasice; de aceeaturbo - codurile asigura transmisiile de pe statiile lansate dupa anul 1993, precumsi 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 convolutionale (care – fara a micsora generali-

tatea – au fost considerate identice), separate printr-un bloc PN de permutare de Ncaractere (N fiind o constanta fixata, dependenta de structura canalului de trans-misie). Mesajul de informatie este spart ın blocuri u ∈ Zq de lungime N ; dacase ignora mecanismul de relaxare R, rata codificatorului este 1/3 (N simboluri deinformatie se transforma ın cuvinte - cod de lungime 3N). Cele 3 iesiri (xs,x1p,x2p)sunt apoi transmise pe coloana, ca un cod GAC.

Page 583: Criptografie complet

234 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILORTabelul 20.1: Turbo - codificator standard

PN

g1(X)g0(X)

g1(X)g0(X)

R

-s

?

-s -

? - -

-

u = xs

u′

x1p

x2p

x1p,x2p

Codificatorul

Pentru codul convolutional, matricea generatoare poate fi considerata (ıntr-o vari-anta simplificata, bazata pe structura de retea a mesajelor) G = (g0(X) g1(X)).Codificatorul unui turbo - cod va folosi ca matrice generatoare o forma echivalentarecursiva:

GTR =

(1

g1(X)

g0(X)

).

Din acest motiv, un codificator convolutional pentru turbo - coduri este numit Cod-ificator Sistematic Recursiv (RSE).

Un mesaj de informatie u(X), este codificat de codul convolutional ın u(X)G =(u(X)g0(X) u(X)g1((X)). RSE va realiza aceeasi iesire pentru mesajul u′(X) =u(X)g0(X) (se verifica imediat relatia u(X)g0(X)GR = u(X)G). Vom numi totusi”cuvant - cod” perechea de polinoame u(X)G (desi se mai efectueaza o operatie deınmultire pentru obtinerea mesajului u′(X)).

Se observa ca pentru un RSE, cuvantul cod are pondere finita daca si numaidaca mesajul de intrare se divide cu g0(X).

Corolarul 20.1 Un mesaj sursa u′ cu w(u′) = 1 se codifica ıntr-un cuvant - codde pondere infinita.

Demonstratie: Evident, deoarece u′(X) = Xp nu se divide cu g0(X). 2

Corolarul 20.2 Pentru orice polinom netrivial g0(X) ∈ Zq[X] exista o infinitatede mesaje sursa de pondere 2 care se codifica ın cuvinte - cod de pondere finita.

Demonstratie: Pentru g0(X) ∈ Zq[X], g0(X) 6= Xp, exista un n minim cu propri-etatea g0(X)|Xn− 1 (n este lungimea secventei pseudo-aleatoare generata de g0(X)- a se vedea Relatii de recurenta liniara, Prelegerea 8).

Orice secventa u′ de forma u′(X) = aX i(Xn − 1), a ∈ Zq \ {0} are pondere 2si este divizibila cu g0(X), deci codificarea prin RSE va genera un polinom cu unnumar finit de termeni. 2

Exemplul 20.7 Fie g0(X) = 1 + X + X4, g1(X) = 1 + X2 + X3 + X4 polinoamedin Z2[X]. In mod uzual se foloseste notatia ın octal; deci, cum g0 = 110012 =318, g1 = 101112 = 278, vom avea (g0 g1) = (31, 27).

Page 584: Criptografie complet

20.2. TURBO - CODURI 235

Matricea generatoare este

GR =

(1

1 + X2 + X3 + X4

1 + X + X4

),

iar un circuit liniar care realizeaza acest RSE are forma:

j

j

- - - - -6¾? -

6¾?

6-

? - ?¾?

?©©©©©©¼

? -

s s s s s s+

+

uk

uk

pk

(s-a notat cu uk simbolul de informatie curent, iar cu pk simbolul de control core-spunzator).

Cum g0(X) este primitiv, lungimea secventelor este 24 − 1 = 15. De exemplu,mesajul sursa u(X) = 1+X15 se codifica ın (1+X15, 1+X +X2 +X3 +X5 +X7 +X8 + X11) = (1000000000000001, 1111010110010000).u(X) = X7(1 + X15) va genera acelasi cuvant - cod, cu o ıntarziere de sapte tacti.

Permutatorul

PN este un bloc de permutare. Cele N caractere care constituie intrarea ın primulcodificator RSE sunt rearanjate ınainte de a intra ın al doilea codificator. Dinconsiderente practice este preferabil ca permutarea folosita sa nu pastreze nici oordine anterioara a simbolurilor (desi acest lucru este uneori dificil, mai ales pentrucuvinte de pondere mica). De asemenea, N trebuie sa fie suficient de mare (ınpractica se foloseste N ≥ 1000). Aceste doua cerinte – uzuale ın criptografie – suntnecesare ın obtinerea de performante ridicate la decodificare.

Mecanismul de relaxare

Daca pentru transmiterea de imagini din spatiu sunt folosite coduri cu rate micide informatie (fiecarui bit ıi corespund cel putin 3 caractere cod), ın alte situatii(comunicari prin satelit de exemplu) sunt preferabile rate mari (cel putin 1/2).Rolul mecanismului de relaxare (vezi Capitolul 2) este de a reduce periodic anumitecaractere pentru a scurta lungimea cuvintelor - cod. De obicei se elimina biti decontrol; astfel, pentru a obtine o rata de informatie 1/2 se pot elimina toti bitii decontrol pari de la ınceputul codului si toti bitii de control impari de la sfarsit.

20.2.2 Decodificarea turbo - codurilor

Din constructie rezulta ca un turbo codificator este liniar, deoarece toate compo-nentele sale sunt liniare. Codificarile RSE sunt implementate prin circuite liniare,permutatorul este liniar deoarece poate fi 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 pozitii. Importanta liniaritatii consta ın fap-tul ca se poate lua ca referinta cuvantul - cod nul. De asemenea, toate constructiile

Page 585: Criptografie complet

236 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

le facem pentru cazul binar, cu simbolurile ±1. Decodificatorul va lucra dupa prin-cipiul obisnuit al decodificarii cele mai probabile.

Din pacate, utilizarea algoritmului Viterbi nu este posibila din cauza operatieide permutare folosita ın decodificare. Totusi, pentru subsecven-te stricte, un astfelde algoritm poate da rezultate.

Primul algoritm de decodificare pentru turbo - coduri a fost propus de Berrouın 1993 ([12]), bazat pe ideile din [2]. Numit BCJR, el foloseste o decodificarecaracter-cu-caracter (spre deosebire de Viterbi care decodifica pe secvente bloc decate n caractere).

Vom folosi urmatoarele notatii:

• Ei - notarea codificatorului RSE i (1 ≤ i ≤ 2);

• Di - notarea decodificatorului i (1 ≤ i ≤ 2);

• m - capacitatea de memorie (buffer) a codificatorului;

• S - multimea celor 2m stari ale codificatorului;

• xs = xs1x

s2 . . . xs

N = u1u2 . . . uN secventa de informatie care se codifica;

• xp = xp1x

p2 . . . xp

N cuvantul de control generat de codificator;

• yk = ysky

pk o receptie (posibil perturbata) a lui xs

kxpk;

• yba = yaya+1 . . . yb;

• yN1 = y1y2 . . . yN cuvantul receptionat.

Algoritmul BCJR (initial si modificat)

O prima versiune a algoritmului se bazeaza pe decodificarea cea mai probabila apos-teriori (MAP - maximul aposteriori). Se realizeaza decodificarea

uk =

{+1 daca P (uk = +1|y) > P (uk = −1|y)−1 altfel.

Formal, uk = sign[L(uk)], unde L(uk) este logaritmul raportului probabilitatilorde potrivire aposteriori, definit prin relatia

L(uk) = log

(P (uk = +1|y)

P (uk = −1|y)

).

Daca se tine cont de faptul ca se codifica ın retea, aceasta se scrie:

L(uk) = log

S+

p(sk−1 = s′, sk = s,y)/p(y)

S−p(sk−1 = s′, sk = s,y)/p(y)

(1)

undesk ∈ S este starea codificatorului la momentul k,S+ este multimea perechilor (ordonate) (s′, s) corespunzatoare tuturor starilor

de tranzitie (sk−1 = s′) → (sk = s) generate de uk = +1,

Page 586: Criptografie complet

20.2. TURBO - CODURI 237

S− este definita similar pentru uk = −1.Este posibil sa simplificam cu p(y) ın (1); deci este necesara doar o formula

pentru calculul lui p(s′, s,y). In [2], este construita o varianta sub formap(s′, s,y) = αk−1(s

′) · γk(s′, s) · βk(s) (2)

unde:

• γk(s′, s) = p(sk = s, yk|sk−1 = s′);

• αk(s) = p(sk = s, yk1) este calculat recursiv cu formula

αk(s) =∑

s′∈S

αk−1(s′) · γk(s

′, s)

cu conditiile initiale α0(0) = 1, α0(s 6= 0) = 0

(codificatorul pleaca din starea 0).

• βk(s) = p(yNk+1|sk = s) are formula recursiva de calcul

βk−1(s′) =

s∈S

βk(s) · γk(s′, s)

si conditiile βN(0) = 1, βN(s 6= 0) = 0

(dupa N biti de intrare codificatorul trebuie sa ajunga la starea 0; restrictiase realizeaza alegand corespunzator ultimii m biti, numiti biti de ıncheiere).

Aplicarea acestei variante de decodificare la turbo - coduri (reamintim, algoritmulBCJR initial a fost definit ın 1974) are un neajuns: simplificarea cu p(y) conduce laalgoritmi numerici instabili. De aceea, Berrou ([12]) face o modificare a algoritmului,ın felul urmator:

Se definesc probabilitatile (modificate)αk(s) = αk(s)/p(yk

1), βk(s) = βk(s)/p(yNk+1|yN

1 ).Prin ımpartirea relatiei (2) cu p(y)/p(yk) = p(yk−1

1 ) · p(yNk+1|yk

1) se ajunge la

p(s′, s|y) · p(yk) = αk−1(s′) · γk(s

′, s) · βk(s).Pentru ca p(yk

1) =∑

s∈S

αk(s), valorile αk(s) se pot determina din αk(s) pe baza

formulei

αk(s) =αk(s)∑

s∈S

αk(s),

sau – folosind definitia recursiva a lui αk(s):

αk(s) =

s′∈S

αk−1(s′) · γk(s

′, s)∑

s∈S

s′∈S

αk−1(s′) · γk(s

′, s)=

s′∈S

αk−1(s′) · γk(s

′, s)∑

s∈S

s′∈S

αk−1(s′) · γk(s

′, s)

ultimul rezultat fiind obtinut prin ımpartirea numaratorului si numitorului cup(yk−1

1 ).Definirea recursiva a lui βk(s) se obtine plecand de la

p(yNk |yk−1

1 ) = p(yk1)·

p(yNk+1|yk

1)

p(yk−11

=∑

s∈S

s′∈S

αk−1(s′)·γk(s

′, s)·p(yNk+1|yk

1)

p(yk−11 )

=∑

s∈S

s′∈S

αk−1(s′)·

γk(s′, s) · p(yN

k+1|yk1)

si folosind definitia recursiva a lui βk−1(s), se ajunge la relatia

Page 587: Criptografie complet

238 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

βk−1(s′) =

s∈S

βk(s) · γk(s′, s)

s∈S

s′∈S

αk−1(s′) · γk(s

′, s).

In final, algoritmul BCJR modificat va folosi valoarea L(uk) data de relatia

L(uk) = log

S+

αk−1(s′) · γk(s

′, s) · βk(s)

S−αk−1(s

′) · γk(s′, s) · βk(s)

. (3)

Conditiile la limita pentru αk(s) si βk(s) sunt cele de la αk(s) respectiv βk(s).

O alta versiune a algoritmului foloseste informatia apriori. Pentru acesta avem

L(uk) = log

(P (y|uk = +1)

P (y|uk = −1)

)+ log

(P (uk = +1)

P (uk = −1)

).

Deoarece ın mod normal P (uk = +1) = P (uk = −1), al doilea termen al sumeieste zero ın decodificatoarele uzuale. Pentru un turbo - decodor care lucreaza re-cursiv, D1 primeste informatie suplimentara de la D2, care serveste ca informatieapriori. Similar, D2 primeste de la D1 informatie suplimentara, s.a.m.d. Ideeaconsta ın faptul ca D2 poate da lui D1 informatii despre uk la care acesta nu areacces (de exemplu caracterele de control generate de E2); acelasi lucru ıl realizeazaD1 pentru D2.

Un circuit de decodificare bazat pe algoritmul BCJR este:

D1 P−1N

P−1N

P−1N

D2-- - - -

6¾¾

?

? -

s

-6

-

-

6

y1p

ys

y2p

Le12

Le21

S-a notat cu P−1N inversa matricii de permutare PN din circuitul de codificare. Le

12

este informatia suplimentara transmisa de la D1 la D2, iar Le21 este cea transmisa de

la D2 la D1. Deciziile finale de decodificare pot veni atat de la D1 cat si de la D2.Mai ramane de vazut cum se poate obtine aceasta informatie suplimentara care

circula ıntre cei doi decodificatori recursivi.Definitia lui γk(s

′, s) se poate rescrieγk(s

′, s) = P (s|s′)p(yk|s′, s) = P (uk) · p(yk|uk)unde evenimentul uk corespunde tranzitiei s′ → s. Daca se noteaza:

Le(uk) = log

(P (uk = +1)

P (uk = −1)

),

P+ = P (uk = +1), P− = P (uk = −1), avem

√P−/P+

1 + P−/P+

·

√P+/P− = P+ daca uk = +1,

√P−/P+

1 + P−/P+

·

√P−/P+ = P− daca uk = −1.

In aceasta situatie se obtine

P (uk) =

(exp[−Le(uk)/2]

1 + exp[−Le(uk)]

)· exp[uk ·Le(uk)/2] = Ak · exp[uk ·Le(uk)/2], si (ream-

Page 588: Criptografie complet

20.2. TURBO - CODURI 239

intim, yk = ysky

pk, xk = xs

kxpk = ukx

pk)

p(yk|uk) ∝ exp

[−(ys

k − uk)2

2σ2− (yp

k − xpk)

2

2σ2

]=

= exp

[−(ys

k)2 + u2

k + (ypk)

2 + (xpk)

2

2σ2

]· exp

[uk · ys

k + xpk · yp

k

σ2

]=

= Bk · exp

[ys

k · uk + ypk · xp

k

σ2

]

deci

γk(s′, s) ∝ Ak ·Bk · exp [uk · Le(uk)/2] · exp

[uk · ys

k + xpk · yp

k

σ2

](4)

Deoarece γk(s′, s) apare ın (3) la numarator (unde uk = +1) si numitor (unde

uk = −1), factorul Ak · Bk se va reduce fiind independent de uk. De asemenea,particularitatile de canal la transmisia lui ±1 dau relatia σ2 = N0/(2Ec) unde Ec

este energia de canal per bit. Din (4) se obtine

γk(s′, s) ∼ exp [uk · (Le(uk) + Lc · ys

k)/2 + Lc · ypk · xp

k/2] == exp [uk · (Le(uk) + Lc · ys

k)/2] · γek(s

′, s),

unde Lc =4Ec

N0

si γek(s

′, s) = exp [Lc · ypk · xp

k/2].

Combinand aceasta relatie cu (3) se ajunge la

L(uk) = log

S+

αk−1(s′) · γe

k(s′, s) · βk(s) · Ck

S−αk−1(s

′) · γek(s

′, s) · βk(s) · Ck

=

= Lcysk + Le(uk) + log

S+

αk−1(s′) · γe

k(s′, s) · βk(s)

S−αk−1(s

′) · γek(s

′, s) · βk(s)

(5)

unde s-a notat Ck = exp [uk · (Le(uk) + Lc · ysk)/2].

A doua egalitate rezulta deoarece Ck(uk = +1) si Ck(uk = −1) pot fi scoase cafactor. Primul termen al sumei (5) este numit valoare de canal, al doilea reprezintainformatia apriori despre uk (furnizata de un decodificator anterior), iar al treileatermen contine informatia suplimentara care se trimite la decodificatorul urmator.Deci – de exemplu – la orice iteratie, D1 calculeaza

L1(uk) = Lc · ysk + Le

21(uk) + Le12(uk)

unde Le21(uk) este informatia suplimentara venita de la D2 si Le

12(uk) este al treileatermen din (5), folosit ca o informatie suplimentara trecuta de la D1 spre D2.

Algoritmul BCJR se poate formaliza, ın unele ipoteze implicite. Astfel:

- se presupune ca cei doi codificatori lucreaza corect, adica ultimii m biti dinmesajul de informatie de lungime N se codifica astfel ca la sfarsit E1 sa ajunga lastarea zero.

- decodificatorii detin toata informatia referitoare la reteaua de codificare; ast-fel, ei au tabele complete cu simbolurile de informatie si de control pentru toatetranzitiile de stari s′ → s, matricile de permutare si inversele lor.

Page 589: Criptografie complet

240 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Algoritmul BCJR:1. (Initializare):

D1 : α(1)0 (s) :=

{1 pentru s = 00 pentru s 6= 0

β(1)N (s) :=

{1 pentru s = 00 pentru s 6= 0

Le21(uk) := 0, k = 1, 2, . . . , N

D2 : α(2)0 (s) :=

{1 pentru s = 00 pentru s 6= 0

, β(2)N (s) := α

(2)N (s), ∀s.

Le12(uk) se determina din D1 dupa prima trecere, deci nu se initializeaza.

2. (A n-a iteratie):D1: pentru k = 1, 2, . . . , N- Se determina yk := ys

ky1pk unde y1p

k sunt bitii de control receptionati pentruE1 (posibil perturbati de canal);- Se determina γk(s

′, s) pentru toate tranzitiile posibile s′ → s;

- Se determina α(1)k (s), ∀s.

pentru k = N,N − 1, . . . , 2 se determina β(1)k−1(s), ∀s;

pentru k = 1, 2, . . . , N se determina Le12(uk) cu valorile de probabilitati

asociate lui D1.D2: pentru k = 1, 2, . . . , N- Se determina yk := ys

PN [k]y2pk ;

- Se determina γk(s′, s) pentru toate tranzitiile posibile s′ → s;

- Se determina α(2)k (s), ∀s;

pentru k = N,N − 1, . . . , 2 se determina β(2)k−1(s), ∀s;

pentru k = 1, 2, . . . N se determina Le21(uk) cu valorile de probabilitati

asociate lui D2;

3. (Dupa ultima iteratie):Pentru k = 1, 2, . . . , N- Se determina L1(uk) := Lc · ys

k + Le21(uP−1

N [k]) + Le12(uk);

- Daca L1(uk) > 0 atunci uk := +1 altfel uk := −1;4. Stop.

20.3 Exercitii

20.1 Demonstrati Propozitia 20.1.

20.2 Demonstrati Propozitia 20.2, (3).

20.3 Calculati 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

ci3i unde ci ∈ {−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 Determinati AN - codurile ciclice din Z23−1 si Z33−1.Stabiliti valorile a si b pentru fiecare din ele.

Page 590: Criptografie complet

20.3. EXERCITII 241

20.6 Generalizati Exemplul 20.3. Gasiti un AN - cod ciclic perfect corector de oeroare pentru r = 3.

20.7 Scrieti ın forma NAF pentru r = 2, r = 10 si r = 7 numerele−15, 32075, 5665, −992.

20.8 Completati demonstratia Teoremei 20.2, verificand unicitatea re-prezentariiNAF ın cazurile c′1 = c1 + 1 si c′1 = c1 + 1 + r.

20.9 In definitia reprezentarii NAF a numarului ıntreg x (cu completarea n0 =−1), sa se arate ca

nx ≤ k ⇐⇒ |x| < rk+2

r + 1.

20.10 Consideram reprezentarea ternara modulo 36 − 1. Sa se determine formaCNAF pentru numarul 455.

20.11 Determinati cuvintele - cod din codul Mandelbaum - Barrows cu b = 11, r =3, n = 5.

20.12 Fie g0(X) = 1+ X +X3, g1(X) = 1 +X2 +X4 +X5 din Z2[X]. Construiticircuitul liniar pentru codificatorul RSE.

Codificati mesajele de informatie 1 + X2 + X3, 1 + X7, X + X4 + X5.

20.13 Aceeasi problema pentru polinoamele g0(X) = 1 + X3 + X4, g1(X) = X +X3 + X6.

20.14 Sa se construiasca un turbo-codificator folosind codificatoarele RSE din Ex-

emplul 20.7, N = 3, matricea de comutatie P3 =

1 0 00 0 10 1 0

si fara mecanism de

relaxare.Sa se codifice mesajul de informatie 100 011 101.

Page 591: Criptografie complet

242 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Page 592: Criptografie complet

Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] L. Bahl, J. Cocker, F. Jelinek, J. Raviv - Optimal decoding of linear codes forminimizing symbol error rate, IEEE Trans. Inf. Theory, pp. 284-287, Martie1974;

[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 dedoctorat), PARIS VI, 1990;

[5] G. Cullmann - Coduri detectoare si corectoare de erori, Editura Tehnica, 1972;

[6] S. Guiasu - Teoria Codurilor, Tipografia Universitatii Bucuresti, 1976;

[7] D.G. Hoffman, 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

Page 593: Criptografie complet

Prelegerea 1

Semnaturi electronice

1.1 Consideratii generale

Vom lua ın discutie ın aceasta sectiune notiunea de semnatura electronica (ıntr-un mediu decalcul) precum si diverse modalitati de utilizare ale ei.

Orice semnatura pe un document autentifica acest document dar si angajeaza ın mod nor-mal responsabilitatea semnatarului. Probleme practice legate de rapiditatea transmiterii unordocumente care sa fie certificate ca autentice prin semnatura au condus la necesitatea creeriide semnaturi electronice.

De exemplu, se stie ca majoritatea operatiunilor si tranzactiilor bancare devin legal validenumai dupa ce ambele parti au semnat formularele respective. Totusi, daca partile sunt legateıntr-o retea de calculatoare, ele vor adesea sa faciliteze aceasta operatie care provoaca un mareconsum de timp; solicita de aceea posibilitatea de a semna documentele folosind terminalele sireteaua aflata la dispozitie.

Deci, apare urmatoarea problema:Cum se poate crea o semnatura ıntr-un mediu de calcul ?

Deoarece calculatoarele accepta informatia numai ın forma digitala, orice semnatura pusaın discutie trebuie sa aiba aceasta forma. O semnatura (electronica sau olografa) trebuie sasatisfaca urmatoarele conditii:

• Unica: o anumita semnatura trebuie sa poata fi 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 safoloseasca o semnatura care nu le apartine;

• Usor de autentificat: orice destinatar legal si orice arbitru (ın cazul unor eventualedispute) sa poata stabili autenticitatea semnaturii (indiferent dupa ce interval de timp);

• Imposibil de negat: nici un utilizator legal sa nu-si poata nega propria semnatura, subafirmatia ca nu este autentica;

• Usor de generat.

Trebuie facuta totusi distinctie ıntre semnatura olografa si cea digitala.Iata cateva diferente notabile ıntre cele doua tipuri de semnaturi:

1

Page 594: Criptografie complet

2 PRELEGEREA 1. SEMNATURI ELECTRONICE

• O semnatura scrisa de mana este o confirmare fizica a unui document, cu ajutorul unei foide hartie care contine doua elemente: un mesaj (textul docu-mentului) si o semnatura.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ınsa, este esential ca ele sa depinda atat de semnatar cat si de continu-tul documentului;

• Orice copie a unui document electronic (inclusiv semnatura) este identica cu originalul.In schimb copia unui document pe hartie este diferita ca valoare de original. Aceastaconduce la ideea ca un document electronic nu este reutili-zabil. De exemplu, daca Bobtrimite lui Alice un cec ın valoare de 10 milioane lei, banca nu va accepta onorarea sadecat o singura data.

1.2 Protocoale de semnatura

Orice protocol de semnatura este format dintr-un algoritm de semnatura si un algoritm deverificare. Bob semneaza un mesaj x bazat pe un algoritm (secret) de semnatura sig. Rezultatulsig(x) este apoi verificat de un algoritm public de verificare ver. Pentru orice pereche (x, y),algoritmul de verificare ofera un raspuns dicotomic (adevarat sau fals), dupa cum y este osemnatura autentica a lui x sau nu. Formal ([8]):

Definitia 1.1 Un protocol de semnatura este un cvintuplu (P ,A,K,S,V) unde:

1. P ,A,K sunt multimi finite, nevide, ale caror elemente se numesc mesaje, semnaturisi respectiv chei;

2. Exista o aplicatie biunivoca ıntre Ksi S×V; anume, pentru fiecare K ∈ K exista o perecheunica (sigK , verK) unde sigK : P → A, verK : P ×A → {T, F} au proprietatea:

∀x ∈ P, ∀y ∈ A, verK(x, y) = T ⇐⇒ y = sigK(x)

Pentru fiecare K ∈ K, functiile sigK si verK trebuie sa fie calculabile ın timp polinomial;verK este publica iar sigK este secreta. Pentru Oscar, imitarea unei semnaturi a lui Bob pentruun mesaj x trebuie sa fie imposibila (din punct de vedere al complexitat ii calculului). Altfelspus, pentru un x dat, numai Bob este capabil sa calculeze o semnatura y astfel ca ver(x, y) = T .

Bineınteles, nici un protocol de semnatura nu este absolut sigur, deoarece Oscar poateıncerca – folosind functia publica de verificare ver – toate semnaturile y posibile ale unui mesajx, pana va gasi semnatura corecta.

Deci, daca ar dispune de suficient timp, Oscar poate totdeauna sa contrafaca semnaturalui Bob.

Exemplul 1.1 Un prim exemplu de semnatura este folosirea ın acest scop a sistemului decriptare RSA. Se definesc

P = A = Zn, 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 definesc:

sigK(x) = xa (mod n)verK(x, y) = T ⇐⇒ x ≡ yb (mod n)

Page 595: Criptografie complet

1.3. SEMNATURA EL GAMAL 3

Aici Bob semneaza un mesaj folosind cheia sa de decriptare din sistemul de criptare RSA; eleste singurul capabil sa genereze o semnatura corecta deoarece dK = sigK este secreta. Functiade verificare utilizeaza functia de criptare eK care este publica, deci oricine o poate verifica.

De remarcat ca oricine poate genera o semnatura a lui Bob pentru un mesaj aleator x; Oscarpoate alege un y si calculeaza x = ek(y); atunci y = sigK(x).

Acest lucru poate fi prevenit folosind mesaje x cu suficient de multa redondanta (cu anumitasemnificatie). O alta modalitate de a evita acest atac este folosirea unor functii de dispersie(hash); vom studia aceasta maniera ın prelegerea urmatoare.

Sa vedem cum pot fi combinate procedeele de semnatura si criptare. Presupunem ca Alicedoreste sa trimita lui Bob un mesaj criptat si semnat. Pentru un text clar x dat, Alice determinasemnatura y = sigAlice(x), dupa care cifreaza x si y folosind cheia publica a lui Bob : z =eBob((x, y)).

Textul criptat z este transmis lui Bob. Acesta foloseste cheia sa secreta dBob si obtine (x, y).Dupa aceasta, verifica semnatura lui Alice cu ajutorul cheii publice verAlice(x, y).

Ce se ıntampla daca Alice cripteaza ınainte de a semna ? Ea va calcula z = eBob(x), y =sigAlice(eBob(x)) si va trimite lui Bob mesajul (z, y). Acesta decripteaza z, obtine x si verificay ca semnatura a lui z.

Pericolul consta ın faptul ca Oscar poate intercepta (z, y), ınlocuieste y cu propria sasemnatura y′ si transmite lui Bob mesajul (z, y′).

Din acest motiv se recomanda folosirea semnaturii ınainte de criptare.

1.3 Semnatura El Gamal

Fie p un numar prim (pentru care problema logaritmilor discreti ın Zp este dificila) siα ∈ Z∗

p = Zp \ {0} un element primitiv. Se ia:P = Z∗

p , A = Z∗p × Zp−1, K = {(p, α, a, β) | β = αa (mod p)}.

Valorile p, α, β sunt publice iar a este secret.Pentru K = (p, α, a, β), k ∈ Zp−1 (secret) se defineste:

sigK(x, k) = (γ, δ) unde

γ = αk (mod p), δ = (x− aγ)k−1 (mod p− 1).

Pentru x, γ ∈ Z∗p , δ ∈ Zp−1 se defineste

verK(x, γ, δ) = T ⇐⇒ βγγδ ≡ αx (mod p)

Daca semnatura este corecta, verificarea autentifica semnatura, deoarece:

βγγδ ≡ αaγαkδ (mod p) ≡ αx (mod p)

(s-a folosit egalitatea aγ + kδ ≡ x (mod p− 1)).

Protocolul de semnatura El Gamal a fost definit ın 1985 ([4]). Ca o particularitate, el nu estedeterminist: pentru un mesaj dat pot exista mai multe semnaturi valide. Functia de verificareva trebui deci sa accepte ca autentice toate aceste semnaturi.

Page 596: Criptografie complet

4 PRELEGEREA 1. SEMNATURI ELECTRONICE

Protocolul de semnatura ElGamal este descris pe pagina anterioara.Bob calculeaza semnatura folosind cheia sa secreta a si o valoare aleatoare secreta k (generata

numai pentru semnarea mesajului x). Verificarea se realizeaza cu ajutorul cheii publice.

Exemplul 1.2 : Sa luam p = 467, α = 2, a = 127. Avemβ = αa (mod p) = 2127 (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 obtine

γ = 2213 (mod 467) = 29 si δ = (100− 127 ∗ 29) ∗ 431 (mod 466) = 51.Pentru a verifica semnatura, calculam

13229 ∗ 2951 ≡ 189 (mod 467) si 2100 ≡ 189 (mod 467).Semnatura este deci valida.

Sa studiem securitatea protocolului de semnatura El Gamal.Vom presupune ca Oscar doreste sa falsifice semnatura pe mesajul x fara sa stie a.

• Daca Oscar alege valoarea γ si ıncearca sa gaseasca δ corespunzator, el va trebui sacalculeze logaritmul discret logγα

xβ−γ. Daca strategia sa este inversa: sa aleaga ıntai δsi sa caute apoi γ, el va trebui sa rezolve ecuatia

βγγδ ≡ α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 obtina x, el va ajunge din nou la problemalogaritmului 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 valida pentru x. Intr-adevar, se verificaβγγδ ≡ βαiβj

(αiβj)−αiβjj−1 ≡ βαiβjα−ij−1αiβj

β−αiβj ≡ α−ij−1αiβj ≡ α−γij−1 ≡ αx

(toate calculele sunt facute modulo p).Sa exemplificam acest atac:

Exemplul 1.3 Fie din nou p = 467, α = 2, β = 132. Sa presupunem ca Oscar alegei = 99, j = 179 ( deci j−1 = 151 (mod p− 1)); Oscar calculeaza:

γ = 299132179 = 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 verifica imediat, calculand13211711741 ≡ 303 (mod 467) si 2331 ≡ 303 (mod 467).

Semnatura este deci valida.

Sa mai aratam o modalitate prin care Oscar poate utiliza un mesaj semnat anterior de Bob.Sa presupunem ca (γ, δ) este o semnatura valida a lui x. Oscar poate semna atunci alte tipuride mesaje:

Fie h, i, j numere ıntregi din intervalul [0, p− 2] cu (hγ − jδ, p− 1) = 1.

Page 597: Criptografie complet

1.4. VARIANTE ALE PROTOCOLULUI DE SEMNATURA ELGAMAL 5

Calculam:l = γhαiβ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 verifica direct βlly ≡αx′ (mod p). Deci (l, y) este o semnatura valida a lui x′.

Aceste doua strategii construiesc semnaturi valide, dar se pare ca nu este posibil ca cinevasa contrafaca semnatura unui mesaj ales de el, fara sa rezolve o problema de logaritmi discreti.Din acest motiv se considera ca nu exista slabiciuni ın protocolul de semnatura El Gamal.

Sa aratam ın final doua maniere de a sparge acest protocol de semnatura, atunci cand esteaplicat neglijent.

• Daca ıntregul aleator k este cunoscut, se determina imediata = (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 luiOscar sa determine a. El va proceda astfel:

Fie (γ, δi) semnaturile mesajelor xi, i = 1, 2. Avem:βγγδi ≡ αxi (mod p), i = 1, 2, deci αx2−x1 ≡ γδ2−δ1 (mod p).

Inlocuind γ = αk se obtine ecuatia de necunoscuta k:

αx2−x1 ≡ αk(δ2−δ1) (mod p),

care este echivalenta cu x2 − x1 ≡ k(δ2 − δ1) (mod p− 1).

Daca se ia d = (δ2 − δ1, p− 1), din d | (p− 1) si d | (δ2 − δ1) rezulta d | (x2 − x1).

Daca notam:

x′ =x2 − x1

dδ′ =

δ2 − δ1

dp′ =

p− 1

d

ecuatia devine x′ ≡ kδ′(mod p). Cum (δ′, p′) = 1, se poate determina ε = (δ′)−1 (mod p′).

Valoarea lui k verifica deci relatia k ≡ x′ (mod p), ceea ce conduce la determinarea a dcandidati la valoarea lui k, dati de relatia k = x′ + ip′(mod p), i = 0, . . . , d − 1. Dinaceste d valori posibile, solutia se determina testand relatia γ ≡ αk (mod p)

1.4 Variante ale protocolului de semnatura ElGamal

In general, un mesaj este criptat si decriptat o singura data, fiind necesara doar securitateasistemului de criptare. In schimb, un document semnat – cum ar fi un contract – are o valoarejuridica, si este posibil ca autenticitatea sa sa fie verificata chiar si dupa mai multi ani. Este deciimportant sa existe criterii de securitate mai severe pentru semnatura electronica decat pentrucriptare. Cum siguranta protocolului de semnatura ElGamal este echivalenta cu complexitateaproblemei logaritmilor discreti, este necesar sa se foloseasca un modul p cat mai mare. Un pde 1024 biti conduce ınsa la o semnatura ElGamal de 2048 biti, ceea ce o elimina din multeaplicatii (cum ar fi exemplu smart-cardurile).

Page 598: Criptografie complet

6 PRELEGEREA 1. SEMNATURI ELECTRONICE

1.4.1 Standard de semnatura electronica

Standardul de semnatura electronica (DSS – de la Digital Signature Standard) este o varianta aprotocolului de semnatura ElGamal, cu proprietatea ca reduce substantial lungimea semnaturii.Protocolul de semnatura DSS este urmatorul:

Fie p un numar prim de 512 biti, q un factor de 160 biti ai lui p− 1 si α ∈ Z∗p o radacina

primitiva de ordin q a unitat ii.Fie P = Z∗

p ,A = Zq × Zq 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 numar (secret) k (1 ≤ k ≤ q − 1) se definesc:

• sigK(x, k) = (γ, δ) unde

γ = (αk mod p) mod q δ = (x + aγ)k−1 mod q

• Pentru x ∈ Z∗p , γ, δ ∈ Zq functia de verificare este definitaverK(x, γ, δ) = T ⇐⇒ (αe1βe2 mod p) mod q = γ

unde e1 = xδ−1 (mod q) e2 = γδ−1 (mod q)

Diferente ıntre protocoalele de semnatura El Gamal si DSS:

a. DSS se distinge ın primul rand de El Gamal prin faptul ca asigura o semnatura de 320biti pe un mesaj de 160 biti, lucrand ın Zp cu p de 512 biti. Aceasta permite lucrul ıntr-uncorp cu circa 2160 elemente. Ipoteza este aceea ca ın aceasta baza, calculul logaritmilordiscreti este foarte dificil.

b. In definirea lui δ semnul − s-a schimbat ın +. Aceasta schimba ecuatia de verificare ın:αxβγ ≡ γδ mod p.Daca (x + αγ, p− 1) = 1, atunci exista δ−1 mod (p− 1) si aceasta ecuatie se poate scrieαxδ−1

βγδ−1 ≡ γ (mod p).

c. (idee a lui Schnorr). Sa presupunem ca q este un numar de 160 biti astfel ıncat q | (p−1) siα ∈ Z∗

p este o radacina primitiva de ordinul q a unitatii modulo p (pentru a gasi un astfel

de numar, se ia o radacina primitiva α0 ∈ Zp si se construieste α = α(p−1)/q0 (mod p)). In

acest fel, β si γ sunt de asemenea radacini de ordinul q ale unitatii. Deci exponentii luiα, β, γ se pot reduce modulo q, fara a modifica ecuatia de verificare de mai sus.

Algoritmul de Schnorr foloseste si o functie de dispersie h : {0, 1}∗ → Zq (a se vedeaprelegerea urmatoare), pe baza careia defineste componentele semnaturii astfel:

γ = h(x‖αk), δ = k + αγ (mod q)

Pentru x ∈ {0, 1}∗ si γ, δ ∈ Zq, procedura de verificare esteverK(x, (γ, δ)) = T ⇐⇒ h(x‖αδβ−γ) = γ

Relatia de verificare este adevarata deoarece se obtine imediat αδβ−γ = αk (mod p)

Exemplul 1.4 Fie q = 101, p = 78q + 1 = 7879. 3 este radacina primitiva ın Z7879, deci sepoate lua α = 378 (mod 7879) = 170.

Daca alegem de exemplu a = 75, obtinem β = αa (mod 7879) = 4567.

Page 599: Criptografie complet

1.4. VARIANTE ALE PROTOCOLULUI DE SEMNATURA ELGAMAL 7

Sa presupunem ca Bob doreste sa semneze mesajul x = 1234 si ia k = 50 (decik−1 (mod 101) = 99); el va avea:

γ = (17050 mod 7879) mod 101 = 2518 (mod 101) = 94δ = (1234 + 75× 94)× 99 (mod 101) = 97

Semnatura (94, 97) a mesajului 1234 se verifica prin calcul:δ−1 = 97−1 (mod 1010 = 25, e1 = 1234× 25 (mod 1010 = 45, e2 = 94× 25 (mod 101) = 27

(17045 × 456727 mod 7879) mod 101 = 2518 mod 101 = 94Semnatura este deci valida.In varianta Schnorr trebuie calculata valoarea h(1234‖2518) unde h este o functie de dis-

persie, iar 1234 si 2518 sunt reprezentate ın binar. Pentru a nu intra ın detalii, sa presupunemca h(1234‖2518) = 96. Atunci

δ = 50 + 75× 96 (mod 101) = 79si semnatura este (96, 79).

Ea este verificata calculand 170794567−96 (mod 7879) = 2518 si verificand h(1234‖2518) = 96.

O alta varianta a protocolului DSS este protocolul de semnatura DSA (Digital SignatureAlgorithm). Acesta a fost propus ın 1991 si adoptat ca standard de semnatura la 1 decembrie1994 (dupa publicarea sa ın Registrul Federal la 19 mai 1994). Singura modificare fata de DSSconsta ın ınlocuirea mesajului x (din calculul lui δ si al lui e1) cu SHA− 1(x), unde SHA− 1este o functie de dispersie standard.

Exemplul 1.5 Sa reluam valorile lui p, q, α, a, β, k din Exemplul 1.4 si sa presupunem ca Alicevrea sa semneze amprenta SHA− 1(x) = 22. Ea va calcula

k−1 (mod 1010 = 50−1 (mod 1010 = 99,γ = (17050 (mod 7879)) (mod 1010 = 2518 (mod 101) = 94 siδ = (22 + 75× 94)× 99 (mod 101) = 97.

Semnatura (94, 97) a amprentei 22 este verificata efectuand calculele;δ−1 = 97−1 (mod 1010 = 25,e1 = 22× 25 (mod 101) = 45, e2 = 94× 25 (mod 101) = 27

si verificand ca 17045456727 (mod 7879) (mod 101) = 2518 (mod 101) = 94.

Cand DSS a fost propus ın 1991, a avut mai multe critici. Astfel:

• Multi s-au aratat nemultumiti de impunerea marimii de 512 biti pentru modul; o marimevariabila care sa fie aleasa de beneficiari ın functie de necesitat i ar fi fost mai convenabila.Ca raspuns, NIST a schimbat descrierea standardului pentru a permite alegerea ca modula oricarui numar divizibil cu 64 avand ıntre 512 si 1024 biti. In octombrie 2001 NISTrevine si recomanda alegerea pentru p a unui numar prim de 1024 biti.

• Semnaturile pot fi mult mai usor generate decat verificate. Pentru comparatie, ın sistemulRSA un exponent mic de decriptare poate conduce la un protocol de verificare mult mairapid decat semnatura. Obiectia este ridicata din considerente practice, anume:

– Un mesaj este semnat o singura data, dar poate fi verificat de foarte multe ori de-alungul timpului.

– Pe ce tipuri de calculatoare sunt efectuate aceste protocoale de semnatura si/sauverificare ? Cea mai mare parte a aplicatiilor folosesc calculatoare de birou, curesurse limitate, care comunica cu sisteme puternice de calcul. Trebuie dezvoltatdeci un protocol care sa oblige calculatorul de birou la cat mai putine calcule.

Page 600: Criptografie complet

8 PRELEGEREA 1. SEMNATURI ELECTRONICE

Raspunsul dat de NIST la aceasta obiectie a fost ca este foarte putin important ce calculeste mai simplu, avand ı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 subnumele FIPS 186 − 2. Si el este o varianta a protocolului ElGamal, construit pentru functiieliptice. Sa prezentam o descriere a sa:

Fie p un numar prim sau o putere a lui 2 si E o curba eliptica peste Zp. Fie A un punctdin E de ordin q (numar prim) astfel ca Problema Logaritmului discret pentru A sa fiedificila. FieP= {0, 1}∗, A= Z∗

1 × Z∗q , K= {(p, q, E,A, m, B) | B = mA},

unde m ∈ Zq−1. Valorile p, q, E, A,B sunt publice, m este cheia secreta.Pentru K = (p, q, E,A, m, B) si k ∈ Zq ales aleator, definim

sigK(x, k) = (r, s)unde

kA = (u, v), r = u (mod q), s = k−1(SHA1(x) + mr) (mod q).(daca r · s = 0 se alege alta valoare aleatoare pentru k).Pentru x ∈ {0, 1}∗, r, s ∈ Z∗

q verificarea este definita prinw = s−1 (mod q), i = w · SHA1(x) (mod q),j = w · r (mod q), (u, v) = iA + jB si

verK(x, (r, s)) = T ⇐⇒ u (mod q) = r

Exemplul 1.6 Sa consideram curba eliptica y2 = x3 + x + 6 definita peste Z11. Alegemparametrii 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 SHA1(x) = 4 si Alice vrea sa-l semneze folosindvaloarea 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 verifica 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.

Page 601: Criptografie complet

1.5. PROTOCOALE DE SEMNATURA ”ONE-TIME” 9

1.5 Protocoale de semnatura ”One-time”

Ideea acestor protocoale se bazeaza pe faptul ca functia care asigura semnatura este folositapentru a semna un singur document, dupa care ea este abandonata (cu toate ca poate fiverificata 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 functie neinversabila,se alege A = Y k. Se selecteaza aleator yi,j ∈ Y, 1 ≤ i ≤ k, j = 0, 1 si fie zi,j = f(yi,j).Cheia K este lista celor 2k valori y (secrete) si a celor 2k valori z (publice).Pentru K = {(yi,j, zi,j) | 1 ≤ i ≤ k, j = 0, 1} se defineste:

sigK(x1, . . . , xk) = (y1,x1 , . . . , yk,xk)

siverK(x1, . . . , xk, a1, . . . , ak) = T ⇐⇒ f(ai) = zi,xi

, 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 zi,j, unde fiecare zi,j este imaginea printr-ofunctie neinversabila a unui yi,j.

Verificarea consta ın aplicarea lui f si compararea rezultatului cu cheia publica.

Exemplul 1.7 Fie 7879 un numar prim, iar 3 ∈ Z7879 un element primitiv. Se definestef(x) = 3x mod 7879.

Daca Bob doreste sa semneze un mesaj de trei biti, el alege (secret) sase numere aleatoarey1,0 = 5831 y2,0 = 803 y3,0 = 4285y1,1 = 735 y2,1 = 2467 y3,1 = 6449

Calculeaza apoi imaginea lor prin functia f :z1,0 = 2009 z2,0 = 4672 z3,0 = 268z1,1 = 3810 z2,1 = 4721 z3,1 = 5731

Aceste numere z sunt publice.Sa presupunem ca Bob vrea sa semneze mesajul x = (1, 1, 0). Semnatura lui este

(y1,1, y2,1, y3,0) = (735, 2467, 4285)Pentru a verifica semnatura, este suficient sa se constate ca:

3735 = 3810; 32467 = 4721; 34285 = 268,toate calculele fiind realizate modulo 7879.

Oscar nu poate imita semnatura, deoarece f nu are inversa.In plus, protocolul de semnatura nu poate fi 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(y1,0, y2,1, y3,1) respectiv (y1,1, y2,0, y3,1), se pot imediat semna mesaje cum ar fi (1, 1, 1) sau(0, 0, 1).

Desi foarte simplu si elegant, acest protocol nu este practic din cauza dimensiunii mari asemnaturii. Reluand exemplul de mai sus, o implementare sigura necesita un modul p de 512biti. Aceasta ınseamna ca fiecare bit al mesajului are o semnatura de 512 biti; avem deci osemnatura de 512 ori mai lunga decat mesajul !

De aceea a aparut o simplificare, care reduce lungimea semnaturii fara a diminua securitateaei. Numit Bos-Chaum, acest protocol este definit astfel:

Page 602: Criptografie complet

10 PRELEGEREA 1. SEMNATURI ELECTRONICE

Fie k > 0 un numar ıntreg si P = {0, 1}k. Daca n este un numar ıntreg cu proprietatea2k ≤ Cn

2n, fie B multimea numerelor ıntregi din intervalul [1, 2n] siφ : P → B

o functie injectiva ın multimea B a partilor lui B de n elemente.Daca f : Y → Z este o functie neinversabila, fie A = Y n.Se aleg aleator valorile yi ∈ Y, 1 ≤ i ≤ 2n si fie zi = f(yi).Cheia K este lista celor 2n valori y (secrete) si a celor 2n valori z (publice).Pentru K = {(yi, zi) | 1 ≤ i ≤ 2n}, se definesc

sigK(x1, . . . , xk) = {yj | j ∈ φ(x1, . . . xk)}siverK(x1, . . . , xk, a1, . . . , an) = T ⇐⇒ {f(ai) | 1 ≤ i ≤ n} = {zj | j ∈ φ(x1, . . . , xk)}Avantajul protocolului Bos-Chaum este acela ca scurteaza semnatura. De exemplu, sa

presupunem ca vrem sa semnam un mesaj de sase biti (k = 6); cum 26 = 64 si C48 = 70,

putem lua n = 4. Aceasta permite semnarea mesajului cu numai patru valori y (ın loc desase la Lamport). De asemenea, si cheia este mai scurta, cu numai opt valori z fata de 12 lasemnatura Lamport.

Protocolul de semnatura Bos-Chaum necesita o functie injectiva φ care asociaza fiecareisecvente de k biti x = (x1, . . . , xk) o submultime de n elemente. Un exemplu de algoritmsimplu care realizeaza o astfel de asociere este:

x ←k∑

i=1

xi2i−1

φ(x) ← ∅t ← 2ne ← nwhile t > 0 do

t ← t− 1if x > Ce

t thenx ← x− Ce

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 2k ≤ Cn2n ın care se evalueaza Cn

2n =(2n)!

(n!)2cu formula lui Stirling, obtinandu-se

22n/√

πn. Dupa simplificari si logaritmare ın baza 2 se ajunge la relatia:

k ≤ 2n− log2nπ

2Asimptotic, n este de ordinul lui k/2, deci protocolul de semnatura Bos-Chaum reduce

marimea semnaturii lui Lamport cu aproximativ 50%.

1.6 Semnaturi incontestabile

Semnaturile incontestabile au fost introduse de Chaum si van Antwerpen ın 1989. Ele prezintacateva caracteristici. Astfel:

Page 603: Criptografie complet

1.6. SEMNATURI INCONTESTABILE 11

• Semnatura nu poate fi validata fara aportul semnatarului Bob. Aceasta ıl protejeaza peBob de difuzarea fara consimtamant a unui document pe care se pretinde ca l-ar fi semnat.Validarea se face urmand un protocol de ıntrebari si raspunsuri.

• Pentru a evita ca Bob sa-si nege propria semnatura, exista un protocol de dezmintire pecare Bob trebuie sa-l urmeze pentru a arata ca o semnatura este falsa.

Refuzul de a folosi acest protocol este o confirmare a autenticitatii semnaturii.

Deci, un protocol de semnatura incontestabila este format dintr-o functie de semna-tura, unprotocol de verificare si o procedura de dezmintire.

Algoritmul Chaum-van Antwerpen este:

Fie p = 2q + 1 un numar prim cu proprietatea ca q este prim si α ∈ Z∗p un element de

ordin q. Pentru 1 ≤ a ≤ q − 1, se defineste β ≡ αa mod p.Fie G subgrupul de ordin q al lui Zp generat de α.Se definesc P = A = G, K = {(p, α, a, β) | β ≡ αa (mod p)}.Valorile p, α, β sunt publice iar a este secreta.Pentru K = (p, α, a, β), x ∈ G se defineste y = sigK(x) = xa mod p.Pentru x, y ∈ G, protocolul de verificare se efectueaza astfel:

1. Alice alege aleator numerele e1, e2 ∈ Z∗q ;

2. Alice calculeaza c = ye1βe2 mod p si-l trimite lui Bob;

3. Bob calculeaza d = ca−1 mod q mod p si-l trimite lui Alice;

4. Alice admite autenticitatea lui y daca si numai daca d ≡ xe1αe2 mod p.

A. Sa explicam ıntai rolul lui p si q ın acest protocol. Calculele sunt efectuate ın Zp. Estenecesar totusi ca anumite calcule sa fie facute ıntr-un subgrup al sau de ordin prim (notat cuG). In particular este nevoie sa calculam inverse modulo q (ceea ce justifica de ce q = card(G)trebuie sa fie 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 dinG.

Sa aratam ıntai cum admite Alice autenticitatea semnaturilor valide. In calculul de maijos, exponentii sunt redusi modulo q.

d ≡ ca−1(mod p) ≡ ye1a−1

βe2a−1(mod p).

Cum β ≡ αa (mod p), avem βa−1 ≡ α (mod p).De asemenea, din y = xa (mod p) rezulta ya−1 ≡ x (mod p).Se ajunge deci la d ≡ xe1αe2 (mod p).

Exemplul 1.8 Fie p = 467. 2 este o radacina primitiva, deci 22 = 4 este un generator al luiG, 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 = 119101 mod 467 = 129.Sa presupunem ca Alice vrea sa autentifice semnatura y si ca alege pentru asta e1 = 38, e2 =

397. Ea calculeaza c = 13, la care Bob raspunde cu d = 9. Alice verifica atunci relatia119384397 ≡ 9 (mod 467).

Semnatura este acceptata ca autentica.

Page 604: Criptografie complet

12 PRELEGEREA 1. SEMNATURI ELECTRONICE

B. Sa aratam acum ca Alice nu poate accepta o semnatura falsa drept autentica decat cuo probabilitate neglijabila.

Teorema 1.1 Daca y 6≡ xa (mod p) atunci Alice admite pe y ca semnatura autentica a lui xcu probabilitate 1/q.

Demonstratie: Se observa ca orice ıntrebare c corespunde la exact q perechi (e1, e2) posibile(deoarece y si β sunt elemente ale grupului G de ordin q prim si ın definitia lui c, fiecare e1

determina un e2 unic). Cand Bob primeste c, el nu stie ce pereche (e1, e2) a fost folosita pentrua-l construi. Vom arata ca daca y 6≡ xa (mod p), orice raspuns d nu poate fi consistent decatcu o singura pereche (e1, e2).

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 ∈ Zq si operatiile aritmetice efectuate modulop. Sa consideram sistemul:

c ≡ ye1βe2 (mod p) d ≡ xe1αe2 (mod p).El este echivalent cu

i ≡ me1 + ae2 (mod q) j ≡ ke1 + e2 (mod q).Cum prin ipoteza y 6≡ xa (mod p), rezulta m 6≡ ak (mod q).Astfel, matricea sistemului modulo q admite un determinant nenul, deci sistemul are solutie

unica. Altfel spus, pentru orice d ∈ G, nu exista raspuns corect la ıntrebarea c decat pentruun singur cuplu (e1, e2). Deci probabilitatea ca Bob sa raspunda corect lui Alice ın conditiileteoremei este 1/q. 2

C. Sa construim acum procedura de dezmintire. Ea foloseste de doua ori protocolul deverificare. Algoritmul este:

1. Alice alege aleator e1, e2 ∈ Z∗q ;

2. Alice calculeaza c = ye1βe2 (mod p) si-l trimite lui Bob;

3. Bob calculeaza d = ca−1 mod q (mod p) si-l trimite lui Alice;

4. Alice verifica d 6≡ xe1αe2 (mod p);

5. Alice alege aleator f1, f2 ∈ Z∗q ;

6. Alice calculeaza C = yf1βf2 (mod p) si-l trimite lui Bob;

7. Bob calculeaza D = Ca−1 mod q (mod p) si-l trimite lui Alice;

8. Alice verifica D 6≡ xf1αf2 (mod p);

9. Alice admite ca y este fals daca si numai daca

(dα−e2)f1 ≡ (Dα−f2)e1 (mod p)

Pasii 1− 4 si 5− 8 corespund protocolului de verificare. Pasul 9 este validarea consistenteiraspunsului, care permite lui Alice sa determine daca Bob a calculat bine raspunsurile saleconform protocolului.

Page 605: Criptografie complet

1.6. SEMNATURI 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 e1 = 45, e2 = 237 primele valori alese de Alice. Ea calculeaza c = 305 si Bob raspunde

cu d = 109. Alice calculeaza atunci286454237 (mod 467) = 149.

Deoarece 149 6= 109, Alice trece la pasul 5 al protocolului. Sa presupunem ca ea alege acumf1 = 125, f2 = 9 si calculeaza C = 270 la care Bob raspunde cu D = 68. Alice calculeaza acum

28612549 (mod 467) = 25.Cum 25 6= 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 final, mai trebuiesc aratate doua elemente:

• Bob poate sa o convinga pe Alice sa invalideze o semnatura incorecta.

• Bob nu poate sa o convinga pe Alice sa invalideze o semnatura corecta decat cu proba-bilitate neglijabila.

Teorema 1.2 Daca y 6≡ xa (mod p) si daca Alice si Bob urmeaza corect protocolul de dezmin-tire, atunci

(dα−e2)f1 ≡ (Dα−f2)e1 (mod p).

Demonstratie: Utilizand faptul ca d ≡ ca−1(mod p) si c ≡ ye1βe2 (mod p), avem:

(dα−e2)f1 ≡ ((ye1βe2)a−1α−e2)f1 (mod p) ≡ ye1f1βe2a−1f1α−e2f1 (mod p)

≡ ye1f1αe2f1α−e2f1 (mod p) ≡ ye1f1 (mod p).Un calcul similar folosind D ≡ Ca−1

(mod p), C ≡ yf1βf2 (mod p) siβ ≡ αa (mod p) arata ca

(Dα−f2)e1 ≡ ye1f1 (mod p)

deci testul de consistenta de la pasul 9 reuseste. 2

Sa studiem acum cazul cand Bob ıncearca sa dezminta o semnatura valida. In acest cazBob nu va urma protocolul, si va construi d si D fara sa respecte procedura.

Teorema 1.3 Sa presupunem ca y ≡ xa (mod p) si Alice urmeaza procedura de dezmintire.Daca d 6≡ xe1αe2 (mod p) si D 6≡ xf1αf2 (mod p) atunci probabilitatea ca (dα−e2)f1 6≡(Dα−f2)e1 (mod p) este 1− 1

q.

Demonstratie: Sa presupunem ca avem (conform ipotezei):y ≡ xa d 6≡ xe1αe2 D 6≡ xf1αe2 (dα−e2)f1 ≡ (Dα−f2)e1

toate calculele fiind facute modulo p. Vom arata ca se ajunge la o contradictie.Testul de consistenta (pasul 9) se rescrie D ≡ df1

0 αf2 (mod p) unded0 = d1/e1α−e2/e1 (mod p) nu depinde decat de pasii 1 − 4 ai protocolului. Aplicand Teorema

1.1 se obtine ca y este o semnatura valida a lui d0 cu probabilitate 1− 1

q. Dar, prin ipoteza, y

este o semnatura valida a lui x. Deci, cu mare probabilitate vom avea xa ≡ da0 (mod p) adica

x = d0.Pe de-alta parte, din d 6≡ xe1αe2 (mod p) rezulta x 6≡ d1/e1α−e2/e1 (mod p), adica tocmai

x 6= d0, contradictie. 2

Page 606: Criptografie complet

14 PRELEGEREA 1. SEMNATURI ELECTRONICE

1.7 Protocol de semnatura fara esec

O semnatura fara esec ofera protectie contra unui adversar atat de puternic ıncat poate con-traface semnaturi. Protocolul de semnatura prezentat aici este construit de Heyst si Pedersenın 1992. Este un tip de semnatura one - time, compus dintr-o functie de semnatura, o functiede verificare si un protocol pentru proba de autentificare. Prezentarea sa ın detaliu este:

Fie p = 2q + 1 un numar prim cu q prim, si α ∈ Z∗p un element de ordin q. Pentru

1 ≤ a0 ≤ q − 1 se defineste β = αa0 (mod p).Valorile p, q, α, β sunt publice si considerate fixe.Valoarea a0 este secreta pentru toata lumea (inclusiv Bob).Fie P = Zq, A = Zq × Zq. O cheie este de forma K = (γ1, γ2, a1, a2, b1, b2) undea1, a2, b1, b2 ∈ Zq, γ1 = αa1βa2 (mod p) γ2 = αb1βb2 (mod p).γ1, g2 sunt publice, a1, a2, b1, b2 sunt secrete.Daca x ∈ Zq, se definestesigK(x) = (y1, y2) unde y1 = a1 + xb1 (mod q) y2 = a2 + xb2 (mod q).Pentru y = (y1, y2) ∈ Zq × Zq, avem

verK(x, y) = T ⇐⇒ γ1γx2 ≡ αy1βy2 (mod p)

Se poate vedea direct ca o semnatura corect construita este validata de functia de verificare.Ramane de studiat problema de securitate si de ce procedeul este fara esec. Sa stabilim ıntaicateva proprietati importante ale cheilor.

Doua chei (γ1, γ2, a1, a2, b1, b2) si (γ′1, γ′2, a

′1, a

′2, b

′1, b

′2) sunt echivalente daca

γ1 = γ′1, γ2 = γ′2.In fiecare clasa de echivalenta sunt exact q2 chei.

Lema 1.1 Daca K, K ′ sunt chei echivalente, atunci

verK = T ⇐⇒ verK′ = T.

Demonstratie: Fie K = (γ1, γ2, a1, a2, b1, b2) si K ′ = (γ1, γ2, a′1, a

′2, b

′1, b

′2) cu

γ1 ≡ αa1βa2 (mod p) ≡ αa′1βa′2 (mod p) si γ2 ≡ αb1βb2 (mod p) ≡ αb′1βb′2 (mod p).Sa presupunem ca mesajul x este semnat cu y = (y1, y2) folosind cheia K, unde

y1 ≡ a1 + xb1 (mod q) y2 ≡ a2 + xb2 (mod q)Sa presupunem ca verificarea lui y se face cu cheia K ′:αy1βy2 ≡ αa′1+xb′1βa′2+xb′2 (mod p) ≡ αa′1βa′2(αb′1βb′2)x (mod p) ≡ γ1γ

x2 (mod p).

Deci y se verifica si cu cheia K ′. 2

Lema 1.2 Fie o cheie K si y = sigK(x). Exista exact q chei K ′ echivalente cu K astfel ıncaty = sigK′(x).

Demonstratie: Fie γ1, γ2 componentele publice ale lui K. Trebuie determinat numarul dequadrupluri (a1, a2, b1, b2) astfel ıncat

γ1 ≡ αa1βa2 (mod p) γ2 ≡ αb1βb2 (mod p)y1 ≡ a1 + xb1 (mod q) y2 = a2 + xb2 (mod q).

Cum α genereaza Z∗q , exista exponentii unici c1, c2, a0 ∈ Zq astfel ıncat

γ1 ≡ αc1 (mod p), γ2 ≡ αc2 (mod p), β ≡ αa0 (mod p).In acest fel, este necesar si suficient sa avem:

c1 ≡ a1 + a0a2 (mod q) c2 ≡ b1 + a0b2 (mod q)

Page 607: Criptografie complet

1.7. PROTOCOL DE SEMNATURA FARA ESEC 15

y1 ≡ a1 + xb1 (mod q) y2 ≡ a2 + xb2 (mod q).Matricea acestui sistem de ecuatii cu necunoscutele a1, a2, b1, b2 are rangul 3 (determinantul

este

∣∣∣∣∣∣∣∣∣

1 a0 0 00 0 1 a0

1 0 x 00 1 0 x

∣∣∣∣∣∣∣∣∣), deci sistemul are cel putin o solutie netriviala obtinuta cu ajutorul cheii

K si – ın plus – dimensiunea spatiului solutiilor este 4− 3 = 1, deci exista exact q solutii. 2

Lema 1.3 Fie o cheie K, y = sigK(x) si verK(x′, y′) = T pentru x′ 6= x. Exista atunci celputin o cheie K ′ echivalenta cu K astfel ca

y = sigK′(x), y′ = sigK′(x′)

Demonstratie: Se face printr-un rationament analog cu cel din lema precedenta. 2

Din ultimele doua leme putem trage urmatoarea concluzie: fiind data o semnatura valida ya unui mesaj x, exista exact q chei posibile care pot semna x. Pentru orice alt mesaj x′ 6= x,aceste q chei produc semnaturi diferite ale lui x′. Se obtine astfel teorema urmatoare:

Teorema 1.4 Fiind date sigK(x) = y si x′ 6= x, Oscar nu poate calcula sigK(x′) decat cu

probabilitate1

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 notiunea de semnatura fara esec. S-a aratat ca fiind dat un mesajx semnat cu y, Oscar nu poate calcula semnatura y′ a lui Bob pe un alt mesaj x′. Ar mai fiposibilitatea ca Oscar sa poata calcula o semnatura y” 6= sigK(x′) care sa fie valida. Dar, daca

ea ajunge ınapoi la Bob, acesta poate furniza cu probabilitate 1 − 1

qo proba de autentificare;

aceasta este valoarea a0 = logαβ, cunoscuta numai de autor.Sa presupunem ca Bob are o pereche (x′, y”) astfel ıncat

verK(x′, y”) = T si y” 6= sigK(x′).Avem γ1γ

x′2 ≡ αy1”βy2” (mod p) unde y” = (y1”, y2”).

Bob poate calcula propria sa semnatura pentru x′, pe care o noteaza y′ = (y1′, y2

′) si areγ1γ

x′2 ≡ αy′1βy′2 (mod p).Deci αy”1βy”2 ≡ αy′1βy′2 (mod p). Scriind β = αa0 (mod p) se obtine:

αy”1+a0y”2 ≡ αy′1+a0y′2 (mod p) de unde y”1 + a0y”2 ≡ y′1 + a0y′2 (mod q)

sau y”1 − y′1 ≡ a0(y′2 − y”2) (mod q). Evident y′2 6≡ y”2 deoarece y” este un fals.

Deci (y′2 − y”2)−1 (mod q) exista si avem:

a0 = logαβ = (y”1 − y′1)(y′2 − y”2)

−1 (mod q).

Bineınteles, ın verificarea probei de autentificare s-a presupus ca nici Bob nu poate calculalogaritmul discret logαβ.

Ca o remarca finala, acest procedeu este cu utilizare unica, deoarece cheia K a lui Bob poatefi usor determinata dupa doua folosiri.

Page 608: Criptografie complet

16 PRELEGEREA 1. SEMNATURI ELECTRONICE

Exemplul 1.10 Sa presupunem p = 3467 = 2× 1733 + 1. Numarul α = 4 are ordinul 1733 ınZ∗

3467. Daca se ia a0 = 1567 vom avea β = 41567 (mod 3467) = 514.Reamintim ca Bob cunoaste α si β dar nu a0.Sa presupunem ca Bob construieste cheia sa cu a1 = 888, a2 = 1024,

b1 = 786, b2 = 999 deciγ1 = 48885141024 (mod 3467) = 3405 γ2 = 4786514999 (mod 3467) = 2281.In acest moment Bob este pus ın prezenta semnaturii false (822, 55) a mesajului 3383.

Aceasta semnatura este valida, deoarece conditia de verificare este satisfacuta:3405× 22813383 ≡ 2282 (mod 3467) 482251456 ≡ 2282 (mod 3467).

Dar Bob stie ca aceasta nu este semnatura sa si trebuie sa dovedeasca acest lucru. Elcalculeaza propria sa semnatura:

(888 + 3383× 786 (mod 1733), 1024 + 3383× 999 (mod 1733)) = (1504, 1291)dupa care evalueaza logaritmul discret

a0 = (822− 1504)(1291− 55)−1 (mod 1733) = 1567care constituie proba de autentificare, si arata ca semnatura nu ıi apartine.

Page 609: Criptografie complet

1.8. EXERCITII 17

1.8 Exercitii

1.1 Sa presupunem ca Bob utilizeaza semnatura El Gamal si semneaza mesajele x1, x2 obti-nand (γ, δ1) respectiv (γ, δ2) (cu aceeasi valoare a lui γ ın ambele sem-naturi). Se considera ınplus ca (δ1 − δ2, p− 1) = 1.

• Aratati ca aceste informatii sunt suficiente pentru determinarea lui k;

• Aratati cum se poate sparge protocolul de semnatura;

• Presupunand p = 3187, α = 5, β = 25703, efectuati calculul lui k si a plecand de lasemnaturile (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:

• Verifica semnatura (20679, 11082) a mesajului x = 20543.

• Calculeaza exponentul secret a prin compromisul spatiu - 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). Calculati semnatura falsa pecare o poate obtine Oscar cu h = 102, i = 45, j = 293. Autentificati semnatura rezultata cufunctia de verificare.

1.4 Aratati ca a doua metoda de atac din semnatura El Gamal furnizeaza o semna-tura corectacare satisface functia de verificare.

1.5 Modificam putin protocolul de semnatura El Gamal. Cheia este construita astfel: Bobalege o radacina primtiva α ∈ Z∗

p , un exponent secret a (0 ≤ a ≤ p−2), (a, p−1) = 1 si β = αa.Cheia este K = (α, a, β) unde α, β sunt publice, iar a este secreta. Fie x ∈ Zp un mesaj caretrebuie semnat. Bob calculeaza semnatura sigK(x) = (γ, δ) prin:

γ = αk (mod p) δ = (x− kγ)a−1 (mod p− 1).

Singura diferenta fata de semnatura El Gamal este calculul lui δ.

• Descrieti cum se poate verifica cu cheia publica a lui Bob o semnatura (γ, δ) pe un mesajx;

• Descrieti avantajul noului procedeu (fata de cel vechi) din punct de vedere al calculelor;

• Comparati pe scurt securitatea celor doua protocoale.

1.6 Bob utilizeaza procedeul DSS cu q = 101, p = 7879, α = 170, a = 75, β = 4567.Determinati semnatura lui Bob pe mesajul x = 5001 utilizand valoarea aleatoare k = 49, siaratati cum poate fi verificata semnatura rezultata.

Page 610: Criptografie complet

18 PRELEGEREA 1. SEMNATURI ELECTRONICE

1.7 In protocolul de semnatura Lamport, Bob semneaza doua mesaje x, x′, ambele de cate kbiti. Fie s = d(x, x′) numarul de coordonate ın care difera cele doua mesaje. Aratati ca Oscarpoate semna 2s − 2 mesaje noi.

1.8 In protocolul de semnatura Bos-Chaum cu k = 6, n = 4 sunt semnate mesajele x =(0, 1, 0, 0, 1, 1), x′ = (1, 1, 0, 1, 1, 1). Determinati noile mesaje pe care le poate semna Oscar,plecand de la semnaturile lui x si x′.

1.9 In protocolul de semnatura Bos-Chaum, Bob semneaza doua mesaje x, x′. Fie s =card(φ(x) ∪ φ(x′)). Aratati ca Oscar poate semna acum Cn

s − 2 mesaje noi.

1.10 Bob utilizeaza protocolul de semnatura incontestabila Chaum-van Antwerpen ca ın Ex-emplul 1.7; deci p = 467, α = 4, a = 101, β = 449. Sa presupunem ca Bob este confruntatcu semnatura y = 25 a mesajului x = 157 si doreste sa arate ca ea este falsa. Presupunand caAlice alege valorile aleatoare e1 = 46, e2 = 123, f1 = 198, f2 = 11 ın protocolul de dezmintire,calculati ıntrebarile c, d ale lui Alice si raspunsurile C, D ale lui Bob; verificati ca Aliceadmite dezmintirea.

1.11 Aratati ca clasele de echivalenta de chei ın protocolul de semnatura fara esec Pedersen- van Heyst contine q2 chei.

1.12 Bob utilizeaza protocolul de semnatura fara esec Pedersen - van Heyst cu p = 3467, α =4, a0 = 1567, β = 514 (valoarea lui a0 nu este cunsocuta de Bob).

• Folosind faptul ca a0 = 1567, determinati toate cheile posibileK = (γ1, γ2, a1, a2, b1, b2) astfel ca sigK(42) = (1118, 1449).

• Presupunem sigK(42) = (1118, 1449) si sigK(969) = (899, 471). Fara a utiliza valoarealui a0, determinati valoarea lui K (cea utilizata ın protocolul cu cheie one - time).

1.13 Bob foloseste protocolul de semnatura fara esec Pedersen - van Heyst cu p = 5087, α =25, β = 1866. Cheia este K = (5065, 5076, 144, 874, 1873, 2345). Se presupune ca Bob esteconfruntat cu semnatura (2219, 458) contrafacuta pe mesajul 4785.

• Aratati ca ea satisface conditia de verificare, deci este valida.

• Aratati cum poate Bob sa calculeze proba de autenticitate plecand de la aceasta semnatura.

Page 611: Criptografie complet

Bibliografie

[1] J. N. Bos, D. Chaum - Provably unforgable signatures; Lecture Notes in Computer Science,740(1993), 1− 14

[2] D. Chaum, H. van Antwerpen - Undeniable signatures; Lecture Notes in Computer Science,435(1990), 212− 216

[3] W. Diffie, M.E. Hellman - Multiuser cryptographic techniques; AFIPS Conference Proceed-ings, 45(1976), 109− 112

[4] T. El Gamal - A public key cryptosystem and a signature scheme based on discrete algo-rithms; IEEE Trans on Inf. Theory, 31(1985), 469− 472

[5] E. van Heyst, T.P.Petersen - How to make efficient fail-stop signatures; Lecture Notes inComputer Science, 658(1993), 366− 377

[6] C. J. Mitchell, F. Piper, P. Wild - Digital signatures; Contemporary Cryptology, The Scienceof Information Integrity, IEEE Press, (1992), 325− 378

[7] M. E. Smid, D. K. Branstad - Response to comments on the NIST proposed digital signa-ture standard; Lecture Notes in Computer Science, 740(1993), 76− 88

[8] D. Stinton - Cryptographie, Theorie and Practique, Int. Thompson Publishing (1995)

[9] Digital signature standard; national Bureau of Standards, FIPS Publications 186, 1994

19

Page 612: Criptografie complet

Prelegerea 3

Generatori de numere pseudo -aleatoare

3.1 Numere aleatoare si numere pseudo-aleatoare

Aproape toate sistemele de criptare si protocoalele folosite ın criptografie au un punct central:alegerea unor numere arbitrare, necunoscute apriori, imprevizibile; denumirea standard estenumere aleatoare sau numere generate aleator. In general nu se poate vorbi de un singurnumar aleator decat ıntr-un context statistic. Termenul corect este acela de sir de numerealeatoare.

Folosirea calculatorului reduce termenul de numere aleatoare la un sir de biti generatialeator, grupati dupa o anumita regula. Matematic, nu exista o modalitate mai scurta dea specifica sirul decat secventa ınsasi.

Statistica ofera destul de putine informatii despre bitii generati aleator. De exemplu, se stieca 0 trebuie sa apara la fel de frecvent ca 1, ca 00 trebuie sa apara de doua ori mai rar decat0 (sau 1) si la fel de des ca 11, 10, 01. Exista si teste statistice (χ2 - Kolmogorov) care aratacat de aleatoare sunt numerele dintr-un sir.

In criptografie este esential ca un numar aleator sa nu paota fi aflat. Un numar perfectaleator este acela pe care Oscar nu-l poate ghici decat prin forta bruta. O parte destul de im-portanta din criptanaliza se bazeaza pe exploatarea imperfectiunilor unor functii care genereazanumere aleatoare.

O generare de numere pur aleatoare se realizeaza prin colectarea si procesarea de dateobtinute dintr-o sursa de entropie exterioara calculatorului. Sursa de entropie poate fi foartesimpla, ca de exemplu variatiile miscarii mouse-ului, sau intervalul de timp dintre apasarea adoua taste. Surse foarte bune de entropie pot fi cele radioactive sau cele care folosesc zgomotedin atmosfera.

Proprietatea de a fi aleator a fost introdusa ın calculatoare cu ajutorul generatorilor denumere pseudo-aleatoare.

Definitia 3.1 Fie m, k (m − 1 ≥ k > 0) numere ıntregi. Un (k, m) generator de numerepseudo-aleatoare este o aplicatie recursiva

f : Zk2 −→ Zm

2

calculabila ın timp polinomial.

33

Page 613: Criptografie complet

34 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

In aplicatii, m se obtine din k printr-o aplicatie polinomiala.Un generator de numere pseudo-aleatoare trebuie sa satisfaca anumite cerinte:

• Sa fie simplu si rapid.

• Sa produca siruri de numere de lungime arbitrara care sa nu contina repetitii. Deoareceun calculator nu poate genera decat numere mai mici decat un numar dat, nu se poateconstrui un generator cu perioada infinita. Generatorul trebuie sa aiba totusi o perioadacat mai mare.

• Sa produca numere independente unul de altul (sau cu o corelare cat mai vaga).

• Sa genereze numere cu o repartitie uniforma.

Fie S un circuit secvential cu m = |S| stari si F = {f | f : S −→ S} multimea functiilor detranzitie. Un generator de numere pseudo-aleatoare este definit prin

xn = f(xn−1), x0 oarecare

Un astfel de generator este cu atat mai eficient cu cat satisface mai bine cerintele anetrioare.

3.2 Generatori simpli de numere pseudo-aleatoare

3.2.1 Generatori liniari congruentiali

Un astfel de generator (construit de Lehmer ın 1949) este definit de formula

xn+1 = axn + b (mod m)

Valorile a (multiplicatorul), b (incrementul) si m (modulul) sunt constante. Cheia de generareeste valoarea initiala x0.

Cand b = 0 generatorul se numeste multiplicativ.Din definitie rezulta imediat ca orice generator liniar congruential intra ıntr-o ciclare carei

lungime se numeste perioada. Evident ca perioada maxima a generator liniar este m. Ea poatefi atinsa pentru anumite valori ale perechii (a, b) (de exemplu daca (b,m) = 1). Un generatorcongruential liniar de perioada m se numeste generator de perioada maximala. O analiza astrategiei de selectie a valorilor pentru a asigura o perioada maxima se poate gasi ın [3] si [4].O analiza teoretica detaliata a generatorilor liniari congruentiali se gaseste ın [7].

In Tabelul 1 se afla listati cativa generatori de perioada maximala. Numerele pseudo-aleatoare obtinute nu depasesc valoarea de pe ultima coloana.

a b m Marime a b m Marime105 1283 6075 220 1277 24749 117128 228

211 1663 7875 221 2311 25367 120050 229

421 1663 7875 222 3877 29573 139968 230

430 2531 11979 223 8121 28411 134456 231

171 11213 53125 224 9301 49297 233280 232

141 28411 134456 225 2416 374441 1771875 233

421 17117 81000 226 17221 107839 510300 234

1093 18257 86436 227 84589 45989 217728 235

Tabelul 1

Page 614: Criptografie complet

3.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 35

Avantajul generatorilor liniari congruentiali este rapiditatea de calcul.O generalizare a relatiei de recurenta este

xn+k = (akxn + (ak − 1)c/b) (mod m)care da un generator de perioada maximala cand:

• (c,m) = 1;

• b = a− 1 este multiplu de p, pentru orice numar prim p care divide m;

• b (mod 4) = 0 daca m (mod 4) = 0.

Dezavantajul generatorilor liniari congruentiali este acela ca ei nu mai pot fi folositi ıncriptografie; stiind prima valoare, numerele pot fi gasite usor. Criptanaliza a fost realizata deJim Reeds ın 1977 (cu completari ın 1979) si Joan Boyar ın 1982. Ea a spart si generatoriipatratici

xn+1 = (ax2n + bxn + c) (mod m)

si cubicixn+1 = (ax3

n + bx2n + cxn + d) (mod m)

Alti cercetatori au extins metodele de atac pentru spargerea oricarui generator polinomialcongruential.

Acum, acest tip de generator de numere pseudo-aleatoare este folosit ın aplicatii necrip-tografice; de exemplu, ın simulare ele asigura o comportare statistica buna ın majoritateatestelor.

3.2.2 Generatori Ranrot

Clasa generatorilor Ranrot a fost definita de danezul Agner Fog ın 1997 ([2]), initial pentrualgoritmi Monte Carlo. Ea se bazeaza pe generatoare de numere Fibonacci, completate cuoperatia de rotatie pe biti. Sunt studiate trei tipuri de generatoare Ranrot:

• Tip A: xn = ((xn−j + xn−k) (mod 2b)) À r;

• Tip B: xn = ((xn−j À r1) + (xn−k À r2)) (mod 2b);

• Tip B3: xn = ((xn−i À r1) + (xn−j À r2) + (xn−k À r3)) (mod 2b);

• Tip W: zn = ((yn−j À r3) + (yn−k À r1)) (mod 2b/2),

yn = ((zn−j À r4) + (zn−k À r2)) (mod 2b/2),

xn = yn + zn · 2b/2.

S-au folosit urmatoarele conventii:

1. Toate numerele x sunt ıntregi binare pe b biti;

2. 0 < i < j < k ≤ n numere ıntregi;

3. α À s este rotatia secventei α spre dreapta cu s pozitii;

4. 0 ≤ ri ≤ b− 1 pentru primele doua tipuri, 0 ≤ bi ≤ b/2 pentru tipul W .

Page 615: Criptografie complet

36 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

Valorile sunt calculate ıntr-un vector (buffer) de k elemente, numit stare Sn.Starea initiala este

S1 = (x1, x2, . . . , xk)iar trecerea de la o stare la alta se realizeaza printr-o deplasare spre stanga de forma

(xn−k, xn−k+1, . . . , xn−1) −→ (xn−k+1, . . . , xn−1, xn)unde xn este calculat conform formulei specifice tipului sau.Fie p = (j, k). Daca p > 1, atunci sistemul se poate descompune ın p sisteme independente.

Deci o prima conditie de performanta este (j, k) = 1, ceea ce asigura interdependenta tuturornumerelor din stare.

Din acelasi motiv, la tipul W trebuie ca numarul k − j sa fie prim.Din modul de implementare al adunarii binare rezulta o scurgere de informatie (prin bitul de

transport - carry) de la bitii cei mai putin semnificativi catre cei mai semnificativi, informatiecare nu se transfera ın sens contrar. Pentru eliminarea acestui neajuns s-au ıncercat diversevariante, cum ar fi adunarea transportului la bitul cel mai putin semnificativ (ın loc de cel maisemnificativ) – operatie care ımbunatateste lungimea perioadei, dar nu si caracterul aleator.Varianta considerata a fost aceea de rotire a bitilor sumei rezultate. In plus, pentru ca toateelementele din S sa ramana interdependente, trebuie ca cel putin un r sa fie nenul. Prinexperimente s-a gasit ca cele mai bune valori pentru numarul de pozitii rotite este aproape deb

2pentru tipul A, de

b

3si

2b

3pentru tipul B si aproape de

b

4,

b

2,

3b

4pentru tipul B3.

Lungimea maxima a unei perioade la un generator Ranrot este (2k − 1) · 2b−1.Nu se cunoaste ınca un algoritm de obtinere de generatori Ranrot de perioada maximala;

cei cunoscutı au fost gasiti prin testari. Cel mai mare generator analizat are 232 stari.

Exemplul 3.1 Un generator Ranrot de tipul A cu j = 1, k = 4, b = 7, r = 4 are 24 cicluri deperioade 1, 5, 9, 11, 14, 21, 129, 6576, 8854, 16124, 17689, 135756, 310417, 392239, 488483,1126126, 1355840, 1965955, 4576377, 7402465, 8393724, 57549556, 184256986.

Importanta restrictiilor impuse diverselor tipuri de generatori Ranrot este listata ın Tabelul 2.

Regula A B B3 W(j, k) = 1 ((j, i) = (k, i) = 1) *** *** *** ***

1 < i < j < k − 1 ** * * *k − j impar - - - ***

un r 6= 0 *** *** *** **toti r 6= 0 *** ** * -r distincti - ** ** **

r > 1 *** ** * *(r, b) = 1 * * * *(b, k) = 1 * * * *

Tabelul 2

S-a notat cu − o regula fara importanta, ∗ - importanta minora, ∗∗ - nerespectarea ei duce laaparitia unor cicluri de perioada mica, ∗ ∗ ∗ - regula importanta.

In varianta initiala, si acesti generatori sunt usor de spart, deoarece starea initiala se poatededuce usor din k valori consecutive ale lui x. Daca ınsa parametrii nu se cunosc, generatoriiRanrot pot fi solositi cu succes ın criptografie, avand o securitate sporita.

Page 616: Criptografie complet

3.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 37

Exemplul 3.2 Sa consideram o varianta de generator Ranrot:xn = ((xn−1 À r1) + (Xn−2 À r2) + . . . + (xn−k À rk) + h) (mod 2b)

unde h este un numar ıntreg arbitrar. Pentru fiecare r sunt bk valori posibile, iar pentru0 ≤ h ≤ 2b. Astfel, pentru k = 17, b = 32 numarul de variante este 1, 6 · 1035

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 eficient generator de numere pseudo- aleatoare este Blum- Blum - Shub (numit si generator rezidual patratic).

Definitia 3.2 Fie p, q doua numere prime. Dacap ≡ 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 biti.Fie x0 un reziduu patratic modulo n. Se defineste secventa

si+1 = s2i (mod n)

Daca zi = si (mod 2) pentru 1 ≤ i ≤ m, atunci numarul aleator generat este

f(x0) = z1z2 . . . zm.

Generarea bitilor nu este de fapt recursiva, deoarece zi (1 ≤ i ≤ m) se poate calcula direct cuformula

zi = x2i (mod (p−1)(q−1))0 (mod 2)

Exemplul 3.3 Fie p = 383, q = 503; deci n = 192649. Alegand x0 = 1013552 (mod n) =20749, generatorul BBS va produce sirul pseudo-aleator 11001110000100111010. Detaliind

i 0 1 2 3 4 5 6 7 8 9 10si 20749 143135 177671 97048 89992 174051 80649 45663 69442 186894 177046zi − 1 1 0 0 1 1 1 0 0 0

i 11 12 13 14 15 16 17 18 19 20si 137922 123175 8630 114386 14863 133015 106065 45870 137171 48060zi 0 1 0 0 1 1 1 0 1 0

Securitatea acestui generator se bazeaza pe dificultatea factorizarii lui n. n poate fi facut public,oricine poate genera o secventa pseudo-aleatoare pe baza lui. Totusi, daca n nu se descompuneın factori, nimeni nu poate prezice iesirea; nici macar o afirmatie de genul: Urmatorul bit este1 cu probabilitate 51%.

Mai mult, fiind data o parte a secventei, nu exista nici o modalitate de a prezice bitulanterior sau cel ulterior secventei.

Page 617: Criptografie complet

38 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

Algoritmul BBS este destul de lent, dar are unele implementari mai rapide. Astfel, daca neste lungimea lui xi, pot fi pastrati ultimii blog2xic biti.

In acest moment BBS este considerat cel mai bun generator de numere pseudo-aleatoarepentru protocoale de generare si distributie a cheii.

3.3 Circuite liniare

Circuitele liniare1 sunt folosite pe scara larga ın teoria codurilor detectoare si corectoare deerori (codurile ciclice si codurile convolutionale) 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 decriptografie al guvernului norvegian. Pentru detalii si rezultate teoretice poate fi consultatcartea de teoria codurilor [1].

Un LFSR – (Linear Feedback Shift Register) este un circuit liniar format dintr-un registruserial si o functie de ıntoarcere (feedback). Daca registrul este compus din n flip-flopuri de date(DF − F ), vom avea un n− LFSR.

Functie de ıntoarcere

bn bn−1. . . b2 b1

-

????¾

6-

Functia de ıntoarcere este o adunare modulo 2 (XOR) a anumitor biti din registru; uneori eaeste numita configuratie Fibonacci (vezi generatoarele Ranrot).

Exemplul 3.4 Sa consideram un 4− LFSR dat de schema (poarta XOR s-a notat cu ⊕):

±°²¯

- - - -

?¾¾

6-

?

s s

+

Functia de ıntoarcere este formata dintr-un singur XOR ıntre primul si ultimul bit. Sa pre-supunem ca initial cei patru biti din registru sunt 1001. La fiecare tact se va obtine o nouaconfiguratie, anume:

0100, 0010, 0001, 1000, 1100, 1110, 1111, 0111, 1011, 0101, 1010, 1101, 0110, 0011dupa care apare din nou 1001.La iesire va apare secventa 1001000111101011. Acest circuit asigura un generator de pe-

rioada 16.

Un n−LFSR poate avea maxim 2n− 1 stari distincte (starea 00 . . . 0 este exclusa deoarece eaformeaza un ciclu de lungime 1, neinteresant pentru generarea de numere pseudo-aleatoare).

Fie g(X) ∈ Z2[X], g(X) = 1 + g1X + . . . + gnXn polinomul asociat unui n− LFSR, undegi = 1 daca si numai daca bitul i participa la o adunare modulo 2. Astfel, ın Exemplul 3.4polinomul este g(X) = 1 + X + X4.

1Termenul din engleza este Shift Register.

Page 618: Criptografie complet

3.4. GENERATORI BAZATI PE LFSR 39

Sa consideram un polinom g(X) ∈ Z2[X], grad(g(X)) = n si fie m cel mai mic numarastfel ca g(X)|Xm + 1. Atunci secventa binara generata de un n−LFSR asociat lui g(X) areperioada m (este o m - secvventa).

Daca g(X) este un polinom ireductibil peste Z2, atunci m = 2n−1, iar aceasta este valoareamaxima posibila (egaleaza numarul de stari distincte posibile din n− LFSR). Toate detaliileteoretice care justifica aceste afirmatii se gasesc ın [1].

Lema 3.1 Un polinom g(X) ∈ Z2[X] este ireductibil daca si numai daca

1. Are un numar impar de termeni;

2. Cel putin un termen este de forma X2p+1.

Demonstratie: Exercitiu.In [5] pag. 376 este dat un tabel cu aproape 300 polinoame ireductibile de diverse grade.

Evident, un n−LFSR este un generator de secvente, dar proprietatea lor pseudo-aleatoareeste extrem de slaba; o stare interna ofera urmatorii n biti din secventa de iesire. Chiar dacafunctia de ıntoarcere nu este cunoscuta, ea poate fi determinata pe baza a 2n biti de iesire(Algoritmul de decodificare Berlekamp - Massey). Totusi, prin combinarea mai multor circuiteLFSR se pot obtine generatori de numere aleatoare acceptabili.

3.4 Generatori bazati pe LFSR

3.4.1 Generatorul Geffe

Generatorul Geffe combina ıntr-o maniera neliniara trei LFSR, conform schemei urmatoare:

LFSR1

LFSR3

LFSR2

EMUX

-

-

-

6

-

0

1

LFSR1 formeaza functia de selectie a multiplexorului elementar, intrarile fiind asigurate decelelalte doua LFSR-uri. Daca a1, a2, a3 sunt iesirile din cele trei LFSR-uri, iesirea din gener-atorul Geffe este data de relatia

b = (a1 ∧ a2)⊕ (a1 ∧ a3)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 ıntre ele, perioadageneratorului Geffe este produsul celor trei perioade.

Din punct de vedere criptografic generatorul nu rezista unui atac prin corelare. Iesirea dingenerator coincide cu iesirea din LFSR2 cam 75% din timp. Deci, daca definitiile polinomialeale circuitelor sunt cunoscute se poate ghici valoarea initiala din LFSR2 si genera secventa sa

Page 619: Criptografie complet

40 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

de iesire. Apoi se numara de cate ori iesirea din LFSR2 coincide cu iesirea din generator. Dacanu s-a ghicit corect, cele doua secvente coincid cam 50%; daca s-a ghicit corect, ele coincid cam75%.

Similar, iesirea generatorului coincide cu cea din LFSR3 cam 75% din timp. Cu acestecorelari secventa poate fi ghicita complet. Intr-un articol din 1991, Zeng s.a. ([8]) arata cadaca polinoamele ireductibile au cate trei termeni iar cel mai mare LFRS este de lungime n,atunci o secventae 37n biti la iesirea din generator este suficienta pentru determinarea starilorinterne din toti LFSR.

Genratorul Geffe poate fi extins la 2k +1 LFSR legati printr-un MUXk. Acest lucru nu vamari ınsa securitatea generatorului.

3.4.2 Generatori ”Stop-and-Go”

• Cel mai cunoscut este generatorul Beth - Piper (dupa numele autorilor); structura sa esteurmatoarea:

LFSR3

LFSR2»

¼

¥

¦

¥

¦

»

¼

LFSR1

-6

-6

-

-

? - -6

-

6-- -6

s

s

CK

a1(t)a2(t)

a3(t)

b(t)

Acest generator controleaza ceasurile celor trei circuite. Astfel, ceasul de intrare ın LFSR2

este controlat de iesirea din LFSR1; ın acest fel, LFSR2 si schimba starea la momentult numai daca iesirea din LFSR1 a fost 1 la momentul t− 1.

Nu se cunosc studii asupra complexitatii 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:

LFSR3

LFSR2LFSR1

»

¼»

¼

»

¼

¥

¦

¡

¢

-

?-XX³³ e-

-

6-

6

-

-? -6

-

? -6

-

? -

-6

- -

s

s

s

CK

Cand iesirea din LFSR1 este 1 e activeaza LFSR2; ın caz contrar este activat LFSR3.Iesirea din generator este un XOR dintre cele doua iesiri.

Acest generator are o perioada mare. Exista un atac prin corelare asupra sa (mai precisasupra LFSR1), dar acesta nu a slabit substantial siguranta sa.

Page 620: Criptografie complet

3.5. ALTE GENERATOARE DE NUMERE PSEUDO-ALEATOARE 41

• Generator Gollmann: Este o legare seriala ”ın cascada” a mai multor circuite LFSR,ceasul fiecarui LFSR fiind controlat de circuitul anterior.

LFSR1

»

¼

¥

¦

¡

¢

»

¼LFSR2

»

¼

¥

¦

¡

¢

»

¼LFSR2

¡

¢

·

¸

¥

¦

¡

¢-

6-

6-

6

- - -

? -6

- - -

? -6

?- 6-

?- 6-

?-- -

s s

s

s

s

1

CK . . .

. . .

Daca la momentul t − 1 iesirea din LFSRi este 1, atunci la momentul t este activatLFSRi+1. Iesirea din generator este iesirea din ultimul LFSR. Daca toate circuiteleliniare au aceiasi lungime n, complecitatea unui generator Gollmann cu k LFSR-uri este

n · (2n − 1)k−1

3.5 Alte generatoare de numere pseudo-aleatoare

3.5.1 Generatorul Mother-of-all

Este un generator propus de George Marsaglia.Initial se aleg cinci numere ıntregi x0, x1, x2, x3, c (nu toate nule), stocate pe 32 biti fiecare.Algoritmul este:

1. n ←− 4;

2. while n ≤ MAX do

(a) S ←− 2111111111 · xn−4 + 1492 · xn−3 + 1776 · xn−2 + 5115 · xn−1 + c;

(b) xn ←− S (mod 232), c ←−⌊

S

232

⌋;

(c) n ←− n + 1;

Suma intermediara S este stocata pe 64 biti. Valoarea MAX este stabilita ın functie delungimea secventei de numere pseudo-aleatoare generate.

Implementat ın limbaj de asamblare, algoritmul este extrem de rapid, deoarece aici existao instructiune de ınmultire a doua numere ıntregi pe 32 biti fiecare, cu rezultatul pe 64 biti.Scris ıntr-un limbaj de nivel ınalt, algoritmul foloseste numere ın virgula mobila cu o mantisade 63 biti.

3.5.2 Generatorul Blum - Micali

Fie g un numar prim, p un numar prim impar si x0 o valoare initiala. Se genereaza numerelexi+1 = gxi (mod p)

Iesirea din generator este 1 daca xi <p− 1

2si 0 altfel.

Securitatea acestui sistem se bazeaza pe problema logaritmului discret. Daca p este suficientde mare astfel ca problema logaritmului discret sa fie dificila, generatorul este sigur.

Page 621: Criptografie complet

42 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

3.5.3 Generator RSA

Sistemul de criptare RSA poate fi folosit si pentru generare de numere aleatoare.Fie n = pq un modul obtinut prin produsul a doua numere prime mari, un numar e astfel

ca (e, (p− 1) · (q − 1)) = 1 si x0 o valoare initiala (x0 < n). Se definestexi+1 = xe

i (mod n)Iesirea din generator este zi = xi (mod 2).Securitatea generatorului se bazeaza pe dificultatea spargerii sistemului RSA. Daca n este

suficient de mare, sistemul este sigur.

3.6 Securitatea generatorilor de numere pseudo-aleatoare

Definitia 3.3 Fie Xn, Yn doua distributii de probabilitate pe {0, 1}n. Notam t ∈ Xn atuncicand t este ales astfel ca ∀z ∈ {0, 1}n,

Pr(x = z) = Xn(z)Spunem ca {Xn} este inseparabil de {Yn} ın timp polinomial daca pentru orice algoritm

probabilist A si orice polinom Q exista n0 astfel ca ∀n (n > n0) sa avem

|Prt∈Xn(A(t) = 1)− Prt∈Yn(A(t) = 1)| < 1

Q(n)

Conditia de inseparabilitate spune ca pentru siruri suficient de lungi nu exista un algoritmprobabilist care sa decida daca sirul a fost selectat urmand distributia Xn sau Yn. Intuitiv, nuse poate face distinctie ıntre distributia aleatoare si cea uniforma.

Vom nota cu Un distributia uniforma pe {0, 1}n; adica ∀α ∈ {0, 1}n,

Prx∈Un(x = α) =1

2n

Definitia 3.4 Sirul {Xn} este pseudo-aleator daca este inseparabil ın timp polinomial de {Un}.

Algoritmul A din Definitia 3.3 este numit test statistic ın timp polinomial. Exemple de testestatistice se gasesc ın [3]. De asemenea, Marsaglia a construit ın 1996 pachete de teste folositeastazi ca standard de securitate pentru generatorii de numere pseudo-aleatoare.

Definitia 3.5 Un program determinist ın timp polinomialG : {0, 1}k −→ {0, 1}p

este un generator pseudo-aleator (PSRG) daca verifica urmatoarele conditii;

1. p > k;

2. {Gp}p este pseudo-aleator, unde Gp este distributia pe {0, 1}p obtinuta astfel:

(a) pentru a obtine t ∈ G se alege x ∈ U ;

(b) se defineste t = G(x).

Adica, pentru orice algoritm probabilist A si orice polinom Q avem∣∣∣Prt∈Xn(A(t) = 1)− Prt∈Up(A(t) = 1)∣∣∣ <

1

Q(p)

Page 622: Criptografie complet

Bibliografie

[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 StreamCipher Cryptography, IEEE Computer, 24 (1991), 8.17.

43

Page 623: Criptografie complet

Prelegerea 4

Protocoale de distribuire a cheilor

4.1 Introducere

Am vazut ca sistemele bazate pe chei publice nu necesita un canal sigur pentru transmitereaunei chei private. Aceste avantaj este compensat ınsa de faptul ca un canal cu cheie publica estemult mai lent decat unul cu cheie privata, el necesitand protocoale, procedee de autentificareetc.

In aceasta prelegere vom aborda aceasta problema, de stabilire a unor modalitati de aschimba mesaje ıntre mai multi utilizatori, folosind protocoale rapide, fiecare avand propria sacheie privata. Protocoalele vor consta din doua parti principale:

1. Distribuirea cheilor: un protocol prin care o persoana alege cheia privata si o transmitemai departe.

2. Punerea de acord: toti participantii stabilesc o cheie privata folosind un canal public.

Baza de comunicare consta dintr-o retea (nesigura) care leaga n utilizatori. In general sepresupune ca exista o autoritate A numita arbitru, considerata apriori ca fiind onesta; eava verifica identitatile utilizatorilor, alegerea si transmiterea cheilor initiale, precum si alteprobleme curente.

Deoarece reteaua nu este sigura, participantii trebuie sa prevada unele atacuri din partealui Oscar. Acesta poate fi pasiv (adica doar sa intercepteze mesaje) sau activ. Un adversaractiv este capabil sa:

• modifice un mesaj ın cursul transmisiei;

• transmita mesaje vechi;

• ıncerce sa se prezinte ca unul din utilizatorii retelei.

Obiectivul lui Oscar este:

• Sa ıi faca pe U si V sa accepte o cheie invalida

• Sa ıi faca pe U si V sa creada ca au schimbat chei ıntre ei.

Scopul protocolului de distributie a cheilor sau al punerii de acord este ca ın final cei doiparticipanti sa detina aceasi cheie K, necunoscuta de ceilalti participanti (exceptand eventualA).

43

Page 624: Criptografie complet

44 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

4.2 Predistribuirea cheilor

Initial are loc o etapa de predistribuire a cheilor: pentru orice pereche de utilizatori (U, V ),arbitrul A alege aleator o cheie KU,V = KV,U pe care o transmite ın prealabil lui U si Vprintr-un canal sigur (neutilizat pentru comunicatiile uzuale).

Deci, ın aceasta faza, A genereaza C2n chei pe care le distribuie celor n utilizatori. Fiecare

utilizator trebuie sa pastreze cheia sa precum si cele n − 1 chei de comunicatie cu ceilaltiutilizatori.

Aceasta etapa este sigura, dar ridica o serie de probleme cum ar fi:

• existenta de canale sigure ıntre A si fiecare din cei n participanti;

• obligatia pentru fiecare participant sa stocheze n− 1 chei si sa participe la C2n transmisii

de chei solicitate de arbitru. Chiar pentru o retea mica, acest lucru devine destul dedificil.

Scopul protocoalelor prezentate mai departe este de a micsora (fara a periclita siguranta comu-nicarii) cantitatea de informatie care trebuie transmisa.

4.2.1 Protocolul Blom

Fie n (n ≥ 3) utilizatori si p (p ≥ n) un numar prim. Fiecare cheie este un element din Zp.Se alege un numar ıntreg k, (1 ≤ k ≤ n − 2). Valoarea lui k este numarul maxim de intrusiOscar contra carora trebuie construita protectia. In procedeul Blom, A transmite printr-uncanal sigur k + 1 elemente din Zp fiecarui utilizator (ın loc de n− 1 chei ın varianta generala).Fiecare pereche de utilizatori (U, V ) poate calcula o cheie KU,V = KV,U . Conditia de securitateeste: orice coalitie de k utilizatori diferiti de U si V nu poate obtine informatii despre KU,V .

Pentru cazul k = 1 protocolul Blom este:

1. Se alege public un numar prim p si pentru fiecare utilizatorU se alege rU ∈ Zp. Numerele rU sunt distincte.

2. A alege aleator trei numere a, b, c ∈ Zp si formeaza polinomulf(x, y) = a + b(x + y) + cxy (mod p)

3. Pentru fiecare utilizator U , A determina polinomulgU(x) = f(x, rU) (mod p)

si transmite gU(x) lui U printr-un canal sigur.

4. Daca U si V doresc sa comunice, cheia lor privata esteKU,V = KV,U = f(rU , rV )

Observatii:

• Aplicatia gU(x) de la pasul 3 este o aplicatie afina, de forma gU(x) = aU + bux, unde

aU = a + brU (mod p), bU = b + crU (mod p).

Page 625: Criptografie complet

4.2. PREDISTRIBUIREA CHEILOR 45

• La pasul 4, U poate calcula cheia privata KU,V = f(rU , rV ) = gU(rV ), iar V – ın modsimilar – KV,U = f(rU , rV ) = gV (rU).

Exemplul 4.1 Sa presupunem ca sunt 3 utilizatori U, V, W si p = 17. Cheile lor publice suntrU = 12, rV = 7, rW = 1.Presupunem ca arbitrul alege a = 8, b = 7, c = 2. Atunci

f(x, y) = 8 + 7(x + y) + 2xyPolinoamele g sunt acum

gU(x) = 7 + 14x, gV (x) = 6 + 4x, gW (x) = 15 + 9x.Cele trei chei private sunt KU,V = 3, KU,W = 4, KV,W = 10.U poate calcula KU,V prin gU(rV ) = 7 + 14 · 7 = 3 (mod 17);V poate calcula KV,U prin gV (rU) = 6 + 4 · 12 = 3 (mod 17).

Sa aratam ca nici un utilizator nu poate obtine informatie asupra cheilor private ale celorlaltiutilizatori.

Teorema 4.1 Protocolul Blom pentru k = 1 este neconditionat sigur contra oricarui atacindividual.

Demonstratie: Sa presupunem ca utilizatorul W doreste sa calculeze cheia KU,V = a + b(rU +rV ) + crUrV mod p.

Valorile rU si rV sunt publice, dar a, b, c sunt secrete. W cunoaste propriile sale valoriaW = a + brW , bW = b + crW (mod p), care sunt coeficientii propriului sau polinom gW (x).

Vom arata ca informatia detinuta de W este consistenta cu orice valoare posibila m ∈ Zp acheii KU,V . Deci W nu poate obtine nici o informatie asupra cheii KU,V . Sa consideram ecuatiamatriciala ın Zp:

1 rU + rV rUrV

1 rW 00 1 rW

abc

=

maW

bW

Prima ecuatie este de fapt KU,V = m, iar celelalte doua dau informatia furnizata de gW (x)despre a, b, c.

Determinantul matricii ester2W + rUrV − (rU + rV )rW = (rW − rU)(rW − rV )

unde toate calculele sunt efectuate ın Zp. Cum rW este distinct de rU si rV , acest determinanteste nenul, deci sistemul admite o solutie unica (a, b, c). Cu alte cuvinte, orice valoare m ∈ Zp

este compatibila cu informatia deja detinuta de W . 2

O coalitie ıntre doi utilizatori W,X poate conduce la aflarea cheii KU,V . W si X stiu ca:aW = a + brW

bW = b + crW

aX = a + brX

bX = b + crX

Acesta este un sistem de 4 ecuatii cu 3 necunoscute, din care se poate afla imediat solutiaunica (a, b, c). Dupa ce s-au aflat aceste trei valori, se poate construi polinomul f(x, y), dincare se poate determina mai departe restul informatiei.

Page 626: Criptografie complet

46 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

Acest protocol poate fi generalizat pentru a rezista la atacul unei aliante de k utilizatori.Singura modificare se face la pasul 2, unde arbitrul foloseste polinomul

f(x, y) =k∑

i=0

k∑

j=0

ai,jxiyj (mod p)

unde ai,j ∈ Zp (0 ≤ i ≤ k, 0 ≤ j ≤ k) si ai,j = aj,i pentru orice i si j.

4.2.2 Protocolul Diffie - Hellman

Este un protocol celebru, des folosit, bazat pe problema logaritmului discret.

Vom folosi grupul Zp unde p este numar prim (desi constructia functioneaza pentru oricegrup finit ın care problema logaritmului discret este dificila) si fie α ∈ Zp un element primitiv.p si α sunt publice.

ID(U) este o informatie capabila sa identifice utilizatorul U ın retea (numele, adresa elec-tronica, numarul de telefon etc). Orice utilizator U dispune de un numar secret aU (0 ≤ aU ≤p− 2), putand sa calculeze

bU = αaU (mod p)

Arbitrul A dispune de un algoritm de semnatura secret sigA si o procedura de verificarepublica verA. Mai presupunem implicit ca datele au fost ın prealabil supuse unei functii dedispersie criptografice h pe care – pentru simplificarea scrierii – nu o mai mentionam explicit.

Anumite informatii despre utilizatorul U sunt autentificate folosind un certificat care continesi amprenta (semnatura) arbitrului; un certificat este o definit ca o secventa de forma

C(U) = (ID(U), bU , sigA(id(U), bU)).

De remarcat ca arbitrul nu trebuie sa cunoasca aU pentru a produce certificatul. Cand Uintra ın retea, se genereaza un astfel de certificat, care poate fi pastrat ın baza de date saupoate fi comunicat chiar de U la fiecare utilizare. Semnatura lui A permite oricui sa verificeautenticitatea informatiei pe care o contine.

O cheie privata pentru U si V este definita

KU,V = αaUaV (mod p).

Ea poate fi construita atat de U , prin KU,V = baUV (mod p) cat si de V prin KU,V =

baVU (mod p) (reamintim, aU , aV sunt private, bU , bV sunt publice).

Exemplul 4.2 Sa presupunem p = 25307 si α = 2. Daca luam aU = 3578, vom avea bU =23578 = 6113 (mod 25307), valoare pusa ın certificatul lui U .

Sa presupunem ca V alege aV = 19956; atuncibV = 219956 = 7984 (mod 25307).

U poate calcula cheia comuna KU,V = 79843578 = 3694 (mod 25307).

Aceiasi cheie este calculata si de V :KU,V = 611319956 = 3694 (mod 25307).

Page 627: Criptografie complet

4.3. KERBEROS 47

Sa studiem securitatea acestui protocol contra unui atac (activ sau pasiv). Semnatura luiA pe certificate ımpiedica producerea de informatii publice false. Deci vor ramane ın discutienumai atacurile pasive, care se reduc la problema: W poate determina KU,V daca nu este Usau V ? Altfel spus: fiind date αaU si αuV , ambele (mod p), se poate calcula αaUaV (mod p) ?

Aceasta este cunoscuta si sub numele de problema Diffie - Hellman, formulata astfel:

Fie I = (p, α, β, γ) unde p este numar prim, α ∈ Zp este primitiv, iar β, γ ∈ Z∗p .

Se poate determina βlogαγ (mod p) ?(sau – echivalent, γlogαβ (mod p))

Evident, securitatea protocolului Diffie - Hellman de predistribuire a cheii fata de atacurilepasive este echivalent cu dificultatea problemei Diffie - Hellman.

Daca W poate calcula aU (sau aV ) plecand de la bU (bV ), el poate deduce KU,V asa cumface U (respectiv V ). Aceasta conduce la rezolvarea unei probleme de logaritm discret. Deci,daca problema logaritmului discret ın Zp este dificila, atunci protocolul de predistribuire a cheiiDiffie - Hellman nu poate fi atacat. Conjectura este aceea ca problema Diffie - Hellman esteechivalenta cu problema logaritmului discret (asa cum s-a conjecturat ca spargerea sistemuluiRSA este echivalenta cu factorizarea unui numar).

Teorema 4.2 A sparge sistemul de criptare El Gamal este echivalent cu a rezolva problemaDiffie - Hellman.

Demonstratie: 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 ∈ Zp se facealegand aleator un numar k ∈ Zp−1; apoi eK(x, p) = (y1, y2) unde

y1 = αk (mod p), y2 = xβk (mod p)

Pentru y1, y2 ∈ Z∗p , decriptarea este definita prin

dK(y1, y2) = y2(ya1)−1 (mod p)

Sa presupunem ca dispunem de un algoritmA care rezolva problema Diffie - Hellman si ıncercamun atac asupra mesajului criptat (y1, y2). Aplicand A asupra intrarilor p, α, y1 si β avem:

A(p, α, y1, β) = A(p, α, αk, αa) = αka = βk (mod p)De aici rezulta x = y2(β

k)−1 (mod p), deci se poate decripta mesajul (y1, y2).Invers, sa presupunem ca dispunem de un algoritm B de decrptare pentru sistemul El Gamal.

Deci B admite la intrare (p, α, β, y1, y2) si calculeaza

x = y2

(ylogαβ

1

)−1(mod p).

Fiind data o aparitie (p, α, β, γ) a problemei Diffie - Hellman, se poate calcula usor

B(p, α, β, γ, 1)−1 = 1((

γlogαβ)−1

)−1

= γlogαβ (mod p)2

4.3 Kerberos

Un punct slab ın metodele de predistribuire a cheilor prezentate este acela ca fiecare perechede utilizatori primeste mereu aceeasi cheie. Acest lucru, pe o perioada de timp mai lungapericiliteaza confidentialitatea cheii. Este mult mai indicat sa se calculeze cate o cheie noua(freshness) pentru fiecare contact direct.

Page 628: Criptografie complet

48 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

In plus, daca se utilizeaza o distributie a cheilor ın direct, nici un utilizator nu va mai finevoit sa stocheze cheile de comunicare cu ceilalti utilizatori (ınafara cheii de comunicare cuarbitrul, bineınteles). Cheile de sesiune sunt transmise la simpla solicitare a lui A. Tot arbitruleste responsabil de noutatea cheii livrate.

Kerberos este unul din cele mai raspandite sisteme de gestiune a cheilor. Sa prezentamprotocolul de fabricare a cheilor de sesiune asigurat de acest sistem.

Fiecare utilizator U ımparte cu arbitrul o cheie DES notata KU . Ultimele versiuni folosescmodul CBC de implementare a sistemului DES.

ID(U) reprezinta o informatie publica care identifica utilizatorul U . La solicitarea lui U dea comunica cu V , arbitrul efectueaza urmatorii pasi:

• Genereaza o cheie K;

• Inregistreaza ora T a cererii;

• Stabileste o durata L de validitate a lui K; deci cheia de sesiune este valida ın intervalulde timp [T, T + L].

Aceste informatii sunt transmise de A lui U , apoi V . Protocolul Kerberos este urmatorul:

1. A genereaza K, T si L.

2. A calculeazam1 = eKU

(K, ID(V ), T, L), m2 = eKV(K, ID(U), T, L)

pe care le trimite lui U .

3. U calculeaza dKU(m1) si afla K,T, L, ID(V ). Pe urma calculeaza

m3 = eK(ID(U), T )

si trimite lui V mesajele m2 si m3.

4. V afla K, T, L, ID(U) din dKV(m2) si T, ID(U) din dKV

(m2). Verifica daca celedoua valori pentru T si ID(U) sunt identice.

5. V calculeazam4 = eK(T + 1)

pe care ıl trimite lui U .

6. U calculeaza dK(m4) si verifica daca este T + 1.

Fiecare din cele patru mesaje mi transmise are rolul sau bine determinat. Astfel, m1 si m2

servesc la transmiterea confidentiala a cheii K. La randul lor, m3 si m4 asigura o confirmare acheii; 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 ınregistrareaunor 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 renuntarea treptata la sistemul Kerberos.

Page 629: Criptografie complet

4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 49

4.4 Schimbul de chei Diffie - Hellman

Daca nu se accepta un furnizor universal de chei, atunci va trebui stabilit un protocol de punerede acord. Primul si cel mai cunoscut astfel de protocol este protocolul de schimb de chei Diffie- Hellman.

Fie p numar prim si α ∈ Zp un element primitiv, ambele publice; eventual ele sunt alese deU si comunicate lui V . Protocolul de schimb este urmatorul:

1. U alege aleator aU ∈ [0, p− 2];

2. U calculeaza αaU (mod p) si ıl trimite lui V ;

3. V alege aleator aV ∈ [0, p− 2];

4. V calculeaza αaV (mod p) si ıl trimite lui U ;

5. U calculeaza K = (αaV )aU (mod p) iar V calculeaza K = (αaU )aV (mod p)

La sfarsitul protocolului, U si V obtin aceeasi cheie K = αaUaV (mod p). Procedeul esteasemanator cu cel de predistribuire a cheii, cu diferenta ca exponentii aU si aV se schimba lafiecare sesiune.

4.4.1 Protocol ıntre statii

Protocolul Diffie - Hellman se efectueaza dupa schema urmatoare:

-

¾U VαaV

αaU

Acest protocol este ınsa vulnerabil la un atac activ al unui intrus W , care se interpune ıntre Usi V ın modul urmator:

- -

¾¾U W Vαa′V

αaU αa′U

αaV

W intercepteaza mesajele lui U si V si le ınlocuieste cu ale sale. La sfarsitul lui, W a stabilito cheie de comunicatie αaUa′V cu U si o cheie αa′UaV cu V . Cand U doreste sa trimita un mesajlui V , el va utliliza cheia pe care o ımparte cu W ; acesta poate decripta mesajul si apoi sa ılcripteze cu cheia comuna cu V . Acesta primeste mesajul, fara sa realizeze ca a fost citit de W .

Acelasi lucru se ıntampla ın cazul unui mesaj trimis de V catre U .

Este necesar deci ca utilizatorii sa si autentifice punerea de acord a protocolului de stabilirea cheilor. Acesta va fi numit protocol de punere de acord autentificat. Un astfel de acord, bazatpe schimbul de chei Diffie - Helmann este numit protocol ıntre statii (STS) si este construit deDiffie, Van Oorschot si Wiener. O varianta STS simplificata este:

Page 630: Criptografie complet

50 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

1. U genereaza aleator un numar aU ∈ [0, p− 2]; apoi calculeaza numarul αaU (mod p)pe care ıl trimite lui V ;

2. V genereaza aleator un numar aV ∈ [0, p− 2];

3. V calculeaza αaV (mod p), apoi K = (αaU )aV (mod p) si yV = sigV (αaV , αaU ).

Trimite lui U mesajul (C(V ), αaV (mod p), yV ).

4. U calculeaza K = (αaV )aU (mod p) si verifica C(V ) cu verA, apoi yV cu verV extrasdin C(V );

5. U calculeaza yU = sigU(αaU , αaV ) si trimite lui V mesajul (C(U), yU);

6. V verifica C(U) cu verA, apoi yU cu verU extras din C(U).

In aceasta schema, numarul prim p si elementul primitiv α ∈ Zp sunt publice. Fiecare utilizatorU dispune de un protocol privat de semnatura sigU si unul public de verificare verU . ArbitrulA are de asemenea asociate functiile sigA respectiv verA. Certificatul lui U este

C(U) = (ID(U), verU , sigA(ID(U), verU))Informatiile schimbate ın cadrul protocolului STS simplificat sunt schematizate de diagrama

urmatoare:

-

U V

αaU

αaV , sigV (αaV , αaU )sigU(αaU , αaV )

Prin acest protocol, un intrus W nu se mai poate interpune ıntre U si V . Intr-adevar, daca W in-tercepteaza αaU si ıl ınlocuieste cu αa′U , el va trebui sa ınlocuiasca de asemenea si sigV (αaV , αa′U )cu sigV (αa′V , αaU ), ceea ce nu poate decat ın cazul aU = a′U si aV = a′V (pentru ca nu cunoastesigV ).

La fel, W nu poate ınlocui sigU(αa′U , αaV ) cu sigU(αaU , αa′V ), pentru ca nu cunoaste sigV .

Varianta aceasta de protocol nu ofera totusi o confirmare a cheii. Pentru aceasta trebuiemodificat yV = eK(sigV (αaV , αaU )) ın pasul 3 si yU = eK(sigU(αaU , αaV )) ın pasul 5.

In acest fel, ca la Kerberos, se obtine o confirmare a cheii decriptand o parte cunoscuta acheii 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, bazatepe schimbul de chei Diffie - Hellman. Aceste protocoale – numite MTI – necesita doar douaschimburi de informatii ıntre U si V (cate unul pe fiecare sens) si nu folosesc protocoale desemnatura.

Unul din protocoalele MTI este definit astfel:Fie p un numar prim si α ∈ Zp un element primitiv, ambele publice. Fiecare utilizator

U poseda un identificator ID(U), un exponent secret aU ∈ [0, p − 2] si o valoare publicabU = αaU (mod p).

Page 631: Criptografie complet

4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 51

Arbitrul dispune de un protocol de semnatura sigA si unul de semnatura verA.Fiecare utilizator poseda un certificat

C(U) = (ID(U), bU , sigA(ID(U), bU)).Protocolul MTI este dat mai jos. In urma lui, utilizatorii U si V obtin aceeasi cheie

K = αrUaV +rV aU (mod p).

1. U selecteaza aleator rU ∈ [0, p− 2], calculeazasU = αrU (mod p) si trimite lui V (C(U), sU).

2. V selecteaza aleator rV ∈ [0, p− 2], calculeazasV = αrV (mod p) si trimite lui U (C(V ), sV ).

3. U calculeaza K = saUV brU

V (mod p), iar V calculeaza K = saVU brV

U (mod p).

Exemplul 4.3 Sa luam p = 27803 si α = 5. Daca U alege aU = 21131, el va calcula bU =521131 = 21420 (mod 27803), pe care ıl pune ın certificatul sau. La fel, daca V alege aV = 17555,va avea bV = 517555 = 17100 (mod 27803)

Presupunem ca U selecteaza rU = 169; el va trimite lui VsU = 5169 = 6268 (mod 27803).

Daca V alege rV = 23456, el trimite lui UsV = 523456 = 26759 (mod 27803).

Acum se poate calculaKU,V = saU

V brUV (mod p) = 267592113117100169 = 21600 (mod 27803)

Aceeasi cheie 21600 o obtine si V .

Semnatura arbitrului elimina posibilitatea interpunerii lui Oscar. Intr-adevar, daca un intrusW se interpune ıntre U si V , va avea loc scenariul

- -¾¾U W VC(V ), αr′V

C(U), αrU C(U), αr′U

C(V ), αrV

In acest moment, U si V vor calcula chei diferite: U calculeaza K = αrUaV +rV′aU (mod p),

iar V calculeazaK = αrU′aV +rV aU (mod p). In plus, nici una din cheile lui U sau V nu pot fi

calculate de W , pentru ca aceasta ar solicita cunoasterea exponentului secret aU respectiv aV .Deci, desi U si V obtin chei distincte, nici una din ele nu poate fi calculata si de W (ın ipotezaca problema logaritmului discret este dificila). Altfel spus, U si V sunt siguri ca nici o altapersoana nu poate calcula cheia. Aceasta proprietate este numita autentificare implicita.

Pentru atacuri pasive, securitatea sistemului MTI se reduce tot la dificultatea problemeiDiffie - Hellman.

4.4.3 Chei auto-certificate

Metoda punerii de acord prezentata ın acest paragraf este construita de Girault; ea nu necesitacertificat. Valoarea cheii publice asigura o autentificare implicita.

Protocolul lui Girault combina proprietat ile sistemului RSA cu cele ale logaritmului discret.Fie n = pq unde p = 2p1 + 1, q = 2q1 + 1 sunt numere prime sigure (p1, q1 sunt numere prime

Page 632: Criptografie complet

52 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

distincte). Cum grupul multiplicativ Z∗n este izomorf cu Zp×Zq, ordinul maxim al unui element

din Z∗n este deci cmmmc(p−1, q−1) = 2p1q1. Fie α ∈ Z∗

n de ordin 2p1q1. Vom utiliza problemalogaritmului discret ın subgrupul ciclic al lui Z∗

n, generat de α.In acest protocol, factorizarea n = pq este cunoscuta numai de catre arbitru. Valorile n, α

sunt publice, iar p, q sunt secrete (deci si p1, q1). A alege un exponent de criptare RSA public,sa spunem e. Exponentul de decriptare d = e−1 (mod φ(n)) este secret.

Fiecare utilizator U are un identificator C(U) si primeste de la A o cheie publica auto-certificata pU conform urmatorului protocol:

1. U alege un exponent secret aU si calculeaza bU = αaU (mod n);

2. U trimite lui A valorile aU si bU ;

3. A calculeaza pU = (bU − ID(U))d (mod n), pe care ıl trimite lui U .

De remarcat aportul arbitrului ın calculul lui pU . Se observa ca

bU = peU + ID(U) (mod n)

poate fi calculat folosind numai informatiile publice.Protocolul lui Girault este dat mai jos. Schematizat, schimbul de informatii arata ın felul

urmator:-

¾U VID(V ), pV , αrV (mod n)

ID(U), pU , αrU (mod n)

La sfarsitul acestui protocol, U si V dispun de aceeasi cheie:K = αrUaV +rV aU (mod n).

1. U alege aleator rU si calculeaza sU = αrU (mod n);

tripletul (ID(U), pU , sU) este trimis lui V .

2. V alege aleator rV si calculeaza sV = αrV (mod n);

tripletul (ID(V ), pV , sV ) este trimis lui U .

3. U calculeaza cheia K = saUV (pe

V + ID(V ))rU (mod n).Cheia calculata de V este K = saV

U (peU + ID(U))rV (mod n).

Exemplul 4.4 Sa presupunem p = 839 si q = 863. Vom avea n = 724057 si φ(n) = 722356.Elementul α = 5 are ordinul 2p1q1 = φ(n)/2.

Daca arbitrul A alege e = 84453 drept exponent de criptare, vom avea d = 125777.Daca ID(U) = 500021 si aU = 111899, vom avea bU = 488889 si pU = 650704. In mod

similar, consideram ID(V ) = 500022 si aV = 123456, deci bV = 111692, pV = 683556.Daca U si V vor sa stabileasca o cheie comuna si U alege numarul rU = 56381, iar V

numarul rV = 356935, vom avea sU = 171007, sV = 320688.Dupa protocol, cei doi vor dispune de cheia K = 42869.

Page 633: Criptografie complet

4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 53

Sa studiem putin evitarea atacurilor cu acest sistem de chei auto-certificate.Cum valorile bU , pU , ID(U) nu sunt semnate de A, nimeni nu poate verifica direct autentic-

itatea lor. Sa presupunem ca ele provin de la W (fara ajutorul arbitrului), care vrea sa se deadrept U . Daca W furnizeaza ID(U) si daca pU conduce la un bU

′ gresit, nu se poate calculaexponentul aU

′ asociat (daca problema logaritmului discret este dificila). Fara aU′, W nu poate

determina cheia.O situatie similara apare daca W se interpune ıntre U si V . El poate ımpiedica pe U si

V sa obtina o cheie comuna, dar nu poate efectua calculele lor. Are loc deci o autentificareimplicita, ca la MTI.

O ıntrebare ar fi: De ce U trebuie sa comunice arbitrului valoarea aU ? A poate determinapU plecand de la bU , fara sa cunoasca aU . Acest lucru se face pentru ca arbitrul sa fie convinsca U poseda aU , ınainte de a calcula pU .

Daca A nu face aceasta verificare ınainte de calculul lui pU , sistemul poate fi atacat.Sa presupunem ca W alege un a′U fals si determina bU

′ = αa′U (mod n). Cu ele, stabileste ocheie publica falsa p′U = (b′U − ID(U))d (mod n) ın felul urmator:

W calculeaza bW′ = BU

′ − ID(U) + ID(W ) si trimite lui A perechea (bW′, ID(W )). Pre-

supunem ca arbitrul calculeaza efectiv pentru W valoarea pW′ = (bW

′ − ID(W ))d (mod n).Atunci, din

bW′ − ID(W ) ≡ bU

′ − ID(U) (mod n)se obtine imediat pW

′ = pU′.

Sa presupunem acum ca U si V efectueaza protocolul, iar W se interpune conform schemeiurmatoare:

- -

¾¾U W VID(V ), pV , αrV mod n

ID(U), pU , αrU mod n ID(U), pU′, αr′U mod n

ID(V ), pV , αrV mod n

V calculeaza deci cheia K ′ = αr′UaV +rV a′U (mod n), iar U calculeaza K = αrUaV +rV aU (mod n).

W obtine K ′ calculand K ′ = sa′UV (pe

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 .

Page 634: Criptografie complet

Prelegerea 5

Sisteme de partajare a secretelor

5.1 Sistemul confidential al lui Shamir

Intr-o banca, seiful trebuie deschis ın fiecare zi. Banca are trei directori, dar nu ıncredinteazacombinatia seifului nici unuia din ei. Ea doreste sa dispuna de un sistem de acces prin careorice asociere de doi directori sa poata deschide seiful, dar acest lucru sa fie imposibil pentruunul singur.

Ca un exemplu, conform revistei Time Magazin (4 mai 1992), ın Rusia, accesul la armanucleara utilizeaza un astfel de sistem doi - din - trei. Cele trei persoane sunt Presedinteletarii, Presedintele Parlamentului si Ministrul Apararii.

Sa prezentam ıntai un sistem de partajare a secretului numit sistem confidential.1

Definitia 5.1 Fie t, w doua numere ıntregi pozitive, t ≤ w. Un sistem confidential (t, w) esteo metoda de partajare a unei chei K ıntre membrii unei multimi P de w participanti, astfelıncat orice asociere de t participanti sa poata calcula K, lucru imposibil pentru asocieri de t−1sau mai putini participanti.

Exemplul precedent este deci un sistem confidential (2, 3).Valoarea lui K este aleasa de un arbitru2 D. Vom presupune ca D 6∈ P . D va distribui ın

secret componente ale cheii membrilor grupului P , astfel ıncat nici un participant sa nu cunoascacomponentele celorlalti si nici sa fie capabil ca din componenta sa sa poata recompune cheiaK.

Ulterior, participantii unei submultimi B ⊆ P pot pune ın comun componentele cheii cunos-cute de ei (sau sa le dea unei autoritati ın care au ıncredere) cu scopul de a determina K. Eitrebuie sa poata reusi ın aceasta tentativa daca si numai daca card(B) ≥ t.

Sa notamP= {Pi | 1 ≤ i ≤ w}

multimea celor w participanti. K este spatiul tuturor cheilor posibile, iar S este spatiulcomponentelor (toate componentele posibile ale cheii).

Sistemul prezentat ın aceasta sectiune este datorat lui Shamir si a fost creat ın 1979. Fiep (p ≥ w + 1) un numar prim si K= Zp, S= Zp. Deci cheile si componentele sunt numere dinZp. Sistemul confidential al lui Shamir, prezentat mai jos, se bazeaza pe un polinom aleator

1Threshold scheme ın engleza, a seuil ın franceza.2Dealer ın engleza, initiateur ın franceza.

55

Page 635: Criptografie complet

56 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

a(X) de grad cel mult t− 1, ın care termenul liber este K. Fiecare participant Pi afla un punct(xi, yi) de pe graficul acestui polinom.

1. (Initializare): D alege w elemente distincte x1, . . . , xw ∈ Zp (xi publice), fiecare xi

fiind comunicat lui Pi.

2. Sa presupunem ca D doreste sa repartizeze cheia K ∈ Zp. D va selecta aleator t−1elemente a1, . . . , at−1 ∈ Zp si construieste polinomul

a(X) = Kt−1∑

j=1

ajXj (mod p).

3. D calculeaza yi = a(xi) si comunica aceasta valoare lui Pi (1 ≤ i ≤ w).

Fie acum o submultime {Pi1 , . . . , Pit} de participanti care doresc sa reconstituie cheia. Ei stiuvalorile xij si yij = a(xij) pentru 1 ≤ j ≤ t; a(X) ∈ Zq[X] este polinomul (secret) folosit de D.Cum gradul lui este cel mult t− 1, putem scrie

a(X) = a0 + a1X + . . . + at−1Xt−1

unde a0 = K iar a0, . . . , at−1 ∈ Zq sunt necunoscute. Ele se afla rezolvand sistemul liniarde t ecuatii yij = a(xij). Daca ecuatiile sunt independente, solutia este unica, iar valoarea luia0 este chiar cheia K.

Exemplul 5.1 Sa presupunem p = 17, t = 3, w = 5, iar xi = i, (1 ≤ i ≤ 5). DacaB = {P1, P3, P5} vor sa afle cheia aducand fiecare informatiile 8, 10 si respectiv 11, ei vorscrie polinomul general a(X) = a0 + a1X + a2X

2 si vor reduce problema la rezolvarea ın Z17 asistemului liniar

a(1) = a0 + a1 + a2 = 8a(3) = a0 + 3a1 + 9a2 = 10a(5) = a0 + 5a1 + 8a2 = 11

Acesta admite solutia unica ın Z17 : a0 = 13, a1 = 10, a2 = 2.Deci valoarea cautata este K = 13.

Teorema 5.1 In sistemul confidential al lui Shamir, orice multime B de t participanti poatereconstitui ın mod unic cheia K.

Demonstratie: Fie a(X) = a0 + a1X + . . . + at−1Xt−1 polinomul ales de D, unde a0 = K.

Afirmatia se reduce la a arata ca sistemul de ecuatii yij = a(xij) (1 ≤ j ≤ t), de necunoscutea0, . . . , at−1, admite solutie unica. Determinantul acestui sistem este∣∣∣∣∣∣∣∣∣

1 xi1 x2i1

. . . xt−1i1

1 xi2 x221

. . . xt−1i2

. . .1 xit x2

it . . . xt−1it

∣∣∣∣∣∣∣∣∣=

1≤j<k≤t

(xik − xij) (mod p)

Deoarece toate numerele xi sunt distincte, iar Zp este corp, rezulta ca acest produs estenenul, deci sistemul are totdeauna solutie unica, iar a0 este chiar cheia cautata. 2

Ce se ıntampla daca un grup de t− 1 participanti ıncearca sa calculeze cheia K ?

Page 636: Criptografie complet

5.1. SISTEMUL CONFIDENTIAL AL LUI SHAMIR 57

Daca procedeaza conform algoritmului anterior, vor obtine un sistem de t − 1 ecuatii cu tnecunoscute. Fie y0 o valoare arbitrara a cheii K. Vom avea y0 = a0 = a(0), care formeaza at - a ecuatie a sistemului. Acesta ofera de asemenea solutie unica. Deci, pentru orice valoareK ∈ Zp exista un polinom unic aK(X) ∈ Zp[X] care verifica toate conditiile:

yij = aK(xij) (1 ≤ j ≤ t− 1), y0 = aK(0).

Rezulta ca orice valoare a lui K este consistenta cu componentele detinute de cei t − 1participanti; asocierea lor nu ofera nici o informatie suplimentara pentru aflarea cheii.

Mai exista o modalitate de abordare a sistemului confidential al lui Shamir: folosind poli-noamele de interpolare Lagrance. Acestea ofera o exprimare explicita a polinomului a(X), subforma

a(X) =t∑

j=1

yij

1 ≤ k ≤ tk 6= j

x− xik

xij − xik

.

Evident, acesta este un polinom de grad cel mult t − 1, cu proprietatea yij = a(xij), ∀j =1, . . . , t. Cum un astfel de polinom este unic, rezulta ca el este chiar polinomul cautat.

Un grup B de t participanti poate calcula a(X) pe baza acestei formule. De fapt, nici nueste nevoie se determine tot polinomul: este suficient sa obtina K = a(0). Deci, ınlocuind ınformula pe X cu 0, avem

K =t∑

j=1

yij

1 ≤ k ≤ tk 6= j

xik

xik − xij

.

Daca definim

bj =∏

1 ≤ k ≤ tk 6= j

xik

xik − xij

(1 ≤ j ≤ t),

aceste valori pot fi precalculate si facute publice de catre arbitru. Cheia este atunci o combinatieliniara de t componente:

K =t∑

j=1

bjyij .

Exemplul 5.2 Sa revenim la Exemplul 5.1. Participantii {P1, P3, P5} pot calcula b1, b2, b3;se obtine (calculele sunt facute modulo 17):

b1 =x3x5

(x3 − x1)(x5 − x1)= 3 ∗ 5 ∗ (−2)−1 ∗ (−4)−1 = 4.

Similar, b2 = 3, b5 = 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 simplificare a algoritmului Shamir pentru cazul w = t. Ea functioneazapentru K= Zm, S= Zm (m nu este obligatoriu numar prim si – chiar mai mult – este posibilca m ≤ w). Noul algoritm este:

Page 637: Criptografie complet

58 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

1. D alege aleator t− 1 elemente y1, . . . , yt−1 ∈ Zm;

2. D calculeaza yt = K −t−1∑

i=1

yi (mod m);

3. Fiecare element yi este transmis ın secret lui Pi (1 ≤ i ≤ t).

Cei t participanti pot determina cheia K pe baza formulei

K =t∑

i=1

yi (mod m).

Evident, t− 1 participanti nu pot obtine 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 ovaloare aleatoare din Zm, nu se va obtine nici o informatie suplimentara referitoare la cheie.Acesta este deci un sistem confidential (t, t).

5.2 Structura de acces si partaj a secretului general

In paragraful precedent am studiat situatia cand orice asociere de t participanti din totalulde w poate calcula cheia. Vom restrange aici aceasta conditie, specificand ce submultimi departicipanti pot avea acces la cheie si pentru ce submultimi acest acces este interzis. Fie Γ omultime de submultimi ale lui P , fiecare din ele reprezentand o asociatie autorizata sa calculezecheia K. Γ se numeste structura de acces, iar submultimile ei se numesc submultimi autorizate.

Fie K o multime de chei si S o multime de componente. Cand arbitrul D doreste sarepartizeze o cheie K ∈ K, el va distribui cate o componenta fiecarui participant, urmand caulterior, o submultime de participanti sa ıncerce sa determine K punand ın comun componentelecunoscute de ei.

Definitia 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 multime P de participanti, astfel ıncat:

1. Orice submultime autorizata B ⊆ P de participanti poate reconstitui cheia din componen-tele cunoscute de ei;

2. Orice submultime neautorizata B ⊆ P de participanti nu poseda nici o informatie desprevaloarea lui K.

Un sistem confidential (t, w) realizeaza structura de acces Γ= {B ⊆ P | card(B) ≥ t}. Oasemenea structura de numeste structura confidentiala. Conform paragrafului precedent, sis-temul confidential al lui Shamir este perfect si realizeaza o structura confidentiala.

Sa studiem securitatea sistemelor de partajare a secretelor. Ca de obicei, nu se impune nicio restrictie asupra puterii de calcul a submultimilor neautorizate.

Fie B ∈ Γ si B ⊆ C ⊆ P . Daca C cauta sa determine cheia K, ea va reusi lucrand numaicu B si ignorand participantii din C \ B. Altfel spus, structura de acces satisface conditia demonotonie:

Page 638: Criptografie complet

5.3. CONSTRUCTIA CIRCUITELOR MONOTONE 59

Daca B ∈ Γ si B ⊆ C ⊆ P , atunci C ∈ Γ.In continuare vom presupune ca orice structura de acces este monotona.Un element B ∈ Γ este minimal daca ∀A ⊂ B =⇒ A 6∈ Γ. Vom nota cu Γ0 multimea

elementelor minimale din Γ. Se observa ca aceasta multime caracterizeaza complet Γ. Maiexact,

Γ= {C ⊆ P | ∃B ∈ Γ0, B ⊆ C}.Spunem ca Γ este ınchiderea lui Γ0 si notam prin Γ = Γ0.

Exemplul 5.3 Fie P= {P1, P2, P3, P4} si Γ0= {{P1, P2, P4}, {P1, P3, P4}, {P2, P3}}. Vom aveaΓ= {{P1, P2, P4}, {P1, P3, P4}, {P2, P3}, {P1, P2, P3}, {P2, P3, P4}, {P1, P2, P3, P4}}.Invers, fiind dat Γ, se vede imediat ca Γ0 este multimea partilor sale minimale.

In cazul structurilor confidentiale de acces, baza este multimea submultimilor formate cu tparticipanti.

5.3 Constructia circuitelor monotone

Ideea din aceasta sectiune apartine lui Benaloh si Leichter; ea consta ın construirea unui cir-cuit combinational care recunoaste structura de acces si genereaza un sistem de partajare asecretului. Un astfel de circuit este numit de autori circuit monoton.

Fie C un circuit computational cu w intrari notate prin variabilele booleene x1, . . . , xw

(corespunzatoare celor w participanti P1, . . . , Pw) si o iesire booleana y = C(x1, . . . , xw). Pre-supunem ca la constructia circuitului sunt folosite numai porti AND si OR (fara porti NOT ).Un astfel de circuit este numit monoton daca modificarea unei intrari din 0 ın 1 nu va implicaniciodata transformarea iesirii y din 1 ın 0.

Vom notaB(x1, . . . , xw) = {Pi | xi = 1}

multimea participantilor asociati ın multimea B. Presupunand ca circuitul C este monoton,vom avea

Γ(C)= {B(x1, . . . , xw) | C(x1, . . . , xw = 1}.Circuitul C fiind monoton, Γ(C) este o multime monotona de parti ale lui P .Fiind data o multime monotona Γ de parti ale lui P , se poate construi usor un circuit

monoton C cu Γ(C)= Γ. Un exemplu de constructie este urmatorul:Fie Γ0 o baza a lui Γ. Vom construi formula booleana (ın forma normal disjunctiva)

B∈Γ0

Pi∈B

Pi

Fiecare clauza din aceasta forma normala este legata printr-o poarta AND, iar disjunc-tiafinala corespunde unei porti OR. Numarul total de porti folosite este card(Γ0) + 1.

Fie acum C un circuit monoton care recunoaste Γ. Vom prezenta un algoritm care permitearbitrului D sa construiasca un sistem perfect de partajare a secretului cu structura de accesΓ. Vom folosi sistemul confidential (t, t) din paragraful anterior. Multimea cheilor este deciK= Zm.

Algoritmul parcurge circuitul de la iesire spre intrare, marcand recursiv cu xV ∈ K, fiecarearc V parcurs (ın sens invers). Initial, arcului care marcheaza iesirea y i se atribuie valoareaxout = K a cheii. Formal, algoritmul este:

Page 639: Criptografie complet

60 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

1. xout ← K;

2. pentru orice poarta G din care iese un arc marcat x, iar arcele care intra suntnemarcate, executa:

(a) Daca G este o poarta OR, atunci xV ← x pentru orice arc V care intra ın G;

(b) Daca G este o poarta AND si V1, . . . , Vt sunt arcele care intra ın G, atunci

i. Alege aleator xV,1, . . . , xV,t−1 ∈ Zm;

ii. Calculeaza xV,t = x−t−1∑

i=1

xV,i (mod m);

iii. Marcheaza arcul Vi cu xV,i, (1 ≤ i ≤ t).

Exemplul 5.4 Pentru multimea din Exemplul 5.3, avem Γ0= {{P1, P2, P4}, {P1, P3, P4},{P2, P3}}, deci se poate asocia expresia booleana

(P1 ∧ P2 ∧ P4) ∨ (P1 ∧ P3 ∧ P4) ∨ (P2 ∧ P3).Circuitul monoton asociat este desenat mai jos; ın paralel au fost marcate si arcele, conforma

algoritmului descris:

¹ ¸§ ¦½¼ ¹ ¸ ½¼

?

? -?

?¾??

u uuu? -

??

? ??¾

?-

??¾

?-

?

x1 x2 x3 x4

K

K KK

a1 b1a2 c1 K−c1 b2K−a1−a2 K−b1−b2

Aici a1, a2, b1, b2, c1, c2 sunt numere alese aleator ın Zm. Fiecare participant primeste dreptcomponenta doua numere:

1. a1 si b1 pentru P1,2. a2 si c1 pentru P2,3. b2 si K − c1 pentru P3,4. K − a1 − a2 si K − b1 − b2 pentru P1.Fiecare submultime autorizata poate calcula valoarea lui K. Astfel, {P1, P2, P4} determina

K = a1 + a2 + (K − a1 − a2), submultimea {P1, P3, P4} calculeaza K = b1 + b2 + (K − b1 − b2),iar {P2, P3} va calcula K = c1 + (K − c1).

Sa vedem acum ce se ıntampla cu multimile neautorizate.Ca o remarca, daca o multime B este neautorizata, orice submultime a sa va fi de asemenea

neautorizata.

Definitia 5.3 O multime B ⊆ P este maximal neautorizata daca∀B1 ⊂ B =⇒ B1 ∈ Γ.

Este suficient deci de demonstrat ca multimile maximal neautorizate nu pot afla cheia dininformatiile pe care le detin.

Page 640: Criptografie complet

5.4. RATA DE INFORMATIE 61

Exemplul 5.5 Revenind la exemplul anterior, multimile maximal neautorizate sunt {P1, P2},{P1, P3}, {P1, P4}, {P2, P4}, {P3, P4}. In fiecare caz, pentru determinarea cheii K lipseste oinformatie definita aleator. De exemplu, {P1, P2} detin informatiile a1, a2, b1 si c1. Pentru areconstitui cheia K ar avea nevoie cel putin de numarul K − a1 − a2, sau de K − c1.

Sisteme cu aceeasi structura de acces pot fi obtinute folosind si alte circuite.

Exemplul 5.6 Sa reluam Exemplul 5.3 si sa rscriem expresia booleana sub forma normal con-junctiva:

(P1 ∨ P2) ∧ (P1 ∨ P3) ∧ (P2 ∨ P3) ∧ (P2 ∨ P4) ∧ (P3 ∨ P4)Construind sistemul confidential corespunzator acestei expresii, vom avea urmatoarea distri-

butie a componentelor (omitem detaliile):1. P1 primeste a1 si a2;1. P2 primeste a1, a3 si a4;1. P3 primeste a2, a3 si K − a1 − a2 − a3 − a4;1. P4 primeste a4 si K − a1 − a2 − a3 − a4;

Teorema 5.2 Fie C un circuit boolean monoton. Constructia sa genereaza un sistem perfectde partajare a secretului, a carui structura de acces este Γ(C).

Demonstratie: Vom folosi o recurenta asupra numarului de porti din circuitul C. Cazul candC are o singura poarta este banal: daca poarta este OR, fiecare participant contine cheia Ksi structura de acces este multimea tuturor partilor nevide ale lui P ; daca poarta este AND siare t intrari, se obtine sistemul confidential (t, t) definit anterior.

Sa presupunem ca pentru j > 1, orice circuit C cu mai putin de j porti verifica teorema,si fie C un circuit cu j porti. Vom considera ultima poarta G a acestui circuit (din care ieserezultatul y). Ea nu poate fi decat OR sau AND. Daca G este o poarta OR, sa consideram celet arce care intra ın G : Vi (1 ≤ i ≤ t). Acestea sunt arcele de iesire din t circuite Ci; conformipotezei de inductie, fiecare astfel de circuit defineste un sub-sistem de partajare a secretului,cu structura de acces Γ(Ci). Vom avea – evident

Γ(C) =t⋃

i=1

Γ(Ci).

Cum valoarea cheii se atribuie fiecarui arc Vi, sistemul va avea structura de acces Γ(C).Procedeul este similar daca G este o poarta AND. In acest caz,

Γ(C) =t⋂

i=1

Γ(Ci).

Deoarece K este repartizata peste toate arcele Vi conform unui sistem confidential (t, t),sistemul total va admite Γ(C) drept structura de acces. 2

Cand o multime autorizata B doreste aflarea cheii, ea trebuie sa stie circuitul utilizat dearbitru pentru construirea sistemului si sa deduca de aici ce componente sunt necesare pentruparcurgerea arcelor respective. Aceasta informatie trebuie sa fie publica. Numai valoareacomponentelor trebuie sa fie secreta.

5.4 Rata de informatie

Fie P o multime de participanti si S spatiul tuturor componentelor posibile ale cheii. Odistributie de componente este o functie

Page 641: Criptografie complet

62 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

f : P−→ SEa codifica matematic modalitatea de repartizare a informatiilor ıntre participanti. f(Pi)

va fi componenta distribuita participantului Pi (1 ≤ i ≤ w).Pentru fiecare K ∈ K, fie FK multimea tuturor distributiilor posibile ale cheii K. In general,

FK este publica. DefinimF=

K∈KFK .

F este ansamblul complet al tuturor distributiilor posibile de chei. Rolul arbitrului va fi dea selecta aleator un element f ∈ FK si de a distribui componentele ın conformitate cu aceastaalegere.

Pentru o submultime B ⊆ P (autorizata sau nu) de participanti, se defineste S(B) ={f |B | f ∈ F}, unde functia fB : B −→ S este restrictia distributiei de parti f la submultimeaB; ea este deci definita prin fB(Pi) = f(Pi), ∀Pi ∈ B.

Deci S(B) este multimea tuturor distributiilor posibile ale componentelor la elementelesubmultimii B.

Ne punem acum problema evaluarii performantelor sistemelor perfecte de partajare a se-cretelor construite anterior, pe baza structurilor de acces monotone.

In cazul unui sistem confidential (t, w), circuitul boolean construit pe baza expresiei ın formanormal disjunctiva are 1 + Ct

w porti. Fiecare participant primeste o componenta formata dinCt−1

w−1 numere din Zm. Aceasta partajare este foarte slaba comparativ cu sistemul confidentialal lui Shamir (t, w), care ofera acelasi rezultat folosind componente formate dintr-un singurnumar.

Pentru masurarea performantelor sistemelor perfecte de partajare a secretelor, vom folosiun instrument numit rata de informatie.

Definitia 5.4 Consideram un sistem perfect de partajare a secretelor cu structura de acces Γ.Rata de informatie a unui participant Pi este prin definitie

ρi =log2(card(X))

log2(card(S(Pi))).

S(Pi) ⊆ S este multimea componentelor posibile pe care le poate primi participantul Pi. S-anotat cu X = K multimea cheilor posibile.

Rata de informatie 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 informatie ρ =log2m

log2m2=

1

2.

Pentru sistemul din Exemplul 5.6, avem ρ =log2m

log2m3=

1

3.

Primul sistem este deci mai bun.

In general, daca se construieste un sistem de partajare a secretelor plecand de la un circuitmonoton C, rata sa de informatie se obtine folosind urmatoarea teorema:

Teorema 5.3 Fie C un circuit boolean monoton. Exista atunci un sistem perfect de partajarea secretelor, cu structura de acces Γ(C), care admite ca rata de informatie

ρ = max1≤i≤w

{1

ri

}

unde ri este numarul de arce de intrare ın circuit (pentru valorile xi).

Page 642: Criptografie complet

5.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 63

Evident, este preferabila o rata de informatie cat mai mare. Valoarea ei este ınsa limitatasuperior, conform teoremei urmatoare:

Teorema 5.4 Pentru orice sistem perfect de partajare a secretelor cu structura de acces Γ,rata de informatie verifica inegalitatea ρ ≤ 1.

Demonstratie: Sa consideram un sistem perfect de partajare a secretelor avand structura deacces Γ. Fie B ∈ Γ0 si Pj ∈ B un participant. Definim B′ = B \ {Pj}. Fie g ∈ S(B). CumB′ 6∈ Γ, distributia componentelor g|B′ nu da nici o informatie asupa cheii. Deci, pentru oriceK ∈ K exista o distributie a componentelor gK ∈ F astfel ca gK |B′ = g|B′ . Cum B ∈ Γ, vomavea gK(Pj) 6= gK ′(Pj) pentru K 6= K ′. Deci card(S(Pj)) ≥ card(K), adica ρ ≤ 1. 2

Un sistem cu ρ = 1 va fi numit ideal. Ca un exemplu, sistemul confidential al Shamir areρ = 1, deci este un sistem ideal. In schimb, rata de informatie pentru un sistem confidential

(t, w) bazat pe circuite monotone construite cu forma normal disjunctiva este1

Ct−1w−1

, extrem de

ineficienta daca 1 < t < w.

5.5 Sistemul de partajare al lui Brickell

Sistemul construit ın acest paragraf este cunoscut sub numele de constructia vectoriala a luiBrickell.

Fie Γ o structura de acces, p un numar prim, iar d ≥ 2 un numar ıntreg. Fie‖: P−→ Zd

p

o functie cu proprietatea(1, 0, . . . , 0) ∈ 〈‖ (Pi) | Pi ∈ B〉 ⇐⇒ B ∈ Γ. (A)

Altfel spus, vectorul (1, 0, . . . , 0) este o combinatie liniara de vectori din multimea{‖ (Pi) | Pi ∈ B} daca si numai daca B este o submultime autorizata.

Plecand de la aceasta functie, vom construi un sistem de partajare a secretelor cu K=S(Pi) = Zp (1 ≤ i ≤ w). Pentru orice a = (a1, . . . , ad) ∈ Zd

p . vom defini o functie de distributiea componentelor fa : P−→ S prin fa(x) = a· ‖ (x).

S-a notat cu · produsul scalar a doi vectori. Algoritmul de partajare a secretelor Brickelleste urmatorul:

1. (Initializare) Pentru 1 ≤ i ≤ w, D atribuie lui Pi vectorul ‖ (Pi) ∈ Zdp .

Acesti vectori sunt publici.

2. Pentru repartizarea cheii K ∈ Zp, arbitrul D alege aleator d − 1 elementea2, . . . , ad ∈ Zp.

3. Folosind vectorul a = (K, a2, . . . , ad), arbitrul calculeaza componentayi = a· ‖ (Pi) (1 ≤ i ≤ w), pe care o da lui Pi.

Vom avea rezultatul urmator:

Page 643: Criptografie complet

64 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

Teorema 5.5 Daca ‖ verifica proprietatea (A), multimea distributiilor de componente FK ,K ∈ K formeaza un sistem perfect de partajare a secretelor, cu structura de acces Γ.

Demonstratie: Sa aratam ıntai ca daca B este o multime autorizata, participantii lui B potcalcula cheia K. Deoarece (1, 0, . . . , 0) ∈ 〈‖ (Pi) | Pi ∈ B〉, putem scrie

(1, 0, . . . , 0) =∑

{i|Pi∈B}ci ‖ (Pi)

unde ci ∈ Zp. Fie si componenta lui Pi. Vom avea si = a· ‖ (Pi), unde a este vectorulnecunoscut ales de D, iar K = a1 = a · (1, 0, . . . , 0). Vom avea deci

K =∑

{i|Pi∈B}ci a· ‖ (Pi).

Componentii grupului B pot reconstitui deci cheia K =∑

{i|Pi∈B}cisi.

Ce se ıntampla daca B nu este autorizat ? Fie e dimensiunea spatiului vectorial〈‖ (Pi) | Pi ∈ B〉 (evident, e ≤ card(B)). Sa consideram K ∈ K si sistemul liniar

‖ (Pi) · a = si ∀Pi ∈ B(1, 0, . . . , 0) · a = K

cu necunoscutele a1, . . . , ad. Matricea sistemului are rangul e + 1 deoarece (1, 0, . . . , 0) 6∈〈‖ (Pi) | Pi ∈ B〉. Deci, independent de valoarea lui K, spatiul solutiilor este d−e−1, adica ex-ista pd−e−1 distributii de componente ın fiecare FK , consistente cu componentele participantilordin B. 2

Sistemul confidential (t, w) al lui Shamir este un caz particular al acestei constructii. Intr-adevar, fie d = t si ‖ (Pi) = (1, xi, x

2i , . . . x

t−1i ), pentru 1 ≤ i ≤ w, unde xi este coordonata x

data de Pi. Sistemul obtinut este echivalent cu cel al lui Shamir.

Un alt rezultat general se refera la structurile de acces care admit ca baza un ansamblude perechi care definesc un graf multipartit complet. Reamintim, un graf G = (V, E) estemultipartit complet daca V se poate partitiona ın submultimile V1, . . . , Vs astfel ıncat {x, y} ∈ Edaca si numai daca x ∈ Vi, y ∈ Vj cu i 6= j.

Multimile Vi se numesc componente. Daca card(Vi) = ni (1 ≤ i ≤ s), graful este notatKn1,...,ns . Graful multipartit complet K1,...,1 cu s componente este de fapt un graf complet si senoteaza Ks.

Teorema 5.6 Fie G = (V,E) un graf multipartit complet. Atunci exista un sistem perfect departajare a secretelor, ideal, cu structura de acces E peste multimea V de participanti.

Demonstratie: Fie V1, . . . , Vs componentele lui G, si x1, . . . , xs ∈ Zp distincte (p ≥ s). Fie sid = 2. Pentru fiecare participant v ∈ Vi se defineste ‖ (v) = (xi, 1). Proprietatea (A) se verificaimediat, deci – conform Teoremei 5.5 – afirmatia este demonstrata. 2

Vom aplica acest rezultat considerand structurile de acces posibile pentru patru partici-panti. Va fi suficient sa luam ın calcul numai structurile a caror baza nu se poate partitiona ındoua multimi nevide. De exemplu, Γ0= {{P1, P2}, {P3, P4}} poate fi partitionata ın {{P1, P2}}∪{{P3, P4}}, fiecare cu dezvoltarea sa independenta, deci nu o vom lua ın considerare. O listacompleta a structurilor de acces neizomorfe pentru 2, 3 sau 4 participanti este data ın Tabelul5.1 (s-a notat cu ρ∗ valoarea maxima a ratei de informatie pentru structura respectiva).

Se pot construi sisteme ideale pentru 10 din aceste 18 structuri de acces. Acestea suntstructuri confidentiale sau structuri a caror baza este un graf multipartit, pentru care se aplicaTeorema 5.6.

Page 644: Criptografie complet

5.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 65

Tabelul 5.1: Structuri de acces cu maxim 4 participanti

Nr.crt w Submultimile lui G0 ρ∗ Rezultate1. 2 P1P2 1 Confidential (2, 2)2. 3 P1P2, P2P3 1 Γ0 ' K1,2

3. 3 P1P2, P2P3, P1P3 1 Confidential (2, 3)4. 3 P1P2P3 1 Confidential (3, 3)5. 4 P1P2, P2P3, P3P4 2/36. 4 P1P2, P1P3, P1P4 1 Γ0 ' K1,3

7. 4 P1P2, P1P4, P2P3, P3P4 1 Γ0 ' K2,2

8. 4 P1P2, P2P3, ; P2P4, P3P4 2/39. 4 P1P2, P1P3, P1P4, P2P3, P2P4 1 Γ0 ' K1,1,2

10. 4 P1P2, P1P3, P1P4, P2P3, P2P4, P3P4 1 Confidential (2, 4)11. 4 P1P2P3, P1P4 112. 4 P1P3P4, P1P2, P2P3 2/313. 4 P1P3P4, P1P2, P2P3, P2P4 2/314. 4 P1P2P3, P1P2P4 115. 4 P1P2P3, P1P2P4, P3P4 116. 4 P1P2P3, P1P2P4, P1P3P4 117. 4 P1P2P3, P1P2P4, P1P3P4, P2P3P4 1 Confidential (3, 4)18. 4 P1P2P3P4 1 Confidential (4, 4)

Exemplul 5.8 Sa consideram structura de acces cu numarul 9 din Tabelul 5.1; deci d = 2 sip ≥ 3. Definim ‖ prin

‖ (P1) = (0, 1), ‖ (P2) = (0, 1), ‖ (P3) = (1, 1), ‖ (P4) = (1, 2).Aplicand Teorema 5.6 se obtine o structura perfecta de partajare a secretelor, ideala pentru

acest tip de acces.

Raman de studiat opt structuri de acces. Se poate utiliza constructia lui Brickell pentru patrudin ele: structurile 11, 14, 15 si 16.

Exemplul 5.9 Pentru structura de acces 11 vom considera d = 3 si p ≥ 3. Definitia lui ‖ este‖ (P1) = (0, 1, 0), ‖ (P2) = (1, 0, 1), ‖ (P3) = (0, 1,−1), ‖ (P4) = (1, 1, 0).

Calculand, se obtine ‖ (P4)− ‖ (P1) = (1, 1, 0)− (0, 1, 0) = (1, 0, 0) si‖ (P2)+ ‖ (P3)− ‖ (P1) = (1, 0, 1) + (0, 1,−1)− (0, 1, 0) = (1, 0, 0).Deci (1, 0, 0) ∈ 〈‖ (P1), ‖ (P2),P(P3)〉 si (1, 0, 0) ∈ 〈‖ (P1), ‖ (P4)〉.Mai ramane de aratat ca (1, 0, 0) 6∈ 〈‖ (Pi) | Pi ∈ B〉 pentru orice multime maximala neau-

torizata B. Exista numai trei astfel de multimi: {P1, P2}, {P1, P3}, {P2, P3, P4}. Pentru fiecarecaz se arata ca sistemul liniar asociat nu are solutie. De exemplu, sa consideram sistemul

(1, 0, 0) = a2 ‖ (P2) + a3 ‖ (P3) + a4 ‖ (P4)cu a2, a3, a4 ∈ Zp. Se obtine sistemul echivalent

a2 + a4 = 1a3 + a4 = 0a2 − a3 = 0

Page 645: Criptografie complet

66 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

care nu are solutie.

Exemplul 5.10 Pentru structura de acces 14 vom defini d = 3, p ≥ 2, iar ‖ va fi:‖ (P1) = (0, 1, 0), ‖ (P2) = (1, 0, 1), ‖ (P3) = (0, 1, 1), ‖ (P4) = (0, 1, 1).

Proprietatea (A) se verifica imediat; deci se poate aplica Teorema 5.6.

In mod similar se pot construi sisteme perfecte de partajare a secretelor ideale pentru structurile15 si 16.

Cele patru sisteme ramase nu admit constructia unor astfel de sisteme.

5.6 Constructia prin descompunere

Prezentam aici o alta modalitatea de construire a sistemelor de partajare a secretelor, remar-cabila prin performantele rezultatelor, care maximizeaza rata de informatie.

Definitia 5.5 Fie Γ o structura de acces cu baza Γ0 si K un set de chei. O K - descompunereideala 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 multimea dechei K, peste multimea de participanti Pk =

B∈Γk

B.

Pentru o K - descompunere ideala a structurii de acces Γ se poate construi usor un sistemperfect de partajare a secretelor.

Teorema 5.7 Fie Γ o structura de acces cu baza Γ0, K un set de chei si o K - descompunereideala {Γ1, . . . , Γn} a lui Γ. Pentru fiecare participant Pi, fie Ri = card{k | Pi ∈ Pk}.

Exista atunci un sistem perfect de partajare a secretelor cu structura de acces Γ si rata deinformatie ρ = 1/R, unde R = max

1≤i≤w{Ri}.

Demonstratie: Pentru 1 ≤ k ≤ n exista un sistem ideal de structura de acces de baza Γk pestemultimea K. Notam Fk multimea distributiilor componentelor sale. Vom construi un sistemcu structura de acces Γ peste multimea K. Multimea distributiilor componentelor sale estegenerata dupa regula: daca arbitrul D doreste sa ımparta cheia K (ın cazul 1 ≤ k ≤ n), el vagenera aleator o distributie de componente fk ∈ Fk

K si va distribui efectiv aceste componenteparticipantilor din Pk.

Se verifica usor ca acest sistem este perfect. Sa determinam rata sa de informatie. Vomavea card(S(Pi)) = [card(K)]Ri pentru orice i (1 ≤ i ≤ w). Deci ρi = 1/Ri si

ρ =1

max{Ri | 1 ≤ i ≤ w} ,

ceea ce incheie demonstratia. 2

O generalizare a acestui rezultat – pentru s K - descompuneri ideale se bazeaza pe teorema

Page 646: Criptografie complet

5.6. CONSTRUCTIA PRIN DESCOMPUNERE 67

Teorema 5.8 (Constructia prin descompunere): Fie Γ o structura de acces de baza Γ0, s ≥ 1un numar ıntreg, si K un set de chei. Presupunem ca s-a construit o K - descompunere idealaDj = {Γj,1, . . . , Γj,nj

} a lui Γ0, si fie Pj,k multimea participantilor la structura de acces Γj,k.Pentru fiecare participant Pi definim

Ri =s∑

j=1

card{k | Pi ∈ Pj,k}.Exista atunci un sistem perfect de partajare a secretelor, cu structura de acces Γ, a carui

rata de informatie este ρ = s/R, unde R = max1≤i≤w

(Ri).

Demonstratie: Pentru 1 ≤ j ≤ s si 1 ≤ k ≤ n se poate construi un sistem ideal cu baza Γj,k simultimea de chei K. Vom nota F j,k multimea corespunzatoare de distributii a componentelor.Vom construi un sistem cu structura de acces Γ si multimea de chei Ks. Multimea sa dedistributii de componente F se genereaza astfel: daca arbitrul D doreste sa ımparta cheiaK = (K1, . . . , Ks) (pentru 1 ≤ k ≤ n), el va genera aleator o distributie de componentef j,k ∈ F j,k

Kj, pe care le distribuie efectiv participantilor din Pj,k.

In continuare se repeta demonstratia Teoremei 5.7. 2

Exemplul 5.11 Sa consideram structura de acces 5 din Tabelul 5.1, a carei baza nu este ungraf multipartit complet.

Fie p un numar prim si sa consideram doua Zp - descompuneri:

D1 = {Γ1,1, Γ1,2} cuΓ1,1 = {{P1, P2}}Γ1,2 = {{P2, P3}, {P3, P4}}

si

D2 = {Γ2,1, Γ2,2} cuΓ2,1 = {{P1, P2}, {P2, P3}}Γ2,2 = {{P3, P4}}

Aceste descompuneri corespund lui K2 si K1,2, deci sunt descompuneri ideale. Ambele oferao rata de informatie ρ = 1/2. Daca le vom combina conform Teoremei 5.8 cu s = 2, vomobtine o rata de informatie maxima ρ = 2/3.

Luand ca baza Teorema 5.6, putem obtine efectiv un astfel de sistem. D alege aleatorpatru elemente b1,1, b1,2, b2,1, b2,2 ∈ Zp. Pentru o cheie (K1, K2) ∈ Z2

p , arbitrul va distribuicomponentele astfel:

1. P1 primeste b1,1 si b2,1;2. P2 primeste b1,1 + K1, b1,2 si b2,1 + K2;3. P3 primeste b1,2 + K1, b2,1 si b2,2;4. P4 primeste b1,2 si b2,2 + K2.(toate calculele sunt efectuate ın Zp).

Exemplul 5.12 Fie structura de acces 8 din Tabelul 5.1. Vom considera K= Zp pentru unnumar prim p ≥ 3. Vom utiliza doua K - descompuneri ideale

D1 = {Γ1,1, Γ1,2} cuΓ1,1 = {{P1, P2}}Γ1,2 = {{P2, P3}, {P2, P4}, {P3, P4}}

si

D2 = {Γ2,1, Γ2,2} cuΓ2,1 = {{P1, P2}, {P2, P3}, {P2, P4}}Γ2,2 = {{P3, P4}}

D1 corespunde lui K2 si K3, iar D2 – lui K2 si K1,3; deci ambele sunt K - descompuneri.Aplicand Teorema 5.8 cu s = 2 se va obtine ρ = 2/3. Similar exemplului precedent, o constructieefectiva se realizeaza astfel:

Page 647: Criptografie complet

68 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR

D alege aleator (si independent) patru elemente b1,1, b1,2, b2,1, b2,2 ∈ Zp. Pentru o cheie(K1, K2) ∈ Z2

p , arbitrul va distribui componentele astfel:1. P1 primeste b1,1 + K1 si b2,1 + K2;2. P2 primeste b1,1, b1,2 si b2,1;3. P3 primeste b1,2 + K1, b2,1 + K2 si b2,2;4. P4 primeste b1,2 + 2K1, b21 + K2 si b2,2 + K2.(toate calculele sunt efectuate ın Zp).

Page 648: Criptografie complet

Prelegerea 6

Sisteme electronice de plata

6.1 Proprietati de baza ale sistemelor electronice de plata

Sistemele electronice de plata realizeaza tranzactii financiare prin intermediul informatiei trans-misa prin canale de telecomunicatie. In prezent sistemele de plata electronice exista ın maimulte forme, printre care: cecuri digitale (digital checks), carti de credit (credit cards), banielectronici (electronic cash).

In aceasta prelegere vom trata sistemele de plata care utilizeaza monezile electronice si suntdefinite prin anumite proprietati criptografice. Utilizand acest tip de sisteme, vom incercarealizarea unui model care va imita sistemul bancar clasic de emitere a numerarului, cu singuradiferenta ca totul este realizat digital.

T. Okamoto si K. Ohta au propus ın 1991 sase proprietati fundamentale ale unui sistemdigital de plata:

1. Securitatea:

Protocolul de tranzactie trebuie sa asigure un nivel de securitate ridicat, utilizand tehnicicriptografice. Vor fi prevenite atacuri care ıncearca sa modifice sau sa reproduca informa-tia transmisa.

2. Anonimitatea:

Aceasta trasatura permite utilizatorului sa ramana anonim ın timpul desfasurarii proto-colului de tranzactie.

3. Portabilitatea:

Securitatea si folosirea sistemului digital nu trebuie sa fie dependente de caracteristicilefizice ale calculatoarelor folosite. In plus, informatia va putea fi transferata prin oriceretea de calculatoare, fara sa existe o retea speciala care sa aiba drepturi separate.

4. Transferul ın ambele sensuri:

Monezile digitale se pot transfera ıntre utilizatori, fara ca acest transfer sa fie realizatprintr-o banca.

5. Capacitatea de a realiza tranzactii ”off-line”:

69

Page 649: Criptografie complet

70 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

Protocolul de tranzactie ıntre doua parti trebuie sa se desfasoare ın orice moment, faraautentificarea unei a treia parti si fara ca utilizatorii sa fie conectati obligatoriu la oinstitutie financiara de control.

6. Divizibilitatea:

O moneda electronica obtinuta de utilizator din contul sau poate fi ımpartita ın monezide valori mai mici, cu scopul de a fi folosite (separat sau nu) la diferite tranzactii.

Scenariul sistemului de plata electronic presupune 3 tipuri de participanti:

• Un utilizator (sau client) pe care-l vom nota de obicei U .

• Un comerciant (sau magazin) care va accepta banii electronici ai clientului, furnizand ınschimb anumite bunuri. Acesta se va nota S.

• O institutie financiara (sau banca, notata B) unde atat clientul, cat si comerciantul auconturi deschise. Este posibil sa fie o retea de banci care comunica si realizeaza tranzactiiıntre ele, dar noi vom considera pentru simplificare existenta unei singure banci.

6.2 Securitatea platilor electronice

Pentru securitatea unui sistem electronic de plata mai sunt necesare cateva proprietatı supli-mentare:

• Intimitatea (Privacy) sau protectia ımpotriva interceptarii mesajelor

• Autentificarea utilizatorului: fiecare dintre cele doua parti implicate ıntr-un protocoltrebuie sa fie sigura de identitatea celeilalte parti.

• Integritatea mesajului: destinatarul trebuie sa verifice daca mesajul primit a fost (saunu) modificat ın tranzit.

• Imposibilitatea negarii (Non-repudiation): cel care a trimis un mesaj nu va putea sanege mai tarziu acest lucru.

David Chaum, initiatorul sistemelor electronice de plata, defineste ınca doua trasaturi debaza ale acestora:

• Imposibilitatea bancii de a urmai utilizatorul dupa protocolul de extragere a monezilorelectronice – ı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 identifica pe cel care comite o frauda (ıncearca sa foloseasca acceasi moneda demai multe ori). Mai mult decat atat, s-au elaborat sisteme (toate folosind o componentahardware de tip card, chip sau micro-procesor) care previn frauda.

Daca se respecta aceasta conditie, sistemul se va numi fara urmarire (un-traceable).

Page 650: Criptografie complet

6.2. SECURITATEA PLATILOR ELECTRONICE 71

• Imposibilitatea de a deduce identitatea utilizatorului, daca se urmaresc mai multe monezifolosite de acesta; altfel spus – nu se poate realiza o legatura ıntre monezile folosite ıntranzactii diferite pentru a obtine informatii suplimentare.

In acest caz, sistemul se va numi fara legaturi (un-linkable).

De remarcat ca sistemul de plata folosind carti de credit nu dispune de aceste ultime douaproprietati; de aceea David Chaum ımpreuna cu alti cercetatori au propus sistemul de plata cumonezi electronice, care va oferi utilizatorilor lor aceste doua garantii suplimentare.

Intr-un protocol de tranzactie al unui astfel de sistem, succesiunea evenimentelor esteurmatoarea:

1. Protocolul de extragere al monezilor (withdrawal protocol);

Utilizatorul va extrage monezi de o anumita valoare din contul sau din banca si le vastoca ıntr-o componenta hard (harddisk sau card).

2. Protocolul de plata (payment protocol);

Utilizatorul va transfera bani digitali comerciantului (sau magazinului) de la care acumparat bunuri.

3. Protocolul de depozit (deposit protocol);

Comerciantul va transfera banii primiti ın contul sau din banca, apoi va livra clientuluibunurile platite.

Aceste protocoale se pot implementa ın doua moduri:

• on-line: Comerciantul ia legatura cu banca si verifica validitatea monezii trimisa declient, ınainte de a-i livra acestuia bunurile.

Acesta este modul care se utilizeaza ın prezent de catre tranzactiile cu carti de credit.

• off-line: Comerciantul accepta monezile clientului dupa un protocol de verificare cuacesta, fara a face apel la banca. Protocolul de depozit la banca se va desfasura periodic(de exemplu la sfarsitul saptamanii).

La sistemele de tip ”on-line”, protocoalele de plata si de depozit nu sunt practic separate.Cel mai mare dezavantaj al acestor sisteme – si unul din motivele pentru care nu se folosescla operatiile cu sume mici – este faptul ca la fiecare tranzactie trebuie apelata banca. Cumnumarul utilizatorilor de Internet si de sisteme electronice comerciale creste accelerat, aceastadevine o problema dificila de comunicare.

Tipul de frauda cel mai frecvent ıntalnit consta ın utilizarea unei monezi de mai multe ori(double-spending sau multiple-spending). Pentru a se proteja ımpotriva acestei fraude, banca vamentine o baza de date cu toate monezile electronice folosite. Executand protocolul de depozit,banca va cauta moneda primita ın baza de date si – daca se afla deja acolo – o va respinge. Dacaplata se face ”on-line” se va preveni utilizarea unei aceleiasi monezi de mai multe ori. Dacase foloseste sistemul ”off-line”, se defineste un mecanism suplimentar prin care banca va puteaidentifica utilizatorul care a comis frauda. Dezavantajul la sistemele ”off-line” este intervalulde timp dupa care se face identificarea, timp ın care utilizatorul necinstit poate sa dispara. Deaceea sistemele ”off-line” nu sunt recomandate pentru sume mari de bani.

Pentru realizarea sistemelor care dispun de proprietatile enuntate, se foloseste criptografiacu cheie publica.

Page 651: Criptografie complet

72 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

6.3 Protocoale de semnatura ”blind”

Introdus de Chaum ın 1983, protocolul de semnatura blind (blind signature protocol) esteextrem de util ın crearea sistemelor de plati electronice.

Pentru usurinta exprimarii vom nota cu B partea care semneaza un mesaj, si cu U parteacare primeste semnatura.

Definitia 6.1 Un protocol de semnatura (P ,A,K,S,V) se numeste protocol de semnaturablind daca ∀x ∈ P (x complet necunoscut lui B) U poate sa obtina de la B un mesaj semnatvalid (x, sigK(x)).

Exemplul 6.1 Protocolul de semnatura blind RSA.

Fie p, q, n definite ca la sistemul cu cheie publica RSA. Vom avea

P = A = Zn, 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 ∈ Zn si trimite lui B numarul x′ = rbx (mod n).

2. B semneaza mesajul x′ : y′ = sigK(x′) = sigK(rbx) = (rbx)a (mod n) ≡ rxa (mod n) sitrimite y′ lui B.

3. U ımparte y′ la r si obtine y = y′r−1 = xa (mod n).

La sfarsitul protocolului, U obtine (x, y = sigK(x)): un mesaj semnat valid, astfel ıncat B nucunoaste x.

Observam ca functiile sigK si verK sunt cele definite ın protocolul de semnatura RSA:

sigK(x′) = (x′)a (mod n)

verK(x′, y′) = T ⇔ x′ = (y′)b (mod n).

6.4 Scheme de identificare

O schema de identificare este un protocol ıntre doua parti: P (prover) si V (verifier) ın care Pdemonstreaza cunoasterea cheii sale secrete fara a o revela, iar V la sfarsitul protocolului esteconvins de identitatea lui P .

Orice schema de identificare se poate transforma ıntr-un protocol de semnatura prin uti-lizarea unei functii de dispersie. Vom prezenta schema de identificare si protocolul de semnaturadefinite de Clauss Schnorr, a caror securitate este bazata pe problema logaritmului discret.

In protocoalele lui Schnorr se aleg:

• doua numere prime p si q, astfel ıncat q|p− 1,

• un parametru t

• un generator g ∈ Zp asfel ıncat gq ≡ 1 (mod p).

Page 652: Criptografie complet

6.4. SCHEME DE IDENTIFICARE 73

Pentru securitate se recomanda ca q sa aiba ın reprezentarea binara minim 150 biti, p – minim512 biti, iar parametrul t – ın jur de 72 biti.

Numerele (p, q, g) vor fi facute publice.Pentru a genera o pereche (cheie publica, cheie privata), un utilizator P alege aleator un

numar s < q si calculeaza v = g−s (mod p). s va fi cheia sa privata, iar v cheia sa publica.

Protocolul de Autentificare:Presupunand ca P vrea sa ıi demonstreze identitatea sa lui V , cei doi parcurg urmatorul

protocol:

Protocolul de autentificare Schnorr:

1. P alege aleator un numar r (0 < r < q), calculeaza b = gr (mod p) pe care-l trimitelui V .

2. V trimite lui P un numar aleator x, x ∈ (0, 2t − 1), numit provocare.

3. P calculeaza y = r + sx (mod q) si ıi raspunde lui V cu y.

4. V verifica relatia b = gyvx (mod p) si accepta autentificarea lui P daca ea esteındeplinita.

Protocolul se numeste de tip provocare - raspuns.

Daca P urmeaza acest protocol pas cu pas, atunci:gyvx ≡ gr+sxg−sx ≡ gr ≡ b (mod p),

deci relatia de la pasul 4 este verificata si P este autentificat.Ideea acestui protocol consta ın constructia de catre P a unei drepte d : y = r + sx de

panta secreta s. P ıi va demonstra lui V cunoasterea dreptei d, raspunzand la o provocare xcu punctul y corespunzator de pe dreapta. Verificand relatia de la pasul 4, V este convins caP cunoaste panta secreta a dreptei, fara a o putea calcula si el.

De fiecare data cand initiaza acest protocol, P trebuie sa aleaga o noua valoare pentru r.Altfel, V se va afla ın posesia a doua puncte ale dreptei, determinand astfel panta dreptei –care este chiar cheia secreta s a lui P . Vom demonstra acest lucru:

Propozitia 6.1 Executand de doua ori protocolul de autentificare Schnorr cu acelasi numar rales la pasul 1, ın final V va fi ın posesia cheii secrete s a lui P.

Demonstratie: Dupa pasul 1, V cunoaste b = gr (mod p).Fie x1, x2 cele doua provocari diferite trimise de V ın cele doua executii ale protocolului

Schnorr; (0 ≤ x1, x2 ≤ 2t − 1). In final V va cunoaste:{y1 = r + sx1 (mod q)y2 = r + sx2 (mod q)

Rezolvand acest sistem, se obtiney1 − y2 = s(x1 − x2) (mod q) ⇒ s = (y1 − y2)(x1 − x2)

−1 (mod q). 2

Protocolul de semnatura:Sa aratam cum poate fi transformat protocolul de autentificare Schnorr ıntr-un protocol de

semnatura digitala.

Page 653: Criptografie complet

74 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

Introducem o functie de dispersie H fara coliziuni tari. Presupunem ca U doreste sa obtinade la B o semnatura asupra unui mesaj m. Similar protocolului de autentificare Schnorr, B vaavea 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 = gr (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′ = gyvx (mod p) si x′ = H(m ‖ b′).

Daca x = x′, atunci U accepta (x, y) ca o semnatura valida pentru m.

Observam ca pentru a transforma protocolul de autentificare Schnorr ıntr-un protocol desemnatura este suficient sa ınlocuim provocarea cu dispersia asupra documentului care tre-buie semnat. Ideea poate fi folosita la toate protocoalele de autentificare de tip provocare /raspuns.

Formal, protocolul de semnatura Schnorr este definit astfel:P = A = Zp, K={(p, q, g, s, v, r)|v = g−s (mod p), p|q − 1}.Daca K = (p, q, g, s, v, r) ∈ K, cheia (p, q, g, v) este publica, iar cheia (s, r) este secreta.Pentru K = (p, q, g, s, v, r) ∈ K, x ∈ P , y ∈ A,sigK(x) = r + sx (mod q)verK(x, y) = T ⇐⇒ x = H(m ‖ gyvx) (mod p).

Daca B urmeaza protocolul de semnatura Schnorr, atunci:b′ = gyvx ≡ gr+sxg−sx ≡ gr ≡ b (mod p) x′ = H(m ‖ b′) = H(m ‖ b) = x,

deci relatia de la pasul 4 este verificata si U accepta semnatura lui B drept valida.

Observam ca determinarea cheii secrete s din cheia publica v, cunoscand g, este echivalentadin punct de vedere al complexitatii cu rezolvarea problemei logaritmilor discreti.

6.5 Problema reprezentarii ın grupuri

In aceasta sectiune vom discuta despre problema reprezentarii ın grupuri, problema care stala baza constructiei unui sistem de plata electronic. Vom demonstra, de asemenea, echivalentaacestei probleme – din punct de vedere al complexitatii – cu problema logaritmilor discreti.

6.5.1 Definirea problemei reprezentarii

Definitia 6.2 Fie k ≥ 2 numar natural si q un numar prim. Un tuplu generator de lungimek pentru grupul Zq este un k-tuplu (g1, . . . , gk) astfel ıncat gi ∈ Zq\{1}, ∀i ∈ {1, 2, . . . , n} sigi 6= gj, ∀i 6= j.

Pentru orice h ∈ Zq, (a1, . . . , ak) este o reprezentare a lui h ın raport cu tuplul generator

(g1, . . . , gk) dacak∏

i=1

gaii = h (mod q).

Page 654: Criptografie complet

6.5. PROBLEMA REPREZENTARII IN GRUPURI 75

Propozitia 6.2 Fie k ≥ 2 un numar natural si q un numar prim. Pentru orice h ∈ Zq si orice(g1, . . . , gk) tuplu generator, exista exact qk−1 reprezentari ale lui h ın raport cu (g1, . . . , gk).

Demonstratie: Cum q este prim, orice element din Zq este primitiv, deci generator al grupuluimultiplicativ Zq \ {1}.

Alegem primele k − 1 elemente ale unui k-tuplu (a1, . . . , ak) aleator in qk−1 moduri si din

relatiak∏

i=1

gaii = h (mod q) determinam gak

k = h(k−1∏

i=1

gaii )−1 (mod q) deci

ak = loggkh(

∏k−1i=1 gai

i )−1 (mod q).Logaritmul are sens, deoarece din definitia tuplului generator, gk 6= 1.Din problema logaritmilor discreti, ak este unic determinat, deci exista exact qk−1 reprezen-

tari ale lui h ın raport cu (g1, . . . , gk). 2

Acest rezultat relativ simplu arata ca fixand h si un tuplu generator (g1, . . . , gk), printr-ocautare exhaustiva ın multimea k-tuplurilor peste Zq, probabilitatea de a obtine o reprezentare

a lui h ın raport cu (g1, . . . , gk) esteqk−1

qk

=1

q.

Astfel, suntem ın masura sa enuntam problema reprezentarii ın grupuri cu cardinalul numarprim.

Problema reprezentarii:Fie q un numar prim, k ≥ 2 un numar natural, (g1, . . . , gk) un tuplu generator si h ∈ Zq.Sa se gaseasca o reprezentare a lui h ın raport cu (g1, . . . , gk) ın Zq, ın cazul ın care aceastaexista.

Observam ca pentru k = 1 se obtine problema logaritmilor discreti; de aceea am consideratın definitie k ≥ 2 pentru a face distinctie intre cele doua probleme.

6.5.2 Echivalenta problemei reprezentarii cu problema logaritmilordiscreti

Sa reamintim cateva definitii relative la algoritmii probabilisti.

Definitia 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

aparitie a unei probleme, poate oferi un raspuns ıntotdeauna corect, sau poate esua si sa nu deanici un raspuns cu probabilitatea ε. Probabilitatea de succes pentru un algoritm Las-Vegas este1− ε.

Observatia 6.1 Daca construim un algoritm Las-Vegas pentru rezolvarea unei probleme, pu-

tem sa ıl apelam de un numar mediu de1

1− εori pentru a obtine raspuns, care este ıntotdeauna

corect.

Teorema 6.1 Fie q un numar prim mare. Urmatoarele afirmatii sunt echivalente:

Page 655: Criptografie complet

76 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

1. Exista 0 < P1 ≤ 1 si un algoritm probabilist polinomial ın timp A1 care – avand la intrareun tuplu generator de lungime k si un element h ∈ Zq – calculeaza o reprezentare a lui hcu probabilitatea de succes cel putin P1.

2. Exista 0 < P2 ≤ 1 si un algoritm probabilist polinomial ın timp A2 care – avand laintrare un tuplu generator de lungime k – calculeaza o reprezentare netriviala a lui 1 cuprobabilitatea de succes cel putin P2.

3. Exista 0 < P3 ≤ 1, h ∈ Zq si un algoritm probabilist polinomial ın timp A3 care –avand la intrare un tuplu generator de lungime k – calculeaza o reprezentare a lui h cuprobabilitatea de succes cel putin P3.

4. Exista 0 < P4 ≤ 1 si un algoritm probabilist polinomial ın timp A4 care rezolva prob-lema logaritmilor discreti (avand la intrare g ∈ Zq \ {1} si h ∈ Zq, calculeaza loggh) cuprobabilitatea de succes cel putin P4.

Demonstratie: Vom demonstra implicatiile:(1) =⇒ (2), (1) =⇒ (3), (4) =⇒ (1), (1) =⇒ (4), (2) =⇒ (4), (3) =⇒ (4).

• (1) =⇒ (2);

Presupunand existenta algoritmului A1 si a lui P1, fie (g1, . . . , gk) intrarea ın algoritmulA2. Se introduc ın A1 tuplul generator (g1, . . . , gk) si h = 1. Dupa executarea lui A1,suntem ın posesia unei reprezentari a lui 1 ın raport cu (g1, . . . , gk) cu probabilitatea desucces P2 = P1.

• (1) =⇒ (3);

Alegem un element arbitrar h ∈ Zq \ {1} si tuplul generator (g1, . . . , gk), intrare pentruA3. Se executa A1 care calculeaza o reprezentare a lui h cu probabilitatea de succes P1.Atunci exista P3 = P1.

• (4) =⇒ (1);

Exista algoritmul A4 si probabilitatea 0 < P4 ≤ 1. Construim algoritmul A1 care primestela intrare tuplul generator (g1, . . . , gk) si h ∈ Zq.

1. for i = 1, 2, . . . , k − 1 do

(a) Se genereaza aleator hi ∈ Z∗q ;

(b) Se introduc gi, hi ın A4 care calculeaza ai.

(c) if gaii 6= hi (mod q) then STOP (esec).

2. Se calculeaza ak = loggk(h

k−1∏

i=1

h−1i ) (mod q);

3. STOP cu succes si raspuns (a1, . . . , ak).

Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes

P1 =P4

k − 1.

Page 656: Criptografie complet

6.5. PROBLEMA REPREZENTARII IN GRUPURI 77

In cazul ın care A1 se termina cu succes, la pasul 2 avem gaii = hi (mod q), ∀i ∈

{1, . . . , k − 1} (deci ai = loggihi (mod q), ∀i ∈ {1, . . . , k − 1}).

ak = loggk(h

k−1∏

i=1

h−1i ) (mod q) ⇐⇒ gak

k = hk−1∏

i=1

h−1i (mod q) ⇐⇒

k−1∏

i=1

higakk =

h (mod q) ⇐⇒k∏

i=1

gaii = h (mod q) ⇐⇒ (a1, . . . , ak) este o reprezentare a lui h.

Algoritmul se repeta de un numar mediu de1

P4

ori pentru fiecare i ∈ {1, . . . , k − 1}pentru ca ın pasul (b) sa obtinem ai = loggi

hi (mod q). Deci, algoritmul trebuie rulat

de un numar mediu de (k − 1)1

P4

ori, ceea ce ınseamna ca probabilitatea de succes a

algoritmului A1 este P1 =P4

k − 1.

• (1) =⇒ (4);

Exista algoritmul A1 si probabilitatea 0 < P1 ≤ 1. Construim algoritmul A4 care primestela intrare g ∈ Zq \ {1} si h ∈ Zq.

1. Se genereaza aleator un k-tuplu (u1, . . . , uk) ∈ Zkq ; se calculeaza gi = gui , 1 ≤ i ≤ k.

2. Se ruleaza algoritmul A1 cu intrarea (g1, . . . , gk) si h.

3. Fie (a1, . . . , ak) iesirea lui A1;

if (a1, . . . , ak) nu e o reprezentare a lui h (h 6=k∏

i=1

gaii (mod q)) then STOP (esec).

4. Se calculeaza loggh =k∑

i=1

aiui (mod q). STOP (succes).

Corectitudine: Algoritmul astfel construit este de tip Las-Vegas cu probabilitate de succesP4 = P1.

In cazul ın care algoritmul de mai sus se terimina cu succes, avem:

h =k∏

i=1

gaii =

k∏

i=1

gaiui (mod q) =⇒ loggh =k∑

i=1

aiui (mod q).

Algoritmul se repeta de un numar mediu de1

P1

ori pentru a obtine o reprezentare corecta

a lui h ın pasul 3. Deci probabilitatea de succes a algoritmului A4 este P4 = P1.

• (2) =⇒ (4);

Exista algoritmul A2 si probabilitatea 0 < P2 ≤ 1. Construim algoritmul A4 care primestela intrare g ∈ Zq \ {1} si h ∈ Zq.

Page 657: Criptografie complet

78 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

1. Se genereaza aleator un k-tuplu (u1, . . . , uk) ∈ Zkq ; se calculeaza g1 =

hu1 (mod q), gi = gui (mod q), 2 ≤ i ≤ k − 1.

2. Se genereaza aleator o permutare π ∈ Sk si se ruleaza algoritmul A2 cu intrarea(gπ(1), . . . , gπ(k)).

3. Fie (a1, . . . , ak) iesirea lui A2.

if [(a1, . . . , ak) nu e o reprezentare a lui 1 (k∏

i=1

gai

π(i) 6= 1 (mod q))] or [aπ−1(1) = 0]

then STOP (esec).

4. Se calculeaza loggh = −(u1aπ−1(1))−1

k∑

i=2

uiaπ−1(i) (mod q); STOP (succes).

Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitate de succes

P4 =2P2

k.

Daca algoritmul se termina cu succes, atunci (a1, . . . , ak) este o reprezentare a lui 1 ınraport cu (gπ(1), . . . , gπ(k)), ceea ce este echivalent cu:

k∏

i=1

gai

π(i) = 1 (mod q) ⇐⇒ gaπ−1(1)

1

k∏

i=2

gaπ−1(i)

i = g0 (mod q) ⇐⇒

hu1aπ−1(1)

k∏

i=2

guiaπ−1(i)= g0 (mod q) si logaritmand, relatia este echivalenta cu:

u1aπ−1(1)loggh +k∑

i=2

uiaπ−1(i) = 0 (mod q)

de unde se obtine formula din pasul 4 pentru loggh.

De remarcat ca la pasul 4, aπ−1(1) 6= 0, ceea ce asigura existenta inversului (u1aπ−1(1))−1

ın Zq.

Algoritmul se repeta de un numar mediu de1

P2

ori pana se obtine la pasul 3 o reprezentare

(a1, . . . , ak) a lui 1.

Pentru fiecare reprezentare (a1, . . . , ak) a lui 1, ın cazul cel mai defavorabil k − 2 com-

ponente ale k-tuplului (a1, . . . , ak) sunt nule (cumk∏

i=1

gai

π(i) = 1 (mod q), daca ar fi nule

k − 1 componente, ar rezulta ai = 0 ∀i = 1, 2, . . . , k, deci A2 ar calcula o reprezentaretriviala a lui 1, contradictie cu ipoteza (2)). Rezulta ca avem cu o probabilitate cel putin2

k, aπ−1(1) 6= 0.

Atunci algoritmul se va repeta de cel mult1

P2

k

2ori, probabilitatea de succes fiind cel

putin P4 = 2P2

k.

• (3) =⇒ (4);

Page 658: Criptografie complet

6.5. PROBLEMA REPREZENTARII IN GRUPURI 79

Exista h′ ∈ Zq si algoritmul A3 care avand la intrare un tuplu generator de lungime kdetermina o reprezentare a lui h′ cu probabilitatea de succes P3. Construim algoritmulA4 care primeste la intrare g ∈ Zq \ {1} si h ∈ Zq.

1. i = 1.

2. Se genereaza aleator un k-tuplu (u1, . . . , uk) ∈ Zkq ;

se calculeaza gi1 = hui1 , gij = guij (mod q) pentru j = 2, . . . , k.

3. Se genereaza aleator o permutare πi ∈ Sk;

Se ruleaza algoritmul A3 cu intrarea (gi1, . . . , giπi(k)).

4. Fie (ai1, . . . , aik) iesirea lui A3;

if (ai1, . . . , aik) nu e o reprezentare a lui h ın raport cu (gi1, . . . , gik) then STOP(esec).

5. i = i + 1 goto 1.

6. if u21a2π−12 (1) = u11a1π−1

1 (1) (mod q) then STOP (esec).

7. Se calculeaza

loggh = (u21a2π−12 (1) − u11a1π−1

1 (1))−1(k∑

j=2

u1ja1π−11 (j) −

k∑

j=2

u2ja2π−12 (j)) (mod q).

Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes

P4 =P 2

3

k.

Daca algoritmul se termina cu succes, atunci (a11, . . . , a1k) si (a21, . . . , a2k) sunt reprezen-tari ale lui h′ ın raport cu (g1π1(1), . . . , g1π1(k)), respectiv (g2π1(1), . . . , g2π1(k)) ceea ce esteechivalent cu

h′ =k∏

j=1

ga1j

1π1(j) =k∏

j=1

ga2j

2π2(j) (mod q) =⇒ g11a1π−11 (1)

k∏

j=2

ga1π−1

1(j)

1j = g21a2π−12 (1)

k∏

j=2

ga2π−1

2(j)

2j

(mod q) ⇔ hu11a

1π−11

(1)

k∏

j=2

gu1ja

1π−11

(j) = hu21a

2π−12

(1)

k∏

j=2

gu2ja

2π−12

(j) (mod q)

si logaritmand ın baza g, rezulta:

u11a1π−11 (1)loggh +

k∑

j=2

u1ja1π−11 (j) = u21a2π−1

2 (1)loggh +k∑

j=2

u2ja2π−12 (j) (mod q)

de unde se obtine formula din pasul 7 pentru loggh.

De remarcat ca la pasul 7, u11a1π−11 (1) 6= u21a1π−1

2 (1), ceea ce asigura existenta inversului

(u11a1π−11 (1) − u21a1π−1

2 (1))−1 ın Zq.

Pentru i = 1 algoritmul se repeta de un numar mediu de1

P3

ori pentru a obtine o

reprezentare (a11, . . . , a1k) a lui h′.

Pentru i = 2 algoritmul se repeta ın cazul cel mai defavorabil de un numar de k1

P3

ori,

deoarece trebuie repetat pasul 6 de cel mult k ori.

Page 659: Criptografie complet

80 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

Astfel, algoritmul se repeta de cel mult1

P3

k

P3

=k

P 23

ori pana se obtine raspunsul ”succes”.

Deci probabilitatea de succes este cel putinP 2

3

k

Cu aceasta echivalenta celor doua probleme din punct de vedere al complexitatii este completdemonstrata. Deoarece problema logaritmilor discreti este NP - completa ın Zq pentru valorimari ale lui q prim, va rezulta ca si problema reprezentarii ın Zq este NP-completa.

Corolarul 6.1 Alegang q prim asfel ıncat problema logaritmilor discreti este NP-completa, nuexista un algoritm polinomial ın timp care, avand la intrare un tuplu generator (g1, . . . , gk)scoate la iesire un numar h ∈ Zq si doua reprezentari diferite ale lui h ın raport cu (g1, . . . , gk)cu o probabilitate ne-neglijabila.

Demonstratie:Presupunem, prin reducere la absurd, existenta unui astfel de algoritm A. Construim

urmatorul algoritm:

1. Fie (g1, . . . , gk) un tuplu generator. Se ruleaza algoritmul A cu intrarea (g1, . . . , gk).

Se primesc ca raspuns h si doua reprezentari ale acestuia (a1, . . . , ak) si (b1, . . . , bk)ın raport cu (g1, . . . , gk).

2. Raspuns la iesire: (a1 − b1 (mod q), . . . , ak − bk (mod q)).

Evident:k∏

i=1

gai−bii = 1 (mod q), deci (a1−b1 (mod q), . . . , ak−bk (mod q)) este o reprezentare

a lui 1 ın raport cu (g1, . . . , gk).Am construit astfel algoritmul A2, polinomial ın timp din teorema 6.1, ceea ce contrazice

presupunerea de NP-completitudine a problemei logaritmilor discreti.

Corolarul 6.2 Functia f : Zkq =⇒ Zq definitia f(a1, . . . , ak) =

k∏

i=1

gaii este o functie de dispersie

fara coliziuni tari.

Demonstratie:Din Corolarul 6.1, este calculabil dificil sa se obtina un numar h ∈ Zq si doua reprezentari

diferite ale acestuia (a1, . . . , ak) si (b1, . . . , bk) ın raport cu (g1, . . . , gk). Rezulta ca este calculabildificil sa obtinem x = (a1, . . . , ak) ∈ Zk

q si x1 = (b1, . . . , bk) ∈ Zkq asfel ıncat f(x) = f(x1); adica

f este fara coliziuni tari.Aceasta functie de dispersie nu e suficient de rapida pentru aplicatii 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 (a1, . . . , ak) ∈ Zk

q a unuinumar h ∈ Zq ın raport cu tuplul generator (g1, . . . , gk) ∈ Zk

q . P doreste sa ıi demonstreze luiV (Verifier) acest lucru, fara a-i revela reprezentarea sa secreta (a1, . . . , ak).

Page 660: Criptografie complet

6.5. PROBLEMA REPREZENTARII IN GRUPURI 81

Construim un protocol de tip provocare-raspuns care ıi permite lui P demonstrareacunoasterii reprezentarii (a1, . . . , ak).

1. P genereaza aleator k numere w1, . . . , wk ∈ Zq si trimite lui V numarul z =k∏

i=1

gwii (mod q).

2. V genereaza o provocare c ∈ Zq si o trimite lui P .

3. P calculeaza raspunsul ri = wi + cai (mod q), pentru i = 1, . . . , k, si trimite(r1, . . . , rk) lui V .

4. V accepta daca si numai daca zhc =k∏

i=1

grii (mod q).

Teorema 6.2

1. (Completitudinea) Daca P este ın posesia reprezentarii (a1, . . . , ak) a lui h ın raportcu (g1, . . . , gk) si urmeaza protocolul pas cu pas, atunci V accepta ın pasul 4.

2. (Consistenta) Daca P nu cunoaste o reprezentare a lui h ın raport cu (g1, . . . , gk), atuncinu exista o strategie pentru el astfel ıncat V sa accepte cu o probabilitate ne-neglijabila.

3. (Ascunderea informatiei) Chiar daca V ar dispune de o putere de calcul nelimitata,executand protocolul pas cu pas, nu va reusi sa afle ın final reprezentarea cunoscuta de Pcu o probabilitate ne-neglijabila.

Demonstratie:

1. Presupunand ca protocolul este executat corect de ambele parti, la pasul 4 avem:

zhc =k∏

i=1

gwii hc =

k∏

i=1

gwii (

k∏

i=1

gaii )c =

k∏

i=1

gwi+aici =

k∏

i=1

grii (mod q), deci V accepta la pasul

4.

2. P nu cunoaste o reprezentare a lui h ın raport cu (g1, . . . , gk), deci nu poate sa respecteprotocolul la pasul 3.

Distingem doua situatii:

• P urmeaza protocolul ın pasul 1, deci P alege aleator w1, . . . , wk ∈ Zq si calculeaza

z =k∏

i=1

gwii (mod q).

Dupa ce primeste provocarea c a lui V , P trebuie sa determine numerele r1, . . . , rk

care sa verifice relatia din pasul 4:

zhc =k∏

i=1

grii (mod p) =⇒

k∏

i=1

gwii hc =

k∏

i=1

grii (mod q) =⇒

hc =k∏

i=1

gri−wii (mod q) =⇒ h =

k∏

i=1

g(ri−wi)c

−1

i (mod q).

Page 661: Criptografie complet

82 PRELEGEREA 6. SISTEME ELECTRONICE DE PLATA

Deci, daca P reuseste sa determine r1, . . . , rk asfel ıncat V sa accepte la pasul 4,el va cunoaste o reprezentare a lui h ın raport cu (g1, . . . , gk) si anume: ((r1 −w1)c

−1, . . . , (rk − wk)c−1), ceea ce contrazice ipoteza.

• P nu urmeaza protocolul din pasul 1, deci P alege un numar z pentru care nucunoaste o reprezentare ın raport cu (g1, . . . , gk).

In pasul 3, P trebuie sa determine numerele r1, . . . , rk astfel ıncat zhc =k∏

i=1

grii

(mod q), problema echivalenta cu determinarea unei reprezentari a lui zhc ın raportcu (g1, . . . , gk). Cum problema reprezentarii este NP-completa pentru p, q convenabilalese si protocolul se desfasoara ın timp real, nici ın acest caz P nu are o strategiecu o probabilitate de succes ne-neglijabila pentru a-l convinge pe V sa accepte.

3. La sfarsitul protocolului V este ın posesia urmatoarelor informatii: z, c, r1, . . . , rk.

Avem ri = wi + cai (mod q) ⇐⇒ ai = c−1(ri − wi) (mod q), deci problema deter-minarii lui (a1, . . . , ak) este echivalenta cu problema determinarii lui (w1, . . . , wk). In plusa1, . . . , ak sunt unic determinate de w1, . . . , wk.

Singura informatie pe care V o are despre w1, . . . , wk este z =k∏

i=1

gwii (mod q).

Dispunand de o putere de calcul nelimitata, V poate sa determine o reprezentare a lui zın raport cu (g1, . . . , gk).

Conform Propozitiei 6.2, exista exact qk−1 reprezentari ale lui z ın raport cu (g1, . . . , gk),

deci probabilitatea ca V sa calculeze exact aceeasi reprezentare (w1, . . . , wk) este1

qk−1,

adica neglijabila.

Page 662: Criptografie complet

Prelegerea 7

Sistemul electronic de plata Brands

7.1 O scurta prezentare a sistemelor de plata electronice

”off-line”

Prima si cea mai simpla schema a fost definita de Chaum, Fiat si Naor. Prezentam, pe scurt,ideea acestui protocol.

Fie n, p, q, a, b parametrii sistemului RSA si f o functie de dispersie fara coliziuni tari. Omoneda electronica de o valoare fixata d este reprezentata sub forma

(x, (f(x))b (mod n)

cu x ales aleator. Pentru fiecare valoare a unei monezi trebuie folosit un alt exponent de criptareb si un exponent de decriptare corespunzator a. Identitatea utilizatorului trebuie inclusa ınmoneda electronica asfel ıncat daca moneda este folosita corect, identitatea nu poate fi dedusa;alfel identitatea poate fi calculata.

Pentru aceasta este folosita o tehnica numita Cut-and-Choose: cand U doreste sa extragao moneda din banca, construieste un mesaj format din k perechi de numere (k este numarul decandidati). Aceste numere au proprietatea ca dintr-o pereche se poate calcula identitatea lui U(de exemplu printr-un simplu XOR ıntre cele doua numere ale perechii), iar avand la dispozitieun singur numar din fiecare pereche nu se poate deduce nici o informatie. U concateneaza ceik candidati si obtine o semnatura ”blind” de la B asupra mesajului trimis cu protocolul desemnatura ”blind” RSA.

In momentul ın care U doreste sa foloseasca moneda la magazinul S, primeste o provocarede la S de k biti aleatori. Pentru fiecare bit, U raspunde cu primul numar al perechii core-spunzatoare numarului bitului (daca bitul este 0) sau cu al doilea numar – daca bitul este 1.(De exemplu, daca provocarea este 0110 . . . , U raspunde cu primul numar din prima pereche, aldoilea numar din a doua pereche, al doilea numar din a treia pereche etc). Cand S depoziteazamoneda la banca, ıi trimite lui B provocarea ımpreuna cu numerele trimise de U . B pastreazaıntr-o baza de date moneda ımpreuna cu provocarea si raspunsul lui U .

Daca U ıncearca refolosirea monezii, primeste o noua provocare aleatoare de k biti, care

difera de prima ın cel putin un bit cu o probabilitate destul de mare (1 − 1

2k). Astfel pentru

bitul care difera, U va revela ambele numere ale perechii corespunzatoare. Acum banca poatecalcula din cele doua numere identitatea lui U .

83

Page 663: Criptografie complet

84 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA BRANDS

Desi este conceptual simpla, aceasta schema nu este eficienta, deoarece fiecare moneda tre-buie ınsotita de 2k numere mari. Modelul Chaum-Fiat-Naor satisface primele patru proprietatidefinite ın prelegerea anterioara.

Okamoto si Ohta au descris un sistem universal de plata care satisface toate cele saseproprietati, dar – din pacate – este ineficient din punct de vedere al dimensiunii mesajelortransmise. In schimb ei au avut ideea de a introduce proprietatea de divizibilitate a monezilorelectronice. Pentru fiecare moneda de valoare d se asociaza un arbore binar etichetat astfel:nodul radacina (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 cud

2k. Daca d = 2s, arborele are s + 1

nivele, cu frunzele avand valoarea minima 1.Orice suma mai mica decat d poate fi folosita dupa urmatoarele reguli:

1. Odata ce un nod este folosit, toti succesorii si predecesorii sai nu vor putea fi folositi la oplata viitoare;

2. Nici un nod nu poate fi folosit mai mult decat o data.

Aceste doua reguli asigura folosirea unui singur nod pentru orice drum de la radacina la ofrunza, ceea ce face imposibila folosirea unei valori mai mari decat valoarea radacinii d.

Exemplul 7.1 Sa presupunem ca U are o moneda ın valoare de 4 unitati. Se construiestearborele binar:

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

±°²¯

³³³³³aaaaa

,,

ll

½½½

ZZ

4

2 2

1 1 1 1

Γ0

Γ00 Γ01

Γ000 Γ001 Γ010 Γ011

Pentru a realiza o plata de 3 unitati, U foloseste Γ00 si Γ010. Singurul nod care poate fiutilizat la o plata viitoare este Γ011 ın valoare de o unitate.

Daca cel putin una din cele doua reguli este ıncalcata, atunci exista un drum de la radacina lao frunza pe care s-au folosit 2 noduri si se va putea determina identitatea lui U .

Mai exact, fiecare utilizator U are o valoare secreta s care releva identitatea sa, iar fiecarenod i al arborelui are asignata o valoare secreta ti. Se construieste dreapta y = sx + ti pentrufiecare nod i. Cand se face o plata utilizand un nod particular n, U va revela ti pentru toti ipredecesori ai lui n. Magazinul S va trimite o provocare x1 la care U raspunde cu y1 = sx1 + tn.

Daca acelasi nod n este folosit a doua oara, U primeste ınca o provocare x2 la care raspundecu y2 = sx2 + tn, deci U a revelat doua puncte (x1, y1), (x2, y2) ale dreptei y = sx + tn, de undese poate calcula s si apoi identitatea lui U .

Daca se folosesc doua noduri n si m de pe acelasi drum de la radacina la o frunza, pre-supunem ca n este succesor al lui m. Cand se foloseste nodul n se releva tm; apoi – daca sefoloseste nodul m – U raspunde la provocarea x1 a lui S cu y1 = sx1 + tm.

Deci si ın acest caz S poate calcula s si identitatea lui U .Un alt dezavantaj al acestei scheme ar fi ca se pot realiza legaturi ıntre plati, adica se poate

deduce daca doua plati provin din aceeasi moneda si deci, de la aceeasi persoana.

Page 664: Criptografie complet

7.2. INITIALIZAREA SISTEMULUI BRANDS 85

Protocoalele discutate pana acum pot sa detecteze identitatea utilizatorilor necinstiti, faraınsa a putea preveni utilizarea unei monezi de doua ori. Singurul mod prin care s-ar putearealiza acest lucru este prin ıncorporarea unei componente hardware (chip sau smart card) ıncalculatorul utilizatorului, cu rolul de observator al tuturor platilor. In plus, nici un protocolde plata al utilizatorlui nu poate fi efectuat fara o informatie secreta detinuta de observator.Astfel, observatorul autorizeaza si participa activ la toate tranzactiile.

Totusi, se poate ıntampla ca utilizatorul sa reuseasca printr-o modalitate oarecare sa afleinformatia 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 ”off-line” cu monezi electronice apartin luiStefan Brands. Primul sistem real de tip ”off-line”, numit ”DigiCash”, se bazeaza ın totalitatepe aceste protocoale.

7.2 Initializarea sistemului Brands

Se cauta doua numere prime mari p si q cu proprietatea q|p − 1 (p si q sunt alese la fel ca ınschema de identificare Schnorr) si H o functie de dispersie fara coliziuni tari. Se genereaza unsubgrup Gq de ordin q al lui Zp (aici se vor efectua toate calculele din sistem).

Initializarea sistemului consta ın generarea de catre banca a urmatoarelor cinci numeredistincte:

1. g ∈ Gq, x ∈ Z∗q ; se calculeaza h = gx (mod q). Tuplul generator (g, h) ∈ Gq × Gq

constituie cheia publica a bancii, iar x ∈ Z∗q cheia secreta.

2. Un tuplu generator (g1, g2) cu g1, g2 ∈ Gq.

3. Un generator d ∈ Gq.

Vom presupune pentru ınceput ca exista ın sistem monezi de o singura valoare, apoi vomarata cum se pot introduce monezi de valori diferite.

Securitatea acestei scheme consta ın alegerea numerelor g, h, g1, g2, d astfel ıncat nici unutilizator sa nu poata exprima oricare din aceste numere ca o combinatie de puteri ale celorlalte.Acest lucru este din punct de vedere al complexitatii la fel de dificil ca si gasirea unei reprezentarinetriviale a lui 1 ın raport cu (g, h, g1, g2, d) – o problema NP-completa pentru p si q convenabilalese (prelegerea precedenta).

Cand utilizatorul U ısi deschide un cont ın banca, el genereaza aleator numerele u1, u2 ∈ Z∗q

si calculeaza I = gu11 gu2

2 (mod p). (u1, u2) va constitui cheia secreta a lui U , iar I ∈ Gq vafi pseudonimul folosit de B pentru identitatea reala a lui U . B stocheaza ıntr-o baza de dateidentitatea reala a lui U , numarul contului sau si I. Este important ca U sa cunoasca o singurareprezentare a lui I ın raport cu (g1, g2). Daca U utilizeaza o moneda de doua ori, B poate sadetermine (u1, u2).

O moneda electronica este reprezentata sub forma (m, sigK(m)) cu anumite restrictii asupralui m, dupa cum vom vedea in continuare.

Page 665: Criptografie complet

86 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA BRANDS

7.3 Tehnici pentru crearea sistemului

7.3.1 Protocolul de semnatura Chaum - Pedersen

Protocolul de semnatura Chaum - Pedersen este un protocol de tip Schnorr. Fie m ∈ Gq

mesajul care trebuie semnat. Presupunem ca U doreste o semnatura de la B asupra lui m.Pasii protocolului sunt urmatorii:

1. B genereaza aleator w ∈ Zq si trimite lui U numerele z = mx (mod p), a =gw (mod p) si b = mw (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 hca = gr (mod p) si zcb = mr (mod p).

(de verificat; nu coincide cu pag 22 din licenta)

Se observa ca singura diferenta fata de schema lui Schnorr este trimiterea la pasul 1 a ıncadoua numere: z si b. sigK(m) = (z, a, b, r) va constitui semnatura asupra mesajului m.

Formal, protocolul de semnatura Chaum-Pedersen este:

P =Gq,

A =G3q × Zq,

K= {(p, q, g, h, x)| p, q prime, q|p− 1, h = gx (mod p)}.Cheia (p, q, g, h) este publica, iar x este secreta.

∀K ∈ K ,m ∈ Gq si w ∈ Zq aleator, definim

sigK(m,w) = (z, a, b, r), unde z = mx (mod p), a = gw (mod p), b = mw (mod p),c = H(m ‖ z ‖ a ‖ b), r = w + cx (mod q).

verK(m, (z, a, b, r)) = T ⇐⇒ hca = gr (mod p), zcb = mr (mod p).

Daca U si B urmeaza protocolul, dupa primii 3 pasi avem:

gr = gw+cx = (gx)cgw = hca (mod p),

mr = mw+cx = (mx)cmw = zcb (mod p),

deci U accepta ın pasul 4.

7.3.2 Protocolul restrictiv de semnatura ”blind” Chaum - Pedersen

In aceasta sectiune descriem o varianta simplificata a schemei de semnatura ”blind” folositaın protocolul de extragere. Pentru a transforma protocolul de semnatura Chaum - Pedersenıntr-un protocol de semnatura ”blind”, U trebuie sa obtina un nou mesaj m′ si noile numerea′, b′, z′, c′ = H(m′ ‖ z′ ‖ a′ ‖ b′). B raspunde cu r, pe care U ıl transforma ın r′ astfel ıncat(z′, a′, b′, r′) sa fie o semnatura valida asupra lui m′. Protocolul este urmatorul:

Page 666: Criptografie complet

7.3. TEHNICI PENTRU CREAREA SISTEMULUI 87

1. B genereaza aleator w ∈ Zq si trimite lui U valorile z = mx (mod p), a = gw (mod p)si b = mw (mod p).

2. U genereaza aleator trei numere s ∈ Z∗q , u, v ∈ Zq, apoi calculeaza:

m′ = ms (mod p), w′ = uw + v (mod q), a′ = augv = gw′ (mod p),

b′ = aus(m′)v = (m′)w′ (mod p), z′ = zs = (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 hca = gr (mod p) si zcb = mr (mod p).

Se observa ca (z, a, b, r) nu este o semnatura valida asupra lui m deoarece r este un raspunsla o provocare diferita de H(m||z||a||b). Dar U poate calcula r′ = ur + v (mod q) si obtinesigK(m′) = (z′, a′, b′, r′), o semnatura valida asupra lui m′. Semnatura poate fi verificata deoricine.

U accepta la pasul 4 deoarece relatiile sunt verificate la fel ca ın protocolul anterior.

Propozitia 7.1 Daca r′ = ur + v (mod q), atunci (z′, a′, b′, r′) constituie o semnatura validaasupra lui m′.

Demonstratie:

Pentru K = (p, q, g, h, x, w), verK(m′, (z′, a′, b′, r′)) = T ⇔{

hc′a′ = gr′ (mod p)(z′)c′b′ = (m′)r′ (mod p)

Dar r′ = ur+v = u(w+cx)+v (mod p) =⇒ gr′ = gu(w+cx)+v = gucxgv+uw = (gx)ucgw′ =hc′a′(mod p) si (m′)r′ = (m′)ucx(m′)uw+v = (m′)xc′(m′)w′ = (z′)c′b′(mod p),

deci sigK(m′) = (z′, a′, b′, r′). 2

Protocolul este de tip ”blind” deoarece B nu cunoaste m′, mesajul pentru care U a obtinuto semnatura.

Propozitia 7.2

1. Daca U urmeaza protocolul pas cu pas, atunci perechea (m′, sigK(m′)) nu poate fi legatade nici o executie specifica a protocolului.

2. Chiar daca B afla m′, reprezentarea (s, t) a lui m′ ın raport cu (m, g) cunoscuta de U ıieste ascunsa lui B ın setul tuturor reprezentarilor lui m′.

Demonstratie:La finalul protocolului, B este ın posesia urmatoarelor informatii: w, z, a, b, c. Aratam ca

exista q alegeri posibile pentru (s, u, v) care produc ın final aceeasi pereche (m′, sigK(m′)).Fie s ∈ Zq fixat (sunt posibile q − 1 alegeri pentru s) si m′, sigK(m′) = (z′, a′, b′, r′) fixate.

Sa analizam ın cate moduri putem alege u, v.Se calculeaza ın mod unic c′ = H(m′||z′||a′||b′) (mod q). Deci uc = c′(mod q) =⇒ u =

c′c−1 (mod q), deci si u este unic determinat.

Page 667: Criptografie complet

88 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA BRANDS

r′ = ur + v = u(w + cx) + v = uw + c′x + v (mod q) =⇒ v = r′− uw− c′x (mod q). Saaratam ca u si v astfel determinate verifica relatiile pentru a′ si b′.

augv = augr′−uw−c′x = augr′(gw)−u(gx)−c′ = auhc′a′a−uh−c′ = a′(mod p)(m′)w′ = (m′)uv+w = bus(m′)v = bus(m′)r′−uw−c′x = (mw)us(m′)r′(m′)−uw((m′)x)−c′ =

mwus(z′)c′b′(ms)−uw(z′)−c′ = b′(mod p)Am demonstrat asfel ca exista exact q−1 alegeri pentru (s, u, v) care produc aceeasi pereche

(m′, sigK(m′)), deci B nu realizeaza ın care executie specifica a protocolului s-a semnat mesajulm′. 2

7.3.3 Generarea aleatoare a unei reprezentari

In faza de initializare a sistemului, U trebuie sa genereze un tuplu (u1, u2) pentru a-si deschideun cont ın banca si a calcula pseudonimul sau I = gu1

1 gu22 (mod p). Banca trebuie sa se asigure

ca U nu cunoaste doua reprezentari ale lui I ın raport cu (g1, g2).Prin urmatorul protocol U si B genereaza ımpreuna un numar aleator h ∈ Zq si o reprezen-

tare a acestuia ın raport cu tuplul generator (g1, . . . , gk).

1. U genereaza aleator tuplul (x1, . . . , xk+1) si trimite lui B h′ =k+1∏

i=1

gxii (mod p).

2. B trimite lui U un tuplu ales aleator (y1, . . . , yk).

3. U trimite xk+1 lui B.

Daca U a fost corect la pasul 3, (x1 + y1, . . . , xk + yk) este o reprezentare a lui h =

h′gxk+1

k+1 (k∏

i=1

gyii ) (mod p) ın raport cu (g1, . . . , gk).

Intr-adevar, gx1+y11 . . . gxk+yk

k =k∏

i=1

gxii

k∏

i=1

gyii = h′g−xk+1

k+1

k∏

i=1

gyii = h (mod p).

7.4 Sistemul de baza Brands

In aceasta sectiune sunt descrise cele trei protocoale care formeaza sistemul de baza: protocolulde extragere a monezilor electronice, protocolul de plata si protocolul de depozit. Se presupuneca ın sistem exista monezi de o unica valoare. Ulterior vom arata cum se pot introduce ınsistem monezi de diferite valori.

7.4.1 Protocolul de extragere a monezilor

Daca utilizatorul U avand identitatea I = gu11 gu2

2 (mod p) doreste sa extraga o moneda dincontul sau, mai ıntai trebuie sa convinga banca ca ıntr-adevar el este posesorul contului de undese face extragerea. Pentru aceasta U si B vor executa protocolul din prelegerea anterioara, princare U ıi demonstreaza lui B cunoasterea unei reprezentari a lui I ın raport cu (g1, g2), fara ao revela.

Page 668: Criptografie complet

7.4. SISTEMUL DE BAZA BRANDS 89

Pentru fiecare extragere a unei monezi, este executat urmatorul protocol:

1. U ıi demonstreaza lui B cunoasterea reprezentarii (u1, u2) a lui I ın raport cu (g1, g2)prin protocolul din prelegerea anterioara.

2. B realizeaza urmatoarele operatii:

(a) extrage din contul lui U valoarea fixata a monezii;

(b) calculeaza m = Id (mod p);

(c) genereaza aleator w ∈ Zq;

(d) trimite lui U : z = mx (mod p), a = gw (mod p) si b = mw (mod p).

3. U realizeaza urmatoarele operatıi:

(a) calculeaza m = Id (mod p);

(b) genereaza aleator s ∈ Z∗q , u, v ∈ Zq;

(c) calculeaza: m′ = ms = Isds = gu1s1 gu2s

2 ds (mod p),

z′ = zs (mod p), w′ = uw + v (mod q), a′ = augv = gw′ (mod p), b′ =bus(m′)v = (m′)w′ (mod p);

(d) determina aleator a descompunere a lui m′ in A si B (m′ = AB (mod p)) astfel:determina aleator fiecare din numerele u1s, u2s ca suma de doua numere:

u1s = x1 + x2 (mod q), u2s = y1 + y2 (mod q), s = z1 + z2 (mod q),

apoi calculeaza A = gx11 gy1

2 dz1 (mod p) si B = gx21 gy2

2 dz2 (mod p);

(e) calculeaza c′ = 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 gr = hca (mod p), mr = zcb (mod p).

In final, U calculeaza r′ = ru + v (mod q).

Conform propozitiilor 7.1 si 7.2, ın final U este ın posesia unui mesaj semnat(A,B, sigK(A,B)) = (z′, a′, b′, r′)

care nu poate fi legat de nici o executie specifica a protocolului. In plus, m′ = AB (mod p).Descompunerea lui m′ ın A si B a fost facuta pentru ca U sa poate sa demonstreze ın protocolulde plata identitatea sa, fara a o dezvalui.

Daca U urmeaza protocolul, atunci se va afla ın final ın posesia reprezentarilor lui m′, A, Bın raport cu (g1, g2, d) care sunt (u1s, u2s, s), (x1, y1, z1) si respectiv (x2, y2, z2). Din Corolarul?.1 (prelegerea precedenta), U nu poate afla doua reprezentari ale lui m′ ın timp polinomial.Cum (x1 + x2, y1 + y2, z1 + z2) este de asemenea o reprezentare a lui m′ rezulta ca trebuieındeplinite simultan conditiile (toate modulo q):

u1s = x1 + x2, u2s = y1 + y2, s = z1 + z2.

Faptul ca U accepta ın pasul 5 se deduce similar protocolului din ?.3.2.

Page 669: Criptografie complet

90 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA 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 = gx11 gy1

2 dz1 (mod p), B = gx21 gy2

2 dz2 (mod p), sigK(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 6= 1.

Apoi el verifica semnatura bancii:

verK(m′, sigK(m′)) = T ⇔{

gr′ = hc′a′(mod p)(m′)r′ = (z′)c′b′(mod p)

cu c′ = H(AB||z′||a′||b′||A).

Daca relatiile sunt ındeplinite, S este convins ca moneda a fost emisa de banca sitrimite lui U o provocare c ∈ Z∗

q \ {1}.3. U raspunde cu

r1 = x1 + cx2, r2 = y1 + cy2, r3 = z1 + cz2

(toate calculele sunt modulo q).

4. S accepta daca si numai daca gr11 gr2

2 dr3 = ABc (mod p).

Teorema 7.1

1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere amonezii a fost executat corect, atunci S accepta la pasul 4.

2. (Consistenta) Daca U nu cunoaste cate o reprezentare a lui A, respectiv B ın raport cu(g1, g2, d), atunci nu exista strategie pentru el astfel ıncat S sa accepte cu o probabilitatede succes ne-neglijabila.

3. (Ascunderea informatiei) Chiar daca S dispune de o putere de calcul nelimitata, iarU si S executa protocolul pas cu pas, S nu va reusi sa afle ın final identitatea lui U cu oprobabilitate ne-neglijabila.

Demonstratie:

1. Daca protocolul este executat pas cu pas, la pasul 4 avem:

gr11 gr2

2 dr3 = gx1+cx21 gy1+cy2

2 dz1+cz2 = gx11 gy1

2 dz1(gx21 gy2

2 dz2)c = ABc (mod p),

deci S accepta.

2. U ar trebui sa determine numerele r1, r2, r3 ∈ Zq asfel ıncat gr11 gr2

2 dr3 = ABc (mod p),ceea ce este echivalent cu determinarea unei reprezentari a lui ABc ın raport cu (g1, g2, 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:

Page 670: Criptografie complet

7.4. SISTEMUL DE BAZA BRANDS 91

S accepta ⇔ U cunoaste cate o reprezentare a lui A si B ın raport cu (g1, g2, d) sieste cinstit =⇒ U cunoaste o reprezentare a lui m′ ın raport cu (g1, g2, d).

Deci, daca U nu cunoaste o reprezentare a lui m′ ın raport cu (g1, g2, d), nu are nici osansa sa-l faca pe S sa accepte la pasul 4.

3. La sfarsitul protocolului, S se afla ın posesia urmatoarelor informatii:A,B, z”, a”, b”, r”, c, r1, r2, r3.

Consideram sistemul (ıntai cu necunoscutele u1, u2, s, r1, r2, r3, iar a doua oara cu ne-cunoscutele x1, x2, y1, y2, z1, z2):{

x1 + x2 = u1s y1 + y2 = u2s z1 + z2 = sx1 + cx2 = r1 y1 + cy2 = r2 z1 + cz2 = r3

(toate ecuatiile sunt scrise modulo q).

Din acest sistem se deduce ca problema determinarii lui (u1, u2) este echivalenta cu prob-lema determinarii numerelor: x1, x2, y1, y2, z1, z2.

Informatiile pe care S le are despre x1, x2, y1, y2, z1, z2 sunt:

x1 + cx2 = r1 (mod q) (1) A = gx11 gy1

2 dz1 (mod p) (4)y1 + cy2 = r2 (mod q) (2) B = gx2

1 gy22 dz2 (mod p) (5)

z1 + cz2 = r3 (mod q) (3) gr11 gr2

2 dr3 = ABc (mod p) (6)

(1) ⇔ x1 = r1 − cx2 (mod q), (2) ⇔ y1 = r2 − cy2 (mod q) , (3) ⇔ z1 = r3 − cz2 (mod q)

Inlocuind x1, y1, z1 ın (4) si folosind (6) rezulta:

A = gr1−cx21 gr2−cy2

2 dr3−cz2 (mod p) ⇐⇒ gr11 gr2

2 dr3 = A(gx21 gy2

2 dz2)c (mod p) ⇐⇒gx21 gy2

2 dz2 = (A−1gr11 gr2

2 dr3)1c = B (mod p). (7)

Relatia (7) este echivalenta cu (5), ceea ce demonstreaza ca din relatiile (1),(2) si (3) nuse obtine nici o informatie ın plus, deci (4) si (5) sunt de fapt singurele informatii esentialepe care S le are despre x1, x2, y1, y2, z1, z2.

De aici rezulta ca determinarea lui (x1, y1, z1) este echivalenta cu determinarea uneireprezentari a lui A ın raport cu (g1, g2, d), iar determinarea lui (x2, y2, z2) este echivalentacu determinarea unei reprezentari a lui B.

Daca dispune de o putere de calcul nelimitata, S poate determina o reprezentare a lui Asi o reprezentare a lui B ın raport cu (g1, g2, d). Probabilitatea ca aceste reprezentari sa

fie egale cu cele cunoscute de U este1

q2

1

q2=

1

q4din Propozitia ?.2 (prelegerea anterioara).

Deci probabilitatea ca S sa afle identitatea lui U dupa executarea protocolului este1

q4.

7.4.3 Protocolul de depozit

Dupa un anumit interval de timp, toate magazinele depoziteaza la banca monezile electroniceprimite de la clienti. Protocolul executat de un magazin S cu banca pentru trimiterea fiecareimonezi este urmatorul:

Page 671: Criptografie complet

92 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA BRANDS

1. S si B urmeaza protocolul provocare/raspuns (prelegerea anterioara) prin care Sdemonstreaza cunoasterea reprezentarii identitatii sale ın raport cu (g1, g2).

2. S trimite lui B mesajele A,B, sigK(A,B), c, r1, r2, r3.

3. B verifica validitatea semnaturii sigK(A,B), stocheaza A,B, sigK(A,B), c, r1, r2, r3

ıntr-o baza de date si crediteaza contul lui S cu valoarea monezii.

Teorema 7.2 Daca moneda (A,B, sigK(A,B)) apare de doua ori ın baza de date a bancii,atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de douaori.

Demonstratie:

Daca moneda (A,B, sigK(A,B)) apare de doua ori ın baza de date, rezulta ca banca dispunede doua seturi de raspunsuri ale lui U : (r1, r2, r3) si (r1

′, r2′, r3

′) corespunzatoare celor douaprovocari c si c′ ale lui S.

Din relatiile de verificare ale protocolului de plata rezulta:{gr11 gr2

2 dr3 = ABc (mod p) (1)

gr1′

1 gr2′

2 dr3′= ABc′ (mod p) (2)

Ridicand (1) la puterea c′ si (2) la puterea c, rezulta:{Ac′Bcc′ = gr1c′

1 gr2c′2 dr3c′ (mod p)

AcBcc′ = gr1′c

1 gr2′c

2 dr3′c (modp)

Impartind cele doua relatii rezulta:

Ac′−c = gr1c′−r1′c

1 gr2c′−r2′c

2 dr3c′−r3′c (mod p) =⇒

A = g(r1c′−r1

′c)(c′−c)−1

1 g(r2c′−r2

′c)(c′−c)−1

2 d(r3c′−r3′c)(c′−c)−1

(mod p) (3)

Analog se obtine: B = g(r1−r1

′)(c−c′)−1

1 g(r2−r2

′)(c−c′)−1

2 d(r3−r3′)(c−c′)−1

(mod p) (4)

Dar A = gx11 gy1

2 dz1 (mod p) (5) si B = gx21 gy2

2 dz2 (mod p) (6)

Cum nu se cunoaste o reprezentare netriviala a lui 1 ın raport cu (g1, g2, d), din (3),(4),(5)si (6) rezulta (toate relatiile sunt modulo q):{

(r1c′ − r1

′c)(c′ − c)−1 = x1 (r2c′ − r2

′c)(c′ − c)−1 = y1 (r3c′ − r3

′c)(c′ − c)−1 = z1

(r1 − r1′)(c− c′)−1 = x2 (r2 − r2

′)(c− c′)−1 = y2 (r3 − r3′)(c− c′)−1 = z2

Ceea ce ınseamna ca banca poate sa calculeze:

u1s = x1 + x2 = (r1c′ − r1

′c)(c′ − c)−1 + (r1 − r1′)(c− c′)−1 (mod q) (7)

u2s = y1 + y2 = (r2c′ − r2

′c)(c′ − c)−1 + (r2 − r2′)(c− c′)−1 = y2 (mod q) (8)

s = z1 + z2 = (r3c′ − r3

′c)(c′ − c)−1 + (r3 − r3′)(c− c′)−1 = z2 (mod q) (9)

Din (9) =⇒ s = (c′ − c)−1(r3(c′ − 1)− r3

′(c− 1)) (mod q) =⇒s−1 = (r3(c

′ − 1)− r3′(c− 1))−1(c′ − c) (mod q) (10).

Din (7) si (10) rezulta u1 = u1ss−1 = (c′ − c)−1(r1(c

′ − 1)− r1′(c− 1))(r3(c

′ − 1)− r3′(c−

1))−1(c′ − c) = (r1(c′ − 1)− r1

′(c− 1))(r3(c′ − 1)− r3

′(c− 1))−1 (mod q)

si analog u2 = (r2(c′ − 1)− r2

′(c− 1))(r3(c′ − 1)− r3

′(c− 1))−1 (mod q),

deci banca poate sa calculeze identitatea utilizatorului necinstit. 2

Page 672: Criptografie complet

7.5. CORECTITUDINEA SISTEMULUI DE BAZA 93

7.5 Corectitudinea sistemului de baza

Urmatoarea teorema este fundamentala pentru demonstrarea securitatii sistemului:

Teorema 7.3 In protocolul de extragere a monezilor, U nu poate sa obtina o semnatura asupraunui mesaj m′ pentru care cunoaste o reprezentare ın raport cu (g1, g2, d), dar care nu este oputere a lui m.

Demonstratie:Presupunem – prin reducere la absurd – ca U poate sa obtina o semnatura asupra lui m′, cu

m′ de forma m′ = msgr1 = gu1s+r

1 gu2s2 ds (mod p), cu s, r ∈ Zq arbitrare. Celelalte cazuri pentru

forma lui m′ se vor rezolva analog.Daca U poate obtine o semnatura valida asupra lui m′, rezulta ca U poate sa calculeze

sigK(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 = (msgr

1)uw+v = msuwmsv(gru

1 )wgrv1 = bsumsvgrv

1 (gru1 )w (mod p).

Notam g3 = gru1 =⇒ gw

3 = g−rv1 m−svb−sub′(mod q), cu g1,m, b, s, u, v, r, g3 cunoscute, iar w

necunoscut lui U (w este ales de B aleator la fiecare executie a protocolului). Deci calcularealui b′ este la fel de dificila ca si calcularea lui gw

3 .Fie s ∈ Zp astfel ıncat g3 = gs (mod p).Presupunand ca b′ se poate calcula ın timp polinomial, rezulta ca si gw

3 se poate calcula ıntimp polinomial.

Dar U cunoaste g3 = gs, gw, g,m, mw si reuseste sa determine gws = gw3 , adica cheia Diffie-

Hellman unica pentru gw, gs.Cum u si w sunt alese aleator, avem ca si gw, gs = g3 = gru

1 sunt aleatoare ın Gq. Amconstruit asfel un algoritm polinomial care are la intrare numerele aleatoare gs, gw si calculeazacheia unica Diffie-Hellman, ceea ce reprezinta o contradictie cu NP-completitudinea acesteiprobleme.

De aici rezulta ca b′ nu se poate calcula polinomial, deci U nu poate obtine o semnaturaasupra lui m′ care nu e multiplu de m. 2

Consecinta: Din Teoremele 7.1 si 7.3 deducem ca U poate sa obtina o semnatura asupralui m′ pe care o poate folosi ıntr-un protocol de plata daca si numai daca impunem urmatoarelerestrictii asupra lui m′ (care justifica calificativul ”restrictiv” dat acestui protocol de semnatura):

1. m′ este de forma ms m ∈ Gq;

2. U cunoaste o reprezentare a lui m′ ın raport cu (g1, g2, d) care este multiplu al reprezentariilui m.

Sa enuntam cateva proprietati importante ale sistemului:

1. Securitatea:

Din consecinta anterioara rezulta ca identitatea utilizatorului este inclusa ın m′ (m′ =ms = Isds); astfel, daca utilizatorul foloseste moneda o singura data ıi este garantataanonimitatea. In schimb, daca moneda este folosita de doua ori, se poate detecta identi-tatea utilizatorului necinstit, cum am aratat ın Teorema 7.2.

Page 673: Criptografie complet

94 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA BRANDS

Securitatea acestui sistem se bazeaza pe presupunerea de NP-completitudine a problemeireprezentarii ın grupuri, a problemei determinarii cheii unice Diffie-Hellman si pe ipotezaca functia de dispersie folosita ın sistem este fara coliziuni tari.

Falsificarea unei monezi presupune imitarea semnaturii bancii, ceea ce este calculabildificil. Presupunand – totusi – ca U fasifica o moneda (m′, sigK(m′)) (dispunand de oputere de calcul foarte mare), pentru a avea vreo sansa ca moneda sa ıi fie acceptata ınprotocolul de plata, trebuie sa cunoasca o reprezentare a lui m′ ın raport cu (g1, g2, d)(din Teorema 7.1). Astfel, sarcina falsificatorului devine si mai dificila.

2. Anonimitatea utilizatorilor este de asemenea garantata de Teorema 7.1.

3. Sistemul este fara legaturi.

O moneda nu poate fi legata de nici o executie specifica a protocolului de extragere,conform Propozitiei 7.2.

4. Sistemul este fara urmarire.

Tranzactiile utilizatorului nu pot fi urmarite de banca dupa protocolul de extragere amonezilor. In momentul ın care moneda este depozitata ın banca de catre un magazin,banca nu poate deduce din care cont a fost extrasa initial.

5. Sistemul este off-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 dezvaluiejuriului o reprezentare a identitatii lui U , de exemplu (u1, u2). Daca U este onest,reprezentarea (u1, u2) coincide cu cea cunoscuta de U cu o probabilitate 1

q(prelegerea

anetrioara). Deci, cu o probabilitate mare (1 − 1q), cele doua reprezentari sunt dis-

tincte. Asfel, U se afla ın posesia a doua reprezentari ale lui I ın raport cu (g1, g2),deci poate calcula o reprezentare a lui 1 ın raport cu (g1, g2). U prezinta juriului aceastareprezentare a lui 1, ceea ce constituie proba nevinovatiei sale (U nu ar fi putut calculaaltfel o reprezentare a lui 1, deoarece aceasta este o problema NP - completa).

7. Introducerea monezilor de valori diferite. Exista cel putin doua metode:

• Banca poate sa utilizeze cate o cheie publica diferita pentru fiecare tip de moneda.Astfel, daca ın sistem exista k monezi distincte, banca dispune de k chei publice:(g, h1), . . . , (g, hk) si de k chei secrete corespunzatoare: x1, . . . , xk cu xi = loggi

hi,∀i = 1, 2, . . . k.

• Se utilizeaza k generatori d1, . . . , dk (ın loc de unul singur d utilizat ın sistemul debaza). Fiecare generator di reprezinta o anumita valoare (de exemplu di reprezintavaloarea 2i−1). Atunci se poate forma orice moneda de valoare cuprinsa ıntre 1si 2k folosind reprezentarea ın binar a valorii monezii. Generatorul di apare ınreprezentarea monezii daca bitul i din reprezentarea binara este 1.

De exemplu, pentru o moneda de valoarea 11 = 10112, m = Id4d2d1, iar pentru omoneda de valoare 18 = 100102, m = Id5d2.

Inlocuirea lui m = Id cu m = Idip . . . di1 este singura modificare realizata ın proto-coalele sistemului de baza.

Page 674: Criptografie complet

Prelegerea 8

Cecuri electronice

8.1 Sistemul de plata cu cecuri nedivizibile

Sistemele de plata cu monezi electronice pot fi extinse ın mod natural la sisteme care utilizeazacecuri electronice.

Ideea acestei extensii se bazeaza pe intrpducerea a k noi generatori (f1, . . . , fk) ∈ Gkg , unde

fi reprezinta o anumita valoare (de exemplu 2i−1 unitati). Dupa cum s-a vazut ın prelegereaanterioara, orice suma de cel mult 2k − 1 poate fi reprezentata ca un produs de generatori fi,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 = gu11 gu2

2 mod p)) doreste saextraga din banca un cec de valoare maxima 2k − 1, genereaza aleator (a1, . . . , ak) ∈ Zk

q

si calculeaza m =m∏

i=1

faii (mod p). Banca extrage din contul lui U valoarea 2k − 1 si

stocheaza ı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 egalacu 2k − 1 (presupunem, pentru claritate, k ≥ 3 si U utilizeaza suma de 5 = 1012 unitati).Atunci, U trebuie sa ıi releve lui S: valorile A,B, semnatura pe care a obtinut-o dela banca asupra lui (A,B) si numerele (a1, a3), corespunzatoare reprezentarii ın binar avalorii sumei.

3. Protocolul de depozit:

Magazinul S depoziteaza la banca cecul electronic (A,B, sigK(A,B)) ımpreuna cu parteafolosita din cec: (a1, a3). Banca stocheaza perechea (a1, a3) ı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 (corespunzatoaregeneratorilor f2, f4, . . . , fk). U trimite bancii (A,B, sigK(A,B) si (a2, a4, . . . , ak). Bancaverifica faptul ca m = AB este asociat cu I ın baza sa de date si ca (a2, a4, . . . , ak) nusunt pe lista de recuperare.

95

Page 675: Criptografie complet

96 PRELEGEREA 8. CECURI ELECTRONICE

Daca banca accepta, ea sterge din baza de date m si crediteaza contul lui U cu sumanefolosita din cec: 2k − 1− 5 = 2k − 6.

Deoarece cecul este nedivizibil, un utilizator are dreptul sa foloseasca un cec o singuradata. Daca nu a utilizat valoarea maxima a cecului, U trebuie sa urmeze ımpreuna cu bancaprotocolul de recuperare.

Vom construi mai tarziu si un sistem de cecuri cu proprietatea de divizibilitate.

8.1.1 Initializarea sistemului de cecuri

Numerele p, q, g, x, h, g1, g2, functia de dispersie H si subgrupul Gq al lui Zq sunt generate caın sistemul de baza. Apoi, banca genereaza urmatoarele numere:

• Doua tupluri generatoare de lungime k: (e1, . . . , ek) ∈ Gkq si (f1, . . . , fk) ∈ Gk

q .

• Doi generatori: d1, d2 ∈ Gkq .

Deschiderea unui cont se similar ca ın sistemul de baza, utilizatorul U fiind cunoscut prinpseudonimul sau I = gu1

1 gu22 (mod p), cu u1, u2 generate aleator ın Zq.

Un cec electronic este de forma (m′, sigK(m′)) cu restrictia ca exista s ∈ Z∗q cu m′ =

ms (mod p), unde m contine de aceasta data atat identitatea utilizatorului care a extras cecul,cat si valoarea maxima a cecului:

m = (2∏

i=1

guii )dz1

1

︸ ︷︷ ︸identitate

(k∏

i=1

eaii f bi

i )dak+1

2

︸ ︷︷ ︸valoare

(mod p)

Rolul generatorului d1 este acelasi ca ın sistemul de baza (sa asigure ca identitatea utiliza-torului ramane ascunsa daca acesta este onest), iar rolul lui d2 va fi sa ımpiedice realizarea delegaturi de catre banca dupa protocolul de recuperare.

8.1.2 Protocolul de extragere a cecurilor

Presupunand ca utilizatorul U cu identitatea I = gu11 gu2

2 (mod p) doreste sa extraga un cec devaloare maxima 2k − 1, U si B urmeaza protocolul urmator:

1. U ıi demonstreaza lui B cunoasterea reprezentarii (u1, u2) a lui I ın raport cu (g1, g2),prin protocolul din Prelegerea ? (cunoasterea unei reprezentari).

2. U genereaza aleator 2k + 1 numere distincte a1, a2, . . . , ak+1, b1, b2, . . . , bk ∈ Z∗q .

Apoi U calculeaza m1 = (k∏

i=1

eaii f bi

i )dak+1

2 si trimite m1 lui B.

3. B efectueaza urmatoarele operatii:

(a) extrage din contul lui U valoarea maxima a cecului;

(b) stocheaza m1 si I ıntr-o baza de date a cecurilor emise;

(c) calculeaza m2 = Id1 (mod p), m = m1m2 (mod p);

Page 676: Criptografie complet

8.1. SISTEMUL DE PLATA CU CECURI NEDIVIZIBILE 97

(d) genereaza aleator w ∈ Zq;

(e) trimite lui U numerele z = mx (mod p), a = gw (mod p) si b = mw (mod p).

4. U realizeaza urmatoarele operatii:

(a) calculeaza m2 = Id1 (mod p), m = m1m2 (mod p);

(b) genereaza aleator s ∈ Z∗q , u, v ∈ Zq;

(c) calculeaza m′ = ms = ms1m

s2 = gu1s

1 gu2s2 ds

1(k∏

i=1

eaisi f bis

i )dak+1s2 (mod p);

z′ = zs (mod p), w′ = uw + v (mod q), a′ = augv = gw′) (mod p), b′ =bus(m′)v = (m′)w′) (mod p);

(d) U determina aleator o descompunere a lui m′ ın A si B (m′ = AB (mod p)) astfel:determina aleator fiecare din numerele u1s, u2s, s, a1s, b1s, . . . , aks, bks, ak+1s ca sumede cate doua numere:u1s = x1 + x2 (mod q) u2s = y1 + y2 (mod q) s = z1 + z2 (mod q),a1s = α1A + α1B (mod q) b1s = β1A + β1B (mod q) . . .aks = αkA + αkB (mod q) bks = βkA + βkB (mod q) ak+1s = αA + αB (mod q)

apoi U calculeaza

A = gx11 gy1

2 dz11 (

k∏

i=1

eαiAi fβiA

i )dαA2 (mod p), B = gx2

1 gy22 dz2

1 (k∏

i=1

eαiBi fβiB

i )dαB2 (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 gr = hca (mod p), mr = zcb (mod p).

In final, el calculeaza r′ = ru + v (mod q).

(z′, a′, b′, r′) constituie o semnatura valida asupra lui m′ confomr Propozitiei ?.1 (prelegereaanterioara).

Rezultatele demonstrate pentru sistemul de baza raman valabile si ın sistemul cu cecuri.

Propozitia 8.1 Daca U urmeaza protocolul anterior, atunci perechile (m′, sigK(m′)) nu pot filegate de nici o executie specifica a protocolului.

Demonstratia este similara celei de la Propozitia ?.2, aratand ca exista exact q valori posibilepentru (s, u, v) care produc aceeasi pereche (m′, sigK(m′)). 2

Propozitia 8.2 In protocolul de extragere a monezilor, U nu poate sa obtina o semnaturaasupra unui mesaj m′ pentru care cunoaste o reprezentare ın raport cu (g1, g2, d1, e1, f1, . . . , ek,fk, d2), dar care nu este o putere a lui m.

Demonstratia este similara celei de la Teorema ?.3, aratand ca obtinerea unei semnaturipentru un mesaj m′, unde m′ nu este multiplu de m, este echivalenta din punct de vedereal complexitatii cu constructia unui algoritm care rezolva problema determinarii cheii uniceDiffie-Hellman. 2

Page 677: Criptografie complet

98 PRELEGEREA 8. CECURI ELECTRONICE

Observatia 8.1 Cheia publica folosita de banca pentru cecuri trebuie sa difere de cheia publicapentru monezi.

Aceasta deoarece, daca ar fi egale, U ar putea sa trimita la pasul 2 al protocolului de extragerea cecului electronic, m1 = gt

1 cu t aleator in Zq si sa obtina o semnatura asupra lui m′ = ms

cu m = gu1+t1 gu2

2 d1 (mod p). Apoi, U ar putea sa foloseasca aceasta semnatura ca o moneda siar ıncalca afirmatiile demonstrate ın Teorema ?.2, cu consecinte asupra securitatii sistemului.

Sa demonstram acest lucru.

Propozitia 8.3 Daca utilizatorul U foloseste de doua ori ın sistemul de baza o moneda deforma (m′, sigK(m′)) cu m′ = ms (mod p) si m = gu1+t

1 gu22 d1 (mod p), t ales aleator ın Z∗

q ,atunci B nu are suficiente informatii pentru a determina identitatea lui U cu o probabilitatene-neglijabila.

Demonstratie:Similar demonstratiei Teoremei ?.2, B poate calcula

(u1 + t)s = x1 + x2 = (r1c′ − r1

′c)(c′ − c)−1 + (r1 − r1′)(c− c′)−1 (mod q),

u2s = y1 + y2 = (r2c′ − r2

′c)(c′ − c)−1 + (r2 − r2′)(c− c′)−1 = y2 (mod q),

s = z1 + z2 = (r3c′ − r3

′c)(c′ − c)−1 + (r3 − r3′)(c− c′)−1 = z2 (mod q),

unde r1, r2, r3, respectiv r1′, r2

′, r3′ sunt raspunsurile date de U ın cele doua protocoale de

plata ın care acesta a utilizat moneda.De aici, B deduce u2 si u1 + t. Cum t a fost ales aleator de U ın Z∗

q , B are q− 1 posibilitati

de alegere pentru t, deci cunoaste identitatea lui U cu probabilitatea1

q − 12

8.1.3 Protocolul de plata

Daca U doreste sa foloseasca suma 2j − 1 din cecul sau (corespunzatoare generatorilor(e1, f1), . . . , (ej, fj)) la magazinul S, este este parcurs urmatorul protocol:

1. U ıi trimite lui S numerele A,B, sigK(A,B) = (z′, a′, b′, r′).

De asemenea, el ıl informeaza pe S asupra sumei pe care doreste sa o utilizeze (2j − 1 ınacest caz).

2. S se asigura ca AB 6= 1.

Apoi el verifica semnatura bancii: verK(m′, sigK(m′) = T ⇔{

gr′ = hc′a′(mod p)(m′)r′ = (z′)c′b′(mod p)

cu c′ = H(AB||z′||a′||b′||A)

si trimite lui U o provocare c ∈ Z∗q \ {1}.

3. U verifica daca c 6= 1, apoi calculeaza si trimite lui S raspunsurile:

for i = 1 to j do ri = (ri1, ri2, ri3, ri4) ← (αiA, αiB, βiA, βiB)

for i = j + 1 to k do ri = (ri1, ri2) ← (αiA + cαiB, βiA + cβiB)

rk+1 = (r(k+1)1, r(k+1)2, r(k+1)3) ← (x1 + cx2, y1 + cy2, z1 + cz2)

rk+2 ← αA + cαB.

Page 678: Criptografie complet

8.1. SISTEMUL DE PLATA CU CECURI NEDIVIZIBILE 99

Pentru fiecare generator care apare ın expresia sumei, U releva puncte, iar pentru gener-atorii care nu apar, U releva drepte.

4. S accepta ⇐⇒

r13 + r14 6= 0 . . . rj3 + rj4 6= 0AB 6= 1

ABc =j∏

i=1

eri1i f ri3

i

j∏

i=1

eri2i f ri4

i

c

k∏

i=j+1

eri1i f ri2

i

g

r(k+1)1

1 gr(k+1)2

2 dr(k+1)3

1 drk+2

2 (mod p)

Teorema urmatoare este o consecinta imediata a Teoremei ?.1:

Teorema 8.1

1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere acecului electronic a fost executat corect, atunci S accepta ın pasul 4.

2. (Consistenta) Daca U nu cunoaste cate o reprezentare a lui A respectiv B ın raportcu (g1, g2, d1, e1, f1, . . . , ek, fk, d2), atunci nu exista strategie pentru el astfel ıncat S saaccepte cu o probabilitate de succes ne-neglijabila.

3. (Ascunderea informatiei) Chiar daca S dispune de o putere de calcul nelimitata, iarU si S executa protocolul pas cu pas, S nu va reusi sa afle ın final identitatea lui U cu oprobabilitate ne-neglijabila.

Demonstratie:

1. Daca protocolul este executat pas cu pas, la pasul 4 avem:

ri3 + ri4 = βiA + βiB = bis, ∀i, 1 ≤ i ≤ j.

Cum bi 6= 0, s 6= 0 daca U urmeaza protocolul, rezulta ri3 + ri4 6= 0, ∀i, 1 ≤ i ≤ j.

m′ = ms, s 6= 0 =⇒ m′ 6= 1 =⇒ AB 6= 1.

j∏

i=1

eri1i f ri3

i

j∏

i=1

eri2i f ri4

i

c

k∏

i=j+1

eri1i f ri2

i

g

r(k+1)1

1 gr(k+1)2

2 dr(k+1)3

1 drk+2

2 =

j∏

i=1

eαiAi fβiA

i

j∏

i=1

eαiBi fβiB

i

c

k∏

i=j+1

eαiA+cαiBi fβiA+cβiB

i

gx1+cx2

1 gy1+cy22 dz1+cz2

1 dαA+cαB2 =

gx11 gy1

2 dz11

(k∏

i=1

eαiAi fβiA

i

)dαA

2

(gx21 gy2

2 dz21

(k∏

i=1

eαiBi fβiB

i

)dαB

2

)c

= ABc (mod p)

deci S accepta ın pasul 4.

2. U ar trebui sa determine numerele r1, r2, . . . , rk+2 ∈ Zq astfel ıncat

ABc =j∏

i=1

eri1i f ri3

i

j∏

i=1

eri2i f ri4

i

c

k∏

i=j+1

eri1i f ri2

i

g

r(k+1)1

1 gr(k+1)2

2 dr(k+1)3

1 drk+2

2 (mod p),

ceea ce este echivalent cu determinarea unei reprezentari a lui ABc ın raport cu

(g1, g2, d1, e1, f1, . . . , ek, fk, d2), care este o problema pe care U nu o poate rezolva ın timppolinomial.

Page 679: Criptografie complet

100 PRELEGEREA 8. CECURI ELECTRONICE

Similar demonstratiei Teoremei ?.1, se deduce ca daca U nu cunoaste o reprezentare alui m′ ın raport cu (g1, g2, d1, e1, f1, . . . , ek, fk, d2), nu are nici o sansa sa-l faca pe S saaccepte la pasul 4.

3. La sfarsitul protocolului, S se afla ın posesia urmatoarelor informatii:A,B, z′, a′, b′, r′, c, r1, r2, . . . , rk+2.

Analog demonstratiei folosite la Teorema ?.1, se deduce ca problema determinarii lui(u1, u2) este echivalenta cu problema determinarii numerelor: x1, x2, y1, y2, z1, z2. Deter-minarea lui (x1, y1, z1) se poate face doar prin determinarea unei reprezentari a lui A ınraport cu (g1, g2, d1, e1, f1, . . . , ek, fk, d2), iar determinarea lui (x2, y2, z2) prin aflarea uneireprezentari a lui B.

Daca dispune de o putere de calcul nelimitata, S poate sa determine o reprezentare a luiA si o reprezentare a lui B ın raport cu (g1, g2, d1, e1, f1, . . . , ek, fk, d2). Probabilitatea ca

aceste reprezentari sa fie egale cu cele cunoscute de U este (cf. Propozitiei ?.4)1

q2k+3. Deci

probabilitatea ca S sa afle 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 reprezentarii identitatii sale ın raport cu (g1, g2), prinprotocolul din Prelegerea ?.

2. S trimite lui B numerele: A, B, sigK(A,B), c, r1, r2, . . . rk+2.

3. B verifica validitatea semnaturii sigK(A, B), stocheaza A,B, sigK(A,B), c, r1, r2, . . . , rk+2

ıntr-o baza de date si crediteaza contul lui S cu valoarea cecului.

In plus fata de protocolul de depozit pentru monezi electronice, B introduce ın lista derecuperare termenii (ri1 + ri2)(ri3 + ri4)

−1 (mod q), pentru 1 ≤ i ≤ j.

Propozitia 8.4 Daca moneda (A,B, sigK(A,B)) apare de doua ori ın baza de date a bancii,atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de douaori.

Demonstratia acestei propozitii este analoga cu demonstratia Teoremei ?.2 pentru sistemul debaza. 2

8.1.5 Protocolul de recuperare

Daca utilizatorul U doreste sa recupereze valoarea nefolosita din cecul (m′, sigK(m′)) (core-spunzatoare generatorilor (ej+1, fj+1), . . . , (ek, fk)), el urmeaza ımpreuna cu banca urmatorulprotocol:

1. U ıi trimite lui B identitatea sa I ımpreuna cu m1.

2. B verifica daca m1 este asociat lui I ın baza de date a cecurilor emise.

Page 680: Criptografie complet

8.1. SISTEMUL DE PLATA CU CECURI NEDIVIZIBILE 101

3. U trimite lui B ai, bi, cu j < i ≤ k.

4. B verifica daca bi 6= 0, ∀i, j < i ≤ k si daca ai(bi)−1 (mod q), (i = j +1, . . . k) nu apartin

listei de recuperare.

Daca B accepta, se trece la pasul 5.

5. U ıi demonstreaza lui B prin protocolul din Prelegerea ? cunoasterea unei reprezentari a

lui m1

k∏

i=j+1

eaii f bi

i

−1

(mod p) ın raport cu (e1, f1, . . . , ej, fj, d2).

6. Daca B accepta proba lui U , el crediteaza contul lui U cu suma corespunzatoare si imtro-duce ai(bi)

−1, i = j + 1, . . . , k ın lista de recuperare. Apoi sterge m1 din baza de date acecurilor emise

Teorema 8.2 Presupunand ca protocoalele de extragere, de plata si de depozit sunt executatecorect, daca U este necinstit ın protocolul de recuperare, atunci B nu accepta sa-i returnezesuma ceruta la pasul 6.

Demonstratie:In cazul ın care U este necinstit, ar fi doua situatii de analizat:

1. U a utilizat anterior cel putin una din perechile (ai, bi), j < i ≤ k.

In acest caz, ın protocolul de depozit al cecurilor, banca a stocat ın lista de recuperarevaloarea (ri1 + ri2)(ri3 + ri4)

−1 = (αiA + αiB)(βiA + βiB)−1 = ais(bis)−1 = aib

−1i . Deci

protocolul de recuperare se opreste la pasul 4 si B nu accepta sa-i returneze lui U valoareaceruta de acesta.

2. U ıncearca sa genereze perechi (ai′, bi

′), j < i ≤ k care nu au fost generate ın protocolulde extragere a cecurilor. In acest caz U ar trebui sa determine numerele (ai

′, bi′), j <

i ≤ k astfel ıncat sa cunoasca o reprezentare a lui m1

k∏

i=j+1

eai′

i f bi′

i

−1

ın raport cu

(e1, f1, . . . , ej, fj, d2). Acest lucru este echivalent pentru U cu determinarea numerelorai′, (1 ≤ i ≤ k + 1) si bi

′, (1 ≤ i ≤ k) astfel ıncat:

m1

k∏

i=j+1

eai′

i f bi′

i

−1

=

j∏

i=1

eai′

i f bi′

i

d

ak+1′

2 ⇐⇒ m1 =

(k∏

i=1

eai′

i f bi′

i

)d

ak+1′

2 (mod q).

Deoarece protocolul de extragere a fost executat corect, avem:

m1 =

(k∏

i=1

eaii f bi

i

)d

ak+1

2 (mod q).

Cum U nu poate determina ın timp polinomial doua reprezentari diferite ale lui m1 ınraport cu (e1, f1, . . . , eK , fK , d2), rezulta ca ai

′ = ai, ∀i ∈ {1, 2, . . . , k +1} si bi′ = bi, ∀i ∈

{1, 2, . . . , k}.Am demonstrat astfel ca U este obligat sa foloseasca ın protocolul de recuperare perechi (ai, bi)care au fost generate ın protocolul de extragere. Deci ın niciunul din cele doua cazuri, B nuaccepta sa-i returneze lui U suma ceruta, iar alta strategie pentru U nu exista. 2

Page 681: Criptografie complet

102 PRELEGEREA 8. CECURI ELECTRONICE

Din punct de vedere al securitatii, sistemul de cecuri este echivalent cu sistemul de baza,toate proprietatile demonstrate pentru sistemul de baza ramanand valabile si la sistemul dececuri.

Sistemul de cecuri nu este ınsa eficient, deoarece orice cec poate fi utilizat o singura data, iardupa protocolul de plata utilizatorul este obligat sa urmeze ımpreuna cu banca protocolul derecuperare. Aceste dezavantaj poate fi eliminat partial 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 tranzactii, cuconditia sa nu depaseasca suma maxima. In orice moment, utilizatorul poate sa ceara banciisa-i returneze suma neutilizata a cecului, caz ın care banca si utilizatorul vor urma protocolulde recuperare.

Pentru a obtine proprietatea de divizibilitate, modificam sistemul de plata cu cecuri nedi-vizibile ın felul urmator:

1. La initializarea sistemului, banca genereaza toate numerele si tuplurile generatoare folositeın sistemul de cecuri nedivizibile. In plus, banca genereaza ınca un tuplu generator(h1, h2, . . . , hk) ∈ Gk

q .

2. Un cec electronic este reprezentat sub forma (m′, sigk(m′)) cu restrictia ca exista s ∈ Z∗

q

astfel ıncat m′ = ms (mod p), unde forma lui m este de aceasta data:

m = (gu1r1 gu2r

2 d1)k∏

i=1

(eai

i f bii hair

i

)d

ak+1

2 (mod p),

cu a1, . . . , ak+1, b1, . . . , bk, r alese aleator de U la pasul al doilea al protocolului de ex-tragere.

Valoarea cecului este data de termenii de forma eaii f bi

i hairi (ın acest caz ea este 2k − 1),

iar generatorii d1 si d2 au acelasi rol ca ın sistemul de cecuri nedivizibile.

Sa aratam cum se modifica ın acest caz protocoalele de extragere a cecurilor, de plata si dedepozit.

8.2.1 Protocolul de extragere a cecurilor electronice divizibile

Presupunand ca utilizatorul U cu identitatea I = gu11 gu2

2 (mod p) doreste sa extraga un cec devaloare maxima 2k − 1, U si B urmeaza protocolul urmator:

1. U ıi demonstreaza lui B cunoasterea reprezentarii (u1, u2) a lui I ın raport cu (g1, g2) prinprotocolul din Prelegerea ?.

2. U genereaza aleator 2k + 2 numere distincte a1, a2, . . . , ak+1, b1, . . . , bk ∈ Z∗q . Apoi el

calculeaza m = (gu1r1 gu2r

2 d1)k∏

i=1

(eai

i f bii hair

i

)d

ak+1

2 (mod p) si trimite m lui B.

3. B realizeaza urmatoarele operatii:

Page 682: Criptografie complet

8.2. SISTEMUL DE PLATA CU CECURI DIVIZIBILE 103

(a) extrage din contul lui U valoarea maxima a cecului;

(b) stocheaza m si I ıntr-o baza de date a cecurilor emise;

(c) genereaza aleator w ∈ Zq;

(d) trimite lui U numerele z = mx (mod p), a = gw (mod p) si b = mw (mod p).

4. U realizeaza urmatoarele operatii:

(a) genereaza aleator s ∈ Z∗q , u, v ∈ Zq;

(b) calculeaza: m′ = ms = (gu1rs1 gu2rs

2 ds1)

k∏

i=1

(eais

i f bisi hairs

i

)d

ak+1s2 (mod p),

z′ = zs (mod p), w′ = uw + v (mod q), a′ = augv(= gw′) (mod p),b′ = bus(m′)v(= (m′)w′) (mod p),

(c) determina o descompunere aleatoare m′ = AB (mod p) astfel: scrie ın mod aleatorfiecare dintre numerele u1rs, u2rs, s, a1rs, . . . , akrs, ak+1s ca suma de doua numere(toate calculele se fac modulo q):

u1rs = x1 + x2, u2rs = y1 + y2, s = z1 + z2,a1rs = α1A + α1B . . . , akrs = αkA + αkB, ak+1s = αA + αB

(d) calculeaza:

A = (gx11 gy1

2 dz11 )

(k∏

i=1

eaisi f bis

i hαiAi

)dαA

2 (mod p),

B = (gx21 gy2

2 dz21 )

(k∏

i=1

hαiBi

)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 gr = hca (mod p), mr = zcb (mod p).

In final, U calculeaza r′ = ru + v (mod q).

(z′, a′, b′, r′) va constitui o semnatura valida asupra lui m′ (dupa cum rezulta din Propozitia?.1).

8.2.2 Protocolul de plata

Daca U doreste sa foloseasca suma 2j − 1 din cecul sau (corespunzatoare generatorilor(e1, f1, h1), . . . , (ej, fj, hj)) la magazinul S, este executat urmatorul protocol:

1. U ıi trimite lui S numerele A,B, sigK(A,B) = (z′, a′, b′, r′).

In plus, U ıl informeaza pe S asupra sumei pe care doreste sa o cheltuiasca (2j − 1 ınacest caz).

2. S se asigura ca AB 6= 1.

Apoi S verifica semnatura bancii: verK(m′, sigK(m′) = T ⇔{

gr′ = hc′a′(mod p)(m′)r′ = (z′)c′b′(mod p)

Page 683: Criptografie complet

104 PRELEGEREA 8. CECURI ELECTRONICE

cu c′ = H(AB||z′||a′||b′||A)

si trimite o provocare c ∈ Z∗q \ {1}.

3. U verifica daca c 6= 1, apoi calculeaza si trimite lui S raspunsurile:

for i = 1 to j do ri = (ri1, ri2, ri3) ← (ais, bis, αiA + cαiB)

rk+1 = (r(k+1)1, r(k+1)2, r(k+1)3) ← (x1 + cx2, y1 + cy2, z1 + cz2)

rk+2 ← αA + cαB

rk+3 ←k∏

i=j+1

eaisi f bis

i hαiA+cαiBi .

Pentru fiecare generator (ei, fi, hi) care apare ın expresia sumei, U releva puncte pentruexponentii lui ei si fi si o dreapta pentru exponentul lui hi, iar pentru generatorii care nuapar, U nu releva nimic.

4. S accepta ⇐⇒

ri1, ri2 6= 0, i = 1, . . . , jAB 6= 1

ABc = (gr(k+1)1

1 gr(k+1)2

2 dr(k+1)3

1 )j∏

i=1

(eri1i f ri2

i hri3i ) d

rk+2

2 rk+3 (mod p)

Propozitia 8.5 (Completitudinea) Daca U este onest ın protocolul de plata, atunci S ac-cepta la pasul 4.

Demonstratie:Daca protocolul este executat pas cu pas, la pasul 4 avem ri1 = ais, ri2 = bis, ∀i, (1 ≤ i ≤ j).

Cum ai 6= 0, bi 6= 0, s 6= 0 rezulta ri1 6= 0, ri2 6= 0, ∀i, (1 ≤ i ≤ j).m′ = ms, s 6= 0 =⇒ m′1 =⇒ AB 6= 1.(g

r(k+1)1

1 gr(k+1)2

2 dr(k+1)3

1

) j∏

i=1

(eri1i f ri2

i hri3i ) d

rk+2

2 rk+3 =

=(gx1+cx21 gy1+cy2

2 dz1+cz21

) j∏

i=1

(eais

i f bisi hαiA+cαiB

i

)dαA+cαB

2

k∏

i=j+1

(eais

i f bisi hαiA+cαiB

i

)=

= (gx11 gy1

2 dz11 )

k∏

i=1

(eais

i f bisi hαiA

i

)dαA

2

[(gx2

1 gy22 dz2

1 )

(k∏

i=1

hαiBi

)dαB

2

]c

= ABc (mod p)

8.2.3 Protocolul de depozit

Pentru a depozita un cec electronic, magazinul S urmeaza – ımpreuna cu B – protocolulurmator:

1. S demonstreaza lui B cunoasterea reprezentarii identitatii sale ın raport cu (g1, g2) prinprotocolul din Prelegerea ?.

2. S trimite lui B numerele A,B, sigK(A, B), c, r1, r2, . . . rj, rk+1, rk+2, rk+3.

3. B verifica validitatea semnaturii sigK(A, B), stocheaza A, B, sigK(A,B), c, r1, r2, . . . , rj,rk+1, rk+2, rk+3 ıntr-o baza de date si crediteaza contul lui S cu valoarea cecului.

B introduce ın lista de recuperare termenii ri1(ri2)−1 (mod q), pentru 1 ≤ i ≤ j.

Page 684: Criptografie complet

8.2. SISTEMUL DE PLATA CU CECURI DIVIZIBILE 105

Teorema 8.3

1. Daca U foloseste de doua ori aceeasi parte a unui cec divizibil, B poate afla identitateasa.

2. Daca U utilizeaza un cec de doua ori, dar este onest (utilizeaza de fiecare data partinefolosite ale cecului), atunci probabilitatea ca B sa afle identitatea lui U este neglijabila.

Demonstratie:

1. Presupunem – fara a restrange generalitatea, ca U utilizeaza ın doua protocoale de platadistincte valoarea corespunzatoare generatorului (e1, f1, h1).

B se va afla ın posesia urmatoarelor informatii: A,B, c, r1, rk+1, rk+2, rk+3, c′, r1

′, rk+1′,

rk+2′, rk+3

′, unde c 6= c′ sunt cele doua provocari trimise de S ın doua protocoale de plata.{r(k+1)1 = x1 + cx2 (mod q)r(k+1)1

′ = x1 + c′x2 (mod q)

Acesta este un sistem liniar cu determinantul c′ − c 6= 0; el admite solutia unica:{

x1 = (c−1 − (c′)−1)−1(c−1r(k+1)1 − (c′)−1r(k+1)1′) (mod q)

x2 = (c− c′)−1(r(k+1)1 − r(k+1)1′) (mod q)

Analog se determina:{

y1 = (c−1 − (c′)−1)−1(c−1r(k+1)2 − (c′)−1r(k+1)2′) (mod q)

y2 = (c− c′)−1(r(k+1)2 − r(k+1)2′) (mod q)

{z1 = (c−1 − (c′)−1)−1(c−1r(k+1)3 − (c′)−1r(k+1)3

′) (mod q)z2 = (c− c′)−1(r(k+1)3 − r(k+1)3

′) (mod q){

α1A = (c−1 − (c′)−1)−1(c−1r13 − (c′)−1r13′) (mod q)

α1B = (c− c′)−1(r13 − r13′) (mod q)

Apoi se pot calcula:{

u1rs = x1 + x2 (mod q) (1) u2rs = y1 + y2 (mod q) (2)s = z1 + z2 (mod q) (3) a1rs = α1A + α1B (4)

Din r11 = a1s si din (4) rezulta r = (a1rs)(a1s)−1 = (α1A + α1B)r−1

11 (mod q) (5).

Din (1), (2) si (3) se pot calcula:{

u1r = (u1sr)(s)−1 = (x1 + x2)(z1 + z2)

−1 (mod q)u2r = (u2sr)(s)

−1 = (y1 + y2)(z1 + z2)−1 (mod q)

Din (5) va rezulta acum:

u1 = (u1r)r−1 = (x1 + x2)(z1 + z2)

−1[(α1A + α1B)r−111 ] = (x1 + x2)(z1 + z2)

−1r11(α1A +α1B)−1 (mod q), u2 = (y1 + y2)(z1 + z2)

−1r11(α1A + α1B)−1 (mod q).

Deci B a calculat identitatea lui U : (u1, u2).

2. Valoarea unui cec fiind 2k − 1, putem presupune ca U utilizeaza ın primul protocol deplata valoarea 2j − 1 (corespunzatoare generatorilor (e1, f1, h1), . . . , (ej, fj, hj)), iar ın aldoilea protocol, valoarea 2k − 2j (corespunzatoare generatorilor (ej+1, fj+1, hj+1), . . . ,(ek, fk, hk)). Atunci B se va afla ın posesia informatiilor:

Page 685: Criptografie complet

106 PRELEGEREA 8. CECURI ELECTRONICE

A,B, c, r1, . . . , rj, rk+1, rk+2, rk+3, c′, rj+1

′, . . . , rk′, rk+1

′, rk+2′, rk+3

′.

Valorile x1, x2, y1, y2, z1, z2 se determina la fel ca ın demonstratia primului punct, iarpentru αA, αB avem:{

αA = (c−1 − (c′)−1)−1(c−1rk+2 − (c′)−1rk+2′) (mod q)

αB = (c− c′)−1(rk+2 − rk+2′) (mod q)

ri1 = ais, ri2 = bis, (1 ≤ i ≤ j), ri1′ = ais, ri2

′ = bis, (j + 1 ≤ i ≤ k).

Cum s = z1 + z2 (mod q) =⇒

ai = ri1(z1 + z2)−1 (mod q)i = 1, . . . , j

ai = ri1′(z1 + z2)

−1 (mod q)i = j + 1, . . . , kak+1 = (αA + αB)(z1 + z2)

−1 (mod q)bi = ri2(z1 + z2)

−1 (mod q), i = 1, . . . , jbi = ri2

′(z1 + z2)−1 (mod q), i = j + 1, . . . , k

u1rs, u2rs, u1r, u2r se calculeaza identic cu primul punct.

B mai stie ca m′ = ms (mod p). Din m′ si s = z1 + z2 (mod q), B va determina

m = (m′)1s (mod p).

Dar m = (gu1r1 gu2r

2 d1)k∏

i=1

(eai

i f bii hair

i

)d

ak+1

2 (mod p) ⇔ md−11

(k∏

i=1

eaii f bi

i

)−1

d−ak+1

2 =

(I

k∏

i=1

haii

)r

(mod p).

Notand m1 = md−11

(k∏

i=1

eaii f bi

i

)−1

d−ak+1

2 si m2 =k∏

i=1

haii , obtinem m1 = (Im2)

r (mod p)

cu m1, m2 cunoscute.

B trebuie sa determine identitatea lui U din urmatoarea ecuatie cu necunoscutele I si r:m1 = (Im2)

r (mod p).

Ecuatia are exact q − 1 solutii: pentru fiecare valoare a lui r ∈ Z∗q , se determina ın mod

unic I = m1r1 m−1

2 (mod p).

Deci B determina I (identitatea lui U), cu probabilitatea 1q−1

. 2

Protocolul de recuperare este identic cu cel pentru sistemul de cecuri nedivizibile, Teorema8.2 ramanand adevarata si ın cazul sistemului de cecuri care accepta divizibilitatea.

Se observa ca ın protocolul de plata U trebuie sa releve m′, deci toate platile efectuate cuparti ale aceluiasi cec pot fi legate ıntre ele. Gasirea unei reprezentari a cecului astfel ıncat sanu poata fi realizate legaturi ıntre platile facute cu acelasi cec ramane o problema deschisa.

Page 686: Criptografie complet

Prelegerea 9

Protocoale de vot electronic

Guvernele si organizatiile democratice au nevoie de anumite mecanisme pentru a permitealegatorilor sa voteze. In mod traditional, alegerile reprezinta pentru persoanele cu drept de votmecanismele oficiale prin care acestea ısi pot exprima optiunile ın mod democratic, ın timp cesondajele constituie una din cele mai bune metode neoficiale de aflare a optiunilor electoratului.Atat ın alegeri cat si ın sondaje intimitatea si securitatea sunt deziderate obligatorii dar al carorcost poate creste substantial. Mecanismele care asigura securitatea si intimitatea alegatorilorpot fi scumpe si/sau consumatoare de timp pentru administratorii acestora si neconvenabilepentru alegatori. Organizarea de alegeri sigure devine si mai dificila atunci cand alegatorii suntdistribuiti pe o mare zona geografica.

Acestea sunt cateva motive pentru care poate fi propusa cu succes modalitatea de votelectronic. Primele idei apar ın anii 80, iar ideile dezvoltate ın acest interval de timp ıl fac dince ın ce mai credibil pentru utilizarea sa ıntr-un mediu informatizat.

9.1 Caracteristici ale unui sistem de vot

Desi exista numeroase protocoale si sisteme de votare, procedura de baza pentru organizarea dealegeri democratice este standard. Aceasta procedura – indiferent daca este vorba de o votareclasica sau una electronica – implica ın general ındeplinirea a patru sarcini:

1. Inregistrarea: crearea unei liste de persoane care au dreptul sa voteze;

2. Validarea: verificarea datelor personale ale celor care doresc sa voteze. Se permitevotarea numai pentru cei care au drept sa voteze si nu au votat deja.

3. Colectarea voturilor de la centrele de votare.

4. Numararea voturilor.

Pentru a avea ıncredere ın rezultatul alegerilor, oamenii trebuie sa aiba dovezi ca aceste sarciniau fost ındeplinite ın mod corect. Exista ınsa numeroase posibilitati de corupere a sistemuluiın timpul ındeplinirii fiecareia din aceste sarcini. De exemplu:

• Autoritatile electorale pot trisa permitand alegatorilor fara drept de vot sa se ınregistrezela vot, iar alegatorilor ınregistrati sa voteze de mai multe ori. De asemenea poate pierde

107

Page 687: Criptografie complet

108 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

sau adauga voturi suplimentare. 1

• Alegatorii fara drept de vot se pot ınregistra (cel mai frecvent folosind numele unei per-soane decedate) sau cei cu drept de vot se pot ınregistra sub mai multe nume.

• Se poate ıncerca participarea la vot sub o identitate falsa.

• Cutiile cu voturi, voturile sau masinile de numarat pot fi compromise.

Atunci cand se proiecteaza un sistem electronic de vot este esential sa se implementeze modali-tati prin care cele patru conditii mentionate mai sus sa fie ındeplinite fara a sacrifica intimitateaalegatorilor sau a oferi posibilitati de frauda. In plus, mai trebuie ındeplinite cateva conditiispecifice unui astfel de sistem. Conform cu [5], [6], un sistem de vot electronic trebuie sasatisfaca urmatoarele cerinte:

1. Anonimitatea votantilor: Nu exista nici o modalitate prin care poate fi dezvaluitaidentitatea unei persoane care voteaza.

2. Acuratete: Oricine poate verifica validitatea voturilor si se poate asigura ca voturile nuau fost schimbate, multiplicate sau eliminate de cineva (inclusiv de autoritati).

3. Necoliziune: Garantia ca toate voturile legale difera ıntre ele.

4. Corectitudine de numar: Suma voturilor repartizate pe candidati este egala cu numaulde voturi valide.

5. Verificabilitate: Orice votant poate controla daca votul sau a fost numarat si repartizatcandidatului pe care l-a votat.

6. Detectarea dublei votari: Daca apare un vot dublu, organizatorii pot identifica per-soana care a votat de mai multe ori.

In aceasta prelegere vom prezenta cateva protocoale de vot care sa ındeplineasca cat mai multedin aceste cerinte.

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/sausemnari digitale de mesaje. Anonimitatea se obtine prin aplicarea de permutari ın diverse faze.

Pentru exemplificare, prezentam protocolul lui Michael Merritt:Sunt N alegatori, fiecare alegator i avand cheia publica de criptare ei si cheia privata di,

precum si o semnatura electronica sigi. Protocolul este urmatorul;

1. Fiecare alegator i ataseaza un numar aleator ri la votul sau mi.

1Este celebra declaratia dictatorului rus I.V.Stalin: Nu este important pe cine voteaza lumea; important estecine numara voturile.

Page 688: Criptografie complet

9.3. PROTOCOL CU AUTORITATE CENTRRALA 109

2. Cripteaza perechea (mi, ri) cu cheile publice ale tuturor alegatorilor ın ordinea 1, . . . , N ,obtinand secventa eN(eN−1(. . . (e1(mi, ri)) . . .).

3. Repeta pasul anterior, adaugand dupa fiecare criptare cate un numar aleator Ri distinct(pe care-l trimite lui i). Se obtine

eN(RN , eN−1(. . . (R2, e1(R1, eN(eN−1(. . . (e1(mi, ri)) . . .)

4. Toate aceste voturi sunt stranse de alegatorul N . Fiecare alegator i:

(a) Decripteaza mesajul cu cheia sa secreta di, scoate numarul Ri si se asigura ca estepe 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 formaeN(eN−1(. . . (e1(mi, ri)) . . .).

pe care le semneaza cu semnatura sa sigN .

5. Procedeul se reia, fiecare alegator i:

(a) Verifica validitatea semnaturii alegatorului i + 1;

(b) Decripteaza mesajele primite;

(c) Aplica propria sa semnatura sigi si trimite lui i− 1 cele N mesaje de formasigi(ei(. . . (e1(mi, r + i) . . .).

6. Toti alegatorii confirma semnatura alegatorului 1. Voturile sunt numarate ın comun,fiecare alegator putandu-se convinge de existenta votului sau datorita numarului aleatoratasat.

In timpul procesului de votare numarul de voturi este constant, deci pierderea sau adaugareaunui vot este usor de detectat.

Amestecul voturilor asigura anonimitatea.De asemenea, voturile nu pot fi ınlocuite; o astfel de ıncercare pe parcursul primei runde este

depistata prin numarul aleator introdus incorect. Daca alegatorul i ınlocuieste votul alegstoruluij (j > i), atunci alegatorul j va detecta acest lucru la ınceputul celei de-a doua runde dedecriptari (pasul 5).

O ıncercare de ınlocuire pe parcursul celei de-a doua runde este depistata la decriptareafinala cand fiecare alegator ısi verifica prpriul sau numar ri.

Un defect major al acestui protocol consta ın implementarea dificila datorata numaruluimare de calcule, dependent de numarul de votanti 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 numita de obicei autoritate centrala (AC). Prezentam ovarianta de protocol cu autoritate centrala. Se presupune ca prin carta de alegator, fiecarepersoana k dispune de doua chei ek (publica) si dk (secreta).

Page 689: Criptografie complet

110 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

1. AC ıntreaba fiecare alegator daca doreste sau nu sa participe la alegeri.

2. Se publica o lista cu toti alegatorii ınregistrati.

3. Fiecare alegator primeste de la AC un ID (printr-un protocol de dezvaluire partiala asecretelor)

4. Fiecare alegator i trimite spre AC perechea (ID, ei(ID, m)).

5. AC publica ei(ID,m) pentru toti alegatorii de pe lista de la punctul (2).

6. Fiecare alegator i trimite anonim spre AC perechea (ID, di).

7. AC asociaza mesajele dupa ID, le decripteaza, verifica autenticitatea voturilor si publicaperechile (ID, m) pentru toti participantii la vot.

Acest sistem ımpiedica atat alegatorii neautorizati sa voteze, cat si pe cei neautorizati sa votezede doua ori. Alegatorilor nu li se pot afla identitatea reala, deoarece fiecare ID se obtine printr-un protocol de dezvaluire partiala a secretelor, deci AC nu stie la cine a ajuns fiecare ID.

Exista si ın acest protocol cateva neajunsuri. Primul – si cel mai important – este acela cao autoritate centrala reprezinta un punct de coruptie asupra caruia nu exista control. ea poatefalsifica voturi ın numele alegatorilor care se abtin, poate pierde voturi valide (nici un alegatornu poate demonstra ca a trimis ıntr-adevar un vot). In plus, implementarea sa ramane destulde complexa.

O prima idee de ımbunatatire a sistemului a constat ın introducerea mai multor autoritaticentrale, dependente una de alta. De exemplu, se pot introduce doua autoritati: una care seocupa de legitimitatea alegatorilor (sa ıi spunem AL - agentıe de legimitate), alta care se ocupade numararea efectiva a voturilor (AT - agentie de tabulare). Un vot valid trebuie sa treacaprin ambele agentii pentru validare. Prima recunoaste dreptul alegatorului de a vota (fara avedea continutul votului), eliberandu-i un buletin. A doua agentie primeste votul ımpreuna cubuletinul de validare. O varianta de astfel de protocol (ın ipoteza ca cele doua agentii nu sealiaza pentru falsificarea votarii) este:

1. Fiecare alegator (dupa demonstrarea identitatii sale) solicita AL un numar de autentifi-care.

2. AL genereaza aleator numere de autentificare si le distribuie.

3. AL trimite spre AT lista tuturor numerelor de autentificare.

4. Fiecare votant alege aleator un ID (numar de validare) si trimite spre AT un tripletformat din numarul de autentificare, ID si votul sau.

5. AT verifica numarul de autentificare si – daca este pe lista – ıl bifeaza si publica votulımpreuna cu nunmarul de validare.

Page 690: Criptografie complet

9.4. PROTOCOLUL MU-VARADHARAJAN 111

9.4 Protocolul Mu-Varadharajan

Dupa 1986 au fost publicate diverse protocoale de vot, fiecare avand avantajele si dezavantajelesale. 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 reteainformatica (bazat pe schemele de semnatura electronica ElGamal si RSA) propus de Mu siVaradjarajan ın 1998 ([6]). Ulterior ın [3] sunt demonstrate si corectate cateva slabiciuni.

Componentele protocolului Mu-Varadharajan sunt:

• V - multime finita nevida de votanti;

• AS - un server de autentificare a votantilor;

• V S - o multime finita de servere de votare;

• TCS - un server de numarare a buletinelor de vot;

• CA - un certificat de autenticitate.

Protocolul contine trei etape:

1. Obtinerea buletinului de vot;

2. Votarea (si colectarea buletinelor de vot);

3. Numararea buletinelor de vot.

9.4.1 Initializarea

Vom nota cu p un numar prim mare si cu t stampila de timp. De asemenea, α ‖ β va reprezentaconcatenarea secventelor α si b.

Inainte de a incepe protocolul de vot:

• Fiecare participant V primeste o pereche de chei RSA : (eV , dV ) si un modul nV obtinutprin ınmultirea a doua numere prime mari. Reamintim, conform algoritmului RSA:

eV · dV ≡ 1 (mod φ(nV ))

• AS detine un modul nAS si o pereche de chei RSA (eAS, dAS). nAS si eAS sunt publice,cunoscute de toti votantii.

• Orice votant valid V are un certificat de votant CertV eliberat pe termen lung de CA.Acesta este semnat de cheia secreta a lui CA, iar continutul lui include

– un numar serial,

– identitatea votantului V ,

– identitatea CA,

– cheia publica eV si modulul nV ,

– intervalul de valabilitate,

– o stampila de timp.

Page 691: Criptografie complet

112 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

9.4.2 Etapa I: Obtinerea buletinului de vot

1. V trebuie sa demonstreze ca este un alegator valid. Pentru aceasta el alege un factorblind b si trei numere aleatoare g, r, k1 ∈ Z∗

p . Pe baza lor calculeaza parametrii

a = gr (mod p),

x1 = gbeAS (mod nAS), (1)

x2 = gk1beAS (mod nAS),

x3 = abeAS (mod nAS) (2)

si trimite lui AS cvadruplul (V, AS, CertV , (x1 ‖ x2 ‖ x3 ‖ t)dV (mod nV )).

2. AS verifica ıntai validitatea certificatului si valideaza semnatura(x1 ‖ x2 ‖ x3 ‖ t)dV (mod nV )). Apoi AS alege un numar aleator k2 si calculeaza

x4 = (k2 ‖ t)eV (mod nV )

x5 = (x3k21 x2

2x3)dAS (mod nAS) = (y1y2a)dASb3(k2+1) (mod nAS)

unde y1 = gk1+k2 , y2 = gk1+2k2 . Mesajul (AS, V, x4, (x5 ‖ t)eV (mod nV )) este trimis lui V .

Parametrul k2 este diferit pentru fiecare votant, iar AS stocheaza ın baza sa de date k2

ımpreuna cu identitatea lui V (CertV ).

3. Prin decriptarea lui x4, V obtine k2. Deci V poate calcula y1 si y2, dupa care determinas = x5b

−3(k2+1) = (y1y2a)dAS (mod nAS)

s este semnatura RSA pentru produsul y1y2a.

Pentru un vot m,V poate genera acum o semnatura (s1, s2) de tip ElGamal:

s1 = (k1 + k2)−1(ma− r) (mod p− 1), (3)

s2 = (k1 + 2k2)−1(ma− r) (mod p− 1). (4)

Buletinul de vot al lui V este

T = a ‖ g ‖ y1 ‖ y2 ‖ s ‖ s1 ‖ s2 ‖ m.

9.4.3 Etapa II: Votarea (si colectarea buletinelor de vot)

In aceasta faza V poate trimite prin retea 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 continedoi pasi:

1. V trimite T spre V S;

2. V S decripteaza T si verifica validitatea lui a, y1, y2 folosind semnatura s si cheia publicaeAS. Apoi V S determina corectitudinea semnaturii (s1, s2) pentru m, folosind relatiile:

ays11 = gma (mod p), (5)

ays22 = gma (mod p) (6)

Daca rezultatul acestei verificari este pozitiv, atunci V S are certitudinea ca buletinul Teste valid.

V S stocheaza toate buletinele de vot si trimite ın final baza de date prin retea catre serverulde numarare a buletinelor TCS.

Page 692: Criptografie complet

9.5. SLABICIUNI ALE PROTOCOLULUI MU-VARADHARAJAN 113

9.4.4 Etapa III: Numararea buletinelor de vot

Toate V S-urile trimit buletinele catre TCS. Scopul acestuia este de a numara voturile si de adepista pe cei care au votat de mai multe ori.

Sa presupunem ca V foloseste parametrii a, g, k1, k2 pentru a semna si un alt vot m′ si satrimita un al doilea buletin T = a ‖ g ‖ y1 ‖ y2 ‖ s ‖ s′1 ‖ s′2 ‖ m′ spre alt V S.

Pentru a detecta o dubla votare, V S verifica parametrii a, g, y1, y2 din toate buletinele Tpentru a vedea daca ei se repeta. In caz afirmativ, el rezolva sistemul liniar

k1 + k2 =ma′ −ma

s′1 − s1

(mod p− 1) (7)

k1 + 2k2 =ma′ −ma

s′2 − s2

(mod p− 1) (8)

si afla k2. Folosind baza de date a lui AS, se identifica ın mod unic votantul V .

9.5 Slabiciuni ale protocolului Mu-Varadharajan

In [3] se arata ca totusi exista doua modalitati prin care cineva poate vota de mai multe orifara sa fie depistat.

Sa presupunem ca V a obtinut buletinul valid de vot T = a ‖ g ‖ y1 ‖ y2 ‖ s ‖ s1 ‖ s2 ‖ 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 relatiileg′ = qc0 (mod p),

y′1 = (g′)(k1+k2+c1)c−10 (mod p),

y′2 = (g′)(k1+2k2+c2)c−10 (mod p),

a′ = (g′)(r+c3)c−10 (mod p),

unde c0, c1, c2, c3 sunt numere ıntregi care evrifica conditiile c1 + c2 + c3 = 0, c1c2c3 6= 0.Acum V genereaza buletinul T ′ = a′g′y′1 ‖ y′2 ‖ s ‖ s′1 ‖ s′2 ‖ m unde (s′1, s

′2) este semnatura

votului m cu cheile (k1 + k2 + c1)c−10 respectiv (k1 + 2k2 + c2)c

−10 ; anume

s′1 = ((k1 + k2 + c1)c−10 )−1(ma′ − (r + c3)c

−10 ) (mod p− 1)

s′2 = ((k1 + 2k2 + c2)c−10 )−1(ma′ − (r + c3)c

−10 ) (mod p− 1)

In faza de votare si de colectare a buletinelor, V poate trimite catre V S si al doilea buletinT ′. V S verifica ıntai semnatura s, apoi validitatea lui a′, y′1, y

′2 folosind ecuatia

seAS = y1y2a (mod nAS) = y′1y′2a′(mod nAS)

In continuare V S verifica validitatea lui (s′1, s′2) cu ecuatiile (5) si (6). Cum toate sunt

corecte, V S crede ca T ′ este un buletin valid si-l trimite lui TCS. Aici, pentru protejarea contradublei votari, TCS verifica parametrii a′, g′, y′1, y

′2 si decide ca ei au fost folositi o singura data.

Deci atacul functioneaza. Chiar daca V S detecteaza ca semnatura s a mai fost utilizata, el nuva putea detecta identitatea votantului ilegal (cu (7) si (8)).

9.5.2 Atacul 2

Similar primului atac, V alege ıntai aleator numarul h si calculeazag′ = gh, a′ = ah2

, y′1 = yh2

1 , y′2 = yh2

2 , s′ = sh2

Page 693: Criptografie complet

114 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

Apoi, semnatura (s′1, s′2) pentru m poate fi calculata cu o varianta a relatiilor (3) si (4)

folosind cheile (k1 + k2)h respectiv (k1 + 2k2)h:s′1 = (k1 + k2)

−1h−1(ma′ − hr) (mod p− 1),s′2 = (k1 + 2k2)

−1h−1(ma′ − hr) (mod p− 1).Deci V poate genera un nou buletin de vot T ′ = a′ ‖ g′ ‖ y′1 ‖ y′2 ‖ s′ ‖ s′1 ‖ s′2 ‖ m.V S este convins de validitatea lui T ′ pentru ca relatiile

(s′)eAS = (y1y2a)h2= y′1y

′2a′ (mod nAS)

(y′1)s′1a′ = (g′)a′m (mod p)

(y′2)s′2a′ = (g′)a′m (mod p)

sunt verificate.Cu aceste atacuri, un votant poate vota de oricate ori vrea, fara sa fie detectat.

9.6 Protocolul Mu-Varadharajan modificat

Pentru a evita slabiciunile ın fata atacurilor prezentate anterior, este construita o variantaımbunatatita a protocolului de vot Mu-Varadharajan. Noua schema are tot trei etape; acesteasunt (s-au folosit aceleasi notatii):

9.6.1 Etapa I: Obtinerea buletinului de vot

1. V alege doi factori blind b1, b2 si doua nuemre aleatoare k1, r. Cu acesti parametri cal-culeaza w1 si w2 dupa formulele

w1 = grbeAS1 (mod nAS)

w2 = gk1beAS2 (mod nAS)

unde g ∈ Z∗p este un parametru public al sistemului.

V trimite lui AS structura {V, AS, CertV , t, w1, w2, ((w1 ‖ w2 ‖ t)dV (mod nV ))}.2. V S verifica validitatea certificatului si valideaza semnatura (w1 ‖ w2 ‖ t)dV (mod nV ).

Daca rezultatul verificarii este pozitiv, AS poate fi sigur ca parametrii primiti sunt corecti.El continua alegand un numar aleator k2 diferit pentru fiecare votant si calculeaza

w3 = (k2 ‖ t)eV (mod nV )

w4 = (w1 · AS)dAS (mod nAS) = (a · AS)dASb1 (mod nAS)

w5 = (w2 · gk2 · AS)dAS (mod nAS) = (y1 · AS)dASb2 (mod nAS)

w6 = (w22 · gk2 · AS)dAS (mod nAS) = (y2 · AS)dASb2

2 (mod nAS)

unde a = gr, y1 = gk1+k2 , y2 = gk1+2k2 .

Mesajul {AS, V, w3, ((w4 ‖ w5 ‖ w6 ‖ t)eV (mod nV ))} este trimis lui V . In paralel, ASstocheaza ın baza sa de date k2 ımpreuna cu identitatea lui V .

3. V obtine k2 prin decriptarea lui w3, iar pe baza lui poate determina y1 si y2. Mai departe,V determina semnatura (s1, s2, s3) (eliminand factorii blind) conform relatiilor

s1 = w4b−11 = (a · AS)dAS quad(mod nAS)

s2 = w5b−12 = (y1 · AS)dAS quad(mod nAS)

Page 694: Criptografie complet

9.6. PROTOCOLUL MU-VARADHARAJAN MODIFICAT 115

s3 = w6b−22 = (y2 · AS)dAS quad(mod nAS)

4. V aplica o schema de semnatura ElGamal pentru a semna votul m. Fie y1, y2 cheilepublice ale sistemului de criptare ElGamal si x1 = k1 + k2, x2 = 2k1 + k2 cheile se-crete corespunzatoare; deci y1 = gk1+k2 (mod p) si y2 = g2k1+k2 (mod p). Semnatura((a, s4), (a, s5)) pentru votul m este generata de ecuatiile

s4 = x−11 (ma− r) (mod p− 1) respectiv

s5 = x−12 (ma− r) (mod p− 1).

Buletinul de vot al lui V este T = s1 ‖ s2 ‖ s3 ‖ s4 ‖ s5 ‖ a ‖ y1 ‖ y2 ‖ 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 verifica validitatea lui a, y1, y2 folosind ecuatiile

AS · a = seAS1 (mod nAS) (9)

AS · y1 = seAS2 (mod nAS) (10)

AS · y2 = seAS3 (mod nAS) (11)

Daca toate sunt verificate, V S trece la verificarea corectitudinii semnaturii ((a, s4), (a, s5))folosind relatiile:

gma = ys41 a = ys5

2 a (mod p)

Daca ele se verifica, V S accepta T ca valid. In final, V S formeaza o baza de date cu toatebuletinele de vot valide, pe care o trimite prin retea 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 continutul lor si lenumara. In plus, el este responsabil cu detectarea dublei votari.

Sa presupunem ca un votant V foloseste aceiasi parametri y1, y2, a pentru a semna un votdiferit m′ si trimite acest buletin unui alt V S. Atunci:

1. TCS verifica y1, y2, a pentru toate buletinele T pentru a vedea daca apar de mai multeori.

2. Daca aceste valori au aparut de doua ori si m = m′ se ia ın considerare un singur buletin.Daca m 6= m′ rezulta ca este un caz de dubla votare si TCS afla identitatea acestuia,calculand

x1 =m′a−ma

s′4 − s4

(mod p− 1) si

x2 =m′a−ma

s′5 − s5

(mod p− 1).

De aici, x2 − x1 = (2k1 + k2)− (k1 + k2) = k1 si deci k2 = x1 − k1. Cu ajutorul lui k2 sepoate afla cine a ıncercat sa triseze.

Page 695: Criptografie complet

116 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

9.7 Securitatea protocolului Mu-Varadharajan modificat

In ipoteza ca serverul de autentificare SA este sigur si deci nu va genera nici un buletin de votfara consimtamantul votantului, sistemul construit verifica toate restrictiile unui sistem de votelectronic. In plus, el are o securitate sporita, rezultata din urmatoarele observatii:

9.7.1 Rezistenta la atacurile 1 si 2

Sa presupunem ca un votant forteaza parametrii a, y1, y2 ın conformitate cu Atacul 1; el nu vaputea totusi sa obtina semnatura (s1, s2, s3) data de ecuatiile (9), (10), (11) pentru ca nu stiecheia secreta dAS.

In al doilea atac, V poate obtine usor componenta s′2 = (AS · y′2)dAS dar nu poate geberarestul semnaturiii pentru vatul m. De exemplu, sa presupunem s′2 = s2

2 = (AS2 · y22)

dAS

si y′2 = AS · y22. Deci parametrul y′2 poate trece de verificare. Dar – din cauza problemei

logaritmilor discreti – votantul nu poate obtine cheia secreta corespunzatoare x′1. Fara cheiasecreta, V nu poate genera o semnatura corecta.

9.7.2 Rezistenta fata de un atac aliat

Sa presupunem ca doi votanti V1, V2 cu semnaturile valide (s11, s12, s13) respectiv (s21, s22, s23)colaboreaza pentru obtinerea unei noi semnaturi (s′1, s

′2, s

′3) definita prin

s′i = s1i · s2i (mod nAS), i = 1, 2, 3, 4.Totusi ei nu vor putea calcula parametrii r′, x′1, x

′2 din cauza dificultatii de rezolvare a

problemei logaritmului discret.

Page 696: Criptografie complet

Bibliografie

[1] J. Benaloh – Verifiable sectret-ballot elections, Ph.D thesis, Yale University, Technical report561 (1987)

[2] J.D. Cohen – Improving Privacy in Cryptographic Elections

[3] I.Chang Lin, M.Hwang, C.Chang – Security enhancement for anonymous secure e-votingover 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 onFundamentals E81-A (10) (1998), 2186-2193

[6] Y.Mu, V. Varadharajan – Anonymous e-voting over a network, Proc. of the 14th AnnualComputer Security Applications Conference, ASAC8 (1998) 293-299

[7] H. Nurmi, A. Salomaa, L. Santean – Secret ballot elections in computer networks, Computerand Security 10 (1991), 553 - 560.

[8] C. Park, K. Itoh, K. Kurosawa – it Efficient anonymous channel and all or nothing electionscheme, Proc. Eurocrypt 3, Springer LNCS 765 (1994), 248 - 259.

[9] A. Renvall – Cryptogtaphic Protocols and techniques for Communication, Ph.D. Thesis

117

Page 697: Criptografie complet

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) redb) white d) blue

a

C 53

Alegeti culoarea data de codul de culoare #ffffff:

a) black c) greenb) white d) gray

b

C 3

Aplicatiile de control a conexiunii folosesc protocolul:

a) ip c) icmpb) 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) sizeb) width d) style

b

C 2

Care din urmatoarele programe foloseste campul TTL:

a) ping c) tracerouteb) 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) Kmailb) Sendmail d) Outlook

b

C 23

Care program nu este un client de mail

a) Thunderbird c) Postfixb) Evolution d) Outlook

c

C 24

Care program nu este un client de mail

a) Thunderbird c) Outlookb) Evolution d) Exim

d

C 9

Care program nu este un client de web

a) Mozilla firefox c) Safarib) Opera d) Explorer

d

Page 698: Criptografie complet

Pag. 2

C 25

Care program nu este un server de mail

a) Postfix c) Cyrusb) Sendmail d) Exim

c

C 8

Care program nu este un server de web

a) firefox c) apacheb) 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 estek = 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 sausoftware.

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 (64biti) 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 sirurib) 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 liberb) 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 fisierb) Afiseaza continutul unui directorc) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestead) 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 activeb) 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 fisierb) Afiseaza continutul unui directorc) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestead) 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 ocupatde acesta

Page 699: Criptografie complet

Pag. 3

C 70

Comanda head din sistemul de operare UNIX

a) Afiseaza continutul unui fisierb) Afiseaza primele linii ale unui fisierc) Afiseaza ultimele linii ale unui fisierd) 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 fisierb) Afiseaza continutul unui directorc) Afiseaza lista de fisiere si directoare si spatiul ocupat de acestead) 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 siportul

C 63

Comanda ps din sistemul de operare UNIX

a) Afiseaza continutul unui fisier c) Afiseaza lista de procese activeb) 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 sistemb) Afiseaza continutul unei partitiic) Afiseaza lista de programe instalate in sistemd) 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 fisierb) Afiseaza primele linii ale unui fisierc) Afiseaza ultimele linii ale unui fisierd) 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 sistemb) Afiseaza lista de programe si memoria alocata acestorac) Afiseaza interactiv procesele active în sistemd) 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 sistemb) 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

Page 700: Criptografie complet

Pag. 4

C 4

Comunicarea dintre un client si un server se realizeaza pe baza adresei de:

a) ip c) udpb) 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) emailb) 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 luiM(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 Kdetermina 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) laM(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 indD d K a functii-

lor de decriptare, cu proprietatea ca pentru fiecare e din K exista o cheie unica din K astfel incat1d eD E , formeaza :

R: scheme de cripate

B 49 Configurare firewall-uri in mediul UNIX iptables

B 50 Configurare routere

A 9

Considerăm modul de utilizare CBC al cifrului bloc DES care aplică permutări biţilor unui vector de biţi

de lungime 4. Criptaţi textul clar x = 1011000101001010 folosind cheia

1 2 3 42 3 4 1

şi blo-

cul iniţial IV = 1010R: 0010 0110 0100 1101

A 11

Considerăm modul de utilizare CFB al cifrului bloc DES care aplică permutări biţilor unui vector de biţi

de lungime 4. Criptaţi textul clar x = 1011000101001010 folosind cheia

1 2 3 42 3 4 1

şi blo-

cul iniţial IV = 1010R: 1101 0101 1101 0010

Page 701: Criptografie complet

Pag. 5

A 8

Considerăm modul de utilizare ECB al cifrului bloc DES care aplică permutări biţilor unui vector de biţi

de lungime 4. Criptaţi textul clar x = 1011000101001010 folosind cheia

1 2 3 42 3 4 1

R: 0111 0010 1000 0101

A 10

Considerăm modul de utilizare OFB al cifrului bloc DES care aplică permutări biţilor unui vector de biţi

de lungime 4. Criptaţi textul clar x = 1011000101001010 folosind cheia

1 2 3 42 3 4 1

şi blo-

cul iniţial IV = 1010R: 1110 1011 0001 0000

RSA 12CConsiderăm sistemul de criptare RSA construit cu numerele prime p = 3; q = 5. Dacă exponentul de crip-tare este e = 4 şi se doreşte codificarea textului clar m = 11, determinaţi 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 Criptaţi un text clar la alegere folosind sistemul de criptare Hill cu matricea3 23 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 58Daca 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 Determinaţi inversa matricei (modulo 26)3 23 5

R: [15 20;17 9]

C 36

DHCP provine de la

a) Detect Host Configuration Protocol c) Dynamic Host Connection Processb) 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 Systemb) 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 senumesc entitati pereche Entitatile pot fi: software (un proces) sau hardware (un cip I/E inteligent).

R: pereche

Page 702: Criptografie complet

Pag. 6

C 48

Elementul inline generic potrivit cu o gama larga de utilizari, inclusiv pentru a atasa CSSunei 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 prinutilizarea 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 prinutilizarea urmatorului element de fraza:

a) <strong> c) <aldine>b) <em> d) <b>

d

ELG 12B

Fie cifrul El-Gamal asociat numărului prim p = 11 şi rădăcinii primitive, modulo 7, 5. Cheia secretă a luiAlice este 4, iar cea a lui Bob este 7. Alice primeşte de la Bob textul criptat (3,7) pe care îl decodifică şigăseşte mesajul clar ………....

R: x=m(textul clar)=2

ELG 12A

Fie cifrul El-Gamal asociat numărului prim p = 7 şi rădăcinii primitive, modulo 7, 5. Cheia secretă a luiAlice este 3, iar cea a lui Bob este 4. Dacă Bob codifică textul clar x = 11 şi il transmite lui Alice, atunciaceasta primeşte codificarea …………....

R: c=(c1,c2)=(2,4)

RSA 12BFie d = 11 exponentul de decriptare al sistemului de criptare RSA construit cu numerele primep = 7; q = 11. Determinaţi exponentul de criptare e.

R: E=11

RSA 12AFie d exponentul de decriptare al sistemului de criptare RSA construit cu numerele prime p = 3; q = 5.Dacă exponentul de criptare este e = 7, determinaţi d.

R: D=7

A 3Folosind sistemul de criptare Polybios codificaţi textul clar UNIVERSITATE.

R: EACDBDEBAEDCDDBDDEAADEAE (am eliminat w)

A 6

Folosind un sistem aditiv fluid binar de criptare se cere criptarea /decriptarea secvenţei de text clar

x = 101101, cunoscând cheia fluidă z = 1101.R: 011010 (criptarea)

A 7Folosind un sistem de criptre asincron cu auto-cheie, pentru k = 11, codificaţi /decodificaţi textul clarSPIRU HARET.

R: DSARLSSJNG

B 62Formal, 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 Languageb) 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 Protocolb) 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 Protocolb) Internet Message Access Protocol d) Interior Message Access Protocol

b

MUGUR
Typewritten Text
X
MUGUR
Typewritten Text
10
Page 703: Criptografie complet

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 cuvântul cheie GRUPA. Criptăm cu această cheie textulclar CRIPTOGRAFIE şi se obţine 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 unuielement de tipul:

a) <p> c) <br>b) <b> d) <hr>

c

B 71Nivelul ...................... al modelului OSI stabileleste si întretine conexiunea între procese de pe masinidiferite, 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 fiHTTP (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 esteprotocolul de terminal virtual ....................... care permite unui utilizator de pe o masina sa se conectezesi 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 esteprotocolul pentru transferul de fisiere ............. care poseda un mecanism de mutare eficienta a datelor depe o masina pe alta.

R: FTP

B 78Nivelul aplicatie al modelului TCP/IP cuprinde toate protocoalele de nivel înalt. Unul dintre acestea esteprotocolul 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 numelegazdelor si adresele retelelor.

R: DNS

Page 704: Criptografie complet

Pag. 8

B 54Nivelul n de pe o masina comunica folosind anumite reguli si conventii numite ……………. cu niveluln de pe alta masina

R: protocoale

B 66Nivelul fizic al modelului OSI are rolul de a transmite bitii de la o masina la alta printr-un canalde 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 sadetermine modul de dirijare a pachetelor de la sursa la destinatie prin intermediul tabelelor statistice (cutrasee 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 corectla distanta. De asemenea, stabileste tipul de serviciu pe care îl furnizeaza nivelului imediat su perior siutilizatorilor 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, câte u n protocol pentru fiecare nivel se numeste stivade 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 81Obiectivul esential al criptografiei care se refera la ascunderea informatiilor fata de toate persoanele,mai putin cele autorizate, este:

R: confidentialitate

B 82Obiectivul esential al criptografiei care se refera la evitarea alterarii neautorizate a datelor este:

R: intregritate

B 83Obiectivul esential al criptografiei care se refera la identificarea unei persoane sau a originii unui mesajeste:

R: autentificare

B 90

Obiectivul unui cifru bloc este de a asigura confidentialitatea. Obiectivul unui intrus este de a recuperamesajul 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 91Obiectivul unui cifru bloc este de a asigura confidentialitatea. Obiectivul unui intrus este de a recuperamesajul 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

Page 705: Criptografie complet

Pag. 9

A 4

Pentru a = 3; b = 5 se definesc funcţiile de criptare, respectiv decriptare, ale unui sistem de criptare afin:

3,5 3 5e x x

3,5 9 9 26 - 5 mod26 9 7d 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) 25b) 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 Protocolb) 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 63Prin 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 implementareal 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 oviteza 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 acurateteatransmisiei.

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 cheiapublica 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

Page 706: Criptografie complet

Pag. 10

B 52Se numeste retea de calculatoare o colectie interconectata de calculatoare autonome care sunt capabilesa 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 61Serviciul 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 ladestinatie 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 Protocolb) 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) titleb) 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 94Un 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 caracterek1k2…kt 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 MACb) 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) imapb) http d) smtp

c

C 21

Un client de mail aduce mesajele prin protocolul:

a) xml c) httpb) 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) Sendmailb) Cyrus d) Gmail

b

C 30

Un exemplu de MTA este

a) Outlook c) Gmailb) Cyrus d) Postfix

d

Page 707: Criptografie complet

Pag. 11

C 28

Un program de tip MUA se conecteaza la un MDA imap pe portul

a) 140 c) 23b) 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) 21b) 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) 21b) 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) ftpsb) 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) 25b) 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) imapb) 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) 445b) 443 d) 22

b

C 7

Un server de web de web poate gazdui:

a) Un singur site c) Oricat de multe siturib) 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) 80b) 8080 d) 21

c

C 11

Un server de web serveste în mod uzual:

a) fisiere zip c) mesaje de e-mailb) date din baza de date d) pagini html

d

C 6

Un server de web utilizeaza protocolul:

a) html c) imapb) http d) ftp

b

Page 708: Criptografie complet

Pag. 12

C 10

Un server de web utilizeaza protocolul:

a) https c) xmlb) 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 UDPb) Translateaza o adresa de web intr-o adresa IPc) Translateaza o adresa IP intr-o adresa MACd) Translateaza o adresa MAC intr-o adresa IP

b

C 40

Un server DNS raspunde pe portul

a) 69 c) 80b) 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) 25b) 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) imapb) http d) ssh

d

RSA 12DUn utilizator al sistemului de criptare RSA are ca cheie publică (n; e) = (35; 5) şi cheia secretă d = 5. Da-că primeşte 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 fiesigur, adica sa nu piarda niciodata date. Pentru aceasta, receptorul trebuie sa confirme primirea fiecaruimesaj, ceea ce duce la introducerea unui timp suplimentar si deci la întârzieri.

R: sigur

B 51 Utilizare sniffere Dsniff, Ettercap, Cain

C 1

Verificare unei conexiuni fizice de retea se va realiza prin:

a) ping c) tracerouteb) 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

Page 709: Criptografie complet

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=me (mod n) Decriptare: m = cd (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 qi. In timp ce efectuam

fiecare pas al algoritmului, vom calcula si un numar auxiliar, pi. Pentru primii 2 pasi stim deja valorile : p0 = 0 and p1 = 1. Pentru

restul pasilor vom calcula recursiv pi = pi-2 - pi-1 qi-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 pk+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 p0 = 0

PAS 1: 15/11 = 1 rest 4 p1 = 1

PAS 2: 11/4 = 2 rest 3 p2 = 0 - 1( 1) mod 26 = 25

PAS 3: 4/3 = 1 rest 1 => x admite invers p3 = 1 - 25( 1) mod 26 = -24 mod 26 = 2

PAS 4: 3/1 = 3 rest 0 p4 = 25 - 2( 2) mod 26 = 21

p5 = 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 c1 folosind cheia lui privata si c2 folosind αA a lui Alice pe care-l obtine din cheia ei publica. c1 = αB mod p ; c2 = m(αA)k mod p ; c = (c1,c2) - Trimite textul cifrat c = (c1,c2) la utilizatorul Alice. Decriptare : Pentru a determina textul clar m din textul cifrat c, utilizatorul Alice execută următoarele: 1. Utilizează cheia sa privată a pentru a calcula: f = c1

p-1-A (mod p). 2. Determină textul clar m astfel: m = f*c2 (mod p).

Page 710: Criptografie complet

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 p0=0 7/1 = 7 rest 0 p1=1 p2=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 p0=0

11/2 = 5 rest 1 p1=1

2/1 = 2 rest 0 p2=0 – 1*2 (mod 24) = 22

P3= 1 – 22*5 (mod 24) = -109 mod 24 = 11

e = 11

RSA 3) : n=15; e=4; m=11, c=?

c = me (mod n) = 114 (mod 15) = 14641 mod 15 = 1

RSA 4) : (n,e) = (35,5) ; d=5, c=3 , m=?

m = cd (mod n) = 35 (mod 35) = 243 mod 35 = 33

El-Gamal 1): p=11; α=2; csA=3; csB=4; m=9; c=?

c1 = αB (mod p) = 24 mod 11 = 16 mod 11 = 5

c2 = m(αA)B (mod p) = 9(23)4 mod 11 = 9*4096 (mod 11) = 3

c = (c1,c2) = (5,3)

El-Gamal 2): p=7; α=5; csA=3; csB=4; m=11; c=?

c1 = αB (mod p) = 54 mod 7 = 625 mod 7 = 2

c2 = m(αA)B (mod p) = 11(53)4 mod 7 = 11*244140625 (mod 7) = 4

c = (c1,c2) = (2,4)

El-Gamal 3): p=11; α=2; csA=3; csB=4; A primeste de la B (y1,y2)=(5,3); txt. Clar x =?

z = y1p-1-A (mod p) = 511-1-3 (mod 11) = 57 (mod 11) = 3

x = z * y2 (mod p) = 3 * 3 (mod 11) = 9

El-Gamal 4): p=11; α=2; csA=4; csB=7; (y1,y2) = (3,7); txt clar x=?

Daca (y1,y2) = (3,7) este primit de B de la A, atunci:

f = y1p-1-B (mod p) = 311-1-7 (mod 11) = 33 (mod 11) = 5

x = f * y2 (mod p) = 5 * 7 (mod 11) = 2

Daca (y1,y2) = (3,7) este primit de A de la B, atunci:

f = y1p-1-A (mod p) = 311-1-4 (mod 11) = 36 (mod 11) = 3

x = f * y2 (mod p) = 3 * 7 (mod 11) = 10