Sunteți pe pagina 1din 3

Eratpirc ed icinhet (2)

Tehnici de CRIPTARE
serial

Claudiu Soroiu
În acest numãr continuãm prezentarea tehnicilor de criptare cu descrierea
metodelor Vigenere si XOR. De asemenea, veþi putea citi câteva informaþii
referitoare la criptanalizã ºi la securitatea datelor.

Criptarea Vigenere Pentru ca aceastã tehnicã sã fie eficientã, ar fi ideal ca


Tehnica de criptare Vigenere este o tehnicã polialfabeticã, lungimea parolei sã fie mai mare sau cel puþin egalã cu
în sensul cã, prin criptare, douã sau mai multe caractere lungimea textului care urmeazã a fi criptat. Datoritã faptu-
diferite ale textului iniþial pot fi codificate folosind acelaºi lui cã o astfel de parolã nu poate fi reþinutã de cãtre utili-
caracter în textul criptat. zator, se alege o parolã mai scurtã asupra cãreia se aplicã
Pentru a cripta un text folosind aceastã metodã se alege diverse metode prin care ea este extinsã pentru ca lungi-
mai întâi un alfabet, astfel încât toate caracterele conþinute mea ei sã depãºeascã lungimea textului. Cea mai simplã
în textul iniþial sã se afle printre caracterele alfabetului ºi metoda utilizatã în acest sens constã în concatenarea paro-
apoi o parolã formatã din caractere ale alfabetului. Nu este lei cu ea însãºi pânã în momentul în care lungimea sa este
necesar ca alfabetul ales sã conþinã numai caracterele tex- cel puþin egalã cu lungimea textului.
tului iniþial. Pentru exemplul luat, parola, prin concatenare cu ea în-
În continuare este prezentat modul în care se realizea- sãºi, devine BABBAB.
zã criptarea unui text folosind tehnica Vigenere. La ultimul pas, fiecare al k-lea caracter din textul iniþial
este criptat astfel:
Algoritmul de criptare • se determinã numãrul de ordine i, corespunzãtor pozi-
Considerãm alfabetul format din literele: A B C D E F. Pri- þiei caracterului în alfabetul considerat;
mul pas al algoritmului constã în aranjarea literelor alfabe- • se determinã numãrul de ordine j, corespunzãtor pozi-
tului într-o matrice pãtraticã cu L linii ºi L coloane, unde þiei în alfabetul considerat a celui de-al k-lea caracter din
L este numãrul de simboluri ale alfabetului. parolã;
Prima linie a matricei este formatã din literele alfabetu- • se scrie caracterul care se aflã pe linia i ºi coloana j în
lui în ordine lexicograficã, iar urmãtoarele L - 1 linii sunt matrice.
obþinute fiecare din linia precedentã printr-o permutare la Textul considerat, prin criptare, folosind parola extin-
stânga cu o poziþie. sã BABBAB, devine AABE. Pentru k = 1, caracterul de pe pri-
În cazul alfabetului ales matricea obþinutã este urmã- ma poziþie a textului este F (i = 6), caracterul de pe prima
Ginfo nr. 3 - martie 2002

toarea: poziþie a parolei este B, deci (j = 2).


Aºadar, caracterul care va apãrea pe prima poziþie a
textului criptat se aflã pe coloana a doua a celei de-a ºasea
linii din matrice: A.
Acest procedeu continuã pentu toate valorile k mai
mici sau egale cu lungimea textului.
Analizând textul iniþial ºi cel criptat se observã cã pri-
mele douã caractere F ºi A, devin prin criptare, acelaºi ca-
Se observã cã un caracter nu apare decât o singurã datã racter, adicã A, iar cele douã caractere A de pe poziþiile 2 ºi
pe o linie sau o coloanã ºi fiecare linie sau coloanã conþine 3 sunt codificate diferit în textul criptat.
toate literele alfabetului considerat.
Urmãtorul pas constã în alegerea unei parole formatã Algoritmul de decriptare
din simboluri ale alfabetului. Sã presupunem cã dorim sã Algoritmul folosit pentru decriptarea unui mesaj codificat
40 criptãm textul FAAD, folosind parola BAB. utilizând tehnica Vigenere nu este foarte complex.
Primul pas care trebuie parcurs pentru a decripta un Dupã obþinerea parolei extinse, procedeul de criptare
text constã în construirea parolei extinse pe baza parolei este: pentru fiecare al k-lea caracter din text ºi al k-lea ca-
folosite. Procedeul prin care se realizeazã extinderea pa- racter din parolã se cautã în cadrul alfabetului numerele de
rolei în procesul de decriptare trebuie sã fie acelaºi cu cel ordine i ºi j ale celor douã caractere, se aplicã operatorul
folosit pentru a extinde parola în procesul de criptare. XOR asupra reprezentãrii binare a celor douã numere (se
Pentru a decripta un text se aplicã urmãtorul algoritm: obþine reprezentarea binarã a unui numãr n) ºi, în final, se
pentru fiecare al k-lea caracter din parola extinsã se gãseºte scrie caracterul care are numãrul de ordine n în cadrul al-
numãrul de ordine j al acestuia în cadrul alfabetului consi- fabetului.
derat, se cautã pe coloana j din matrice al k-lea caracter din Fie alfabetul format din simbolurile setulului de carac-

