Randomizzazione di chiavi crittografiche. mediante funzioni hash: un prototipo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Randomizzazione di chiavi crittografiche. mediante funzioni hash: un prototipo"

Transcript

1 CORSO DI LAUREA MAGISTRALE IN INFORMATICA Randomizzazione di chiavi crittografiche mediante funzioni hash: un prototipo Relatore: Correlatore: Prof. Astasia C. Pagnoni Prof. Andrea Visconti Tesi di Laurea di: Chiara Valentina Schiavo Matricola n Anno Accademico 2009/2010

2 A chi ha creduto in me...

3 Indice Introduzione vi 1 Key Derivation Function Key Establishment Schemes Pseudorandom Function (PRF) Tipi di Key Derivation Function KDF in Counter Mode KDF in Feedback Mode KDF in Double-Pipeline Iteration Mode Gerarchia delle chiavi Considerazioni sulla sicurezza delle KDF Sicurezza in senso crittografico Lunghezza della Key Derivation Key Convertire il Keying Material in chiavi crittografiche Key Separation iii

4 INDICE iv Informazioni di contesto Le soluzioni classiche in letteratura Scopi delle KDF KDF indipendenti dal protocollo KDF dipendenti dal protocollo Considerazioni Le funzioni Hash Proprietà Usi delle funzioni hash Tipi di funzioni hash Message Digest Family - MD Secure Hash Algorithm - SHA Considerazioni Message Authentication Code MAC HMAC KDF basate su funzioni hash HMAC-based KDF (HKDF) Schema di HKDF Considerazioni KDF basata su CMAC CBC e CMAC Cipher-Block Chaining (CBC)

5 INDICE v Cipher-Based MAC (CMAC) CMAC-based KDF Schema della CMAC-based KDF Analisi di HKDF e CKDF Min-entropy della sorgente Generazione del Source Keying Material Password o Passphrase Keystrokes Funzioni Trascendenti Analisi di HKDF Analisi di HKDF in relazione alla min-entropy contenuta nella sorgente Analisi di HKDF in relazione alla funzione hash sottostante Analisi di CKDF Conclusioni 96 A Appendice 98 A.1 Definizioni Ringraziamenti 100

6 Introduzione Una Key Derivation Function (KDF) è una funzione per la derivazione di chiavi crittografiche, che rappresenta una componente fondamentale all interno dei sistemi crittografici. Essa serve a derivare una o più chiavi crittografiche randomizzate a partire da una sorgente di informazione, detta source keying material. Lo scopo delle KDF è quello di generare chiavi che non possono essere computazionalmente distinte da stringhe casuali i cui elementi seguono una distribuzione statistica uniforme. L input delle KDF è costituito da una sorgente contenente un determinato livello di casualità, distribuita però in modo non uniforme. La progettazione di KDF multi-purpose, ovvero di funzioni per la derivazione di chiavi adatte a essere usate in differenti applicazioni e con differenti tipi di source keying material, è stata tradizionalmente realizzata secondo modalità ad hoc, spesso difficili da giustificare mediante un analisi formale. Quanto appena detto accade soprattutto nel caso di KDF basate su funzioni hash, spesso erroneamente usate come funzioni in grado di generare output perfettamente casuali. Questa metodologia, tradizionale, si contrappone agli algoritmi di nuova generazione che lavorano secondo una logica a estrazione ed espansione: estrazione dell entropia dal source keying material e successiva vi

7 INTRODUZIONE vii generazione di tutte le chiavi necessarie. La maggiore difficoltà incontrata nella progettazione di una KDF riguarda la natura del source keying material. Quando quest ultimo è distribuito in modo uniforme o pseudocasuale, esso può essere usato direttamente per produrre ulteriori chiavi. Al contrario, quando il source keying material non è distribuito in modo uniforme è necessario estrarre da esso una prima chiave pseudocasuale, dalla quale derivare poi ulteriori chiavi, secondo il principio a estrazione ed espansione. In questa tesi viene presentato un nostro prototipo per la derivazione di chiavi crittografiche basato interamente su AES-CMAC e da noi progettato secondo la logica a estrazione ed espansione. Si tratta di una KDF multipurpose, che può quindi essere utilizzata in differenti scenari. L idea ci è venuta studiando una KDF basata su HMAC, chiamata HKDF, introdotta in [1] e in seguito adottata dal NIST (National Institute of Standards and Technology). Per valutare l efficacia del nostro approccio e insieme le prestazione del nostro prototipo, abbiamo condotto un accurata analisi sperimentale, presentata nel Capitolo 6, che ha corroborato la nostra intuizione. Il prototipo proposto suggerisce quindi una valida alternativa agli standard per la derivazione delle chiavi presenti in letteratura e in particolare allo standard HKDF. La tesi è organizzata come segue. Nel Capitolo 1 vengono presentate le KDF, la teoria su cui tali funzioni si basano e le loro modalità di funzionamento. Nel Capitolo 2 vengono descritte le KDF esistenti in letteratura e gli scopi per cui esse vengono impiegate. Nel Capitolo 3 vengono presentate le funzioni hash, ampiamente usate nelle implementazioni delle KDF.

8 INTRODUZIONE viii Il Capitolo 4 contiene una descrizione delle KDF basate su funzioni hash, in particolare HKDF. Nel Capitolo 5 viene presentato il prototipo di KDF progettato e realizzato in questa tesi, spiegando le scelte progettuali che ne stanno alla base. Nel Capitolo 6 si procede all analisi del metodo HKDF e del prototipo proposto, dimostrando sperimentalmente che quest ultimo è una valida alternativa allo standard HKDF.

9 Capitolo 1 Key Derivation Function In crittografia con il termine chiave si indica un informazione usata da un algoritmo di cifratura. Si tratta di un parametro che determina la codifica di un messaggio in chiaro, chiamato plaintext: codificando lo stesso plaintext mediante l utilizzo di chiavi diverse si ottengono in output messaggi cifrati, chiamati ciphertext, diversi tra loro. Un importante assunzione esistente in crittografia moderna è il principio di Kerckhoffs, enunciato per la prima volta da Auguste Kerckhoffs (1835, 1903), secondo il quale un sistema crittografico deve essere sicuro anche se qualsiasi informazione riguardante il sistema, ad eccezione della chiave, è conosciuta dal nemico. Si evince quindi che è necessario mantenere segreta la chiave e non l algoritmo di cifratura. È quindi chiaro quanto sia importante generare e utilizzare chiavi sicure proprio in considerazione del fatto che le chiavi crittografiche sono lo strumento essenziale in tutte le applicazioni che richiedono sicurezza. La generazione di chiavi crittografiche sicure, necessarie per la comunicazione e lo scambio 1

