Outline Planul cursului Ce este criptografia? Terminologie Repere istorice Complexitate. Criptografie. Curs 1. Anul II.

Σχετικά έγγραφα
riptografie şi Securitate

Criptosisteme cu cheie publică III

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 1 Şiruri de numere reale

riptografie şi Securitate

Metode iterative pentru probleme neliniare - contractii

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Tehnici criptografice

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Examen AG. Student:... Grupa:... ianuarie 2011

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

Integrala nedefinită (primitive)

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Sisteme diferenţiale liniare de ordinul 1

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Examen AG. Student:... Grupa: ianuarie 2016

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 4 Serii de numere reale

Metode de interpolare bazate pe diferenţe divizate

Asupra unei inegalităţi date la barajul OBMJ 2006

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

5.4. MULTIPLEXOARE A 0 A 1 A 2

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Noţiuni de bază ale criptografiei


T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Seminar 5 Analiza stabilității sistemelor liniare

Curs 2 Şiruri de numere reale

Subiecte Clasa a VII-a

Esalonul Redus pe Linii (ERL). Subspatii.

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

MARCAREA REZISTOARELOR

Acesta este capitolul 6 Metode şi protocoale criptografice al ediţiei

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Geometrie computationala 2. Preliminarii geometrice

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Subiecte Clasa a VIII-a

a. 11 % b. 12 % c. 13 % d. 14 %

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

1.3 Baza a unui spaţiu vectorial. Dimensiune

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

Laborator 11. Mulţimi Julia. Temă

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Prelegerea 10. Sistemul de criptare RSA Descrierea sistemului RSA

CRIPTARE 1. INTRODUCERE

Probleme pentru clasa a XI-a

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

III. Reprezentarea informaţiei în sistemele de calcul

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Laborator 6. Integrarea ecuaţiilor diferenţiale

I. Noţiuni introductive

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Prelegerea 11. Securitatea sistemului RSA Informaţii despre p şi q

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Definiţia 1.1 Fiind date mulţimile A (alfabetul sursă) şi B (alfabetul cod), o codificare

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

CONCURSUL INTERJUDEȚEAN DE MATEMATICĂ TRAIAN LALESCU, 1998 Clasa a V-a

Principiul Inductiei Matematice.

Noţiuni introductive

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Să se arate că n este număr par. Dan Nedeianu

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

z a + c 0 + c 1 (z a)

Curs 2 DIODE. CIRCUITE DR

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

Curs 7. Definiţia II Un grup G este o mulţime, împreună cu o operaţie binară

Proiectarea filtrelor prin metoda pierderilor de inserţie

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

Asemănarea triunghiurilor O selecție de probleme de geometrie elementară pentru gimnaziu Constantin Chirila Colegiul Naţional Garabet Ibrãileanu,

Asist. Dr. Oana Captarencu. otto/pn.html.

prin egalizarea histogramei

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

2 Transformări liniare între spaţii finit dimensionale

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].


Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Curs 4. RPA (2017) Curs 4 1 / 45

Criterii de comutativitate a grupurilor

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

TEMA 9: FUNCȚII DE MAI MULTE VARIABILE. Obiective:

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Spaţii vectoriale. Definiţia 1.1. Fie (K, +, ) un corp şi (V, +) un grup abelian.

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Ecuatii trigonometrice

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

O generalizare a unei probleme de algebră dată la Olimpiada de Matematică, faza judeţeană, 2013

Transcript:

Criptografie Curs 1 Anul II Februarie 2017

1 Planul cursului 2 Ce este criptografia? 3 Terminologie 4 Repere istorice 5 Elemente de complexitate a algoritmilor

Planul cursului 1 Noţiuni şi rezultate de aritmetică, algoritmi: baze de numeraţie, congruenţe, divizibilitate, algoritmul lui Euclid, estimări ale timpului de calcul; teste de primalitate; algoritmi de factorizare 2 Criptosisteme cu cheie privată: criptosistemul lui Iulius Cezar, criptosisteme afine, matrici de cifrare, criptosistemul Vigenère; DES; Rijndael 3 Criptosisteme cu cheie publică: noţiunea de cheie publică, semnătură, funcţii trapă; logaritmul discret; criptosisteme : RSA, Diffie-Hellman, ElGamal, Massey-Omura, Merkle-Hellman 4 Protocoale criptografice: schimburi de chei, autentificare, secret sharing, secret splitting, semnătura în grup, poker mental,...; funcţii hash 5 Curbe eliptice: Criptosisteme pe curbe eliptice.

Planul cursului 1 Noţiuni şi rezultate de aritmetică, algoritmi: baze de numeraţie, congruenţe, divizibilitate, algoritmul lui Euclid, estimări ale timpului de calcul; teste de primalitate; algoritmi de factorizare 2 Criptosisteme cu cheie privată: criptosistemul lui Iulius Cezar, criptosisteme afine, matrici de cifrare, criptosistemul Vigenère; DES; Rijndael 3 Criptosisteme cu cheie publică: noţiunea de cheie publică, semnătură, funcţii trapă; logaritmul discret; criptosisteme : RSA, Diffie-Hellman, ElGamal, Massey-Omura, Merkle-Hellman 4 Protocoale criptografice: schimburi de chei, autentificare, secret sharing, secret splitting, semnătura în grup, poker mental,...; funcţii hash 5 Curbe eliptice: Criptosisteme pe curbe eliptice.

