Funzioni di hash sicure: MD5 e SHA-1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Funzioni di hash sicure: MD5 e SHA-1"

Transcript

1 POLITECNICO DI MILANO Funzioni di hash sicure: MD5 e SHA-1 CEFRIEL - Politecnico di Milano [email protected] Funzioni di hash Una funzione di hash (o message digest) è una funzione H che, dato un input M di dimensione qualsiasi, produce un output h (l hash) di dimensione fissa: h = H(M) Lo scopo di una funzione di hash è di creare un impronta (fingerprint) del messaggio. Dato che l output ha lunghezza fissa (in genere dell ordine di una o poche centinaia di bit), esisteranno necessariamente diversi messaggi che generano lo stesso hash... ma non è detto che si riesca a trovarli

2 Unidirezionalità Una funzione di hash sicura deve essere unidirezionale (one-way), cioè: dato un qualsiasi M, deve essere computazionalmente semplice calcolare H(M); dato un qualsiasi h, deve essere computazionalmente impraticabile calcolare un M tale che h = H(M); L idea è che l hash di un messaggio sia in sostanza una corrispondenza pseudocasuale, per cui non è possibile prevedere in alcun modo il risultato se non calcolando l hash. Messaggi diversi, anche per un solo bit, devono generare hash non correlati Assenza di collisioni (1) Una funzione di hash sicura deve essere senza collisioni (collision-resistant): dato un qualsiasi M, deve essere computazionalmente impraticabile trovare un M M tale che H(M ) = H(M) (funzione debolmente senza collisioni); deve essere computazionalmente impraticabile trovare una coppia (M, M ), con M M, tale che H(M) = H(M ) (funzione fortemente senza collisioni). L idea è che, anche se necessariamente esistono messaggi diversi che producono lo stesso hash, non è praticabile trovarli

3 Assenza di collisioni (2) Le due proprietà sull assenza di collisioni (debole e forte), corrispondono a due diversi tipi di attacchi a forza bruta: attacco a forza bruta semplice : trovare un messaggio che produca un dato hash (cioè un hash uguale a quello di un messaggio dato); attacco del compleanno (birthday attack): trovare due messaggi che producano lo stesso hash, indipendentemente dal valore di questo hash. La complessità dei due attacchi è molto diversa! se l hash è lungo m bit, la complessità del primo è 2 m, quella del secondo è 2 m/ Che cosa NON è un hash Un hash non è né una firma né un MAC (Message Authentication Code), di per sè non garantisce autenticazione e/o integrità. Nel calcolo di un hash non si inserisce nessuna informazione segreta, per cui chiunque può generare l hash corretto di qualunque messaggio. Una funzione di hash non è un algoritmo di cifratura. Calcolare l hash di un messaggio non equivale a cifrarlo: il calcolo di un hash non include nessuna chiave, e soprattutto è un operazione non invertibile

4 MD5 e SHA-1 Le due funzioni di hash sicure attualmente più diffuse sono MD5 e SHA-1, che hanno una struttura simile. costante messaggio ( padding) hash hash 512 bit 512 bit hash 512 bit message digest MD5 MD5 (Message Digest 5) è stato progettato da Ron Rivest, ed è definito in RFC 1321 (1992). Il messaggio viene elaborato a blocchi di 512 bit. L hash è di 128 bit 128 bit. Ad ogni iterazione si calcola una funzione che prende in ingresso il blocco corrente del messaggio e il valore dell hash all iterazione precedente. L hash finale è quello risultante dall ultima iterazione. Non è più considerato molto sicuro (128 bit di hash non sono molti)

5 MD5: padding Prima di iniziare l elaborazione, si aggiunge al messaggio un padding in modo che la lunghezza totale risulti un multiplo di 512 bit: si aggiunge un bit a 1 e poi tanti bit a 0 quanto basta perché la lunghezza risulti di 64 bit minore rispetto a un multiplo di 512 bit (se la lunghezza originale è già corretta si aggiungono comunque 512 bit); si aggiungono 64 bit contenenti la lunghezza originale del messaggio (modulo 2 64 ) bit 64 bit messaggio originale lunghezza multiplo di 512 bit Elaborazione MD5 (1) Un iterazione MD5 (cioè l elaborazione su un blocco del messaggio) è composta da 4 passi. Indichiamo con: d i : i-esima parola (32 bit) del digest (i=0-3); m i : i-esima parola di un blocco di messaggio (i=0-15); T i = 2 32 sen i, (i=1-64); x: rotazione sinistra di x posizioni (su 32 bit); : somma modulo 2 32 ;,,, : rispettivamente AND, OR, NOT, XOR (calcolati bit a bit)

