Sunteți pe pagina 1din 23

MINISTERUL EDUCAȚIEI , CULTURII ȘI CERCETĂRII

AL REPUBLICII MOLDOVA
UNIVERSITATEA TEHNICĂ A MOLDOVEI
FACULTATEA ELECTRONICĂ ȘI TELECOMUNICAȚII
DEPARTAMENTUL TELECOMUNICAȚII ȘI SISTEME ELECTRONICE

DARE DE SEAMĂ
la lucrarea de laborator nr.3

Disciplina: Protectia informatiei in retele de comunicatii

Tema: Criptografia asimetrică

A realizat
studenta gr.

A verificat
Asist. univ. :

CHIȘINĂU 2019
1. Scopul lucrarii: Studierea principiilor criptosistemelor simetrice.
2. Utilizarea criptosistemelor simetrice

Există 2 tipuri de criptosisteme: criptosisteme simetrice și asimetrice. Principalele


diferențe sunt că, în primul rând, operația de criptare și decriptare se efectuează folosind
un algoritm, iar cheia de criptare este privată, spre deosebire de criptosistemele asimetrice,
unde se folosesc 2 taste, una privată și alta deschisă.

Figura 1.2 prezintă schema generală a criptosistemelor simetrice.

Din figură se poate observa că principalele elemente ale sistemului sunt: arhivarea, un
algoritm pentru crearea de lanțuri, un algoritm criptografic, codarea transportului,
salvarea parolei. Aceste etape ale criptosistemului sunt discutate mai jos.

Figura 1.2. Schema generală a unui criptosistem simetric


2.1.1. Arhivarea informațiilor
Compresia datelor este o procedură de transcodare a datelor efectuată pentru a reduce
volumul acestora. Este utilizat pentru utilizarea mai rațională a dispozitivelor de stocare și
transfer de date.

Compresia este fără pierderi (atunci când este posibilă restaurarea datelor originale fără
distorsiuni) sau pierdută (recuperarea este posibilă cu distorsiuni care nu sunt
semnificative din punctul de vedere al utilizării ulterioare a datelor restaurate). Compresia
fără pierderi este de obicei folosită atunci când prelucrează programe și date
computerizate, mai rar pentru a reduce volumul informațiilor audio, foto și video.
Compresia pierdută este utilizată pentru a reduce volumul informațiilor audio, foto și
video; este mult mai eficientă decât compresia fără pierderi.

Compresia se bazează pe eliminarea redundanței informațiilor conținute în datele sursă.


Un exemplu de redundanță este repetarea fragmentelor din text (de exemplu, cuvinte dintr-
un limbaj natural sau de mașină). O astfel de redundanță este de obicei eliminată prin
înlocuirea secvenței de repetare cu o valoare mai scurtă (cod). Un alt tip de redundanță se
datorează faptului că unele valori din datele comprimate sunt mai frecvente decât altele, în
timp ce este posibil să înlocuim datele care apar frecvent cu coduri mai scurte, iar altele
rare cu cele mai lungi (compresie probabilistică). Compresia datelor care nu au
proprietatea redundanței (de exemplu, un semnal sau un zgomot aleatoriu, informații
criptate) este imposibilă fără pierderi.
2.1.2. Algoritmi criptografic simetrici
În prezent, cifrele simetrice sunt:

Blochează cifrarea. Procesează informațiile în blocuri cu o anumită lungime (de obicei


64, 128 biți), aplicând o cheie blocului în ordinea stabilită, de obicei cu mai multe cicluri
de amestecare și substituire, numite runde. Rezultatul repetării runde este un efect de
avalanșă - o pierdere din ce în ce mai mare de corespondență de biți între blocurile de date
deschise și criptate.
Criptare flux, în care criptarea este efectuată pe fiecare bit sau octetul textului sursă
(deschis) folosind gama. Criptarea fluxului poate fi creată cu ușurință pe baza cifrării bloc
(de exemplu, GOST 28147-89 în modul gamma), lansată într-un mod special.

Majoritatea cifrelor simetrice folosesc o combinație complexă dintr-un număr mare de


