GENERAZIONE DI NUMERI PSEUDOCASUALI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "GENERAZIONE DI NUMERI PSEUDOCASUALI"

Transcript

1 Esame di laboratorio di crittografia Lorenzi Stefano matricola GENERAZIONE DI NUMERI PSEUDOCASUALI 1

2 Indice generale GENERAZIONE DI NUMERI CASUALI...3 Introduzione...3 ALGORITMI DI GENERAZIONE DI NUMERI PSEUDOCASUALI...5 Panoramica sugli algoritmi esistenti...5 Metodo della congruenza lineare...5 Ansi X Blum Blum Shub...8 LibMTPRNG...9 SOFTWARE...10 Presentazione del software...10 Attacchi agli algoritmi...13 Attacco all'algoritmo a congruenza lineare...13 Attacco all'algoritmo Ansi X Input-Base attacks...13 Crittoanalisi...14 Attacco a Blum Blum Shub...14 Bibliografia

3 GENERAZIONE DI NUMERI CASUALI Introduzione Un generatore di numeri casuali è uno strumento capace di fornire una sequenza di numeri casuali, ovvero non deterministici. Questi numeri sono idealmente infiniti e non sono influenzabili da alcun fattore esterno. Tali numeri ricoprono un ruolo importante nella crittografia, basta pensare agli schemi di autenticazione reciproca e nello scambio delle chiavi, dove per prevenire attacchi a replay dei pacchetti vengono utilizzati dei numeri nonce. Un altro esempio di tale importanza è la generazione della chiave pubblica nell'algoritmo RSA. Queste applicazioni danno origine a due requisiti distinti e non necessariamente compatibili: Casualità Imprevedibilità Casualità Un elaboratore non ha la possibilità di generare una sequenza casuale, bensì l unico modo è utilizzare opportuni algoritmi che generano numeri apparentemente casuali. Questi vengono, quindi, chiamati numeri pseudo-casuali, poiché venendo a conoscenza dell algoritmo e del seme (primo elemento) utilizzati è possibile determinare la sequenza che verrà generata. Tali algoritmi per essere considerati generatori casuali in senso statistico devono avere due caratteristiche: Distribuzione uniforme: Generando una quantità elevata di numeri, ognuno di essi deve apparire con una frequenza simile. Indipendenza: non deve essere possibile determinare l'ennesimo numero, guardando gli n-1 numeri. Se è semplice verificare se una sequenza segue o meno una distribuzione uniforme, non è altrettanto semplice dimostrarne l'indipendenza. Per definire l'indipendenza è possibile eseguire diversi test che aiutano ad avere una certa possibilità che i numeri generati siano indipendenti. Nell'ambito della crittografia, la progettazione di algoritmi di numeri che sembrano statisticamente casuali ricoprono un ruolo fondamentale: un esempio è la generazione di numeri primi nella creazione della chiave pubblica in RSA. Per la generazione di tali numeri, un approccio a forza bruta prevede la divisione del numero N per ogni interno dispari minore di N. Ma se N è un numero molto grande (nell'ordine di ), i tempi richiesti sarebbero troppo alti, e questa è una situazione piuttosto comune nella crittografia. 3

4 Per risolvere tale problema esistono algoritmi in grado di verificare se un numero è primo, ad esempio producendo una sequenza di numeri casuali ed eseguendo semplici calcoli. Se tale sequenza è sufficientemente lunga, sarà possibile determinare con una buona sicurezza se un numero è primo. Imprevedibilità Se da una parte è importante generare numeri apparentemente casuali, dall'altra è fondamentale che, data una sequenza, sia impossibile determinare i numeri successivi. In altre parole, ogni numero generato è statisticamente indipendente dai precedenti. Prendiamo come esempio due serie di 1 e 0. 0, 1, 0, 1, 0, 1, 0, 1, 0, , 1, 0, 1, 0, 1, 1, 0, 0, 1,... Apparentemente si è portati a definire la prima sequenza deterministica, poiché si riconosce una certa periodicità o un algoritmo capace di generarla; la seconda sembra essere più casuale e non si trova alcuna regola capace di formarla (quindi non è prevedibile). 4

