Denizione e valutazione di uno schema di prova di possesso dei dati. (Sintesi)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Denizione e valutazione di uno schema di prova di possesso dei dati. (Sintesi)"

Transcript

1 Facoltà di scienze matematiche siche e naturali Corso di Laurea Magistrale in Matematica Tesi di Laurea Magistrale in Matematica Denizione e valutazione di uno schema di prova di possesso dei dati (Sintesi) Relatore: Prof. Roberto Di Pietro Candidata: Emanuela Iacobone mat Correlatore: Prof. Agustin Orla Anno Accademico 2011/2012

2 Introduzione Il Cloud Computing è al giorno d'oggi una parola molto usata nell'information Technology. Aziende come Amazon, Google e altre, stanno cercando di accelerare il passo nello sviluppo e nel miglioramento dei loro sistemi di Cloud Computing per fornire i loro servizi ad una maggiore quantità di utenti. Questo recente rapido aumento della fruibilità dei servizi Cloud insieme ai molti vantaggi derivanti dal suo utilizzo, rendono tali servizi attraenti ed economicamente convenienti. La loro adozione da parte di un numero sempre crescente di utenti ha portato ad un aumento del volume di dati memorizzati nei Cloud; si è cominciato dunque a sentire l'esigenza di implementare nuove tecniche che permettano di risparmiare spazio di memoria e larghezza di banda. Una promettente idea in questo contesto è la deduplication: con questo termine si indica quel processo che permette di evitare di dover memorizzare uno stesso dato più volte. La sua eettiva utilità è evidente dal fatto che spesso grandi quantità di dati mostrano un'alta ridondanza: ne sono un esempio i documenti nanziari, che hanno intestazioni comuni e campi semi-identici, oppure i contenuti multimediali più popolari, come musica e video, che aspirano ad essere posseduti da molti utenti. Alquanto semplice in teoria, l'implementazioni delle tecniche di deduplication introduce nuovi rischi riguardo la sicurezza. Harnik et al. [1] hanno identicato alcune delle possibili minacce che possono interessare un sistema Cloud Storage che si avvale di queste tecniche: oltre a compromettere la privacy e la condenzialità degli utenti del sistema, alcuni possibili attacchi sono in grado di sovvertire l'uso previsto per un sistema Cloud Storage, trasformandolo ad esempio in un Content Distribution Network (CDN). Un attacco di quest'ultimo tipo è stato realmente messo in atto, solo qualche anno fa, da Wladimir van der Laan contro uno fra i più popolari servizi di Cloud Storage, Dropbox; van der Laan ha creato un progetto open source, chiamato Dropship 1

3 [2], che consentiva agli utenti di scaricare contenuti dal server Dropbox pur non avendoli eettivamente mai posseduti. Il progetto è stato poi però ritirato dopo che il co-fondatore di Dropbox lo ha richiesto in un modo davvero civile. Per evitare attacchi di questo tipo, Halevi et al. [3] hanno introdotto la nozione di Proof of Ownership (POW), un protocollo di sicurezza che permette al sistema di autorizzare il ripristino di un determinato le solo agli utenti che eettivamente si sono dimostrati i reali possessori dello stesso. In questa tesi introdurremo e presenteremo un nuovo schema di proof of ownership e lo compareremo con i due precedentemente introdotti da Halevi et al. [3] e Di Pietro, Sorniotti [4]. La peculiarità del nostro schema riguarda l'utilizzo di una struttura dati probabilistica che, introdotta più di quarant'anni fa, ha avuto n da allora un notevole successo nelle applicazioni database: il ltro di Bloom. Nel corso del lavoro verranno descritte e confrontate fra loro le implementazioni di tutti e tre gli schemi di POW menzionati, insieme alla complessità computazionale, l'i/o, la quantità di memoria e la larghezza di banda necessarie per eseguire l'intero protocollo. L'analisi comparativa delle tre soluzioni verrà eettuata sia in maniera formale che avvalendosi dei tempi di esecuzione misurati nei test condotti utilizzando le implementazioni in linguaggio C++ dei tre schemi. 1 Cloud Computing e Cloud Storage Nonostante negli ultimi anni il Cloud computing è l'argomento di IT del quale si è più scritto, discusso e parlato, rimane tuttavia molta confusione riguardo a cosa esattamente esso sia. Società di analisi, docenti universitari, operatori del settore e aziende di IT, hanno fornito denizioni diverse di Cloud computing [5]. La denizione data dal National Institute of Standards and Technology (NIST) 2

