Segretezza e crittografia simmetrica

Slides:



Advertisements
Presentazioni simili
Elementi di Crittografia MAC e FUNZIONI HASH
Advertisements

La sicurezza dei sistemi informatici
Seminario per il corso di Sistemi Operativi mod
INTERNET FIREWALL Bastion host Laura Ricci.
Seminario Sicurezza a.a. 2001/2002 Barbara Anconelli
File System Cos’è un File System File e Directory
Informatica Generale Marzia Buscemi
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Sicurezza II Prof. Dario Catalano Strong Password Protocols.
Le reti informatiche!! Le reti di telecomunicazioni hanno permesso una maggior diffusione delle informazioni che possono essere trasmesse e ricevute.
Autenticazione dei messaggi e funzioni hash
4-1 Il Livello di Rete Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Moving Moving Young Young Turin Turin Hydrogen Hydrogen Olympic Olympic Safe RETE MANET informazioni in movimento.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Reti e Sistemi operativi
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Secure Shell Giulia Carboni
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. A)
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Breaking DES Corso di Sicurezza Reti Dott. Giovanni Ciraolo Anno Accademico
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
Strutture di controllo in C -- Flow Chart --
Univ. Studi di Roma FORO ITALICO Prof. Stefano Razzicchia 1 UNIVERSITA STUDI DI ROMA FORO ITALICO Corso di Laurea Triennale INFORMATICA Lez. 6.
Elementi di Informatica
Protocollo di autenticazione KERBEROS
Corso di Informatica per Giurisprudenza Lezione 7
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1: 1.3 Le Reti.
LA CRITTOGRAFIA QUANTISTICA
I-Memo è un prodotto completamente nuovo progettato per risolvere i seguenti problemi: Memorizzare password e codici molto complessi, senza il problema.
Metodo della moltiplicazione
"Abbiamo deciso di guardare più lontano". Dal 1920 Eucrypt ITALIANO.
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
La rete di istituto Maninder Bansal 5Bz Vital Ivo 5Bz Anno scolastico 2005/06.
Radix-Sort(A,d) // A[i] = cd...c2c1
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
L’architettura a strati
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
Crittografia MITTENTE DESTINATARIO messaggio messaggio chiave-1
R. Soncini Sessa, MODSS, L 26 Stima degli effetti Calcolo degli obiettivi (Laplace) Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini.
Reti di computer Non esiste una classificazione univoca delle reti ma due aspetti hanno un particolare importanza Tecnologia di trasmissione Scala.
Reti di computer Condivisione di risorse e
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
La firma digitale. Che cosa é la firma digitale? La firma digitale è una informazione aggiunta ad un documento informatico al fine di garantirne integrità.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Un sistema di sicurezza dei dati.  La crittografia, il cui termine indica "nascosto", è la branca della crittologia che tratta delle "scritture nascoste",
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Segretezza e crittografia simmetrica ◘ Tradizionalmente la crittografia simmetrica è usata per garantire la segretezza dei messaggi ◘ Scenario tipico Workstations accedono ad altre workstation e server sulla propria rete locale (LAN) o su altre reti interconnesse usando switches/routers Uso di LAN parzialmente o totalmente wireless ◘ Attacchi Spionaggio da altre workstation sulla stessa rete Uso di link e routers per entrare dall’esterno e spiare Accesso all’armadio di cablaggio che funge da punto di interconnessione per le linee interne, le linee telefoniche e le linee di comunicazione esterne e ascolto sui cavi

Punti deboli Un attacco può aver luogo in un qualsiasi punto di collegamento

Segretezza e crittografia simmetrica Due principali alternative per stabilire cosa crittografare e dove localizzare il sistema di crittografia Crittografia di canale (link encryption) -Criptazione indipendente su ciascun link -Implica la necessità di decriptare il traffico tra i link - Richiede molti dispositivi -Se viene utilizzata la rete pubblica l’utente non ha controllo sulla sicurezza dei nodi Ogni coppia di nodi che condivide un collegamento deve avere una chiave univoca e per ogni collegamento deve essere utilizzata una chiave differente -Occorre generare una grande quantità di chiavi

Segretezza e crittografia simmetrica Crittografia end-to-end (end-to end encryption) -Criptazione tra la sorgente primaria e la destinazione finale -Bisogno di dispositivi alle due estremità con chiavi condivise -Riduce i rischi connessi alla sicurezza dei collegamenti e delle reti - Si presentano problemi su cosa crittografare poiché è necessario conoscere l’intestazione per potere inoltrare i dati Si ottiene una sicurezza maggiore adottando entrambi i sistemi