Planul cursului 1 Noţiuni şi rezultate de aritmetică, algoritmi: baze de numeraţie, congruenţe, divizibilitate, algoritmul lui Euclid, estimări ale timpului de calcul; teste de primalitate; algoritmi de factorizare 2 Criptosisteme cu cheie privată: criptosistemul lui Iulius Cezar, criptosisteme afine, matrici de cifrare, criptosistemul Vigenère; DES; Rijndael 3 Criptosisteme cu cheie publică: noţiunea de cheie publică, semnătură, funcţii trapă; logaritmul discret; criptosisteme : RSA, Diffie-Hellman, ElGamal, Massey-Omura, Merkle-Hellman 4 Protocoale criptografice: schimburi de chei, autentificare, secret sharing, secret splitting, semnătura în grup, poker mental,...; funcţii hash 5 Curbe eliptice: Criptosisteme pe curbe eliptice.

Planul cursului 1 Noţiuni şi rezultate de aritmetică, algoritmi: baze de numeraţie, congruenţe, divizibilitate, algoritmul lui Euclid, estimări ale timpului de calcul; teste de primalitate; algoritmi de factorizare 2 Criptosisteme cu cheie privată: criptosistemul lui Iulius Cezar, criptosisteme afine, matrici de cifrare, criptosistemul Vigenère; DES; Rijndael 3 Criptosisteme cu cheie publică: noţiunea de cheie publică, semnătură, funcţii trapă; logaritmul discret; criptosisteme : RSA, Diffie-Hellman, ElGamal, Massey-Omura, Merkle-Hellman 4 Protocoale criptografice: schimburi de chei, autentificare, secret sharing, secret splitting, semnătura în grup, poker mental,...; funcţii hash 5 Curbe eliptice: Criptosisteme pe curbe eliptice.

Planul cursului 1 Noţiuni şi rezultate de aritmetică, algoritmi: baze de numeraţie, congruenţe, divizibilitate, algoritmul lui Euclid, estimări ale timpului de calcul; teste de primalitate; algoritmi de factorizare 2 Criptosisteme cu cheie privată: criptosistemul lui Iulius Cezar, criptosisteme afine, matrici de cifrare, criptosistemul Vigenère; DES; Rijndael 3 Criptosisteme cu cheie publică: noţiunea de cheie publică, semnătură, funcţii trapă; logaritmul discret; criptosisteme : RSA, Diffie-Hellman, ElGamal, Massey-Omura, Merkle-Hellman 4 Protocoale criptografice: schimburi de chei, autentificare, secret sharing, secret splitting, semnătura în grup, poker mental,...; funcţii hash 5 Curbe eliptice: Criptosisteme pe curbe eliptice.

Obiective 1 Recapitularea unor noţiuni fundamentale de aritmetică 2 Insuşirea de ctre studenţi a noţiunilor, conceptelor i exemplelor fundamentale din criptografie şi securitatea datelor 3 Familiarizarea studenţilor cu tehnici de bază din criptografie şi criptanaliză 4 Construcţia şi analiza unor algoritmi criptografici de bază Participanţii la curs vor fi capabili să: Explice funcţionarea principalilor algoritmi criptografici Utilizeze noţiuni şi rezultate de bază din aritmetică Analizeze metode de securizare a informaţiei Calculeze cheile, mesajele în clar şi mesajele criptate în cadrul principalelor criptosisteme studiate Compare principalele metode de criptare sau de semnătură digitală

Obiective 1 Recapitularea unor noţiuni fundamentale de aritmetică 2 Insuşirea de ctre studenţi a noţiunilor, conceptelor i exemplelor fundamentale din criptografie şi securitatea datelor 3 Familiarizarea studenţilor cu tehnici de bază din criptografie şi criptanaliză 4 Construcţia şi analiza unor algoritmi criptografici de bază Participanţii la curs vor fi capabili să: Explice funcţionarea principalilor algoritmi criptografici Utilizeze noţiuni şi rezultate de bază din aritmetică Analizeze metode de securizare a informaţiei Calculeze cheile, mesajele în clar şi mesajele criptate în cadrul principalelor criptosisteme studiate Compare principalele metode de criptare sau de semnătură digitală

Bibliografie 1 www.math.uaic.ro/ criptografie 2 www.math.uaic.ro/ aritmetica 3 Menezes A., van Oorschot P., Vanstone, S.: Handbook of applied cryptography, http://www.cacr.math.uwaterloo.ca/hac/ 4 Leoreanu V., Tamaş V., Tofan I.: Curs de aritmetică, Edit. Univ. Al. I. Cuza, 2001 5 Buchmann J.: Introduction to Cryptography, Springer, 2004 6 Koblitz N.: A Course in Number Theory and Cryptography, Springer, 1994 7 Languasco A.; Zaccagnini A.: Introduzione alla Crittografia, Hoepli, Milano, 2004

Criptografie Motive pentru a codifica informaţia: pentru a o face inaccesibilă persoanelor / entităţilor neautorizate criptografie pentru a detecta şi eventual corecta erorile produse in timpul transmiterii teoria codurilor pentru a o comprima in vederea reducerii spaţiului necesar stocării CRIPTOGRAFIE: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. TEORIA CODURILOR: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât erorile apărute in cursul transmiterii acesteia să poată fi corectate, iar informaţia iniţială să fie recuperată.

