Seminario per il corso di Sistemi Operativi mod

Slides:



Advertisements
Presentazioni simili
ERREsoft1 Basi matematiche del sistema RSA Pierluigi Ridolfi Università di Roma La Sapienza marzo 2000.
Advertisements

INFORMATICA Altre Istruzioni di I/O
Torniamo al primo problema. Come fare acquisti sicuri via Internet? Come trasmettere informazioni in modo riservato?
LINGUAGGIO DI PROGRAMMAZIONE C
Programmazione dinamica: problema della sottosequenza più lunga
Realizzazione in PARI/GP
I cifrari a chiave pubblica: Introduzione alle curve ellittiche
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Per crittografia si intende la protezione
Sistemi di elaborazione delle informazioni
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Iterazione enumerativa (for)
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Algoritmi e strutture Dati - Lezione 7
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Superman è stato qui!!!.
Algoritmi e Strutture Dati
Corso di Informatica per Giurisprudenza
1 Implementazione di Linguaggi 2 Implementazione di Linguaggi 2 Federico Bernardi Type checking 2° parte Type checking 2° parte - Equivalenza di type expressions.
Prof. Zambetti -Majorana © 2008
Strutture di controllo in C -- Flow Chart --
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Gli esseri viventi ricevono informazione direttamente dal mondo circostante e dai propri simili attraverso i sensi (percezione). La percezione, tuttavia,
Codifica binaria Rappresentazione di numeri
I File.
CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.
Scritture Segrete Lezione n. 2
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
CONVERSIONE NUMERI INTERI CON COMPLEMENTO A DUE. I computer di oggi effettuano ogni tipo di operazione numerica, ma le prime ALU degli anni 50 erano in.
CORSO DI CRITTOGRAFIA Terzo incontro PROGETTO LAUREE SCIENTIFICHE
LA CRITTOGRAFIA QUANTISTICA
Metodo della moltiplicazione
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ò.
L’inventore del calcolatore odierno
“ Firma Digitale “ Informatica e Teleradiologia
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
Radix-Sort(A,d) // A[i] = cd...c2c1
“La firma elettronica per Pavia Digitale”
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
Cenni di Crittografia Il procedimento di crittografia consiste nel rendere illeggibile un testo in chiaro mediante l’uso di un determinato algoritmo e.
Capitolo 8 La sicurezza nelle reti
RSA e questioni relative
Crittografia MITTENTE DESTINATARIO messaggio messaggio chiave-1
I Numeri primi Eratostene e la crittografia.
Rappresentazione dell’informazione nel calcolatore.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
UNIVERSITÀ DEGLI STUDI DI PAVIA Anno accademico 2009/2010 Sicurezza e frodi informatiche in Internet: la Firma Digitale come garanzia di autenticità e.
Sicurezza informatica
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Crittografia/ Steganografia
Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Crittografia. Introduzione  La rete può essere utilizzata per diversi scopi: informazione, scambio dati, scambio messaggi, trasferimento denaro.  Nel.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
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",
Sicurezza dei Sistemi Informatici L.S. in Ingegneria Informatica Docente: Prof. Giuseppe Mastronardi CRITTOGRAFIA E CRITTOANALISI ATTACCHI AI SISTEMI DI.
Transcript della presentazione:

Seminario per il corso di Sistemi Operativi mod Seminario per il corso di Sistemi Operativi mod. B Anno accademico 2004/2005 MERKLE-HELLMAN KNAPSACK CRYPTOSYSTEM Acampa Paolo 566/669 Cilmo Valerio 566/654

Merkle-Hellman Knapsack Criptosystem Introduzione Crittografia simmetrica Crittografia asimmetrica Il problema dello zaino Merkle-Helman knapsack Creazione della chiave pubblica e privata Criptare un messaggio Decriptare un messaggio Algoritmo sequenza super crescente Esempio Conclusioni

