Crittografia a curve ellittiche in sistemi embedded: strategie software ed estensioni hardware per l'ottimizzazione delle prestazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Crittografia a curve ellittiche in sistemi embedded: strategie software ed estensioni hardware per l'ottimizzazione delle prestazioni"

Transcript

1 INGEGNERIA INFORMATICA Crittografia a curve ellittiche in sistemi embedded: strategie software ed estensioni hardware per l'ottimizzazione delle prestazioni Tesi di Laurea di: Giacomo Castagnini 5 Febbraio 2007 Relatore: Ing. Sandro Bartolini Correlatore: Prof. Enrico Martinelli Anno Accademico 2005/2006 1

2 Indice Concetti base di crittologia 4 Abstract : scelte e risultati 5 Introduzione alle curve ellittiche 1.1 Teoria dei campi Campi finiti Campi polinomiali Le curve ellittiche Curve ellittiche su campi F(p) Curve ellittiche su campi F(2^m) Operazioni su curve ellittiche Problema del logaritmo discreto ECC : Crittografia a curve ellittiche Crittosistemi a chiave pubblica : RSA ECDSA EC Diffie-Hellman Sicurezza ed efficienza: confronto tra crittosistemi a chiave pubblica 27 PARTE 1 Analisi software Ottimizzazione dell uso della cache dati nell esecuzione degli algoritmi crittografici basati su operazioni con punti di curve ellittiche 2.1 La libreria Miracl Le strutture principali Le routine di allocazione La struttura della memoria di un processo Allocazione della memoria per i programmi C Allocazione della memoria in M.I.R.A.C.L Allocazione mirata : allineamento dei big numbers Memoria Cache : concetti di base Memoria Cache : allocazione fisica di una struttura di tipo big Modifiche alle funzioni di allocazione per allineamento al blocco di Cache Modifiche nell allocazione di un workspace di big numbers Allocazione dei punti di una curva ellittica Analisi delle prestazioni Configurazioni e benchmarks utilizzati Prime analisi prestazionali su Pentium Utilizzo di un processore ARM mediante simplescalar Considerazioni sulle dimensioni della cache istruzioni Sim-outorder-prof : analisi delle singole funzioni 87 2

3 2.5 Analisi e localizzazione del workspace delle variabili usate Analisi delle variabili temporanee usate Riorganizzazione e localizzazione del workspace Analisi al variare dell algoritmo moltiplicativo e delle dimensioni della chiave Analisi al variare delle dimensioni delle cache dati e codice 104 PARTE 2 Analisi Hardware Implementazione su ARM7 di una unità funzionale dedicata al calcolo della moltiplicazione tra big number usando l algoritmo di Montgomery. 3.1 The Simplescalar Tool Set Simplescalar: caratteristiche dell emulatore hardware Simplescalar: i diversi livelli simulativi Simplescalar : instruction set Implementazione di una unità funzionale dedicata alla crittografia Introduzione del nuovo codice operazione nell instruction set dell ARM7TMI Definizione ed implementazione di un banco registri di tipo BIG BigALU e BigMULT : componenti e parametri Dipendenze dei registri e definizione di macro per BIGR Instruction set : montgs Instruction set : montg Risultati ed analisi conclusiva Debug e verifica della correttezza Utilizzo della espansione hardware : modifiche alla libreria Miraci Analisi delle prestazioni e confronto tra le versioni hardware Confronto con la versione software più performante ed analisi delle prestazioni al variare della chiave Conclusioni e sviluppi futuri 167 Indice delle figure 170 Bibliografia 173 3

4 Concetti base di crittologia La crittologia esiste da quando esiste la comunicazione tra gli uomini. Quando due persone o due gruppi si scambiano tra loro informazioni (vocali,scritte,grafiche..) usando delle convenzioni anche semplici ed estremamente banali (criptatura), ma conosciute esclusivamente da loro, questi stanno comunicando mediante un codice. In questo modo una terza persona che ascolta o intercetta (casualmente o volutamente) le informazioni scambiate, per comprenderne il significato deve tentare di decodificarle, scovando quelle che sono le convenzioni e le regole che rendono tali informazioni oscure. Invertire consonanti,usare numeri al posto di lettere,aggiungere vocali, queste sono tutte regole che possono essere usate per formare un codice. Risulta quindi evidente che più un sistema di codifica è complesso più è difficile che venga intercettato e decodificato da persone indesiderate (rottura del codice). In modo analogo però, un codice estremamente complesso può portare altri tipi di problemi. Pur conoscendo le regole (chiavi ) di decodifica, una persona che necessità immediatamente di conoscere le informazioni nascoste nel codice può impiegare dei giorni per ricavarle. Sono dunque due i requisiti fondamentali che un crittosistema deve avere : sicurezza ed efficienza. Sicurezza il codice deve essere comprensibile solo per gli utenti interessati e resistere ai tentativi di decodifica da parte di estranei Efficienza l informazione deve essere facilmente ricavata dal codice da parte degli utenti che conoscono le chiavi di decodifica Negli anni i numerosi studi indirizzati alla ricerca di crittosistemi sicuri ed efficienti hanno portato alla implementazione di codici sempre più complessi. Sono stati ideati codici che si adattassero alle crescenti esigenze, dovute alla continua evoluzione delle tecnologie nell ambito delle comunicazioni. Ma contemporaneamente ai sistemi crittografici, con la tecnologie sono proliferati anche gli studi per attaccare i codici da essi generati (crittoanalisi). Aumento attacchi alla sicurezza Crescita tecnologia Algoritmi più sicuri La sicurezza dei dati e dello scambio di informazioni tramite calcolatori e dispositivi informatici è dunque diventato negli anni un problema di primaria importanza. Dove ci sono dati da scambiare ci deve essere anche un adeguato crittosistema in grado di rendere il tutto sicuro ed efficiente. Per questo parallelamente allo sviluppo delle tecnologie informatiche, sono stati affrontati studi dedicati all implementazione di tecniche matematiche in grado di rendere protetti eventuali scambi di dati tra due utenti. Vediamo in dettaglio alcune tecniche e protocolli usati nell ambito delle reti di calcolatori (Lan,internet) e nelle comunicazioni tra dispositivi embedded (telefonia,palmari,wireless ). La crittografia tradizionale e' basata su una chiave segreta. Un mittente che vuole inviare un messaggio cifrato a qualcuno, lo cifra usando una chiave segreta ed il destinatario lo decifra usando la stessa chiave segreta. Ovviamente, sia il mittente che il ricevente di quel messaggio devono conoscere la stessa chiave segreta. Questo metodo e' conosciuto come crittografia a chiave segreta o crittografia simmetrica. Il problema principale e': il mittente ed il ricevente devono accordarsi su una chiave segreta comune, e devono usare un canale sicuro per scambiarsi questa informazione. Potrebbero usare un corriere fidato, il telefono oppure il mittente potrebbe cifrare la chiave segreta. Ma come puo' il mittente cifrare la chiave? Il ricevente non potrebbe decifrarla, perche' non conosce la chiave stessa! Cosi', si potrebbe usare per esempio il sistema telefonico, ma qualcuno potrebbe intercettare la telefonata così come il 4

