Documente Academic
Documente Profesional
Documente Cultură
Criptare
Criptare
„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ţă
8. Considerații finale:
________________________________________________________________
________________________________________________________________
________________________________________________________________
6
2.2 Aplicație de criptare a mesajelor folosind algoritmul de criptare
ELGamal ...................................................................................................... 35
2.2.1 Generarea cheilor ............................................................................. 35
2.2.2 Operația de criptare .......................................................................... 37
2.2.3 Operația de decriptare ...................................................................... 38
Capitolul III ..................................................................................................... 41
3.1 Studiu realizat cu ajutorul aplicației pentru criptare cu sistemul ElGamal
...................................................................................................................... 41
3.1.1Criptarea unui mesaj folosind aplicația ............................................ 41
3.2 Analiza performanțelor în domeniul timp după rularea aplicației ......... 44
3.2.1 Variația timpului alocat pentru generarea cheilor ........................... 44
3.2.2 Variația timpului alocat pentru procesul de criptare a mesajului .... 45
3.2.3Variația timpului alocat pentru procesul de decriptare ..................... 47
Concluzii ......................................................................................................... 49
BIBLIOGRAFIE ............................................................................................. 51
7
IMPORTANȚA TEMEI
10
CAPITOLUL I
1.1 Introducere
11
• chei publice care pot fi difuzate pe scară largă
• chei private care sunt cunoscute numai proprietarului.
13
cheie după care îl trimite la următorul nod unde se repetă același algoritm
până când mesajul ajunge la destinatar;
• criptografia reprezintă știința care se ocupă de ascunderea semnificației
unei comunicări astfel încât să se evite interceptarea acesteia de persoane
neautorizate;
• decriptarea –operațiunea prin care un mesaj neinteligibil este
transformat într-un mesaj inteligibil. Acest lucru se face cu ajutorul cheii
de decriptare;
• sistemul de criptare reprezintă o serie de transformări în urma cărora un
text în clar ajunge într-o formă neinteligibilă;
• steganografia mesajul secret este ascuns într-o imagine digitală [20].
14
Figura 1.4: Procesul de criptare/decriptare simetric
15
Figura 1.5 Procesele de criptare/decriptare cu chei publice
16
1.6 Clasificări ale sistemelor de criptare cu chei publice după tipul de
problemă pe care o au la bază
17
rezultate. Atacatorul poate observa canalul de comunicare, iar odată ce au
descoperit textele criptate folosite și care se potrivesc cu cele din dicționar,
atacatorii îl pot folosi pentru a afla conținutul mesajului [13].
Următorul algoritm este folosit în RSA:
• Se alege p și q;
• Se calculează n=p*q;
• Determinarea 𝜑(n)=(p-1)*(q-1);
• Se alege o valoare e astfel încât 1<e< 𝜑(n); e și n trebuie să fie prime
între ele;
• Se calculează valoarea d astfel încât (d*e)mod 𝜑(n)=1;
• Valoarea cheii publice este (e,n);
• Valoarea cheii private este (d,n);
• Pentru operația de criptare avem C=𝑚𝑒 (mod n)
• pentru decriptare m=𝑐 𝑑 (mod n).
Urmând îndeaproape algoritmul descris mai sus, textul în clar este criptat
în cifru, iar după acesta este decriptat din text cifrat în text clar.
La algoritmul RSA, principalul dezavantaj îl reprezintă timpul foarte
mare folosit pentru criptare, viteza de procesare este foarte mică pentru cifrarea
textului clar, în fapt acesta este principalul dezavantaj al sistemelor de criptare
ce folosesc chei asimetrice din cauza existenței a două chei [14].
19
Figura 1.6.2 Procesul de criptare și decriptare ElGamal.
20
Proprietățile grupului abelian sunt cele care asigură securitatea
sistemului de criptare ElGamal, la fel și de schemele folosite, scheme de
„umpluturi”, folosite în procesul de criptare.
După cum știm sistemul de criptare ElGamal se bazează pe principiul
folosit de Diffie-Hellman, astfel dacă o presupusă problemă de calcul de tip
Diffie-Hellman înglobează un grup ciclic abelian fundamental, funcția de
criptare va fi de tip one-way, iar dacă o presupusă problemă este cuprinsă în
cadrul grupului atunci sistemul de criptare ElGamal va primi numele de sistem
de criptare cu securitate semantică.
Pentru a îndeplini cerințele unei securități puternice în direcția atacurilor
bazate pe cifruri alese, schema trebuie modificată și mai mult sau o schemă
adecvată a ”umpluturilor” trebuie folosită. În funcție de modificări, problema
decizională Diffie-Hellman poate fi sau nu necesară.
Alte scheme legate de algoritmul El-Gamal care să întărească securitatea
împotriva atacurilor prin cifrul ales, au fost de asemenea propuse. Sistemul de
criptate Cramer-Shoup este securizat pentru aceste tipuri de atacuri prin
presupuneri de tip problemă decizională Diffie-Hellman pentru grupul abelian
selectat. Altă schemă propusă este DHAES, a cărei soluție solicită o
presupunere mult mai slabă decât problema enunțată anterior [26].
22
1.6.5 Sistemul de criptare McEliece
23
1.2.2 De la schimbul de chei Diffie-Hellman la criptarea ElGamal
y≡x*Ky*mod p
Figura 1.2.1
Protocolul este format din două faze, clasicul DHKE (include pașii a-f)
urmat de criptarea și decriptarea mesajelor (pașii g respectiv h). Bogdan își
calculează cheia privată d și cheia publică β. Această pereche nu se va mai
putea modifica, este o pereche de chei cu ajutorul căreia se pot cripta multe
mesaje.
George trebuie și el la rândul său să genereze o nouă pereche de chei
publice-private pentru criptarea fiecărui mesaj. Cheia privată este dată de
valoarea lui i și cheia publică de KE. Cheia comună va fi desemnată de KM care
va fi utilizată pentru criptarea textului în clar.
Pentru a cripta mesajul, George nu trebuie decât să aplice peste mesajul
în clar x cheia de criptare KM din Z*P. Deci mesajul x al lui George se înmulțește
cu valoarea cheii de criptare KM extrasă din Z*P.
În partea cealaltă, destinatarul (Bogdan) inversează criptarea înmulțind
cu masca inversă, adică peste textul criptat aplică valoarea cheii sale private
24
care este cunoscută exclusiv doar de el, fiind singurul care poate decripta
mesajul și care ar putea aduce modificări acestuia.
De reținut este faptul că o proprietate a grupurilor ciclice este aceea că,
dată fiind orice cheie KM ce aparține lui Z*p, fiecare mesaj ajunge să fie
transformat într-un alt text cifrat, acest lucru fiind posibil numai dacă cele două
valori se înmulțesc. Mai mult, dacă cheia KM este extrasă într-un mod aleatoriu
din Z*P, fiecare mesaj criptat yє {1,2,...,p-1} are aceeași probabilitate de
criptare. [10]
25
Figura 1.2.2
26
Figura 1.2.3
27
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:
29
În ambele cazuri Andrei va reuși să rezolve problema logaritmului
discret în grupul ciclic finit Z*p.
O recomandare împotriva acestor atacuri ar fi ca valoarea parametrului
p să aibă o lungime de cel puțin 1024biți.
La fel ca la protocolul DHKE, trebuie să fim atenți să nu folosim valori
din subgrupuri mici, astfel un eventual atac ar fi iminent, iar atacatorului i-ar fi
ușor să calculeze valorile ce îi sunt necesare la decriptarea textului. Pentru a
contracara aceste atacuri, în practică se folosesc elemente primitive α, care
generează subgrupuri de ordin prim. În așa grupuri, toate elementele sunt
primitive, iar subgrupurile mici practic nu există.
30
Având cheia de mascare de la primul mesaj, Andrei o poate aplica asupra
schemei de criptare și ar putea decripta și celălalt mesaj folosind următoarea
ecuație:
Orice alt mesaj criptat cu aceeași valoare a lui i, poate fi, de asemenea,
recuperat în același mod. Prin urmare a acestui atac trebuie să ne asigurăm că
valoarea exponentului de criptare i, să nu se repete, iar Andrei să nu mai poată
folosi această slăbiciune. Trebuie reținut faptul că Andrei poate detecta
reutilizarea secretului, deoarece el conduce la chei efemere identice.
Un alt atac activ împotriva schemei de criptare ElGamal îi exploatează
malaeabilitatea. Dacă Andrei observă mesajul criptat (KE , y), acesta ar putea
să-l înlocuiască:
(KE, sy)
31
CAPITOLUL II
Introducere
• generarea cheilor ;
• criptarea mesajului;
• decriptarea mesajului.
33
• Textul clar este structurat în blocuri 𝑚1 , 𝑚2 , … , 𝑚𝑛 astfel încât fiecare
bloc reprezintă o valoare din intervalul de la 0 la p-1;
• Se alege un număr aleator, k, unde 0≤ 𝑘 ≤p-1, astfel încât k este relativ
prim cu p-1.
• Fiecare bloc al textului clar m este criptat cu ecuația următoare:
a = 𝑔𝑘 mod p;
b = 𝑦 𝑘 𝑚 mod p;
2.1.3 Decriptarea
• 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ă.
35
Cu cât un sistem informatic este mai de performant cu atât procesele de
criptare/decriptare vor dura mai puțin.
Deci vom introduce în mediul de programare cele 2 variabile:
m=15
q=2m
Kpub=(p, α, β)
unde p este valoarea aleasă de expeditor, iar α și β sunt valori care sunt
calculate.
Cu ajutorul acestei chei publice mesajul în clar va fi criptat. Trebuie să
se știe că expeditorul deține și cheia privată, o valoare x, aleasă aleator, care o
folosește la decriptarea mesajului trimis de destinatar către acesta. Este necesar
ca, cheia publică să se facă cunoscută destinatarului cu ajutorul căreia criptează
mesajul pe care îl va trimite spre expeditor, expeditorul va folosi cheia sa
privată pentru decriptarea mesajului astfel algoritmul fiind verificat.
Mai jos avem modul de implementare a algoritmului de criptare ElGamal
(figura 2.2.1).
În scrierea efectuată am folosit funcția while, care odată rulată evaluează
o expresie și repetă executarea unui grup de instrucțiuni, expresia trebuie să fie
adevărată. O expresie este adevărată atunci când rezultatul nu este nul, adică
conține numai elemente diferite de zero, altfel expresia este considerată a fi
falsă. Deci funcția while are ca misiune repetarea unui număr de instrucțiuni
atâta timp cât o condiție implementată este adevărată.
Funcția for, cu ajutorul căreia putem obține repetarea unui număr de
instrucțiuni de un anumit număr de ori specificat.
Funcția if este o funcție logică, cu ajutorul căreia putem introduce
anumite condiții.
36
Figura 2.2.1
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:
37
În aplicația creată am ales ca mesajul introdus să fie mai întâi transformat
în binar operație realizată cu ajutorul funcției de transformare a mesajului din
clar în binar și anume binMsg (vezi figura 2.2.2-1).
38
Figura 2.2.2-3 Blocul de decriptare
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.
39
Dscrierea codului ASCII pe 7-biți
40
CAPITOLUL III
41
După cum observăm mesajul este indescifrabil, asupra acestui text se va
aplica blocul de decriptare al schemei de criptare ElGamal, mesajul fiind
transformat din nou în forma clară.
Mesajul decriptat:
42
figura 3.1.1-4 Algoritmul de criptare al sistemului ElGamal implementat în
mediul de programare Matlab
43
3.2 Analiza performanțelor în domeniul timp după rularea aplicației
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
44
Curba funcției de criptare ElGamal este de asemenea asemănătoare cu
cea de generare a cheilor. Putem spune că, cu cât gradul polinomului crește în
valoare cu atât crește și timpul de rulare al blocurilor, practic timpul de rulare
este direct proporțional cu parametrul m (vezi figura 3.2.1-1).
1,5
1,4
1,342
1,3
1,2
1,1 1,124
1
0,9 0,919
0,855
TIMP (S)
0,8
0,7
0,6
0,5
0,4
0,3
0,2 0,199 0,213
0,178 0,148
0,124 0,144
0,1 0,081 0,082 0,094 0,112
0 0,027 0,03
10 11 12 13 14 15 16 17
VALOAREA M
45
Tabel 3.2.1-2
Timp (s)
Nr. Valoare Funcția
Crt. m ElGamal Criptarea
1 10 1,309 1,193
2 11 2,247 2,138
3 12 4,005 3,723
4 13 7,467 7,351
5 14 13,489 13,254
6 15 25,867 25,629
7 16 48,974 48,039
8 17 74,568 74,156
80
74,156 74,568
70
60
48,039
50 48,974
TIMP (S)
40
25,629
30
13,254 25,867
20
3,723 7,351
1,193 2,138 13,489
10
7,467
2,247 4,005
0 1,309
10 11 12 13 14 15 16 17
VALOAREA M
Figura 3.2.1-2 Variația timpului necesar criptării pentru valori diferite ale lui
m
46
La fel se întâmplă și în cazul criptării mesajului, de la aproape 1,2s pentru
o valoare m=10, la aproape 74s pentru m=17.
Acest timp depinde și de mărimea mesajului trimis, cu cât mesajul este
mai mare cu atât timpul necesar criptării este mai mare. Deci cu cât valoarea
gradului polinomului este mai mică și mesajul este mai scurt, cu atât mai repede
se face operația de criptare în cadrul algoritmului.
Luând un mesaj de dimensiuni considerabile, cu o valoare m mare,
timpul de criptare este foarte mare, în unele cazuri nici nu ar putea avea loc
criptarea mesajului, necesitând sisteme informatice mai avansate, cu memorie
mare.
Aplicația pe care am creat-o poate face criptare de mesaje pentru o
valoare maximă a lui m=17, ea nu mai poate fi rulată de la valori mai mari.
Tabel 3.2.1-3
Timp (min)
Valoarea Funcția
Nr.crt. m ElGamal Decriptarea
1 10 5.451 5,256
2 11 6,548 6,324
3 12 9,456 9,156
4 13 13,478 13,234
5 14 18,768 18,367
6 15 26,809 26,587
7 16 38,932 38,569
8 17 60,359 59,934
47
70
60,359
60 59,934
50
38,932
TIMP (MIN) 40 38,569
26,809
30
18,768 26,587
13,478
20 6,548 9,456 18,367
13,234
10 9,156
5,256 6,324
0
10 11 12 13 14 15 16 17
VALOAREA M
Figura 3.2.1-3
48
CONCLUZII
50
BIBLIOGRAFIE
Autori români:
1. Constantinescu Z., Moise G., Criptarea Informației – Ghid Practic,
Ploiești, Editura Universității Petrol-Gaze, 2011.
2. Drăgan M., Ș. Mărușter, Limbaje Formale, Timișoara, Editura
Universității din Timișoara, 2005.
3. Preda V., Simion E., Popescu A., Criptanaliza. Rezultate și Tehnici
Matematice, București, Ediția a 2-a, Editura Universității din București,
2011.
4. Panaitescu G., Transmiterea si codarea informatiilor-Note de curs,
Universitate“Petrol-Gaze” Ploieşti Departamentul Automaticǎ,
Calculatoare şi Electronicǎ, 2015.
Autori străini:
5. Henderson A.D., Cryptography and Complexity, Case Western Reserve
University. MATH 408, Nepublicată, 2012.
6. Mazur J., Enlightening Symbols: A Short History of Mathematical
Notation and Its Hidden Powers, New Jersey, Editura Princeton
University Press, 2014.
7. Bernstein D.J.(ed.), Chatterjee S.(ed.), Progress in Cryptology – Indocrypt
2011, Chennai India, Editura Springer, 2011.
8. Mowry D.P., German Cipher Machines of World War II, Center for
Cryptologic History, National Security Agency, 2014.
9. Woeginger G., Exact algorithms for NP-hard problems: Combinatorial
Optimization, Berlin, Editura Springer-Verlag, 2003,pp. 185–207
10. Katz J., Lindell Y., Introduction to Modern Cryptography, New York,
Editura Chapman & Hall/CRC, 2008.
11. Schneier B., Applied Cryptography:Protocols, Algorithms and Source
Code in C, New York, Editura Wiley, 2015
12. Talbot J., Welsh D., Complexity and Cryptography An Introduction,
Cambridge, Editura Cambridge University Press, 2006.
13. Gupta N.D., Sharma S.K., Handbook of Research on Information Security
and Assurance, New York, Editura Information Science Reference, 2008.
14. Håstad J., Advances in Cryptology — CRYPTO ’85 Proceedings, Berlin,
Editura Springer, 1986.
15. Churchhouse R., Codes and Ciphers – Julius Caesar, the Enigma, and the
Internet, Cambridge, Editura Cambridge Univeristy Press, 2004.
16. Pape S., Authentication in Insecure Environments, Dortmund, Editura
Springer Vieweg, 2013.
51
17. Stamp M., Low R.M., Applied Cryptanalysy Breaking Ciphers in the Real
World, San Jose CA, Editura John Wiley & Sons, 2007.
18. Kahn D., The Codebreakers – The Story of Secret writing, New York,
Editura The New American Library, 1973.
Dicționar:
19. Stevenson A.(ed.), Oxford Dictionari of English, Ediția a 3-a, Oxford,
Editura Oxford University Press, 2010.
20. Gove P.B.(ed.), Webster’s New Dictionary Synonyms, Springfield U.S.A,
Editura Merriam-Webster INC, 1984.
Surse internet:
21. http://codare-date.cpf.ro/criptare-simetrica.php accesat la data de
25.04.2018
22. https://www.ssl2buy.com/wiki/symmetric-vs-asymmetric-encryption-
what-are-differences accesat la data de 26.04.2018
23. https://www.geeksforgeeks.org/rsa-algorithm-cryptography/ accesat la
data de 05.05.2018
24. http://mathworld.wolfram.com/RSAEncryption.html accesat la data de
11.05.2018
25. http://homepages.math.uic.edu/~leon/mcs425-s08/handouts/el-gamal.pdf
accesat la data de 15.05.2018
26. https://crypto.stackexchange.com/questions/1677/when-to-use-rsa-and-
when-elgamal-asymmetric-encryption accesat la data de 21.05.2018
27. https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cr
yptosystem accesat la data de 30.05.2018
28. http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-
gentle-introduction/ accesat la data de 05.06.2018
29. https://www.emsec.rub.de/media/crypto/attachments/files/2010/04/da_he
yse.pdf accesat la data de 14.06.2018
30. https://www.sav.sk/journals/uploads/0212093505re-zaj.pdf accesat la
data de 20.06.2018
31. https://en.wikipedia.org/wiki/ElGamal_encryption accesat în 20.04.2018
32. https://economictimes.indiatimes.com/definition/cryptography accesat în
24.04.2018
33. https://asecuritysite.com/encryption/elgamal accesat în data de
30.04.2018
34. http://www.iusmentis.com/technology/encryption/elgamal/ accesat în
data de 12.05.2018
35. https://cryptographyacademy.com/elgamal/ accesat în data de 18.05.2018
36. https://www.coursera.org/lecture/crypto/elgamal-security-2tbL6 accesat
la data de 25.05.2018
52
37. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.367.681&rep=
rep1&type=pdf accesat la data de 02.06.2018
38. https://www.di-mgt.com.au/public-key-crypto-discrete-logs-3-
elgamal.html accesat la data de 10.06.2018
39. https://www.tutorialspoint.com/cryptography/public_key_encryption.htm
accesat la data de 18.06.2018
40. https://en.wikipedia.org/wiki/ElGamal_signature_scheme accesat la data
de 29.06.2018
41. https://scialert.net/fulltextmobile/?doi=jas.2005.883.886 accesat la data
de 01.07.2018
42. https://www.mathworks.com/discovery/what-is-matlab.html accesat la
data de 20.06.2018.
53