Sunteți pe pagina 1din 6

Student: Giurec Flavius

Informatica anul III

Criptarea cu 3DES
Este un algoritm de criptare simetrica. Conform preceptelor criptografice, in criptarea simetrica
este recomandat ca algoritmii sa fie publici (pentru a putea fi supusi evaluarii comunitatii
stiintifice internationale si a se dovedi algoritmi robusti). Singurul lucru care trebuie sa fie secret
este cheia.

2. Cifruri-bloc
Def. un cifru bloc (block cipher) este o functie E: Vn x Vn,astfel incat pentru fiecare cheie
K , E(P,K) este o mapare invertibila (functia de criptare pentru K) din Vn in Vn, scrisa
EK (P).Maparea inversa este functia de decriptare, scrisa D K (C). C=EK (P) este ciphertextul C,
rezultat din criptarea plaintextului P sub K. K este cheia; este spatiul cheilor format din toti
vectorii Vk de k-biti;n este marimea in biti a blocurilor plaintextului.
2.1. Moduri de criptare
Un block-cipher cripteaza blocuri de plaintext de marime n-biti fixa (de multe ori n=64). Pentru
mesaje ce depasesc n biti, cea mai simpla varianta este de a imparti mesajul in blocuri de n-biti si
de a le cripta separat. Acesta este modul de criptare ECB (Electronic Codebook). Exista mai
multe moduri de criptare. Pentru programul nostru am folosit mereu modul CBC (Cipher-block
Chaining), descris mai jos. Alte moduri folosite sunt CFB (Cipher feedback), OFB (Output
feedback).
Modul de criptare CBC
Modul de criptare CBC presupune utilizarea unui vector de initializare format din n-biti, vector
numit in cele ce urmeaza IV (initialization vector). E K reprezinta functia de criptare a blocchiperului E parametrizat de cheia K, iar EK-1reprezintadecriptarea. Se presupune ca un plaintext
x= x1 xt este format din blocuri de n-biti.
Algoritmul 1 (mod de criptare CBC)
Intrare: cheie de k-biti; vector de initializare IV de n-biti; blocuri de plaintext x 1, , xt de n-biti
fiecare.
Sumar: produce blocuri de ciphertext c1, , ct; decriptarea lor duce la obtinerea plaintextului.
1. Criptare: c0 IV. Pentru 1 j t, cj EK (cj-1
2. Decriptare: c0 IV. Pentru 1 j t, xj cj-1

xj).
EK-1(cj-1).

Student: Giurec Flavius


Informatica anul III

Criptare

Decriptare.

Figura 1 - Mod de criptare CBC

2. 3DES
2.1. Istoric
DES este cifrul selectat in 1976 ca Federal Information Processing Standard (FIPS) in SUA. La
inceput a avut elemente secrete si a fost banuit de o usa din spate-backdoor pe care NSA
(National Security Agency) ar fi avut-o in algoritm. Printre cei neconvinsi se aflau si Martin
Helman si Whitfield Diffie. In timp insa a fos supus evaluarilor internationale si si-a dovedit
eficientza. Datorita lui a evoluat mult cercetarea block-cipherurilor. DES mai apare si sub
numele de DEA (Data Encryption Algorithm).
In prezent DES este considerat nesigur pentru majoritatea aplicatiilor. Asta in special
datorita cheii de 56 biti. Trebuie specificat faptul ca desi cei ce de la IBM (care au propus
cipherul) precum si ceilalti evaluatori initiali ai algoritmului au recomandat o cheie mai lunga.
La recomandarea NSA, s-a optat pentru o varianta scurta, probabil tocmai pentru ca NSA sa
poata descifra toate informatiile trimise folosind DES. Un alt element interesant in constructia
DES sunt asa numitele cutii-S care au fost proiectate de IBM in anii 1970 conform criptanalizei
diferentiale, desi aceasta a aparut in comunitatea stiintifica doar in anii 90. In 1998, un atac prin
forta bruta a demonstrat ca algoritmul poate fi spart in mai putin de 24 de ore si astfel a aparut
necesitatea unuia nou.
O varianta considerata sigura este forma 3DES (Triple-DES), desi si la adresa acestuia exista
atacuri teoretice.
2.2. Elemente teoretice pentru DES
Designul lui DES este legat de doua concepte generale: ciphere produs si ciphere Feinstel.
Fiecare presupune o iterare a unei secvente sau a unei rotatii de operatii.

Student: Giurec Flavius


Informatica anul III

Ideea de baza a unul cipher produs este de a construe o functie complexa de criptare prin
compunerea catorva operatii simple care ofera prin complementaritate protectie (dar nu si
individual). Operatiile include transpozitii, translatii (XOR) si transformari liniare, operatii
aritmetice, multiplicare modulo si substitutii simple.
Def. - Un cipher produs combina una sau mai multe transformatii intr-o maniera care
intentioneaza ca cipherul rezultat sa fie mai sigur decat componentele individuale.
Def. - O retea SP (substitutie-permutatie) este un cipher produs compus dintr-un numar de stagii,
fiecare implicand substitutii si permutatii.