10 CAPITOLO 1. KEY DERIVATION FUNCTION 2 di informazioni è di fondamentale importanza negli algoritmi crittografici simmetrici, nei quali la chiave di encryption, usata per cifrare il messaggio in chiaro, e la chiave di decryption, usata per decifrare il messaggio cifrato, sono entrambe conosciute dalle parti che vogliono comunicare tra loro. In alcuni casi gli interlocutori condividono la stessa chiave di encryption mentre la chiave di decryption è facilmente ricavabile a partire dalla chiave di encryption; è possibile tuttavia che venga utilizzata la stessa chiave sia per la cifratura che per la decifrazione di un messaggio e che quindi le due chiavi di encryption e decryption coincidano. Ciò che differenzia un algoritmo crittografico simmetrico da un algoritmo crittografico a chiave pubblica è proprio la tipologia di chiavi utilizzate. Nel primo caso le chiavi sono conosciute dagli interlocutori; nel secondo caso invece la chiave di encryption, chiamata chiave pubblica, è resa pubblica e la sicurezza dell algoritmo risiede nel fatto che è computazionalmente intrattabile derivare da essa la chiave di decryption, definita chiave privata, se non si possiedono determinate informazioni conosciute solo dal destinatario del messaggio. Appare quindi chiara la necessità di derivare chiavi crittograficamente sicure da utilizzare nella comunicazioni tra due parti che avviene mediante l impiego di un algoritmo crittografico simmetrico. Inoltre, buona parte dei moderni algoritmi crittografici simmetrici hanno una struttura composta da diversi round di cifratura, ognuno dei quali si occupa di cifrare un determinato blocco del messaggio in chiaro, precedentemente sottoposto a un processo di suddivisione in blocchi di uguale lunghezza. Tali round mantengono la stessa struttura algoritmica, ma variano la chiave. In considerazione della modalità di cifratura appena descritta risulta necessario derivare da una sola

11 CAPITOLO 1. KEY DERIVATION FUNCTION 3 chiave iniziale, detta chiave sorgente, condivisa da entrambi gli interlocutori, numerose chiavi da utilizzare all interno di ogni round. Tuttavia gli input forniti alle applicazioni che utilizzano algoritmi crittografici per la comunicazione sono, di solito, sorgenti di informazione che possono essere ritenute non sicure, come ad esempio le password, e non risulta quindi possibile utilizzarle direttamente come chiavi. Al fine di derivare chiavi crittograficamente forti è quindi necessario fare uso di una Key Derivation Function (KDF), ovvero di una funzione il cui scopo è quello di derivare una o più chiavi sicure, chiamate keying material, a partire da una sorgente di informazione, detta source of initial keying material, non sicura. La nozione di chiavi crittograficamente forti è strettamente correlata a quella di pseudorandom key, ovvero chiavi per le quali è computazionalmente intrattabile distinguerle da stringhe della stessa lunghezza i cui bit sono distribuiti secondo la distribuzione uniforme. In particolare si ritiene di fondamentale importanza che la conoscenza di alcuni bit o di alcune chiavi generate dalle KDF non debba in alcun modo fornire informazioni riguardanti gli altri bit generati. È necessario porre l attenzione sulla natura del source of initial key material, che chiameremo source keying material, utilizzato per produrre le chiavi. In particolare quando il source keying material risulta essere una sorgente uniforme o pseudo casuale allora è possibile utilizzare tale sorgente come chiave per una particolare funzione che produce ulteriori chiavi a partire da una sorgente. Tuttavia, nella maggior parte dei casi, il source keying material non è distribuito in modo uniforme o pseudo casuale e risulta quindi necessario l impiego di una KDF al fine di garantire la derivazione di chiavi sicure pur impiegando una sorgente di informazione

12 CAPITOLO 1. KEY DERIVATION FUNCTION 4 assolutamente non sicura. Esistono differenti tipi di scenario all interno dei quali le KDF vengono utilizzate, che dipendono strettamente dalla natura della sorgente di informazione iniziale. L input ad una KDF può essere infatti una password fornita dall utente, l output ottenuto dal protocollo Diffie-Hellman per lo scambio di una chiave, una sequenza di bit ottenuta in seguito al campionamento di keystroke o degli eventi del sistema, l output fornito da un generatore fisico di numeri casuali, etc. 1.1 Key Establishment Schemes Algoritmi quali AES (Advanced Encryption Standard) [2], Triple DES [3] e HMAC [4] richiedono per il loro funzionamento l utilizzo di chiavi che devono necessariamente essere segrete. Al fine di permettere alle parti che usano un sistema di comunicazione di condividere lo stesso keying material, è possibile affidare la distribuzione di quest ultimo ad un corriere. Tuttavia, quando il numero di entità coinvolte nel sistema è elevato, diviene impossibile distribuire il keying material in questo modo e risulta essenziale supportare tali algoritmi con l utilizzo di uno schema automatico per lo scambio di chiavi. Il key material segreto deve essere accordato tra le parti in modo automatico, facendo uso di uno schema per la creazione della chiave, definito key establishment scheme, che può realizzarsi con un key agreement scheme oppure con un key transport scheme. Il key agreement scheme è una procedura per la generazione della chiave nella quale il keying material è funzione delle informazioni fornite da en-

13 CAPITOLO 1. KEY DERIVATION FUNCTION 5 trambi gli utenti, in modo tale che nessuna delle parti coinvolte è in grado di predeterminarne il valore se non con il contributo dell altro. In questo tipo di procedura il keying material segreto non viene inviato direttamente: le informazioni necessarie vengono infatti scambiate tra le due parti in modo tale che ognuna sia in grado di determinare il keying material in modo autonomo. Al contrario il key transport scheme è una procedura secondo la quale un utente, il mittente, seleziona il keying material e successivamente lo invia al suo interlocutore, il destinatario, preoccupandosi che il tutto avvenga in modo sicuro. Una volta che le parti coinvolte entrano in possesso di una chiave simmetrica segreta, ottenuta grazie all esecuzione di un key establishment scheme, si manifesta spesso la necessità di derivare ulteriori chiavi che possono servire per scopi differenti: può infatti accadere che vi sia la necessità di entrare in possesso di una chiave per un algoritmo di codifica di un messaggio e allo stesso tempo di un ulteriore chiave per garantire l integrità di un altro messaggio. Le KDF vengono utilizzare proprio per derivare queste chiavi. 1.2 Pseudorandom Function (PRF) Una pseudorandom function [5] è una funzione di fondamentale importanza che viene utilizzata all interno delle KDF. In generale, una pseudorandom family {P F R(s, x) s S} è una famiglia di funzioni calcolabili in tempo polinomiale che prende in input s, chiamato seed, e una variabile x, tale che quando s è estratta dalla variabile casuale uniforme S ed è sconosciuta alle parti non coinvolte, P RF (s, x) è computazionalmente indistinguibile da una

14 CAPITOLO 1. KEY DERIVATION FUNCTION 6 funzione random definita sullo stesso dominio e il cui codominio corrisponde al codominio di P RF (s, x). Informalmente possiamo affermare che le PRF sono particolari funzioni il cui scopo è quello di generare in output un insieme di pseudorandom bit. A seconda della lunghezza desiderata del keying material, all interno di una KDF può essere necessario invocare la PRF diverse volte. La KDF itera la PRF n volte e concatena gli output finché vengono generati L bit di keying material, dove L rappresenta la dimensione desiderata dell output della KDF. Come vedremo in seguito, l output della KDF, cioè il keying material, può successivamente essere suddiviso per formare ulteriori chiavi. 1.3 Tipi di Key Derivation Function In questa sezione verranno presentate diverse famiglie di KDF che fanno uso della PRF ognuna secondo modalità differenti. Tali modalità dipendono direttamente da come la PRF viene invocata e prendono il nome di Counter Mode, Feedback Mode e Double-Pipeline Iteration Mode [5]. Al fine di comprendere il funzionamento di tali modalità, verranno di seguito specificate le notazioni utilizzate. K I : key derivation key. È una chiave che viene data in input alla KDF, insieme ad altri dati di input, al fine di derivare il keying material. K O : keying material output. Si tratta dell output della KDF derivato utilizzando la key derivation key e rappresentato da una stringa binaria della lunghezza desiderata.

