Sunteți pe pagina 1din 19

2.

Criptografia i securitatea reelelor

Criptografia este tiina scrierilor secrete. Ea st la baza multor servicii i


mecanisme de securitate, folosind metode matematice pentru transformarea datelor, n
intenia de a ascunde coninutul acestora sau de a le proteja mpotriva modificrii.
Criptografia are o lung istorie, confidenialitatea comunicrii fiind o cerin a tuturor
timpurilor. Dac ar trebui s alegem un singur exemplu al criptografie clasice, acesta ar
fi cifrul lui Cezar, nu att datorit celebritii mpratului roman, de care se leag
folosirea lui, ci pentru c principiul su de baz, al substituiei, s-a meninut nealterat
aproape dou milenii.
Mult vreme, eforturile criptografilor au fost dirijate spre ntrirea cifrurilor prin
complicarea algoritmului, combinnd substituii i transpoziii asupra unor simboluri sau
asupra unor blocuri (grupe de simboluri). Dou sunt elementele ce au marcat ns cotitura
semnificativ n dezvoltarea metodelor criptografice.
Primul este legat de dezvoltarea reelelor de calculatoare, al cror stimulent
extraordinar s-a manifestat att prin presiunea exercitat de tot mai muli utilizatori (a
cror dorin obiectiv este pstrarea secretului i a siguranei asupra potei electronice
private, a transferului electronic de fonduri i a altor aplicaii) ct i prin potenarea gamei
de instrumente folosite efectiv n execuia algoritmilor de cifrare. Utilizarea
calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari,
sporindu-se astfel rezistena la atacuri criptoanalitice. Cnd cheia secret are o
dimensiune convenabil, i este suficient de frecvent schimbat, devine practic imposibil
spargerea cifrului, chiar dac se cunoate algoritmul de cifrare. Pe aceast idee se bazeaz
i standardul american de cifrare a datelor DES (Data Encryption Standard) , larg
utilizat de guvernul SUA i de diverse companii internaionale. Propus ntr-o form
iniial de IBM n 1975, DES a rezistat evalurii fcute de sprgtorii de cifruri de la
US National Security Agency (NSA), care au recomandat doar reproiectarea anumitor
componente (casete de substituie). DES a fost adoptat ca standard federal n 1977 i a
fost folosit intens datorit performanelor de vitez atinse la cifrare (peste 100 Mbps). Se
tie ns c s-a reuit spargerea DES (este adevrat c pentru aceasta a fost folosit o mare
cantitate de resurse de calcul), iar experiena a artat c orice schem criptografic are o
via limitat i c avansul tehnologic reduce, mai devreme sau mai trziu, securitatea
furnizat de aceasta.
Al doilea moment important n evoluia criptografiei moderne l-a constituit
adoptarea unui principiu diferit de acela al cifrrii simetrice. Whitfield Diffie i Martin
Hellman, cercettori la Universitatea Stanford din California, prin articolul New
Directions in Criptography, publicat n 1976 n revista IEEE Transactions on
Information Theory, au pus bazele criptografiei asimetrice cu chei publice. n locul
unei singure chei secrete, criptografia asimetric folosete dou chei diferite, una pentru
cifrare, alta pentru descifrare. Deoarece este imposibil deducerea unei chei din cealalt,
una din chei este fcut public, fiind pus la ndemna oricui dorete s transmit un
mesaj cifrat. Doar destinatarul, care deine cea de-a doua cheie, poate descifra i utiliza
mesajul. Tehnica cheilor publice poate fi folosit i pentru autentificarea mesajelor, fapt
care i-a sporit popularitatea. Nu este deci de mirare c guvernul SUA a iniiat adoptarea
unui standard de semntur digital bazat pe conceptul de cheie public. Acest demers a
generat controverse, soldate chiar cu acuze ntre organizaiile implicate. Pn n
decembrie 1990, Institutul Naional de Standarde i Tehnologie al SUA (NIST)
recomanda pentru adoptare ca standard metoda RSA, prezent deja n industrie. Dar nou
luni mai trziu, n august 1991, NIST a avansat un cu totul alt algoritm, bazat pe o metod
cu chei publice, publicat de Taher El Gamal n 1986. Noua propunere, denumit DSS
(Digital Signature Standard), a fost dezvoltat de Agenia de Securitate Naional a SUA
(NSA National Security Agency). Ea a dezamgit ns, nu datorit performanelor, ci
graie autorului, care nu este doar proiectant, ci i sprgtor de cifruri, ceea ce a strnit,
inevitabil, suspiciuni.
Un cifru se definete ca transformarea unui mesaj clar sau text clar n mesaj cifrat
sau criptogram. Procesul de transformare a textului clar n text cifrat se numete cifrare
sau criptare, iar transformarea invers, a criptogramei n text clar, are denumirea de
descifrare sau decriptare. Att cifrarea ct i descifrarea sunt controlate de ctre una sau
mai multe chei criptografice. Criptanaliza studiaz metodele de spargere a cifrurilor,
adic de determinare a textului clar sau a cheii de cifrare din criptogram.
Un sistem criptografic (criptosistem) este compus din:

M text clar;
C text cifrat;
2 funcii inverse E( ) i D( );
un algoritm care produce cheile Ke i Kd astfel nct:

C = E K e (M )
M = DK d (C ).

Exist dou tipuri de sisteme criptografice:

simetrice (cu cheie secret) care folosesc aceeai cheie, att la cifrarea ct i la
descifrarea mesajelor;
asimetrice (cu chei publice) care folosesc chei distincte de cifrare i descifrare
(dar legate una de alta). Una din chei este inut secret i este cunoscut doar
de proprietarul ei. A doua cheie (perechea ei) este fcut public, de unde i
numele de criptografie cu cheie public.

- Algoritmi criptografici cu cheie secret (simetrici)


n cazul sistemelor criptografice cu cheie secret (simetrice) se folosete aceeai
cheie, att la cifrarea ct i la descifrarea mesajelor. Cheia este inut secret i folosit n
comun de ctre emitor i receptor (vezi figura 1).