Crittografia in una rete a commutazione di pacchetto

La funzione del processore FEP

Analisi del traffico Usando l’encryption end-to-end si debbono lasciare gli header in chiaro La rete così può instradare l’informazione correttamente Quindi, anche se I contenuti sono protetti, gli andamenti dei flussi di traffico non lo sono Idealmente si vorrebbe avere insieme tutto La protezione end-to-end che protegge i dati lungo l’intero percorso e fornisce l’autenticazione La protezione a livello link che impedisce il monitoraggi dei flussi di traffico

Luogo della cifratura È possibile posizionare la funzione di encryption in diversi layers del modello OSI Link encryption si effettua nei layer 1 o 2 End-to end encryption si effettua nei layer 3, 4, 6 o 7 Man mano che ci si sposta verso l’alto, viene criptata meno informazione, ma è più sicura

Livelli di crittografia

Analisi del traffico Anche con l’encryption un opponent può ottenere delle informazioni utili Può essere fatto monitorando il flusso di traffico Utile negli ambienti militari e commerciali Può pure essere usato per creare un canale coperto Problema minimizzato dalla link encryption che oscura i dettagli degli header In ogni modo i volumi del traffico globale rimangono visibili Una soluzione è rappresenata dal traffic padding

Padding del traffico Chiave Input discontinuo Output cifrato di testo in chiaro Output cifrato continuo Algoritmo di crittografia Generatore Continuo di dati casuali Un dispositivo di crittografia Traffic panding

Distribuzione delle chiavi Schemi simmetrici richiedono che entrambe le parti condividano una chiave comune segreta Il problema è come distribuire con sicurezza questa chiave Frequenti crash di sistemi sicuri dovuti a un break nello schema di distribuzione delle chiavi

Distribuzione delle chiavi Due parti A and B hanno varie alternative per la key distribution: A sceglie una chiave e la consegna fisicamente a B Una terza parte può scegliere e consegnare la chiave ad A e B Se A e B hanno comunicato in precedenza, possono usare la chiave precedente per criptare una nuova chiave Se A e B hanno comunicazioni sicure con una terza parte C, questa può può può fare da relay della chiave tra A e B

Gerarchia delle chiavi Data Protezione crittografica Protezione crittografica Chiavi di sessione Protezione Non crittografica Chiavi master

Crittografia in una rete a commutazione di pacchetto Ogni utente i condivide una master key ki col KDC

Problemi di distribuzione delle chiavi ◘ Per grandi network sono richieste gerarchie di KDC, ma questi devono avere reciprocamente fiducia ◘ Per maggiore sicurezza i tempi di vita delle chiavi di sessione deve essere limitato ◘ Il tempo di vita tipico di una chiave, nel caso protocolli connection-less è limitato a un tempo fisso ◘ Il tempo di vita tipico di una chiave, nel caso protocolli connection oriented, è limitato a una sessione ◘ Uso della distribuzione automatica di chiavi a beneficio degli utilizzatori ma servono sistemi con fiducia

Generatori di Numeri PseudoCasuali Anyone who attempts to generate random numbers by deterministic means is, of course, living in a state of sin. --John von Neumann

Applicazioni numeri casuali 16384098652573895087262509525678877245405175966395660987043765081638566412739559602416485904382975371420835186730561789639257182 I generatori di numeri casuali (RNGs) risultano componente fondamentale per diverse applicazioni: - Esperimenti statistici –analisi di algoritmi- - Simulazione di sistemi stocastici - Analisi numerica basata su metodi Monte-Carlo - Algoritmi probabilistici - Computer games - Crittografia - Protocolli di comunicazione sicuri - Gambling machines - Virtual Casino

PRNG molti algoritmi crittografici necessitano di (tanti) bit casuali le sorgenti casuali (macroscopiche) sono rare in Natura  produrre bit casuali è costoso idea: si usa un generatore di numeri pseudocasuali (PRNG) dato un seme casuale, un PRNG produce una sequenza di bit che è indistinguibile da una sequenza di bit casuali

PRNG indistinguibile significa che nessun algoritmo eseguibile in tempo polinomiale su una Macchina di Turing(MdT) probabilistica sa decidere se la sequenza emessa dal PRNG è casuale oppure calcolata  definizione di tipo computazionale Neanche Eve è in grado di capire se stiamo usando numeri casuali o pseudocasuali

G : {0,1}k → {0,1}l(k), con l(k) > k PRNG definizione: un PRNG è un algoritmo, eseguibile in tempo polinomiale su una MdT deterministica, che calcola una funzione G : {0,1}k → {0,1}l(k), con l(k) > k (k= lunghezza stringa in ingresso, l(k)= lunghezza stringa in uscita) i PRNG possono essere uniformi o non uniformi Un PRNG non uniforme

