You are on page 1of 53

ACADEMIA FORŢELOR TERESTRE

„NICOLAE BĂLCESCU“

LUCRARE DE LICENŢĂ

CONDUCĂTOR ŞTIINŢIFIC
Lector univ.dr. ing.
TEODORU EMIL

AUTOR
Sd. M.m. ANINIȘI
MARCEL

– SIBIU, 2018–
ACADEMIA FORŢELOR TERESTRE
„NICOLAE BĂLCESCU“

LUCRARE DE LICENŢĂ
TEMA: Utilizarea sistemului de criptare cu chei publice
ElGamal în comunicațiile militare

CONDUCĂTOR ŞTIINŢIFIC
Lector univ.dr. ing.
TEODORU EMIL

AUTOR
Sd. Mm. Aniniși Marcel

– SIBIU, 2018–
REFERAT DE APRECIERE
a lucrării de licenţă

1. Numele şi prenumele absolventului:


______________________________________________________________
__________________________________________________________
2. Domeniul de studii:
______________________________________________________________
__________________________________________________________
3. Programul de studii universitare de licenţă:
______________________________________________________________
__________________________________________________________
4. Tema lucrării de licenţă:
______________________________________________________________
__________________________________________________________
____________________________________________________________
________________________________________________________________
____
5. Aprecieri asupra conţinutului teoretic al lucrării de licenţă (se marchează cu
X):

Nivel de îndeplinire a criteriului


Criterii
minim mediu ridicat excelent
Identificarea stadiului actual al cercetării în
domeniu
Capacitatea de sinteză şi construcţia logică
a argumentaţiei teoretice
Gradul de relevanţă a conţinutului teoretic
în raport cu tema lucrării
Capacitatea de operare cu concepte şi teorii
specific
Gradul de relevanţă şi actualitatea
bibliografiei
Citarea corectă a ideilor şi a conceptelor conform declaraţiei pe propria
preluate din alţi autori, evitarea plagiatului răspundere a autorului lucrării
6. Aprecieri asupra părţii practic-aplicative a lucrării de licenţă (se marchează
cu X):
Nivel de îndeplinire a criteriului
Criterii
minim mediu ridicat excelent
Caracterul logic al organizării demersului
practic-aplicativ
Formularea corectă a obiectivelor
Calitatea metodelor şi instrumentelor de
lucru, corectitudinea utilizării acestora
Pertinenţa concluziilor şi a propunerilor
formulate de autor, derivarea logică a
acestora din studiul realizat
Originalitatea abordării, contribuţii
personale ale autorului

7. Aprecieri privind redactarea lucrării de licenţă:


Nivel de îndeplinire a criteriului
Criterii
minim mediu ridicat excelent
Corectitudinea şi claritatea exprimării,
utilizarea limbajului de specialitate
Calitatea grafică a lucrării
Respectarea exigenţelor de redactare
conform Ghidului metodologic

8. Considerații finale:
________________________________________________________________
________________________________________________________________
________________________________________________________________

Apreciez lucrarea de licenţă cu nota _____________ şi o recomand pentru


a fi susținută în prezenţa comisiei examenului de licenţă.

Data Conducător ştiinţific


CUPRINS
Importanța temei ............................................................................................... 8
Capitolul I ........................................................................................................ 11
1.1 Introducere ............................................................................................. 11
1.2 Generalități privind sistemele de criptare cu cei publice ....................... 11
1.3 Termeni utilizați în criptografie ............................................................. 13
1.4 Criptarea simetrică ................................................................................. 14
1.5 Criptarea asimetrică sau publică ............................................................ 15
1.6 Clasificări ale sistemelor de criptare cu chei publice după tipul de
problemă pe care o au la bază ...................................................................... 17
1.6.1 Sistemul de criptare RSA ................................................................. 17
1.6.2 Sistemul de criptare ElGamal .......................................................... 19
1.6.3 Sistemul de criptare Markle-Hellman ............................................. 21
1.6.4 Sistemul de criptare bazat pe curbele eliptice.................................. 22
1.6.5 Sistemul de criptare McEliece ......................................................... 23
1.2 Descrierea principiului de funcționare al sistemului de criptare cu chei
publice ElGamal ........................................................................................... 23
1.2.1 Schema de criptare ElGamal............................................................ 23
1.2.2 De la schimbul de chei Diffie-Hellman la criptarea ElGamal ......... 24
1.2.3 Protocolul ElGamal .......................................................................... 25
1.3 Aspecte de calcul în sistemul de criptare ElGamal................................ 27
1.3.1 Generarea de chei ............................................................................. 27
1.3.2 Criptarea ........................................................................................... 28
1.3.3 Decriptarea ....................................................................................... 28
1.4 Securitatea sistemului de criptare ElGamal ........................................... 29
1.4.1Atacurile pasive ................................................................................ 29
1.4.2 Atacuri active ................................................................................... 30
Capitolul II ...................................................................................................... 32
Introducere ................................................................................................... 32
2.1 Implementarea algoritmului de criptare ElGamal ................................. 33
2.1.1 Generarea unei perechi de chei ........................................................ 33
2.1.2 Criptarea ........................................................................................... 33
2.1.3 Decriptarea ....................................................................................... 34

6
2.2 Aplicație de criptare a mesajelor folosind algoritmul de criptare
ELGamal ...................................................................................................... 35
2.2.1 Generarea cheilor ............................................................................. 35
2.2.2 Operația de criptare .......................................................................... 37
2.2.3 Operația de decriptare ...................................................................... 38
Capitolul III ..................................................................................................... 41
3.1 Studiu realizat cu ajutorul aplicației pentru criptare cu sistemul ElGamal
...................................................................................................................... 41
3.1.1Criptarea unui mesaj folosind aplicația ............................................ 41
3.2 Analiza performanțelor în domeniul timp după rularea aplicației ......... 44
3.2.1 Variația timpului alocat pentru generarea cheilor ........................... 44
3.2.2 Variația timpului alocat pentru procesul de criptare a mesajului .... 45
3.2.3Variația timpului alocat pentru procesul de decriptare ..................... 47
Concluzii ......................................................................................................... 49
BIBLIOGRAFIE ............................................................................................. 51

7
IMPORTANȚA TEMEI

Criptografia este recunoscută ca fiind știința care asigură siguranța


informației, securizarea acesteia precum și modul de autentificare și
restricționare al acesului utilizatorului într-un sistem informatic. Este baza
multor servicii, aplicații și mecanisme ce asigură securitatea informației
deținute făcând astfel ca accesul la aceasta să fie controlat în permanență, astfel
evitându-se ajungerea la scurgeri de informații, la posibilitatea de modificare a
datelor care pot deveni surse de șantaj.
Criptografia folosește metode matematice de cifrare a datelor, practic o
putem asocia ca fiind știința ce se ocupă cu scrierile secrete, astfel că informația
deținută de utilizator este transformată prin conversie într-un text neinteligibil,
cifrat. Trecerea de la textul criptat, neinteligibil la textul în clar se va face prin
procedeul numit decriptarea informației.
Criptarea și decriptarea folosesc un set de algoritmi, un cifru fiind
controlat de un algoritm și o cheie, această cheie fiind secretă, cunoscută doar
de cei care comunică în contextul schimbului de mesaje.
Întărirea cifrurilor este cea mai importantă problemă de care se ocupă
criptanaliștii, aceștia încercând prin diferite metode de cobinație a unor
substituții și transpoziții aplicate asupra unor blocuri de simboluri sau chiar
simboluri.
Odată cu trecerea timpului și cu apariția sistemelor informatice tot mai
moderne și mai avansate începe să se dezvolte și criptografia care trebuie să
asigure securitatea informațională tot mai greu de realizat cunoscând
numeroase inovații în aceasta privință.
Cererea utilizatorilor asupra siguranței datelor deținute este satisfăcută
prin instrumente folosite efectiv pentru execuția algoritmilor de cifrare,
folosind sisteme informatice tot mai avansate a dus la utilizarea unor chei de
cifrare de dimensiuni mai mari. Cu cât cheia de cifrare este mai mare și este tot
mai des schimbată cu atât este mai greu de spart cifrul, devenind aproape
imposibil, chiar dacă se cunoaște algoritmul de cifrare.
Dacă până acum am vorbit de criptarea cu o singură cheie folosită atât
pentru criptare cât și pentru decriptare, principiu numit cifrare simetrică,
Whitfield Diffie și Martin Hellman, doi cercetători americani, vorbesc de
criptografie asimetrică care este deja implementată în domeniul informatic [5].
Criptografia asimetrică folosește două chei de criptare, cel mai interesant
lucru este că deducerea unei chei din cealaltă este imposibilă.
Este necesar ca una din chei să fie făcută publică (cheia publică), care
este cunoscută atât de expeditor cât și de destinatar, cu ajutorul căreia se
criptează mesajul trimis. Cheile private sunt cele care diferă, cei doi care
comunică au fiecare cheie privată cunoscută numai de ei și au obligația de a
ține secretă cheia. Este folosită la decriptarea mesajelor criptate.
8
Sistemul de criptare El Gamal este sistemul de criptare asupra căruia ne
vom îndrepta atenția în continuare, astfel, în capitolul I, vom face o scurtă
descriere a ceea ce înseamnă criptografie, fiind un domeniu foarte vast și poate
cel mai important pentru siguranța informațiilor.
Domeniul comunicațiilor și informaticii, încă de la crearea primului
sistem informatic, a fost într-o continuă dezvoltare.
Securitatea informațiilor (INFOSEC) a apărut ca urmare a necesității
protejării informațiilor, putem spune că INFOSEC și-a creat un set de strategii
pentru gestionarea proceselor, instrumentelor și politicilor necesare pentru
prevenirea, detectarea documentarea și combaterea amenințărilor la
informațiile digitale și non-digitale [7].
A fost nevoie de introducerea unor sisteme de criptare care să asigure
această securitate, am ales să fac o mică clasificare a celor mai cunoscute
sisteme de criptare, aducând câteva informații generale despre acestea.
Vom vedea că sistemele de criptare sunt împărțite în două mari categorii în
funcție de cheia folosită de fiecare sistem în parte. Astfel avem:

• Sisteme de criptare cu cheie simetrică;


• Sisteme de criptare cu cheie asimetrică.

Sistemul de criptare ElGamal este încadrat în categoria sistemelor de


