42
IDUL 2010 COMPRESSIONE E CRIPTAZIONE

IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Embed Size (px)

Citation preview

Page 1: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

IDUL 2010

COMPRESSIONE E CRIPTAZIONE

Page 2: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressione

Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in uso

Page 3: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressione di dati

Comprimere dei dati significa ricodificarli in un modo che permetta di occupare un numero minore di byte rispetto alla codifica originale, preservando (interamente o parzialmente) il contenuto.

Metodo generale: eliminare l’informazione ridondante—quella che può essere ricostruita a partire da altre informazioni presenti nel documento stesso

La ricostruzione deve essere:

Effettuabile in maniera puramente meccanica senza bisogno di alcuna conoscenza specifica sul tipo di

dato che è stato compresso Idealmente, la codifica e specialmente la decodifica devono

essere computazionalmente leggere (per tempo e memoria)

Page 4: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressione di dati: metodi generali

Immagini: zone di colore uniforme possono essere codificate insieme, regolarità geometriche catturate da formule, immagini in movimento possono essere rappresentate specificando solo ciò che cambia sulla scena.

Musica: non tutti i suoni sono ugualmente percepibili all’orecchio umano. L’ MP3 comprime danneggiando i suoni meno percepibili.

Testi: I caratteri di un testo in una lingua umana sono disposti in maniera NON casuale. Esistono molte regolarità nella successione delle lettere di una lingua, che permettono di omettere determinate informazioni e ricostruirle integralmente.

Page 5: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressione con e senza perdite

Se il processo di decompressione porta a dati che sono identici a quelli che sono stati compressi in origine, si dice che la compressione è senza perdite (”lossless”): (i dati prima della compressione sono identici a quelli che sono stati compressi e poi decompressi.)

Se invece il risultato della decompressione è un file simile ma non identico a quello originale, si parla di compressione con perdite (“lossy”)

Esempi di compressione lossy sono i formati MP3, JPEG, MPEG, divx, ogg vorbis, ecc.

Page 6: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

GIF VS. JPEG

GIF (75279 bytes) JPEG (15975 bytes)

Page 7: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

JPEG: PIU’ / MENO COMPRESSO

Page 8: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Tecnica del “dithering”: alternare pixel di colori diversi per ottenere un colore intermedio.

Vedi il sito:

http//www.siriusweb.com/tutorials/gifvsjpg/

Rappresentare colori intermedi

Page 9: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

SUONO ORIGINALE VS. MP3

CD: Musica campionata 44100 volte al secondo 16 bit per campione Campioni per canali sinistro e destro (stereo) Totale: 1 411 200 bits x secondo = 32 MB per una canzone di 3 minuti

Page 10: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

MP3

Sfrutta conoscenza dei limiti dell’udito umano per ridurre la quantità di informazione da immagazzinare: Escludi suoni che l’orecchio non può udire Quando c’è un suono particolarmente rumoroso,

non registrare gli altri suoni Fattore di riduzione: anche 10 volte (= 3MB

per canzone “media”)

Page 11: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressione senza perdite

Viste le caratteristiche del linguaggio umano, per i testi, come per i programmi, si usano solo metodi di compressione ”lossless” (in cui cioè, decomprimendo, si ottiene un testo identico a quello da cui si era partiti).

Infatti, perdere un solo byte in un programma comprometterebbe in modo irreparabile il suo funzionamento, così come perdere un ”non” in una asserzione ne invertirebbe il significato.

Si ottiene così un rapporto di compressione medio attorno al 40% (variabile, a seconda del grado di ridondanza dei testi ed all’algoritmo usato).

Page 12: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Esempio: Codifica di Huffman

Un modo per comprimere senza perdite un insieme di dati è codificarli in modo tale che i tipi di dati più frequenti siano codificati con meno bit.

Il messaggio è accompagnato da una tabella di codifica (che varierà da testo a testo)

Page 13: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Algoritmo di Huffman Supponiamo di ordinare le lettere minuscole dell’ italiano in

base alla frequenza con cui appaiono. In ordine di frequenza decrescente, otterremo ad esempio la serie:

<spazio> e a o i n r t l c s u d p m , h v g b . f ‘ ’ z q ” ?

