Documente Academic
Documente Profesional
Documente Cultură
Capitolul 1
Termeni Criptografici
Definiţia 1.1.3. Criptanaliza sau analiza criptografică este ştiinţa care se ocupă cu
regăsirea de informaţii valide din informaţii cifrate fără ca entitatea care doreşte
accesul la informaţie să aibă acest drept. În urma proceselor criptanalitice se pot
expune eventuale slăbiciuni ale algoritmului de criptare folosit sau ale cheii.
Criptarea informaţiei este făcută prin intermediul unei funcţii E care transformă
textul, sau informaţia pt folosind o cheie k în textul criptat tc (neinteligibil pentru
eventualii adversari). Altfel spus Alice pentru a trimite un mesaj către Bob va aplica
funcţia E de parametri pt şi k şi va obţine textul tc:
E ( pt , k ) = tc
Definiţia 1.1.7. Un atac este o cale generală pe care un criptanalist o poate urma
pentru a "sparge" sau descoperi secretele protejate de un cifru sau sistem
criptografic.
Definiţia 2.1.1. Fie a şi b doi întregi şi n un întreg pozitiv. Atunci scriem a ≡ b(mod n)
dacă n (b − a ) . Fraza a ≡ b(mod n) este numită congruenţă şi va fi citită "a este
congruent cu b modulo n", întregul n fiind numit modul.
Dacă vom divide pe a şi b prin n, vom obţine un cât şi un rest, unde restul va fi
între 0, n − 1 , de aici stabilim următoarele relaţii a = q1 n + r1 şi b = q 2 n + r2 , unde r1 şi r2
între 0, n − 1 , iar conform definiţiei, trebuie să aibă loc relaţia r1 = r2.
Expresia a mod n este interpretată ca fiind reducerea lui a modulo n.
Aritmetica modulo n (adunarea(+), multiplicarea(*)) este definită analog ca în Z cu
diferenţa că rezultatul este redus modulo n. Următoarele proprietăţi pot fi
demonstrate foarte uşor:
1. ∀a, b ∈ Z n , a + b ∈ Z n
2. ∀a, b ∈ Z n , a + b = b + a
3. ∀a, b, c ∈ Z n , (a + b) + c = a + (b + c)
4. 0 este element neutru pentru adunare, adică ∀a ∈ Z n , a + 0 = 0 + a = a
5. există un invers pentru fiecare ∀a ∈ Z n care este m − a . Astfel:
a + (m − a) = (m − a) + a = 0
6. ∀a, b ∈ Z n , a ∗ b ∈ Z n
7. ∀a, b ∈ Z n , a ∗ b = b ∗ a
8. ∀a, b, c ∈ Z n , (a ∗ b) ∗ c = a ∗ (b ∗ c)
9. 1 este element neutru pentru multiplicare, adică ∀a ∈ Z n , a ∗ 1 = 1 ∗ a
10. multiplicarea este distributivă faţă de adunare
∀a, b, c ∈ Z n , (a + b) ∗ c = a ∗ c + b ∗ c
Pentru a defini codul lui Caesar vom considera cazul alfabetului englezesc
care conţine 26 de caractere şi din acest motiv se va lucra în Z26.
Definiţia 2.1.2. Un sistem criptografic bazat pe deplasare în Z26 este definit astfel:
P = C = K = Z 26 . Pentru 0 ≤ K ≤ 25 , definim:
ek ( x) = ( x + K ) mod 26
şi
d k ( y ) = ( y − K ) mod 26
unde x, y ∈ Z 26 şi x reprezintă textul în clar şi y textul criptat.
2.1.3 Algoritm
Pentru criptarea efectivă a unui text se va face mai întâi o conversie de forma
a ↔ 0, b ↔ 1, c ↔ 2,..., z ↔ 25 şi trecerea valorilor într-un vector de întregi care va
reprezenta mesajul, fie el în forma în clar sau forma criptată.
1.decriptare _ Caesar (C n , k )
2.i ← 0
3.while(i ≤ n)
3.1.M i ← C i − k
3.2.i + +
4.return _ M i
2.1.4 Exemplu
Exemplul 2.1.1. Criptarea cu cifrul lui Caezar
Text în clar: ATACATI FLANCUL DREPT
Cheie +3
Text criptat: DWDFDWL IODQFXO GUHSW
Exemplul 2.1.2. Decriptarea cu cifrul lui Caezar
2.2.3 Algoritm
Algoritmul criptării afine este o modificare trivială a algoritmului criptării prin
metoda lui Caesar. Si in acest caz se cere o conversie prealabilă a textului identică
metodei de criptare a luCaesar.
Vom presupune implementată procedura cmmdc pentru calcularea celui mai
mare divizor comun, folosită pentru a verifica faptul că a şi lungimea alfabetului folosit
sunt numere prime între ele, în caz contrar mesajul criptat nu va putea fi decriptat.
2.3.3 Algoritm
Algoritmul 2.3.1. Criptare prin metoda Vigenere
1. _ criptare _ Vigenere( P, K , lungime _ mesaj )
2.while(i < lungime _ mesaj )
2.1. for ( j = 0, lungime _ cheie)
2.1.2.C i ← Pi + K i
2.1.2.i + +
2.2.i + +
3.return _ C i
Algoritmul 2.3.2. Decriptare prin metoda Vigenere
1. _ decriptare _ Vigenere(C , K , lungime _ mesaj )
2.while(i < lungime _ mesaj )
2.1. for ( j = 0, lungime _ cheie)
2.1.2.Pi ← C i − K i
2.1.2.i + +
2.2.i + +
3.return _ C i
2.4.3 Algoritm
Pentru algoritmii de mai jos se presupune că literele textului în clar dar şi ale
textului criptat sunt puse intr-o corespondenţă cu cifrele de la 0 la 25 de forma:
a ↔ 0, b ↔ 1, c ↔ 2,..., z ↔ 25 . După crearea acestei corespondenţe textul în clar
trebuie scris sub forma a t vectori obţinuţi prin împărţirea textului în clar în grupuri de
câte m elemente.
Dacă pentru ultimul vector avem un număr de elemente mai mic decât m vom
repeta ultima literă pentru completarea vectorului. Algoritmul pentru criptare este
următorul, (toate operaţiile sunt modulo-n):
Capitolul 3
Criptosisteme simetrice
Criptosistemele bazate pe cheie simetrică asigură confidenţialitatea mesajelor
transmise între doi parteneri de comunicaţie prin folosirea aceleiaşi chei atât pentru
criptare cât şi pentru decriptare. Acest fapt este motivul pentru care aceste
criptosisteme sunt numite cu cheie simetrică.
Descriere matematică
Definiţia 3.1.2. Un criptosistem bazat pe cifrul Vernam este un tuplu de forma
( P, C , K , E , D) care trebuie să îndeplinească următoarele condiţii:
1. P este un set finit de posibile texte în clar
2. C este un set finit de posibile texte criptate
3. K este un set finit de posibile chei de criptare
4. P = K = C = (0,1) şi funcţia de criptare este definită astfel
ek : {0,1}× {0,1} → {0,1}
e k ( p, k ) = p ⊕ k
unde p este un mesaj din P şi k este o cheie din K. Pentru funcţia de
decriptare d k : {0,1}× {0,1} → {0,1}considerăm c din C si avem:
d k ( c, k ) = c ⊕ k
pentru aceste operaţii p este de forma p = p1 p 2 p3 ... ∈ P ., k este de forma
k = k1 k 2 k 3 ... ∈ K şi c este de forma c = c1c 2 c3 ... ∈ P . Prin semnul ⊕ am simbolizat
XOR pe biţi(sau exclusiv).
Algoritm
Algoritmul 3.1.1. Algoritm criptare Vernam
1. _ criptare _ Vernam( p n , k n )
2.i ← 0
3.while(i <= n)
3.1.ci = pi ⊕ k i
4. _ return _ ci
Exemplu
Înainte de a prezenta un exemplu vom presupune că literele alfabetului suferă
o conversie de forma celor de la criptosistemele clasice:
a ↔ 0, b ↔ 1, c ↔ 2,..., z ↔ 25 .
Exemplul 3.1.1. Criptare Vernam
Presupunem că Alice doreşte să transmită mesajul "TRIMIT AJUTOR" folosind
un canal de comunicaţie nesigur. Atât ea cât şi Bob se presupune că au obţinut
printr-o metodă necunoscută un set de chei generate absolut aleator şi că una dintre
aceste chei este "AFVKGHOPERTS". Pentru a cripta mesajul ei vor proceda în felul
următor, operaţiile sunt în aritmetica modulo-26.
Text în clar: TRI M I TAJ UT OR
Cheie: AFVKGHOPE RT S
Text în clar: 19 17 8 12 8 19 0 9 10 19 14 17
Cheie 0 5 21 10 6 7 14 15 4 17 19 18
Criptograma: 19 22 3 22 14 0 14 24 14 10 7 9
Text criptat TWDW OAO Y O K HJ
Exemplul 3.1.2. Decriptare Vernam
Pentru a obţine textul în clar din textul criptat de mai sus pur şi simplu scădem din
valorile literelor criptogramei valorile literelor cheii. Acolo unde valorile vor fi negative,
ţinând cont de faptul că lucrăm în aritmetica modulo-26 aceste valori for semnifica
26−V , unde V este valoarea negativă.
Text criptat: T W D W O A O Y O K H J
Cheie: AF V K GH O PER TS
Criptograma: 19 22 3 22 14 0 14 24 14 10 7 9
Cheie: 0 5 21 10 6 7 14 15 4 17 19 18
Text în clar: 19 17 –18 12 8 -7 0 9 10 -7 -12 -9
Text în clar: T R I M I T A J U T O R