serial
textul criptat ºi se scrie caracterul care are numãrul de or- tere ASCII extins, care are 28 elemente. Dacã dorim sã
dine i, unde i este numãrul liniei pe care a fost gãsit carac- criptãm un text, ºi presupunem cã pe poziþia k avem carac-
terul. terul A care are numãrul de ordine 65, iar în parola extinsã
Considerãm alfabetul definit anterior; în procesul de avem pe poziþia k caracterul B cu numãrul de ordine 66,
decriptare se þine cont de matricea ataºatã acestui alfabet. atunci, prin aplicarea operatorului XOR între reprezentã-
Pentru textul AABE care a fost criptat folosind parola rile binare ale celor douã numere, se obþine caracterul care
BAB (extinsã prin concatenare cu ea însãºi, aceastã parolã are numãrul de ordine 3. În cadrul setului de caractere
devine BABBAB) prin decriptare se obþine textul FAAD ast- ASCII extins, caracterele cu numere de ordine mai mici
fel: pentru primul caracter din parola extinsã k este egal cu decât 32 poartã numele de caractere de control, ºi sunt
1; pe coloana j = 2 corespunzãtoare numãrului de ordine al considerate caractere neimprimabile. De obicei, dacã se
caracterului B din parolã se cautã caracterul A din text ºi se foloseºte standardul ASCII, dupã criptarea cu aceastã me-
gãseºte pe linia i = 6 ºi în final se scrie caracterul F care are todã, foarte puþine caractere sunt imprimabile.
numãrul de ordine 6 în cadrul alfabetului. Acest procedeu Aplicarea operatorului XOR asupra reprezentãrii bi-
se aplicã pentru toate caracterele textului criptat. nare a numerelor 65 ºi 66 este ilustratã în cele ce urmeazã:
0 1 0 0 0 0 0 1 = 65
Concluzii 0 1 0 0 0 0 1 0 = 66
0 0 0 0 0 0 1 1 = 3
Se observã cã în cazul extinderii unei parole cu ea însãºi,
tehnica de criptare Vigenere este similarã cu criptarea lui Algoritmul de decriptare
Cezar pe grupuri de elemente. Algorimul de decriptare este asemãnãtor cu cel de criptare,
Dacã parola iniþialã are lungimea n ºi considerãm un singura deosebire constã în faptul cã mesajul criptat ia lo-
numãr strict pozitiv k < n, atunci, dacã extragem caracte- cul textului iniþial. Sã presupunem cã în textul criptat avem
rele de pe poziþiile k, n + k, 2 · n + k, ... etc. din textul ini- pe poziþia k caracterul cu numãrul de ordine 3 ºi în parola
þial, se observã cã pentru criptarea lor s-a folosit acelaºi de- extinsã avem pe poziþia k caracterul cu numãrul de ordine
plasament. 66 (B), prin aplicarea operatorului XOR asupra reprezen-
tãrii binare ale celor douã numere se obþine caracterul cu
Criptarea XOR numãrul de ordine 65 (A), astfel:
Tehnica de criptare XOR se bazeazã pe operatorul binar 0 0 0 0 0 0 1 1 = 3
XOR (eXclusive OR - sau exclusiv). Reamintim faptul cã 0 1 0 0 0 0 1 0 = 66
0 1 0 0 0 0 0 1 = 65
rezultatul aplicãrii acestui operator asupra a douã valori
binare identice este 0, în timp ce rezultatul aplicprii sale În cazul în care nu se cunoaºte parola cu care a fost
asupra a douã valori binare diferite este 1. Rezultatele apli- criptat un mesaj, dar se cunoaºte faptul cã acesta conþine
cãrii acestui operator sunt sintetizate în figura urmãtoare. foarte multe caractere imprimabile, se presupune cã parola
are cel puþin n ≥ 3 caractere ºi se încearcã aplicarea ope-
Ginfo nr. 3 - martie 2002