Criptografie Motive pentru a codifica informaţia: pentru a o face inaccesibilă persoanelor / entităţilor neautorizate criptografie pentru a detecta şi eventual corecta erorile produse in timpul transmiterii teoria codurilor pentru a o comprima in vederea reducerii spaţiului necesar stocării CRIPTOGRAFIE: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. TEORIA CODURILOR: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât erorile apărute in cursul transmiterii acesteia să poată fi corectate, iar informaţia iniţială să fie recuperată.

Criptografie Motive pentru a codifica informaţia: pentru a o face inaccesibilă persoanelor / entităţilor neautorizate criptografie pentru a detecta şi eventual corecta erorile produse in timpul transmiterii teoria codurilor pentru a o comprima in vederea reducerii spaţiului necesar stocării CRIPTOGRAFIE: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. TEORIA CODURILOR: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât erorile apărute in cursul transmiterii acesteia să poată fi corectate, iar informaţia iniţială să fie recuperată.

Criptografie Motive pentru a codifica informaţia: pentru a o face inaccesibilă persoanelor / entităţilor neautorizate criptografie pentru a detecta şi eventual corecta erorile produse in timpul transmiterii teoria codurilor pentru a o comprima in vederea reducerii spaţiului necesar stocării CRIPTOGRAFIE: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. TEORIA CODURILOR: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât erorile apărute in cursul transmiterii acesteia să poată fi corectate, iar informaţia iniţială să fie recuperată.

Criptografie Motive pentru a codifica informaţia: pentru a o face inaccesibilă persoanelor / entităţilor neautorizate criptografie pentru a detecta şi eventual corecta erorile produse in timpul transmiterii teoria codurilor pentru a o comprima in vederea reducerii spaţiului necesar stocării CRIPTOGRAFIE: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. TEORIA CODURILOR: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât erorile apărute in cursul transmiterii acesteia să poată fi corectate, iar informaţia iniţială să fie recuperată.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Ce este criptografia? kryptos + graphein (κρνπτ oς + γραφειν)= scriere ascunsă. Are în vedere, printre altele, următoarele aspecte: CONFIDENŢIALITATEA: O entitate neautorizată nu are acces la informaţie. AUTENTIFICAREA: Identificarea entităţii care a emis informaţia şi a entităţilor care accesează informaţia. INTEGRITATEA DATELOR: Identificarea unei eventuale modificări neautorizate a informaţiei. NON-REPUDIEREA: O entitate nu poate nega o acţiune pe care a înfăptuit-o anterior.

Aplicaţii comunicaţii securitatea fişierelor, bazelor de date transfer monetar electronic comerţ electronic semnări contracte e-mail parole, PIN control acces protocoale de securitate vot electronic protecţia copyright-ului

Terminologie Criptografia: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. Criptanaliză: Studiul metodelor şi tehnicilor matematice folosite pentru atacul sistemelor criptografice. Criptologie = criptografie + criptanaliză Steganografie: Nu numai infomaţia este ascunsă, ci şi însuşi faptul că aceasta a fost transmisă.

Terminologie Criptografia: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. Criptanaliză: Studiul metodelor şi tehnicilor matematice folosite pentru atacul sistemelor criptografice. Criptologie = criptografie + criptanaliză Steganografie: Nu numai infomaţia este ascunsă, ci şi însuşi faptul că aceasta a fost transmisă.

Terminologie Criptografia: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. Criptanaliză: Studiul metodelor şi tehnicilor matematice folosite pentru atacul sistemelor criptografice. Criptologie = criptografie + criptanaliză Steganografie: Nu numai infomaţia este ascunsă, ci şi însuşi faptul că aceasta a fost transmisă.

Terminologie Criptografia: Studiul metodelor şi tehnicilor matematice folosite pentru tratarea informaţiei astfel încât doar entităţi autorizate să aibă acces la aceasta. Criptanaliză: Studiul metodelor şi tehnicilor matematice folosite pentru atacul sistemelor criptografice. Criptologie = criptografie + criptanaliză Steganografie: Nu numai infomaţia este ascunsă, ci şi însuşi faptul că aceasta a fost transmisă.

Terminologie Criptare ( encryption ): Succesiune de transformări ale informaţiei în vederea ascunderii conţinutului acesteia pentru entităţi neautorizate ( cifrare) Text în clar ( plaintext ): Mesajul (informaţia) înainte de criptare Text cifrat ( cyphertext ): Mesajul (informaţia) după criptare Decriptare ( decryption ): Succesiune de transformări ale textului cifrat în vederea reobţinerii textului în clar Cheie ( key ): Informaţie necesară realizării acţiunii de criptare sau de decriptare

Terminologie Criptare ( encryption ): Succesiune de transformări ale informaţiei în vederea ascunderii conţinutului acesteia pentru entităţi neautorizate ( cifrare) Text în clar ( plaintext ): Mesajul (informaţia) înainte de criptare Text cifrat ( cyphertext ): Mesajul (informaţia) după criptare Decriptare ( decryption ): Succesiune de transformări ale textului cifrat în vederea reobţinerii textului în clar Cheie ( key ): Informaţie necesară realizării acţiunii de criptare sau de decriptare