5 ALGORITMI DI GENERAZIONE DI NUMERI PSEUDOCASUALI Panoramica sugli algoritmi esistenti Esistono diversi algoritmi per la generazione di numeri pseudo-casuali, che si differenziano per il tipo di algoritmo usato. Alcuni si basano su calcoli matematici, altri su sistemi crittografici. Nella quasi totalità, essi producono una sequenza di numeri interi uniformemente distribuiti tra 0 e un certo valore massimo, oppure di numeri reali tra 0 e 1. Questi ultimi si possono sempre ottenere dai primi semplicemente dividendo per il valore massimo, come ad esempio alcune librerie dei linguaggi di programmazione. Prima di essere usato, un generatore deve essere inizializzato assegnando un opportuno valore a un parametro numerico, o gruppo di parametri, che viene chiamato seme (in inglese seed). Ogni volta che si usa lo stesso seme, si otterrà sempre la stessa identica sequenza. Un'attenta analisi matematica è richiesta per assicurare che i numeri generati abbiano le necessarie proprietà statistiche. Robert R. Coveyou dell'oak Ridge National Laboratory ha intitolato un articolo: "La generazione dei numeri casuali è troppo importante per essere lasciata al caso." Metodo della congruenza lineare Tale metodo permette, dato un valore iniziale x0 detto seme, di ottenere una sequenza di numeri pseudo-casuali mediante l applicazione ripetuta della seguente formula: dove: a c m xi x i+1 = (a * x i + c) (MOD m) è un coefficiente intero positivo detto moltiplicatore è un coefficiente intero non negativo detto incremento è un coefficiente intero positivo detto modulo è il generico numero della sequenza Il metodo prende il nome dalla seguente definizione: due numeri x e y si dicono congrui modulo m, e scriveremo x y (mod m), se essi differiscono per un multiplo intero di m, ossia se x (mod m) y (mod m). Il metodo è detto moltiplicativo se c=0, misto se c 0. Se a=1, il metodo è detto additivo. Facciamo degli esempi: partiamo attribuendo le seguenti assegnazioni: 5

6 a=3 c=5 m=11 Se X 0 =3, la sequenza che si ottiene applicando la formula della congruenza modulare è [3, 3, 3, 3,], ossia una sequenza assolutamente non casuale. Le cose cambiano se scegliamo X 0 =1; in questo caso, la sequenza ottenuta è la seguente: 1, 8, 7, 4, 6, 1, 8, 7, 4, 6, 1,... Possiamo notare che i primi 5 numeri vengono riprodotti interamente. Infine, se X 0 =2, si ottiene: 2, 0, 5, 9, 10, 2, 0, 5, 9, 10, 2,...; Anche in questo caso otteniamo una sequenza di 5 numeri ripetuti. Se modifichiamo il valore di a assegnandogli il valore 12, e poniamo X 0 =1, ottieniamo: 1, 6, 0, 5, 10, 4, 9, 3, 8, 2, 7, 1, 6, 0, 5,... Essa è una sequenza di periodo 11 e cioè pari a m, e senza ripetizione di numeri. In questo ultimo esempio è interessante osservare che non solo generiamo 11 numeri tutti diversi e che copriamo l'intero periodo, ma la sequenza si ripete. Questo ci permette di poter generare molti numeri con una distribuzione uniforme. Quindi possiamo sostenere che questo algoritmo ha le seguenti proprietà: 1. l'algoritmo genera l'intero periodo di numeri, ossia prima di ripetersi ha generato tutti i numeri compresi tra 0 e m. 2. La sequenza generata è apparentemente casuale. 3. I calcoli sono eseguiti facilmente da un calcolatore. Come abbiamo potuto osservare, questo algoritmo funziona bene se sono stati scelti dei parametri opportuni. Per quanto riguarda l'implementazione di questo algoritmo su un elaboratore è importante impostare m al valore del massimo intero rappresentabile da quel processore, in modo tale che la sequenza generata abbia un periodo molto ampio, ricordando che il bit più significativo rappresenta il segno. Per processori a 32 bit, un valore utile di m è Per rappresentare tutto il periodo occorre però fare attenzione alla scelta di a e c. Si può dimostrare però che se m è primo e c = 0, allora vengono generati m-1 valori con la sola assenza del valore 0 ( è un numero primo). Purtroppo degli oltre 2 miliardi di numeri a disposizione, solo pochi possono essere scelti per il parametro a (un valore spesso utilizzato per a è 7 5 = 16807) Da tutto ciò si possono ricavare le seguenti osservazioni: La lunghezza massima raggiungibile dalla sequenza generata senza ripetizione 6