PRNG generatore congruenziale lineare: siano a, b ed m tre interi tali che 0  a, b < m dato un seme intero s, con 0  s < m, il sistema di equazioni: si chiama generatore congruenziale lineare

PRNG proposto da Lehmer nel 1951, produce una sequenza di numeri della medesima lunghezza la scelta di a, b ed m è critica per non ottenere sequenze facili da prevedere viene usato spesso (ma non in Crittografia) non è un buon generatore: i numeri prodotti presentano relazioni lineari se Eve scopre quattro valori x0, x1, x2, x3 prodotti, risolvendo il sistema di equazioni: trova i valori di a, b, ed m

PRNG problema: costruire una funzione G : {0,1}k → {0,1}l(k) che allunga l’input, verificando i requisiti della definizione domanda: dobbiamo costruire una funzione diversa per ogni possibile funzione l(k) ?

PRNG risposta: no. A partire da un PRNG H : {0,1}k →{0,1}k+1 possiamo costruire qualunque PRNG G : {0,1}k → {0,1}l(k) Data la stringa x0 {0,1}k per costruire una stringa pseudocasuale di lunghezza l(k)>k è sufficiente applicare l(k) volte il generatore pseudocasuale H, ottenendo ogni volta un bit della stringa di output ed un nuovo seme per applicare H.

PRNG abbiamo quindi ridotto il problema di costruire G a quello di costruire H, che allunga l’input di un solo bit ci basterà una funzione one-way definiamo il concetto di hard-core bit se f è una funzione (permutazione) one-way, è difficile da invertire: dato y, è difficile calcolare x tale che f(x) = y se x è difficile da calcolare, alcuni suoi bit saranno difficili da calcolare (se x  {0,1}n, devono essere più di log2n, ad esempio n/4) i bit difficili da calcolare sono hard-core bit per f

Intermezzo: RSA randomizzato Numeri casuali generati in modo crittografico Intermezzo: RSA randomizzato supponiamo che Alice debba mandare il bit b  {0,1} a Bob preleva la chiave pubblica (nB, eB) di Bob sceglie a caso un intero x < nB/2 (quindi, 2x < n) trasmette a Bob y = (2x + b)eB mod nB Bob, ricevuto y: calcola ydB mod nB = 2x + b prende il bit meno significativo del risultato

RSA randomizzato osservazione: non si sa se gli altri bit di m (in particolare, quali e quanti) sono hard-core bit per RSA quindi, per cifrare in modo sicuro un messaggio m, si può cifrare ogni bit di m con RSA randomizzato la crittoanalisi diventa molto difficile se il messaggio è lungo, il metodo è inefficiente

RSA pseudorandom bit generator #define MAX_LUNGHEZZA 256 void RSAGenerator(intero z[MAX_LUNGHEZZA],intero l){ intero n,p,q; intero phi; intero x[MAX_LUNGHEZZA]; p=prime(1000,5000); q=prime(1000,5000); n=p*q; phi = (p-1)*(q-1); intero e = random(1,phi); while(mcd(e,phi)!=1) e = random(1,phi); x[0]=random(1,n-1); //seme for (intero i=1;i<=l;i++) { x[i]=powermod(x[i-1],e,n); z[i-1]=x[i]%2; printf("%d",x[i]%2); } 1. Si sceglie a caso due grandi primi p e q 2. Si calcola 2.1 n = pq 2.2 F = (p-1)(q-1) 2.3 e tale che MCD(e,F) = 1 3. Si sceglie a caso un seme x0 < n-1 (N.B. Intel generator consigliato) 4. Si itera quanto serve 4.1       xi = xi-1e mod n, 4.2       bi = xi mod 2 (N.B. bi è il bit meno significativo di (xi)2

Cifratura ciclica Numeri casuali generati in modo crittografico proposta da Meyer e Matyas nel 1982 a partire da una master key (seme) si produce una sequenza di chiavi di sessione si usa un contatore avente periodo N il valore del contatore viene usato come chiave (o come testo in chiaro) in un crittosistema simmetrico ogni volta che viene usato, il contatore viene incrementato

Cifratura ciclica Numeri casuali generati in modo crittografico per rafforzare ulteriormente lo schema si può usare una sequenza di input più complicata contatore con periodo N C C+1 master key km ENC xi = Ekm(C+1)

Keystream nel modo OFB Numeri casuali generati in modo crittografico si può anche usare il modo di funzionamento OFB di un crittosistema simmetrico per generare un keystream, che poi si usa come l’output di un PRNG Ek m1 c1 z0 z1 z2 m2 c2