criptare cu chei asimetrice, aceste sisteme fiind mult mai sigure decât celelalte
cu chei simetrice, care necesită un canal de transfer a cheii de criptare separat.
Pentru descrierea algoritmului de criptare ElGamal, pentru a putea
înțelege mai bine procesele de criptare/decriptare, am aplicat asupra schemei
sistemului un exemplu, cu ajutorul căruia am văzut pe rând pașii care descriu
algoritmul. În capitolul I voi prezenta de asemenea algoritmul de criptare pe
care îl folosește, algoritm care se va dovedi că este unul foarte complex, fiind
foarte greu pentru un eventual atacator să atace schema acestuia, chiar dacă
acesta cunoaște anumite valori ce se înscriu în schema algoritmului [6].
Trecând prin pașii de înțelegere a schemei de criptare ElGamal, în
capitolul II voi descrie aplicația care a fost creată în Matlab 2016a, aplicație cu
ajutorul căreia vom putea cripta diferite mesaje, folosind diferite valori de
intrare, vom face de asemenea un studiu, cu valori introduse în mediul de
programare Matlab, asupra timpului de generare a cheilor, a procesului de
criptare cât și a celui de decriptare.
Comunicațiile militare reprezintă un domeniu în care nu trebuie să existe
greșeală în ceea ce privește securitatea informației, scurgerea de informații
poate duce la un adevărat dezastru pe linia securității naționale. Pentru
asigurarea acestui lucru, trebuie aplicată o foarte mare atenție la sistemele de
criptare folosite, o documentare foarte bună asupra vulnerabilităților ce pot să
apară la folosirea anumitor algoritmi de criptare/decriptare și care sunt
avantajele oferite de sistemul de criptare ales.
9
Implementarea unui sistem de criptare depinde și de sistemele
informatice folosite, cele mai bune sisteme de criptare folosesc foarte multă
memorie în executare criptării, deci cu cât un sistem informatic este mai
performant cu atât sistemul de criptare folosit trebuie să fie mai de actualitate
pentru a avea o siguranță sporită a informației [8].
Studiul pe care îl voi face asupra sistemului de criptare ElGamal are ca
principale obiective înțelegerea schemei de criptare, recunoașterea
principalelor vulnerabilități și cum ar putea fi ele evitate, ce avantaje are și care
ar putea fi posibilitățile de up-grade. Având toate aceste informații va fi ușor în
procesul de luare a deciziei pentru cel mai eficient algoritm de criptare și dacă
este posibil de implementat în actualele sisteme informatice [10].

10
CAPITOLUL I

1.1 Introducere

Domeniul criptografiei ne oferă în ziua de azi numeroase sisteme de


criptare, fără de care siguranța informației nu ar exista, fiecare dintre aceste
sisteme are algoritmul propriu de criptare/decriptare.
Sunt sisteme care au la bază principii de criptare întâlnite la altele, asupra
cărora s-au adus modificări în scopul obținerii unor sisteme de criptare mai
performante, care aduc un grad mai ridicat de siguranță. Sistemul de criptare
ElGamal are la bază, de exemplu, principiul schimbului de chei al lui Diffie-
Hellman, sistemul de criptare ElGamal fiind unul de complexitate mare. Peste
acest principiu s-a lucrat la un sistem care să asigure o protecție a informației
mai ridicată [1].
Capitolul I, va aduce o clasificare a sistemelor de criptare,(cele mai
cunoscute), se va face o abordare generală asupra acestora pentru a putea să
integrăm sistemul de criptare ElGamal într-o categorie de sisteme de criptare.
Sitemul de criptare ElGamal va fi descris în acest capitol, plecând de la
cel care s-a ocupat de crearea lui (Taher ElGamal) până la schema de criptare.
Schema de criptare este detaliată, este descris fiecare pas folosit de
sistem, pentru a înțelege mai bine schema, am aplicat asupra ei un exemplu
numeric, la finalul căruia, algoritmul de criptare este verificat [19].
Fiecare sistem de criptare, are și avantaje dar și dezavantaje, am ales să
descriu pe cele mai importante și cele mai des întâlnite, am prezentat și variante
posibile de remediere a vulnerabilităților, sau dacă nu au fost am adus
specificații asupra modului de evitare a acestora. Un eventual atacator poate
folosi anumite valori ce intră în schema de criptare, cu ajutorul cărora poate
obține informația. Niciun sistem de criptare nu este sigur, sistemele informatice
avansează tot mai mult, sunt mai performante, ceea ce implică implementarea
unui sistem de criptare în acord cu ele [18].
Obiectivul principal al acestui capitol este înțelegerea principiului de
funcționare (care sunt pașii necesari pentru implementarea algoritmului,
valorile ce se folosesc în cadrul schemei).

1.2 Generalități privind sistemele de criptare cu cei publice

Criptografia cu chei publice sau criptografia asimetrică reprezintă orice


sistem criptografic care utilizează perechi de chei:

11
• chei publice care pot fi difuzate pe scară largă
• chei private care sunt cunoscute numai proprietarului.

Acest lucru realizează două funcții:

• autentificare, când posesorul unei chei publice verifică faptul că un


posesor al cheii private asociate a trimis mesajul
• criptarea, în care numai deținătorul cheii private asociate poate decripta
mesajul criptat cu cheia publică [12].

Într-un sistem de criptare cu chei publice, orice persoană poate cripta un


mesaj utilizând cheia publică a receptorului. Acest mesaj criptat poate fi
decriptat însă numai cu cheia privată a receptorului. Puterea unui sistem de
criptografie cu chei publice se bazează pe efortul de calcul (factor de lucru în
criptografie) necesar pentru a găsi cheia privată din cheia publică asociată [2].
Securitatea eficientă necesită numai păstrarea privată a cheii private;
cheia publică poate fi distribuită în mod deschis fără a compromite securitatea.
În general, sistemele criptografice cu chei publice se bazează pe relații
sau probleme matematice, iar algoritmii nu necesită canal securizat pentru a se
efectua schimbul de chei între părți [11].
Criptarea asimetrică fiind un proces foarte complex se folosește la
blocuri mici de date, în general la transferul unei chei de criptare simetrice.
Sistemul de semnătură securizat este un sistem sigur, este aproape
imposibil de calculat pentru orice persoană care cunoaște criptografie (cheia
privată să fie dedusă din cea publică) [4].
Deci securitatea, autenticitatea mesajului depinde doar de proprietarul
cheii private, care trebuie să țină secretul cheii, fiind singurul care poate aduce
modificări în cadrul mesajului.
Standardele de internet, cum ar fi Transport Layer Security (TLS),
S/MIME, PGPși GPG au ca fundamente de susținere algoritmii cu cheie
publică. Unii algoritmi cu chei publice au rolul de a furniza distribuția și
secretul cheilor (de exemplu, schimbul de chei Diffie-Hellman), altele creează
semnături digitale (de exemplu Algoritmul digital de semnătură), iar unele au
capacitatea de a le furniza pe ambele (de exemplu, sistemele RSA sau EL-
Gamal) [30].
Criptografia cu chei publice se regăsește în disciplina de securitate a
tehnologiei informației, fiind un pilon important în crearea metodelor de
protejare a bunurilor informatice de unele atacuri ce pot duce la pierderea
confidențialității și autenticității.
ElGamal este sistem de criptare, un algoritm de criptare cu cheie
asimetrică care folosește schimbul de chei Diffie-Hellman. Acest sistem oferă
o mai mare securitate a datelor folosind chei asimetrice de criptare fiind descris
de Taher ElGamal în 1985 [32].
12
Criptarea ElGamal este utilizată în software-ul GNU Privacy Guard, in
PGP la versiunile recente și în alte criptosisteme. Algoritmul semnăturii
digitale (DSA) este o variantă a schemei de semnătură ElGamal, care nu trebuie
confundată cu criptarea ElGamal [33].

1.3 Termeni utilizați în criptografie

• algoritmul criptografic este procedeul care se folosește atât pentru


criptarea textului în clar cât și pentru decriptarea acestora urmând
anumiți pași;
• cheia de criptare reprezintă un șir de caractere cu care se poate modifica
mesajul (cu ajutorul ei putem controla criptarea si decriptarea mesajului);
• cheie simetrică-pentru criptarea datelor, atât destinatarul cât și
expeditorul dețin aceeași cheie de criptare;
• cheie asimetrică-cheile de criptare folosite de destinatar și expeditor sunt
diferite.
• cifrarea reprezintă modalitatea prin care un șir de caractere sau un număr
de biți suferă o transformare criptografică;
• criptograma reprezintă textul cifrat sau mesajul neinteligibil;
• cifrul bloc –textul inițial este împărțit în blocuri de câte n caractere
fiecare asupra cărora se aplică un algoritm și o cheie care este identică
pentru fiecare bloc;
• codurile -transformări care acționează asupra cuvintelor sau a frazelor;
• criptosistem - o serie de algoritmi care se folosesc în scopul
implementării unei criptări sau decriptări, de obicei fiind alcătuit din 3
algoritmi:

1. algoritm pentru generarea cheii;


2. algoritm pentru criptarea mesajului textului în clar;
3. algoritm pentru decriptarea mesajului criptat.

Acest termen se folosește de obicei când generarea cheii este de importanță


maximă și atunci când se face referire la criptarea publică;
• criptanaliza - reprezintă procedeul prin care se obține textul în clar din
cel cifrat, respectiv a cheii pentru obținerea informației necesare acesui
scop;
• criptarea - este operațiunea prin care mesajul în clar este trecut într-o
formă neinteligibilă astfel încât acesta să nu fie accesat de persoane
neautorizate;
• criptarea înlănţuită – odată trimis mesajul el va circula între mai multe
noduri, fiind recepționat de un nod intermediar, care îl decriptează cu
aceeași cheie cu care a fost criptat și îl criptează din nou folosind o altă

13
cheie după care îl trimite la următorul nod unde se repetă același algoritm
până când mesajul ajunge la destinatar;
• criptografia reprezintă știința care se ocupă de ascunderea semnificației
unei comunicări astfel încât să se evite interceptarea acesteia de persoane
neautorizate;
• decriptarea –operațiunea prin care un mesaj neinteligibil este
transformat într-un mesaj inteligibil. Acest lucru se face cu ajutorul cheii
de decriptare;
• sistemul de criptare reprezintă o serie de transformări în urma cărora un
text în clar ajunge într-o formă neinteligibilă;
• steganografia mesajul secret este ascuns într-o imagine digitală [20].

Faptul că transmisia de informații și date în Internet este de obicei


neprotejată, a fost nevoie de dezvoltarea unor tehnici de apărare a acestor date
prin crearea diferitelor procedee de criptare care au fost implementate în
rețelele de calculatoare. Aceasta va fi principala activitate a criptanaliștilor care
vor încerca să implementeze cele mai bune sisteme de criptare a informației
astfel încât aceasta să-i fie accesibilă doar celui care are acest drept [37].

1.4 Criptarea simetrică

Algoritmii cu cheie secretă – au ca principală caracteristică faptul că atât


la
criptarea textului în clar cât și la decriptarea acestuia se folosește o singură
cheie. Acest lucru implică desigur faptul ca acea cheie este cunoscută doar de
destinatar și de expeditor. Deoarece se folosește o singură cheie, acești
algoritmi se mai numesc și algoritmi simetrici.
Avantajul criptării simetrice îl reprezintă rapiditatea cu care se
desfășoară întregul proces (criptarea și decriptarea mesajului) .Succesul acestui
sistem este dat de mărimea cheii, astfel cu cât cheia este mai mare cu atât este
mai sigură în exploatare. De obicei, o cheie dacă are mai mult de 128biți aceasta
este considerată ca fiind una sigură [31].
De aici putem deduce că sistemele de criptare cu cheie simetrică are trei
caracteristici:
1. siguranță în exploatare;
2. rapiditate în procesul de criptare/decriptare;
3. volumul de date ce pot fi criptate este foarte mare.