7 vale m Particolari scelte di a e c possono ridurre notevolmente la lunghezza utile della sequenza Il valore di X 0 (seme) può essere determinante dalla lunghezza della sequenza E' fondamentale che il periodo sia il più ampio possibile per rendere l'algoritmo più sicuro da eventuali attacchi. E allora necessario individuare dei criteri per assegnare ad a, c, m e al seme dei valori in modo che la sequenza riprodotta sia la più lunga possibile. Alcuni studiosi hanno approfondito tale aspetto e hanno individuato i seguenti criteri necessari e sufficienti che garantiscono l'ottimalità del metodo: 1. I parametri c e m devono essere coprimi cioè MCD(c,m) = 1 2. Ogni divisore primo di m deve dividere (a-1) 3. Se m è multiplo di 4, anche (a-1) lo deve essere. Questi studiosi hanno individuato quindi i seguenti valori nel rispetto dei suddetti criteri: KNUTH m = 2 31 ; a = int (π * 10 8 ) ; c = GOODMAN e MILLER m = ; a = 7 5 ; c = 0 GORDON m = 2 31 ; a = 5 13 ; c = 0 LEORMONT e LEWIS m = 2 31 ; a = ; c = 0 Ansi X9.17 E' uno dei generatori più forti dal punto di vista crittografico. Esso fa uso del Triple-Des in modalità EDE (Encrypt-Decrypt-Encrypt); come input ha un numero random e segreto (generalmente la data e ora del dell'elaboratore) di 64 bit. Infine, ha un valore intero m (random) come seme, e due chiavi per il triple-des. La robustezza di questo algoritmo sta nel fatto che è usato il triple-des per tre volte ed una chiave da 112 bit: questo equivale a nove crittografie DES. Quindi, un ipotetico attaccante dovrebbe violare una grossa quantità di dati. Tale algoritmo può essere rappresentato nel seguente modo R = E[E(T) XOR V] V = E[E(T) XOR R] dove E() = è il TripleDes DT i = Timestamp V i = Initialization Vector R i = random number to be generated 7

8 Blum Blum Shub Questo algoritmo, molto usato, è sostanzialmente un generatore di bit, ed ha dato forse la più forte prova di potenza crittografica. Il funzionamento è il seguente: 1. Bisogna generare due numeri p e q, numeri primi (molto grandi) diversi tra loro e ciascuno congruente a 3 modulo 4 (ossia p e q divisi per 4 avranno resto 3) 2. Si imposta n come p*q 3. Si seleziona il seme,ossia un numero random s, tale che 1<=s<=n-1. Inoltre s deve essere coprimo con n [ossia gcd(s,n)=1] 4. Quindi x 0 s 2 mod n. 5. X i = (X i-1 ) 2 mod n 6. B i = x i mod 2 7. Concatenando i bit ottenuti al punto precedente, si genera un numero della dimensione desidarata. Come per l'algoritmo a congruenza lineare questo algoritmo per essere sicuro deve avere un valore di n molto grande, nell'ordine di 1024 bits. 8

9 LibMTPRNG Matthew Davis e Sameer Niphadkar propongono un algoritmo senza seed, basato sul multithreading e sul non-determinismo. Il loro ragionamento si basa sul fatto che lo scheduling dei thread all'interno di un processo è abbastanza casuale, non esiste una priorità e lo stato di running può dipendere da una molteplicità di eventi. Questo non-determinismo è intensificato dai moderni calcolatori multiprocessore, dove più thread possono girare in parallel. In sostanza, non è prevedibile un modello di comportamento, a meno che lo scheduler non eserciti una grande influenza. Da queste premesse gli autori hanno scritto LibMTPRNG (Multithreaded Pseudo-Random Number Generator Library), una libreria statica sulla falsariga di rand(), che è definita nello standard C99. Si basa su un intero a 32 bit e si associano 2 thread per ogni bit; quando viene richiesto un numero pseudo-casuale, viene rilasciato un mutex su un oggetto condiviso e si fanno partire i primi 32 thread, garantendo un accesso atomico attraverso meccanismi di mutual exclusion. Ciascun thread manipola un solo bit e incrementa un contatore, il quale stabilirà la fine del processo e quindi la disponibilità del numero pseudo-casuale. Una descrizione più dettagliata si trova in un articolo tecnico pubblicato ial seguente indirizzo: articolo che costituisce, a conoscenza del sottoscritto, l'unica documentazione disponibile, oltre naturalmente ai sorgenti. I test di effettiva casualità sono stati condotti seguendo le indicazioni di Some Difficult-topass Tests of Randomness, su sistemi Linux e Solaris. I risultati non sono eccezionali, ma gli autori sostengono che indagando più a fondo i meccanismi paralleli e alcuni eventi, come le race condition, si potrà migliorare questa interessante idea. 9

10 SOFTWARE Presentazione del software Utilizzando gli algoritmi presentati in questo lavoro, ho implementato un software che genera grandi quantità di numeri pseudo casuali. Inoltre, visto che il software è stato implementato in Java, ho utilizzato anche il generatore nativo di numeri casuali di questo linguaggio, ed ho voluto vedere come tali algoritmi funzionano nella pratica. I parametri che ho voluto osservare sono: Se i numeri hanno una distribuzione uniforme Il tempo richiesto nella generazione di queste sequenze Come possiamo vedere dall'immagine, è possibile configurare dei parametri, in particolare: 10

11 Il numero minimo il numero massimo La quantità dei numeri da generare Inoltre per il metodo a congruenza lineare è possibile variare i parametri di input(modulo, moltiplicatore e incremento) E' evidente che qualora decidessi di impostare un range compreso tra 0 e , avrei sempre una distribuzione uniforme. Con range più piccoli, ad esempio tra 0 e 9, il numero verrebbe generato nel seguente modo: X = N mod 10, dove N è il numero generato dall'algoritmo scelto. Questo comporta che si ottiene una distribuzione uniforme solo dopo aver generato una lunga sequenza si numeri: in altre parole, più il range è grande, meno numeri occorrono per avere una distribuzione uniforme. Come possiamo vedere dalle immagini, su range piccoli occorrono almeno numeri per avere una distribuzione uniforme. Questo valore è più o meno uguale per tutti gli algoritmi provati. Figura A : 1000 numeri Figura B: Figura C: Il dato invece che cambia molto è quello inerente al tempo per generare questi numeri. Nella tabella seguente sono riportati i tempi necessari utilizzati dal mio calcolatore per la generazione di un milione di numeri: Congruenza lineare Ansi X9.17 Blum Blum Shub Java Random Java Security 98 millisecondi 32,5 secondi 13 secondi 134 millisecondi 2187 millisecondi È evidente come la complessità del calcolo incida sul tempo. Se da una parte il metodo della congruenza lineare è molto veloce, dall'altra è anche il meno sicuro: infatti, tale sistema dipende principalmente dal seme, e se un ipotetico attaccante volesse violare tale 11

12 algoritmo dovrebbe andare alla ricerca di un solo valore. Dall'altro lato, il metodo Ansi X9.17, seppur decisamente più lento, per venire attaccato necessita di conoscerne il seme, il timestamp, e 2 chiavi del triple des (ben 4 valori). Anche la differenza tra le 2 librerie Java è notevole (ricordo che la libreria Random è poca sicura, è basata sull'algoritmo a congruenza lineare con un seme di 48 bit). Il software è stato sviluppato con la versione 1.6 di Sun Microsystem ed utilzza le librerie JfreeChart reperibili all'indirizzo La figura sottostante riporta il diagramma UML 12