Se potessimo usare meno bit per rappresentare le lettere sulla sinistra che quelle sulla destra avremmo un modo per rappresentare in modo più compatto il testo. Esempio:

1. <spazio> = 0 (1 bit) 5. i = 11110 (5 bit)

2. e = 10 (2 bit) …

3. a = 110 (3 bit) …

4. o = 1110 (4 bit) ? = 1111111111111111111111111111

Page 14: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in
Page 15: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Osservazioni:

La compressione funziona solo perché la probabilità di lettere diverse è molto diversa (vocali vs. consonanti vs. segni di interpunzione)

Prima di codificare il messaggio l’algoritmo deve analizzarlo interamente e costruire una tabella di codifica basata sulla frequenza.

Algoritmi più raffinati sostituiscono alla frequenza assoluta la probabilità basata sul contesto (p.es. “u” dopo “q” è più probabile che dopo “z”)

Page 16: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Esempio 2: informazione messa a fattore

“A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A A A A A A A A A A A A A A A A A A AA A A A A A A A A A A” (600 byte)

= “300 volte ‘A ’ ” (13 byte)

Metodo usato p.es. nelle immagini per aree di colore uniforme.

Page 17: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Algoritmo LZ77

Page 18: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressibilità ed entropia

Entropia: misura della quantità di incertezza legata allo stato di un sistema con più stati possibili.– 1 moneta: 1 bit di entropia– 2 dado: 6 esiti (2.58 bit di entropia)

Tutti i sistemi di compressione sfruttano una ridondanza nella informazione. Un testo formato da sequenze puramente casuale di caratteri non può essere compresso (massima entropia x bit)

Più un testo contiene sequenze simili, più è suscettibile ad essere compresso.

Page 19: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Compressibilità ed entropia

La relazione tra entropia e comprimibilità è stata sfruttata al contrario per misurare la “distanza” tra “testi” diversi. Porzioni di DNA Testi in lingue diverse (tipologia linguistica) Testi di autore sconosciuto (stilometria, ecc.)

Si veda: Baronchelli, Caglioti, Lorento 2006

Page 20: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

TEORIA DELL’INFORMAZIONE

Dobbiamo a Claude Shannon e Warren Weaver la prima definizione teorica rigorosa del concetto di comunicazione ed il primo schema astratto di tutti i processi comunicativi, elaborati alla fine degli anni ‘40

Page 21: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

LA COMUNICAZIONE SECONDO SHANNON & WEAVER

La comunicazione è il trasferimento di informazioni mediante segnali da una fonte a un destinatario

Lo schema della comunicazione di Shannon e Weaver è un modello astratto della comunicazione. Esso ha l’obiettivo di individuare la forma generale di ogni processo comunicativo e i fattori fondamentali che lo costituiscono, quegli elementi, cioè, che devono essere presenti ogni qual volta si verifichi un passaggio di informazione

Page 22: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

IL MODELLO ‘NOISY CHANNEL’

Page 23: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

TEMI CENTRALI DELLA TEORIA DELL’INFORMAZIONE

Entropia come misura della quantità di incertezza o informazione presente in un segnale.

Informazione come SCELTA tra ALTERNATIVE Un MESSAGGIO viene usato per comunicare

quale tra queste alternative e’ vera / interessa. Come e’ possibile sviluppare il codice più

efficiente (= che richiede il minor numero di bit) per trasmettere questa informazione?

Page 24: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

MINIMO NUMERO DI BIT RICHIESTI PER CODICE

Con 2 bit si codificano 4 distinzioni (22) Con 3 bit si codificano 8 distinzioni (23) … Con N bit si possono codificare 2N distinzioni

differenti

In generale, se devo rappresentare N distinzioni, devo usare almeno log2 N bit

Page 25: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

NUMERO DI BIT NECESSARI PER RAPPRESENTARE INFORMAZIONE

Se il problema è quello di dover rappresentare M informazioni differenti si deve selezionare il numero di N bit in modo tale che

2N >= M Esempio: per rappresentare 40 informazioni

differenti devo utilizzare 6 bit perché 26 = 64

5 bit non sono sufficienti perché 25 = 32

Page 26: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Programmi di compressione Gran varietà di programmi di (de)compressione,