permutări și permutări. Multe dintre aceste cifre sunt executate în mai multe pase (uneori
până la 80), folosind o „cheie de trecere” pe fiecare trecere. Setul de „taste de trecere”
pentru toate trecerile se numește „program de chei”. De regulă, este creat dintr-o cheie prin
efectuarea anumitor operațiuni asupra acesteia, inclusiv permutări și înlocuiri.

Un mod tipic de a construi algoritmi de criptare simetrici este rețeaua Feistel.


Algoritmul construiește o schemă de criptare bazată pe funcția F (D, K), unde D este o
bucată de date la jumătatea dimensiunii blocului de criptare, iar K este „cheia de trecere”
pentru această trecere. Funcția nu necesită reversibilitate - funcția inversă este posibil să
nu fie cunoscută. Avantajele rețelei Feistel sunt coincidența aproape completă a decriptarea
cu criptarea (singura diferență este ordinea inversă a „tastelor de trecere” din program),
ceea ce facilitează foarte mult implementarea hardware.
 Operațiunea de permutare redă bișii de mesaj conform legii. În implementările
hardware, este implementat banal ca o înțelegere de conductori. Operațiunile de permutare
permit realizarea „efectului avalanșă”. Operația de permutare este liniară - f (a) xor f (b)
== f (a xor b)

 Operațiunile de înlocuire sunt efectuate ca înlocuirea valorii unei anumite părți a


mesajului (adesea în 4, 6 sau 8 biți) cu un alt număr standard care este încorporat rigid în
algoritm prin accesarea unui tablou constant. Operația de substituție introduce
neliniaritatea în linie.

 Adesea, stabilitatea unui algoritm, în special a criptanalizei diferențiale, depinde de


alegerea valorilor din tabelele de căutare (blocuri S). Cel puțin, prezența elementelor fixe
S (x) = x, precum și absența influenței unui bit din octețul de intrare asupra oricărui bit al
rezultatului sunt considerate nedorite - adică cazurile în care bitul rezultatului este același
pentru toate perechile de cuvinte de intrare care diferă doar în acest bit .

Parametrii algoritmului:
Există mulți (cel puțin două duzini) algoritmi de cifrare simetrici, al căror parametri
esențiali sunt:

 rezistență;

 lungimea cheii;

 numărul de runde;

 lungimea blocului procesat;

 complexitatea implementării hardware / software;

 Complexity complexitatea conversiei;

Algoritmi comuni:
AES (Standard Advanced English Encryption Standard) - standard american de criptare;

OST GOST 28147-89 - standardul intern pentru criptarea datelor;

o DES (Standard Encryption Standard) este un standard de criptare a datelor din

o SUA către AES;

o 3DES (Triple-DES, Triple DES);

o RC6 (Cipher Rivesta);

o Twofish;

o IDEA (algoritmul internațional de criptare a datelor);

o SEED - standard coreean pentru criptarea datelor;

o Camellia - cifrat certificat pentru utilizare în Japonia;

o CAST (pe inițialele dezvoltatorilor Carlisle Adams și Stafford Tavares);

o XTEA este cel mai ușor algoritm de implementat.

Comparație cu criptosistemele asimetrice

avantaje:

o viteză (conform Criptografiei Aplicate - 3 ordine de mărime mai mare);


o ușurință de implementare (datorită operațiilor mai simple);

o lungimea cheii mai scurtă necesară pentru o durabilitate comparabilă;

o cunoștințe (datorate unei vârste mai mari);

dezavantaje:

o complexitatea managementului cheilor într-o rețea mare. Înseamnă o creștere


quadratică a numărului de perechi de chei care trebuie să fie generate, transferate, stocate
și distruse în rețea. Pentru o rețea de 10 abonați, sunt necesare 45 de chei, pentru 100 deja
4950, pentru 1000 - 499500 etc.

o complexitatea schimbului de chei. Pentru utilizare, este necesar să rezolvați


problema transferului de chei fiabil pentru fiecare abonat, deoarece este necesar un canal
secret pentru a transmite fiecare cheie ambelor părți.

Pentru a compensa deficiențele de criptare simetrică, în prezent este utilizată pe scară