14
Figura 1.4: Procesul de criptare/decriptare simetric

În figura 1.4 este descrisă schema de criptare/decriptare a unui sistem de


criptare cu chei simetrice, în care o singură cheie este folosită atât pentru
procesul de criptare cât și pentru cel de decriptare.
Există și un dezavantaj al acestui tip de criptare, acela că înainte de a începe
transmisia trebuie cunoscute deja cheile necesare criptării/decriptării, astfel
este nevoie de un canal cu transmisie protejată prin care se trimit cheile de
criptare/decriptare [21].

1.5 Criptarea asimetrică sau publică

Criptarea publică este descrisă prin faptul că în procesul de criptare/decriptare


se folosesc chei diferite, una publică și una privată. Cheia publică poate fi
cunoscută de orice persoană care dorește să trimită un mesaj criptat, cheia
privată fiind cunoscută doar de destinatar, care o folosește la procesul de
decriptare al mesajului trimis într-o formă neinteligibilă. Acest lucru a dus la
faptul că nevoia de a face schimb de chei secrete a fost eliminată, de aici și
numele de sisteme de criptare asimetrice sau de algoritmi asimetrici [15].
Folosind un algoritm asimetric în comunicarea dintre emițător și
destinatar, implică faptul că fiecare dintre aceștia va deține câte un set de chei-
publică și privată. Deci emițătorul poate cripta un mesaj cu cheia publică a
receptorului , însă decriptarea mesajului nu o poate face decât destinatarul care
folosește cheia privată (cunoscută doar de el) în acest scop [34].

15
Figura 1.5 Procesele de criptare/decriptare cu chei publice

Procesele de criptare/decriptare prezentat în figura 1.5 cu chei publice


evidențiază faptul că, cheile de decriptare sunt diferite, atât expeditorul cât și
destinatarul au chei diferite cunoscute doar de ei.
Cheile algoritmilor asimetrici sunt generate aplicând formule
matematice din algebra numerelor mari, pentru numere prime între ele, astfel
încât valoarea unei chei să nu poată fi dedusă din valoarea celeilalte. Este un
adevărat avantaj al acestor sisteme ce folosesc chei publice, deoarece nu mai
este necesar să mai existe un canal securizat prin care să se transmită cheile.
În fapt, imposibilitatea deducerii unei chei din cealaltă reprezintă piesa
de rezistență a sistemelor de criptare cu chei asimetrice [41].
Utilizatorii de Internet folosesc cu succes acest sistem criptare cu cheie
publică, fiindcă s-a ajuns la eliminarea schimbului preliminar de chei pe canale
protejate, ca în cazul algoritmilor cu cheie simetrică [16].
Cheia publică poate circula fără probleme pe Intranet (Rețeaua locală)
sau pe Internet, mesajele ce au fost criptate cu această cheie nu pot fi decriptate
decât de destinatar care deține cheia privată, cu care poate decripta textul trimis
în format neinteligibil. Putem spune ca odată ce expeditorul criptează mesajul
acesta nu mai poate face nimic asupra lui, modificările la acest mesaj nu pot fi
făcute decât de destinatar folosind cheia privată.
Cel mai mare dezavantaj al acestui tip de criptare este că necesită foarte
mult timp pentru operațiile de criptare și decriptare. Cu cât cheia de criptare
este mai mare cu atât crește perioada de timp necesară pentru procesul de
decriptare, dimensiunile cheilor asigurând diferite grade de securitate. Exisă
posibilitatea ca datele dorite să nu mai fie de actualitate dacă procesul de
decriptare durează prea mult. O modalitate de a reduce timpul de
criptare/decriptare este utilizarea unor procesoare de putere mare [22].

16
1.6 Clasificări ale sistemelor de criptare cu chei publice după tipul de
problemă pe care o au la bază

De-a lungul timpului securitatea informației și a datelor a reprezentat o


adevărată provocare, astfel s-a ajuns la crearea unor sisteme de criptare care au
ecuații diferite, folosesc algoritmi proprii astfel încât informația sa fie în
siguranță.
În cele ce urmează voi descrie cele mai cunoscute sisteme de criptare la
momentul actual, astfel avem:
• Sistemul RSA: sistemul de criptare cel mai larg folosit în zilele noastre,
se bazează pe descompunerea în factori primi a numerelor mari (sute de
cifre).
• Sistemul El Gamal: se bazează pe calculul logaritmului discret într-un
corp finit.
• Sistemul Merkle-Hellman: bazat pe problema rucsacului, este și primul
sistem de criptare cu cheie publică folosit.
• Sisteme bazate pe curbe eliptice: după cum spune și numele sunt sisteme
de criptare al căror calcul urmărește mulțimea de puncte ale curbelor
eliptice.
• Sistemul McEliece: se bazează pe teoria algebrică a codurilor,
decodificarea codului liniar fiind o problemă NP-completă [3].

1.6.1 Sistemul de criptare RSA

Codul de criptare cu chei publice RSA este un algoritm vast folosit de


sistemele informatice moderne pentru criptarea și decriptarea mesajelor.
Folosind două chei de criptare diferite acesta este un algoritm criptografic
asimetric. Acest tip de criptare se mai numește și criptografie publică, deoarece
una dintre ele poate fi dată tuturor, cealaltă cheie trebuie păstrată în secret .
Cei care l-au descris pentru prima dată în anul 1978 au fost Ron Rivest,
Adi Shamir și Leonard Adleman de unde și acronimul RSA care s-au folosit de
faptul că găsirea factorilor unui număr întreg este greu(problema factoring).
Un utilizator creează și publică apoi produsul de două numere prime, împreună
cu o valoare auxiliară, ca cheia publică. Principalii factori trebuie păstrați în
secret. Orice persoană poate folosi cheia publică pentru a cripta un mesaj, dar
cu metodele publicate în prezent, dacă cheia publică este suficient de mare,
numai cineva care are cunoștință de factorii primi poate decodifica mesajul în
mod corect [23].
RSA are și slăbiciuni, fiind un algoritm de criptare determinist, nu are
componentă aleatoare, un eventual atacator poate lansa cu succes un atac
plaintext ales împotriva sistemului. Aceștia pot face un dicționar prin criptarea
unor texte posibile folosind cheia publică și prin stocarea textelor criptate

17
rezultate. Atacatorul poate observa canalul de comunicare, iar odată ce au
descoperit textele criptate folosite și care se potrivesc cu cele din dicționar,
atacatorii îl pot folosi pentru a afla conținutul mesajului [13].
Următorul algoritm este folosit în RSA:
• Se alege p și q;
• Se calculează n=p*q;
• Determinarea 𝜑(n)=(p-1)*(q-1);
• Se alege o valoare e astfel încât 1<e< 𝜑(n); e și n trebuie să fie prime
între ele;
• Se calculează valoarea d astfel încât (d*e)mod 𝜑(n)=1;
• Valoarea cheii publice este (e,n);
• Valoarea cheii private este (d,n);
• Pentru operația de criptare avem C=𝑚𝑒 (mod n)
• pentru decriptare m=𝑐 𝑑 (mod n).
Urmând îndeaproape algoritmul descris mai sus, textul în clar este criptat
în cifru, iar după acesta este decriptat din text cifrat în text clar.
La algoritmul RSA, principalul dezavantaj îl reprezintă timpul foarte
mare folosit pentru criptare, viteza de procesare este foarte mică pentru cifrarea
textului clar, în fapt acesta este principalul dezavantaj al sistemelor de criptare
ce folosesc chei asimetrice din cauza existenței a două chei [14].

Figura 1.6.1 Principiul de funcționare a criptării RSA

Cele mai cunoscute atacuri asupra sistemului de criptare RSA sunt


următoarele:
Dacă criptarea se face cu un exponent de valoare mică (Ex: e=3), iar
valorile pentru parametrul m sunt de asemenea de valori mici (Ex: m˂n1/e),
rezultatul calculului me o sa fie o valoare strict mai mică decât modulul lui n.
Astfel decriptarea se poate face foarte ușor calculând rădăcina de ordin e a
cifrului, asupra întregilor [24].
18
Dacă același text va fi trimis către un număr e sau mai mulți destinatari
având o criptare specifică și destinatarul dispersează același exponent e, cu p și
q, respectiv n, diferiți, textul în clar devine foarte ușor de decriptat folosind
metoda teoremei chinezești care se poate utiliza indiferent dacă textele sunt sau
nu egale, dar atacatorul cunoaște o relație linear între ele. Acest lucru a fost
studiat de Johan Hastad urmând ca mai târziu această metodă să fie
îmbunătățită de Don Coppersmith [17].
RSA este un sistem de criptare care nu folosește variabile aleatoare,
atacatorii folosind cu succes această slăbiciune prin crearea unui text simplu
ales împotriva sistemului, astfel criptând texte simple cu cheie publică pot
verifica dacă acestea sunt egale sau nu cu cifrul. Un criptosistem este considerat
securizat semantic numai dacă un atacator nu poate face diferența între criptări,
chiar dacă se cunoaște textul in clar. RSA este un sistem de criptare care nu este
securizat semantic. În acest sistem produsul a două cifruri este egal cu criptarea
produsului textului clar respectiv.

1.6.2 Sistemul de criptare ElGamal

Sistemul El Gamal este un sistem de criptare cu chei publice bazat pe


problema logaritmului discret. Este compus din două componente, algoritmi de
criptare și semnătură. Algoritmul semnăturii este similar cu algoritmul de
criptare prin faptul că cheia publică și cheia privată au aceeași formă; în orice
caz, criptarea nu este identică cu verificarea semnăturii, nici decriptarea cu
crearea semnăturii. Crearea semnăturii depinde de algoritmul semnăturii El
Gamal.
Principalul dezavantaj al sistemului este că timpul necesar proceselor de
criptare respectiv decriptare este destul de mare. Un alt dezavantaj potențial al
sistemului este acela că în timpul criptării lungimea mesajului se dublează. Cu
toate acestea, o astfel de extindere a mesajului este neglijabilă dacă sistemul de
criptare este folosit numai pentru schimbul cheilor secrete.
Cel mai mare avantaj al sistemului de criptare ElGamal îl reprezintă
faptul că este foarte dificilă calcularea logaritmului discret, astfel pentru a putea
cripta sau decripta trebuie să se calculeze logaritmul discret [25]
( vezi figura 1.6.2).

19
Figura 1.6.2 Procesul de criptare și decriptare ElGamal.

