Documente Academic
Documente Profesional
Documente Cultură
1. Permutarea iniţială;
2. Cele 16 runde de codificare propriu-zisă
(nucleul algoritmului);
3. Permutarea finală (inversa permutării
iniţiale).
• Descifrarea constă în folosirea aceluiaşi algoritm, dar cu
cheile ki aplicate în sens invers, de la k16 la k1 .
• Primul pas în descifrare este aplicarea permutării IP,
care dezleagă ultimul pas IP-1 , din operaţia de cifrare.
• Apoi se va genera în sens invers:
Ri-1 = Li
Li-1 = Ri ⊕ f(Li ,Ki).
• Se va pleca de la R16 şi L16 generându-se la sfârşit R0 şi
L0 .
• Blocul de 64 de biţi este supus unei permutări inverse,
IP-1
Descrierea sistemului DES
1. Fie textul clar inițial, de 64 biți. Se aplică o permutare IP inițială
fixată obținându-se α0 = IP(α) = L0R0 . L0 este format din primii
32 biți ai lui α0, iar R0 – din ultimii 32 biți.
2. Se efectuează 16 iterații (runde) ale unei funcții care se va
preciza. La fiecare tur se calculează LiRi (1≤ i≤ 16) după regula
• Li= Ri-1
• Ri = Li-1 ⊕ f(Ri-1 ,Ki)
unde ⊕ este sau exclusiv (XOR) a două secvențe binare. f este o
funcție care se va preciza, iar K1 ,K2 , . . . ,K16 sunt secvențe de 48
biți calculați din cheia K.
K1 ,K2 , . . . ,K16 se obțin prin diversificarea cheii (key shedule)
Funcția de criptare f(A, J) are ca argumente 2 secvențe binare:
una de 32 biți, iar a doua de 48 biți. Rezultatul este o secvență de
32 biți.
• Etapele de calcul ale funcției sunt:
1. Argumentul A este extins la 48 biți folosind o funcție de
expansiune E. E(A) cuprinde biții lui A așezați într-o anumită
ordine, unii biți fiind scriși de două ori.
2. Se calculează B = E(A)⊕J; rezultatul se descompune în 8
subsecvențe de câte 6 biți fiecare: B = B1B2B3B4 B5B6B7 B8
• Vom calcula
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8), unde
Si(Bi) este rezultatul folosirii permutarii Si.
• fiecare funcţie S de va avea drept intrare un grup de 6 biţi şi
va avea drept ieşire un grup de 4 biţi.
L =R
i i −1
R = L ⊕ f (R , K )
i i −1 i −1 i
Generatorul de subchei produce 16 subchei a câte 48 de biţi.
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
Generarea subcheilor Ki
http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf
Controverse legate de DES
• Toate calculele din DES sunt liniare, cu excepția cutiilor.
• securitatea sistemului se bazează pe S-cutii
• NSA -National Security Agency (1976) S - cutiile au fost
construite pe baza următoarelor criterii:
1. Fiecare linie este o permutare a numerelor 0, . . . , 15;
2. Nici o cutie nu este o funcție liniară sau afină;
3. Modificarea unui bit din operand, o S - cutie provoacă
modificarea cel puțin a doi biți din rezultat;
4. Pentru fiecare cutie S și α (secvență de lungime 6), S(α) și
S( α⊕ 001100) diferă prin cel puțin doi biți.
Securitatea DES
• Securitatea algoritmului DES depinde de algoritmul în
sine şi de utilizarea cheii de 56 de biţi.
• algoritmul DES a fost cel mai studiat algoritm de criptare
• Un interes deosebit este manifestat asupra lungimii
cheii.
• In 1998, Electronic Frontier Foundation (EFF) a anunţat
că cifrul DES a fost spart folosindu-se un calculator
special construit care a costat 250000$. Atacul a durat
mai puţin de trei zile.
• Dacă un cracker poate executa un milion de decriptări
pe milisecundă, atunci codul DES poate fi spart în
aproape 10 ore.
• Din 1977, cercetătorii in criptografie au incercat să proiecteze
maşini pentru a sparge DES. Prima asemenea maşină (1977) a
fost concepută de Diffie şi Hellman, avea nevoie de mai puţin
de o zi, iar costul ei a fost estimat la 20 de milioane de dolari.
După aproape 2 decenii, costul unei astfel de maşini a ajuns la
1 milion de dolari iar timpul necesar spargerii codului a scăzut
la 4 ore. Ulterior, s-au dezvoltat şi alte metode, cum ar fi
folosirea unui cip DES incorporat .
• Deoarece algoritmul DES se aplică asupra unor blocuri de 64
de biţi este denumit generic algoritm de tip ECB (Electronic
Code Book).
• C=EK1[DK2[EK1[P]]]
• C=EK3[DK2[EK1[P]]]