5 corriere potrebbe essere corrotto. Per queste ragioni venne inventato un altro sistema di crittografia: il sistema a chiave pubblica (chiamato anche sistema crittografico asimmetrico). Il concetto di crittografia a chiave pubblica fu introdotto nel 1976 da Whitfield Diffie e Martin Hellman. Ogni persona ha una coppia di chiavi, una pubblica ed una privata (chiave privata e chiave segreta sono sinonimi qui). La chiave pubblica di ciascuna persona e' pubblicata ed accessibile a tutti, in modo che chiunque la voglia usare lo possa fare, mentre la chiave privata e' tenuta segreta. Nessuna informazione segreta deve viaggiare dal mittente al ricevente. Cosi', se si vuole comunicare con qualcuno crittografando il messaggio, tutto quello che si deve fare e' usare la sua chiave pubblica. Il ricevente di tale messaggio, può poi decifrarlo usando la sua chiave privata. In altre parole: c' e' un legame tra la chiave pubblica e la sua corrispondente chiave privata. Nessuno puo' recuperare la chiave privata dalla sua corrispondente chiave pubblica. Solo il destinatario prestabilito puo' decifrare un messaggio a lui indirizzato tramite la sua chiave privata. Anche in questo sistema esiste un problema : la chiave pubblica deve essere associata al reale destinatario a cui voglio inviare un messaggio crittografato. In altre parole, quella chiave pubblica deve essere autenticata. Tesi : scelte e risultati Il problema dello scambio delle chiavi private e pubbliche sta alla base dei moderni sistemi crittografici. Il primo sistema crittografico a chiave pubblica (basato sull' IFP, problema della fattorizzazione degli interi) è stato introdotto nel Questo crittosistema è chiamato RSA dal nome dei suoi inventori: Ron Rivest, Adi Shamir e Len Aldeman. Per la sua semplicità, l'rsa è ampiamente utilizzato e numerose sono le sue realizzazioni in hardware presentate nel corso di questi anni. Negli anni sono state introdotte nuove metodologie crittografiche in grado di resistere ai crescenti attacchi da parte dei crittoanalisti (criptoanalista può rappresentare sinonimo di hacker). Sono stati proposti molti altri algoritmi come quello di ElGamal (1985) basato sulla codifica e decodifica a chiave pubblica. Questo algoritmo è implementabile sia tramite metodi matematici basati sull esponenziazione (quali lo RSA), che tramite strutture matematiche diverse quali le curve ellittiche. Sui punti di una curva ellittica (EC) è possibile definire operazioni matematiche, per mezzo delle quali si realizzano funzioni crittografiche con un livello di sicurezza superiore, a quello raggiunto da sistemi basati sulla fattorizzazione di numeri interi (RSA), a parità di dimensioni dei campi finiti coinvolti. Di conseguenza, a parità di grado di sicurezza, i sistemi basati su EC necessitano di chiavi di cifratura più piccole rispetto allo RSA. Per esempio, la sicurezza fornita da una chiave a 1024 bit del RSA è garantita da chiavi di circa 160 bit nei sistemi basati su EC. Pertanto, la minore dimensione dei campi numerici coinvolti nella crittografia a curve ellittiche, apre la possibilità di effettuare computazioni a chiave pubblica con minor sforzo computazionale. E evidente come la tendenza stia portando verso scenari futuri in cui dispositivi embedded mobili, saranno sempre più utilizzati per lo scambio di dati (economici, personali). Risulta quindi naturale cercare di indirizzare i sistemi crittografici verso una maggiore sicurezza, ma anche verso una crescente efficienza computazionale. Sistemi embedded nati per scopi specifici e con hardware limitati, devono essere in grado di implementare un discreto livello di sicurezza senza onerosi calcoli computazionali. Ad ogni modo, il costo computazionale per bit della crittografia a curve ellittiche, è maggiore rispetto a quello dello RSA e, inoltre, dipende molto sia dall architettura hardware sottostante, che dalle svariate scelte matematiche e algoritmiche, coinvolte nell implementazione dei crittosistemi a curve ellittiche. Come appena detto riuscire ad usare un sistema che sfrutta chiavi di dimensioni ridotte sembrerebbe la soluzione più conveniente. Implementazioni software di crittosistemi basate sulle curve ellittiche presentano però uno sforzo di calcolo elevato. Architetture hardware con 5

6 supporti non dedicati alla crittografia, risultano gravemente appesantite quando si trovano a gestire in software, le librerie per la generazione delle curve ellittiche e, i numerosi calcoli computazionali per il calcolo della chiave mediante i punti della curva. Sistemi mobili embedded non hanno certamente memorie cache di dimensioni ed associatività di un pentium 4, tantomeno la potenza computazionale dei processori degli odierni personal computer. Proprio in questa ottica sono indirizzati gli studi effettuati in questa tesi : velocizzare ed ottimizzare le operazione crittografiche sulle curve. Scelta dei sistemi EC - diffusione di dispositivi embedded e wireless - chiavi ridotte rispetto RSA - maggiore sicurezza, crescente efficienza Obiettivo Tesi ridurre peso computazionale operazioni su EC su dispositivi embedded Il mio lavoro è stato svolto seguendo due diversi punti di vista. o Affinamento ed ottimizzazione del software su di una architettura non specializzata per la crittografia, rivolto al miglioramento dell uso della memoria cache del sistema. La libreria matematica su cui ho lavorato è la Miracl, nella quale ho implementato nuove funzioni di allocazione in memoria dei Big Numbers, usati per computazioni tra i punti della curva. Progettazione e valutazione di un supporto hardware, per un processore ARM, dedicato alla velocizzazione delle operazioni crittografiche su EC. L intervento hardware ha teso a mantenere la massima compatibilità del processore modificato con quello standard ed ha mirato a includere i supporti hardware attraverso interventi mirati a limitare la complessità realizzativa. I miglioramenti prestazionali ottenuti dalla prima parte del mio studio, risultano essere trascurabili se applicati con architetture hardware di grande potenza computazionale come un processore di tipo pentium 4, ma cominciano a raggiungere percentuali significative con architetture che usano cache di dimensioni piccole. Vedremo come in un ARM7 con cache dati di pochi Kbyte, una mirata allocazione dei dati in cache con adeguate modifiche al workspace delle variabili usate nel codice di Miracl, porta ad un miglioramento in termini di cicli in alcuni casi fino al 10%. Ben più rilevanti sono invece i risultati ottenuti con un implementazione hardware dedicata alla crittografia su curve ellittiche. Ho realizzato una unità logico matematica con apposito banco di registri, integrata in un processore standard, e capace di gestire interamente un particolare algoritmo moltiplicativo tra numeri Big (algoritmo di Montgomery). Questa unità dedicata permette, nella sua implementazione più semplice, di ridurre il tempo di calcolo dell operazione crittograficamente rilevante (moltiplicazione di un punto per uno scalare) fino a circa il 70-80%. Questi risultati hanno dei margini di miglioramento derivanti sia da ulteriori ottimizzazioni nella scrittura del codice software, al fine di sfruttare al meglio lo hardware dedicato sottostante, sia da ulteriori possibili estensioni dell unità crittografica, finalizzate al supporto di ulteriori operazioni crittografiche che siano computazionalmente onerose. 6

7 1. INTRODUZIONE ALLE CURVE ELLITTICHE I sistemi crittografici basati su curve ellittiche, sono sostanzialmente equivalenti all'rsa, con il vantaggio di utilizzare chiavi di lunghezza inferiore. Prima di entrare nel dettaglio della descrizione di questi crittosistemi, di seguito viene riportata una descrizione dei campi finiti e delle curve ellittiche definite su tali campi. 1.1 Teoria dei campi I campi finiti Un campo finito F consiste di un numero finito di elementi su cui sono definite due operazioni binarie che godono di alcune proprietà. Tali operazioni sono: addizione e moltiplicazione. L'ordine di un campo finito, è il numero di elementi che formano il campo. Se q è un primo grande, esiste un solo campo finito di ordine q (tranne quello isomorfo), denotato con F q. Se q = p m dove p è un primo ed m un intero positivo, allora p è chiamato caratteristica di F q, mentre m è chiamato grado di estensione di F q. Molti standard di tecniche per sistemi crittografici basati sul problema del logaritmo discreto su curve ellittiche, restringono l'ordine del campo o ad un primo dispari (q=p) oppure a una potenza di 2 (q = 2 m ). 7

8 Una possibile rappresentazione degli elementi di tale campo è la seguente: {0,1,2,...p-1} su cui sono definite le seguenti operazioni: Addizione Modulare: Se a, b F p, allora a + b = r dove r è il resto della divisione di a + b con p e 0<= r <= p - 1. Moltiplicazione Modulare: Se a, b F p, allora a * b = s, dove s è il resto della divisione di a * b con p e 0<=s<=p-1. Inversione: Se a è diverso da 0 in F p, l'inverso di a modulo p, denotato con a -1, è l'unico intero c F p per il quale risulta a * c=1. Consideriamo come esempio il campo finito F p, con p=17 ordine del campo. Gli elementi di tale campo sono: {0,1,2,...17} Su questo particolare campo F 17 mostriamo anche alcuni esempi delle operazioni sopra definite : Addizione modulare = 11 (( )mod 17 = 11 ) Moltiplicazione modulare 8 * 10 = 12 ((8*10)mod 17 = 12) Inversione 2-1 = 9 ((2*9)mod 17 = 1) 8

9 m Il campo F 2, chiamato campo finito binario, con 2 m elementi, può essere visto come un vettore di dimensione m sul campo F 2, il quale è costituito di due elementi 0 e 1. Esistono m elementi β 0 β 1,β 2,...β m-1 in F m 2, tali che ogni elemento β F m 2 può essere univocamente scritto nella forma: β = a 0 β 0 + a 1 β a m-1 β m-1 con a i {0,1}. L'addizione e la moltiplicazione, dipendono dal tipo di rappresentazione utilizzato per gli elementi del campo. m L'insieme (β 0 β 1,β 2,...β m-1 ) è chiamato base di F 2 su F 2, ci sono molti tipi di basi di F m 2 su F I Campi polinomiali Sia f(x) = x m + f m-1 * x m f 1 * x + f 0 (dove f i {0,1}) un polinomio irriducibile di grado m su F 2, cioè, f(x) non può essere fattorizzato come un prodotto di due polinomi su F 2, ognuno di grado minore di m. Il polinomio f(x) è chiamato polinomio ridotto o polinomio caratteristico. Il campo finito F m 2 è formato da tutti i polinomi su F 2 di grado minore di m: F 2 m = {a m-1 * x m a 1 * x + a 0 : a i {0,1}} Gli elementi del campo sono denotati da una stringa di bit (a m-1...a 0 ) di lunghezza m, tale che: F 2 m = {(a m-1... a 1 a 0 ) : a i {0,1}} m Di conseguenza gli elementi di F 2 possono essere rappresentati dall'insieme di tutte le stringhe binarie di lunghezza m. L'elemento identità rispetto alla moltiplicazione e rappresentato dalla stringa di bit ( ) mentre l'elemento identità rispetto all'addizione è rappresentato dalla stringa (00...0). 9

10 m Definiamo le operazioni su F 2 quando è utilizzata una rappresentazione a base polinomiale, con polinomio ridotto f(x): Addizione: Siano a = (a m-1,...a 0 ) e b = (b m-1,...b 0 ) F m 2, allora a + b = c dove c=(c m- 1,...c 0 ) con c i = (a i + b i ) mod 2. Moltiplicazione: Se a = (a m-1,...a 0 ) e b = (b m-1,...b 0 ) F 2 m, allora a * b = r con r = (r m-1,...r 0 ) dove il polinomio (r m-1 * x m r 1 * x + r 0 ) è il resto della divisione di (a m-1 * x m a 1 * x + a 0 ) * (b m-1 * x m b 1 * x + b 0 ) con f(x) su F 2. Inversione: Se a è diverso da 0, con a F 2 m, l'inverso di a, denotato con a -1, è l'unico elemento c F 2 m per il quale si ha: a * c = 1. Come esempio di campo polinomiale esaminiamo il caso F( 2 4 ). Sia f(x) = x 4 + x +1 il polinomio ridotto. I 16 elementi di F 2 4 sono: 0 (0000) 1(0001) x (0010) x + 1 (0011) x 2 (0100) x 2 + 1(0101) x 2 + x (0110) x 2 + x + 1 (0111) x 3 (1000) x 3 +1 (1001) x 3 + x (1010) x 3 + x + 1 (1011) x 3 + x 2 (1100) x 3 + x 2 +1 (1101)x 3 + x 2 + x (1110) x 3 + x 2 + x + 1 (1111) -Addizione (1101) + (1001) = (0100) -Moltiplicazione (1101) * (1001) = (1111) (x 3 + x 2 + 1) * (x 3 + 1) = (x 6 + x 5 + x 2 +1) mod (x 4 + x +1) = (x 3 + x 2 + x +1) -Inversione (1101) -1 = (0100) 10

11 1.2 Le curve ellittiche Una curva ellittica nel campo dei numeri reali è definita da un insieme di punti (x,y) che soddisfano una equazione della forma : dove x,y,a,b sono numeri reali. y 2 = x 3 + ax + b Qui sotto viene mostrata una particolare rappresentazione geometrica di una curva ellittica, considerando a =-4 e b=0.67 : Figura 1.2.1: Rappresentazione grafica di una curva ellittica sul piano cartesiano Se la curva x 3 + ax + b non contiene fattori ripetuti, ovvero si ha che 4a b 2 sia diverso da 0, allora la curva ellittica può essere usata per formare un gruppo. Condizione per formare un gruppo 4a b 2 0 Riassumendo, un gruppo definito da una curva ellittica nei numeri reali, consiste in un insieme finito di punti appartenenti a tale curva, con l aggiunta di uno speciale punto O, chiamato punto all infinito. 11

12 Prima di descrivere nel dettaglio le curve ellittiche sui campi finiti, occorre fare delle considerazioni preliminari su tali curve. Sia E una curva ellittica su un campo finito F q. Il teorema di Hasse's stabilisce che il numero di punti di tale curva (incluso il punto all'infinito) è: #N = q t, dove t <= 2 q; #N è chiamato ordine di E e p è chiamato traccia di E. Per quanto riguarda la sua struttura, E(F q ) è un gruppo abeliano di rango 1 o 2. Cioè, E(F q ) è isomorfo a Zn 1 x Zn 2, dove n 2 divide n 1 (con Z n denotiamo un gruppo ciclico di ordine n). Se n 2 = 1, allora E(F q ) è ciclico. Infatti, in questo caso E(F q ) è isomorfo a Zn 1, ed esiste un punto P E(F q ) tale che E(F q ) = {k*p : 0 <= k <= n 1-1}; tale punto è chiamato un generatore di E(F q ). Consideriamo E(F 23 ), risulta #N(F 23 ) = 29 che è primo. Il punto P = (0,2) è un generatore di E(F 23 ) EC : campi finiti su E(Fq) Con le considerazioni precedenti, possiamo mostrare con un esempio, un gruppo finito definito su una curva ellittica. Consideriamo la curva corrispondente all equazione E : y 2 = x 3 + x + 4 Condizione per formare un gruppo 4a b 2 = 4*1+ 27*16 = (mod 23) 0 Consideriamo inoltre il campo finito E(F 23 ) anch esso visto precedentemente : p = 23 numero primo, #N(F 23 ) = 29 ordine, P = (0,2) generatore 12

