Sunteți pe pagina 1din 40

Retele de calculatoare notite de curs

Radu-Lucian Lupa s 13 octombrie 2005

Cuprins
1 Introducere 1.1 Ce este o retea de calculatoare? . . . 1.2 Problemele abordate curs . . . . . n 1.3 Problemele infrastructurii retelei . . . 1.4 Tipuri de comunicatie . . . . . . . . 1.5 Arhitectura sistemului de comunicatii 5 5 5 5 6 6 7 7 7 8 9 10 10 10 11 11 13 13 13 14 15 16 16 17 18 18 19 19 19

. . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

2 Programarea retea introducere n 2.1 Interfata de programare socket BSD . . 2.1.1 Creare . . . . . . . . . . . . . . . 2.1.2 Utilizare socket stream . . . . . . 2.1.3 Utilizare socket pentru datagrame 2.2 Adresarea in internet . . . . . . . . . . . 2.3 Transmiterea mesajelor . . . . . . . . . . 2.3.1 Mesaje binare . . . . . . . . . . . 2.3.2 Mesaje text . . . . . . . . . . . . 2.4 Asigurarea concurentei . . . . . . . . . . 3 Nivelul zic 3.1 Transmisia prin r . . . . . . . . . . . 3.1.1 Marimi electrice . . . . . . . . . 3.1.2 Semnale . . . . . . . . . . . . . 3.1.3 Banda de trecere . . . . . . . . 3.1.4 Codarea banda de baz . . . n a 3.1.5 Transmisia modulat . . . . . . a 3.1.6 Multiplexarea frecventa . . . n 3.2 Transmisia prin unde radio . . . . . . . 3.2.1 Propagarea undelor . . . . . . . 3.2.2 Unde nedirijate i unde dirijate s 3.3 Transmisia prin br optic . . . . . . a a 3.3.1 Propagarea semnalului . . . . . . . . . . . . . . . . .

4 Codarea informatiei 21 4.1 Notiuni de teoria informatiei . . . . . . . . . . . . . . . . . . . . . 21 4.2 Problema codrii pe canale fr zgomote . . . . . . . . . . . . . . 22 a aa 4.3 Coduri detectoare i corectoare de erori . . . . . . . . . . . . . . . 26 s 5 Nivelul legturii de date a 29

CUPRINS

6 Nivelul retea i nivelul transport s 6.1 Algoritmi de dirijare . . . . . . . . . 6.2 Controlul congestiei . . . . . . . . . . 6.3 Protocolul IP i protocoalele auxiliare s 6.4 Nivelul transport . . . . . . . . . . . 6.5 Retele eterogene i retele private . . . s 6.6 Retele mobile . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

31 31 32 32 32 33 33 35 35 35 35 36 37 38 38 38 39

7 Metode i protocoale criptograce s 7.1 Deziderate . . . . . . . . . . . . . . . . . . . . . 7.2 Asigurarea condentialitaii . . . . . . . . . . . t 7.2.1 Criptograa simetric . . . . . . . . . . a 7.2.2 Utilizarea practic a cifrurilor bloc . . . a 7.2.3 Numere aleatoare . . . . . . . . . . . . . 7.2.4 Criptograe asimetric (cu cheie public) a a 7.3 Autenticarea originii i controlul integritii . . s at 7.3.1 Functii de dispersie criptograce . . . . . 7.3.2 Autenticarea mesajelor . . . . . . . . .

Capitolul 1 Introducere
1.1 Ce este o retea de calculatoare?
Termenul retea de calculatoare are cel putin doua utilizari distincte: 1. mai multe calculatoare, impreuna cu un sistem (hard+soft) de comunicatii 2. un sistem de calcul, bazat pe o retea in sensul 1, dar comportandu-se ca un sistem unitar (de exemplu, prezinta aceleasi conturi de utilizatori pe toate calculatoarele)

1.2

Problemele abordate curs n

1. Realizarea infrastructurii pentru comunicatii; 2. Aplicatii (de comunicatie) in retea: aplicatii existente, principiile realizrii aplicatiilor retea a n 3. Elemente de sisteme de operare in retea.

1.3

Problemele infrastructurii retelei

1. codarea zic a informatiei; a 2. detectarea i corectarea erorilor de transmisie; s 3. controlul uxului (asigurarea faptului c emitatorul nu trimite mai repede a dect poate receptorul s primeasc); a a a 4. controlul coliziunilor i adresarea, pe medii de tip magistral (adic care s a a n exist mai multe entiti prevzute cu emitatoare i receptoare care partaa at a s jeaz acelai mediu); a s 5. dirijarea comunicatiei retea (astfel at dou calculatoare s poat co n nc a a a munica, chiar dac nu exist legtur direct a a a a a ntre ele, ci doar legturi prin a intermediari);

Capitolul 1. Introducere