ratorului XOR între textul criptat ºi un caractere impri-


mabil astfel încât, pentru toate numerele întregi strict po-
zitive k < n, în mulþimea formatã cu caracterele de pe po-
ziþiile k, n + k, 2 · n + k, ..., etc., sã se obþinã un maxim de
Algoritmul de criptare caractere imprimabile care pot sã facã parte din textul ini-
Pentru a cripta un mesaj folosind aceastã metodã este ne- þial. În cazul în care nu s-au obþinut rezultatele dorite nu-
voie de o parolã ºi de un alfabet. În acest caz, numãrul de mãrul n se incrementeazã cu 1 ºi se reia pasul anterior.
simboluri ale alfabetului trebuie sã aibã forma 2n, unde n Dupã cum se poate observa, ºi aceastã tehnicã de crip-
este un numãr natural. tare este polialfabeticã.
ªi de aceastã datã, ar fi ideal ca lungimea parolei sã fie Dacã asupra unui text se aplicã succesiv mai multe teh-
mai mare sau egalã cu lungimea textului care urmeazã a fi nici de criptare diferite, atunci procesul de decriptare este
criptat. Ca urmare a acestui fapt, primul pas al algoritmu- îngreunat foarte mult datoritã faptului cã dacã un cript-
lui de criptare constã în obþinerea parolei extinse, la fel ca analist încearcã sã decripteze textul pe baza frecvenþei de
în cazul criptãrii Vigenere. apariþie a literelor, el are foarte puþine ºanse de reuºitã, mai
41
ales dacã una dintre tehnicile de criptare utilizate opereazã Dintr-un alfabet pot lipsi semnele obiºnuite de punc-
cu douã alfabeturi distincte ºi de lungimi diferite. tuaþie ºi spaþiile, cuvintele fiind scrise unul dupã altul, lu-
cru care îngreuneazã foarte mult munca celui care încearcã
Criptanalizã sã decripteze mesajul criptat în eventualitatea în care nu
Criptanaliza este ºtiinþa care se ocupã cu studiul decriptã- deþine parola folositã în procesul de codificare a mesajului.
rii mesajelor când nu se cunoaºte cheia de criptare. Textul iniþial T ºi textul criptat C sunt împãrþite în mai
Existã mai multe procedee de analizã a textelor criptate. multe grupuri compuse din una, douã sau mai multe litere,
Cele mai des utilizate sunt analiza frecvenþei de apariþie a în funcþie de tehnica de criptare utilizatã. În tehnicile pre-
caracterelor ºi analiza probabilisticã. De exemplu, în limba zentate anterior cele douã texte erau împãrþite în grupuri
serial

