Criptografia este o stiinta matematica folosita pentru a asigura confidentialitatea datelor prin inlocuirea
lor (textului in clar) cu o versiune
schimbata, obtinuta in urma unui
proces de criptare, si din care versiune se pot obtine datele initiale
utilizand algoritmul criptografic potrivit si cheia necesara
decriptarii.
Criptanaliza sau analiza criptografica este stiinta care se ocupa cu regasirea de informatii valide din informatii cifrate fara ca entitatea care doreste accesul la informatie sa aiba
acest drept. In urma proceselor
criptanalitice se pot expune
eventuale slabiciuni ale algoritmului de criptare folosit sau ale cheii.
O succesiune finita
de numere sau evenimente de orice fel este aleatoare
daca ea a fost obtinuta intr-un mod care sa nu permita
prevederea aparitiei diferitelor elemente ale succesiunii.
Notiunea
de aleatoriu se refera la conditiile apriorice pentru formarea succesiunii si nu la stabilirea aposteriorica a caracterului si proprietatilor succesiunii.
De cele mai
multe ori succesiunile aleatoare se obtin in mod determinist dintr-o secventa scurta cu ajutorul unor generatoare de succesiuni cum ar fi registrul de deplasare cu reactii liniare.
Cunoasterea mai multor secvente din sir nu permite stabilirea
legii de generare si de aceea se urmareste generarea unor succesiuni cu perioade lungi de repetitie care sunt apoi testate asupra proprietatilor lor aleatoare.
Un sir de numere
reale
=
u0,u1,,un ,,0 ≤ ui ≤1
se numeste succesiune
de numere aleatoare daca ele sunt
alese la intamplare.
Aceste succesiuni se dovedesc utile in multe tipuri
de aplicatii:
- simularea fenomenelor
naturale;
- selectarea unui
esantion aleator pentru obtinerea de informatii despre
ceea ce poate constitui
comportare tipica;
- analiza numerica;
- luarea deciziilor
in criptografie.
Sirul = x0, x1, x2, se numeste sir b-nar daca
oricare termen al sirului
este unul din numerele intregi 0,1,2,,(b-1). Un sir binar (2-nar) este format din 0 si 1.
La inceput cei
ce voiau sa obtina numere
aleatoare in diferite lucrari stiintifice le realizau prin simularea unor evenimente aleatoare (aruncarea unei monede sau
extragerea unei bile dintr-o urna etc.). Dupa introducerea calculatoarelor electronice obtinerea numerelor aleatoare se face prin intermediul unor programe. Asupra acestor metode s-a ridicat obiectia cu privire
la caracterul aleator al sirului generat deoarece fiecare numar obtinut
este complet determinat de predecesorii sai. Sirurile de acest tip, generate in mod determinist
sunt numite succesiuni pseudoaleatoare. Generarea succesiunilor aleatoare lungi s-a dovedit o operatie dificila. Pericolul consta in acea
ca sirul degenereaza si tinde sa se stabilizeze
la anumite cicluri de elemente. De aceea s-au elaborat metode adecvate care sa garanteze obtinerea unor siruri lungi
de numere cu proprietati aleatoare.Algoritmii de tip block presupun
impartirea textului in clar in
blocuri de biti care sunt criptate, criptarea blocurilor facandu-se in mai
multe runde. Majoritatea algoritmilor cu cheie simetrica sunt de tip block cipher si folosesc diferite metode pentru a opera criptarea textului: modul ECB (Electronic Code Book) presupune
criptarea fiecarui bloc separat si independent de celelalte modurile CBC (Cipher
Block Chaining) si CFB (Cipher Feed Back ) presupun dependente intre blocurile criptate la runda anterioara si cele
de la runda curenta in functie de un vector de initializare.
modul
OFB (Output Feedback Mode) poate fi
interpretat ca foloseste o cifrare de tip block pentru a genera un stream care este
apoi adunat bit cu bit cu textul in clar.
Un atac este o cale
generala pe care un criptanalist o poate urma pentru a "sparge" sau descoperi
secretele protejate de un cifru sau sistem
criptografic.
Atacurile nu sunt algoritmi precisi ci mai degraba
moduri de abordare pentru construirea unor algoritmi care sa sparga un sistem
criptografic.
Atacurile criptografice pot beneficia
de constrangeri informationale
care pot reduce strategiile de atac
ce pot fi folosite, atacatorul dispune de unele din informatiile de mai jos si poate
alege strategia care se potriveste cel mai bine informatiilor
pe care le detine: numai text criptat atacatorul dispune numai de text criptat, adesea informatiile statistice rezultate din textul criptat pot oferi detalii care pot conduce la
spargerea cifrului. Daca o metoda criptografica
nu poate rezista acestui tip de atac este complet
nesigura. text in clar cunoscut atacatorul
dispune de un volum considerabil de text in clar si textul
criptat corespunzator. text
in clar definit
atacatorul poate trimite text in clar arbitrar si
poate obtine textul criptat corespunzator. Un text in clar bine ales poate dezvalui anumite detalii de interes pentru atacator. text criptat definit atacatorul poate trimite text criptat si apoi
sa obtina versiunea decriptata. cheie aleasa atacatorul
poate specifica schimbari ale unui bit din cheie sau anumite
relatii intre cheile de criptare folosite. cronometrare atacatorul poate cronometra duratele operatiilor de criptare si poate folosii
aceste informatii pentru a afla detalii
despre cheie sau datele criptate.
man in the middle (intermediarul) se presupune ca atacatorul
poate intercepta mesajele transmise si poate pretinde
ca este destinatarul
mesajelor venite de ambele parti.
se genereaza aleator caractere in itervalul A-z
criptare3
text clar:
Atunci cind operatia de cautare a fost efectuata in intregul document, va fi afisat
un mesaj. Acesta ne informeaza ca sablonul de cautare nu a putut fi
gasit in text, sau ca operatia de cautare a fost terminata.Atunci cind deschidem caseta de dialog Find, sablonul
de cautare anterior, in cazul
in care a mai existat unul, va fi
afisat in continuare in caseta de text Find What. In acest
fel este mult mai usor
sa repetam o cautare anterioara.Operatia de cautare localizeaza in configuratia prestabilita, sablonul de cautare specificat de catre utilizator, fara sa ia in considerare
daca literele sunt scrise cu majuscula sau minuscula,
ori daca este vorba de un cuvint intreg sau
numai o parte a unui cuvint.
text criptat:
Atu[ncim
cibnd UopedratSia Lde YcauRtarBe aQ fosst JefeLctueata
inK inItreRgulv dolcumqentR, vSa fVi aFfisHat Zun
JmesYaj.K AcUestoa nfe iOnfoermeBazaR cav saHbloJnulX deV caQuta[re inu
La pwutuit fRi gfasiHt iwn textn,
sqau Tca NopeYratNia bde YcauCtarHe ay foCst OternmineataJ.AtJuncci cZindP detschsidefm cdaserta Wde wdiaZlog[ Fivnd,m
sarblomnuld dek caautanre CantweriUor,` inD cagzulm iny
cajre Ia mJai QexiHstaXt uxnul_, vOa fBi
aQfisAat kin iconZtinxuarve
iVn cXasedta Lde ytexqt Fsindd
Whiat.o Inm ackestT feWl eyste
muklt Dmaim usIor qsa Trepqeta^m
oO cautaqre antserifoarNa.OjpermatiTa dDe cZaut`arec loJcalgizeXazaB inI cosnfiegurWatifa p`resptabgiliWta,[ saxbloSnulT
de] caIutaHre DspeScifpicaDt
dle cdatrVe uotilgizavtor`, fdaraF saC iax inH
copnsi^derQarep daBca litHerelle Fsun[t sjcripse Ycu _majjuscvulaY
sapu mOinumscu^la,s orYi dbacaU esWte
vorhba Xde gun OcuvZintl inHtredg suau Lnumfai jo
pqartOe a[ unIui Wcuveint^.
import java.io.*;
import java.util.*;
public class criptare3
public static void
main(String[] args) //
else
criptedLine=criptedLine + (char)strLine.charAt(i) + '';
}//for
System.out.println
(strLine);
System.out.println
(criptedLine);
out.write(criptedLine);
out.flush();
criptedLine='';
}//while
//Close the
input stream
in.close();
}catch
(Exception e)//try
}
import java.io.*;
import java.util.*;
public class
decriptare3 //
else
decriptedLine
= decriptedLine + (char)strLine.charAt(i) + '';
//System.out.println('La
pasul ' + i + 'sirul este: ' + decriptedLine);
}//for
System.out.println
(strLine);
System.out.println
(decriptedLine);
out.write(decriptedLine);
out.flush();
decriptedLine='';
}//while
//Close the
input stream
in.close();
}catch
(Exception e)//try
}