Sunteți pe pagina 1din 4

M.

Joldo

SSA. ndrumtor pentru laborator

Criptografie

Algoritmii de cifrare i descifrare Vigenere (polialfabetic) explicai Cifrul Cezar


Cifrul Vigenere este o variaie a cifrului Cezar, cunsocut i sub numele de cifru de deplasarel. Un cifru Cezar ia literele din alfabet i le deplaseaz cu numrul de poziii indicat de cheie. Alfabetul este numerotat de la 0 la 25. Tabelul 1 prezint alfabetul i numerele corespunztoare. a 0 n 13 b 1 o 14 c 2 p 15 d 3 q 16 e 4 r 17 f 5 s 18 g 6 t 19 h 7 u 20 i 8 v 21 j 9 w 22 k 10 x 23 l 11 y 24 m 12 z 25

Tabelul 1: Alfabetul i numerele corespunztoare pentru cifrul Cezar. Apoi se alege o cheie/. Cheia este un ntreg, k, unde 0 k 25. Cheia poate i corespunde unei litere. Textul cifrat, c, este produs din textul clar, p, prin c = p + k (mod 26). Dac litera din textul clar a fost c, iar cheia a fost 3, atunci textul cifrat este 2 + 3 = 5 = f. Spre exemplu, s presupunem c am dori s trimitem cuiva un mesaj cifrat. Am putea hotr s deplasm toate literele din alfabet cu trei poziii. Mesajul i textul calr sunt artate mai jos: Text clar: This is an example of the Caesar cipher Text cifrat: wklvlvdqhadpsohriwkhfdhvduflskhu Toate literele au fost schimbate i nu se pot deduce cu uurin. Cifrarea Cezar este o metod de cifrare uoar, dar produce un cod uor de spart. Se poate afla mesajul ncercnd toate cele 26 de combinaii posibile.

Cifrul Vigenere
La fel ca cifrul Cezar, cifrul Vigenere deplaseaz literele, dar, spre deosebire de acesta nu se poate sparge uor n 26 combinaii. Cifrul Vigenere folosete o deplasare multipl. Cheia nu este constituit de o singur deplasare, ci de mai multe. Cheia este constituit din civa ntregi ki, unde 0 ki 25. Aceti ntregi pot fi, de exemplu, , k = (21, 4, 2 19, 14, 17). Aceast cheie ar provoca deplasare primei litere cu 21, c1 = p1 + 21 (mod 26), a celei de a doua cu 4, c2 = p2 + 4 (mod 26), .a.m.d. pn la sfritul cheii i apoi de la nceput, din nou. Cheia este de obicei un cvuvnt, pentru a fi mia uor de memorat cheia de mai sus corespunde cuvntului "vector". Metoda cu deplasare multipl ofer protecie suplimentar din dou motive. Primul motiv este c ceilali nu cunosc lungimea cheii. Cel de al doilea este c numrul de soluii posibile crete. De exemplu, pentru lungimea cheii = 5, numrul de combinaii care ar fi necesare la cutare exhaustiv ar fi 265 = 11,881,376. Cifrul Vigenere a fost spart folosind altceva dect fora brut (vezi mai jos). Un exemplu de cifru Vigenere: Textul clar: This is an example of the Vigenere Cipher Cheia: vector Textul cifrat: olklwjvrgqodkpghtkcixbuviitxqzklgk Decriptarea Metoda de descifrare folosit pentru cifrul Vigenere este asemntoare metodei de cifrare. Diferena const n faptul c se scade cheia din textul cifrat, pi = ci - ki (mod 26). Mai jos este dat un exemplu: Textul cifrat: olklwjvrgqodkpghtkcixbuviitxqzklgk Cheia: vector Textul clar: thisisanexampleoftheVigenerecifrul Tot ce rmne de fcut este s se insereze spaiile la locul potrivit..

M. Joldo

SSA. ndrumtor pentru laborator

Criptografie

Equaii Cifrare: Cheia este constituit din civa ntregi, ki, unde 0 ki 25. K = (k1, k2, k3, , ki) Lungimea cheii este la alegere. ci = pi + ki (mod 26) Descifrare: Trebuie cunsocut cheia. pi = ci - ki (mod 26)

Cum se sparge cifrul Vigenere


Cifrul Vigenere codez un bloc sau o mulime de litere deodat. Lungimea cheii determin lungimea blocului. Cum cifrul Vigenere este o variaie a cifrului de deplasare, putem folosi o variaie a atacului bazat pe contorizarea frecvenelor de apariie pentru a gsi cheia i algoritmul.. Folosind acest atac, applet-ul Vigenere Cipher genereaz o lista de chei posibile pe care utilizatorul s le foloseasc pentru descifratea textului codat. n medie, cheia corect se gsete ntre primele 25-30 de chei afiate. Totui, pot fi situaii n care cheia corect s nu fie ntre primele 30 sau chiar de loc n list. Pentru explicaie vezi "Puncte slabe".