4 è la seguente: Denizione. Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of congurable computing resources (e.g., networks, servers, storage applications and services) that can be rapidly provisioned and released with minimal management eort or service provider interaction. La Berkeley RAD Lab dà una denizione più precisa riguardo a cosa il termine Cloud Computing si riferisce: indica sia le applicazioni fornite come servizi su internet sia i sistemi hardware e software nei data center che forniscono tali servizi; il data center hardware e software è detto Cloud [6]. Il Cloud Computing è quindi un grande pool di risorse virtualizzate di facile accesso e utilizzo, che possono essere dinamicamente ricongurate per adattarsi ad un carico variabile consentendo dunque in questo modo un ottimale utilizzo delle risorse. Poichè l'accesso alle risorse da parte dell'utente avviene solo con l'aiuto di internet e di un browser, la fruizione delle stesse è indipendente dal dispositivo utilizzato dall'utente o dalla sua posizione. Inoltre, dato che le infrastrutture alle quali si accede sono fornite da terze parti, l'utente le utilizza senza conoscerne le caratteristiche di dettaglio e senza occuparsi della loro gestione; la manutenzione è più facile e i costi per gli utenti sono ridotti proprio perchè le applicazioni non devono essere installate sui computer personali degli utenti. La modalità pay-per-use utilizzata, permette di misurare l'uso delle applicazioni per client su basi regolari; ed in più la condivisione sia dei costi che delle risorse tra un elevato numero di utenti, consente un utilizzo eciente delle infrastrutture. Il Cloud Storage ore agli utenti la possibilità di memorizzare i propri dati su uno spazio di archiviazione on-line scalabile ed elastico gestito da terzi, accessibile tramite la rete. Al suo livello più elementare, un sistema di Cloud Storage necessita solo di un le system connesso a Internet. Un cliente (ad esempio, un utente di computer 3

5 abbonato ad un servizio Cloud Storage) invia delle copie di alcuni le su Internet al server, che le memorizza. Quando il cliente desidera recuperare questi dati, accede al server attraverso un interfaccia Web-based. Il server puo' allora o inviare i le al cliente o consentire a questo di accedere e manipolare i le sul server stesso. L'utilizzo del Cloud Storage ha notevoli vantaggi dal punto di vista dei costi, della gestione e della qualità del servizio oerta: permette di semplicare drasticamente il mantenimento degli hardware, dei software e in generale delle infrastrutture che supportano l'archiviazione di dati, con la conseguente riduzione dei costi di gestione e del personale addetto; le soluzioni Cloud-based, inoltre, sono essibili e forniscono il necessario spazio di archiviazione. Dal punto di vista della sicurezza, il sistema di Cloud Storage ha però inevitabilmente creato nuove pericolose minacce per una serie di ragioni, che riguardano per lo più la sua architettura e il suo funzionamento, e per le quali sono state proposte diverse tecnologie in grado di fronteggiarle e sconggerle [7]. 1.1 Deduplication Nonostante le suddette questioni relative alla sicurezza, c'è stato negli ultimi tempi un rapido incremento nell'utilizzo del servizio di Cloud Storage, con un conseguente aumento del volume di dati memorizzati. Si è iniziato dunque a sentire l'esigenza di implementare nuove tecniche che permettano di risparmiare spazio di memoria e larghezza di banda. Una centrale e promettente idea in questo contesto è la deduplication: sono tecniche che permettono di memorizzare solo una singola copia dei dati ridondanti. La sua ecacia dipende da fattori quali il tipo di dato, il periodo di conservazione e il numero di utenti. Le strategie di deduplication si possono classicare a seconda delle unità dati di base che trattano [1]; si distingue la le-level deduplication, nella quale sono le 4

6 singole copie di le ad essere memorizzate, dalla block-level deduplication, in cui i le vengono suddivisi in blocchi ed è una sola copia di ogni singolo blocco ad essere salvata. Un'altra classicazione può essere fatta in base a dove si verica la deduplication; si parla di source-based o client-side deduplication se viene eseguita dal lato dell'utente, prima cioè che il dato venga trasferito: il software dell'utente comunica con il sistema, inviandogli un piccolo valore che identica il dato, per vericare l'esistenza o meno del le o del blocco nella memoria del sistema; se il le o blocco è già presente, il sistema lo sostituisce con un puntatore, e non è quindi necessario inviarlo sulla rete. Si parla invece di target-based o server-side deduplication se avviene dal lato del sistema; con questo approccio l'utente resta ignaro della eventuale deduplication che potrebbe vericarsi. Alquanto semplice in teoria, l'implementazione di questa tecnica presenta però molti rischi legati alla sicurezza. In [1], Harnik et al. hanno identicato e descritto alcune delle possibili minacce che potrebbero interessare un sistema Cloud Storage che esegue la client-side deduplication Proof of Ownership Uno dei rischi più gravi riguardo la sicurezza dovuto all'utilizzo della tecnica del client-side deduplication, deriva dal fatto che la dimostrazione che un utente possegga un dato le è basata unicamente su un piccolo valore (solitamente l'hash di quel le), la cui conoscenza automaticamente garantisce all'utente l'accesso all'intero le. Per evitare questo tipo di attacco, in [3], Halevi et al. hanno introdotto la nozione di Proof of Ownership (POW), un protocollo di sicurezza che permette al sistema di vericare (con un certo grado di garanzia) se l'utente possiede l'intero le o meno. Il protocollo di POW è un protocollo che si svolge tra client e server, su un le in input comune, e funziona in questo modo: in primo luogo il server agisce 5

