Complessità computazionale. Complessità e Crittografia

Documenti analoghi
Capitolo 9: Trattabilitá e intrattabilitá dei problemi

Automi e Linguaggi Formali

Capitolo 8: Teoria della complessitá

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché

Algoritmo per A. !(x) Istanza di B

Problemi intrattabili

idea della crittografia a chiave pubblica

Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP

Teoria della NP-completezza

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Problemi, istanze, soluzioni

crittografia a chiave pubblica

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

Certificati dei problemi in NP

Ancora su 2-SAT. può essere pensata come una coppia di implicazioni!! " 1

Note sulle classi di complessità P, NP e NPC per ASD (DRAFT)

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Teoria della complessità

Complessità Strutturale e NP-Completezza

Teoria della Complessità Computazionale

Aniello Murano NP- Completezza (prima parte)

Problemi decisionali. Esempi

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

NP completezza. Problemi astratti

NP completezza. Vittorio Maniezzo - Università di Bologna

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Teoria della NP-completezza. Damiano Macedonio

Dentro P e oltre NP?

Corso di Crittografia Prof. Dario Catalano. Introduzione alla crittografia asimmetrica

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

Complessità Computazionale

idea della crittografia a chiave pubblica

a cura di Luca Cabibbo e Walter Didimo

Elementi di Complessità Computazionale

Sommario. Complessità di tempo e spazio di una TM che si ferma sempre.

una possibile funzione unidirezionale

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

Crittografia a chiave pubblica

Crittografia. Corso di Laurea Specialistica. in Informatica. Generatori di Numeri PseudoCasuali

Complessità computazionale. I problemi più difficili di ogni classe: Riduzioni e completezza

Complessità computazionale. Problemi difficili e nondeterminismo

Complessità computazionale. Introduzione al corso

Indecidibilità del problema della fermata in C

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Crittografia a chiave pubblica

Problemi decidibili, semidecidibili, indecidibili

Soddisfacibilità e Semantic Tableau [1]

Nozioni di base (II Parte)

funzione φ di Eulero, o funzione toziente è definita sugli interi positivi φ(n) è il numero di interi positivi n che sono coprimi con n

idea della crittografia a chiave pubblica

Algoritmi e Complessità

Teoria della Complessità Computazionale

una possibile funzione unidirezionale

Riduzioni che preservano l approssimazione e completezza nelle classi di approssimabilità.

LA TEORIA DELLA COMPLESSITÀ COMPUTAZIONALE

RSA e firma digitale

Crittografia per la sicurezza dei dati

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 10

Sommario. Esempi di problemi NP-completi: 3-COLORING TSP. HamCycle

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME

Corso di Crittografia

Teoria della Calcolabilità!

Problemi intrattabili e quantum computing

Capitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved

Teoria della Complessità Concetti fondamentali

Esercizio. 2 i=i*2) j=j*2)

Introduzione Problemi e codifiche Classe P e linguaggi Da NP a NP-C Il mondo NP-C Conclusioni. NP-Completezza

crittografia a chiave pubblica

si cerca di scegliere e non troppo grande e tale che nella scrittura binaria di e ci siano pochi 1 e piccolo = cifratura più veloce

A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro...

Crittografia a chiave pubblica

Crittografia ed Aritmetica Modulare VI incontro

carattere a b c d e f cod. var

Per regnare occorre tenere divisi i nemici e trarne vantaggio. fai ad ogni passo la scelta più conveniente

Crittografia e sicurezza delle reti. 1. Classi complessità probabilistiche e OWF 2. Test primalità

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Aniello Murano Space Complexity

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

Crittografia a chiave pubblica

Complessità computazionale. Algoritmi probabilistici e Quantum Computing

Seminario sulla Crittografia. Corso: T.A.R.I Prof.: Giulio Concas Autore: Ivana Turnu

Aniello Murano Problemi non decidibili e riducibilità

Appunti sui Codici di Reed Muller. Giovanni Barbarino

una possibile funzione unidirezionale

Relazioni e Rappresentazioni. 1 Una relazione (binaria) R su

Pr(x y) = Pr(x) si può riformulare questa definizione in termini di indistinguibilità x 0, x 1 P e y C, scelta in modo casuale una chiave k K

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

I Cifrari Perfetti. Alessio Nunzi Fabiola Genevois Federico Russo