13 Attacchi agli algoritmi Attacco all'algoritmo a congruenza lineare Se l'attaccante conosce il valore di m e 3 numeri consecutivi, allora si può sferrare il seguente attacco: X i+1 (ax i + c) mod m X i+2 (ax i+1 + c) mod m X i+2 - X i+1 (ax i+1 + c - ax i - c) mod m a(x i+1 - X i ) mod m Vediamo un esempio con i seguenti dati: Quindi il parametro a sarà 5. Il parametro c = 1. m=9, X i = 3, X i+1 = 7, X i+2 = 0 (0-7) a(7-3) mod 9 4a 2 mod 9 5 * 3 + c 15 + c mod c mod 9 7 mod 9 Ora che siamo a conoscenza di tutti i parametri, sapremo che dopo i numeri 3, 7 e 0 ci sarà il numero 1, poi il 6, poi il 4,... Attacco all'algoritmo Ansi X9.17 Sono diversi i modi per attaccare questo algoritmo, ma tutti hanno una complessità maggiore rispetto all'attacco visto nel paragrafo precedente Input-Base attacks Un input-base attacks si verifica quando un utente malintenzionato è in grado di utilizzare la conoscenza o il controllo dell'input. Questa tipologia di attacco può essere ulteriormente suddivisa known-input, replayed-input, e chosen-input attacks. Un chosen-input attacks può essere pratico contro smart - card e altri sistemi di crittografia hardware. Replayed-input attacks sono simili ai precedenti, ma richiedono un meno sofisticacazioni di controllo da parte del attaccante. Known-input attacks può essere in ogni situazione in cui alcuni dei elementi di input, possono essere facilmente prevedibili, ad esempio se viene usato il timestamp di un pc in rete, i cui orari sono osservabili dall'attaccante. 13