Introduzione La crittografia è l'arte che crea ed usa i sistemi di crittografia. Un sistema di crittografia è un metodo per rendere illeggibili i messaggi, in modo da renderli decodificabili solo dal destinatario prestabilito. I sistemi di crittografia sono chiamati anche sistemi di cifratura. L'arte di scardinare i sistemi di cifratura è chiamata crittoanalisi. La scienza che studia la crittografia e la crittoanalisi è chiamata crittologia (dal greco kryptos , che significa 'nascosto' e logos, che significa 'discorso, parola' ).

Introduzione Il messaggio originale è chiamato testo in chiaro, ed il messaggio codificato è chiamato testo cifrato. Quando si codifica un messaggio, si utilizza una procedura che lo converte in testo cifrato. Questa procedura è chiamata cifratura. Viceversa, quando si vuole rendere leggibile un messaggio, si usa il procedimento opposto, chiamato decifratura.

Crittografia simmetrica La crittografia tradizionale è basata su una chiave segreta. Un mittente che vuole inviare un messaggio cifrato a qualcuno, lo cifra usando una chiave segreta ed il destinatario lo decifra usando la stessa chiave segreta. Ovviamente, sia il mittente che il ricevente di quel messaggio devono conoscere la stessa chiave segreta. Questo metodo è conosciuto come crittografia a chiave segreta o crittografia simmetrica. Il problema principale è che il mittente ed il ricevente devono accordarsi su una chiave segreta comune, e devono usare un canale sicuro per scambiarsi questa informazione.

Crittografia simmetrica

Crittografia asimmetrica Per queste ragioni venne inventato un altro sistema di crittografia: il sistema a chiave pubblica (chiamato anche sistema crittografico asimmetrico). Con algoritmi di questo tipo ognuno ha due chiavi: una pubblica da distribuire a tutti quelli con cui si vuole comunicare, e una privata da tenere segreta. Ciò che viene cifrato con la chiave pubblica (operazione che può essere fatta da chiunque) può essere decifrato solo con la chiave privata corrispondente (operazione che può essere fatta solo dal proprietario della chiave): in questo modo non c'è più il problema di comunicare segretamente la chiave.

Crittografia asimmetrica

Crittografia asimmetrica Il concetto di crittografia a chiave pubblica fu introdotto da Martin Hellman, da Ralph Merkle e da Whitfield Diffie all'università di Stanford nel 1976. Ma il primo sistema crittografico a chiave pubblica, il knapsack, fu sviluppato nel 1978 da Merkle e da Hellman.

Il problema dello zaino Il problema dello zaino (knapsack) dice: dato il peso totale di uno zaino pieno e quello dei singoli oggetti che vi possono essere contenuti, determinare qual è il contenuto in modo che il peso complessivo risulti uguale a quello dato. In termini matematici, il problema è determinare se alcuni membri di un particolare gruppo di interi danno per somma un altro intero. Se il gruppo è costituito da 1, 2, 4, 8, 16 e 32, e la somma data è 37, la risposta è vera perché 1+4+32=37.

Il problema dello zaino Fa parte dei problemi NP-completi, ed in qualità di tale, ammette un algoritmo rapido per la verifica delle soluzioni, ma non si sa se è consentito un procedimento rapido per la ricerca delle soluzioni.

Il problema dello zaino L'idea di Merkle e Hellman è che qualcuno possieda un grande numero di oggetti, ciascuno con un differente peso. Il proprietario codifica il messaggio scegliendo segretamente un sotto-insieme degli oggetti e mettendoli nello zaino. Il peso totale degli oggetti nello zaino è reso pubblico, come la lista di tutti i possibili oggetti. La lista degli oggetti nello zaino è mantenuta segreta. Con determinate restrizioni aggiuntive si pensava che il problema di immaginare una possibile lista di oggetti con il dato peso fosse computazionalmente impossibile, e costituì la base dell’algoritmo a chiave pubblica.