parzialmente incompatibili tra loro. Trattandosi di programmi che funzionano su qualsiasi tipo di dato, adottano sempre compressione senza perdite.

Il più noto, ma non il più efficiente, è probabilmente WinZip (shareware). Crea file con suffizzo .zip Effettua sia (de)compressione che (de)archiviazione (il processo di raccolta di un insieme di cartelle, sotto cartelle e file in esse contenuti in un unico file, che può poi venire compresso e trasmesso facilmente e poi riaperto ricostruendo la struttura originale)

Page 27: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Programmi di compressione

Si stanno diffondendo numerosi programmi basati su algoritmi alternativi, più rapidi o con un migliore rapporto di compressione rispetto al formato “zip”. Da citare:

Formato bzip2 (variante migliorata del formato gzip, crea file con suffisso .bz2)

WinRAR (programma commerciale), basato su formato di compressione RAR, crea file con suffisso .rar

7-zip (programma open source, scaricabile gratuitamente da http://sourceforge.net/projects/sevenzip/), basato sul formato 7z (grado di compressione dichiarata: dal 30 al 70% migliore del formato zip). Crea file con suffisso .7z

Formati PAQ: ottengono eccellente compressione senza perdite, al costo di tempi di compressione molto lenti e grande uso di memoria.

Page 28: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Programmi di compressione (2)

Con alcuni programmi è possibile creare file compressi “autoscompattanti ’; si tratta di file .exe che una volta attivati si decomprimono automaticamente.

Altri formati (ad esempio .msi “Microsoft Installer”) fanno partire il programma di installazione che decomprime il contenuto del file (in questo caso, un programma) e lo installa.

Un limite pratico di tali formati è che, trattandosi di programmi eseguibili, sono un buon veicolo per la diffusione di virus.

Page 29: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Criptazione Al contrario che nel mondo degli oggetti fisici, in cui il

modo di preservare la proprietà di un oggetto è principalmente quello di impedire l’ appropriazione indebita da parte di terzi, nel mondo delle informazioni trasmesse a distanza la possibilità di criptare dati trasmessi in modo che non siano comprensibili a terzi stà diventando il sistema prevalente di difesa delle informazioni.

Notate che mentre un file si può comprimere una sola volta (dati già compressi non possono essere compressi ulteriormente), si può criptare più di una volta (proprio come un testo può essere tradotto da una lingua ad un’altra e da qui ad una terza, ecc. mentre non si può riassumere all’ infinito).

Page 30: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Un esempio di criptazione ‘minima’:

Slq rleet ilq hfrrps ip stabzf dpbfrp zpbztdfp ulz csf alqdf tahczfhol‘ qf ipzpbbf dpf lzf arfzzpbf.Fo vcfsbt f ipz vcfq lzf l‘ htaf iczflabf alqdf alqdfnnpf l fauzf l mtzblhol slq ulsaplz zpstdf qf ufczf!Bfsb’l‘ frfzf hol utht l‘ upc‘ rtzblrf ulz bzfbbfz ilq gls ho’pt dp bztdfp,ipzt‘ ilqq’fqbzl htal ho’pt d’ot ahtzbl...

Page 31: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Come aprire il codice La chiave per decifrare il testo è 6: mettendo in corrispondenza

due alfabeti slittati di 6 posti e ruotati in modo che la A segua la Z, cioè:

A B C D E F G H I L M N O P Q R S T U V Z S T U V Z A B C D E F G H I L M N O P Q R 1 2 3 4 5 6 ...

e facendo corrispondere i caratteri della riga di sopra a quelli della riga di sotta si decifra il testo.

Page 32: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Come rompere il codice Due aspetti:

Capire di che codice si tratta. Trovare in qualche modo la chiave.

Nel caso banale della rotazione, si può procedere per tentativi, o con statistiche sulla probabilità di ciascuna lettera (se la lettera A ha una certa probabilità di occorrere in un testo, la lettera che corrisponde alla A si tradirà, in testi sufficientemente larghi, per il fatto di avere la stessa probabilità).

Page 33: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Nella criptografia ‘semplice’, si usa la stessa chiave per ‘chiudere’ (= criptare) ed ‘aprire’ (= decriptare) il messaggio (esempio: USA Federal Data Encryption Standard (DES)).

Per motivi matematici, più la chiave è lunga, maggiore è la sicurezza del messaggio. Anche gli algoritmi posso avere vari gradi di sicurezza

Una chiave troppo corta è suscettibile a metodi di attacco “a forza bruta” (=provare tutte le combinazioni)

Page 34: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Quale password è sicura?

Alcuni suggerimenti: Password solo numeriche sono meno sicure (date di

nascita, numeri di telefono sono facili da scoprire). Meglio usare iniziali di una frase (Abito In Via

Cesare Battisti 2) p.es. o di un titolo (ma meglio non “3MSC”).

Usare sia lettere maiuscole che minuscole. Inserire dei numeri nella password.

Page 35: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Limiti della criptazione semplice

Se non c’è un modo sicuro di trasmetter la chiave, chi si impossessa della chiave può leggere il messaggio.

E se c’era un modo sicuro per trasmettere la chiave, perché non si è usato per trasmettere il messaggio stesso?

Page 36: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Soluzione: Sistema cifrato a chiave doppia

Una chiave fa il contrario di quello che fa l’altra: se una chiude, l’altra apre, e viceversa. La stessa chiave non può sia aprire che chiudere lo stesso documento.

Una chiave è pubblica (diffusa su internet, pubblicata da fonti autorevoli, e potenzialmente nota a tutti), l’altra chiave è privata e segreta.

E’ impossibile dedurre una chiave conoscendo l’altra. Esempio: algoritmo RSA, basato sul concetto di “funzione a

senso unico”, una funzione f() in cui : Facile: x f(x) Difficile: f(x) x (Esempio: la moltiplicazione di due numeri primi )

Page 37: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Come si usa?

Per mandare un messaggio sicuro:

1. Il mittente si procura la chiave pubblica del destinatario (p.es trovandola su internet)

2. Il mittente usa la chiave pubblica del destinatario per ‘chiudere’ (criptare) il proprio messaggio, e lo spedisce.

3. Il destinatario riceve il messaggio ed usa la propria chiave privata per aprirlo (decriptarlo).

4. Se un terzo si impossessasse del messaggio, potrebbe facilmente sapere le chiavi pubbliche di mittente e destinatario, ma non quella privata del destinatario. Poiché quest’ultima è indispensabile per aprire il messaggio, esso resterebbe indecifrabile.

Page 38: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Come si usa?

Per trasmettere un messaggio autenticato (”firma elettronica ”)

1. Il mittente usa la propria chiave privata per criptare il messaggio, e lo spedisce.

2. Il destinatario, ricevendo il messaggio, usa la chiave pubblica del mittente per aprirlo.

3. Se il messaggio non si ‘apre’, vuol dire che il mittente non era quello dichiarato, ma un terzo che ha tentato di ‘falsificare’ la firma.

I due sistemi si possono combinare insieme, criptando un messaggio 2 volte. E garantendo sia la vera origine del messaggio che il suo contenuto.

Page 39: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Messaggio di A

Chiave pubblica A

Chiave privataA

A

Messaggio di A

Chiave pubblica B

Chiave privataB

B

Criptazione

Trasmissione

Decriptazione

Trasmissione sicura

Page 40: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Messaggio di A

Chiave pubblica A

Chiave privataA

A

Messaggio di A

Chiave pubblica B

Chiave privataB

B

Criptazione

Trasmissione

Decriptazione

Firma digitale

Page 41: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

Messaggio di A

Chiave pubblica A

Chiave privataA

A

Messaggio di A

Chiave pubblica B

Chiave privataB

B

Criptazione 1

Trasmissione

Decriptazione 2

Trasmissione sicura + firma digitale

Criptazione 2

Decriptazione

Page 42: IDUL 2010 COMPRESSIONE E CRIPTAZIONE. Compressione Concetto di compressione Compressione con e senza perdite Esempi Principali programmi e formati in

RIFERIMENTI / SITI

Rappresentazione digitale delle immagini e compressione: http://www.med.unifi.it/didonline/anno-I/informatica/n

ode3.html JPEG: http://www.brycetech.com/tutor/windows/jpeg_compression.html

MP3: http://it.wikipedia.org/wiki/MP3