14 Crittoanalisi Seppur generalmente viene usato il triple-des in modalità EDE, l'algoritmo di crittografia potrebbe anche essere diverso, quindi bisogna essere attenti a quale algoritmo si sceglie e quali conoscenze di crittoanalisi ci sono su quell'algoritmo. Attacco a Blum Blum Shub E' decisamente il più complesso da attaccare tra quelli visti, in particolare perché bisogna fattorizzare n per trovare i valori di p e q, ma come sappiamo la fattorizzazione è uno dei problemi non ancora risolti efficientemente dalla matematica (come la soluzione del logaritmo discreto), non a caso molti sistemi di cifratura si basano su tali presupposti (RSA, El-Gamal). Questo algoritmo però, è un generatore di bit e il numero random è la concatenazione dei bit generati precedentemente, questo comporta che anche qualora venga fattorizzato n, ciò non basta, bisogna infatti fattorizzare tante volte n quanti sono il numero di bit del numero random generato. 14

15 Bibliografia Critttografia e sicurezza delle reti William Stallings McGraw-Hill A. Menezes, P, van Oorschot, S. A. Vanstone - Handbook of Applied Cryptography - CRC Press 1996 (chap 5) Wikipedia 15

Lezione 7 Sicurezza delle informazioni

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

Dettagli

! 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

La generazioni di numeri casuali. Fisica dell Informazione

La generazioni di numeri casuali. Fisica dell Informazione La generazioni di numeri casuali Fisica dell Informazione Cifrari composti Ottenuti dall applicazione sequenziale dei metodi precedentemente visti. Non sempre sono i migliori. Il più popolare tra i cifrari

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

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

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

SOMMARIO. 13.1 I radicali pag. 3. 13.2 I radicali aritmetici pag. 5. 13.3 Moltiplicazione e divisione fra radicali aritmetici pag.

SOMMARIO. 13.1 I radicali pag. 3. 13.2 I radicali aritmetici pag. 5. 13.3 Moltiplicazione e divisione fra radicali aritmetici pag. SOMMARIO CAPITOLO : I RADICALI. I radicali pag.. I radicali aritmetici pag.. Moltiplicazione e divisione fra radicali aritmetici pag.. Potenza di un radicale aritmetico pag.. Trasporto di un fattore esterno

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

Alcune nozioni preliminari di teoria elementare di insiemi e funzioni

Alcune nozioni preliminari di teoria elementare di insiemi e funzioni Alcune nozioni preliminari di teoria elementare di insiemi e funzioni Alberto Pinto Corso di Matematica - NUCT 1 Insiemi 1.1 Generalità Diamo la definizione di insieme secondo Georg Cantor, matematico

Dettagli

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

Random number generators

Random number generators Statistica computazionale Random number generators www.cash-cow.it Distribuito sotto licenza Creative Common, Share Alike Attribution 2 Indice I. Introduzione II. Processi fisici per la creazione di numeri

Dettagli

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

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

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

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

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

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO?

LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO? LA DISTRIBUZIONE DI PROBABILITÀ DEI RITORNI AZIONARI FUTURI SARÀ LA MEDESIMA DEL PASSATO? Versione preliminare: 25 Settembre 2008 Nicola Zanella E-Mail: n.zanella@yahoo.it ABSTRACT In questa ricerca ho