largă o schemă criptografică combinată (hibridă), unde criptarea asimetrică transferă cheia
de sesiune folosită de părți pentru a schimba date folosind criptarea simetrică.

O proprietate importantă a cifrelor simetrice este imposibilitatea utilizării lor pentru a


confirma autorul, deoarece cheia este cunoscută de fiecare parte.

Figura 1.3 prezintă o schema bloc algoritmului criptografic simetric TEA.


Figura 1.3. Schema bloc algoritmului criptografic simetric TEA

Algoritmul de criptare TEA se bazează pe operații de biți cu un bloc pe 64 de biți, are o


cheie de criptare de 128 biți. Numărul standard de runde de rețea Feistel este de 64 (32 de
cicluri), cu toate acestea, pentru a obține cele mai bune performanțe sau criptare, numărul
de cicluri poate fi variat de la 8 (16 runde) la 64 (128 runde). Rețeaua Feistel este
asimetrică datorită utilizării adaosului de modulo 232 ca operație.

2.1.3. Codare transport

Codare transport - criptografia utilizează codări suplimentare pentru compatibilitatea cu


protocoalele de transfer de date.

Scopul codării este de a exclude aspectul primelor 32 de caractere ale setului ASCII și
ale altor caractere de serviciu din fluxul de ieșire.

Metodele de implementare pot varia. Adesea folosit este sistemul Base64 (standard -
RFC1251) conceput pentru Internet

2.1.4. Hash cu parolă


Hashing - convertirea unui set de date de intrare de lungime arbitrară într-un șir de biți
de ieșire de o lungime fixă. Astfel de transformări se mai numesc funcții hash sau funcții
de convoluție, iar rezultatele lor se numesc hash, cod hash sau digerarea mesajelor.

Hashing-ul este folosit pentru a compara datele: dacă două tablouri au coduri hash
diferite, matricile sunt garantate a fi diferite; dacă sunt aceleași, matricile sunt cel mai
probabil la fel. În cazul general, nu există o corespondență lipsită de ambiguitate între
datele sursă și codul hash, datorită faptului că numărul de funcții hash este mai mic decât
opțiunile matricei de intrare; Există multe tablouri care dau aceleași coduri hash - așa-
numitele coliziuni. Probabilitatea de coliziuni joacă un rol important în evaluarea calității
funcțiilor de hash.

Există mulți algoritmi de hashing cu diferite caracteristici (adâncimea de biți,


complexitatea de calcul, puterea criptografică etc.). Alegerea unei anumite funcții de hash
este determinată de specificul problemei rezolvate. Cele mai simple exemple de funcții ash
sunt checkum sau CRC. Figura 1.4 prezintă o schema bloc a algoritmului de hash MD5.

Figura 1.4. Organigramă MD5 Hash Algorithm

MD5 este un algoritm de hash pe 128 de biți dezvoltat de profesorul Ronald L. Rivest
de la Massachusetts Institute of Technology (MIT) în 1991. Conceput pentru a crea
"amprente digitale" sau "digituri" de mesaje de lungime arbitrară.
2.1.5. Înlănțuirea algoritmilor

Pentru a rezolva problemele cu repetările blocului, precum și cu dimensiunile de bloc


necesare, modurile de înlănțuire au fost introduse în criptosisteme. Cea mai simplă metodă
este metoda BCE (Electronic Code Book). Fișierul criptat este împărțit temporar în blocuri
egale cu blocurile algoritmului, fiecare dintre ele este criptat independent, apoi din
pachetele de date criptate fișierul este compilat în aceeași secvență, care este acum protejat
în mod fiabil de un algoritm criptografic. Numele algoritmului se datorează faptului că,
datorită simplității sale, a fost utilizat pe scară largă în dispozitive portabile simple de
criptare - cărți criptografice electronice. Schema acestei metode este prezentată în figura
1.5.

Figura 1.5. Schema metodei înlănțuirii BCE

În cazul în care lungimea pachetului de informații transmise nu este un multiplu al