15 CAPITOLO 1. KEY DERIVATION FUNCTION 7 Label: stringa binaria che indica lo scopo per il quale è stato generato il keying material. Context: stringa binaria che contiene le informazioni relative al keying material; può includere per esempio informazioni riguardanti le parti che vogliono derivare o utilizzare il keying material. IV : stringa binaria che viene utilizzata come initial value nel calcolo della prima iterazione del feedback mode. L: numero intero che specifica la lunghezza in bit del keying material derivato dalla KDF. h: numero intero che indica la lunghezza in bit dell output della PRF. n: numero intero il cui valore rappresenta il numero di iterazioni della PRF necessarie per generare L bit di keying material. i: contatore. Si tratta di una stringa binaria di lunghezza r che è un input ad ogni iterazione della PRF nel counter mode e nel double pipeline mode. Tale parametro è opzionale nel feedback mode. r: numero intero, minore o uguale a 32, che indica la lunghezza della rappresentazione binaria del contatore i. {X}: notazione utilizzata per indicare che il dato X è un input opzionale alla KDF. [T ] 2 : notazione usata per indicare che l intero T viene rappresentato con una stringa binaria di lunghezza specificata

16 CAPITOLO 1. KEY DERIVATION FUNCTION KDF in Counter Mode La modalità di funzionamento di una KDF definita Counter Mode prevede che l output della PRF utilizzata all interno della KDF venga calcolato facendo uso di un contatore il cui valore varia a seconda dell iterazione in cui viene impiegato. Questa famiglia di KDF lavora secondo l Algoritmo 1 di seguito presentato. Analizzando l algoritmo relativo al funzionamento di una KDF in moda- Algorithm 1 KDF in Counter Mode Require: K I, Label, Context, L Ensure: K O n = L/h if n > 2 r 1 then segnala un errore e termina l esecuzione end if result(0) = for i = 0 to n do K(i) =PRF(K I, [i] 2 Label 0x00 Context [L] 2 ) result(i) = result(i 1) K(i) end for return K O =primi L bit di result(n) lità counter è possibile notare che durante ogni iterazione i dati di input che rimangono fissi sono Label 0x00 Context [L] 2. Al contrario il valore del contatore [i] 2, rappresentato come una stringa binaria di r bit, varia ad ogni iterazione in modo tale che l output della PRF calcolata sia sempre differente e strettamente dipendete dal valore stesso di questo contatore. Il funzionamento Counter Mode di una KDF è illustrato in Figura 1.1: osservando tale figura è possibile notare le modalità di funzionamento delle varie PRF contenute all interno della KDF. Ad ogni PRF vengono forniti in

17 CAPITOLO 1. KEY DERIVATION FUNCTION 9 input una serie di dati fissi e la key derivation key K I ; ciò che rende l output di ogni PRF differente da quello delle altre funzioni è il contatore i che, come è possibile notare dalla figura, viene fornito in input ad ogni PRF, ma il cui valore viene, ogni volta, incrementato di una unità. Le PRF essendo indipendenti l una dall altra, possono anche lavorare contemporaneamente e, al termine dell esecuzione, l output di ciascuna PRF viene accodato all output della PRF precedente, formando così un unica stringa. La chiave derivata, denotata con K O, viene ottenuta prelevando da tale stringa i primi L bit. Figura 1.1: Key Derivation Function in Counter Mode KDF in Feedback Mode Il funzionamento Feedback Mode di una KDF ha come particolarità quella di rendere dipendenti le PRF tra di loro. Secondo la modalità Feedback Mode, infatti, l output di una determinata PRF viene calcolato utilizzando

18 CAPITOLO 1. KEY DERIVATION FUNCTION 10 il risultato ottenuto alla precedente iterazione, ovvero l output ottenuto con l esecuzione della precedente PRF. La modalità Feedback Mode è illustrata in Figura 1.2: da tale figura è possibile osservare che la key derivation key K I e una serie di dati di input fissi vengono forniti in input alle varie PRF contenute all interno della KDF. Ciò che differenzia gli output delle varie PRF è proprio il dato di input aggiuntivo K(i); nel caso della prima PRF, l input K(0) assume il valore specificato da IV, initial value. Per quando riguarda le successive PRF invece, il valore di input K(i) corrisponde esattamente all output della PRF precedente, creando appunto la dipendenza citata precedentemente. È inoltre possibile fornire in input alla PRF un contatore i che assume il ruolo di variabile di iterazione; l uso di tale variabile è tuttavia opzionale. La modalità di funzionamento appena discussa viene presentata nell Algoritmo 2. Analizzando l algoritmo è possibile notare che, ad ogni iterazione, Algorithm 2 KDF in Feedback Mode Require: K I, Label, Context, IV, L Ensure: K O n = L/h if n > then segnala un errore e termina l esecuzione end if result(0) = K(0) = IV for i = 0 to n do K(i) =PRF(K I, K (i 1) { [i] 2 } Label 0x00 Context [L] 2 ) result(i) = result(i 1) K(i) end for return K O =primi L bit di result(n) l input alla PRF che può essere considerato fisso e che quindi non subisce mo-

19 CAPITOLO 1. KEY DERIVATION FUNCTION 11 difiche tra un iterazione e l altra, è costituito da Label 0x00 Context [L] 2. Al contrario la variabile di iterazione, ovvero la variabile che cambia ogni volta che viene invocata la PRF, è K(i 1){ [i] 2 }, che corrisponde all output della PRF precedente al quale viene opzionalmente concatenato il valore i. Figura 1.2: Key Derivation Function in Feedback Mode KDF in Double-Pipeline Iteration Mode Secondo le modalità finora presentate, ovvero il Counter Mode e il Feedback Mode, la PRF contenuta all interno della KDF viene ripetutamente chiamata all interno di una singola pipeline. Nella modalità Double-Pipeline Iteration, illustrata in figura 1.3, invece, la PRF viene iterata in due pipeline distinte. Nella prima pipeline si trova una batteria di PRF che lavora nel seguente modo: ogni PRF prende in input

20 CAPITOLO 1. KEY DERIVATION FUNCTION 12 la key derivation key K I e l output della PRF precedente, tranne la prima PRF per la quale tale valore viene inizializzato tramite l utilizzo dell initial value IV. Ciò che viene calcolato dalle PRF collocate all interno della prima pipeline è una sequenza segreta di valori che indicheremo con A(i). Tali valori vengono successivamente forniti in input alle PRF della seconda pipeline assieme ad altri valori, quali i dati di input definiti fissi, la key derivation key K I e opzionalmente il contatore i. La prima pipeline di PRF utilizza il Feedback Algorithm 3 KDF in Double-Pipeline Iteration Mode Require: K I, Label, Context, L Ensure: K O n = L/h if n > then segnala un errore e termina l esecuzione end if result(0) = A(0) = IV = Label 0x00 Context [L] 2 for i = 0 to n do A(i) =PRF(K I, A(i 1)) K(i) =PRF(K I, A(i){ [i] 2 } Label 0x00 Context [L] 2 ) result(i) = result(i 1) K(i) end for return K O =primi L bit di result(n) Mode con un valore iniziale pari a A(0) = IV = Label 0x00 Context [L] 2. Ogni PRF contenuta all interno della seconda pipeline genera un determinato valore per K(i) utilizzando A(i) e opzionalmente il contatore [i] 2, utilizzato come iteration variable. Al termine dell algoritmo i valori K(i) calcolati dalle PRF della seconda pipeline vengono concatenati; la chiave desiderata, rappresentata da K O, verrà ottenuta estraendo i primi L dai valori precedentemente concatenati. L algoritmo 3 presenta la modalità di funzionamento