6 Elaborazione MD5 (2) Il valore del digest viene così inizializzato: d 0 = 0x , d 1 = 0xEFCDAB89, d 2 = 0x98BADCFE, d 3 = 0x Ogni passo prende in ingresso il valore corrente del digest e il blocco corrente del messaggio, e modifica (fornendolo in uscita) il valore corrente del digest. Il valore del digest in uscita dal quarto passo viene poi sommato (indipendentemente per le 4 parole d 0, d 1, d 2, d 3 ) al valore di ingresso al primo passo dell iterazione corrente; il risultato è il valore di uscita dell iterazione Elaborazione MD5 (3) Ogni passo è composto da 16 operazioni 16 operazioni. La i-esima (i=0-15) operazione ha la forma: d (-i) mod 4 = d (1-i) mod 4 (d (-i) mod 4 f p (d (1-i) mod 4, d (2-i) mod 4, d (3-i) mod 4 ) m j T k ) S p (i mod 4) ogni operazione: aggiorna uno dei 4 blocchi del digest (in ogni passo ogni blocco del digest viene aggiornato 4 volte); utilizza uno dei 16 blocchi del messaggio m j (in ogni passo ogni blocco viene usato una volta); utilizza una delle 64 costanti T k ; utilizza una funzione f p diversa per ogni passo; effettua una rotazione il cui valore è determinato da una funzione S p diversa per ogni passo;

7 Elaborazione MD5 (4) A (e.g. d 0 ) B (e.g. d 1 ) C (e.g. d 2 ) D (e.g. d 3 ) m j f p schema di una operazione MD5 T k S p (i mod 4) A (e.g. d 3 ) B (e.g. d 0 ) C (e.g. d 1 ) D (e.g. d 2 ) Elaborazione MD5: passo 1 Definiamo F(x,y,z) = (x y) ( x z). Per i=0-15 si esegue: d (-i) mod 4 = d (1-i) mod 4 (d (-i) mod 4 F(d (1-i) mod 4, d (2-i) mod 4, d (3-i) mod 4 ) m i T i1 ) S 1 (i mod 4) dove S 1 (0) = 7, S 1 (1) = 12, S 1 (2) = 17, S 1 (3) = 22. Le prime 5 di 16 operazioni sono quindi: d 0 = d 1 (d 0 F(d 1, d 2, d 3 ) m 0 T 1 ) 7 (i=0) d 3 = d 0 (d 3 F(d 0, d 1, d 2 ) m 1 T 2 ) 12 (i=1) d 2 = d 3 (d 2 F(d 3, d 0, d 1 ) m 2 T 3 ) 17 (i=2) d 1 = d 2 (d 1 F(d 2, d 3, d 0 ) m 3 T 4 ) 22 (i=3) d 0 = d 1 (d 0 F(d 1, d 2, d 3 ) m 4 T 5 ) 7 (i=4)