lungimii blocului algoritmului criptografic, este posibil să se extindă ultimul bloc
(incomplet) de octeți la lungimea dorită, fie cu ajutorul unui generator de numere
pseudorandom, care nu este întotdeauna sigur în ceea ce privește stabilitatea criptografică,
fie prin utilizarea sumei hash a textului transmis. A doua opțiune este mai de preferat,
deoarece suma de hash are cei mai buni indicatori statistici, iar popularitatea a priori a unei
terțe părți este echivalentă cu cunoașterea întregului text transmis acestora.

Cele mai frecvente două algoritmi de înlănțuire sunt CBC și CFB. Structura lor este
prezentată în Figura 1.6 și Figura 1.7. Metoda CBC și-a primit numele de la abrevierea
engleză Cipher Block Chaining - combinarea blocurilor de cifrare într-un lanț, iar metoda
CFB - de la Cipher FeedBack - feedback-ul blocului de cifrare.

Figura 1.6. Înlănțuirea metodei de înlănțare CBC

Figura 1.7. Schema de înlănțuire CFB

O altă metodă OFB (Eng. Output FeedBack - feedback despre ieșire) are o structură
ușor diferită (Figura 1.8.).
Figura 1.8. Schema de lanțuri OFB
În el, valoarea suprapusă blocului criptat nu depinde de blocurile anterioare, ci doar de
poziția blocului criptat (în acest sens, corespunde în totalitate scramblerelor) și, din această
cauză, nu extinde interferențele la blocurile ulterioare. Evident, toți algoritmii de înlănțuire
sunt recuperați în mod unic.
3. Pregătirea lucrărilor de laborator
3.1. Folosind manualul metodologic și literatura indicată, studiați principiile de
funcționare a criptosistemelor simetrice.
3.2. Elaborați scheme pe software propus care îndeplinesc următoarele condiții
(prezența / absența blocurilor de sistem):
a) pe prima schemă, prezența unui bloc de arhivare, blocuri de algoritmuri criptografice
și crearea de lanțuri, un bloc de codare de transport, pe a doua schemă aceleași blocuri și
un bloc de generare a parolei (sunt introduse aceleași date).
b) în prima schemă, prezența blocurilor algoritmului criptografic și crearea de lanțuri,
un bloc de codare de transport, în a doua schemă, aceleași blocuri și blocul de arhivare (se
introduc aceleași date).
c) în prima diagramă, prezența blocului de arhivare, blocuri de algoritmi criptografici și
crearea de lanțuri, în a doua diagrama aceleași blocuri și blocul de codare de transport
(sunt introduse aceleași date).

4. Descrierea software-ului
O interfață simplă și convenabilă cu care utilizatorul va efectua cu ușurință lucrările de
laborator. Interfața acestui program poate fi împărțită în mai multe domenii cu scopuri
diferite. Aceasta este zona butoanelor funcționale (1), zona notificărilor și a solicitărilor
(2), câmpul de lucru (3) și comutarea modurilor (4).
Pe câmpul de lucru sunt schemele criptosistemelor. În acest domeniu, activitatea
principală a utilizatorului. În continuare vor fi prezentate exemple de utilizator.
În timp ce lucrează cu programul, utilizatorul poate apela la ajutor trecând mouse-ul
peste butoanele funcționale. Un text apare în zona de notificare cu un indiciu pentru
acțiuni suplimentare. De asemenea, dacă țineți cursorul mouse-ului peste oricare dintre
butoane, va apărea un indiciu despre valoarea acestui buton.
În această zonă de comutare a modului, în ce mod se află programul în prezent. De
asemenea, este posibil să comutați moduri (funcție, cum ar fi butonul de comutare a
modului). Următorul va fi descris mai detaliat despre modurile de operare ale programului.
Zona butoanelor funcționale este prezentată în figura 2.7.

Figura 2.6. Vedere generală a programului