Merkle-Hellman Knapsack Dato uno zaino con un peso prefissato P, e k oggetti di peso p1, p2, …, pk rispettivamente; il problema è se è possibile scegliere alcuni dei k oggetti in modo che essi riempiano esattamente lo zaino, cioè la somma dei loro volumi eguagli P. In realtà non si conosce nessun algoritmo polinomiale di soluzione del problema. In compenso, esistono metodi rapidissimi di verifica: infatti, se conosciamo la soluzione, è semplice controllarla, basta riempire lo zaino con gli oggetti scelti e realizzare, appunto, che essi lo occupano senza lasciare spazi vuoti e senza farlo scoppiare.

Creazione della chiave pubblica e privata La semplicità della verifica della soluzione è data dal concetto di sequenza supercrescente. Questa è formata da p1, p2, …, pk interi tali che, per ogni i < k, pi > . Tale sequenza rappresenta la chiave privata. Questa viene nascosta tramite il seguente procedimento rendendola pubblica: - Si sceglie un intero W tale che 1 < W < P - 1 e che P e W siano primi tra loro; Si sceglie una permutazione casuale π degli interi 1, 2, …, k

Creazione della chiave pubblica e privata Sulla base di π, calcolare ai = Wpπ(i) mod P per ogni i=1,2,…,k A questo punto, un utente, A, possiede le due chiavi: la pubblica per A, formata da (a1, a2, …, ak); la privata per A, formata da (π,P,W,(p0, p1, …, pk));

Criptare un messaggio L’ utente B, qualora decidesse di criptare un messaggio da mandare ad A, procede come segue: - Ottiene la chiave pubblica da A; scrive il messaggio tramite sequenze (e1, e2, …, ek) di lunghezza k di numeri binari; calcola il valore X = ; spedisce X all’utente A.

Decriptare un messaggio L’ utente A, ricevuto il messaggio criptato X da B, esegue le seguenti operazioni per decriptarlo: - calcolare il valore di D = W-1 X mod P utilizzando l'algoritmo per risolvere la sequenza super crescente, trovare la sequenza binaria r1, ... rk tale che D = r1*p1 + ... + rk*pk - i bit del messaggio in chiaro sono dati da ei=r(πi) con i = 0...k.

Algoritmo sequenza super crescente Dato in input una sequenza super crescente p=(p1...pk) e un intero P dato dalla somma di una sottosequenza di p. Restituisce in output una sequenza binaria r = (ri...rk) tale che i=k while i>=1 do if P>=pi then ri=1 and P=P-pi else ri=0 return r=(r1...rk)

Esempio L'utente A crea la chiave privata e quella pubblica: sceglie una sequenza supercrescente: p= 1,2,4,10,20,40. e come permutazione quella identica: (π)=1,2,3,4,5,6 La chiave privata è (P=110;W=31;p=(1,2,4,10,20,40); π) La chiave pubblica è a=(31,62,14,90,70,30)

Esempio L'utente B vuole spedire il messaggio “ciao” ad A. Prende la chiave pubblica da A: a=(31,62,14,90,70,30) “ciao” viene scritto secondo una codifica in bit dei caratteri: c=000011; i=001001; a= 000001; o= 001111. cripta il messaggio ottenendo per ogni carattere: c=70+30=100; i=14+30=44; a=30; o=14+90+70+30=204. Il messaggio criptato inviato ad A è (100,44,30,204)

Esempio L'utente A, ricevuto il messaggio (100,44,30,204) lo decripta: calcola D= 100*71 mod 110=60 applicando l'algortimo della sequenza supercrescente con valori p=(1,2,4,10,20,40) e P=60 otteniamo r=(0,0,0,0,1,1). Dato che abbiamo utilizzato la permutazione identica corrisponde appunto al carattere “c”. Lo stesso procedimento va applicato per le altre lettere.

Conclusioni L'algoritmo knapsack di Merkle-Hellman non è considerato sicuro e viene usato raramente. Questo come i successivi schemi basati sul problema dello zaino sono stati tutti forzati, ad eccezione dello schema di Chor-Rivest.

FINE