Noțiuni de bază ale criptografiei
Criptografia este studiul metodelor matematice legate de securitatea informației, capabile să asigure confidențialitatea, autentificarea și non-repudierea mesajelor, precum și integritatea datelor vehiculate Expeditor Destinatar Criptanalist
Definiție. Un sistem de criptare este o structură (P, C, K,E,D), unde: P= {w w V } este mulțimea textelor clare, scrise peste un alfabet nevid V (uzual V = {0, }). C= {w w W} este mulțimea textelor criptate, scrise peste un alfabet nevid W (uzual W = V ). K este o mulțime de elemente numite chei. Fiecare cheie K K determină o metodă de criptare ek E și o metodă de decriptare d k D. e k : P->C și d k : C->P sunt funcții cu proprietatea dk ( ek ( w)) = w, w P În general C= { α a P, k K, α= (a)}. e k
Moduri de criptare Flux Blocuri Iulius Cezar Criptosisteme afine Digrafi M atrici Vigenère Criptosistem P = mul timea mesajelor ˆın clar + E C = mul timea mesajelor criptate K = mul timea cheilor C = mul timea mesajelor criptate + K = mul timea cheilor D P = mul timea mesajelor ˆın clar
Clasificarea sistemelor criptografice după 3 criterii:.tipul operaţiilor utilizate pentru a transforma textul clar în text cifrat. Algoritmii de criptare sunt bazaţi pe două transformări generale: substituţia şi transpoziţia.. Numărul de chei utilizate. Dacă atât emiţătorul cât şi receptorul utilizează o aceeaşi cheie secretă, sistemul se numeşte simetric sau cu o singură cheie. Dacă emiţătorul şi receptorul utilizează chei diferite, sistemul se numeşte asimetric sau cu chei publice. 3. Modul în care textul clar este procesat. Se procesează un bloc de elemente de fiecare dată rezultând un bloc cifrat pentru fiecare bloc de intrare. Aceste sisteme se numesc cifruri bloc. Un cifru stream procesează câte un element de intrare continuu, producând la ieşire câte un element o dată.
Un algoritm de criptare - algoritm cu securitate computaţională.. Costul spargerii textului cifrat este mult mai mare decât valoarea informaţiei criptate. Timpul necesar pentru spargerea textului cifrat depăşeşte timpul de viaţă al informaţiei.
Clasificarea metodelor simetrice. Cifruri substituţie;. Cifruri transpoziţie; 3. Cifruri combinate.
CIFRURI DE SUBSTITUŢIE Cifruri de substituţie monoalfabetică (monoalphabetic ciphers) Cifruri de substituţie omofonica (homophonic substitution ciphers) Cifrul de substituţie poligramică (polygram substitution ciphers) Cifruri de substituţie polialfabetice
. Cifruri de substituţie monoalfabetică (monoalphabetic ciphers) Codul Cezar Text simplu: discul este plin Text criptat: GLVFXO HVWH SOLQ C = E(p) = (p+3) mod(6) C = E(p) = (p+k) mod(6), unde k=,5 p = D(C) = (C-k) mod(6) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Sistemul Cezar cu cheie Ex. cheie MARTOR Textul: STUDENT -> QSUTOJS Textul: ARGINT -> MPCEJS A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M A R T O B C D E F G H I J K L N P Q S U V W X Y Z
Cifrarea afină-generalizare a sistemului Cezar Un sistem criptografic afin cu n=6 ( definit ca fiind P=C= Z 6 si K={(a,b) Pentru k=(a,b) e k Z 6 Z 6 (x)=ax+b (mod 6) si functia de decriptare d k : cmmdc(a,6)=} ) este definim functia de criptare (y)= a y+ a (6-b) mod 6, unde x,y Obs. Condiția cmmdc(a,6)= asigură existența lui Z 6 a în Z6 Z 6
0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 5 8 4 7 0 3 0 3 6 9 5 8 4 4 7 0 3 6 9 5 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z F I L O R U X A D G J M P S V Y B E H K N Q T W Z C ( ) x e k ( ) x e k
Criptare/decriptare afină Criptare(Mn,k,l_alfabet). Start. if(cmmdc(a,l_alfabet)>) stop 3. i=0 4. while(i<n) Ci=a*Mi+b i++ 5. Return Cn Decriptare(Cn,k,l_alfabet). Start. A=/a 3. B=- b/a 4. K=(A,B) 5. Criptare(Cn,k,l_alfabet) Obs. Orice cheie K K este determinată complet de valorile întregi (a, b) cu (a, 6) =. Pentru a avem valori, pentru b sunt 6; exclus a=, b=0. => x6- =3 chei
Cifrul lui Polybius 3 4 5 A B C D E F G H I/J K 3 L M N O P 4 Q R S T U 5 V W X Y Z Pătratul lui Polybius Mesajul: AM CASTIGAT LUPTA se transformă după cifrare în: 3 334444344 3545344 Observaţie: Codul poate fi schimbat prin rearanjarea literelor în pătratul 5x5.
Sistemul cavalerilor de Malta Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizarea unei cruci. Liniile care încadrează fiecare caracter (inclusiv spațiul), împreună cu punctele (două, unul sau zero) indică substituția caracterului respectiv.
Concluzie: Cifrurile de substituţie monoalfabetică pot fi sparte cu uşurinţă deoarece frecvenţele literelor alfabetului nu se schimbă în textul cifrat faţă de textul în clar.
. Cifruri de substituţie omofonica (homophonic substitution ciphers) Cifruri de substituţie în care un caracter al alfabetului mesajului în clar (alfabet primar) poate să aibă mai multe reprezentări. Ideea utilizată în aceste cifruri este uniformizarea frecvenţelor de apariţie a caracterelor textului cifrat (alfabet secundar), pentru a îngreuna atacurile criptanalitice. Astfel, litera A cu cea mai mare frecvenţă de apariţie în alfabetul primar poate fi înlocuită cu F, * sau K. Concluzii: deși mai greu de spart decât cifrurile de substituţie monoalfabetice, ele nu maschează total proprietăţile statistice ale mesajului în clar. În cazul unui atac cu text în clar cunoscut, cifrul se sparge extrem de uşor. atacul cu text cifrat este mai dificil, dar unui calculator îi va lua doar câteva secunde pentru a-l sparge.
Pentru limba română, un tabel al literelor cele mai frecvent întâlnite este: Litera A I E R T N U S C L O D M P F V Frecventa 3.04%.89%.75% 7.39% 6.6% 6.44% 6.44% 5.50% 5.47% 4.58% 3.85% 3.68% 3.33%.9%.50%.6% restul caracterelor au în mod normal o frecvență de apariție sub % Exemplu.doc
3. Cifrul de substituţie poligramică (polygram substitution ciphers) Cifrurile bazate pe substituţia poligramică realizează substituirea unor blocuri de caractere (poligrame) din textul clar, distrugând astfel semnificaţia, atât de utilă în criptanaliză, a frecvenţelor diferitelor caractere. Ex. ABA RTQ SLL ABB Considerăm un mesaj M=m m m d m d+ şi un cifru care prelucrează poligrame de lungime d. Criptograma rezultată este C=c c c d c d+ c d+d. Fiecare poligramă m id+ m id+ m id+d va fi prelucrată în poligrama c id+ c id+ c id+d prin funcţia de substituţie f i astfel : C id+j =f j (m id+, m id+,, m id+d ).
Codul Playfair criptarea cu litere multiple foloseşte secvenţe de două litere adiacente din mesajul original tratate ca o singură unitate, transformându-le în text criptat format tot din două litere adiacente numărul de chei este 6x6=676 efectuarea unei analize bazate pe frecvenţa literelor devine mult mai dificilă
Dacă în urma împărţirii mesajului iniţial în grupuri de câte două litere rezultă grupuri ce conţin o literă dublată, atunci se va introduce un caracter considerat neutru pentru a remedia această situaţie. Exemplu, dacă mesajul iniţial este balloon, el va fi împărţit astfel: ba lx lo on. La fel se va proceda în cazul mesajelor cu număr impar de litere (se va completa la sfârşit cu un caracter neutru). Dacă ambele litere ale grupului de două litere din mesajul iniţial apar în aceiaşi linie a matricei atunci fiecare literă va fi înlocuită cu litera ce apare în matrice imediat în dreapta ei (se va considera că dacă litera apare pe ultima poziţie în cadrul liniei ea va fi înlocuită cu litera de pe prima poziţie, ca şi când linia ar fi circulară). Exemplu, cuplul ba ar deveni de. Dacă ambele litere ale grupului de două litere din mesajul iniţial apar în aceiaşi coloană a matricei atunci fiecare literă va fi înlocuită cu litera ce apare în matrice imediat sub ea (se va considera că dacă litera apare pe ultima poziţie în cadrul coloanei ea va fi înlocuită cu litera de pe prima poziţie, ca şi când coloana ar fi circulară). În toate celelalte cazuri, fiecare literă din mesajul original va fi înlocuită cu litera ce este poziţionată pe aceeaşi linie şi în coloana dată de cealaltă literă din cuplu. De ex., cuplul lo ar deveni hs. balloon -> dekyhsqo C R I/J P T A E B D F G H K L M N O Q S U V W X Y Z