Lucrare Comunicarea Intre Doua Sisteme Haotice In Timp Discret

  • Nota 10.00
  • 0 comentarii
  • Publicat pe 07 August 2021

Descriere Lucrare

EXTRAS DIN DOCUMENT

        2. Analiza criptografica 
        2.1. Securitatea sistemelor criptografice
     Diferitii algoritmi au nivele de securitate diverse, mai usor sau mai dificil de spart. Daca costul necesar pentru spargerea unui astfel de algoritm depaseste valoarea informatiei cifrate, atunci este posibil ca acest algoritm sa fie sigur. Daca timpul necesar pentru spargerea unui algoritm este mai mare decat timpul in care informatia cifrata trebuie sa ramana secreta, atunci este posibil ca acest algoritm sa fie sigur. Cuvantul „probabil” este folosit in aceste explicatii pentru ca  oricand este posibil ca in criptanaliza sa se găsească noi „soluţii”.
Lars Knudsen  a clasat diferite modalităţi de a sparge un algoritm astfel : 
1. Spargerea completa. Un criptanalist gaseste cheia k astfel incat  .
2. Obtinerea  globala.  Un criptanalist gaseste textul in clar al unui mesaj cifrat, anterior interceptat.
3. Obtinerea de informatii. Un criptanalist obtine ceva informatii referitoare la textul in clar, sau referitoare la cheie.     Aceste informatii pot fi, fie cativa biti din cheie, parti din text sau combinatii ale acestora.
    Un algoritm este neconditionat sigur daca nu exista informatii suficiente pentru a determina textul in clar. Toate celelalte criptosisteme sunt vulnerabile unui atac la text cifrat simplu, pur si simplu prin incercarea tuturor cheilor posibile una cate una si  privind daca rezultatul are vreun sens. Acest atac se numeste atac exaustiv.
    Criptografia se ocupa in special de criptosistemele invulnerabile prin calcul. Un algoritm este considerat invulnerabil prin calcul daca nu poate fi spart folosind resursele disponibile actuale sau viitoare. Prin resurse disponibile  se poate vorbi de cantitatea de memorie necesara pentru a efectua atacul, timpul necesar pentru a desfasura atacul (numit si efort) sau cantitatea de informatii necesare la intrarea algoritmului.
    Dupa ce am clasificat putin securitatea in ceea ce priveste criptosistemele, sa aruncam o privire de ansamblu si asupra atacurilor care pot avea loc: 
    2.2. Atacurile criptografice
    Sunt patru tipuri generice de atacuri cript-analitice.  Insa trebuie tinuta seama ca fiecare dintre ele porneste de la ipoteza ca cript-analistul cunoaste algoritmul de cifrare.
    1. Atacul cu text cifrat. Cript-analistul  dispune de textele cifrate ale mai multor mesaje, toate fiind la randul lor cifrate cu acelasi algoritm. Munca pe care trebuie sa o depuna cript-analistul este de determina textul in clar a cat mai multor mesaje trimise sau si mai mult, de a gasi cheile care au fost folosite la cifrarea mesajului, ceea ce va permite descifrarea viitoarelor mesaje ce vor fi cifrate cu aceleasi chei. 
    2. Atacul cu text in clar cunoscut. Cript-analistul nu doar ca are acces la textele cifrate ale mai multor mesaje, ba mai mult, chiar si la textele in clar corespunzatoare acestor mesaje.Totul in scopul de a determina cheile utilizate pentru cifrarea acestor mesaje, sau determinarea unui algoritm care sa permita descifrarea oricarui alt nou mesaj cifrat cu aceste chei.
    3. Atacul cu text in clar ales. Cript-analistul nu doar ca are acces la textele cifrate si cele in clar,  ba in plus el isi poate alege textele in clar pe care sa le cifreze. Aceste atacuri sunt mai eficace decat anterioarele pentru ca cript-analistul isi poate alege pentru a cifra texte speciale care sa dea cat mai multe informatii despre cheie. Toate acestea in scopul de a determina cheile utilizate pentru cifrarea acestor mesaje, sau determinarea unui algoritm care sa permita descifrarea oricarui alt nou mesaj cifrat cu aceste chei.
    4. Atacul cu text in clar ales adaptiv. Acesta este un caz particular al atacului cu text in clar ales. Diferenta consta in faptul ca cript-analistul isi poate adapta alegerea textelor ce vor fi cifrate in functie de rezultatele celorlalte incercari. In cazul atacului cu text clar ales cript-analistul este „autorizat” in a alege doar un bloc mare de text in clar, pe cand atacul cu text in clar ales adaptiv permite alegerea unui bloc de pornire mai mic, si apoi poate alege altele in functie de rezultatele anterioare. 
        2.3. Metode de atac
        1. Atacul  statistic
    Acest atac consta in a recunoastere diferitele caracetere ale unui text, bazandu-se pe rezultatele unui analize statistice.     Acesta analiza depinde in mare masura de limba in care este scris textul. Daca de exemplu, textul in clar este scris in limbaj natural, inamicul poate exploata faptul ca frecventa de aparitie a literei ‘E ‘ este foarte ridicata, ca litera ‘Q’ este aproape tot timpul urmata de un ‘U’, etc. Daca este vorba codului ASCII inamicul se va putea ‘lega’ de faptul ca anumite combinatii nu apar niciodata (caracterele de control).      
         2. Atacul in frecventa 
    Inamicul face o Transformata Fourier  (TF) a semnalului cifrat, izoleaza banda de frecventa a semnalului util, inlatura celelalte frecvente ce constituie zgomotul si realizeaza o transformata Fourier Inversa. Aceasta metoda implica cunoastrea aproximativa a benzii de frecventa a semnalului cautat.