20
Proprietățile grupului abelian sunt cele care asigură securitatea
sistemului de criptare ElGamal, la fel și de schemele folosite, scheme de
„umpluturi”, folosite în procesul de criptare.
După cum știm sistemul de criptare ElGamal se bazează pe principiul
folosit de Diffie-Hellman, astfel dacă o presupusă problemă de calcul de tip
Diffie-Hellman înglobează un grup ciclic abelian fundamental, funcția de
criptare va fi de tip one-way, iar dacă o presupusă problemă este cuprinsă în
cadrul grupului atunci sistemul de criptare ElGamal va primi numele de sistem
de criptare cu securitate semantică.
Pentru a îndeplini cerințele unei securități puternice în direcția atacurilor
bazate pe cifruri alese, schema trebuie modificată și mai mult sau o schemă
adecvată a ”umpluturilor” trebuie folosită. În funcție de modificări, problema
decizională Diffie-Hellman poate fi sau nu necesară.
Alte scheme legate de algoritmul El-Gamal care să întărească securitatea
împotriva atacurilor prin cifrul ales, au fost de asemenea propuse. Sistemul de
criptate Cramer-Shoup este securizat pentru aceste tipuri de atacuri prin
presupuneri de tip problemă decizională Diffie-Hellman pentru grupul abelian
selectat. Altă schemă propusă este DHAES, a cărei soluție solicită o
presupunere mult mai slabă decât problema enunțată anterior [26].

1.6.3 Sistemul de criptare Markle-Hellman

Este un sistem de criptare bazat pe problema rucsacului. A fost unul


dintre cele mai vechi sisteme de criptare cu chei publice inventate de Ralph
Merkle și Martin Hellman în 1978.
Este un tip de criptosistem asimetric, ceea ce înseamnă că folosește două
chei de criptare, comunicarea fiind posibilă doar dacă există atât o cheie publică
cât și o cheie privată, în afară de aceasta, spre deosebire de RSA, cheia publică
este folosită doar pentru criptare, iar cheia privată este folosită doar pentru
decriptare, astfel că sistemul devine inutilizabil pentru autentificare prin
semnătură criptogrfică [27].
Acest sistem de criptare se bazează pe problema sumei subsetului, astfel
fiind date un set de numere A și un număr b. În general, problema este
cunoscută a fi NP-completă. Cu toate acestea, dacă setul de numere(rucsacul)
este foarte mare, ceea ce înseamnă că fiecare element al setului este mai mare
decât suma tuturor numerelor din mulțimea mai mică decât aceasta, problema
fiind ușoară și rezolvabilă cu un algoritm simplu.
În Merkle-Hellman, cheile sunt descrise de două „rucsacuri”, cheia
publică fiind un rucsac „dur” A, iar cheia privată este un rucsac „ușor” B,
combinate cu două numere suplimentare, un multiplicator și un modul.
21
Multiplicatorul și modulul pot fi utilizate pentru a transforma rucsacul cu valori
mari în rucsacul dur. Aceleași numere sunt folosite pentru a transforma suma
subsetului rucsacului dur în suma subsetului rucsacului ușor.
Pentru a cripta un mesaj, se selectează un subset al rucsacului dur A,
comparându-l cu un st de biți(plaintext) egal cu lungimea cheii. Fiecare termen
din cheia publică care corespunde cu 1 în plaintext este un element al subsetului
A, în timp ce termenii care corespund cu 0 în plaintext sunt ignorați atunci când
se construiește A-deci nu sunt elemente ale cheii. Elementele acestui subset
sunt adăugate împreună, iar suma rezultată este textul cifrat .
Decriptarea este posibilă deoarece multiplicatorul și modulul utilizat
pentru a transforma rucsacul ușor în cheia publică. Pot fi, de asemenea, folosite
pentru a transforma numărul reprezentând textul cifrat în suma elementelor
corespunzătoare ale rucsacului cu valori mari. Apoi se folosește un algoritm
simplu asupra rucsacului ușor pentru rezolvarea și decriptarea mesajului.

1.6.4 Sistemul de criptare bazat pe curbele eliptice

Criptografia curbelor eliptice(ECC) se bazează pe structura algebrică a


curbelor eliptice asupra câmpurilor finite. ECC necesită chei mai mici
comparativ cu criptografia non-ECC(bazată pe câmpuri simple Galois) pentru
a oferi o securitate echivalentă.
Curbele eliptice sunt valabile pentru acordul cheie, semnăturile digitale,
generatoarele pseudo-aleatoare și alte sarcini. Indirect, ele pot fi folosite pentru
criptare prin combinarea acordului cheie cu o schemă simetrică de criptare.
Criptografia cu chei publice putem spune că se bazează pe probleme
matematice greu de tratat. Sistemele publice cu cheie publica sunt sigure și se
presupune că sunt foarte greu de spart, fiind foarte dificil de a factoriza un întreg
compus din doi sau mai mulți factori primi de valori mari. Există protocoale
care se bazează pe acest sistem de criptare, în care găsirea logaritmului discret
al unui element de curbă eliptică aleatorie față de un punct de bază cunoscut
public este imposibilă. Siguranța acestui tip de sistem de criptare depinde de
capacitatea de a calcula o multiplicare de puncte și de incapacitatea de a calcula
multiplicarea, ținând cont de punctele originale și de produs. Deci dimensiunea
curbei eliptice va determina gradul de securitate a sistemului.
Cel mai mare beneficiu al acestui sistem este că oferă o cheie de
dimensiune mai mică, reducând cerințele de stocare și transmisie, adică un grup
de curbe eliptice ar putea oferi aclași nivel de securitate oferit de un sistem
bazat pe RSA,cu un modul mare și o cheie corespunzătoare mai mare [28].

22
1.6.5 Sistemul de criptare McEliece

În criptografie, criptosistemul McEliece este un algoritm de criptare


asimetric dezvoltat în 1978 de Robert McEliece. A fost prima astfel de schemă
de a folosi randomizarea în procesul de criptare însă algoritmul nu a avut prea
mult succes în comunitatea criptografică, dar este un candidat pentru
„criptografie post-cuantică”, deoarece este imun la atacuri folosind algoritmul
Shor și- în general-la măsurarea stărilor utilizând eșantionarea Fourier.
Algoritmul se bazează pe duritatea decodificării unui cod liniar general
(cunoscut ca fiind NP-hard). Pentru o descriere a cheii private, este selectat un
cod de corectare a erorilor pentru care este cunoscut un algoritm eficient de
decodificare și care poate corecta erorile. Algoritmul inițial utilizează codurile
binare Goppa (codurile de subcâmp pentru codurile geometrice Goppa ale unei
curbe de gen 0 pe câmpurile finite ale caracteristicilor 2); aceste coduri sunt
ușor de decodat, datorită unui algoritm eficient datorat lui Patterson. Cheia
publică este derivată din cheia privată prin mascarea codului selectat ca un cod
liniar general [29].
Din descrierea scurtă realizată pentru fiecare sistem de criptare în parte
reiese faptul că până acum nu s-a descoperit un sistem de criptare, un algoritm
matematic care sa nu fie vulnerabil la atacuri, ecuațiile folosite si algoritmii de
criptare sunt de tip determinist, dar există și avantaje ale sistemelor de criptare
care ne dau încrederea necesară să le folosim în continuare. Algoritmii folosiți
fiind foarte greu de calculat, atacurile și incidentele de securitate apar foarte rar
[30].

1.2 Descrierea principiului de funcționare al sistemului de criptare cu


chei publice ElGamal

1.2.1 Schema de criptare ElGamal

Schema de criptare Elgamal a fost propusă de Taher Elgamal în 1985.


Deseori este denumit și sistemul de criptare ElGamal, care poate fi privit ca o
extensie a protocolului DHKE. Sistemul de criptare Elgamal se bazează pe
principiul folosit de Diffie-Hellman. Considerăm Schema de criptare ElGamal
peste grupul Zp*, unde p este un număr prim. Cu toate acestea, schema de
criptare se poate aplica și în cadrul altor grupuri ciclice în care problemele DL
și DH sunt imposibil de tratat [9].

23
1.2.2 De la schimbul de chei Diffie-Hellman la criptarea ElGamal

Pentru a putea înțelege schema de criptare ElGamal este necesar să


vedem ce pași urmărește DHKE.
Să considerăm două persoane, un expeditor și un destinatar, George și
Bogdan. Dacă George dorește să-i trimită lui Bogdan un mesaj criptat x,
ambele părți efectuează mai întâi un schimb de chei folosind protocolul Diffie-
Hellman pentru a obține o cheie comună Ky . Pentru acest lucru este necesar sa
fie ales un număr prim p și o valoare α . Acum George va folosi această cheie
ca o mască de multiplicare cu care va cripta mesajul x (figura 1.2.1) :

y≡x*Ky*mod p

Figura 1.2.1

Protocolul este format din două faze, clasicul DHKE (include pașii a-f)
urmat de criptarea și decriptarea mesajelor (pașii g respectiv h). Bogdan își
calculează cheia privată d și cheia publică β. Această pereche nu se va mai
putea modifica, este o pereche de chei cu ajutorul căreia se pot cripta multe
mesaje.
George trebuie și el la rândul său să genereze o nouă pereche de chei
publice-private pentru criptarea fiecărui mesaj. Cheia privată este dată de
valoarea lui i și cheia publică de KE. Cheia comună va fi desemnată de KM care
va fi utilizată pentru criptarea textului în clar.
Pentru a cripta mesajul, George nu trebuie decât să aplice peste mesajul
în clar x cheia de criptare KM din Z*P. Deci mesajul x al lui George se înmulțește
cu valoarea cheii de criptare KM extrasă din Z*P.
În partea cealaltă, destinatarul (Bogdan) inversează criptarea înmulțind
cu masca inversă, adică peste textul criptat aplică valoarea cheii sale private
24
care este cunoscută exclusiv doar de el, fiind singurul care poate decripta
mesajul și care ar putea aduce modificări acestuia.
De reținut este faptul că o proprietate a grupurilor ciclice este aceea că,
dată fiind orice cheie KM ce aparține lui Z*p, fiecare mesaj ajunge să fie
transformat într-un alt text cifrat, acest lucru fiind posibil numai dacă cele două
valori se înmulțesc. Mai mult, dacă cheia KM este extrasă într-un mod aleatoriu
din Z*P, fiecare mesaj criptat yє {1,2,...,p-1} are aceeași probabilitate de
criptare. [10]

1.2.3 Protocolul ElGamal

Vom descrie protocolul ElGamal printr-o abordare oarecum formală a schemei.


Există trei faze:

• Faza de configurare care este efectuată în scopul obținerii cheii publice


cu care se criptează mesajul în clar primit.
• Faza de criptare.
• Faza de decriptare, proces ce are loc de fiecare dată când un
mesaj este trimis.

Spre deosebire de DHKE, în sistemul de criptere ElGamal cheia publică


se calculează și se poate dezvălui. De obicei se creează baze de date speciale
care conțin chei publice. Deci în cazul nostru Bogdan poate să calculeze mai
multe chei publice, pe care le poate introduce într-o bază de date sau chiar pe
site-ul său.
Următoarea schemă (figura 1.2.2) descrie pașii ce trebuie parcurși în
sistemul de criptare ElGamal:

25
Figura 1.2.2

Actualul protocol de criptare ElGamal rearanjează secvența de operațiuni