Figura 2 - retea SP
Multe retele SP sunt cifruri iterate conform definitiei urmatoare:
Def. - Un cifru-bloc (block-cipher) iterat este un bloc cipher care presupune repetitia secventiala
a unei functii interne numite functie round. Parametrii include numarul rundelor r, marimea in
biti a blocului n, marimea in biti k a cheii de intrare K de unde sunt derivater subchei Ki. Pentru
inversabilitate (care permite decriptare unica), pentru fiecare valoare Ki, functia round este o
bijectie pe runda de intrare.
Def. - Un cifru Feistel este un cifru iterat care mapeaza un plaintext (L 0, R0) de 2t-biti pentru
blocurile de t-biti L0 si R0, pe un ciphertext (Lr, Rr), printr-un proces in r runde, unde r>=1.
Pentru 1 i r,
urmeaza:
cheia K a cifrului.

runda i mapeaza

dupa
cum
, unde fiecare sub-cheie
este derivata din

De obicei intr-un cifru Feinstel, r>=3, si de cele mai multe ori este par. Figura 4 arata cum runde
succesive ale unui cifru Feinstel opereaza pe jumatati alternative are ciphertextului, in timp ce
cealalte raman constante.

Student: Giurec Flavius


Informatica anul III

3.3. Algoritmul DES


DES este un cifru Feinstel care proceseaza blocuri de plaintext de n=64 biti, producand blocuri
de ciphertext de 64 de biti. Marimea efectiva a cheii secrete K este k= 56 biti; mai exact, cheia de
intrare K este specificata ca fiind o cheie de 64 biti, 8 biti (bitii 8, 16, , 64) dintre acestia putand
fi folositi ca biti de paritate. Cele 2 56 chei implementeza (cel mult) 256 dintre cele 266 de bijectii
posibile pe blocuri de 64 de biti. O opinie generala este ca bitii de paritate au fost introdusi
pentru a reduce marimea efectiva a cheii de la 64 la 56 de biti pentru a reduce intentionat costul
unei cautari exhaustive a cheii cu un factor de 256 (de catre NSA, dupa cum am spus si in
introducere).

Figura 3 - Intrare/Iesire DES


Algoritmul 3 da detalii complete despre DES. Urmeaza intai o privire de ansamblu. Criptarea are
loc in 16 stagii sau runde. Din cheia de intrare K, sunt generate 16 subchei K i de 48 de biti
fiecare, cate una pentru fiecare runda. In fiecare runda sunt folosite 8 mapari S iprin substitutii
fixe (alese cu grija) de la 6 la 4 biti (cutii-S) numite colectiv S. Plaintextul de 64 de biti este
impartit in jumatati de 32 de biti L 0 si R0. Fiecare runda este echivalenta din punct de vedere
functional, luandu-se intrari de 32 de biti Li-1 si Ri-1 din runda anterioara si producandu-se iesiri
de 32 de biti Li si Ri pentru 1 i 16, precum urmeaza:

ecuatiile (1) si (2)


Aici E este o permutare de expansiune fixa care mapeaza R i-1 din 32 de biti in 48 de biti (toti bitii
sunt folositi o data si cativa de doua ori). P este o alta permutare fixa pe 32 de biti. O permutare
initiala de biti (IP) precede prima runda. Dupa ultima runda, jumatatile dreapta si stanga sunt
permutate si in final sirul rezultat este bit-permutat de inversa lui IP. Decriptarea presupune
aceeasi cheie si acelasi algoritm, dar cu subcheile aplicate rundelor interne in ordinea inversa.
Simplificat, putem spune ca jumatatea dreapta a fiecarei runde (dupa expandarea intrarii de 32 de
biti la 8 caractere a cate 6 biti fiecare) indeplineste o subsitutie dependenta de cheie pe fiecare
dintre cele 8 caractere, iar apoi foloseste o transpozitie de biti fixa pentru a redistribui bitii
caracterelor rezultate pentru a produce iesiri de 32 de biti.
3.3.1. Algoritmul 2 Obtinerea cheilor DES

Student: Giurec Flavius


Informatica anul III

Intrare: o cheie de 64 de biti K= k1 k64 (inclusiv 8 biti de paritate).


Iesire: 16 chei de 48 de biti Ki , 1 i 16.
1.

fie
celelalte cazuri.

2.

dupa cum urmeaza:

pentru

. T se reprezinta ca jumatati

si

de 28 de biti. (se foloseste PC1 din

Tabelul 1 pentru a se selecta bitii din K.


3.

Pentru

de

la

.
la

16,

se

calculeaza

K i dupa

urmeaza:

cum
(Se

foloseste PC2 din Tabelul 1 pentru a selecta 48 de biti din concatenarea


din Ci si Di:

pentru

inseamna shiftare circulara la stanga.

Tabelul 1 Selectia bitilor pentru calcularea cheilor DES (PC1 si PC2)

Tabelul 2. - Permutarile initiale si inverse DES (IP si IP-1)

Student: Giurec Flavius


Informatica anul III

Tabelul 3. functiile round DES: expansiunea E si permutarea P


3.4. 3DES (sau Triple-DES)

3DES este definit ca fiind format dintr-o criptare DES cu o cheie k1, o decriptare DES cu
o cheie k2 si apoi inca o criptare DES cu o cheie k3.
C = DESk3(DES-1k2(DESk1(P))). Cheile k1, k2, k3 au 56 de biti fiecare. Asadar cheia
pentru 3DES are 168 de biti dar din cauza unui atac posibil, are o lungime efectiva de 112
de biti. Exista si o varianta in care k1=k3, insa acest mod de folosire este mai susceptibil
la atacuri. Problema cu 3DES este viteza. Designul DES a fost gandit pentru
implementari hardware eficiente.. si de aceea 3DES aste un algoritm greoi de criptare.
Blowfish de exemplu este de cateva ori mai rapid pentru un nivel echivalent de securitate.