8 Elaborazione MD5: passo 2 Definiamo G(x,y,z) = (x z) (y z). Per i=0-15 si esegue: d (-i) mod 4 = d (1-i) mod 4 (d (-i) mod 4 G(d (1-i) mod 4, d (2-i) mod 4, d (3-i) mod 4 ) m (5i1) mod 16 T i17 ) S 2 (i mod 4) dove S 2 (0) = 5, S 2 (1) = 9, S 2 (2) = 14, S 2 (3) = 20. Le prime 5 di 16 operazioni sono quindi: d 0 = d 1 (d 0 G(d 1, d 2, d 3 ) m 1 T 17 ) 5 (i=0) d 3 = d 0 (d 3 G(d 0, d 1, d 2 ) m 6 T 18 ) 9 (i=1) d 2 = d 3 (d 2 G(d 3, d 0, d 1 ) m 11 T 19 ) 14 (i=2) d 1 = d 2 (d 1 G(d 2, d 3, d 0 ) m 0 T 20 ) 20 (i=3) d 0 = d 1 (d 0 G(d 1, d 2, d 3 ) m 5 T 21 ) 5 (i=4) Elaborazione MD5: passo 3 Definiamo H(x,y,z) = x y z. Per i=0-15 si esegue: d (-i) mod 4 = d (1-i) mod 4 (d (-i) mod 4 H(d (1-i) mod 4, d (2-i) mod 4, d (3-i) mod 4 ) m (3i5) mod 16 T i33 ) S 3 (i mod 4) dove S 3 (0) = 4, S 3 (1) = 11, S 3 (2) = 16, S 3 (3) = 23. Le prime 5 di 16 operazioni sono quindi: d 0 = d 1 (d 0 H(d 1, d 2, d 3 ) m 5 T 33 ) 4 (i=0) d 3 = d 0 (d 3 H(d 0, d 1, d 2 ) m 8 T 34 ) 11 (i=1) d 2 = d 3 (d 2 H(d 3, d 0, d 1 ) m 11 T 35 ) 16 (i=2) d 1 = d 2 (d 1 H(d 2, d 3, d 0 ) m 14 T 36 ) 23 (i=3) d 0 = d 1 (d 0 H(d 1, d 2, d 3 ) m 1 T 37 ) 4 (i=4)

9 Elaborazione MD5: passo 4 Definiamo I(x,y,z) = y (x z). Per i=0-15 si esegue: d (-i) mod 4 = d (1-i) mod 4 (d (-i) mod 4 I(d (1-i) mod 4, d (2-i) mod 4, d (3-i) mod 4 ) m (7i) mod 16 T i49 ) S 4 (i mod 4) dove S 4 (0) = 6, S 4 (1) = 10, S 4 (2) = 15, S 4 (3) = 21. Le prime 5 di 16 operazioni sono quindi: d 0 = d 1 (d 0 I(d 1, d 2, d 3 ) m 0 T 49 ) 6 (i=0) d 3 = d 0 (d 3 I(d 0, d 1, d 2 ) m 7 T 50 ) 10 (i=1) d 2 = d 3 (d 2 I(d 3, d 0, d 1 ) m 14 T 51 ) 15 (i=2) d 1 = d 2 (d 1 I(d 2, d 3, d 0 ) m 5 T 52 ) 21 (i=3) d 0 = d 1 (d 0 I(d 1, d 2, d 3 ) m 12 T 53 ) 6 (i=4) SHA-1 SHA-1 (Secure Hash Algorithm 1) è stato progettato dal NIST (l algoritmo SHA originale è stato sostituito con SHA-1 dal NIST stesso per via di una vulnerabilità non pubblicata). Il messaggio (che deve essere di lunghezza inferiore a 2 64 bit) viene elaborato a blocchi di 512 bit. L hash è di 160 bit 160 bit. Ad ogni iterazione si calcola una funzione che dipende dal blocco corrente del messaggio e dal valore dell hash all iterazione precedente; il risultato viene sommato (per singola parola) al valore dell iterazione precedente

10 SHA-1: inizializzazione Al messaggio viene aggiunto un padding (uguale a quello di MD5) Le 5 parole di 32 bit del digest (A, B, C, D, E) vengono inizializzate con: A = 0x , B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x , E = 0xC3D2E1F0. Ogni iterazione calcola dei valori di A, B, C, D, E che vengono sommati ai precedenti prima di passare all iterazione successiva. Alla fine, la concatenazione di A, B, C, D, E costituisce il digest del messaggio SHA-1: schema iterazione (1) Il blocco corrente di messaggio (512 bit) viene utilizzato per costruire una stringa di 5 x 512 bit (80 parole di 32 bit). Le prime 16 parole coincidono con il blocco del messaggio, le successive sono calcolate così: W i = (W i-3 W i-8 W i-14 W i-16 ) 1 (i=16-79) la rotazione di un bit è stata aggiunta in SHA-1 (è l unica differenza tra SHA e SHA-1). Si scorre la stringa di 80 parole una parola alla volta (80 operazioni), calcolando i nuovi valori A, B, C, D, E. Alla fine, i nuovi valori verranno aggiunti agli A, B, C, D, E precedenti