Dettagli

DIARIO DEL CORSO DI ALGEBRA A.A. 2012/13 DOCENTE: ANDREA CARANTI

DIARIO DEL CORSO DI ALGEBRA A.A. 2012/13 DOCENTE: ANDREA CARANTI DIARIO DEL CORSO DI ALGEBRA A.A. 2012/13 DOCENTE: ANDREA CARANTI Lezione 1. lunedí 17 settembre 2011 (1 ora) Presentazione del corso. Esercizio: cosa succede a moltiplicare per 2, 3, 4,... il numero 052631578947368421,

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Sequence Alignment Algorithms

Sequence Alignment Algorithms Sequence Alignment Algorithms Algoritmi per l Allineamento di Sequenze Relatore: Prof. Giancarlo Mauri Correlatore: Prof. Gianluca Della Vedova Tesi di Laurea di: Mauro Baluda Matricola 038208 Part of

Dettagli

Cenno sui metodi Monte Carlo

Cenno sui metodi Monte Carlo Cenno sui metodi Monte Carlo I metodi probabilistici hanno una lunga storia ma solo dopo il 1944 è iniziato un loro studio sistematico che ha portato a notevoli sviluppi. Attualmente è stato valutato che

Dettagli

Autenticazione Forte...e uso delle carte

Autenticazione Forte...e uso delle carte Autenticazione Forte...e uso delle carte ...autenticazione forte Challenge and Response (Sfida e risposta) Basato su chiavi segrete e su una funzione unidirezionale Lo scopo è stabilire indirettamente

Dettagli

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA 2010-2011

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA 2010-2011 RAPPRESENTAZIONE DEI NUMERI BINARI Corso di Fondamenti di Informatica AA 2010-2011 Prof. Franco Zambonelli Numeri interi positivi Numeri interi senza segno Caratteristiche generali numeri naturali (1,2,3,...)

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

Altri cifrari a blocchi

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

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

Crittografia e sicurezza delle reti. Alberto Marchetti Spaccamela

Crittografia e sicurezza delle reti. Alberto Marchetti Spaccamela Crittografia e sicurezza delle reti Alberto Marchetti Spaccamela Crittografia e sicurezza Sicurezza e crittografia sono due concetti diversi Crittografia tratta il problema della segretezza delle informazioni

Dettagli

L Ultimo Teorema di Fermat per n = 3 e n = 4

L Ultimo Teorema di Fermat per n = 3 e n = 4 Università degli Studi di Cagliari Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Matematica L Ultimo Teorema di Fermat per n = 3 e n = 4 Relatore Prof. Andrea Loi Tesi di Laurea

Dettagli

Un po di teoria dei numeri

Un po di teoria dei numeri Un po di teoria dei numeri Applicazione alla crittografia RSA Christian Ferrari Liceo di Locarno Matematica Sommario 1 L aritmetica modulare di Z n Le congruenze L anello Z n Le potenze in Z n e algoritmo

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

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

Robustezza crittografica della PEC

Robustezza crittografica della PEC Robustezza crittografica della PEC Prof. Massimiliano Sala Università degli Studi di Trento, Lab di Matematica Industriale e Crittografia Trento, 21 Novembre 2011 M. Sala (Università degli Studi di Trento)

Dettagli

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Prof. Massimiliano Sala MINICORSI 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link Sicurezza ai livelli di rete e data link Sicurezza a livello applicativo Ma l utilizzo di meccanismi di cifratura e autenticazione può essere introdotto anche ai livelli inferiori dello stack 2 Sicurezza

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

1. Scopo dell esperienza.

1. Scopo dell esperienza. 1. Scopo dell esperienza. Lo scopo di questa esperienza è ricavare la misura di tre resistenze il 4 cui ordine di grandezza varia tra i 10 e 10 Ohm utilizzando il metodo olt- Amperometrico. Tale misura

Dettagli

Guida al livellamento delle risorse con logica Critical Chain (1^ parte)

Guida al livellamento delle risorse con logica Critical Chain (1^ parte) Paolo Mazzoni 2011. E' ammessa la riproduzione per scopi di ricerca e didattici se viene citata la fonte completa nella seguente formula: "di Paolo Mazzoni, www.paolomazzoni.it, (c) 2011". Non sono ammesse

Dettagli

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

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