Terminologie Criptare ( encryption ): Succesiune de transformări ale informaţiei în vederea ascunderii conţinutului acesteia pentru entităţi neautorizate ( cifrare) Text în clar ( plaintext ): Mesajul (informaţia) înainte de criptare Text cifrat ( cyphertext ): Mesajul (informaţia) după criptare Decriptare ( decryption ): Succesiune de transformări ale textului cifrat în vederea reobţinerii textului în clar Cheie ( key ): Informaţie necesară realizării acţiunii de criptare sau de decriptare

Terminologie Criptare ( encryption ): Succesiune de transformări ale informaţiei în vederea ascunderii conţinutului acesteia pentru entităţi neautorizate ( cifrare) Text în clar ( plaintext ): Mesajul (informaţia) înainte de criptare Text cifrat ( cyphertext ): Mesajul (informaţia) după criptare Decriptare ( decryption ): Succesiune de transformări ale textului cifrat în vederea reobţinerii textului în clar Cheie ( key ): Informaţie necesară realizării acţiunii de criptare sau de decriptare

Terminologie Criptare ( encryption ): Succesiune de transformări ale informaţiei în vederea ascunderii conţinutului acesteia pentru entităţi neautorizate ( cifrare) Text în clar ( plaintext ): Mesajul (informaţia) înainte de criptare Text cifrat ( cyphertext ): Mesajul (informaţia) după criptare Decriptare ( decryption ): Succesiune de transformări ale textului cifrat în vederea reobţinerii textului în clar Cheie ( key ): Informaţie necesară realizării acţiunii de criptare sau de decriptare

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

Exemple Exemplul 1 Text în clar: Text cifrat: Cheie: 3 Exemplul 2 Text în clar: Text cifrat: Cheie: 3 AZI ESTE PRIMUL CURS DCL HVWH SULPXO FXUV AZI ESTE PRIMUL CURS AXY MCFM TZYKIH GIZC Exemplul 3 Text în clar: AZI ESTE PRIMUL CURS Text cifrat: KCFJIPCIXZVFWYIJGVAWX Cheie: KEY

P = mulţimea mesajelor în clar K = mulţimea cheilor f Criptosistem C = mulţimea mesajelor cifrate C = mulţimea mesajelor cifrate K = mulţimea cheilor k K funcţia m f k (m) := f (m, k) este injectivă k K, k K astfel încât g P = mulţimea mesajelor în clar m c := f (m, k) g(c, k ) = m ( g k f k = Id P )

P = mulţimea mesajelor în clar K = mulţimea cheilor f Criptosistem C = mulţimea mesajelor cifrate C = mulţimea mesajelor cifrate K = mulţimea cheilor k K funcţia m f k (m) := f (m, k) este injectivă k K, k K astfel încât g P = mulţimea mesajelor în clar m c := f (m, k) g(c, k ) = m ( g k f k = Id P )

Tipuri de criptosisteme Criptosistem simetric (cu cheie privată) Cheia de criptare = cheia de decriptare Criptosistem antisimetric (cu cheie publică) Cheia de criptare cheia de decriptare

Tipuri de criptosisteme Criptosistem simetric (cu cheie privată) Cheia de criptare = cheia de decriptare Criptosistem antisimetric (cu cheie publică) Cheia de criptare cheia de decriptare

Tipuri de criptosisteme Criptosistem simetric (cu cheie privată) Cheia de criptare = cheia de decriptare Criptosistem antisimetric (cu cheie publică) Cheia de criptare cheia de decriptare

Tipuri de criptosisteme Criptosistem simetric (cu cheie privată) Cheia de criptare = cheia de decriptare Criptosistem antisimetric (cu cheie publică) Cheia de criptare cheia de decriptare

Încă un exemplu Exemplul 4 Text în clar: HELP Text cifrat: EBLEZN Cheie de criptare (publică): (5063,19) Cheie de decriptare (privată): (5063,259)

Încă un exemplu Exemplul 4 Text în clar: HELP Text cifrat: EBLEZN Cheie de criptare (publică): (5063,19) Cheie de decriptare (privată): (5063,259)

Încă un exemplu Exemplul 4 Text în clar: HELP Text cifrat: EBLEZN Cheie de criptare (publică): (5063,19) Cheie de decriptare (privată): (5063,259)

Încă un exemplu Exemplul 4 Text în clar: HELP Text cifrat: EBLEZN Cheie de criptare (publică): (5063,19) Cheie de decriptare (privată): (5063,259)

Tipuri de atac Atac: Incercare a unei entităţi neautorizate ( adversar ) de a decripta un text cifrat, fără a cunoaşte cheia de decriptare. Atac pasiv: Adversarul urmăreşte decriptarea informaţiei. Atac activ: Adversarul urmăreşte modificarea / înlocuirea informaţiei iniţiale, furtul de identitate, etc..

Tipuri de atac Atac: Incercare a unei entităţi neautorizate ( adversar ) de a decripta un text cifrat, fără a cunoaşte cheia de decriptare. Atac pasiv: Adversarul urmăreşte decriptarea informaţiei. Atac activ: Adversarul urmăreşte modificarea / înlocuirea informaţiei iniţiale, furtul de identitate, etc..