PARTE VI COMPLESSITA

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Complementi di Algoritmi e Strutture Dati. Soluzioni prova scritta 7 giugno 2017

La matematica negli algoritmi. Maat: dea egizia dell ordine. Liber Abaci 1202

Corso di Crittografia Prof. Dario Catalano. Cifrari Simmetrici (Prima Parte)

DECIDIBILITÀ E INDECIDIBILITÀ

Transcript:

computazionale e Crittografia Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica

Tema della lezione I Le funzioni crittografiche per cifrare e decifrare messaggi comunemente utilizzate oggi non sono sicure in assoluto In teoria è possibile violare la sicurezza pur non conoscendo la chiave privata Le garanzie di sicurezza sono basate sulla complessità computazionale: non sono disponibili algoritmi efficienti per rompere il cifrario in tempo utile per trarne vantaggio rompere il cifrario appartiene a una classe di complessità che si pensa essere strettamente più grande di P Nel seguito vedremo di quali classi si tratta

Tema della lezione II Cifrare un messaggio e decifrarlo non sono problemi di decisione Richiedono di calcolare una stringa (il testo cifrato o il testo in chiaro ) Pertanto prima di discutere la complessità delle funzioni di cifratura e decifratura introduciamo le classi di complessità per il calcolo di funzioni Lo facciamo solo per gli analoghi di P e NP perchè come vedremo le funzioni crittografiche non possono avere qualunque complessità Le condizioni di esistenza per le funzioni crittografiche, inoltre, dipendono non dall ipotesi P NP, ma dall ipotesi P UP, dove UP è una sottoclasse di NP

Tema della lezione III Nozioni preliminari Function problems e le classi FP e FNP Funzioni one-way per la crittografia Classi di complessità delle funzioni one-way Condizioni di esistenza per le funzioni one-way MdT non ambigue e la classe UP

Function problems: le classi FP e FNP

Formalizzare i function problems Ricordiamo che un problema di decisione L è in NP sse esiste una R L polynomially balanced e decidibile in tempo polinomiale tale che L = {x esiste y tale che (x, y) R L } Ricordiamo anche che i certificati y, in un modo o nell altro, rappresentano una soluzione per l istanza x un ciclo hamiltoniano una colorazione per un grafo un tour il cui costo non supera il budget... Ricordiamo anche che i certificati/soluzioni per un x dato non sono necessariamente unici risolvere un function problem significa produrre una delle soluzioni non importa quale: una vale l altra

Le classi FP e FNP Definizione: Il function problem FL associato a L NP Data una istanza x di L, trovare una stringa y tale che (x, y) R L. Se non esiste, restituire no. Definizione di FNP La classe dei function problem FL tali che L NP Definizione di FP La classe dei function problem FL tali che L P Chiaramente FP FNP Mediante oracoli, si definisce un analogo funzionale di PH

Riduzioni per i problemi funzionali Per ridurre A a B non basta tradurre ogni istanza x di A in una istanza R(x) di B tale che R(x) ha una soluzione sse x ha una soluzione dobbiamo produrre una soluzione, per x quindi dobbiamo trasformare la soluzione di R(x) in una per x Definizione di riduzione per function problem A è riducibile a B sse esistono due funzioni R e S tali che 1 R e S sono calcolabili in spazio logaritmico 2 se x è una istanza di A allora R(x) è una istanza di B 3 la risposta a x è no sse la risposta a R(x) è no 4 se y è una soluzione per R(x) allora S(y) è una soluzione per x

Completezza per le classi funzionali Perfettamente analoga al caso decisionale Definizione Un problema A è completo per una classe di problemi funzionali FC sse 1 A FC 2 tutti i problemi in FC sono riducibili ad A

Completezza per le classi funzionali Esempio Definizione: fsat Data una espressione booleana φ, restituire un truth assignment che la soddisfa, oppure no se φ è insoddisfacibile Si può mostrare che fsat è FNP-completo

Self-reducibility per sat Formalizziamo la vecchia corrispondenza tra problemi decisionali e funzionali Proposizione fsat si può risolvere in tempo polinomiale determistico sse lo stesso vale per sat Prova (solo se): data una MdT deterministica M che risolve fsat in tempo polinomiale se ne deriva una (M; M ) per fsat: se M termina in h allora M si sposta in yes e termina; altrimenti (M termina in no ) M termina con no (segue)