Atacul bazat pe frecven


Un atac bazat pe frecvena de apariie a literelor ntr-o limb exploateaz faptul c unele dintre literele limbii engleze (la fel pentru limba romn) apar mai des dect altele (frecvenele nu sunt egale). Spre exemplu, litera 'e' apare mult mai des dect litera 'z'. Tabelul de mai jos arat frecvenele literelor din limba englez (reprodus dup Trappe, Wade i Washington, Lawrence; Introduction to Cryptography with Coding Theory; 2002, Prentice Hall, Upper Saddle River, NJ).

Tabelul 2 Frecvena literelor n limba englez Presupunnd c textul clar este n englez, cineva care folosete atacul bazat pe frecven va lua textul cifrat i va numra apariiile tuturor literelor. Apoi, folosind cunotinele despre frecvena de apariie a literelor n limba englez, persoana respectiv ar putea concluziona c cea mai frecvent liter din textul cifrat corespunde literei 'e' n limba englez .a.m.d., descifrnd astfel mesajul. Cu toate acestea, acest lucru e mai uor de spus dect de fcut. Dac numrul de apariii are valori apropiate pentru litere diferite, nu exist text cifra suficient pentru a obine cu acuratee contoare de frecven. n aceast situaie, potrivirea literelor din textul cifrat are o ans mai mare s fie incorect. Ca rezultat, acest atac este util doar n cazul cifrurilor de deplasare i unele variaii ale acestora, unde diferenele de frecvene ntre litere sunt mari.

Pasul 1 aflarea lungimii cheii


Pentru a determina lungimea cheii, numrm apariiile literelor care se potrivesc la compararea textului cifrat cu sine nsui deplasat cu un numr de poziii (lungimea poteniala a cheii). Spre exemplu, dac texul cifrat a fost obinut prin apsare butonului Sample Ciphertext #1 i efectum comparaia pentru o deplasare de 3, avem: ocwyikoooniwugpmxwktzdwgtssayjzwy ocwyikoooniwugpmxwktzdwgtssayjzwyemd emdlbnqaaavsuwdvbrflauplooubfgqhg lbnqaaavsuwdvbrflauplooubfgqhgcsc *

M. Joldo

SSA. ndrumtor pentru laborator

Criptografie

cscmgzlatoedcsdeidpbhtmuovpiekifp mgzlatoedcsdeidpbhtmuovpiekifpimf * * * * imfnoamvlpqfxejsmxmpgkccaykwfzpyu noamvlpqfxejsmxmpgkccaykwfzpyuavt avtelwhrhmwkbbvgtguvtefjlodfefkvp elwhrhmwkbbvgtguvtefjlodfefkvpxsg xsgrsorvgtajbsauhzrzalkwuowhgedef rsorvgtajbsauhzrzalkwuowhgedefnsw * * nswmrciwcpaaavogpdnfpktdbalsisurl mrciwcpaaavogpdnfpktdbalsisurlnps * npsjyeatcuceesohhdarkhwotikbroqrd jyeatcuceesohhdarkhwotikbroqrdfmz fmzghgucebvgwcdqxgpbgqwlpbdaylooq ghgucebvgwcdqxgpbgqwlpbdaylooqdmu * dmuhbdqgmyweuik hbdqgmyweuik Avem nou coincidene. Dac continum pentru toate deplasrile posibile (de la 1 la 311), aflm c cel mai mare numr de coincidene apare pentru o deplasare cu 6. Aceasta ar fi estimarea noastr pentru lungimea cheii.

Pasul 2 aflarea cheii


Dup aflarea lungimii cheii, avem nevoie de frecvenele literelor n textul cifrat. Trebuie s crem un tabel asemntor Tabelului 2. Facem acest lucru numrnd frecvena fiecrei a n-a liter (n este determinat de lungimea cheii) i mprirea contoarelor respectivi prin numrul total de litere. Continund cu exemplu nostru, cum avem lungimea cheii 6, vom face 6 tabele. Pentru primul tabel, ncepem cu prima liter din textul cifrat i numrm frecvenele fiecrei a 6-a litere (numrm apariiile primei litere, apoi a celei de a 7-a, apoi a celei de a 13-a etc.). Pentru cel de al doilea tabel ncepem cu a 2-a liter din textul cifrat numrm frecvenele fiecrei a 6-a litere (numrm apariiile celei de a 2-a litere, apoi a celei de a 8-a, apoi a celei de a 14-a etc.). repetm pn avem ase tabele (W1W6). Ultima tabel este dup cum urmeaz:

Tabelul 3 Cea de a 6-a tabel Aceste 6 tabele ne vor ajuta s gsim fiecare dintre cele 6 litere ale cheii. Dar, nainte de a face acest lucru, trebuie s crem i un table cu frecvenele fiecrora dintre cele 26 litere ale limbii engleze (n total 26: A1-A26). Tabelul 2 este pentru litera 'a'. Pentru a obine tabelele pentru celelalte litere, deplasm pur i simplu valorile din tabelul 1 cu valoarea corespunztoare. De exemplu, pentru tabelul literei 'c', deplasm valorile din Tabelul 2 cu doi. Tabelul literei 'c' ar fi:

Tabelul 4 Tabel de frecvene pentru litera 'c' Dupa obinerea celor 26 tabele, scriem tabelele ca vectori i lum produsul fiecruia dintre W-uri cu Aurile. Exemplul de mai jos ia W1 n produs cu toate A-urile. W1 A1 = WA1 W1 A2 = WA2

M. Joldo

SSA. ndrumtor pentru laborator

Criptografie

. . . W1 A26 = WA26 Cea mai mare valoare a produsului va fi litera pentru acel loc din cheie. Folosindu-ne exemplul, W6 toate A-urile rezult n: W6 A1 = 0.0313 (Tabelul pentru a) W6 A2 = 0.0329 (Tabelul pentru b) W6 A3 = 0.0523 (Tabelul pentru c) W6 A4 = 0.0472 (Tabelul pentru d) W6 A5 = 0.0258 (Tabelul pentru e) W6 A6 = 0.0329 (Tabelul pentru f) W6 A7 = 0.0491 (Tabelul pentru g) W6 A8 = 0.0392 (Tabelul pentru h) W6 A9 = 0.0310 (Tabelul pentru i) W6 A10 = 0.0325 (Tabelul pentru j) W6 A11 = 0.0398 (Tabelul pentru k) W6 A12 = 0.0301 (Tabelul pentru l) W6 A13 = 0.0384 (Tabelul pentru m) W6 A14 = 0.0358 (Tabelul pentru n) W6 A15 = 0.0404 (Tabelul pentru o) W6 A16 = 0.0395 (Tabelul pentru p) W6 A17 = 0.0348 (Tabelul pentru q) W6 A18 = 0.0372 (Tabelul pentru r) W6 A19 = 0.0637 (Table for s) W6 A20 = 0.0386 (Tabelul pentru t) W6 A21 = 0.0274 (Tabelul pentru u) W6 A22 = 0.0348 (Tabelul pentru v) W6 A23 = 0.0485 (Tabelul pentru w) W6 A24 = 0.0294 (Tabelul pentru x) W6 A25 = 0.0417 (Tabelul pentru y) W6 A26 = 0.0467 (Tabelul pentru z) Cea mia mare valoare este 0.0637, adic W6 A19 sau tabelul pentru s. Aa c, cea de a 6-a liter din cheie este s. Folosind acest proces pentru a afla celelalte litere din cheie va da cheia holmes. Folosind o variaie a atacului pe baza frecvenei putem afla cheia pentru Sample Cipher Text#1.

Puncte slabe
Problemele acestei variante de atac bazat pe frecven sunt similare atacului bazat pe frecven original. Raportul text cifrat / cheie trebuie s fie suficient de mare. Cu late cuvinte, e nevoie de suficient text pentru a determina frecvenele. Altfel nu se poate afla cheia corect. Acest lucru se poate testa folosind Sample Plaintext #3 cifrat cu cheia vector. Applet0ul nu va putea afla cheia din cauza lipsei de text cifrat suficient. Acelai test poate fi efectuat pe orice alt exemplu de text clar. Doar luai o cheie lung. Acest punct slab apare la pasul al 2-lea al algoritmului de spargere a cifrului. Algoritmul are un punct slab i la pasul 1. Cel mai mare contor de coincidene ar trebui s dea lungimea cheii. Dar nu ntotdeauna se ntmpl astfel. Eroarea este legat de supoziia pe care am fcut-o relativ la limba englez. Am presupus c cea mai mare frecven va fi n mod natural aceea a literei e fiindc e apare cel mai frecvent n englez. Dar aceasta nu este adevrat ntotdeauna. Sunt ocazii n care un bloc de text nu are e ca liter cea mai frecvent. Aceeai excepie exist i pentru supoziia c cel mai mare contor de coincidene ne va da lungimea cheii. Sunt situaii cnd nu este aa. Applet-ul rezolv slbiciunea de la pasul 1 prin oferirea unei liste de chei posibile. Cheile sunt listate n ordinea probabilitii lor. Applet-ul, nu rezolv ns slbiciunea de la pasul 2. Fr suficient text cifrat pentru a obine un contor de frecvene corect, literele din cheie nu vor fi aflate, chiar dac lungimea cheii este aflat i e corect. n general, cheia corect se va afla ntre primele 25-30 chei din list.

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