Documente Academic
Documente Profesional
Documente Cultură
Cuprins
ADNOTARE ................................................................................................................................................. 5
ANNOTATION ............................................................................................................................................ 6
LISTA ABREVIERILOR ............................................................................................................................. 7
Introducere .................................................................................................................................................... 8
Capitolul I. Securitatea Informaiei .............................................................................................................. 9
1.1 Metode de protecie a informaiei ....................................................................................................... 9
1.2 Metode tradiionale de protecie a informaiei ..................................................................................11
1.3 Autentificarea ....................................................................................................................................15
1.4 Autentificarea cu parol ...................................................................................................................16
1.5 Semntura Digital ...........................................................................................................................16
Capitolul 2. Criptografia modern .............................................................................................................21
2.1 Algoritmul DES ................................................................................................................................21
2.1.1 Cnsideraii asupra algritmului DES.......................................................................................25
2.1.2 Criptanaliza ................................................................................................................................26
2.1.3 Variante de DES .........................................................................................................................27
2.1.4 Algoritmul AES..........................................................................................................................29
2.1.5 Algritmul LUCIFER ................................................................................................................33
2.1.6 Algoritmul Blowfish ..................................................................................................................33
2.1.7 Dubla criptare ............................................................................................................................36
2.1.8 Tripla criptare .............................................................................................................................37
2.2 Algoritmi simetrici de tip ir .............................................................................................................39
2.2.1 Cifruri ir sincrone .....................................................................................................................39
2.2.2 Cifruri ir asincrone ....................................................................................................................40
2.2.3 Proiectarea i analiza cifrurilor ir..............................................................................................41
2.2.4 Complexitatea liniar .................................................................................................................43
2.2.5 Generatori aditivi .......................................................................................................................44
2.3 Algoritmi cu chei publice ..................................................................................................................46
2.3.1 Algoritmul Merkle-Hellman......................................................................................................47
2.3.2 Algoritmul Rivest-Shamir-Adelman (RSA) ...............................................................................48
2.4 Concluzii ...........................................................................................................................................52
Capitolul 3. Securittea clculatorului .......................................................................................................55
3.1 Primii virusi .......................................................................................................................................55
3.2 Principalele ameninri de securitate.................................................................................................56
3.2.1 Troienii .......................................................................................................................................56
2
3.2.2 Viruii de tip vierme (worm) ......................................................................................................56
3.2.3 Viruii de tip Rootkit ..................................................................................................................57
3.2.4 Phishing i pharming .................................................................................................................58
3.2.5 Malware-ul .................................................................................................................................58
3.3 Sigurana sistemelor de operare ........................................................................................................59
3.3.1 Windows XP ..............................................................................................................................59
3.3.2 Windows 7..................................................................................................................................59
3.3.3 Mac OS X ...................................................................................................................................60
3.3.4 Linux ..........................................................................................................................................61
3.4 Cum s-i protejezi computerul .........................................................................................................61
3.4.1 Evitarea infectrii prin email ......................................................................................................61
3.4.2 Navigatul sigur pe Internet ........................................................................................................62
3.4.3 Verificarea linkurilor te redirecteaz acolo unde crezi? ..........................................................62
3.4.4 Actualizarea software-ului Cel mai important pas .................................................................62
3.4.5 Folosete un antivirus .................................................................................................................63
3.5 Metode de protecie a PC-ului ...........................................................................................................63
3.5.1 Firewall ......................................................................................................................................64
3.5.2 Eliminarea viruilor de tip Rootkit ............................................................................................64
3.5.3 Protecia mpotriva phishingului ...............................................................................................65
3.6 Alegerea softului de protecie ...........................................................................................................65
3.6.1 Securitatea gratuit versus cea pltit ........................................................................................66
3.6.2 Pachetul gratuit de securitate ideal .............................................................................................67
3.6.3 Avast! Free Antivirus sau Microsoft Security Essentials . .......................................................67
3.6.4 Firewall-ul gratuit ZoneAlarm . ...............................................................................................67
3.6.5 BitDefender Anti-Phishing .....................................................................................................67
Capitolul 4 ..................................................................................................................................................68
4.1 Limbajul C# ......................................................................................................................................68
4.2 Relatia dintre C# si arhitectura .NET ................................................................................................68
4.3Principiile programarii orientate obiect..............................................................................................69
4.3.1 Incapsularea................................................................................................................................69
4.3.2 Polimorfismul .............................................................................................................................69
4.3.3 Motenirea ..................................................................................................................................69
4.3.4 Reutilizarea.................................................................................................................................70
4.3.5 Tipuri de date si operatori .........................................................................................................71
4.3.6 Tipuri in virgula mobile ............................................................................................................73
4.3.7 Literali ........................................................................................................................................74
4.3.8 Operatori ....................................................................................................................................76
3
Capitolul 5. Aplicaia practic....................................................................................................................80
5.1 Crearea unei nregistrri noi . ...........................................................................................................80
5.2 Solicitarea parolei.............................................................................................................................80
5.3 Adugarea unei inregistrri noi . .......................................................................................................81
5.4 Redactarea nregistrrii, tergerea . ...................................................................................................81
5.5 Salvarea bazei de date . .....................................................................................................................82
5.6 Rezultatul nregistrrii i codificrii. .................................................................................................82
5.7 Deschiderea unei inregitrri existente. ..............................................................................................83
Literatur .....................................................................................................................................................84
Concluzie.....................................................................................................................................................85
Aplicaia ......................................................................................................................................................86
Cod Surs: ...............................................................................................................................................86
4
ADNOTARE
Securitatea Calculatorului este problema secolului XXI, problema care afectez marea
parte a deintorilor de PC i utilizatorilor oricrui system de operare i unul din obiectivele
tezei.
Importana lucrrii: au fost obinute informaii relevante privind abordarea obictivelor puse, care
dafapt sunt probleme actuale cu care se confrunt ntreaga lume .Dac ceva timp n urm puteau
fi clasate ca o joac sau o glum proast . Astzi sunt infraciuni i chiar caze penale.
5
ANNOTATION
Thesis objectives: Examining the most widespread ways of obtaining confidential information,
studying the main means of protection, studying algorithms and data encryption software,
increasing the level of protection of data and information.
The master thesis deals with the security of confidential information, namely the
protection of information and computer systems from unauthorized access, use, disclosure,
interruption, alteration or destruction, from personal data to information representing the State
Secret.
Computer security is the 21st century issue, the issue that affects most of the PC owners
and users of any operating system and one of the objectives of the thesis.
The results of the paper are methods, means and solutions for the protection of
confidential information and information systems, the elaboration of a confidential information
protection means
The importance of the thesis: Relevant information has been gathered on how to deal with the
misbehavior, which are the current problems facing the world. If some time ago they could be
classified as a bad play or joke. Today there are crimes and even criminal cases.
6
LISTA ABREVIERILOR
7
Introducere
Odat cu dezvoltarea rapid a tehnologiilor informaiei i ptrunderea lor n toate sferele
de activitate a crescut i numrul de infraciuni care vizeaz nclcarea securitii
informaionale. Big interessso storong: infractorii cibernetici determin activitatea structurilor de
stat i a ntreprinderilor comerciale. Scopul este de a fura sau s divulge informaii confideniale,
pentru strica reputaia, a provoca daune organizatiilor , iar ca consecin pot aparea i dificulti
n funcionalitatea organizaiei . Aceste aciuni provoac pagube mari morale i materiale. Cu
toate acestea, supui riscului sunt nu numai companiile mari, ci i utilizatorii privai. Cu ajutorul
diferitelor mijloace infractorii primesc acces la informaiile personale, numere de conturi
bancare, numere de carduri , parole,defectind sistemul de operare sau primesc acces deplin la
calculator. n viitor, un astfel de calculator poate fi utilizat ca parte a unei reele-zombie, o reea
de calculatoare infectate folosite de hackeri pentru a ataca serverele, trimite spam, recolta
informaii confideniale sau pentru a rspndi noi virui i troieni. Astzi, toat lumea
recunoate c informaia este un activ valoros, care ar trebui protejat cu atenie.
Scopul lucrrii este de a examina i de a studia cele mai raspndite modaliti ilegale
de obinere a informaiilor confedeniale, precum i principalele mijloace de protecie la astfel
de aciuni; n plus, am studiat algoritmii i softurile de criptare a datelor pentru preveni
interceptarea informaiilor confedeniale.
8
Capitolul I. Securitatea Informaiei
Securitatea informaiei se ocup cu protejarea informaiei i sistemelor informatice de
accesul neautorizat, folosirea, dezvluirea, ntreruperea, modificarea or distrugerea lor.
Printre metodele de protecie sunt universale i care sunt fundamentale pentru a crea orice
sistem de securitate. Mai nti de toate acestea sunt, metodele legale deprotecie a informaiilor
care stau la baza unei construcii legitime de utilizare a sistemului de securitate pentru orice
scop. Printre metodele universale pot fi numarate, i metode de organizare, care sunt utilizate n
orice sistem de securitate, fr excepie i de regul, ofer o protecie mpotriva mai multor
ameninri.
9
1.2 Metode tradiionale de protecie a informaiei
Metode de protecie mpotriva ameninrilor accidentale sunt dezvoltate i puse n aplicare n
timpul proiectrii, crearea, implementarea i operarea sistemelor informatice. Printre acestea se
numr:
duplicarea informaiilor.
Informaia iniial pentru crearea un sistem de control al accesului limitat este o decizie a
administratorului de sistem informatic privind accesul utilizatorilor la anumite resurse de
informaii .Avnd n vedere c informaiile din sistemele informatice sunt stocate, procesate i
transmise cu ajutorul fiierelor, accesul la informaie este reglementat la nivelul de fiier.n
bazele de date accesul la datepoate fi administrat la o anumit parte a acesteia n conformitate cu
anumite reguli.
de nregistrare;
10
executarea programului (E).
Accesul la aceasta operaiune permite nregistrarea sau modificarea coninutului fiierului (W);
Posibilitatea de adaugarea informailor noi ntr-un fiier fr a modifica coninutul vechi (A);
Sistemul de protecie contra cercetrii sau copierii a codului surs include urmtoarele
metode:
Cifrarea;
Stenografie (prescurtare);
Codificarea;
Compresia;
1.3 Autentificarea
Ce este autentificarea?
n lumea fizic, este uor de recunoscut cine este cine, fie prin vedere, fie prin auz, fie
prin recunoaterea scrisului de mn. Cu toate acestea, n lumea digital, toat lumea interfereaz
pe un ecran de computer. Atunci cnd organizaiile i mut tranzaciile de afaceri online,
securitatea i ncrederea devin cerinele obligatorii. Prin urmare, autentificarea identitii, fie de
ctre un individ sau o organizaie, a devenit o problem primar. Semntura digital, ca un
mecanism care accelereaz tranzacii, economisete costurile, reduce hrtia, i mbuntete
securitatea tranzaciei, a fost folosit pe scar larg ca o component fundamental a activitii n
spaiul cibernetic. O semntur digital asigur integritatea datelor, precum i dovada de origine
(non-repudiere). Aceasta poate fi pstrat de ctre receptor pentru soluionarea litigiilor n cazul
n care expeditorul neag coninutul mesajului sau chiar s nege c l-a trimis. De asemenea,
semntura digital este folosit pentru autentificarea la sisteme sau aplicaii.
1. Autentificarea entitii verific identitatea unei entiti de ctre alta. Este o operaiune
orientat pe conexiune. Autentificarea entitii este de obicei realizat cu ajutorul unui mecanism
de schimb de autentificare. Un astfel de mecanism const ntr-un schimb de mesaje ntre o
pereche de entiti i este de obicei numit un protocol de autentificare. Autentificarea entitii
11
include autentificarea unilateral, care prevede o entitate cu asigurarea identitii alteia, dar nu
invers, i autentificarea reciproc, care prevede ambele entiti cu asigurarea identitii reciproce.
Baza de autentificare
n lumea conectat la o reea, nu este posibil autentificarea unei persoan n acelai mod
n care se realizeaz n lumea fizic. Prin urmare, este necesar o baz pentru autentificare, care
impune construirea unui protocol de autentificare. De fapt, autentificarea se realizeaz printr-un
schimb de mesaje criptografice - un secret mprit ntre cele dou entiti. Aa-numitul secret
partajat poate fi clasificat ntr-unul dintre urmtoarele trei domenii:
1.Ceva ce tii, un cod PIN sau parol. Aceasta este o autentificare bazat pe cunoatere. n
acest scenariu, o persoan i sistemul IT mprtesc un PIN sau o parol prestabilite. Unei
persoan i se cere s introduc codul PIN / parola la autentificare i este transformat ntr-o cheie
de criptare. Aceast cheie este apoi utilizat n protocolul de autentificare. n cazul n care codul
PIN sau parola pe care persoana o introduce se potrivete cu una stocat n sistem, atunci
persoana este autentificat.
2. Ceva ce avei, o carte de identitate securizat sau de alt natur simbolic, care poate
genera o parol unic, o cheie introdus ntr-o "zon de siguran" n maina gazd, n software-
ul browser-ului, etc.; sau un card cu memorie (care poate avea introduse chei i poate efectua
operaiuni criptografice n numele unui utilizator). Acesta este un semn de autentificare bazate pe
token. n acest scenariu, o cheie este prezentat pe token. Deinerea simbolului nseamn posesia
cheii. Prin urmare, oricine poate obine simbolul poate fi autentificat ca proprietar al acestuia.
Cu toate acestea, toate aceste secrete" sunt vulnerabile atunci cnd sunt transferate prin reea
deschis; chiar i o parol organizate ca hash sau PIN-ul sunt vulnerabile la cutarea n dicionar
sau la atacurile exhaustive. Parolele sunt un exemplu de mecanism de autentificare slab; o
persoan demonstreaz cunoaterea unei parole care se potrivete cu ID-ul de utilizator i
serverul o compar cu o intrare dintr-un fiier parol. Cu acest gen de metod de parolare, parola
este secretul i parola sau hash-ul acesteia sunt dezvluite.
PKI / CA
Tehnicile criptografice pot fi folosite n mod concertat pentru a oferi o suit complet de
servicii de securitate. Acestea ar trebui luate n considerare pentru protecia informaiilor i
sistemelor sensibile sau critice. Criptografia este o ramur a matematicii aplicat care se ocup
cu transformarea datelor de securitate.
Semntura digital este unul dintre mecanismele care pot fi folosite pentru a proteja
integritatea i autenticitatea documentelor electronice. Aceasta poate fi aplicat oricrei forme de
document prelucrat electronic. Semntura digital este implementat prin utilizarea unei tehnici
de criptare bazate pe o pereche unic de chei asociate, unde o cheie este utilizat pentru a crea o
semntur (cheia privat), iar cealalt pentru a verifica semntura (cheia public).
Trebuie avut grij la protejarea confidenialitii cheii private. Aceast cheie ar trebui s fie
pstrat secret, deoarece oricine are acces la aceast cheie poate semna documente. n plus,
protejarea integritii cheii publice este important. Aceast protecie este asigurat prin
utilizarea unui certificat de chei publice.
Una dintre principalele probleme asociate cu criptografia este punerea cheilor private la
dispoziia utilizatorilor autorizai, fr a le dezvlui altcuiva. Alte probleme principale includ
fixarea cheilor publice de entiti, permind altor entiti verificarea cheilor publice de legtur,
precum i furnizarea serviciilor necesare pentru gestionarea continu a cheilor ntr-un sistem
distribuit. Abordarea emergent la adresa de care aceast securitate are nevoie face uz de
caracteristicile accesibile i distribuite ale Infrastructurii Cheii Publice (PKI). PKI poate accelera
i simplifica livrarea produselor i serviciilor prin oferirea de abordri electronice.
13
Termenul "infrastructura cheii publice" este derivat din criptografia cheii publice, tehnologie
pe care se bazeaz PKI. Ea are caracteristici unice care o fac nepreuit ca baz pentru funciile
de securitate n sisteme distribuite. Infrastructurii cheii publice este o combinaie de software,
tehnologii de criptare i servicii care permite organizaiilor s protejeze securitatea
comunicaiilor i a tranzaciilor lor de afaceri n reele. PKI integreaz certificatele digitale,
criptografia cu cheie public i autoritile de certificare ntr-un set complet de arhitectur de
securitate la nivel larg a organizaiei.
Componente PKI
O autoritate de certificare (CA), similar unui notar, elibereaz sau revoc certificate.
Utilizatorii PKI sunt organizaii sau persoane care utilizeaz PKI, dar care nu elibereaz
certificate. O CA este componenta de baz a PKI, o colecie de hardware, software i oameni
care-le opereaz. Este cunoscut dup numele acestuia i cheia sa public sale. O CA ndeplinete
patru funcii de baz ale PKI:
1. Elibereaz certificate.
4. Menine arhivele de informaii despre starea certificatelor expirate care au fost eliberate.
14
O RA este proiectat pentru a verifica coninutul certificatului pentru CA. Ca i CA, o RA
este o colecie de hardware, software, i persoana sau persoanele care-le opereaz. Spre
deosebire de CA, o RA va fi deseori exploatat de ctre o singur persoan. Fiecare CA va pstra
o list de RA-uri acreditate; o RA este cunoscut pentru CA dup numele i cheia public ale
acesteia.
O arhiv afirm c informaia a fost bun n momentul n care a fost primit, i nu a fost
modificat n timp ce s-a aflat n arhiv. Arhiva protejeaz informaiile prin intermediul unor
mecanisme tehnice i proceduri adecvate n timp ce le are n grija sa. n cazul n care un diferend
cu privire la semntur apare la o dat ulterioar, informaiile pot fi utilizate pentru a verifica
dac cheia privat asociat cu certificatul a fost utilizat pentru a semna un document.
Arhitecturi PKI
Pentru ca parola s fie uor de amintit, este de multe ori prea simpl (numele personal sau
a unui prieten, numele unei echipe sportive etc.). De aceasta , o parol simpl, nu este greu de
ghicit, mai ales dac tii preferinele utilizatorului. Este o poveste clasica despre un spion Ricard
Zorghe, care fiecare cuvint pronunat era ; Desigur, acelai cuvnt, era cheia de
acces la safeul de top-secret.
15
Uneori parolele de la nceput nu este pstrat n secret, deoarece acestea au valori
implicite specificate n documentaie, i nu ntotdeauna dup instalarea sistemului ele se
modific.
Introducerea parolei se poate spiona(asta e metoda prin care copii afla parola la PC sau
Smartfoanele parinilor). Uneori,sunt utilizate chiar i instrumentele optice pentru spionaj.
Parolele adesea sunt sunt spuse colegilor de lucru, pentru ca titularul parolei s fie
nlocuit pentru ceva timp. Teoretic n astfel de cazuri este mai corect de a utiliza controalele de
acces , dar n practic nimeni nu face acest lucru ; iar o tain care cunoscut de doi ,nu mai este
o tain.
impunerea unor constrngeri tehnice (parola nu trebuie s fie prea scurt, acesta ar trebui
s conin litere, cifre, semne de punctuaie, etc.);
limita numrul de ncercri nereuite de login (coplicnd aplicarea metoda brute force);
instruirea utilizatorului;
utilizarea software-ului generator de parole (un astfel de program, pe baza unor reguli
simple pot genera doar cuvinte plcut-sondare i, prin urmare, parole memorabile).
Aceste msuri sunt recomandate ntodeauna s se aplice chiar i n cazul n care sunt
utilizate i alte metode de autentificare mpreun cu parola.
Acesta este un standard care definete algoritmul semnturii digitale (DSA). A fost
propus de Schnorr i El Gamal. Algoritmul este bazat pe logaritmi discrei pentru crearea i
verificarea semnturii. O funcie hash (Algoritm Hash Securizat, SHA-1) este folosit n
procesul de generare a semnturii pentru a obine o versiune condensat de date, aa-numitul
extras al mesajului. Extrasul mesajului este apoi introdus n DSA pentru a genera semntura
digitala. Semntura digital este trimis la verificatorul destinat mpreun cu datele semnate
(adesea numit mesaj). Verificatorului mesajului i al semnturii verific semntura prin utilizarea
cheii publice a expeditorului. n procesul de verificare trebuie utilizat aceeai funcie hash.
Proceduri similare pot fi folosite pentru a genera i verifica semnturi pentru date stocate sau
transmise. n DSA, crearea semnturii este mai rapid dect verificarea semnturii.
Acest sistem se bazeaz pe algoritmul de criptare a semnturii publice RSA. RSA este
numit de la inventatorii si Rivest, Shamir, i Adleman. Securitatea acestui algoritm de semntur
se bazeaz pe dificultatea de a factorizarea numerele mari prime. Exist un numr N cunoscut
public, care este produsul a dou numere prime, ale cror valori sunt secrete. Aceste numere prime
sunt foarte importante pentru c oricine le tie valorile le poate folosi pentru a calcula cheia privat
din cheia public. Cu toate acestea, crearea semnturii i procesul de verificare sunt mai mult sau
mai puin aceleai ca la DSA. Utiliznd o semntur digital RSA, verificarea unei semnturi este
mult mai rapid dect semnarea. Acest lucru este de dorit pentru c un mesaj va fi semnat de ctre
o persoan o singur dat, dar semntura poate fi verificat de mai multe ori.
Sistemele de criptare n curb eliptic au fost propuse pentru prima dat independent de
Victor Miller i Kblitz Neal la mijlocul anilor 1980. Principalul punct de atracie al sistemelor
de criptare n curbe eliptice fa de alte sisteme de criptare a cheilor publice este faptul c
17
securitatea semnturii digitale n curb eliptic se bazeaz pe probleme matematice grele : Avnd
n vedere dou puncte G si Y pe o curb eliptic, astfel nct Y = kG (adic, Y este G adugat la
sine de k ori), aflai numrul ntreg k. Aceast problem este denumit n mod obinuit ca
problema logaritmului discret n curb eliptic.
Fie uor de calculat de ctre semnatar, ceea ce nseamn ca funcia de semnare s fie
uor de aplicat.
Fie uor de verificat de ctre oricine, ceea ce nseamn ca funcia de verificare s fie
uor de aplicat.
18
2. Generarea extrasului de mesaj. Expeditorul utilizeaz o funcie hush, care este un
algoritm unidirecional, pentru a transforma un mesaj ntr-o valoare de lungime fix. Aceast
valoare de lungime fix este cunoscut ca extras de mesaj.
4. Mesaj expediat. Mesajul semnat digital este trimis "n text clar" la destinatar. Deoarece
orice modificare adus coninutului mesajului va duce la o nepotrivire cu valoarea hush primit.
8. Marcarea orei. O marc de timp poate fi folosit pentru a urmri tranzacia, n cazul n
care, n viitor, apare un diferend.
Cu toate acestea, n cazul unui mesajului foarte scurt, nu este nevoie de transmiterea
separat, deoarece poate fi recuperat chiar din semntur.
documentul surs este verificat. Oricine poate folosi cheia public a semnatarului
pentru a verifica corectitudinea semnturii la orice moment, fr consimmntul sau
introducerea semnatarului.
lipsa specificaiilor juridice. Nu exist specificaii bine stabilite pentru a indica unde
semntura digital este acceptabil din punct de vedere legal, pentru ce tip de document i n ce
msur o agenie necesit o semntur digital fa de o alt form de identificare.
20
Capitolul 2. Criptografia modern
Algritmul DES (Data Encryptin Standard) a fst dezvltat pentru guvernul Statelr Unite
i pentru folsin public. El a fost dezvltat plecnd de la algoritmul Lucifer conceput n
Laboratarele IBM. n mai 1973, revista Federal Register a sintetizat principiile care trebuie s
stea la baza priectrii unui algritm criptgrafic standard:
Algritmul este cnstituit din 16 cicluri repette le blcurilor fundmentale. Textul iniil
este descmpus n blcuri de 64 de bii. Cheia este de 64 bii din cre dar 56 sunt efectivi, ceilli
fiind bii de pritate. Flsirea substituiei prvac cnfuzie prin sistemtica substituire unr
bii cu lii. Trnspziiile prvac difuzie prin re-rdnarea biilr.
21
Prcurgerea celr 16 cicluri re lc dup schem din figura 2.1:
Intrare
permutare iniial
Substituie Cheia
Permutare
Ciclul 1
Substituie Cheia
Permutare
Ciclul 2
Substituie Cheia
Permutare
Ciclul 16
Ieire
22
La intrarea datele sunt mprite n blcuri de 64 bii, care sunt transfrmate flsind cheia
de 64 de bii. Cei 64 de bii sunt permutai prin permutarea iniial. n cntinuare, urmeaz
peraiile ce cnstituie un ciclu. Blcul de 64 de bii este separat n du, jumtatea stng i
jumtatea dreapt, fiecare de 32 de bii. Cheia este deplasat la stnga cu un numr de bii i
permutat: ea se cmbin cu partea dreapt care api se cmbin cu partea stng; rezultatul
devine nua parte dreapt; vechea parte dreapt devine nua parte stng (vezi fig. 5.2).
Date permutate
Cheie
permutat
23
n fiecare ciclu practic au lc patru peraii separate. nti partea dreapt este expandat de
la 32 la 48 bii; api este cmbinat cu frm a cheii; rezultatul este substituit i cndensat n
32 bii, cei 32 bii sunt permutai i api cmbinai cu partea stng pentru a da nu parte
dreapt (fig. 2.4).
D S Cheia
32 bii 32 bii 28 bii 28 bii
Permutare Deplasare Deplasare
expandat
permutare aleasa de
58 bii
48 bii
24
Cheia este mprit cu du pri de 28 bii deplasate la stnga cu un numr de bii api
reunite i 48 din cei 56 de bii sunt permutai i flsii ca cheie de 48 de bii de-a lungul ciclului.
Cheia dintr-un ciclu este cmbinat printr- funcie sau exclusiv cu partea dreapt
expandat. Rezultatul este perat n 8 cutii-S care efectueaz substituia. O cutie-S este
tabel n care 6 bii de date sunt nlocuii de 4 bii.
Rezultatul este adevrat pentru c ciclul j deriv din ciclul (j-1) astfel:
S j Dj 1 (1)
D j S j 1 () f ( D j 1 ,k j ) (2)
unde (+) este peraia sau exclusiv, f este funcia rezultat din peraiile dintr-un ciclu.
Aceste ecuaii arat c rezultatul fiecrui ciclu depinde numai de ciclul precedent.
Dj 1 S j (3)
i S j 1 D j () f ( D j 1 ,k j ) (4)
Ecuaiile (3) i (5) arat c aceleai valri pt fi binute n cicluri ulteriare. Aceast
prprietate face algritmul DES reversibil.
Deci putem face cdificarea unr date i decdificarea lr flosind acelai algritm fcnd
bservaia c la decdificare cheia se ia n rdine invers.
15 mi 1973 NBS public prim cerere pentru un lgoritm stndard pentru criptre
27 august 1974 NBS public a doua cerere pentru un algoritm standard pentru criptare
22 ianuarie 1988 DES este reconfirmat pentru a doua oar ca FIPS 46-1
1
Electronic Frontier Foundation
2
Publicaie a NIST (National Institute of Standards and Technology)
26
n for brut : criptanaliza diferenial ; metoda cerea un numr
nerealist (247) de texte alese
30 decembrie 1993 DES este reconfirmat pentru a treia oar ca FIPS 46-2
25 octombrie 1999 DES este reconfirmat pentru a patra oar ca FIPS 46-3 cu specificaia
preferinei pentru Triplu DES
26 noiembrie 2001 AES este publicat n FIPS 197
Aceast variant poate fi analizat folosind criptanaliza diferenial i poate fi spart cu 261
texte n clar date. Se pare c nici o modificare n planificarea cheilor nu conduce la ntrirea
semnificativ a algoritmului DES.
DESX
DESX este o variant DES dezvoltat de RSA Data Security, care a fost inclus nc din
1968 n programul de securitate pentru pot electronic MailSafe. DESX folosete o tehnic
numit albire, pentru a ascunde intrrile i ieirile DES. n plus fa de cheia DES de 56 de bii,
DESX are o cheie suplimentar de albire de 64 de bii. Aceti 64 de bii sunt operai XOR cu textul
n clar nainte de prima trecere DES. 64 de bii suplimentari, calculai ca o funcie bijectiv de toi
cei 120 de bii ai cheii DES, sunt operai XOR cu textul cifrat naintea ultimei treceri. Albirea l
face pe DESX mult mai puternic dect DES fa de un atac n for; atacul necesit (2120)/n operaii
cu n texte n clar cunoscute. De asemenea se mbuntete securitatea mpotriva criptanalizei
liniare i difereniale; atacul necesit 261 texte n clar date i 260 de texte n clar cunoscute.
CRYPT(3)
CRYPT(3) este o variant de DES ntlnit n sistemele UNIX. Este folosit n mod obinuit
pentru parole, dar uneori i pentru criptare. Diferena ntre CRYPT(3) i DES este c CRYPT(3)
are o permutare de chei cu 212 posibiliti, astfel nct s nu permit folosirea cipurilor DES la
construcia unui dispozitiv hardware de spart parole.
DES generlizat
DES-ul generlizat (GDES) a fst priectat s mresc vitez DES-ului i s ntresc
algritmul. Mrime ttal a blcului crete, n timp ce sum clculelor rmne constnt.
GDES pereaz pe blcuri de text n clar de lungime vriabil. Blcurile criptte sunt
mprite n q sub-blcuri; numrul exact depinde de mrime ttal a blcului. n generl q este
egl cu lungime blcului mprit la 32.
Funci f este clculat dt la fiecre trecere, pe ultimul blc din dreapt. Rezulttul este
opert XR cu tate celellte pri, cre sunt poi rtite spre drepta. GDES re un numr vriabil
de treceri, n. Exist o mic mdificare la ultim trecere, stfel nct prcesele de criptre i
decriptre difer dar prin rdinea sub-cheilor. De fpt, pentru q=2 i n=16 se bine lgoritmul
DES.
28
Biham i Shamir rat c, flosind criptanliza diferenil, GDES cu q=8 i n=16 este
vulnerbil cu dar se texte n clr dte. Dc se flosesc i sub-chei independente, sunt necesre
16 texte n clr dte. Pentru q=8 i n=64, GDES e mi slb dect DES; sunt necesre 249 texte n
clr dte pentru -l sprge. De fpt, rice schem GDES este mi rpid dect DES, dr este de
asemene mi puin sigur.
RDES
RDES este varint cre nlcuiete schimbrea stng-drepta de la sfritul fiecrei
treceri cu o schimbre dependent de cheie. Schimbrile sunt fixe, depinznd dor de cheie.
Acesta nsemn c cele 15 schimbri dependente de cheie se petrec cu 2 15 psibiliti i c
acest vriant nu rezist la criptnaliza diferenial.
O idee mi bun este c schimbrea s aib loc dor n parte drept, la nceputul fiecrei
treceri, iar schimbrea s depind de dtele de intrre i nu de cheie. n RDES-1 se prctic o
schimbre dependent de dte de cuvinte pe 16 bii la nceputul fiecrei treceri. n RDES-2 exist
o schimbre de ctei dependent de dte l nceputul fiecrei treceri, dup o schimbre c n
RDES-1. Se pate cntinua n celai md pn la RDES-4. RDES-1 este sigur att fa de
criptnaliza linir ct i f de ce diferenil.
n ugust 1998 NIST selectt cinci finliti pe criterii de securitte, eficien, flexibilitte i
cerine de memrie. Finlitii u fst:
3
National Institute of Standards and Technology SUA
4
Advanced Encryption Standard Standard de Criptare Avansat
29
2. Serpent (Ross Anderson, Eli Biham, Lars Knudsen, 56 voturi)
3. Twofish (echipa condus de Bruce Schneier, 31 voturi)
4. RC6 (RSA Laboratories, 23 voturi)
5. MARS (IBM, 13 voturi)
n octombrie 2000 NIST a stabilit ctigtorul. Acesta este algoritmul Rijndael, dezvoltat de
doi tineri cercettori belgieni, Joan Daemen i Vincent Rijmen i care devine standard
guvernamental al SUA. Se sper ca Rjindael s devin standardul criptografic dominant n lume
pentru urmtorii 10 ani.
Rijndael permite lungimi de chei i mrimi de blocuri de la 128 de bii la 256 de bii, n pai
de cte 32 de bii. Lungimea cheii i lungimea blocului pot fi alese n mod independent, dar n
practic se vor folosi dou variante: bloc de 128 bii cu cheie de 128 bii i bloc de 128 bii cu
cheie de 256 bii. Standardul comercial va deveni cel mai probabil varianta 128/128. O cheie de
128 bii permite un spaiu al cheilor de 2128 chei.
Preliminarii matematice
Rijndael se bazeaz pe teoria cmpului Galois, n sensul c anumite operaiuni sunt definite
la nivel de octet iar octeii reprezint elemente n cmpul finit GF(28).
Cum toate reprezentrile cmpului finit GF(28) sunt izomorfe, se poate alege reprezentarea
clasic polinomial, cu impact pozitiv asupra complexitii implementrii.
Octetul b, format din biii b7, b6, b5, b4, b3, b2, b1 i b0, este considerat ca fiind un polinom
de gradul 7 cu coeficieni 0 sau 1:
b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x + b0
Operaiunea de adunare este definit ca suma a dou polinoame n care coeficienii se adun
modulo 2 i care corespunde operrii XOR a celor doi octei corespondeni. Sunt ndeplinite
axiomele grupului abelian: operaia este intern, asociativ, comutativ, exist element neutru i
element invers
Operaiunea de nmulire corespunde produsului a dou polinoame modulo, un polinom
ireductibil de grad 8 i care pentru AES este
m(x) = x8 + x4 + x3 + x + 1
30
nmulirea este intern (rezultatul este un polinom de grad strict mai mic ca 8), asociativ i
exist element neutru. Elementul invers se determin cu algoritmul lui Euclid, iar distributivitatea
celor doua operaii se verific.
Concluzia este c mulimea celor 256 de valori posibile ale unui octet, mpreun cu cele dou
operaiuni definite mai sus formeaz un corp algebric finit, respectiv GF(28).
Proiectarea AES
n proiectarea AES s-a inut cont de trei criterii:
- rezistena mpotriva tuturor atacurilor cunoscute;
- viteza i compactitatea codului pe un mare numr de platforme;
- simplicitatea proiectrii.
Ca i DES, AES folosete substituie i permutri, ca i runde multiple. Numrul de runde
depinde de mrimea cheii i de mrimea blocului, fiind 10 n cazul 128/128 i mrindu-se pn la
14 pentru cazul 256/128. Spre deosebire de DES, toate operaiile sunt la nivel de octet, pentru a
permite implementri eficient hardware i software.
Descrierea AES
n algoritmul AES rezultatul cifrat intermediar este numit vector state, care poate fi
reprezentat ca un tabel cu patru linii i patru coloane, acestea fiind numerotate ncepnd de la 0.
Vectorul state se iniializeaz cu blocul de 128 bii de text n clar (n ordinea coloanelor, cu
primii patru octei n coloana 0) i va fi modificat la fiecare pas al calculului, prin substituii,
permutri i alte transformri, rezultnd n final blocul de 128 bii de text cifrat.
Cheia de 128 de bii este expandat n 11 tabele 4x4 notate rk(0), rk(1),...., rk(10).
Expandarea este realizat prin rotiri repetate i operaii XOR asupra unor grupuri de bii din cheia
original.
nainte de a ncepe cele 10 runde, cheia rk(0) se opereaz XOR cu vectorul state.
Calculul principal const n execuia a 10 runde, folosind cheia rk(i) la iteraia i. Fiecare
rund const n patru pai.
Pasul 1 realizeaz o substituie octet cu octet asupra vectorului state folosind o cutie S.
Pasul 2 rotete la stnga fiecare din cele 4 rnduri ale vectorului state: rndul 0 este rotit cu
0 octei, rndul 1 este rotit cu 1 octet, rndul 2 este rotit cu 2 octei i rndul 3 este rotit cu 3 octei,
realiznd difuzia datelor.
Pasul 3 amestec fiecare coloan din vectorul state independent de celelalte, prin nmulirea
coloanei cu o matrice constant, multiplicarea fiind realizat folosind cmpul finit Galois GF(28).
31
n fine, pasul 4 opereaz XOR cheia rk din runda respectiv cu vectorul state.
Deoarece fiecare pas este reversibil, decriptarea se poate realiza prin rularea algoritmului de
la coad la cap, sau prin rularea algoritmului de criptare nemodificat, dar folosind tabele diferite.
Avantaje AES
Avantajele AES relativ la implementare sunt:
- AES se poate implementa pe un procesor Pentium Pro i va rula cu o vitez mai
mare dect orice alt cifru bloc;
- AES se poate implementa pe un dispozitiv Smart Card, folosind un spaiu redus
de memorie RAM i un numr redus de cicluri;
- transformarea din cadrul unei runde este paralel prin proiectare, ceea ce constituie
un avantaj pentru viitoarele procesoare;
- AES nu folosete operaiuni aritmetice, ci doar operaii la nivel de iruri de bii.
Simplitatea proiectrii AES:
33
4. Securitate variabil lungimea cheii este variabil, putnd crete pn la 448 de
bii.
Blowfish este optimizat pentru aplicaii n care cheia nu trebuie s se schimbe des, cum ar fi
legturi de comunicaie sau un criptor automat pentru fiiere. Este semnificativ mai rapid dect
DES cnd este implementat pe procesoare de 32 de bii dotate cu memorie cache mare, cum ar fi
Pentium. Blowfish nu este potrivit pentru comutarea de pachete, cu schimbri dese de cheie, ca
funcie hash one-way sau n aplicaii smart-card, unde memoria este insuficient.
Criptarea datelor rezid ntr-o funcie simpl iterat de 16 ori. Fiecare ciclu este format dintr-
o permutare dependent de cheie i o substituie dependent i de cheie i de date. Toate operaiile
sunt adunri i operri XOR pe cuvinte de 32 de bii. Singurele operaii suplimentare sunt patru
cutri ntr-un tabel indexat, pe ciclu.
Blowfish folosete un numr mare de sub-chei. Aceste sub-chei trebuie precalculate nainte
de orice criptare sau decriptare de date.
Blowfish este o reea Feistel cu 16 cicluri. Intrarea este x, un element de 64 bii de date.
Pentru criptare:
34
For i = 1 to 16:
xL = xL Pi
xR = F(xL) xR
End for
xR = xR P17
xL = xL P18
se recombin xL i xR
a, b, c, d
Decriptarea are loc similar cu criptarea, cu diferena c P1, P2, , P18 sunt folosite n ordine
invers.
Sub-cheile sunt calculate folosind algoritmul Blowfish, care const n urmtorii pai:
35
5. Se cripteaz ieirea din pasul 3 folosind algoritmul Blowfish cu sub-cheile
modificate.
6. Se nlocuiesc P3 i P4 cu ieirea din pasul 5.
7. Se continu procesul, nlocuind toate elementele din tabelul P i apoi cele patru
cutii-S n ordine, cu ieirea algoritmului Blowfish.
n total, 521 de iteraii sunt necesare pentru a genera toate sub-cheile necesare. Aplicaiile
pot memora sub-cheile pentru a nu trebui s le calculeze de fiecare dat.
Dac algoritmul bloc este un grup, exist ntotdeauna un K3, astfel nct
n caz contrar, blocul de text cifrat rezultat dintr-o dubl criptare ar trebui s fie mult mai
greu de decriptat folosind cutarea exhaustiv. n loc de 2n ncercri (unde n este lungimea n bii
a cheii), vor fi necesare 22n ncercri. Dac algoritmul are chei de 64 de bii, vor fi necesare 2128
ncercri pentru a gsi cheia.
36
C1 = EK2 (EK1 (P1))
Acest atac necesit un spaiu mare de memorie: 2n blocuri. Pentru un algoritm de 56 de bii,
aceasta nseamn 256 blocuri de 64 de bii, adic 1017 octei. Este o cantitate considerabil de
memorie, dar demonstreaz c dubla criptare nu duce la dublarea securitii. n cazul ns al unei
chei de 128 de bii, cantitatea de memorie necesar este de 1039 octei, ceea ce nseamn c un atac
de tip ntlnire la mijloc nu este fezabil.
Aceasta poart numele de mod EDE (encrypt-decrypt-encrypt); dac algoritmul bloc are o
cheie de n bii, aceast schem conduce la o cheie de 2n bii. Aceast form curioas de criptare-
37
decriptare-criptare a fost proiectat de IBM, pentru a pstra compatibilitatea cu implementarea
convenional a algoritmului: dac cele dou chei sunt identice, tripla criptare se reduce la o
singur criptare cu o singur cheie.
Tripla criptare cu dou chei nu permite un atac de tip ntlnire la mijloc de genul celui
ntlnit n cazul dublei criptri, dar Merkle i Hellman au proiectat un alt gen de atac, care poate
sparge tripla criptare cu dou chei n 2n-1 pai folosind 2n blocuri de memorie.
Acesta este un atac cu texte n clar alese, care necesit o mare cantitate de texte n clar alese
i anume 2m, n timp ce memoria i durata sunt de ordinul 2n. Nu este foarte practic, dar subliniaz
o slbiciune a algoritmului.
Paul van Oorschot i Michael Wiener au convertit aceasta la un atac cu 2p texte n clar
cunoscute. Exemplul presupune modul EDE:
4. Probabilitatea de succes este p/m, unde p este numrul de texte n clar cunoscute i
m este mrimea blocului. Dac nu se gsesc elementele cutate la pasul 3, se alege
o nou valoare pentru a i se reia de la pasul 1.
Acest atac necesit 2n+m/p timp operaional i p spaiu de memorie. Pentru DES, aceasta
nseamn 2120/p. Pentru p mai mare ca 256, acest atac este mai rapid dect cutarea exhaustiv.
38
Tripla criptare cu trei chei
Aceast variant presupune o lungime total a cheii mai mare, dar memorarea cheii nu
constituie o problem.
Cel mai bun atac cere 22n pai i 2n blocuri de memorie si este de tip ntlnire la mijloc.
Tripla criptare cu trei chei independente este echivalent din punct de vedere al securitii,
cu dubla criptare.
Cifrurile ir formeaz o clas important de algoritmi de criptare; ele pot fi cifruri cu chei
simetrice sau cu chei publice. Ceea ce le caracterizeaz i le difereniaz fa de cifrurile bloc este
faptul c cifrurile ir proceseaz textul de criptat n uniti orict de mici, chiar bit cu bit, aplicnd
funcia XOR ntre biii cheii i biii de cifrat, iar funcia de criptare se poate modifica n cursul
criptrii. Cifrurile ir sunt algoritmi cu memorie, n sensul c procesul de criptarea nu depinde doar
de cheie i de textul n clar, ci i de starea curent. n cazul n care probabilitatea erorilor de
transmisie este mare, folosirea cifrurilor ir este avantajoas deoarece au proprietatea de a nu
propaga erorile. Ele se folosesc i n cazurile n care datele trebuie procesate una cte una, datorit
lipsei de spaiu de memorie.
Clasificare
Algoritmii simetrici de tip ir se mpart n dou mari clase:
1. Cifruri ir sincrone.
2. Cifruri ir asincrone.
- Nepropagarea erorii un bit de text cifrat care este modificat n timpul transmisiei
nu trebuie s afecteze decriptarea celorlali bii cifrai.
unde S0 = (c-t, c-t+1, , c-1), este starea iniial (nesecret), k este cheia, g este funcia care produce
irul de chei z, iar h este funcia de ieire care combin irul de chei cu textul n clar mi pentru a
obine textul cifrat ci.
Proprietile cifrurilor ir asincrone
40
- Auto-sincronizarea este posibil dac bii din textul cifrat sunt terse sau adugate,
deoarece decriptarea depinde doar de un numr determinat de bii cifrai anterior.
Astfel de cifruri sunt capabile s-i restabileasc automat procesul de decriptare
corect dup pierderea sincronizrii.
- Atacuri active limitarea propagrii erorii face ca orice modificare a textului cifrat
de ctre un adversar activ s aib ca i consecin decriptarea incorect a altor bii
cifrai, ceea ce poate mri posibilitatea ca atacul s fie observat de ctre decriptor.
Pe de alt parte, datorit auto-sincronizrii este mai dificil dect n cazul cifrurilor
ir sincrone s se detecteze inserarea, tergerea sau modificarea unor bii n textul
cifrat. Trebuie deci s se foloseasc mecanisme suplimentare de autentificare a
expeditorului i de garantare a integritii datelor.
- Difuzia statisticilor textului n clar deoarece fiecare bit de text clar influeneaz
toi biii cifrai urmtori, proprietile statistice ale textului n clar sunt dispersate n
textul cifrat. Ca o consecin, cifrurile ir asincrone trebuie s fie mai rezistente
dect cifrurile ir sincrone fa de atacurile bazate pe redundana textului n clar.
5
LFSR - Liniar Feedback Shift Register au fost descrise n 3.2
41
- Abordarea sistemic este ncercarea de a crea o problem dificil pentru
criptanalist, folosind un set de principii i criterii fundamentale de proiectare.
6
2.3.3 Substituia perfect
7
one-time tape
42
criptanalistul nu poate prezice cheia. Prin distrugerea benzilor dupa folosire se obine secretul
perfect.
n abordarea aleatoare a proiectrii cifrurilor ir, criptograful ncearc s se asigure c
adversarul su, criptanalistul, va trebui s rezolve o problem de foarte mari dimensiuni.
Obiectivul este creterea numrului de bii pe care criptanalistul trebuie s-i analizeze, simultan cu
pstrarea cheii secrete la dimensiuni mici. Acest lucru se poate obine prin folosirea unui ir public
aleator de mari dimensiuni la criptare i decriptare. Cheia va specifica prile din irul public care
sunt folosite la criptare i decriptare. Criptanalistul, care nu cunoate cheia, va fi forat s dezvolte
o cutare n for brute-force search asupra ntregului ir public. Securitatea acestui tip de cifru
se poate exprima n numrul mediu de bii pe care un criptanalist trebuie s-i examineze nainte ca
ansele de a determina cheia s fie mai mari dect a o ghici.
Abordarea pe baza teoriei complexitii conduce proiectantul s foloseasc teoria
complexitii n demersul su de a demonstra securitatea generatorului. Generatorii tind s devin
din ce n ce mai complicai, bazai pe probleme dificil de rezolvat, cum este cazul n criptografia
cu chei publice.
Atacuri
Criptografii ncearc s obin o complexitate liniar ridicat prin combinarea ieirilor mai
multor LFSR-uri ntr-un mod nonliniar. Pericolul este ca unul sau mai multe iruri generate interne
de obicei ieiri ale LFSR-urilor individuale s fie corelate cu irul combinat, ceea ce permite un
atac bazat pe algebra liniar numit atac de corelaie. [Mih95]. Thomas Siegenthaler a artat c
imunitatea de corelare poate fi precis definit i c exist o legtur ntre aceasta i complexitatea
liniar [Sie84]. Ideea de baz a atacului de corelaie este identificarea unor corelaii ntre ieirea
generatorului i ieirea uneia din componentele sale interne. Apoi, observnd irul de ieire, se pot
43
obine informaii despre ieirea intern. Folosind aceste informaii i alte corelaii se colecteaz
informaii despre celelalte ieiri interne ale generatorului, pn cnd acesta este spart n totalitate.
Cifrul A5
A5 este un cifru ir folosit pentru a cripta fluxul de date GSM (Group Special Mobile),
reprezentnd standardul non-american pentru telefonia mobil celular. A5 cripteaz linia dintre
telefon i celula de baz, restul legturii rmnnd necriptat. A5 este format din trei LFSR-uri,
care au regitri de lungime 19, 22 i respectiv 23. Toate polinoamele de feedback sunt cu un numr
redus de coeficieni8. Ieirea este obinut prin operarea XOR a celor trei LFSR-uri. A5 folosete
un clock control variabil. Fiecare registru face un clocking bazat pe bitul central, care este operat
XOR cu inversa funciei prag (threshold function) a biilor de la mijlocul celor trei regitri. n mod
normal, dou din LFSR-uri sunt clock-ate la fiecare iteraie.
Exist un atac trivial care necesit 240 criptri: se ghicete coninutul primelor dou LFSR-
uri, apoi se determin al treilea din irul generat. n ciuda acestui fapt, A5 este bine proiectat i
este extrem de eficient. El trece cu succes toate testele statistice cunoscute i singura sa slbiciune
rezid n faptul c regitrii sunt scuri, ceea ce face posibil o cutare exhaustiv. Variantele A5
cu regitri lungi i polinoame feedback dense au un grad de siguran sporit.
Dac, coeficienii a, b, c, m sunt alei n mod corect, perioada generatorului este cel puin
egal cu 2n 1. Una din condiiile cerute pentru coeficieni este ca cel mai puin semnificativ bit
s formeze un LFSR de lungime maxim.
Cifrul RC4
RC4 este un cifru ir cu cheie de lungime variabil, dezvoltat n 1987 de ctre Ron Rivest
pentru RSA Data Security. n 1994 codul surs al algoritmului este fcut public pe Internet.
8
sparse (eng.)
44
RC4 este un algoritm simplu de descris: irul cheie este independent de textul n clar. Are 8
x 8 cutii-S: S0, S1, ..., S255. Intrrile sunt permutri ale numerelor de la zero la 255, iar permutarea
este o funcie de o cheie de lungime variabil. Exist doi indici, i i j, iniializai cu zero.
i = (i + 1) modulo 256
T = Si
Si = Sj
Sj = T
K = St
Octetul K este operat XOR cu textul n clar pentru a produce text cifrat sau operat XOR cu
textul cifrat pentru a obine textul n clar. Criptarea este aproape de 10 ori mai rapid dect DES-
ul.
j=0
For i = 0 to 255:
Nu exist rezultate publice ale criptanalizei. Se crede ca algoritmul este imun la analiza
diferenial i liniar; RC4 poate fi n aproximativ 21700 stri posibile. Cutiile-S evolueaz lent
n timpul ntrebuinrii: i asigur c fiecare element se schimb, iar j c aceste schimbri sunt
aleatoare.
45
RC4 are un statut special de export, acesta fiind permis doar pentru chei de pn la 40 de
octei. RC4 este implementat n multe produse comerciale, dintre care amintim Lotus Notes i
Oracle Secure SQL
Sistemele cu cheie public au un mare avantaj fa de sistemele cu chei secrete: oricine poate
transmite un mesaj secret utilizatorului (cunoscndu-i cheia public), iar mesajul rmne protejat
fa de interceptor. Cu un sistem cu cheie convenional, o cheie separat secret este necesar
pentru fiecare pereche de utilizatori.
Un canal este o cale pentru fluxul de informaii; ntr-un mediu privat, calea este protejat
mpotriva accesului din exterior. n general, un sistem cu n utilizatori necesit n*(n-1)/2 chei,
pentru ca oricare pereche de utilizatori s poat comunica ntre ei i mesajele lor s rmn secrete
fa de ceilali utilizatori. Numrul de chei crete rapid o dat cu numrul de utilizatori; generarea,
distribuirea i meninerea securitii cheilor constituie o problem datorit numrului lor mare.
Caracteristici
ntr-un sistem cu cheie public, un utilizator deine dou chei: o cheie public i o cheie
privat. Utilizatorul i poate face cunoscut oricui cheia public. Fie kPRIV cheia privat i kPUB
cheia public corespunztoare. Atunci:
P=D(kPRIV, E(kPUB,P))
Utilizatorul poate decripta cu cheia privat ceea ce oricine altcineva a criptat cu cheia public
corespunztoare.
P=D(kPUB, E(kPRIV,P))
utilizatorul poate cripta un mesaj cu cheia privat, iar mesajul poate fi decriptat doar cu cheia
public corespunztoare.
9
National Computer Conference SUA
46
Aceste dou proprieti presupun c cele dou chei, public i privat, pot fi aplicate n orice
ordine (sistemul RSA nu face distincie ntre cheia public i cheia privat; orice cheie din perechea
de chei poate fi folosit fie ca cheie public, fie ca cheie privat).
Introducere
Ideea pe care se bazeaz schema rucsacului Merkle-Hellman este codificarea unui mesaj
binar ca o soluie la o problem a rucsacului, reducnd mesajul n text cifrat la suma int obinut
prin adunarea termenilor corespunztori valorilor de 1 din irul binar.
Un rucsac este reprezentat ca un vector de numere ntregi n care ordinea termenilor este
foarte important. Exist dou tipuri de rucsacuri: unul simplu, pentru care exist un algoritm rapid
(de timp liniar) i unul complicat, obinut din cel simplu prin modificarea elementelor sale.
Modificarea este astfel proiectat nct o soluie cu elementele oricrui rucsac este de asemenea
soluie pentru cellalt. Aceast modificare se numete trap, permind utilizatorilor legitimi s
rezolve problema simplu. Deci, problema general este NP complet, dar exist o versiune
restrns care are o soluie foarte rapid.
Algoritmul ncepe cu o mulime de ntregi n care fiecare element este mai mare dect suma
predecesorilor si. S presupunem c avem un ir n care fiecare element ak este mai mare dect
a1+a2+...+ak-1. Dac o sum este ntre ak i ak+1, trebuie s-l conin pe ak, deoarece nici o
combinaie de termeni a1, a2, ..., ak-1 nu pot produce un total mai mare dect ak. Analog, dac o
sum este mai mic dect ak, evident nu l va conine ca termen pe ak.
47
Deci, dndu-se S=[a1, a2, ..., an], i T, s se gseasc un vector V cu valori 0 i 1 astfel nct :
a
i 1
i vi T
Rucsacuri supercresctoare
S presupunem problema rucsacului cu o restricie suplimentar: ntregii din S formeaz un
ir supercresctor, adic unul n care fiecare ntreg este strict mai mare dect suma predecesorilor
si. Atunci, orice ntreg ak satisface relaia
k 1
ak a j
j 1
Soluia rucsacului supercresctor (numit i rucsacul simplu) este uor de gsit. Se ncepe cu
T, care se compar cu cel mai mare ntreg din S. Dac acesta este mai mare dect T, nu este termen
al sumei, deci valoarea corespunztoare din V este 0. Dac acest cel mai mare ntreg din S este mai
mic sau egal cu T, el este termen al sumei, deci valoarea corespunztoare din V este 1. Relum
algoritmul pentru T din care scdem sau nu termenul analizat (conform cu valoarea din V) i pentru
ntregii rmai.
Tehnica de criptare
Tehnica de criptare Merkle-Hellman este un criptosistem cu cheie public. Fiecare utilizator
are o cheie public, care poate fi distribuit oricui i o cheie privat, care se pstreaz secret.
Cheia public este mulimea ntregilor din problema rucsacului (nu unul supercresctor); cheia
privat este rucsacul supercresctor corespondent. Contribuia lui Merkle i Hellman a fost s
proiecteze o tehnic de conversie a rucsacului supercresctor ntr-unul normal, prin schimbarea
numerelor de o manier reversibil.
48
Introducere
Algritmul de criptre RSA incorpreaz rezultte din teria numerelr, cmbinate cu
dificultte determinrii factrilor primi pentru un numr int. C n czul lgoritmului Merkle-
Hellmn i lgoritmul RSA pereaz cu aritmetic mdul n. Un blc n text clr este trtat c un
ntreg, ir pentru criptre i decriptre se flsesc du chei, e i d, cre sunt interschimbbile.
Blcul de text clr P este criptt c Pe modul n. Dearece expneniere este mdulo n, este farte
dificil s se fctorizeze Pe pentru descperi textul riginl. Pentru ceast, chei de decriptre d
este stfel leas nct (Pe)d = P mdulo n. Astfel P este regsit fr fi necesr descompunere
n fctori primi lui Pe.
Problema pe care se bazeaz algoritmul de criptare este cea a factorizrii numerelor mari.
Problema factorizrii nu se cunoate a fi NP complet; cel mai rapid algoritm cunoscut este
exponenial n timp.
Descrierea detaliat
Cu algoritmul RSA, mesajul n text clar P este criptat n, mesajul n text cifrat C prin
intermediul cheii de criptare e:
C = Pe modulo n
P = Cd modulo n
Din cauza simetriei din aritmetica modular, criptarea i decriptarea sunt mutual inverse i
comutative:
Alegerea cheilor
Cheia de criptare const n perechea de ntregi (e, n), iar cheia de decriptare este (d, n).
Punctul de plecare n gsirea cheilor pentru acest algoritm este selectarea unei valori pentru n.
Valoarea lui n trebuie s fie suficient de mare, dat de un produs a dou numere prime p i q. Att
p ct i q trebuie s fie ele nsele suficient de mari. n mod obinuit, p i q au aproximativ 100 de
cifre fiecare, astfel nct n are aproximativ 200 de cifre. Aceast lungime inhib ncercarea de a
factoriza pe n, pentru a afla pe p i pe q.
n continuare, se alege un ntreg e relativ mare, astfel nct e este relativ prim cu (p-1)(q-1).
Satisfacerea acestei condiii se face alegndu-l pe e ca un numr prim mai mare dect p-1 i q-1.
49
n final, se alege d astfel nct:
e d 1 modulo (p-1)(q-1)
(p) = p-1
x (n) 1 modulo n
S presupunem c mesajul n text clar P este criptat cu algoritmul RSA, astfel nct E(P)=Pe.
Trebuie s fim siguri c putem decripta mesajul. Valoarea e este astfel aleas nct inversa sa d s
poat fi gsit uor. Deoarece e i d sunt inverse modulo (n),
e d 1 modulo (n)
sau
e d = k (n) + 1
50
Solovay i Strassen au dezvoltat un algoritm euristic de calcul a probabilitii ca un numr
s fie prim, cu gradul de ncredere dorit.
Orice numr prim satisface dou teste. Dac p este un numr prim i r orice numr mai mic
dect p,
cmmdc(p, r)=1
1 daca r 1
J (r , p) J (r / 2, p) (1) ( p 1) / 8
2
daca r este par
J ( p modulo r, r) (1) ( r 1)( p 1) / 4 daca r este impar si r 1
Dac un numr pare a fi prim, dar nu trece unul din aceste teste, n mod sigur nu este prim.
Dac ns satisface cele dou teste, numrul este prim cu o probabilitate de cel puin 1/2.
Problema n algoritmul RSA este de a gsi dou numere prime mari, p i q. Pentru a folosi
metoda de mai sus, se alege un posibil numr mare prim, p. Se genereaz aleator un numr r i se
calculeaz cmmdc(p,r) i J(r,p). Dac una din cele dou condiii nu este ndeplinit, p nu este
numr prim. Dac ambele teste se verific, probabilitatea ca p s nu fie prim este cel mult 1/2.
Procesul se repet pentru noi valori ale lui r alese aleator. Dac al doilea r verific ambele teste,
probabilitatea ca p s nu fie prim este cel mult 1/4. Dup repetarea procesului de k ori astfel nct
cele dou teste sunt verificate, probabilitatea ca p s nu fie prim este cel mult 1/2k.
n pofida unor intense cercetri, au fost identificate doar probleme minore n comparaie cu
cele din cazul algoritmului rucsacului a lui Merkle i Hellman
51
2.4 Concluzii
Criptografia cu chei simetrice i cea cu chei publice prezint diverse avantaje i
dezavantaje pe care le prezentm n continuare:
1. Algoritmii folosii permit gestionarea unor volume mari de date, cu vitez relativ
bun. n special atunci cnd este vorba de implementri hard.
4. Algoritmii cu chei simetrice se pot compune pentru a produce algoritmi mai puternici.
(ii) Dezavantajele criptografiei cu chei simetrice
2. ntr-o reea cu muli utilizatori numrul cheilor care trebuie gestionate devine o
problem major.
3. Pentru o comunicaie ntre dou pri, practica criptografic impune schimbul cheilor
frecvent, uneori chiar la fiecare sesiune, ceea ce n condiiile unui canal nesigur de
comunicaie este o alt problem.
(iii) Avantajele criptografiei cu chei publice
1. Dintre cele dou chei folosite n algoritmii cu chei publice doar una trebuie inut
secret.
4. ntr-o reea de dimensiuni mari numrul de chei necesare este considerabil mai mic
dect n cazul criptografiei simetrice.
(iv) Dezavantajele criptografiei cu chei publice
1. Viteza algoritmilor cu chei publice (chiar i a celor mai performani) este de cteva
ori mai mic dect a celor cu chei secrete.
52
2. Dimensiunea cheilor folosite este mai mare (1024 pentru RSA n comparaie cu 64
sau 128 n cazul algorimilor de tip bloc).
RSA
SET (Secure Electronic Protocol criptare transmisii de
4 MD5
Transaction) instruciuni de plat prin Internet
RC2
53
RSA
Protocol criptare transmisii
5 CyberCash MD5
instruciuni de plat prin Internet
RC2
Diffie-
Protocol de nivel sczut pentru criptarea Hellman
6 Ipsec, Ipv5
pachetelor IP
RSA
Diffie-
Protecie pentru Telnet la
9 SSH (Secure Shell) Hellman
transferul de fiiere
Des
Triple DES
54
Capitolul 3. Securittea clculatorului
3.1 Primii virusi
Care este securitatea calculatoarelor? Sintaxa "securitii calculatoarelor" este vag. Spunei
cteva lucruri, cum este cazul n termenul "general". Acest lucru se datoreaz faptului c
securitatea calculatoarelor este un domeniu foarte divers.
Pe de o parte, exist specialiti i cercettori care lucreaz din greu pentru a gsi i
remedia problemele de securitate ale unei game largi de dispozitive. Pe de alt parte, exist o
comunitate de entuziati inventivi care sunt amatori n sensul literar al termenului, adic nu sunt
pltii sau susinui de nicio instituie sau companie de renume, dar sunt extrem de pricepui i
capabili s ofere util Informaii pe cont propriu.
Aceast caracteristic este explicat n termeni de companii care vor vinde software-ul de
securitate. Cuvintele precum "firewall", " blcker " i " shield " sunt mai uor de gsit n
anunurile pentru acest software.
Se presupune c aceste cuvinte clarific flagelul securitii PC, dar acest lucru nu este
ntotdeauna cazul. Informaiile primite de la o companie care vinde software de securitate sunt
subiectiv probabile, n lumina muncii lor, care creeaz soluia.
Acest ghid ofer o perspectiv obiectiv, detaliat, dar uor de neles n domeniul
securitii calculatorului. n final, vei ti exact ce nseamn acest termen i, mai important, ceea
ce avei nevoie pentru a v menine calculatorul n siguran.
3.2.1 Troienii
Troienii, dei diferii de un virus prin componentele lor, pot infecta calculatoarele prin
aceleai metode menionate mai sus. n timp ce un virus ncearc s ruleze un cod infectat pe
calculatorul tu, un troian ncearc s fac posibil accesul unei tere pri la cteva sau la toate
funciile calculatorului tu. Troienii sunt capabili de a infecta calculatoarele prin intermediul
oricrei metode folosite de un virus. ntr-adevr, i viruii, i troienii sunt luai mpreun drept
malware, ntruct unele ameninri de securitate au trsturi asociate cu ambele tipuri.
3.2.2 Viruii de tip vierme (worm)
Troieni, dei diferii de un virus prin componentele lor, pot infecta computerele prin
aceleai metode ca cele de mai sus. n timp ce un virus ncearc s ruleze un cod infectat pe
computerul dvs., un troian ncearc s fac accesul unor tere pri la unele sau la toate funciile
56
computerului. Troieni sunt capabili s infecteze calculatoarele prin orice metod folosit de un
virus. ntr-adevr, viruii i troieni sunt luai mpreun ca malware, deoarece unele ameninri de
securitate au caracteristici asociate cu ambele tipuri.
Virui (viermi)
Termenul "vierme" descrie mai degrab modul de infectare i replicare a viruilor, mai
degrab dect componentele acestora. Aceast metod de infectare este unic i riscant, deci
merit propria ei categorie.
Un vierme este un program de virus capabil s infecteze un computer fr ca
utilizatorul s fac nimic (altul dect pornirea calculatorului i conectarea la Internet). Spre
deosebire de viruii obinuii care, de obicei, ncearc s se ascund n interiorul unui fiier de
virus, viermii infecteaz computerele prin folosirea vulnerabilitii reelei. Virusul tipic se
rspndete trimind spam cu propriii copii la adrese IP aleatorii. Cnd se gsete un astfel de
computer int, virusul folosete vulnerabilitatea reelei pentru a avea acces la computer i a
descrca componentele sale. Odat ce acest lucru se ntmpl, virusul utilizeaz acest computer
infectat pentru a spiona mai multe adrese IP la ntmplare, relund procesul.
Creterea exponenial este n cazul acestei chei. Viermele SQL Slammer, lansat n
ianuarie 2003, a folosit aceast metod pentru a infecta aproximativ 75.000 de computere, la
numai 10 minute dup lansarea iniial.
Cu toate acestea, termenul "vierme" acoper o gam larg de ameninri. Unele virui
s-au rspndit prin utilizarea sistemelor de securitate prin e-mail pentru a fi spamate automat
dup infectarea unui computer. Altele au inte foarte puternice. Sa descoperit c Stuxnet, un
vierme nou format, se crede de mult c a fost creat pentru a ataca programul de cercetare nuclear
iranian.
Dei se estimeaz c acest virus este infectat cu milioane de computere, ncrcarea sa
efectiv este proiectat s aib efect numai dup ce ntlnete un anumit tip de reea - tipul pe
care Iranul l utilizeaz pentru producia de uraniu. Indiferent de int, caracterul sofisticat al
virusului
Stuxnet servete ca exemplu pentru modul n care un vierme poate infecta automat
sistemele fr ca utilizatorii s aib cea mai mic idee.
Sony, de exemplu, a fost ntr-o mare problem atunci cnd experii n securitate au
descoperit c unele CD-uri muzicale Sony au inclus un rootkit care a fost capabil s ofere acces
administrativ singur la computerele Windows, s se ascund de cele mai multe scanri antivirus
i s treac date ntr-o locaie separat. Acest lucru sa ntmplat, aparent, din cauza unui copii
greite al unui plan de protecie.
57
important sau, n cele mai grave cazuri, pentru a scrie codul n sistemul de fiiere important,
fcnd imposibil eliminarea acestuia fr afectarea sistemului de operare.
Vestea bun este c rootkiturile viruilor sunt mai greu de scris dect celelalte tipuri de
malware. Cu ct mai mult un rootkit dorete s intre ntr-un sistem de operare, cu att va fi mai
greu, deoarece orice eroare de cod a virusului ar putea bloca computerul int sau poate modifica
software-ul antivirus. Acest lucru poate fi un lucru ru pentru computer, dar anuleaz ncercarea
de rootkit pentru a se ascunde de la nceput.
3.2.5 Malware-ul
Dei escrocii de mai sus sunt recunoscui ca fiind grave, cu unele caracteristici, acestea
sunt nc dificil de clasificat, deoarece securitatea pericolelor este diversificat i se schimb n
mod constant. Acesta este motivul pentru care termenul de malware este cel mai frecvent utilizat:
este termenul perfect care cuprinde tot ceea ce poate bate computerul sau poate folosi
computerul pentru a v provoca neplceri.
Acum ai aflat despre unele dintre cele mai populare ameninri de securitate, probabil
v ntrebai ce putei face n legtur cu acestea. Cel mai bun loc pentru a ncepe aceast discuie
este acela al sistemelor de operare.
58
3.3 Sigurana sistemelor de operare
3.3.1 Windows XP
Prezentat n 2001, Windows XP devenise cel mai operativ sistem de operare i n
acelai timp cel mai ludat. Acesta a fost apreciat pentru interfa simpl, care a oferit
mbuntiri, dar a fost familiar utilizatorilor de Windows 95,98 i ME. De asemenea, sa
dovedit a fi relativ redus pentru un nou sistem de operare Windows i unul care rmne la zi
capabil s ruleze pe calculatoare vechi care nu accept versiuni mai noi de Windows.
n momentul lansrii Windows XP, s-au introdus cteva mbuntiri importante de
securitate n sistemele de operare Windows anterioare. O soluie de rezolvare a problemelor de
securitate care poate provoca cu uurin dureri de cap n sistemele Windows prin utilizarea unor
lacune de reea sau a unui certificat de eroare. Securitatea Windows XP a fost consolidat odat
cu lansarea Windows XP Service Pack 2, care a introdus Centrul de securitate Windows, care
permite utilizatorilor s monitorizeze dac computerele lor au software anti-malware i au
instalat actualizrile corecte de securitate.
Cu toate acestea, Windows XP este de 10 ani i de-a lungul anilor a fost atacat de
hackeri fr sfrit. Popularitatea sistemului de operare Windows XP se confrunt cu alegerea
evident a malware-ului de a infecta ct mai multe computere posibile. n plus, Windows XP pur
i simplu nu are acces la un numr mare de mbuntiri de securitate care sunt standard n
Windows 7.
n general, Windows XP este cel mai slab sistem de operare disponibil din punct de
vedere al securitii. Are nevoie de multe mbuntiri de securitate, este bine neleas de cei
care creeaz codul malware i este adesea atacat.
3.3.2 Windows 7
Windows 7, este o perfecionare a unui sistem foarte mult criticat Windows Vista).
Windows 7 nu este la fel de uor de folosit ca XP, dar ofer o mare varietate de opiuni, inclusiv
unele legate de securitate.
De exemplu, User Account Control este o opiune nou introdus n Vista i inclus
simultan n Windows 7. La apariia UAC, a fost destul de ironic n mass-media - Apple a fcut
chiar i un anun despre el, ceea ce este ciudat avnd View c OS X funcioneaz similar i UAC
este foarte important atunci cnd vine vorba de securitate. Protejeaz computerul, asigurndu-v
c programele nu pot obine privilegii de a accesa sistemul dvs. fr permisiune. nainte de UAC,
malware-ul ar putea face acest lucru fr ca utilizatorul s tie vreodat.
59
De asemenea, Microsoft a fcut mbuntiri care mbuntesc capacitatea sistemului de
operare Windows de a transmite utilizatorilor informaii importante legate de securitate. Centrul
de securitate este acum numit Windows Action Center i se confrunt cu o performan
excelent n obinerea automat a actualizrilor importante i n notificarea utilizatorilor atunci
cnd sunt necesare anumite operaiuni. Acest lucru este crucial, deoarece problemele de
securitate cunoscute care nu sunt reparate reprezint o problem, indiferent de sistemul de
operare preferat.
Cu parere de ru, Windows 7 rmne a fi inta virusurilor din cauza popularitii sale.
Windows rmne cel mai folosit sistem de operare din lume, deci este normal s fie inta
atacurilor. Din acest motiv, utilizatorii Windows 7 se confrunt nc cu multe ameninri la
adresa securitii
3.3.3 Mac OS X
Mac OS X arat modern, dar iniial este un sistem de operare destul de vechi. n 2001 a
avul lansarea primei versiuni , este tot att de nvechit ca i Windows XP. Apple, cu toate
acestea, abordeaz actualizrile ntr-un mod complet diferit fa de Microsoft. n timp ce oamenii
de la Redmond se concentreaz de obicei pe lansri mari, aducnd un nou sistem de operare la
fiecare 5 sau 6 ani n medie, echipa Apple a actualizat OS X de opt ori de la prima lansare a
sistemului. Lansrile conin de obicei doar cteva actualizri de securitate, iar Apple i-a ctigat
reputaia pentru furnizarea unui nivel superior de securitate pentru Windows. Aceast reputaie,
totui, este o tendin de a amna o examinare mai aprofundat. Exist virui care vizeaz OS X,
iar Apple trebuie s remedieze nclcrile de securitate att de des ca i Microsoft. Un raport
fcut n 2004 al unei companii de securitate cunoscut sub numele de Secunia a constatat c anul
precedent Mac OS X a fost afectat de 36 de vulnerabiliti, cu doar 10 mai puin dect Windows
XP - cu toate acestea, un procent mai mare de vulnerabiliti OS poate fi exploatat prin Internet.
(News.techworld.com/security/1798/mac-os-x-security-myth-exposed/)
(Fiercecio.com/story/apple-releases-massive-mac-os-x-security-update/2010-11-12).
61
3.4.2 Navigatul sigur pe Internet
Navigarea pe Internet prezint ntotdeauna pericole de securitate i muli oameni uit
despre asta. Ca i n cazul e-mailurilor, se presupune adesea c vei fi perfect protejai dac
evitai s deschidei fiiere din surse necunoscute. A fi atent cnd vine vorba de descrcarea
fiierelor este, bineneles, o idee grozav, dar nu este suficient s v protejai corect calculatorul.
Cele mai multe defeciuni de securitate pe care trebuie s v facei griji exist datorit
unei probleme cu browserul dvs. sau cu un plug-in important, cum ar fi Java sau Adobe Flash.
Produsele, cum ar fi intermitentul, faciliteaz interactivitatea online, din care este dificil de
realizat, dar rezultatele complexitii cresc n gurile de securitate. Instrumentele Java, Flash,
Shockwave, ActiveX i alte instrumente au fost "patch-uri" de mai multe ori cnd au fost
detectate "erori de securitate". Aceste deficiene nu sunt neglijate - unele dintre ele pot prelua
controlul asupra unui computer prin redirecionarea utilizatorului ctre un site plin de virui.
Astfel de site-uri sunt rareori gsite n prim-planul rezultatelor cutrii Google. Acestea
sunt de obicei rspndite prin spam, mesagerie instant, i prin intermediul reelelor sociale. Cu
toate acestea, chiar i un site de ncredere poate deveni uneori un pericol de securitate pentru
computerul dvs. Viruii pot, de asemenea, s infecteze serverele i, n unele cazuri, s duc la
rspndirea acestora pe un site fr cunotinele proprietarului.
Cea mai bun modalitate de protecie mpotriva viruilor este s v asigurai c
browserul i plug-in-urile asociate sunt actualizate - o problem pe care o vom discuta mai trziu
n acest capitol.
62
reduce riscurile dac v punei obiectele de valoare ntr-un loc sigur sau pstrai draperiile trase
i punei un semn mare "pruden: cine ru" n faa casei, dar ua este nc descoperit i oricine
poate intra n casa dvs.
Sper c acest exemplu ilustreaz faptul c este esenial actualizarea software-ului. n
opinia mea, actualizarea software-ului n mod constatnt este un bun obicei pe care l putei
practica. Exist ntotdeauna posibilitatea de a numra printre nenorociii care vor fi afectai de o
"gaur de securitate" nainte de a fi descoperit i ndreptat. Cu toate acestea, majoritatea
companiilor de astzi reacioneaz rapid atunci cnd vine vorba de astfel de probleme, astfel
nct meninerea actualizrii software-ului va spori considerabil securitatea.
63
Cnd un virus este depistat, acesta este mutat de obicei n "carantin" pentru a preveni
rspndirea acestuia. Apoi, putei s-l eliminai. Anti-malware-ul este adesea incapabil s
elimine ameninrile pe care le descoper, dar securitatea rmne intact atta timp ct
ameninarea rmne n carantin.
Cele mai multe nemulumiri cu software-ul anti-malware sunt legate de noile virusuri.
Software-ul anti-malware e un element cunoscut i poate fi evitat de noile programe malware.
Din aceas cauz software-ul este actualizat foarte des - noi ameninri sunt ntotdeauna
descoperite. Acesta nu nseamn c acest soft nu este util. Totalitatea viruilor cunoscui este
totui mult mai mare ca totalitatea viruilor noi care nu sunt cunoscui.
Cu toate acestea, trebuie s fii ateni la software-ul pe care l cumprai sau descrcai.
Exist o mare diferen ntre produsele cele mai eficiente i cele mai puin eficiente, iar rata de
inovare este mare. De exemplu, Norton a fost groaznic cu civa ani n urm, dar produsele
Norton 2010 sunt excelente. Pentru informaii recente i recenzii anti-malware, consultai AV
Comparatives (http://www.av-comparatives.org/), o organizaie non-profit dedicat testelor de
produse de securitate informatic.
3.5.1 Firewall
Un numr semnificativ de ameninri grave la adresa securitii pentru calculatoare se
bazeaz pe conexiunea la Internet. S i corup hard drive-ul este foarte neplcut, dar v putei
proteja pstrnd copii de rezerv.
Dac cineva reuete s obin numrul carlului bancar sau alte informaii personale
importante, neplcerile sunt cu mult mai mari dect n cazul computerului. Acest lucru este
posibil numai dac malware-ul instalat pe computer v pune informaiile la dispoziia unei tere
pri. Datele sunt de obicei transmise n cel mai simplu mod posibil - prin Internet.
Funcia unui Firewall de protecie este de a preveni astfel de situaii. Firewall este un
software care monitorizeaz datele trimise ctre i de pe computer. Poate, ntr-un mod selectiv,
blocheaz anumite informaii sau poate (de obicei) ntrerupe conexiunea la Internet, oprind
fluxul de informaii.
Un firewall este o parte important a securitii Internetului. Att de important este
faptul c n Windows este implicit. Fr aceasta, malware-ul ar putea s transmit date n mod
liber, iar viruii trimii prin trimiterea copiilor ctre adresele I.P la ntmplare ar fi mai uor s
acceseze computerul.
Deoarece Windows are un Firewall de protecie implicit, nu trebuie s cumprai altul.
Exist multe opiuni care nu cost nimic - nu numai pentru Windows, ci i pentru sistemele de
operare OS X i Linux. Produsele cunoscute ca Internet Security Suites includ de obicei un
Firewall de protecie ca parte a pachetului.
Pstrarea firewall-ului unui computer este foarte recomandat. Este adesea capabil s
reduc daunele cauzate de virui, chiar dac software-ul anti-malware nu reuete s detecteze
sau s opreasc o ameninare.
Ultimul mod de protecie pe n dreptul cruia ne oprim este cunoscut sub cteva nume.
Trend Micro utilizeaz termenul Maximum Security, n timp ce Symantec l numete Norton
360. Dac produsul de securitate al companiei nu are opiuni de monitorizare anti-phishing sau
de reea, de obicei include cel de-al treilea element de rezisten. Aceste produse au opiuni
avansate de backup concepute pentru a minimiza daunele cauzate de un virus care atac sistemul
dvs. de operare.
Deci, ce ar trebui s alegi? Este greu s obii un verdict final, deoarece opiunile
acestor produse variaz de la companie la companie. Cu toate acestea, utilizatorul obinuit este
probabil cel mai ajutat de pachetul de securitate. Dac nu suntei sigur c opiunile sunt un
produs al unei anumite companii, verificai-le din site. Vei gsi de obicei un tabel care conine
toate opiunile care sunt sau nu pentru fiecare produs.
Exist, de asemenea, firewall-uri gratuite. Zone Alarm a fost de mult vreme popular i,
dei i-a pierdut prestigiul , nc este o bun opiune .Mai sunt i alte opiuni disponibile de la
companii precum PC Tools, Comodo i altele. Urmrirea phishingului i a reelei este, de
asemenea, disponibil gratuit.
Putei obine protecia potrivit pentru computerul dvs. gratuit, iar beneficiile acestuia
sunt nelese de sine - avei mai muli bani pentru a cumpra alte lucruri. Cu toate acestea,
punerea la dispoziie a soluiilor antivirus, firewall i de monitorizare a reelei nu este pentru
toat lumea. Software-ul gratuit de securitate este ns, uneori, mai puin cuprinztor dect
opiunile rentabile - ntr-adevr, acest lucru este intenionat, deoarece unele companii care au
opiuni gratuite ofer i upgrade-uri pentru o tax. Avast! Antivirusul gratuit, de exemplu, poate
detecta i elimina virui, ns versiunea Pro pune la dispoziie o protecie mai bun mpotriva
ameninrilor.
66
3.6.2 Pachetul gratuit de securitate ideal
Dup cum am menionat mai devreme, se recomand s caui cele mai recente informaii
despre eficacitatea anti-malware a unui produs. PCMag.com i CNET au dou exemple de site-
uri care ofer comentarii utile asupra acestui subiect.
Informaiile referitoare la software-ul de securitate gratis sunt mai greu de gsit i faptul
c nu conteaz afecteaz calitatea opiunilor disponibile de a alege. Sunt cteva pe care nu le-a
recomanda niciodat nimnui. Trebuie s fii ateni la opiunile gsite prin Google sau cu ajutorul
altor motoare de cutare , deoarece acestea nu sunt ntotdeauna programe legitime.
(Http://download.cnet.com/ZoneAlarm-Free-Firewall/3000-10435_4-
10039884.html?tag=mncol): Acum un deceniu, de la debutul su, ZoneAlarm a fost foarte
popular. n acel moment, utilizatorii nu tiu ce este sau de ce ar avea nevoie de un firewall. De
atunci, au existat multe firewall-uri gratuite, dar ZoneAlarm este printre cele mai utilizate. Este
un firewall de protecie puternic i uor de neles. Protecia avansat pe care o ofer este foarte
important - acest lucru va mpiedica trimiterea informaiilor despre virusi unei tere pri n
cazul n care v afecteaz computerul. ZoneAlarm include de asemenea o bara de instrumente
anti-phishing.
(Http: / / www.bitdefender.com/PRODUCT-2237-ro--BitDefender-Anti-Fhishing-Free-
Edition.html#more_features): Dac nu v place prea mult bara de instrumente anti-phishing din
ZoneAlarm, putei ncerca Din opiunea BitDefender. Aceast bara de instrumente, pentru
Internet Explorer i Firefox, ofer protecie n timp real mpotriva site-urilor web care ar putea
ncerca s v fure informaiile personale. Ofer protecie simultan mpotriva trimiterilor trimise
prin MSN sau Yahoo.
67
Capitolul 4
4.1 Limbajul C#
Dei Java a rezolvat cu succes portabilitatea, exist cteva probleme care lipsesc. Una
dintre acestea este interoperabilitatea diferitelor limbaje sau programarea n limbaj mixt.
Interoperabilitatea diferitelor limbaje este esenial n dezvoltarea software-urilor la scar larg.
Ca parte a strategiei .NET dezvoltat de Microsoft, C # a fost creat la sfritul anilor
1990. C # este direct legat de C, C ++ i Java. Bunicul limbii C # este C. De la C, C # motenete
sintaxa, multe dintre cuvintele cheie i operatorii. C # se construiete i peste modelul obiect
definit n C ++. Relaia dintre C # i Java este mai complicat. Java este derivat din C i C ++.
Ca Java, C # a fost proiectat pentru a produce cod portabil. Limba C # nu este derivat din Java.
ntre C # i Java exist o relaie similar cu cea a "veriilor", deriv de la acelai strmo, dar se
remarc prin multe caracteristici importante.
C # are cteva caracteristici inovatoare, cel mai important dintre acestea fiind suportul
integrat pentru componentele software. Caracteristicile caracteristicilor C # care implementeaz
elemente directe care alctuiesc componentele software, cum ar fi proprieti, metode i
evenimente. Poate c cea mai important caracteristic a lui C # este abilitatea de a lucra ntr-un
mediu de limbaj mixt.
POO a luat cele mai bune idei de la programarea structurat, combinndu-le cu noi
concepte. Ca rezultatul a aprut un mod diferit de organizare a unui program. De fapt, programul
poate fi organizat n dou moduri: n jurul codului (modul de operare) sau n jurul datelor
(controlul accesului la cod). Toate POO au patru caracteristici comune: ncapsulare,
polimorfism, motenire i reutilizare.
4.3.1 Incapsularea
Unitatea de baz de ncapsulare este clasa. Clasa arat datele i codul care ruleaz cu
datele. O clas definete forma unui obiect. Sau, cu alte cuvinte, o clas este o matrice, iar un
obiect este un exemplu al clasei.
4.3.2 Polimorfismul
Polimorfismul este calitatea care permite interfeei s aib acces la un grup generic de
aciuni. Termenul deriv dintr - un cuvnt grecesc cu semnificaia "cu mai multe forme"De
exemplu, s presupunem c avem nevoie de o rutin care ar returna aria unui triunghi, unui cerc
sau unui trapez. Deoarece ariile celor trei figure geometrice sunt calculate diferit, rutina trebuie
s fie adaptat la datele pe care le are s face diferen ntre felul de figuri i s afieze rezultatul
corect.
Conceptul de polimorfism este exprimat de expresia "o interfa mai multe metode".
4.3.3 Motenirea
Motenirea este procesul prin care un obiect poate dobndi caracteristicile altui
obiect. Analogia cu conceptul de animal este elocios. De exemplu, noi o considerm
reptile. Acestea sunt toate caracteristicile unui animal, dar exist i o alt trstur,
are snge rece. Luai n considerare un arpe. Aceasta este o reptil lung i subire
i nu are picioare. erpi au toate caracteristicile unei reptile, dar dein i caracteristici proprii.
Deci arpele motenete caracteristicile unei reptile. O reptil motenete caracterul unui animal.
Deci, mecanismul de motenire este cel cu care face posibil ca un obiect s fie un caz mai
general.
69
4.3.4 Reutilizarea
Atunci cnd o clas este creat, ea poate fi utilizat pentru a crea o mulime de obiecte.
Folosind motenirea i ncapsularea, clasa poate fi refolosit. Nu mai trebuie s testm codul, ci
s-l utilizm corect.
Programul de mai jos creaza o
Crearea, compilarea si executia aplicatie Windows.
programelor C#. Exemple; using System;
Sa consideram urmatorul using System.Windows.Forms;
program C# simplu: public class MyForm : Form
/* Acesta este un program simplu in {
C# private TextBox txtEnter;
Denumiti programul: Example1.cs */ private Label lblDisplay;
using System; private Button btnOk;
class Example1 public MyForm()
{ {
//orice program in C# contine metoda this.txtEnter = new TextBox();
Main() this.lblDisplay = new Label();
public static void Main() this.btnOk = new Button();
{ this.Text = "Prima mea aplicatie
Console.WriteLine("This is my first Windows!";
C# program"); this.Size=new
} System.Drawing.Size(320,
} 300);
Exista doua moduri de a edita, // txtEnter 1
compila si rula un program in C#. In this.txtEnter.Location = new
primul rand se poate utiliza compilatorul System.Drawing.Point(16, 32);
linie de comanda csc.exe. A doua this.txtEnter.Size = new
posibilitate este de a utiliza utilizati System.Drawing.Size(264, 20);
mediul Visual Studio .NET. In primul // lblDisplay
caz trebuie parcursi urmatorii pasi: this.lblDisplay.Location = new
introduceti textul programului cu ajutorul System.Drawing.Point(16, 72);
unui editor de texte si salvati fisierul this.lblDisplay.Size = new
utilizand extensia cs, spre exemplu System.Drawing.Size(264, 128);
Example1.cs; apoi compilati programul // btnOk
precizand numele fisierului in linia de this.btnOk.Location = new
comanda (C:\>csc Example1.cs); in final System.Drawing.Point(88, 224);
rulati programul in linia de comanda this.btnOk.Text = "OK";
(C:\>Example). this.btnOk.Click +=new
In cel de-al doilea caz creati un System.EventHandler(this.btnOK_Cl
nou proiect C# selectand: ick);
File|New|Project, apoi Visual C# // MyForm
Projects|Empty Project. Dupa ce ati creat this.Controls.AddRange(new
proiectul, executati click dreapta pe Control[] {
fereastra Solution. Utilizand meniul aparut this.txtEnter, this.lblDisplay,
selectati Add apoi Add New Item | this.btnOk});
Local Project Items| C# Code File. }
Introduceti textul, salvati proiectul, static void Main ()
compilati proiectul selectand Build si in {
fine rulati programul selectand Start Without Application.Run(new MyForm());
Debugging din meniu Debug. }
70
private void btnOK_Click(object int count=2;
sender, string l;
Console.WriteLine("Introduceti
System.EventArgs e) numarul natural n");
{ l=Console.ReadLine();
lblDisplay.Text = txtEnter.Text + n = int.Parse(l);
"\n" + Console.Write("{0}=", n);
lblDisplay.Text; while (count <= n)
} {
} while (n % count == 0)
Programul de mai jos descompune {
un numar natural in factori primi n = n / count;
using System; Console.Write("{0} ", count);
class Descompunere }
{ count++;
}
}
public static void Main() }
{
int n;
4.3.5 Tipuri de date si operatori
Tipuri valorice in C#
Tipurile de date si operatorii stau la baza oricarui limbaj de programare. C# ofera
o gama larga de tipuri de date si operatori. Vom incepe prin examinarea tipurilor de date
fundamentale in C#. Inainte de aceasta, amintim ca limbajul este puternic tipizat. Aceasta
inseamna ca pentru toate operatiile, compilatorul realizeaza verificari asupra compatibilitatii
tipurilor.
Limbajul C# include doua categorii generale de tipuri predefinite: tipuri valorice si
tipuri referinta. Tipurile referinta din C# sunt definite de clase. Studiul acestora il vom
face atunci cand vom discuta despre clase. La baza limbajului C# stau 13 tipuri valorice
numite si tipuri simple. Aceasta datorita faptului ca exista o relatie directa intre tipurile
de date C# si tipurile de date .NET.
Din ratiuni de portablitate, in C#, fiecare dintre tipurile valorice are domeniu fix
de valori. Daca de exemplu in limbajul C, o varabila de tip int este reprezentata pe 2 octeti sau 4
octeti, in functie de platforma utilizata, in C# unei variabile de tip int, calculatorul ii aloca 4
octeti, indiferent de mediul de executie.
71
Tabel 4 conversie explicita (un cast).
Pentru corectarea codului din exemplul
anterior trebuie sa rescriem codul in forma:
char ch=(char) 77;
Intregi Celelalte tipuri intregi sunt
utilizate pentru calcule numerice. Sunt
In C# sunt definite noua tipuri definite atat versiuni cu semn cat si fara
intregi: char, byte, sbyte, short, ushort, semn. La fel ca in limbajul C, diferenta
int, uint, long si ulong. intre intregii cu semn si cei fara semn
Tipul char. Caracterele nu sunt este data de interpretarea bitului cel mai
reprezentate pe 8 biti ca in alte limbaje semnificativ. Daca este specificat un intreg
(spre exemplu C sau C++ ). In C# se cu semn, atunci numarul este pozitiv daca
utilizeaza modelul Unicode. Acesta bitul de semn este 0 si respectiv negativ daca
defineste un set de caractere care poate bitul de semn are valoarea 1. Sa consideram
repezenta caracterele din toate limbile de cateva exemple:
pe Pamant. Setul de caractere ASCII pe sbyte: 00000001 (nr. 1); 01111111 (nr.
8 biti, cuprins intre 0 si 127 este o 127); 10000000 (nr. -128); 11111111 (nr. -
submultime a modelului Unicode. Putem 1);
atribui o valoare de tip caracter daca byte: 00000001 (nr. 1); 01111111 (nr.
includem caracterul intre apostrofuri simple. 127); 10000000 (nr. 128); 11111111 (nr.
Exemplu: char ch=M ; Desi char este de 255);
tip intreg, nu poate fi amestecat la Exemple: 1. Conversie implicita. 2.
intamplare cu valori intregi deoarece nu Conversie Explicita
se efectueaza conversii automate intre using System;
char si celelalte tipuri intregi. Codul de class Demo
mai jos este incorect: char ch=77; { public static void Main()
Motivul pentru care instructiunea nu { char sourceVar='a';
functioneaza este ca 77 este o valoare ushort destinationVar;
intreaga si nu este convertita automat la destinationVar = sourceVar;
tipul char. Pentru a converti o valoare Console.WriteLine("destinationVar
intreaga intr-un char vom realiza o val:{0}", destinationVar);
72
} Tipul bool reprezinta valorile de
} adevar true sau false. Orice variabila de tip
using System; bool va lua una dintre aceste valori. Nu este
class Demo definita o regula de conversie intre tipul
{ public static void Main() bool si valori intregi.
{ ushort sourceVar = 97; Cateva optiuni de afisare
char destinationVar; Sa consideram instructiunea:
destinationVar = (char)sourceVar; Console.WriteLine(Valoarea lui 10/3:
Console.WriteLine("destinationVar +10.0/3.0). Aceasta afiseaza rezultatul:
val:{0}", destinationVar); Valoarea lui 10/3: 3.33333333333.
} Afisarea unui numar mare de zecimale este
} inadecvata de cele mai multe ori. De
4.3.6 Tipuri in virgula mobile exemplu, in calcule financiare se afiseaza
doua zecimale. Pentru a controla formatarea
Tipurile in virgula mobila se datelor numerice, utilizam urmatoarea
utilizeaza pentru specificarea numerelor forma a metodei WriteLine():
care au parte Console.WriteLine(sir de formatare, arg0,
fractionara. Aceste tipuri sunt: float si arg1,, argN); Sirul de formatare contine
double. Tipul float poate reprezenta in doua elemente: caractere afisabile si
mod preci specificatori de format. Specificatorii de
pana la 7 pozitii zecimale, in timp ce format au forma generala {Nr_arg,
tipul double reprezinta 15 sau 16 width:fmt #}. Nr_arg precizeaza numarul
zecimale exacte. argumenului care trebuie afisat. Latimea
Dintre cele doua, double este cel mai minima este precizata de valoarea width ,
intrebuintat. iar formatul este specificat de fmt.
4.3.7 Tipul decimal De asemenea, simbolul # marcheaza
Tipul decimal nu este definit in numarul minim de pozitii numerice. Width,
C, C++ si Java. Acest tip utilizeaza 128 fmt
biti de si # sunt optionale. Pentru afisarea valorilor
memorie pentru a reprezenta valori numerice se pot utiliza urmatorii formati fmt
cuprinse intre 1.0x1028 si 7.9x1028 .
Este destinat
calculelor monetare, putand reprezenta in
mod precis 28 de pozitii zecimale. Nu
exista
conversii automate intre tipurile decimal si
float sau decimal si double. Exemplu:
using System;
class FolosDecimal
{
public static void Main()
{ decimal sold, dobanda;
Console.WriteLine("Noul sold este
{0} EUR",sold);
}
}
Rezultat: Noul sold este 10400.520
EUR
Tipul bool
Fig.4.3.5
Partile componente ale unei aplicatii C#
Un limbaj de programare este compus dintr-o serie de cuvinte cheie care au
73
semnificatii speciale. Un program utilizeaza aceste cuvinte impreuna cu alte cuvinte
aditionale si simboluri intr-o forma organizata. Un program C# include urmatoarele: spatii,
cuvinte cheie C#, literali si identificatori.
Fig.4.3.6
4.3.8 Literali
74
acesta este un string). Pe langa trebuie declalarate inainte de a fi folosite,
caracterele obisnuite, un literal de tip de asemenea tipul variabilei nu poate fi
string poate contine mai multe secvente modificat pe parcursul duratei sale de
escape. viata. Tipul variabilei determina operatiile
De asemenea, in C# se pot utiliza permise asupra variabilei. Dupa declararea
literalii copie la indigo. Un astfel de variabilei, aceasta trebuie initializata.
program incepe cu @, urmat de un sir Initializarea unei variabile poate fi facuta
de ghilimele. Se pot include astfel printr-o instructiune de atribuire:
caractere tab, linie noua, etc fara a utiliza nume_var=val; unde val reprezinta
secvente escape. Exista o singura valoarea atribuita variabilei nume_var
exceptie. Pentru a obtine ghilimelele (), (Exemple: int i=10; bool f=true; foat
trebuie utilizate doua caractere unul dupa fn=12.4f; long o=126L). De asemenea
altul (). initialzarea poate fi facuta dinamic,
utilizand orice expresie valida la momentul
using System; in care variabila este initializata.
class StrDemo using System;
{ class Initdinamica
public static void Main() {
{ public static void Main()
Console.WriteLine("Prima linie {
\nAdoua linie"); double raza, inaltime, volum;
Console.WriteLine("a \t b \t c \nd \t double Pi=4*Math.Atan(1);
e\t f \t"); raza = 4;
} inaltime = 2;
} volum = Pi * raza * raza * inaltime;
using System; Console.WriteLine("Valoarea lui pi
class Indigo este: {0:#.####}", Pi);
{ Console.WriteLine("Volumul
public static void Main() cilindrului este:{0:g}", volum);
{ }
Console.WriteLine(@"Acesta este }
un literal Domeniul de valabilitate si durata de
copie la indigo care Viata La fel ca alte limbaje de
ocupa trei linii"); programare, C# permite declararea unei
Console.WriteLine(@"Alt exemplu variabile in cadrul unui bloc. Un bloc
abc incepe cu o acolada deschisa si se incheie
d e f"); cu o acolada inchisa. Un bloc delimiteaza
Console.WriteLine(@"Putem un spatiu de declarare numit si domeniu
spune:""hello! """); de valabilitate.
} De asemenea, acesta determina si
} durata de viata a acelor variabile. O
variabla declarata in cadrul unui bloc isi
Variabile pierde valoarea cand blocul este folosit.
Cele mai importate domenii de
O variabila reprezinta o locatie de valabilitate sunt acelea definite de o clasa si
memorie cu nume, careia ii poate fi de o metoda.
atribita o valoare. Valoarea unei variabile In cadrul unui bloc variabilele pot
poate fi modificata pe parcursul fi declarate in orice punct, dar sunt
programului. Variabilele sunt declarate valide numai dupa declaratie. Un alt aspect
printr-o instructiune de forma: tip nume_var; interesant care diferentiaza limbajul C# de
unde tip reprezinta tipul variabilei, iar celelalte limbaje este urmatorul: nici o
nume_var numele variabilei. Variabilele variabila din interiorul unui domeniu
75
interior nu poate avea acelasi nume cu o Console.WriteLine("Valoarea
variabila declarata intr-un domeniu care il variabilei i este: {0}", i);
contine. }
using System; Console.WriteLine("Ultima valoare a
class NestVar variabilei i este: {0}", i);
{ }
public static void Main() }
{
int x = 10; Numele unei variabile
if (x == 10) Numele unei variabile trebuie sa
{ satisfaca urmatoarele reguli:
int y = 20; - primul caracter al unei variabile
Console.WriteLine("x si y: " + x + " trebuie sa fie o litera, caracterul underscore
repectiv " + y); _ sau simbolul at @ ;
} -urmatoarele caractere pot fi litere,
Console.WriteLine("x este: " + x); numere sau caractere underscore;
//y=20; -nu pot fi utilizate cuvinte cheie drept
} identificatori.
} De-a lungul timpului au fost utilizate
//Programul de mai jos nu poate fi diverese conventii pentru numirea
compilat variabilelor.In prezent, platforma .NET
using System; utilizeaza urmatoarele conventii: PascalCase
class NestVar si camelCase, unde Case ar trebui sa explice
{ in ce scop este utilizata variabila. Ambele
public static void Main() conventii specifica utilizarea unor cuvinte
{ multiple, scrise cu litere mici cu exceptia
int i, j; primei litere care este mare. Pentru
j=10; camelCase exista o regula suplimentara, si
for (i = 0; i < 1; i++) anume primul cuvant este scris cu litera
{ mica.
int j=1; Exemple:
j = j + 1; camelCase: age, firstName,
Console.WriteLine("variabila din placeOfBirth
interiorul blocului PascalCase: Age, FirstName,
este: {0}", j); PlaceOfBirth
} Pentru variabilele simple se
Console.WriteLine("variabila din utilizeaza camelCase.
exteriorul blocului Pentru spatii de nume, clase, metode
este: {0}", j); se utilizeaza PascalCase.
}
} 4.3.9 Operatori
Exemplu: Programul de mai jos nu Un operator reprezinta un simbol
poate fi compilat care determina compilatorul sa realizeze
using System; o anumita operatie matematica sau logica.
class Demo Limbajul C# ofera patru categorii de
{ operatori: aritmetici, pe biti, relationali si
public static void Main() logici.
{ Operatori aritmetici
int i;
for (int j=1; j<10; j++) Limbajul C# defineste urmatorii
{ operatori aritmetici: + (adunare), -
i=j; (scadere), * (inmultire), / (impartire), %
76
(rest sau operatorul modulo), ++ cu cei logici. Rezultatele intoarse de
(incrementare), --(decrementare). operatorii relationali si logici sunt de tip
Atunci cand se aplica operatorul / bool.
asupra unor intregi, restul este trunchiat, Operatorii relationali sunt
de exemplu: 14/3 este egal cu 4. urmatorii: == (egal cu), != (diferit de), >
O diferenta fata de C si C++ este (mai mare decat), < (mai mic decat), >=
faptul ca operatorul modulo se poate (mai mare sau egal cu), <= (mai mic sau
aplica atat tipurilor intregi cat si celor in egal cu).
virgula mobila (Ex: 14.0 % 3.0=2, Operatorii logici sunt: & (si), |
14.2 %3.0=2.2, 14.0%3.1=1.6. (sau), ^ (sau exclusiv), || (sau
Operatorii unari de incrementare si scurtcircuitat), && (si scurtcircuitat), !
decrementare functioneaza la fel ca in C. (non).
Acestia sunt: x++ (forma postfixata), ++x In cazul operatorilor relationali
(forma prefixata), x-- (forma postfixata), <,>,<=,>= operanzii trebuie sa apartina
--x (forma prefixata) tipurilor pe care este definita o relatie de
using System; ordine.
class Moddemo In cazul operatorilor logici,
{ operanzii trebuie sa fie de tip bool. In
public static void Main() tabelul de mai jos sunt precizate
{ rezultatele opearatiilor logice. S-a folosit
int cat, rest; conventia: 0=false si 1=true.
double doubleCat, doubleRest;
cat = 14 / 3; p q p&q p|q p^q !p
rest = 14 % 3; 0 0 0 0 0 1
doubleCat = 14.0 / 3.0; 1 0 0 1 1 0
doubleRest = 14.0 % 3.0; 0 1 0 1 1 1
Console.WriteLine("14=3*{0}+{1}" 1 1 1 1 0 0
, cat, rest);
Console.WriteLine("14/3={0}",doub Singura diferenta dintre operatorii &
leCat); si | si respectiv operatorii scurtcircuitati &&
Console.WriteLine("14.0 % si || este faptul ca operatorii obisnuiti
3.0={0}", doubleRest); evalueaza intodeauna ambii operanzi in
} timp ce vaiantele scurtcircuitate evalueaza
} al doilea operand doar daca este necesar.
X=10; y=++X; //y=11 Exemplu:
X=10; y=X++; //y=10 using System;
using System; class Scurtcirc
class Moddemo {
{ public static void Main() public static void Main()
{ double doubleCat; {
doubleCat = 14 / 3; int n, d;
Console.WriteLine("14/3={0:.##}", n = 10;
doubleCat); d = 2;
} if ((d !=0) && ((n%d)==0))
} Console.WriteLine(d +" este divizor
Operatori relationali si logici a lui " +n);
Operatorii relationali se refera la d = 0;
relatiile de ordine care pot exista intre if ((d != 0) && ((n % d) == 0))
doua valori, iar operatorii logici Console.WriteLine(d + " este divizor
desemneaza modalitatile in care se pot a lui " + n);
asocia valorile de adevar true si false. }
Operatorii relationali se utilizeaza deseori }
77
conversie automata, in schimb double in
Operatori pe biti long nu se poate realiza automat).
Operatorii pe biti realizeaza operatii De asemenea nu exista conversii
asupra asupra unuia sau mai multor biti automate intre decimal si double sau
dintr-o valoare. Operatorii pe biti sunt decimal si float si nici intre tipurile
urmatorii: & (si pe biti), | (sau pe biti), ^ (sau numerice si bool.
exclusiv pe biti), ~ (complementare pe biti), Conversii explicite
>>(deplasare pe biti la dreapta), In multe situatii (daca exista vreo
<<(deplasare pe biti la stanga. legatura intre tipul sursa si tipul destinatie)
Exemple: se pot realiza conversii explicite de tip,
3|4=7; 5&7=5, 4^4=0, ~2=-3, utilizand un cast. Un cast este o directiva
10>>1=5, 10<<1=20. catre compilator de a converti un anumit tip
Precedenta operatorilor in altul. Forma generala este: (tip_tinta)
1 Primary operators () . [ ] ++ x -- x expr;
2 Unary + - ! ~ Exemple: double x,y; int z; z=
3 Multiplicative * / % (int) (x/y); int i=230; byte b; ... b=(byte)i;
4 Additive + -5 Shift << >> Insa de fiecare data, responsabilitatea
6 Relational < > <= >= este cea a programatorului daca rezultatul
7 Equality == != obtinut este cel convenabil. Pentru a
8 Logical AND & controla rezultatul se pot utiliza comenzile:
9 Logical XOR ^ checked (expresie) ; sau unchecked
10 Logical OR | (expresie)
11 Conditional AND && Exemplu: Conversii explicite
12 Conditional OR || using System;
13 Conditional ?: class Demo
14 Assignment = *= /= % = += -= <<= {
>>= &= ^= |= public static void Main()
15 Increment and decrement x++ x {
byte destinationVar;
Conversia tipurilor de date int sourceVar = 257;
O practica frecventa in programare o destinationVar = (byte)sourceVar;
reprezinta atribuirea valorii unei variabile de //destinationVar =
un anumit tip unei alte variabile avand tip checked((byte)sourceVar);
diferit. Console.WriteLine("sourceVar val:
Exemplu: int i=10; float f; f=i; {0}", sourceVar);
Conversii implicite Console.WriteLine("destinationVar
Daca in atribuire sunt implicate tipuri val: {0}", destinationVar);
compatibile atunci valoarea din partea }
dreapta este convertita automat la tipul din }
partea stanga. Atunci cand un tip de date
este atribuit unui alt tip de variabila, se Studiul expresiilor
efectueaza o conversie implicita (automata) O expresie este o combinatie valida
de tip daca: cele doua tipuri sunt compatibile de literali, identificatori, operatori.
si tipul destinatie este mai cuprinzator decat In cadrul unei expresii este posibil sa
tipul sursa. Daca cele doua conditii sunt amestecam doua sau mai multe tipuri de
indeplinite atunci are loc o conversie prin date atat timp cat acestea sunt compatibile
largire. (Ex: long in double se face prin intre ele. Conversiile se realizeaza utilizand
regulile de de promovare a tipurilor din C#.
Iata algoritmul definit de aceste reguli pentru operatii binare:
Daca un operand este decimal atunci celalalt este promovat la decimal (cu exceptia
cazului in care este de tipul double sau float, caz in care apare o eroare)
78
Altfel daca un operand este double atunci celalalt este promovat la double.
Altfel daca un operand este float atunci celalalt este promovat la float.
Altfel daca un operand este ulong atunci celalalt este promovat la ulong, numai daca nu
este de tip sbyte, short, int sau long, caz in care apare o eroare.
Altfel daca un operand este long atunci celalalt este promovat la long.
Altfel daca un operand este uint, iar al doilea este de tip sbyte, short sau int, ambii sunt
promovati la long.
Altfel daca un operand este uint atunci celalalt este promovat la uint.
Altfel ambii operanzi sunt promovati la int.
Observatie: Rezultatul unei expresii nu poate fi un tip inferior lui int
79
Capitolul 5. Aplicaia practic.
Dup executarea programului utilizatorul poate crea o inregistrare nou sau poate
deschide una deja existent cu condiia c cunoate loginul i parola bazei de date existente.
80
5.3 Adugarea unei inregistrri noi .
Fereastra de lucru e mprit n dou pri : partea din stnga reprezint un registru cu
categorii structurate de utilizator. Ele pot fi terse, adugate sau redenumite. Partea dreapt este
pentru vizualizarea inregistrrilor din fiecare categorie.
n fig. de mai sus utilizatorul adaug o inregistrare nou. Utilizatorul trebuie s introduc
un titlu scurt, parola i confirmarea ei , i n caz de necessitate i o descriere scurt.
Dup ce utilizatorul a adugat sau a modificat una existent urmeaz salvarea rezultatelor
n fiierul codificat. Cum realizm aces pas important este reprezentat in img de mai sus . La fel
putem folosi combinaiile de taste : (Ctrl +N ) petru a crea o inregistrare nou, (Ctrl + O) pentru
a deschide o intregistrare i (Ctrl +S) pentru a salva modificrile realizate.
Pentru a salva nregistrarea este necesar s alegem calea unde s salvm informaia
codificat i denumirea fiierului. Fiierul este codificat cu ajutorul algoritmului de codificare
DES i MD-5.
82
5.7 Deschiderea unei inregitrri existente.
Pentru a deschide o nregistrare deja existent este nevoie sa indicm calea ctre fiier , i
introducea parolei . Dup care utilizatorul poate executa peraiunile necesare.
83
Literatur
1. Limbajul C# PhD. Lucian Sasu
2. Introducere n Criptografie Funcii Criptografice, Fundamente Matematice i
Computaionale Bogdan Groza
3. Criptografia - Victor Udrinschi
4. Hotrrea Governului RM privind aprobarea Cerinelor fa de asigurarea securitii
datelor cu character personal la prelucrarea n cadrul sistemelor informaionale de date cu
caracter personal. Nr.1123 din 14 decembrie 2010. n Monitorul Oficial al RM ,
24.12.2010. nr.254-256;
5. Information technology- Biometric data interchange formats Part 1: Framework,
ISO/IEC 19794-1,2011;
6. Information technology- JPEG 2000 image coding system Part 1: Core coding system,
ISO/IEC 15444-1,2004;
7. Legea privind protecia datelor cu caracter personal. Nr 133din 08 iulie 2011. n
Monitorul Oficial al RM , 14.11.2011, nr.170-175;
Web Resurse
http://www.weblibrary.biz
http://www.msdn.microsoft.com
http://ro.wikipedia.org
http://www.knigka.info
http://www.securitatea-informatiilor.ro/solutii-de-securitate-it/algoritmul-de-criptografie-
des/
http://codare-date.cpf.ro/
84
Concluzie
n timpul execuiei aplicaiei errori critice nu au fost de depistate. Pentru rularea aplicaiei
este necesar de instalat Microsoft.NET Framework. Putem descrca acest platform accesnd
siteul oficial Microsoft n seciunea Downloands
https://www.microsoft.com/ru-RU/download/details.aspx?id=48130
85
Aplicaia
Cod Surs:
AssemblyInfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
//
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// Version information for an assembly consists of the following four values: // Major
Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers g by
using the '*' as shown below:
[assembly: AssemblyVersion("1.0.")]
//
86
// In order to sign your assembly you must specify a key to use. Refer to the // Microsoft
.NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
// (*) KeyName refers to a key that has been installed in the Crypto Service // Provider
(CSP) on your machine. KeyFile refers to a file which contains
// a key. // (*) If the KeyFile and the KeyName values are both specified, the // following
processing occurs:
// (1) If the KeyName can be found in the CSP, that key is used.
// (2) If the KeyName does not exist and the KeyFile does exist, the key
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
Classes.cs
using System;
using System.IO;
87
using System.Collections;
using System.Runtime.Serialization;
using System.Security.Cryptography;
using System.Runtime.Serialization.Formatters.Binary;
namespace PwdStore
[ Serializable]
class Storage
public Storage()
{ get
return folders;
get {
88
return fileName;
set {
fileName = value;}
get
89