folosită de Diffie-Hellman. Textul cifrat constă din două părți:
• Cheia efemeră kE;
• Masca textului în clar y.
Întrucât, în general, toți parametrii au o lungime de biți de [log2 p], textul cifrat
(kE, y) este de două ori mai mare decât mesajul. Astfel, în sistemul de criptare
ElGamal are loc o expansiune a mesajului, factorul de expansiune fiind de 2.
Vom demonstra în continuare corectitudinea protocolului ElGamal.
Astfel, trebuie demonstrat că dkpr(kE, y) generează de fapt mesajul inițial x [35].

Vom considera un exemplu cu numere mici (figura 1.2.3) care îl vom


aplica la schema anterioară. În acest exemplu, Bogdan generează cheile de
criptare ElGamal și George criptează mesajul x= 26.

26
Figura 1.2.3

Este important de menționat faptul că, spre deosebire de versiunea


schemei RSA, ElGamal este o schemă foarte probabilistică de criptare, adică
criptarea a două mesaje x1 și x2, unde x1, x2 єZp*, se face folosind aceeași cheie
de criptare (cheia publică), însă mesajele criptate sunt transformate în așa fel
încât să difere foarte mult, y1≠y2. Acest lucru se datorează faptului că valoarea
lui i este aleasă aleatoriu din intervalul {2,3,...p-2} pentru fiecare proces de
criptare și, astfel, și cheia de mascare KM=βi utilizată pentru criptare este aleasă
la întâmplare pentru fiecare criptare. În acest fel decriptarea mesajului x este
aproape imposibil de realizat.

1.3 Aspecte de calcul în sistemul de criptare ElGamal

1.3.1 Generarea de chei

În timpul generării de chei efectuate de către receptor ( în cazul nostru


Bogdan), valoarea parametrului p trebuie să fie generată, iar cheia publică și
cea privată trebuie să fie calculate. Securitatea sistemului de criptare ElGamal
depinde, după cum am văzut de problema logaritmului discret, iar p trebuie să
respecte anumite reguli atunci când este ales. Este necesar ca valoarea lui p să
aibă o lungime de cel puțin 1024 de biți. Cheia privată ar trebui să fie generată
de un sistem special destinat pentru generarea de valori discrete ( generator de
numere aleatoare). Cheia publică va trece și ea prin anumite operații de
exponențializare, folosind principiul „square-and-multiply”, adică, în cadrul
mesajului inițial are loc o expansiune cu un factor de 2 și este multiplicat.

27
1.3.2 Criptarea

În cadrul procedurii de criptare, trebuie efectuate operații de


exponențializare și de multiplicare pentru a putea fi calculată valoarea efemeră
și masca de criptare, astfel încât să se poată realiza criptarea mesajului x. Toți
operanzii folosiți în acest proces trebuie să aibă o lungime mai mică de[ log2 p].
Pentru a avea o exponențializare eficientă, trebuie folosit principiul amintit mai
devreme și anume „sqare-and-multiply”. Este important de menționat faptul că
cele două expansiuni, care reprezintă aproape întregul principiu, secretul pe
care se bazează sistemul de criptare ElGamal, sunt independente, adică nu
depind de mesajul în clar x [38].

1.3.3 Decriptarea

Principalii pași ai decriptării sunt mai întâi o exponențializare a cheii de


mascare KM= Kd mod p, folosind algoritmul sau principiul pătrat și
multiplicare, urmată de o inversare a KM astfel:

pentru oricare KE є Zp*. Făcând acest calcul putem îmbina pașii 1 și 2 după cum
urmează:

Această relație ne permite să calculăm inversul cheii de mascare folosind


o singură exponențiere cu ( p-d-1). Apoi, este necesară o multiplicare pentru a
putea obține mesajul în clar x ≡ y · kM-1 mod p. Ca o consecință, criptarea
necesită în esență, o execuție a algoritmului „pătrat și multiplicare”, urmată de
o singură multiplicare pentru recuperarea textului în clar.
Ca un principal aspect ce se poate deduce din cele discutate anterior este
faptul că timpul de decriptare este mult mai mare decât timpul de criptare,
mesajul inițial își dublează practic dimensiunile prin operația „ sqare-and-
multiply”, procesul de decriptare necesitând un tip mai mare. Deci cu cât un
sistem informatic este mai avansat cu atât se va reduce și timpul necesar
decriptării mesajului.
28
1.4 Securitatea sistemului de criptare ElGamal

Dacă vrem să evaluăm securitatea schemei de criptare ElGamal, este


important să facem o discuție despre diferența dintre atacuri pasive și atacuri
active, și descrierea acestora. Vom presupune că o persoană pe care o vom
denumi Andrei va încerca anumite metode prin care să ajungă la mesajul în
clar. Vom începe cu atacurile pasive și vom încerca să vedem ce ar putea face
Andrei pentru a putea descoperi mesajul.

1.4.1Atacurile pasive

Securitatea schemei de criptare ElGamal împotriva atacurilor pasive


constă în imposibilitatea de recuperare a mesajului în clar x cunoscând

Este imposibil de calculat mesajul în clar cunoscând aceste valori, dar să


presupunem că Andrei ar fii un adevărat geniu, ar putea exista două moduri de
a ataca sistemul și anume:

• Recuperarea mesajului x prin aflarea cheii secrete deținute de


Bogdan d:

Acest pas rezolvă DLP, care se calculează ușor dacă parametrii anterior
amintiți sunt aleși corect. Astfel, dacă Andrei deține toți acești parametrii va
putea folosi același procedeu pe care Bogdan îl folosește în procesul de
decriptare a textului cifrat și anume:

• altă metodă ar fi ca Andrei să încerce să găsească exponentul


aleator al lui George i, în loc să calculeze exponentul secret al lui Bogdan d.

Având acest parametru Andrei va putea rezolva problema logaritmului discret,


astfel decriptarea mesajului în clar x se va face folosind următoarea formulă:

29
În ambele cazuri Andrei va reuși să rezolve problema logaritmului
discret în grupul ciclic finit Z*p.
O recomandare împotriva acestor atacuri ar fi ca valoarea parametrului
p să aibă o lungime de cel puțin 1024biți.
La fel ca la protocolul DHKE, trebuie să fim atenți să nu folosim valori
din subgrupuri mici, astfel un eventual atac ar fi iminent, iar atacatorului i-ar fi
ușor să calculeze valorile ce îi sunt necesare la decriptarea textului. Pentru a
contracara aceste atacuri, în practică se folosesc elemente primitive α, care
generează subgrupuri de ordin prim. În așa grupuri, toate elementele sunt
primitive, iar subgrupurile mici practic nu există.

1.4.2 Atacuri active

Ca în orice altă schemă asimetrică, trebuie să ne asigurăm în primul rând


că cheile publice sunt autentice. Asta înseamnă că persoana care criptează
mesajul, în cazul nostru George, deține cheia publică care îi aparține lui
Bogdan. Dacă Andrei ar reuși să-l convingă pe George că cheia deținută de el
este a lui Bogdan, el ar putea ataca cu ușurință schema. Pentru a preveni aceste
atacuri a fost necesar să se introducă certificate de deținere a cheilor publice.
O altă slăbiciune, chiar dacă nu reprezintă un atac sau o acțiune directă
asupra schemei din partea lui Andrei, este evitarea refolosirii exponentului
secret i. Să presupunem că George a folosit valoarea i pentru criptarea a două
mesaje ulterioare, x1 și x2. În acest caz cele două chei de mascare ar fi aceleași,
adică:
KM=βi

De asemenea, cele două chei efemere ar fi identice. Ea va trimite cele


două mesaje criptate (y1, KE) și (y1, KE) prin canal. Dacă Andrei știe sau ar
putea să ghicească primul mesaj, ar putea calcula cheia de mascare:

30
Având cheia de mascare de la primul mesaj, Andrei o poate aplica asupra
schemei de criptare și ar putea decripta și celălalt mesaj folosind următoarea
ecuație:

Orice alt mesaj criptat cu aceeași valoare a lui i, poate fi, de asemenea,
recuperat în același mod. Prin urmare a acestui atac trebuie să ne asigurăm că
valoarea exponentului de criptare i, să nu se repete, iar Andrei să nu mai poată
folosi această slăbiciune. Trebuie reținut faptul că Andrei poate detecta
reutilizarea secretului, deoarece el conduce la chei efemere identice.
Un alt atac activ împotriva schemei de criptare ElGamal îi exploatează
malaeabilitatea. Dacă Andrei observă mesajul criptat (KE , y), acesta ar putea
să-l înlocuiască:
(KE, sy)

unde s este un număr întreg, astfel destinatarul poate calcula:

Astfel , textul decriptat este, de asemenea, un multiplu de s. Situația este


exact aceeși cu principiul de exploatare a maleabilității folosit și în RSA.
Andrei nu este capabil să decripteze mesajul cifrat, dar poate să-l manipuleze
într-un mod specific. De exemplu el ar putea dubla sau tripla valoarea întregului
folosit în decriptare, rezultat prin alegerea valorii s egală cu 2 sau 3. Cărțile de
criptografie încearcă să ofere anumite recomandări pentru a putea evita un
asemenea atac [40].

31
CAPITOLUL II
Introducere

În acest capitol vom descrie pașii de implementare a algoritmului de


criptare ElGamal, lucru pe care îl vom realiza prin exemplificare. Programul
folosit în acest scop este Matlab 2016, o aplicație de programare care ne ajută
să analizăm diferite probleme care se doresc a se studia.
În continuare vom descrie acest limbaj de programare și vom vedea ce
beneficii ne aduce, cum sunt generate, rulate, existând și posibilitatea de a fi
modificate liniile de cod introduse pentru crearea unei aplicații.
Cel mai mare avantaj la acest program, datorită faptului că la scrierea
unei aplicații pot apărea anumite erori de introducere a unui cod, sistemul de
programare ne indică locul unde trebuie să corectăm eroarea.
Versiunea Release 2016a (R2016a), include MATLAB Live Editor, care
oferă posibilitatea de a scrie, de a rula și modifica codul într-un singur mediu
interactiv în scopul accelerării analizelor exploratorii legate de aplicația care se
dorește a fi analizată. App Designer, un mediu care simplifică procesul de
construire a aplicațiilor MATLAB.R2016a include, de asemenea, o serie de
caracteristici noi în Simulink pentru a ajuta la dezvoltarea rapidă a modelului
și simulare a acestuia, precum și actualizări și remedieri de eroare ce apar în
cadrul construirii aplicațiilor.
Editorul Live oferă o nouă modalitate de a crea, edita și executa codul
MATLAB. Rezultatele și grafica sunt afișate împreună cu codul care le-a
produs într-un singur mediu interactiv, accelerarea programării și analizei
exploratorii. Acum, oamenii de știință și inginerii pot adăuga text formatat,
ecuații matematice, imagini și hyperlink-uri pentru a crea o narațiune
interactivă care poate fi împărtășită cu alții.
App Designer oferă un mediu îmbunătățit de proiectare și componente
setate pentru construirea aplicațiilor MATLAB. Acesta integrează cele două
sarcini principale de a crea o aplicație interactivă - stabilirea componentelor
vizuale și programarea comportamentului aplicației. Codul generat este orientat
pe obiecte, ceea ce face mai ușoară partajarea datelor între diferitele elemente
ale aplicației, iar structura compactă facilitează înțelegerea și menținerea
acestora.
MathWorks este principalul dezvoltator de software de calcul matematic.
MATLAB, limba de calcul tehnic, este un mediu de programare pentru
dezvoltarea algoritmilor, analiza datelor, vizualizarea și calculul numeric.
Simulink este un mediu grafic pentru simulare și design bazat pe modele pentru
sisteme dinamice multiple și sisteme integrate. Inginerii și oamenii de știință
din întreaga lume se bazează pe aceste familii de produse pentru a accelera
ritmul de descoperire, inovare și dezvoltare în industria auto, aerospațială,
electronică, servicii financiare, biotehnologie și alte industrii. MATLAB și
32
Simulink sunt, de asemenea, instrumente fundamentale de predare și cercetare
în universitățile și instituțiile de învățământ din lume [42].