Figura 2.7. Zona butonului funcțional
Funcțiile butonului:
1-Plasarea pe câmpul de lucru a unuia sau a două scheme;
2-Amplasarea pe diagrama unității de arhivare;
3-Plasarea pe diagrama a unui bloc al algoritmului pentru crearea de lanțuri de algoritmi
criptografici, un bloc de parole, un bloc de hash, un bloc de criptare a parolei.
4-Alegerea dintre generarea unei parole sau introducerea ei de către utilizator.
5-Amplasarea pe codul de transport al blocului de circuite.
6-Moduri de comutare.
Pentru a începe să lucreze în program, utilizatorul trebuie să asambleze un circuit. El
poate adăuga sau elimina componente de bloc ale circuitului cu ajutorul butoanelor
funcționale. Figurile de mai jos arată modificările la apăsarea butoanelor.
Când faceți clic pe butonul 1, pe câmpul de lucru al programului apare o diagramă
(figura 2.8)

Figura 2.8. Reprezentarea funcției butonului 1

Data viitoare când apăsați butonul, apare o altă diagramă (figura 2.9).
Utilizatorului i se oferă posibilitatea de a lucra cu o schemă, precum și cu două, dacă
este necesar, comparație de parametri (de exemplu: compararea diverselor taste).
În continuare, pe diagrame, utilizatorul poate plasa componentele necesare în timpul
lucrărilor de laborator.
Figura 2.9. Reprezentarea funcției butonului 1 când este apăsat de două ori

Funcția butonului 2 este de a plasa blocul sau blocurile de arhivare pe diagrame. Figura
2.10 prezintă această funcție.

Figura 2.10. Butonul 2 Reprezentarea funcției


Când faceți clic dreapta pe butonul 2, apare un meniu cu opțiunea de a selecta
amplasarea blocului pe o schemă specifică din primul sau al doilea.
Când este apăsat butonul 3, pe schemele sunt plasate următoarele blocuri: crearea de
lanțuri și un algoritm criptografic, introducerea unei parole, hashing, criptarea unei parole.
Figura 2.11 prezintă modificările când apăsați butonul 3.

Figura 2.11. Butonul 3 Reprezentarea funcției

De asemenea, când faceți clic dreapta pe butonul 3, se deschide meniul pentru selectarea
amplasării blocurilor pe o anumită schemă din prima sau a doua.
Butonul 4 permite modificarea modului de introducere a parolei în sistem. Parola poate
fi introdusă de utilizator sau generată de sistem. Figura 2.12 prezintă modificările atunci
când faceți clic pe butonul 4.
Figura 2.12. Vizualizare funcție buton 4

Făcând clic dreapta pe butonul 4 face posibilă plasarea unității de generare a cheilor pe
un anumit circuit.
Butonul 5 are funcția de a plasa unitatea de codare a transportului pe circuite. Figura
2.13 prezintă funcțiile acestui buton.

Figura 2.13. Butonul 5 Reprezentarea funcției

Apăsarea butonului dreapta al mouse-ului pe butonul 5 oferă acces la meniu pentru


alegerea locației blocului de codare de transport pe o schemă specifică.
Butonul 6 vă permite să treceți sistemul la modul dorit: lucrați sau editați. În același
timp, apar modificări în zona modurilor de comutare (figura 2.14).

Figura 2.14. Funcția butonului 6

În modul de operare activat cu butonul 6, utilizatorul nu mai poate schimba circuitul,


adică să adauge sau să elimine blocuri. În acest mod, utilizatorul poate efectua studii
asupra funcționării unui criptosistem simetric. La trecerea la acest mod, butoanele de
lansare a sistemului sunt de asemenea activate (situate sub diagrame) și alegerea modurilor
de funcționare a sistemului: criptare sau decriptare. Figura 2.15 prezintă modificările.

Figura 2.15. Activarea butoanelor de pornire a sistemului și selectarea modurilor de


funcționare a sistemului.
Următorul exemplu a fost utilizat pentru a demonstra funcționarea programului. În
prima schemă, parola a fost introdusă de utilizator, în a doua schemă a fost generată de
sistem. Figura 2.16 prezintă diagramele de lucru pentru un exemplu.
Figura 2.16. Scheme pentru a demonstra un exemplu

Fluxurile primite erau aceleași pentru a arăta că fluxurile criptate erau diferite cu chei de
criptare diferite.
Fraza: „Lucrări de laborator: Investigarea criptosistemelor simetrice” a fost luată ca
exemplu. Când faceți clic pe blocul „Flux de intrare”, apare o fereastră de introducere a
textului (figura 2.17).