21 CAPITOLO 1. KEY DERIVATION FUNCTION 13 appena descritta. Figura 1.3: Key Derivation Function in Double-Pipeline Mode 1.4 Gerarchia delle chiavi Il keying material derivato da una KDF a partire da una chiave iniziale, può successivamente essere usato come chiave per la generazione di ulteriore keying material. Procedendo in questo modo è evidente come le chiavi possano essere utilizzate a cascata per derivare da esse altre chiavi; si stabilisce dunque una gerarchia tra le chiavi, il che significa che l output di una KDF può essere impiegato come input a un ulteriore KDF al fine di generare ulteriore keying material. In questa gerarchia una KDF viene utilizzata con una chiave genitore, che possiamo definire di alto livello, e altri dati di input, al fine

22 CAPITOLO 1. KEY DERIVATION FUNCTION 14 di derivare un determinato numero di chiavi figlie, collocate ad un livello più basso. La Figura 1.4 mostra un esempio di gerarchia di chiavi a tre livelli; ogni nodo rappresenta una chiave e ogni ramo indica il processo di key derivation da una chiave all altra. In tale gerarchia le chiavi di secondo livello, ovvero K (1) I, K (2) I e K (3) I, sono state generate tramite l utilizzo della chiave di più alto livello K I. Assumendo poi che K (1) I, K (2) I e K (3) I vengano utilizzate come chiavi di derivazione all interno di una determinata KDF, per ognuna di esse è possibile generare ulteriori chiavi, collocate al livello più basso della gerarchia. Figura 1.4: Gerarchia delle chiavi

23 CAPITOLO 1. KEY DERIVATION FUNCTION Considerazioni sulla sicurezza delle KDF Un aspetto di fondamentale importanza di cui bisogna tener conto durante la progettazione di una KDF è la sicurezza delle funzioni stesse; l utilizzo di KDF impropriamente definite, potrebbe infatti causare la generazione di keying material vulnerabile agli attacchi. Verranno di seguito discussi alcuni fattori che influenzano la forza, intesa come resistenza agli attacchi crittografici, del keying material derivato da una KDF. È tuttavia necessario puntualizzare che alcune proprietà riguardanti la sicurezza non possono essere garantite soltanto ponendo vincoli alla KDF; la generazione di un buon keying material, infatti, può dipendere da numerosi altri fattori quali, ad esempio, la sicurezza del protocollo usato per lo scambio della key derivation key Sicurezza in senso crittografico La sicurezza di una KDF si misura attraverso la quantità di operazioni necessarie per distinguere l output della KDF da una stinga di bit della stessa lunghezza distribuita in modo uniforme, sotto l assunzione che la key derivation key K I sia l unico parametro di input ad essere sconosciuto ad un eventuale possibile utente malintenzionato. Questa quantità di lavoro è certamente inferiore rispetto allo sforzo necessario a recuperare K I o la parte mancante del keying material, essendo in possesso di un segmento dell output della KDF. Dato un insieme di dati di input, ad eccezione della chiave K I, e l output corrispondente di una lunghezza sufficiente, la chiave K I può essere recuperata, attraverso una ricerca esaustiva tra tutti i possibili valori di K I,

24 CAPITOLO 1. KEY DERIVATION FUNCTION 16 in al più 2 w esecuzioni della KDF, dove w rappresenta la lunghezza in bit di K I Lunghezza della Key Derivation Key Per alcune KDF la lunghezza della chiave iniziale è influenzata dal tipo di PRF usata durante il processo di derivazione delle chiavi. Nel caso in cui si utilizzi CMAC come PRF la lunghezza della chiave è determinata sulla base del block cipher utilizzato. In questo caso nell implementazione della KDF è necessario includere un controllo per verificare che la dimensione della key derivation key sia consistente con la lunghezza richiesta dalla PRF. Tuttavia esistono alcune KDF che permettono l utilizzo di chiavi di qualsiasi lunghezza. Come vedremo in seguito, se la PRF all interno di una KDF viene implementata attraverso HMAC, allora la key derivation key può avere dimensione a piacere. In ogni caso la sicurezza di una KDF non subisce miglioramenti all aumentare della lunghezza della chiave [5] Convertire il Keying Material in chiavi crittografiche La lunghezza L del keying material derivato dipende strettamente dalle specifiche dell algoritmo crittografico che richiede l utilizzo della KDF. Pertanto la dimensione della chiave crittografica è determinata dall algoritmo che ne farà uso.

25 CAPITOLO 1. KEY DERIVATION FUNCTION 17 In assenza di limitazioni che possono essere imposte da altre applicazioni, qualsiasi segmento del keying material ottenuto può essere selezionato per diventare la chiave desiderata purché venga rispettata la seguente restrizione: quando vengono estratte più chiavi dallo stesso keying material, esse devono essere selezionate da segmenti disgiunti, ovvero non sovrapposti, dell output della KDF. In ogni caso il valore di L deve essere almeno pari alla somma delle lunghezze delle chiavi desiderate. Nella modalità Counter Mode descritta in precedenza è stato specificato che n, ovvero il numero di iterazioni della PRF, deve essere inferiore a 2 r 1, dove r 32 rappresenta la lunghezza binaria del counter i. Questa assunzione assicura che il contatore [i] 2, usato come input della PRF non si ripeterà durante le varie chiamate, in altre parole assumerà un valore sempre diverso. In questo modo viene limitata anche la dimensione del keying material derivato che sarà pari a L (2 r 1)h, dove h rappresenta la lunghezza in bit dell output della PRF. Nelle modalità FeedbackMode e Double Pipeline Mode invece, il numero di iterazioni è limitato a Key Separation La separazione delle chiavi è un requisito di sicurezza per le chiavi crittografiche derivate utilizzando la stessa key derivation key e ha come scopo quello di garantire che la compromissione di alcune chiavi non abbassi il livello di sicurezza delle altre chiavi non compromesse. Il processo di key separation può risultare necessario in situazioni differenti e per scopi diversi; tali situazioni vengono discusse di seguito.

26 CAPITOLO 1. KEY DERIVATION FUNCTION 18 Consideriamo il caso in cui risulti necessario derivare più chiavi utilizzando lo stesso keying material ottenuto in seguito ad una sola esecuzione di una determinata KDF. Al fine di ottenere queste chiavi, il keying material derivato viene suddiviso in segmenti, ognuno dei quali corrisponde ad una diversa chiave. Per garantire che la compromissione di alcune chiavi non causi una diminuzione di sicurezza di qualsiasi altra chiave ottenuta dall output della stessa esecuzione della KDF, è necessario che i segmenti in cui il keying material viene suddiviso, siano separati tra di loro e che risultino quindi non sovrapposti, evitando cosi di avere bit in comune. In questo modo la violazione di una chiave non renderà più facile il compito di distinguere qualsiasi altra chiave non violata da una stringa casuale della stessa lunghezza; la difficoltà nel portare a termine tale distinzione nella situazione appena presentata, deve essere pari alla difficoltà incontrata nel caso in cui nessuna delle chiavi venga violata. Analizziamo ora il caso in cui il keying material necessario alla formazione di più chiavi crittografiche venga ottenuto non più attraverso una sola esecuzione di una KDF, ma grazie a differenti esecuzioni della stessa KDF utilizzando però la stessa K I. I keying material ottenuti in seguito alle diverse chiamate della KDF devono essere separati in modo tale da garantire che la compromissione del keying material ottenuto con una esecuzione della KDF non diminuisca la sicurezza di qualsiasi altro keying material ottenuto in seguito ad altre esecuzioni della stessa KDF. La compromissione non deve dunque facilitare la distinzione tra qualsiasi altro keying material non compromesso e una stringa casuale della medesima lunghezza. Al fine di soddisfare il requisito appena discusso, quando sono richieste differenti ese-