13 L insieme dei punti che formano il campo finito risulta essere : (0,2) (0,21) (1,11) (1,12) (4,7) (4,16) (7,3) (7,20) (8,8) (8,15) (9,11) (9,12) (10,5) (10,18) (11,9) (11,14) (13,11) (13,12) (14,5) (14,18) (15,6) (15,17) (17,9) (17,14) (18,9) (18,14) (22,5) (22,19) O EC : campi finiti su E( 2 m ) Analogamente le stesse considerazione valgono per i campi polinomiali. Una curva ellittica E su F m 2 è definita da una equazione della forma: dove a, b appartengono a F 2 m e b 0. y 2 + xy = x 3 + ax 2 + b Consideriamo il trinomio irriducibile : f(x) = x 4 + x + 1. L elemento g = x = (0010) è un generatore per questo campo polinomiale. Inoltre le potenza di g sono : g 0 = (0001) g 1 = (0010) g 2 = (0100) g 3 = (1000) g 4 = (0011) g 5 = (0110) g 6 = (1100) g 7 = (1011) g 8 = (0101) g 9 = (1010) g 10 = (0111) g 11 = (1110) g 12 = (1111) g 13 = (1101) g 14 = (1001) g 15 = (0001) Prendiamo la curva ellittica di equazione y 2 + xy = x 3 + g 4 x 2 + 1, con a = g 4 and b = g 0 =1. Il punto (g 5, g 3 ) soddisfa questa equazione: y 2 + xy = x 3 + g 4 x (g 3 ) 2 + g 5 g 3 = (g 5 ) 3 + g 4 g g 6 + g 8 = g 15 + g (1100) + (0101) = (0001) + (1001) + (0001) (1001) = (1001) 13