11 SHA-1: schema iterazione (2) Ogni iterazione è composta da 80 operazioni. Per i=0-79: B, C, D, E sono calcolati così: B = A C = B 30 D = C E = D A viene calcolato così: A = E (A 5) W i K i f i (B, C, D) dove K i vale: ( i = 0 19) 2 3 ( i = 20 39) i = i = e f i (B, C, D) vale: B C ~ B D ( ) ( ) ( ) ( i = 0 19) B C D ( i = 20 39, i = 60 79) ( B C) ( B D) ( C D) ( i = 40 59) ( ) SHA-1: schema operazione A B C D E f i schema di una operazione SHA W i K i A B C D E

12 MD5 vs. SHA-1 lunghezza hash lunghezza massima messaggio dimensione blocco messsaggio numero operazioni numero costanti additive numero funzioni primitive MD5 128 bit illimitata 512 bit SHA bit bit 512 bit (di cui 2 uguali)

Funzioni Hash. Impronta Digitale. L impronta digitale viene utilizzata per

Funzioni Hash. Impronta Digitale. L impronta digitale viene utilizzata per Funzioni Hash Impronta Digitale Impronta digitale di un messaggio L impronta digitale deve essere facile da calcolare difficile da invertire unica L impronta digitale viene utilizzata per garantire l integrità

Dettagli

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi La funzione Hash Garanzia dell integrità dei dati e autenticazione dei messaggi Come funziona l Hash function Associa stringhe di bit di lunghezza arbitraria e finita stringhe di bit di lunghezza inferiore.

Dettagli

Integrità dei messaggi. Funzioni di Hash e codici MAC. Message digest. Message digest e funzioni di hash

Integrità dei messaggi. Funzioni di Hash e codici MAC. Message digest. Message digest e funzioni di hash Sicurezza nei Sistemi Informativi Integrità dei messaggi Funzioni di Hash e codici MAC una persona che intercetti una comunicazione cifrata non può leggerla...... ma può modificarla in modo imprevedibile!

Dettagli

RETI DI CALCOLATORI. Crittografia. La crittografia

RETI DI CALCOLATORI. Crittografia. La crittografia RETI DI CALCOLATORI Crittografia La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione,

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 5, funzioni di hash. Funzioni crittografiche di hash

Sicurezza nelle applicazioni multimediali: lezione 5, funzioni di hash. Funzioni crittografiche di hash Funzioni crittografiche di hash Codici di checksum Un codice di checksum è una firma di dimensione fissa (ad es. 32 bit) calcolata a partire da un messaggio (*) di lunghezza variabile. Ogni messaggio ha

Dettagli

Identificazione, Autenticazione e Firma Digitale. Firma digitale...

Identificazione, Autenticazione e Firma Digitale. Firma digitale... Identificazione, Autenticazione e Firma Digitale In origine crittografia = confidenzialità Diffusione delle reti: nuove funzionalità. Identificazione Autenticazione Firma digitale Identificazione: un sistema

Dettagli

Converte una chiave di al più 14 word a 32 bit (K-array) in un array di 18 sottochiavi a 32 bit (P-array) Genera 4 S-box, ognuna con 256 word a 32 bit

Converte una chiave di al più 14 word a 32 bit (K-array) in un array di 18 sottochiavi a 32 bit (P-array) Genera 4 S-box, ognuna con 256 word a 32 bit % RC2 [1989] IDEA (International Data Encryption Algorithm) [1990] Blowfish [1993]!"###"$ SAFER (Secure And Fast Encryption Routine) SAFER K-64 [1994], SAFER K-128 [1995] cifrario bit chiave bit testo

Dettagli

Funzioni hash crittografiche e paradosso del compleanno

Funzioni hash crittografiche e paradosso del compleanno Corso di Sicurezza A.A. 2006-2007 Funzioni hash crittografiche e paradosso del compleanno 22/05/2007 Paolo BIONDI 0000269207 Cos'è una funzione hash Qualunque funzione che trasformi i dati in input in