Idealul este de a nu exista alt atac mai bun decat cel numit exhaustiv sau sistematic care consta in a incerca diferite chei de descifrare una dupa cealalta pana la obtinerea celui cautate. Un astfel de atac are nevoie in medie de k/2 incercari, in care k este numarul de chei posibile. Vom alege deci k destul de mare, tinand cont de tehnologiile actuale. Tipic, un k=232 este putin fiabil, in timp ce k=264 pare suficient. ( sunt apoximativ 500.000 ani in 264microsecunde).
Pentru proiectul nostru  am decis sa folosim criptarea haotica ! Dar inainte de toate ce este haosul? 
II. Haosul
1. Ce este haosul ?
    O simpla analiza a cunostintelor noastre generale despre lume permite impartirea lucrurilor in doua mari clase: cea a ordinii si cea a dezordinii. Suntem tentati sa le asociem cu dihotomia: bine - rau, caci este de preferat sa fii inconjurat de lucruri sau evenimente ce se desfasoara in spatiu sau timp dupa reguli clare, cunoscute. Este o placere sa ajungi in statia de troleibuz la ora 9 si 39 de minute stiind ca exact la 9 si 40, vehicolul se opreste, deschide ca intotdeauna usa si, la fel de ordonat, lumea urca, fara socuri, fara dezordine. Dar mai este oare o placere sa constati aceeasi ordine, aceeasi stereotipie bine stapanita, intr-un spatiu destinat creatiei artistice? Sa patrundem la ora 9 si 39 in holul apartamentului unui mare pictor sa zicem, stiind ca la ora 9:40 fix el ne va inmana capodopera tocmai terminata, corespunzator contractului de a genera la termene bine determinate numai valori "universale"?!  
     Nu, sigur nu mai este acelasi lucru. Am putea conchide ca, acolo unde lucrurile sunt clare, iar scopul sistemului este doar de a reproduce un flux tehnologic, de a reproduce o actiune ce implica sincronizari de persoane, ordinea este absolut necesara. Intr-un asemenea sistem, predictibilitatea oricarei actiuni este asigurata de chiar structura si functionarea sistemului. Este imperiul ordinii, al "staticului", in care nimic nu poate sa surprinda, in care o variatie este sinonima accidentului.   
    La polul opus, starea de dezordine pare sa fie, pana la interventia unor factori coercitivi, structuranti, starea normala a unui sistem. Interactiunea dintre numeroase celule ce alcatuiesc un sistem complicat (suma moleculelor ce formeaza un gaz, suma indivizilor ce formeaza un grup, o societate) conduce la o variabilitate normala a parametrilor masurabili. In consecinta, nu este posibila predictia decat in limite statistice, ce nu ne prea ajuta intr-o situatie data. Starea de frustrare este clara daca autobuzul nu vine atunci cand am nevoie de el, chiar daca in rest si in medie el este "de gasit pe traseu"?! Spunem imediat ca in acel sistem este dezordine, la limita chiar anarhie. Intr-o asemenea situatie, sincronizarile dintre persoane sau dintre dorinte individuale sunt doar accidentale. Intr-o societate in care fiecare subsistem se manifesta liber, in sensul de neingradit, dupa bunul plac, se mai spune ca domneste haosul.   
    Termenul de « haos » a fost intordus in literatura de specialitate de catre TIEN-Yien Li si James A. Yorke in 1975 in lucrarea intitulata "Period Three Implies Chaos". « Haosul » a fost definit ca si comportamentul imprevizibil al sistemelor deterministe. Astfel, el poate fi definit prin confuzie sau o dezordine grava. 
     Deci, ideea unei teorii despre haos sau a unei metodologii privind controlul haosului, este pentru un neavizat o aberatie, ea fiind asociata fie conceptului de dezordine, fie unor termeni ce amintesc de procesul genezei din teologie. Din pacate, aceasta confuzie referitoare la termenul de haos a fost generata de o alegere nefericita, poate gazetareasca, a unei etichete pentru un domeniu de studiu fascinant, descoperit in acest final zbuciumat de mileniu. Pentru unii a insemnat chiar motivul abordarii, caci credeau ca vor obtine informatii transcendente, dar au dat de o matematica "arida", de experimente cu ecuatii diferentiale si au abandonat. Nu au mai ajuns sa afle despre extraordinarele aplicatii practice ale acestui minunat capitol al cunoasterii stiintifice: stabilizarea sistemelor neliniare, comunicarea prin haos, haoticitatea inimii si starea de sanatate, structura haotica a unui semnal encefalografic si restabilirea haoticitatii normale a activitatii neuronale in tratamentele de epilepsie, si cate si mai cate.   
    Pentru altii, si aici este mai grav, caci printre ei sunt si matematicieni sau fizicieni, termenul a actionat ca un filtru ce a determinat anularea oricarei sanse de contact cu studii privind comportarile haotice din natura, caci a fost asociat cu filozofia sau teologia, domenii ce nu "fac bine" in societatea moderna.   
     Am vazut in general ca cel mai usor este sa se asocieze cuvantului haos cel de dezordine sau confuzie. Incercam sa accentuam intrebarea: a cui este confuzia? Este ea principiala, a sistemului ce nu s-a organizat inca, sau este o proprietate a mintii celui ce nu percepe ordinea existenta in suma de variabile ce il inconjoara? Este o proprietate a lucrului observat sau a observatorului? 
    Se cunoaste in matematica sau in fizica existenta unor sisteme ce manifesta sensibilitate la conditii initiale. Altfel spus, o eroare (epsilon =0.000...1), conduce, mai repede sau mai tarziu, la stari finale diferite. Din acest motiv, predictia in aceste sisteme este dificila in principiu. Nu putem controla starea initiala si astfel, sistemul evolueaza pe cai diferite. Oricat de mica ar fi diferenta aleasa, mai repede sau mai tarziu, cele doua grafice nu mai au nimic in comun. O mica eroare ne poate duce in alta parte!   
    Din punct de vedere tehnic, termenul de „haos” defineste o stare particulara a unui sistem caracterizat prin urmatoarele:
- nu se repeta niciodata (pare neregulat),
- exista o dependenta a sensibilitatii in raport cu conditiile initiale: diferente extrem de mici ale valorilor diferitilor parametrii pot duce la rezultate divergente,
- dar este mai putin ordonat si poate fi caracterizat de un determinism imprevizibil. Determinismul imprevizibil inseamna ca pana si un model perfect de sistem haotic (ecuatii de miscare identice si aceleasi conditii initiale ) poate duce la rezulate imprevizibile.
    Sistemele in stare haotica sunt deci ordonate, deterministe si imprevizibile. Descoperirea acestor sisteme haotice necesita notiuni aparent paradoxale de haos si determinism. Este foarte adevarat ca sisteme „foarte simple” respecta reguli perfect deterministe si totusi comportamentul lor este total imprevizibil. Acesta imprevizibilitate nu este fructul hazardului ci de sensibiliatea la conditiile initiale. Determinist pentru ca efectele pot fi masurate si localizate cu precizie determinand continuarea evenimentelor. Haos pentru ca nu stim tot din ceea ce se va intampla, in ciuda faptului ca cunoastem toate datele care determina evenimentele.
     Acum ca definit cat de cat haosul, o sa vedem doua modalitati de a ulitiza haosul cu scopul de a cifra informatii.
