Sunteți pe pagina 1din 34

Clasificarea metodelor simetrice

1. Cifruri substituie; 2. Cifruri transpoziie; 3. Cifruri combinate.

CIFRURI DE SUBSTITUIE Cifruri de substituie monoalfabetic (monoalphabetic ciphers) Cifruri de substituie omofonica (homophonic substitution ciphers) Cifrul de substituie poligramic (polygram substitution ciphers) Cifruri de substituie polialfabetice

Cifruri transpoziie
Cifrurile transpoziie realizeaz o permutare a caracterelor din textul clar. Cheia de cifrare este perechea k=(d, f), unde d reprezint lungimea blocurilor succesive de caractere care vor fi cifrate conform permutrii f: de forma f: Zd -> Zd , Zd= {1,2,,d} 1 2 d f(1) f(2) f(d) unde f(i) f(j), pentru orice i j. Mulimea funciilor astfel definite este d!. n acest fel mesajul clar M= m1m2 mdmd+1 m2d este cifrat astfel: C = Ek (M) = mf(1) mf(d) mf(d+1) md+f(d) .

Descifrarea se obine prin permutarea invers. Cifrarea prin transpoziie este o transformare a textului clar prin care se modific poziia caracterelor n mesaj. O metod des folosit pentru implementarea acestui tip de transformare este scrierea mesajului ntr-o anumit matrice dup care textul cifrat se obine prin citirea caracterelor pe linie, pe coloan sau dup un anumit traseu n matrice. Cele mai simple transpoziii se obin prin mprirea textului clar n dou jumti care se scriu una sub alta, dup care se citesc coloanele de la stnga la dreapta.

Ex1. cuvntul calculator se cifreaz astfel: Text clar: c a l c u l ator Text cifrat: CLAALTCOUR

Ex2.

N E H E F A
Text cifrat:

E L S

D P T

NHFEEAELSDPT

MAINI ROTOR
O main rotor (rotor machine) are o tastatur i o serie de rotoare ce permit implementarea unei versiuni a cifrului Vignre. Fiecare rotor face o permutare arbitrar a alfabetului, are 26 de poziii i realizeaz o simpl substituie. Deoarece rotoarele se mic cu viteze de rotaie diferite, perioada unei maini cu n rotoare este 26n . cifru bazat pe o main rotor este Enigma, utilizat de germani n cel de-al doilea rzboi mondial. El a fost inventat de Arthur Scherbius i Arvid Gerhard Damm n Europa i a fost patentat n SUA.

Enigma este o combinatie de sisteme mecanice si electrice. Mecanismul mecanic consta intr-o tastatura, un set de discuri rotative numite rotoare si un mecanism de deplasare care ajuta la miscarea unuia sau a mai multe discuri atunci cand o tasta este apasata. Curentul electric porneste de la o sursa printr-un intrerupator bidirectional controlat de tasta eliberata. Din tabela de intreruperi curentul electric trece in "roata de intreare" fixata. De aici in ansamblul de rotoare, unde structura complexa a fiecarui rotor duce la circularea foarte schimbatoare a curentului electric de la un rotor la urmatorul. Dupa strabaterea tuturor rotoarelor, circuitul continua prin "reflector", care respinge semnalul din nou prin rotoare si "roata de intrare"- pe alta cale de aceasta data- si trece prin prize si prin intrerupatorul bidirectional a literei tinta si aprinde lampa potrivita.

alfabet de substituie cu 26 x 26 x 26 = 17576 substituii

Descriere matematica
Transormarea Enigmei pentru fiecare litera este rezultatul matematic al permutarilor. La un aparat cu trei rotoare, fie P care denota transformarea pe tabela de prize, U denota reflectorul i L,M,R denota actiunea rotorului stang, din mijloc respectiv dreapta. Atunci encriptia E: E = PRMLUL - 1M - 1R - 1P - 1

Dupa fiecare apasare de tasta rotoarele se rotesc, schimband transformarea. De exemplu daca rotorul de mana dreapta R e rotit i pozitii transformarea devine: iR - i, unde este permutarea ciclica. Similar, rotorul din mijloc si cel din stanga pot fi reprezentate ca j si k rotatii ale lui M si L. Functia de criptare poate fi descrisa astfel: E = P(iR - i)(jM - j)(kL - k)U(kL - 1 - k) (jM - 1 - j)(iR - 1 - i)P - 1