Tipuri de atac Atac: Incercare a unei entităţi neautorizate ( adversar ) de a decripta un text cifrat, fără a cunoaşte cheia de decriptare. Atac pasiv: Adversarul urmăreşte decriptarea informaţiei. Atac activ: Adversarul urmăreşte modificarea / înlocuirea informaţiei iniţiale, furtul de identitate, etc..

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Tipuri de atac Metode de atac: Cyphertext-only attack: Adversarul are acces la texte cifrate. Known-plaintext attack: Adversarul are acces la unul sau mai multe texte în clar şi la textele cifrate corespunzătoare. Chosen-plaintext attack: Adversarul poate cripta texte în clar, fără a cunoaşte cheile. Adaptative chosen-plaintext attack: Adversarul poate varia textul în clar pe care îl cifrează în funcţie de textele cifrate obţinute anterior. Chosen-cyphertext attack: Adversarul poate decripta dar nu cunoaşte cheile.

Repere istorice 2000 i.c.: Mormântul lui Khnumhotep II 1500 i.c.: Mesopotamia: semnături 800 i.c.: Homer, Iliada, Bellerophon

Repere istorice 2000 i.c.: Mormântul lui Khnumhotep II 1500 i.c.: Mesopotamia: semnături 800 i.c.: Homer, Iliada, Bellerophon

Repere istorice 2000 i.c.: Mormântul lui Khnumhotep II 1500 i.c.: Mesopotamia: semnături 800 i.c.: Homer, Iliada, Bellerophon

Repere istorice 600-500 i.c.: Biblie, Cartea lui Ieremia: ATBASH (codul ebraic) 475 i.c.: Scytal. Pasanius, Sparta 50 i.c.: Criptosistemul lui Iulius Cezar Suetonius

Repere istorice 600-500 i.c.: Biblie, Cartea lui Ieremia: ATBASH (codul ebraic) 475 i.c.: Scytal. Pasanius, Sparta 50 i.c.: Criptosistemul lui Iulius Cezar Suetonius

Repere istorice 600-500 i.c.: Biblie, Cartea lui Ieremia: ATBASH (codul ebraic) 475 i.c.: Scytal. Pasanius, Sparta 50 i.c.: Criptosistemul lui Iulius Cezar Suetonius

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice Sec. IV: Kama Sutra (Vatsyayana). Cartea 44: Ştiinţa scrierii în cifrări secrete. Sec. VIII-XV: Criptologia arabă Al-Khalil: Cartea mesajelor cifrate Al-Kindi: Scrieri despre descifrarea mesajelor cifrate Qalqashandi: Enciclopedie în 14 volume care include o secţiune de criptologie Sec. XIII: Roger Bacon (1214-1294) Descrie 7 metode de a cripta mesaje.

Repere istorice 1411: Michele Steno, substituţie omofonică 1585:Blaise de Vigenère Traité des chiffres 1587: Mary Stuart este executată ca urmare a descifrării unor mesaje criptate prin care complota la asasinarea reginei Elisabeta I

Repere istorice 1411: Michele Steno, substituţie omofonică 1585:Blaise de Vigenère Traité des chiffres 1587: Mary Stuart este executată ca urmare a descifrării unor mesaje criptate prin care complota la asasinarea reginei Elisabeta I

Repere istorice 1411: Michele Steno, substituţie omofonică 1585:Blaise de Vigenère Traité des chiffres 1587: Mary Stuart este executată ca urmare a descifrării unor mesaje criptate prin care complota la asasinarea reginei Elisabeta I

Repere istorice 1691: Antoine Rossignol Marele Cifru al lui Ludovic al XIV-lea ( 1890). 1840: Samuel Morse (1791-1872) 1843: Edgar Allan Poe Scorpionul de aur

Repere istorice 1691: Antoine Rossignol Marele Cifru al lui Ludovic al XIV-lea ( 1890). 1840: Samuel Morse (1791-1872) 1843: Edgar Allan Poe Scorpionul de aur

Repere istorice 1691: Antoine Rossignol Marele Cifru al lui Ludovic al XIV-lea ( 1890). 1840: Samuel Morse (1791-1872) 1843: Edgar Allan Poe Scorpionul de aur

Repere istorice 1854: Charles Babbage (1791-1871) Părintele calculatorului ; sparge sistemul lui Vigenère. 1917: 19 ianuarie, decriptarea telegramei lui Zimmerman către Ambasada Germaniei în Mexic duce la intrarea SUA în război. 1918: Gilbert Sandford Vernam One time pad

Repere istorice 1854: Charles Babbage (1791-1871) Părintele calculatorului ; sparge sistemul lui Vigenère. 1917: 19 ianuarie, decriptarea telegramei lui Zimmerman către Ambasada Germaniei în Mexic duce la intrarea SUA în război. 1918: Gilbert Sandford Vernam One time pad

Repere istorice 1854: Charles Babbage (1791-1871) Părintele calculatorului ; sparge sistemul lui Vigenère. 1917: 19 ianuarie, decriptarea telegramei lui Zimmerman către Ambasada Germaniei în Mexic duce la intrarea SUA în război. 1918: Gilbert Sandford Vernam One time pad

Repere istorice 1923: Arthur Scherbius. Enigma 1939-1945: Războiul provoacă o dezvoltare deosebită a criptografiei şi criptanalizei. Marian Rejewski (1905-1980), Alan Turing (1912-1954)

Repere istorice 1923: Arthur Scherbius. Enigma 1939-1945: Războiul provoacă o dezvoltare deosebită a criptografiei şi criptanalizei. Marian Rejewski (1905-1980), Alan Turing (1912-1954)