LICEO STATALE ENRICO MEDI CON INDIRIZZI:

LICEO STATALE ENRICO MEDI CON INDIRIZZI: Verbale del primo incontro con gli studenti: Martedì 12 Novembre 2013, ore 13:45 16:45 Dopo una breve introduzione alle finalità del Progetto dal titolo Crittografia e crittanalisi, viene illustrato con

Dettagli

STUDIO DI UNA FUNZIONE

STUDIO DI UNA FUNZIONE STUDIO DI UNA FUNZIONE OBIETTIVO: Data l equazione Y = f(x) di una funzione a variabili reali (X R e Y R), studiare l andamento del suo grafico. PROCEDIMENTO 1. STUDIO DEL DOMINIO (CAMPO DI ESISTENZA)

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

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

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto) Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

0. Piano cartesiano 1

0. Piano cartesiano 1 0. Piano cartesiano Per piano cartesiano si intende un piano dotato di due assi (che per ragioni pratiche possiamo scegliere ortogonali). Il punto in comune ai due assi è detto origine, e funziona da origine

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica) Crittografia asimmetrica (a chiave pubblica) Problemi legati alla crittografia simmetrica Il principale problema della crittografia simmetrica sta nella necessità di disporre di un canale sicuro per la

Dettagli

Logica e geometria con il linguaggio Logo

Logica e geometria con il linguaggio Logo Logica e geometria con il linguaggio Logo Classe: III, IV e V primaria Argomento: geometria e logica Autori: Guido Gottardi e Alberto Battaini Introduzione: senza la pretesa di redigere un trattato sul

Dettagli

I numeri semiprimi e i numeri RSA. come loro sottoinsieme

I numeri semiprimi e i numeri RSA. come loro sottoinsieme I numeri semiprimi e i numeri RSA come loro sottoinsieme Francesco Di Noto, Michele Nardelli Abstract In this paper we show some connections between semi-primes numbers and RSA numbers. Riassunto In questo

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

PRIMAVERA IN BICOCCA

PRIMAVERA IN BICOCCA PRIMAVERA IN BICOCCA 1. Numeri primi e fattorizzazione Una delle applicazioni più rilevanti della Teoria dei Numeri si ha nel campo della crittografia. In queste note vogliamo delineare, in particolare,

Dettagli

Serie numeriche e serie di potenze

Serie numeriche e serie di potenze Serie numeriche e serie di potenze Sommare un numero finito di numeri reali è senza dubbio un operazione che non può riservare molte sorprese Cosa succede però se ne sommiamo un numero infinito? Prima

Dettagli

Laboratorio di Programmazione 2