6. livrarea sigur (mesajele s nu se piard, s nu ajung multiplu exemplar, a a a a a n i s ajung ordinea care au fost emise); s a a n n 7. securitatea: condentialitate (un mesaj s poat receptionat doar de ctre desti a a a natarul autorizat), autenticarea (receptorul s poat verica identitatea emitatorului, a a integritatea comunicatiei (nimeni s nu poat modica mesajele, a a a a non-repudiabilitatea (destinatarul s poat dovedi originea unui mesaj, altfel spus, nici mcar destinatarul s nu poat falsica identitatea aua a a torului mesajului)

1.4

Tipuri de comunicatie
Dupa nr. de receptori:

punct la punct (unicast): un emittor i un receptor; a s difuziune (broadcast sau multicast): un emitator i mai multi receptori. s Nota: broadcast este o comunicatie care un mesaj este primit de toat n a lumea; multicast desemneaz o comunicatie care doar o parte din calculatoarele a n din retea primesc mesajul. Dupa existenta unei conexiuni: comunicatie prin conexiune; comunicatie prin datagrame. Deziderate optionale: livrare sigura (un mesaj sa e livrat exact o data) transmisie fara erori pastratea ordinii relative a mesajelor debit minim garantat timp maxim de livrare garantat condentialitate autenticare

1.5

Arhitectura sistemului de comunicatii

Capitolul 2 Programarea retea n introducere


2.1 Interfata de programare socket BSD
socket = capat de cale de comunicatie Presupuneri: pe ecare calculator pot rula mai multe procese, i ecare proces poate avea s mai multe ci de comunicatie deschise, prin urmare pe un calculator trebuie a s poat exista la un moment dat mai multe socket-uri active; a a o comunicatie poate prin conexiune sau datagrame pentru a identica partenerul de comunicatie, initiatorul unei comunicatii trebuie s furnizeze o adres ; formatul acestei adrese poate s depind de a a a a tipul retelei (IP, IPX, etc). API-ul este conceput s e independent de tipul exact al retelei (poate a functiona pe retele IP, IPX, local pe unix, etc.)

2.1.1

Creare
socket(proto_family, type, protocol) type: desemneaz tipul de servicii dorite: a

SOCK STREAM: conexiune; punct la punct; ux de date bidirectional la nivel de octet; livrare sigura, cu pastrarea ordinii, transmisie fara erori. SOCK DGRAM: datagrame punct la punct sau difuziune transmisie fara erori; livrarea nu e sigura si nici ordinea garantata. SOCK RAW: acces direct la infrastructura; ex. in implementarea comenzii ping. a a proto family identic tipul de retea cu care se lucreaz (IP, IPX, etc). Se pune PF INET pentru conexiuni pe protocol Internet (IP). protocol identic protocolul particular de utilizat. Este intentionat a a folosit daca ar exista mai multe protocoale distincte pentru un tip de retea dat si pentru un tip de serviciu dat. Implicit se va pune 0.

Capitolul 2. Programarea retea introducere n

Functia returneaz identicatorul de socket, pe care aplicatia va furniza a l apelurile ulterioare. n

2.1.2

Utilizare socket stream

Un socket stream poate s e una din dou stri: neconectat sau a n a a conectat. Un socket neconectat poate avea o adres xat sau nu. a a Orice socket care particip la o operatie de comunicare trebuie s aib o a a a adres; dac adresa nu i se xeaz explicit prin bind(), atunci sistemul va da a a a i o adres aleatoare. a Conectarea, pe client: connect(sock id, addr, addr len) conecteaz socket-ul local sock id cu socketa ul identicat prin adresa addr. Adresa addr trebuie s corespund unui a a socket de tip stream neconectat Conectarea, pe server: bind(sock id, addr, addr len) xeaz adresa socket-ului sock id. a listen(sock id, dim coada) xeaz dimensiunea cozii de ateptare pentru cona s exiunile ctre adresa socket-ului a accept(sock id, addr, addr len) ateapt o cerere de conexiune i returneaz s a s a un nou socket conectat la socket-ul care a cerut conexiunea. Socket-ul original poate folosit ulterior pentru a atepta noi conexiuni. Parametrul addr s returnez adresa socket-ului a Comunicatia propriu-zis: a send(sock id, buf, count, flags) trimite count octeti recv(sock id, buf, count, flags) receptioneaz cel mult count octeti. Dac a a nu exist nici un octet sosit, functia ateapt sosirea a cel putin un octet (este a s a blocant). Apoi citete minimul a s ntre numrul de octeti sositi i numrul de a s a octeti ceruti (count). Returneaz numrul de octeti cititi. Returneaz 0 a a a dac emittorul a a a nchis conexiunea. Inchiderea conexiunii: close(sock id) distruge socket-ul i s nchide complet conexiunea ataat (dac s a a exist) a shutdown(sock id, how) nchide comunicatia, posibil doar ntr-unul singur sens Structura unui program: Clientul: #include <sys/socket.h> #include <netinet/in.h> ... struct sockaddr_in adr; sd=socket(PF_INET, SOCK_STREAM, 0);

2.1. Interfata de programare socket BSD

memset(&adr, 0, sizeof(adr)); adr.sin_family = AF_INET; adr.sin_port = htons(remote_port); inet_addr(remote_ip, &adr.sin_addr); if(-1==connect(sd, (struct sockaddr*)&adr, sizeof(adr)) ) { perror("connect()"); exit(1); } ... send(sd, ...); recv(sd, ...) ... close(sd); Serverul: #include <sys/socket.h> #include <netinet/in.h> ... struct sockaddr_in adr; sd=socket(PF_INET, SOCK_STREAM, 0); memset(&adr, 0, sizeof(adr)); adr.sin_family = AF_INET; adr.sin_port = htons(remote_port); adr.sin_addr = INADDR_ANY; if(-1==bind(sd, (struct sockaddr*)&adr, sizeof(adr)) ) { perror("connect()"); exit(1); } listen(sd, 5); ... struct sockaddr_in client_adr; socklen_t client_adr_size; sd_c = accept(sd, (struct sockaddr*)&client_adr, &client_adr_size) ... send(sd_c, ...); recv(sd_c, ...) ... close(sd_c); ... close(sd);

2.1.3

Utilizare socket pentru datagrame

Probabil cel putin unul din capete trebuie s xeze adresa socket-ului, la a o valoare cunoscut de partener; pentru aceasta folosete apelul bind(). Cellalt a s a capt primete automat o adres la prima trimitere de datagram. a s a a Functii:

10

Capitolul 2. Programarea retea introducere n

bind(sock id, addr, addr len) xeaz adresa socket-ului; a sendto(sock id, buf, count, flags, addr, addr len) trimite o datagram a la adresa specicat; a recvfrom(sock id, buf, count, flags, addr, addr len) receptioneaz o da a tagram, i pune addr adresa de provenienta. a s n

2.2

Adresarea in internet
Adresa IP:

identic unic maina a s 32 biti; de obicei scris ca 4 numere zecimale separate prin puncte (ex. a 193.226.40.130) principiu, ecare interfat de retea (ex. plac de retea, linie seriala sau n a a modem folosit pentru o conexiune in retea) are o adresa IP adresa 127.0.0.1 corespunde unei interete virtuale intr-o retea (virtual) a n care calculatorul este singur. Altfel spus, 127.0.0.1 desemneaz intotdeauna a maina locala. s unele adrese sunt folosite pentru broadcast Numarul portului: servete pentru a diferentia intre socket-ii de pe aceeai maina s s s 16 biti (165535) porturile TCP (SOCK STREAM) sunt independente de porturile UDP (SOCK DGRAM)

2.3

Transmiterea mesajelor

Exemplu: clientul anunta scoaterea dintr-o magazie a unei anumite can titi de marf. Se trimite un mesaj continnd denumirea i cantitatea. at a a s

2.3.1

Mesaje binare
Exemplu:

struct Cerere { char denumire[30]; int cantitate; }; Cerere c; ... send(sd, &c, sizeof(c), 0);

2.4. Asigurarea concurentei

11

Probleme: 1. lungimea (numrul de octeti) pe care se reprezint un int este dependent a a a de platform a 2. ordinea octetilor este dependent de platform (little endian vs. big endian) a a 3. alinierea e dependent de platform (se poate ca adresa unui a a ntreg s trea buiasc s e multiplu de 2, 4 sau 8 octeti) a a Solutie: 1. se folosesc typedef-urile uint16 t, uint32 t denite netinet/in.h ; lunn gimea reprezentrii lor e independent de platform; a a a 2. se convertesc la o ordine a octetilor independent de platform: functiile a a htons(), htonl(), ntohs(), ntohl(); 3. se transmite individual ecare membru al unei structuri. Exemplu: struct Cerere { char denumire[30]; unit32_t cantitate; }; Cerere c; ... send(sd, c.denumire, 30, 0); c.cantitate=htonl(c.cantitate); send(sd, &c.cantitate);

2.3.2

Mesaje text

2.4

Asigurarea concurentei

12

Capitolul 2. Programarea retea introducere n

13

Capitolul 3 Nivelul zic


3.1
3.1.1

Transmisia prin r
Marimi electrice
Reamintim din zica de liceu urmtoarele mrimi electrice: a a

Sarcina electric (Q) msoar cantitatea de electricitate. Este analoag cana a a a titii de uid. Putem msura cantitatea de electricitate (sarcina electric) at a a ce trece printr-un conductor ntr-o perioad de timp. Se msoar coua a a n lombi (C). Intensitatea curentului (I) (numit pe scurt curentul ) msoar sarcina eleca a a tric ce trece printr-un conductor artit la timpul care trece. Este a mp a n analoag debitului de uid printr-o conduct. Intensitatea curentului ce a a trece printr-un conductor se msoar a a ntrerupnd conductorul i intercalnd a s a un instrument de msur numit ampermatru. Ampermetrul trebuie s cona a a duc foarte bine curentul (s aib impedanta vezi mai jos ct mai a a a a mic) pentru a perturba ct mai putin circuitul care msoar. Se msoar a a n a a a a amperi (A). Intensitatea curentului prin circuite folosite la transmiterea n informatiei este de regul de ordinul zecilor de miliamperi. a Tensiunea electric (U) a ntre dou conductoare msoar ct de puternic ar a a a a impins o sarcin electric aat primul conductor ctre cel de-al doilea. a a a a n a Este analoag diferentei de presiune a ntre dou conducte de uid. Pentru a a msura tensiunea electric a a ntre dou conductoare, montm un instrument a a numit voltmetru cu o born conectat la unul din conductoare i cu cealalt a a s a born legat la cellalt conductor. Voltmetrul trebuie s e ct mai aproape a a a a a de un izolator s conduc ct mai putin curent de la o born la alta a a a a (aidc s aib impedanta ct mai mare). Tensiunea se msoar volti (V). a a a a a a n Tensiunile intre conductoarele folosite pentru transmisia informatiei sunt de ordinul ctorva volti. a Puterea i energia electric (P) Un element de circuit la bornele cruia se s a a aplic o tensiune U i prin care trece un curent de intensitate I de acelai sens a s s cu tensiunea primete o putere P = U I. Dac intensitatea are sens invers s a tensiunii, elementul livreaz puterea P = U I circuitului. Puterea se msoar a a a watti (W). n

14

Capitolul 3. Nivelul fizic

Energia electric (E) Energia msoar produsul dintre puterea primit sau a a a a cedat de un element de circuit i timpul ct are loc fenomenul. Unitatea de a s a msur Sistemul International este joule-ul (J), a frecvent se folosete a a n ns s kilowattora (kWh) (atentie, simbolul kW/h , citit kilowatt pe or, nu este a corect, dei este folosit curent); un kilowattor este energia primit de un s a a consumator care primete o putere de un kilowatt timp de o or; consecinta s a n 1kWh = 3600000J. Elemente de circuit i mrimi caracteristice (Not: ecare element poate s a a construit mod deliberat, a comportamentul poate s apar i acolo unde n ns a as nu este dorit): rezistorul si rezistenta (R) Un rezistor este un element de circuit condensatorul i capacitatea (C) . s bobina i inductanta (L) . s impedanta (Z) i conductanta (G) s surse i consumatori s

3.1.2

Semnale

general, prin semnal se elege valoarea unei mrimi zice, urmrie In ntt a a ca functie de timp, folosite pentru transmiterea informatiei. cazul transmiterii prin conductoare electrice, semnalul este tensiunea In ntre cele dou conductoare; semnalul emis, notat Ue (t), este tensiunea msurat a a a la momentul t la bornele emitatorului, iar semnalul receptionat, notat Ur (t), este tensiunea msurat la bornele receptorului. a a general, semnalul receptionat nu coincide cu semnalul emis. Apar mai In multe fenomene: arzierea face ca semnalul receptionat s urmeza cu o anumit arziere semnt a a nt l nalul emis. Ideal (adic lipsa fenomenelor de mai jos), Ur (t) = Ue (t v ), a n unde l este lungimea liniei iar v este viteza de propagare a semnalului; aceasta din urm depinde doar de materialul izolator dintre conductoarele liniei. a In 8 practic, v 2/3c = 2 10 m/s, unde c este viteza luminii vid. a n atenuarea face ca semnalul receptionat s aib amplitudine mai mic dect a a a a cel emis. Fiecare metru al liniei scoate la iaire un semnal egal cu un s anumit procent din semnalul intrat; ca urmare, amplitudinea semnalului receptionat scade exponential cu creterea lungimii liniei. Mai exact, ne s glijnd arzierea, Ur (t) = g Ue (t), unde 0 < g < 1 i are forma g = a nt s l s a g0 . Se numete factor de atenuare valoarea (1/g)2 ;aceasta arat raportul ntre puterea semnalului emis i a celui receptionat ( general puterea este s n proportional cu ptratul tensiunii, deoarece raportul tensiune/intensitate a a este aproximativ constant). practic, loc s scriem factorul de atenuare In a n a 2 (1/g) scriem atenuarea, care, dat decibeli (notat dB) este 10log10 (1/g)2 . a n Astfel, dac o linie are atenuare de 10dB a nseamn c puterea receptionat a a a

3.1. Transmisia prin fir

15

este 1/10 din puterea emis i c tensiunea receptionat este 1/ (10) din as a a tensiunea emis. a Atenuarea unui cablu este proportional cu lungimea, iar puterea i tensiunea a s receptionate scad exponential cu lungimea. Dac un cablu are atenuarea a 0.1dB/m nseamn c pe 100m de cablu vom avea o atenuare de 10dB, adic a a a o reducere de 10 ori a puterii. Pe 30m din acelai cablu, atenuarea va de s 3dB, adic o reducere de aproximativ 2 ori a puterii (mai exact, factorul de a atenuare este de 100.3 1.9953). Atenuarea depinde de materialele din care sunt fcute conductoarele i izoa s latorul precum i de geometria cablului. s distorsiunile determin semnalul receptionat s aib o form diferit fata de a a a a a semnalul emis.

3.1.3

Banda de trecere

Considerm un circuit electronic, care are o intrare i o ieire (g. ??). a s s particular, o pereche de re folosite pentru transmisie poate considerat un In a astfel de circuit, capetele dinspre emittor constituind intrarea, iar cele dinspre a receptor, ieirea. s Tensiunea de la ieire depinde de tensiunea de la intrare, a general s ns n depinde de tot istoricul ei. Altfel spus, comportamentul circuitului poate descris de o functie care primete ca argument functia tensiune-timp de la intrare si s ntoarce functia tensiune-timp de la iaire (o functie denit pe un spattiu de s a functii cu valori tot ntr-un spatiu de functii). Scriem Ue = T (Ui ), unde Ui (t) este valoarea tensiunii de intrare la momentul t, iar Ue (t) este tensiunea de ieire s la momentul t. Multe circuite electronice au un comportament liniar, adic dac Ui (t) a a poate scris ca Ui (t) = Ui1 (t) + Ui2 (t) + + Uin (t), atunci Ue (t) = Ue1 (t) + Ue2 (t) + + Uen (t), unde Ue1 = T (Ui1 ), Ue2 = T (Ui2 ), etc. Circuitele liniare au proprietatea c, dac semnalul de intrare este sinua a soidal, adic a Ui (t) = U0 sin(t + ) atunci semnalul de ieire este tot sinusoidal, i, mai mult, s s Ue (t) = g() U0 sin(t + () unde g() i () depind doar de cun este construit circuitul i de frecventa s s ( = 2f , unde f este frecventa semnalului). Orice semnal se poate scrie unic ca o sum de semnale sinusoidale. (Nota: a scrierea unei functii ca sum de sinusoide este aa-numita transformata Fou a s rier. Conditiile de existent depind de cadrul care se scrie functie in L2 , a n distributie, etc. Prezentarea de fat are doar scop de suport intuitiv; lipsesc deta a liile matematice i consecint cele scrise aici nu pot folosite pentru a sprijini s n a

16

Capitolul 3. Nivelul fizic

mod abil rationamente). Transformata Fourier se mai numete i spectrul n s s semnalului. Ca urmare a liniaritii, semnalul de ieire se poate calcula descomat s punnd sinusoide semnalul de intrare, calculnd efectul circuitului asupra a n a ecrei sinusoide parte, i a n s nsumnd nal ieirile. Comportamentul unui a n s circuit liniar este deci complet denit de functiile g() i () de mai sus. s Un semnal este nedistorsionat dac i numai dac, pentru toate valorile as a din spectrul semnalului (adic acelea pentru care amplitudinea sinusoidei coa respunztoare este nenul) g() are aceeai valoare i () este proportional cu a a s s . general, un circuit (inclusiv o linie de transmisie) va prezenta distorIn siuni mici doar pentru semnale a cror spectru se a ncadreaz a ntre anumite valori extreme fmin i fmax . Acest interval se numete banda de trecere a circuitului. s s Diferenta fmax fmin se numete limea de band a circuitului (sau a liniei). s at a De exemplu, banda de trecere a unui circuit de telefon este cuprins a ntre aproximativ 300Hz i 3kHz. s

3.1.4

Codarea banda de baz n a

Prin codare acest context se elege regulile prin care unui ir de biti n nt s de transmis i se asociaz semnalul emis. Codarea cea mai simpl este aceea a a n care artim timpul celule de durat xat (pe care o numim lungimea unui mp n a a bit) i, pe durata ecrui bit semnalul emis va avea o anumit valoare de s a a exemplu 12V dac bitul are valoarea 1 i 0V dac bitul are valoarea 0. a s a Receptorul va avea un ceas cu care va determina celulele corespunztoare a bitilor, i va msura semnalul la mijlocul ecrei celule de bit. Dac tensiunea s a a a va mai mare de, s zicem, 3V, va decide c bitul respectiv are valoarea 1, altfel a a 0.

3.1.5

Transmisia modulat a

Transmisia modulat se folosete atunci cnd este necesar ca spectrul a s a semnalului s ocupe o band departe de frecventa zero. Aceast poate necesar a a e pentru c circuitele sau mediul de transmisie nu pot transmite frecventele a apropiate de zero, e pentru a putea transmite mai multe semnale pe acelai s mediu prin multiplexare frecventa. n Modularea const a transmite un semnal de forma a n U (t) = a sin(t + ), unde unul din parametri a, sau sunt functie de semnalul ce s-ar transmite n lipsa modulatiei. Mai exact, putem avea: modulatie amplitudine (AM): semnalul transmis este de forma n U (t) = U0 s(t) sin(2fp t) unde s(t) este semnalul de modulat, cel care poart informatia util, iar fp a a este aa-numita frecvent purttoare a semnalului. s a a

3.1. Transmisia prin fir

17

Se observ c modulatia amplitudine este liniar (modulatia sumei a dou a a n a a semnale a + b este suma rezultatelor modulatiei independente pentru a i b) s i c dac semnalul de modulat este sinusoidal s a a a(t) = sin(2fs t + ) atunci U (t) = U0 s(t) sin(2fp t = = U0 sin(2fs t + ) sin t = 1 1 = U0 cos (( 2f )t ) cos (( + 2f )t + ) 2 2 adic urma modulatiei amplitudine a unui semnal sinusoidal se obtine o a n n sum de dou semnale sinusoidale avnd ca frecvente suma dintre frecventa a a a semnalului de modulat i frecventa purttoare i cellalt avnd diferenta s a s a a conditii reale, frecventa purttoare este cel putin de celor dou frecvente. In a a cteva ori mai mare dect frecventele din spectrul semnalului de modulat. a a Spectrul unui semnal modulat amplitudine va contine frecventa purttoare n a i dou benzi laterale, stng i dreapt, acestea cuprinznd diferentele, ress a a as a a pectiv sumele, frecventelor din spectrul semnalului util cu frecventa purttoare. a Intruct spectrul semnalului modulat este simetric jurul frecventei purttoare, a n a de fapt doar una dintre benzile laterale poart informatie util. Din acest a a motiv, adesea se suprim total sau partial de la transimisie una dintre benzile a laterale. modulatie frecvent (FM): semnalul transmis are forma n a U (t) = U0 sin 2 (fp + s(t)) t unde, din nou, fp este numit frecventa purttoare i s(t) este semnalul util; a a s avem s(t) fp . Analiza spectrului unui semnal modulat frecvent este mult mai difcil n a a dect cazul modulatiei amplitudine. a n n modulatie faz: semnalul transmis are forma n a U (t) = U0 sin 2fp t + s(t) Este evident c, a ntruct receptorul nu are de obicei un reper absolut de a timp, el nu poate detecta dect variatiile de faz ale semnalului receptionat. a a Ca urmare, o valoare constant a lui s(t) nu poate deosebit de zero i, a a s consecint, mai mult, nici variatii lente ale lui s(t) nu pot detectate. In a spectrul lui s(t) nu poate contine frecvente prea apropiate de 0.

3.1.6

Multiplexarea frecvent n a

Dac modulm mai multe semnale s1 . . . sn folosind frecvente purttoare a a a fp1 . . . fpn sucient de deprtate pentru ca spectrele semnalelor modulate s nu se a a

18

Capitolul 3. Nivelul fizic

ntreptrund, putem transmite toate semnalele pe acelai mediu de transmisie a a s fr ca semnalele s interfereze. aa a Acest procedeu se numete multiplexare frecvent. Poate folosit att s n a a pentru a transmite dou sau mai multe semnale acelai sens, ct i pentru a a n s a s transmite semnale ambele sensuri simultan (transmisie full-duplex ). n Emitatorul va suprapune pur i simplu semnalele modulate. Receptorul s va separa, cu ajutorul unor circuite capabile s ltreze de pe o linie doar o anumit a a band de frecvente, semnalele modulate, dup care le va demodula independent a a pe ecare.

3.2
3.2.1

Transmisia prin unde radio


Propagarea undelor

Proprietile de propagare ale undelor radio depind de lungimea de und at a sub dou aspecte: a 1. Orice und ocolete obstacolele mai mici dect o fractiune din lungimea de a s a und, vreme ce spatele obstacolelor mai mari de ctea lungimi de und a n n a a ,,rmne umbr. De aceea, undele lungi, cu lungime de und de ordinul a a a a kilometrilor sau sutelor de metri sunt capabile s ocoleasc obstacole mari, a a inclusiv curbura Pmntului pe distanta de cteva sute sau chiar mii de a a a kilometri. Prin contrast, undele cu lungime de und sub civa metri se a at propag aproape numai linie dreapt, dealurile sau cldirile mai mari a n a a putnd provoca umbre. a 2. Absorbtia i reexia undelor pe diferite materiale depinde de lungimea de s und; este similar cu absorbtia i reexia diferit a luminii de diferite culori. a a s a Ionosfera reect undele cu lungimi de und de ordinul metrilor; prin reexii a a repetate ntre Pmnt si ionosfer, aceste unde pot parcurge uor multe a a a s mii de kilometri. Microundele (cca. 1cm20cm) i lumina vizibil (400nm s a 700nm) sunt singurele care pot traversa atmosfera terestr; a microundele a ns jurul a 6GHz (5cm) sunt puternic absorbite de ap i ca urmare trec greu n as prin nori i prin ploaie. s Puterea semnalului scade, pe msur ce ne a a ndeprtm de emitator, din a a dou cauze: a datorit extinderii frontului de und, puterea pe unitatea de suprafata a a a frontului de und este mai mic. Scderea este cu ptratul distantei: a a a a Pr = Pe 1 d2

unde este o constant ce depinde de constructia antenelor de emisie i de a s receptie, iar d este distanta ntre emittor i receptor. a s datorit absorbtiei undelor mediu. Aceast scdere este exponential cu a n a a a distanta, ca i cazul cablurilor, a de cele mai multe ori este neglijabil s n ns a fat de extinderea frontului de und. a a

3.3. Transmisia prin fibra optica

19

3.2.2

Unde nedirijate i unde dirijate s

Exist antene directionale i antene nedirectionale. Antenele directionale a s emit i receptioneaz unde aproape doar s a ntr-o singur directie; cele nedirectionale a emit aproape cu aceeai putere (respectiv, receptioneaz cu aceeai sensibilitate) s a s de jur mprejur. Antenele nedirectionale sunt de cele mai multe ori un simplu baston metalic (de fapt, bastonul este un pol, iar carcasa aparatului sau, dup a caz, Pmntul. este cellalt pol). Antenele directionale cele mai rspndite a a a a a pentru comunicatiile ce ne intereseaz au directivitatea asigurat de o oglind a a a de forma unui paraboloid de rotatie, cu antena propriu-zis plasat focarul a a n paraboloidului. (aa-numitele antene parabolice). s O anten directionale trebuie s e orientat permanenta ctre para a a n a schimb, ca avantaj fata de antenele nedirectionale, tenerul de comunicatie. In puterea emis poate mai mic, sensibilitatea receptorului poate mai sczut a a a a ntruct o mai mare parte din energia emis de emittor ajunge pe receptor a a a i pot exista aceeai zon mai multe instalatii ce folosesc aceeai frecventa s n s a s fr s interfereze. aa a

3.3
3.3.1

Transmisia prin br optic a a


Propagarea semnalului

20

Capitolul 3. Nivelul fizic

21

Capitolul 4 Codarea informatiei


4.1 Notiuni de teoria informatiei

Teoria informatiei servete la a putea evalua necesarul de informatie de s transmis de la emitator la receptor i de-a evalua ecienta i redundanta trans s s miterii informatiei. Teoretic receptorul are nevoie de un mesaj de la emittor dac continutul a a acelui mesaj (i eventual momentul care este trimis) nu poate dedus de ctre s n a receptor pe baza cunotintelor sale. Putem spune c un mesaj contine informatie s a dac aduce receptorului ceva ce acesta nu putea obtine singur. Prin urmare, un a mesaj contine informatie numai msura care receptorul are o incertitudine n a n pe care prin primirea mesajului o poate atura. nl Informatia este deci aturarea unei incertitudini. Msura informatiei nl a trebuie s msoare incertitudinea aturat prin dobndirea unei informatii. a a nl a a Presupunem c avem o multime complet de evenimente posibile, disa a juncte: A = {x1 , x2 , . . . , xn } cu probabilitile pi = P (xi ). Prin denitie, un at mesaj care stiinteaz receptorul de producerea evenimentului xi aduce o cantin a tate de informatie i = log2 pi . Unitatea de msur se numete bit. Observatie: a a s a nu se confunda bitul unitate da msur a informatiei, cu bitul cifr baza 2. a a a n Exist o legtur: presupunnd o codare ideal, o informatie de n biti poate a a a a a codat ca un ir de n biti. a s La transmisia informatiei se pune mod obinuit problema urmtoare: n s a emitatorul are o multime de mesaje posibile M = {m1 , m2 , . . . , mn }. Dintre acestea, el va trebui s transmit unul. Pe de alt parte, emitatorul are la a a a dispozitie o multime de simboluri de cod S = {s1 , s2 , . . . , sk } pe care le poate emite; el poate transmite un ir de astel de simboluri de cod. general, S s In are dou elemente, notate 0 i 1 (S = {0, 1}. Fiecare mesaj trebuie codicat ca a s un ir de simboluri de cod, printr-o functie de codare c : M S . Functia c s trebuie s e injectiv, pentru ca orice cuvnt de cod s e unic decodabil, i s a a a a s a e cunoscut receptorului pentru ca acesta s poat decoda efectiv orice mesaj a a a primit. Problema codrii informatiei este s se aleag o functie c potrivit. a a a a Cerintele sunt s minimizeze lungimea medie a cuvintelor de cod, i s permit a s a a decodarea prezenta erorilor, adic dac receptorul primete un cuvnt de cod n a a s a uor modicat. s Modelul de lucru problema codrii informatiei este urmtorul: n a a

22

Capitolul 4. Codarea informatiei

Figura 4.1: Codarea informatiei pentru transmitere Exist o surs de informatie, care produce timp un ir de mesaje a a n s dintr-o multime nit M . a Canalul de transmisie (mediul zic) permite transmiterea unor simboluri de cod dintro alt multime nit, S numit alfabetul canalului ( majoritatea a a a n cazurilor S = {0, 1}). Transmiterea informatiei prin canal presupune codarea mesajelor, astfel at ecrui mesaj corespunde o secvent de simboluri de cod. Avem schema nc a i a din gura ??. Msurarea informatiei Este util uneori s putem deni cantitatea de informatie a a purtat de un mesaj. Pentru aceasta este necesar ca s asignm ecrui mesaj a a a a posibil probabilittea de-a emis. a Denitia 4.1 Cantitatea de informatie adus de un mesaj m este log2 (pm ), a unde pm este probabilitatea emisiei mesajului m. De remarcat c, cantitatea de informatie este o msur a incertitudinii a a a aturate de mesaj. Daca primirea mesajul era aproape sigur (p 1) incertinl a tudinea primirii este mic i cantitatea de informatie este de asemenea mic. as a

4.2

Problema codrii pe canale fr zgomote a a a

Cod: o functie c : M S , unde M este multimea mesajelor posibile, iar S este multimea simbolurilor de cod (simbolurile ce pot codate zic direct pe canal, de exemplu ca nivele de semnal). Termeni: mesaj obiectul trimis de surs, apartinnd multimii mesajelor posibile M a a simbol de cod simbol ce poate trimis direct la nivel zic (ce poate codat direct ca nivel de tensiune pe linie, de exemplu); alfabetul sursei multimea simbolurilor de cod posibile; secvent de cod secventa oarecare de simboluri de cod; a cuvnt de cod secvent de cod prin care se codeaz un mesaj. a a a Cod unic decodabil Pentru ca decodarea s e posibil, functia c este nea a cesar s e injectiv. (Not: surjectivitatea nu este nici necesar nici posibil; a a a a a imposibilitatea este datorat faptului c M este nit i S este innit). a a as a Injectivitatea nu este sucient. De exemplu: a 0, b 1, c 01 este a injectiv dar secventa de cod 01 poate proveni din ab sau din c. a Functia c se extinde la c : M S prin c(m1 m2 mk ) = c(m1 ) c(m2 ) c(mk ) (punctul reprezint concatenarea). a Denitia 4.2 Codul este unic decodabil dac c este injectiv. a a

4.2. Problema codarii pe canale fara zgomote

23

0 a 0 0 d 1 b

1 1 c

Figura 4.2: Arborele ataat unui cod prex s Conditii pentru unic decodabilitate Teorema 4.3 Pentru orice cod unic decodabil are loc inegalitatea:
n

|S|lk 1
k=1

(4.1)

unde lk sunt lungimile cuvintelor de cod, iar |S| este numrul de simboluri de a cod. Denitia 4.4 Un cod se spune c are proprietatea de prex (sau mai scurt, este a cod prex) dac nici un cuvnt de cod nu este prex al altui cuvnt de cod. a a a Exemplu: a0 b 101 c 11 d 100 Unui cod prex i se poate ataa un arbore care ecrui mesaj coress n a i punde o frunz, muchiile descendente de la ecare nod sunt etichetate cu simboa luri de cod distincte, iar cuvntul de cod al unui mesaj este format din simbolurile a de cod ale muchiilor de pe lantul ce unete rdcina cu frunza ataat mesajului. s a a s a Exemplu: g. 4.2 Teorema 4.5 Orice cod cu proprietatea de prex este unic decodabil. Teorema 4.6 Dac l1 . . . lk satisac inegalitatea 4.1, atunci exist un cod cu proa a prietatea de prex avnd lungimile cuvintelor de cod l1 . . . lk . a Constructia: Sortm cresctor lungimile cuvintelor (lk ). Construim ar a a borele ataat codului plecnd de la rdcin. La ecare nivel, alegem dintre s a a a a vrfurile de pe acel nivel un numr egal cu numrul cuvintelor de cod de acea a a a lungime i le acem frunze, ataate mesajelor corespunztoare. Restul nodurilor s s a vor rmne noduri interne, i vor da descendenti pe nivelul urmtor; ecare nod a a s a va da |S| descendenti, iar muchiile descendente se vor eticheta cu simboluri de

24

Capitolul 4. Codarea informatiei

0 a

0 a 0 c

1 1

0 a c 0

1 1 0 b 1 d

Figura 4.3: Constructia unui cod prex cu lungimi xate ale cuvintelor de cod cod ntr-o ordine arbitrar. Inegalitatea 4.1 ne asigur c vom avea la ecare a a a nivel suciente vrfuri de ataat mesajelor a cror cuvinte de cod urmeaz s a s a a a aib acea lungime. a Exemplu: gura 4.3 arat etap cu etap constructia unui cod pentru a a a lungimile l1 = 1, l3 = 2, l2 = 3, l4 = 3. Cerculetele desemneaz nodurile a neataate unor mesaje, care urmeaz s produc descendenti pe nivelul urmtor. s a a a a Observatie: din teoremele din acest paragraf rezult c dac avem un cod a a a unic decodabil pentru nite mesaje putem gsi un cod prex cu aceleai lungimi s a s ale cuvintelor de cod. Coduri optimale Dac dorim codicarea unei secvente de mesaje s e ct mai a a a scurt, avem nevoie de un cod care s minimizeze lungimea medie a cuvntului de a a a cod. Media lungimilor se va calcula ponderat, cu ponderile egale cu probabilitile at de aparitie ale respectivelor cuvinte de cod. Denitia 4.7 Un cod optimal este un cod unic decodabil care are cea mai mic a lungimea medie a cuvintelor de cod. Presupunnd c avem la dispozitie doar dou cuvinte de cod, avem l a a a H(M ), adic lungimea medeie a cuvntului de cod nu poate mai mic dect a a a a informatia medie pe simbol a sursei. Algoritmul Human Dac facem presupunerea c sursa este ergotic, adic a a a a probabilitatea de-a emite un anumit mesaj nu depinde de mesajele precedente i s nici de timp, codul optimal se poate construi prin algoritmul lui Human. Algoritmul Human (vezi g. 4.4) este urmtorul (presupunem |S| = 2, a adic alfabetul canalului are doar dou simboluri): a a

4.2. Problema codarii pe canale fara zgomote

25

0.55 a

0.10 b

0.20 c

0.15 d

0.55 a

0.20 c 0 b

0.25 1 d

0.55 a 0 b 0

0.45 1 1 d c a 0

1.00 1 0 0 b 1 d 1 c

Figura 4.4: Functionarea algoritmului Human Pentru nceput, se ataeaz ecrui mesaj un arbore format dintr-un s a a singur vrf, i i se ataeaz arborelui respectiv frecventa acelui mesaj. a s s a continuare, la ecare pas se selecteaz cei doi arbori cu frecventele de In a aparitie asociate cele mai mici. Se unesc cei doi arbori prin creerea unui nou nod ce va deveni rdcin i va avea subordonati cei doi arbori. Una din muchiile a a a s nou introduse va etichetat cu 0, cealalt cu 1. Noului arbore i se asociaz a a a frecventa egala cu suma frecventelor celor doi arbori uniti. Algoritmul se termin momentul care rmne un singur abrore. a n n a a Teorema 4.8 Codul obtinut prin algoritmul Human este optimal. Aplicatii Codarea optimal este ceea ce face orice program de compresie a a informatiei. Algoritmul Human este folosit aproape de orice algoritm de com presie, a de regul nu direct asupra octetilor din datele de comprimat. ns a Algoritmii de compresie utilizati practic se folosesc i de dependentele n a s ntre octetii succesivi. Utilizarea oricrui cod presupune c receptorul cunoate codul folosit a a s de emittor. Transmiterea separat a codului ctre receptor risc s contrabaa a a a a lanseze ctigul obtinut prin codare optimal. Metodele adaptative presupun c as a a emitatorul ncepe emisia cu un cod standard, dup care modic pentru a-l a l a optimiza conform frecventelor observate date. Dac algoritmul de generare n a a codului este xat i codul folosit la un moment dat depinde doar de datele s trimise (codate) deja, atunci receptorul poate recalcula codul folosit de emitator (folosind acelai algoritm ca i emitatorul). s s De notat c nici un cod nu poate folosi mai putini biti pentru codare a lipsa redundantei, nu e posibil dect cantitatea de informatie transmis. In a a a compresia. Ca o consecint, nici un program de compresie nu poate comprima a un ir aleator de octeti. s

26

Capitolul 4. Codarea informatiei

4.3

Coduri detectoare i corectoare de erori s

Detectia erorilor const a face receptorul s-i dea seama anumite a n as n conditii dac au avut loc erori la transmisie (receptorul va cere probabil retrans a miterea informatiei acest caz). n Corectarea erorilor const a ntr-un mecanism care permite receptorului n anumite conditii s reconstituie mesajul trimis de emittor, chiar dac ceea ce a a a a receptionat este diferit din cauza erorilor. general, nu pot detectate sau corectate toate erorile posibile. In In practic se presupune un anumit numr maxim de erori ce pot afecta un bloc a a de date, i schemele permit detectarea oricrei astfel de conguratii de erori. s a Dac erorile se produc numr mai mare, e posibil s scape nedetectate, sau a n a a corectarea s functioneze greit. a s Presupunem cele ce urmeaz c alfabetul cananului este S = {0, 1} n a a Erorile pot : erori individuale care schimb valoarea unui bit din 0 1 sau reciproc; a n rafale de erori care schimb o parte dintr-un ir de bit (nu neaprat toti). a s a Lungimea rafalei este numrul de biti dintre primul i ultimul bit modicat; a s erori de sincronizare care determin pierderea unui bit sau introducerea unui a bit, mpreun cu decalarea corespunztoare a bitilor urmtori. a a a Mai multe erori pot afecta acelsi bloc de biti. a Nu ne vom ocupa cele ce urmeaz de erorile de sincronizare. n a Presupunem cuvinte de cod de lungime n biti. Multimea cuvintelor de cod este W V = {0, 1}n . Pentru a putea detecta erorile, trebuie ca eroarea s a nu schimbe un cuvnt de cod alt cuvnt de cod. ci s schimbe cuvntul de a n a a a cod ntr-un cuvnt invalid. a Punem d(v1 , v2 ) = n |v1i v2i | adic distanta a ntre dou cuvinte este a i=1 numrul de erori individuale necesare pentru a schimba primul cuvnt al doilea. a a n Punem dmin (W ) = min d(v1 , v2 .
v1 ,v2 W,v1 =v2

Un cod este capabil s detecteze k erori individuale dac dmin k + 1. a a Un cod este capabil s corecteze k erori individuale dac dmin 2k + 1. a a Coduri polinomiale F2 = ({0, 1}, , ) este corp ( este operatia sau exclusiv, iar este operatia i). s Unui cuvnt din V = {0, 1}n se asociaz poliniomul (de grad cel mult a a n1 n2 n1) v1 X v2 X vn Acesta este un polinom peste F2 . Polinoamele peste orice corp pstreaz multe din proprietile polinoamelor obinuite, a a at s n particular se poate deni la fel adunarea, scderea i a s nmultirea, i are loc teorema s artirii cu rest. mp Pentru a deni W , se alege un aa-numit polinom generator g(X). W se s denete ca multimea polinoamelor (din V ) divizibile cu g(X). s Dac m = grad(G(X)), un cuvnt de cod poart nm biti de informatie a a a i m biti redundanti (de control). s

4.3. Coduri detectoare i corectoare de erori s

27

Constructia cuvntului de cod se face: v(X) = i(X) X m r(X), unde a i(X) este polinomul corespunztor informatiei utile, iar r(X) este restul artirii a mp lui i(X) X m la g(X). Vericarea cuvntului receptionat v (X) se face prin artire la g(X) a mp i vericare dac restul este 0. Informatia util este primii n m biti din v (X). s a a Dac se dorete corectarea erorilor, se observ c pozitiile erorilor nu a s a a depind dect de restul artirii lui v (X) la g(X). a mp

28

Capitolul 4. Codarea informatiei

29

Capitolul 5 Nivelul legturii de date a

30

Capitolul 5. Nivelul legaturii de date

31

Capitolul 6 Nivelul retea i nivelul transport s


Retele: comutare de circuite comutare de pachete Retele cu comutare de pachete: retele cu dirijare independent a pachetelor a retele cu circuite virtuale

6.1

Algoritmi de dirijare
Criterii:

numar de noduri intermediare (hopuri) distanta (geograca) cost arcare nc Tehnici de calcul a tabelelor de dirijare informare complet privitoare la legaturile existente a tabele de distante (v. pb. numrrii la innit) aa dirijarea pentru multicast arbori de acoperire minimi dirijare ierarhic a inundare

32

Capitolul 6. Nivelul retea i nivelul transport s

6.2

Controlul congestiei

aruncarea pachetelor cele mai vechi sau cele mai noi? limitarea tracului: galeata gaurita, galeata cu jeton semnalizarea arcrii nc a

6.3

Protocolul IP i protocoalele auxiliare s


Antetul IP:

adresa surs i destinatie cu prex de retea as timp de viat (numr de salturi) a a optiuni de inregistrare a salturilor (pentru traceroute) protocolul de nivel superior (TCP, UDP, ICMP) Forma tabelelor de dirijare statice O adres IP se asociaz unei interfete a a de retea Tabela de dirijare are nregistrri de forma (IP, masca, ruta) a Rezolvarea adresei ARP Scop: gasirea adresei zice corespunztoare a unei adrese IP. Modalitate: se trimite un pachet broadcast in reteaua Ethernet. ICMP Scop: diagnostic i informare legat de rute. s Pachere ICMP mai des utilizate: cerere ecou, rspuns ecou; a informare eec dirijare s redirectare (forma extrema de corectare a tabelelor de dirijare) RARP, BOOTP, DHCP Scop: informare cu privire la propria adres IP. a

6.4

Nivelul transport

Rol: s fac adaptarea de la primitivele de comunicatie prezentate aplicatiei a a la posibilitile retelei. at Problema: conexiune sigur peste retea bazat pe dirijare independent a a a a pachetelor. Solutia (TCP): se numeroteaz pachetele (octetii, TCP), i se conrm a n s a independent ecare numr de pachet. a Numerele de secventa sunt independente pentru cele dou sensuri. a Probleme suplimentare:

6.5. Retele eterogene i retele private s

33

nchiderea i redeschiderea conexiunii s cderea unuia din capete, i uitarea numrelor de secvent folosite a s a

6.5

Retele eterogene i retele private s

tunelarea translatia adreselor

6.6

Retele mobile

redirectarea cu agenti locali i agenti pentru straini s

34

Capitolul 6. Nivelul retea i nivelul transport s

35

Capitolul 7 Metode i protocoale s criptograce


7.1 Deziderate

condentialitate un mesaj s nu poat eles dect de ctre destinatarul a a nt a a dorit; integritatea mesajelor destinatarul unui mesaj s poat verica dac mesajul a a a este identic cu cel emis de emittorr (c nu a fost modicat pe traseu); a a autenticarea sursei destinatarul s poat verica identitatea emitatorului a a unui mesaj; nerepudiabilitate emitatorul unui mesaj s nu poat nega ulterior emiterea a a unui mesaj (destinatarul s poat proba justitie faptul c emittorul a a a n a a emis un anumit mesaj). Note: 1. Vericarea integritii i autenticarea au sens doar at s mpreun. a 2. Nerepudiabilitatea nu are sens fr vericarea integritii i autenticarea aa at s sursei.

7.2
7.2.1

Asigurarea condentialitii at
Criptograa simetric a

Este cifrarea clasic, care un mesaj dat, numit text clar (eng: plaina n text), este transformat ntr-un aa-numit text cifrat (eng:ciphertext), astfel at s nc numai cineva care cunoate un anumit secret s poat reconstitui textul clar s a a avnd la dispozitie doar textul cifrat. a general, algoritmii folositi la cifrare i la descifrare sunt presupui In s s cunoscuti de toat lumea; secretul este un parametru al algoritmului, numit a cheie (eng: key).

36

Capitolul 7. Metode i protocoale criptografice s

Not: Ideea este c elaborarea i implementarea unui algoritm nou cere a a s un efort intens i implic mai multe persoane; de aceea e greu de pstrat secretul s a a i e i mai greu de schimbat algoritmul oridecteori el devine cunoscut din afar. s s a a plus, publicnd algoritmul, exist anse mari ca, dac acesta este vulnerabil, In a as a s am de la cineva care dorete doar gloria i eventual banii unei recompense, a a s s nu secretele pzite de algoritm. a Cifrarea se scrie m = ck (p), unde p este textul clar, m este textul cifrat, k este cheia, iar c este functia (algoritmul) de cifrare. Descifrarea se scrie p = dk (m). Pentru ca descifrarea s e posibil, a a trebuie ca dk (ck (p)) = p, p, ceea ce implic cerinta ca ck s e injectiv. a a a Not: In criptograa simetric, adesea ck este bijectiv (atunci ck i dk a a a s sunt una inversa celeilalte) i dk este posibil de folosit pentru cifrare locul lui s n ck . Atacuri posibile: atac cu text cifrat: intrusul dispune de textul cifrat i dorete obtinerea texs s tului clar corespunztor; a atac cu text clar cunoscut: intrusul dispune de perechi (pi , mi ) de text clar i textul cifrat corespunztor, plus un text cifrat m = mi pentru care dorete s a s obtinerea textului clar corespunztor; a atac cu text clar ales: ca i cazul precedent, dar plus intrusul poate alege s n n pi . general, un sistem criptograc sigur trebuie s reziste la atac cu text In a clar ales. Ca o consecinta, functia de cifrare, vzut ca ind parametrat cu a a a textul clar i avnd ca argument cheia, trebuie s e dicil inversabil (eng: s a a a one-way), adic a gsi cheia cunoscnd textul clar dat i textul cifrat rezultat s a a a s a necesite cautare aproape exhaustiv spatiul cheilor. a n Exist i protocoale care prevd explicit chei de unic folosinta (cheia a s a a se schimb la ecare mesaj); la astfel de protocoale atacul cu text clar cunoscut a este imposibil. Un astfel de sistem este cifrarea cu cheie acoperitoare: cheia este un ir aleator de biti de lungime egal cu a mesajului, iar cifrarea este operatia s a xor ntre ecare bit din mesaj i bitul corespunztor din cheie. Un argument s a probabilistic simplu arat c cunoaterea textului cifrat nu aduce nici o informatie a a s asupra textului clar. Dezavantajul metodei este c cheia este lung i nu poate a as refolosit ( cazul refolosirii cheii, mecanismul de cifrare este uor de spart). a n s

7.2.2

Utilizarea practic a cifrurilor bloc a

Unele din metodele de cifrare pot cifra doar blocuri de lungime xa (de ex. 64, 128 sau 256 de biti). Exist cteva metode standard de utilizare a unui a a astfel de cifru pentru a cifra o cantitate arbitrar de text: a ECB Electronic Code Book: Textul clar se mparte blocuri de lungime n egal cu blocul folosit de algoritmul de cifrare. Ultimul bloc se completeaz a a cu biti aleatori. Fiecare bloc se cifreaz apoi independent de celelalte. a Este metoda cea mai simpl, dar are cteva dezavantaje: a a

7.2. Asigurarea confidentialitatii

37

pentru o cheie xat, un fragment de text clar a ncepnd de la o pozitie a multiplu de lungimea blocului se cifreaz totdeauna la fel; acest fapt a poate permite atacuri cu text clar cunoscut dac exist fragmente de a a text clar care se repet frecvent; a un intrus care permut blocurile de text cifrat va obtine permutarea bloa curilor corespunztoare de text clar, chiar dac nu a a ntelege nimic din textul cifrat. Dei este citat frecvent, acesta nu este propriu-zis un dezs avantaj al metodei ECB: un algoritm de cifrare are ca scop pstrarea a condentialitii mesajului, nu controlul integritii. at at CBC Cipher Block Chaining: Ca i la ECB, textul clar se s mparte n plus, se alege un ir blocuri i ultimul bloc se completeaz cu biti aleatori. In s a s de biti aleatori de lungimea unui bloc; acesta se numete vector de initializare. s Vectorul de initializare se transmite separat sau se stabilete dup o regul s a a oarecare. Se efectueaz xor pe biti a ntre vectorul de initializare i primul bloc s de text clar; rezultatul se cifreaz i se trimite. Apoi, se face xor as ntre ecare bloc de text clar i blocul precedent de text cifrat, i rezultatul se cifreaz i s s as se transmite destinatarului.

7.2.3

Numere aleatoare

Un sistem criptograc utilizeaz numere aleatoare, a ntre altele pentru generarea cheilor i pentru protocoale de autenticare de tip provocare-rspuns. s a Spre deosebire de generatoarele de numere aleatoare pentru alte scopuri, generatoarele de numere aleatoare pentru scopuri criptograce este necesar s e a imprevizibile, chiar pentru cineva care cunoate metoda de generare i chiar o s s parte din numerele generate. Metode folosite: Generatoare zice: utilizeaz un fenomen zic destul de aleator (este similar a aruncrii unui zar). Exemple: zgomotul termic pe un rezistor sau pe un semia conductor, dezintegrarea unei substante radioactive, curentii de aer formati interiorul carcasei unui harddisc. n lipsa unui generator zic adevrat, se utilizeaz actiunile utilizatorilor In a a asupra tastaturii sau mouse-ului, arcarea sistemului, sosirea pachetelor pe nc interfata de retea. Sunt necesare diverse prelucrri pentru a putea obtine a din aceste surse un ir de numere aleatoare de calitate; de asemenea, trebuie s ca cel putin o parte din sursele enumerate mai sus s nu e controlate sau a observate de inamic. Numere pseudoaleatoare: pentru alte aplicatii dect cele criptograce, se ge a nereaz numere pseudo-aleatoare dup urmtoarea schem: exist o variabil a a a a a a s care ine starea intern a generatorului. Cnd aplicatia are nevoie de un t a a numr aleator, numrul aleator este extras din starea intern: rt = f (st ); a a a de obicei se extrag o parte din biti. Apoi, starea intern este actualizat cu a a ajutorul unei functii care amestec bine starea intern: st+1 = g(st ). Un a a astfel de generator se spune c este generator de numere pseudoaleatoare. a Pentru a folosi un generator de numere pseudoaleatoare scopuri criptgrace n este necesar s e indeplinite mai multe conditii: a

38

Capitolul 7. Metode i protocoale criptografice s

1. Starea initial (eng: seed) trebuie generat cu un generator zic, altfel a a intreg irul este previzibil; s 2. Starea intern trebuie s aib un numr sucient de mare de biti pentru a a a a a rezista unui atac prin forta brut; a 3. Functiile f i g s e dicil inversabile, altfel cineva care ar obtine o parte s a din numerele din ir ar putea capabil s ae restul irului. De obicei este s a s necesar de asemenea ca cineva care reuete s obtin (de exemplu, dintrs s a a un core dump) starea intern, s nu e capabil s calculeze numerele ce a a a au fost generate pn acel moment. a a n

7.2.4

Criptograe asimetric (cu cheie public) a a


Criptograa asimetric presupune urmtoarele: a a

Cifrarea i descifrarea nu folosesc aceeai cheie, ci folosesc chei diferite, s s n pereche. Vom avea m = ckc (p) i p = dkd (m). s Din cheia folosit la descifrare se poate genera uor cheia corespunztoare a s a pentru cifrare; transformarea invers este a foarte dicil: kc = f (kd ), a ns a f bijectiv, i a calcula x = f 1 (y) implic a verica pentru aproape toate a s a valorile posibile pentru x dac f (x) = y. a Gsirea lui p cunoscnd doar m i kc este la fel de dicil ca i gsirea lui kd a a s a s a cunoscnd kc . a aceste conditii, receptorul va genera o pereche kd , kc i va putea face In s public kc . Emitatorul poate cifra un mesaj folosind kc , i numai posesorul lui a s kd va putea descifra. De notat c, dac se dorete comunicatie bidirectional, l a a s a este necesar cte o pereche de chei (kc , kd ) pentru ecare sens. a a Not: Algoritmii criptograci asimetrici sunt mult mai lenti dect cei a a simetrici; din acest motiv, comunicatia propriu-zis se cifreaz de obicei cu o a a metod simetric, i doar cheia de cifrare (sau alte obiecte mici, impuse de proa a s tocoale de autenticare) se cifreaz folosind metode asimetrice. a

7.3
7.3.1

Autenticarea originii i controlul integritii s at


Functii de dispersie criptograce

O functie de dispersie (eng: hash function) este general o functie h care n asociaz unui ir de biti m de o lungime oricte de mare, o valoare a s a ntreag a ntrn un interval de forma [0, 2 ) cu n xat (sau echivalent, un ir de biti de lungime s n); plus, se cere ca pentru sirurile care apar in problema unde se folosete n s functia de dispersie, dou iruri distincte s nu aib aceeai valoare a functiei de as a a s n dispersie cu probabilitate semnicativ mai mare de 2 . De la o functie de dispersie criptograc se cere plus: a n 1. dndu-se h(m), s e dicil de regsit m. Eventual, dicultatea s se pstreze a a a a a chiar cazul cunoaterii unei prti din m. n s a

7.3. Autentificarea originii i controlul integritatii s

39

2. dndu-se un ir m, s e dicil de gsit un al doilea ir, m = m astfel at a s a a s nc h(m) = h(m ). 3. s e dicil de gsit m1 = m2 cu h(m1 ) = h(m2 ). a a De remarcat c cele trei conditii sunt diferite, dei conditia 3 o include a s pe 2. Exemple de functii: md5 (ieire 128 biti), sha1 (ieire 160 biti) s s

7.3.2

Autenticarea mesajelor

Pentru a putea trimite mesaje autenticate, trebuie ca e emitatorul i s receptorul s partajeze o cheie secret k folosit a a a ntr-un algoritm simetric, e emitatorul s aib o cheie secret kd a crei cheie public corespunztoare kc s a a a a a a a o aib receptorul. a Intr-o prezentare simplicat, emiterea de mesaje autenticate merge pe a una din schemele (m desemneaz mesajul de trimis, h desemneaz o functie de a a dispersie criptograc: a Emittorul trimite (m, s), unde s = ck (h(m)); receptorul primete (m, s) i a s s veric dac s = ck (h(m)). a a Mai adesea, se folosete o varianta care functia de dispersie criptograc s n a nglobeaz i cifrarea; o asemenea functie se numete cod de autenticare a s s (eng: hash message authentication code HMAC). varianta aceasta, In emittorul calculeaz s = hk (m), unde hk este functia cod de autenticare a a cu cheia k; el trimite (m, s). Receptorul primete (m, s) i veric dac s s a a s = hk (m). Presupunnd c functia de cifrare a unui sistem asimetric este i surjectiv a a s a (pe o multime cunoscut), emitatorul calculez s = dkd (h(m)) i trimite a a s (m, s). Receptorul primete (m, s) i veric dac ckc (s) = h(m). s s a a

40

Index
A AM, Vezi modulatie amplitudine n B band a lateral, 17 a F FM, Vezi modulatie, frecventa n frecventa purttoare, 1617 a M modulatie amplitudine, 16 n faz, 17 n a frecventa, 17 n P purttoare, Vezi frecventa, purttoare a a

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