Dettagli

Message Authentication Code

Message Authentication Code Message Authentication Code Message Authentication Code (MAC) messaggio M Alfredo De Santis Dipartimento di Informatica ed Applicazioni Università di Salerno [email protected] http://www.dia.unisa.it/professori/ads

Dettagli

Crittografia avanzata Lezione del 21 Marzo 2011

Crittografia avanzata Lezione del 21 Marzo 2011 Crittografia avanzata Lezione del 21 Marzo 2011 Attacchi alle funzioni hash Collisioni: trovare due messaggi M1 e M2 tali che H(M1) = H(M2) in meno di 2^(L/2) tentativi L è la lunghezza dell'hash Mezzi

Dettagli

BLOWFISH. Introduzione Algoritmo. Prestazioni Cryptanalysis of Vaundenay. Egizio Raffaele

BLOWFISH. Introduzione Algoritmo. Prestazioni Cryptanalysis of Vaundenay. Egizio Raffaele Introduzione Algoritmo Prestazioni Cryptanalysis of Vaundenay Egizio Raffaele Introduzione E un cifrario a blocchi a chiave simmetrica Utilizza varie tecniche tra le quali la rete Feistel, le S-box dipendenti

Dettagli

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec

Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec Crittografia Principi di crittografia Integrità dei messaggi Protocolli di autenticazione Sicurezza nella pila di protocolli di Internet: PGP, SSL, IPSec Elementi di crittografia Crittografia: procedimento

Dettagli

metodi crittografici 2006-2007 maurizio pizzonia sicurezza dei sistemi informatici e delle reti

metodi crittografici 2006-2007 maurizio pizzonia sicurezza dei sistemi informatici e delle reti metodi crittografici 1 sommario richiami di crittografia e applicazioni hash crittografici crittografia simmetrica crittografia asimmetrica attacchi e contromisure attacchi tipici key rollover generatori

Dettagli

Capitolo 8 La sicurezza nelle reti

Capitolo 8 La sicurezza nelle reti Capitolo 8 La sicurezza nelle reti Reti di calcolatori e Internet: Un approccio top-down 4 a edizione Jim Kurose, Keith Ross Pearson Paravia Bruno Mondadori Spa 2008 Capitolo 8: La sicurezza nelle reti

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Funzioni Hash e Network Security

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Funzioni Hash e Network Security Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Funzioni Hash e Network Security Vedi: A.S. Tanenbaum, Computer Networks, 4th ed., Prentice Hall: sez. 8, pagg.

Dettagli

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione Comunicazioni sicure su Internet: https e SSL Fisica dell Informazione Il servizio World Wide Web (WWW) Come funziona nel dettaglio il Web? tre insiemi di regole: Uniform Resource Locator (URL) Hyper Text

Dettagli

LA FI RMA DI GI TALE. Materiale a cura di: L.Chium ient o,f. Orfei, F. Baiani, S. Sallam

LA FI RMA DI GI TALE. Materiale a cura di: L.Chium ient o,f. Orfei, F. Baiani, S. Sallam LA FI RMA DI GI TALE Materiale a cura di: L.Chium ient o,f. Orfei, F. Baiani, S. Sallam Il documento informatico (1) La legge definisce documento informatico la rappresentazione Informatica di atti, fatti

Dettagli

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer : applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle

Dettagli

Crittografia a chiave pubblica

Crittografia a chiave pubblica Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno [email protected] http://www.di.unisa.it/professori/masucci Cifrari simmetrici canale insicuro Bob 1 Distribuzione

Dettagli

riferimento temporale

riferimento temporale La Firma Digitale, la marca temporale ed il riferimento temporale Umberto Zanini Dottore Commercialista e Revisore Contabile in Modena Tel.059/2929777/2929483 Fax 059/2926210 [email protected] www.umbertozanini.it

Dettagli

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi Argomenti della Lezione 1) Codici convoluzionali 2) Circuito codificatore 3) Diagramma a stati e a traliccio 4) Distanza libera 5) Algoritmo di Viterbi 1 Codici convoluzionali I codici convoluzionali sono