14 I quindici punti che soddisfano questa equazione sono: (1, g 13 ) (g 3, g 13 ) (g 5, g 11 ) (g 6, g 14 ) (g 9, g 13 ) (g 10, g 8 ) (g 12, g 12 ) (1, g 6 ) (g 3, g 8 ) (g 5, g 3 ) (g 6, g 8 ) (g 9, g 10 ) (g 10, g) (g 12, 0) (0, 1) Figura 1.2.2: Insieme dei punti che soddisfano l equazione della EC in campo E( 2 4 ) EC : operazioni con i punti della curva La regola per addizionare due punti su una curva ellittica E(F p ) è chiamata "regola della corda e della tangente". Il risultato di tale addizione è un terzo punto sulla curva. L'insieme dei punti E(Fp) con l'operazione di addizione forma così un gruppo, tale gruppo è usato per la costruzione di crittosistemi su curve ellittiche. Vediamo il significato geometrico dell'addizione di due punti P=(x 1,y 1 ) e Q=(x 2,y 2 ) distinti su una curva ellittica E. 14

15 La somma di P e Q, denotata con R=(x 3,y 3 ), è definita come segue: Si disegna una linea tra P e Q per trovare il terzo punto di intersezione Z R è il punto di intersezione tra la curva e la linea verticale che attraversa Z Figura : Descrizione geometrica dell'addizione di due punti su una curva ellittica. Se P = (x 1,y 1 ), P + P, denotato con R = (x 3,y 3 ), è ottenuto nel seguente modo. Si traccia la tangente passante per il punto P la quale interseca la curva in un secondo punto Z, R è il punto di intersezione tra la curva e la linea ortogonale all'asse delle x passante per Z. Figura 1.2.4: Descrizione geometrica del doppio di un punto su una curva ellittica 15

16 Di seguito sono riportate le formule algebriche per la somma di due punti e il doppio di un punto su una curva. 1. P + O = O + P = P per ogni P E(F p ) 2. Se P = (x,y) E(F p ) allora (x,y) + (x,-y) = O (Il punto (x,-y) = -P) Figura 1.2.5: Somma tra P e (-P) : punto all infinito 3. (Addizione di punti) Siano P = (x p,y p ) e Q = (x q,y q ) E(F p ), con P ± Q. Allora P + Q = (x r,y r ) dove: P + Q = R s = (y P - y Q ) / (x P - x Q ) x R = s 2 - x P - x Q, y R = -y P + s(x P - x R ) 16

17 con: 4. (Doppio di un punto) Sia P = (x p,y p ) E(F p ) con P -P. Allora 2P = (x r,y r ) Quando y P 0, 2P = R s = (3x 2 P + a) / (2y P ) x R = s 2-2x P, y R = -y P + s(x P - x R ) Nelle applicazioni crittografiche vengono utilizzate le curve ellittiche in campo E( 2 m ), dove m risulta essere un numero grande.(lo standard prevede m=163,233,283,409,571). Qui sotto concludiamo questa introduzione alle curve ellittiche elencando le formule algebriche che riguardano le operazione con i punti finiti appartenenti ad una equazione del tipo : y 2 + xy = x 3 + a 4 x 2 + b definita nel campo finito polinomiale E( m 2 ). 1. (Addizione di punti) Siano P = (x p,y p ) e Q = (x q,y q ) E( 2 m ), con P ± Q. Allora P + Q = (x r,y r ) dove: Da notare come il negativo di un punto P = (xp, yp) è il punto -P = (xp, xp + yp). Se P, Q sono distinti e P non è Q ( P + (-P) = O ), allora P + Q = R s = (yp - yq) / (xp + xq) xr = s 2 + s + xp + xq + a and yr = s(xp + xr) + xr + yp 17

18 con: 2. (Doppio di un punto) Sia P = (x p,y p ) E( 2 m ), con P -P. Allora 2P = (x r,y r ) Se xp = 0, allora 2P = O Se xp 0, 2P = R s = xp + yp / xp xr = s 2 + s + a and yr = xp 2 + (s + 1) * xr Il problema del logaritmo discerto Il problema del logaritmo discreto può essere formulato nel seguente modo: 1. Il problema del logaritmo discreto in un insieme finito (DLP): dato un insieme finito F p e gli elementi g,h F p, trovare un intero l tale che g l = h in F p, purché un tale intero esista. 2. Il problema del logaritmo discreto su curva ellittica (ECDLP): data una curva ellittica E definita su insieme finito F p e due punti P, Q E(F p ), trovare un intero k tale che kp = Q in E, purché un tale intero esiste. 18

