Sunteți pe pagina 1din 55

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...........................................................................................................................
1.1 Introducere.................................................................................................................
1.2 Generalități privind sistemele de criptare cu cei publice...........................................
1.3 Termeni utilizați în criptografie.................................................................................
1.4 Criptarea simetrică....................................................................................................
1.5 Criptarea asimetrică sau publică...............................................................................
1.6 Clasificări ale sistemelor de criptare cu chei publice după tipul de ..............................
problemă pe care o au la bază.........................................................................................
1.6.1 Sistemul de criptare RSA....................................................................................
1.6.2 Sistemul de criptare ElGamal..............................................................................
1.6.3 Sistemul de criptare Markle-Hellman................................................................
1.6.4 Sistemul de criptare bazat pe curbele eliptice.....................................................
1.6.5 Sistemul de criptare McEliece.............................................................................
1.2 Descrierea principiului de funcționare al sistemului de criptare cu chei ......................
publice ElGamal..............................................................................................................
1.2.1 Schema de criptare ElGamal...............................................................................
1.2.2 De la schimbul de chei Diffie-Hellman la criptarea ElGamal.............................
1.2.3 Protocolul ElGamal.............................................................................................
1.3 Aspecte de calcul în sistemul de criptare ElGamal...................................................
1.3.1 Generarea de chei................................................................................................
1.3.2 Criptarea..............................................................................................................
1.3.3 Decriptarea..........................................................................................................
1.4 Securitatea sistemului de criptare ElGamal..............................................................
1.4.1Atacurile pasive....................................................................................................
1.4.2 Atacuri active.......................................................................................................
Capitolul II..........................................................................................................................
Introducere......................................................................................................................
2.1 Implementarea algoritmului de criptare ElGamal.....................................................
2.1.1 Generarea unei perechi de chei...........................................................................
2.1.2 Criptarea..............................................................................................................
2.1.3 Decriptarea..........................................................................................................
2.2 Aplicație de criptare a mesajelor folosind algoritmul de criptare ................................

7
ELGamal.........................................................................................................................
2.2.1 Generarea cheilor................................................................................................
2.2.2 Operația de criptare.............................................................................................
2.2.3 Operația de decriptare.........................................................................................
Capitolul III........................................................................................................................
3.1 Studiu realizat cu ajutorul aplicației pentru criptare cu sistemul ElGamal
.........................................................................................................................................
3.1.1Criptarea unui mesaj folosind aplicația................................................................
3.2 Analiza performanțelor în domeniul timp după rularea aplicației.............................
3.2.1 Variația timpului alocat pentru generarea cheilor................................................
3.2.2 Variația timpului alocat pentru procesul de criptare a mesajului........................
3.2.3Variația timpului alocat pentru procesul de decriptare.........................................
Concluzii.............................................................................................................................
BIBLIOGRAFIE................................................................................................................

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

8
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.
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.

9
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.
Implementarea unui sistem de criptare depinde și de sistemele informatice
folosite, cele mai bune sisteme de criptare folosesc foarte multă memorie în
10
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].

11
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
DiffieHellman, 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:

12
• 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 ELGamal) [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.

13
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].
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ă;

14
• 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ă
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.

15
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.

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].

16
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 cheipublică ș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].

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].

17
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].

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

18
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
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].

19
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˂n 1/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].
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

20
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).

21
Figura 1.6.2 Procesul de criptare și decriptare ElGamal.

22
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.

23
Î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.
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

24
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].

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
25
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].

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
DiffieHellman 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.

26
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 K E. Cheia comună va fi desemnată de K M 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 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 K M 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:

27
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.

28
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 K M=β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

29
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.

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[ log 2 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,
30
mesajul inițial își dublează practic dimensiunile prin operația „ sqare-
andmultiply”, 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.
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:

31
• 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ă:

Î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

32
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:

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].

CAPITOLUL II
Introducere

33
Î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 Simulink sunt, de asemenea, instrumente fundamentale de
predare și cercetare în universitățile și instituțiile de învățământ din lume [42].

34
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:

35
• 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:

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 =247207mod 307 = 27 este cheia
publică și x = 207, cheia privată. y = 𝑔𝑥 mod p; y = 247207mod 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:

C C=
George decriptează mesajul folosind cheia sa privată x = 207 și recepționează
mesajul:

36
M= p; M=
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ă.

37
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.

38
Funcția if este o funcție logică, cu ajutorul căreia putem introduce anumite
condiții.

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

39
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.
Î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).

40
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.

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.

41
Figura 2.2.2-5 Alfabetul pe 7-biți
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,
ECMA6) 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;

42
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

43
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:

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

45
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).
46
Î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.
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
TIMP
0,9(S) 0,919
0,855
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.

47
Tabel 3.2.1-2
Timp (s)
Nr. Crt. Valoare Funcția
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
TIMP
50 (S) 48,974
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

48
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.
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

49
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

70
60,359
60 59,934
TIMP
50 (MIN)
38,932
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

50
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.

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,

51
• 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ă
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.

52
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.

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.

53
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.
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-
encryptionwhat-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-
andwhen-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
54
28. http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-
agentle-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
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-
3elgamal.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.

55

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