Self-reducibility per sat II Formalizziamo la vecchia corrispondenza tra problemi decisionali e funzionali Prova (se): dato un algoritmo deterministico A che risolve sat in tempo polinomiale se ne deriva uno A per fsat così: Input: φ(x 1,..., x n ), i [1, n], T [ ] : bool /* valore iniziale di i = 0 */ 1 if i > n return T 2 if A(φ(T [1],.., T [i], true, x i+2,..., x n )) = yes T [i + 1] = true; return A (φ(x 1,..., x n), i + 1, T [ ]) 3 if A(φ(T [1],.., T [i], false, x i+2,..., x n )) = yes T [i + 1] = false; return A (φ(x 1,..., x n), i + 1, T [ ]) 4 return no QED

Conseguenze della self-reducibility Teorema 10.2 FP = FNP sse P = NP Prova (se): Se P = NP allora i function problems associati a P ed NP sono gli stessi, e per definizione FP = FNP Prova (solo se): Se FP = FNP allora fsat si può risolvere deterministicamente in tempo polinomiale Per la Proposizione, anche sat si può risolvere in tempo polinomiale deterministico Siccome un problema NP-completo è in P, segue che P = NP QED

Crittografia e funzioni one-way

Funzioni crittografiche utilizzo classico Ingredienti chiave per la crittografia una funzione di codifica (encoding) E una funzione di decodifica (dencoding) D una coppia di chiavi d, e usate rispettivamente per la codifica e la decodifica vincolo di correttezza: D(d, E(e, x)) = x Crittografia simmetrica (o a chiave privata): d = e Crittografia asimmetrica (o a chiave pubblica): d e e è pubblica, tutti possono cifrare messaggi d è privata: solo il proprietario può decifrare i messaggi

Vincoli di complessità su E e D Cifrare e decifrare messaggi con le chiavi deve essere facile E e D sono in FP Rompere il cifrario deve essere difficile Definizione di attack(e, e) Dati E, e e un messaggio cifrato y = E(e, x) trovare x Domanda: quanto possiamo rendere difficile l attacco? FNP? FNP NP? FEXP?...

Analisi di complessità Conseguenze dei vincoli su E e D Quanto è grande E(e, x)? E(e, x) x k perchè in tempo polinomiale E può solo produrre stringhe polinomiali C è un altro vincolo: E non deve perdere informazione (altrimenti non si può ricostruire x) assumendo che x non sia troppo ridondante, la massima compressione operata da E può essere solo polinomiale quindi x E(e, x) l, ovvero x 1/l E(e, x) Complessivamente x 1/l E(e, x) x k

Analisi di complessità Limite superiore alla complessità intrinseca degli attacchi Proposizione Se per ogni x, E(e, x) x 1/l, allora attack(e, e) è in FNP Prova: Per trovare x dati E, e e y = E(e, x): 1 generare nondeterministicamente x tale che x y l (tempo polinomiale) 2 verificare (deterministicamente) se E(e, x) = y (tempo polinomiale) Quindi la complessità massima degli attachi è limitata superiormente! QED a meno che E non sia magicamente in grado di comprimere gli input più che polinomialmente

Funzioni one-way Formalizzazione di E e(x) = E(e, x) Definizione Una funzione f su stringhe è one-way sse 1 f è iniettiva (quindi invertibile) e x 1/k f (x) x k 2 f è in FP 3 f 1 non è in FP Le funzioni one-way esistono? Nota: è un requisito necessario ma insufficiente in pratica: si deve calcolare efficientemente f 1 con informazione aggiuntiva (D(d, f (x)) = f 1 (y)) l inversione dev essere difficile non solo nel caso peggiore, ma nella maggior parte dei casi...

La classe UP Vedremo che le funzioni one-way esistono sse P UP Definizione di MdT non ambigue e UP Una MdT M è non-ambigua (unambiguous) sse ciascun input è accettato al massimo da una computazione. UP è la classe di linguaggi accettati da MdT non ambigue nondeterministiche in tempo polinomiale Chiaramente le MdT deterministiche sono non-ambigue P UP Chiaramente UP NP