Dettagli

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet. 2009 Università degli Studi di Pavia, C.

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet. 2009 Università degli Studi di Pavia, C. Definizione La crittografia è la scienza che utilizza algoritmi matematici per cifrare e decifrare i dati. La criptoanalisi è la scienza che analizza e decifra i dati crittografati senza conoscerne a priori

Dettagli

Unità Aritmetico-Logica

Unità Aritmetico-Logica Unità Aritmetico-Logica A ritmethic L ogic U nit E l unità che esegue le operazioni aritmetiche e le operazioni logiche AND e OR 1-bit ALU : è una componente dell ALU che produce un singolo bit sui 32

Dettagli

Password. Password. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano Autenticazione utente

Password. Password. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano  Autenticazione utente POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/ Autenticazione utente Per autenticare un utente si può utilizzare: ciò che l utente conosce ( what you

Dettagli

Ripasso. Public Key cryptograhy. Message Authentication Codes (MAC) Firma digitale

Ripasso. Public Key cryptograhy. Message Authentication Codes (MAC) Firma digitale Ripasso Public Key cryptograhy Message Authentication Codes (MAC) Firma digitale RSA Public Key Cryptosystem Sia N=pq il prodotto di due primi Scegli e tale che gcd(e,f(n))=1 Sia d tale che de 1 mod f(n)

Dettagli

Altri cifrari a blocchi

Altri cifrari a blocchi Altri cifrari a blocchi Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno [email protected] http://www.dia.unisa.it/professori/masucci RC2 [1989] IDEA (International

Dettagli

Autenticazione dei messaggi e funzioni hash

Autenticazione dei messaggi e funzioni hash Autenticazione dei messaggi e funzioni hash Autenticazione L autenticazione serve a: Proteggere l integrità del messaggio Validare l identità del mittente Garantire la non ripudiabilità In generale, tre

Dettagli

Crittografia a chiave pubblica

Crittografia a chiave pubblica Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno [email protected] http://www.di.unisa.it/professori/masucci Sicurezza CCA In un attacco CCA, è capace di

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

(G, ) un gruppo moltiplicativo di ordine n l ordine di un elemento g G, o(g), è il minimo intero positivo m tale che g m = 1

(G, ) un gruppo moltiplicativo di ordine n l ordine di un elemento g G, o(g), è il minimo intero positivo m tale che g m = 1 ordine di un gruppo G un gruppo finito: ordine di G = o(g) = numero di elementi di G l insieme degli invertibili di Z n è un gruppo rispetto al prodotto si denota con U(Z n ) e ha ordine φ(n) esempio:

Dettagli

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

Corso di Crittografia Prof. Dario Catalano. Firme Digitali Corso di Crittografia Prof. Dario Catalano Firme Digitali Introduzione n Una firma digitale e l equivalente informatico di una firma convenzionale. n Molto simile a MA, solo che qui abbiamo una struttura

Dettagli

Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana

Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana Il cifrario di Vigenère Bizzoni Stefano De Persiis Angela Freddi Giordana Cifrari monoalfabetico e polialfabetico mono: cifrari a sostituzione o a trasposizione, associano ad ogni lettera dell alfabeto

Dettagli

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

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola: CRITTOGRAFIA 2014/15 Appello del 13 gennaio 2015 Esercizio 1 Crittografia ellittica [9 punti] 1. Descrivere l algoritmo di Koblitz per trasformare un messaggio m, codificato come numero intero, in un punto

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Dalla tabella alla funzione canonica

Dalla tabella alla funzione canonica Dalla tabella alla funzione canonica La funzione canonica è la funzione logica associata alla tabella di verità del circuito che si vuole progettare. Essa è costituita da una somma di MinTerm con variabili

Dettagli

Luigi Piroddi

Luigi Piroddi Automazione industriale dispense del corso (a.a. 2008/2009) 10. Reti di Petri: analisi strutturale Luigi Piroddi [email protected] Analisi strutturale Un alternativa all analisi esaustiva basata sul

Dettagli

Crittografia con Python

Crittografia con Python Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Ci eravamo lasciati

Dettagli

La sicurezza nelle reti di calcolatori

La sicurezza nelle reti di calcolatori La sicurezza nelle reti di calcolatori Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico

Dettagli

Sicurezza: necessità. Roberto Cecchini Ottobre 2002 1

Sicurezza: necessità. Roberto Cecchini Ottobre 2002 1 Sicurezza: necessità Riservatezza: la comunicazione è stata intercettata? Autenticazione: l utente è veramente chi dice di essere? Autorizzazione: ogni utente può accedere solo alle risorse cui ha diritto.

Dettagli

Firme digitali. Firma Digitale. Firma Digitale. Elementi di Crittografia Equivalente alla firma convenzionale

Firme digitali. Firma Digitale. Firma Digitale. Elementi di Crittografia Equivalente alla firma convenzionale Eleenti di Crittografia 26-05-2016 Fire digitali Barbara Masucci Dipartiento di Inforatica Università di Salerno [email protected] http://www.di.unisa.it/professori/asucci Fira Digitale fira Equivalente

Dettagli

Lezione2: Circuiti Logici

Lezione2: Circuiti Logici Lezione2: Circuiti Logici traduce per noi in linguaggio macchina utente macchina software macchina hardware Agli albori dell'informatica, l utente programmava in binario (Ling.Mac.) scrivendo i programmi

Dettagli

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile

Dettagli

POLITECNICO DI BARI CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA

POLITECNICO DI BARI CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA POLITECNICO DI BARI CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA DISPENSE DEL CORSO DI INFORMATICA MEDICA Docente: Prof. Giuseppe Mastronardi ANNO ACCADEMICO 2015-2016 08/05/2016 Informatica medica

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale 2008 Gennaio SUAP On Line i pre-requsiti informatici: La firma digitale 1 La firma digitale Indice La firma digitale La firma digitale: destinatario 2 La firma digitale Cos è La Firma Digitale è il risultato

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

Unità Didattica N 9 : La parabola

Unità Didattica N 9 : La parabola 0 Matematica Liceo \ Unità Didattica N 9 La parabola Unità Didattica N 9 : La parabola ) La parabola ad asse verticale ) La parabola ad asse orizzontale 5) Intersezione di una parabola con una retta 6)