Repere istorice 1948: Claude Elwood Shannon (1916-2001) Teoria informaţiei, A Communications Theory of Secrecy Systems 1976: DES (Data Encryption Standard). 1976: Whitfield Diffie (n.1944), Martin Hellman (n.1945): New Directions in Cryptography.

Repere istorice 1948: Claude Elwood Shannon (1916-2001) Teoria informaţiei, A Communications Theory of Secrecy Systems 1976: DES (Data Encryption Standard). 1976: Whitfield Diffie (n.1944), Martin Hellman (n.1945): New Directions in Cryptography.

Repere istorice 1948: Claude Elwood Shannon (1916-2001) Teoria informaţiei, A Communications Theory of Secrecy Systems 1976: DES (Data Encryption Standard). 1976: Whitfield Diffie (n.1944), Martin Hellman (n.1945): New Directions in Cryptography.

Repere istorice 1977: Ronald L. Rivest (n.1947), Adi Shamir (n.1952), Leonard M. Adleman (n.1945): RSA 2001: Rijndael devine Advanced Encryption Standard (AES)...

Repere istorice 1977: Ronald L. Rivest (n.1947), Adi Shamir (n.1952), Leonard M. Adleman (n.1945): RSA 2001: Rijndael devine Advanced Encryption Standard (AES)...

Repere istorice 1977: Ronald L. Rivest (n.1947), Adi Shamir (n.1952), Leonard M. Adleman (n.1945): RSA 2001: Rijndael devine Advanced Encryption Standard (AES)...

Elemente de complexitate a algoritmilor Definiţie Fie f, g : N R + două funcţii. Spunem că creşterea lui f este mărginită de cea a lui g (sau creşterea lui f este de ordinul lui g), şi scriem f = O(g), dacă există o constantă C > 0 astfel încât f (x) < C g(x) pentru orice x. Exemple: 3n 2 7n + 10 = O(n 2 ), 15e n + 1356n 2012 = O(e n ), ln(n 7 + 3n 4) = O(n), ln(n 7 + 3n 4) = O(ln n). Dacă P este un polinom de gradul d, atunci P(n) = O(n d ). f = O(1) este echivalent cu faptul că f este mărginită. f = O(g) dacă şi numai dacă lim sup n f (n) g(n) = C <. Spunem că f creşte polinomial dacă există d N astfel încât f = O(n d ). Spunem că f creşte exponenţial dacă există d N astfel încât f = O(e nd ).

Elemente de complexitate a algoritmilor Definiţie Fie f, g : N R + două funcţii. Spunem că creşterea lui f este mărginită de cea a lui g (sau creşterea lui f este de ordinul lui g), şi scriem f = O(g), dacă există o constantă C > 0 astfel încât f (x) < C g(x) pentru orice x. Exemple: 3n 2 7n + 10 = O(n 2 ), 15e n + 1356n 2012 = O(e n ), ln(n 7 + 3n 4) = O(n), ln(n 7 + 3n 4) = O(ln n). Dacă P este un polinom de gradul d, atunci P(n) = O(n d ). f = O(1) este echivalent cu faptul că f este mărginită. f = O(g) dacă şi numai dacă lim sup n f (n) g(n) = C <. Spunem că f creşte polinomial dacă există d N astfel încât f = O(n d ). Spunem că f creşte exponenţial dacă există d N astfel încât f = O(e nd ).

Elemente de complexitate a algoritmilor Definiţie Fie f, g : N R + două funcţii. Spunem că creşterea lui f este mărginită de cea a lui g (sau creşterea lui f este de ordinul lui g), şi scriem f = O(g), dacă există o constantă C > 0 astfel încât f (x) < C g(x) pentru orice x. Exemple: 3n 2 7n + 10 = O(n 2 ), 15e n + 1356n 2012 = O(e n ), ln(n 7 + 3n 4) = O(n), ln(n 7 + 3n 4) = O(ln n). Dacă P este un polinom de gradul d, atunci P(n) = O(n d ). f = O(1) este echivalent cu faptul că f este mărginită. f = O(g) dacă şi numai dacă lim sup n f (n) g(n) = C <. Spunem că f creşte polinomial dacă există d N astfel încât f = O(n d ). Spunem că f creşte exponenţial dacă există d N astfel încât f = O(e nd ).

Elemente de complexitate a algoritmilor Definiţie Fie f, g : N R + două funcţii. Spunem că creşterea lui f este mărginită de cea a lui g (sau creşterea lui f este de ordinul lui g), şi scriem f = O(g), dacă există o constantă C > 0 astfel încât f (x) < C g(x) pentru orice x. Exemple: 3n 2 7n + 10 = O(n 2 ), 15e n + 1356n 2012 = O(e n ), ln(n 7 + 3n 4) = O(n), ln(n 7 + 3n 4) = O(ln n). Dacă P este un polinom de gradul d, atunci P(n) = O(n d ). f = O(1) este echivalent cu faptul că f este mărginită. f = O(g) dacă şi numai dacă lim sup n f (n) g(n) = C <. Spunem că f creşte polinomial dacă există d N astfel încât f = O(n d ). Spunem că f creşte exponenţial dacă există d N astfel încât f = O(e nd ).

