metode de criptografie publica si privata - lucrare de licenta

Upload: mihai-toma

Post on 14-Apr-2018

475 views

Category:

Documents


12 download

TRANSCRIPT

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    1/99

    3

    Metode de criptografie publica si privata

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    2/99

    4

    CUPRINS:

    1. Introducere ....................................................................................................................31.1 Notiuni de baza ale criptografiei.41.2 Istorie15

    2. Bazele Alfanumerice...................................................................................................202. 1 Codul ASCII.....................................................................................................202. 2Codul BASE64.................................................................................................21

    3. Tipuri de cifruri............................................................................................................253. 1 Categorii..........................................................................................................253. 2 Atbash-ul Ebraic si criptografia romana413. 3 Cifruri prin substitutie.......................................................................................453. 4 Codurile...........................................................................................................51

    3. 4. 1 Morse................................................................................................533. 4. 2Navajo...............................................................................................58

    3. 5 Criptografia mecanica..................................................... 623. 5. 1 ENIGMA............................................................................................653. 5. 2 PURPLE............................................................................................73

    3. 6 Cifrul ideal........................................................................................................81

    4. Criptologia moderna...................................................................................................824. 1 Retele Feistel...................................................................................................834. 2 Criptografie quantica874. 3 Analiza criptografica.............90

    5. Concluzii..............96

    6. Referinte.......................................................................................................................97

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    3/99

    5

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    4/99

    6

    1.INTRODUCERE

    Lucrarea prezinta o trecere in revista a metodelor de criptografie de-a lungul istoriei

    cu accent pe metodele si procedurile modern.

    Cuvantul "criptologie" vine din limba greaca si este compus din "kryptos" care inseamna

    ascuns, si "logos" care inseamna cuvant. In felul acesta, "criptografia" se poate defini ca fiind

    arta de a scrie secrete si este la fel de veche ca scrisul insusi fiind folosita de-a lungul secolelor

    pentru a proteja comunicatiile diplomatice, militare sau private. In domeniul criptologiei se potsepara doua domenii distincte: criptografia si analiza criptografica.

    Criptografia cauta metode care sa asigure siguranta mesajelor pe cand analiza

    criptografica incearca sa descompuna mesajul prin dezasamblarea algoritmul folosit.

    Preocuparea fundamentala a criptografiei este de a transforma sau a cifra un mesaj intr-o

    forma intermediara in care informatia originala este prezenta dar ascunsa. Astfel este posibil a

    transmite mesajul transformat (mesajul cifrat) fara a expune informatia pe care o contine.

    Utilizand diferite transformari, putem crea diferite mesaje cifrate pentru acelasi mesaj original.

    Diferenta intre formele intermediare obtinute prin diverse transformari consta in

    interpretarea mesajului. Diferite algoritme vor produce diferite interpretari pentru acelasi mesaj

    cifrat. Nestiinta de a alege o interpretare anume pentru un mesaj cifrat in particular este exact

    rezultatul metodei prin care informatia este ascunsa.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    5/99

    7

    1.1 Notiuni de baza ale criptografiei

    Definitii si notatii preliminare

    Criptografia este o componenta a unui domeniu mult mai larg, numit securitatea informatiei.

    Obiectivele urmarite de acesta pot fi sumarizate n:

    1. Confidentialitate (privacy): proprietatea de a pastra secretul informatiei, pentru ca

    aceasta sa fie folosita numai de persoanele autorizate.

    2. Integritatea datelor : proprietatea de a evita orice modificare (inserare, stergere,

    substitutie) neautorizata a informatiei.

    3. Autentificare: Proprietatea de a identifica o entitate conform anumitor standarde.

    Este compusa din:

    Autentificarea unei entitati ;

    Autentificarea sursei informat iei ;

    4. Non - repudierea : Proprietatea care previne negarea unor evenimente anterioare.

    Celelalte obiective legate de securitatea informatiei (autentificarea mesajelor, semnaturi,

    autorizare, validare, controlul accesului, certificare, timestamping, confirmarea receptiei,

    anonimitate, revocare) pot fi derivate din acestea.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    6/99

    8

    Criptografia este studiul metodelor matematice legate de securitatea informat iei, capabile

    sa asigure confident ialitatea, autentificarea si non-repudierea mesajelor, precum si

    integritatea datelor vehiculate.Termenul criptografie nseamna scriere secreta1 . Domeniul cuprinde atat operatia de

    criptare (cifrare) a unui text, cat si eventualele inercari de descifrare si de aflare a cheii de

    criptare.

    In unele lucrari, cadrul general de lucru este numit criptologie, termenul de criptografie

    desemnand numai operatia de cifrare si descifrare legala.

    Situatia generala de care se ocupa criptografia este urmatoarea:

    Fig.1-Situatia generala de care se ocupa criptografia

    Expeditorul(personalizat n majoritatea lucrarilor cu apelativul Alice) doreste sa trimita

    destinatarului (numit Bob) un mesaj printr-un canal de comunicatie, canal cu un grad ridicat

    de nesiguranta 2 . Aceasta insecuritate o prezinta un adversar criptanalist (Oscar ), care

    1Cuvantul este format din cuvintele grecesti cryptosascuns si grafie scriere

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    7/99

    9

    doreste, din diverse motive, sa cunoasca si, eventual, sa modifice continutul mesajului, desi

    acesta nu ii este destinat.

    Aceasta confidentialitate solicitata de Alice si Bob se rezolva de obicei prin transformarea

    mesajului n asa fel ncat el sa nu poata fi nteles de nici o persoana care l-ar putea

    intercepta. Transformarea respectiva se numeste criptare.

    In general, hackerul Oscar poate avea doua tipuri de comportament:

    Pasiv : el se multumeste sa intercepteze mesajele si sa le citeasca, folosindu-le n scop

    personal;

    Activ: doreste sa modifice mesajele, sa le schimbe ordinea sau sa introduca propriile sale

    mesaje, n intentia de a fi acceptat de Bob drept Alice.

    In acest caz, mesajul va trebui sa verifice n afara de conditia de confidentialitate si pe

    cea de autenticitate: Bob trebuie sa fie sigur ca mesajul primit a fost de la Alice.

    In unele cazuri, problema se poate complica prin faptul ca exista anumite mesaje pe care

    Alice neaga ca ii apartin, desi le-a trimis chiar ea. In acest caz trebuie prevazute anumite

    protocoale care sa ntareasca proprietatile de autentificare; proprietati care sa o sileasca pe

    Alice sa si recunoasca propriile mesaje (non-repudiere).

    In toate aceste scenarii nu exista personaje pozitive sau negative. Orice serviciu de

    criptare/decriptare are si o sectie de criptanaliza. Se pot da numeroase exemple din istorie

    care sa arate rolul pozitiv al lui Oscar n anumite situatii.

    In general, ntr-un triplet (expeditor, destinatar, criptanalist) nimeni nu are ncredere n

    nimeni. Variantele studiate n care Alice are ncredere n Bob sau invers, sunt mult mai

    simple si, de aceea, extrem de rare.

    Traditional un proces criptografic se poate exprima prin ecuatia simpla: un mesaj

    oarecare necodificat P(x) devine un mesaj codificat C(x) utilizand o transformare finita T iar

    2Canalul de comunicatie poate suferi si perturbari de ordin fizic: zgomote, stergeri, demodulari etc; studiul

    detectarii si corectarii erorilor de de transmitere a informatiei constituie tema altui domeniu, numit Teoria

    Codurilor.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    8/99

    10

    pentru a obtine mesajul decodificat se aplica inversa transformarii T-1 mesajului codificat

    C(x).

    C(x) = P(x) T(x)

    P(x) = C(x) T-1(x)

    cu conditia:

    x { a | a = mod N} unde N reprezinta numarul caracterelor din alfabetul utilizat in mesajul

    necodificat. (Unele cifruri ca de exemplu PLAYFAIR, nu utilizeaza functia inversa ci o bruiaza

    pentru a mari confuzia la decriptare si pentru a apropia mesajul de interpretarea umana.)

    Se constata astfel ca o conditie necesara ca un cifru oarecare sa existe si sa aibe sens este

    ca tranformarea pe care o implica sa fie inversibila. Acest lucru ilustreaza conceptual criptograficde transparenta care impune ca indiferent de functia de transformare T si de inversa sa T-1 si

    procedurile pe care le implica acestea, mesajul sa poata sa fie adus la formatul sau original.

    Exista exceptii de la aceste reguli (ex. playfair), care presupun cresterea confuziei sau a

    difuziei insa acestea sunt caracteristicile unui cifru primitiv si regula de baza ramane

    neschimbata pentru metodele moderne de codificare. Se impune o singura restrictie asupra

    functiei de transformare: acesta trebuie sa se incadreze in clasele P sau NP de probleme. Adica

    este esential ca transformarea sa fie realizata in timp polinomial fie printr-un numar fix de pasi

    secventiali (masina Turing secventiala) fie printr-un numar de pasi paraleli (masina Turing

    nedeterminista).

    Aici se disting cele doua mari clase de cifuri:

    cele care opereaza bit cu bi tsi

    cele care opereaza pe blocur i de text.

    In ecuatiile de mai sus am utilizat litera "x" pentru a indica un caracter sau o multime finita de

    caractere dintr-un alfabet oarecare. Daca functia este valabila modulo N unde N reprezinta

    numarul de caractere atunci cifrul este universal si se poate aplica alfabetului.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    9/99

    11

    Confuzia si difuzia pe care le-am mentionat mai sus sunt doua proprietati enuntate de

    catre Claude Elwood Shannon in 1949 intr-un articol intitulat "Communication Theory of

    Secrecy Systems" implicand operatiile unui cifru sigur. Definitia originala ne spune ca difuzia se

    refera la statisticile unui mesaj necodificat care sunt disipate in statisticile mesajului codificat iar

    confuzia se refera la complexitatea relatiei intre cheie si mesajulcodificat. Astfel difuzia este

    asociata cu dependenta intre bitii de iesire si bitii de intrare. In exemplul dat, cifrul simetric

    PLAYFAIR, in anumite conditii bine definite de regula, unii biti de intrare in mesajul original

    sunt precedati de litera "x" sau in unele variante, litera "q".

    Trebuie astfel notat ca metoda Playfair nu satisface conditia de transparenta insa

    realizeaza o difuzie aproape perfecta; mesajul codificat si apoi decodificat nu mai rezulta in

    mesajul original ci in ceva complex, inteligibil doar mintii subiective umane. Intr-un caz ideal,

    adica un cifru perfect, pentru a obtine o buna difuzie fiecare bit de intrare modificat trebuie saschimbe fiecare bit de iesire cu o probabilitate de 50%. Acest concept se mai numeste si Strict

    Avalanche Criterion (SAC) si este satisfacut de cateva cifruri in istoria criptografiei ca de

    exemplu ENIGMA si FEISTEL.

    Cheia, in criptografia moderna, este o informatie care modifica aspectul mesajului

    codificat. Aceasta poate sa ia orice forma personalizata si este considerata un secret partajat intre

    partile comunicante. Cheia este o parte componenta a celor trei scopuri (autentificarea datelor,

    protejarea datelor fata de o parte terta si confidentialitatea datelor) si rezolva problema protejarii

    datelor. Protocolul Diffie-Hellman scoate in evidenta importanta cheii si este conceptul pe care

    se bazeaza criptografia care utlizeaza chei. Algoritmul se explica in exemplul urmator:

    1) Alice si Bob cad de acord sa utilizeze un numar prim p = 23 si baza g = 5.

    2) Alice alege un numar intreg secret a = 6 si il trimite lui Bob (ga mod p):56 mod 23 = 8.

    3) Bob alege si el un numar intreg b = 15 si il trimite lui Alice (gb mod p):515 mod 23 = 19.

    4) Alice calculeaza (gb mod p)a mod p:196 mod 23 = 2.

    5) Bob calculeaza (ga mod p)b mod p:815 mod 23 = 2.

    Astfel Alice si Bob au ajuns la aceeasi valoare si numai a, b, gab = gba sunt valori care

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    10/99

    12

    sunt pastrate secret adica valori de cheie. Restul procesului se efectueaza in clar si nu este

    important daca restul informatiei este divulgat. Din moment ce Alice si Bob ajung la aceeasi

    valoare ei pot utiliza acea informatie ca o cheie pentru a-si codifica mesajele mai departe. In

    definitia generala se utilizeaza un grup ciclic G si un generator g din G; g este considerat o

    informatie care se poate divulga. Apoi se utilizeaza puteri a lui g pentru a ajunge la o valoare

    comuna. Protocolul este considerat sigur impotriva unei parti terte care intercepteaza transmisia.

    Criptografia moderna se poate imparti in doua mari grupuri:

    criptografi e cu cheie simetri ca, din care fac patre cifrurile de bloc si cele de stiva, si

    criptografia cu chei publice.

    Sisteme simetrice de criptare

    Cri ptografi a cu cheie simetr icautilizeaza aceeasi cheie pentru codificare si decodificare

    sau cheia pentru decodificare este dedusa usor din cheia utilizata pentru codificare. Cifrurile destiva opereaza bit cu bit in contrast cu cifrurile bloc text care opereaza pe o grupare de biti cu o

    lungime finita intr-o singura transformare.

    Depinzand de modul de operare, cifrurile bloc pot fi implementate in mod CFB (adica

    cifruri cu autosincronizare). De asemenea, cifrurile de stiva pot fi concepute sa lucreze pe blocuri

    individuale de text pas cu pas.

    Printre cele mai cunoscute cifruri de bloc se afla FEISTEL, DES si IDEA, iar printer

    cifruri de stiva, RC4. Criptografia simetrica are un dezavantaj important si anume: doi oameni

    care vor sa comunice securizat trebuie sa cunoasca o cheie secreta care trebuie stabilita intr-un

    mod special si nu pe o cale pe care ar comunica in mod normal. Acest inconvenient este rezolvat

    de catre criptografia cu cheie publica (sau cheie asimetrica) care utlizeaza doua chei diferite.

    O cheie este publica si accesibila tuturor iar cealalta este tinuta secreta utlizandu-se cheia

    publica pentru codificare respectiv cheia secreta pentru decodificare. Algoritmele bazate pe cheie

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    11/99

    13

    publica utilizeaza in general probleme de calculcomplexe (cum ar fi RSA care utilizeaza

    factorizarea).

    Pentru eficienta sistemelor de codificare hibride se procedeaza in felul urmator: o cheie

    este impartita utilizand un cifru cu cheie publica, iar restul comunicarii se face codificat utilizand

    un algoritm de stiva (care este mai rapid in timp real). Criptografia asimetrica mai asigura unul

    dintre scopurile criptografiei mai sus mentionate, anume confidentialitatea datelor, prin

    semnaturi digitale care reprezinta o metoda de a verifica pana la un punct (adica pana la punctul

    in care cheia secreta se presupune ca fiind necompromisa) ca mesajul primit a fost trimis de la

    emitatorul corespunzator.

    Exemple pentru acestea sunt semnaturile DSA si ElGamal. La fel, algoritmi hibrizi sunt

    utilizati in practica. In loc de a semna un intreg document, se semneaza doar o parte codificata

    intr-un hash3 determinat al mesajului. Un program cunoscut care implementeaza un asemeneaprotocol este PGP (Pretty Good Privacy) sau varianta sa "opensource" GPG (GNU Pretty Good

    Privacy).

    In principiu siguranta in toate algoritmele si schemele de codificiare ramane

    nedeterminata pentru ambele procedee fie ele simetrice sau asimetrice. Pentru cifrurile simetrice,

    siguranta este mai degraba anecdotica nefiind anuntata vreo decodificare cu success pe vre-un

    algoritm de acest tip in mai multi ani. Un asemenea cifru ar putea avea ceva siguranta

    demonstrabila impotriva unui set limitat de incercari de decodificare. Pentru cifrurile asimetrice

    se obisnuieste sa se bazeze pe dificultatea problemei matematice associate cu incercarea de

    decodificare dar si acest lucru nu este demonstrabil ca fiind sigur.

    Criptografia are un cifru cu o dovada puternica de siguranta: "one-time pad" (exemplu

    Vernam) dar acesta cere chei cel putin la fel de lungi ca textul necodificat fapt care este in

    principiu considerat foarte greu de realizat. Cand securitatea unui sistem esueaza, rareori acest

    lucru se datoreaza unei slabiciuni intr-un algoritm criptografic ci mai degraba constituie o eroare

    in implementare sau o eroare umana. Acesta este domeniul mentionat la inceput, si anume cel al

    analizei criptografice, care are ca scop sa gaseasca un defect intr-un sistem criptografic.

    3Hash - O functie de comprimare a datelor sau a unei stive de lungime inconvenabil de mare intr-o

    lungime mica.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    12/99

    14

    Exista o mare varietate de atacuri criptografice si ele pot sa fie clasificate dupa diversele

    metode utilizate. O distincie se refera la ceea ce stie analistul si ce poate sa faca sau sa afle ca sa

    ajunga la informatia secreta.

    Metode cunoscute pentru a sparge cifruri bazate pe chei simetrice sunt:

    Analiza criptografica lineara

    Analiza criptografica diferentiala

    Exemplu tipic de analiza criptografica lineara consta in analiza frecventei literelor

    in mesajul codificat (acest lucru presupunand bineintles ca este vorba despre un cifru de stiva)

    numita si "frequency-analysis". Aceasta analiza mai presupune o buna cunoastere a limbii de

    origine a mesajului.

    Analiza de frecventa se bazeaza pe faptul ca in orice limbaj scris anumite litere si

    combinatii de litere apar cu diferite frecvente. Mai mult, exista chiar o distribuite caracteristica

    de litere care apare in aproape orice exemplar de text dintr-o limba. In domeniu analizeicriptografice primii de mentionat sunt Eli Biham si Adi Shamir care au publicat un articol in anii

    80 cu o serie de atacuri posibile pe diferite cifruri si functii de "hashing" cat si o slabiciune

    teoretica in DES (Data Encryption Standard). Acestia utilizau pentru DES (Data Encryption

    Standard) metoda diferentiala de atac si multe cifruri deveneau susceptibile de aceasta slabiciune

    imediat ce aticolul a fost publicat. Printre primele era cifrul bloc FEAL a carui versiune originala

    cedeaza dupa numai opt atacuri diferentiale pe un text necodificat ales.

    Analiza criptografica diferentiala a cifrurilor consta in principal dintr-un atac bazat pe

    alegerea unor texte cunoscute insemnand ca atacatorul trebuie sa fie capabil sa obtina mesaje

    codificate pentru un set de mesaje necodificate. Metoda de baza utilizeaza perechi de mesaje

    necodificate care se diferentiaza printr-o constanta obtinuta de obicei printru-un SAU-exclusiv

    (XOR). Dupa aceea analistul calculeaza diferenta intre mesajele cifrate corespunzatoare sperand

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    13/99

    15

    sa gaseasca tipare statistice in distributia lor. Pentru un cifru in particular, diferenta trebuie aleasa

    cu atentie si se procedeaza la o analiza a algoritmului.

    Metoda standard este sa se traseaze o traiectorie de diferente foarte probabile in diversele

    etape ale codificarii, numita in final caracteristica diferentiala. Fiindca analiza diferentiala a

    devenit foarte cunoscuta, ea reprezinta o preocupare de baza a cercetatorilor de cifruri si noile

    implementari au chiar dovezi pertinente de rezistenta impotriva acestui tip de atac.

    Relatiile matematice formale pentru o analiza diferentiala sunt urmatoarele:

    unde C[] reprezinta mesajul cifrat, m[] mesajul de codficat, k[] cheia cifrului, fc respectiv fc-1

    functia de codificare si decodificare respectiv iar delta exprima diferenta intre mesajele

    codificate.

    O analiza criptologica diferentiala presupune astfel conoasterea algoritmului cat si

    accesul la acesta pentru a putea genera mesaje codificate pe un text ales utilizand cheia secreta

    cat si alte chei. Singura necunoscuta ramane cheia care va trebui sa fie dedusa din analiza

    diferentiala.

    Multe cifruri lineare cat si de bloc sunt susceptibile la acest tip de atac. Acesta

    lucreaza mult mai repede decat un atac fortat si ataca mai degraba algoritmul in sine decat

    mesajul sau alegerea cheii. Un exemplu simplu de cifru vulnerabil pe care putem sa-l enuntam

    este VIGENERE, care utilizeaza chei transpuse repetate. Aplicand formulele de analiza

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    14/99

    16

    diferentiala putem calcula cheia alegand mesajele corespunzatoare (am presupus in acest

    exemplu cheia secreta ca fiind "ana" si am ales un mesaj de codificat aleator "cal"):

    c[] = f (m[], k[]) => c[] = VIGENERE ("cal", "ana") = "cnl"

    Rezultatul codificarii este astfel "cnl", un cuvant care nu are nici-un inteles. Pentru a afla cheia

    procedem la diferentiere.

    d = f-1(c[], m[]) => d = VIGENERE-1 ("cnl", "cal") = "ana"

    Intalnim urmatoarele tipuri de sisteme de criptare cu algoritmi cu cheie secreta:

    cifrul DES (DES simplu, DES cu sub-chei independente, DESX, DES generalizat

    GDES, DES cu cutii S alternative, DES cu cutii S dependente de cheie);

    cifrulIDEA;

    cifrulFEAL;

    cifrul LOKI;

    cifrulRC2.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    15/99

    17

    Criptografia asimetric este un tip de criptografie n care utilizatorul are o pereche de chei,

    una public i una privat. Folosind cheia public se poate cripta un mesaj care nu va putea fi

    decriptat dect cu cheia pereche, cea privat. Matematic, cele dou chei sunt legate, ns cheia

    privat nu poate fi obinut din cheia public, invers se poate.

    O analogie foarte potrivit pentru proces este folosirea cutiei potale. Oricine poate pune n

    cutia potal a cuiva un plic, dar la plic nu are acces dect posesorul cheii de la cutia potal.

    Cripografia asimetric se mai numete criptografie cu chei publice.

    Metodele criptografice n care se folosete aceeai cheie pentru criptare i decriptare fac suntmetode de criptografie simetric sau criptografie cu chei secrete.

    Complementar, criptografia cu cheie secret, cunoscut i ca simetric, folosete o singur

    cheie secret utilizat att pentru criptare ct i pentru decriptare. Pentru a putea folosi aceast

    metod att receptorul ct i emitorul ar trebui sa cunoasc cheia secret.

    Cele dou mari ramuri ale criptografiei asimetrice sunt:

    Criptarea cu cheie publicun mesaj criptat cu o cheie public nu poate fi decodificat

    decat folosind cheia privat corespunztoare. Metoda este folosit pentru a asigura

    confidenialitatea.

    Semnturi digitaleun mesaj semnat cu cheia privata a emitorului poate fi verificat

    de oricine are acces la aceast cheie, astfel asigurandu-se autenticitatea mesajului

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    16/99

    18

    1.2 Istorie

    In trecut, cheia folosit pentru criptare trebuia s fie secret si prestabilit folosind o metod

    sigur, dar nu criptic, de exemplu, o ntlnire sau un curier sigur. Totusi, aceast metod

    impunea niste dificultti de ordin practic. Criptarea cu cheie public a fost creat tocmai cu

    scopul de a nltura aceste probleme cu aceast metod utilizatorii pot comunica sigur pe un

    canal nesigur far s fie nevoie de o cheie prestabilit.

    n 1874, o carte scris de William Stanley Jevons descria rela tia dintre functiile neinversabile

    si criptografie si discuta concret despre problema factorizrii folosit cu scopul de a crea functia

    capcan n sistemul RSA. n iulie 1996, un critic a comentat astfel cartea lui Jevons:

    n cartea sa Jevons a observat c exist situatii n care operatia direct este relativ simpl, dar

    cea invers este iredutabil mai grea. Un exemplu mentionat de el este criptarea, care este simpl

    n comparatie cu decriptarea. n aceeasi sectiune a crtii este acordat o mare important ideii c

    inmulirea ntregilor este usoar, dar descompunerea produsului n factori primi e mult mai grea.

    Astfel Jevons a anticipat un principiu cheie din algoritmul RSA folosit pentru criptografia

    asimetric, dei nu este Jevons cel care a inventat intreg conceptul.

    Un sistem criptografic cu chei asimetrice a fost publicat n 1976 de Whitfield Diffie si de

    Martin Hellman, care, influentati de studiul lui Ralph C. Merkle pe tema cheilor publice, au

    relizat o metod de acord al cheilor publice. Aceast metod exponential de schimb de chei,

    cunoscut sub numele de Schimbul de chei Diffie-Hellman, a fost prima metod practic

    publicat care permitea comunicarea pe un canal nesigur far a fi necesar pstrarea unui secret.

    Metoda lui Merkle a devenit cunoscut ca Puzzel-urile lui Merkle si a fost publicat n 1978.

    O generalizare a metodei lui Cocks a fost reinventat n 1977 de Ron Rivest, Adi Shamir

    si Leonard Max Adleman, toti de la MIT (Massachusetts Institute of Technology). Ultimii doi

    autori i-au publicat studiile n 1978, iar algoritmul a devenit cunoscut sub numele de RSA. RSA

    foloseste produsul dintre dou numere prime maripentru a cripta si descripta, fcnd att

    criptarea cheiei publice ct si semnatura digital. Securitatea acestei metode se bazeaz pe

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    17/99

    19

    dificultatea descompunerii numerelor mari, o problem la care nu a fost gasit o solutie

    practicabil pn n prezent.

    Din 1970 ncoace, o multime de metode de criptare, semnturi digitale, acordul asupra

    cheilor si alte tehnici au fost dezvoltate n domeniul criprografiei asimetrice.

    Algoritmi criptografici cu cheie publica

    Un moment important in evolutia criptografiei moderne l-a constituit crearea, in anul

    1976, de catre Whitfield Diffie si Martin Hellman, cercetatori la Univeritatea Stanford dinCalifornia, a unui principiu diferit de acela al cifrarii simetrice. Ei au pus bazele criptografiei

    asimetrice cu chei publice. In locul unei singure chei secrete, criptografia asimetrica foloseste

    doua chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibila deducerea

    unei chei din cealalta, una din chei este facuta publica, fiind pusa la indemana oricui doreste sa

    transmita un mesaj cifrat. Doar destinatarul, care detine cea de-a doua cheie, poate descifra si

    utiliza mesajul. Tehnica cheilor publice poate fi folosita si pentru autentificarea meajelor prin

    semnatura digitala, fapt care i-a sporit popularitatea.

    Intalnim urmatoarele tipuri de sisteme de criptare cu algoritmi cu cheie publica:

    sisteme de cifrare exponentiala RSA (Rivert-Shamir-Adleman);

    cifrul EL GAMAL (EG);

    standardul DSS de semnatura digitala.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    18/99

    20

    Utilizarea criptografiei in retele

    Putem privi securitatea securitatea datelor, securitatea comunicatiilor, in general

    securitatea informatiilor de orice fel ca un lant. Securitatea intregului sistem este o combinatie

    puternica de legaturi slabe. Totul trebuie securizat: algoritmii criptografici, protocoalele,

    programele de administrare etc. Daca, de exemplu, algoritmii sunt puternici, insa sunt probleme

    cu generatorul de numere aleatoare, orice criptanalist va ataca sistemul pe aceasta cale. Daca nu

    sunt securizate locatiile de memorie care contin cheia, criptanalistul va sparge sistemul utilizand

    aceasta slabiciune. In timp ce proiectantul securitatii unui sistem trebuie sa identifice toate caile

    posibile de atac si sa le asigure, un criptanalist are nevoie doar de o singura slabiciune pentru a

    patrunde in sistem.

    Criptografia este doar o parte a securitatii; ea acopera problematica realizarii securitatii

    unui sistem, ceea ce este diferit de ceea ce inseamna realizarea unui sistem securizat.

    Traditionala imagine a criptografiei ca spion in tehnologie este destul de departe de realitate.

    Peste 99% din aplicatiile criptografice utilizate in lume nu protejeaza secrete militare; ele sunt

    intalnite in banci, plati-TV, taxe de drum, acces la terminale, contoare de electricitate etc.

    Rolul criptografiei in aceste aplicatii este de a impiedica efectuarea de furturi si

    inselaciuni. in cele mai multe dintre aceste aplicatii s-a utilizat prost criptografia, atacurile reusite

    neavand insa nimic in comun cu criptanaliza. Chiar si NSA a admis ca marea parte a erorilor

    aparute in activitatile sale provin din erorile de implementare si nu din algoritmi sau protocoale.

    In acest conditii, nu conteaza cat de buna a fost criptografia, atacurile reusite anuland acest lucru

    si speculand erorile de implementare.

    Criptarea hardware

    Pana recent, toti producatorii de criptare isi ofereau produsele sub forma unor cutii ce se

    atasau unei linii de comunicatii si criptau toate datele de-a lungul liniei. Desi criptarea software

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    19/99

    21

    devine tot mai dominanta, cea hardware este inca cea mai ceruta in aplicatiile militare sau

    comerciale de mare importanta. NSA, de exemplu, autorizeaza doar criptari hardware. Exista si

    motive pentru aceasta.

    Primul este viteza. Criptarea consta dintr-o multime de operatii complicate ce se

    efectueaza asupra unui sir de biti clar, operatii care trebuie simulate int-un calculator. Cei doi

    algortmi comuni de criptare, DES si RSA, lucreaza ineficient pe procesoare normale. Daca o

    serie de criptografi si-au facut propriii algoritmi adaptati implementarilor software, hardware-ul

    specializat castiga prin viteza.

    In plus, criptarea este adesea o sarcina complexa. Introducerea in procesor a acestor

    operatii ete ineficienta. Sistemul va fi mult mai rapid daca operatiile de acest gen se fac de catre

    un chip sau procesor dedicat.

    Un al doilea motiv este securitatea. Un algoritm de criptare ce lucreaza pe un calculator

    obisnuit nu are protectie fizica. Dispozitivele de criptare hardware sunt incapsulate, iar protectia

    se poate face destul de usor. Chip-urile VLSI dedicate pot fi tratate chimic, astfel incat orice

    incercare de patrundere poate distruge chip-ul.

    IBM a dezvoltat un sistem criptografic de criptare a datelor si comunicatiilor pentru

    maiframe-uri, ce include module inviolabile care pastreaza cheile.

    Radiatia electromagnetica poate uneori arata ce este in interiorul unei piese a unui

    echipament electronic. Dispozitivele de criptare pot fi ecranate, astfel incat sa nu ofere informatii

    la o astfel de incercare. Calculatoarele obisnuite pot fi ecranate la fel de bine, insa este o

    problema mult mai complexa (programul este cunoscut sub numele de TEMPEST). Motivul final

    este usurinta in instalare. Se poate dori ca secretizarea sa fie facuta pentru conversatiile

    telefonice, transmisiile de fax sau pentru legaturi de date.

    Chiar daca datele criptate vin de la un calculator, este mai usor de instalat un dispozitiv

    specializat, decat sa se modifice sistemul software al calculatorului. Criptarea trebuie sa fie

    invizibila; ea nu trebuie sa fie accesibila utilizatorului. Singura cale de a face acest lucru software

    este de a scrie criptarea in sistemul de operare, ceea ce nu este usor. Pe de alta parte, chiar si unui

    calculator slab i se poate atasa un dispozitiv de criptare, intre el si modem-ul de comunicatie.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    20/99

    22

    Cele trei lucruri de baza ale criptarii hardware oferite pe piata sunt:

    module de criptare (care realizeaza operatii de genul verificarea parolei sau

    administrare de chei pentru banci),

    dispozitive dedicate de criptare pentru legaturi de comunicatie si placi atasate in

    calculatorul personal.

    Exista diferente majore intre dispozitive proiectate pentru criptare sincrona sau asincrona.

    Un dispozitiv nu va accepta niciodata o viteza a datelor mai mare decat cea pentru care a fost

    proiectat. In aceasta familie de dispozitive exista o serie de incompatibilitati. Problema principala

    este daca exista compatibilitate intre necesitatile particulare ale propriei aplicatii si

    caracteristicile principale ale dispozitivului de criptare oferit.

    Tot mai multe companii isi secretizeaza datele prin hardware specializat. Administrarea

    interna a cheilor pentru aceste dispozitive este in general sigura, desi sunt tot atatea scheme cati

    producatori sunt.

    Criptarea software

    Orice algoritm de criptare poate fi implementat software. Dezavantajele constau in viteza,

    cost si usurinta in manipulare si modificare. Avantajul este oferit de flexibilitate si portabilitate,

    usurinta in folosire si in efectuarea de upgrade-uri. Programele criptografice pot fi copiate foarte

    usor si instalate pe orice masina si se pot incorpora in aplicatii complexe, cum ar fi cele de

    comunicatii si procesoarele de texte.

    Programele de criptare software sunt foarte populare si sunt valabile pentru majoritatea

    sistemelor. Ele sunt destinate sa protejeze fisiere individuale. Utilizatorul, in general, cripteaza si

    decripteaza fisiere. Este important ca schema de administrare a cheilor sa fie sigura. Cheile nu

    trebuie pastrate oriunde pe disc. Textele clare ce se cripteaza trebuie, de asemenea, sterse dupa

    efectuarea operatiei.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    21/99

    23

    2.BAZELE ALFANUMERICE

    Alfabetul se poate defini ca un set standardizat de litere, simboluri de baza scrise, fiecare

    reprezentand un fonem al unei limbi vorbite, fie cum exista acum sau cum a fost in trecut. Exista

    si alte forme de scriere anume logogramele, in care fiecare simbol reprezinta un morfem, sau

    cuvant, si silabe, in care fiecare simbol reprezinta o silaba.

    Cuvantul "alfabet" vine din compunerea a doua simboluri "alpha" si "beta" denumind

    primele doua litere din alfabetul grecesc.

    Exista mai multe tipuri de alfabete, majoritatea fiind lineare, aceasta insemanand ca sunt

    compuse din linii. Exceptiile notabile sunt alfabetul Braille, codul Morse si scrierea cuneiforma

    din orasul antic Ugarit.

    Pentru ca alfabetul latin, urmat de caracterele de control si de expresie adaugate de

    literatura, sa poata fi implementat intr-un sistem informatic s-a recurs la o standardizare numita

    ASCII (American Standard Code for Information Interchange) deasemenea cunoscut

    international drept standardul ISO646-US.

    2.1 Codul ASCII

    Codul ASCII reprezinta text in calculatoare, echipamente de telecomunicatii si alte

    dispozitive care intrebuinteaza text. Majoritatea codarilor noi au ca baza istorica acest standard.

    ASCII a fost publicat ca standard in 1967 si a fost imbunatatit in 1986. La ora actuala defineste

    coduri pentru 33 de caractere ne-imprimabile, majoritatea fiind caractere de control de linie care

    afecteaza modul in care textul este procesat, plus 95 de caractere imprimabile incluzand spatiu,

    caracterele alfabetului in scris mic si mare si restul semnelor de punctuatie si de algebra simpla.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    22/99

    24

    Ca alte reprezentari de caractere, ASCII definieste o corespondenta intre tipare de biti si

    simbolurile unei limbi scrise permitand astfel dispozitivelor sa comunice intre ele si sa

    proceseze, stocheze si sa comunice informatii pe baza de caractere. Acest cod a fost extins dupa

    necesitati ca sa includa si caractere care apartin altor limbi.

    Notabila este a treia extensie (Unicode, Universal Character Set (UCS)) de la ASCII care

    defineste caracterele speciale ale alfabetului roman. Strict, ASCII este un cod bazat pe sapte biti,

    insemnand ca utilizeaza tipare de biti reprezentate prin sapte numere binare (de la 0 la 127 in

    zecimal) ca sa reprezinte informatia de caractere. Pe vremea cand ASCII a fost introdus, multe

    calculatoare lucrau deja cu grupuri de opt biti (bytes sau octeti); al optulea bit era considerat bit

    de paritate pentru verificari de eroare pe diferite linii de comunicatii sau alte functii specifice.

    ASCII rezerva primii 32 de octeti (0-31 zecimal) pentru controlul de caractere: coduri

    care nu sunt destinate sa poarte vreo informatie de caractere ci doar sa controleze dispozitive(cum ar fi imprimantele) care utlizeaza ASCII.

    De exemplu, caracterul 10 reprezinta functia "line feed" (care comunica imprimantei

    comanda de a avansa pagina), iar caracterul 27 reprezinta "escape" care este identic tastei "Esc"

    gasit in coltul de stanga sus pe majoritatea tastaturilor. Codul 127 (toti bitii setati), alt caracter

    special, echivaleaza cu "delete" care a fost utilizat prin anii 80 pentru a gauri o linie completa de

    hartie de calculator stergand astfel toate datele de pe acea sectiune. Primii utilizatori ai codului

    ASCII au creat cateva coduri pentru a reprezenta meta-informatii, cum ar fi sfarsit de line etc.

    Acestea provoaca des un conflict atunci cand datele sunt transferate. De exemplu, sfarsitul de

    linie (end-of-line) in fisiere de text si date variaza de la un sistem de operare la altul. Atunci cand

    datele sunt mutate de la un sistem la altul, procesul trebuie sa recunoasca aceste caractere si sa le

    transforme corespunzator.

    2.2 Codul Base64

    Este asadar necesar de a gasi o baza alfa-numerica pentru a transmite un mesaj binary sau

    cifrat fara ca aceste caractere speciale de control sa perturbe transmisia sau continutul datelor. De

    aceea s-a introdus o metoda numita Base64 care este un sistem de numarare positional utilizand

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    23/99

    25

    baza 64. Un numar in Base64 este cea mai mare putere a lui doi care poate sa fie reprezentata

    utilizand numai caractere ASCII afisabile. Acest lucru a dus la cifrarea transferului emailului de

    exemplu.

    Toate variantele cunoscute ale acestei baze alfanumerice utilizeaza caracterele A-Z, a-z si 0-

    9 in aceasta ordine pentru primele 62 de numere insa simbolurile alese pentru ultimele doua

    variaza considerabil intre diferitele sisteme care utilizeaza Base64. Protocoalele care utilizeaza

    aceasta baza de numerotare a caracterelor sunt:

    e-mailMIMe :In formatul de e-mail MIME, Base64 este o schema de cifrare binara -

    text in care o secventa arbitrara de bytes este convertita intr-o secventa de caractere

    ASCII afisabile. Este definit ca o cifrare MIME de continut pentru a fi utilizata in internete-mail. Singurele caractere utilizate sunt caracterele mici si mari ale alfabetului roman

    (A-Z, a-z), numeralele (0-9) si simboluile "+" si "/" cu simbolul special "=" utilizat ca

    sufix special.

    e-mail - UTF-7:UTF-7 a introdus un nou sistem modificat al lui Base64. Aceasta

    schema de cifrare este utilizata ca sa cifreze UTF-16 utilizat ca format intermediar in

    UTF-7 in caractere ASCII afisabile. Este o varianta a lui Base64 utilizat in MIME. UTF-7intentioneaza sa permita utilizarea "unicode"-ului in e-mail fara sa utilizeze un cifru de

    transfer separat. Principala diferenta fata de versiunea MIME a lui Base64 este ca nu

    utilizeaza simbolul "=" pentru sufix fiindca acesta tinde sa creeze complicatii. In schimb,

    pentru sufix, adauga "0" la sfarsitul fiecarui octet.

    IRC (I nternet Relay Chat) IRCu:in protocolul P10 server-server utilizat de catre

    "daemon"-ul IRC-IRCu si software-ul compatibil, o versiune de Base64 este utilizata

    pentru cifrarea numerica si binara ale IP-urilor clientilor. Numericele clientilor cat si ale

    serverelor au o dimensiune fixa care se potriveste cu un numar exact de cifre Base64 fara

    nevoie de sufix. IP-urile binare au ca prefix zero-uri ca sa incapa in dimensiunile impuse.

    Setul de simboluri este putin diferit de MIME utilizand "[" si "]" in loc de "+" si "/".

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    24/99

    26

    HTTP (H yper Text Transfer Protocol):Base64 este foarte util pentru protocolul HTTP

    atunci cand acesta are nevoie sa trimita siruri de identificare cu dimensiuni mari. ID-uri

    mari (de marimea a 128-biti) trebuie sa fie transmise intre aplicatia de identificare si

    clientii respectivi prin metode conventionale HTTP cum ar fi GET/POST. De asemenea,

    multe aplicatii trebuie sa cifreze date binare pentru ca acestea sa fie incluse in URL-uri

    sau pentru generarea de "field"-uri ascunse. Utilizarea unui cifru Base64 standard ar da

    multe probleme atunci cand ar trebui transmise caracterele "/" si "+" care sunt de obicei

    transmise in URL-uri in secvente de numere hexazecimale ("%XX - unde XX este codul

    caracterului ASCII in hexazecimal). Cand acesta este ulterior utilizat in baze de date sau

    transferat intre medii de lucru eterogene vor aparea probleme de compatibiliate asupracaracterului "%" (deoarece acest caracter mai este utilizat in ANSI SQL ca "wildcard").

    Din acest motiv, se utilizeaza o varianta de Base64 modificata care nu utilizeaza sufixul

    "=", iar in loc de caracterele "+" si "/" se utilizeaza prin conventie "*" si "-" respectiv.

    Alta varianta utilizeaza "!-" in loc de "*-" pentru a inlocui caracterele din Base64

    deoarece "+" si "*" ar putea fi rezervate pentru expresii.

    In principiu pentru a converti datele in Base64 se utilizeaza algoritmul urmator:

    primul byte este plasat in cel mai semnificativ opt biti dintr-o stiva de 24 de biti, urmatorul in cei

    opt din mijloc si ultimul in cel mai putini semnificativi opt biti. Daca exista mai putin de trei

    bytes de cifrat atunci bitii stivei vor fi zero. Stiva este apoi utilizata sase cu sase biti, cel mai

    semnificativ primul, ca indice in sirul:

    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

    si caracterul de iesire indicat. Daca erau numai unul sau doi bytes de intrare atunci numai

    primele doua sau trei caractere din iesire erau utilizate si sufixate respectiv cu unul sau doua

    caractere "=". Acest lucru previne ca biti suplimentari sa fie adaugati la reconstruirea datelor.

    Algoritmul continua pe restul datelor de intrare.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    25/99

    27

    Trebuie notat ca un sir de caractere convertit in Base64 isi mareste lungima in forma

    codata de circa trei ori. Acest lucru este firesc deoarece se trece de la un set de caractere cu 255

    de simboluri la un set cu 64 de caractere. Astfel fiecare caracter din setul ASCII de 255 de

    caractere este exprimat in medie prin trei caractere din Base64, lucru evident din faptul ca:

    (nr. caractere ASCII)/(nr. caractere Base64) = 255/64.

    Base64 face parte din metodele de "character - mapping", adica metode prin care

    unele caractere sunt asociate cu alte caractere din alt set. Acest lucru influenteaza transmisia prin

    faptul ca mesajul transmis are o lungime mai mare decat mesajul necodificat insa in acelasi timp

    mareste gradul de confuzie si poate sa perturbe un ascultator acesta asteptandu-se la alta marime

    de mesaj. Orice e-mail transmis foloseste MIME, o varianta bine cunoscuta de Base64, pentru a

    trimite fisiere atasate. Acest lucru mareste dimensiunea fisierului atasat de aproximativ trei ori sieste adesea o problema deoarece marimea permisa de catre serverul de e-mail a unui fisier atasat

    nu este egala cu marimea fisierului ci cu marimea fisierului inmultita cu trei. Trebuie mentionat

    ca aceasta codificare in base64 se face direct de la client si nu lucreaza impreuna cu serverul.

    Astfel serverul nu va sti foarte bine ce se afla dincolo de literele si cifrele din Base64 ci mai

    degraba le va lua ca atare daca sunt precedate de antetul corespunzator mentionat in standardul

    rfc 2821. Nu se poate determina daca mesajul original a fost in forma binara sau in forma text si

    la convertire programul pentru decodificare trebuie sa stie forma originala.

    De obicei acest lucru se rezolva prin contextul in care a fost transmis mesajul. Formatul

    unui e-mail specifica daca urmatorul bloc defineste un fisier atasat prin sintaxa standard a

    protocolul de e-mail (rfc 2821). Cele mai cunoscut convertoare din si spre Base64 sunt doua mici

    programe "uuencode"/"uudecode" aparute pe platforma BSD 4.0.

    Din pacate multe distributii de Linux cat si unele variante mai simplificate de BSD nu au

    pastrat acest program in arhiva de baza "bin" (continand toate utilitarele esentiale utilizate la linia

    de comanda a unui terminal). Alte variante de distributii de UNIX includ aceste doua comenzi in

    pachete secundare care pot sa nu fie instalate pe sistem.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    26/99

    28

    3.TIPURI DE CIFRURI

    3.1 Categorii de cifruri

    n cadrul metodelor de criptografie simetric distingem 3 categorii diferite :

    1) Cifruri substituie;

    2) Cifruri transpoziie;

    3) Cifruri combinate.

    Cifrul de substituie (substituion cipher ) este cifrul bloc la care fiecare caracter sau grup de

    caractere ale textului n clar (M) este substituit cu un alt caracter sau grup de caractere ale

    textului cifrat (C), descifrarea fcndu-se prin aplicarea substituiei inverse asupra textului cifrat.

    n criptografia clasic exist patru tipuri de cifruri de substituie:

    1) Cifruri de substituie monoalfabetic (monoalphabetic ciphers) sunt cifruri n care

    fiecare caracter al textului n clar (M) este nlocuit cu un caracter corespondent al textului

    cifrat

    Vom aminti cteva dintre cifrurile de substituie cele mai cunoscute:

    Cifrul Caesarn cazul sistemului CAESAR substitutul unei litere se obine prin translarea s n fa ca

    pai n alfabet. n sistemul CAESAR i n alte sisteme naturale se folosete codificarea numeric

    natural:

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    27/99

    29

    Notnd literele de la 0 la 25, n CAESAR fiecare litera devine + k , calculele

    efectundu-se modulo 26.

    Numrul cheilor posibile n CAESAR este foarte mic i pe lng aceasta un alt mare

    dezavantaj, din punct de vedere al securitii, este acel c secvena substitutelor pstreaz

    ordinea alfabetic; doarpoziia iniial se schimb.

    Cifrul lui Polybius

    Este un cifru de substituie. Literele alfabetului latin sunt aezate ntr-un ptrat dedimensiune 5x5. Literele I i J sunt combinate pentru a forma un singur caracter, deoarece

    alegerea final (ntreI i J) poate fi uor decis din contextul mesajului. Rezult 25 de caractere

    aezate ntr-un ptrat 5x5 cifrarea oricrui caracter fcndu-se alegnd perechea potrivit de

    numere (intersecialiniei i a coloanei) corespunztoare dispunerii caracterului n ptrat.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    28/99

    30

    Patratul lui Polybius

    Exemplu:

    Mesajul: AM CASTIGAT LUPTA, se transform dup cifrare n:

    11233111344443221144 1354534411.

    Observaie: Codul poate fi schimbat prin rearanjarea literelor n ptratul 5x5.

    n sistemele UNIX, programul de criptare ROT 13 este un cifru de substituie

    monoalfabetic; fiecare liter, n textul cifrat se rotete cu 13 caractere, de unde i denumirea de

    ROT 13: C = ROT 13 (M) iar decriptarea se face aplicnd de dou ori ROT 13, dat fiind c

    alfabetul latin conine N = 26 litere: M = ROT 13 (ROT 13(C)) acest cifru nu este n realitate un

    cifru de securitate; el se utilizeaz adesea n posturile de utilizatorde reea pentru a ascunde texte

    potenial ofensive.

    In concluzie, cifrurile de substituie monoalfabeticpot fi sparte cu uurin deoarece

    frecvenele literelor alfabetului nu se schimb n textul cifrat fa de textul n clar.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    29/99

    31

    2) Cifruri de substituie omofonica (homophonic substitution ciphers) sunt cifrurile de

    substituie n care un caracter al alfabetului mesajului n clar (alfabet primar) poate s

    aib mai multe reprezentri. Ideea utilizat n aceste cifruri este uniformizarea

    frecvenelor de apariie a caracterelortextului cifrat (alfabet secundar), pentru a ngreuna

    atacurile criptanalitice.

    Astfel, litera Acu cea mai mare frecven de apariie n alfabetul primar poate fi nlocuit cu

    F, * sau K.

    Dei mai greu de spart dect cifrurile de substituie simple (monoalfabetice), ele nu

    mascheaz total proprietile statistice ale mesajului n clar iar in cazul unui atac cu text n clar

    cunoscut, cifrul se sparge extrem de uor.

    3) Cifrul de substituie poligramic (polygram substitution ciphers) se obin substituind

    blocuri de caractere ale alfabetului primar numite poligrame - cu alte blocuri de

    caractere, de exemplu:

    ABA RTQ

    SLL ABB

    Cifrurile bazate pe substituia poligramic realizeaz substituirea unor blocuri de

    caractere (poligrame) din textul clar, distrugnd astfel semnificaia, att de util n criptanaliz, a

    frecvenelordiferitelor caractere.

    Considerm un mesaj M=m1m2...mdmd+1... i un cifru care prelucreaz poligrame de

    lungime d. Criptograma rezultat este C=c1c2...cdcd+1...cd+d. Fiecare poligram mid+1...mid+d va fi

    prelucrat n poligrama cid+1...cid+dprin funcia de substituie fi astfel : cid+j=fj (mid+1, ..., mid+d) .

    n cazul cifrrii literelor singulare frecvena de apariie a acestora n textul cifrat este

    aceeai cu frecvena de apariie a literelor corespondente din textul clar. Aceast lucru furnizeaz

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    30/99

    32

    o cantitate de informaie suficient criptanalistului pentru spargerea sistemului. Pentru

    minimizarea informaiei furnizate de frecvena de apariie a literelor s -a procedat la cifrarea

    grupurilor de litere (n-grame). n cazul n care un grup de n litere este substituit printr-un alt grup

    de n litere, substituia se numete poligramic; cel mai simplu caz se obine pentru n=2, cnd

    diagrama m1m2 din textul clar se substitue cu diagrama c1c2 din textul cifrat.

    Toate serviciile criptografice se pot realiza prin mai mult primitive criptografice:

    distingem intre primitive de criptare: primitive de autentificare si protocoale criptografice.

    Primitivele de criptare pot sa fie utilizate sa ofere confidentialitate, primitivele de autentificare

    pot fi utilizate ca sa ofere autentificarea de date iar protocoalele ofera autentificare la nivel de

    utilizator si servicii de gerare de chei.Primele dintre acestea, adica primitivele de criptare si mai concis criptarea, ne permite sa

    transformam un text normal intr-un text cifrat. Ca sa ajungem la textul original, aplicam inversul

    transformarii, numita decriptare. Aceste transformari sunt publice si permit analiza algoritmelor

    lor si posibilitatea de a dezvolta implementari eficente. Un singur parametru ramane insa secret:

    cheia care este cunoscuta doar de catre emitator si/sau de receptor. Aceasta cheie este singurul

    lucru care trebuie stiut ca sa fie posibila criptarea si decriptarea mesajului. Astfel este important

    de a gestiona cheile personale care trebuie sa fie pastrate secrete atunci cand acestea sunt

    necesare. Discutam doua tipuri de primitive de criptare: simetrice sau cifruri conventionale si

    cifr ur i de tip cheie publi ca.

    In principiu exista doua tipuri de scheme de criptare:

    Cif ru ri le simetri ce sunt cele mai vechi si cele mai folosite pana in prezent. In aceste scheme,

    cheia utilizata pentru a decifra textul cifrat este identica atat pentru emitator cat si pentru

    receptor.

    Cel mai cunoscut cifru din aceasta categorie este "Data Encryption Standard" (DES),

    care a fost preluat in 1977 de catre "American NBS" (National Bureau of Standards) sub numele

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    31/99

    33

    de FIPS 46. De atunci a fost folosit peste tot in lume si pana la aceasta data nu au fost semnalate

    erori conceptuale majore.

    DES utilizeaza o cheie de 56 de biti care este dinpacate destul de slaba. S-a determinat ca

    printr-o cautare exhaustiva (brute-force ) pentru toate valorile posibile ale aceste chei, intr-o

    singura zi costurile investitiei ar fi in jur de 200000$ (care necesita doar cateva perechi de text

    necifrat si textul corespunzator sub forma cifrata). In ultimii ani, E. Biham si A. Shamir si mai

    tarziu M. Matsui au publicat atacuri aspura cifrului DES care reusesc sa-l sparga intr-un sens

    academic, adica necesita mult mai putine operatii, insa acest lucru nu constituie o amenintare

    practica la DES fiindca necesita o suma majora de texte cunoscute cifrate si decifrate. O

    siguranta mai buna poate fi obtinuta utilizand DES-triplu (3DES). In acest caz, obtinem o cheie

    eficienta de 112 biti. In acelasi timp, acesta ofera o protectie la atacurile academice ale lui DES.Nu este suficient de a allege un cifru sigur; trebuie sa specificam o cale sigura de operare.

    Depinzand de natura canalului de comunicatie sau spatiului de stocare, trebuie sa alegem intre

    Cipher-Block-Chain (CBC), Cipher-Feedback (CFB) si Output-Feedback (OFB) asa cum este

    specificat in FIPS 81.

    Criptarea bloc cu bloc (sau Electronic Code Book (ECB)) este utilizata doar pentru

    criptarea cheilor. Aceste patru sunt modurile de operare specifice pentru un cifru care opereaza

    asupra unui bloc de text. Ultimele doua, adica Cipher-Feedback (CFB) si Output-Feedback

    (OFB), sunt modurile de operare standard pentru un cifru de bloc.

    In mod CFB, blocul de text cifrat anterior este criptat si rezultatul este combinat cu blocul

    de text necifrat utilizand un OR-exclusiv pentru a produce blocul de text cifrat curent.

    Este posibil de a defini modul CFB astfel incat sa utilizeze un feedback care este mai mic decat

    un bloc de text intreg. Un vector de initializare sau o valoare "c0" este utilizata ca"seed" pentru

    procedura.

    Modul de operare OFB este similar cu modul CFB cu exceptia cantitatii de informate

    care este trecuta prin OR-ul exclusiv. Aceasta cantitate este generata independent de textul cifrat

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    32/99

    34

    si textul in forma normala. Metoda se bazeaza pe un vector "s0" care este utilizat ca "seed"

    pentru secventa de blocuri de date.

    Putem remarca faptul ca toate aceste metode prezinta un mod de a trata datele intr-un

    cifru si este strict legata de formatul textului. Modurile de operare, desi produc texte cifrate

    distincte, nu au nici o legatura cu algoritmul cifrului. Secventa de cifrare ramane complet aceeasi

    si functioneaza pe aceeasi principia.

    Fig.2- Modul de functionare a cifrului DES in mod CFB. O parte din mesajul cifrat

    anterior este utilizata pentru a obtine urmatorul bloc de text cifrat.

    Mai multe cifruri opteaza sa faca un amestec intre textul cifrat si textul necifrat intr-o

    combinatie prestabilita insa acest lucru nu rezulta intr-un nou cifru ci este, asa cum s-a precizat

    punctual, doar un mod de operare. In practica, in multe implementari de cifruri (si la fel pentru

    DES), codul indica faptul ca algoritmul de cifrare este separat de restul implementarii. Pentru a

    obtine operarea prin CFB, OFB sau altele, implementarea pre- sau post- proceseaza textul

    necifrat sau textul cifrat inainte de a aplica functia transformata de cifrare. Bineinteles ca exista o

    cantitate binecunoscuta de moduri de operare insa, pe de alta parte, nimeni nu este obligat sa

    utilizeze un mod de cifrare standard.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    33/99

    35

    Acest lucru implica faptul ca multe implementari sunt destul de incompatibile. In

    paragraful anterior am spus ca o cifrare bloc-cu-bloc este utilizata doar pentru a cifra cheia. Din

    pacate, alta implementare care nu considera aceasta metoda sigura sau viabila dintr-un motiv

    anume, poate sa opteze sa nu faca la fel. Rezultatul este mai mult sau mai putin dezastros si se

    rezuma in cateva cuvinte: intre diferite tipuri de implementari al unui alogritm de cifrare anume,

    este posibil sa constatam ca textul cifrat rezultant este diferit.

    Din aceasta cauza, la decriptare, se poate ca aplicand functia inversa (care aici implica si

    modul de operare), sa nu reusim sa decriptam un text cu o implementare anume desi algoritmul

    de cifrare este identic in toate implementarile. Mai clar, un text cifrat cu o implementare anume

    poate sa fie diferit de un text cifrat cu alta implementare chiar daca ambele implementari aplica

    acelasi algoritm de cifrare. Acest lucru se datoreaza modului de operare care poate sa difere intre

    implementari. Din fericire, cum am mai precizat, aceste moduri de operare mai sus discutate suntoarecum standardizate si multe implementari le respecta facand ca implementarile sa fie

    compatibile.

    Trebuie insa sa recunoastem ca o regula de genul "modul de operare bloc-cu bloc este

    utilizat doar pentru a cifra o cheie" nu are nici o baza criptologica. Aceasta regula nu este fondata

    pe faptul ca ea este mai "sigura" sau mai "eficienta" din punct de vedere al algoritmului. Chiar in

    acest caz (adica al operarii bloc-cu-bloc doar asupra cheiii) putem sa spunem, luandu-ne rezerva

    ca analizam din punct de vede strict criptologic, ca este chiar o metoda "nesigura" si ca alt mod

    de operare ar putea sa cifreze cheia intr-un mod mai "sigur".

    Acest lucru este evident chiar din punctul de vedere al complexitatii fiecarui mod de operar

    asupra cheii si al mesajului.

    Nu le vom analiza complexitatea amanuntit insa, daca spunem ca fiecare implementare

    nu este mai mult decat o functie oarecare putem sa determinam acest grad de complexitate

    aplicand operatorul de complexitate a lui Landau fiecarei functii.

    Aceast mod de analiza se obisnuieste sa fie aplicat in practica pentru a genera statistici

    asupra cifrului. Din definitia teoriei complexitatii, dezvoltata de catre fizicianul Lev Landau,

    deducem ca acest grad de complexitate (pe care Landau l-a notat cu "O") al unei functii este

    determinat de puterea dominanta in functie. Acesta teorie, de natura pur matematica, este foarte

    utila pentru analiza complexitatii diferitor functii si ofera un instrument puternic de masura

    pentru diverse algoritme. Daca ne uitam la graficul de mai sus, putem deduce ca o cheie va fi

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    34/99

    36

    criptata dupa o procedura bloc-cu-bloc, adica ki = En(ki) unde am notat cu En functia de criptare

    la un moment "n" si ki portiunea de cheie curenta.

    Dupa cum vedem acesta este modul de operare bloc-cu-bloc descris mai sus. Acesta este

    o procedura lineara care are puterea: O(ki)=O(En) deoarece este vorba despre o functie lineara si

    puterea dominanta depinde strict de algorimul de criptare.

    Aplicam aceasi teorie si mesajului cifrat. Acesta este reprezentat in graficul de mai sus ca

    fiind: ci = xor(mi, En(ci-1)) care este si ea o functie lineara datorita proprietatilor aditive ale

    functiei XOR (OR exclusiv).

    La fel, se poate spune ca puterea acestui mod de operare este: O(ci) = O(En) deoarece

    puterea dominanta in aceasta functie este determinata strict de algoritmul de criptare. Astfel

    constatam ca puterea modului de operare CFB este identica modului de operare bloc-cu-bloc.Daca ne uitam la graficul de mai sus, putem deduce ca o cheie va fi criptata dupa o procedura

    bloc-cu-bloc, adica ki =En(ki) unde am notat cu En functia de criptare la un moment "n" si ki

    portinuea de cheie curenta. Dupa cum vedem acesta este modul de operare bloc-cu-bloc descris

    mai sus.

    Acesta este o procedura lineara care are puterea: O(ki)=O(En) deoarece este vorba despre

    o functie lineara si puterea dominanta depinde strict de algorimul de criptare. Aplicam aceasi

    teorie si mesajului cifrat. Acesta este reprezentat in graficul de mai sus ca fiind: ci = xor(mi,

    En(ci-1)) care este si ea o functie lineara datorita proprietatilor aditive ale functiei XOR (OR

    exclusiv).

    La fel, se poate spune ca puterea acestui mod de operare este: O(ci) = O(En) deoarece

    puterea dominanta in aceasta functie este determinata strict de algoritmul de criptare. Astfel

    constatam ca puterea modului de operare CFB este identica modului de operare bloc-cu-bloc.

    Putem trage concluzia ca aceste moduri de operare, asa cum am mai mentionat, nu

    influenteaza complexitatea cifrului din punct de vedere strict algoritmic. Ele sunt mai degraba

    moduri de implementare specifice cu scopul de a formata textul.

    Desi aceasta concluzie reduce modurile de operare la niste simple optiuni de formatare,

    trebuie sa subliniam ca tocmai aceste metode de operare fac tratarea textului posibila. Ele sunt

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    35/99

    37

    foarte importante deoarece impun un standard puternic de formatare care poate sa elimine erori

    care apar adesea in timpul transmisiei.

    Categori a cifrur il or asimetri ce sau cifrurile cheie-publica reprezinta al doilea tip de

    categorie generala. Ele sunt cele mai recente metode de criptare. Spre deosebire de sistemele

    simetrice, cheia utilizata la criptare este diferita de cheia utilizata pentru decriptare. Fiecare parte

    (emitator si receptor) are astfel doua chei. Fiecare are o cheie secreta si una pe care o face

    publica. Daca A vrea sa trimita un mesaj lui B, atunci acesta cripteaza mesajul cu cheia publica a

    lui B. Fiindca B este singurul care are acces la cheia secreta, B este singurul care poate sa

    decifreze mesajul si sa-l citeasca.

    Probabil cel mai cunoscut cifru asimetric este PGP (Pretty Good Privacy). Acesta este o

    suita completa de criptografie pentru orice utilizator. Sistemul utilizeaza diferite algoritmeprintre care RSA, DES si El-Gamal, pentru a oferi posibilitate oricarui utilizator de a-si securiza

    comunicatiile sau de a genera semnaturi digitale si pentru a-si confirma identitatea.

    Cea mai mare problema a sistemelor asimetrice este performanta relativ slaba comparata

    cu cea a cifrurilor simetrice. De exemplu, o implmentare DES pe un calculator personal 586 ar

    putea sa ajunga la o rata de criptare de 15Mbit/s pe cand o implementare RSA pe acelasi

    calculator ar ajunge doar la 6 Kbit/s. DES este astfel in medie de o mie de ori mai rapid decat un

    sistem RSA. In schimb, sistemele cheie-publica ofera beneficii atunci cand este vorba de

    administrarea cheilor: daca fiecare utilizator isi genereaza propria cheie, numai un canal autentic

    este necesar, eliminand canalele secrete (curieri) care sunt adesea costisitoare si nesigure.

    Intr-un sistem fara un server central de incredere sau sigur, numarul de chei poate sa fie

    redus. Intr-adevar, sa presupunem ca avem o retea de n utilizatori care doresc sa comunice cu toti

    ceilalti.

    Fiindca fiecare comunicare cere o cheie secreta, numarul total de chei este de n(n-1)/2.

    In sistemul de cheie-publica fiecare utilizator are nevoie de numai o pereche de cheie personale

    si publice rezultand in numai 2n chei. Daca n este, sa zicem, 1000 atunci acest lucru ar insemna

    500000 comparat cu 2000 in cazul unuia simetric. In sisteme cu un server central asigurat care

    gestioneaza cheile, ambele implementari au nevoie de acelasi numar de chei.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    36/99

    38

    Astfel in practica intalnim des sisteme hibride in care se utilizeaza un sistem de cheie

    publica pentru distribuirea de chei secrete si un cifru simetric pentru criptarea datelor.

    Functii le de hash-ing sau functiile "one-way" (pe o directie) reprezinta a treia mare

    categorie de cifruri. O functie one-way este definita ca o functie f astfel incat pentru fiecare x in

    domeniul lui f, f(x) este usor de calculat; dar pentru aproape toate y in domeniu lui f, este

    computational imposibil sa gasim un x astfel incat y = f(x).

    O conditie suplimentara este ca este greu de a gasi o a doua pre-imagine: dat fiind x si

    valoarea corespunzatoare a lui f(x), ar trebuie sa fie greu de gasit un x' diferit de x care are aceasi

    imagine sub f.

    Functiile one-way sunt utilizate pentru a proteja parole: a stoca o imagine one-way a unei parole

    intr-un calculator decat parola insesi. Apoi aplicam aceasta functie one-way intrarii utilizatoruluisi verficiam daca este identica valorii stocate. Mai exact, verificam doar parolele deja trecute prin

    functia one-way.

    O functie de hash-ing este o functie care schimba o intrare de lungime variabila intrun

    numar fix de biti de iesire. Ca sa fie utila aplicatiilor criptografice, o functie de hash-ing trebuie

    sa satisfaca unele cerinte. Putem sa distingem intre doua tipuri de Hash-uri. Un MAC (Message

    Authentication Code) care utilizaeza o cheie secreta si un MDC (Manipulation Dectection Code)

    care functioneaza fara cheie. Pentru un MAC avem nevoie sa fie imposibil de a calcula MAC-ul

    fara cunostinta cheii secrete iar pentru un MDC este nevoie sa fie o functie one-way si, in multe

    cazuri, sa fie rezistenta la coliziuni, ceea ce inseamna ca ar trebuie sa fie greu sa se gaseasca

    doua argumente care se hash-eaza la aceasi rezultat.

    Functiile de hash-are pot fi utlizate pentru a proteja autenticitatea unei cantitati mari de

    date cu o cheie secreta scurta (MAC), sau de a proteja auntenticitatea unui sir scurt de date

    (MDC). Cateodata un MDC este utilizat in combinatie cu cifrarea, care rezulta in protectia

    confidentialitatii cat si autenticitatii.

    Exista cateva scheme care au fost propuse sa fie utilizate ca functii de hash-are. Cea mai

    utilizata schema pentru un MAC este chiar modul CBC al lui DES (cu transformari aditionale ale

    iesirii), asa cum este specificat in ISO-9797. Cateva MDC-uri au fost construite bazandu-se pe

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    37/99

    39

    DES. Altele sunt bazate pe SHA (Secure Hash Algorithm pentru FIPS 180), si RIPE-MD 160.

    Functiile de hash-ing ajung la rate foarte mari de procesare de date. Ele sunt considerate foarte

    eficiente din acest punct de vedere.

    Pentru a intelege mai bine cum sunt plasate aceste categorii si pentru a continua mai

    departe sumarizam plecand de la "arta de a scrie secrete" si alcatuim un tablou (Fig. 2) pe care il

    vom comenta.

    Fig. 3- Categoriile artei de a scrie secrete reprezentata printr-un arbore.

    Asa cum putem vedea (Fig.3), la sfarsitul arborelui avem trei mari forme de a scrie

    secreta: Steganografia, Coduri, Cifruri si Hash-uri. Acestea sunt formele finale la care recurge un

    program sau o persoana pentru a aplica o transformare sau transformarea inversa respectiva

    pentru a cripta si/sau decripta un text.

    Recunoastem aici Hash-urile pe care le-am discutat mai sus in acest capitol. Ele intra intr-

    o categorie aparte si se diferentiaza de toate celalalte categorii prin faptul ca aceasta metoda

    implica un calcul matematic asupra unui intreg text pentru a-l micsora iar mesajul rezultant nu

    contine informatii care reflecta mesajul original. De fapt, aceasta este o caracteristica importanta

    al hash-urilor. Ele nu contin deloc informatia completa a mesajului care a fost hash-at. Parte din

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    38/99

    40

    informatie este continuta intrun hash insa nu in totalitate. Cu alte cuvinte, asa cum am discutat,

    nu exista o metoda de a inversa un hash printr-o functie inversa. Din aceasta cauza, Hash-urile

    ocupa un loc aparte in criptografie si le categorizam ca fiind o categorie proprie.

    Steganografiaeste o alta categorie, care nu are nici o legatura cu toate celalalte si despre

    care nu am mai discutat. Comunicarea secreta realizata prin ascunderea unui mesaj este

    cunoscuta sub numele de steganografie. Cuvantul este compus din doua cuvinte grecesti:

    steganos, care inseamna ascuns si graphein, care inseamna a scrie. Cateva dintre cele mai vechi

    referiri la scrierile secrete provin de la Herodot, "parintele istoriei", potrivit filozofului si omului

    de stat roman, Cicero. In "Istorii", Herodot prezinta in ordine cronologica disputele dintre Grecia

    si Persia din secolul al V-lea i.Cr., pe care le-a vazut ca o infruntare intre libertate si sclavie, intrestatele independente ale Greciei si persii asupritori. Potrivit lui Herodot, arta de a ascunde secrete

    a fost cea care a permis grecillor sa nu fie cuceriti de Xerxes, Regele Regilor, conducatorul

    persilor. Dusmania indelungata dintre Grecia si Persia a ajuns intr-un punct critic atunci cand

    Xerxes a inceput sa construiasca Persepolis, noua capitala a regatului sau. In cinstea acestei

    capitale, Xerxes a primit daruri si tributuri din toate colturile imperiului si al statelor vecine cu

    exceptia Greciei si a Spartei. Acesta a hotarat sa pedepseasca indrazneala acestor doua state de a

    nu-si prezenta omagiile corespunzatoare si in 480 i.C.r. a adunat cea mai mare forta militara

    cunoscuta vreodata in istorie.

    Din nefericire pentru el, la pregatirile armatei, a fost prezent si Demaratos, un grec

    exilat care traia in orasul persan Susa. Acesta se simtea inca dator patriei sale natale Grecia si s-a

    hotarat sa trimita un mesaj de avertizare dezvaluind complotul lui Xerxes. Problema era, cum sa

    poata sa trimita mesajul fara ca acesta sa poata fi interceptat pe drum.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    39/99

    41

    Herodot scrie:

    "Dar cum n-avea nici un alt mijloc sa le aduca la cunostinta vestile din Persia - caci

    era primejdie mare sa fie prins - iata ce a pus la cale. El lua o tablita dubla, ii rase ceara si apoi

    scrijeli pe lemn hotararea regelui. Dupa ce facut toate acestea, intinse iarasi ceara peste cele

    scrise, asa ca purtatorul, ducand o tablita curata, sa n-aiba nici o neplacere din partea pazitorilor

    drumurilor. Cand tablita ajunse in Lacedemona, lacedemonienii nu stiau ce sa creada, pana cand,

    dupa cate am aflat si eu, fiica regelui a dat sfatul ca ceara sa fie topita. Urmandu-i povata,

    lacedemonienii au gasit instiintarea, au citit-o si apoi au trimis-o la toti ceilalti eleni." Deoarece

    avertizarea a fost primita la timp, grecii au luat masuri si au construit o flota de vreo 200 de nave

    urmand ca pe 23 Septembrie 480 i.C.r. sa fie luati persii prin surprindere si sa fie complet

    macelariti in golful Salamina de langa Atena.

    Aceasta nu a fost singura data cand s-a utilizat o forma rudimentara de steganografie.

    Herodot mai face referire la un caz in care Histaios a vrut sa-l convinga pe Aristagoras din Milet

    sa se revolte impotrvia regelui persan. Pentru a-i trimite instructiunile lui Aristagoras, Histaios a

    ras in cap un mesager si i-a scris mesajul pe scalp. Apoi a asteptat ca sa-i creasca parul acestuia

    si l-a trimis pe drum.

    Bineinteles ca nu a trezit nici-o suspriciune si ajungand la destinatie s-a ras din nou in

    cap si i-a aratat lui Aristagoras mesajul. Era evident o perioada in care lumea nu se prea grabea

    sa schimbe informatii rapid.

    Grecii nu sunt singurii care au apelat la metode de steganografie. Notabil mai este

    procedura aplicata in China veche onform careia se scria un mesaj pe o panza de matase fina care

    era apoi trecuta in ceara fierbinte si rulata intr-o bila. Mesagerul urma sa inghita aceasta bila

    pentru a o purta la destinatie.

    In secolul al XVI-lea, savantul italian Giovanni Porta a descris cum se poate ascunde un

    mesaj intr-un ou fiert tare, utilizand o cerneala din amestecul a treizeci de grame de alaun cu o

    jumatate de litru de otet, cu care se scrie apoi pe coaja. Oul absoarbe cerneala prin porii cojii si

    mesajul se imprima pe albus iar apoi pentru a citi mesajul se poate decoji oul si se citeste mesajul

    imprimat pe albus.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    40/99

    42

    Steganografia include de asemenea si practica scrierii utilizand cerneala invizibila. Acest

    lucru este mentionat de Pliniu cel Batran care specifica faptul ca seva unei anumite plante

    (thitymallus) poate fi utilizata ca o cerneala invizibila. In forma uscata, seva dispare insa

    incalzita putin, acesta se carbonizeaza repede si apare din nou. Multe lichide au aceasta

    proprietate deoarece ele contin foarte mult carbon si se carbonizeaza rapid atunci cand le este

    aplicata o sursa calda.

    O metoda foarte interesanta de steganografie este o metoda germana cunoscuta sub

    numele de micropunct. Agentii germani din America Latina ajungeau sa micsoreze o pagina A4

    de text intr-un punct mai mic de un milimetru diametru utilizand o tehnica simpla de lentile si

    timpi mari de expunere al unui film obisnuit. Din pacate pentru interceptori, tehnica era dubla,

    iar mesajul steganografiat era si criptat in prealabil. Aici ajung sa se uneasca steganografia sicriptografia.

    In graficul nostru (Fig. 2) am impartit criptografia simetrica in doua ramuri:

    transpozitiasi substitutia.

    Transpozitiase limiteaza sa rearanjeze pur si simplu literele dintr- un mesaj realizand un

    fel de anagrama. In cazul mesajelor foarte scurte aceasta metoda este destul de banala deoarece

    exista foarte putine posibilitati. General vorbind, se poate analiza un mesaj care utilizeaza doar

    transpozitia printr-o functie de permutare.

    Pe masura ce lungimea textului creste, posibilitatile de permutare cresc exponential.

    Bineinteles numarul de posibilitati de permutare este egal cu permutari de numarul de litere intr-

    un mesaj. Exista doua posbilitati de transpozitie. S-ar putea face o transpozitie aleatoare prin

    aranjarea aleatoare a literelor sau s-ar putea implementa un algoritm specific pentru rearanjarea

    lor. In primul caz, adica daca am rearanja aleator literele dintr-un mesaj, am obtine un cifru

    extrem de "solid" insa decodificarea lui ar fi foarte dificila.

    De aceea se opteaza adesea pentru o transpozitie controlata. Un exemplu este transpozitia

    in Zig Zag, care presupune rearanjarea intermitenta a literelor pe doua

    coloane si citirea lor secventiala pentru a obtine mesajul cifrat. Pentru a decifra, se aplica pur si

    simplu inversul procedurii.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    41/99

    43

    Observam insa ca acest cifru, pe care l-am numit ZIGZAG este vulnerabil total la un atac

    exhaustiv de cautare permutativa.

    Acest lucru arata cat de slab este cifrul ZIGZAG. Pe de alta parte, daca mesajul este destul de

    lung, este posibil ca spargerea sa nu poate fi obtinuta in timpi computationali rezonabili (aceste

    detalii vor fi discutate in capitolul de analiza criptografica) deoarece numarul de permutari este

    prea mare.

    O alta forma de transpozitie este scitalul Spartan provenind din secolul V i.C.r. Scitalul

    este un baston de lemn in jurul caruia se infasura o fasie de piele sau pergament.

    Expeditorul scrie apoi mesajul in lungul bastonul si desfasoara fasia. Pentru a decripta

    acest mesaj este nevoie de un scital de exact aceleasi dimensiuni ca acela utilizat la criptare. In

    anul 404, i.C.r., la Lysandros din Sparta s-a infatisat un mesager, plin de sange si cu vesmintelezdrentuite, unul dintre cei cinci supravietuitori ai teribilei calatorii din Persia. Mesagerul i-a

    inmanat cureaua lui Lysandros, care a infasurat-o in jurul scitalului sau ca sa afle ca Pharnabazos

    din Persia planuia sa-l atace. Multumita scitalului, Lysandros a fost pregatit si a respins atacul.

    Alternativa la transpunere este substitutia. Una dintre cele mai vechi descrieri ale

    criptarii prin substitutie apare in Kama-sutra, text scris in secolul al IV-lea d. Cr. de invatatul

    brahman Vatsyayana, bazat insa pe manuscrise datand din secolul al IV-lea i. Cr. Kama-sutra

    recomanda ca femeile sa studieze 64 de arte, precum gatitul, invesmantarea, masajul si

    prepararea parfumurilor. Lista cuprinde de asemeni si alte arte, mai putin obisnuite, cum ar fi

    invocarea spiritelor, sahul, legatul cartilor si tamplaria.

    La numarul 45 de pe lista se afla mlecchita-vikalpa, arta scrierii secrete, destinata sa le ajute pe

    femei sa-si ascunda legaturile amoroase. Una dintre tehnicile recomandate este gruparea literelor

    alfabetului in perechi alese la intamplare iar apoi substituirea fiecarei litere din mesajul original

    cu perechea ei.

    Acesta forma de scriere secreta se numeste cifru prin substitutie, fiindca fiecare literea

    din textul in clar este inlocuita cu alta litera, actionand astfel pe o cale complementara in raport

    cu transpozitia. In transpozitie, fiecare litera isi pastreaza identitatea, schimbandu-si insa pozitia,

    in timp ce in substitutie fiecare litera isi schimba identitatea insa isi pastreaza pozitia.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    42/99

    44

    3.2 Atbash-ul ebraic si criptografia romana

    Prima folosire a unui cifru prin substitutie in scopuri militare apare in Razboiul galic dus

    de Iulius Cezar. Cezar povesteste cum i-a trimes un mesaj lui Cicero, care era asediat si pe

    punctul de a capitula. Prin procedeul substitutiei, a inlocuit literele romane cu litere grecesti,

    facand mesajul neinteligibil pentru inamic. Cezar relateaza transmiterea in conditii dramatice a

    mesajului. In caz ca trimisul gal nu va putea patrunde pana la Cicero, il sfatuieste sa lege

    scrisoarea de cureaua sulitei sale si s-o arunce inauntrul fortificatiilor. In scrisoare il anunta pe

    Cicero ca a plecat cu legiunile si ca va sosi acolo in scurt timp; il indeamna sa-si pastreze curajul.

    Galul, temandu-se de primejdie, arunca sulita, asa cum fusese sfatuit.

    Din intamplare, sulita s-a infipt pe un turn si timp de doua zile a ramas neobservata. A

    treia zi, un soldat o vede, o smulge si o duce lui Cicero. Aceasta citeste mai intai el singur

    scrisoarea, apoi o reciteste in adunarea soldatilor, care sunt curpinsi de cea mai mare bucurie.

    Scrierea secreta a fost utilizata pe larg de catre fortele militare romane. Mesajele care erau

    transmise intre cele mai departate puncte ale imperiului roman erau mai intai cifrate si apoi

    purtate de catre un mesager. De notat ca mesajele cifrate nu aveau ca unic scop sa fie ascunse defortele inamice. Ele mai trebuiau sa fie ascunse de ochii mesagerului care, purtand mesajul la el,

    ar fi putut sa isi schimbe alianta si sa livreze mesajul unui alt destinatar.

    Un astfel de caz este mentionat in istorie, ani mai tarziu, in timpul vietii reginei Maria a Scotiei

    care fusese tradata de catre un mesager.

    Acesta, in loc sa livreze scrisorile intre rebeli si regina, a "interceptat" fiecare mesaj si l-a

    pus in mana celui mai mare spargator de cifruri al timpului. Cifrul nu reprezenta mai mult decat

    un simplu amestec de cod si substitutie, foarte vulnerabil chiar la vremea aceea, care a fost

    compromis de catre autoritati si a dovedit conspiratia impotriva reginei Eliabeta a Angliei. In era

    romana insa Cezar nu se temea de interceptari fiindca era singura natiune la vremea aceea care

    avea cunostinte amanuntite despre scrierea secreta.

    Se poate spune ca mai era si singura natiune dotata cu o gramatica si un limbaj dezvoltat

    capabil sa sustina bazele unei cifrari.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    43/99

    45

    Cezar a folosit scrierea secreta atat de des incat Valerius Probus a scris un tratat despre cifrurile

    sale, care din pacate nu s-a pastrat. Totusi in "Vietile celor doisprezece

    Cezari", de Suetonius, din secolul al II-lea d.Cr., avem o descriere amanuntita a unuia dintre

    tipurile de cifru prin substitutie folosite de Iulius Cezar. La baza cifrului statea o simpla

    substitutie in care fiecare litera din mesajul clar era incrementata cu trei in baza alfabetului.

    Pur si simplu fiecare litera a mesajului era inlocuita cu litera aflata trei pozitii mai departe

    in alfabet. Datorita metodei de cifrare, acest cifru mai este cunoscut si prin numele de cifru

    decalat. Desi Suetonius mentioneaza doar o decalare cu trei pozitii in cifrul Cezar, e limpede ca,

    folosind orice schimbare intre pozitiile 1 si 25, e posibila generarea a 25 de cifruri distincte.

    Atbash-ul este un cifru prin substitutie pentru alfabetul Ebraic. El consta in substituirea "aleph"

    (prima litera) cu "tav" (ultima), "beth" (a doua) cu shin (penultima) si asa mai departe reversandalfabetul. Cateva cuvinte in Cartea lui Jeremiah, carte care face parte din biblia Ebraica care a

    devenit mai tarziu o parte din Vechiul Testament, sunt criptate prin Atbash.

    Acest cifru a fost asociat cu metodologiile esoterice al misticismului evreu pentru

    interpretarea textelor religioase ebraice cum ar fi Kabbalah. Spre deosebire de cifrul lui Cezar,

    Atbash este complet transparent si mesajul cifrat este decifrat prin exact metoda de cifrare al

    algoritmului. Daca un text cifrat in Atbash ii este aplicat algoritmul de cifrare acesta rezulta intr-

    un mesaj clar. Aceasta particularitate nu este prezenta la Cezar. Pentru a decifra un text cezar

    trebuie mai intai sa inversam functia de criptare pentru a obtine functia de decriptare. Pentru un

    mesaj care a fost cifrat prin decalarea cu trei poztitii inainte, functia de decriptare este decalarea

    cu trei pozitii inapoi.

    Fiecare mesaj poate sa fie privit din perspectiva unei metode de cifrare, numita algoritm

    si a unei chei care precizeaza detaliile acestei metode de cifrare. In acest caz, algoritmul

    determina inlocuirea fiecarei litere din mesajul original cu alta litera din alfabetul cifrat iar cheia

    determina alfabetul cifrat. Asa cum am precizat mai devreme, cheia poate sa fie simetrica adica

    ea este folosita atat in criptare cat si in decriptare sau asimetrica atunci cand aceasta difera la

    criptare si decriptare.

  • 7/30/2019 Metode de criptografie publica si privata - lucrare de licenta

    44/99

    46

    Un analist care ar studia un mesaj interceptat ar putea determina care este algoritmul de

    cifrare, sau pur si simplu algoritmul de cifrare ar putea sa fie cunoscut, dar nu ar putea sa

    determine care alfabet cifrat, determinat de cheie, a fost utilizat.

    Secole mai tarziu in 1883 in cartea "Criptografia Militara" al unui lingvist danez August

    Kerckhoffs von Niewenhof se precizeaza ca: "Securitatea unui sistem criptografic nu trebuie sa

    se bazeze pe ascunderea cripto-algoritmului. Siguranta lui depinde doar de ascunderea cheii."

    In cazul decalarii Cezar, algoritmul permite 25 de chei, adica 25 de alfabete cifrate si

    25 de pozitii posibile de decalare. In cazul cifrului Atbash, algoritmul permite doar o singura

    cheie care este de fapt oglindirea literelor din alfabet. Algoritmul Cezar este foarte vulnerabil la

    un atac prin forta bruta deoarece orice mesaj cifrat prin acest algoritm nu poate avea decat 25 de

    chei posibile si pentru a-l sparge este suficient doar 25 de incercari. Algoritmul Atbash insa nu se

    bazeaza pe o cheie anume si daca este cunoscut faptul ca un text este cifrat in Atbash, o simplare-cifrare a mesajului cifrat va rezulta in texul clar.

    Atbash si alte asemenea cifruri biblice erau probabil destinate mai curand sa sporeasca

    misterul decat sa ascunda intelesuri, insa au fost de ajuns ca sa trezeasca interesul pentru

    criptografia adevarata. Calugarii europeni au inceput sa redescopere vechile cifruri prin

    substitutie, au inventat unele noi si, in scurt timp, au contribuit la reintroducerea criptografiei in

    civilizatia apuseana. Prima carte europeana despre folosirea criptografiei a fost scrisa in secolul

    al XIII-lea de calugarul franciscan englez Roger Bacon, Epistola despre operele secrete si

    desartaciunea magiei" curpindea sapte metode pentru a pastra mesajele secrete si avertiza: "E

    nebun cel ce scrie un mesaj in alt fel decat in acela care sa-l ascunda de plebe." Pentru Atbash,

    aceasta nu este ultima utilizare a sa.

    Secole mai tarziui cifrul Atbash inca isi spune cuvantul si este chiar folosit la descifrarea

    unor texte din documentele de la Marea Moarta care au fost recent descoperite la Qumran.

    Lucrand la textele de la Marea Moarta, Schonfield a utilizat cifrul ca sa traduca niste cuvinte care

    erau neidentificate de care cercetatori. De exemplu, aplicand Atbash cuvantului "hagu", a obtinut

    cuvantul Ebraic, "tsaraph", care inseamna, "test." Pasajele care contin "habu" sunt importante

    deoarece se referea la "Profesorul Dreptatii", care este crezut a fi o referinta la Isus. Mai tarziu,

    Schonfield a devenit foarte interesat de acuzatiile de erezie impotriva Cavalerilor Templieri si in

    particular etimologia cuvantului Baphomet. Era convins ca acest cuvant ascunde alt inteles si

  • 7/30/2019 Metode de criptografi