27 CAPITOLO 1. KEY DERIVATION FUNCTION 19 cuzioni della stessa KDF è necessario utilizzare sempre differenti dati di input (ad esempio Label 0x00 Context [L] 2 ) per ogni esecuzione, ad eccezione della chiave K I. Input differenti possono essere in questo caso ottenuti includendo in essi informazioni riguardanti il keying material soggette a variazioni. Esempi di differenti informazioni includono: Label, se il keying material viene derivato ogni volta per scopi differenti; identità in Context, se il keying material viene derivato per entità differenti; identificativi di sessione, se i keying material sono derivati da sessioni differenti Informazioni di contesto Il keying material derivato dovrebbe essere legato a tutte le informazioni riguardanti il contesto che lo ha richiesto e derivato. Si tratta in particolare di informazioni riguardanti l identità, specificata tramite l identifier [6, 7], delle entità coinvolte nella derivazione, nella distribuzione e nell uso di qualsiasi segmento del keying material; tali informazioni devono essere in qualche modo contenute nella stringa finora denominata Context che viene data in input alla KDF. Oltre alle informazioni riguardanti l identità delle parti coinvolte, il campo Context potrebbe contenere informazioni aggiuntive quali ad esempio gli identificativi di sessione o le informazioni relative al timestamp; è necessario però specificare che tali informazioni devono essere comunicate preventivamente tra le parti attraverso l utilizzo di un protocollo di comunicazione sottostante.

28 CAPITOLO 1. KEY DERIVATION FUNCTION 20 Le informazioni di contesto non hanno lo scopo di aumentare la sicurezza di un applicazione che fa uso di una chiave derivata tramite una KDF; tali informazioni hanno lo scopo di legare le chiavi al contesto e di permettere il rilevamento di errori. È di fondamentale importanza assicurarsi che tutte le entità coinvolte siano in possesso delle stesse informazioni. Infatti, se le parti coinvolte nella derivazione di una chiave possiedono informazioni di contesto differenti, esse deriveranno sicuramente keying material diverso; quando quest ultimo verrà utilizzato all interno di un protocollo di comunicazione, il protocollo stesso sarà destinato a fallire indicando così l errore alle parti coinvolte.

29 Capitolo 2 Le soluzioni classiche in letteratura Una KDF, come spiegato nel capitolo precedente, è un algoritmo deterministico utile per derivare una o più chiavi a partire da un valore segreto fornito in input alla funzione. Se due utenti condividono le stesso source keying material e utilizzano la stessa KDF, essi deriveranno sempre la stessa chiave in output. La maggiore difficoltà che si deve affrontare durante la progettazione di una KDF riguarda la natura del source keying material. Quando il source keying material è rappresentato da una chiave random o pseudorandom K distribuita in modo uniforme, allora è possibile usare K come chiave di una PRF per produrre ulteriori chiavi: sarà sufficiente iterare la PRF secondo una delle modalità presentate nel capitolo precedente usando come key derivation key proprio la chiave K. Quando il source keying material non è distribuito in modo uniforme, invece, non è possibile usare direttamente una PRF per generare le chiavi: è necessario che la KDF usi dei particolari accorgimenti per estrarre la randomness contenuta nel source keying material prima di 21

30 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 22 utilizzarlo per la produzione di chiavi. Una soluzione comunemente riconosciuta per far fronte a questo problema, consiste nel progettare le KDF secondo uno schema a due fasi. Il primo step, definito estrazione, prende un input casuale o pseudocasuale di lunghezza variabile, non necessariamente distribuito in modo uniforme: lo scopo di questa fase è quello di estrarre dal source keying material imperfetto una prima chiave pseudorandom dalla quale derivare poi ulteriori chiavi usando una PRF. La seconda fase detta espansione, considera come input l output della fase di estrazione e lo espande in ulteriori chiavi. La fase di estrazione può basarsi su assunzioni computazionali, quali ad esempio l impossibilità di un possibile utente malintenzionato di trovare le preimmagini di una certa funzione; nel caso appena esposto si parla di estrattori computazionali. In alternativa, la fase di estrazione può fondare la propria costruzione sulla base di alcune proprietà statistiche dimostrabili possedute da determinate funzioni; in questo caso l estrattore prende il nome di estrattore statistico. È necessario porre particolare attenzione anche al caso in cui vi sia la necessità di generare chiavi usando come dato di input una password. In questo caso sono state progettate delle particolare KDF, definite PBKDF (Password-Based Key Derivation Function), il cui scopo è quello di derivare una o più chiavi da una password. La necessità di studiare una soluzione ad-hoc nel caso in cui il source keying material sia rappresentato da una password, nasce in considerazione del fatto che le password spesso vengono scelte da un insieme relativamente piccolo di possibili caratteri e non possono quindi essere utilizzate direttamente come chiavi. Una PBKDF prende in input una password, una salt e un iteration counter; una KDF, invece, prende

31 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 23 in input un valore segreto generico (il source key material) e delle informazioni pubbliche aggiuntive opzionali. 2.1 Scopi delle KDF Le KDF vengono impiegate in situazioni differenti e per scopi diversi. I casi d uso delle KDF sono presentati di seguito. Caso 1. Generare una o più chiavi avendo in input un source keying material distribuito in modo uniforme; in questo caso la KDF usa un seed, ovvero un seme casuale che serve per inizializzare la funzione. Non è necessario utilizzare la fase di estrazione proprio perché l input alla KDF è già distribuito in modo uniforme; è possibile ottenere le chiavi desiderate applicando direttamente una PRF al seed e al source keying material, che viene usato come chiave della PRF. Caso 2. Generare una o più chiavi a partire da un valore segreto condiviso calcolato mediante il protocollo Diffie-Hellman. In questo caso, prima di derivare le chiavi, è necessario processare l input mediante una fase di estrazione in quanto il valore segreto condiviso non è distribuito in modo uniforme. Caso 3. Produrre keying material a partire da una sorgente casuale o pseudocasuale distribuita in modo non uniforme. Anche in questo caso è necessario prevedere l utilizzo di una fase iniziale di estrazione. Caso 4. Generare una o più chiavi utilizzando come input una passphrase; una prima fase di estrazione è necessaria anche in questo caso.

