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.