Laboratorio di Programmazione 2 Laboratorio di Programmazione 2 Docente: Luca Forlizzi Orario: lun. 15:00-17:00, mar. 17:00-19:00, gio. 17:00-19:00 Ricevimento: lun. 17:00-18:00, mar. 16:00-17:00 Contatti: ricevimento (Coppito 2, stanza

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Tavola riepilogativa degli insiemi numerici

Tavola riepilogativa degli insiemi numerici N : insieme dei numeri naturali Z : insieme dei numeri interi Q : insieme dei numeri razionali I : insieme dei numeri irrazionali R : insieme dei numeri reali Tavola riepilogativa degli insiemi numerici

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Funzione Una relazione fra due insiemi A e B è una funzione se a ogni elemento di A si associa uno e un solo elemento

Funzione Una relazione fra due insiemi A e B è una funzione se a ogni elemento di A si associa uno e un solo elemento TERIA CAPITL 9. ESPNENZIALI E LGARITMI. LE FUNZINI Non si ha una funzione se anche a un solo elemento di A non è associato un elemento di B, oppure ne sono associati più di uno. DEFINIZINE Funzione Una

Dettagli

1. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di 40, fra di esse vi sia un solo asso, di qualunque seme.

1. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di 40, fra di esse vi sia un solo asso, di qualunque seme. Esercizi difficili sul calcolo delle probabilità. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di, fra di esse vi sia un solo asso, di qualunque seme. Le parole a caso

Dettagli

lezione 18 AA 2015-2016 Paolo Brunori

lezione 18 AA 2015-2016 Paolo Brunori AA 2015-2016 Paolo Brunori Previsioni - spesso come economisti siamo interessati a prevedere quale sarà il valore di una certa variabile nel futuro - quando osserviamo una variabile nel tempo possiamo

Dettagli

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive.

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive. Lezione 6 Prerequisiti: L'insieme dei numeri interi. Lezione 5. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive. Questa è la prima lezione dedicata all'anello

Dettagli

SEQUENZE DI NUMERI PSEUDO- CASUALI

SEQUENZE DI NUMERI PSEUDO- CASUALI SEQUENZE DI NUMERI PSEUDO- CASUALI Test Statistici sulle Sequenze Pseudo Casuali E di fondamentale importanza per una buona riuscita della SIMULAZIONE ( affidabilità dei risultati), che le sequenze pseudo

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

4. Indirizzi Internet

4. Indirizzi Internet 4.1. Introduzione 4. Indirizzi Internet L'indirizzamento è una funzionalità essenziale di qualunque sistema di comunicazione, tanto più per un sistema che vuole essere universale, cioè in rado di connettere

Dettagli

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario Operazioni aritmetiche nel sistema binario Operazioni aritmetiche basilari Le regole da imparare nel caso di una base b sono relative alle b 2 possibili combinazioni delle cifre da 0 a b- 1. Ad esempio,

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti 4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Aritmetica dei Calcolatori 2

Aritmetica dei Calcolatori 2 Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1

Dettagli

Un analisi dei problemi del WEP

Un analisi dei problemi del WEP ICT Security n.11 Aprile 2003 p. 1 di 6 Un analisi dei problemi del WEP In numeri precedenti di questa rivista sono già apparsi vari articoli che si sono occupati dei problemi di sicurezza del protocollo

Dettagli

La codifica dell informazione

La codifica dell informazione La codifica dell informazione Parte I Sui testi di approfondimento: leggere dal Cap. del testo C (Console, Ribaudo):.,. fino a pg.6 La codifica delle informazioni Un calcolatore memorizza ed elabora informazioni

Dettagli

Insiemi con un operazione

Insiemi con un operazione Capitolo 3 Insiemi con un operazione 3.1 Gruppoidi, semigruppi, monoidi Definizione 309 Un operazione binaria su un insieme G è una funzione: f : G G G Quindi, un operazione binaria f su un insieme G è

Dettagli

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri.

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri. 6 LEZIONE: Algoritmi Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10-25 Minuti (a seconda che tu abbia dei Tangram disponibili o debba tagliarli a mano) Obiettivo Principale: Spiegare come

Dettagli

1 Serie di Taylor di una funzione

1 Serie di Taylor di una funzione Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 7 SERIE E POLINOMI DI TAYLOR Serie di Taylor di una funzione. Definizione di serie di Taylor Sia f(x) una funzione definita

Dettagli

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione Informatica 3 Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Lezione 6 - Modulo 1 La gestione delle eccezioni Politecnico

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

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

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop SMS IN Rules SMS IN Rules } Geodrop Geodrop SMS In 2.3 Regole per la manipolazione dei messaggi Guida alla scrittura di condizioni complesse Guida alle condizioni complesse v1.0-it, 7 Dicembre 2012 Indice

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

Seminario Sull Algoritmo R.S.A.

Seminario Sull Algoritmo R.S.A. Alessandrini Cristian Sicurezza 2003 Introduzione Seminario Sull Algoritmo R.S.A. L algoritmo R.S.A. fa parte degli algoritmi definiti a chiave pubblica oppure asimmetrici. Fu progettato nel 1976/77 da

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

Scheduling della CPU

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

Dettagli

Interpretazione astratta

Interpretazione astratta Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

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

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Il calcolo letterale per risolvere problemi e per dimostrare

Il calcolo letterale per risolvere problemi e per dimostrare Il calcolo letterale per risolvere problemi e per dimostrare (si prevedono circa 25 ore di lavoro in classe) Nome e cognome dei componenti del gruppo che svolge le attività di gruppo di questa lezione

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 alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

Aritmetica: operazioni ed espressioni

Aritmetica: operazioni ed espressioni / A SCUOLA DI MATEMATICA Lezioni di matematica a cura di Eugenio Amitrano Argomento n. : operazioni ed espressioni Ricostruzione di un abaco dell epoca romana - Museo RGZ di Magonza (Germania) Libero da

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

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