Cifrul Vigenère
Cifrul Vigenère este un cifru celebru, care folosește mai multe alfabete de cifrare, datorită cărora este mult mai rezistent la analiza clasică a frecvențelor.
Principiul criptării și al decriptării
Procedeul de criptare îl putem explica cu ajutorul cifrului lui Cezar. Cheia cifrului Vigenère este un cuvânt oarecare format din litere ale alfabetului englez, adică a—z. Cheia poate fi, de exemplu, cuvântul „bcf”. Criptarea decurge astfel: scriem textul clar și chiar sub el cheia, pe care o repetăm până când are aceeași lungime ca textul clar. Alfabetul englez nu are diacritice, de aceea scriem „bună seara” ca „bunaseara”. Pentru textul clar „bunaseara” ar arăta așa:
| Text clar: | b | u | n | a | s | e | a | r | a |
| Cheia: | b | c | f | b | c | f | b | c | f |
Acum am cifra toate literele din textul clar cu ajutorul cifrului lui Cezar, cu cheia corespunzătoare, adică cu cheia din aceeași coloană. Cifrul lui Cezar este un cifru prin deplasare, iar cheia arată cu câte litere trebuie să deplasăm litera din textul clar, măsurat de la litera „a”. Litera „b”, de exemplu, înseamnă o deplasare cu o literă în alfabet „spre dreapta”. Litera „d” înseamnă o deplasare cu trei litere spre dreapta. Cuvântul „salut” l-am cifra cu cifrul lui Cezar și cu cheia „b” în „tbmvu”.
În timp ce în cifrul lui Cezar cifrăm tot textul cu o singură literă, în cifrul Vigenère cifrăm de obicei cu mai multe litere. Criptarea textului „bunaseara” cu cheia „bcf” ar arăta astfel:
| Text clar: | b | u | n | a | s | e | a | r | a |
| Cheia: | b | c | f | b | c | f | b | c | f |
| Text cifrat: | c | w | s | b | u | j | b | t | f |
Prima literă „b” am cifrat-o cu cheia „b”, adică o deplasare cu o literă, de aceea rezultatul este litera „c”. Litera „u” am cifrat-o cu cheia „c”, adică o deplasare cu două litere, iar rezultatul este litera „w”. Și așa mai departe.
Decriptăm exact în același mod, doar că în loc să deplasăm literele „spre dreapta”, le deplasăm „spre stânga”.
Instrument online pentru criptare și decriptare cu cifrul Vigenère
Pătratul Vigenère
Întregul procedeu de criptare și decriptare poate fi explicat și pe pătratul Vigenère, un instrument pe care îl putem folosi în timpul criptării. Pătratul Vigenère este un tabel cu 26 de rânduri și 26 de coloane. În fiecare rând este scris alfabetul, iar în fiecare rând el este deplasat cu o literă față de rândul precedent:
Dacă avem un astfel de pătrat Vigenère, criptarea ar decurge astfel: am lua litera din textul clar și am găsi rândul care începe cu această literă. Apoi am lua litera din cheie și am găsi coloana. Litera din textul cifrat ar fi litera de la intersecția rândului și a coloanei corespunzătoare.
În exemplul precedent am cifrat „bunaseara” cu cheia „bcf”. Găsim așadar rândul care începe cu „b” și coloana care începe cu „b”. La intersecția acestui rând cu această coloană se află litera „c”, litera rezultată în textul cifrat.
La decriptare am proceda invers. Dacă am vrea să decriptăm litera „e” folosind cheia „b”, am găsi coloana „b”, în ea am găsi rândul care conține litera „e”, iar litera de la începutul acestui rând ar fi litera din textul clar.
Principala forță a cifrului Vigenère
De ce a fost cifrul Vigenère atât de puternic în vremea lui? Pentru că îngreuna considerabil analiza clasică a frecvențelor. De exemplu, în cifrul lui Cezar două litere identice din textul clar se cifrează în aceleași litere în textul cifrat. În cifrul Vigenère însă acest lucru nu este valabil, cel puțin nu întotdeauna.
Dacă am cifra textul „Bravo bravo bravo” cu cheia „stan”, am obține textul cifrat „tkaig urnnh besoo”. Vedem că, deși textul clar conține de trei ori același cuvânt, în textul cifrat fiecare cuvânt arată complet diferit. Cuvântul din mijloc, „urnnh”, conține chiar două litere „n”, care însă provin din două litere diferite ale textului clar: „av”.
Alegerea cheii
Securitatea cifrului Vigenère este influențată foarte mult de alegerea cheii. În timp ce la cifrul lui Cezar nu conta ce literă alegem, atâta timp cât era diferită de „a”, la cifrul Vigenère chei diferite duc la grade diferite de securitate.
- O cheie formată dintr-o singură literă reduce cifrul Vigenère înapoi la cifrul lui Cezar.
- O cheie formată din mai multe litere identice, de exemplu „mmm”, duce din nou la cifrul lui Cezar.
- Un text cifrat cu o cheie scurtă va fi foarte simplu de descifrat.
- Un text cifrat suficient de lung, care a fost cifrat cu o cheie nu tocmai scurtă (în jur de cincizeci de caractere), va fi de asemenea foarte simplu de descifrat. Pe calculator, în câteva secunde.
- Un text cifrat cu o cheie complet aleatoare și la fel de lungă ca textul însuși va fi imposibil de descifrat.