32 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 24 Nel Caso 2 è preferibile usare un estrattore computazionale, in quanto un estrattore statistico potrebbe essere inefficiente [8]. Le KDF progettate al fine di raggiungere lo scopo presentato nel Caso 4, invece, devono avere ulteriori proprietà; al fine di prevenire attacchi che realizzano una ricerca esaustiva all interno dello spazio delle password, è preferibile fare uso di funzioni il cui costo computazionale sia elevato, in modo tale da rendere impossibili tali attacchi. Nel Caso 1, invece, la progettazione di una KDF risulta piuttosto facile; infatti, come detto in precedenza, quando il keying material è distribuito in modo uniforme è sufficiente utilizzare una PRF per derivare le chiavi aggiuntive, tralasciando la fase di estrazione. Più difficoltosa risulta la realizzazione di una KDF adatta al Caso 2 e al Caso 3: la ricerca in questo campo è molto ampia ma, nonostante siano stati ottenuti risultati, molti di essi non vengono utilizzati nella pratica a causa della loro inefficienza. Rimane comunque tuttora aperta la questione riguardante l importanza di trovare una funzione che ben si adatti al raggiungimento dello scopo riportato nel Caso 4, in considerazione del fatto che, qualsiasi sistema che utilizza chiavi derivate da password risulta vulnerabile agli attacchi dizionario. Di seguito verranno presentate le Key Derivation Function esistenti in letteratura e verranno discussi gli scopi per le quali sono state progettate. 2.2 KDF indipendenti dal protocollo Esistono diversi tipi di KDF. Le protocol-indipendent KDF, ovvero le KDF indipendenti dal protocollo, sono KDF le cui specifiche non dipendono direttamente da un protocollo. L applicabilità di tali funzioni non è in alcun

33 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 25 modo soggetta a restrizioni e pertanto possono essere impiegate da qualsiasi applicazione che ne richieda l utilizzo. Di seguito verranno specificate alcune KDF indipendenti dal protocollo conosciute in letteratura. NIST Special Pubblication In [5] vengono presentate le tre modalità di funzionamento delle KDF discusse nella sezione 1.3. L applicabilità di KDF di questo tipo è tuttavia limitata al caso in cui il source keying material è distribuito in modo uniforme, Caso 1. È quindi sufficiente applicare una PRF ai dati di input secondo una delle modalità presentate, senza processare ulteriormente le chiavi così ottenute. NIST Special Pubblication In [9] vengono specificati alcuni metodi per la generazione di bit casuali che possono essere, successivamente, usati direttamente oppure convertiti in numeri dalle applicazioni crittografiche che ne hanno richiesto la generazione. Esistono fondamentalmente due strategie per generare bit random. Tali bit possono essere prodotti in modo non deterministico, sulla base di processi fisici non predicibili, oppure in modo deterministico facendo uso di un algoritmo. In [9] vengono presentati dei generatori di bit casuali, definiti DRBG (Deterministic Random Bit Generators), che si basano su algoritmi che producono sequenze di bit a partire da un valore iniziale, determinato con l utilizzo di un seed strettamente dipendente dall entropia dell input. I DRBG producono output pseudocasuali distribuiti in modo non uniforme; le KDF presentate in [9] sono quindi progettate in modo tale da lavorare con output di questo tipo, che rientrano nel

34 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 26 Caso 3. PKCS #5 Una password non può essere usata direttamente come chiave in un sistema crittografico, in quanto notevolmente esposta ad attacchi. Le password, infatti, vengono di solito scelte all interno di uno spazio molto limitato di caratteri, ed è quindi richiesta particolare attenzione per difendere dagli attacchi dizionario i crittosistemi basati su password. È necessario quindi processare la password stessa, al fine di rendere sicure le operazioni crittografiche che la coinvolgono. Un approccio generale per risolvere questo problema consiste nel combinare ogni password con un salt per produrre una chiave. Il salt, che non deve essere necessariamente tenuto segreto, può essere visto come un indice all interno di un insieme di chiavi derivate da una stessa password. Questo tipo di accorgimento è abbastanza sicuro: se per un nemico è possibile costruire una tabella con tutte le possibili password, realizzando così un attacco dizionario, costruire una tabella con tutte le possibili chiavi non risulta altrettanto facile, in quanto esistono molte chiavi, una per ogni combinazione password-salt. In queste situazioni un nemico intenzionato ad attaccare il sistema può solo limitarsi a cercare nello spazio delle password, separatamente da ogni salt. Un altro approccio per rendere sicura la crittografia basata su password, consiste nel costruire tecniche per la derivazione di chiavi relativamente costose, in modo tale da aumentare il costo della ricerca esaustiva. È proprio questo principio che sta alla base della soluzione proposta nello standard PKCS #5. I PKCS, (Public-Key Cryptography Standards), sono degli standard riguardanti la crittografia a chiave pubblica, pubblicati dalla

35 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 27 RSA Security, la divisione di sicurezza della EMC Corporation. Il PKCS #5 [10] è uno standard di cifratura basata su password, specificato proprio nei PKCS. La prima KDF presentata in questo standard fu PBKDF1 (Password- Based Key Derivation Function), che faceva uso di una funzione hash in OFB mode (Output Feedback). Le chiavi derivate dallo standard PBKDF1 avevano dimensione non superiore a 160 bit. PBKDF2 ha sostituito lo standard precedente. Si tratta di una KDF basata su HMAC. L uso di un salt e di un iteration counter è alla base delle tecniche crittografiche contenute in PKCS #5. In questo modo la derivazione di chiavi basata su password è funzione della password, del salt e dell iteration counter, dove gli ultimi due parametri non devono essere necessariamente segreti. La PRF viene applicata alla password fornita in input e al salt; questo processo viene iterato un numero elevato di volte (1000, il minimo suggerito) al fine di derivare le chiavi desiderate. L utilizzo del salt riduce la possibilità di realizzare attacchi dizionario alla password; iterando la PRF un numero sufficientemente elevato di volte è possibile rendere gli attacchi di forza bruta al sistema più difficili. Questo tipo di KDF si adatta bene ad essere usata nel Caso 4; è tuttavia possibile applicarla a casi differenti. HKDF HKDF, ovvero HMAC-based Extract-and-Expand Key Derivation Function, [1] è una KDF costituita da una prima fase opzionale, definita estrazione, seguita da una fase di espansione. Questo tipo di funzione di derivazione delle chiavi può essere utilizzato in tutti i casi spiegati in precedenza. Nel caso in cui sia necessario derivare keying material a partire da

36 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 28 un valore Diffie-Hellman precedentemente calcolato (Caso 2) o da un source keying material non uniforme (Caso 3), è necessario eseguire entrambe le fasi previste. La HKDF è applicabile anche al caso in cui sia necessario produrre chiavi avendo in input una password o una passphrase (Caso 4). Invece nel Caso 1, ovvero quando l input alla KDF è un source keying material distribuito in modo uniforme, è sufficiente processare l input solo attraverso la fase di espansione: essendo già uniforme, infatti, non è necessario estrarre randomness dall input stesso. 2.3 KDF dipendenti dal protocollo Oltre alle KDF indipendenti dal protocollo, esistono numerose KDF definite protocol-specific KDF, ovvero funzioni per la derivazione di chiavi dipendenti dal protocollo. L applicabilità di questo tipo di KDF è limitata solo ai protocolli che le contengono. Molte KDF, infatti, sono state progettate per Internet e per molti altri protocolli di rete diventando parte delle loro specifiche. Di seguito verranno presentate alcune di queste KDF, specificando il caso d uso per le quali sono state realizzate. NIST Special Pubblication A In [6] (Recommendation for Pair- Wise Key Establishment Schemes Using Discrete Logarithm Cryptography) vengono presentate due KDF in Counter Mode. Sono due KDF molto simili, ma differiscono per il fatto che una di esse utilizza il linguaggio astratto ASN.1 per l encoding del parametro OtherInf o. Entrambe le KDF prendo-