Simulator Enigma (http://homepages.tesco.net/~andycarlson/enig ma/enigma_j.html)

Algoritmi moderni de criptare

Codul Feistel

Realizarea reelei Feistel depinde de alegerea urmtoarelor caracteristici i parametrii: Lungimea blocului: Un bloc de dimensiune mare nseamn securitate mai mare dar reduce viteza de criptare/decriptare. Un bloc de 64 sau 128 bii este rezonabil i este folosit aproape universal de algoritmii care folosesc coduri bloc. Lungimea cheii: O cheie de lungime mare sporete securitatea dar poate reduce viteza de criptare/decriptare. Chei de 64 bii sau mai scurte sunt considerate inadecvate n zilele noastre, cheile de 128 sau 256 bii devenind uzuale. Numrul de ture: Esena codului Feistel este c o singur tur nu ofer destul securitate, turele multiple sporind securitatea. Un numr rezonabil de ture este 16.

Algoritmul de generare a subcheii: O complexitate mare a algoritmului conduce la o dificultate mare la criptanaliz. Funcia tur (F): Se poate spune acelai lucru ca i despre algoritmul de generare a subcheii: o complexitate mare a algoritmului conduce la o dificultate mare la criptanaliz. Criptare/decriptare software rapid: n multe cazuri funciile de criptare sunt ncapsulate n aplicaii sau utilitare care servesc ca introducere pentru implementarea lor hardware. Astfel viteza execuiei algoritmului devine de mare interes. Analiz uoar: Acest fapt nu se refer la o criptanaliz uoar ci la simplitatea analizrii modului de funcionare a algoritmului. Un algoritm uor de analizat i de explicat are un avantaj mare, deoarece astfel se pot observa i corecta mai uor vulnerabilitile acestuia, iar mbuntirea ulterioar este mai uoar.

Decriptarea algoritmului Feistel

proprietiile operatorului XOR

o secven P cu cheia K Criptare/decriptare

[A B] C = A [B C ]
DD =0 E0= E

PK =C

C K = (P K ) K = P (K K ) = P 0 = P

Sistemul de criptare DESData Encryption Standard

Sistemul DES este primul standard dedicat proteciei criptografice a datelor de calculator. DES este un cifru bloc

Caracteristici: lungimea unui bloc este de 64 de bii; cheia este pe 64 de bii dintre care 8 sunt bii de paritate; flexibilitatea implementrii i utilizrii n diferite aplicaii; fiecare bloc cifrat este independent de celelalte; nu este necesar sincronizarea ntre operaiile de criptare/decriptare ale unui bloc; pentru creterea securitii se poate aplica algoritmul T-DES (triplu DES) care const n iterarea de trei ori a algoritmului DES.

Construcia fundamental a unui bloc DES este o combinaie unic a acestor tehnici (o substituie urmat de o permutare) asupra textului clar, bazat pe cheie. Aceast construcie este cunoscut ca rund. Algortimul DES este compus din 16 runde. Algoritmul este bazat pe un set de permutri, substituii i sum mod 2, aplicate iterativ de 16 ori, pe un bloc de date de 64 bii, prin folosirea de fiecare dat a unei chei diferite de 48 bii, extrase iniial dintr-o cheie de 56 bii. Datele sunt mprite n blocuri de 64 bii i criptate fr a modifica lungimea lor.

Privit n ansamblu, algoritmul DES este o combinaie a dou tehnici elementare de criptare: confuzie i difuzie Funcia de difuzie are rolul de a face relaia dintre mesajul original i mesajul criptat ct mai complex i de a ascunde informaia statistic din mesajul criptat. Efectul de difuzie se obine prin aplicarea unei funcii n care un bit din mesajul original afecteaz valoarea a mai multor bii din mesajul criptat Funcia de confuzie caut s fac ct mai complex relaia dintre mesajul criptat i cheia de criptare, efect obinut prin algoritmi de substituie compleci.

Cifrul DES
Cifrarea const din trei categorii de prelucrri care se fac asupra blocului cu text clar de la intrare: 1. Blocul de date este supus unei permutri iniiale, IP. 2. Blocul permutat trece printr-un calcul complex care depinde de cheie i care const din 16 iteraii funcional identice. Considernd cei 64 bii ai unui bloc supui unei iteraii i, se noteaz cu Li-1 i Ri-1 cele dou jumti de 32 de bii, stnga i dreapta, care-l compun. Fie ki cheia pentru iteraia i i un bloc de 48 de bii alei din cei 56 de bii ai cheii. Prelucrrile unei iteraii sunt: Li = Ri-1 Ri = Li-1 f(Ri-1 ,Ki)

3. Ultima iteraie este diferit de celelalte, fiind definit de ecuaiile: L16 = R15 R16 = L15 f(R15 ,K16).

Funcia f realizeaz o substituie neliniar. Dup calculul complex format din cele 16 iterri, blocul de 32 de bii este supus unei permutri IP-1, inversa celei iniiale.

Descifrarea const n folosirea aceluiai algoritm, dar cu cheile ki aplicate n sens invers, de la k16 la k1 . Primul pas n descifrare este aplicarea permutrii IP, care dezleag ultimul pas IP-1 , din operaia 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 generndu-se la sfrit R0 i L0 . Blocul de 64 de bii este supus unei permutri inverse, IP-1

algoritmul DES poate fi mprit n trei componente: Permutarea iniial; Cele 16 runde de codificare propriu-zis (nucleul algoritmului); Permutarea final (inversa permutrii iniiale).

1. 2. 3.

58 62 57 61

50 54 49 53

42 46 41 45

34 38 33 37

26 30 25 29

18 22 17 21

10 14 9 13

2 6 1 5

60 64 59 63

52 56 51 55

44 48 43 47

36 40 35 39

28 32 27 31

20 24 19 23

12 16 11 15

4 8 3 7

b) Cele 16 runde de codificare propriu-zis (nucleul algoritmului) O rund de codificare are la baz relaiile:

L =R
i
i i 1

i 1

R = L f (R , K )
i 1 i

b1) Generarea subcheilor Ki

Generatorul de subchei produce 16 subchei a cte 48 de bii. 1. Formeaz cheia K de 56 bii din cheia principal de 64 bii selectnd i permutnd cei 56 de bii (cei opt bii de paritate sunt neglijai). 2. mparte K n dou pri de 28 de bii (l0 i r0). 3. Definete li i ri (1 i 16) :

Shift (l ), pentru i = 1, 2, 9,16 l = Shift ( Shift (l )), in rest


i 1 i i 1

Shift (r ), pentru i = 1, 2, 9,16 r = Shift ( Shift (r )), in rest


i 1 i i 1

unde funcia Shift este o deplasare circular la stnga cu un bit. 4. Obinem Ki din concatenarea li ri selectnd mai nti 48 de bii (din 56 ct are concatenatul li ri ) i realiznd mai apoi o permutare a lor conform tabelului (Permutare&Compresie- P&C).
14 23 41 44 17 19 52 49 11 12 31 39 24 4 37 56 1 26 47 34 5 8 55 53 3 16 30 46 28 7 40 42 15 27 51 50 6 20 45 36 21 13 33 29 10 2 48 32

b2) Implementarea funciei f(R,K) Funcia f are la intrare 32 de bii de date (R) i 48 de bii ai cheii (K) i returneaz 32 de bii de date Intrarea este extins la 48 bii folosind o tabel care definete permutaia i extinderea, fapt ce implic duplicarea a 16 bii din intrare.

32 8 16 24

1 9 17 25

2 10 18 26

3 11 19 27

4 12 20 28

5 13 21 29

4 12 20 28

5 13 21 29

6 14 22 30

7 15 23 31

8 16 24 32

9 17 25 1

Celor 48 bii rezultai li se aplic un operator XOR (sau exclusiv) cu subcheia Ki. Rezultatul de 48 bii este trecut mai apoi printr-o bloc de cutii S care produce o ieire pe 32 bii. Modul de funcionare al cutiilor S (S-boxes) din funcia f este ilustrat n tabelul Cutiile_S.doc. Substituia const din 8 cutii S, fiecare din ele acceptnd o intrare pe 6 bii i producnd o ieire pe 4 bii. Primul i ultimul bit din intrare formeaz un numr binar de 2 bii care selecteaz una din cele patru substituii definite de cele patru rnduri n tabelul SI. Cei patru bii din mijloc selecteaz una din cele 16 coloane din tabel. Valoarea zecimal din celula selectat este convertit intr-o reprezentare binar pe 4 bii care este de fapt ieirea. n final, ieirii i se aplic o funcie de permutaie

16 2

7 8

20 24

21 14

29 32

12 27

28 3

17 9

1 19

15 13

23 30

26 6

5 22

18 11

31 4

10 25

c) Permutarea final (Inversa permutrii iniiale)


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

Atacul prin cutare exhaustiv

Analiza securitii DES-ului trebuie s in cont de cel puin 4 elemente: Numrul total de chei existente: dimensiunea cheilor DES-ului a fost fixat la 56 bii. Aceasta nseamn c exist 256 sau 72.057.037.927.936 chei distincte posibile i reprezint dimensiunea spaiului cheilor. Timpul necesar pentru cutare Timpul disponibil pentru cutare Costul aferent cutrii

Securitatea DES
Securitatea algoritmului DES depinde de algoritmul n sine i de utilizarea cheii de 56 de bii. Algoritmul DES a fost cel mai studiat algoritm de criptare, att prin diversele lucrri care au aprut, dar i prin rezultatele practice efectuate. Un interes deosebit: asupra lungimii cheii. In 1998, Electronic Frontier Foundation (EFF) a anunat c cifrul DES a fost spart folosindu-se un calculator special care a costat 250000$. Atacul a durat mai puin de trei zile. Dac un cracker poate executa un milion de decriptri pe milisecund, atunci codul DES poate fi spart n aproape 10 ore.