englezã, caracterul cel mai frecvent folosit este E iar grupu- de câte o singurã literã, deoarece transformãrile erau apli-
rile de douã caractere care apar cel mai des sunt TH ºi HE. cate la un moment dat, asupra unui singur caracter din text.
Metodele matematice care stau la baza criptanalizei ºi Funcþia de criptare f este definitã pe mulþimea tuturor
criptografiei moderne sunt foarte complexe. grupurilor de litere care se formeazã din textul iniþial, ºi,
Pentru a decripta un text este nevoie de cel puþin douã de obicei, este o funcþie bijectivã. Inversa ei, f-1, se foloseº-
informaþii. Prima informaþie constã în cunoaºterea metodei te pentru a decripta mesajul.
generale de criptare utilizatã sau categoria de tehnici de crip- Fie fP funcþia de criptare asociatã parolei P. Pentru o
tare din care face parte, iar a doua informaþie constã din cu- parolã indrodusã cãtre utilizator procesul de criptare este
noaºterea unor parametri implicaþi în procesul de criptare dat de formula fP(T) = C.
(informaþii asupra modului de utilizare al cheii de criptare). Pentru a decripta textul C, de obicei, se foloseºte func-
În practicã, utilizatorii criptografiei deþin în cele mai þia inversã fP-1 asociatã parolei P, ºi în procesul de decrip-
multe cazuri, echipamente pentru criptarea ºi decriptarea tare se foloseºte formula fP-1(C) = T.
datelor pentru o anumitã tehnicã sau categorie de tehnici Un sistem one time pass este un sistem în care conexi-
de criptare. unea dintre client ºi server se face prin folosirea unui mo-
del one time pass. În cazul unui sistem one time pass se
Securitatea datelor în zilele noastre alege o parolã iniþialã P0 care este stocatã pe server ºi un
Dacã dorim sã accesãm un cont de pe un server avem numãr întreg strict pozitiv n suficient de mare. Numãrul n
nevoie de o parolã. Confidenþialitatea mesajelor ºi a date- poate sã aibã o valoare implicitã, fãrã a mai necesita
lor transmise de la client la server ºi invers depinde de gra- alegerea lui de cãtre utilizator. Funcþia de criptare, pe care
dul de complexitate al metodei de criptare folosite de cele atât clientul cât ºi server-ul o aplicã parolei P0, trebuie sã
douã sisteme client, respectiv server ºi de complexitatea fie bijectivã, iar inversa ei trebuie sã fie foarte greu de
parolei alese. calculat folosind procedee matematice.
Chiar dacã se foloseºte o parolã complexã, utilizarea Clientul deþine, la rândul sãu, parola iniþialã P0 ºi nu-
unui cod unic de acces prezintã unele dezavantaje. În cazul mãrul n. Când se realizeazã conexiunea dintre client ºi
în care parola este interceptatã de anumite persoane, com- server, clientul aplicã funcþia de criptare f de n ori astfel:
plexitatea sa nu mai are o importanþã foarte mare. Cea mai Pi = f(Pi-1), i = 1, ..., n.
sigurã modalitate de acces la un server ar fi ca la fiecare ac- Parola Pn care se obþine este transmisã server-ului. La
cesare a contului sã se utilizeze o altã parolã. Acest tip de rândul sãu server-ul creeazã, utilizând acelaºi procedeu,
metode poartã numele de one time pass (parolã folositã o propria sa parolã Pn, ºi dacã coincide cu cea pe care a
singurã datã). trimis-o clientul se realizeazã conexiunea ºi numãrul n este
În cele ce urmeazã vom prezenta un exemplu de reali- decrementat automat cu 1 atât pe staþia server cât ºi pe sta-
zare a unui sistem ce se încadreazã în tipul one time pass. þia client. În acest mod, la urmãtoarea accesare a contului
de pe server, se va folosi o altã parolã.
Ginfo nr. 3 - martie 2002

Prezentare Modelul one time pass presupune faptul cã toate cele n


În cazul parolelor care se folosesc o singurã datã, trebuie parole care se obþin prin aplicarea succesivã a funcþiei f,
utilizatã o tehnicã de criptare a datelor. De obicei, parolele sunt distincte. În momentul în care s-au epuizat toate cele
sunt constituite din caractere imprimabile, deci alfabetul n parole distincte, trebuie înlocuitã cheia (parola) P0.
utilizat trebuie sã fie o submulþime a setului de caractere Dacã funcþia f ar fi uºor inversabilã, atunci, dacã parola
imprimabile din întregul set de caractere utilizat de calcu- curentã este interceptatã de o persoanã neautorizatã, prin
lator. aplicarea funcþiei f-1 se obþine parola care va fi utilizatã la
În general, dacã dorim sã criptãm un text T, ale cãrui urmãtoarea accesare a contului de pe server.
litere aparþin unui alfabet A, avem nevoie de: Funcþia f trebuie aleasã astfel încât, chiar dacã expresia
• o funcþie de criptare f definitã pe mulþimea pãrþilor tex- sa intrã în posesia unor persoane neautorizate, expresia
tului T; funcþiei f-1 sã fie foarte greu de calculat.
• o parolã sau cheie de criptare.
De obicei, caracterele din textul iniþial ºi cel criptat Claudiu Soroiu este redactor al GInfo. Poate fi contactat prin e-mail la
42 aparþin aceluiaºi alfabet. adresa csoroiu@yahoo.com.