Figura 1 Cifrarea simetric

Definiie: un algoritm cu cheie secret (simetric) este compus din dou funcii E( )
i D( ), care utilizeaz chei caracterizate de urmtoarele proprieti:

Ke=Kd=K;
Ke i Kd sunt secrete.
Sistemele simetrice sunt bine cunoscute, conduc la performane bune i sunt
folosite pentru protecia datelor utilizatorilor. Se pot aminti aici criptosisteme simetrice
cunoscute cum ar fi DES (Data Encryption Standard) sau IDEA (International Data
Encryiption Algorithm).
Securitatea criptrii simetrice depinde de protecia cheii; managementul acestora
este un factor vital n securitatea datelor i cuprinde urmtoarele aspecte:

Generarea cheilor. Pot fi folosite, cu o tabel de conversie, proceduri manuale (datul


cu banul, aruncarea zarurilor), dar numai pentru generarea cheilor master (folosite
pentru cifrarea cheilor). Pentru cheile de sesiune sau de terminal sunt necesare
proceduri automate, de generare (pseudo)aleatoare, care se pot baza pe amplificatoare
de zgomot, funcii matematice i diveri parametri (numrul curent al apelurilor
sistem, data, ora etc.);
Distribuia cheilor. Cu privire la transportul cheii secrete, problema este n general
rezolvat prin folosirea unei alte chei, numit cheie terminal, pentru a o cripta. Cheile
de sesiune generate numai pentru o comunicaie sunt transportate criptat cu cheile
terminal care, de asemenea, pot fi protejate (cnd sunt memorate) cu alt cheie,
numit cheie master;
Memorarea cheilor. Utilizarea algoritmilor simetrici, n cazul a N entiti care doresc
s comunice, implic N(N-1)/2 chei de memorat ntr-un mod sigur. n realitate, nu
toate legturile bidirecionale se stabilesc n acelai timp; este motivul pentru care se
utilizeaz cheile de sesiune. Cheile terminal, care cripteaz numai date foarte scurte
(chei de sesiune), sunt foarte dificil de atacat. Cnd sunt folosite chei publice, X.500
pare cea mai bun soluie pentru managementul cheilor. Cheile publice sunt pstrate
n directoare X.500, ca certificate semnate cu o semntur digital a Autoritii de
certificare (Certificate Authority).

Algoritmul DES (Data Encryption Standard)


Descrierea DES
Sistemul DES, cunoscut sub numele de DEA (Data Encryption Algorithm) de
ANSI (American National Standard Institute) i sub numele de DEA-1 de ISO, este
primul standard dedicat proteciei criptografice a datelor pe calculator. A fost studiat de
IBM ncepnd cu 1970 pentru NBS (National Bureau of Standards). Dup cteva
modificri realizate mpreun de NBS i NSA (National Security Agency), a fost publicat
ca FIPS PUB 46 (Federal Information Processing Standards Publication - 46) n 1977 i
intitulat DES. Ulterior, a fost adoptat n 1981 de ANSI ca standard ANSI X3.92 i intitulat,
aa cum am amintit, DEA. Exist diferene ntre standarde; de exemplu, FIPS autorizeaz
numai implementare hard. DES este un cifru bloc, care cripteaz date n blocuri de 64 de
bii. Un bloc de 64 de bii de text clar constituie data de intrare a algoritmului, iar ca data
de ieire se obine un bloc de 64 de bii de text cifrat. Lungimea cheii este de 56 de bii
(de obicei ea se exprim ca un numr de 64 de bii, dar fiecare al optulea bit este utilizat
pentru verificarea paritii impare a octeilor care formeaz cheia, reprezentnd cei mai
puin semnificativi bii ai acestor octei). Aceti 56 de bii sunt generai aleator i pot fi
modificai n orice moment. O serie de astfel de numere pot fi considerate chei slabe, dar
ele pot fi uor evitate. Aceast cheie este pstrat de ctre toi membrii unui grup de
utilizatori care, astfel, pot cifra/descifra toate datele transmise de la unii la alii.
Figura 2 Sistemul de cifrare DES

Privit n ansamblu, algoritmul nu este altceva dect o combinaie a dou tehnici


elementare de criptare: confuzie i difuzie. Construcia fundamental a unui bloc
DES este o combinaie unic a acestor dou tehnici (o substituie urmat de o permutare)
asupra textului, bazat pe cheie. Aceast construcie este cunoscut sub numele de rund.
DES este compus din 16 runde; acestea aplic aceeai combinaie de tehnici asupra
blocului de text clar de 16 ori (vezi figura 2).

Prezentarea algoritmului

DES opereaz pe blocuri de text clar de 64 de bii. Dup o permutare iniial,


blocurile sunt sparte n dou jumti, dreapt i stng, fiecare de cte 32 de bii.
Urmeaz apoi 16 runde de operaii identice, numite funcii de cifrare f, n care datele sunt
combinate cu cheia. Dup a aisprezecea rund, cele dou jumti sunt recombinate,
algoritmul ncheindu-se cu o permutare final, reprezentnd inversa permutrii iniiale.
n fiecare rund (vezi figura 3), biii cheii sunt deplasai (iftai), dup care sunt
alei 48 de bii din cei 56 ai cheii. Jumtatea dreapt a blocului de date este expandat la
48 de bii prin intermediul unei permutri expandate, apoi adunat modulo 2 cu 48 de bii
de cheie deplasai i permutai, i aplicat la intrrile a 8 cutii S, la ieirea crora se obin
32 de bii noi, care sunt permutai din nou. Aceste 4 operaii constituie funcia de cifrare
f. Blocul de bii de la ieirea funciei f este apoi combinat cu jumttea stng prin
intermediul unei alte adunri modulo 2. Rezultatul acestor operaii devine noua jumtate
dreapt. Aceast succesiune de operaii este repetat de 16 ori, rezultnd 16 runde ale
algoritmului DES.
Figura 3 O rund a algoritmuluiDES

Dac notm:

Bi - rezultatul iteraiei cu numrul i;


Li i Ri - jumtile stng, respectiv dreapt, corespunztoare lui Bi ;
Ki - cheia de 48 de bii ai rundei i;
f - funcia care realizeaz toate operaiile de substituie, permutare i adunare
modulo 2 cu cheia,
atunci prelucrrile unei runde arat astfel:

Li = Ri 1
Ri = Li 1 f ( Ri 1 , K i )
Ultima iteraie este puin diferit de celelalte, fiind definit de ecuaiile:

L16 = R15
R16 = L15 f ( R15 , K16 )

Pentru descrierea funciei de cifrare f vom defini n continuare cteva operaii.

Permutarea iniial (IP)

Permutarea iniial intervine naintea primei runde; ea transpune blocul de la


intrare aa cum este descris n tabelul 1. Acest tabel, asemeni tuturor tabelelor din acest
capitol, trebuie citit de la stnga la dreapta, de sus n jos. De exemplu, permutarea iniial
mut bitul 58 din textul clar pe poziia 1, bitul 50 pe poziia 2, bitul 42 pe poziia 3, i aa
mai departe.
Tabelul 1
Permutarea iniial
58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3,
61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7

Permutarea iniial i permutarea final corespunztoare nu afecteaz securitatea