Elemente de complexitate a algoritmilor Definiţie Fie f, g : N R + două funcţii. Spunem că creşterea lui f este mărginită de cea a lui g (sau creşterea lui f este de ordinul lui g), şi scriem f = O(g), dacă există o constantă C > 0 astfel încât f (x) < C g(x) pentru orice x. Exemple: 3n 2 7n + 10 = O(n 2 ), 15e n + 1356n 2012 = O(e n ), ln(n 7 + 3n 4) = O(n), ln(n 7 + 3n 4) = O(ln n). Dacă P este un polinom de gradul d, atunci P(n) = O(n d ). f = O(1) este echivalent cu faptul că f este mărginită. f = O(g) dacă şi numai dacă lim sup n f (n) g(n) = C <. Spunem că f creşte polinomial dacă există d N astfel încât f = O(n d ). Spunem că f creşte exponenţial dacă există d N astfel încât f = O(e nd ).

Elemente de complexitate a algoritmilor Fie n N, b N, b 2. Să presupunem că pentru a scrie n în baza b sunt necesare k cifre: n = (ɛ k 1 ɛ k 2... ɛ 1 ɛ 0 ) b ; ɛ i {0, 1,..., b 1} ; ɛ k 1 0}. Atunci b k 1 n < b k k 1 log b n < k k = [log b n] + 1. Lungimea numărului natural n (scris în baza b) este [log b n] + 1 = 1 ln n + 1 = O(ln n). ln b

Elemente de complexitate a algoritmilor Fie n N, b N, b 2. Să presupunem că pentru a scrie n în baza b sunt necesare k cifre: n = (ɛ k 1 ɛ k 2... ɛ 1 ɛ 0 ) b ; ɛ i {0, 1,..., b 1} ; ɛ k 1 0}. Atunci b k 1 n < b k k 1 log b n < k k = [log b n] + 1. Lungimea numărului natural n (scris în baza b) este [log b n] + 1 = 1 ln n + 1 = O(ln n). ln b

Elemente de complexitate a algoritmilor Timpul de calcul al unui algoritm A: Time(A) = numărul de operaţii elementare necesare pentru obţinerea output-ului - exprimat ca funcţie de lungimea datelor de intrare - calculat în situaţia cea mai defavorabilă. In practică vom determina ordinul de creştere al funcţiei Time(A), Time(A) = O(f ) cu f o funcţie cu creşterea cât mai mică.

Elemente de complexitate a algoritmilor Timpul de calcul al unui algoritm A: Time(A) = numărul de operaţii elementare necesare pentru obţinerea output-ului - exprimat ca funcţie de lungimea datelor de intrare - calculat în situaţia cea mai defavorabilă. In practică vom determina ordinul de creştere al funcţiei Time(A), Time(A) = O(f ) cu f o funcţie cu creşterea cât mai mică.

Elemente de complexitate a algoritmilor Timpul de calcul al unui algoritm A: Time(A) = numărul de operaţii elementare necesare pentru obţinerea output-ului - exprimat ca funcţie de lungimea datelor de intrare - calculat în situaţia cea mai defavorabilă. In practică vom determina ordinul de creştere al funcţiei Time(A), Time(A) = O(f ) cu f o funcţie cu creşterea cât mai mică.

Elemente de complexitate a algoritmilor Timpul de calcul al unui algoritm A: Time(A) = numărul de operaţii elementare necesare pentru obţinerea output-ului - exprimat ca funcţie de lungimea datelor de intrare - calculat în situaţia cea mai defavorabilă. In practică vom determina ordinul de creştere al funcţiei Time(A), Time(A) = O(f ) cu f o funcţie cu creşterea cât mai mică.

Operaţie elementară (binară) Input: biţii a, b, r. Output: biţii s, r. a b r s r 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1

Operaţie elementară (binară) Input: biţii a, b, r. Output: biţii s, r. a b r s r 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1

Elemente de complexitate a algoritmilor Exemplu: Fie m şi n două numere naturale, care scrise în baza 2 au cel mult k biţi. Fie Ad algoritmul care realizează suma celor două numere. Atunci Time(Ad) = O(k). Exerciţii: Fie m, n, a numere naturale. Estimaţi timpul de calcul pentru: înmulţire: m n ridicarea la putere: m a calculul n! transformarea n (în baza 10) n (în baza a)

Elemente de complexitate a algoritmilor Exemplu: Fie m şi n două numere naturale, care scrise în baza 2 au cel mult k biţi. Fie Ad algoritmul care realizează suma celor două numere. Atunci Time(Ad) = O(k). Exerciţii: Fie m, n, a numere naturale. Estimaţi timpul de calcul pentru: înmulţire: m n ridicarea la putere: m a calculul n! transformarea n (în baza 10) n (în baza a)

Clasificări ale algoritmilor / problemelor Algoritmi decizionali / probleme de decizie: există două variante ale output-ului: DA sau NU (Adevărat sau Fals). Exemplu: teste de primalitate: algoritmi care decid dacă un număr natural este prim sau nu. Algoritmi computaţionali / probleme de calcul: scopul este rezolvarea unei probleme de calcul. Exemplu: algoritmi de factorizare: input: n N; output: factorii primi ai lui n. Algoritmi / probleme de căutare: scopul este alegerea, dintr-o mulţime finită (dar foarte mare) de variante, pe cea / cele care îndeplinesc anumite condiţii. Soluţia (output-ul) poate să nu fie unică. Exemplu: Problema comisului voiajor. Input: un graf finit şi un vârf fixat A. Output: un circuit de lungime minimă care pleacă din A şi conţine toate vârfurile grafului.