37 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 29 no in input una valore segreto condiviso, precedentemente calcolato con il protocollo Diffie-Hellman, e un seed; esse possono essere utilizzate, quindi, nel caso d uso specificato dal Caso 2. Vengono inoltre richiesti come input un identificativo che indichi l uso previsto per la chiave e gli identificativi delle parti coinvolte. ANSI X9.42 e ANSI X9.63 Gli standard ANSI X9.42 e ANSI X9.63, specificano entrambi uno schema per lo scambio di chiavi per algoritmi simmetrici; il primo standard è basato sul protocollo Diffie Hellman, mentre lo standard ANSI X9.63 fa uso della crittografia a curve ellittiche. Nello standard ANSI X9.42 vengono specificate due KFD, una basata sulla codifica ASN.1 del parametro OtherInf o e l altra basata sulla concatenazione. Entrambe le KDF fanno uso di funzioni hash e vengono usate dalle parti dopo essere entrate in possesso di una chiave segreta condivisa. Anche nello standard ANSI X9.63 viene definita una KDF: questa funzione, che lavora in modalità Counter Mode, genera il keying material della lunghezza desiderata applicando una funzione hash ai dati forniti in input, ovvero al valore segreto condiviso e a una serie di informazioni preventivamente scambiate e possedute da entrambe le parti. IEEE Lo standard IEEE 1363 fornisce delle specifiche relative alla crittografia a chiave pubblica. Esso adotta una particolare key derivation function, KDF1, che può essere usata nel Caso 2. KDF1 è simile alla KDF specificata in NIST SP A, ma non è previsto l uso del contatore. Inoltre

38 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 30 la KDF1 non prevede l uso di una fase di estrazione, ma solo della fase di espansione. IEEE 1363a-2004 Si tratta di una successiva modifica dello standard IEEE 1363 che introduce una nuova funzione per la derivazione delle chiavi, KDF2, le cui specifiche indicano che si tratta di una funzione derivata dallo standard ANSI X9.42. KDF2 è una funzione hash che lavora in Counter Mode: in essa non è previsto l uso di una fase di estrazione, in quanto non necessaria, mentre la fase di espansione viene realizzata in Counter Mode (determinando così una netta differenza con HKDF che lavora in Feedback Mode). KDF2 si presta ad essere usata nel Caso 2. ISO ISO è uno standard per la crittografia a chiave pubblica. Le KDF presentate sono versioni più generali di quelle contenute in NIST SP A. Si tratta in ogni caso di KDF progettate per derivare chiavi avendo in input valori ottenuti mediante il protocollo Diffie-Hellman, il che le rende adatte ad essere usate nel Caso 2. Transport Layer Security (TLS, Version 1.2) Il Transport Layer Security (TLS), così come il suo predecessore Secure Sockets Layer (SSL), è un protocollo crittografico che garantisce l integrità sui dati e la sicurezza nella comunicazione su reti. Questi protocolli cifrano i messaggi che devono essere spediti a livello di trasporto (Transport Layer) dalla sorgente alla destinazione. TLS è un protocollo standard IETF, definito in [11], che si basa sulle specifiche del protocollo SSL che lo ha preceduto. Diverse versioni di

39 CAPITOLO 2. LE SOLUZIONI CLASSICHE IN LETTERATURA 31 questo protocollo sono ampiamente impiegate in applicazioni quali le , i browser, il VoIP e la messaggistica istantanea. Il protocollo TLS si occupa di garantire la protezione della comunicazione delle applicazioni client-server; alla base di tale protezione vi sono due parametri chiamati pre-master secret message e master secret message. È necessario che le parti che comunicano condividano lo stesso pre-master secret message e lo stesso master secret message: a tal scopo il protocollo TLS prevede che il client e il server si scambino lungo la rete il pre-master secret, dal quale poi verrà derivato in locale il master secret. Quest ultimo verrà a sua volta usato per generare le chiavi necessarie alla comunicazione. Per lo scambio del pre-master secret possono essere usate diverse alternative: è possibile ad esempio usare il protocollo Diffie-Hellman o un algoritmo crittografico a chiave pubblica. A titolo di esempio, supponiamo venga usato l algoritmo RSA: in questo caso il client genera il pre-master secret, lo cifra usando la chiave pubblica del server e spedisce il messaggio così ottenuto lungo il canale. Il server ricava il pre-master secret decifrando il messaggio usando la propria chiave privata. A questo punto client e server condividono lo stesso pre-master secret. Le KDF entrano in gioco proprio a questo punto: esse vengono usate per derivare il master secret dal pre-master secret e, successivamente, per derivare le chiavi necessarie per la comunicazione dal master secret. La KDF implementata nel protocollo TLS usa HMAC in modalità output feedback. Vengono specificate due computazioni della KDF: una per derivare il master secret dal pre-master secret e l altra per derivare le chiavi a partire dal mastersecret. Il source keying material è costituito nel primo caso dal pre-master

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

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

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it 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 cerri@cefriel.it 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

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

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette Crittografia Cenni Damiano Carra Università degli Studi di Verona Dipartimento di Informatica La crittografia! Scienza che si occupa di proteggere l informazione rendendola sicura, in modo che un utente

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

Dettagli

Approfondimento di Marco Mulas

Approfondimento di Marco Mulas Approfondimento di Marco Mulas Affidabilità: TCP o UDP Throughput: banda a disposizione Temporizzazione: realtime o piccoli ritardi Sicurezza Riservatezza dei dati Integrità dei dati Autenticazione di

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Informatica per la comunicazione" - lezione 13 -

Informatica per la comunicazione - lezione 13 - Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Capitolo 25: Lo scambio nel mercato delle assicurazioni

Capitolo 25: Lo scambio nel mercato delle assicurazioni Capitolo 25: Lo scambio nel mercato delle assicurazioni 25.1: Introduzione In questo capitolo la teoria economica discussa nei capitoli 23 e 24 viene applicata all analisi dello scambio del rischio nel

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0 Settore delle carte di pagamento (PCI) Standard di protezione dei dati per le applicazioni di pagamento () Riepilogo delle modifiche di dalla versione 2.0 alla 3.0 Novembre 2013 Introduzione Il presente

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte. I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it Decreto Legislativo 196/2003 Codice in materia di protezione dei dati personali COOKIE POLICY La presente informativa è resa anche ai sensi dell art. 13 del D.Lgs 196/03 Codice in materia di protezione

Dettagli

Scambio delle chiavi. mercoledì 7 dicembre 2011

Scambio delle chiavi. mercoledì 7 dicembre 2011 Scambio delle chiavi 1 mercoledì 7 dicembre 2011 Distribuzione della chiave Dati due terminali A e B, si possono avere varie alternative per la distribuzione delle chiavi. 1. A sceglie una chiave e la

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

Richiami di teoria della domanda di moneta

Richiami di teoria della domanda di moneta Richiami di teoria della domanda di moneta Parte seconda La teoria della preferenza della liquidità di Keynes Keynes distingue tre moventi principali per cui si detiene moneta. Transattivo Precauzionale

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

da chi proviene un messaggio?

da chi proviene un messaggio? da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente

Dettagli

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE Nella Sezione 16.5 abbiamo visto come un regolatore che voglia fissare il prezzo del monopolista in modo da minimizzare la

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