algoritmului (scopul su principal este de a uura ncrcarea datelor reprezentnd textul
clar i textul cifrat ntr-un chip DES n form de octei. Trebuie amintit c
microprocesoarele DES lucreaz pe magistrale de 16 sau 32 de bii. ntruct aceast
permutare este dificil de realizat soft (altfel banal din punct de vedere hard), multe
implementri software renun att la permutarea iniial, ct i la cea final. Dei acest
nou algoritm nu este mai puin sigur dect DES, el nu urmeaz standardului DES, prin
urmare nu mai poate fi numit DES.

Transformrile cheii

Iniial, cheia DES de 64 de bii este redus la o cheie de 56 de bii, prin ignorarea
fiecrui al optulea bit. Acest lucru este descris n tabelul 2. Aceti bii pot fi folosii
pentru verificarea paritii, pentru a se asigura valabilitatea cheii. Dup extragerea celor
56 de bii, este generat o alt subcheie de 48 de bii pentru fiecare din cele 16 runde ale
DES. Aceste subchei, Ki, sunt determinate n felul urmtor (vezi figura 4).

Figura 4 Generarea cheii pentru o iteraie

Tabelul 2
Permutarea cheii
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18,
10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22,
14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4

n prima faz, cheia de 56 de bii este divizat n dou jumti de 28 de bii.


Apoi, cele dou jumti sunt deplasate circular spre stnga cu unul sau doi bii, n funcie
de rund. Modalitatea de deplasare este prezentat n tabelul 3.
Tabelul 3
Numrul de bii din cheie deplasai la fiecare rund
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Dup deplasare, sunt selectai 48 din cei 56 de bii. ntruct aceast operaie
realizeaz permutarea ordinii biilor precum i alegerea unui subset de bii, ea este
denumit permutare comprimat. Aceast operaie furnizeaz un subset de 48 de bii. n
tabelul 4 este descris permutarea comprimat. De exemplu, bitul din poziia 33 a cheii
deplasate se mut pe poziia 35, iar bitul din poziia 18 a cheii deplasate este ignorat.
Tabelul 4
Permutarea comprimat
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, 27, 47, 55, 30, 40, 51, 45, 33, 48,
44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32

Datorit deplasrii, un subset diferit de bii este utilizat pentru fiecare subcheie.
Fiecare bit este utilizat n aproximativ 14 din cele 16 subchei, dar nu toi biii sunt
utilizai de exact acelai numr de ori.

Permutarea expandat

Aceast operaie expandeaz jumtatea dreapt a datelor, Ri, de la 32 la 48 de bii.


ntruct aceast operaie modific ordinea biilor, dar i repet anumii bii, ea poart
numele de permutare expandat. Aceast operaie are dou scopuri: aduce jumtatea
dreapt la dimensiunea cheii pentru aplicarea unei operaii de adunare modulo 2 i
furnizeaz un rezultat de lungime mai mare, care poate fi comprimat pe timpul operaiei
de substituie. Oricum, nici unul dintre acestea nu reprezint principalul scop criptografic.
Prin permiterea unui singur bit s influeneze dou substituii, dependena biilor de ieire
de biii de intrare se rspndete foarte repede, lucru numit efect de avalan. DES este
proiectat s ating condiia de a avea fiecare bit de text cifrat dependent de fiecare bit de
text clar i de fiecare bit al cheii ct mai repede posibil.
Figura 5 ilustreaz permutarea expandat. Aceasta este uneori numit cutie E.
Pentru fiecare bloc de 4 bii de la intrare, primul i al patrulea bit reprezint fiecare cte
doi bii din blocul de ieire, n timp ce al doilea i al treilea bit reprezint fiecare cte unul
singur. Tabelul 5 prezint corespondena ntre poziiile de intrare i poziiile de ieire. De
exemplu, bitul din poziia 3 a blocului de intrare se deplaseaz n poziia 4 a blocului de
ieire, iar bitul din poziia 21 a blocului de intrare se deplaseaz n poziia 30 i n poziia
32 a blocului de ieire.

Figura 5 Permutarea expandat


Tabelul 5
Permutarea expandat
32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9,
8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1

Cu toate c blocul de ieire are dimensiuni mai mari dect blocul de intrare,
fiecare bloc de intrare genereaz un bloc de ieire unic.

Substituiile cu cutii S
Dup ce cheia comprimat este adunat XOR cu blocul expandat, cei 48 de bii
rezultai sunt supui unei operaii de sustituie. Substituiile sunt realizate de opt cutii de
substituie, numite cutii S. Fiecare cutie S are intrarea de 6 bii i ieirea de 4 bii, existnd
opt cutii S diferite. (Memoria total necesar celor opt cutii S ale DES este de 256 de
bii.) Cei 48 de bii sunt divizai n sub-blocuri de 6 bii. Asupra fiecrui bloc separat
opereaz o cutie S diferit: primul bloc este prelucrat de cutia S 1, al doilea bloc este
prelucrat de cutia S 2, i aa mai departe (vezi figura 6).

Figura 6 Substituiile cu cutii S

Fiecare cutie S este o matrice de 4 linii i 16 coloane. Fiecare element din cutie
este un numr de 4 bii. Cei 6 bii de intrare din cutia S specific numerele liniei i
coloanei care trebuie cutate pentru ieire. Tabelul 6 prezint toate cele 8 cutii S.
Biii de intrare specific un element dintr-o cutie S ntr-o modalitate particular.
S considerm c cei 6 bii de la intrare sunt notai cu b1, b2, b3, b4, b5 i b6. Biii b1 i b6
sunt combinai pentru a forma un numr de 2 bii, de la 0 la 3, care corespunde unei linii
din tabel. Cei patru bii din mijloc, b2 pn la b5, sunt combinai pentru a forma un numr
de 4 bii, de la 0 la 15, care corespunde unei coloane din tabel.
De exemplu, s presupunem c la intrarea cutiei S 6 avem secvena 110011.
Primul i ultimul bit se combin, formnd 11, care corespunde liniei trei a cutiei S 6. Cei
4 bii din mijloc se combin, formnd 1001, care corespunde coloanei 9 a aceleiai cutii
S. Elementul de pe linia 3, coloana 9, a cutiei S 6 este 14. Astfel, valoarea 110011 este
substituit cu 1110.
Sunt, desigur, mult mai uor de implementat cutiile S dect vectori de 64 de
elemente, din punct de vedere software. Sunt necesare unele rearanjri ale elementelor
pentru a realiza acest lucru, dar nu este dificil. (Nu este suficient doar modificarea
indicilor, fr rearanjarea elementelor. Cutiile S sunt proiectate cu mare grij). Oricum,
acest mod de descriere a cutiilor S ofer o imagine clar a modului n care ele opereaz.
Fiecare cutie S poate fi vzut ca o funcie de substituie pe numere de 4 bii: se introduc
b2 pn la b5 i se extrage un rezultat pe 4 bii. Biii b1 i b6 provin de la blocurile vecine;
ei selecteaz una din cele 4 funcii de substituie posibile n fiecare cutie S.
Substituiile realizate de cutiile S reprezint elementul critic n DES. Celelalte
operaii ale algoritmului sunt liniare, i deci uor de analizat. Cutiile S sunt neliniare i,
mai mult dect oricare alte operaii, ofer securitatea DES.
Rezultatul acestei faze de substituie sunt opt blocuri de 4 bii, care sunt
recombinate ntr-un singur bloc de 32 de bii, care va fi supus unei noi operaii:
permutarea cu cutie P.

Tabelul 6
Cutiile S
Cutia S 1:
14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7,
0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8,
4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0,
15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13,

Cutia S 2:
15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10,
3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5,
0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15,
13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9,

Cutia S 3:
10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8,
13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1,
13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7,
1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11 5, 2, 12,

Cutia S 4:
7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15,
13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,
10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4,
3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14,

Cutia S 5:
2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9,
14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6,
4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14,
11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3,

Cutia S 6:
12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11,
10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8,
9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6,
4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13,

Cutia S 7:
4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1,
13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6,
1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2,
6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12,

Cutia S 8:
13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7,
1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2,
7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8,
2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11
Permutarea cu cutie P

Cei 32 de bii de la ieirea cutiilor S sunt permutai conform unei cutii P. Aceast
permutare duce fiecare bit de intrare pe o alt poziie la ieire; nici un bit nu este utilizat
de dou ori i nici un bit nu este ignorat. Aceasta se numete permutare direct sau, pur
i simplu, permutare. Tabelul 7 prezint poziiile pe care se mut fiecare bit. De exemplu,
bitul 21 se mut pe poziia 4, n timp ce bitul 4 se mut pe poziia 31.

Tabelul 7
Permutrile cu cutia P
16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10,
2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25

n sfrit, rezultatul permutrii este adunat modulo 2 cu jumtatea stng a


blocului de 64 de bii iniial. Apoi cele dou jumti sunt comutate i ncepe o nou
rund.
Operaiile prezentate mai sus definesc funcia de cifrare f (vezi figura 7). Fie E
funcia de expandare, S1, S2,...S8 cele 8 cutii S i P permutarea cu cutie P prezentate mai
sus. Pentru a defini funcia f(Ri-1,Ki), conform celor de mai sus, vom preciza mai nti
blocurile B1, B2,...B8, de 6 bii fiecare, ca fiind:

B1 , B2 , K B8 = K i Ri 1

n acest caz, blocul f(Ri-1,Ki) poate fi definit ca:

f ( Ri 1 , K i ) = P( S1 ( B1 ) S 2 ( B2 ) K S 8 ( B8 ))

Figura 7 Schema de realizare a funciei f la DES

Permutarea final

Permutarea final reprezint inversa permutrii iniiale i este descris n tabelul 8.


Trebuie menionat c jumtatea dreapt i cea stng nu i schimb locul dup ultima
rund a algoritmului; n schimb blocul concatenat R16L16 este folosit ca bloc de intrare
pentru permutarea final. Nu se ntmpl nimic deosebit aici; schimbarea locurilor ntre
cele dou jumti i deplasarea conform permutrii finale trebuie s produc acelai
rezultat. Acesta este motivul pentru care algoritmul poate fi folosit att pentru criptare ct
i pentru decriptare.

Tabelul 8
Permutarea final
40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62 30, 37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,
34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25

Descifrarea DES

Dup toate aceste operaii de substituie, permutare, adunare modulo doi i


deplasare, se poate crede c algoritmul de descifrare este complet diferit de algoritmul de
cifrare. Dimpotriv, aceste operaii variate au fost astfel alese nct ele genereaz o
proprietate foarte util: acelai algoritm funcioneaz att pentru criptare ct i pentru
decriptare.
Cu DES este posibil s se utilizeze aceeai funcie pentru a cripta i a decripta un
bloc de date. Singura diferen este c cheile trebuie utilizate n ordine invers. Astfel,
dac cheile de criptare pentru fiecare rund sunt K1, K2, K3, ... K16, atunci cheile de
decriptare sunt K16, K15, K14, ...K1. Algoritmul de generare a cheilor utilizate pentru
fiecare rund este de asemenea circular. De data aceasta ns, deplasarea cheii se face
spre dreapta, i numrul de poziii deplasate este 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1.
Primul pas n descifrare este aplicarea permutrii iniiale, care dezleag ultimul
pas din operaia de cifrare (permutarea final, care este inversa permutrii iniiale). Apoi
se va genera n sens invers:

Ri 1 = Li
Li 1 = Ri f ( Li , K i )

Se va pleca de la R16 i L16 generndu-se la sfrit R0 i L0. n final, blocul de 64


de bii este supus permutrii inverse.

Chei slabe (ineficiente)

Datorit modului n care cheia iniial este modificat pentru a se putea extrage
cte o subcheie pentru fiecare rund, unele chei iniiale sunt chei slabe. Trebuie s ne
amintim c valoarea iniial este mprit n dou jumti i fiecare jumtate este
deplasat independent. Dac toi biii din fiecare jumtate sunt fie 0, fie 1, atunci cheia
utilizat pentru orice ciclu al algoritmului este aceeai pentru toate ciclurile. Aceasta se
poate ntmpla dac cheia este format n ntregime din 1, din 0, sau dac o jumtate a
cheii este format n ntregime din 1 iar cealalt din 0. De asemenea, dou dintre cheile
slabe au alte proprieti care le fac i mai puin sigure . Cele patru chei slabe sunt
prezentate n tabelul 9.
Tabelul 9
Chei slabe ale DES (reprezentare hexazecimal)
Valoarea cheilor slabe (cu bii de paritate) Cheia real
0101 0101 0101 0101 0000000 0000000
1F1F 1F1F 0E0E 0E0E 0000000 FFFFFFF
E0E0 E0E0 F1F1 F1F1 FFFFFFF 0000000
FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF
n plus, unele perechi de chei cifreaz textul clar astfel nct textul cifrat este
identic. Cu alte cuvinte, o cheie din pereche poate decripta mesaje criptate cu alt cheie
din pereche. Acest fapt se datoreaz modului n care DES genereaz subcheile; n loc de a
genera 16 subchei diferite, aceste chei genereaz doar dou subchei diferite. Fiecare
dintre aceste subchei este folosit de opt ori n algoritm. Aceste chei poart numele de
chei semislabe, i sunt prezentate n notaie hexazecimal n tabelul 10.

Tabelul 10
Perechi de chei semislabe ale DES
01FE 01FE 01FE 01FE i FE01 FE01 FE01 FE01
1FE0 1FE0 0EF1 0EF1 i E01F E01F F10E F10E
01E0 01E0 01F1 01F1 i E001 E001 F101 F101
1FFE 1FFE 0EFE 0EFE i FE1F FE1F FE0E FE0E
011F 011F 010E 010E i 1F01 1F01 0E01 0E01
E0FE E0FE F1FE F1FE i FEE0 FEE0 FEF1 FEF1
Unele chei produc doar patru subchei, fiecare utilizat de cte 4 ori n algoritm.
Aceste chei posibil slabe sunt listate n tabelul 11.
Tabelul 11
Chei posibil slabe ale DES

1F 1F 01 01 0E 0E 01 01 E0 01 01 E0 F1 01 01 F1
01 1F 1F 01 01 0E 0E 01 FE 1F 01 E0 FE 0E 01 F1
1F 01 01 1F 0E 01 01 0E FE 01 1F E0 F1 0E 0E F1
01 01 1F 1F 01 01 0E 0E E0 1F 1F E0 F1 0E 0E F1
E0 E0 01 01 F1 F1 01 01 FE 01 01 FE FE 01 01 FE
FE FE 01 01 FE FE 01 01 E0 1F 01 FE F1 0E 01 FE
FE E0 1F 01 FE F1 0E 01 E0 01 1F FE F1 01 0E FE
E0 FE 1F 01 F1 FE 0E 01 FE 1F 1F FE FE 0E 0E FE
FE E0 01 1F FE F1 01 0E 1F FE 01 E0 0E FE 01 F1
E0 FE 01 1F F1 FE 01 0E 01 FE 1F E0 01 FE 0E F1
E0 E0 1F 1F F1 F1 0E 0E 1F E0 01 FE 0E F1 01 FE
FE FE 1F 1F FE FE 0E 0E 01 E0 1F FE 01 F1 0E FE
FE 1F E0 01 FE 0E F1 01 01 01 E0 E0 01 01 F1 F1
E0 1F FE 01 F1 0E FE 01 1F 1F E0 E0 0E 0E F1 F1
FE 01 E0 1F FE 01 F1 0E 1F 01 FE E0 0E 01 FE F1
E0 01 FE 1F F1 01 FE 0E 01 1F FE E0 01 0E FE F1
01 E0 E0 01 01 F1 F1 01 1F 01 E0 FE 0E 01 F1 FE
1F FE E0 01 0E FE F0 01 01 1F E0 FE 01 0E F1 FE
1F E0 FE 01 0E F1 FE 01 01 01 FE FE 01 01 FE FE
01 FE FE 01 01 FE FE 01 1F 1F FE FE 0E 0E FE FE
1F E0 E0 1F 0E F1 F1 0E FE FE E0 E0 FE FE F1 F1
01 FE E0 1F 01 FE F1 0E E0 FE FE E0 F1 FE FE F1
01 E0 FE 1F 01 F1 FE 0E FE E0 E0 FE FE F1 F1 FE
1F FE FE 1F 0E FE FE 0E E0 E0 FE FE F1 F1 FE FE
Variante DES
DES multiplu

Anumite implementri ale DES folosesc DES-triplu (vezi figura 8). Deoarece
DES nu are structur de grup, textul cifrat rezultat este mult mai greu de spart folosind
cutarea exhaustiv: sunt necesare 2112 ncercri n loc de 256.

Figura 8 Triplu DES

DES cu subchei independente


O alt variant a DES este folosirea de subchei diferite pentru fiecare rund, toate
extrase din cheia principal i nu derivate din aceasta, ca n variant clasic. Deoarece la
fiecare din cele 16 runde se folosete o subcheie de 48 de bii, rezult c vom avea o
cheie de 768 de bii. Aceast variant mrete semnificativ dificultatea unui atac obinuit
la 2768 ncercri, fcndu-l impracticabil.

DESX
DESX este o variant de DES dezvoltat de RSA Data Security Inc. DESX
utilizeaz o tehnic numit transparen. Pe lng cheia de 56 de bii a DES-ului, DESX
mai adaug o cheie de 64 de bii, numit cheie transparent. Aceti 64 de bii sunt
ordonai modulo 2 cu textul clar nainte de nceperea algoritmului DES propriu-zis. Dup
ultima rund a DES-ului, se face suma modulo 2 ntre rezultat i cheia transparent.
Astfel, DESX este mult mai rezistent dect DES la un atac obinuit. Aceast variant
mbuntete securitatea la atacurile prin criptanaliz diferenial i liniar, fiind
necesare 261 perechi alese de text clar.

DES generalizat (GDES)


GDES a fost proiectat deopotriv pentru a mri viteza DES-ului i pentru a ntri
algoritmul. Dimensiunea blocului se mrete, n timp ce numrul de calcule rmne
constant.
Figura 9 prezint diagrama bloc a algoritmului GDES. Aceast variant opereaz
cu blocuri de text clar de dimensiune variabil. Blocurile de text clar sunt mprite n q
sub-blocuri de 32 de bii; q este egal cu raportul dintre dimensiunea blocului i 32.
Funcia f este calculat pentru fiecare rund asupra blocului cel mai din dreapta.
Rezultatul este nsumat modulo 2 cu toate celelalte pri, care apoi sunt rotite la dreapta.
GDES are un numr variabil de runde, n. Dac se iau, de exemplu, q=2 i n=16, se obine
DES.
Biham i Shamir au artat c, folosind criptanaliza diferenial, GDES cu q=8 i
n=16 poate fi spart cu numai 6 perechi alese de text clar. Dac se folosesc subchei
independente, sunt necesare 16 perechi alese de text clar. Pentru q=8 i n=31, sunt
necesare 500.000 de perechi alese de text clar. Chiar dac q=8 i n=64, GDES ofer mai
puin securitate dect DES: sunt necesare 249 perechi alese de text clar pentru spargerea
acestuia.
n concluzie, orice schem GDES este mai rapid dect DES, dar ofer mai puin
securitate dect DES.

Figura 9 DES generalizat (GDES)

DES cu cutii S alternative

O serie de alte variante ale DES-ului, fie au construit cutii S variabile, fie au
modificat cutiile S. Biham i Shamir au artat c alegerea cutiilor S originale (ale
standardului DES) nu a fost ntmpltoare: acestea au fost optimizate mpotriva atacurilor
care folosesc criptanaliza diferenial.

RDES
RDES este o variant care nlocuiete inversarea celor dou jumti, dreapt i
stng, la sfritul fiecrei runde cu o inversare dependent de cheie. Schimbrile sunt
prestabilite, depinznd numai de cheie. Aceasta nseamn c cele 15 inversri dependente
de cheie provin din 215 posibiliti, i c varianta nu este rezistent la criptanaliza
diferenial. RDES are un mare numr de chei slabe. De fapt, aproape fiecare cheie este
mai slab dect o cheie a DES-ului clasic.
O idee mai bun este de a face inversri numai n jumtatea dreapt, la nceputul
fiecrei runde. O alt idee i mai bun este de a face inversri dependente de datele de
intrare i nu de o funcie static dependent de cheie. Exist un numr mare de variante
posibile: RDES-1, RDES-2, RDES-3, RDES-4 .
DES cu cutii S dependente de cheie

Criptanaliza liniar i diferenial funcioneaz doar dac analistul cunoate


compunerea cutiilor S. Dac cutiile S sunt dependente de cheie i sunt alese printr-o
metod criptografic puternic, atunci criptanaliza liniar i cea diferenial sunt mult mai
dificil de realizat. Totui, aceste cutii S generate aleator au caracteristici liniare i
difereniale foarte slabe, chiar dac ele sunt secrete.
O metod de a utiliza 48 de bii de cheie adiionali pentru a genera cutii S care s
fie rezistente att la criptanaliza diferenial ct i liniar ar putea fi urmatoarea :

1. Se rearanjeaz cutiile S ale DES-ului: 24673158;


2. Se selecteaz 16 bii din cei rmai din cheie. Dac primul este 1, se
inverseaz primele dou linii ale cutiei S 1 cu ultimele dou linii ale aceleiai
cutii S. Dac al doilea bit este 1, se inverseaz primele opt coloane ale cutiei
S 1 cu ultimele opt. Se procedeaz la fel cu cutia S 2, utilizndu-se al treilea
i al patrulea bit, i aa mai departe pn la cutia S 8;
3. Se iau cei 32 de bii care au mai rmas din cheie. Primii patru se adun
modulo 2 cu fiecare element al cutiei S 1, urmtorii patru cu fiecare element
al cutiei S 2 i aa mai departe.

Complexitatea unui atac prin criptanaliz diferenial mpotriva acestui sistem este
de 251; aceea a unui atac prin criptanaliz liniar este de 253. Complexitatea unei cutri
exhaustive este de 2102.
Ce este interesant cu aceast variant a DES-ului este c ea poate fi implementat
n realizrile hardware existente. Exist distribuitori de componente care vnd chip-uri
DES, acestea avnd posibilitatea de a ncrca cutii S. Metoda de generare a cutiilor S
poate fi fcut n afara chip-ului, apoi aceste cutii S pot fi ncrcate n circuit.
Criptanaliza liniar i cea diferenial necesit prea multe texte clar cunoscute, de aceea
devin inutilizabile n acest caz, iar un atac brut este inimaginabil.

Algoritmul IDEA ( International Data


Encryption Algorithm )
Algoritmul IDEA a fost realizat n Elveia de Xuejia Lai i James Massey n 1990,
fiind la ora actual, unul dintre algoritmii criptografici simetrici cei mai siguri din lume.
Iniial s-a numit PES (Proposed Encription Standard). Anul urmtor, dup ce Eli Biham
i Adi Shamir au introdus criptanaliza diferenial, autorii au ntrit acest cifru mpotriva
atacurilor, numind noul algoritm IPES (Improuved Proposed Encription Standard). IPES
i-a schimbat numele n IDEA (International Data Encryption Algorithm ) n 1992.
IDEA se bazeaz pe fundamente teoretice impresionante i, dei criptanaliza a
fcut destule progrese, algoritmul rmne n continuare puternic. Conform multor opinii ,
acest algoritm este cel mai bun i mai sigur dintre cele disponibile publicului la momentul
actual.
Viitorul lui IDEA nu este nc clar. Deocamdat nu exist o grab n a-l adopta ca
nlocuitor al lui DES, pe de o parte datorit faptului c este patentat i este necesar o
licen pentru aplicaiile comerciale, iar pe de alt parte datorit faptului c utilizatorii
ateapt n continuare s vad modul n care algoritmul va face fa dezvoltrii
criptanalizei.
Privire general asupra IDEA

IDEA este un cifru bloc; el opereaz pe blocuri de 64 bii. Un bloc de 64 bii de


text clar (plaintext) este transformat ntr-un bloc de 64 bii de text cifrat (ciphertext).
Cheia este de 128 bii. Acelai algoritm este utilizat att pentru criptare ct i pentru
decriptare.
Ideea de proiectare a algoritmului IDEA este aceea de a combina operaiile din
diferite grupuri algebrice. Exist trei grupuri algebrice ale cror operaii sunt combinate
n IDEA i ele sunt simplu de implementat, att hard, ct i soft:

XOR ;
Adunare modulo 216 (ignornd orice overflow);
Multiplicare modulo 216 - 1 (ignornd orice overflow). Aceast operaie poate
fi vzut ca o cutie S pentru IDEA.

Acestea sunt singurele operaii folosite de algoritm; nu exist permutri. Deoarece


toate aceste operaii sunt executate pe sub-blocuri de16 bii, acest algoritm este foarte
eficient n implementrile realizate cu procesoare pe 16 bii.

Descrierea algoritmului IDEA

Modul de operare a algoritmului este reprezentat n figura 10. La intrarea n


algoritm, blocurile de date de 64 bii sunt divizate n sub-blocuri de 16 bii, pe care le
notm cu X1, X2, X3 i X4. Aceste patru sub-blocuri mpreun cu alte ase sub-blocuri de
cte 16 bii din cheie, notate Z1,..., Z6, reprezint intrarea pentru prima rund a
algoritmului. Exist opt runde n total. n fiecare rund, secvena operaiilor este dup
cum urmeaz:

(1) T1 = X1 Z1 : multiplicarea sub-blocului X1 cu prima subcheie


(2) T2 = X2+ Z2 : adunarea sub-blocului X2 cu a doua subcheie
(3) T3 = X3+ Z3 : adunarea sub-blocului X3 cu a treia subcheie
(4) T4 = X4 Z4 : multiplicarea sub-blocului X4 cu a patra subcheie
(5) T5 = T1 T3 : XOR ntre rezultatele de la paii (1) i (3)
(6) T6 = T2 T4 : XOR ntre rezultatele de la paii (2) i (4)
(7) T7 = T3 Z5 : multiplicarea rezultatului de la pasul (5) cu a cincea subcheie
(8) T8 = T6+ T7 : adunarea rezultatelor de la paii (6) i (7)
(9) T9 = T8 Z6 : multiplicarea rezultatului de la pasul (8) cu a asea subcheie
(10) T10= T7+ T9 : adunarea rezultatelor de la paii (7) i (9)
(11) Y1 = T1 T9 : XOR ntre rezultatele de la paii (1) i (9)
(12) Y2 = T3 T9 : XOR ntre rezultatele de la paii (3) i (9)
(13) Y3 = T2 T10 : XOR ntre rezultatele de la paii (2) i (10)
(14) Y4 = T4 T10 : XOR ntre rezultatele de la paii (4) i (10)

Ieirea unei runde este format din ultimele patru sub-blocuri, rezultate n urma
execuiei ultimilor pai. Se inverseaz cele dou blocuri interioare (cu excepia ultimei
runde) i, ceea ce rezult, este intrarea pentru runda urmtoare.
Figura 10 Cifrarea bloc cu IDEA

Dup opt runde, transformarea final de ieire este urmatoarea:

(1) Y1 = X1 Z1 : multiplicarea sub-blocului X1 cu prima subcheie


(2) Y2 = X2+ Z2 : adunarea sub-blocului X2 cu a doua subcheie
(3) Y3 = X3+ Z3 : adunarea sub-blocului X3 cu a treia subcheie
(4) Y4 = X4 Z4: multiplicarea sub-blocului X4 cu a patra subcheie

n final, cele patru sub-blocuri sunt concatenate pentru a produce blocul text
cifrat.
Crearea sub-blocurilor de 16 bii din cheie este de asemenea uoar. Algoritmul
folosete 52 dintre ele (ase pentru fiecare dintre cele opt runde plus patru pentru
transformarea final). ntr-o prim faz, cei 128 bii ai cheii sunt mprii n opt subchei
de cte 16 bii. Primele ase subchei sunt utilizate n prima rund, iar urmtoarele dou
subchei n runda a doua. Dup utilizarea ultimei subchei, cheia este rotit cu 25 bii spre
stnga i din nou mprit n opt subchei. Primele patru subchei sunt folosite n runda a
doua, iar urmtoarele patru n runda a treia. Apoi, din nou, cheia este rotit cu 25 bii spre
stnga i se obin urmtoarele opt subchei .a.m.d. pn la sfritul algoritmului.
Decriptarea se face la fel, cu diferena c unele blocuri din cheie (al doilea i al
treilea) sunt inversele aditive, altele (primul i al patrulea) sunt inversele multiplicative,
iar alte blocuri (al cincilea i al aselea) nu sunt inversate. (Conventie! Inversul
multiplicativ modulo 216-1 al lui 0 este 0.) Calcularea inverselor necesit un oarecare
efort, dar trebuie fcut o singur dat pentru fiecare cheie. n tabelul 11 sunt prezentate
subcheile de criptare i subcheile de decriptare corespunztoare.
Subcheile de criptare i decriptare ale algoritmului IDEA
Runda Subchei pentru criptare Subchei pentru decriptare
(1) (1) (1) (1) (1) (1) (9)-1
1 Z1 Z2 Z3 Z4 Z5 Z6 Z1 -Z2(9) -Z3(9) Z4(9)-1 Z5(8) Z6(8)
(2) (2) (2) (2) (2) (2) (8)-1
2 Z1 Z2 Z3 Z4 Z5 Z6 Z1 -Z2(8) -Z3(8) Z4(8)-1 Z5(7) Z6(7)
(3) (3) (3) (3) (3) (3) (7)-1
3 Z1 Z2 Z3 Z4 Z5 Z6 Z1 -Z2(7) -Z3(7) Z4(7)-1 Z5(6) Z6(6)
4 Z1(4) Z2(4) Z3(4) Z4(4) Z5(4) Z6(4) Z1(6)-1 -Z2(6) -Z3(6) Z4(6)-1 Z5(5) Z6(5)
(5) (5) (5) (5) (5) (5)
5 Z1 Z2 Z3 Z4 Z5 Z6 Z1(5)-1 -Z2(5) -Z3(5) Z4(5)-1 Z5(4) Z6(4)
(6) (6) (6) (6) (6) (6)
6 Z1 Z2 Z3 Z4 Z5 Z6 Z1(4)-1 -Z2(4) -Z3(4) Z4(4)-1 Z5(3) Z6(3)
7 Z1(7) Z2(7) Z3(7) Z4(7) Z5(7) Z6(7) Z1(3)-1 -Z2(3) -Z3(3) Z4(3)-1 Z5(2) Z6(2)
(8) (8) (8) (8) (8) (8)
8 Z1 Z2 Z3 Z4 Z5 Z6 Z1(2)-1 -Z2(2) -Z3(2) Z4(2)-1 Z5(1) Z6(1)
(9) (9) (9) (9) (9) (9)
Transformarea Z1 Z2 Z3 Z4 Z5 Z6 Z1(1)-1 -Z2(1) -Z3(1) Z4(1)-1
final

Criptanaliza algoritmului IDEA

Lungimea cheii folosite de algoritmul IDEA este de 128 de bii de peste dou ori
mai mare ca cea a DES-ului. Presupunnd c un atac n for este cel mai eficient, acesta
ar necesita 2128 (1038) criptri pentru recuperarea cheii. Dac s-ar proiecta un procesor
care s poat testa un miliard de chei pe secund i implicnd un miliard de astfel de
procesoare n rezolvarea acestei probleme, cercetarea tot ar dura1013 ani (aceasta
nseamn mai mult dect vrsta Universului). Un ir de 1024 de astfel de procesoare poate
determina cheia ntr-o zi, ns nu exist suficieni atomi de siliciu n lume pentru a costrui
o astfel de main.
Poate c atacul n for nu este cel mai eficient mod de a ataca IDEA. Algoritmul
este totui prea nou pentru oricare rezultate existente n criptanaliz. Designerii au fcut
tot posibilul pentru a face algoritmul imun la criptanaliza diferenial; ei au definit
conceptul de cifru Markov i au artat c rezistena la criptanaliza diferenial poate fi
modelat i cuantificat. Figura 11 arat algoritmul original PES n comparaie cu
algoritmul IDEA din figura 10 care a fost fortificat mpotriva criptanalizei
difereniale. Este de observat cum cteva modificri subtile pot genera astfel de diferene.
Xueija Lai argumenteaz (remarcnd evidene, nu aducnd dovezi) c IDEA este imun la
criptanaliza diferenial dup doar 4 runde din cele 8. De asemenea, conform celor spuse
de Biham , atacul su asupra cheilor nu are efect asupra algoritmului IDEA. Willi Meier a
examinat cele trei operaii algebrice ale IDEA, remarcnd c atta timp ct acestea sunt
incompatibile, exist cazuri n care ele pot fi simplificate n aa fel nct s fie uurat
criptanaliza ntr-o oarecare msur. Atacul su este mai eficient dect atacul n for
pentru runda a doua a algoritmului (242 operaii), dar mai puin eficient pentru a treia
rund sau mai departe. Algoritmul IDEA normal, cu 8 runde, este sigur.
Joan Daemen a descoperit o clas de chei ineficiente pentru IDEA . Acestea nu
sunt chei slabe n sensul cheilor slabe ale DES-ului; aceasta deoarece funcia de criptare
este auto-inversabil. Ele sunt slabe n sensul c dac sunt utilizate, un criptanalist le
poate identifica uor. De exemplu, o cheie slab este (n hexa):

0000,0000,0x00,0000,0000,000x,xxxx,x000

Numerele de pe poziia x pot lua orice valoare.


n orice caz, probabilitatea generrii accidentale a unei astfel de chei slabe este
foarte mic: una la 296. Nu exist deci nici un pericol dac se alege cheia aleator. Este
foarte uor de modificat IDEA astfel nct s nu mai aib nici o chei slab, prin aplicarea
operaiei XOR fiecrei subchei cu valoarea 0x0dae .
Figura 11 Cifrarea bloc cu PES

S-ar putea să vă placă și