19 Nel primo problema, è usata la notazione "moltiplicativa" : g l si riferisce al processo di moltiplicazione g per se stesso l volte. Nel secondo problema, è usata la notazione "additiva": kp si riferisce al processo di addizione P per se stesso l volte P*P*P*P&.*P=Pk. Il secondo problema è molto più difficile del primo. La ragione fondamentale di ciò è che gli oggetti algebrici nel DLP sono forniti con due operazioni base: addizione e moltiplicazione di insieme di elementi. Mentre gli oggetti algebrici nell ECDLP sono forniti con una sola operazione: addizione di punti su curve ellittiche. La struttura addizionale presente nel DLP ha condotto alla scoperta dei metodi di calcolo indicizzato, che ha un tempo di esecuzione subesponenziale. Le curve ellittiche non posseggono questa struttura addizionale, per questa ragione nessuno è stato capace di applicare i metodi di calcolo indicizzato sull ECDLP. La sicurezza dei crittosistemi basati su curve ellittiche, si fonda sulla difficoltà del problema del logaritmo discreto su curve ellittiche. Ad oggi, non è conosciuto nessun algoritmo efficiente per la risoluzione di tale problema. La forte sicurezza, dovuta all'assenza di algoritmi subesponenziali per l'ecdlp, insieme con le implementazioni efficienti dell'aritmetica sulle curve ellittiche, fa si che tali sistemi crittografici siano i più utilizzati oggi. L' efficienza di ECC dipende dal calcolo: Q=kP dove, P è un punto della curva ellittica e k è un intero. Vediamo un esempio di calcolo di un kp : data una curva ellittica y 2 = x 3 + 9x + 17 over F 23, quale è il logaritmo discreto k di Q = (4,5) con base P = (16,5)? Una strada meccanica per calcolare il k è proprio calcolare passo per passo i multipli di P fino a quando Q non è stato trovato. I primi multipli di P sono : P = (16,5) 2P = (20,20) 3P = (14,14) 4P = (19,20) 5P = (13,10) 6P = (7,3) 7P = (8,7) 8P = (12,17) 9P = (4,5) 19

20 Così 9P = (4,5) = Q, il logaritmo discreto di Q con base P è k = 9. Logicamente la strada mostrata dall esempio fatta di calcoli successivi dei multipli del punto P, è possibile poiché F 23 contiene un numero basso di punti della curva, ma provate ad immaginarvi di ripetere il procedimento nel campo E( )! In poche parole l efficienza degli algoritmi crittografici basati su curve ellittiche è dovuta oltre ad una chiave opportunamente grande, come già osservato, in particolare da due fattori : un minor numero di bit necessari per la chiave ( vedremo che E( ) usa 163 bit, corrispondenti come equivalente grado di sicurezza ai 1024 bit del RSA ) conoscendo poche informazioni ( P, Q ), i calcoli computazionali per criptare e decriptare non sono particolarmente onerosi La sicurezza invece è dovuta alla enorme difficoltà nel risolvere inversamente il problema del logaritmo discreto su curva ellittica. Lavorando con m opportunamente grandi, senza conoscere informazioni su uno tra Q e P, risalire al valore di k risulta computazionalmente proibitivo (almeno con gli algoritmi di forzatura fino a qui conosciuti e con le attuali tecnologie). 20

21 1.3 ECC : crittografia a curve ellittiche I crittosistemi a chiave pubblica sono classificati in base al problema matematico su cui essi si basano. Prima di addentrarci nello studio dei crittosistemi basati su curve ellittiche, è riportata di seguito, una breve panoramica dei sistemi crittografici a chiave pubblica basati rispettivamente sul problema della fattorizzazione degli interi e sul problema del logaritmo discreto Crittosistemi a chiave pubblica : RSA Il problema della fattorizzazione degli interi è definito come segue: dato un intero n prodotto di due primi grandi, determinare tali fattori, ovvero cercare i primi p e q tali che: p * q = n Ad esempio, sia n = 15 allora la soluzione consiste dei primi 3 e 5, da cui: 3 * 5 = 15 Tale fattorizzazione è essenzialmente unica a meno di permutazioni. I primi p e q devono essere selezionati in maniera tale che la fattorizzazione n = p * q sia computazionalmente irrealizzabile. La maggiore restrizione su p e q, è che devono avere circa la stessa lunghezza in bit e tale lunghezza deve essere sufficientemente grande. Un' ulteriore restrizione, è che la differenza p - q non deve essere troppo piccola. Se p - q è piccolo, si ha p ~ n, così n può essere facilmente fattorizzato. Il primo sistema crittografico a chiave pubblica basato sull' IFP, è stato introdotto nel Questo crittosistema è chiamato RSA dal nome dei suoi inventori: Ron Rivest, Adi Shamir e Len Aldeman. Per la sua semplicità, l'rsa è ampiamente utilizzato e numerose sono le sue realizzazioni in hardware presentate nel corso di questi anni. La sicurezza dell'rsa è strettamente legata al problema della fattorizzazione, ma nessuno ha mai provato che questo legame significhi che i due problemi siano computazionalmente equivalenti. In tale crittosistema, ogni utente A, ha una chiave pubblica e una chiave privata. 21

22 Vediamo come vengono generate queste chiavi. 1. A genera due numeri primi grandi p e q ; 2. A calcola n = p q e φ(n) = (p - 1)(q - 1) ; 3. A sceglie un numero 1 < e < φ(n) tale che gcd(e, φ(n)) = 1; 4. A calcola d = e -1 mod φ(n) usando l algoritmo di Euclide Esteso; 5. A pubblica n ed e come sua chiave pubblica P A = (e, n). 6. A conserva n e d come sua chiave privata S A = (d, n). Il livello di sicurezza è direttamente proporzionale alla lunghezza del numero n, infatti, più grande è n e più il sistema è sicuro. Inizialmente n era composto da 155 cifre decimali, oggi con l'aumento della potenza dei calcolatori, per avere un buon livello di sicurezza, n deve essere lungo almeno 230 cifre decimali (corrispondenti a circa 760 bits). RSA può essere utilizzato sia come schema di crittografia che come schema di firma digitale. L'operazione modulare utilizzata da RSA, in entrambi gli schemi è l'esponenziazione modulo n. Supponiamo che un numero m compreso tra 0 e n-1, rappresenta un certo messaggio. Allora: C = m e (mod n) è il messaggio crittografato che viene spedito, mentre m = C d (mod n) è il messaggio decifrato. Per quanto riguarda le prestazioni, l'esponenziazione modulare è molto costosa al crescere di n, per questo motivo il tempo richiesto per eseguire tale operazione è il tempo richiesto per eseguire RSA. In conclusione, la sicurezza di RSA, basa la sua difficoltà sul problema della fattorizzazione degli interi, mentre l'efficienza si basa sulla velocità di esecuzione dell'esponenziazione modulare. Questo vale per tutti i crittosistemi appartenenti alla famiglia dei sistemi basati sul problema della fattorizzazione degli interi. Un altro problema matematico definito in termini di aritmetica modulare è il problema del logaritmo discreto. Fissato un numero primo p e un intero g tra 0 e p-1 si ottiene y dalla relazione: y = g x (mod p) 22

23 Il problema del logaritmo discreto è di determinare l'intero x dati g, y e p. Per questo problema non è stato trovato nessun algoritmo efficiente in grado di risolverlo. Taher ElGamal è stato il primo a proporre un sistema crittografico basato su questo problema. In particolare, propose due distinti sistemi: uno schema crittografico e uno schema di firme digitali (DSA si basa sul lavoro di ElGamal). Rompere uno di questi schemi significa risolvere il problema del logaritmo discreto. Per avere una buona sicurezza il primo p deve essere lungo almeno 230 cifre decimali (760 bits). Le prestazioni del sistema dipendono dalla velocità di esecuzione dell'esponenziazione modulare. Il calcolo dominante in ogni trasformazione è: g x (mod p) con g compreso tra 0 e p-1. In conclusione la sicurezza di questi sistemi, si basa sul problema del logaritmo discreto modulo p, mentre l'efficienza dipende dalla velocità di esecuzione dell'esponenziazione modulare. Dopo aver introdotto le nozioni che stanno alla base delle curve ellittiche e dei sistemi crittografici a chiave pubblica, mostriamo due protocolli di sistemi crittografici che sfruttano le proprietà delle curve ellittiche ECDSA (Elliptic Curve Digital Signature Algorithm) ECDSA (Elliptic Curve Digital Signature Algorithm) è lo schema di firme digitali DSA basato su curve ellittiche. Fu proposto la prima volta nel 1992 da Scott Vanstone. Nel 1998 è diventato uno standard ISO (ISO 14888), nel 1999 è stato accettato come standard ANSI (ANSI X9.62) mentre nel 2000 è diventato uno standard IEEE (IEEE P1363 2). Di seguito viene discusso lo standard ANSI X