Sull esistenza di one-way functions Teorema 12.1 Esiste una one-way function se e solo se UP P Prova (solo se): Supponiamo che f sia una funzione one-way. Dobbiamo mostrare che UP P. Lo faremo mostrando che il linguaggio appartiene a UP \ P L f = {(x, y) per qualche z x, f (z) = y} è un ordinamento in cui le stringhe più corte precedono le più lunghe. A parità di lunghezza, usare ordinamento lessicografico. Ad es. su alfabeto binario ɛ < 0 < 1 < 00 < 01 < 10 < 11 < 000 <... (segue)

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P segue prova (se): Definiamo una MdT U che decide L f. Dati x, y: 1 U genera nondeterministicamente z t.c. z y k limite dato dalla def. di one-way function, punto 1 2 controlla se f (z) = y in tempo deterministico polinomiale per la def. di one-way function, punto 2 3 se si, controlla se z x (tempo polinomiale) succede al massimo per 1 stringa z (f è iniettiva) U è non-ambigua U prova che L f UP. Resta da dimostrare che L f P (segue)

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P segue prova (se): Supponiamo per assurdo che esista un algoritmo deterministico polinomiale per L f. Mostriamo come invertire f in tempo polinomiale con ricerca binaria questo contraddice il punto 3 della def. di one-way function e conclude la prova (segue)

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P segue prova (se): Calcolo di f 1 (y) (es. su alfabeto binario) Controllare se (1 y k, y) L f. Se no, non esistono z di lunghezza y k t.c. f (z) = y. Se si: Ripetere il controllo per (1 y k 1, y), (1 y k 2, y),... fino a trovare la lunghezza l di f 1 (y) Cercare la stringa x t.c. f (x) = y con ricerca binaria. prima controllare se (01 l 1, y) L f. notare che 01 l 1 è la stringa -massima che inizia per 0: quindi la risposta è si sse il primo bit di x è 0 se la risposta è si, provare ricorsivamente se (001 l 2, y) L f. se la risposta è no, provare ricorsivamente se (101 l 2, y) L f. Numero di chiamate all ipotetico algoritmo per L f : y k + l = O(2n k ). Quindi f 1 FP (assurdo) (fine parte se )

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P Prova (solo se): Supponiamo che UP P, dunque esiste L UP \ P. Dobbiamo mostrare che esiste una one-way function Sia U la MdT non ambigua nondeterministica che accetta L in tempo polinomiale. Definiamo f U come segue: { 1y se x è una computazione di U che accetta y f U (x) = 0x altrimenti (y può essere estratta dalla 1 a configurazione in x) (segue)

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P Prova (solo se): Ora basta mostrare che f U è una one-way function. Cominciamo dal punto 1 f U è iniettiva perchè U è non-ambigua non esistono 2 computazioni x e x che accettano la stessa y x y k (perchè U usa tempo polinomiale) e x x k, quindi anche x f U (x) k ovvero x 1/k f U (x) 1y x (y è una sottostringa di x) e 0x = x + 1, quindi per qualche c f U (x) x c (segue)

Sull esistenza di one-way functions Esiste una one-way function se e solo se UP P segue prova (solo se): Punto 2: f U è calcolabile in tempo polinomiale verificare se x è una computazione di U si può fare in tempo polinomiale ispezionando il programma di U (tempo costante) per ogni passo di computazione (lineari in x) estrarre y da x ha costo lineare Punto 3: f 1 U non è calcolabile in tempo polinomiale. Se lo fosse, sarebbe L P (assurdo): f 1 U (1y) è definita U accetta y y L QED

Discussione Quindi la crittografia si fonda sull ipotesi che P UP non P NP, perchè potrebbe essere P = UP NP Se potessimo dimostrare che una funzione f è one-way, avremmo immediatamente che P NP da P UP NP Ad oggi, le funzioni che sembrano essere one-way functions comprendono p q se C p, C q certificano che p, q primi f MUL (p, C p, q, C q ) = p, C p, q, C q altrimenti f EXP (p, C p, r, x) = p, C p, r x mod p Opportunamente combinate definiscono RSA

Materiale di riferimento Papadimitriou: Parte III Capitolo 10, parte del paragrafo 3 Capitolo 12, parte del paragrafo 1

Riassunto

Esercizi 1 Supponendo che f EXP sia one-way, dire se strategic companies si può ridurre a 2-sat 2 Se trovassimo un algoritmo deterministico polinomiale per validity, f MUL potrebbe essere una one-way function? 3 Se scoprissimo che P NP, sapremmo dire se esistono one-way functions?