Crittografia. Appunti a cura del prof. Ing. Mario Catalano Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

La firma digitale CHE COSA E'?

La firma digitale CHE COSA E'? La firma digitale La Firma Digitale è il risultato di una procedura informatica che garantisce l autenticità e l integrità di messaggi e documenti scambiati e archiviati con mezzi informatici, al pari

Dettagli

Il sistema monetario

Il sistema monetario Il sistema monetario Premessa: in un sistema economico senza moneta il commercio richiede la doppia coincidenza dei desideri. L esistenza del denaro rende più facili gli scambi. Moneta: insieme di tutti

Dettagli

Dispositivi di rete. Ripetitori. Hub

Dispositivi di rete. Ripetitori. Hub Ripetitori Dispositivi di rete I ripetitori aumentano la distanza che può essere ragginta dai dispositivi Ethernet per trasmettere dati l'uno rispetto all'altro. Le distanze coperte dai cavi sono limitate

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

I contributi pubblici nello IAS 20

I contributi pubblici nello IAS 20 I contributi pubblici nello IAS 20 di Paolo Moretti Il principio contabile internazionale IAS 20 fornisce le indicazioni in merito alle modalità di contabilizzazione ed informativa dei contributi pubblici,

Dettagli

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Applicazioni per l autenticazione Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009 Applicazioni per l autenticazione Kerberos Kerberos Servizio di autenticazione sviluppato dal MIT Fornisce un server di autenticazione centralizzato Basato su crittografia simmetrica (chiave privata) Permette

Dettagli

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

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

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

Probabilità discreta

Probabilità discreta Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che

Dettagli

Laboratorio di Pedagogia Sperimentale. Indice

Laboratorio di Pedagogia Sperimentale. Indice INSEGNAMENTO DI LABORATORIO DI PEDAGOGIA SPERIMENTALE LEZIONE III INTRODUZIONE ALLA RICERCA SPERIMENTALE (PARTE III) PROF. VINCENZO BONAZZA Indice 1 L ipotesi -----------------------------------------------------------

Dettagli

Sicurezza a livello IP: IPsec e le reti private virtuali

Sicurezza a livello IP: IPsec e le reti private virtuali Sicurezza a livello IP: IPsec e le reti private virtuali Davide Cerri Sommario L esigenza di proteggere l informazione che viene trasmessa in rete porta all utilizzo di diversi protocolli crittografici.

Dettagli

Appendice III. Competenza e definizione della competenza

Appendice III. Competenza e definizione della competenza Appendice III. Competenza e definizione della competenza Competenze degli psicologi Lo scopo complessivo dell esercizio della professione di psicologo è di sviluppare e applicare i principi, le conoscenze,

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012

SETEFI. Marco Cantarini, Daniele Maccauro, Domenico Marzolla. 19 Aprile 2012 e VIRTUALCARD 19 Aprile 2012 e VIRTUALCARD Introduzione Il nostro obiettivo é quello di illustrare la struttura e le caratteristiche di fondo che stanno alla base delle transazioni online operate tramite

Dettagli

SCELTA DELL APPROCCIO. A corredo delle linee guida per l autovalutazione e il miglioramento

SCELTA DELL APPROCCIO. A corredo delle linee guida per l autovalutazione e il miglioramento SCELTA DELL APPROCCIO A corredo delle linee guida per l autovalutazione e il miglioramento 1 SCELTA DELL APPROCCIO l approccio all autovalutazione diffusa può essere normale o semplificato, a seconda delle

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

DOCUMENTI INFORMATICI, POSTA CERTIFICATA E DEMATERIALIZZAZIONE

DOCUMENTI INFORMATICI, POSTA CERTIFICATA E DEMATERIALIZZAZIONE Prof. Stefano Pigliapoco DOCUMENTI INFORMATICI, POSTA CERTIFICATA E DEMATERIALIZZAZIONE s.pigliapoco@unimc.it Codice dell amministrazione digitale Il codice dell amministrazione digitale (Co.A.Di.) è contenuto

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved. SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

Metodi statistici per le ricerche di mercato

Metodi statistici per le ricerche di mercato Metodi statistici per le ricerche di mercato Prof.ssa Isabella Mingo A.A. 2014-2015 Facoltà di Scienze Politiche, Sociologia, Comunicazione Corso di laurea Magistrale in «Organizzazione e marketing per

Dettagli

Indice. pagina 2 di 10

Indice. pagina 2 di 10 LEZIONE PROGETTAZIONE ORGANIZZATIVA DOTT.SSA ROSAMARIA D AMORE Indice PROGETTAZIONE ORGANIZZATIVA---------------------------------------------------------------------------------------- 3 LA STRUTTURA

Dettagli

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti

Dettagli

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti

Corso di Sicurezza Informatica. Sicurezza Web. Ing. Gianluca Caminiti Corso di Sicurezza Informatica Sicurezza Web Ing. Gianluca Caminiti SSL Sommario Considerazioni sulla Sicurezza del Web Secure Socket Layer (SSL) 3 Brevi Considerazioni sulla Sicurezza del Web Web come

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

TELECOMUNICAZIONI II: LE RETI DI COMUNICAZIONE. INTRODUZIONE... pag.2

TELECOMUNICAZIONI II: LE RETI DI COMUNICAZIONE. INTRODUZIONE... pag.2 1 TELECOMUNICAZIONI II: LE RETI DI COMUNICAZIONE INDICE INTRODUZIONE... pag.2 LE RETI DI COMUNICAZIONE.. pag.2 La rete interconnessa (o a maglia).. pag.2 La rete a commutazione. pag.3 La rete policentrica

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

GUIDA ALLA RILEVANZA

GUIDA ALLA RILEVANZA GUIDA ALLA RILEVANZA Posizionamento per Rilevanza Suggerimenti per una migliore visibilità su ebay www.egolden.it Vers. 1.1 Questa guida puo essere ridistribuita con l obbligo di non modificarne contenuto

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP Un indirizzo IP è composto da 32 bit. Generalmente, per convenienza, è presentato in decimale: 4 ottetti (bytes) separati da un punto. Ogni rete fisica

Dettagli

Realizzazione di una chat su protocollo HTTP

Realizzazione di una chat su protocollo HTTP Università di Pisa Università di Pisa Percorsi Abilitanti Speciali (PAS) Percorsi Abilitanti Speciali (PAS) Realizzazione di una chat su protocollo HTTP Realizzazione di una chat su protocollo HTTP Feo

Dettagli

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Application note. CalBatt NomoStor per i sistemi di accumulo di energia 1. Panoramica Application note CalBatt NomoStor per i sistemi di accumulo di energia Gli Energy Management Systems () sono dispositivi atti al controllo dei flussi di energia dalle sorgenti di produzione

Dettagli

Contabilità generale e contabilità analitica

Contabilità generale e contabilità analitica 1/5 Contabilità generale e contabilità analitica La sfida della contabilità analitica è di produrre informazioni sia preventive che consuntive. Inoltre questi dati devono riferirsi a vari oggetti (prodotti,

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Una minaccia dovuta all uso dell SNMP su WLAN

Una minaccia dovuta all uso dell SNMP su WLAN Una minaccia dovuta all uso dell SNMP su WLAN Gianluigi Me, gianluigi@wi-fiforum.com Traduzione a cura di Paolo Spagnoletti Introduzione Gli attacchi al protocollo WEP compromettono la confidenzialità

Dettagli