24 I parametri del dominio ECDSA consistono di una curva ellittica E definita su un campo finito F q e di un punto base G E(F q ). I parametri del dominio potrebbero essere condivisi da un gruppo di entità, oppure specificati su un singolo utente. Per facilitare l interoperabilità, sono poste restrizioni sulla grandezza del campo q e sulla rappresentazione usata per gli elementi di F q. Requisiti del campo. Nel caso q = p, il campo finito è F p, gli interi sono modulo p. Nel caso q = 2 m m, il campo finito è F 2 i cui elementi sono rappresentati tramite un polinomio o una base normale. Requisiti curva ellittica. Per evitare gli attacchi rho di Pollard e il Pohlig-Hellman sul problema del logaritmo discreto sulle curve ellittiche, è necessario che il numero di punti razionali di F q su E siano divisibili per un numero primo n sufficientemente grande. ANSI X9.62 ha posto che n > Alcuni ulteriori precauzioni dovrebbero essere utilizzate quando si seleziona la curva. Per evitare la degradazione degli algoritmi di Menezes, "Okamoto e Vanstone" e "Frey e Ruck"[3], la curva dovrebbe essere non supersingolare. In generale, si dovrebbe verificare che n non divida q k 1 per tutto 1 k C, dove C è molto grande così che è c computazionalmente impossibile trovare logaritmi discreti in F q. Un modo prudente di difendersi contro questi attacchi su speciali classi di curve che potrebbero essere scoperte in futuro, è di selezionare la curva ellittica E a caso sotto la condizione che il numero di punti di E(F q ) sia divisibile per un primo grande. Ricapitolando, i parametri del dominio sono composti da: 1. La grandezza del campo q, dove q = p o q = 2 m 2. Un indicazione FR (rappresentazione campo) della rappresentazione usata per gli elementi di F q 3. Due elementi campo a e b in F q che definiscono l equazione della curva ellittica E su F q (es. y 2 = x 3 + ax + b nel caso p>3 e y 2 = x 3 + ax 2 + b nel caso p = 2) 4. Due elementi del campo, x G e y G in F q che definiscono un punto finito G = (x G, y G ) di ordine primo in E(F q ) 5. L ordine n del punto G, con n >2 160 e n > 4 q; 6. Cofattore h = #N(F q ) /n. 24

25 Con questi parametri di dominio si procede quindi alla generazione delle chiavi pubbliche e private. D = (q, FR, a, b, G, n, h) Il processo che in un sistema crittografico ECDSA porta alla generazione di una coppia di chiavi può essere riassunto in maniera schematica dai seguenti passi: a) Generazione dei parametri del dominio b) Validazione dei parametri del dominio m c) Generazione di una curva ellittica casuale su F q (F 2 ). m d) Verificare che una curva ellittica è stata generata casualmente su F q (F 2 ). e) Generazione della coppia di chiavi f) Validazione della chiave pubblica g) Generazione e verifica della firma ECDSA Dunque ad un domino D = (q, FR, a, b, G, n, h) è possibile associare una coppia di chiavi (d, Q). Un utente A per generare una coppia di chiavi (d, Q) esegue dunque i seguenti passi: 1. Seleziona un intero d casuale o pseudocasuale nell intervallo [1, n-1]. 2. Calcola Q = d * G. 3. la chiave pubblica di A è Q; la chiave privata di A è d. La validazione delle chiavi pubbliche, assicura che una chiave pubblica ha i requisiti di proprietà aritmetiche richieste EC Diffie-Hellman Descriviamo il protocollo di Diffie-Hellman basato su curve ellittiche. Consideriamo due utenti, M e N, che devono trovare l'accordo su una chiave. M e N scelgono un campo finito F p, una curva ellittica E e un punto B di ordine q su tale curva, che non ha bisogno di essere segreto. 25

26 La chiave di accordo sarà un punto P (chiave pubblica), scelto casualmente sulla curva. M sceglie la sua chiave segreta a,1[ q-1] e calcola a * B E. N sceglie la sua chiave segreta b,1[ q-1 ] e calcola b * B E. A questo punto i due utenti si scambiano i rispettivi valori, M invia a N a * B e N invia ad M b * B. Una volta ricevuti tali valori, M computa P = a * b * B e N computa P = b * a * B, l'accordo è raggiunto. Vediamo un piccolo esempio per capire meglio. Consideriamo un campo finito F 5 (p = 5) e una curva ellittica E: y 2 = x 3 + 2x + 1. I punti di tale curva sono: (0,1) (1,3 ) (3,3) (3,2) (1,2) (0,4) insieme con il punto O. Supponiamo che il punto B = (0,1). Mario sceglie la sua chiave segreta a = 2 e computa la sua chiave pubblica P A dove: P A = a * B = 2 * B = B + B = (1,3) Nicola sceglie la sua chiave segreta b = 3 e computa la sua chiave pubblica P B dove: P B = b * B = 3 * B = B + B + B = (3,3) A questo punto Mario e Nicola si scambiano le rispettive chiavi pubbliche, Mario riceve b * B = (3,3) e Nicola riceve a * B = (1,3). Mario computa P nel seguente modo: P = a *( b * B) = 2 * (3,3) = (0,4) Nicola computa P nel seguente modo: P = b * (a * B) = 3 * (1,3) = (0,4) Mario e Nicola hanno trovato l'accordo sulla chiave P = (0,4). 26

27 1.3.4 Sicurezza ed efficienza: confronto tra crittosistemi a chiave pubblica. Senza dubbio i due maggiori banchi di prova per il confronto tra crittosistemi a chiave pubblica sono: la sicurezza e l'efficienza. La sicurezza dei crittosistemi a chiave pubblica in generale, è rappresentata dalla difficoltà di rompere tali sistemi. Esistono diversi tipi di attacchi a tali crittosistemi. La cosa importante da osservare è che la rottura di tali crittosistemi, richiede la risoluzione del problema matematico su cui essi si basano. Infatti molti sistemi sono stati rotti fornendo una prova matematica formale su tale problema. Sfortunatamente non ci sono problemi matematici per i quali può essere provato che il miglior algoritmo prende tempo esponenziale. L'attenzione si sposta sui migliori algoritmi, conosciuti oggi per risolvere questi problemi. Per ogni problema in questione, sono stati proposti algoritmi veloci. Per quanto riguarda il problema del logaritmo discreto su curve ellittiche, questo è relativamente semplice per piccole classi di curve ellittiche. La fattorizzazione degli interi e il problema del logaritmo discreto modulo p, hanno entrambi un tempo di risoluzione sub-esponenziale. I problemi che hanno un tempo di risoluzione subesponenziale possono essere ancora considerati difficili, ovviamente non come i problemi difficili che ammettono per la loro risoluzione solo algoritmi pienamente esponenziali. Il miglior algoritmo per la risoluzione del problema del logaritmo discreto su curve ellittiche richiede tempo pienamente esponenziale. Tale tempo è: O( p) Questo significa che il problema del logaritmo discreto su curve ellittiche è oggi considerato più difficile sia del problema della fattorizzazione degli interi che del problema del logaritmo discreto su aritmetica modulare. 27