7 sul le in input applicandogli una funzione di hash, il cui digest utilizzerà come identicatore del le, e generando poi una (piccola) informazione per la verica v. Successivamente, quando un client chiede di caricare un le che il server ha accertato di possedere già (utilizzando il digest inviatogli dal client), server e client avviano un protocollo interattivo, nel quale il client è in possesso del le mentre il server ha solo l'informazione v, al termine del quale il server accetta o riuta. Halevi et al. [3] hanno introdotto il primo pratico protocollo crittograco che implementa il POW. Successivamente Di Pietro e Sorniotti [4] hanno presentato un nuovo schema di Proof of Ownership più eciente del primo dal punto di vista delle performance sul lato del cliente, e la cui sicurezza, a dierenza del suo predecessore, deriva esclusivamente dalla teoria dell'informazione. Noi introdurremo ora un ulteriore schema di POW e lo confronteremo con i due precedenti per mostrarne le qualità e i punti di forza. 2 Gli schemi b-pow e s-pow 2.1 b-pow: algoritmo e sicurezza Halevi et al. [3] hanno presentato tre schemi che implementano il protocollo di POW, i quali dieriscono in termini di ecienza e sicurezza. Tutti e tre prevedono che il server sdi il client a presentare dei sibling path validi per un sottoinsieme di foglie di un albero di Merkle [8], scelte in modo random dal server. Sia il client che il server costruiscono l'albero di Merkle; il server memorizza solo la radice dell'albero e sda i client che aermano di possedere il le. La dimostrazione della sicurezza nell'utilizzo del protocollo di prova dell'albero di Merkle, appena descritto, si basa sul Lemma dell'albero di Merkle (per il cui enunciato e dimostrazione si rimanda all'appendice in [3]). Il Lemma aerma 6

8 che chiunque superi con successo questo protocollo, con un alta probabilità puo' essere convertito in un estrattore che è in grado di estrarre la maggior parte delle foglie dell'albero. L'albero di Merkle è costruito su un buer, il cui contenuto viene derivato dal le, e pre-processato in tre dierenti modi per i tre diversi schemi presentati. Il primo schema applica sul contenuto del le originale un erasure code; sul le codicato viene poi costruito l'albero di Merkle. Il secondo schema, invece, pre-processa il le con una funzione di hash universale che, applicata sull'intero le, genera un output che va a riempire un buer ridotto intermedio, la cui dimensione è abbastanza grande da scoraggiarne lo scambio tra client maliziosi, ma non così tanto da renderlo non pratico: gli autori hanno stabilito una dimensione di 64 MiB. Il buer ridotto ottenuto viene poi usato come input per la costruzione dell'albero di Merkle. Il terzo schema, che è quello con cui confronteremo la soluzione presentata in questa tesi, segue lo stesso approccio, ma sostituisce la funzione di hash universale con una procedura che prevede una fase di riduzione e di miscelazione in grado di generare un buon hash sul buer ridotto intermedio, utilizzato poi per costruire l'albero di Merkle. Nel resto della tesi ci riferiremo a questo schema utilizzando la sigla b-pow. Questo schema ha due fasi: la prima fase (reduction) popola il buer ridotto XORando ogni blocco, in cui il le viene diviso, in quattro posizioni scelte in modo random nel buer (dopo aver eseguito uno shift di bit). La fase successiva di mixing amplica la confusione e diusione nel buer ridotto XORando insieme i contenuti delle posizioni nel buer, scelte in modo random. A dierenza dei due schemi precedenti, gli autori sono in grado di provare la sicurezza del terzo schema solo per un numero ristretto di distribuzioni in input e sotto un'ipotesi sul codice che si ottiene dopo la trasformazione. 7