Clasificări ale algoritmilor / problemelor Algoritmi decizionali / probleme de decizie: există două variante ale output-ului: DA sau NU (Adevărat sau Fals). Exemplu: teste de primalitate: algoritmi care decid dacă un număr natural este prim sau nu. Algoritmi computaţionali / probleme de calcul: scopul este rezolvarea unei probleme de calcul. Exemplu: algoritmi de factorizare: input: n N; output: factorii primi ai lui n. Algoritmi / probleme de căutare: scopul este alegerea, dintr-o mulţime finită (dar foarte mare) de variante, pe cea / cele care îndeplinesc anumite condiţii. Soluţia (output-ul) poate să nu fie unică. Exemplu: Problema comisului voiajor. Input: un graf finit şi un vârf fixat A. Output: un circuit de lungime minimă care pleacă din A şi conţine toate vârfurile grafului.

Clasificări ale algoritmilor / problemelor Algoritmi decizionali / probleme de decizie: există două variante ale output-ului: DA sau NU (Adevărat sau Fals). Exemplu: teste de primalitate: algoritmi care decid dacă un număr natural este prim sau nu. Algoritmi computaţionali / probleme de calcul: scopul este rezolvarea unei probleme de calcul. Exemplu: algoritmi de factorizare: input: n N; output: factorii primi ai lui n. Algoritmi / probleme de căutare: scopul este alegerea, dintr-o mulţime finită (dar foarte mare) de variante, pe cea / cele care îndeplinesc anumite condiţii. Soluţia (output-ul) poate să nu fie unică. Exemplu: Problema comisului voiajor. Input: un graf finit şi un vârf fixat A. Output: un circuit de lungime minimă care pleacă din A şi conţine toate vârfurile grafului.

Clasificări ale algoritmilor / problemelor Fie A un algoritm decizional. Fie n o valoare a input-ului (o instanţă a problemei ) şi să presupunem că algoritmul A verifică dacă n are proprietatea P. Un astfel de algoritm decizional poate fi: Algoritm determinist: dacă output-ul este DA, atunci cu siguranţă n are proprietatea P. Algoritm probabilistic: dacă output-ul este DA, atunci probabil n are proprietatea P, cu o probabilitate p; probabilitatea ca n să aibă proprietatea P devine cu atât mai mare cu cât el trece testul de mai multe ori. Dacă dacă output-ul este NU, atunci cu siguranţă n nu are proprietatea P.

Clasificări ale algoritmilor / problemelor Fie A un algoritm decizional. Fie n o valoare a input-ului (o instanţă a problemei ) şi să presupunem că algoritmul A verifică dacă n are proprietatea P. Un astfel de algoritm decizional poate fi: Algoritm determinist: dacă output-ul este DA, atunci cu siguranţă n are proprietatea P. Algoritm probabilistic: dacă output-ul este DA, atunci probabil n are proprietatea P, cu o probabilitate p; probabilitatea ca n să aibă proprietatea P devine cu atât mai mare cu cât el trece testul de mai multe ori. Dacă dacă output-ul este NU, atunci cu siguranţă n nu are proprietatea P.

Clasificări ale algoritmilor / problemelor Fie A un algoritm decizional. Fie n o valoare a input-ului (o instanţă a problemei ) şi să presupunem că algoritmul A verifică dacă n are proprietatea P. Un astfel de algoritm decizional poate fi: Algoritm determinist: dacă output-ul este DA, atunci cu siguranţă n are proprietatea P. Algoritm probabilistic: dacă output-ul este DA, atunci probabil n are proprietatea P, cu o probabilitate p; probabilitatea ca n să aibă proprietatea P devine cu atât mai mare cu cât el trece testul de mai multe ori. Dacă dacă output-ul este NU, atunci cu siguranţă n nu are proprietatea P.

Clasificări ale algoritmilor / problemelor Algoritmi condiţionaţi: corectitudinea algoritmului / răspunsului depinde de demonstrarea unui enunţ matematic despre care se presupune că e adevărat, dar nu este demonstrat. Algoritmi necondiţionaţi: corectitudinea algoritmului / răspunsului se bazează pe enunţuri şi teorii matematice demonstrate. Fie k lungimea input-ului algoritmului A. Algoritmi care funcţionează in timp polinomial: d N, Time(A) = O(k d ). Algoritmi care funcţionează in timp exponenţial: Time(A) O(k d ), d N ; d N, Time(A) = O(e kd ). Algoritmi care funcţionează in timp subexponenţial.

Clasificări ale algoritmilor / problemelor Algoritmi condiţionaţi: corectitudinea algoritmului / răspunsului depinde de demonstrarea unui enunţ matematic despre care se presupune că e adevărat, dar nu este demonstrat. Algoritmi necondiţionaţi: corectitudinea algoritmului / răspunsului se bazează pe enunţuri şi teorii matematice demonstrate. Fie k lungimea input-ului algoritmului A. Algoritmi care funcţionează in timp polinomial: d N, Time(A) = O(k d ). Algoritmi care funcţionează in timp exponenţial: Time(A) O(k d ), d N ; d N, Time(A) = O(e kd ). Algoritmi care funcţionează in timp subexponenţial.