Dettagli

Esercizi su alberi binari

Esercizi su alberi binari Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica

Dettagli

Lezione 7 Sicurezza delle informazioni

Lezione 7 Sicurezza delle informazioni Lezione 7 Sicurezza delle informazioni Sommario Concetti generali Meccanismi per la sicurezza IT: Crittografia Hash Firma digitale Autenticazione 1 Concetti generali Availability Confidentiality Integrity

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano [email protected] http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della

Dettagli

Elementi di Sicurezza e Privatezza Lezione 4 - Crittografia

Elementi di Sicurezza e Privatezza Lezione 4 - Crittografia Elementi di Sicurezza e Privatezza Lezione 4 - Crittografia Chiara Braghin [email protected] Comunicazione sicura? canale insicuro messaggi Alice Bob E possibile che Alice e Bob comunichino in modo

Dettagli

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O / Codifica di Huffman e Lempel-Ziv-Welch 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 0 / 2 0 1 1 Tipi di compressione Senza perdita (lossless): permettono di ricostruire perfettamente

Dettagli

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare: Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare: Riservatezza (protezione delle informazioni da accessi non autorizzati) Integrità (garanzia che l'informazione

Dettagli

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR: Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Crittografia e OpenSource

Crittografia e OpenSource Crittografia e OpenSource Matteo Carli [email protected] http://www.matteocarli.com http://www.lug-acros.org Chi sono Studente di Sicurezza dei sistemi e delle reti informatiche presso il polo di

Dettagli

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Lezione 3. I numeri relativi

Lezione 3. I numeri relativi Lezione 3 L artimetcia binaria: i numeri relativi i numeri frazionari I numeri relativi Si possono rappresentare i numeri negativi in due modi con modulo e segno in complemento a 2 1 Modulo e segno Si

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Triangolazione di Delaunay

Triangolazione di Delaunay Triangolazione di Delaunay Francesco Visentin Dottorato di Ricerca in Informatica - XXVIII Ciclo Università degli Studi di Verona 13 Maggio 2013 Triangolazione Presentazione Divisione di una superficie

Dettagli