2.1 Implementarea algoritmului de criptare ElGamal

În descrierea acestui algoritm am văzut că se bazează pe trei etape și anume:

• generarea cheilor ;
• criptarea mesajului;
• decriptarea mesajului.

Principiul matematic al algoritmului dar și implementat în limbajului


Matlab a acestuia funcționează astfel:
• generarea numărului prim, p (public)
• generarea numărului aleator, g, (g<p) (public)
• generarea numărului aleator, x, (x<p) (privat)
• textul clar, M (privat)
• textul cifrat, a și b (public)

Puterea criptării El-Gamal constă în trei componente:


• generatorul de chei;
• algoritmul de criptare;
• algoritmul de decriptare.

2.1.1 Generarea unei perechi de chei

Următorii pași reprezintă procedeul de generare a perechilor de chei pentru


criptare:
• Se alege un număr prim aleator, p;
• Se aleg două numere prime aleatoare, g și x, unde (g<p) și (x<p);
• Se calculează y = 𝑔 𝑥 mod p;
• y este cheia publică și x este cheia privată. Valorile lui g și p sunt publice.
După introducerea parametrilor necesari, se calculează valoare y prin
intermediul operației mod și se afișează cheia publică si cheia privată împreună
cu timpul de generare al acestora.
2.1.2 Criptarea

Următorii pași reprezintă procedeul de criptare:

33
• Textul clar este structurat în blocuri 𝑚1 , 𝑚2 , … , 𝑚𝑛 astfel încât fiecare
bloc reprezintă o valoare din intervalul de la 0 la p-1;
• Se alege un număr aleator, k, unde 0≤ 𝑘 ≤p-1, astfel încât k este relativ
prim cu p-1.
• Fiecare bloc al textului clar m este criptat cu ecuația următoare:
a = 𝑔𝑘 mod p;
b = 𝑦 𝑘 𝑚 mod p;

Perechea a și b este textul codat pentru blocul de mesaj m, deci lungimea


textului codat este de două ori mai mare decât lungimea textului clar.
În procesul de criptare este solicitată valoarea parametrului k, după care
criptarea se realizează printr-o structură de tip for în cadrul căreia sunt create
cele două blocuri prin ridicare la putere și folosirea operației mod. [39]

2.1.3 Decriptarea

Decriptarea lui a și b este realizată cu ajutorul cheii secrete x și textul