2. Metode de cifrare
        2.1. Metoda prin aditie
    Aceasta tehnica utilizata de catre profesorul Sira Ramirez in articolul sau de cercetare, este utilizata in criptografia bazata pe semnalele haotice de la inceputul anilor 90. Care este principiul de functionare al metodei? Acesta consta in a crea separat sistemul haotic si informatia si apoi in a aditiona cele doua semnale. La randul sau interlocutorul are cheile sistemului ( in cazul nostru conditiile initiale si ecuatiile sistemului – pe care i le-am trimis in prealabil ) cu care isi poate crea la randul sau un sistem haotic ca cel de la emisie. Cand receptioneaza mesajul aditionat al sistemului haotic, nu are nimic altceva de facut de a recuperea mesajul extragand « masca ». 

CUPRINS

MEMORIU TEHNIC 7
I. Criptologia 7
1. Criptografia 7
2. Analiza criptografica 8
2.1. Securitatea sistemelor criptografice 8
2.2. Atacurile criptografice 9
2.3. Metode de atac 9
II. Haosul 10
1. Ce este haosul ? 10
2. Metode de cifrare 12
2.1. Metoda prin aditie 12
2.2. Metoda prin incluziune 13
III. Protocoale 14
1. Introducere in protocoale 14
2. Scopul protocoalelor 15
3. Tipuri de protocoale 15
3.1. Protocoale cu arbitru 15
3.2. Protocoale cu judecator-arbitru 16
3.3. Protocoale cu disciplina intrinseca 17
4. Atacuri la protocoale 18
5. Comunicarea cu ajutorul unui criptosistem cu cheie secreta 19
6. Comunicarea cu ajutorul sistemelor criptografice cu cheie publica 20
7. Sisteme criptografice hibride 22
8. Problemele 22
9. Solutii 23
9.1. Autentificarea 23
9.2. Semnaturi digitale 23
9.3. Datarea 24
IV. Alegerea mediului de implementare : Microsoft® Visual C++® 25
1. Prezentare 25
2. “Vrajitorii” mediului Developer Studio : 25
3. Proiectare orientata pe obiect si functii virtuale 27
4. Clase de baza MFC 28
5. Utilizarea limbajului C++ pentru programarea in Windows 28
5.1. Meniuri 30
5.2. Casete de dialog 31
6. Arhitectura Document/View 33
MEMORIU DE PROIECTARE 34
1. Ce s-a dorit de a se obţine de la acest proiect? 34
2. Programarea folosind multithreading 34
2.1. Procese si fire de executie 34
2.3. Multithreading MFC 37
3. Aplicatia Client 39
4. Criptarea 44
5. Aplicatia server 46
6. Descifrarea 47
7. Protocolul de autentificare 50
REZULTATE EXPERIMENTALE 52
CONCLUZII 60
BIBLIOGRAFIE 61
ANEXE
Descarca lucrare