Documente Academic
Documente Profesional
Documente Cultură
FACULTATEA DE DREPT
INFORMATICĂ JURIDICĂ
1
CUPRINS
2
1.NOŢIUNI INTRODUCTIVE
3
- starea sistemului;
- scopul (obiectivul) :reprezintă raţiunea sa de existenţă.
Sistemele pot fi de două tipuri:
- închise (nu permit schimb de informaţii);
- deschise (schimb de informaţii cu mediul).
Proprietăţile sistemului sunt:
- statice (invariante in timp);
- dinamice (dependente de timp).
Sistemul informaţional are reguli prin care determină ce date sunt acceptate, cum
sunt prelucrate aceste date in vederea transformării lor în informaţii, ce informaţii vor fi raportate şi
in ce format. Dacă procesul de transformare a datelor în informaţii este realizat de un program de
aplicaţie vom avea un sistem informatic inclus in cadrul sistemului informaţional.
Conceptul de dată formează elementul de bază al sistemului informaţional. Datele sunt
memorate şi intreţinute de către procese care crează, modifică şi sterg aceste date.
Sistemului de control (Management System / Control System) ii corespunde cel mai inalt
nivel de decizie/comandă.
Sistemul informaţional poate fi definit ca un ansamblu tehnico-organizatoric de proceduri de
constatare, consemnare, culegere, verificare, transmitere, stocare şi prelucrare a datelor în scopul
satisfacerii cerinţelor informaţionale necesare conducerii in procesul de elaborare a deciziilor.
Arhitectura sistemelor informatice este construită pe baza a trei elemente:
- modelul datelor - mulţimea formală de reguli care specifică cum sunt reprezentate datele şi o
mulţime de operatori pentru manipularea acestora;
- baza informaţională - reprezentată de un sistem de stocare a datelor al cărui scop este de a
intreţine datele şi a le face disponibile
o centralizată – baza de date memorată pe un calculator;
o distribuita – colecţiile care compun baza de date sunt fragmentate
- prelucrarea datelor – asigurată de programe de aplicaţie activate de utilizatori finali.
Sisteme de calcul, Primele sisteme de calcul au fost:
o Mark I (1939-1944);
o Eniac (1943-1946);
o Edvac sau Eniac I (1950).
In 1945, matematicianul John von Neumann a stabilit structura logică de bază a
calculatorului cu program memorat (virtual, această structura se regăseşte si astăzi), şi anume:
4
Intrare Memorie Iesire
Unitate
de
calcul
Unitate de
comanda
Calculatoarele nu sunt inteligente şi nu pot face altceva decât ceea ce au fost programate.
Un sistem de calcul este compus din două elemente fundamentale:
I. Hardware – părţile fizice ale calculatorului;
II. Software – face un calculator capabil să stocheze, să prelucreze şi să regăsească
informaţii
a. Programe de sistem – gestionează şi controlează funcţionarea calculatorului
(S.O.);
b. Programe de aplicaţie – rezolvă probleme pentru utilizatori.
5
Familia calculatoarelor personale leagă impreună toate circuitele interne de control printr-un
circuit, si anume, magistrală (BUS). O magistrală este o cale comună pe placa de bază la care sunt
ataşate toate componentele calculatorului. Magistrala este divizata in patru parţi:
- linii de alimentare electrică (power lines);
- linii de control (control bus);
- linii de adrese (adress bus);
- linii de date (data bus).
Sistemul informatic este definit ca fiind un ansamblu de elemente intercorelate funcţional, în
scopul automatizării obţinerii informaţiilor necesare conducerii în procesul de fundamentare şi
elaborare a deciziilor.
Sistemul informatic este parte componentă a sistemului informaţional şi are ca obiect de
activitate procesul de culegere, verificare, transformare şi prelucrare automată a datelor.
SISTEMUL INFORMAŢIONAL
SISTEMUL DE MANAGEMENT
SISTEMUL
INFORMATIC
SISTEMUL CONDUS
6
cadrul sistemului informaţional vor exista întotdeauna o serie de activităţi ce nu vor putea fi
automatizate în proporţie de 100%.
Date reale
Rezultatul prelucrării
7
Numerele pot fi reprezentate în diferite sisteme de numeraţie, dintre care cele mai utilizate
sunt: binar, octal, zecimal şi hexazecimal.
0 aI b-1, i= 1, n
-avem egalitatea:
N(b)= an*bn + an-1*bn-1 + … +a0 *b0.
Observaţie:Pentru un număr dat N şi o bază b vom avea o singură reprezentare şi numai una
în baza b.
În secvenţa de mai sus an reprezintă cifra cea mai semnificativă, iar a0 cifra cea mai
nesemnificativă.
Un număr real are reprezentarea generală [ ] n,m cu n reprezentând partea întreagă, m
respectiv partea fracţionară a numărului.
Definiţie: secvenţa de cifre anan-1 … a0,a-1a-2 …a-m se spune că este o reprezentare în baza b
a numărului R dacă şi numai dacă:
- cifrele an, an-1, … , a0 , a –1, a-2, … , a-m sunt naturale şi îndeplinesc condiţia: 0 aI b-1,
i= m, n
- nu există un rang j astfel încât : aj=aj-1-aj-2=b-1
- avem egalitatea:
R(b)=an*bn +an-1*bn-1+ … +a0*b0+a-1*b-1+ a-2*b-2+ … +a-m*b-m.
8
Pas1: Se scade cea mai mare putere a lui 2 care este mai mică sau egală cu numărul şi se
plasează un 1 binar în poziţia corespunzătoare rangului său.
Pas2: Dacă următoarea putere din rang nu poate fi scăzută din rezultatul rămas din pasul
precedent se trece 0 binar în poziţia rangului respectiv.
Pas3: Dacă rezultatul scăderii este 0, atunci procesul de conversie se opreşte, altfel se
continuă cu pasul 1.
0,5625
-0,5 2-1
0,0625
-0,0625 2-4 0,5625(10)=1001(2)
adică 67,5625(10)=1000011,1001(2).
9
Numărul fracţionar RF(b) poate fi scris ca 0, a-1a-2…a-m sau ca sumă de produse a
coeficienţilor cu puterile bazei:
RF(b=a-1*b-1+a-2*b-2+ … +a-m*b-m, sau intr-o altă bază q poate fi scris:
RF(b=a`-1*q-1 +a`-2*q-2+ … +a`-l*q-l.
Pentru determinarea valorilor coeficienţilor a`-I procedăm după următorul algoritm:
Pas1: se înmulţeşte numărul RF(b) cu noua bază şi se obţine o parte întreagă şi o parte
fracţionară. Partea întreagă obţinută reprezintă valoarea cifrei în baza q .
Pas2: dacă partea fracţionară este 0 atunci procesul se opreşte.
Pas3: dacă partea fracţionară nu este 0, atunci se continuă cu pasul 1 (până la obţinerea
preciziei de reprezentare dorite).
Exemplu: 67,5625(10)= ?(2)
67 2
66 33 2
1 32 16 2
1 16 8 2
0 8 4 2
0 4 2 2
0 2 1 2
0 0 0
1 67(10)= 1000011(2)
0,5625*2= 1,1250 1
0,1250*2= 0,2500 0
0,2500*2= 0,5000 0
0,5000*2= 1,0000 1 0,5625(10)=1001(2)
Pentru a manipula datele sub formă binară acestea sunt grupate în agregate mai largi în care
grupuri de biţi au diverse semnificaţii.
O cifră binară este referită în mod uzual ca un bit. Pentru partea întreagă bitul cel mai din
stânga al numărului (diferit de 0, 0-urile fiind nesemnificative) este denumit bitul cel mai
smnificativ, respectiv cel din dreapta părţii intregi fiind bitul cel mai puţin semnificativ.
Evoluţia calculatoarelor şi a echipamentelor de prelucrare a datelor a avut loc în jurul unei
unităţi de măsură a schimbului de informaţii între dispozitive implicate în reprezentarea pe 8 biţi.
Această unitate de 8 biţi este referită ca un byte . Byte-ul este utilizat pentru a reprezenta un caracter
din setul de caractere acceptat de calculator cum ar fi caracterele de tip text sau caractere grafice.
Calculatorul este compus dintr-un număr mare de celule sau registre utilizate pentru
memorarea (stocarea) informaţiei binare. Majoritatea regiştrilor aceluiaşi calculator sunt de aceeaşi
10
lungime de n biţi. Fiecare registru poate fi utilizat pentru a manipula informaţii sau date
reprezentate pe n biţi, iar informaţia stocată într-un registru este denumită cuvânt.
Bit
byte
cuvânt (word)
Reprezentarea generală a unui număr:
0, pozitiv
Unde s=
1, negativ
2.1. ALGEBRĂ BOOLEANĂ; PORŢI LOGICE.
Bazele acesteia au fost introduse în anul 1854 de către matematicianul englez G. Boole în
lucrarea “ An Investigation of the Law of Thought”.
Logica este ştiinţa care studiază formele şi legile adevărului, iar logica matematică este
ştiinţa care utilizează modelele matematice pentru rezolvarea problemelor logice.
Algebra booleană este de fapt un limbaj formal care permite să exprimăm compunerea
funcţiei logice într-un mod convenabil.
În algebra booleană o propoziţie poate fi adevărată sau falsă, dar niciodată adevărată şi falsă
în acelaşi timp. Două propoziţii sunt echivalente dacă sunt fie adevărate, fie false în acelaşi timp.
Algebra booleană este o mulţime de elemente B2 cu două legi de compoziţie notate +(sau )
şi * (sau ) numite sumă respectiv produs boolean şi o lege de coplementare notată “-” (not)
Funcţiile logice pot fi reprezentate prin ecuaţii logice sau prin tabele de adevăr.
Ecuaţiile logice corespondente funcţiilor logice asociate legilor de compoziţie de mai sus
sunt :
- funcţia SAU logic (OR): f(x,y) = or (x,y) = x+y = x y
- funcţia ŞI logic (AND) : f(x,y) = and (x,y) = x*y = x y
11
x y x+y
0 0 0
0 1 1
1 0 1
1 1 1
Tabela de adevăr a funcţiei ŞI (AND) :
x y x*y
0 0 0
0 1 0
1 0 0
1 1 1
O funcţie care returnează valoarea 1 când valorile celor două intrări sunt diferite este funcţia
booleană xor (sau exclusiv) care are următoarea tabelă de adevăr:
x y xor(x,y)=( x *y)+(x* y )
0 0 0
0 1 1
1 0 1
1 1 0
O variabilă binară x poate avea două valori 0 şi 1 ceea ce ne permite să afirmăm că orice
variabilă binară aparţine mulţimii B2 .
Funcţia booleană de o variabilă este definită ca f: B2 B2.
Fie a,b două constante, atunci:
12
Funcţia booleană de două variabile este definită ca f: B2 B2 B2, şi similar cazului
precedent vom avea:
Similar logicii booleene, logica digitală utilizează trei circuite electronice fundamentale
denumite poarta SAU ( OR Gate), poarta ŞI ( AND Gate) şi poarta NU (NOT Gate).
Un comutator binar (binary switch) operează pe baza a două nivele de semnal: slab (low-0)
şi înalt (high-1). Pentru majoritatea calculatoarelor valoarea înaltă corespunde unui semnal între 2-5
volţi iar semnalul slab între 0-1. Văzut din afară un comutator are patru pini: doi utilizaţi ca linii de
intrare (I1, I2), unul ca ieşire (notat O) şi unul ca linie de selecţie (S). Funcţionarea este bazată pe
nivelul pe nivelul de semnal pe linia de selecţie care desemnează care dintre intrări este selectată,
cum ar fi :
-valoare slabă la linia de selecţie intrarea I1 (a)
-valoare înaltă la linia de selecţie intrarea I2 (b).
I1
semnal slab
(0)
Linia de selecţie O
I2
(a)
I1
linia de selecţie O
I2
(b)
Fig. Comutatoare binare-vedere exterioară
În condiţiile descrise mai sus funcţiile SAU, ŞI, NU pot fi reprezentate după cum urmează:
13
I1
Comutator SAU
S O
I2
I1
S O
Comutator ŞI
I2
I1
S O
Comutator NU
I2
Poarta SAU (OR Gate) implementează funcţia logică SAU şi este simbolizată :
x
x+y
y
Poarta ŞI (AND Gate) implementează funcţia logică ŞI este simbolizată:
x x*y
y
Analog, poarta NU (NOT Gate) este reprezentată grafic:
x x
14
2.2.REPREZENTAREA OPERAŢIILOR LOGICE ŞI ARITMETICE PRIN PORŢI
LOGICE
Funcţia xor cu tabela de adevăr descrisă mai sus, având ecuaţia xor(x,y)=( x *y)+(x+ y )
poate fi transpusă în circuit digital după cum urmează:
x
x* y
xor
x *y
y
15
Considerăm două numere binare x, y pentru care vom implementa un sumator. Folosind
adunarea binară, observăm că suma a două numere binare este este similară funcţiei xor la care se
adaugă un report în cazul în care ambele variabile au valoarea 1, ceea ce poate fi exprimat printr-un
ŞI logic. Circuitul digital capabil să adune două cifre binare este următorul:
x
x* y
suma
y x *y
report
16
2.3 CIRCUITE INTEGRATE
x(t) f(t+ )
x(t) f(t+ )
0 0
1 1
Cu tabela de adevăr:
17
x(t) y(t) f1(t+ ) f2(t+ )
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
18
3. ALGORITMI DE PRELUCRARE AUTOMATĂ A DATELOR
19
fost create „limbaje specifice” (conţinând simboluri, litere, cuvinte si reguli de execuţie a
operatorilor) cu un set de reguli sintactice care elimină orice ambiguitate.
In acest context pregătirea unei probleme in vederea rezolvării sale cu ajutorul calculatorului
presupune:
a) abstractizarea si formalizarea sa
b) determinarea soluţiei,
c) formularea regulilor de transformare.
20
Pseudocodul reprezintă un set succint de instrucţiuni (pentru programator) derivat, în
general, din sintaxa limbajului în care va fi programata aplicaţia.
La descrierea schemelor logice sunt utilizate simboluri grafice cu semnificaţie, dintre care
prezentăm succint o parte, frecvent utilizată, în tabela următoare:
Start/Stop-simbolizează
începutul şi sfârşitul unei
scheme logice
Proces/Bloc de calcul-
reprezentarea formulelor de
calcul
Procedură-apelul unei
proceduri sau alt proces
Pregătire/Transformare –
operaţii de
închidere/deschidere a
fişierelor
Intrare/ieşire-operaţii de
citire/scriere a datelor
Flux- legătura de la … la
21
Din aceste structuri de bază au derivat şi sunt utilizate în programare şi următoarele structuri
de control:
4. decizie multiplă exclusivă – permite alegerea dintr-o multitudine de alternative pe baza
evaluării unei condiţii (case of/select case);
5. ciclu cu condiţie evaluată la sfarşit;
6. ciclu contorizat.
conditie
Adevărat Fals
Operatie 1 Operatie 2
22
Condiţia logică <condiţie> este o expresie logică care va fi evaluată la Adevărat sau Fals.
Condiţiile logice pot fi simple sau compuse.
Este posibil ca structura alternativă să nu aibă o operaţie specifică pe ambele ramuri (ramura
Else poate lipsi!).
Blocul de decizie corespondent poate fi interpretat astfel: dacă (If) condiţia este Adevărată
(True), atunci (Then) execută setul de instrucţiuni cuprins între If şi End If.
condiţie
Adevărat
Operaţie 1
Nu
condiţie
Da
operaţii
23
Dacă, pentru prima dată, condiţia nu este evaluată la Adevărat atunci ciclul nu va fi executat
niciodată.
operatii
conditie
Fals (Nu)
Adevarat
(Da)
24
Contor = vi
Da
Contor=vf
Nu
Operatii
Contor =contor+pas
În această diagramă:
vi – este valoarea iniţială a contorului (valoarea de start – uzual 0 sau 1 dar nu este exclusă şi o altă
valoare pozitivă sau negativă);
vf – este valoarea de sfarşit a contorului (uzual de câte ori se va executa ciclul);
pas – este valoarea utilizată pentru implementarea (sau documentarea dacă este negativ) contorului.
25
Aplicaţie: (1).Să se elaboreze un algoritm pentru rezolvarea ecuaţiei de grad II cu coeficienţi
reali.
Rezolvare : Start
a,b,c
NU a<>0
DA
d=b2-4ac
x=-c/b
NU d>0
DA
x1,2=(-b d )/2a
Sol complexe
x1,x2
Stop
26
(2). Să se construiască schema logică a unui program care detemină factorialul unui
număr n .
Rezolvare:
Start
i:=1
Fact:=1
Fact:=Fact *i
i<n NU
DA
i:=i+1
Fact
Stop
27
4. ORGANIZAREA DATELOR SI FIŞIERELOR
4.1. INTRODUCERE
28
serie consecutivă de caractere (reprezentate pe un octet sau byte). În acest context înseamnă că
putem specifica exact ce caracter dorim să citim sau să scriem din/în fişier.
În cele ce urmează vom analiza câteva aspecte legate de operaţia de citire şi cea de scriere.
Vom considera o procedură READ care este apelată pentru a citi un byte (caracter) c dintr-un fişier
f, byte memorat la poziţia poz in acest fişier.
Într-un sistem care modelează realitatea, fişierele au diferite dimensiuni (dimensiune).
Datele memorate sub formă de caractere (bytes, in cazul nostru) intr-un fişier vor avea adresele in
intervalul [1, dimensiune]. Acest lucru inseamnă că pentru a citi date din fişier valoarea lui poz
trebuie să fie în intervalul [1, dimensiune].
Considerăm faptul că dimensiunea unui fişier f este size(f).
În acest context, la scrierea datelor (WRITE) intr-un fişier f, în funcţie de poziţia dorită P,
apar două situaţii:
1. P aparţine [1, size(f)], caz în care actualizăm (UPDATE, MODIFY, REWRITE) conţinutul
fişierului. Datele stocate la poziţia P vor fi inlocuite cu alte date;
2. P = size(f) +1, caz în care fişierul este extins (APPEND, WRITE) prin adăugarea datelor
la o nouă poziţie şi mărirea dimensiunii (cu exact un caracter în cazul nostru).
O caracteristică importantă a unui fişier este aceea că el se comportă ca un dispozitiv de
stocare virtual, adică, chiar dacă oprim calculatorul, caracterul scris va fi memorat permanent
undeva. Fişierele pot fi adaugate sau şterse, ceea ce înseamnă că sistemul de operare trebuie să ne
permită aceste operaţii.
Ori de câte ori este creat un nou fişier sistemul de operare îi atribuie un identificator unic
care va fi utilizat pentru citări (localizări) ulterioare ale fişierului în vederea realizării diverselor
operaţii dorite de el. În majoritatea sistemelor, înaintea efectuării de operaţii asupra fişierelor,
acestea trebuiesc deschise (OPEN). Deschiderea nu este în mod strict necesară, de aceea sistemele
moderne nu cer acest lucru expres (operaţia este realizată direct de către sistemul de operare la
cererea altor operaţii, cum ar fi, de exemplu, operaţia de căutare).
La terminarea lucrului cu un fişier trebuie realizată închiderea sa (CLOSE) pentru a
comunica sistemului de operare că nu mai este utilizat.
În paragrafele precedente am considerat faptul ca vom manipula caractere (bytes)
individuale. Discurile, folosite în cele mai multe cazuri pentru stocare, utilizează blocuri (blocks) de
octeţi pentru a transfera datele în/din memorie. Blocurile pot avea, de exemplu, 512, 1024, 2048, ...
octeţi (bytes). În acest caz soluţia este de a organiza intern fişierele în unităti de 512 octeţi, de
exemplu, care vor fi referite la blocuri fişier (file blocks). Fişierul va fi format, astfel, ca o serie
29
consecutivă de blocuri. Poziţia poz a unui octet în fişier va fi dată de o pereche de numere: număr
bloc fişier (num) şi deplasare in bloc (dep), astfel:
poz = (num – 1) * 512 + dep, cu dep ε [1, 512].
Modul de calcul rămane acelaşi şi pentru altă dimensiune a blocului (de exemplu, dacă este
1024, atunci în formula precedentă şi condiţia asociată înlocuim 512 cu 1024). În contextul utilizării
blocurilor dimensiunea fişierului va fi dată în numar de blocuri şi, deoarece,acestea sunt de
dimensiune fixă va trebui să avem în vedere diverse modalităţi de a reprezenta modelele logice ale
datelor în termenii fişierelor.
Pentru a implementa fişiere trebuie să asociem (unic) fiecărui bloc de fişier un bloc de disc.
Conceptual, acest lucru este simplu: aşa cum blocurile de disc sunt identificate de sector, pista şi
cilindru, va trebui să administrăm precis, pentru fiecare bloc de fişier, locaţia sa în disc. Pentru
aceasta administrare vom introduce conceptul de index de blocuri fişier (file block index), a cărui
funcţionare, la modul cel mai simplu, trebuie să asigure gestiunea asocierii descrise anterior. Chiar
şi la acest mod „simplist” asocierea blocurilor de fişier cu blocurile de disc nu este simplă. Înainte
de a o realiza trebuie să găsim un bloc de disc care este liber. Ceea ce avem nevoie pentru a ne
gestiona spaţiul este un gestionar al spaţiului de memorare disc (disck storage manager) care să
ţina cont dacă un bloc disc este ocupat sau nu şi să ne ofere blocuri libere la scriere sau să
recupereze blocurile din fişierele şterse pentru a le oferi ca libere.
Din cele expuse anterior rezultă că unui fişier îi sunt ataşate informaţii cum ar fi:
identificatorul său, dimensiunea, blocurile disc asociate, etc. Pentru a păstra aceste informaţii
fiecare fişier are un antet de fişier (file header) care este stocat în disc începând cu primul său bloc.
La deschidere informaţiile acestui antet sunt plasate în memoria internă (cu un handler asociat)
pentru a fi disponibile sistemului de fişiere. La închiderea fişierului, dacă este cazul, antetul de fişier
este actualizat cu modificările efectuate (de exemplu mărirea dimensiunii).
Informaţiile asociate unui fişier în indexul de fişier şi în antet sunt mult mai numeroase şi
sunt dependente de sistemul de operare utilizat (uneori şi de versiunea sistemului) şi se referă,
printre altele, la numele fişierului, data creării, proprietarul fişierului, operaţiile admise a se efectua
asupra lui, etc.
4.2. ÎNREGISTRĂRI
Un fişier este organizat logic ca o secvenţă de înregistrări. Aceste înregistrări sunt mapate în
blocuri fizice pe dispozitivul de stocare (în general blocuri disc pe PC-uri). Fişierele sunt prevăzute
30
ca elemente de bază de către sistemele de operare, de aceea putem să considerăm că atunci când
avem un sistem de operare în funcţiune există întotdeauna cel puţin un sistem de fişiere disponibil.
În cele ce urmează vom trata căile de reprezentare logică a modelelor de date în termenii
fişierelor şi ai structurilor de date care pot organiza logic şi fizic fişierul. Dacă blocurile fizice au o
dimensiune fixă, determinată de caracteristicile fizice ale dispozitivelor de stocare (disc, banda
magnetică, caseta magnetică, etc.) şi de sistemul de operare, dimensiunea înregistrării poate varia.
Pentru a stoca (memora) date în fişiere putem opta între înregistrări cu lungime:
1.fixă, care sunt uşor de implementat dar cu inconvenientul reprezentat de procentul scăzut
de ocupare a spaţiului de stocare. De exemplu, dacă dorim să înregistrăm date despre persoane,
persoanele de sex feminin au un atribut „Nume inainte de căsătorie” care nu este necesar la
majoritatea celor de sex masculin, dar pentru care se ocupa spaţiu de memorie şi la acestea;
2.variabilă, care nu sunt atât de uşor de implementat ca cele fixe dar, care oferă un procent
mai bun de utilizare a spaţiului.
Înregistrările sunt manipulate de utilizator la nivel logic (scrise şi citite), iar dispozitivul de
stocare realizează aceste operaţii la nivel de bloc.
31
4.3. LISTE LINEARE ÎNLĂNŢUITE
R1 R2 R3 Null
32
elementul succesor (next – urmatorul), ultimul element având în punctatorul de legătura o valoare
nulă (Null).
Cap R1 R2 R3 Null
A C
p1 p2
B Null
q
b) după Inserare
A C
p1 p2
B
q
33
Inserarea unui element la începutul sau sfârşitul listei lineare înlănţuite este mult mai simplă:
- pentru inserarea la începutul listei (fig.4.4 a) a elementului nou creat, punctat de q, de
exemplu, trebuie să înlocuim punctatorul Null al elementului cu adresa conţinută de
punctatorul pe începutul de lista (Cap), iar acest punctator cu adresa q;
- adăugarea la sfârşitul listei presupune numai înlocuirea punctatorului Null, care marchează
sfârşitul listei, cu adresa q.
Exceptând inserarea la începutul listei, toate celelalte tipuri de inserare trebuiesc precedate
de o operaţie de localizare a elementelor din lista implicată.
Ştergerea – ştergerea unui element aflat între alte două elemente este foarte simplă:
predecesorul elementului de şters conţine punctatorul către elementul care va fi şters, iar elementul
care se şterge conţine punctatorul către următorul element.
Ştergerea unui element la începutul sau sfârşitul listei lineare înlănţuite este mult mai
simplă:
- pentru ştergerea elementului de la începutul listei (fig.4.5 ) trebuie să înlocuim punctatorul
Cap cu adresa conţinuta de punctatorul pe următorul element, iar acest punctator cu Null, de
exemplu pentru a nu avea referinţe multiple la acelaşi element;
- ştergerea la sfârşitul listei presupune localizarea elementului precedent nodului final şi
înlocuirea punctatorului către următorul element cu Null, care marchează sfârşitul listei
A B C
A B C
34
Pentru ştergerea integrală a unei liste putem parcurge recursiv lista ştergând elementele şi
recuperându-le spaţiul ocupat
5. SISTEME DE OPERARE
35
acesta alterează datele aflate în folosinţa Proces2 apare o situaţie nedorită de interferenţă. Există
mai multe soluţii prin care să se controleze iterferenţa cum ar fi:
1 Sincronizarea explicită a proceselor, adică putem forţa Proces1 să aştepte până ce Proces2
a atins o anumită stare sau a ajuns la o anumită situaţie. În general sincronizarea este rezolvată prin
software deşi este preferabilă şi o sincronizare prin suportul hardware oricât de rudimentar ar fi
aceasta.
2 Pe parcursul execuţiei hardware-ul poate întrerupe CPU, caz în care nici o instrucţiune
executată de CPU nu trebuie să interfereze cu acelea pe care tocmai le-a executat înainte de apariţia
întreruperii.
3 Forţarea utilizării programelor de servicii de către procese, forţare care permite controlul
apariţiei interferenţelor nedorite.
Dimensiunea sistemului de operare a crescut pe măsură ce s-au adăugat acestuia noi facilităţi
şi pe măsura ce hardware-ul a devenit din ce în ce mai complex şi versatil.
De-a lungul dezvoltării lor sistemele de operare au relevat trei probleme comune:
1). Sistemele de operare au o dată de livrare ulterioară celei a hardware-ului, ceea ce
necesită o reactualizare a vechilor sisteme sau oferirea de noi sisteme.
2). Sistemele au bug-uri (erori) latente (vicii de fabricaţie) care trebuiesc fixate şi înlăturate.
3). Performanţa nu este, de regulă, cea aşteptată.
36
Pentru sistemele de operare mari, care rulează cu un număr mare de linii de cod,
programarea modulară nu mai este suficientă pentru rezolvarea complexităţii. Acestea fac apel la
conceptele de nivele ierarhice şi abstractizare a informaţiei (cale adoptată şi la proiectarea
programelor de aplicaţie). Structura ierarhică a sistemelor de operare moderne separă funcţiile
acestora în concordanţă cu complexitatea lor, scala de timp caracteristică lor şi nivelului de
abstractizare.
În acest context putem vedea sistemul ca o serie de nivele, fiecare nivel prelucrând un set de
funcţii cerut de sistemul de operare. Un nivel este legat de nivelul imediat inferior lui care
prelucrează funcţii cu un grad ridicat de primitivitate cărora le ascunde detaliile de implementare şi
totodată, pune la dispoziţie servicii necesare următorului nivel din ierarhie. Prin introducerea
descompunerii în nivele problema a fost divizată într-un număr de subprobleme gestionabile. În
general, nivelurile joase necesită timp scurţi de execuţie.
Anumite părţi ale sistemului de operare trebuie să interacţioneze direct cu hardware-ul
calculatorului, iar timpii de derulare a evenimentelor pot avea o scală de timp extrem scurtă
(milionimi de secundă).
O soluţie de contracarare a complexităţii sistemelor de operare este aceea a orgănizării lor în
miconuclee. Micronucleele sunt organizate în seturi de module structurate care permit gestiunea
sistemului şi oferă flexibilitate. Micronucleele sunt organizate în patru grupe de module, fiecare
grupă oferind un serviciu separat:
1). Gestiunea proceselor;
2). Gestiunea memoriei;
3). Gestiunea dispozitvelor;
4). Comunicaţia interprocese.
PROCES
37
6. REŢELE DE CALCULATOARE-PROTOCOALE
În lume există multe reţele cu echipamente şi programe diverse. Reţelele nu pot fi extinse
prin simpla adăugare a unor calculatoare şi cabluri. Fiecare topologie şi arhitectură de reţea are
propriile sale limite. Totodată fiecare reţea foloseşte propriile protocoale, deci existenţa reţelelor de
tipuri diferite înseamnă a avea protocoale diferite. Indiferent de evoluţia care va avea loc în lumea
IT (tehnologia informaţiei), mereu vor există o varietate de reţele, care pentru a putea comunica
unele cu altele vor trebui să se interconecteze.
Reţele de tip LAN (Local Area Network) reprezintă cea mai comună implementare a
tehnologiei reţelelor pentru firmele de mărime mică-medie.Dacă privim acest tip de reţele prin
prisma sistemelor de operare ce pot fi folosite, vom putea clasifica aceste reţele în peer-to-peer şi
reţele bazate pe servere.
Reţelele peer-to-peer nu implică existenţa unui server care să asigure serviciile în reţea.
Fiecare dintre calculatoarele reţelei poate îndeplini şi funcţia de server. Utilizatorul este cel care
hotărăşte ce periferic sau informaţie doreşte să fie accesată şi de ceilalţi membri ai reţelei. Acest tip
de reţele se pretează cel mai bine pentru firmele mici, unde, datorită complexităţii relativ reduse a
activităţilor, nu este nevoie de servicii sofisticate.
La polul opus, reţelele client/server implică existenţa cel puţin a unui calculator care să joace
rolul de server. în acest caz, informaţiile care trebuie partajate în cadrul firmei vor fi gestionate de
server. Aceasta este soluţia adoptată de majoritatea firmelor şi ca urmare a posibilităţii gestionării
centralizate a securităţii reţelei.
38
denumite în continuare noduri. (fig. 7.1.) Avantajele sunt uşurinţa în conectarea calculatoarelor.
Necesarul de cablu este redus. Dezavantajele sunt că reţeaua nu funcţionează dacă apar întreruperi
în cablu. Este nevoie de terminatori la ambele capete ale cablului. Problemele sînt greu de
identificat dacă reţeaua cade.
Reţele de tip stea (star): într-o astfel de reţea, fiecare nod este conectat direct la un hub.
Informaţiile sînt transmise de la calculatorul sursă către cel destinaţie prin intermediul hubu-lui. Acesta
este principalul dispozitiv care gestionează şi controlează funcţiile reţelei.
Avantajele sunt uşurinţa în instalare. Reţeaua nu este afectată dacă sînt adăugate sau
retrase calculatoare. Uşurinţa în detectarea problemelor.
Dezavantajele sunt că necesită cablu mai mult. Sunt mai costisitoare. Dacă un hub se
defectează, toate calculatoarele din acel nod devin nefuncţionabile.
39
Reţele de tip inel (ring). Din exterior, o astfel de reţea seamănă foarte mult cu o reţea star.
Din punctul de vedere al topologiei logice însă, MAU (Multistation Access Unit) este dispozitivul care
permite informaţiilor să treacă de la un nod la altul în cadrul unui inel comunicaţional.
Reţele de tip arbore (tree). Topologia de reţea tree combină caracteristicile topologiilor bus
şi star. Nodurile sînt grupate în mai multe topologii star care la rîndul lor sînt legate la un cablu
central. Acestea pot fi considerate topologiile cu cea mai bună scalabilitate.
Avantajele sunt segmentele individuale care au legături directe, iar dezavantajele sunt
lungimea maximă a unui segment este limitată. Dacă apar probleme pe conexiunea principală, sunt
afectate toate calculatoarele de pe acel segment.
Reţele de tip WAN (Wide Area Network) - reţele cu arie mare de întindere. Pe măsură ce
utilizarea calculatoarelor în domeniul economic a devenit omniprezentă, s-a ajuns la concluzia
40
că LAN-urile nu mai corespundeau nevoilor firmelor. Într-o reţea LAN, fiecare departament era
privit ca o „insulă electronică". A apărut însă necesitatea schimbului de informaţii între aceste
insule, iar soluţia a reprezentat-o crearea WAN-urilor (Wide Area Network): reţele care
interconectează LAN-uri, furnizînd acces la calculatoare din alte locaţii geografice.
Tehnologiile folosite în cadrul WAN : modem-uri, ISDN (Integrated Services Digital
Network), DSL (Digital Subscriber Loop), Frame Relay, ATM (Asynchronous Transfer Mode),
T-Carrier Series (în SUA TI, T2, T3), SONET (Synchronous Optical Network).
Pentru transmisiile de date din cea mai mare reţea existentă - Internetul, standardul
folosit este TCP/IP (Transport Control Protocol/Internet Protocol).
Spre deosebire de OSI, modelul TCP/IP are doar patru niveluri: aplicaţie, transport,
internet şi reţea. Deşi există două niveluri cu acelaşi nume ca la modelul OSI, nu trebuie
confundate cu acelea pentru că fiecare nivel are funcţii total diferite.
aplicaţie
transport
internet
reţea
41
acest nivel (Transport Control Protocol) oferă o modalitate flexibilă de realizare a comunicaţiilor
în reţea. Fiind un protocol orientat conexiune, dialogul dintre sursă şi destinaţie se realizează prin
împachetarea informaţiilor de la acest nivel în segmente. Orientarea către conexiune nu
înseamnă că între calculatoarele care comunică există vreun circuit, ci că segmentele cu date ale
nivelului 4 circulă înainte şi înapoi între cele două calculatoare într-o perioadă de timp dată.
Nivelul internet: Scopul acestui nivel este de a trimite pachetele sursă din orice reţea
către o alta şi să facă astfel încît acestea să ajungă la destinaţie indiferent de ruta şi reţeaua din
care au fost transmise. Protocolul care guvernează acest nivel este Internet Protocol, funcţiile
îndeplinite de acesta fiind determinarea şi comutarea pachetelor.
Nivelul reţea: Numele acestui nivel este cam general şi de multe ori creează confuzie.
Este nivelul care include detalii despre tehnologiile LAN/WAN, precum şi toate detaliile
incluse în nivelurile fizic şi legătură date din modelul OSI. Specialiştii preferă modelul OSI
pentru analize mai atente şi ca fundament în orice discuţie legată de reţele. Este adevărat că
TCP/IP este mai folositor pentru că este implementat în lumea reală.
Ca utilizatori finali avem de-a face numai cu nivelul aplicaţie, dar cunoaşterea detaliată
a nivelurilor este vitală pentru realizarea unei reţele. Este adevărat că majoritatea utilizatorilor
nu ştiu mai nimic despre protocoale de rutare sau alte detalii, dar este de asemenea adevărat că
aceşti utilizatori nu trebuie să realizeze reţele scalabile şi sigure
Pentru a stoca informaţii în orice mediu imaginabil în zilele noastre sunt folosite sisteme de
baze de date. De la bazele mari de date, cum ar fi sistemele de rezervare a biletelor ale companiilor
aeriene si pâna la colecţia de fişe dintr-un cabinet medical, sistemele de baze de date sunt folosite
pentru memorarea şi distribuirea datelor de care încep sa depindă vieţile noastre. Pâna în urma cu
câtiva ani, sistemele mari de baze de date puteau fi executate numai pe calculatoare de tip
mainframe. În mod obişnuit, era foarte costisitor să fie proiectate, achiziţionate şi întreţinute aceste
maşini. Prin apariţia calculatoarelor din clasa staţiilor de lucru, care sunt puternice şi ieftine,
programatorii au posibilitatea de a proiecta rapid şi ieftin produse software pentru întreţinerea şi
distribuirea datelor.
Cel mai folosit model de stocare a datelor este baza de date relaţională. Acest nou model s-a
dezvoltat pornind de la un articol, “A Relational Model of Data for Large Shared Data Banks” (Un
model relational al datelor pentru banci mari de date folosite în comun), scris de Dr. E. F. Codd în
anul 1970. Ideea lui Codd pentru un sistem de administrare a bazelor de date relaţionale foloseşte
42
conceptele matematice de algebră relaţională pentru a grupa datele în mulţimi şi a stabili relaţii între
submulţimile (domeniile) comune.
Complexitatea actuală a aplicatiilor de management al bazelor de date face necesară o
combinaţie a procesării tranzacţiilor on-line, a încărcării şi a creşterii sprijinului decizional. În
scopul satisfacerii acestor necesităti, este nevoie de baze de date scalabile si performante care pot fi
ajustate dinamic pentru a realiza un compromis între bazele de date (mai mari) si utilizatorii
simultani (mai mulţi). De asemenea, sunt necesare tehnologii pentru baze de date proiectate pentru a
maximiza capacitaăţile configuraţiei hardware/software disponibile (incluzând arhitecturi simplu si
multi-procesor), precum si pentru valorificarea unor arhitecturi hardware (cum ar fi clustere cuplate
larg şi maşini paralele puternice). Serverele de date de astăzi se apropie de aceste cerinţe - o
arhitectură paralela (de noua generaţie) a bazelor de date care furnizează scalabilitate,
manevrabilitate şi performanţă; o regie minimală a sistemului de operare; şi o distribuire automată a
încărcărilor de lucru.
Performanţa este aspectul critic al succesului, si având în vedere creşterea dramatică a
numărului de utilizatori, date fiind aplicaţiile de comerţ electronic şi noile modele de calcul,
presiunea exercitată asupra bazelor de date este mai mare ca oricând.
Bazele de date reprezintă una sau mai multe colecţii de date aflate în interdependenţă
împreună cu descrierea datelor şi a relaţiilor dintre ele.
Colecţia de date reprezintă un ansamblu de date organizat dupa anumite criterii.
Descrierea datelor se întâlneste sub denumirile de catalog de sistem, dicţionar de date sau
meta-date ceea ce reprezintă date despre date.
Sistemul de baze de date reprezintă o automatizare a datelor. Acesta are următoarele
componente:
Datele, care pot fi :
Date integrate presupun faptul că datele pot fi văzute ca o multitudine
de fişiere diferite.
Date partajate în momentul în care mai mulţi utilizatori pot folosi
aceleaşi date simultan.
Partajarea este o consecinţă a integrării datelor. Integrarea datelor are ca obiectiv
minimizarea redundanţei acestora.
Hardware:
43
Dispozitive speciale de stocare a datelor (discuri magnetice) plus dispozitive de intrare-
ieşire;
Procesor şi memorie pentru rularea diferitelor aplicaţii soft.
Software
Între baza de date fizică şi utilizatori există o interfaţă denumită manager de date sau
cel mai uzual SGBD.
Observaţii:
1. Uneori bazele de date sunt confundate cu SGBD
2. noţiunea de SGBD este asociată de un anumit producător unui anumit produs, cel
mai corect ar fi utilizarea noţiunii de instanţă SGBD.
3. un SGBD asigură un dialog interactiv între utilizator şi baza de date. Alături de acest
SGBD mai există un manager de tranzacţii.
Utilizatorii sunt:
utilizatori finali;;
programatori ai BD;
administratori ai BD.
Date persistente
Modificarea datelor nu poate fi efectuată decât prin intermediul unui SGBD. Bazele de date
sunt date persistente, utile unor sisteme de aplicaţie din cadrul unei organizaţii.
Necesitatea apariţiei – utilizării bazelor de date se datorează :
Modelului compact;
Vitezei de execuţie a unor operaţii;
Eliminarea operaţiilor mecanice
Securitate şi protecţie.
Avantaje ale utilizării bazelor de date cu caracter centralizat:
Partajarea datelor ;
Eliminarea redundanţei;
Securitatea poate fi îmbunătăţită;
Optimizarea cerinţelor;
O performanţă cât mai bună.
44
2. model relaţional:
stocarea datelor se face sub formă de tabele;
din una sau mai multe tabele vechi se poate construi un nou tabel
Bazele de date relaţionale au la baza o algebră relaţională. Algebra relaţională conţine
operanzi şi operatori (operaţiuni). Operanzi pot fi variabile(relaţii) sau constante (descriu relaţii
finite)
Operatorii algebrei relaţionale sunt operatori ai teoriei mulţimilor ca de exemplu: reuniune,
intersecţie, diferenţă, şi operatori specifici:
selecţie
proiecţie
joncţiune şi concatenare.
45
Fig.nr. Arhitectura ANSI-SPARC
Nivelul extern: conţine un sublimbaj compus din 2 limbaje subordonate:
DDL se ocupă cu declaraţii constructive
DML se ocupă de instrucţiuni executabile.
Vederea externă este definită prin intermediul unei scheme interne cu ajutorul DDL.
Nivelul conceptual: datorită limitărilor impuse conţinutul informaţional este prezentat într-o
formă abstractă, cu toate că se doreşte o vedere a datelor cât mai apropiată de realitate.
Nivelul intern: se ocupă de înregistrarea datelor intr-o formă diferită de cea fizică.
CORESPONDENŢE
Conceptual-intern: înregistrările conceptuale sunt stocate în nivelul intern, iar o modificare
a structurii interne duce la modificarea acestei corespondenţe. Are ca scop menţinerea
independenţei fizice a datelor.
Conceptual - extern: există o analogie între nivelul extern şi cel conceptual, care tinde să
menţină independenţa logică a datelor.
Extern – intern: specifică modelele relaţionale.
SGBD tratează întregul acces la baza de date. Conceptual un SGBD parcurge următorii paşi:
utilizatorul lansează o cerere;
SGBD preia şi analizează cererea
SGBD inspectează pe rând :
Schema internă
46
Corespondenţa extern conceptual;
Schema conceptuală;
Corespondenţa conceptual intern
Structura stocării datelor
SGBD efectuează operaţiile.
Un SGBD dispune de funcţii cum ar fi:
Definirea datelor (compilator DDL);
Manipularea datelor (compilator DML );
Optimizarea datelor (cererile DML sunt prelucrate de optimizator al
cărui scop este de a găsi modalităţi eficiente de implementare a cererii);
Securitatea şi protecţia datelor;
Actualizarea datelor, refacerea datelor (managerul de tranzacţii
impune elemente de control);
Etc.
Modelarea semantică:
Entitate un obiect distinct al bazei de date. Entităţile pot fi tari sau slabe (depind de o altă
entitate).
Proprietăţile pot fi:
simple sau compuse;
cheie (unică într-un anumit context);
47
cu valori unice sau multivalorice;
de bază sau derivate.
Corelaţia este o asociere între entităţi, care poate fi de tipul: Unu la unu, unu la mulţi, mulţi
la mulţi.
Un firewall reprezintă este un sistem care impune o politică de control al accesului între
două reţele. Un firewall este dat de implementarea acestei politici în termeni de configurare a reţelei,
unul sau mai multe sisteme gazdă şi routere cu funcţiuni speciale, alte măsuri de securitate, cum ar fi
autentificarea prin metode criptografice a clienţilor.
Altfel spus, un firewall este mecanismul utilizat pentru a proteja o reţea sigură din punctul
de vedere al securităţii de o alta nesigură, în care nu se poate avea încredere.
In majoritatea cazurilor firewall-uri sunt, în general, interpuse între reţelele interne şi mediul
virtual (internet), conceptul de firewall nu se rezumă doar la acest aspect, existând suficiente motive
48
pentru folosirea firewall-urilor în oricare rețea ce are acces la internet, inclusiv în reţelele cu arie
largă (WAN) ale diverselor organizații.
Deoarece un firewall este pus ca un filtru între două reţele, acesta poate fi utilizat şi în
alte scopuri pe lângă cel de control al accesului1:
• pentru monitorizarea comunicaţiilor dintr-o reţea internă şi o reţea externă.
Astfel, acesta poate jurnaliza (monitoriza, înregistra) serviciile folosite şi cantitatea de date
transferată prin conexiuni TCP/IP între propria organizaţie şi lumea exterioară;
• firewall-ul poate fi utilizat pentru a intercepta şi înregistra toate comunicaţiile dintre
reţeaua internă şi cea externă.
• dacă există mai multe rețele intr-o organizaţie, separate din punct de vedere al
locației sau chiar geografic, și fiecare având la dispoziție câte un firewall, există varianta
programării acestora pentru a putea cripta in mod automat conţinutul pachetelor transmise între
ele.
Cererile legate despre datele necesare unei tranzacții in mediul virtual sunt directionate de la
serverul Web către serverul de tranzacționare al instituției bancare. Aplicația de tranzacționare pe
Internet este concepută pe baza unei arhitecturi arborescente pe trei niveluri, care contine două
firewall-uri ce izolează complet serverul Web de informațiile despre clienți aflate în baza de date.
Interfața World Wide Web primește datele provenite prin intermediul protocolului SSL și trimite
cererile respective prin intermediul unui firewall de-a lungul unei rețele private dedicate către
1 http://www.securitatea-informatica.ro/securitatea-informatica/securitatea-si-confidentialitatea-datelor-in-
49
serverul de tranzacționare Internet. Aceasta interfață reprezintă unicul proces ce poate comunica
prin intermediul firewall- ului cu serverul de tranzacționare Internet, în acest fel asigurându-se
faptul că doar cererile autentificate pot comunica cu serverul de tranzacționare. Baza de date ce
conține informații referitoare la clienți este gazduită de un server ce implementează securitatea
sistemului de operare folosit2.
Securitatea unui model de tranzacționare pe Internet trebuie să cuprinda trei nivele (figura nr
8.2.). Primul nivel este legat de asigurarea securitatii informatiilor provenite de la clienti în
momentul în care acestea sunt transmise de la calculatorul clientului către serverul Web. Al doilea
domeniul sau nivel de securitate se refera la securitatea mediului în care activeaza serverul de
Internet banking si baza de date ce contine informatii confidentiale despre clienti. În sfârsit, cel de-
al treilea nivel de securitate implica masurile care trebuie luate pentru a preveni accesul neautorizat
al anumitor persoane la sistemul de tranzactionare online al site-ului Web respectiv. Securitatea
datelor transmise de programul browser (navigator) al clientului catre serverul Web al bancii este
asigurata, precum am mai spus, prin intermediul protocolului de securitate SSL (Secure Sockets
Layer), care oferă criptarea datelor, autentificarea serverului si integritatea mesajelor transmise prin
conexiunea Internet3.
retelele-publice/
2 http://revistaie.ase.ro/content/14/Zota.pdf
3
50
8.2. PROTECŢIA TRANZACŢIILOR
Asigurarea protecţiei tranzacţiilor în mediul virtual (Internet), este indicat să se ţină cont de
următoarele cerinţe de bază4:
Secretizarea/Confidențialitate - conţinutul tranzacţiilor este protejat împotriva
citirilor neautorizate, de către terțe persoane, altele decât receptorii specificaţi de emiţător.
Obiectivul acestei etape îl constituie prevenirea ascultării şi înregistrării neautorizate a traficului de
pe liniile de comunicaţii, fie obstrucţionarea accesului la cutiile de e-mail, care sunt de fapt nişte
fişiere disc. Pentru a împiedica astfel de atacuri este indicată criptarea mesajelor.
Autentificarea originii tranzacţiilor- receptorul unui mesaj permite să determine în
mod sigur identitatea expeditorului. Este un serviciu de securitate fundamental astăzi, când este
relativă uşoară simularea emiterii unor mesaje în numele unor alţi utilizatori. Pentru a rezolva
autentificarea se utilizează semnătura digitală.
Integritatea datelor - asigură receptorului unei tranzacţii siguranţa că mesajul
transmis este identic cu mesajul emis la origine. Acest serviciu asigură o protecție împotriva
atacurilor care vizează modificarea mesajelor care se află în tranzit prin reţea. Deşi cele două
servicii de autentificare şi de integritate sunt prezentate ca servicii separate, ele sunt furnizate de
obicei în tandem cu ajutorul sistemelor de rezumare şi semnatură digitală.
Nerepudierea (Împiedicarea nerecunoaşterii tranzacţiei de către expeditor) -
asigură o garanție a integrității şi originalității tranzacţiilor din punctul de vedere al expeditorului,
nu al destinatarului. Astfel, este se împiedică ca expeditorul unei tranzacţii electronice să nege
transmiterea ei. La recepţie, se poate verifica dacă tranzacţia nu a fost alterată, inclusiv de către
emiţătorul său autentic.
4 http://megabyte.utm.ro/articole/2007/Sti/Sem_1/Articol%20Mega%20Byte.pdf
51
metodele de spargere a cifrurilor, adică de determinare a textului clar sau a cheii de cifrare din
criptograma.
Există două tipuri de sisteme criptografice5:
A.Cifruri simetrice (cu cheie secretă), care folosesc aceeaşi cheie atât la cifrarea, cât şi la
descifrarea mesajelor. Din aceste sisteme critpografice pot fi amintite DES (Data Encryption
Standard) sau (International Data Encryption Algorithm).
B. Criptografia asimetrică este un tip de criptografie în care sunt folosite o pereche de chei: o
cheie publică și o cheie privată. Un utilizator care deține o astfel de pereche își publică cheia publică
astfel încat oricine dorește să o poată folosi pentru a îi transmite un mesaj criptat. Numai deținătorul
cheii secrete este cel care poate decripta mesajul astfel criptat.
Dintre algoritmii utilizați amintim RSA(Rivest-Shamir-Adleman), EG (ElGlamal) și ECC
(Elliptical Curve Cryptography)
Din punct de vedere matematic, cele două chei sunt legate, însă cheia privată nu poate fi obținută
din cheia publică.
Cripografia asimetrică se mai întâlnește sub denumirea de criptografie cu chei publice.
5 https://biblioteca.regielive.ro/referate/calculatoare/infrastructura-cheilor-publice-72100.html
52
Fig..8.4. Criptarea asimetrică
Sursa: http://codare-date.cpf.ro/criptare-publica.php
6 https://ro.wikipedia.org/wiki/Discu%C8%9Bie:Func%C8%9Bie_hash
53
căi: confuzie şi difuzie. Construcţia fundamentală a unui bloc DES este o combinaţie a unor tehnici
- substituţie urmată de o permutare - executate asupra textului, bazate pe o cheie.
Această construcţie este cunoscută ca o rundă. DES este compus din 16 runde:se aplică
aceeaşi combinaţie de tehnici asupra blocului de text clar de 16 ori. Algoritmul este compus dintr-
un set de permutări, substituţii şi sumă mod 2, aplicate iterativ de 16 ori, pe un bloc de 64 biţi, prin
folosirea în fiecare rundă a unei chei diferite de 48 de biţi, extrase iniţial dintr-o cheie furnizată de
utilizator de 56 de biţi; datele sunt împărţite in blocuri de 64 de biţi şi criptate fară a se modifica
lungimea lor.
Pentru a înţelege mai bine cum este”în interior” un sistem de criptare, prezentăm cifrul
FROG, realizat de o echipă de la TecApro International. FROG îşi propune să transforme textul
clar în text cifrat printr-un proces de calcul care să creeze confuzie şi difuzie.
FROG criptează blocuri de intrare de 16 octeţi în blocuri de ieşire cu aceeaşi lungime, sub
controlul unei chei criptografice utilizator, a cărei lungime poate varia între 5 şi 125 de octeţi. Cifrul
realizează 8 iteraţii(runde) în prelucrarea fiecărui bloc de intrare. Fiecare iteraţie foloseşte o cheie
internă, generată din cheia de cifrare şi care este o structură de date cu 8 înregistrări, fiecare având 3
câmpuri:
xorBu - un vector de 16 octeţi folosit în sau exclusiv;
substPermu - un vector de 256 de octeţi folosit ca tabelă de substituţii;
bombPermu - un vector de 16 octeţi folosit în a ponta diferite poziţii în bloc(cu valori
între 0 şi 15), pentru a realiza o permutare.
Fiecare iteraţie traversează secvenţial blocul de 16 octeţi, de la stânga la dreapta şi
calculează cu fiecare octet 4 operaţii de bază(2 implementând confuzie, celelalte 2 difuziune):
Pasul 1: SAU-EXCLUSIV(XOR) între octetul curent din bloc şi octetul curent din
câmpul xorBu;
Pasul 2: înlocuirea octetului calculat la pasul 1 prin octetul din tabela de substituţie
substPermu, indexată cu octetul calculat la pasul 1;
Pasul 3: modificarea octetului următor din bloc prin XOR cu octetul calculat la pasul
2. Când se ajunge la sfârşitul blocului, octetul următor este considerat primul;
Pasul 4: se foloseşte octetul curent al lui bombPermu pentru a defini o poziţie în
bloc. Se modifică octetul din acea poziţie făcând XOR cu octetul calculat în pasul 2.
Câmpul bombPermu este o permutare, a cărei lungime a ciclului trebuie să fie egală cu
dimensiunea blocului(16).
54
Decriptarea se face parcurgând cheia internă şi blocul cifrat in sens invers. Cheia internă
folosită este aceeaşi, cu excepţia tabelelor de substituţie - substPermu - care sunt înlocuite de
inversele lor.
Frog calculează cheia internă pe baza cheii criptografice furnizate de utilizator. Pentru
generarea cheii interne se folosesc 2 algoritmi:
primul algoritm( funcţia hashKei) foloseşte cheia utilizator (simple Kei) şi o
constantă internă (randomSed) pentru a produce un tablou de 2304 octeţi (numit randomKei),
folosind un algoritm complex în 5 paşi;
al doilea algoritm(funcţia makeInternalKei) preia tabloul arbitrar de 2304 octeţi
generat de primul algoritm şi îl transformă într-o structură ce cuprinde cele 3 câmpuri.
Algoritmul Rijndael este un cifru bloc, proiectat de Joan Daemen şi de Vincent Rijmen.
Cifrul lucrează cu blocuri de date şi chei de dimensiuni variabile. Se pot folosi chei de 128, 192 sau
256 biţi pentru a cripta blocuri de date de 128, 192 sau 256 biţi.
55
BIBLIOGAFIE:
56