clar m este recuperat cu ajutorul ecuației:
m = b/𝑎 𝑥 mod p;
De reținut:
𝑎 𝑥 ≡ 𝑔𝑘𝑥 (mod p);
după care:
𝑏 𝑦 𝑘 𝑚 𝑔𝑘𝑥 𝑚
≡ 𝑥 ≡ 𝑘𝑥 ≡ 𝑚 (mod 𝑝);
𝑎𝑥 𝑎 𝑔
Astfel, textul clar poate fi recuperat din perechea a și b.
Decriptarea mesajul se realizează de asemenea printr-o structură de tip
for și cu ajutorul unei relații bine definite prin operația mod și a funcției minv,
aceasta calculează inversul multiplicativ a unui număr a, modulo b.
Exemplu:
Să presupunem că George alege numărul prim p = 307 și două numere
mai mici decât p, g = 247 și x = 207 . Astfel y =247207 mod 307 = 27 este cheia
publică și x = 207, cheia privată.
y = 𝑔 𝑥 mod p; y = 247207 mod 307 = 27;
Prin urmare, cheia publică a lui George este perechea (p,g,y)=(307,247, 27). El
trimite perechea (307,247, 27) lui Bogdan. Acesta vrea să îi trimită lui George
mesajul M =114, așadar el alege un număr aleator k = 145 relativ prim cu p-1
= 306 și criptează mesajul astfel:
𝑎 = 𝑔𝑘 mod 𝑝; 221 = 247145 114 mod 307;
C={ C={
𝑏 = 𝑦 𝑘 𝑚 mod 𝑝; 3 = 27145 mod 307.
George decriptează mesajul folosind cheia sa privată x = 207 și recepționează
mesajul:
34
𝑏 3
M = 𝑥 mod p; M = 207 mod 307= 114.
𝑎 221
Mesajul original este identic cu cel decriptat, putem spune că algoritmul este
verificat. [36]

2.2 Aplicație de criptare a mesajelor folosind algoritmul de criptare


ELGamal

Aplicația a fost creată în mediul de programare Matlab2016a, aplicație


cu ajutorul căreia am încercat să transform un mesaj în clar într-un mesaj
criptat.
Pentru a reuși acest lucru a trebuit să urmez cei trei pași care descriu
algoritmul de criptare ElGamal și anume:

• Generarea cheilor;
• Procesul de criptare;
• Procesul de decriptare.
Vom detalia fiecare proces în parte și vom vedea pașii implementării
acestora.

2.2.1 Generarea cheilor

Se definește gradul polinomului care va fi folosit, îl vom nota cu m în


aplicația noastră. Cu cât gradul polinomului va fi mai mare cu atât este mai
sigur sistemul de criptare, decriptarea mesajului ar fi imposibilă de calculat de
un eventual atacator. Cu cât gradul polinomului este mai mic cu atât
posibilitatea de decriptare a mesajului va fi mai mare, se recomandă evitarea
valorilor m˂3.

Luând în calcul cele descrise mai sus o valoare m=15 este acceptabilă,
criptarea mesajului s-ar face în condiții de siguranță crescută.
O altă variabilă ce trebuie implementată este q, definită ca fiind q=2^m,
deci este considerat ca fiind elementul cu ajutorul căreia are loc expansiunea
mesajului criptat cu un factor de 2. Aplicând această valoare asupra mesajului
de criptat acesta își mărește dimensiunea de două ori față de cea inițială. În
procesul de decriptare sistemul informatic care folosește acest sistem de
criptare, va avea nevoie, după cum se poate deduce de un timp pentru decriptare
de două ori mai mare decât cel folosit pentru criptare, de asemenea memoria
ocupată de mesajul criptat se dublează.

35
Cu cât un sistem informatic este mai de performant cu atât procesele de
criptare/decriptare vor dura mai puțin.
Deci vom introduce în mediul de programare cele 2 variabile:

m=15
q=2m

În continuare va trebui să găsim un polinom primitiv și un grup generator. Se


introduce un număr ales aleator pentru a produce un rezultat repatabil. Am ales
să creez o aplicație în care valorile g și i să fie calculate aleator, dar a trebuit să
ținem seama de faptul că g˂ p-1 și că trebuie să fie relativ prim față de valoarea
lui p, valoare care o controlează expeditorul. Punctul forte al acestui algoritm
de criptare îl reprezintă cu siguranță valoare lui i, este în opinia mea cea mai
importantă variabilă care își schimbă valoarea de fiecare dată când un mesaj
este trimis, adică la fiecare mesaj in clar trimis valoarea lui i, cu ajutorul căreia
se criptează mesajul se modifică, eventualul atacator care ar încerca să obțină
informația criptată ar avea șanse nule în acțiunea sa.
După rularea codului scris în mediul Matlab, se va obține cheia publică
a expeditorului de forma:

Kpub=(p, α, β)

unde p este valoarea aleasă de expeditor, iar α și β sunt valori care sunt
calculate.
Cu ajutorul acestei chei publice mesajul în clar va fi criptat. Trebuie să
se știe că expeditorul deține și cheia privată, o valoare x, aleasă aleator, care o
folosește la decriptarea mesajului trimis de destinatar către acesta. Este necesar
ca, cheia publică să se facă cunoscută destinatarului cu ajutorul căreia criptează
mesajul pe care îl va trimite spre expeditor, expeditorul va folosi cheia sa
privată pentru decriptarea mesajului astfel algoritmul fiind verificat.
Mai jos avem modul de implementare a algoritmului de criptare ElGamal
(figura 2.2.1).
În scrierea efectuată am folosit funcția while, care odată rulată evaluează
o expresie și repetă executarea unui grup de instrucțiuni, expresia trebuie să fie
adevărată. O expresie este adevărată atunci când rezultatul nu este nul, adică
conține numai elemente diferite de zero, altfel expresia este considerată a fi
falsă. Deci funcția while are ca misiune repetarea unui număr de instrucțiuni
atâta timp cât o condiție implementată este adevărată.
Funcția for, cu ajutorul căreia putem obține repetarea unui număr de
instrucțiuni de un anumit număr de ori specificat.
Funcția if este o funcție logică, cu ajutorul căreia putem introduce
anumite condiții.

36
Figura 2.2.1

După implementarea algoritmului de criptare ElGamal, va trebui după


cum am menționat și mai sus să introducem și cheia privată privateKey, căreia
i-am ales o valoare de 7.
privateKey=7

Cheia publică este calculată în cadrul aplicației:

publicKey=( g, g^privateKey, poly)

unde valoarea g este aleasă intr-un mod aleatoriu, iar celelalte două valori sunt
calculate.
Astfel în mediul de programare vom introduce următoarele valori:

2.2.2 Operația de criptare

Al doilea pas al sistemului de criptare ElGamal îl reprezintă operația de


criptare, astfel mesajul introdus în clar va fi transformat în mesaj cifrat.

37
În aplicația creată am ales ca mesajul introdus să fie mai întâi transformat
în binar operație realizată cu ajutorul funcției de transformare a mesajului din
clar în binar și anume binMsg (vezi figura 2.2.2-1).

Figura 2.2.2-1:Transformarea mesajului în binar

Criptarea mesajului va fi făcută cu ajutorul funcției for, cu care vom


calcula valorile aleatorii ale lui i, cu ajutorul cărora are loc criptarea mesajului.
După cum am discutat, parametrul i, reprezintă cheia de rezistență a
algoritmului de criptare ElGamal, el schimbându-și valoarea de fiecare dată
când un mesaj este trimis. Putem considera că i, ar fi cheia efemeră sau cheia
trecătoare de criptare Kefm (figura 2.2.2-2).

Figura 2.2.2-2 Blocul de criptare

2.2.3 Operația de decriptare

Al treilea pas îl reprezintă operația de decriptare a mesajului:


Decriptarea mesajului a fost realizată din nou cu ajutorul funcției
for, pentru a putea calcula valorile parametrului i, necesar procesului de
decriptare (vezi figura 2.2.2-3).
Asupra textului criptat s-a aplicat cheia publică și cheia privată a
destinatarului pentru a decripta mesajul. La fel ca și la operația de criptare
parametrul i, reprezintă punctul forte al procesului.

38
Figura 2.2.2-3 Blocul de decriptare

În aplicație a fost nevoie de introducerea funcției de2bi, funcție care are


rolul de a converti mesajul din zecimal în binar (vezi figura 2.2.2-4).

Figura 2.2.2-4 Blocul de convertire a mesajului din zecimal în binar

Pentru criptarea mesajului s-a folosit alfabetul pe 7 biți (ce aparține codului
ASCII pe 7 biți) ilustrat în figura 2.5 unde fiecărui bit îi corespunde un caracter
unic.

Figura 2.2.2-5 Alfabetul pe 7-biți

39
Dscrierea codului ASCII pe 7-biți

• American Standard Code for Information Interchange - Codul Standard


American pentru Schimbul de Informaţie;
• cel mai comun cod folosit în domeniul criptării mesajelor;
• cel mai reuşit standard realizat vreodată;
• acesta a apărut în 1960;
• standardizat în 1986 (ANSI X3.4, RFC 20, ISO/IEC 646:1991, ECMA-
6) de către American National Standards Institute (Institutul Naţional
American pentru Standarde).
• un cod pe 7 biţi;
• folosit în sistemele de comunicaţii din SUA;
• pune la dispoziţie 128 de caractere cu coduri între 0 şi 127;

40
CAPITOLUL III

3.1 Studiu realizat cu ajutorul aplicației pentru criptare cu sistemul


ElGamal

3.1.1Criptarea unui mesaj folosind aplicația

Cu ajutorul aplicației am realizat procedeul de criptare al unui mesaj.


Vom face în continuare o criptare de al unui mesaj ales aleator rulând aplicația.
Am decis ca mesajul criptat să fie următorul „ Lucrare de licență 2018,
Academia Forțelor Terestre „Nicolae Bălcescu” din Sibiu”, pe care îl vom
introduce în aplicație.

Figura 3.1.1-1 Mesajul în clar

În urma procesului de criptare (mesajul inițial a fost criptat folosind


alfabetul de criptare pe 7-biți), forma criptată a mesajului este prezentată în
figura 3.1.1-2

Figura 3.1.1-2 Forma criptată a mesajului

41
După cum observăm mesajul este indescifrabil, asupra acestui text se va
aplica blocul de decriptare al schemei de criptare ElGamal, mesajul fiind
transformat din nou în forma clară.

Blocul de decriptare folosit este prezentat în figura 3.1.1-3 de mai jos:

Figura 3.1.1-3 Blocul de decriptare

Mesajul decriptat:

În figura 3.1.1-4 avem întregul sistem scris în mediul de programare


Matlab2016a, cu ajutorul căruia am realizat criptarea mesajului nostru inițial:

42
figura 3.1.1-4 Algoritmul de criptare al sistemului ElGamal implementat în
mediul de programare Matlab

43
3.2 Analiza performanțelor în domeniul timp după rularea aplicației

3.2.1 Variația timpului alocat pentru generarea cheilor

În continuare vom face o analiză asupra timpului necesar pentru


generarea cheilor de criptare a sistemului, timpul ce trebuie alocat procesului
de criptare cât și pentru decriptare.
Vom face o analiză a timpului de generare al cheilor modificând
parametrul de intrare m, și vom vedea variația timpului necesar pentru rularea
funcției de criptare ElGamal respectiv timpul de generare al cheilor de criptare
(vezi tabelul 3.2.1-1).

Tabel 3.2.1-1
Timp
Valoarea Generarea
Nr crt. m Funcția ElGamal cheilor
1 10 0,081s 0,027s
2 11 0,082s 0,030s
3 12 0,124s 0,094s
4 13 0,178s 0,112s
5 14 0,199s 0,144s
6 15 0,213s 0,148s
7 16 0,919s 0,855s
8 17 1,342s 1,124s

Parametrul m este definit ca fiind gradul polinomului folosit în procesul


de criptare. Observăm din tabel că, cu cât valoarea acestuia crește, crește și
timpul de rulare al funcției ElGamal respectiv al generării cheilor.
Se poate considera ca fiind un dezavantaj alegerea unei valori a lui m,
fiind nevoie de echipamente mai avansate pentru a rula mai rapid, dar pe de altă
parte, cu cât gradul polinomului este mai mare cu atât sistemul de criptare este
mai bun, mai sigur. Este deci, de preferat să se aleagă o valoare cât mai mare a
gradului polinomului folosit în schema de criptare, asigurându-se astfel evitarea
decriptării mesajului din partea unui atacator. Cu cât gradul polinomului este
mai mic cu atât este mai ușor de decriptat mesajul de atacator, se evită de obicei
valorile mai mici decât trei (m>3).
În graficul de mai jos observăm că timpul de rulare al funcției ElGamal
este mai mare decât timpul necesar generării de chei, lucru normal pentru
sistemul de criptare, reprezentând timpul total al rulării algoritmului.

44
Curba funcției de criptare ElGamal este de asemenea asemănătoare cu
cea de generare a cheilor. Putem spune că, cu cât gradul polinomului crește în
valoare cu atât crește și timpul de rulare al blocurilor, practic timpul de rulare
este direct proporțional cu parametrul m (vezi figura 3.2.1-1).

1,5
1,4
1,342
1,3
1,2
1,1 1,124
1
0,9 0,919
0,855
TIMP (S)

0,8
0,7
0,6
0,5
0,4
0,3
0,2 0,199 0,213
0,178 0,148
0,124 0,144
0,1 0,081 0,082 0,094 0,112
0 0,027 0,03
10 11 12 13 14 15 16 17
VALOAREA M

Funcția ElGamal Generarea cheilor

Figura 3.2.1-1: Grafic cu timpul de rulare al funcției de criptare și al generării


cheilor în funcție de valoarea gradului polinomului folosit

3.2.2 Variația timpului alocat pentru procesul de criptare a mesajului

Următoarea analiză are loc tot prin modificarea parametrului m, pentru


a vedea timpul de rulare al funcției ElGamal și timpul de criptare necesar (vezi
Tabelul 3.2.1-2).
Vom acorda valori ale parametrului m, de la 10-17 pentru a vedea
variația timpului alocat pentru procesele amintite mai sus.

45
Tabel 3.2.1-2
Timp (s)
Nr. Valoare Funcția
Crt. m ElGamal Criptarea
1 10 1,309 1,193
2 11 2,247 2,138
3 12 4,005 3,723
4 13 7,467 7,351
5 14 13,489 13,254
6 15 25,867 25,629
7 16 48,974 48,039
8 17 74,568 74,156

80
74,156 74,568
70
60
48,039
50 48,974
TIMP (S)

40
25,629
30
13,254 25,867
20
3,723 7,351
1,193 2,138 13,489
10
7,467
2,247 4,005
0 1,309
10 11 12 13 14 15 16 17
VALOAREA M

Funcția ElGamal Criptarea

Figura 3.2.1-2 Variația timpului necesar criptării pentru valori diferite ale lui
m

După introducerea valorilor parametrului m în aplicație, au fost generate


valorile din Tabelul 3.2.1-2, în care se poate observa că odată cu creșterea
gradului polinomului, cu care se dorește să se facă operația de criptare, crește
și timpul de rulare al funcției ElGamal respectiv al procesului de criptare al
mesajului. De menționat faptul că am folosit același mesaj pentru criptat
pentru toate măsurătorile din cadrul aplicației singurul parametru pe care îl
modificăm este m, cu ajutorul căruia s-a făcut analiza, atribuindu-i valori
aleatorii.
Observăm că timpul de rulare este din ce în ce mai mare, de la aproape
1,5s, timp necesar pentru rularea algoritmului la o valoare a lui m=10, la
aproape 75s pentru o valoare a lui m=17.

46
La fel se întâmplă și în cazul criptării mesajului, de la aproape 1,2s pentru
o valoare m=10, la aproape 74s pentru m=17.
Acest timp depinde și de mărimea mesajului trimis, cu cât mesajul este
mai mare cu atât timpul necesar criptării este mai mare. Deci cu cât valoarea
gradului polinomului este mai mică și mesajul este mai scurt, cu atât mai repede
se face operația de criptare în cadrul algoritmului.
Luând un mesaj de dimensiuni considerabile, cu o valoare m mare,
timpul de criptare este foarte mare, în unele cazuri nici nu ar putea avea loc
criptarea mesajului, necesitând sisteme informatice mai avansate, cu memorie
mare.
Aplicația pe care am creat-o poate face criptare de mesaje pentru o
valoare maximă a lui m=17, ea nu mai poate fi rulată de la valori mai mari.

3.2.3Variația timpului alocat pentru procesul de decriptare

Vom realiza acum o analiză și asupra operației de decriptare, atribuind


aceleași valori pentru m, pe care le-am folosit și în analiza pentru aflarea
timpului de generare al cheilor și timpului necesar pentru procesul de criptare
(vezi figura 3.2.1-3).
În urma măsurătorilor făcute în cadrul aplicației am obținut valorile din
tabelul 3.2.1-3, în care putem observa că timpul alocat procesului de decriptare
este foarte mare.
Dacă în cazurile anterioare am avut valori ale timpilor de rulare de
ordinul secundelor, în cadrul procesului de decriptare, valoarea timpilor de
rulare este de ordinul minutelor:

Tabel 3.2.1-3
Timp (min)
Valoarea Funcția
Nr.crt. m ElGamal Decriptarea
1 10 5.451 5,256
2 11 6,548 6,324
3 12 9,456 9,156
4 13 13,478 13,234
5 14 18,768 18,367
6 15 26,809 26,587
7 16 38,932 38,569
8 17 60,359 59,934

47
70
60,359
60 59,934

50
38,932
TIMP (MIN) 40 38,569
26,809
30
18,768 26,587
13,478
20 6,548 9,456 18,367
13,234
10 9,156
5,256 6,324
0
10 11 12 13 14 15 16 17
VALOAREA M

Funcția ElGamal Decriptarea

Figura 3.2.1-3

După studierea graficelor corespunzătoare domeniului timp, adiacente


tabelelor menționate anterior, putem afirma că timpul necesar procesului de
decriptare este mult mai mare față de celelalte procese și, de asemenea, crește
progresiv în funcție de lungimea șirului de caractere și de valoarea lui m.
Analizând timpul de criptare al mesajului folosit în toate măsurătorile și
anume „ Lucrare de licență 2018, Academia Forțelor Terestre „Nicolae
Bălcescu” din Sibiu”, criptare realizată în aproape 1,5 secunde pentru o valoare
m=10, despre decriptare nu putem spune decât că s-a realizat într-un interval
foarte mare de timp, mai exact 5,451min la aceeași valoare a lui m. După
cum putem observa mesajul este de dimensiuni mici, și totuși decriptarea s-a
făcut într-o perioadă foarte lungă de timp.
Analiza făcută în cadrul aplicației pentru criptarea mesajelor cu sistemul
de criptare ElGamal, a arătat faptul că pentru rularea proceselor de generare a
cheilor, de criptare/decriptare este de preferat alegerea unei valori mai mici a
gradului polinomului, dar nu mai mici de 3 ( m>3), iar dimensiunea mesajelor
să fie cât mai mici, 2-3 fraze. Cu cât mesajul este mai mare, iar gradul
polinomului este de asemenea mare, cu atât procesele de criptare/decriptare au
loc într-un interval de timp mare, este necesar introducerea algoritmului în
sisteme informatice tot mai avansate care dețin o memorie foarte mare.
După cum știm, în urma criptării dimensiunea mesajelor se dublează,
timpul necesar decriptării ar trebui să fie de două ori mai mare decât în cazul
criptării, sau chiar mai mare după cum am văzut în studiul realizat în cadrul
aplicației noastre. Dimensiunile mesajului dublându-se este evident că este
necesar un sistem informatic cu memorie mare.

48
CONCLUZII

Securitatea este un aspect de actualitate în domeniul criptografiei, iar


această lucrare face referință la doar câteva arii ale tehnicilor ce facilitează
politici de securitate adecvate sistemelor din ziua de astăzi. Nevoia de politici
de securitate este o problemă de mare importanță și am ales să studiez
îndeaproape sistemul de criptare ElGamal pentru a vedea performanțele
oferite de acesta.
Analiza realizată în cadrul aplicației, a avut ca scop evidențierea
timpului necesar pentru generarea cheilor, criptarea mesajelor respectiv
decriptarea acestora prin modificarea valorii parametrului m ( gradul
polinomului ce se dorește a se folosi în algoritmul de criptare).
Din analiza efectuată am dedus următoarele concluzii:

• cu cât valoarea gradului polinomului se mărește cu atât crește


și timpul pentru generarea de chei, al procesului de criptare cât și a celui de
decriptare.
• folosind același mesaj pentru toate măsurătorile, am observat
că deși am ales un mesaj scurt, timpul de decriptare este destul de mare. Dacă
pentru procesul de criptare aplicației i-a fost necesar un timp de aproape 1,5s
la o valoare a lui m=10, pentru decriptare a fost nevoie de aproape 5,5min
pentru a decripta mesajul.
• cu cât un mesaj este mai mare cresc timpii necesari
proceselor de criptare/decriptare.
• în cadrul algoritmului de criptare ElGamal este de preferat să
se folosească mesaje de dimensiuni mici pentru ca timpii de rulare al
algoritmului să se îmbunătățească.
• este de preferat ca gradul polinomului folosit în procesul de
criptare să fie de dimensiuni nu foarte mari, de preferat între 10-20,
• pentru aplicația realizată valoarea maximă admisă a gradului
polinomului generator să fie mai mică decât 17;
• în urma criptării mesajului, dimensiunea acestuia se dubleză,
de unde reiese faptul că timpul pentru decriptare ar trebui să fie dublu sau
chiar mai mare.
• memoria ocupată din sistemul informatic folosit este de două
ori mai mare.
• cu cât un sistem informatic este mai performant cu atât
sistemul de criptare ElGamal este rulat mai rapid.
Particularitatea de bază a acestui sistem de criptare este faptul că
pentru fiecare mesaj trimis se generează o nouă cheie de criptare, am numit-o
în cadrul lucrării cheia efemeră sau trecătoare, care se schimbă de fiecare dată
49
când un mesaj este trimis. Acest lucru necesită evident și el timp. Este punctul
forte al acestui algoritm, fiind foarte greu pentru un eventual atacator să
ajungă la mesajul în clar, chiar dacă acesta cunoaște anumite valori din
schema de criptare.
Sistemul de criptare ElGamal s-a dovedit a fi unul din cele mai sigure
sisteme de criptare, însă implementarea lui trebuie făcută pe sisteme
informatice foarte performante, cu viteză de procesare mare și memorie foarte
mare.
Metoda de criptare El-Gamal, este foarte folositoare în înțelegerea bazelor
criptografiei bazate pe exponenţiere. Acest lucru este important pentru
studierea punctelor tari și punctelor slabe a oricărui sistem de criptare bazat pe
exponențiere, lucru important în sistemele de criptanaliză. Problema
logaritmului discret a devenit una dintre cele mai studiate probleme datorită
acestui fapt.
La momentul actual algoritmul de criptare ElGamal este implementat
cu succes în limbajul de programare JAVA, care folosește sisteme informatice
de mare performanță.
Fiind un sistem de criptare care asigură o securitate a informației
foarte bună, cu siguranță implementarea lui nu va mai dura mult timp de acum
înainte, sistemele informatice fiind într-o continuă evoluție.
După studiul realizat asupra sistemului de criptare ElGamal pot
aprecia că sistemul asigură o securitate foarte bună a informațiilor, acesta ar
putea fi implementat cu succes în domeniul militar pentru asigurarea
securității informației.
Odată cu evoluția sistemelor informatice sistemul ElGamal ar putea
face față oricăror încercări de obținere a informației efectuată de un eventual
atacator.
Sistemul militar necesită sisteme de securitate a informației de
performanțe mari, ElGamal fiind descris de un algoritm extrem de complex,
care este greu de atacat și care crește cu mult nivelul de securitate al datelor.

50
BIBLIOGRAFIE

Autori români:
1. Constantinescu Z., Moise G., Criptarea Informației – Ghid Practic,
Ploiești, Editura Universității Petrol-Gaze, 2011.
2. Drăgan M., Ș. Mărușter, Limbaje Formale, Timișoara, Editura
Universității din Timișoara, 2005.
3. Preda V., Simion E., Popescu A., Criptanaliza. Rezultate și Tehnici
Matematice, București, Ediția a 2-a, Editura Universității din București,
2011.
4. Panaitescu G., Transmiterea si codarea informatiilor-Note de curs,
Universitate“Petrol-Gaze” Ploieşti Departamentul Automaticǎ,
Calculatoare şi Electronicǎ, 2015.

Autori străini:
5. Henderson A.D., Cryptography and Complexity, Case Western Reserve
University. MATH 408, Nepublicată, 2012.
6. Mazur J., Enlightening Symbols: A Short History of Mathematical
Notation and Its Hidden Powers, New Jersey, Editura Princeton
University Press, 2014.
7. Bernstein D.J.(ed.), Chatterjee S.(ed.), Progress in Cryptology – Indocrypt
2011, Chennai India, Editura Springer, 2011.
8. Mowry D.P., German Cipher Machines of World War II, Center for
Cryptologic History, National Security Agency, 2014.
9. Woeginger G., Exact algorithms for NP-hard problems: Combinatorial
Optimization, Berlin, Editura Springer-Verlag, 2003,pp. 185–207
10. Katz J., Lindell Y., Introduction to Modern Cryptography, New York,
Editura Chapman & Hall/CRC, 2008.
11. Schneier B., Applied Cryptography:Protocols, Algorithms and Source
Code in C, New York, Editura Wiley, 2015
12. Talbot J., Welsh D., Complexity and Cryptography An Introduction,
Cambridge, Editura Cambridge University Press, 2006.
13. Gupta N.D., Sharma S.K., Handbook of Research on Information Security
and Assurance, New York, Editura Information Science Reference, 2008.
14. Håstad J., Advances in Cryptology — CRYPTO ’85 Proceedings, Berlin,
Editura Springer, 1986.
15. Churchhouse R., Codes and Ciphers – Julius Caesar, the Enigma, and the
Internet, Cambridge, Editura Cambridge Univeristy Press, 2004.
16. Pape S., Authentication in Insecure Environments, Dortmund, Editura
Springer Vieweg, 2013.

51
17. Stamp M., Low R.M., Applied Cryptanalysy Breaking Ciphers in the Real
World, San Jose CA, Editura John Wiley & Sons, 2007.
18. Kahn D., The Codebreakers – The Story of Secret writing, New York,
Editura The New American Library, 1973.

Dicționar:
19. Stevenson A.(ed.), Oxford Dictionari of English, Ediția a 3-a, Oxford,
Editura Oxford University Press, 2010.
20. Gove P.B.(ed.), Webster’s New Dictionary Synonyms, Springfield U.S.A,
Editura Merriam-Webster INC, 1984.

Surse internet:
21. http://codare-date.cpf.ro/criptare-simetrica.php accesat la data de
25.04.2018
22. https://www.ssl2buy.com/wiki/symmetric-vs-asymmetric-encryption-
what-are-differences accesat la data de 26.04.2018
23. https://www.geeksforgeeks.org/rsa-algorithm-cryptography/ accesat la
data de 05.05.2018
24. http://mathworld.wolfram.com/RSAEncryption.html accesat la data de
11.05.2018
25. http://homepages.math.uic.edu/~leon/mcs425-s08/handouts/el-gamal.pdf
accesat la data de 15.05.2018
26. https://crypto.stackexchange.com/questions/1677/when-to-use-rsa-and-
when-elgamal-asymmetric-encryption accesat la data de 21.05.2018
27. https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cr
yptosystem accesat la data de 30.05.2018
28. http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-
gentle-introduction/ accesat la data de 05.06.2018
29. https://www.emsec.rub.de/media/crypto/attachments/files/2010/04/da_he
yse.pdf accesat la data de 14.06.2018
30. https://www.sav.sk/journals/uploads/0212093505re-zaj.pdf accesat la
data de 20.06.2018
31. https://en.wikipedia.org/wiki/ElGamal_encryption accesat în 20.04.2018
32. https://economictimes.indiatimes.com/definition/cryptography accesat în
24.04.2018
33. https://asecuritysite.com/encryption/elgamal accesat în data de
30.04.2018
34. http://www.iusmentis.com/technology/encryption/elgamal/ accesat în
data de 12.05.2018
35. https://cryptographyacademy.com/elgamal/ accesat în data de 18.05.2018
36. https://www.coursera.org/lecture/crypto/elgamal-security-2tbL6 accesat
la data de 25.05.2018
52
37. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.367.681&rep=
rep1&type=pdf accesat la data de 02.06.2018
38. https://www.di-mgt.com.au/public-key-crypto-discrete-logs-3-
elgamal.html accesat la data de 10.06.2018
39. https://www.tutorialspoint.com/cryptography/public_key_encryption.htm
accesat la data de 18.06.2018
40. https://en.wikipedia.org/wiki/ElGamal_signature_scheme accesat la data
de 29.06.2018
41. https://scialert.net/fulltextmobile/?doi=jas.2005.883.886 accesat la data
de 01.07.2018
42. https://www.mathworks.com/discovery/what-is-matlab.html accesat la
data de 20.06.2018.

53

You might also like