28 Possiamo osservare ciò, concretamente nella seguente figura, in cui sono confrontati i tempi per rompere RSA o DSA, utilizzando vari moduli (di diverse taglie) e i migliori algoritmi conosciuti. I valori sono confrontati in anni MIPS, un anno MIPS rappresenta il tempo di computazione di un anno su una macchina capace di eseguire un milione di operazioni al secondo. Normalmente si accetta come banco di misura ragionevolmente sicuro, anni MIPS. Figura 1.3.1: Confronto del grado di sicurezza tra gli algoritmi RSA e ECC al variare delle dimensioni della chiave. [1] Dalla figura, reperita dal sito possiamo osservare che per raggiungere una ragionevole sicurezza, RSA e DSA devono impiegare 1024 bit di modulo, mentre 160 bit di modulo potrebbero essere sufficienti per ECC. Non solo, si osserva anche che il gap relativo alla sicurezza tra i sistemi, cresce al crescere della taglia delle chiavi. Per quanto riguarda l'efficienza, ci sono tre distinti fattori da prendere in considerazione: 1. Computer overheads: quanti calcoli sono richiesti per eseguire trasformazioni da chiavi pubbliche a chiavi private. 2. Key size: quanti bit sono richiesti per immagazzinare la coppia di chiavi e altri parametri di sistema. 28

29 3. Bandwidth: quanti bit devono essere comunicati per trasferire un messaggio criptato o una firma. Chiaramente il confronto deve essere fatto tra sistemi con simili livelli di sicurezza (160 bit ECC vengono confrontati con 1024 bit DSA o RSA). Se per il punto 1 le differenze tra RSA ed sistemi ECC sono minime anche se ECC risulta comunque migliore, sono invece evidenti i vantaggi in termini di efficienza per quanto riguarda le dimensioni in bit di chiave e di messaggio criptato. Con la seguente figura vengono messie a confronto le lunghezze delle chiavi in tre sistemi : System parameters (bits) Public key (bits) Private key (bits) RSA n/a DSA ECC Figura 1.3.2: Dimensioni in bits delle chiavi pubbliche e private negli algoritmi RSA,DSA,ECC Risulta evidente come il sistema ECC sia decisamente quello migliore. In termini di bandwith tutti e tre i sistemi hanno valori simili quando sono usati per crittografare o per firmare lunghi messaggi. Le due figura successive invece, mettono a confronto, per i tre sistemi, la lunghezza della firma e la lunghezza del messaggio crittografato, considerando un messaggio di 2000 bit per la firma ed un messaggio di 100 bit da cifrare. 29

30 Signature size (bits) RSA 1024 DSA 320 ECC 320 Figura : Taglia della firma per lunghi messaggi Encrypted message (bits) RSA 1024 ElGamal 2048 ECC 321 Figura : Taglia della crittografia Quindi ECC offre considerevole risparmio di bandwidth quando si considerano messaggi di taglia corta. In definitiva, ECC fornisce una maggiore efficienza in termini di computer overhead, key size e bandwidth, rispetto agli altri due sistemi. 30

31 PARTE 1- Analisi software OTTIMIZZAZIONE DELL USO DELLA CACHE DATI NELL ESECUZIONE DEGLI ALGORITMI CRITTOGRAFICI BASATI SU OPERAZIONI CON PUNTI DI CURVE ELLITTICHE 31

32 2. OTTIMIZZAZIONE DELL USO DELLA CACHE DATI NELL ESECUZIONE DEGLI ALGORITMI CRITTOGRAFICI BASATI SU EC Oltre alla sicurezza e all'efficienza, altri fattori che influenzano i crittosistemi a chiavi pubbliche sono: interoperabilità e pubblica accettazione. Questi punti sono formalmente definiti attraverso standardizzazioni. Il protocollo internazionale di standardizzazione dei sistemi crittografici è un processo importante. L'evoluzione degli standard è stata una parte cruciale per l'adozione di alcuni sistemi crittografici. La standardizzazione dell'ecc ha promosso l'educazione di molti crittosistemi e sviluppatori, ed è stata fondamentale nella realizzazione pratica di crittosistemi efficienti basati su curve ellittiche. Applicazioni con particolari esigenze di sicurezza possono richiedere algoritmi crittografici diversi ed a loro volta ognuno di questi algoritmi può richiedere una chiave di dimensione diversa. A seconda delle circostanze una chiave eccessivamente grande rischia di andare a compromettere pesantemente le prestazioni. D altra parte l uso di chiavi troppo piccole potrebbe invece andare a minare pericolosamente la sicurezza del sistema. Pertanto sarebbe ragionevole individuare il livello minimo di dimensione della chiave che garantisca una adeguata sicurezza. A tale esigenza ha cercato di rispondere il NIST con il documento SP Reccomendation for Key Management [8]. 32

33 Riportiamo adesso gli standars relativi all ECC promossi dai principali organismi internazionali : ANSI L American National Standars Institute è un organizzazione privata la cui missione è promuovere la diffusione di standars. Il comitato X9 è parte dell ANSI e sviluppa standars per i servizi bancari e finanziari. In particolare il sottocomitato X9F, che si occupa delle problematiche di sicurezza informatica ha sviluppato due standars relativi all ECC : X9.62 (1999) : standardizza ECDSA X9.63 (2001) : standardizza vari protocolli di key agreement e key tranport, tra i quali ECDH, ECMQV, ECIES. NIST Il National Institute od Standards and Technology è un agenzia del dipartimento del commercio degli Stati Uniti. Tra i suoi compiti vi è la pubblicazione dei FIPS ( Federal Information Processing Standars ) che regolamentano problematiche di sicurezza per ambienti governativi. Il NIST ha accreditato l algoritmo ECDSA, insieme a DSA e RSA, come algoritmo di Firma Elettronica nel FIPS 1862, del 27 gennaio 2000 [9]. Un altro standard importante è il FIPS 1402 il quale specifica i requisiti che il governo degli USA richiede a tutti i prodotti hardware e software che trattano informazioni riservate ( escluse quelle di carattere militare ). In esso gli unici algoritmi asimmetrici riconosciuti sono RSA, RSA e ECDSA. IEEE L Institute of Electrical and Electronics Engineers è una organizzazione privatea dedicata a promuovere pubblicazioni, convegni e standars. Il gruppo di lavoro IEEE P1363 si occupa della standardizzazione della crittografia a chiave pubblica e lo standard ( Standars Specification for PublicKey Cryptography )contiene, tra gli altri, gli algoritmi ECDSA, ECDH, ECMQV. La bozza 1363 invece è un completamento al ed include anche ECIES. IEFT L internet Enginnering Task Force si occupa di sviluppare standars relativi ai protocolli utilizzati su internet. Senza scendere in dettaglio, a livello crittografico l IETF è stata decisiva per la diffusione degli standars IPSec, TLS ( Trasport Layer Socket ), S/MIME ( Posta elettronica ). 33