Figura 2.17. Fereastra de introducere a textului


Textul este introdus în caseta albă a ferestrei prezentate în figura de mai sus. Apoi, faceți
clic pe butonul „Ok”. Textul este stocat în memorie pentru utilizare ulterioară.
Apoi, introduceți cheia. De asemenea, atunci când faceți clic pe blocul de parole, apare
o fereastră de intrare a parolei (figura 2.18).

Figura 2.18. Fereastra de intrare cu parolă

Ca parolă, este selectată linia: "123456". Apăsați butonul „Ok” și parola este salvată
pentru utilizare viitoare.
În a doua schemă, introducem și textul „Lucrări de laborator: investigarea
criptosistemelor simetrice”. Parola generată s-a dovedit: "CH (M'o & <v" (figura 2.19).

Figura 2.19. Fereastră generată cu parolă

Generarea parolelor apare după apăsarea butonului de pornire a sistemului. Pornim


ambele sisteme și obținem următoarele rezultate. Când faceți clic pe blocul „Arhivare”,
apare o fereastră, în câmpul alb al cărei text există după arhivare (figura 2.20).

Figura 2.20. Fereastră cu text după arhivare


Pentru ambele sisteme, textul este același după arhivare.
Când faceți clic pe blocul „Hashing”, apare o fereastră cu parola după hashing (Figura
2.21).
Deoarece parolele sunt diferite, valorile sunt diferite chiar și după apăsare. În primul
caz, parola după refulare este „E10ADC3949BA59ABBE56E057F20F883E”, în al doilea
caz, „90382B196354E0B878AA0627F59A2F44”.

а) b)
Figura 2.21. Windows windows după hashing
a - fereastra din diagrama 1
b - fereastra din diagrama 2

Când faceți clic pe blocul „Algoritmul pentru crearea lanțurilor. Criptoalgoritmul ”apare
cu text criptat (figura 2.22).

а) b)
Figura 2.22. Ferestre de text criptate
a - fereastra din diagrama 1
b - fereastra din diagrama 2
În prima figură, cifrul de text este afișat în fereastra primei scheme, în a doua figură
cifratul este afișat în fereastra celei de-a doua scheme.
După codificarea transportului, vom vedea următoarele rezultate prezentate în figura
2.23.

a) b)
Figura 2.23. Windows cu text după transportarea codării
a - fereastra din diagrama 1
b - fereastra din diagrama 2
În primul caz, textul după codarea de transfer:
«TnQaNgLOafzNGdCi8zlNE4pXzZf9PlZtva9iRH40zcU7bCGN + f3X9pHMgOjzSGt /
5NmL + 8oTfS7 + 3 + 6w32u + v1LoBjK + gBuyDQo =», în al doilea caz
«3Hnl6v4eSuiQU2v0lbfzwVnwZK09YtrY / cw / 1IiPr2zmv3yYzaeEEdi8Ehz06OBXttx +
fxGSiGjINDVGxsM + b + XrjA4gMmqpDQo =».
Parola criptată poate fi văzută făcând clic pe blocul de criptare a parolei. Windows cu o
parolă criptată este prezentat în figura 2.24

a) b)
Figura 2.24. Windows windows după criptare
a - fereastra din diagrama 1
b - fereastra din diagrama 2
Parola criptată folosită în primul sistem: „Єв щNp ‡”, iar în al doilea sistem: „Пє -„
ПЈАё] = Яи "#"
Și la final, în figura 2.25, sunt prezentate ferestre cu textul fluxului principal criptat și
cu cheia criptată.
În plus, parola criptată și textul criptat pot fi transmise prin linii de comunicare. În
punctul final, informațiile sunt decodate pentru a fi lizibile.

Figura 2.25. Fereastrele cu flux de informații criptate


Dacă în timpul lucrului utilizatorului cu programul, el uită orice informație despre
algoritmul de prelucrare a datelor, îl poate primi făcând clic pe semnul de întrebare din
colțul ferestrei .
Concluzii:

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