9 2.2 s-pow: algoritmo e sicurezza In [4], R. Di Pietro e A. Sorniotti hanno presentato un nuovo schema di Proof of Ownership che è più eciente del suo predecessore dal punto di vista delle performance; l'i/o e i costi computazionali non dipendono dalla grandezza del le in input ed inoltre, a dierenza dello schema b-pow, la sua sicurezza deriva esclusivamente dalla teoria dell'informazione. Ci riferiremo a questo schema usando l'acronimo s-pow. L'idea di base sul quale poggia lo schema s-pow, è che la probabilità che un utente malintenzionato è in grado di produrre il valore corretto di K bit del le, con ogni bit scelto in una posizione casuale del le, è trascurabile nel parametro di sicurezza k (se si assume un limite superiore al sottoinsieme di bit del le conosciuti dall'attaccante). La soluzione proposta dagli autori, consiste di due fasi separate. Nella prima fase, il server riceve il le per la prima volta e pre-computa le risposte per un numero di sde POW relative al le. Per la considerazione su esposta, la risposta ad una sda sarà una stringa di bit di dimensione K, costruita con la concatenazione dei K bit del le originale, presi nelle K posizioni casuali. La computazione delle sde POW per un dato le è eettuata sia quando viene richiesto di caricare il le che non è ancora presente tra quelli memorizzati dal server, ma anche quando la riserva di risposte alle sde calcolate in precedenza si esaurisce. La seconda fase è attivata dal client quando invia al server un identicatore univoco per un le di cui desidera dimostrarne il possesso. Il server sceglie una sda ancora inutilizzata tra quelle pre-computate per quel le e la invia al client; il client calcola la risposta in base alla sua conoscenza del le e la invia al server. Il server quindi controlla se la risposta ricevuta dal client coincide con quella pre-computata. Nell'analisi della sicurezza dello schema s-pow, gioca un ruolo il limite su- 8

10 periore della frazione di le conosciuta dall'attaccante. Assumendo che il client malizioso non possieda il le nella sua interezza, nella loro analisi gli autori hanno ipotizzato che la frazione di le conosciuta dall'attaccante sia pari a p = (1 ε). Analizzando una sda su un singolo bit proposta dal server, hanno ipotizzato il vericarsi di due casi: o il bit richiesto appartiene alla porzione di le conosciuta dall'attaccante (evento ω), il che puo' accadere con probabilità P (ω) = (1 ε), oppure, in caso contrario, l'attaccante tirare ad indovinare avendo una probabilità di successo pari a g. Con queste premesse si ha dunque che la probabilità di successo dell'attaccante nella sda su un singolo bit lanciata dal server (P (succ 1 )), assumendo ε > 0 è pari a: P (succ 1 ) = P (succ 1 (ω ω) = 1 ε(1 g) Tuttavia l'attaccante deve confrontarsi con K sde, ognuna i.i.d. rispetto alle altre; quindi la probabilità che l'attaccante riesca a passare la sda con successo è: P (succ) = (1 ε(1 g)) K (1) da cui un valore appropriato per il parametro K puo' essere facilmente dedotto come: K = k ln 2 ε(1 g) Con l'obiettivo di migliorare l'ecienza dello spazio utilizzato, nell'implementazione dello schema s-pow, gli autori hanno calcolato i seed per generare le sde utilizzando il server master secret; questa scelta gli ha precluso il raggiungimento della sicurezza incondizionata che puo' essere però semplicemente ottenuto, come hanno fatto notare, generando per ogni nuova sda un nuovo seed. (2) 9

11 3 Un nuovo schema di POW: bf-pow Introdurremo ora il nostro nuovo schema di Proof of Ownership, al quale ci riferiremo con la sigla bf-pow. La peculiarità del nostro schema riguarda l'utilizzo dei ltri di Bloom [9], una struttura dati probabilistica che fornisce una space-ecient memorizzazione di insiemi ed è concepita per poter garantire una facile verica di appartenenza di un dato elemento all'insieme memorizzato (al costo di una probabilità di falsi positivi ma mai di falsi negativi). Halevi et al. [3] hanno aermato che, per dissuadere dagli attacchi CDN, la quantità di informazione sul le che deve essere nota al client per poter superare la sda con il server, deve essere di grandezza pari ad almeno 64 MiB, per le di dimensione superiore a 64 MiB; per le più piccoli riconoscono sia suciente una conoscenza pari almeno alla dimensione del le in questione. Nel progettare la nostra soluzione, abbiamo tenuto conto di questo. 3.1 Filtri di Bloom Un ltro di Bloom per rappresentare un insieme S = x 1, x 2,... x n di n elementi è costituito da un array di m bit, inizialmente settati a 0. Un ltro di Bloom utilizza k funzioni hash indipendenti h 1,..., h k con output nell'insieme 1,..., m. Assumiamo che queste funzioni hash mappino ogni elemento in un numero random uniformemente scelto nell'insieme 1,..., m. Per ogni elemento x S, vengono settati a 1 i bit h i (x) per 1 i k. Per vericare se un elemento y appartiene all'insieme S, si controlla che tutti gli h i (y) siano settati a 1. Se non è così, allora chiaramente y non è un elemento di S. Se tutti gli h i (y) sono settati a 1 invece, si assume che y appartiene ad S, con una certa probabilità di errore. Dunque un ltro di Bloom puo' generare un falso positivo quando insinua che un elemento x appartiene ad S anche se così non è. Per evitare banalità, si 10

12 assumerà n da adesso kn < m. La probabilità di un falso positivo per un elemento non nell'insieme, il false positive rate (FPR), puo' essere stimata in modo semplice, sotto l'ipotesi che le funzioni hash utilizzate abbiano la caratteristica sopra descritta. Dopo che su tutti gli elementi dell'insieme S sono stati calcolati gli hash e il ltro di Bloom è stato aggiornato di conseguenza, la probabilità che un bit specico sia ancora settato a 0 è: ( 1 1 ) kn e kn/m m Quindi la probabilità che i k indici individuati dalle funzioni di hash siano tutti settati a 1, e dunque si incorra in un falso positivo è: fpr = ( 1 e kn/m) k Si supponga ora di avere m e n e di voler ottimizzare il numero di funzioni hash da utilizzare. Il valore ottimale del numero di funzioni hash che minimizza la probabilità di un falso positivo fpr come funzione di k puo' essere facilmente trovato utilizzando le derivate, ottenendo per k il valore di k = ln 2 (m/n) (3) Un modo per determinare quanto siano ecienti i ltri di Bloom è di considerare quanti bit sono necessari per rappresentare tutti gli insiemi di n elementi in un insieme universo, in modo da permettere falsi positivi per al più una frazione ɛ dell'insieme universo ma da non consentire falsi negativi. Il limite inferiore per m che si ottiene è pari a n log 2 (1/ɛ). Ricordando il valore del false positive rate e di k, prima calcolati, dopo alcune manipolazioni algebriche si ottiene: m = n log 2 e log 2 (1/ɛ) (4) Tra le tante interessanti proprietà che i ltri di Bloom possiedono, una delle caratteristiche importanti per l'utilizzo che noi ne faremo nel nostro schema, 11

13 riguarda il tempo necessario per aggiungere un elemento e per vericare che un dato elemento sia presente nell'insieme: in entrambi i casi si tratta di una costante ssa, O(h), completamente indipendente dal numero di elementi già inseriti nell'insieme. Inoltre poichè il controllo degli h indici sono indipendenti fra loro, nelle implementazioni hardware possono essere eseguiti in parallelo, migliorando ulteriormente le performance. 3.2 Algoritmo bf-pow Sia h una funzione di hash crittograca; sia invece h C una funzione di hash crittograca che prende in input una stringa e restituisce un output di dimensione C; consideriamo inoltre una funzione pseudo-random R s che utilizza s come seed. L'Algoritmo 1 descrive le operazioni che avvengono sul lato server ogniqualvolta un client carica per la prima volta un le. Dopo aver diviso l'intero le in blocchi indicizzati di dimensione N (ottenendo n blocchi) e calcolato su ogni blocco l'hash, applica la funzioni di hash crittograca h C ; il digest ottenuto è successivamente utilizzato come seed per la funzione pseudo-random R s, che prende in input il valore dell'indice del blocco considerato. Sull'ultimo output ottenuto (con Bloom), vengono applicate le k funzioni di hash del ltro di Bloom e viene poi aggiornato il ltro settando a 1 i bit nelle posizioni ottenute. Associando ad ogni blocco di le il suo indice, con la funzione di hash crittograca h C, si elimina la possibilità che un eventuale attaccante possa utilizzare, per superare la sda, dei blocchi di cui è in possesso, e non quelli richiesti dal server. L'utilizzo della funzione pseudo-random R s, invece, con la giusta dimensione dell'output impostata, permette di ottenere una quantità di contenuto totale, necessaria per superare ogni sda lanciata dal server, pari a 64 MiB: come asserito da Halevi et al. [3], questa è la dimensione necessaria per scoraggiare eventuali client maliziosi dall'attuare un attacco CDN. 12

14 Algoritmo 1: Lato server: il server costruisce il ltro di Bloom del le Input: il le, la dimensione del le F e la dimensione dei blocchi N, il numero di funzioni hash del ltro di Bloom k Output: il ltro di Bloom aggiornato n F/N; for i 0 to n 1 do end hash h(le[i]); seed h C (hash); ToBf R seed (i); for ii 0 to k do end Bloom ii (ToBF); update Bloom lter ; L'Algoritmo 2 fornisce invece una descrizione delle operazioni messe in atto dal client quando viene sdato dal server a dimostrare di possedere eettivamente il le che chiede di poter caricare ma che è già presente nella memoria di back-end del server (ricordiamo che questa verica avviene grazie all'hash del le che il client invia al server come identicatore dello stesso). Ogni volta che sda un client, il server sceglie in modo random j indici (il valore di j verrà discusso nel prossimo paragrafo) corrispondenti a j blocchi di le. Utilizzando le j posizioni ricevute, il client ripete i primi due step eseguiti dal server, solo sui blocchi denotati dagli indici; gli output ottenuti formano l'array di risposta che il client invia al server. 13

15 Algoritmo 2: Lato client: il client calcola la risposta alla sda lanciata dal server Input: il le, la dimensione dei blocchi N, un array di j indici scelti dal server (pos[j]) Output: l'array di risposta del client for i 0 to j 1 do end hash h(f[pos[i] N]); res[i] h C (hash); In fase di verica, descritta dall'algoritmo 3, il server applica la funzione pseudo-random R s utilizzando come seed ogni elemento dell'array di risposta ricevuto dal client e, come messaggio in input, il valore dell'indice del blocco sul quale quella risposta è stata calcolata. Algoritmo 3: Lato server: il server calcola le posizioni nel ltro di Bloom ottenute considerando la risposta inviata dal client Input: il numero di funzioni hash del ltro di Bloom k, l'array degli j indici (pos[j]) e l'array di risposta alla sda inviato dal client Output: le j k posizioni nel ltro di Bloom calcolate sulla risposta del client for i 0 to j 1 do end ToBf R res[j] (pos[i]); for ii 0 to k 1 do end Bloom ii (ToBF); 14

16 Se tutte le j k posizioni del ltro di Bloom ottenute applicando le k funzioni di hash (le stesse utilizzate in precedenza per costruire il ltro di Bloom di f), sono settate a 1 nel ltro di Bloom del le memorizzato dal server, allora la sda è superata e il client viene riconosciuto dal server come un legittimo proprietario del le. 3.3 Sicurezza bf-pow Analizziamo la sicurezza dello schema assumendo che un eventuale attaccante conosca una frazione p = (1 ε) del le originario e venga sdato su un numero j di blocchi di le (di dimensione in bit B) di un le di dimensione (in bit) F. Facciamo prima di tutto una considerazione. Ad una prima analisi, quando l'avversario viene sdato dal server su un blocco di le, possono presentarsi due casi: o l'avversario possiede quel blocco nella sua interezza, e quindi vince sicuramente la sda, oppure no, ed allora cerca di ricostruirlo indovinando i bit che lo formano. Supponiamo che l'attaccante conosca n B blocchi di le e n b bit tra i blocchi che non conosce. Si ha allora che p = (1 ε) = n B B F + n b F Indichiamo con p B = n B B F e con p b = n b F la probabilità che l'attaccante conosca un dato blocco la probabilità che conosca un singolo bit di un blocco che non possiede. Indichiamo con guess B l'evento in cui l'avversario riesce a ricostruire l'intero blocco. Dopo alcuni calcoli si ottiene: P (guess B ) = p B + (1 p B )(p b + (1 p b )g) B dove g è la probabilità che l'attaccante indovini un singolo bit sconosciuto. Nel calcolare la probabilità di vittoria dell'attaccante su una singola sda, bisogna tenere conto anche del false positive rate: se l'attaccante non riesce a 15

17 ricostruire esattamente l'intero blocco puo' comunque riuscire a superare la sda avvalendosi dei falsi positivi che l'uso del ltro di Bloom comporta. allora: Indichiamo con win l'evento in cui l'attaccante vince la singola sda. Si ha P (win B ) = P (win B (guess B guess B )) = p B + (1 p B )(fpr + (p b + (1 p b )g) B (1 fpr)) Ricordando che l'attaccante viene sdato su j blocchi, si ha: P (win) = P (win B ) j = (p B + (1 p B )(fpr + (p b + (1 p b )g) B (1 fpr))) j (5) Da questa equazione possiamo ricavare un limite inferiore per il numero di sde j: k ln2 j = (1 p B ) (1 (fpr + (p b + (1 p b )g) B (1 fpr))) Attraverso quest'ultima equazione si deduce che la miglior strategia che l'avversario puo' mettere in atto, quella che richiede il più alto valore per j, corrisponde a quella in cui l'avversario raggruppa tutta la sua conoscenza del le in blocchi di dimensione B; eguagliando a zero p b (p b = 0) e, di conseguenza, p B = p = (1 ε) si ha dunque: k ln2 j = ε (1 fpr) (1 g B ) 4 Implementazione e analisi 4.1 Scelte implementative Allo scopo di valutarne l'ecacia, abbiamo implementato il nostro schema bf- POW confrontandone le performance misurate con quelle ottenute utilizzando le implementazioni degli schemi b-pow e s-pow. 16 (6) (7)

18 Tutti i codici sono stati sviluppati in C++ ed è stata utilizzata la libreria OpenSSL Crypto per tutte le operazioni crittograche. Nell'implementazione dello schema bf-pow abbiamo preso come funzione di hash crittograca la funzione di cifratura RC4: per generare l'output della dimensione voluta, abbiamo passato alla funzione una stringa di zeri della dimensione dell'output impostata ed utilizzato come chiave il digest del blocco di le precedentemente calcolato; come funzione pseudo-random (R s ), è stata invece scelta la funzione HMAC. Per i ltri di Bloom è stata utilizzata l'implementazione fornita da Nicolas Bernard in [10]. 4.2 Scelta dei parametri Per misurarne le performance, le implementazioni dei tre schemi sono state fatte girare su una macchina a 64 bit con SO Ubuntu 12.10, processore Pentium(R) Dual-Core CPU E GHz(x2), 3,9 GiB di RAM. Tutti e tre gli schemi sono stati testati su le generati in modo random; la dimensione dei le in input inizia da 1 MiB no ad arrivare a 2 GiB, raddoppiando ad ogni step. La scelta del valore dei parametri dello schema b-pow, così come dello schema s-pow, sono state fatte attenendosi rispettivamente alle scelte adottate in [3] e in [4]. Per garantire un giusto confronto, anche per lo schema bf-pow il valore del parametro di sicurezza è stato ssato, come negli altri schemi, a 66, così come i valori p delle frazioni di le conosciute dall'attaccante sono stati presi nello stesso insieme utilizzato per s-pow (p {0.5, 0.75, 0.9, 0.95}). Il nostro schema ha inoltre altri due parametri liberi: il false positive rate e la dimensione dell'output della funzione RC4. Il valore di tutti quanti questi quattro parametri 17

19 sono necessari per derivare poi un valore per il numero di blocchi j richiesti in ogni sda, dall'equazione 7. Al false positive rate abbiamo assegnato il valore 0.1. Per quanto riguarda la dimensione dell'output dell'algoritmo di cifratura RC4 invece, abbiamo scelto i valori (espressi in Byte) nell'insieme {16, 256, 512}. Altri parametri del nostro schema sono la dimensione del ltro di Bloom m, utilizzato per rappresentare il le, e il numero di funzioni di hash utilizzate dal ltro, k. Una volta calcolato il numero di blocchi in cui il le viene diviso (n) e scelto il false positive rate, abbiamo utilizzato rispettivamente le formule 4 e 3 per calcolare i valori ottimali. Ricordiamo che, per garantire i 64 MiB di contenuto indispensabile per superare ogni sda, necessari per dissuadere i client maliziosi dall'attuare un attacco CDN (come asserito da Halevi et al. [3]), il valore della dimensione dei blocchi è stato derivato utilizzando la dimensione dell'output dell'rc4: per le inferiori a 64 MiB, la dimensione dei blocchi coincide con quella dell'output dell'rc4 mentre per le più grandi, ssata la dimensione del le, la dimensione dei blocchi è direttamente proporzionale alla dimensione del le in input con costante di proporzionalità pari a C/64M ib. Ogni congurazione è stata fatta girare per 100 volte. Tutti i graci di questa tesi sono stati generati riportando il valore medio e la deviazione standard (utilizzando un box-plot) del numero dei cicli di clock estratti utilizzando l'istruzione assembly RDTSC. 4.3 Lato client Analizziamo e confrontiamo ora le performance del lato client dei tre schemi b-pow, s-pow e bf-pow. Per tutti e tre gli schemi, il lato client prevede il calcolo dell'hash dell'intero le seguito, in b-pow, dall'esecuzione della fase di reduction e mixing ed il 18

20 calcolo dell'albero di Merkle, in s-pow, dalla generazione degli array di bit di risposta, mentre in bf-pow, dall'esecuzione dell'algoritmo 2. La Figura 1 mostra i risultati dei test condotti sui tre schemi per il lato client mentre in Figura 2 sono riportati i diversi tempi di esecuzione del nostro schema, misurati per i diversi valori della dimensione dell'output dell'rc4 settati. Tutte e tre le soluzioni mostrano una crescita lineare rispetto alla dimensione dei le in input; la ragione di ciò è dovuta al fatto che, per tutti e tre gli schemi, leggere e calcolare l'hash del le sono le operazioni predominanti. bf-pow è da un minimo di 1,2 no ad un massimo di 4 volte più veloce di b-pow; s- POW invece computazionalmente più vantaggiosa della nostra soluzione no ad un massimo di 1,4 volte. Figura 1: Confronto tra i tempi di esecuzione del client di bf-pow con valore della dimensione dell'output dell'rc4 impostato a 512 Byte, per i diversi valori di j, con quelli di b-pow e di s-pow, per dierenti valori di K, al crescere della dimensione dei le in input. 19

C Cloud computing Cloud storage. Prof. Maurizio Naldi

C Cloud computing Cloud storage. Prof. Maurizio Naldi C Cloud computing Cloud storage Prof. Maurizio Naldi Cos è il Cloud Computing? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/

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

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

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

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

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

COOKIE POLICY DEL SITO

COOKIE POLICY DEL SITO COOKIE POLICY DEL SITO PREMESSA Questa pagina costituisce una sezione dell'informativa privacy estesa consultabile sul sito e descrive nello specifico l'utilizzo dei cookie effettuato dal titolare. INFORMAZIONI

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Progetto SINTESI - Dominio Provinciale

Progetto SINTESI - Dominio Provinciale - Dominio Provinciale Tecnologia dei Processi R.T.I. per Pag. 2 di 19 Indice 1 INTRODUZIONE... 3 2 LETTURA DEL FILE... 4 3 IMPORT DEI FILE... 9 4 VERIFICA DELLE BOZZE E LORO INVIO... 12 5 COMUNICAZIONI

Dettagli

Le fattispecie di riuso

Le fattispecie di riuso Le fattispecie di riuso Indice 1. PREMESSA...3 2. RIUSO IN CESSIONE SEMPLICE...4 3. RIUSO CON GESTIONE A CARICO DEL CEDENTE...5 4. RIUSO IN FACILITY MANAGEMENT...6 5. RIUSO IN ASP...7 1. Premessa Poiché

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

Domande e risposte su Avira ProActiv Community

Domande e risposte su Avira ProActiv Community Domande e risposte su Avira ProActiv Community Avira AntiVir versione 10 sfrutta un innovativa tecnologia protettiva cloud-based, denominata ProActiv, che identifica e blocca i nuovi virus non appena questi

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

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

La Videosorveglianza Criteri per il dimensionamento dello storage

La Videosorveglianza Criteri per il dimensionamento dello storage La Videosorveglianza Criteri per il dimensionamento dello storage Serie vol 1005/2010 L importanza di registrare le immagini video Il valore di un sistema di videosorveglianza non dipende solo dall abilità

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

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

Il protocollo BitTorrent

Il protocollo BitTorrent 4 Università degli studi di Bari Corso di Laurea Magistrale in Informatica Sistemi Distribuiti: architetttura e modelizzazione Modulo B modellizzazione Anno Accademico 2008 2009 Modellizzazione del protocollo

Dettagli

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Cloud Computing....una scelta migliore. ICT Information & Communication Technology Cloud Computing...una scelta migliore Communication Technology Che cos è il cloud computing Tutti parlano del cloud. Ma cosa si intende con questo termine? Le applicazioni aziendali stanno passando al

Dettagli

MANUALE DI RIFERIMENTO

MANUALE DI RIFERIMENTO - Dominio Provinciale Tecnologia dei Processi UALE DI RIFERIMENTO Procedura COB Import tracciato Ministeriale Preparato da: Paolo.Meyer Firma Data Verificato da: Carlo di Fede Firma Data Approvato da:

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Stampe in rete Implementazione corretta

Stampe in rete Implementazione corretta NETWORK PRINT SERVERS Articolo Stampe in rete Implementazione corretta Created: June 3, 2005 Last updated: June 3, 2005 Rev:.0 INDICE INTRODUZIONE 3 INFRASTRUTTURA DELLE STAMPE IN RETE 3. Stampa peer-to-peer

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

Gartner Group definisce il Cloud

Gartner Group definisce il Cloud Cloud Computing Gartner Group definisce il Cloud o Cloud Computing is a style of computing in which elastic and scalable information technology - enabled capabilities are delivered as a Service. Gartner

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Condizioni di servizio per l'utente finale (applicazioni gratuite)

Condizioni di servizio per l'utente finale (applicazioni gratuite) Condizioni di servizio per l'utente finale (applicazioni gratuite) 1. Definizioni Ai fini delle disposizioni sotto indicate, le espressioni sono da intendere nei seguenti modi: "Applicazione" significa

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

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

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

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

hi-com software realizzato da Hi-Think

hi-com software realizzato da Hi-Think software realizzato da Hi-Think Pag 1 introduzione Hi-com è il programma di Hi-Think che soddisfa l'esigenza di chi, lavorando in ufficio o fuori ufficio, deve avere o scambiare con la propria azienda

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

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

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

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

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

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

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

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

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

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Tirocinio per la Laurea Triennale

Tirocinio per la Laurea Triennale Tirocinio per la Laurea Triennale Studente: Filippo Dattola Studio di un prototipo di infrastruttura virtuale di analisi parallela interattiva L'obiettivo del tirocinio è stato quello di studiare un prototipo

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

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Impostare il browser per navigare in sicurezza Opzioni di protezione

Impostare il browser per navigare in sicurezza Opzioni di protezione Impostare il browser per navigare in sicurezza Opzioni di protezione Data la crescente necessità di sicurezza e tutela dei propri dati durante la navigazione in rete, anche gli stessi browser si sono aggiornati,

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION

Dettagli

Data protection. Cos è

Data protection. Cos è Data protection Cos è La sicurezza informatica è un problema molto sentito in ambito tecnico-informatico per via della crescente informatizzazione della società e dei servizi (pubblici e privati) in termini

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

OwnCloud Guida all installazione e all uso

OwnCloud Guida all installazione e all uso INFN Sezione di Perugia Servizio di Calcolo e Reti Fabrizio Gentile OwnCloud Guida all installazione e all uso 1 SOMMARIO 2 Introduzione... 1 2.1 Alcune delle funzioni di OwnCloud... 2 2.2 Chi può usufruirne...

Dettagli

Linux nel calcolo distribuito

Linux nel calcolo distribuito openmosix Linux nel calcolo distribuito Dino Del Favero, Micky Del Favero dino@delfavero.it, micky@delfavero.it BLUG - Belluno Linux User Group Linux Day 2004 - Belluno 27 novembre openmosix p. 1 Cos è

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

CHIUSURE di MAGAZZINO di FINE ANNO

CHIUSURE di MAGAZZINO di FINE ANNO CHIUSURE di MAGAZZINO di FINE ANNO Operazioni da svolgere per il riporto delle giacenze di fine esercizio Il documento che segue ha lo scopo di illustrare le operazioni che devono essere eseguite per:

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

WEB SEMINAR Dettaglio servizio

WEB SEMINAR Dettaglio servizio WEB SEMINAR Dettaglio servizio INTRODUZIONE L organizzazione di un web seminar prevede diverse e ben distinte fasi che iniziano con la promozione dell evento e si concludono con i report relativi alle

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

Procedura Import tracciato ministeriale

Procedura Import tracciato ministeriale Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura Import tracciato ministeriale 1 INDICE 1 INTRODUZIONE... 3 2 LETTURA DEL FILE... 4 3 IMPORT DEI FILE... 10 4 VERIFICA DELLE BOZZE E

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

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

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

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Strategie e Operatività nei processi di backup e restore

Strategie e Operatività nei processi di backup e restore Strategie e Operatività nei processi di backup e restore ver. 3.0-2014 Linee Guida + Do You Backup Your Invaluable Data? Now You Can with DuBackup! NSC s.r.l. Tutti i diritti riservati. Tutti i materiali

Dettagli

Indice di rischio globale

Indice di rischio globale Indice di rischio globale Di Pietro Bottani Dottore Commercialista in Prato Introduzione Con tale studio abbiamo cercato di creare un indice generale capace di valutare il rischio economico-finanziario

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

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

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione 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

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. Negli ultimi anni, il concetto di risparmio energetico sta diventando di fondamentale

Dettagli

Corso basi di dati Installazione e gestione di PWS

Corso basi di dati Installazione e gestione di PWS Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Introduzione al Cloud Computing

Introduzione al Cloud Computing Risparmiare ed innovare attraverso le nuove soluzioni ICT e Cloud Introduzione al Cloud Computing Leopoldo Onorato Onorato Informatica Srl Mantova, 15/05/2014 1 Sommario degli argomenti Definizione di

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche

Dettagli

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Dettagli

Come creare il test di Yasso tramite l applicazione Training Center

Come creare il test di Yasso tramite l applicazione Training Center Come creare il test di Yasso tramite l applicazione Training Center A differenza degli altri test pubblicati da Garmin, il test di Yasso necessita di un approfondimento. Il test di Yasso è un test molto

Dettagli