ANSI X9.17 Numeri casuali generati in modo crittografico è uno dei PRNG crittografici migliori tra quelli noti viene usato in PGP utilizza 3DES come indicato in figura (vedere prossima slide) input: DTi: rappresentazione a 64 bit della data e dell’ora attuali. Viene aggiornato ad ogni blocco pseudocasuale generato Vi: seme da 64 bit chiavi: k1, k2: da 64 bit ciascuna Vengono usate nei tre moduli di 3DES, in modalità EDE (encryption – decryption – encryption)

ANSI X9.17

ANSI X9.17 output: Ri: blocco pseudocasuale da 64 bit Vi+1: valore aggiornato del seme dalla figura si vede che: Ri = EDEk1,k2(Vi  EDEk1,k2(DTi )) Vi+1 = EDEk1,k2(Ri  EDEk1,k2(DTi )) riassumendo, il PRNG: usa una chiave da 112 bit vengono fatte nove cifrature/decifrature con DES si usano i valori pseudocasuali DTi e Vi, che cambiano ad ogni valore prodotto

ANSI X9.17 per quanto riguarda la sicurezza: la quantità di informazioni da compromettere è enorme anche se Eve riesce a trovare un Ri, non riesce comunque a trovare i successivi

Generatore di Blum, Blum e Shub (BBS) Numeri casuali generati in modo crittografico Generatore di Blum, Blum e Shub (BBS) proposto nel 1986 siano p e q numeri primi (grandi) tali che: p  3 mod 4, q  3 mod 4 sia n = p q si sceglie a caso s tale che MCD(s, n) = 1 (s non è multiplo né di p né di q) il generatore produce la sequenza di bit: B1, B2, … con il seguente algoritmo

Generatore di Blum, Blum e Shub (BBS) BBS(s) X0 = s2 mod n i = 1 while (true) do Xi = (Xi-1)2 mod n Bi = Xi mod 2  Bi = lsb(Xi) la sicurezza si basa sulla (congetturata) difficoltà di fattorizzare n

Blum-Blum-Shub generator N = 3 + k.4 N primo? k = k + 1 k = 0 NO (Teorema di Dirichlet): “se MCD(a,n) = 1, allora esistono infiniti numeri primi del tipo p=a+k.n” Si scelgono due grandi e diversi primi p e q, congruenti a 3 modulo 4 Si calcola n = p.q. Si sceglie a caso un s < n-1 tale che MCD(s,n) = 1 Si calcola x0 = s 2 mod n Si itera quanto serve 5.1       xi = xi-1 2 mod n, 5.2       bi = xi mod 2. L’efficienza è alta: una quadratura per passo la sicurezza si basa sulla (congetturata) difficoltà di fattorizzare

Blum-Blum-Shub generator #define MAX_LUNG 256 void BBSgenerator(interoz[MAX_LUNG],intero l){ intero p,q; intero n,s; intero x[MAX_LUNGHEZZA]; do{ p=prime(1000,5000); while(!congruente(p,3,4)) p=prime(1000,5000); q=prime(1000,5000); while(!congruente(q,3,4)) q=prime(1000,5000); } while (p!=q); n=p*q; s=random(1,n-1); //seme while(mcd(s,n)!=1) s = random(1,n-1); x[0]=powermod(s,2,n); for (intero i=1;i<=l;i++) { x[i]=powermod(x[i-1],2,n); z[i-1]=x[i]%2; printf("%d",x[i]%2); }

Generatore di Blum, Blum e Shub (BBS) si dimostra che BBS supera il next-bit test ovvero, non esiste nessun algoritmo polinomiale che, dati i primi k bit della sequenza di output: B1, B2, …, Bk è in grado di indovinare il (k+1)-esimo (cioè Bk+1) con probabilità > ½

Generatori di numeri realmente casuali (TRNG) Si ottengono campionando processi naturali non prevedibili Intel ha sviluppato un circuito integrato che campiona il rumore termico amplificando la tensione misurata ai capi di una resistenza Bell Labs utilizza una tecnica che sfrutta le variazioni nel tempo di risposta delle richieste di lettura di un settore di un disco rigido Vi sono problemi legati alla reale casualità e alla distribuzione in rete di tali numeri casuali.

Skew Un TRNG può non rispettare la richiesta di omogeneità nella distribuzione di 0 e 1. Per ridurre tale inconveniente sono stati sviluppati alcuni algoritmi chiamati algoritmi di deskew. Uno di questi medodi utilizza funzioni hash generate con MD5 o SHA-1