Documente Academic
Documente Profesional
Documente Cultură
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ţă
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
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:
11
CAPITOLUL I
1.1 Introducere
12
• chei publice care pot fi difuzate pe scară largă
• chei private care sunt cunoscute numai proprietarului.
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].
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].
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.
16
1.5 Criptarea asimetrică sau publică
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].
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
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].
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.
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].
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]
27
Figura 1.2.2
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
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
1.3.3 Decriptarea
pentru oricare KE є Zp*. Făcând acest calcul putem îmbina pașii 1 și 2 după
cum urmează:
1.4.1Atacurile pasive
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.
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:
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)
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
• generarea cheilor ;
• criptarea mesajului;
• decriptarea mesajului.
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;
2.1.3 Decriptarea
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]
• Generarea cheilor;
• Procesul de criptare; • Procesul de decriptare.
Vom detalia fiecare proces în parte și vom vedea pașii implementării
acestora.
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
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
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:
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).
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.
Î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).
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
42
CAPITOLUL III
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ă.
Mesajul decriptat:
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
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
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
Figura 3.2.1-2 Variația timpului necesar criptării pentru valori diferite ale lui m
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.
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
Figura 3.2.1-3
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
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.
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