34 ISO/IEC L international Standars Organization e l International Electrotechical Commision hanno congiuntamente sviluppato standars in ambito crittografico. Lo standars ISO/IEC decrive diversi algoritmi di firma elettronica ekey establishment basati su EC, come ECDSA, ECDH e ECMMQV. Il lavoro che viene affrontato in questa tesi segue dunque i parametri sulle curve indicati nelle precedenti pubblicazioni internazionali. In particolare concentrandosi su sistemi m EC in campo finito polinomiale (F 2 ), dove appunto m indica la lunghezza della chiave ed il conseguente livello di sicurezza. Gli standars prevedono i seguenti valori della chiave m : m I valori indicati nella tabella stanno dunque ad indicare la lunghezza della chiave di sicurezza che viene utilizzata nei sistemi crittografici che si basano su EC definite in m campo F( 2 ). Nelle applicazione informatiche e quindi nelle implementazioni degli algoritmi crittografici, alla lunghezza della chiave corrisponde un numero uguale di bit. In pratica per rappresentare i parametri delle curve ellittiche, le coordinate dei punti appartenenti ad esse e le variabili degli algoritmi si devono utilizzare operandi a m bit. Con il livello più basso di sicurezza ci si trova quindi a dover eseguire computazioni con variabili a 163 bit. Già quindi con la chiave più piccola risulta chiaro come gli algoritmi crittografici EC in campo polinomiale devono gestire operazioni con numeri interi molto grandi ( Big Numbers ). I moderni calcolatori sono progettati per lavorare con registri a 32 bit o al massimo a 64 bit, le implementazioni software degli algoritmi ECC devono quindi creare apposite strutture dati in grado di poter definire e poi manipolare variabili della dimensione necessaria per il corrispondente livello di sicurezza. 34

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

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

Analisi di programmi: Crittografia

Analisi di programmi: Crittografia Analisi di programmi: Crittografia Come caso concreto di sistema, proviamo ad abbozzare e a vedere una prima implementazione di un sistema di crittografia a chiave pubblica La crittografia studia le tecniche

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

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

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

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

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

Dettagli

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

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

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

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

Dimensione di uno Spazio vettoriale

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

Dettagli

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

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

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

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26 Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo

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

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

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

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

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 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

Informatica per la comunicazione" - lezione 13 -

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

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Fondamenti di Informatica 2. Le operazioni binarie

Fondamenti di Informatica 2. Le operazioni binarie Corso di per il corso di Laurea di Ingegneria Gestionale Le operazioni binarie Università degli Studi di Udine - A.A. 2010-2011 Docente Ing. Sandro Di Giusto Ph.D. 1 L'algebra binaria Il fatto di aver

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

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

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

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

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

Appunti sulla Macchina di Turing. Macchina di Turing

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

Dettagli

Esempi di funzione. Scheda Tre

Esempi di funzione. Scheda Tre Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.

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

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE L applicazione elaborata da Nordest Informatica e disponibile all interno del sito è finalizzata a fornirvi un ipotesi dell impatto economico

Dettagli

Capitolo 2. Operazione di limite

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

Dettagli

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ In questa Appendice mostreremo come trovare la tariffa in due parti che massimizza i profitti di Clearvoice,

Dettagli

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : ' = y y' = Consideriamo il punto P(,5) se eseguiamo tra trasformazione

Dettagli

La firma digitale CHE COSA E'?

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

Dettagli

( x) ( x) 0. Equazioni irrazionali

( x) ( x) 0. Equazioni irrazionali Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza

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

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

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

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

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

Introduzione alla Crittografia

Introduzione alla Crittografia Liceo Scientifico N. Tron, 6 febbraio 2006 Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di elementi < n e coprimi con n. Riassunto Dato n > 1, la funzione di Eulero ϕ(n) è il numero di

Dettagli

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X. Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

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

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

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

3 GRAFICI DI FUNZIONI

3 GRAFICI DI FUNZIONI 3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom

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

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.

Dettagli

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

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

Dettagli

STRUTTURE ALGEBRICHE

STRUTTURE ALGEBRICHE STRUTTURE ALGEBRICHE Operazioni in un insieme Sia A un insieme non vuoto; una funzione f : A A A si dice operazione binaria (o semplicemente operazione), oppure legge di composizione interna. Per definizione

Dettagli

La crittografia a curve elittiche e applicazioni

La crittografia a curve elittiche e applicazioni La crittografia a curve elittiche e applicazioni Dott. Emanuele Bellini Torino 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica Industriale e Crittografia

Dettagli

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI 119 4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI Indice degli Argomenti: TEMA N. 1 : INSIEMI NUMERICI E CALCOLO

Dettagli

Reti di calcolatori ed indirizzi IP

Reti di calcolatori ed indirizzi IP ITIS TASSINARI, 1D Reti di calcolatori ed indirizzi IP Prof. Pasquale De Michele 5 aprile 2014 1 INTRODUZIONE ALLE RETI DI CALCOLATORI Cosa è una rete di calcolatori? Il modo migliore per capire di cosa

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

Anno 4 Grafico di funzione

Anno 4 Grafico di funzione Anno 4 Grafico di funzione Introduzione In questa lezione impareremo a disegnare il grafico di una funzione reale. Per fare ciò è necessario studiare alcune caratteristiche salienti della funzione che

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Codifica binaria dei numeri relativi

Codifica binaria dei numeri relativi Codifica binaria dei numeri relativi Introduzione All interno di un calcolatore, è possibile utilizzare solo 0 e 1 per codificare qualsiasi informazione. Nel caso dei numeri, non solo il modulo ma anche

Dettagli

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

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

Dettagli

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri

Dettagli

Reti di Telecomunicazione Lezione 8

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

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito. INTEGRALI DEFINITI Sia nel campo scientifico che in quello tecnico si presentano spesso situazioni per affrontare le quali è necessario ricorrere al calcolo dell integrale definito. Vi sono infatti svariati

Dettagli

da chi proviene un messaggio?

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

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

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

Esponenziali e logaritmi

Esponenziali e logaritmi Istituto d Istruzione Superiore A Tilgher Ercolano (Na) Prof Amendola Alfonso Premessa Esponenziali e logaritmi Questa breve trattazione non vuole costituire una guida completa ed esauriente sull argomento,

Dettagli

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,

Dettagli

Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6

Corso di ARCHITETTURA DEI SISTEMI INFORMATIVI - Prof. Crescenzio Gallo. 114 Sistemi informativi in rete e sicurezza 4.6 Approcci al problema della sicurezza 114 Sistemi informativi in rete e sicurezza 4.6 Accessi non autorizzati Hacker: coloro che si avvalgono delle proprie conoscenze informatiche e di tecnologia delle

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

Logica e codifica binaria dell informazione

Logica e codifica binaria dell informazione Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

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

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1 Le funzioni continue A. Pisani Liceo Classico Dante Alighieri A.S. -3 A. Pisani, appunti di Matematica 1 Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato

Dettagli

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione.

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione. Wi-Fi, la libertà di navigare in rete senza fili. Introduzione. L evoluzione delle tecnologie informatiche negli ultimi decenni ha contribuito in maniera decisiva allo sviluppo del mondo aziendale, facendo

Dettagli

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

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

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

4. Operazioni aritmetiche con i numeri binari

4. Operazioni aritmetiche con i numeri binari I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

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

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

Basi di matematica per il corso di micro

Basi di matematica per il corso di micro Basi di matematica per il corso di micro Microeconomia (anno accademico 2006-2007) Lezione del 21 Marzo 2007 Marianna Belloc 1 Le funzioni 1.1 Definizione Una funzione è una regola che descrive una relazione

Dettagli

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x) 1 FUNZIONE Dati gli insiemi A e B, si definisce funzione da A in B una relazione o legge o corrispondenza che ad ogni elemento di A associa uno ed un solo elemento di B. Si scrive: A B f: A B f() (si legge:

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

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